From 6decb96d21a87d3644a2a15941c2a0fa609dc9e2 Mon Sep 17 00:00:00 2001 From: mahmoudnasser1561 Date: Fri, 23 Aug 2024 12:26:43 +0300 Subject: [PATCH 1/6] Finish Introduction and Django Admin --- blango/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 149 bytes blango/__pycache__/settings.cpython-312.pyc | Bin 0 -> 2556 bytes blango/__pycache__/urls.cpython-312.pyc | Bin 0 -> 1001 bytes blango/__pycache__/wsgi.cpython-312.pyc | Bin 0 -> 635 bytes blango/settings.py | 3 +- blog/__init__.py | 0 blog/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 147 bytes blog/__pycache__/admin.cpython-312.pyc | Bin 0 -> 680 bytes blog/__pycache__/apps.cpython-312.pyc | Bin 0 -> 449 bytes blog/__pycache__/models.cpython-312.pyc | Bin 0 -> 1812 bytes blog/admin.py | 12 + blog/apps.py | 6 + blog/migrations/0001_initial.py | 61 + blog/migrations/__init__.py | 0 .../__pycache__/0001_initial.cpython-312.pyc | Bin 0 -> 2199 bytes .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 158 bytes blog/models.py | 24 + blog/tests.py | 3 + blog/views.py | 3 + db.sqlite3 | Bin 0 -> 163840 bytes venv/bin/Activate.ps1 | 247 + venv/bin/activate | 70 + venv/bin/activate.csh | 27 + venv/bin/activate.fish | 69 + venv/bin/black | 8 + venv/bin/blackd | 8 + venv/bin/django-admin | 8 + venv/bin/pip | 8 + venv/bin/pip3 | 8 + venv/bin/pip3.12 | 8 + venv/bin/python | 1 + venv/bin/python3 | 1 + venv/bin/python3.12 | 1 + venv/bin/sqlformat | 8 + .../Django-5.1.dist-info/AUTHORS | 1106 ++ .../Django-5.1.dist-info/INSTALLER | 1 + .../Django-5.1.dist-info/LICENSE | 27 + .../Django-5.1.dist-info/LICENSE.python | 288 + .../Django-5.1.dist-info/METADATA | 100 + .../site-packages/Django-5.1.dist-info/RECORD | 4538 +++++++ .../Django-5.1.dist-info/REQUESTED | 0 .../site-packages/Django-5.1.dist-info/WHEEL | 5 + .../Django-5.1.dist-info/entry_points.txt | 2 + .../Django-5.1.dist-info/top_level.txt | 1 + .../_black_version.cpython-312.pyc | Bin 0 -> 219 bytes .../mypy_extensions.cpython-312.pyc | Bin 0 -> 8781 bytes .../site-packages/_black_version.py | 1 + .../asgiref-3.8.1.dist-info/INSTALLER | 1 + .../asgiref-3.8.1.dist-info/LICENSE | 27 + .../asgiref-3.8.1.dist-info/METADATA | 246 + .../asgiref-3.8.1.dist-info/RECORD | 27 + .../asgiref-3.8.1.dist-info/WHEEL | 5 + .../asgiref-3.8.1.dist-info/top_level.txt | 1 + .../site-packages/asgiref/__init__.py | 1 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 210 bytes .../__pycache__/compatibility.cpython-312.pyc | Bin 0 -> 1794 bytes .../current_thread_executor.cpython-312.pyc | Bin 0 -> 4983 bytes .../asgiref/__pycache__/local.cpython-312.pyc | Bin 0 -> 5846 bytes .../__pycache__/server.cpython-312.pyc | Bin 0 -> 7963 bytes .../asgiref/__pycache__/sync.cpython-312.pyc | Bin 0 -> 22952 bytes .../__pycache__/testing.cpython-312.pyc | Bin 0 -> 6099 bytes .../__pycache__/timeout.cpython-312.pyc | Bin 0 -> 4893 bytes .../__pycache__/typing.cpython-312.pyc | Bin 0 -> 9907 bytes .../asgiref/__pycache__/wsgi.cpython-312.pyc | Bin 0 -> 7317 bytes .../site-packages/asgiref/compatibility.py | 48 + .../asgiref/current_thread_executor.py | 115 + .../python3.12/site-packages/asgiref/local.py | 128 + .../python3.12/site-packages/asgiref/py.typed | 0 .../site-packages/asgiref/server.py | 157 + .../python3.12/site-packages/asgiref/sync.py | 613 + .../site-packages/asgiref/testing.py | 103 + .../site-packages/asgiref/timeout.py | 118 + .../site-packages/asgiref/typing.py | 278 + .../python3.12/site-packages/asgiref/wsgi.py | 166 + .../INSTALLER | 1 + .../METADATA | 2162 ++++ .../RECORD | 99 + .../REQUESTED | 0 .../WHEEL | 4 + .../direct_url.json | 1 + .../entry_points.txt | 6 + .../licenses/AUTHORS.md | 197 + .../licenses/LICENSE | 21 + .../site-packages/black/__init__.py | 1606 +++ .../site-packages/black/__main__.py | 3 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 63126 bytes .../__pycache__/__main__.cpython-312.pyc | Bin 0 -> 246 bytes .../__pycache__/_width_table.cpython-312.pyc | Bin 0 -> 8394 bytes .../__pycache__/brackets.cpython-312.pyc | Bin 0 -> 18547 bytes .../black/__pycache__/cache.cpython-312.pyc | Bin 0 -> 7621 bytes .../__pycache__/comments.cpython-312.pyc | Bin 0 -> 16622 bytes .../__pycache__/concurrency.cpython-312.pyc | Bin 0 -> 8534 bytes .../black/__pycache__/const.cpython-312.pyc | Bin 0 -> 519 bytes .../black/__pycache__/debug.cpython-312.pyc | Bin 0 -> 3490 bytes .../black/__pycache__/files.cpython-312.pyc | Bin 0 -> 18888 bytes .../handle_ipynb_magics.cpython-312.pyc | Bin 0 -> 18145 bytes .../black/__pycache__/linegen.cpython-312.pyc | Bin 0 -> 73375 bytes .../black/__pycache__/lines.cpython-312.pyc | Bin 0 -> 43853 bytes .../black/__pycache__/mode.cpython-312.pyc | Bin 0 -> 11441 bytes .../black/__pycache__/nodes.cpython-312.pyc | Bin 0 -> 44570 bytes .../__pycache__/numerics.cpython-312.pyc | Bin 0 -> 2607 bytes .../black/__pycache__/output.cpython-312.pyc | Bin 0 -> 5852 bytes .../black/__pycache__/parsing.cpython-312.pyc | Bin 0 -> 10478 bytes .../black/__pycache__/ranges.cpython-312.pyc | Bin 0 -> 18835 bytes .../black/__pycache__/report.cpython-312.pyc | Bin 0 -> 5111 bytes .../black/__pycache__/rusty.cpython-312.pyc | Bin 0 -> 1566 bytes .../black/__pycache__/schema.cpython-312.pyc | Bin 0 -> 1371 bytes .../black/__pycache__/strings.cpython-312.pyc | Bin 0 -> 14560 bytes .../black/__pycache__/trans.cpython-312.pyc | Bin 0 -> 95120 bytes .../site-packages/black/_width_table.py | 478 + .../site-packages/black/brackets.py | 382 + .../python3.12/site-packages/black/cache.py | 150 + .../site-packages/black/comments.py | 415 + .../site-packages/black/concurrency.py | 190 + .../python3.12/site-packages/black/const.py | 4 + .../python3.12/site-packages/black/debug.py | 54 + .../python3.12/site-packages/black/files.py | 438 + .../black/handle_ipynb_magics.py | 452 + .../python3.12/site-packages/black/linegen.py | 1798 +++ .../python3.12/site-packages/black/lines.py | 1078 ++ .../python3.12/site-packages/black/mode.py | 290 + .../python3.12/site-packages/black/nodes.py | 1037 ++ .../site-packages/black/numerics.py | 61 + .../python3.12/site-packages/black/output.py | 122 + .../python3.12/site-packages/black/parsing.py | 244 + .../python3.12/site-packages/black/py.typed | 0 .../python3.12/site-packages/black/ranges.py | 521 + .../python3.12/site-packages/black/report.py | 107 + .../site-packages/black/resources/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 192 bytes .../black/resources/black.schema.json | 154 + .../python3.12/site-packages/black/rusty.py | 28 + .../python3.12/site-packages/black/schema.py | 20 + .../python3.12/site-packages/black/strings.py | 390 + .../python3.12/site-packages/black/trans.py | 2534 ++++ .../site-packages/blackd/__init__.py | 259 + .../site-packages/blackd/__main__.py | 3 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 11770 bytes .../__pycache__/__main__.cpython-312.pyc | Bin 0 -> 266 bytes .../__pycache__/middlewares.cpython-312.pyc | Bin 0 -> 2342 bytes .../site-packages/blackd/middlewares.py | 52 + .../site-packages/blib2to3/Grammar.txt | 261 + .../python3.12/site-packages/blib2to3/LICENSE | 254 + .../site-packages/blib2to3/PatternGrammar.txt | 28 + .../python3.12/site-packages/blib2to3/README | 24 + .../site-packages/blib2to3/__init__.py | 1 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 185 bytes .../__pycache__/pygram.cpython-312.pyc | Bin 0 -> 6432 bytes .../__pycache__/pytree.cpython-312.pyc | Bin 0 -> 40884 bytes .../site-packages/blib2to3/pgen2/__init__.py | 4 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 226 bytes .../pgen2/__pycache__/conv.cpython-312.pyc | Bin 0 -> 11858 bytes .../pgen2/__pycache__/driver.cpython-312.pyc | Bin 0 -> 14347 bytes .../pgen2/__pycache__/grammar.cpython-312.pyc | Bin 0 -> 8502 bytes .../__pycache__/literals.cpython-312.pyc | Bin 0 -> 2851 bytes .../pgen2/__pycache__/parse.cpython-312.pyc | Bin 0 -> 17784 bytes .../pgen2/__pycache__/pgen.cpython-312.pyc | Bin 0 -> 20886 bytes .../pgen2/__pycache__/token.cpython-312.pyc | Bin 0 -> 3926 bytes .../__pycache__/tokenize.cpython-312.pyc | Bin 0 -> 37530 bytes .../site-packages/blib2to3/pgen2/conv.py | 256 + .../site-packages/blib2to3/pgen2/driver.py | 318 + .../site-packages/blib2to3/pgen2/grammar.py | 228 + .../site-packages/blib2to3/pgen2/literals.py | 66 + .../site-packages/blib2to3/pgen2/parse.py | 411 + .../site-packages/blib2to3/pgen2/pgen.py | 428 + .../site-packages/blib2to3/pgen2/token.py | 92 + .../site-packages/blib2to3/pgen2/tokenize.py | 1123 ++ .../site-packages/blib2to3/pygram.py | 204 + .../site-packages/blib2to3/pytree.py | 986 ++ .../click-8.1.7.dist-info/INSTALLER | 1 + .../click-8.1.7.dist-info/LICENSE.rst | 28 + .../click-8.1.7.dist-info/METADATA | 103 + .../click-8.1.7.dist-info/RECORD | 39 + .../site-packages/click-8.1.7.dist-info/WHEEL | 5 + .../click-8.1.7.dist-info/top_level.txt | 1 + .../site-packages/click/__init__.py | 73 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 2701 bytes .../click/__pycache__/_compat.cpython-312.pyc | Bin 0 -> 27449 bytes .../__pycache__/_termui_impl.cpython-312.pyc | Bin 0 -> 30581 bytes .../__pycache__/_textwrap.cpython-312.pyc | Bin 0 -> 2447 bytes .../__pycache__/_winconsole.cpython-312.pyc | Bin 0 -> 11986 bytes .../click/__pycache__/core.cpython-312.pyc | Bin 0 -> 135770 bytes .../__pycache__/decorators.cpython-312.pyc | Bin 0 -> 23974 bytes .../__pycache__/exceptions.cpython-312.pyc | Bin 0 -> 14736 bytes .../__pycache__/formatting.cpython-312.pyc | Bin 0 -> 14130 bytes .../click/__pycache__/globals.cpython-312.pyc | Bin 0 -> 3121 bytes .../click/__pycache__/parser.cpython-312.pyc | Bin 0 -> 21509 bytes .../shell_completion.cpython-312.pyc | Bin 0 -> 22772 bytes .../click/__pycache__/termui.cpython-312.pyc | Bin 0 -> 32790 bytes .../click/__pycache__/testing.cpython-312.pyc | Bin 0 -> 24578 bytes .../click/__pycache__/types.cpython-312.pyc | Bin 0 -> 49421 bytes .../click/__pycache__/utils.cpython-312.pyc | Bin 0 -> 26303 bytes .../python3.12/site-packages/click/_compat.py | 623 + .../site-packages/click/_termui_impl.py | 739 ++ .../site-packages/click/_textwrap.py | 49 + .../site-packages/click/_winconsole.py | 279 + .../python3.12/site-packages/click/core.py | 3042 +++++ .../site-packages/click/decorators.py | 561 + .../site-packages/click/exceptions.py | 288 + .../site-packages/click/formatting.py | 301 + .../python3.12/site-packages/click/globals.py | 68 + .../python3.12/site-packages/click/parser.py | 529 + .../python3.12/site-packages/click/py.typed | 0 .../site-packages/click/shell_completion.py | 596 + .../python3.12/site-packages/click/termui.py | 784 ++ .../python3.12/site-packages/click/testing.py | 479 + .../python3.12/site-packages/click/types.py | 1089 ++ .../python3.12/site-packages/click/utils.py | 624 + .../site-packages/django/__init__.py | 24 + .../site-packages/django/__main__.py | 10 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 1223 bytes .../__pycache__/__main__.cpython-312.pyc | Bin 0 -> 472 bytes .../__pycache__/shortcuts.cpython-312.pyc | Bin 0 -> 7640 bytes .../site-packages/django/apps/__init__.py | 4 + .../apps/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 306 bytes .../apps/__pycache__/config.cpython-312.pyc | Bin 0 -> 9214 bytes .../apps/__pycache__/registry.cpython-312.pyc | Bin 0 -> 18746 bytes .../site-packages/django/apps/config.py | 274 + .../site-packages/django/apps/registry.py | 437 + .../site-packages/django/conf/__init__.py | 272 + .../conf/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 13039 bytes .../global_settings.cpython-312.pyc | Bin 0 -> 12646 bytes .../django/conf/app_template/__init__.py-tpl | 0 .../django/conf/app_template/admin.py-tpl | 3 + .../django/conf/app_template/apps.py-tpl | 6 + .../app_template/migrations/__init__.py-tpl | 0 .../django/conf/app_template/models.py-tpl | 3 + .../django/conf/app_template/tests.py-tpl | 3 + .../django/conf/app_template/views.py-tpl | 3 + .../django/conf/global_settings.py | 667 + .../django/conf/locale/__init__.py | 629 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 8566 bytes .../conf/locale/af/LC_MESSAGES/django.mo | Bin 0 -> 27068 bytes .../conf/locale/af/LC_MESSAGES/django.po | 1335 ++ .../conf/locale/ar/LC_MESSAGES/django.mo | Bin 0 -> 35688 bytes .../conf/locale/ar/LC_MESSAGES/django.po | 1389 ++ .../django/conf/locale/ar/__init__.py | 0 .../ar/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 198 bytes .../ar/__pycache__/formats.cpython-312.pyc | Bin 0 -> 438 bytes .../django/conf/locale/ar/formats.py | 21 + .../conf/locale/ar_DZ/LC_MESSAGES/django.mo | Bin 0 -> 33960 bytes .../conf/locale/ar_DZ/LC_MESSAGES/django.po | 1397 ++ .../django/conf/locale/ar_DZ/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 201 bytes .../ar_DZ/__pycache__/formats.cpython-312.pyc | Bin 0 -> 746 bytes .../django/conf/locale/ar_DZ/formats.py | 29 + .../conf/locale/ast/LC_MESSAGES/django.mo | Bin 0 -> 15579 bytes .../conf/locale/ast/LC_MESSAGES/django.po | 1237 ++ .../conf/locale/az/LC_MESSAGES/django.mo | Bin 0 -> 28595 bytes .../conf/locale/az/LC_MESSAGES/django.po | 1347 ++ .../django/conf/locale/az/__init__.py | 0 .../az/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 198 bytes .../az/__pycache__/formats.cpython-312.pyc | Bin 0 -> 793 bytes .../django/conf/locale/az/formats.py | 30 + .../conf/locale/be/LC_MESSAGES/django.mo | Bin 0 -> 37554 bytes .../conf/locale/be/LC_MESSAGES/django.po | 1391 ++ .../conf/locale/bg/LC_MESSAGES/django.mo | Bin 0 -> 34729 bytes .../conf/locale/bg/LC_MESSAGES/django.po | 1353 ++ .../django/conf/locale/bg/__init__.py | 0 .../bg/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 198 bytes .../bg/__pycache__/formats.cpython-312.pyc | Bin 0 -> 394 bytes .../django/conf/locale/bg/formats.py | 21 + .../conf/locale/bn/LC_MESSAGES/django.mo | Bin 0 -> 16660 bytes .../conf/locale/bn/LC_MESSAGES/django.po | 1218 ++ .../django/conf/locale/bn/__init__.py | 0 .../bn/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 198 bytes .../bn/__pycache__/formats.cpython-312.pyc | Bin 0 -> 682 bytes .../django/conf/locale/bn/formats.py | 32 + .../conf/locale/br/LC_MESSAGES/django.mo | Bin 0 -> 14009 bytes .../conf/locale/br/LC_MESSAGES/django.po | 1297 ++ .../conf/locale/bs/LC_MESSAGES/django.mo | Bin 0 -> 10824 bytes .../conf/locale/bs/LC_MESSAGES/django.po | 1238 ++ .../django/conf/locale/bs/__init__.py | 0 .../bs/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 198 bytes .../bs/__pycache__/formats.cpython-312.pyc | Bin 0 -> 468 bytes .../django/conf/locale/bs/formats.py | 21 + .../conf/locale/ca/LC_MESSAGES/django.mo | Bin 0 -> 27707 bytes .../conf/locale/ca/LC_MESSAGES/django.po | 1340 ++ .../django/conf/locale/ca/__init__.py | 0 .../ca/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 198 bytes .../ca/__pycache__/formats.cpython-312.pyc | Bin 0 -> 815 bytes .../django/conf/locale/ca/formats.py | 30 + .../conf/locale/ckb/LC_MESSAGES/django.mo | Bin 0 -> 34015 bytes .../conf/locale/ckb/LC_MESSAGES/django.po | 1332 ++ .../django/conf/locale/ckb/__init__.py | 0 .../ckb/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 199 bytes .../ckb/__pycache__/formats.cpython-312.pyc | Bin 0 -> 566 bytes .../django/conf/locale/ckb/formats.py | 21 + .../conf/locale/cs/LC_MESSAGES/django.mo | Bin 0 -> 29060 bytes .../conf/locale/cs/LC_MESSAGES/django.po | 1362 ++ .../django/conf/locale/cs/__init__.py | 0 .../cs/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 198 bytes .../cs/__pycache__/formats.cpython-312.pyc | Bin 0 -> 931 bytes .../django/conf/locale/cs/formats.py | 43 + .../conf/locale/cy/LC_MESSAGES/django.mo | Bin 0 -> 18319 bytes .../conf/locale/cy/LC_MESSAGES/django.po | 1278 ++ .../django/conf/locale/cy/__init__.py | 0 .../cy/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 198 bytes .../cy/__pycache__/formats.cpython-312.pyc | Bin 0 -> 840 bytes .../django/conf/locale/cy/formats.py | 33 + .../conf/locale/da/LC_MESSAGES/django.mo | Bin 0 -> 27799 bytes .../conf/locale/da/LC_MESSAGES/django.po | 1341 ++ .../django/conf/locale/da/__init__.py | 0 .../da/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 198 bytes .../da/__pycache__/formats.cpython-312.pyc | Bin 0 -> 719 bytes .../django/conf/locale/da/formats.py | 26 + .../conf/locale/de/LC_MESSAGES/django.mo | Bin 0 -> 29167 bytes .../conf/locale/de/LC_MESSAGES/django.po | 1356 ++ .../django/conf/locale/de/__init__.py | 0 .../de/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 198 bytes .../de/__pycache__/formats.cpython-312.pyc | Bin 0 -> 734 bytes .../django/conf/locale/de/formats.py | 29 + .../django/conf/locale/de_CH/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 201 bytes .../de_CH/__pycache__/formats.cpython-312.pyc | Bin 0 -> 741 bytes .../django/conf/locale/de_CH/formats.py | 35 + .../conf/locale/dsb/LC_MESSAGES/django.mo | Bin 0 -> 30694 bytes .../conf/locale/dsb/LC_MESSAGES/django.po | 1385 ++ .../conf/locale/el/LC_MESSAGES/django.mo | Bin 0 -> 33648 bytes .../conf/locale/el/LC_MESSAGES/django.po | 1332 ++ .../django/conf/locale/el/__init__.py | 0 .../el/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 198 bytes .../el/__pycache__/formats.cpython-312.pyc | Bin 0 -> 827 bytes .../django/conf/locale/el/formats.py | 34 + .../conf/locale/en/LC_MESSAGES/django.mo | Bin 0 -> 356 bytes .../conf/locale/en/LC_MESSAGES/django.po | 1614 +++ .../django/conf/locale/en/__init__.py | 0 .../en/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 198 bytes .../en/__pycache__/formats.cpython-312.pyc | Bin 0 -> 1002 bytes .../django/conf/locale/en/formats.py | 65 + .../conf/locale/en_AU/LC_MESSAGES/django.mo | Bin 0 -> 25633 bytes .../conf/locale/en_AU/LC_MESSAGES/django.po | 1299 ++ .../django/conf/locale/en_AU/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 201 bytes .../en_AU/__pycache__/formats.cpython-312.pyc | Bin 0 -> 843 bytes .../django/conf/locale/en_AU/formats.py | 41 + .../django/conf/locale/en_CA/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 201 bytes .../en_CA/__pycache__/formats.cpython-312.pyc | Bin 0 -> 790 bytes .../django/conf/locale/en_CA/formats.py | 31 + .../conf/locale/en_GB/LC_MESSAGES/django.mo | Bin 0 -> 12108 bytes .../conf/locale/en_GB/LC_MESSAGES/django.po | 1221 ++ .../django/conf/locale/en_GB/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 201 bytes .../en_GB/__pycache__/formats.cpython-312.pyc | Bin 0 -> 843 bytes .../django/conf/locale/en_GB/formats.py | 41 + .../django/conf/locale/en_IE/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 201 bytes .../en_IE/__pycache__/formats.cpython-312.pyc | Bin 0 -> 885 bytes .../django/conf/locale/en_IE/formats.py | 37 + .../conf/locale/eo/LC_MESSAGES/django.mo | Bin 0 -> 27676 bytes .../conf/locale/eo/LC_MESSAGES/django.po | 1331 ++ .../django/conf/locale/eo/__init__.py | 0 .../eo/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 198 bytes .../eo/__pycache__/formats.cpython-312.pyc | Bin 0 -> 1002 bytes .../django/conf/locale/eo/formats.py | 44 + .../conf/locale/es/LC_MESSAGES/django.mo | Bin 0 -> 29265 bytes .../conf/locale/es/LC_MESSAGES/django.po | 1412 ++ .../django/conf/locale/es/__init__.py | 0 .../es/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 198 bytes .../es/__pycache__/formats.cpython-312.pyc | Bin 0 -> 832 bytes .../django/conf/locale/es/formats.py | 30 + .../conf/locale/es_AR/LC_MESSAGES/django.mo | Bin 0 -> 29643 bytes .../conf/locale/es_AR/LC_MESSAGES/django.po | 1370 ++ .../django/conf/locale/es_AR/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 201 bytes .../es_AR/__pycache__/formats.cpython-312.pyc | Bin 0 -> 796 bytes .../django/conf/locale/es_AR/formats.py | 30 + .../conf/locale/es_CO/LC_MESSAGES/django.mo | Bin 0 -> 18079 bytes .../conf/locale/es_CO/LC_MESSAGES/django.po | 1258 ++ .../django/conf/locale/es_CO/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 201 bytes .../es_CO/__pycache__/formats.cpython-312.pyc | Bin 0 -> 833 bytes .../django/conf/locale/es_CO/formats.py | 26 + .../conf/locale/es_MX/LC_MESSAGES/django.mo | Bin 0 -> 18501 bytes .../conf/locale/es_MX/LC_MESSAGES/django.po | 1279 ++ .../django/conf/locale/es_MX/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 201 bytes .../es_MX/__pycache__/formats.cpython-312.pyc | Bin 0 -> 833 bytes .../django/conf/locale/es_MX/formats.py | 26 + .../django/conf/locale/es_NI/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 201 bytes .../es_NI/__pycache__/formats.cpython-312.pyc | Bin 0 -> 833 bytes .../django/conf/locale/es_NI/formats.py | 26 + .../django/conf/locale/es_PR/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 201 bytes .../es_PR/__pycache__/formats.cpython-312.pyc | Bin 0 -> 831 bytes .../django/conf/locale/es_PR/formats.py | 27 + .../conf/locale/es_VE/LC_MESSAGES/django.mo | Bin 0 -> 18840 bytes .../conf/locale/es_VE/LC_MESSAGES/django.po | 1260 ++ .../conf/locale/et/LC_MESSAGES/django.mo | Bin 0 -> 27273 bytes .../conf/locale/et/LC_MESSAGES/django.po | 1341 ++ .../django/conf/locale/et/__init__.py | 0 .../et/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 198 bytes .../et/__pycache__/formats.cpython-312.pyc | Bin 0 -> 396 bytes .../django/conf/locale/et/formats.py | 21 + .../conf/locale/eu/LC_MESSAGES/django.mo | Bin 0 -> 21725 bytes .../conf/locale/eu/LC_MESSAGES/django.po | 1313 ++ .../django/conf/locale/eu/__init__.py | 0 .../eu/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 198 bytes .../eu/__pycache__/formats.cpython-312.pyc | Bin 0 -> 593 bytes .../django/conf/locale/eu/formats.py | 21 + .../conf/locale/fa/LC_MESSAGES/django.mo | Bin 0 -> 31655 bytes .../conf/locale/fa/LC_MESSAGES/django.po | 1343 ++ .../django/conf/locale/fa/__init__.py | 0 .../fa/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 198 bytes .../fa/__pycache__/formats.cpython-312.pyc | Bin 0 -> 559 bytes .../django/conf/locale/fa/formats.py | 21 + .../conf/locale/fi/LC_MESSAGES/django.mo | Bin 0 -> 27865 bytes .../conf/locale/fi/LC_MESSAGES/django.po | 1332 ++ .../django/conf/locale/fi/__init__.py | 0 .../fi/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 198 bytes .../fi/__pycache__/formats.cpython-312.pyc | Bin 0 -> 874 bytes .../django/conf/locale/fi/formats.py | 36 + .../conf/locale/fr/LC_MESSAGES/django.mo | Bin 0 -> 30289 bytes .../conf/locale/fr/LC_MESSAGES/django.po | 1394 ++ .../django/conf/locale/fr/__init__.py | 0 .../fr/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 198 bytes .../fr/__pycache__/formats.cpython-312.pyc | Bin 0 -> 735 bytes .../django/conf/locale/fr/formats.py | 27 + .../django/conf/locale/fr_BE/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 201 bytes .../fr_BE/__pycache__/formats.cpython-312.pyc | Bin 0 -> 809 bytes .../django/conf/locale/fr_BE/formats.py | 32 + .../django/conf/locale/fr_CA/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 201 bytes .../fr_CA/__pycache__/formats.cpython-312.pyc | Bin 0 -> 817 bytes .../django/conf/locale/fr_CA/formats.py | 30 + .../django/conf/locale/fr_CH/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 201 bytes .../fr_CH/__pycache__/formats.cpython-312.pyc | Bin 0 -> 809 bytes .../django/conf/locale/fr_CH/formats.py | 32 + .../conf/locale/fy/LC_MESSAGES/django.mo | Bin 0 -> 2286 bytes .../conf/locale/fy/LC_MESSAGES/django.po | 1218 ++ .../django/conf/locale/fy/__init__.py | 0 .../fy/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 198 bytes .../fy/__pycache__/formats.cpython-312.pyc | Bin 0 -> 197 bytes .../django/conf/locale/fy/formats.py | 21 + .../conf/locale/ga/LC_MESSAGES/django.mo | Bin 0 -> 14025 bytes .../conf/locale/ga/LC_MESSAGES/django.po | 1293 ++ .../django/conf/locale/ga/__init__.py | 0 .../ga/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 198 bytes .../ga/__pycache__/formats.cpython-312.pyc | Bin 0 -> 390 bytes .../django/conf/locale/ga/formats.py | 21 + .../conf/locale/gd/LC_MESSAGES/django.mo | Bin 0 -> 30752 bytes .../conf/locale/gd/LC_MESSAGES/django.po | 1386 ++ .../django/conf/locale/gd/__init__.py | 0 .../gd/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 198 bytes .../gd/__pycache__/formats.cpython-312.pyc | Bin 0 -> 506 bytes .../django/conf/locale/gd/formats.py | 21 + .../conf/locale/gl/LC_MESSAGES/django.mo | Bin 0 -> 28464 bytes .../conf/locale/gl/LC_MESSAGES/django.po | 1356 ++ .../django/conf/locale/gl/__init__.py | 0 .../gl/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 198 bytes .../gl/__pycache__/formats.cpython-312.pyc | Bin 0 -> 577 bytes .../django/conf/locale/gl/formats.py | 21 + .../conf/locale/he/LC_MESSAGES/django.mo | Bin 0 -> 32301 bytes .../conf/locale/he/LC_MESSAGES/django.po | 1351 ++ .../django/conf/locale/he/__init__.py | 0 .../he/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 198 bytes .../he/__pycache__/formats.cpython-312.pyc | Bin 0 -> 518 bytes .../django/conf/locale/he/formats.py | 21 + .../conf/locale/hi/LC_MESSAGES/django.mo | Bin 0 -> 19712 bytes .../conf/locale/hi/LC_MESSAGES/django.po | 1254 ++ .../django/conf/locale/hi/__init__.py | 0 .../hi/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 198 bytes .../hi/__pycache__/formats.cpython-312.pyc | Bin 0 -> 392 bytes .../django/conf/locale/hi/formats.py | 21 + .../conf/locale/hr/LC_MESSAGES/django.mo | Bin 0 -> 19457 bytes .../conf/locale/hr/LC_MESSAGES/django.po | 1274 ++ .../django/conf/locale/hr/__init__.py | 0 .../hr/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 198 bytes .../hr/__pycache__/formats.cpython-312.pyc | Bin 0 -> 1023 bytes .../django/conf/locale/hr/formats.py | 44 + .../conf/locale/hsb/LC_MESSAGES/django.mo | Bin 0 -> 30347 bytes .../conf/locale/hsb/LC_MESSAGES/django.po | 1377 ++ .../conf/locale/hu/LC_MESSAGES/django.mo | Bin 0 -> 29197 bytes .../conf/locale/hu/LC_MESSAGES/django.po | 1358 ++ .../django/conf/locale/hu/__init__.py | 0 .../hu/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 198 bytes .../hu/__pycache__/formats.cpython-312.pyc | Bin 0 -> 793 bytes .../django/conf/locale/hu/formats.py | 30 + .../conf/locale/hy/LC_MESSAGES/django.mo | Bin 0 -> 22207 bytes .../conf/locale/hy/LC_MESSAGES/django.po | 1237 ++ .../conf/locale/ia/LC_MESSAGES/django.mo | Bin 0 -> 21428 bytes .../conf/locale/ia/LC_MESSAGES/django.po | 1289 ++ .../conf/locale/id/LC_MESSAGES/django.mo | Bin 0 -> 27405 bytes .../conf/locale/id/LC_MESSAGES/django.po | 1338 ++ .../django/conf/locale/id/__init__.py | 0 .../id/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 198 bytes .../id/__pycache__/formats.cpython-312.pyc | Bin 0 -> 1018 bytes .../django/conf/locale/id/formats.py | 49 + .../conf/locale/ig/LC_MESSAGES/django.mo | Bin 0 -> 27188 bytes .../conf/locale/ig/LC_MESSAGES/django.po | 1271 ++ .../django/conf/locale/ig/__init__.py | 0 .../ig/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 198 bytes .../ig/__pycache__/formats.cpython-312.pyc | Bin 0 -> 794 bytes .../django/conf/locale/ig/formats.py | 32 + .../conf/locale/io/LC_MESSAGES/django.mo | Bin 0 -> 14317 bytes .../conf/locale/io/LC_MESSAGES/django.po | 1231 ++ .../conf/locale/is/LC_MESSAGES/django.mo | Bin 0 -> 24273 bytes .../conf/locale/is/LC_MESSAGES/django.po | 1302 ++ .../django/conf/locale/is/__init__.py | 0 .../is/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 198 bytes .../is/__pycache__/formats.cpython-312.pyc | Bin 0 -> 455 bytes .../django/conf/locale/is/formats.py | 21 + .../conf/locale/it/LC_MESSAGES/django.mo | Bin 0 -> 28587 bytes .../conf/locale/it/LC_MESSAGES/django.po | 1367 ++ .../django/conf/locale/it/__init__.py | 0 .../it/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 198 bytes .../it/__pycache__/formats.cpython-312.pyc | Bin 0 -> 995 bytes .../django/conf/locale/it/formats.py | 43 + .../conf/locale/ja/LC_MESSAGES/django.mo | Bin 0 -> 30945 bytes .../conf/locale/ja/LC_MESSAGES/django.po | 1331 ++ .../django/conf/locale/ja/__init__.py | 0 .../ja/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 198 bytes .../ja/__pycache__/formats.cpython-312.pyc | Bin 0 -> 569 bytes .../django/conf/locale/ja/formats.py | 21 + .../conf/locale/ka/LC_MESSAGES/django.mo | Bin 0 -> 24759 bytes .../conf/locale/ka/LC_MESSAGES/django.po | 1239 ++ .../django/conf/locale/ka/__init__.py | 0 .../ka/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 198 bytes .../ka/__pycache__/formats.cpython-312.pyc | Bin 0 -> 993 bytes .../django/conf/locale/ka/formats.py | 48 + .../conf/locale/kab/LC_MESSAGES/django.mo | Bin 0 -> 7139 bytes .../conf/locale/kab/LC_MESSAGES/django.po | 1211 ++ .../conf/locale/kk/LC_MESSAGES/django.mo | Bin 0 -> 13148 bytes .../conf/locale/kk/LC_MESSAGES/django.po | 1223 ++ .../conf/locale/km/LC_MESSAGES/django.mo | Bin 0 -> 7223 bytes .../conf/locale/km/LC_MESSAGES/django.po | 1196 ++ .../django/conf/locale/km/__init__.py | 0 .../km/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 198 bytes .../km/__pycache__/formats.cpython-312.pyc | Bin 0 -> 523 bytes .../django/conf/locale/km/formats.py | 21 + .../conf/locale/kn/LC_MESSAGES/django.mo | Bin 0 -> 17515 bytes .../conf/locale/kn/LC_MESSAGES/django.po | 1232 ++ .../django/conf/locale/kn/__init__.py | 0 .../kn/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 198 bytes .../kn/__pycache__/formats.cpython-312.pyc | Bin 0 -> 325 bytes .../django/conf/locale/kn/formats.py | 21 + .../conf/locale/ko/LC_MESSAGES/django.mo | Bin 0 -> 29175 bytes .../conf/locale/ko/LC_MESSAGES/django.po | 1333 ++ .../django/conf/locale/ko/__init__.py | 0 .../ko/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 198 bytes .../ko/__pycache__/formats.cpython-312.pyc | Bin 0 -> 1064 bytes .../django/conf/locale/ko/formats.py | 54 + .../conf/locale/ky/LC_MESSAGES/django.mo | Bin 0 -> 31395 bytes .../conf/locale/ky/LC_MESSAGES/django.po | 1279 ++ .../django/conf/locale/ky/__init__.py | 0 .../ky/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 198 bytes .../ky/__pycache__/formats.cpython-312.pyc | Bin 0 -> 823 bytes .../django/conf/locale/ky/formats.py | 32 + .../conf/locale/lb/LC_MESSAGES/django.mo | Bin 0 -> 8008 bytes .../conf/locale/lb/LC_MESSAGES/django.po | 1213 ++ .../conf/locale/lt/LC_MESSAGES/django.mo | Bin 0 -> 21421 bytes .../conf/locale/lt/LC_MESSAGES/django.po | 1324 ++ .../django/conf/locale/lt/__init__.py | 0 .../lt/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 198 bytes .../lt/__pycache__/formats.cpython-312.pyc | Bin 0 -> 1029 bytes .../django/conf/locale/lt/formats.py | 45 + .../conf/locale/lv/LC_MESSAGES/django.mo | Bin 0 -> 29213 bytes .../conf/locale/lv/LC_MESSAGES/django.po | 1367 ++ .../django/conf/locale/lv/__init__.py | 0 .../lv/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 198 bytes .../lv/__pycache__/formats.cpython-312.pyc | Bin 0 -> 1037 bytes .../django/conf/locale/lv/formats.py | 46 + .../conf/locale/mk/LC_MESSAGES/django.mo | Bin 0 -> 22737 bytes .../conf/locale/mk/LC_MESSAGES/django.po | 1273 ++ .../django/conf/locale/mk/__init__.py | 0 .../mk/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 198 bytes .../mk/__pycache__/formats.cpython-312.pyc | Bin 0 -> 934 bytes .../django/conf/locale/mk/formats.py | 40 + .../conf/locale/ml/LC_MESSAGES/django.mo | Bin 0 -> 30808 bytes .../conf/locale/ml/LC_MESSAGES/django.po | 1274 ++ .../django/conf/locale/ml/__init__.py | 0 .../ml/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 198 bytes .../ml/__pycache__/formats.cpython-312.pyc | Bin 0 -> 846 bytes .../django/conf/locale/ml/formats.py | 43 + .../conf/locale/mn/LC_MESSAGES/django.mo | Bin 0 -> 33282 bytes .../conf/locale/mn/LC_MESSAGES/django.po | 1345 ++ .../django/conf/locale/mn/__init__.py | 0 .../mn/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 198 bytes .../mn/__pycache__/formats.cpython-312.pyc | Bin 0 -> 292 bytes .../django/conf/locale/mn/formats.py | 21 + .../conf/locale/mr/LC_MESSAGES/django.mo | Bin 0 -> 27608 bytes .../conf/locale/mr/LC_MESSAGES/django.po | 1280 ++ .../conf/locale/ms/LC_MESSAGES/django.mo | Bin 0 -> 27066 bytes .../conf/locale/ms/LC_MESSAGES/django.po | 1286 ++ .../django/conf/locale/ms/__init__.py | 0 .../ms/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 198 bytes .../ms/__pycache__/formats.cpython-312.pyc | Bin 0 -> 886 bytes .../django/conf/locale/ms/formats.py | 38 + .../conf/locale/my/LC_MESSAGES/django.mo | Bin 0 -> 2589 bytes .../conf/locale/my/LC_MESSAGES/django.po | 1197 ++ .../conf/locale/nb/LC_MESSAGES/django.mo | Bin 0 -> 27007 bytes .../conf/locale/nb/LC_MESSAGES/django.po | 1324 ++ .../django/conf/locale/nb/__init__.py | 0 .../nb/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 198 bytes .../nb/__pycache__/formats.cpython-312.pyc | Bin 0 -> 856 bytes .../django/conf/locale/nb/formats.py | 41 + .../conf/locale/ne/LC_MESSAGES/django.mo | Bin 0 -> 27248 bytes .../conf/locale/ne/LC_MESSAGES/django.po | 1253 ++ .../conf/locale/nl/LC_MESSAGES/django.mo | Bin 0 -> 28191 bytes .../conf/locale/nl/LC_MESSAGES/django.po | 1356 ++ .../django/conf/locale/nl/__init__.py | 0 .../nl/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 198 bytes .../nl/__pycache__/formats.cpython-312.pyc | Bin 0 -> 1367 bytes .../django/conf/locale/nl/formats.py | 92 + .../conf/locale/nn/LC_MESSAGES/django.mo | Bin 0 -> 26850 bytes .../conf/locale/nn/LC_MESSAGES/django.po | 1305 ++ .../django/conf/locale/nn/__init__.py | 0 .../nn/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 198 bytes .../nn/__pycache__/formats.cpython-312.pyc | Bin 0 -> 856 bytes .../django/conf/locale/nn/formats.py | 41 + .../conf/locale/os/LC_MESSAGES/django.mo | Bin 0 -> 17994 bytes .../conf/locale/os/LC_MESSAGES/django.po | 1235 ++ .../conf/locale/pa/LC_MESSAGES/django.mo | Bin 0 -> 11253 bytes .../conf/locale/pa/LC_MESSAGES/django.po | 1213 ++ .../conf/locale/pl/LC_MESSAGES/django.mo | Bin 0 -> 30667 bytes .../conf/locale/pl/LC_MESSAGES/django.po | 1422 ++ .../django/conf/locale/pl/__init__.py | 0 .../pl/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 198 bytes .../pl/__pycache__/formats.cpython-312.pyc | Bin 0 -> 740 bytes .../django/conf/locale/pl/formats.py | 30 + .../conf/locale/pt/LC_MESSAGES/django.mo | Bin 0 -> 20657 bytes .../conf/locale/pt/LC_MESSAGES/django.po | 1254 ++ .../django/conf/locale/pt/__init__.py | 0 .../pt/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 198 bytes .../pt/__pycache__/formats.cpython-312.pyc | Bin 0 -> 887 bytes .../django/conf/locale/pt/formats.py | 39 + .../conf/locale/pt_BR/LC_MESSAGES/django.mo | Bin 0 -> 29218 bytes .../conf/locale/pt_BR/LC_MESSAGES/django.po | 1403 ++ .../django/conf/locale/pt_BR/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 201 bytes .../pt_BR/__pycache__/formats.cpython-312.pyc | Bin 0 -> 829 bytes .../django/conf/locale/pt_BR/formats.py | 34 + .../conf/locale/ro/LC_MESSAGES/django.mo | Bin 0 -> 21493 bytes .../conf/locale/ro/LC_MESSAGES/django.po | 1323 ++ .../django/conf/locale/ro/__init__.py | 0 .../ro/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 198 bytes .../ro/__pycache__/formats.cpython-312.pyc | Bin 0 -> 836 bytes .../django/conf/locale/ro/formats.py | 35 + .../conf/locale/ru/LC_MESSAGES/django.mo | Bin 0 -> 38774 bytes .../conf/locale/ru/LC_MESSAGES/django.po | 1424 ++ .../django/conf/locale/ru/__init__.py | 0 .../ru/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 198 bytes .../ru/__pycache__/formats.cpython-312.pyc | Bin 0 -> 813 bytes .../django/conf/locale/ru/formats.py | 30 + .../conf/locale/sk/LC_MESSAGES/django.mo | Bin 0 -> 29942 bytes .../conf/locale/sk/LC_MESSAGES/django.po | 1387 ++ .../django/conf/locale/sk/__init__.py | 0 .../sk/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 198 bytes .../sk/__pycache__/formats.cpython-312.pyc | Bin 0 -> 742 bytes .../django/conf/locale/sk/formats.py | 30 + .../conf/locale/sl/LC_MESSAGES/django.mo | Bin 0 -> 23147 bytes .../conf/locale/sl/LC_MESSAGES/django.po | 1351 ++ .../django/conf/locale/sl/__init__.py | 0 .../sl/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 198 bytes .../sl/__pycache__/formats.cpython-312.pyc | Bin 0 -> 1006 bytes .../django/conf/locale/sl/formats.py | 44 + .../conf/locale/sq/LC_MESSAGES/django.mo | Bin 0 -> 28679 bytes .../conf/locale/sq/LC_MESSAGES/django.po | 1353 ++ .../django/conf/locale/sq/__init__.py | 0 .../sq/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 198 bytes .../sq/__pycache__/formats.cpython-312.pyc | Bin 0 -> 424 bytes .../django/conf/locale/sq/formats.py | 21 + .../conf/locale/sr/LC_MESSAGES/django.mo | Bin 0 -> 35035 bytes .../conf/locale/sr/LC_MESSAGES/django.po | 1364 ++ .../django/conf/locale/sr/__init__.py | 0 .../sr/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 198 bytes .../sr/__pycache__/formats.cpython-312.pyc | Bin 0 -> 956 bytes .../django/conf/locale/sr/formats.py | 44 + .../conf/locale/sr_Latn/LC_MESSAGES/django.mo | Bin 0 -> 28715 bytes .../conf/locale/sr_Latn/LC_MESSAGES/django.po | 1638 +++ .../django/conf/locale/sr_Latn/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 203 bytes .../__pycache__/formats.cpython-312.pyc | Bin 0 -> 961 bytes .../django/conf/locale/sr_Latn/formats.py | 44 + .../conf/locale/sv/LC_MESSAGES/django.mo | Bin 0 -> 28006 bytes .../conf/locale/sv/LC_MESSAGES/django.po | 1362 ++ .../django/conf/locale/sv/__init__.py | 0 .../sv/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 198 bytes .../sv/__pycache__/formats.cpython-312.pyc | Bin 0 -> 853 bytes .../django/conf/locale/sv/formats.py | 35 + .../conf/locale/sw/LC_MESSAGES/django.mo | Bin 0 -> 13534 bytes .../conf/locale/sw/LC_MESSAGES/django.po | 1221 ++ .../conf/locale/ta/LC_MESSAGES/django.mo | Bin 0 -> 7094 bytes .../conf/locale/ta/LC_MESSAGES/django.po | 1230 ++ .../django/conf/locale/ta/__init__.py | 0 .../ta/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 198 bytes .../ta/__pycache__/formats.cpython-312.pyc | Bin 0 -> 327 bytes .../django/conf/locale/ta/formats.py | 21 + .../conf/locale/te/LC_MESSAGES/django.mo | Bin 0 -> 13259 bytes .../conf/locale/te/LC_MESSAGES/django.po | 1233 ++ .../django/conf/locale/te/__init__.py | 0 .../te/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 198 bytes .../te/__pycache__/formats.cpython-312.pyc | Bin 0 -> 325 bytes .../django/conf/locale/te/formats.py | 21 + .../conf/locale/tg/LC_MESSAGES/django.mo | Bin 0 -> 28497 bytes .../conf/locale/tg/LC_MESSAGES/django.po | 1299 ++ .../django/conf/locale/tg/__init__.py | 0 .../tg/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 198 bytes .../tg/__pycache__/formats.cpython-312.pyc | Bin 0 -> 823 bytes .../django/conf/locale/tg/formats.py | 32 + .../conf/locale/th/LC_MESSAGES/django.mo | Bin 0 -> 18629 bytes .../conf/locale/th/LC_MESSAGES/django.po | 1208 ++ .../django/conf/locale/th/__init__.py | 0 .../th/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 198 bytes .../th/__pycache__/formats.cpython-312.pyc | Bin 0 -> 805 bytes .../django/conf/locale/th/formats.py | 33 + .../conf/locale/tk/LC_MESSAGES/django.mo | Bin 0 -> 27792 bytes .../conf/locale/tk/LC_MESSAGES/django.po | 1337 ++ .../django/conf/locale/tk/__init__.py | 0 .../tk/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 198 bytes .../tk/__pycache__/formats.cpython-312.pyc | Bin 0 -> 823 bytes .../django/conf/locale/tk/formats.py | 32 + .../conf/locale/tr/LC_MESSAGES/django.mo | Bin 0 -> 28842 bytes .../conf/locale/tr/LC_MESSAGES/django.po | 1359 ++ .../django/conf/locale/tr/__init__.py | 0 .../tr/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 198 bytes .../tr/__pycache__/formats.cpython-312.pyc | Bin 0 -> 735 bytes .../django/conf/locale/tr/formats.py | 30 + .../conf/locale/tt/LC_MESSAGES/django.mo | Bin 0 -> 14500 bytes .../conf/locale/tt/LC_MESSAGES/django.po | 1211 ++ .../conf/locale/udm/LC_MESSAGES/django.mo | Bin 0 -> 12822 bytes .../conf/locale/udm/LC_MESSAGES/django.po | 1197 ++ .../conf/locale/ug/LC_MESSAGES/django.mo | Bin 0 -> 35453 bytes .../conf/locale/ug/LC_MESSAGES/django.po | 1346 ++ .../django/conf/locale/ug/__init__.py | 0 .../ug/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 198 bytes .../ug/__pycache__/formats.cpython-312.pyc | Bin 0 -> 529 bytes .../django/conf/locale/ug/formats.py | 14 + .../conf/locale/uk/LC_MESSAGES/django.mo | Bin 0 -> 30194 bytes .../conf/locale/uk/LC_MESSAGES/django.po | 1365 ++ .../django/conf/locale/uk/__init__.py | 0 .../uk/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 198 bytes .../uk/__pycache__/formats.cpython-312.pyc | Bin 0 -> 874 bytes .../django/conf/locale/uk/formats.py | 35 + .../conf/locale/ur/LC_MESSAGES/django.mo | Bin 0 -> 12291 bytes .../conf/locale/ur/LC_MESSAGES/django.po | 1222 ++ .../conf/locale/uz/LC_MESSAGES/django.mo | Bin 0 -> 26443 bytes .../conf/locale/uz/LC_MESSAGES/django.po | 1322 ++ .../django/conf/locale/uz/__init__.py | 0 .../uz/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 198 bytes .../uz/__pycache__/formats.cpython-312.pyc | Bin 0 -> 835 bytes .../django/conf/locale/uz/formats.py | 30 + .../conf/locale/vi/LC_MESSAGES/django.mo | Bin 0 -> 17396 bytes .../conf/locale/vi/LC_MESSAGES/django.po | 1234 ++ .../django/conf/locale/vi/__init__.py | 0 .../vi/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 198 bytes .../vi/__pycache__/formats.cpython-312.pyc | Bin 0 -> 563 bytes .../django/conf/locale/vi/formats.py | 21 + .../conf/locale/zh_Hans/LC_MESSAGES/django.mo | Bin 0 -> 26927 bytes .../conf/locale/zh_Hans/LC_MESSAGES/django.po | 1317 ++ .../django/conf/locale/zh_Hans/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 203 bytes .../__pycache__/formats.cpython-312.pyc | Bin 0 -> 979 bytes .../django/conf/locale/zh_Hans/formats.py | 42 + .../conf/locale/zh_Hant/LC_MESSAGES/django.mo | Bin 0 -> 26802 bytes .../conf/locale/zh_Hant/LC_MESSAGES/django.po | 1293 ++ .../django/conf/locale/zh_Hant/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 203 bytes .../__pycache__/formats.cpython-312.pyc | Bin 0 -> 979 bytes .../django/conf/locale/zh_Hant/formats.py | 42 + .../conf/project_template/manage.py-tpl | 22 + .../project_name/__init__.py-tpl | 0 .../project_template/project_name/asgi.py-tpl | 16 + .../project_name/settings.py-tpl | 123 + .../project_template/project_name/urls.py-tpl | 22 + .../project_template/project_name/wsgi.py-tpl | 16 + .../django/conf/urls/__init__.py | 9 + .../urls/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 584 bytes .../urls/__pycache__/i18n.cpython-312.pyc | Bin 0 -> 1700 bytes .../urls/__pycache__/static.cpython-312.pyc | Bin 0 -> 1298 bytes .../site-packages/django/conf/urls/i18n.py | 39 + .../site-packages/django/conf/urls/static.py | 30 + .../site-packages/django/contrib/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 191 bytes .../django/contrib/admin/__init__.py | 52 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 1307 bytes .../admin/__pycache__/actions.cpython-312.pyc | Bin 0 -> 3401 bytes .../admin/__pycache__/apps.cpython-312.pyc | Bin 0 -> 1872 bytes .../admin/__pycache__/checks.cpython-312.pyc | Bin 0 -> 55964 bytes .../__pycache__/decorators.cpython-312.pyc | Bin 0 -> 3938 bytes .../__pycache__/exceptions.cpython-312.pyc | Bin 0 -> 1167 bytes .../admin/__pycache__/filters.cpython-312.pyc | Bin 0 -> 35115 bytes .../admin/__pycache__/forms.cpython-312.pyc | Bin 0 -> 1706 bytes .../admin/__pycache__/helpers.cpython-312.pyc | Bin 0 -> 26746 bytes .../admin/__pycache__/models.cpython-312.pyc | Bin 0 -> 10251 bytes .../admin/__pycache__/options.cpython-312.pyc | Bin 0 -> 108363 bytes .../admin/__pycache__/sites.cpython-312.pyc | Bin 0 -> 25979 bytes .../admin/__pycache__/tests.cpython-312.pyc | Bin 0 -> 12037 bytes .../admin/__pycache__/utils.cpython-312.pyc | Bin 0 -> 27733 bytes .../admin/__pycache__/widgets.cpython-312.pyc | Bin 0 -> 29208 bytes .../django/contrib/admin/actions.py | 94 + .../django/contrib/admin/apps.py | 27 + .../django/contrib/admin/checks.py | 1359 ++ .../django/contrib/admin/decorators.py | 111 + .../django/contrib/admin/exceptions.py | 25 + .../django/contrib/admin/filters.py | 716 ++ .../django/contrib/admin/forms.py | 31 + .../django/contrib/admin/helpers.py | 568 + .../admin/locale/af/LC_MESSAGES/django.mo | Bin 0 -> 17407 bytes .../admin/locale/af/LC_MESSAGES/django.po | 774 ++ .../admin/locale/af/LC_MESSAGES/djangojs.mo | Bin 0 -> 5773 bytes .../admin/locale/af/LC_MESSAGES/djangojs.po | 324 + .../admin/locale/am/LC_MESSAGES/django.mo | Bin 0 -> 8309 bytes .../admin/locale/am/LC_MESSAGES/django.po | 636 + .../admin/locale/ar/LC_MESSAGES/django.mo | Bin 0 -> 19890 bytes .../admin/locale/ar/LC_MESSAGES/django.po | 731 ++ .../admin/locale/ar/LC_MESSAGES/djangojs.mo | Bin 0 -> 6545 bytes .../admin/locale/ar/LC_MESSAGES/djangojs.po | 278 + .../admin/locale/ar_DZ/LC_MESSAGES/django.mo | Bin 0 -> 19947 bytes .../admin/locale/ar_DZ/LC_MESSAGES/django.po | 738 ++ .../locale/ar_DZ/LC_MESSAGES/djangojs.mo | Bin 0 -> 6423 bytes .../locale/ar_DZ/LC_MESSAGES/djangojs.po | 280 + .../admin/locale/ast/LC_MESSAGES/django.mo | Bin 0 -> 2476 bytes .../admin/locale/ast/LC_MESSAGES/django.po | 636 + .../admin/locale/ast/LC_MESSAGES/djangojs.mo | Bin 0 -> 2137 bytes .../admin/locale/ast/LC_MESSAGES/djangojs.po | 211 + .../admin/locale/az/LC_MESSAGES/django.mo | Bin 0 -> 18963 bytes .../admin/locale/az/LC_MESSAGES/django.po | 791 ++ .../admin/locale/az/LC_MESSAGES/djangojs.mo | Bin 0 -> 5225 bytes .../admin/locale/az/LC_MESSAGES/djangojs.po | 272 + .../admin/locale/be/LC_MESSAGES/django.mo | Bin 0 -> 23275 bytes .../admin/locale/be/LC_MESSAGES/django.po | 791 ++ .../admin/locale/be/LC_MESSAGES/djangojs.mo | Bin 0 -> 7703 bytes .../admin/locale/be/LC_MESSAGES/djangojs.po | 333 + .../admin/locale/bg/LC_MESSAGES/django.mo | Bin 0 -> 22994 bytes .../admin/locale/bg/LC_MESSAGES/django.po | 791 ++ .../admin/locale/bg/LC_MESSAGES/djangojs.mo | Bin 0 -> 7195 bytes .../admin/locale/bg/LC_MESSAGES/djangojs.po | 320 + .../admin/locale/bn/LC_MESSAGES/django.mo | Bin 0 -> 18585 bytes .../admin/locale/bn/LC_MESSAGES/django.po | 713 + .../admin/locale/bn/LC_MESSAGES/djangojs.mo | Bin 0 -> 2313 bytes .../admin/locale/bn/LC_MESSAGES/djangojs.po | 207 + .../admin/locale/br/LC_MESSAGES/django.mo | Bin 0 -> 6489 bytes .../admin/locale/br/LC_MESSAGES/django.po | 671 + .../admin/locale/br/LC_MESSAGES/djangojs.mo | Bin 0 -> 1658 bytes .../admin/locale/br/LC_MESSAGES/djangojs.po | 217 + .../admin/locale/bs/LC_MESSAGES/django.mo | Bin 0 -> 8845 bytes .../admin/locale/bs/LC_MESSAGES/django.po | 657 + .../admin/locale/bs/LC_MESSAGES/djangojs.mo | Bin 0 -> 1183 bytes .../admin/locale/bs/LC_MESSAGES/djangojs.po | 211 + .../admin/locale/ca/LC_MESSAGES/django.mo | Bin 0 -> 17535 bytes .../admin/locale/ca/LC_MESSAGES/django.po | 750 ++ .../admin/locale/ca/LC_MESSAGES/djangojs.mo | Bin 0 -> 6075 bytes .../admin/locale/ca/LC_MESSAGES/djangojs.po | 330 + .../admin/locale/ckb/LC_MESSAGES/django.mo | Bin 0 -> 23234 bytes .../admin/locale/ckb/LC_MESSAGES/django.po | 792 ++ .../admin/locale/ckb/LC_MESSAGES/djangojs.mo | Bin 0 -> 7671 bytes .../admin/locale/ckb/LC_MESSAGES/djangojs.po | 329 + .../admin/locale/cs/LC_MESSAGES/django.mo | Bin 0 -> 17736 bytes .../admin/locale/cs/LC_MESSAGES/django.po | 750 ++ .../admin/locale/cs/LC_MESSAGES/djangojs.mo | Bin 0 -> 5851 bytes .../admin/locale/cs/LC_MESSAGES/djangojs.po | 280 + .../admin/locale/cy/LC_MESSAGES/django.mo | Bin 0 -> 12521 bytes .../admin/locale/cy/LC_MESSAGES/django.po | 675 + .../admin/locale/cy/LC_MESSAGES/djangojs.mo | Bin 0 -> 3801 bytes .../admin/locale/cy/LC_MESSAGES/djangojs.po | 222 + .../admin/locale/da/LC_MESSAGES/django.mo | Bin 0 -> 18085 bytes .../admin/locale/da/LC_MESSAGES/django.po | 788 ++ .../admin/locale/da/LC_MESSAGES/djangojs.mo | Bin 0 -> 5984 bytes .../admin/locale/da/LC_MESSAGES/djangojs.po | 329 + .../admin/locale/de/LC_MESSAGES/django.mo | Bin 0 -> 18731 bytes .../admin/locale/de/LC_MESSAGES/django.po | 791 ++ .../admin/locale/de/LC_MESSAGES/djangojs.mo | Bin 0 -> 6130 bytes .../admin/locale/de/LC_MESSAGES/djangojs.po | 331 + .../admin/locale/dsb/LC_MESSAGES/django.mo | Bin 0 -> 18813 bytes .../admin/locale/dsb/LC_MESSAGES/django.po | 781 ++ .../admin/locale/dsb/LC_MESSAGES/djangojs.mo | Bin 0 -> 6609 bytes .../admin/locale/dsb/LC_MESSAGES/djangojs.po | 335 + .../admin/locale/el/LC_MESSAGES/django.mo | Bin 0 -> 22968 bytes .../admin/locale/el/LC_MESSAGES/django.po | 737 ++ .../admin/locale/el/LC_MESSAGES/djangojs.mo | Bin 0 -> 6509 bytes .../admin/locale/el/LC_MESSAGES/djangojs.po | 272 + .../admin/locale/en/LC_MESSAGES/django.mo | Bin 0 -> 356 bytes .../admin/locale/en/LC_MESSAGES/django.po | 978 ++ .../admin/locale/en/LC_MESSAGES/djangojs.mo | Bin 0 -> 356 bytes .../admin/locale/en/LC_MESSAGES/djangojs.po | 383 + .../admin/locale/en_AU/LC_MESSAGES/django.mo | Bin 0 -> 16191 bytes .../admin/locale/en_AU/LC_MESSAGES/django.po | 724 ++ .../locale/en_AU/LC_MESSAGES/djangojs.mo | Bin 0 -> 5001 bytes .../locale/en_AU/LC_MESSAGES/djangojs.po | 266 + .../admin/locale/en_GB/LC_MESSAGES/django.mo | Bin 0 -> 11159 bytes .../admin/locale/en_GB/LC_MESSAGES/django.po | 691 + .../locale/en_GB/LC_MESSAGES/djangojs.mo | Bin 0 -> 3147 bytes .../locale/en_GB/LC_MESSAGES/djangojs.po | 218 + .../admin/locale/eo/LC_MESSAGES/django.mo | Bin 0 -> 14194 bytes .../admin/locale/eo/LC_MESSAGES/django.po | 728 ++ .../admin/locale/eo/LC_MESSAGES/djangojs.mo | Bin 0 -> 4595 bytes .../admin/locale/eo/LC_MESSAGES/djangojs.po | 268 + .../admin/locale/es/LC_MESSAGES/django.mo | Bin 0 -> 19163 bytes .../admin/locale/es/LC_MESSAGES/django.po | 818 ++ .../admin/locale/es/LC_MESSAGES/djangojs.mo | Bin 0 -> 6347 bytes .../admin/locale/es/LC_MESSAGES/djangojs.po | 336 + .../admin/locale/es_AR/LC_MESSAGES/django.mo | Bin 0 -> 19032 bytes .../admin/locale/es_AR/LC_MESSAGES/django.po | 791 ++ .../locale/es_AR/LC_MESSAGES/djangojs.mo | Bin 0 -> 6647 bytes .../locale/es_AR/LC_MESSAGES/djangojs.po | 343 + .../admin/locale/es_CO/LC_MESSAGES/django.mo | Bin 0 -> 15156 bytes .../admin/locale/es_CO/LC_MESSAGES/django.po | 697 + .../locale/es_CO/LC_MESSAGES/djangojs.mo | Bin 0 -> 3895 bytes .../locale/es_CO/LC_MESSAGES/djangojs.po | 223 + .../admin/locale/es_MX/LC_MESSAGES/django.mo | Bin 0 -> 11517 bytes .../admin/locale/es_MX/LC_MESSAGES/django.po | 720 ++ .../locale/es_MX/LC_MESSAGES/djangojs.mo | Bin 0 -> 3380 bytes .../locale/es_MX/LC_MESSAGES/djangojs.po | 219 + .../admin/locale/es_VE/LC_MESSAGES/django.mo | Bin 0 -> 16837 bytes .../admin/locale/es_VE/LC_MESSAGES/django.po | 698 + .../locale/es_VE/LC_MESSAGES/djangojs.mo | Bin 0 -> 4635 bytes .../locale/es_VE/LC_MESSAGES/djangojs.po | 222 + .../admin/locale/et/LC_MESSAGES/django.mo | Bin 0 -> 17574 bytes .../admin/locale/et/LC_MESSAGES/django.po | 784 ++ .../admin/locale/et/LC_MESSAGES/djangojs.mo | Bin 0 -> 5880 bytes .../admin/locale/et/LC_MESSAGES/djangojs.po | 329 + .../admin/locale/eu/LC_MESSAGES/django.mo | Bin 0 -> 15009 bytes .../admin/locale/eu/LC_MESSAGES/django.po | 732 ++ .../admin/locale/eu/LC_MESSAGES/djangojs.mo | Bin 0 -> 4480 bytes .../admin/locale/eu/LC_MESSAGES/djangojs.po | 267 + .../admin/locale/fa/LC_MESSAGES/django.mo | Bin 0 -> 20889 bytes .../admin/locale/fa/LC_MESSAGES/django.po | 790 ++ .../admin/locale/fa/LC_MESSAGES/djangojs.mo | Bin 0 -> 6050 bytes .../admin/locale/fa/LC_MESSAGES/djangojs.po | 271 + .../admin/locale/fi/LC_MESSAGES/django.mo | Bin 0 -> 17289 bytes .../admin/locale/fi/LC_MESSAGES/django.po | 772 ++ .../admin/locale/fi/LC_MESSAGES/djangojs.mo | Bin 0 -> 5822 bytes .../admin/locale/fi/LC_MESSAGES/djangojs.po | 329 + .../admin/locale/fr/LC_MESSAGES/django.mo | Bin 0 -> 20013 bytes .../admin/locale/fr/LC_MESSAGES/django.po | 807 ++ .../admin/locale/fr/LC_MESSAGES/djangojs.mo | Bin 0 -> 6509 bytes .../admin/locale/fr/LC_MESSAGES/djangojs.po | 332 + .../admin/locale/fy/LC_MESSAGES/django.mo | Bin 0 -> 476 bytes .../admin/locale/fy/LC_MESSAGES/django.po | 609 + .../admin/locale/fy/LC_MESSAGES/djangojs.mo | Bin 0 -> 476 bytes .../admin/locale/fy/LC_MESSAGES/djangojs.po | 145 + .../admin/locale/ga/LC_MESSAGES/django.mo | Bin 0 -> 15075 bytes .../admin/locale/ga/LC_MESSAGES/django.po | 715 ++ .../admin/locale/ga/LC_MESSAGES/djangojs.mo | Bin 0 -> 5247 bytes .../admin/locale/ga/LC_MESSAGES/djangojs.po | 234 + .../admin/locale/gd/LC_MESSAGES/django.mo | Bin 0 -> 18871 bytes .../admin/locale/gd/LC_MESSAGES/django.po | 754 ++ .../admin/locale/gd/LC_MESSAGES/djangojs.mo | Bin 0 -> 5904 bytes .../admin/locale/gd/LC_MESSAGES/djangojs.po | 286 + .../admin/locale/gl/LC_MESSAGES/django.mo | Bin 0 -> 18542 bytes .../admin/locale/gl/LC_MESSAGES/django.po | 795 ++ .../admin/locale/gl/LC_MESSAGES/djangojs.mo | Bin 0 -> 6083 bytes .../admin/locale/gl/LC_MESSAGES/djangojs.po | 329 + .../admin/locale/he/LC_MESSAGES/django.mo | Bin 0 -> 19856 bytes .../admin/locale/he/LC_MESSAGES/django.po | 771 ++ .../admin/locale/he/LC_MESSAGES/djangojs.mo | Bin 0 -> 6893 bytes .../admin/locale/he/LC_MESSAGES/djangojs.po | 334 + .../admin/locale/hi/LC_MESSAGES/django.mo | Bin 0 -> 13811 bytes .../admin/locale/hi/LC_MESSAGES/django.po | 706 + .../admin/locale/hi/LC_MESSAGES/djangojs.mo | Bin 0 -> 4893 bytes .../admin/locale/hi/LC_MESSAGES/djangojs.po | 217 + .../admin/locale/hr/LC_MESSAGES/django.mo | Bin 0 -> 14702 bytes .../admin/locale/hr/LC_MESSAGES/django.po | 716 ++ .../admin/locale/hr/LC_MESSAGES/djangojs.mo | Bin 0 -> 3360 bytes .../admin/locale/hr/LC_MESSAGES/djangojs.po | 223 + .../admin/locale/hsb/LC_MESSAGES/django.mo | Bin 0 -> 18595 bytes .../admin/locale/hsb/LC_MESSAGES/django.po | 780 ++ .../admin/locale/hsb/LC_MESSAGES/djangojs.mo | Bin 0 -> 6693 bytes .../admin/locale/hsb/LC_MESSAGES/djangojs.po | 337 + .../admin/locale/hu/LC_MESSAGES/django.mo | Bin 0 -> 18629 bytes .../admin/locale/hu/LC_MESSAGES/django.po | 786 ++ .../admin/locale/hu/LC_MESSAGES/djangojs.mo | Bin 0 -> 6034 bytes .../admin/locale/hu/LC_MESSAGES/djangojs.po | 329 + .../admin/locale/hy/LC_MESSAGES/django.mo | Bin 0 -> 18274 bytes .../admin/locale/hy/LC_MESSAGES/django.po | 708 + .../admin/locale/hy/LC_MESSAGES/djangojs.mo | Bin 0 -> 5636 bytes .../admin/locale/hy/LC_MESSAGES/djangojs.po | 219 + .../admin/locale/ia/LC_MESSAGES/django.mo | Bin 0 -> 11278 bytes .../admin/locale/ia/LC_MESSAGES/django.po | 664 + .../admin/locale/ia/LC_MESSAGES/djangojs.mo | Bin 0 -> 3177 bytes .../admin/locale/ia/LC_MESSAGES/djangojs.po | 216 + .../admin/locale/id/LC_MESSAGES/django.mo | Bin 0 -> 17412 bytes .../admin/locale/id/LC_MESSAGES/django.po | 787 ++ .../admin/locale/id/LC_MESSAGES/djangojs.mo | Bin 0 -> 5275 bytes .../admin/locale/id/LC_MESSAGES/djangojs.po | 325 + .../admin/locale/io/LC_MESSAGES/django.mo | Bin 0 -> 12624 bytes .../admin/locale/io/LC_MESSAGES/django.po | 668 + .../admin/locale/io/LC_MESSAGES/djangojs.mo | Bin 0 -> 464 bytes .../admin/locale/io/LC_MESSAGES/djangojs.po | 145 + .../admin/locale/is/LC_MESSAGES/django.mo | Bin 0 -> 16804 bytes .../admin/locale/is/LC_MESSAGES/django.po | 720 ++ .../admin/locale/is/LC_MESSAGES/djangojs.mo | Bin 0 -> 5174 bytes .../admin/locale/is/LC_MESSAGES/djangojs.po | 267 + .../admin/locale/it/LC_MESSAGES/django.mo | Bin 0 -> 18505 bytes .../admin/locale/it/LC_MESSAGES/django.po | 798 ++ .../admin/locale/it/LC_MESSAGES/djangojs.mo | Bin 0 -> 5640 bytes .../admin/locale/it/LC_MESSAGES/djangojs.po | 287 + .../admin/locale/ja/LC_MESSAGES/django.mo | Bin 0 -> 19945 bytes .../admin/locale/ja/LC_MESSAGES/django.po | 784 ++ .../admin/locale/ja/LC_MESSAGES/djangojs.mo | Bin 0 -> 6233 bytes .../admin/locale/ja/LC_MESSAGES/djangojs.po | 322 + .../admin/locale/ka/LC_MESSAGES/django.mo | Bin 0 -> 20101 bytes .../admin/locale/ka/LC_MESSAGES/django.po | 699 + .../admin/locale/ka/LC_MESSAGES/djangojs.mo | Bin 0 -> 5516 bytes .../admin/locale/ka/LC_MESSAGES/djangojs.po | 218 + .../admin/locale/kab/LC_MESSAGES/django.mo | Bin 0 -> 3531 bytes .../admin/locale/kab/LC_MESSAGES/django.po | 631 + .../admin/locale/kab/LC_MESSAGES/djangojs.mo | Bin 0 -> 1844 bytes .../admin/locale/kab/LC_MESSAGES/djangojs.po | 204 + .../admin/locale/kk/LC_MESSAGES/django.mo | Bin 0 -> 12845 bytes .../admin/locale/kk/LC_MESSAGES/django.po | 695 + .../admin/locale/kk/LC_MESSAGES/djangojs.mo | Bin 0 -> 2387 bytes .../admin/locale/kk/LC_MESSAGES/djangojs.po | 210 + .../admin/locale/km/LC_MESSAGES/django.mo | Bin 0 -> 10403 bytes .../admin/locale/km/LC_MESSAGES/django.po | 636 + .../admin/locale/km/LC_MESSAGES/djangojs.mo | Bin 0 -> 1334 bytes .../admin/locale/km/LC_MESSAGES/djangojs.po | 201 + .../admin/locale/kn/LC_MESSAGES/django.mo | Bin 0 -> 9203 bytes .../admin/locale/kn/LC_MESSAGES/django.po | 639 + .../admin/locale/kn/LC_MESSAGES/djangojs.mo | Bin 0 -> 1847 bytes .../admin/locale/kn/LC_MESSAGES/djangojs.po | 261 + .../admin/locale/ko/LC_MESSAGES/django.mo | Bin 0 -> 18721 bytes .../admin/locale/ko/LC_MESSAGES/django.po | 799 ++ .../admin/locale/ko/LC_MESSAGES/djangojs.mo | Bin 0 -> 5985 bytes .../admin/locale/ko/LC_MESSAGES/djangojs.po | 327 + .../admin/locale/ky/LC_MESSAGES/django.mo | Bin 0 -> 20129 bytes .../admin/locale/ky/LC_MESSAGES/django.po | 711 + .../admin/locale/ky/LC_MESSAGES/djangojs.mo | Bin 0 -> 5888 bytes .../admin/locale/ky/LC_MESSAGES/djangojs.po | 260 + .../admin/locale/lb/LC_MESSAGES/django.mo | Bin 0 -> 913 bytes .../admin/locale/lb/LC_MESSAGES/django.po | 632 + .../admin/locale/lb/LC_MESSAGES/djangojs.mo | Bin 0 -> 474 bytes .../admin/locale/lb/LC_MESSAGES/djangojs.po | 145 + .../admin/locale/lt/LC_MESSAGES/django.mo | Bin 0 -> 17033 bytes .../admin/locale/lt/LC_MESSAGES/django.po | 720 ++ .../admin/locale/lt/LC_MESSAGES/djangojs.mo | Bin 0 -> 5183 bytes .../admin/locale/lt/LC_MESSAGES/djangojs.po | 236 + .../admin/locale/lv/LC_MESSAGES/django.mo | Bin 0 -> 18547 bytes .../admin/locale/lv/LC_MESSAGES/django.po | 793 ++ .../admin/locale/lv/LC_MESSAGES/djangojs.mo | Bin 0 -> 6446 bytes .../admin/locale/lv/LC_MESSAGES/djangojs.po | 335 + .../admin/locale/mk/LC_MESSAGES/django.mo | Bin 0 -> 17948 bytes .../admin/locale/mk/LC_MESSAGES/django.po | 726 ++ .../admin/locale/mk/LC_MESSAGES/djangojs.mo | Bin 0 -> 4719 bytes .../admin/locale/mk/LC_MESSAGES/djangojs.po | 262 + .../admin/locale/ml/LC_MESSAGES/django.mo | Bin 0 -> 20830 bytes .../admin/locale/ml/LC_MESSAGES/django.po | 700 + .../admin/locale/ml/LC_MESSAGES/djangojs.mo | Bin 0 -> 6200 bytes .../admin/locale/ml/LC_MESSAGES/djangojs.po | 214 + .../admin/locale/mn/LC_MESSAGES/django.mo | Bin 0 -> 22236 bytes .../admin/locale/mn/LC_MESSAGES/django.po | 776 ++ .../admin/locale/mn/LC_MESSAGES/djangojs.mo | Bin 0 -> 5228 bytes .../admin/locale/mn/LC_MESSAGES/djangojs.po | 218 + .../admin/locale/mr/LC_MESSAGES/django.mo | Bin 0 -> 21488 bytes .../admin/locale/mr/LC_MESSAGES/django.po | 753 ++ .../admin/locale/mr/LC_MESSAGES/djangojs.mo | Bin 0 -> 468 bytes .../admin/locale/mr/LC_MESSAGES/djangojs.po | 145 + .../admin/locale/ms/LC_MESSAGES/django.mo | Bin 0 -> 16840 bytes .../admin/locale/ms/LC_MESSAGES/django.po | 721 ++ .../admin/locale/ms/LC_MESSAGES/djangojs.mo | Bin 0 -> 5018 bytes .../admin/locale/ms/LC_MESSAGES/djangojs.po | 264 + .../admin/locale/my/LC_MESSAGES/django.mo | Bin 0 -> 3677 bytes .../admin/locale/my/LC_MESSAGES/django.po | 629 + .../admin/locale/my/LC_MESSAGES/djangojs.mo | Bin 0 -> 3268 bytes .../admin/locale/my/LC_MESSAGES/djangojs.po | 206 + .../admin/locale/nb/LC_MESSAGES/django.mo | Bin 0 -> 16244 bytes .../admin/locale/nb/LC_MESSAGES/django.po | 720 ++ .../admin/locale/nb/LC_MESSAGES/djangojs.mo | Bin 0 -> 4939 bytes .../admin/locale/nb/LC_MESSAGES/djangojs.po | 269 + .../admin/locale/ne/LC_MESSAGES/django.mo | Bin 0 -> 15772 bytes .../admin/locale/ne/LC_MESSAGES/django.po | 688 + .../admin/locale/ne/LC_MESSAGES/djangojs.mo | Bin 0 -> 5362 bytes .../admin/locale/ne/LC_MESSAGES/djangojs.po | 213 + .../admin/locale/nl/LC_MESSAGES/django.mo | Bin 0 -> 18565 bytes .../admin/locale/nl/LC_MESSAGES/django.po | 799 ++ .../admin/locale/nl/LC_MESSAGES/djangojs.mo | Bin 0 -> 6122 bytes .../admin/locale/nl/LC_MESSAGES/djangojs.po | 334 + .../admin/locale/nn/LC_MESSAGES/django.mo | Bin 0 -> 16504 bytes .../admin/locale/nn/LC_MESSAGES/django.po | 736 ++ .../admin/locale/nn/LC_MESSAGES/djangojs.mo | Bin 0 -> 4939 bytes .../admin/locale/nn/LC_MESSAGES/djangojs.po | 266 + .../admin/locale/os/LC_MESSAGES/django.mo | Bin 0 -> 14978 bytes .../admin/locale/os/LC_MESSAGES/django.po | 665 + .../admin/locale/os/LC_MESSAGES/djangojs.mo | Bin 0 -> 3806 bytes .../admin/locale/os/LC_MESSAGES/djangojs.po | 217 + .../admin/locale/pa/LC_MESSAGES/django.mo | Bin 0 -> 8629 bytes .../admin/locale/pa/LC_MESSAGES/django.po | 706 + .../admin/locale/pa/LC_MESSAGES/djangojs.mo | Bin 0 -> 1148 bytes .../admin/locale/pa/LC_MESSAGES/djangojs.po | 253 + .../admin/locale/pl/LC_MESSAGES/django.mo | Bin 0 -> 19372 bytes .../admin/locale/pl/LC_MESSAGES/django.po | 816 ++ .../admin/locale/pl/LC_MESSAGES/djangojs.mo | Bin 0 -> 6655 bytes .../admin/locale/pl/LC_MESSAGES/djangojs.po | 356 + .../admin/locale/pt/LC_MESSAGES/django.mo | Bin 0 -> 18681 bytes .../admin/locale/pt/LC_MESSAGES/django.po | 792 ++ .../admin/locale/pt/LC_MESSAGES/djangojs.mo | Bin 0 -> 5392 bytes .../admin/locale/pt/LC_MESSAGES/djangojs.po | 331 + .../admin/locale/pt_BR/LC_MESSAGES/django.mo | Bin 0 -> 18810 bytes .../admin/locale/pt_BR/LC_MESSAGES/django.po | 821 ++ .../locale/pt_BR/LC_MESSAGES/djangojs.mo | Bin 0 -> 6329 bytes .../locale/pt_BR/LC_MESSAGES/djangojs.po | 333 + .../admin/locale/ro/LC_MESSAGES/django.mo | Bin 0 -> 15157 bytes .../admin/locale/ro/LC_MESSAGES/django.po | 758 ++ .../admin/locale/ro/LC_MESSAGES/djangojs.mo | Bin 0 -> 4639 bytes .../admin/locale/ro/LC_MESSAGES/djangojs.po | 228 + .../admin/locale/ru/LC_MESSAGES/django.mo | Bin 0 -> 24187 bytes .../admin/locale/ru/LC_MESSAGES/django.po | 807 ++ .../admin/locale/ru/LC_MESSAGES/djangojs.mo | Bin 0 -> 8392 bytes .../admin/locale/ru/LC_MESSAGES/djangojs.po | 350 + .../admin/locale/sk/LC_MESSAGES/django.mo | Bin 0 -> 18706 bytes .../admin/locale/sk/LC_MESSAGES/django.po | 791 ++ .../admin/locale/sk/LC_MESSAGES/djangojs.mo | Bin 0 -> 6305 bytes .../admin/locale/sk/LC_MESSAGES/djangojs.po | 337 + .../admin/locale/sl/LC_MESSAGES/django.mo | Bin 0 -> 15077 bytes .../admin/locale/sl/LC_MESSAGES/django.po | 774 ++ .../admin/locale/sl/LC_MESSAGES/djangojs.mo | Bin 0 -> 6146 bytes .../admin/locale/sl/LC_MESSAGES/djangojs.po | 328 + .../admin/locale/sq/LC_MESSAGES/django.mo | Bin 0 -> 18886 bytes .../admin/locale/sq/LC_MESSAGES/django.po | 790 ++ .../admin/locale/sq/LC_MESSAGES/djangojs.mo | Bin 0 -> 6122 bytes .../admin/locale/sq/LC_MESSAGES/djangojs.po | 328 + .../admin/locale/sr/LC_MESSAGES/django.mo | Bin 0 -> 23216 bytes .../admin/locale/sr/LC_MESSAGES/django.po | 792 ++ .../admin/locale/sr/LC_MESSAGES/djangojs.mo | Bin 0 -> 7234 bytes .../admin/locale/sr/LC_MESSAGES/djangojs.po | 330 + .../locale/sr_Latn/LC_MESSAGES/django.mo | Bin 0 -> 12383 bytes .../locale/sr_Latn/LC_MESSAGES/django.po | 694 + .../locale/sr_Latn/LC_MESSAGES/djangojs.mo | Bin 0 -> 6021 bytes .../locale/sr_Latn/LC_MESSAGES/djangojs.po | 392 + .../admin/locale/sv/LC_MESSAGES/django.mo | Bin 0 -> 18004 bytes .../admin/locale/sv/LC_MESSAGES/django.po | 795 ++ .../admin/locale/sv/LC_MESSAGES/djangojs.mo | Bin 0 -> 5938 bytes .../admin/locale/sv/LC_MESSAGES/djangojs.po | 328 + .../admin/locale/sw/LC_MESSAGES/django.mo | Bin 0 -> 17698 bytes .../admin/locale/sw/LC_MESSAGES/django.po | 779 ++ .../admin/locale/sw/LC_MESSAGES/djangojs.mo | Bin 0 -> 3647 bytes .../admin/locale/sw/LC_MESSAGES/djangojs.po | 217 + .../admin/locale/ta/LC_MESSAGES/django.mo | Bin 0 -> 10179 bytes .../admin/locale/ta/LC_MESSAGES/django.po | 643 + .../admin/locale/ta/LC_MESSAGES/djangojs.mo | Bin 0 -> 1379 bytes .../admin/locale/ta/LC_MESSAGES/djangojs.po | 204 + .../admin/locale/te/LC_MESSAGES/django.mo | Bin 0 -> 10590 bytes .../admin/locale/te/LC_MESSAGES/django.po | 640 + .../admin/locale/te/LC_MESSAGES/djangojs.mo | Bin 0 -> 1362 bytes .../admin/locale/te/LC_MESSAGES/djangojs.po | 205 + .../admin/locale/tg/LC_MESSAGES/django.mo | Bin 0 -> 15463 bytes .../admin/locale/tg/LC_MESSAGES/django.po | 699 + .../admin/locale/tg/LC_MESSAGES/djangojs.mo | Bin 0 -> 5154 bytes .../admin/locale/tg/LC_MESSAGES/djangojs.po | 222 + .../admin/locale/th/LC_MESSAGES/django.mo | Bin 0 -> 16394 bytes .../admin/locale/th/LC_MESSAGES/django.po | 671 + .../admin/locale/th/LC_MESSAGES/djangojs.mo | Bin 0 -> 6250 bytes .../admin/locale/th/LC_MESSAGES/djangojs.po | 213 + .../admin/locale/tk/LC_MESSAGES/django.mo | Bin 0 -> 2845 bytes .../admin/locale/tk/LC_MESSAGES/django.po | 738 ++ .../admin/locale/tr/LC_MESSAGES/django.mo | Bin 0 -> 18745 bytes .../admin/locale/tr/LC_MESSAGES/django.po | 794 ++ .../admin/locale/tr/LC_MESSAGES/djangojs.mo | Bin 0 -> 6044 bytes .../admin/locale/tr/LC_MESSAGES/djangojs.po | 328 + .../admin/locale/tt/LC_MESSAGES/django.mo | Bin 0 -> 12952 bytes .../admin/locale/tt/LC_MESSAGES/django.po | 655 + .../admin/locale/tt/LC_MESSAGES/djangojs.mo | Bin 0 -> 2607 bytes .../admin/locale/tt/LC_MESSAGES/djangojs.po | 208 + .../admin/locale/udm/LC_MESSAGES/django.mo | Bin 0 -> 622 bytes .../admin/locale/udm/LC_MESSAGES/django.po | 606 + .../admin/locale/udm/LC_MESSAGES/djangojs.mo | Bin 0 -> 462 bytes .../admin/locale/udm/LC_MESSAGES/djangojs.po | 142 + .../admin/locale/ug/LC_MESSAGES/django.mo | Bin 0 -> 22887 bytes .../admin/locale/ug/LC_MESSAGES/django.po | 780 ++ .../admin/locale/ug/LC_MESSAGES/djangojs.mo | Bin 0 -> 7306 bytes .../admin/locale/ug/LC_MESSAGES/djangojs.po | 323 + .../admin/locale/uk/LC_MESSAGES/django.mo | Bin 0 -> 22319 bytes .../admin/locale/uk/LC_MESSAGES/django.po | 775 ++ .../admin/locale/uk/LC_MESSAGES/djangojs.mo | Bin 0 -> 5787 bytes .../admin/locale/uk/LC_MESSAGES/djangojs.po | 275 + .../admin/locale/ur/LC_MESSAGES/django.mo | Bin 0 -> 13106 bytes .../admin/locale/ur/LC_MESSAGES/django.po | 661 + .../admin/locale/ur/LC_MESSAGES/djangojs.mo | Bin 0 -> 2678 bytes .../admin/locale/ur/LC_MESSAGES/djangojs.po | 211 + .../admin/locale/uz/LC_MESSAGES/django.mo | Bin 0 -> 4634 bytes .../admin/locale/uz/LC_MESSAGES/django.po | 724 ++ .../admin/locale/uz/LC_MESSAGES/djangojs.mo | Bin 0 -> 3783 bytes .../admin/locale/uz/LC_MESSAGES/djangojs.po | 261 + .../admin/locale/vi/LC_MESSAGES/django.mo | Bin 0 -> 18077 bytes .../admin/locale/vi/LC_MESSAGES/django.po | 726 ++ .../admin/locale/vi/LC_MESSAGES/djangojs.mo | Bin 0 -> 5302 bytes .../admin/locale/vi/LC_MESSAGES/djangojs.po | 268 + .../locale/zh_Hans/LC_MESSAGES/django.mo | Bin 0 -> 17143 bytes .../locale/zh_Hans/LC_MESSAGES/django.po | 779 ++ .../locale/zh_Hans/LC_MESSAGES/djangojs.mo | Bin 0 -> 5715 bytes .../locale/zh_Hans/LC_MESSAGES/djangojs.po | 332 + .../locale/zh_Hant/LC_MESSAGES/django.mo | Bin 0 -> 16991 bytes .../locale/zh_Hant/LC_MESSAGES/django.po | 757 ++ .../locale/zh_Hant/LC_MESSAGES/djangojs.mo | Bin 0 -> 4230 bytes .../locale/zh_Hant/LC_MESSAGES/djangojs.po | 213 + .../contrib/admin/migrations/0001_initial.py | 75 + .../0002_logentry_remove_auto_add.py | 21 + .../0003_logentry_add_action_flag_choices.py | 19 + .../contrib/admin/migrations/__init__.py | 0 .../__pycache__/0001_initial.cpython-312.pyc | Bin 0 -> 2446 bytes ...2_logentry_remove_auto_add.cpython-312.pyc | Bin 0 -> 913 bytes ...ry_add_action_flag_choices.cpython-312.pyc | Bin 0 -> 909 bytes .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 208 bytes .../django/contrib/admin/models.py | 246 + .../django/contrib/admin/options.py | 2574 ++++ .../django/contrib/admin/sites.py | 616 + .../admin/static/admin/css/autocomplete.css | 279 + .../contrib/admin/static/admin/css/base.css | 1179 ++ .../admin/static/admin/css/changelists.css | 343 + .../admin/static/admin/css/dark_mode.css | 130 + .../admin/static/admin/css/dashboard.css | 29 + .../contrib/admin/static/admin/css/forms.css | 508 + .../contrib/admin/static/admin/css/login.css | 61 + .../admin/static/admin/css/nav_sidebar.css | 150 + .../admin/static/admin/css/responsive.css | 967 ++ .../admin/static/admin/css/responsive_rtl.css | 111 + .../contrib/admin/static/admin/css/rtl.css | 291 + .../admin/css/unusable_password_field.css | 19 + .../css/vendor/select2/LICENSE-SELECT2.md | 21 + .../admin/css/vendor/select2/select2.css | 481 + .../admin/css/vendor/select2/select2.min.css | 1 + .../admin/static/admin/css/widgets.css | 593 + .../contrib/admin/static/admin/img/LICENSE | 20 + .../contrib/admin/static/admin/img/README.txt | 7 + .../admin/static/admin/img/calendar-icons.svg | 63 + .../static/admin/img/gis/move_vertex_off.svg | 1 + .../static/admin/img/gis/move_vertex_on.svg | 1 + .../admin/static/admin/img/icon-addlink.svg | 3 + .../admin/static/admin/img/icon-alert.svg | 3 + .../admin/static/admin/img/icon-calendar.svg | 9 + .../static/admin/img/icon-changelink.svg | 3 + .../admin/static/admin/img/icon-clock.svg | 9 + .../static/admin/img/icon-deletelink.svg | 3 + .../admin/static/admin/img/icon-hidelink.svg | 3 + .../admin/static/admin/img/icon-no.svg | 3 + .../static/admin/img/icon-unknown-alt.svg | 3 + .../admin/static/admin/img/icon-unknown.svg | 3 + .../admin/static/admin/img/icon-viewlink.svg | 3 + .../admin/static/admin/img/icon-yes.svg | 3 + .../admin/static/admin/img/inline-delete.svg | 3 + .../contrib/admin/static/admin/img/search.svg | 3 + .../admin/static/admin/img/selector-icons.svg | 34 + .../admin/static/admin/img/sorting-icons.svg | 19 + .../admin/static/admin/img/tooltag-add.svg | 3 + .../static/admin/img/tooltag-arrowright.svg | 3 + .../admin/static/admin/js/SelectBox.js | 116 + .../admin/static/admin/js/SelectFilter2.js | 286 + .../contrib/admin/static/admin/js/actions.js | 204 + .../admin/js/admin/DateTimeShortcuts.js | 408 + .../admin/js/admin/RelatedObjectLookups.js | 240 + .../admin/static/admin/js/autocomplete.js | 33 + .../contrib/admin/static/admin/js/calendar.js | 239 + .../contrib/admin/static/admin/js/cancel.js | 29 + .../admin/static/admin/js/change_form.js | 16 + .../contrib/admin/static/admin/js/core.js | 184 + .../contrib/admin/static/admin/js/filters.js | 30 + .../contrib/admin/static/admin/js/inlines.js | 359 + .../admin/static/admin/js/jquery.init.js | 8 + .../admin/static/admin/js/nav_sidebar.js | 79 + .../admin/static/admin/js/popup_response.js | 15 + .../admin/static/admin/js/prepopulate.js | 43 + .../admin/static/admin/js/prepopulate_init.js | 15 + .../contrib/admin/static/admin/js/theme.js | 51 + .../admin/js/unusable_password_field.js | 29 + .../contrib/admin/static/admin/js/urlify.js | 169 + .../static/admin/js/vendor/jquery/LICENSE.txt | 20 + .../static/admin/js/vendor/jquery/jquery.js | 10716 ++++++++++++++++ .../admin/js/vendor/jquery/jquery.min.js | 2 + .../static/admin/js/vendor/select2/LICENSE.md | 21 + .../static/admin/js/vendor/select2/i18n/af.js | 3 + .../static/admin/js/vendor/select2/i18n/ar.js | 3 + .../static/admin/js/vendor/select2/i18n/az.js | 3 + .../static/admin/js/vendor/select2/i18n/bg.js | 3 + .../static/admin/js/vendor/select2/i18n/bn.js | 3 + .../static/admin/js/vendor/select2/i18n/bs.js | 3 + .../static/admin/js/vendor/select2/i18n/ca.js | 3 + .../static/admin/js/vendor/select2/i18n/cs.js | 3 + .../static/admin/js/vendor/select2/i18n/da.js | 3 + .../static/admin/js/vendor/select2/i18n/de.js | 3 + .../admin/js/vendor/select2/i18n/dsb.js | 3 + .../static/admin/js/vendor/select2/i18n/el.js | 3 + .../static/admin/js/vendor/select2/i18n/en.js | 3 + .../static/admin/js/vendor/select2/i18n/es.js | 3 + .../static/admin/js/vendor/select2/i18n/et.js | 3 + .../static/admin/js/vendor/select2/i18n/eu.js | 3 + .../static/admin/js/vendor/select2/i18n/fa.js | 3 + .../static/admin/js/vendor/select2/i18n/fi.js | 3 + .../static/admin/js/vendor/select2/i18n/fr.js | 3 + .../static/admin/js/vendor/select2/i18n/gl.js | 3 + .../static/admin/js/vendor/select2/i18n/he.js | 3 + .../static/admin/js/vendor/select2/i18n/hi.js | 3 + .../static/admin/js/vendor/select2/i18n/hr.js | 3 + .../admin/js/vendor/select2/i18n/hsb.js | 3 + .../static/admin/js/vendor/select2/i18n/hu.js | 3 + .../static/admin/js/vendor/select2/i18n/hy.js | 3 + .../static/admin/js/vendor/select2/i18n/id.js | 3 + .../static/admin/js/vendor/select2/i18n/is.js | 3 + .../static/admin/js/vendor/select2/i18n/it.js | 3 + .../static/admin/js/vendor/select2/i18n/ja.js | 3 + .../static/admin/js/vendor/select2/i18n/ka.js | 3 + .../static/admin/js/vendor/select2/i18n/km.js | 3 + .../static/admin/js/vendor/select2/i18n/ko.js | 3 + .../static/admin/js/vendor/select2/i18n/lt.js | 3 + .../static/admin/js/vendor/select2/i18n/lv.js | 3 + .../static/admin/js/vendor/select2/i18n/mk.js | 3 + .../static/admin/js/vendor/select2/i18n/ms.js | 3 + .../static/admin/js/vendor/select2/i18n/nb.js | 3 + .../static/admin/js/vendor/select2/i18n/ne.js | 3 + .../static/admin/js/vendor/select2/i18n/nl.js | 3 + .../static/admin/js/vendor/select2/i18n/pl.js | 3 + .../static/admin/js/vendor/select2/i18n/ps.js | 3 + .../admin/js/vendor/select2/i18n/pt-BR.js | 3 + .../static/admin/js/vendor/select2/i18n/pt.js | 3 + .../static/admin/js/vendor/select2/i18n/ro.js | 3 + .../static/admin/js/vendor/select2/i18n/ru.js | 3 + .../static/admin/js/vendor/select2/i18n/sk.js | 3 + .../static/admin/js/vendor/select2/i18n/sl.js | 3 + .../static/admin/js/vendor/select2/i18n/sq.js | 3 + .../admin/js/vendor/select2/i18n/sr-Cyrl.js | 3 + .../static/admin/js/vendor/select2/i18n/sr.js | 3 + .../static/admin/js/vendor/select2/i18n/sv.js | 3 + .../static/admin/js/vendor/select2/i18n/th.js | 3 + .../static/admin/js/vendor/select2/i18n/tk.js | 3 + .../static/admin/js/vendor/select2/i18n/tr.js | 3 + .../static/admin/js/vendor/select2/i18n/uk.js | 3 + .../static/admin/js/vendor/select2/i18n/vi.js | 3 + .../admin/js/vendor/select2/i18n/zh-CN.js | 3 + .../admin/js/vendor/select2/i18n/zh-TW.js | 3 + .../admin/js/vendor/select2/select2.full.js | 6820 ++++++++++ .../js/vendor/select2/select2.full.min.js | 2 + .../admin/js/vendor/xregexp/LICENSE.txt | 21 + .../static/admin/js/vendor/xregexp/xregexp.js | 6126 +++++++++ .../admin/js/vendor/xregexp/xregexp.min.js | 17 + .../contrib/admin/templates/admin/404.html | 12 + .../contrib/admin/templates/admin/500.html | 17 + .../admin/templates/admin/actions.html | 23 + .../admin/templates/admin/app_index.html | 20 + .../admin/templates/admin/app_list.html | 44 + .../templates/admin/auth/user/add_form.html | 18 + .../admin/auth/user/change_password.html | 80 + .../contrib/admin/templates/admin/base.html | 125 + .../admin/templates/admin/base_site.html | 12 + .../admin/templates/admin/change_form.html | 81 + .../admin/change_form_object_tools.html | 8 + .../admin/templates/admin/change_list.html | 93 + .../admin/change_list_object_tools.html | 12 + .../templates/admin/change_list_results.html | 36 + .../templates/admin/color_theme_toggle.html | 15 + .../admin/templates/admin/date_hierarchy.html | 14 + .../templates/admin/delete_confirmation.html | 50 + .../admin/delete_selected_confirmation.html | 47 + .../templates/admin/edit_inline/stacked.html | 38 + .../templates/admin/edit_inline/tabular.html | 71 + .../contrib/admin/templates/admin/filter.html | 12 + .../templates/admin/includes/fieldset.html | 41 + .../admin/includes/object_delete_summary.html | 7 + .../contrib/admin/templates/admin/index.html | 51 + .../admin/templates/admin/invalid_setup.html | 13 + .../contrib/admin/templates/admin/login.html | 68 + .../admin/templates/admin/nav_sidebar.html | 8 + .../admin/templates/admin/object_history.html | 56 + .../admin/templates/admin/pagination.html | 12 + .../admin/templates/admin/popup_response.html | 10 + .../admin/prepopulated_fields_js.html | 5 + .../admin/templates/admin/search_form.html | 20 + .../admin/templates/admin/submit_line.html | 17 + .../admin/widgets/clearable_file_input.html | 6 + .../admin/templates/admin/widgets/date.html | 3 + .../admin/widgets/foreign_key_raw_id.html | 2 + .../admin/widgets/many_to_many_raw_id.html | 1 + .../admin/templates/admin/widgets/radio.html | 1 + .../admin/widgets/related_widget_wrapper.html | 41 + .../admin/widgets/split_datetime.html | 4 + .../admin/templates/admin/widgets/time.html | 3 + .../admin/templates/admin/widgets/url.html | 1 + .../templates/registration/logged_out.html | 14 + .../registration/password_change_done.html | 20 + .../registration/password_change_form.html | 64 + .../registration/password_reset_complete.html | 17 + .../registration/password_reset_confirm.html | 47 + .../registration/password_reset_done.html | 17 + .../registration/password_reset_email.html | 14 + .../registration/password_reset_form.html | 31 + .../contrib/admin/templatetags/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 210 bytes .../__pycache__/admin_list.cpython-312.pyc | Bin 0 -> 20944 bytes .../__pycache__/admin_modify.cpython-312.pyc | Bin 0 -> 5423 bytes .../__pycache__/admin_urls.cpython-312.pyc | Bin 0 -> 2912 bytes .../__pycache__/base.cpython-312.pyc | Bin 0 -> 2103 bytes .../__pycache__/log.cpython-312.pyc | Bin 0 -> 3165 bytes .../contrib/admin/templatetags/admin_list.py | 536 + .../admin/templatetags/admin_modify.py | 150 + .../contrib/admin/templatetags/admin_urls.py | 70 + .../django/contrib/admin/templatetags/base.py | 45 + .../django/contrib/admin/templatetags/log.py | 67 + .../django/contrib/admin/tests.py | 233 + .../django/contrib/admin/utils.py | 614 + .../django/contrib/admin/views/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 203 bytes .../__pycache__/autocomplete.cpython-312.pyc | Bin 0 -> 6092 bytes .../__pycache__/decorators.cpython-312.pyc | Bin 0 -> 1003 bytes .../views/__pycache__/main.cpython-312.pyc | Bin 0 -> 25424 bytes .../contrib/admin/views/autocomplete.py | 123 + .../django/contrib/admin/views/decorators.py | 19 + .../django/contrib/admin/views/main.py | 631 + .../django/contrib/admin/widgets.py | 605 + .../django/contrib/admindocs/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 201 bytes .../__pycache__/apps.cpython-312.pyc | Bin 0 -> 608 bytes .../__pycache__/middleware.cpython-312.pyc | Bin 0 -> 1983 bytes .../__pycache__/urls.cpython-312.pyc | Bin 0 -> 1897 bytes .../__pycache__/utils.cpython-312.pyc | Bin 0 -> 9038 bytes .../__pycache__/views.cpython-312.pyc | Bin 0 -> 20507 bytes .../django/contrib/admindocs/apps.py | 7 + .../admindocs/locale/af/LC_MESSAGES/django.mo | Bin 0 -> 3063 bytes .../admindocs/locale/af/LC_MESSAGES/django.po | 271 + .../admindocs/locale/ar/LC_MESSAGES/django.mo | Bin 0 -> 7440 bytes .../admindocs/locale/ar/LC_MESSAGES/django.po | 278 + .../locale/ar_DZ/LC_MESSAGES/django.mo | Bin 0 -> 7465 bytes .../locale/ar_DZ/LC_MESSAGES/django.po | 277 + .../locale/ast/LC_MESSAGES/django.mo | Bin 0 -> 715 bytes .../locale/ast/LC_MESSAGES/django.po | 258 + .../admindocs/locale/az/LC_MESSAGES/django.mo | Bin 0 -> 6629 bytes .../admindocs/locale/az/LC_MESSAGES/django.po | 283 + .../admindocs/locale/be/LC_MESSAGES/django.mo | Bin 0 -> 8163 bytes .../admindocs/locale/be/LC_MESSAGES/django.po | 284 + .../admindocs/locale/bg/LC_MESSAGES/django.mo | Bin 0 -> 8242 bytes .../admindocs/locale/bg/LC_MESSAGES/django.po | 290 + .../admindocs/locale/bn/LC_MESSAGES/django.mo | Bin 0 -> 3794 bytes .../admindocs/locale/bn/LC_MESSAGES/django.po | 261 + .../admindocs/locale/br/LC_MESSAGES/django.mo | Bin 0 -> 1571 bytes .../admindocs/locale/br/LC_MESSAGES/django.po | 263 + .../admindocs/locale/bs/LC_MESSAGES/django.mo | Bin 0 -> 1730 bytes .../admindocs/locale/bs/LC_MESSAGES/django.po | 261 + .../admindocs/locale/ca/LC_MESSAGES/django.mo | Bin 0 -> 6650 bytes .../admindocs/locale/ca/LC_MESSAGES/django.po | 288 + .../locale/ckb/LC_MESSAGES/django.mo | Bin 0 -> 8154 bytes .../locale/ckb/LC_MESSAGES/django.po | 286 + .../admindocs/locale/cs/LC_MESSAGES/django.mo | Bin 0 -> 6619 bytes .../admindocs/locale/cs/LC_MESSAGES/django.po | 284 + .../admindocs/locale/cy/LC_MESSAGES/django.mo | Bin 0 -> 5401 bytes .../admindocs/locale/cy/LC_MESSAGES/django.po | 279 + .../admindocs/locale/da/LC_MESSAGES/django.mo | Bin 0 -> 6446 bytes .../admindocs/locale/da/LC_MESSAGES/django.po | 285 + .../admindocs/locale/de/LC_MESSAGES/django.mo | Bin 0 -> 6567 bytes .../admindocs/locale/de/LC_MESSAGES/django.po | 287 + .../locale/dsb/LC_MESSAGES/django.mo | Bin 0 -> 6807 bytes .../locale/dsb/LC_MESSAGES/django.po | 285 + .../admindocs/locale/el/LC_MESSAGES/django.mo | Bin 0 -> 8581 bytes .../admindocs/locale/el/LC_MESSAGES/django.po | 290 + .../admindocs/locale/en/LC_MESSAGES/django.mo | Bin 0 -> 356 bytes .../admindocs/locale/en/LC_MESSAGES/django.po | 359 + .../locale/en_AU/LC_MESSAGES/django.mo | Bin 0 -> 486 bytes .../locale/en_AU/LC_MESSAGES/django.po | 275 + .../locale/en_GB/LC_MESSAGES/django.mo | Bin 0 -> 1821 bytes .../locale/en_GB/LC_MESSAGES/django.po | 260 + .../admindocs/locale/eo/LC_MESSAGES/django.mo | Bin 0 -> 6071 bytes .../admindocs/locale/eo/LC_MESSAGES/django.po | 279 + .../admindocs/locale/es/LC_MESSAGES/django.mo | Bin 0 -> 6682 bytes .../admindocs/locale/es/LC_MESSAGES/django.po | 293 + .../locale/es_AR/LC_MESSAGES/django.mo | Bin 0 -> 6658 bytes .../locale/es_AR/LC_MESSAGES/django.po | 286 + .../locale/es_CO/LC_MESSAGES/django.mo | Bin 0 -> 6476 bytes .../locale/es_CO/LC_MESSAGES/django.po | 281 + .../locale/es_MX/LC_MESSAGES/django.mo | Bin 0 -> 1853 bytes .../locale/es_MX/LC_MESSAGES/django.po | 260 + .../locale/es_VE/LC_MESSAGES/django.mo | Bin 0 -> 6663 bytes .../locale/es_VE/LC_MESSAGES/django.po | 286 + .../admindocs/locale/et/LC_MESSAGES/django.mo | Bin 0 -> 6381 bytes .../admindocs/locale/et/LC_MESSAGES/django.po | 286 + .../admindocs/locale/eu/LC_MESSAGES/django.mo | Bin 0 -> 6479 bytes .../admindocs/locale/eu/LC_MESSAGES/django.po | 283 + .../admindocs/locale/fa/LC_MESSAGES/django.mo | Bin 0 -> 7499 bytes .../admindocs/locale/fa/LC_MESSAGES/django.po | 285 + .../admindocs/locale/fi/LC_MESSAGES/django.mo | Bin 0 -> 6397 bytes .../admindocs/locale/fi/LC_MESSAGES/django.po | 278 + .../admindocs/locale/fr/LC_MESSAGES/django.mo | Bin 0 -> 6755 bytes .../admindocs/locale/fr/LC_MESSAGES/django.po | 285 + .../admindocs/locale/fy/LC_MESSAGES/django.mo | Bin 0 -> 476 bytes .../admindocs/locale/fy/LC_MESSAGES/django.po | 275 + .../admindocs/locale/ga/LC_MESSAGES/django.mo | Bin 0 -> 1940 bytes .../admindocs/locale/ga/LC_MESSAGES/django.po | 262 + .../admindocs/locale/gd/LC_MESSAGES/django.mo | Bin 0 -> 6941 bytes .../admindocs/locale/gd/LC_MESSAGES/django.po | 289 + .../admindocs/locale/gl/LC_MESSAGES/django.mo | Bin 0 -> 6564 bytes .../admindocs/locale/gl/LC_MESSAGES/django.po | 285 + .../admindocs/locale/he/LC_MESSAGES/django.mo | Bin 0 -> 6998 bytes .../admindocs/locale/he/LC_MESSAGES/django.po | 276 + .../admindocs/locale/hi/LC_MESSAGES/django.mo | Bin 0 -> 2297 bytes .../admindocs/locale/hi/LC_MESSAGES/django.po | 258 + .../admindocs/locale/hr/LC_MESSAGES/django.mo | Bin 0 -> 2550 bytes .../admindocs/locale/hr/LC_MESSAGES/django.po | 264 + .../locale/hsb/LC_MESSAGES/django.mo | Bin 0 -> 6770 bytes .../locale/hsb/LC_MESSAGES/django.po | 286 + .../admindocs/locale/hu/LC_MESSAGES/django.mo | Bin 0 -> 6634 bytes .../admindocs/locale/hu/LC_MESSAGES/django.po | 288 + .../admindocs/locale/ia/LC_MESSAGES/django.mo | Bin 0 -> 1860 bytes .../admindocs/locale/ia/LC_MESSAGES/django.po | 260 + .../admindocs/locale/id/LC_MESSAGES/django.mo | Bin 0 -> 6343 bytes .../admindocs/locale/id/LC_MESSAGES/django.po | 287 + .../admindocs/locale/io/LC_MESSAGES/django.mo | Bin 0 -> 464 bytes .../admindocs/locale/io/LC_MESSAGES/django.po | 275 + .../admindocs/locale/is/LC_MESSAGES/django.mo | Bin 0 -> 1828 bytes .../admindocs/locale/is/LC_MESSAGES/django.po | 261 + .../admindocs/locale/it/LC_MESSAGES/django.mo | Bin 0 -> 6453 bytes .../admindocs/locale/it/LC_MESSAGES/django.po | 289 + .../admindocs/locale/ja/LC_MESSAGES/django.mo | Bin 0 -> 7358 bytes .../admindocs/locale/ja/LC_MESSAGES/django.po | 284 + .../admindocs/locale/ka/LC_MESSAGES/django.mo | Bin 0 -> 4446 bytes .../admindocs/locale/ka/LC_MESSAGES/django.po | 263 + .../locale/kab/LC_MESSAGES/django.mo | Bin 0 -> 1289 bytes .../locale/kab/LC_MESSAGES/django.po | 258 + .../admindocs/locale/kk/LC_MESSAGES/django.mo | Bin 0 -> 1587 bytes .../admindocs/locale/kk/LC_MESSAGES/django.po | 258 + .../admindocs/locale/km/LC_MESSAGES/django.mo | Bin 0 -> 1476 bytes .../admindocs/locale/km/LC_MESSAGES/django.po | 259 + .../admindocs/locale/kn/LC_MESSAGES/django.mo | Bin 0 -> 1656 bytes .../admindocs/locale/kn/LC_MESSAGES/django.po | 259 + .../admindocs/locale/ko/LC_MESSAGES/django.mo | Bin 0 -> 6563 bytes .../admindocs/locale/ko/LC_MESSAGES/django.po | 280 + .../admindocs/locale/ky/LC_MESSAGES/django.mo | Bin 0 -> 7977 bytes .../admindocs/locale/ky/LC_MESSAGES/django.po | 281 + .../admindocs/locale/lb/LC_MESSAGES/django.mo | Bin 0 -> 474 bytes .../admindocs/locale/lb/LC_MESSAGES/django.po | 275 + .../admindocs/locale/lt/LC_MESSAGES/django.mo | Bin 0 -> 6741 bytes .../admindocs/locale/lt/LC_MESSAGES/django.po | 290 + .../admindocs/locale/lv/LC_MESSAGES/django.mo | Bin 0 -> 6449 bytes .../admindocs/locale/lv/LC_MESSAGES/django.po | 284 + .../admindocs/locale/mk/LC_MESSAGES/django.mo | Bin 0 -> 8290 bytes .../admindocs/locale/mk/LC_MESSAGES/django.po | 286 + .../admindocs/locale/ml/LC_MESSAGES/django.mo | Bin 0 -> 6865 bytes .../admindocs/locale/ml/LC_MESSAGES/django.po | 268 + .../admindocs/locale/mn/LC_MESSAGES/django.mo | Bin 0 -> 7108 bytes .../admindocs/locale/mn/LC_MESSAGES/django.po | 283 + .../admindocs/locale/mr/LC_MESSAGES/django.mo | Bin 0 -> 468 bytes .../admindocs/locale/mr/LC_MESSAGES/django.po | 275 + .../admindocs/locale/ms/LC_MESSAGES/django.mo | Bin 0 -> 6557 bytes .../admindocs/locale/ms/LC_MESSAGES/django.po | 283 + .../admindocs/locale/my/LC_MESSAGES/django.mo | Bin 0 -> 1721 bytes .../admindocs/locale/my/LC_MESSAGES/django.po | 258 + .../admindocs/locale/nb/LC_MESSAGES/django.mo | Bin 0 -> 6308 bytes .../admindocs/locale/nb/LC_MESSAGES/django.po | 284 + .../admindocs/locale/ne/LC_MESSAGES/django.mo | Bin 0 -> 2571 bytes .../admindocs/locale/ne/LC_MESSAGES/django.po | 261 + .../admindocs/locale/nl/LC_MESSAGES/django.mo | Bin 0 -> 6498 bytes .../admindocs/locale/nl/LC_MESSAGES/django.po | 286 + .../admindocs/locale/nn/LC_MESSAGES/django.mo | Bin 0 -> 6299 bytes .../admindocs/locale/nn/LC_MESSAGES/django.po | 282 + .../admindocs/locale/os/LC_MESSAGES/django.mo | Bin 0 -> 2044 bytes .../admindocs/locale/os/LC_MESSAGES/django.po | 258 + .../admindocs/locale/pa/LC_MESSAGES/django.mo | Bin 0 -> 1275 bytes .../admindocs/locale/pa/LC_MESSAGES/django.po | 258 + .../admindocs/locale/pl/LC_MESSAGES/django.mo | Bin 0 -> 6633 bytes .../admindocs/locale/pl/LC_MESSAGES/django.po | 294 + .../admindocs/locale/pt/LC_MESSAGES/django.mo | Bin 0 -> 6566 bytes .../admindocs/locale/pt/LC_MESSAGES/django.po | 286 + .../locale/pt_BR/LC_MESSAGES/django.mo | Bin 0 -> 6590 bytes .../locale/pt_BR/LC_MESSAGES/django.po | 292 + .../admindocs/locale/ro/LC_MESSAGES/django.mo | Bin 0 -> 6755 bytes .../admindocs/locale/ro/LC_MESSAGES/django.po | 288 + .../admindocs/locale/ru/LC_MESSAGES/django.mo | Bin 0 -> 8434 bytes .../admindocs/locale/ru/LC_MESSAGES/django.po | 292 + .../admindocs/locale/sk/LC_MESSAGES/django.mo | Bin 0 -> 6670 bytes .../admindocs/locale/sk/LC_MESSAGES/django.po | 286 + .../admindocs/locale/sl/LC_MESSAGES/django.mo | Bin 0 -> 6508 bytes .../admindocs/locale/sl/LC_MESSAGES/django.po | 285 + .../admindocs/locale/sq/LC_MESSAGES/django.mo | Bin 0 -> 6551 bytes .../admindocs/locale/sq/LC_MESSAGES/django.po | 283 + .../admindocs/locale/sr/LC_MESSAGES/django.mo | Bin 0 -> 8154 bytes .../admindocs/locale/sr/LC_MESSAGES/django.po | 285 + .../locale/sr_Latn/LC_MESSAGES/django.mo | Bin 0 -> 6542 bytes .../locale/sr_Latn/LC_MESSAGES/django.po | 363 + .../admindocs/locale/sv/LC_MESSAGES/django.mo | Bin 0 -> 6394 bytes .../admindocs/locale/sv/LC_MESSAGES/django.po | 288 + .../admindocs/locale/sw/LC_MESSAGES/django.mo | Bin 0 -> 1808 bytes .../admindocs/locale/sw/LC_MESSAGES/django.po | 259 + .../admindocs/locale/ta/LC_MESSAGES/django.mo | Bin 0 -> 1675 bytes .../admindocs/locale/ta/LC_MESSAGES/django.po | 258 + .../admindocs/locale/te/LC_MESSAGES/django.mo | Bin 0 -> 1684 bytes .../admindocs/locale/te/LC_MESSAGES/django.po | 258 + .../admindocs/locale/tg/LC_MESSAGES/django.mo | Bin 0 -> 7731 bytes .../admindocs/locale/tg/LC_MESSAGES/django.po | 281 + .../admindocs/locale/th/LC_MESSAGES/django.mo | Bin 0 -> 2167 bytes .../admindocs/locale/th/LC_MESSAGES/django.po | 258 + .../admindocs/locale/tr/LC_MESSAGES/django.mo | Bin 0 -> 6661 bytes .../admindocs/locale/tr/LC_MESSAGES/django.po | 287 + .../admindocs/locale/tt/LC_MESSAGES/django.mo | Bin 0 -> 1869 bytes .../admindocs/locale/tt/LC_MESSAGES/django.po | 259 + .../locale/udm/LC_MESSAGES/django.mo | Bin 0 -> 618 bytes .../locale/udm/LC_MESSAGES/django.po | 275 + .../admindocs/locale/ug/LC_MESSAGES/django.mo | Bin 0 -> 7867 bytes .../admindocs/locale/ug/LC_MESSAGES/django.po | 280 + .../admindocs/locale/uk/LC_MESSAGES/django.mo | Bin 0 -> 8468 bytes .../admindocs/locale/uk/LC_MESSAGES/django.po | 294 + .../admindocs/locale/ur/LC_MESSAGES/django.mo | Bin 0 -> 1836 bytes .../admindocs/locale/ur/LC_MESSAGES/django.po | 259 + .../admindocs/locale/vi/LC_MESSAGES/django.mo | Bin 0 -> 1306 bytes .../admindocs/locale/vi/LC_MESSAGES/django.po | 259 + .../locale/zh_Hans/LC_MESSAGES/django.mo | Bin 0 -> 6075 bytes .../locale/zh_Hans/LC_MESSAGES/django.po | 276 + .../locale/zh_Hant/LC_MESSAGES/django.mo | Bin 0 -> 6016 bytes .../locale/zh_Hant/LC_MESSAGES/django.po | 274 + .../django/contrib/admindocs/middleware.py | 33 + .../templates/admin_doc/bookmarklets.html | 26 + .../admindocs/templates/admin_doc/index.html | 34 + .../templates/admin_doc/missing_docutils.html | 22 + .../templates/admin_doc/model_detail.html | 78 + .../templates/admin_doc/model_index.html | 52 + .../templates/admin_doc/template_detail.html | 27 + .../admin_doc/template_filter_index.html | 54 + .../admin_doc/template_tag_index.html | 54 + .../templates/admin_doc/view_detail.html | 33 + .../templates/admin_doc/view_index.html | 59 + .../django/contrib/admindocs/urls.py | 50 + .../django/contrib/admindocs/utils.py | 244 + .../django/contrib/admindocs/views.py | 503 + .../django/contrib/auth/__init__.py | 274 + .../auth/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 11493 bytes .../auth/__pycache__/admin.cpython-312.pyc | Bin 0 -> 10769 bytes .../auth/__pycache__/apps.cpython-312.pyc | Bin 0 -> 2004 bytes .../auth/__pycache__/backends.cpython-312.pyc | Bin 0 -> 12181 bytes .../__pycache__/base_user.cpython-312.pyc | Bin 0 -> 8130 bytes .../auth/__pycache__/checks.cpython-312.pyc | Bin 0 -> 9711 bytes .../context_processors.cpython-312.pyc | Bin 0 -> 3389 bytes .../__pycache__/decorators.cpython-312.pyc | Bin 0 -> 5537 bytes .../auth/__pycache__/forms.cpython-312.pyc | Bin 0 -> 26015 bytes .../auth/__pycache__/hashers.cpython-312.pyc | Bin 0 -> 30016 bytes .../__pycache__/middleware.cpython-312.pyc | Bin 0 -> 8754 bytes .../auth/__pycache__/mixins.cpython-312.pyc | Bin 0 -> 7008 bytes .../auth/__pycache__/models.cpython-312.pyc | Bin 0 -> 23274 bytes .../password_validation.cpython-312.pyc | Bin 0 -> 12530 bytes .../auth/__pycache__/signals.cpython-312.pyc | Bin 0 -> 360 bytes .../auth/__pycache__/tokens.cpython-312.pyc | Bin 0 -> 5876 bytes .../auth/__pycache__/urls.cpython-312.pyc | Bin 0 -> 1559 bytes .../__pycache__/validators.cpython-312.pyc | Bin 0 -> 1315 bytes .../auth/__pycache__/views.cpython-312.pyc | Bin 0 -> 18802 bytes .../django/contrib/auth/admin.py | 253 + .../site-packages/django/contrib/auth/apps.py | 31 + .../django/contrib/auth/backends.py | 233 + .../django/contrib/auth/base_user.py | 164 + .../django/contrib/auth/checks.py | 262 + .../contrib/auth/common-passwords.txt.gz | Bin 0 -> 82262 bytes .../django/contrib/auth/context_processors.py | 67 + .../django/contrib/auth/decorators.py | 136 + .../django/contrib/auth/forms.py | 560 + .../django/contrib/auth/handlers/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 205 bytes .../__pycache__/modwsgi.cpython-312.pyc | Bin 0 -> 2354 bytes .../django/contrib/auth/handlers/modwsgi.py | 43 + .../django/contrib/auth/hashers.py | 688 + .../auth/locale/af/LC_MESSAGES/django.mo | Bin 0 -> 7514 bytes .../auth/locale/af/LC_MESSAGES/django.po | 307 + .../auth/locale/ar/LC_MESSAGES/django.mo | Bin 0 -> 10040 bytes .../auth/locale/ar/LC_MESSAGES/django.po | 319 + .../auth/locale/ar_DZ/LC_MESSAGES/django.mo | Bin 0 -> 10228 bytes .../auth/locale/ar_DZ/LC_MESSAGES/django.po | 320 + .../auth/locale/ast/LC_MESSAGES/django.mo | Bin 0 -> 2250 bytes .../auth/locale/ast/LC_MESSAGES/django.po | 284 + .../auth/locale/az/LC_MESSAGES/django.mo | Bin 0 -> 8758 bytes .../auth/locale/az/LC_MESSAGES/django.po | 342 + .../auth/locale/be/LC_MESSAGES/django.mo | Bin 0 -> 11469 bytes .../auth/locale/be/LC_MESSAGES/django.po | 349 + .../auth/locale/bg/LC_MESSAGES/django.mo | Bin 0 -> 10717 bytes .../auth/locale/bg/LC_MESSAGES/django.po | 343 + .../auth/locale/bn/LC_MESSAGES/django.mo | Bin 0 -> 5455 bytes .../auth/locale/bn/LC_MESSAGES/django.po | 286 + .../auth/locale/br/LC_MESSAGES/django.mo | Bin 0 -> 1436 bytes .../auth/locale/br/LC_MESSAGES/django.po | 293 + .../auth/locale/bs/LC_MESSAGES/django.mo | Bin 0 -> 3146 bytes .../auth/locale/bs/LC_MESSAGES/django.po | 296 + .../auth/locale/ca/LC_MESSAGES/django.mo | Bin 0 -> 7643 bytes .../auth/locale/ca/LC_MESSAGES/django.po | 316 + .../auth/locale/ckb/LC_MESSAGES/django.mo | Bin 0 -> 11066 bytes .../auth/locale/ckb/LC_MESSAGES/django.po | 341 + .../auth/locale/cs/LC_MESSAGES/django.mo | Bin 0 -> 7836 bytes .../auth/locale/cs/LC_MESSAGES/django.po | 309 + .../auth/locale/cy/LC_MESSAGES/django.mo | Bin 0 -> 4338 bytes .../auth/locale/cy/LC_MESSAGES/django.po | 294 + .../auth/locale/da/LC_MESSAGES/django.mo | Bin 0 -> 8509 bytes .../auth/locale/da/LC_MESSAGES/django.po | 344 + .../auth/locale/de/LC_MESSAGES/django.mo | Bin 0 -> 7607 bytes .../auth/locale/de/LC_MESSAGES/django.po | 318 + .../auth/locale/dsb/LC_MESSAGES/django.mo | Bin 0 -> 8249 bytes .../auth/locale/dsb/LC_MESSAGES/django.po | 320 + .../auth/locale/el/LC_MESSAGES/django.mo | Bin 0 -> 10072 bytes .../auth/locale/el/LC_MESSAGES/django.po | 320 + .../auth/locale/en/LC_MESSAGES/django.mo | Bin 0 -> 356 bytes .../auth/locale/en/LC_MESSAGES/django.po | 415 + .../auth/locale/en_AU/LC_MESSAGES/django.mo | Bin 0 -> 7183 bytes .../auth/locale/en_AU/LC_MESSAGES/django.po | 306 + .../auth/locale/en_GB/LC_MESSAGES/django.mo | Bin 0 -> 3179 bytes .../auth/locale/en_GB/LC_MESSAGES/django.po | 289 + .../auth/locale/eo/LC_MESSAGES/django.mo | Bin 0 -> 7421 bytes .../auth/locale/eo/LC_MESSAGES/django.po | 310 + .../auth/locale/es/LC_MESSAGES/django.mo | Bin 0 -> 9039 bytes .../auth/locale/es/LC_MESSAGES/django.po | 363 + .../auth/locale/es_AR/LC_MESSAGES/django.mo | Bin 0 -> 8244 bytes .../auth/locale/es_AR/LC_MESSAGES/django.po | 319 + .../auth/locale/es_CO/LC_MESSAGES/django.mo | Bin 0 -> 6529 bytes .../auth/locale/es_CO/LC_MESSAGES/django.po | 304 + .../auth/locale/es_MX/LC_MESSAGES/django.mo | Bin 0 -> 7822 bytes .../auth/locale/es_MX/LC_MESSAGES/django.po | 312 + .../auth/locale/es_VE/LC_MESSAGES/django.mo | Bin 0 -> 7415 bytes .../auth/locale/es_VE/LC_MESSAGES/django.po | 304 + .../auth/locale/et/LC_MESSAGES/django.mo | Bin 0 -> 7216 bytes .../auth/locale/et/LC_MESSAGES/django.po | 339 + .../auth/locale/eu/LC_MESSAGES/django.mo | Bin 0 -> 7181 bytes .../auth/locale/eu/LC_MESSAGES/django.po | 311 + .../auth/locale/fa/LC_MESSAGES/django.mo | Bin 0 -> 8979 bytes .../auth/locale/fa/LC_MESSAGES/django.po | 313 + .../auth/locale/fi/LC_MESSAGES/django.mo | Bin 0 -> 7537 bytes .../auth/locale/fi/LC_MESSAGES/django.po | 309 + .../auth/locale/fr/LC_MESSAGES/django.mo | Bin 0 -> 9536 bytes .../auth/locale/fr/LC_MESSAGES/django.po | 362 + .../auth/locale/fy/LC_MESSAGES/django.mo | Bin 0 -> 476 bytes .../auth/locale/fy/LC_MESSAGES/django.po | 226 + .../auth/locale/ga/LC_MESSAGES/django.mo | Bin 0 -> 3572 bytes .../auth/locale/ga/LC_MESSAGES/django.po | 298 + .../auth/locale/gd/LC_MESSAGES/django.mo | Bin 0 -> 8743 bytes .../auth/locale/gd/LC_MESSAGES/django.po | 337 + .../auth/locale/gl/LC_MESSAGES/django.mo | Bin 0 -> 8805 bytes .../auth/locale/gl/LC_MESSAGES/django.po | 349 + .../auth/locale/he/LC_MESSAGES/django.mo | Bin 0 -> 8716 bytes .../auth/locale/he/LC_MESSAGES/django.po | 307 + .../auth/locale/hi/LC_MESSAGES/django.mo | Bin 0 -> 5364 bytes .../auth/locale/hi/LC_MESSAGES/django.po | 290 + .../auth/locale/hr/LC_MESSAGES/django.mo | Bin 0 -> 5894 bytes .../auth/locale/hr/LC_MESSAGES/django.po | 306 + .../auth/locale/hsb/LC_MESSAGES/django.mo | Bin 0 -> 8082 bytes .../auth/locale/hsb/LC_MESSAGES/django.po | 317 + .../auth/locale/hu/LC_MESSAGES/django.mo | Bin 0 -> 7714 bytes .../auth/locale/hu/LC_MESSAGES/django.po | 312 + .../auth/locale/hy/LC_MESSAGES/django.mo | Bin 0 -> 8001 bytes .../auth/locale/hy/LC_MESSAGES/django.po | 295 + .../auth/locale/ia/LC_MESSAGES/django.mo | Bin 0 -> 7626 bytes .../auth/locale/ia/LC_MESSAGES/django.po | 310 + .../auth/locale/id/LC_MESSAGES/django.mo | Bin 0 -> 7296 bytes .../auth/locale/id/LC_MESSAGES/django.po | 307 + .../auth/locale/io/LC_MESSAGES/django.mo | Bin 0 -> 464 bytes .../auth/locale/io/LC_MESSAGES/django.po | 226 + .../auth/locale/is/LC_MESSAGES/django.mo | Bin 0 -> 7509 bytes .../auth/locale/is/LC_MESSAGES/django.po | 307 + .../auth/locale/it/LC_MESSAGES/django.mo | Bin 0 -> 7862 bytes .../auth/locale/it/LC_MESSAGES/django.po | 322 + .../auth/locale/ja/LC_MESSAGES/django.mo | Bin 0 -> 9229 bytes .../auth/locale/ja/LC_MESSAGES/django.po | 335 + .../auth/locale/ka/LC_MESSAGES/django.mo | Bin 0 -> 10372 bytes .../auth/locale/ka/LC_MESSAGES/django.po | 302 + .../auth/locale/kab/LC_MESSAGES/django.mo | Bin 0 -> 2982 bytes .../auth/locale/kab/LC_MESSAGES/django.po | 287 + .../auth/locale/kk/LC_MESSAGES/django.mo | Bin 0 -> 3542 bytes .../auth/locale/kk/LC_MESSAGES/django.po | 285 + .../auth/locale/km/LC_MESSAGES/django.mo | Bin 0 -> 2609 bytes .../auth/locale/km/LC_MESSAGES/django.po | 281 + .../auth/locale/kn/LC_MESSAGES/django.mo | Bin 0 -> 4024 bytes .../auth/locale/kn/LC_MESSAGES/django.po | 285 + .../auth/locale/ko/LC_MESSAGES/django.mo | Bin 0 -> 7651 bytes .../auth/locale/ko/LC_MESSAGES/django.po | 309 + .../auth/locale/ky/LC_MESSAGES/django.mo | Bin 0 -> 8924 bytes .../auth/locale/ky/LC_MESSAGES/django.po | 299 + .../auth/locale/lb/LC_MESSAGES/django.mo | Bin 0 -> 474 bytes .../auth/locale/lb/LC_MESSAGES/django.po | 226 + .../auth/locale/lt/LC_MESSAGES/django.mo | Bin 0 -> 8146 bytes .../auth/locale/lt/LC_MESSAGES/django.po | 320 + .../auth/locale/lv/LC_MESSAGES/django.mo | Bin 0 -> 8802 bytes .../auth/locale/lv/LC_MESSAGES/django.po | 350 + .../auth/locale/mk/LC_MESSAGES/django.mo | Bin 0 -> 9235 bytes .../auth/locale/mk/LC_MESSAGES/django.po | 308 + .../auth/locale/ml/LC_MESSAGES/django.mo | Bin 0 -> 12611 bytes .../auth/locale/ml/LC_MESSAGES/django.po | 303 + .../auth/locale/mn/LC_MESSAGES/django.mo | Bin 0 -> 9403 bytes .../auth/locale/mn/LC_MESSAGES/django.po | 310 + .../auth/locale/mr/LC_MESSAGES/django.mo | Bin 0 -> 10430 bytes .../auth/locale/mr/LC_MESSAGES/django.po | 299 + .../auth/locale/ms/LC_MESSAGES/django.mo | Bin 0 -> 7654 bytes .../auth/locale/ms/LC_MESSAGES/django.po | 313 + .../auth/locale/my/LC_MESSAGES/django.mo | Bin 0 -> 1026 bytes .../auth/locale/my/LC_MESSAGES/django.po | 282 + .../auth/locale/nb/LC_MESSAGES/django.mo | Bin 0 -> 7023 bytes .../auth/locale/nb/LC_MESSAGES/django.po | 302 + .../auth/locale/ne/LC_MESSAGES/django.mo | Bin 0 -> 7722 bytes .../auth/locale/ne/LC_MESSAGES/django.po | 286 + .../auth/locale/nl/LC_MESSAGES/django.mo | Bin 0 -> 8654 bytes .../auth/locale/nl/LC_MESSAGES/django.po | 353 + .../auth/locale/nn/LC_MESSAGES/django.mo | Bin 0 -> 7147 bytes .../auth/locale/nn/LC_MESSAGES/django.po | 301 + .../auth/locale/os/LC_MESSAGES/django.mo | Bin 0 -> 4434 bytes .../auth/locale/os/LC_MESSAGES/django.po | 288 + .../auth/locale/pa/LC_MESSAGES/django.mo | Bin 0 -> 3666 bytes .../auth/locale/pa/LC_MESSAGES/django.po | 285 + .../auth/locale/pl/LC_MESSAGES/django.mo | Bin 0 -> 9123 bytes .../auth/locale/pl/LC_MESSAGES/django.po | 363 + .../auth/locale/pt/LC_MESSAGES/django.mo | Bin 0 -> 6953 bytes .../auth/locale/pt/LC_MESSAGES/django.po | 314 + .../auth/locale/pt_BR/LC_MESSAGES/django.mo | Bin 0 -> 8790 bytes .../auth/locale/pt_BR/LC_MESSAGES/django.po | 369 + .../auth/locale/ro/LC_MESSAGES/django.mo | Bin 0 -> 7777 bytes .../auth/locale/ro/LC_MESSAGES/django.po | 320 + .../auth/locale/ru/LC_MESSAGES/django.mo | Bin 0 -> 11873 bytes .../auth/locale/ru/LC_MESSAGES/django.po | 359 + .../auth/locale/sk/LC_MESSAGES/django.mo | Bin 0 -> 7917 bytes .../auth/locale/sk/LC_MESSAGES/django.po | 315 + .../auth/locale/sl/LC_MESSAGES/django.mo | Bin 0 -> 7659 bytes .../auth/locale/sl/LC_MESSAGES/django.po | 312 + .../auth/locale/sq/LC_MESSAGES/django.mo | Bin 0 -> 9021 bytes .../auth/locale/sq/LC_MESSAGES/django.po | 349 + .../auth/locale/sr/LC_MESSAGES/django.mo | Bin 0 -> 11244 bytes .../auth/locale/sr/LC_MESSAGES/django.po | 348 + .../auth/locale/sr_Latn/LC_MESSAGES/django.mo | Bin 0 -> 8794 bytes .../auth/locale/sr_Latn/LC_MESSAGES/django.po | 422 + .../auth/locale/sv/LC_MESSAGES/django.mo | Bin 0 -> 8542 bytes .../auth/locale/sv/LC_MESSAGES/django.po | 355 + .../auth/locale/sw/LC_MESSAGES/django.mo | Bin 0 -> 5029 bytes .../auth/locale/sw/LC_MESSAGES/django.po | 287 + .../auth/locale/ta/LC_MESSAGES/django.mo | Bin 0 -> 2679 bytes .../auth/locale/ta/LC_MESSAGES/django.po | 283 + .../auth/locale/te/LC_MESSAGES/django.mo | Bin 0 -> 2955 bytes .../auth/locale/te/LC_MESSAGES/django.po | 285 + .../auth/locale/tg/LC_MESSAGES/django.mo | Bin 0 -> 7932 bytes .../auth/locale/tg/LC_MESSAGES/django.po | 299 + .../auth/locale/th/LC_MESSAGES/django.mo | Bin 0 -> 6013 bytes .../auth/locale/th/LC_MESSAGES/django.po | 282 + .../auth/locale/tk/LC_MESSAGES/django.mo | Bin 0 -> 7467 bytes .../auth/locale/tk/LC_MESSAGES/django.po | 307 + .../auth/locale/tr/LC_MESSAGES/django.mo | Bin 0 -> 8662 bytes .../auth/locale/tr/LC_MESSAGES/django.po | 348 + .../auth/locale/tt/LC_MESSAGES/django.mo | Bin 0 -> 1371 bytes .../auth/locale/tt/LC_MESSAGES/django.po | 281 + .../auth/locale/udm/LC_MESSAGES/django.mo | Bin 0 -> 462 bytes .../auth/locale/udm/LC_MESSAGES/django.po | 226 + .../auth/locale/ug/LC_MESSAGES/django.mo | Bin 0 -> 9516 bytes .../auth/locale/ug/LC_MESSAGES/django.po | 312 + .../auth/locale/uk/LC_MESSAGES/django.mo | Bin 0 -> 10146 bytes .../auth/locale/uk/LC_MESSAGES/django.po | 323 + .../auth/locale/ur/LC_MESSAGES/django.mo | Bin 0 -> 698 bytes .../auth/locale/ur/LC_MESSAGES/django.po | 282 + .../auth/locale/uz/LC_MESSAGES/django.mo | Bin 0 -> 2549 bytes .../auth/locale/uz/LC_MESSAGES/django.po | 287 + .../auth/locale/vi/LC_MESSAGES/django.mo | Bin 0 -> 7892 bytes .../auth/locale/vi/LC_MESSAGES/django.po | 305 + .../auth/locale/zh_Hans/LC_MESSAGES/django.mo | Bin 0 -> 6902 bytes .../auth/locale/zh_Hans/LC_MESSAGES/django.po | 305 + .../auth/locale/zh_Hant/LC_MESSAGES/django.mo | Bin 0 -> 7683 bytes .../auth/locale/zh_Hant/LC_MESSAGES/django.po | 328 + .../contrib/auth/management/__init__.py | 172 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 6044 bytes .../auth/management/commands/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 216 bytes .../changepassword.cpython-312.pyc | Bin 0 -> 3720 bytes .../createsuperuser.cpython-312.pyc | Bin 0 -> 14582 bytes .../management/commands/changepassword.py | 82 + .../management/commands/createsuperuser.py | 317 + .../django/contrib/auth/middleware.py | 191 + .../contrib/auth/migrations/0001_initial.py | 204 + .../0002_alter_permission_name_max_length.py | 15 + .../0003_alter_user_email_max_length.py | 17 + .../0004_alter_user_username_opts.py | 27 + .../0005_alter_user_last_login_null.py | 17 + .../0006_require_contenttypes_0002.py | 13 + ...007_alter_validators_add_error_messages.py | 26 + .../0008_alter_user_username_max_length.py | 26 + .../0009_alter_user_last_name_max_length.py | 17 + .../0010_alter_group_name_max_length.py | 15 + .../0011_update_proxy_permissions.py | 76 + .../0012_alter_user_first_name_max_length.py | 17 + .../contrib/auth/migrations/__init__.py | 0 .../__pycache__/0001_initial.cpython-312.pyc | Bin 0 -> 4806 bytes ...permission_name_max_length.cpython-312.pyc | Bin 0 -> 804 bytes ...lter_user_email_max_length.cpython-312.pyc | Bin 0 -> 851 bytes ...4_alter_user_username_opts.cpython-312.pyc | Bin 0 -> 1145 bytes ...alter_user_last_login_null.cpython-312.pyc | Bin 0 -> 836 bytes ..._require_contenttypes_0002.cpython-312.pyc | Bin 0 -> 623 bytes ...idators_add_error_messages.cpython-312.pyc | Bin 0 -> 1154 bytes ...r_user_username_max_length.cpython-312.pyc | Bin 0 -> 1160 bytes ..._user_last_name_max_length.cpython-312.pyc | Bin 0 -> 852 bytes ...lter_group_name_max_length.cpython-312.pyc | Bin 0 -> 831 bytes ...1_update_proxy_permissions.cpython-312.pyc | Bin 0 -> 3977 bytes ...user_first_name_max_length.cpython-312.pyc | Bin 0 -> 849 bytes .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 207 bytes .../django/contrib/auth/mixins.py | 135 + .../django/contrib/auth/models.py | 500 + .../contrib/auth/password_validation.py | 266 + .../django/contrib/auth/signals.py | 5 + .../auth/widgets/read_only_password_hash.html | 8 + .../registration/password_reset_subject.txt | 3 + .../django/contrib/auth/tokens.py | 132 + .../site-packages/django/contrib/auth/urls.py | 36 + .../django/contrib/auth/validators.py | 25 + .../django/contrib/auth/views.py | 384 + .../django/contrib/contenttypes/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 204 bytes .../__pycache__/admin.cpython-312.pyc | Bin 0 -> 5909 bytes .../__pycache__/apps.cpython-312.pyc | Bin 0 -> 1605 bytes .../__pycache__/checks.cpython-312.pyc | Bin 0 -> 2460 bytes .../__pycache__/fields.cpython-312.pyc | Bin 0 -> 41019 bytes .../__pycache__/forms.cpython-312.pyc | Bin 0 -> 5292 bytes .../__pycache__/models.cpython-312.pyc | Bin 0 -> 9922 bytes .../__pycache__/prefetch.cpython-312.pyc | Bin 0 -> 2058 bytes .../__pycache__/views.cpython-312.pyc | Bin 0 -> 3476 bytes .../django/contrib/contenttypes/admin.py | 143 + .../django/contrib/contenttypes/apps.py | 22 + .../django/contrib/contenttypes/checks.py | 46 + .../django/contrib/contenttypes/fields.py | 828 ++ .../django/contrib/contenttypes/forms.py | 133 + .../locale/af/LC_MESSAGES/django.mo | Bin 0 -> 1070 bytes .../locale/af/LC_MESSAGES/django.po | 42 + .../locale/ar/LC_MESSAGES/django.mo | Bin 0 -> 1271 bytes .../locale/ar/LC_MESSAGES/django.po | 46 + .../locale/ar_DZ/LC_MESSAGES/django.mo | Bin 0 -> 1233 bytes .../locale/ar_DZ/LC_MESSAGES/django.po | 43 + .../locale/ast/LC_MESSAGES/django.mo | Bin 0 -> 643 bytes .../locale/ast/LC_MESSAGES/django.po | 42 + .../locale/az/LC_MESSAGES/django.mo | Bin 0 -> 1058 bytes .../locale/az/LC_MESSAGES/django.po | 45 + .../locale/be/LC_MESSAGES/django.mo | Bin 0 -> 1353 bytes .../locale/be/LC_MESSAGES/django.po | 45 + .../locale/bg/LC_MESSAGES/django.mo | Bin 0 -> 1225 bytes .../locale/bg/LC_MESSAGES/django.po | 46 + .../locale/bn/LC_MESSAGES/django.mo | Bin 0 -> 1201 bytes .../locale/bn/LC_MESSAGES/django.po | 43 + .../locale/br/LC_MESSAGES/django.mo | Bin 0 -> 1419 bytes .../locale/br/LC_MESSAGES/django.po | 45 + .../locale/bs/LC_MESSAGES/django.mo | Bin 0 -> 700 bytes .../locale/bs/LC_MESSAGES/django.po | 43 + .../locale/ca/LC_MESSAGES/django.mo | Bin 0 -> 1095 bytes .../locale/ca/LC_MESSAGES/django.po | 44 + .../locale/ckb/LC_MESSAGES/django.mo | Bin 0 -> 1213 bytes .../locale/ckb/LC_MESSAGES/django.po | 42 + .../locale/cs/LC_MESSAGES/django.mo | Bin 0 -> 1108 bytes .../locale/cs/LC_MESSAGES/django.po | 44 + .../locale/cy/LC_MESSAGES/django.mo | Bin 0 -> 1159 bytes .../locale/cy/LC_MESSAGES/django.po | 43 + .../locale/da/LC_MESSAGES/django.mo | Bin 0 -> 1038 bytes .../locale/da/LC_MESSAGES/django.po | 43 + .../locale/de/LC_MESSAGES/django.mo | Bin 0 -> 1055 bytes .../locale/de/LC_MESSAGES/django.po | 42 + .../locale/dsb/LC_MESSAGES/django.mo | Bin 0 -> 1132 bytes .../locale/dsb/LC_MESSAGES/django.po | 43 + .../locale/el/LC_MESSAGES/django.mo | Bin 0 -> 1286 bytes .../locale/el/LC_MESSAGES/django.po | 45 + .../locale/en/LC_MESSAGES/django.mo | Bin 0 -> 356 bytes .../locale/en/LC_MESSAGES/django.po | 45 + .../locale/en_AU/LC_MESSAGES/django.mo | Bin 0 -> 486 bytes .../locale/en_AU/LC_MESSAGES/django.po | 41 + .../locale/en_GB/LC_MESSAGES/django.mo | Bin 0 -> 1053 bytes .../locale/en_GB/LC_MESSAGES/django.po | 43 + .../locale/eo/LC_MESSAGES/django.mo | Bin 0 -> 1072 bytes .../locale/eo/LC_MESSAGES/django.po | 43 + .../locale/es/LC_MESSAGES/django.mo | Bin 0 -> 1096 bytes .../locale/es/LC_MESSAGES/django.po | 46 + .../locale/es_AR/LC_MESSAGES/django.mo | Bin 0 -> 1084 bytes .../locale/es_AR/LC_MESSAGES/django.po | 43 + .../locale/es_CO/LC_MESSAGES/django.mo | Bin 0 -> 1158 bytes .../locale/es_CO/LC_MESSAGES/django.po | 43 + .../locale/es_MX/LC_MESSAGES/django.mo | Bin 0 -> 840 bytes .../locale/es_MX/LC_MESSAGES/django.po | 44 + .../locale/es_VE/LC_MESSAGES/django.mo | Bin 0 -> 1152 bytes .../locale/es_VE/LC_MESSAGES/django.po | 44 + .../locale/et/LC_MESSAGES/django.mo | Bin 0 -> 1028 bytes .../locale/et/LC_MESSAGES/django.po | 45 + .../locale/eu/LC_MESSAGES/django.mo | Bin 0 -> 1077 bytes .../locale/eu/LC_MESSAGES/django.po | 43 + .../locale/fa/LC_MESSAGES/django.mo | Bin 0 -> 1130 bytes .../locale/fa/LC_MESSAGES/django.po | 45 + .../locale/fi/LC_MESSAGES/django.mo | Bin 0 -> 1036 bytes .../locale/fi/LC_MESSAGES/django.po | 44 + .../locale/fr/LC_MESSAGES/django.mo | Bin 0 -> 1078 bytes .../locale/fr/LC_MESSAGES/django.po | 43 + .../locale/fy/LC_MESSAGES/django.mo | Bin 0 -> 476 bytes .../locale/fy/LC_MESSAGES/django.po | 41 + .../locale/ga/LC_MESSAGES/django.mo | Bin 0 -> 1097 bytes .../locale/ga/LC_MESSAGES/django.po | 44 + .../locale/gd/LC_MESSAGES/django.mo | Bin 0 -> 1154 bytes .../locale/gd/LC_MESSAGES/django.po | 45 + .../locale/gl/LC_MESSAGES/django.mo | Bin 0 -> 1080 bytes .../locale/gl/LC_MESSAGES/django.po | 45 + .../locale/he/LC_MESSAGES/django.mo | Bin 0 -> 1219 bytes .../locale/he/LC_MESSAGES/django.po | 43 + .../locale/hi/LC_MESSAGES/django.mo | Bin 0 -> 1321 bytes .../locale/hi/LC_MESSAGES/django.po | 42 + .../locale/hr/LC_MESSAGES/django.mo | Bin 0 -> 1167 bytes .../locale/hr/LC_MESSAGES/django.po | 45 + .../locale/hsb/LC_MESSAGES/django.mo | Bin 0 -> 1106 bytes .../locale/hsb/LC_MESSAGES/django.po | 43 + .../locale/hu/LC_MESSAGES/django.mo | Bin 0 -> 1102 bytes .../locale/hu/LC_MESSAGES/django.po | 46 + .../locale/hy/LC_MESSAGES/django.mo | Bin 0 -> 1290 bytes .../locale/hy/LC_MESSAGES/django.po | 41 + .../locale/ia/LC_MESSAGES/django.mo | Bin 0 -> 1105 bytes .../locale/ia/LC_MESSAGES/django.po | 42 + .../locale/id/LC_MESSAGES/django.mo | Bin 0 -> 1031 bytes .../locale/id/LC_MESSAGES/django.po | 46 + .../locale/io/LC_MESSAGES/django.mo | Bin 0 -> 1051 bytes .../locale/io/LC_MESSAGES/django.po | 41 + .../locale/is/LC_MESSAGES/django.mo | Bin 0 -> 1049 bytes .../locale/is/LC_MESSAGES/django.po | 44 + .../locale/it/LC_MESSAGES/django.mo | Bin 0 -> 1075 bytes .../locale/it/LC_MESSAGES/django.po | 46 + .../locale/ja/LC_MESSAGES/django.mo | Bin 0 -> 1211 bytes .../locale/ja/LC_MESSAGES/django.po | 47 + .../locale/ka/LC_MESSAGES/django.mo | Bin 0 -> 1429 bytes .../locale/ka/LC_MESSAGES/django.po | 43 + .../locale/kk/LC_MESSAGES/django.mo | Bin 0 -> 627 bytes .../locale/kk/LC_MESSAGES/django.po | 41 + .../locale/km/LC_MESSAGES/django.mo | Bin 0 -> 678 bytes .../locale/km/LC_MESSAGES/django.po | 41 + .../locale/kn/LC_MESSAGES/django.mo | Bin 0 -> 714 bytes .../locale/kn/LC_MESSAGES/django.po | 42 + .../locale/ko/LC_MESSAGES/django.mo | Bin 0 -> 1089 bytes .../locale/ko/LC_MESSAGES/django.po | 43 + .../locale/ky/LC_MESSAGES/django.mo | Bin 0 -> 1182 bytes .../locale/ky/LC_MESSAGES/django.po | 42 + .../locale/lb/LC_MESSAGES/django.mo | Bin 0 -> 474 bytes .../locale/lb/LC_MESSAGES/django.po | 41 + .../locale/lt/LC_MESSAGES/django.mo | Bin 0 -> 1215 bytes .../locale/lt/LC_MESSAGES/django.po | 46 + .../locale/lv/LC_MESSAGES/django.mo | Bin 0 -> 1065 bytes .../locale/lv/LC_MESSAGES/django.po | 45 + .../locale/mk/LC_MESSAGES/django.mo | Bin 0 -> 1258 bytes .../locale/mk/LC_MESSAGES/django.po | 44 + .../locale/ml/LC_MESSAGES/django.mo | Bin 0 -> 1378 bytes .../locale/ml/LC_MESSAGES/django.po | 43 + .../locale/mn/LC_MESSAGES/django.mo | Bin 0 -> 1225 bytes .../locale/mn/LC_MESSAGES/django.po | 46 + .../locale/mr/LC_MESSAGES/django.mo | Bin 0 -> 1004 bytes .../locale/mr/LC_MESSAGES/django.po | 42 + .../locale/ms/LC_MESSAGES/django.mo | Bin 0 -> 1035 bytes .../locale/ms/LC_MESSAGES/django.po | 41 + .../locale/my/LC_MESSAGES/django.mo | Bin 0 -> 1554 bytes .../locale/my/LC_MESSAGES/django.po | 42 + .../locale/nb/LC_MESSAGES/django.mo | Bin 0 -> 1031 bytes .../locale/nb/LC_MESSAGES/django.po | 46 + .../locale/ne/LC_MESSAGES/django.mo | Bin 0 -> 1344 bytes .../locale/ne/LC_MESSAGES/django.po | 41 + .../locale/nl/LC_MESSAGES/django.mo | Bin 0 -> 1040 bytes .../locale/nl/LC_MESSAGES/django.po | 44 + .../locale/nn/LC_MESSAGES/django.mo | Bin 0 -> 1040 bytes .../locale/nn/LC_MESSAGES/django.po | 44 + .../locale/os/LC_MESSAGES/django.mo | Bin 0 -> 1116 bytes .../locale/os/LC_MESSAGES/django.po | 42 + .../locale/pa/LC_MESSAGES/django.mo | Bin 0 -> 697 bytes .../locale/pa/LC_MESSAGES/django.po | 42 + .../locale/pl/LC_MESSAGES/django.mo | Bin 0 -> 1208 bytes .../locale/pl/LC_MESSAGES/django.po | 47 + .../locale/pt/LC_MESSAGES/django.mo | Bin 0 -> 1154 bytes .../locale/pt/LC_MESSAGES/django.po | 45 + .../locale/pt_BR/LC_MESSAGES/django.mo | Bin 0 -> 1117 bytes .../locale/pt_BR/LC_MESSAGES/django.po | 46 + .../locale/ro/LC_MESSAGES/django.mo | Bin 0 -> 1142 bytes .../locale/ro/LC_MESSAGES/django.po | 45 + .../locale/ru/LC_MESSAGES/django.mo | Bin 0 -> 1345 bytes .../locale/ru/LC_MESSAGES/django.po | 47 + .../locale/sk/LC_MESSAGES/django.mo | Bin 0 -> 1115 bytes .../locale/sk/LC_MESSAGES/django.po | 45 + .../locale/sl/LC_MESSAGES/django.mo | Bin 0 -> 1147 bytes .../locale/sl/LC_MESSAGES/django.po | 45 + .../locale/sq/LC_MESSAGES/django.mo | Bin 0 -> 1066 bytes .../locale/sq/LC_MESSAGES/django.po | 43 + .../locale/sr/LC_MESSAGES/django.mo | Bin 0 -> 1204 bytes .../locale/sr/LC_MESSAGES/django.po | 46 + .../locale/sr_Latn/LC_MESSAGES/django.mo | Bin 0 -> 1102 bytes .../locale/sr_Latn/LC_MESSAGES/django.po | 45 + .../locale/sv/LC_MESSAGES/django.mo | Bin 0 -> 1055 bytes .../locale/sv/LC_MESSAGES/django.po | 46 + .../locale/sw/LC_MESSAGES/django.mo | Bin 0 -> 563 bytes .../locale/sw/LC_MESSAGES/django.po | 41 + .../locale/ta/LC_MESSAGES/django.mo | Bin 0 -> 678 bytes .../locale/ta/LC_MESSAGES/django.po | 41 + .../locale/te/LC_MESSAGES/django.mo | Bin 0 -> 690 bytes .../locale/te/LC_MESSAGES/django.po | 41 + .../locale/tg/LC_MESSAGES/django.mo | Bin 0 -> 864 bytes .../locale/tg/LC_MESSAGES/django.po | 41 + .../locale/th/LC_MESSAGES/django.mo | Bin 0 -> 1186 bytes .../locale/th/LC_MESSAGES/django.po | 42 + .../locale/tk/LC_MESSAGES/django.mo | Bin 0 -> 1068 bytes .../locale/tk/LC_MESSAGES/django.po | 42 + .../locale/tr/LC_MESSAGES/django.mo | Bin 0 -> 1057 bytes .../locale/tr/LC_MESSAGES/django.po | 45 + .../locale/tt/LC_MESSAGES/django.mo | Bin 0 -> 659 bytes .../locale/tt/LC_MESSAGES/django.po | 41 + .../locale/udm/LC_MESSAGES/django.mo | Bin 0 -> 462 bytes .../locale/udm/LC_MESSAGES/django.po | 41 + .../locale/ug/LC_MESSAGES/django.mo | Bin 0 -> 1182 bytes .../locale/ug/LC_MESSAGES/django.po | 41 + .../locale/uk/LC_MESSAGES/django.mo | Bin 0 -> 1404 bytes .../locale/uk/LC_MESSAGES/django.po | 49 + .../locale/ur/LC_MESSAGES/django.mo | Bin 0 -> 671 bytes .../locale/ur/LC_MESSAGES/django.po | 41 + .../locale/vi/LC_MESSAGES/django.mo | Bin 0 -> 1155 bytes .../locale/vi/LC_MESSAGES/django.po | 45 + .../locale/zh_Hans/LC_MESSAGES/django.mo | Bin 0 -> 1015 bytes .../locale/zh_Hans/LC_MESSAGES/django.po | 46 + .../locale/zh_Hant/LC_MESSAGES/django.mo | Bin 0 -> 1046 bytes .../locale/zh_Hant/LC_MESSAGES/django.po | 44 + .../contenttypes/management/__init__.py | 145 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 6265 bytes .../management/commands/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 224 bytes .../remove_stale_contenttypes.cpython-312.pyc | Bin 0 -> 5196 bytes .../commands/remove_stale_contenttypes.py | 113 + .../contenttypes/migrations/0001_initial.py | 45 + .../0002_remove_content_type_name.py | 42 + .../contenttypes/migrations/__init__.py | 0 .../__pycache__/0001_initial.cpython-312.pyc | Bin 0 -> 1682 bytes ...2_remove_content_type_name.cpython-312.pyc | Bin 0 -> 2034 bytes .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 215 bytes .../django/contrib/contenttypes/models.py | 188 + .../django/contrib/contenttypes/prefetch.py | 36 + .../django/contrib/contenttypes/views.py | 88 + .../django/contrib/flatpages/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 201 bytes .../__pycache__/admin.cpython-312.pyc | Bin 0 -> 1077 bytes .../__pycache__/apps.cpython-312.pyc | Bin 0 -> 646 bytes .../__pycache__/forms.cpython-312.pyc | Bin 0 -> 3933 bytes .../__pycache__/middleware.cpython-312.pyc | Bin 0 -> 1125 bytes .../__pycache__/models.cpython-312.pyc | Bin 0 -> 3031 bytes .../__pycache__/sitemaps.cpython-312.pyc | Bin 0 -> 1218 bytes .../__pycache__/urls.cpython-312.pyc | Bin 0 -> 449 bytes .../__pycache__/views.cpython-312.pyc | Bin 0 -> 2815 bytes .../django/contrib/flatpages/admin.py | 22 + .../django/contrib/flatpages/apps.py | 8 + .../django/contrib/flatpages/forms.py | 74 + .../flatpages/locale/af/LC_MESSAGES/django.mo | Bin 0 -> 2282 bytes .../flatpages/locale/af/LC_MESSAGES/django.po | 89 + .../flatpages/locale/ar/LC_MESSAGES/django.mo | Bin 0 -> 2636 bytes .../flatpages/locale/ar/LC_MESSAGES/django.po | 91 + .../locale/ar_DZ/LC_MESSAGES/django.mo | Bin 0 -> 2637 bytes .../locale/ar_DZ/LC_MESSAGES/django.po | 87 + .../locale/ast/LC_MESSAGES/django.mo | Bin 0 -> 924 bytes .../locale/ast/LC_MESSAGES/django.po | 80 + .../flatpages/locale/az/LC_MESSAGES/django.mo | Bin 0 -> 2378 bytes .../flatpages/locale/az/LC_MESSAGES/django.po | 94 + .../flatpages/locale/be/LC_MESSAGES/django.mo | Bin 0 -> 2978 bytes .../flatpages/locale/be/LC_MESSAGES/django.po | 92 + .../flatpages/locale/bg/LC_MESSAGES/django.mo | Bin 0 -> 2802 bytes .../flatpages/locale/bg/LC_MESSAGES/django.po | 92 + .../flatpages/locale/bn/LC_MESSAGES/django.mo | Bin 0 -> 2988 bytes .../flatpages/locale/bn/LC_MESSAGES/django.po | 83 + .../flatpages/locale/br/LC_MESSAGES/django.mo | Bin 0 -> 2433 bytes .../flatpages/locale/br/LC_MESSAGES/django.po | 95 + .../flatpages/locale/bs/LC_MESSAGES/django.mo | Bin 0 -> 1782 bytes .../flatpages/locale/bs/LC_MESSAGES/django.po | 88 + .../flatpages/locale/ca/LC_MESSAGES/django.mo | Bin 0 -> 2237 bytes .../flatpages/locale/ca/LC_MESSAGES/django.po | 93 + .../locale/ckb/LC_MESSAGES/django.mo | Bin 0 -> 2716 bytes .../locale/ckb/LC_MESSAGES/django.po | 88 + .../flatpages/locale/cs/LC_MESSAGES/django.mo | Bin 0 -> 2340 bytes .../flatpages/locale/cs/LC_MESSAGES/django.po | 89 + .../flatpages/locale/cy/LC_MESSAGES/django.mo | Bin 0 -> 2163 bytes .../flatpages/locale/cy/LC_MESSAGES/django.po | 88 + .../flatpages/locale/da/LC_MESSAGES/django.mo | Bin 0 -> 2277 bytes .../flatpages/locale/da/LC_MESSAGES/django.po | 92 + .../flatpages/locale/de/LC_MESSAGES/django.mo | Bin 0 -> 2373 bytes .../flatpages/locale/de/LC_MESSAGES/django.po | 92 + .../locale/dsb/LC_MESSAGES/django.mo | Bin 0 -> 2391 bytes .../locale/dsb/LC_MESSAGES/django.po | 90 + .../flatpages/locale/el/LC_MESSAGES/django.mo | Bin 0 -> 2864 bytes .../flatpages/locale/el/LC_MESSAGES/django.po | 93 + .../flatpages/locale/en/LC_MESSAGES/django.mo | Bin 0 -> 356 bytes .../flatpages/locale/en/LC_MESSAGES/django.po | 96 + .../locale/en_AU/LC_MESSAGES/django.mo | Bin 0 -> 2210 bytes .../locale/en_AU/LC_MESSAGES/django.po | 88 + .../locale/en_GB/LC_MESSAGES/django.mo | Bin 0 -> 1989 bytes .../locale/en_GB/LC_MESSAGES/django.po | 85 + .../flatpages/locale/eo/LC_MESSAGES/django.mo | Bin 0 -> 2333 bytes .../flatpages/locale/eo/LC_MESSAGES/django.po | 93 + .../flatpages/locale/es/LC_MESSAGES/django.mo | Bin 0 -> 2258 bytes .../flatpages/locale/es/LC_MESSAGES/django.po | 93 + .../locale/es_AR/LC_MESSAGES/django.mo | Bin 0 -> 2275 bytes .../locale/es_AR/LC_MESSAGES/django.po | 89 + .../locale/es_CO/LC_MESSAGES/django.mo | Bin 0 -> 2140 bytes .../locale/es_CO/LC_MESSAGES/django.po | 86 + .../locale/es_MX/LC_MESSAGES/django.mo | Bin 0 -> 2062 bytes .../locale/es_MX/LC_MESSAGES/django.po | 84 + .../locale/es_VE/LC_MESSAGES/django.mo | Bin 0 -> 2187 bytes .../locale/es_VE/LC_MESSAGES/django.po | 85 + .../flatpages/locale/et/LC_MESSAGES/django.mo | Bin 0 -> 2233 bytes .../flatpages/locale/et/LC_MESSAGES/django.po | 89 + .../flatpages/locale/eu/LC_MESSAGES/django.mo | Bin 0 -> 2244 bytes .../flatpages/locale/eu/LC_MESSAGES/django.po | 90 + .../flatpages/locale/fa/LC_MESSAGES/django.mo | Bin 0 -> 2612 bytes .../flatpages/locale/fa/LC_MESSAGES/django.po | 92 + .../flatpages/locale/fi/LC_MESSAGES/django.mo | Bin 0 -> 2256 bytes .../flatpages/locale/fi/LC_MESSAGES/django.po | 92 + .../flatpages/locale/fr/LC_MESSAGES/django.mo | Bin 0 -> 2430 bytes .../flatpages/locale/fr/LC_MESSAGES/django.po | 93 + .../flatpages/locale/fy/LC_MESSAGES/django.mo | Bin 0 -> 476 bytes .../flatpages/locale/fy/LC_MESSAGES/django.po | 74 + .../flatpages/locale/ga/LC_MESSAGES/django.mo | Bin 0 -> 2191 bytes .../flatpages/locale/ga/LC_MESSAGES/django.po | 87 + .../flatpages/locale/gd/LC_MESSAGES/django.mo | Bin 0 -> 2469 bytes .../flatpages/locale/gd/LC_MESSAGES/django.po | 95 + .../flatpages/locale/gl/LC_MESSAGES/django.mo | Bin 0 -> 2256 bytes .../flatpages/locale/gl/LC_MESSAGES/django.po | 89 + .../flatpages/locale/he/LC_MESSAGES/django.mo | Bin 0 -> 2517 bytes .../flatpages/locale/he/LC_MESSAGES/django.po | 87 + .../flatpages/locale/hi/LC_MESSAGES/django.mo | Bin 0 -> 2770 bytes .../flatpages/locale/hi/LC_MESSAGES/django.po | 81 + .../flatpages/locale/hr/LC_MESSAGES/django.mo | Bin 0 -> 2188 bytes .../flatpages/locale/hr/LC_MESSAGES/django.po | 88 + .../locale/hsb/LC_MESSAGES/django.mo | Bin 0 -> 2361 bytes .../locale/hsb/LC_MESSAGES/django.po | 89 + .../flatpages/locale/hu/LC_MESSAGES/django.mo | Bin 0 -> 2363 bytes .../flatpages/locale/hu/LC_MESSAGES/django.po | 94 + .../flatpages/locale/hy/LC_MESSAGES/django.mo | Bin 0 -> 2536 bytes .../flatpages/locale/hy/LC_MESSAGES/django.po | 84 + .../flatpages/locale/ia/LC_MESSAGES/django.mo | Bin 0 -> 500 bytes .../flatpages/locale/ia/LC_MESSAGES/django.po | 77 + .../flatpages/locale/id/LC_MESSAGES/django.mo | Bin 0 -> 2222 bytes .../flatpages/locale/id/LC_MESSAGES/django.po | 90 + .../flatpages/locale/io/LC_MESSAGES/django.mo | Bin 0 -> 464 bytes .../flatpages/locale/io/LC_MESSAGES/django.po | 74 + .../flatpages/locale/is/LC_MESSAGES/django.mo | Bin 0 -> 2229 bytes .../flatpages/locale/is/LC_MESSAGES/django.po | 87 + .../flatpages/locale/it/LC_MESSAGES/django.mo | Bin 0 -> 2209 bytes .../flatpages/locale/it/LC_MESSAGES/django.po | 92 + .../flatpages/locale/ja/LC_MESSAGES/django.mo | Bin 0 -> 2469 bytes .../flatpages/locale/ja/LC_MESSAGES/django.po | 90 + .../flatpages/locale/ka/LC_MESSAGES/django.mo | Bin 0 -> 3022 bytes .../flatpages/locale/ka/LC_MESSAGES/django.po | 88 + .../flatpages/locale/kk/LC_MESSAGES/django.mo | Bin 0 -> 2438 bytes .../flatpages/locale/kk/LC_MESSAGES/django.po | 88 + .../flatpages/locale/km/LC_MESSAGES/django.mo | Bin 0 -> 1942 bytes .../flatpages/locale/km/LC_MESSAGES/django.po | 80 + .../flatpages/locale/kn/LC_MESSAGES/django.mo | Bin 0 -> 1902 bytes .../flatpages/locale/kn/LC_MESSAGES/django.po | 82 + .../flatpages/locale/ko/LC_MESSAGES/django.mo | Bin 0 -> 2304 bytes .../flatpages/locale/ko/LC_MESSAGES/django.po | 90 + .../flatpages/locale/ky/LC_MESSAGES/django.mo | Bin 0 -> 2667 bytes .../flatpages/locale/ky/LC_MESSAGES/django.po | 89 + .../flatpages/locale/lb/LC_MESSAGES/django.mo | Bin 0 -> 502 bytes .../flatpages/locale/lb/LC_MESSAGES/django.po | 77 + .../flatpages/locale/lt/LC_MESSAGES/django.mo | Bin 0 -> 2506 bytes .../flatpages/locale/lt/LC_MESSAGES/django.po | 94 + .../flatpages/locale/lv/LC_MESSAGES/django.mo | Bin 0 -> 2359 bytes .../flatpages/locale/lv/LC_MESSAGES/django.po | 93 + .../flatpages/locale/mk/LC_MESSAGES/django.mo | Bin 0 -> 2699 bytes .../flatpages/locale/mk/LC_MESSAGES/django.po | 90 + .../flatpages/locale/ml/LC_MESSAGES/django.mo | Bin 0 -> 3549 bytes .../flatpages/locale/ml/LC_MESSAGES/django.po | 89 + .../flatpages/locale/mn/LC_MESSAGES/django.mo | Bin 0 -> 2776 bytes .../flatpages/locale/mn/LC_MESSAGES/django.po | 92 + .../flatpages/locale/mr/LC_MESSAGES/django.mo | Bin 0 -> 2040 bytes .../flatpages/locale/mr/LC_MESSAGES/django.po | 82 + .../flatpages/locale/ms/LC_MESSAGES/django.mo | Bin 0 -> 2184 bytes .../flatpages/locale/ms/LC_MESSAGES/django.po | 87 + .../flatpages/locale/my/LC_MESSAGES/django.mo | Bin 0 -> 507 bytes .../flatpages/locale/my/LC_MESSAGES/django.po | 77 + .../flatpages/locale/nb/LC_MESSAGES/django.mo | Bin 0 -> 2208 bytes .../flatpages/locale/nb/LC_MESSAGES/django.po | 91 + .../flatpages/locale/ne/LC_MESSAGES/django.mo | Bin 0 -> 1500 bytes .../flatpages/locale/ne/LC_MESSAGES/django.po | 77 + .../flatpages/locale/nl/LC_MESSAGES/django.mo | Bin 0 -> 2231 bytes .../flatpages/locale/nl/LC_MESSAGES/django.po | 92 + .../flatpages/locale/nn/LC_MESSAGES/django.mo | Bin 0 -> 2256 bytes .../flatpages/locale/nn/LC_MESSAGES/django.po | 90 + .../flatpages/locale/os/LC_MESSAGES/django.mo | Bin 0 -> 2329 bytes .../flatpages/locale/os/LC_MESSAGES/django.po | 86 + .../flatpages/locale/pa/LC_MESSAGES/django.mo | Bin 0 -> 903 bytes .../flatpages/locale/pa/LC_MESSAGES/django.po | 78 + .../flatpages/locale/pl/LC_MESSAGES/django.mo | Bin 0 -> 2448 bytes .../flatpages/locale/pl/LC_MESSAGES/django.po | 96 + .../flatpages/locale/pt/LC_MESSAGES/django.mo | Bin 0 -> 2115 bytes .../flatpages/locale/pt/LC_MESSAGES/django.po | 87 + .../locale/pt_BR/LC_MESSAGES/django.mo | Bin 0 -> 2291 bytes .../locale/pt_BR/LC_MESSAGES/django.po | 98 + .../flatpages/locale/ro/LC_MESSAGES/django.mo | Bin 0 -> 2337 bytes .../flatpages/locale/ro/LC_MESSAGES/django.po | 96 + .../flatpages/locale/ru/LC_MESSAGES/django.mo | Bin 0 -> 2934 bytes .../flatpages/locale/ru/LC_MESSAGES/django.po | 95 + .../flatpages/locale/sk/LC_MESSAGES/django.mo | Bin 0 -> 2353 bytes .../flatpages/locale/sk/LC_MESSAGES/django.po | 92 + .../flatpages/locale/sl/LC_MESSAGES/django.mo | Bin 0 -> 2301 bytes .../flatpages/locale/sl/LC_MESSAGES/django.po | 93 + .../flatpages/locale/sq/LC_MESSAGES/django.mo | Bin 0 -> 2328 bytes .../flatpages/locale/sq/LC_MESSAGES/django.po | 89 + .../flatpages/locale/sr/LC_MESSAGES/django.mo | Bin 0 -> 2770 bytes .../flatpages/locale/sr/LC_MESSAGES/django.po | 92 + .../locale/sr_Latn/LC_MESSAGES/django.mo | Bin 0 -> 2328 bytes .../locale/sr_Latn/LC_MESSAGES/django.po | 93 + .../flatpages/locale/sv/LC_MESSAGES/django.mo | Bin 0 -> 2252 bytes .../flatpages/locale/sv/LC_MESSAGES/django.po | 92 + .../flatpages/locale/sw/LC_MESSAGES/django.mo | Bin 0 -> 1537 bytes .../flatpages/locale/sw/LC_MESSAGES/django.po | 83 + .../flatpages/locale/ta/LC_MESSAGES/django.mo | Bin 0 -> 1945 bytes .../flatpages/locale/ta/LC_MESSAGES/django.po | 80 + .../flatpages/locale/te/LC_MESSAGES/django.mo | Bin 0 -> 1238 bytes .../flatpages/locale/te/LC_MESSAGES/django.po | 79 + .../flatpages/locale/tg/LC_MESSAGES/django.mo | Bin 0 -> 2064 bytes .../flatpages/locale/tg/LC_MESSAGES/django.po | 86 + .../flatpages/locale/th/LC_MESSAGES/django.mo | Bin 0 -> 2698 bytes .../flatpages/locale/th/LC_MESSAGES/django.po | 80 + .../flatpages/locale/tk/LC_MESSAGES/django.mo | Bin 0 -> 835 bytes .../flatpages/locale/tk/LC_MESSAGES/django.po | 84 + .../flatpages/locale/tr/LC_MESSAGES/django.mo | Bin 0 -> 2290 bytes .../flatpages/locale/tr/LC_MESSAGES/django.po | 94 + .../flatpages/locale/tt/LC_MESSAGES/django.mo | Bin 0 -> 2007 bytes .../flatpages/locale/tt/LC_MESSAGES/django.po | 84 + .../locale/udm/LC_MESSAGES/django.mo | Bin 0 -> 490 bytes .../locale/udm/LC_MESSAGES/django.po | 77 + .../flatpages/locale/ug/LC_MESSAGES/django.mo | Bin 0 -> 2644 bytes .../flatpages/locale/ug/LC_MESSAGES/django.po | 85 + .../flatpages/locale/uk/LC_MESSAGES/django.mo | Bin 0 -> 3002 bytes .../flatpages/locale/uk/LC_MESSAGES/django.po | 99 + .../flatpages/locale/ur/LC_MESSAGES/django.mo | Bin 0 -> 1976 bytes .../flatpages/locale/ur/LC_MESSAGES/django.po | 84 + .../flatpages/locale/vi/LC_MESSAGES/django.mo | Bin 0 -> 1035 bytes .../flatpages/locale/vi/LC_MESSAGES/django.po | 82 + .../locale/zh_Hans/LC_MESSAGES/django.mo | Bin 0 -> 2124 bytes .../locale/zh_Hans/LC_MESSAGES/django.po | 89 + .../locale/zh_Hant/LC_MESSAGES/django.mo | Bin 0 -> 2176 bytes .../locale/zh_Hant/LC_MESSAGES/django.po | 88 + .../django/contrib/flatpages/middleware.py | 20 + .../flatpages/migrations/0001_initial.py | 68 + .../contrib/flatpages/migrations/__init__.py | 0 .../__pycache__/0001_initial.cpython-312.pyc | Bin 0 -> 2080 bytes .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 212 bytes .../django/contrib/flatpages/models.py | 49 + .../django/contrib/flatpages/sitemaps.py | 14 + .../flatpages/templatetags/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 214 bytes .../__pycache__/flatpages.cpython-312.pyc | Bin 0 -> 4155 bytes .../flatpages/templatetags/flatpages.py | 101 + .../django/contrib/flatpages/urls.py | 6 + .../django/contrib/flatpages/views.py | 70 + .../django/contrib/gis/__init__.py | 0 .../gis/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 195 bytes .../gis/__pycache__/apps.cpython-312.pyc | Bin 0 -> 956 bytes .../gis/__pycache__/feeds.cpython-312.pyc | Bin 0 -> 7581 bytes .../gis/__pycache__/geoip2.cpython-312.pyc | Bin 0 -> 11573 bytes .../gis/__pycache__/geometry.cpython-312.pyc | Bin 0 -> 821 bytes .../gis/__pycache__/measure.cpython-312.pyc | Bin 0 -> 14544 bytes .../gis/__pycache__/ptr.cpython-312.pyc | Bin 0 -> 1891 bytes .../gis/__pycache__/shortcuts.cpython-312.pyc | Bin 0 -> 1898 bytes .../gis/__pycache__/views.cpython-312.pyc | Bin 0 -> 1257 bytes .../django/contrib/gis/admin/__init__.py | 29 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 635 bytes .../admin/__pycache__/options.cpython-312.pyc | Bin 0 -> 1478 bytes .../django/contrib/gis/admin/options.py | 21 + .../site-packages/django/contrib/gis/apps.py | 14 + .../django/contrib/gis/db/__init__.py | 0 .../db/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 198 bytes .../contrib/gis/db/backends/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 207 bytes .../__pycache__/utils.cpython-312.pyc | Bin 0 -> 1521 bytes .../contrib/gis/db/backends/base/__init__.py | 0 .../base/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 212 bytes .../base/__pycache__/adapter.cpython-312.pyc | Bin 0 -> 1607 bytes .../base/__pycache__/features.cpython-312.pyc | Bin 0 -> 4983 bytes .../base/__pycache__/models.cpython-312.pyc | Bin 0 -> 6253 bytes .../__pycache__/operations.cpython-312.pyc | Bin 0 -> 8252 bytes .../contrib/gis/db/backends/base/adapter.py | 26 + .../contrib/gis/db/backends/base/features.py | 111 + .../contrib/gis/db/backends/base/models.py | 140 + .../gis/db/backends/base/operations.py | 210 + .../contrib/gis/db/backends/mysql/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 213 bytes .../mysql/__pycache__/base.cpython-312.pyc | Bin 0 -> 808 bytes .../__pycache__/features.cpython-312.pyc | Bin 0 -> 1304 bytes .../__pycache__/introspection.cpython-312.pyc | Bin 0 -> 1969 bytes .../__pycache__/operations.cpython-312.pyc | Bin 0 -> 6657 bytes .../mysql/__pycache__/schema.cpython-312.pyc | Bin 0 -> 4900 bytes .../contrib/gis/db/backends/mysql/base.py | 14 + .../contrib/gis/db/backends/mysql/features.py | 21 + .../gis/db/backends/mysql/introspection.py | 33 + .../gis/db/backends/mysql/operations.py | 143 + .../contrib/gis/db/backends/mysql/schema.py | 83 + .../gis/db/backends/oracle/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 214 bytes .../__pycache__/adapter.cpython-312.pyc | Bin 0 -> 3776 bytes .../oracle/__pycache__/base.cpython-312.pyc | Bin 0 -> 814 bytes .../__pycache__/features.cpython-312.pyc | Bin 0 -> 1460 bytes .../__pycache__/introspection.cpython-312.pyc | Bin 0 -> 2227 bytes .../oracle/__pycache__/models.cpython-312.pyc | Bin 0 -> 3467 bytes .../__pycache__/operations.cpython-312.pyc | Bin 0 -> 10432 bytes .../oracle/__pycache__/schema.cpython-312.pyc | Bin 0 -> 6233 bytes .../contrib/gis/db/backends/oracle/adapter.py | 61 + .../contrib/gis/db/backends/oracle/base.py | 14 + .../gis/db/backends/oracle/features.py | 28 + .../gis/db/backends/oracle/introspection.py | 46 + .../contrib/gis/db/backends/oracle/models.py | 65 + .../gis/db/backends/oracle/operations.py | 247 + .../contrib/gis/db/backends/oracle/schema.py | 114 + .../gis/db/backends/postgis/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 215 bytes .../__pycache__/adapter.cpython-312.pyc | Bin 0 -> 3131 bytes .../postgis/__pycache__/base.cpython-312.pyc | Bin 0 -> 8539 bytes .../postgis/__pycache__/const.cpython-312.pyc | Bin 0 -> 800 bytes .../__pycache__/features.cpython-312.pyc | Bin 0 -> 785 bytes .../__pycache__/introspection.cpython-312.pyc | Bin 0 -> 3542 bytes .../__pycache__/models.cpython-312.pyc | Bin 0 -> 3571 bytes .../__pycache__/operations.cpython-312.pyc | Bin 0 -> 18672 bytes .../__pycache__/pgraster.cpython-312.pyc | Bin 0 -> 4258 bytes .../__pycache__/schema.cpython-312.pyc | Bin 0 -> 3749 bytes .../gis/db/backends/postgis/adapter.py | 63 + .../contrib/gis/db/backends/postgis/base.py | 161 + .../contrib/gis/db/backends/postgis/const.py | 63 + .../gis/db/backends/postgis/features.py | 13 + .../gis/db/backends/postgis/introspection.py | 71 + .../contrib/gis/db/backends/postgis/models.py | 73 + .../gis/db/backends/postgis/operations.py | 423 + .../gis/db/backends/postgis/pgraster.py | 152 + .../contrib/gis/db/backends/postgis/schema.py | 81 + .../gis/db/backends/spatialite/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 218 bytes .../__pycache__/adapter.cpython-312.pyc | Bin 0 -> 855 bytes .../__pycache__/base.cpython-312.pyc | Bin 0 -> 3523 bytes .../__pycache__/client.cpython-312.pyc | Bin 0 -> 511 bytes .../__pycache__/features.cpython-312.pyc | Bin 0 -> 1531 bytes .../__pycache__/introspection.cpython-312.pyc | Bin 0 -> 3232 bytes .../__pycache__/models.cpython-312.pyc | Bin 0 -> 3534 bytes .../__pycache__/operations.cpython-312.pyc | Bin 0 -> 10853 bytes .../__pycache__/schema.cpython-312.pyc | Bin 0 -> 8176 bytes .../gis/db/backends/spatialite/adapter.py | 10 + .../gis/db/backends/spatialite/base.py | 79 + .../gis/db/backends/spatialite/client.py | 5 + .../gis/db/backends/spatialite/features.py | 26 + .../db/backends/spatialite/introspection.py | 82 + .../gis/db/backends/spatialite/models.py | 71 + .../gis/db/backends/spatialite/operations.py | 231 + .../gis/db/backends/spatialite/schema.py | 194 + .../django/contrib/gis/db/backends/utils.py | 28 + .../django/contrib/gis/db/models/__init__.py | 30 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 827 bytes .../__pycache__/aggregates.cpython-312.pyc | Bin 0 -> 4995 bytes .../models/__pycache__/fields.cpython-312.pyc | Bin 0 -> 17767 bytes .../__pycache__/functions.cpython-312.pyc | Bin 0 -> 29450 bytes .../__pycache__/lookups.cpython-312.pyc | Bin 0 -> 17857 bytes .../models/__pycache__/proxy.cpython-312.pyc | Bin 0 -> 3412 bytes .../contrib/gis/db/models/aggregates.py | 95 + .../django/contrib/gis/db/models/fields.py | 436 + .../django/contrib/gis/db/models/functions.py | 590 + .../django/contrib/gis/db/models/lookups.py | 395 + .../django/contrib/gis/db/models/proxy.py | 84 + .../contrib/gis/db/models/sql/__init__.py | 6 + .../sql/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 355 bytes .../__pycache__/conversion.cpython-312.pyc | Bin 0 -> 3845 bytes .../contrib/gis/db/models/sql/conversion.py | 74 + .../site-packages/django/contrib/gis/feeds.py | 151 + .../django/contrib/gis/forms/__init__.py | 13 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 590 bytes .../forms/__pycache__/fields.cpython-312.pyc | Bin 0 -> 5991 bytes .../forms/__pycache__/widgets.cpython-312.pyc | Bin 0 -> 5730 bytes .../django/contrib/gis/forms/fields.py | 144 + .../django/contrib/gis/forms/widgets.py | 125 + .../django/contrib/gis/gdal/LICENSE | 28 + .../django/contrib/gis/gdal/__init__.py | 59 + .../gdal/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 1999 bytes .../gis/gdal/__pycache__/base.cpython-312.pyc | Bin 0 -> 541 bytes .../__pycache__/datasource.cpython-312.pyc | Bin 0 -> 5736 bytes .../gdal/__pycache__/driver.cpython-312.pyc | Bin 0 -> 3374 bytes .../gdal/__pycache__/envelope.cpython-312.pyc | Bin 0 -> 9319 bytes .../gdal/__pycache__/error.cpython-312.pyc | Bin 0 -> 1856 bytes .../gdal/__pycache__/feature.cpython-312.pyc | Bin 0 -> 6372 bytes .../gdal/__pycache__/field.cpython-312.pyc | Bin 0 -> 11142 bytes .../__pycache__/geometries.cpython-312.pyc | Bin 0 -> 40403 bytes .../gdal/__pycache__/geomtype.cpython-312.pyc | Bin 0 -> 6398 bytes .../gdal/__pycache__/layer.cpython-312.pyc | Bin 0 -> 12422 bytes .../gdal/__pycache__/libgdal.cpython-312.pyc | Bin 0 -> 3886 bytes .../gis/gdal/__pycache__/srs.cpython-312.pyc | Bin 0 -> 18639 bytes .../django/contrib/gis/gdal/base.py | 6 + .../django/contrib/gis/gdal/datasource.py | 128 + .../django/contrib/gis/gdal/driver.py | 94 + .../django/contrib/gis/gdal/envelope.py | 204 + .../django/contrib/gis/gdal/error.py | 61 + .../django/contrib/gis/gdal/feature.py | 120 + .../django/contrib/gis/gdal/field.py | 253 + .../django/contrib/gis/gdal/geometries.py | 822 ++ .../django/contrib/gis/gdal/geomtype.py | 146 + .../django/contrib/gis/gdal/layer.py | 234 + .../django/contrib/gis/gdal/libgdal.py | 140 + .../contrib/gis/gdal/prototypes/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 211 bytes .../prototypes/__pycache__/ds.cpython-312.pyc | Bin 0 -> 6136 bytes .../__pycache__/errcheck.cpython-312.pyc | Bin 0 -> 4889 bytes .../__pycache__/generation.cpython-312.pyc | Bin 0 -> 5787 bytes .../__pycache__/geom.cpython-312.pyc | Bin 0 -> 7754 bytes .../__pycache__/raster.cpython-312.pyc | Bin 0 -> 5402 bytes .../__pycache__/srs.cpython-312.pyc | Bin 0 -> 4382 bytes .../django/contrib/gis/gdal/prototypes/ds.py | 110 + .../contrib/gis/gdal/prototypes/errcheck.py | 142 + .../contrib/gis/gdal/prototypes/generation.py | 178 + .../contrib/gis/gdal/prototypes/geom.py | 168 + .../contrib/gis/gdal/prototypes/raster.py | 169 + .../django/contrib/gis/gdal/prototypes/srs.py | 107 + .../contrib/gis/gdal/raster/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 207 bytes .../raster/__pycache__/band.cpython-312.pyc | Bin 0 -> 11387 bytes .../raster/__pycache__/base.cpython-312.pyc | Bin 0 -> 2783 bytes .../raster/__pycache__/const.cpython-312.pyc | Bin 0 -> 2034 bytes .../raster/__pycache__/source.cpython-312.pyc | Bin 0 -> 23291 bytes .../django/contrib/gis/gdal/raster/band.py | 273 + .../django/contrib/gis/gdal/raster/base.py | 77 + .../django/contrib/gis/gdal/raster/const.py | 105 + .../django/contrib/gis/gdal/raster/source.py | 541 + .../django/contrib/gis/gdal/srs.py | 361 + .../django/contrib/gis/geoip2.py | 231 + .../django/contrib/gis/geometry.py | 19 + .../django/contrib/gis/geos/LICENSE | 27 + .../django/contrib/gis/geos/__init__.py | 19 + .../geos/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 986 bytes .../gis/geos/__pycache__/base.cpython-312.pyc | Bin 0 -> 541 bytes .../__pycache__/collections.cpython-312.pyc | Bin 0 -> 5706 bytes .../geos/__pycache__/coordseq.cpython-312.pyc | Bin 0 -> 12143 bytes .../geos/__pycache__/error.cpython-312.pyc | Bin 0 -> 461 bytes .../geos/__pycache__/factory.cpython-312.pyc | Bin 0 -> 1483 bytes .../geos/__pycache__/geometry.cpython-312.pyc | Bin 0 -> 40088 bytes .../gis/geos/__pycache__/io.cpython-312.pyc | Bin 0 -> 1470 bytes .../geos/__pycache__/libgeos.cpython-312.pyc | Bin 0 -> 5805 bytes .../__pycache__/linestring.cpython-312.pyc | Bin 0 -> 8410 bytes .../__pycache__/mutable_list.cpython-312.pyc | Bin 0 -> 13932 bytes .../geos/__pycache__/point.cpython-312.pyc | Bin 0 -> 7775 bytes .../geos/__pycache__/polygon.cpython-312.pyc | Bin 0 -> 8873 bytes .../geos/__pycache__/prepared.cpython-312.pyc | Bin 0 -> 3449 bytes .../django/contrib/gis/geos/base.py | 6 + .../django/contrib/gis/geos/collections.py | 121 + .../django/contrib/gis/geos/coordseq.py | 211 + .../django/contrib/gis/geos/error.py | 3 + .../django/contrib/gis/geos/factory.py | 33 + .../django/contrib/gis/geos/geometry.py | 780 ++ .../django/contrib/gis/geos/io.py | 28 + .../django/contrib/gis/geos/libgeos.py | 175 + .../django/contrib/gis/geos/linestring.py | 193 + .../django/contrib/gis/geos/mutable_list.py | 314 + .../django/contrib/gis/geos/point.py | 162 + .../django/contrib/gis/geos/polygon.py | 189 + .../django/contrib/gis/geos/prepared.py | 51 + .../contrib/gis/geos/prototypes/__init__.py | 67 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 1957 bytes .../__pycache__/coordseq.cpython-312.pyc | Bin 0 -> 3724 bytes .../__pycache__/errcheck.cpython-312.pyc | Bin 0 -> 3080 bytes .../__pycache__/geom.cpython-312.pyc | Bin 0 -> 3267 bytes .../prototypes/__pycache__/io.cpython-312.pyc | Bin 0 -> 15143 bytes .../__pycache__/misc.cpython-312.pyc | Bin 0 -> 1502 bytes .../__pycache__/predicates.cpython-312.pyc | Bin 0 -> 2239 bytes .../__pycache__/prepared.cpython-312.pyc | Bin 0 -> 1551 bytes .../__pycache__/threadsafe.cpython-312.pyc | Bin 0 -> 3606 bytes .../__pycache__/topology.cpython-312.pyc | Bin 0 -> 2594 bytes .../contrib/gis/geos/prototypes/coordseq.py | 95 + .../contrib/gis/geos/prototypes/errcheck.py | 96 + .../contrib/gis/geos/prototypes/geom.py | 91 + .../django/contrib/gis/geos/prototypes/io.py | 369 + .../contrib/gis/geos/prototypes/misc.py | 35 + .../contrib/gis/geos/prototypes/predicates.py | 49 + .../contrib/gis/geos/prototypes/prepared.py | 26 + .../contrib/gis/geos/prototypes/threadsafe.py | 77 + .../contrib/gis/geos/prototypes/topology.py | 73 + .../gis/locale/af/LC_MESSAGES/django.mo | Bin 0 -> 518 bytes .../gis/locale/af/LC_MESSAGES/django.po | 82 + .../gis/locale/ar/LC_MESSAGES/django.mo | Bin 0 -> 2301 bytes .../gis/locale/ar/LC_MESSAGES/django.po | 89 + .../gis/locale/ar_DZ/LC_MESSAGES/django.mo | Bin 0 -> 2403 bytes .../gis/locale/ar_DZ/LC_MESSAGES/django.po | 88 + .../gis/locale/ast/LC_MESSAGES/django.mo | Bin 0 -> 850 bytes .../gis/locale/ast/LC_MESSAGES/django.po | 85 + .../gis/locale/az/LC_MESSAGES/django.mo | Bin 0 -> 1901 bytes .../gis/locale/az/LC_MESSAGES/django.po | 86 + .../gis/locale/be/LC_MESSAGES/django.mo | Bin 0 -> 2389 bytes .../gis/locale/be/LC_MESSAGES/django.po | 87 + .../gis/locale/bg/LC_MESSAGES/django.mo | Bin 0 -> 2323 bytes .../gis/locale/bg/LC_MESSAGES/django.po | 87 + .../gis/locale/bn/LC_MESSAGES/django.mo | Bin 0 -> 1070 bytes .../gis/locale/bn/LC_MESSAGES/django.po | 86 + .../gis/locale/br/LC_MESSAGES/django.mo | Bin 0 -> 1614 bytes .../gis/locale/br/LC_MESSAGES/django.po | 91 + .../gis/locale/bs/LC_MESSAGES/django.mo | Bin 0 -> 1308 bytes .../gis/locale/bs/LC_MESSAGES/django.po | 88 + .../gis/locale/ca/LC_MESSAGES/django.mo | Bin 0 -> 1948 bytes .../gis/locale/ca/LC_MESSAGES/django.po | 91 + .../gis/locale/ckb/LC_MESSAGES/django.mo | Bin 0 -> 2253 bytes .../gis/locale/ckb/LC_MESSAGES/django.po | 86 + .../gis/locale/cs/LC_MESSAGES/django.mo | Bin 0 -> 2026 bytes .../gis/locale/cs/LC_MESSAGES/django.po | 88 + .../gis/locale/cy/LC_MESSAGES/django.mo | Bin 0 -> 1430 bytes .../gis/locale/cy/LC_MESSAGES/django.po | 86 + .../gis/locale/da/LC_MESSAGES/django.mo | Bin 0 -> 1862 bytes .../gis/locale/da/LC_MESSAGES/django.po | 86 + .../gis/locale/de/LC_MESSAGES/django.mo | Bin 0 -> 1930 bytes .../gis/locale/de/LC_MESSAGES/django.po | 86 + .../gis/locale/dsb/LC_MESSAGES/django.mo | Bin 0 -> 2016 bytes .../gis/locale/dsb/LC_MESSAGES/django.po | 86 + .../gis/locale/el/LC_MESSAGES/django.mo | Bin 0 -> 2402 bytes .../gis/locale/el/LC_MESSAGES/django.po | 91 + .../gis/locale/en/LC_MESSAGES/django.mo | Bin 0 -> 356 bytes .../gis/locale/en/LC_MESSAGES/django.po | 98 + .../gis/locale/en_AU/LC_MESSAGES/django.mo | Bin 0 -> 486 bytes .../gis/locale/en_AU/LC_MESSAGES/django.po | 80 + .../gis/locale/en_GB/LC_MESSAGES/django.mo | Bin 0 -> 1369 bytes .../gis/locale/en_GB/LC_MESSAGES/django.po | 88 + .../gis/locale/eo/LC_MESSAGES/django.mo | Bin 0 -> 1878 bytes .../gis/locale/eo/LC_MESSAGES/django.po | 86 + .../gis/locale/es/LC_MESSAGES/django.mo | Bin 0 -> 2005 bytes .../gis/locale/es/LC_MESSAGES/django.po | 92 + .../gis/locale/es_AR/LC_MESSAGES/django.mo | Bin 0 -> 2006 bytes .../gis/locale/es_AR/LC_MESSAGES/django.po | 87 + .../gis/locale/es_CO/LC_MESSAGES/django.mo | Bin 0 -> 1817 bytes .../gis/locale/es_CO/LC_MESSAGES/django.po | 90 + .../gis/locale/es_MX/LC_MESSAGES/django.mo | Bin 0 -> 1441 bytes .../gis/locale/es_MX/LC_MESSAGES/django.po | 87 + .../gis/locale/es_VE/LC_MESSAGES/django.mo | Bin 0 -> 486 bytes .../gis/locale/es_VE/LC_MESSAGES/django.po | 80 + .../gis/locale/et/LC_MESSAGES/django.mo | Bin 0 -> 1872 bytes .../gis/locale/et/LC_MESSAGES/django.po | 88 + .../gis/locale/eu/LC_MESSAGES/django.mo | Bin 0 -> 1888 bytes .../gis/locale/eu/LC_MESSAGES/django.po | 84 + .../gis/locale/fa/LC_MESSAGES/django.mo | Bin 0 -> 2155 bytes .../gis/locale/fa/LC_MESSAGES/django.po | 87 + .../gis/locale/fi/LC_MESSAGES/django.mo | Bin 0 -> 1839 bytes .../gis/locale/fi/LC_MESSAGES/django.po | 84 + .../gis/locale/fr/LC_MESSAGES/django.mo | Bin 0 -> 2058 bytes .../gis/locale/fr/LC_MESSAGES/django.po | 87 + .../gis/locale/fy/LC_MESSAGES/django.mo | Bin 0 -> 476 bytes .../gis/locale/fy/LC_MESSAGES/django.po | 80 + .../gis/locale/ga/LC_MESSAGES/django.mo | Bin 0 -> 1420 bytes .../gis/locale/ga/LC_MESSAGES/django.po | 88 + .../gis/locale/gd/LC_MESSAGES/django.mo | Bin 0 -> 2022 bytes .../gis/locale/gd/LC_MESSAGES/django.po | 89 + .../gis/locale/gl/LC_MESSAGES/django.mo | Bin 0 -> 1956 bytes .../gis/locale/gl/LC_MESSAGES/django.po | 89 + .../gis/locale/he/LC_MESSAGES/django.mo | Bin 0 -> 2135 bytes .../gis/locale/he/LC_MESSAGES/django.po | 83 + .../gis/locale/hi/LC_MESSAGES/django.mo | Bin 0 -> 1818 bytes .../gis/locale/hi/LC_MESSAGES/django.po | 86 + .../gis/locale/hr/LC_MESSAGES/django.mo | Bin 0 -> 1549 bytes .../gis/locale/hr/LC_MESSAGES/django.po | 91 + .../gis/locale/hsb/LC_MESSAGES/django.mo | Bin 0 -> 1991 bytes .../gis/locale/hsb/LC_MESSAGES/django.po | 87 + .../gis/locale/hu/LC_MESSAGES/django.mo | Bin 0 -> 1891 bytes .../gis/locale/hu/LC_MESSAGES/django.po | 88 + .../gis/locale/hy/LC_MESSAGES/django.mo | Bin 0 -> 2020 bytes .../gis/locale/hy/LC_MESSAGES/django.po | 81 + .../gis/locale/ia/LC_MESSAGES/django.mo | Bin 0 -> 1812 bytes .../gis/locale/ia/LC_MESSAGES/django.po | 87 + .../gis/locale/id/LC_MESSAGES/django.mo | Bin 0 -> 1862 bytes .../gis/locale/id/LC_MESSAGES/django.po | 90 + .../gis/locale/io/LC_MESSAGES/django.mo | Bin 0 -> 464 bytes .../gis/locale/io/LC_MESSAGES/django.po | 80 + .../gis/locale/is/LC_MESSAGES/django.mo | Bin 0 -> 1350 bytes .../gis/locale/is/LC_MESSAGES/django.po | 87 + .../gis/locale/it/LC_MESSAGES/django.mo | Bin 0 -> 1976 bytes .../gis/locale/it/LC_MESSAGES/django.po | 94 + .../gis/locale/ja/LC_MESSAGES/django.mo | Bin 0 -> 2052 bytes .../gis/locale/ja/LC_MESSAGES/django.po | 87 + .../gis/locale/ka/LC_MESSAGES/django.mo | Bin 0 -> 1991 bytes .../gis/locale/ka/LC_MESSAGES/django.po | 87 + .../gis/locale/kk/LC_MESSAGES/django.mo | Bin 0 -> 1349 bytes .../gis/locale/kk/LC_MESSAGES/django.po | 85 + .../gis/locale/km/LC_MESSAGES/django.mo | Bin 0 -> 459 bytes .../gis/locale/km/LC_MESSAGES/django.po | 80 + .../gis/locale/kn/LC_MESSAGES/django.mo | Bin 0 -> 461 bytes .../gis/locale/kn/LC_MESSAGES/django.po | 80 + .../gis/locale/ko/LC_MESSAGES/django.mo | Bin 0 -> 1888 bytes .../gis/locale/ko/LC_MESSAGES/django.po | 88 + .../gis/locale/ky/LC_MESSAGES/django.mo | Bin 0 -> 2157 bytes .../gis/locale/ky/LC_MESSAGES/django.po | 83 + .../gis/locale/lb/LC_MESSAGES/django.mo | Bin 0 -> 474 bytes .../gis/locale/lb/LC_MESSAGES/django.po | 80 + .../gis/locale/lt/LC_MESSAGES/django.mo | Bin 0 -> 2036 bytes .../gis/locale/lt/LC_MESSAGES/django.po | 89 + .../gis/locale/lv/LC_MESSAGES/django.mo | Bin 0 -> 1978 bytes .../gis/locale/lv/LC_MESSAGES/django.po | 87 + .../gis/locale/mk/LC_MESSAGES/django.mo | Bin 0 -> 2518 bytes .../gis/locale/mk/LC_MESSAGES/django.po | 91 + .../gis/locale/ml/LC_MESSAGES/django.mo | Bin 0 -> 2049 bytes .../gis/locale/ml/LC_MESSAGES/django.po | 88 + .../gis/locale/mn/LC_MESSAGES/django.mo | Bin 0 -> 2323 bytes .../gis/locale/mn/LC_MESSAGES/django.po | 91 + .../gis/locale/mr/LC_MESSAGES/django.mo | Bin 0 -> 510 bytes .../gis/locale/mr/LC_MESSAGES/django.po | 82 + .../gis/locale/ms/LC_MESSAGES/django.mo | Bin 0 -> 1828 bytes .../gis/locale/ms/LC_MESSAGES/django.po | 84 + .../gis/locale/my/LC_MESSAGES/django.mo | Bin 0 -> 525 bytes .../gis/locale/my/LC_MESSAGES/django.po | 85 + .../gis/locale/nb/LC_MESSAGES/django.mo | Bin 0 -> 1808 bytes .../gis/locale/nb/LC_MESSAGES/django.po | 88 + .../gis/locale/ne/LC_MESSAGES/django.mo | Bin 0 -> 982 bytes .../gis/locale/ne/LC_MESSAGES/django.po | 84 + .../gis/locale/nl/LC_MESSAGES/django.mo | Bin 0 -> 1897 bytes .../gis/locale/nl/LC_MESSAGES/django.po | 91 + .../gis/locale/nn/LC_MESSAGES/django.mo | Bin 0 -> 1830 bytes .../gis/locale/nn/LC_MESSAGES/django.po | 87 + .../gis/locale/os/LC_MESSAGES/django.mo | Bin 0 -> 1594 bytes .../gis/locale/os/LC_MESSAGES/django.po | 87 + .../gis/locale/pa/LC_MESSAGES/django.mo | Bin 0 -> 1265 bytes .../gis/locale/pa/LC_MESSAGES/django.po | 86 + .../gis/locale/pl/LC_MESSAGES/django.mo | Bin 0 -> 2045 bytes .../gis/locale/pl/LC_MESSAGES/django.po | 92 + .../gis/locale/pt/LC_MESSAGES/django.mo | Bin 0 -> 2036 bytes .../gis/locale/pt/LC_MESSAGES/django.po | 95 + .../gis/locale/pt_BR/LC_MESSAGES/django.mo | Bin 0 -> 1976 bytes .../gis/locale/pt_BR/LC_MESSAGES/django.po | 94 + .../gis/locale/ro/LC_MESSAGES/django.mo | Bin 0 -> 1770 bytes .../gis/locale/ro/LC_MESSAGES/django.po | 89 + .../gis/locale/ru/LC_MESSAGES/django.mo | Bin 0 -> 2481 bytes .../gis/locale/ru/LC_MESSAGES/django.po | 91 + .../gis/locale/sk/LC_MESSAGES/django.mo | Bin 0 -> 1980 bytes .../gis/locale/sk/LC_MESSAGES/django.po | 86 + .../gis/locale/sl/LC_MESSAGES/django.mo | Bin 0 -> 1972 bytes .../gis/locale/sl/LC_MESSAGES/django.po | 89 + .../gis/locale/sq/LC_MESSAGES/django.mo | Bin 0 -> 1660 bytes .../gis/locale/sq/LC_MESSAGES/django.po | 85 + .../gis/locale/sr/LC_MESSAGES/django.mo | Bin 0 -> 2365 bytes .../gis/locale/sr/LC_MESSAGES/django.po | 87 + .../gis/locale/sr_Latn/LC_MESSAGES/django.mo | Bin 0 -> 1981 bytes .../gis/locale/sr_Latn/LC_MESSAGES/django.po | 87 + .../gis/locale/sv/LC_MESSAGES/django.mo | Bin 0 -> 1880 bytes .../gis/locale/sv/LC_MESSAGES/django.po | 90 + .../gis/locale/sw/LC_MESSAGES/django.mo | Bin 0 -> 1426 bytes .../gis/locale/sw/LC_MESSAGES/django.po | 87 + .../gis/locale/ta/LC_MESSAGES/django.mo | Bin 0 -> 466 bytes .../gis/locale/ta/LC_MESSAGES/django.po | 80 + .../gis/locale/te/LC_MESSAGES/django.mo | Bin 0 -> 824 bytes .../gis/locale/te/LC_MESSAGES/django.po | 84 + .../gis/locale/tg/LC_MESSAGES/django.mo | Bin 0 -> 611 bytes .../gis/locale/tg/LC_MESSAGES/django.po | 84 + .../gis/locale/th/LC_MESSAGES/django.mo | Bin 0 -> 1835 bytes .../gis/locale/th/LC_MESSAGES/django.po | 86 + .../gis/locale/tr/LC_MESSAGES/django.mo | Bin 0 -> 1904 bytes .../gis/locale/tr/LC_MESSAGES/django.po | 88 + .../gis/locale/tt/LC_MESSAGES/django.mo | Bin 0 -> 1470 bytes .../gis/locale/tt/LC_MESSAGES/django.po | 85 + .../gis/locale/udm/LC_MESSAGES/django.mo | Bin 0 -> 462 bytes .../gis/locale/udm/LC_MESSAGES/django.po | 80 + .../gis/locale/ug/LC_MESSAGES/django.mo | Bin 0 -> 2360 bytes .../gis/locale/ug/LC_MESSAGES/django.po | 86 + .../gis/locale/uk/LC_MESSAGES/django.mo | Bin 0 -> 2513 bytes .../gis/locale/uk/LC_MESSAGES/django.po | 93 + .../gis/locale/ur/LC_MESSAGES/django.mo | Bin 0 -> 1410 bytes .../gis/locale/ur/LC_MESSAGES/django.po | 86 + .../gis/locale/vi/LC_MESSAGES/django.mo | Bin 0 -> 1384 bytes .../gis/locale/vi/LC_MESSAGES/django.po | 87 + .../gis/locale/zh_Hans/LC_MESSAGES/django.mo | Bin 0 -> 1760 bytes .../gis/locale/zh_Hans/LC_MESSAGES/django.po | 90 + .../gis/locale/zh_Hant/LC_MESSAGES/django.mo | Bin 0 -> 1811 bytes .../gis/locale/zh_Hant/LC_MESSAGES/django.po | 87 + .../django/contrib/gis/management/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 206 bytes .../gis/management/commands/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 215 bytes .../__pycache__/inspectdb.cpython-312.pyc | Bin 0 -> 1108 bytes .../__pycache__/ogrinspect.cpython-312.pyc | Bin 0 -> 6815 bytes .../gis/management/commands/inspectdb.py | 18 + .../gis/management/commands/ogrinspect.py | 164 + .../django/contrib/gis/measure.py | 373 + .../site-packages/django/contrib/gis/ptr.py | 41 + .../contrib/gis/serializers/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 207 bytes .../__pycache__/geojson.cpython-312.pyc | Bin 0 -> 4927 bytes .../django/contrib/gis/serializers/geojson.py | 81 + .../django/contrib/gis/shortcuts.py | 40 + .../django/contrib/gis/sitemaps/__init__.py | 4 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 331 bytes .../sitemaps/__pycache__/kml.cpython-312.pyc | Bin 0 -> 3519 bytes .../__pycache__/views.cpython-312.pyc | Bin 0 -> 2973 bytes .../django/contrib/gis/sitemaps/kml.py | 78 + .../django/contrib/gis/sitemaps/views.py | 65 + .../django/contrib/gis/static/gis/css/ol3.css | 39 + .../gis/static/gis/img/draw_line_off.svg | 1 + .../gis/static/gis/img/draw_line_on.svg | 1 + .../gis/static/gis/img/draw_point_off.svg | 1 + .../gis/static/gis/img/draw_point_on.svg | 1 + .../gis/static/gis/img/draw_polygon_off.svg | 1 + .../gis/static/gis/img/draw_polygon_on.svg | 1 + .../contrib/gis/static/gis/js/OLMapWidget.js | 233 + .../contrib/gis/templates/gis/kml/base.kml | 6 + .../gis/templates/gis/kml/placemarks.kml | 8 + .../gis/templates/gis/openlayers-osm.html | 12 + .../contrib/gis/templates/gis/openlayers.html | 32 + .../django/contrib/gis/utils/__init__.py | 25 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 815 bytes .../__pycache__/layermapping.cpython-312.pyc | Bin 0 -> 25483 bytes .../utils/__pycache__/ogrinfo.cpython-312.pyc | Bin 0 -> 2643 bytes .../__pycache__/ogrinspect.cpython-312.pyc | Bin 0 -> 8903 bytes .../gis/utils/__pycache__/srs.cpython-312.pyc | Bin 0 -> 3311 bytes .../django/contrib/gis/utils/layermapping.py | 728 ++ .../django/contrib/gis/utils/ogrinfo.py | 53 + .../django/contrib/gis/utils/ogrinspect.py | 268 + .../django/contrib/gis/utils/srs.py | 78 + .../site-packages/django/contrib/gis/views.py | 22 + .../django/contrib/humanize/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 200 bytes .../humanize/__pycache__/apps.cpython-312.pyc | Bin 0 -> 583 bytes .../django/contrib/humanize/apps.py | 7 + .../humanize/locale/af/LC_MESSAGES/django.mo | Bin 0 -> 4224 bytes .../humanize/locale/af/LC_MESSAGES/django.po | 328 + .../humanize/locale/ar/LC_MESSAGES/django.mo | Bin 0 -> 7510 bytes .../humanize/locale/ar/LC_MESSAGES/django.po | 449 + .../locale/ar_DZ/LC_MESSAGES/django.mo | Bin 0 -> 9155 bytes .../locale/ar_DZ/LC_MESSAGES/django.po | 555 + .../humanize/locale/ast/LC_MESSAGES/django.mo | Bin 0 -> 3468 bytes .../humanize/locale/ast/LC_MESSAGES/django.po | 262 + .../humanize/locale/az/LC_MESSAGES/django.mo | Bin 0 -> 4311 bytes .../humanize/locale/az/LC_MESSAGES/django.po | 333 + .../humanize/locale/be/LC_MESSAGES/django.mo | Bin 0 -> 6653 bytes .../humanize/locale/be/LC_MESSAGES/django.po | 389 + .../humanize/locale/bg/LC_MESSAGES/django.mo | Bin 0 -> 4823 bytes .../humanize/locale/bg/LC_MESSAGES/django.po | 332 + .../humanize/locale/bn/LC_MESSAGES/django.mo | Bin 0 -> 4026 bytes .../humanize/locale/bn/LC_MESSAGES/django.po | 263 + .../humanize/locale/br/LC_MESSAGES/django.mo | Bin 0 -> 5850 bytes .../humanize/locale/br/LC_MESSAGES/django.po | 517 + .../humanize/locale/bs/LC_MESSAGES/django.mo | Bin 0 -> 1416 bytes .../humanize/locale/bs/LC_MESSAGES/django.po | 292 + .../humanize/locale/ca/LC_MESSAGES/django.mo | Bin 0 -> 4270 bytes .../humanize/locale/ca/LC_MESSAGES/django.po | 332 + .../humanize/locale/ckb/LC_MESSAGES/django.mo | Bin 0 -> 5021 bytes .../humanize/locale/ckb/LC_MESSAGES/django.po | 329 + .../humanize/locale/cs/LC_MESSAGES/django.mo | Bin 0 -> 5479 bytes .../humanize/locale/cs/LC_MESSAGES/django.po | 388 + .../humanize/locale/cy/LC_MESSAGES/django.mo | Bin 0 -> 5241 bytes .../humanize/locale/cy/LC_MESSAGES/django.po | 318 + .../humanize/locale/da/LC_MESSAGES/django.mo | Bin 0 -> 4316 bytes .../humanize/locale/da/LC_MESSAGES/django.po | 331 + .../humanize/locale/de/LC_MESSAGES/django.mo | Bin 0 -> 4364 bytes .../humanize/locale/de/LC_MESSAGES/django.po | 330 + .../humanize/locale/dsb/LC_MESSAGES/django.mo | Bin 0 -> 5588 bytes .../humanize/locale/dsb/LC_MESSAGES/django.po | 387 + .../humanize/locale/el/LC_MESSAGES/django.mo | Bin 0 -> 6740 bytes .../humanize/locale/el/LC_MESSAGES/django.po | 398 + .../humanize/locale/en/LC_MESSAGES/django.mo | Bin 0 -> 356 bytes .../humanize/locale/en/LC_MESSAGES/django.po | 378 + .../locale/en_AU/LC_MESSAGES/django.mo | Bin 0 -> 918 bytes .../locale/en_AU/LC_MESSAGES/django.po | 328 + .../locale/en_GB/LC_MESSAGES/django.mo | Bin 0 -> 3461 bytes .../locale/en_GB/LC_MESSAGES/django.po | 263 + .../humanize/locale/eo/LC_MESSAGES/django.mo | Bin 0 -> 5386 bytes .../humanize/locale/eo/LC_MESSAGES/django.po | 394 + .../humanize/locale/es/LC_MESSAGES/django.mo | Bin 0 -> 5005 bytes .../humanize/locale/es/LC_MESSAGES/django.po | 365 + .../locale/es_AR/LC_MESSAGES/django.mo | Bin 0 -> 4425 bytes .../locale/es_AR/LC_MESSAGES/django.po | 332 + .../locale/es_CO/LC_MESSAGES/django.mo | Bin 0 -> 4203 bytes .../locale/es_CO/LC_MESSAGES/django.po | 267 + .../locale/es_MX/LC_MESSAGES/django.mo | Bin 0 -> 3939 bytes .../locale/es_MX/LC_MESSAGES/django.po | 264 + .../locale/es_VE/LC_MESSAGES/django.mo | Bin 0 -> 942 bytes .../locale/es_VE/LC_MESSAGES/django.po | 262 + .../humanize/locale/et/LC_MESSAGES/django.mo | Bin 0 -> 4406 bytes .../humanize/locale/et/LC_MESSAGES/django.po | 334 + .../humanize/locale/eu/LC_MESSAGES/django.mo | Bin 0 -> 4315 bytes .../humanize/locale/eu/LC_MESSAGES/django.po | 332 + .../humanize/locale/fa/LC_MESSAGES/django.mo | Bin 0 -> 4656 bytes .../humanize/locale/fa/LC_MESSAGES/django.po | 335 + .../humanize/locale/fi/LC_MESSAGES/django.mo | Bin 0 -> 4425 bytes .../humanize/locale/fi/LC_MESSAGES/django.po | 331 + .../humanize/locale/fr/LC_MESSAGES/django.mo | Bin 0 -> 5125 bytes .../humanize/locale/fr/LC_MESSAGES/django.po | 360 + .../humanize/locale/fy/LC_MESSAGES/django.mo | Bin 0 -> 476 bytes .../humanize/locale/fy/LC_MESSAGES/django.po | 261 + .../humanize/locale/ga/LC_MESSAGES/django.mo | Bin 0 -> 5112 bytes .../humanize/locale/ga/LC_MESSAGES/django.po | 516 + .../humanize/locale/gd/LC_MESSAGES/django.mo | Bin 0 -> 5838 bytes .../humanize/locale/gd/LC_MESSAGES/django.po | 389 + .../humanize/locale/gl/LC_MESSAGES/django.mo | Bin 0 -> 4345 bytes .../humanize/locale/gl/LC_MESSAGES/django.po | 332 + .../humanize/locale/he/LC_MESSAGES/django.mo | Bin 0 -> 5875 bytes .../humanize/locale/he/LC_MESSAGES/django.po | 389 + .../humanize/locale/hi/LC_MESSAGES/django.mo | Bin 0 -> 4131 bytes .../humanize/locale/hi/LC_MESSAGES/django.po | 263 + .../humanize/locale/hr/LC_MESSAGES/django.mo | Bin 0 -> 1274 bytes .../humanize/locale/hr/LC_MESSAGES/django.po | 291 + .../humanize/locale/hsb/LC_MESSAGES/django.mo | Bin 0 -> 5679 bytes .../humanize/locale/hsb/LC_MESSAGES/django.po | 387 + .../humanize/locale/hu/LC_MESSAGES/django.mo | Bin 0 -> 4313 bytes .../humanize/locale/hu/LC_MESSAGES/django.po | 332 + .../humanize/locale/hy/LC_MESSAGES/django.mo | Bin 0 -> 3810 bytes .../humanize/locale/hy/LC_MESSAGES/django.po | 330 + .../humanize/locale/ia/LC_MESSAGES/django.mo | Bin 0 -> 4167 bytes .../humanize/locale/ia/LC_MESSAGES/django.po | 262 + .../humanize/locale/id/LC_MESSAGES/django.mo | Bin 0 -> 3885 bytes .../humanize/locale/id/LC_MESSAGES/django.po | 304 + .../humanize/locale/io/LC_MESSAGES/django.mo | Bin 0 -> 464 bytes .../humanize/locale/io/LC_MESSAGES/django.po | 261 + .../humanize/locale/is/LC_MESSAGES/django.mo | Bin 0 -> 3805 bytes .../humanize/locale/is/LC_MESSAGES/django.po | 399 + .../humanize/locale/it/LC_MESSAGES/django.mo | Bin 0 -> 5374 bytes .../humanize/locale/it/LC_MESSAGES/django.po | 368 + .../humanize/locale/ja/LC_MESSAGES/django.mo | Bin 0 -> 3907 bytes .../humanize/locale/ja/LC_MESSAGES/django.po | 301 + .../humanize/locale/ka/LC_MESSAGES/django.mo | Bin 0 -> 4878 bytes .../humanize/locale/ka/LC_MESSAGES/django.po | 395 + .../humanize/locale/kk/LC_MESSAGES/django.mo | Bin 0 -> 2113 bytes .../humanize/locale/kk/LC_MESSAGES/django.po | 394 + .../humanize/locale/km/LC_MESSAGES/django.mo | Bin 0 -> 459 bytes .../humanize/locale/km/LC_MESSAGES/django.po | 233 + .../humanize/locale/kn/LC_MESSAGES/django.mo | Bin 0 -> 461 bytes .../humanize/locale/kn/LC_MESSAGES/django.po | 233 + .../humanize/locale/ko/LC_MESSAGES/django.mo | Bin 0 -> 3891 bytes .../humanize/locale/ko/LC_MESSAGES/django.po | 304 + .../humanize/locale/ky/LC_MESSAGES/django.mo | Bin 0 -> 4177 bytes .../humanize/locale/ky/LC_MESSAGES/django.po | 299 + .../humanize/locale/lb/LC_MESSAGES/django.mo | Bin 0 -> 474 bytes .../humanize/locale/lb/LC_MESSAGES/django.po | 261 + .../humanize/locale/lt/LC_MESSAGES/django.mo | Bin 0 -> 7333 bytes .../humanize/locale/lt/LC_MESSAGES/django.po | 477 + .../humanize/locale/lv/LC_MESSAGES/django.mo | Bin 0 -> 5033 bytes .../humanize/locale/lv/LC_MESSAGES/django.po | 363 + .../humanize/locale/mk/LC_MESSAGES/django.mo | Bin 0 -> 4761 bytes .../humanize/locale/mk/LC_MESSAGES/django.po | 262 + .../humanize/locale/ml/LC_MESSAGES/django.mo | Bin 0 -> 4655 bytes .../humanize/locale/ml/LC_MESSAGES/django.po | 396 + .../humanize/locale/mn/LC_MESSAGES/django.mo | Bin 0 -> 4863 bytes .../humanize/locale/mn/LC_MESSAGES/django.po | 333 + .../humanize/locale/mr/LC_MESSAGES/django.mo | Bin 0 -> 1506 bytes .../humanize/locale/mr/LC_MESSAGES/django.po | 328 + .../humanize/locale/ms/LC_MESSAGES/django.mo | Bin 0 -> 3839 bytes .../humanize/locale/ms/LC_MESSAGES/django.po | 299 + .../humanize/locale/my/LC_MESSAGES/django.mo | Bin 0 -> 3479 bytes .../humanize/locale/my/LC_MESSAGES/django.po | 234 + .../humanize/locale/nb/LC_MESSAGES/django.mo | Bin 0 -> 4318 bytes .../humanize/locale/nb/LC_MESSAGES/django.po | 331 + .../humanize/locale/ne/LC_MESSAGES/django.mo | Bin 0 -> 3590 bytes .../humanize/locale/ne/LC_MESSAGES/django.po | 395 + .../humanize/locale/nl/LC_MESSAGES/django.mo | Bin 0 -> 4311 bytes .../humanize/locale/nl/LC_MESSAGES/django.po | 332 + .../humanize/locale/nn/LC_MESSAGES/django.mo | Bin 0 -> 4336 bytes .../humanize/locale/nn/LC_MESSAGES/django.po | 330 + .../humanize/locale/os/LC_MESSAGES/django.mo | Bin 0 -> 3902 bytes .../humanize/locale/os/LC_MESSAGES/django.po | 262 + .../humanize/locale/pa/LC_MESSAGES/django.mo | Bin 0 -> 1569 bytes .../humanize/locale/pa/LC_MESSAGES/django.po | 263 + .../humanize/locale/pl/LC_MESSAGES/django.mo | Bin 0 -> 5596 bytes .../humanize/locale/pl/LC_MESSAGES/django.po | 394 + .../humanize/locale/pt/LC_MESSAGES/django.mo | Bin 0 -> 5408 bytes .../humanize/locale/pt/LC_MESSAGES/django.po | 398 + .../locale/pt_BR/LC_MESSAGES/django.mo | Bin 0 -> 5092 bytes .../locale/pt_BR/LC_MESSAGES/django.po | 367 + .../humanize/locale/ro/LC_MESSAGES/django.mo | Bin 0 -> 6188 bytes .../humanize/locale/ro/LC_MESSAGES/django.po | 440 + .../humanize/locale/ru/LC_MESSAGES/django.mo | Bin 0 -> 6733 bytes .../humanize/locale/ru/LC_MESSAGES/django.po | 396 + .../humanize/locale/sk/LC_MESSAGES/django.mo | Bin 0 -> 5541 bytes .../humanize/locale/sk/LC_MESSAGES/django.po | 390 + .../humanize/locale/sl/LC_MESSAGES/django.mo | Bin 0 -> 4967 bytes .../humanize/locale/sl/LC_MESSAGES/django.po | 392 + .../humanize/locale/sq/LC_MESSAGES/django.mo | Bin 0 -> 5280 bytes .../humanize/locale/sq/LC_MESSAGES/django.po | 395 + .../humanize/locale/sr/LC_MESSAGES/django.mo | Bin 0 -> 5718 bytes .../humanize/locale/sr/LC_MESSAGES/django.po | 359 + .../locale/sr_Latn/LC_MESSAGES/django.mo | Bin 0 -> 2613 bytes .../locale/sr_Latn/LC_MESSAGES/django.po | 412 + .../humanize/locale/sv/LC_MESSAGES/django.mo | Bin 0 -> 4333 bytes .../humanize/locale/sv/LC_MESSAGES/django.po | 335 + .../humanize/locale/sw/LC_MESSAGES/django.mo | Bin 0 -> 4146 bytes .../humanize/locale/sw/LC_MESSAGES/django.po | 262 + .../humanize/locale/ta/LC_MESSAGES/django.mo | Bin 0 -> 466 bytes .../humanize/locale/ta/LC_MESSAGES/django.po | 261 + .../humanize/locale/te/LC_MESSAGES/django.mo | Bin 0 -> 1327 bytes .../humanize/locale/te/LC_MESSAGES/django.po | 262 + .../humanize/locale/tg/LC_MESSAGES/django.mo | Bin 0 -> 1580 bytes .../humanize/locale/tg/LC_MESSAGES/django.po | 393 + .../humanize/locale/th/LC_MESSAGES/django.mo | Bin 0 -> 3709 bytes .../humanize/locale/th/LC_MESSAGES/django.po | 357 + .../humanize/locale/tk/LC_MESSAGES/django.mo | Bin 0 -> 4419 bytes .../humanize/locale/tk/LC_MESSAGES/django.po | 328 + .../humanize/locale/tr/LC_MESSAGES/django.mo | Bin 0 -> 4319 bytes .../humanize/locale/tr/LC_MESSAGES/django.po | 333 + .../humanize/locale/tt/LC_MESSAGES/django.mo | Bin 0 -> 3243 bytes .../humanize/locale/tt/LC_MESSAGES/django.po | 233 + .../humanize/locale/udm/LC_MESSAGES/django.mo | Bin 0 -> 462 bytes .../humanize/locale/udm/LC_MESSAGES/django.po | 233 + .../humanize/locale/ug/LC_MESSAGES/django.mo | Bin 0 -> 4883 bytes .../humanize/locale/ug/LC_MESSAGES/django.po | 328 + .../humanize/locale/uk/LC_MESSAGES/django.mo | Bin 0 -> 6991 bytes .../humanize/locale/uk/LC_MESSAGES/django.po | 395 + .../humanize/locale/ur/LC_MESSAGES/django.mo | Bin 0 -> 1347 bytes .../humanize/locale/ur/LC_MESSAGES/django.po | 261 + .../humanize/locale/uz/LC_MESSAGES/django.mo | Bin 0 -> 1915 bytes .../humanize/locale/uz/LC_MESSAGES/django.po | 353 + .../humanize/locale/vi/LC_MESSAGES/django.mo | Bin 0 -> 3646 bytes .../humanize/locale/vi/LC_MESSAGES/django.po | 235 + .../locale/zh_Hans/LC_MESSAGES/django.mo | Bin 0 -> 3844 bytes .../locale/zh_Hans/LC_MESSAGES/django.po | 308 + .../locale/zh_Hant/LC_MESSAGES/django.mo | Bin 0 -> 3737 bytes .../locale/zh_Hant/LC_MESSAGES/django.po | 304 + .../contrib/humanize/templatetags/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 213 bytes .../__pycache__/humanize.cpython-312.pyc | Bin 0 -> 12286 bytes .../contrib/humanize/templatetags/humanize.py | 327 + .../django/contrib/messages/__init__.py | 3 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 366 bytes .../messages/__pycache__/api.cpython-312.pyc | Bin 0 -> 3750 bytes .../messages/__pycache__/apps.cpython-312.pyc | Bin 0 -> 1285 bytes .../__pycache__/constants.cpython-312.pyc | Bin 0 -> 499 bytes .../context_processors.cpython-312.pyc | Bin 0 -> 645 bytes .../__pycache__/middleware.cpython-312.pyc | Bin 0 -> 1475 bytes .../messages/__pycache__/test.cpython-312.pyc | Bin 0 -> 884 bytes .../__pycache__/utils.cpython-312.pyc | Bin 0 -> 602 bytes .../__pycache__/views.cpython-312.pyc | Bin 0 -> 1217 bytes .../django/contrib/messages/api.py | 127 + .../django/contrib/messages/apps.py | 19 + .../django/contrib/messages/constants.py | 21 + .../contrib/messages/context_processors.py | 13 + .../django/contrib/messages/middleware.py | 26 + .../contrib/messages/storage/__init__.py | 12 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 748 bytes .../storage/__pycache__/base.cpython-312.pyc | Bin 0 -> 9322 bytes .../__pycache__/cookie.cpython-312.pyc | Bin 0 -> 11830 bytes .../__pycache__/fallback.cpython-312.pyc | Bin 0 -> 2594 bytes .../__pycache__/session.cpython-312.pyc | Bin 0 -> 2914 bytes .../django/contrib/messages/storage/base.py | 183 + .../django/contrib/messages/storage/cookie.py | 248 + .../contrib/messages/storage/fallback.py | 56 + .../contrib/messages/storage/session.py | 52 + .../django/contrib/messages/test.py | 8 + .../django/contrib/messages/utils.py | 12 + .../django/contrib/messages/views.py | 19 + .../django/contrib/postgres/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 200 bytes .../postgres/__pycache__/apps.cpython-312.pyc | Bin 0 -> 4724 bytes .../__pycache__/constraints.cpython-312.pyc | Bin 0 -> 13386 bytes .../__pycache__/expressions.cpython-312.pyc | Bin 0 -> 1108 bytes .../__pycache__/functions.cpython-312.pyc | Bin 0 -> 773 bytes .../__pycache__/indexes.cpython-312.pyc | Bin 0 -> 12628 bytes .../__pycache__/lookups.cpython-312.pyc | Bin 0 -> 3952 bytes .../__pycache__/operations.cpython-312.pyc | Bin 0 -> 20208 bytes .../__pycache__/search.cpython-312.pyc | Bin 0 -> 17285 bytes .../__pycache__/serializers.cpython-312.pyc | Bin 0 -> 857 bytes .../__pycache__/signals.cpython-312.pyc | Bin 0 -> 3388 bytes .../__pycache__/utils.cpython-312.pyc | Bin 0 -> 1472 bytes .../__pycache__/validators.cpython-312.pyc | Bin 0 -> 4209 bytes .../contrib/postgres/aggregates/__init__.py | 2 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 265 bytes .../__pycache__/general.cpython-312.pyc | Bin 0 -> 2837 bytes .../__pycache__/mixins.cpython-312.pyc | Bin 0 -> 2778 bytes .../__pycache__/statistics.cpython-312.pyc | Bin 0 -> 3187 bytes .../contrib/postgres/aggregates/general.py | 65 + .../contrib/postgres/aggregates/mixins.py | 47 + .../contrib/postgres/aggregates/statistics.py | 75 + .../django/contrib/postgres/apps.py | 84 + .../django/contrib/postgres/constraints.py | 232 + .../django/contrib/postgres/expressions.py | 14 + .../contrib/postgres/fields/__init__.py | 5 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 317 bytes .../fields/__pycache__/array.cpython-312.pyc | Bin 0 -> 19275 bytes .../fields/__pycache__/citext.cpython-312.pyc | Bin 0 -> 1582 bytes .../fields/__pycache__/hstore.cpython-312.pyc | Bin 0 -> 5955 bytes .../fields/__pycache__/jsonb.cpython-312.pyc | Bin 0 -> 694 bytes .../fields/__pycache__/ranges.cpython-312.pyc | Bin 0 -> 19428 bytes .../fields/__pycache__/utils.cpython-312.pyc | Bin 0 -> 562 bytes .../django/contrib/postgres/fields/array.py | 373 + .../django/contrib/postgres/fields/citext.py | 45 + .../django/contrib/postgres/fields/hstore.py | 112 + .../django/contrib/postgres/fields/jsonb.py | 14 + .../django/contrib/postgres/fields/ranges.py | 383 + .../django/contrib/postgres/fields/utils.py | 3 + .../django/contrib/postgres/forms/__init__.py | 3 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 275 bytes .../forms/__pycache__/array.cpython-312.pyc | Bin 0 -> 12763 bytes .../forms/__pycache__/hstore.cpython-312.pyc | Bin 0 -> 2408 bytes .../forms/__pycache__/ranges.cpython-312.pyc | Bin 0 -> 5569 bytes .../django/contrib/postgres/forms/array.py | 251 + .../django/contrib/postgres/forms/hstore.py | 59 + .../django/contrib/postgres/forms/ranges.py | 119 + .../django/contrib/postgres/functions.py | 11 + .../django/contrib/postgres/indexes.py | 250 + .../jinja2/postgres/widgets/split_array.html | 1 + .../postgres/locale/af/LC_MESSAGES/django.mo | Bin 0 -> 2841 bytes .../postgres/locale/af/LC_MESSAGES/django.po | 104 + .../postgres/locale/ar/LC_MESSAGES/django.mo | Bin 0 -> 4294 bytes .../postgres/locale/ar/LC_MESSAGES/django.po | 131 + .../locale/ar_DZ/LC_MESSAGES/django.mo | Bin 0 -> 4352 bytes .../locale/ar_DZ/LC_MESSAGES/django.po | 131 + .../postgres/locale/az/LC_MESSAGES/django.mo | Bin 0 -> 2899 bytes .../postgres/locale/az/LC_MESSAGES/django.po | 104 + .../postgres/locale/be/LC_MESSAGES/django.mo | Bin 0 -> 4143 bytes .../postgres/locale/be/LC_MESSAGES/django.po | 120 + .../postgres/locale/bg/LC_MESSAGES/django.mo | Bin 0 -> 3529 bytes .../postgres/locale/bg/LC_MESSAGES/django.po | 110 + .../postgres/locale/ca/LC_MESSAGES/django.mo | Bin 0 -> 2904 bytes .../postgres/locale/ca/LC_MESSAGES/django.po | 112 + .../postgres/locale/ckb/LC_MESSAGES/django.mo | Bin 0 -> 3414 bytes .../postgres/locale/ckb/LC_MESSAGES/django.po | 101 + .../postgres/locale/cs/LC_MESSAGES/django.mo | Bin 0 -> 3388 bytes .../postgres/locale/cs/LC_MESSAGES/django.po | 119 + .../postgres/locale/da/LC_MESSAGES/django.mo | Bin 0 -> 2886 bytes .../postgres/locale/da/LC_MESSAGES/django.po | 106 + .../postgres/locale/de/LC_MESSAGES/django.mo | Bin 0 -> 3078 bytes .../postgres/locale/de/LC_MESSAGES/django.po | 111 + .../postgres/locale/dsb/LC_MESSAGES/django.mo | Bin 0 -> 3605 bytes .../postgres/locale/dsb/LC_MESSAGES/django.po | 118 + .../postgres/locale/el/LC_MESSAGES/django.mo | Bin 0 -> 3583 bytes .../postgres/locale/el/LC_MESSAGES/django.po | 111 + .../postgres/locale/en/LC_MESSAGES/django.mo | Bin 0 -> 356 bytes .../postgres/locale/en/LC_MESSAGES/django.po | 114 + .../locale/en_AU/LC_MESSAGES/django.mo | Bin 0 -> 2839 bytes .../locale/en_AU/LC_MESSAGES/django.po | 109 + .../postgres/locale/eo/LC_MESSAGES/django.mo | Bin 0 -> 2742 bytes .../postgres/locale/eo/LC_MESSAGES/django.po | 109 + .../postgres/locale/es/LC_MESSAGES/django.mo | Bin 0 -> 3163 bytes .../postgres/locale/es/LC_MESSAGES/django.po | 121 + .../locale/es_AR/LC_MESSAGES/django.mo | Bin 0 -> 3140 bytes .../locale/es_AR/LC_MESSAGES/django.po | 115 + .../locale/es_CO/LC_MESSAGES/django.mo | Bin 0 -> 2484 bytes .../locale/es_CO/LC_MESSAGES/django.po | 112 + .../locale/es_MX/LC_MESSAGES/django.mo | Bin 0 -> 689 bytes .../locale/es_MX/LC_MESSAGES/django.po | 98 + .../postgres/locale/et/LC_MESSAGES/django.mo | Bin 0 -> 2886 bytes .../postgres/locale/et/LC_MESSAGES/django.po | 111 + .../postgres/locale/eu/LC_MESSAGES/django.mo | Bin 0 -> 2883 bytes .../postgres/locale/eu/LC_MESSAGES/django.po | 108 + .../postgres/locale/fa/LC_MESSAGES/django.mo | Bin 0 -> 3308 bytes .../postgres/locale/fa/LC_MESSAGES/django.po | 108 + .../postgres/locale/fi/LC_MESSAGES/django.mo | Bin 0 -> 2943 bytes .../postgres/locale/fi/LC_MESSAGES/django.po | 110 + .../postgres/locale/fr/LC_MESSAGES/django.mo | Bin 0 -> 3391 bytes .../postgres/locale/fr/LC_MESSAGES/django.po | 114 + .../postgres/locale/gd/LC_MESSAGES/django.mo | Bin 0 -> 3541 bytes .../postgres/locale/gd/LC_MESSAGES/django.po | 125 + .../postgres/locale/gl/LC_MESSAGES/django.mo | Bin 0 -> 2912 bytes .../postgres/locale/gl/LC_MESSAGES/django.po | 108 + .../postgres/locale/he/LC_MESSAGES/django.mo | Bin 0 -> 3757 bytes .../postgres/locale/he/LC_MESSAGES/django.po | 110 + .../postgres/locale/hr/LC_MESSAGES/django.mo | Bin 0 -> 929 bytes .../postgres/locale/hr/LC_MESSAGES/django.po | 102 + .../postgres/locale/hsb/LC_MESSAGES/django.mo | Bin 0 -> 3518 bytes .../postgres/locale/hsb/LC_MESSAGES/django.po | 118 + .../postgres/locale/hu/LC_MESSAGES/django.mo | Bin 0 -> 2892 bytes .../postgres/locale/hu/LC_MESSAGES/django.po | 110 + .../postgres/locale/hy/LC_MESSAGES/django.mo | Bin 0 -> 3234 bytes .../postgres/locale/hy/LC_MESSAGES/django.po | 109 + .../postgres/locale/ia/LC_MESSAGES/django.mo | Bin 0 -> 582 bytes .../postgres/locale/ia/LC_MESSAGES/django.po | 98 + .../postgres/locale/id/LC_MESSAGES/django.mo | Bin 0 -> 2737 bytes .../postgres/locale/id/LC_MESSAGES/django.po | 105 + .../postgres/locale/is/LC_MESSAGES/django.mo | Bin 0 -> 2931 bytes .../postgres/locale/is/LC_MESSAGES/django.po | 108 + .../postgres/locale/it/LC_MESSAGES/django.mo | Bin 0 -> 3210 bytes .../postgres/locale/it/LC_MESSAGES/django.po | 122 + .../postgres/locale/ja/LC_MESSAGES/django.mo | Bin 0 -> 3046 bytes .../postgres/locale/ja/LC_MESSAGES/django.po | 100 + .../postgres/locale/ka/LC_MESSAGES/django.mo | Bin 0 -> 713 bytes .../postgres/locale/ka/LC_MESSAGES/django.po | 98 + .../postgres/locale/kk/LC_MESSAGES/django.mo | Bin 0 -> 665 bytes .../postgres/locale/kk/LC_MESSAGES/django.po | 97 + .../postgres/locale/ko/LC_MESSAGES/django.mo | Bin 0 -> 2905 bytes .../postgres/locale/ko/LC_MESSAGES/django.po | 105 + .../postgres/locale/ky/LC_MESSAGES/django.mo | Bin 0 -> 3101 bytes .../postgres/locale/ky/LC_MESSAGES/django.po | 100 + .../postgres/locale/lt/LC_MESSAGES/django.mo | Bin 0 -> 3452 bytes .../postgres/locale/lt/LC_MESSAGES/django.po | 120 + .../postgres/locale/lv/LC_MESSAGES/django.mo | Bin 0 -> 3153 bytes .../postgres/locale/lv/LC_MESSAGES/django.po | 118 + .../postgres/locale/mk/LC_MESSAGES/django.mo | Bin 0 -> 3048 bytes .../postgres/locale/mk/LC_MESSAGES/django.po | 112 + .../postgres/locale/ml/LC_MESSAGES/django.mo | Bin 0 -> 1581 bytes .../postgres/locale/ml/LC_MESSAGES/django.po | 98 + .../postgres/locale/mn/LC_MESSAGES/django.mo | Bin 0 -> 3310 bytes .../postgres/locale/mn/LC_MESSAGES/django.po | 111 + .../postgres/locale/mr/LC_MESSAGES/django.mo | Bin 0 -> 1132 bytes .../postgres/locale/mr/LC_MESSAGES/django.po | 97 + .../postgres/locale/ms/LC_MESSAGES/django.mo | Bin 0 -> 2712 bytes .../postgres/locale/ms/LC_MESSAGES/django.po | 100 + .../postgres/locale/nb/LC_MESSAGES/django.mo | Bin 0 -> 2849 bytes .../postgres/locale/nb/LC_MESSAGES/django.po | 107 + .../postgres/locale/ne/LC_MESSAGES/django.mo | Bin 0 -> 875 bytes .../postgres/locale/ne/LC_MESSAGES/django.po | 96 + .../postgres/locale/nl/LC_MESSAGES/django.mo | Bin 0 -> 2993 bytes .../postgres/locale/nl/LC_MESSAGES/django.po | 112 + .../postgres/locale/nn/LC_MESSAGES/django.mo | Bin 0 -> 2836 bytes .../postgres/locale/nn/LC_MESSAGES/django.po | 106 + .../postgres/locale/pl/LC_MESSAGES/django.mo | Bin 0 -> 3462 bytes .../postgres/locale/pl/LC_MESSAGES/django.po | 127 + .../postgres/locale/pt/LC_MESSAGES/django.mo | Bin 0 -> 2745 bytes .../postgres/locale/pt/LC_MESSAGES/django.po | 107 + .../locale/pt_BR/LC_MESSAGES/django.mo | Bin 0 -> 3143 bytes .../locale/pt_BR/LC_MESSAGES/django.po | 123 + .../postgres/locale/ro/LC_MESSAGES/django.mo | Bin 0 -> 3188 bytes .../postgres/locale/ro/LC_MESSAGES/django.po | 120 + .../postgres/locale/ru/LC_MESSAGES/django.mo | Bin 0 -> 4732 bytes .../postgres/locale/ru/LC_MESSAGES/django.po | 131 + .../postgres/locale/sk/LC_MESSAGES/django.mo | Bin 0 -> 3381 bytes .../postgres/locale/sk/LC_MESSAGES/django.po | 121 + .../postgres/locale/sl/LC_MESSAGES/django.mo | Bin 0 -> 2810 bytes .../postgres/locale/sl/LC_MESSAGES/django.po | 120 + .../postgres/locale/sq/LC_MESSAGES/django.mo | Bin 0 -> 2958 bytes .../postgres/locale/sq/LC_MESSAGES/django.po | 110 + .../postgres/locale/sr/LC_MESSAGES/django.mo | Bin 0 -> 3775 bytes .../postgres/locale/sr/LC_MESSAGES/django.po | 113 + .../locale/sr_Latn/LC_MESSAGES/django.mo | Bin 0 -> 3112 bytes .../locale/sr_Latn/LC_MESSAGES/django.po | 112 + .../postgres/locale/sv/LC_MESSAGES/django.mo | Bin 0 -> 2918 bytes .../postgres/locale/sv/LC_MESSAGES/django.po | 110 + .../postgres/locale/tg/LC_MESSAGES/django.mo | Bin 0 -> 2688 bytes .../postgres/locale/tg/LC_MESSAGES/django.po | 101 + .../postgres/locale/tk/LC_MESSAGES/django.mo | Bin 0 -> 2789 bytes .../postgres/locale/tk/LC_MESSAGES/django.po | 107 + .../postgres/locale/tr/LC_MESSAGES/django.mo | Bin 0 -> 2914 bytes .../postgres/locale/tr/LC_MESSAGES/django.po | 109 + .../postgres/locale/ug/LC_MESSAGES/django.mo | Bin 0 -> 3938 bytes .../postgres/locale/ug/LC_MESSAGES/django.po | 107 + .../postgres/locale/uk/LC_MESSAGES/django.mo | Bin 0 -> 4406 bytes .../postgres/locale/uk/LC_MESSAGES/django.po | 126 + .../postgres/locale/uz/LC_MESSAGES/django.mo | Bin 0 -> 703 bytes .../postgres/locale/uz/LC_MESSAGES/django.po | 95 + .../locale/zh_Hans/LC_MESSAGES/django.mo | Bin 0 -> 2560 bytes .../locale/zh_Hans/LC_MESSAGES/django.po | 100 + .../locale/zh_Hant/LC_MESSAGES/django.mo | Bin 0 -> 2563 bytes .../locale/zh_Hant/LC_MESSAGES/django.po | 98 + .../django/contrib/postgres/lookups.py | 78 + .../django/contrib/postgres/operations.py | 344 + .../django/contrib/postgres/search.py | 383 + .../django/contrib/postgres/serializers.py | 10 + .../django/contrib/postgres/signals.py | 80 + .../postgres/widgets/split_array.html | 1 + .../django/contrib/postgres/utils.py | 29 + .../django/contrib/postgres/validators.py | 91 + .../django/contrib/redirects/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 201 bytes .../__pycache__/admin.cpython-312.pyc | Bin 0 -> 780 bytes .../__pycache__/apps.cpython-312.pyc | Bin 0 -> 645 bytes .../__pycache__/middleware.cpython-312.pyc | Bin 0 -> 2658 bytes .../__pycache__/models.cpython-312.pyc | Bin 0 -> 1860 bytes .../django/contrib/redirects/admin.py | 10 + .../django/contrib/redirects/apps.py | 8 + .../redirects/locale/af/LC_MESSAGES/django.mo | Bin 0 -> 1151 bytes .../redirects/locale/af/LC_MESSAGES/django.po | 51 + .../redirects/locale/ar/LC_MESSAGES/django.mo | Bin 0 -> 1336 bytes .../redirects/locale/ar/LC_MESSAGES/django.po | 51 + .../locale/ar_DZ/LC_MESSAGES/django.mo | Bin 0 -> 1379 bytes .../locale/ar_DZ/LC_MESSAGES/django.po | 50 + .../locale/ast/LC_MESSAGES/django.mo | Bin 0 -> 1071 bytes .../locale/ast/LC_MESSAGES/django.po | 50 + .../redirects/locale/az/LC_MESSAGES/django.mo | Bin 0 -> 1106 bytes .../redirects/locale/az/LC_MESSAGES/django.po | 51 + .../redirects/locale/be/LC_MESSAGES/django.mo | Bin 0 -> 1426 bytes .../redirects/locale/be/LC_MESSAGES/django.po | 52 + .../redirects/locale/bg/LC_MESSAGES/django.mo | Bin 0 -> 1279 bytes .../redirects/locale/bg/LC_MESSAGES/django.po | 53 + .../redirects/locale/bn/LC_MESSAGES/django.mo | Bin 0 -> 1319 bytes .../redirects/locale/bn/LC_MESSAGES/django.po | 48 + .../redirects/locale/br/LC_MESSAGES/django.mo | Bin 0 -> 1429 bytes .../redirects/locale/br/LC_MESSAGES/django.po | 54 + .../redirects/locale/bs/LC_MESSAGES/django.mo | Bin 0 -> 1115 bytes .../redirects/locale/bs/LC_MESSAGES/django.po | 51 + .../redirects/locale/ca/LC_MESSAGES/django.mo | Bin 0 -> 1136 bytes .../redirects/locale/ca/LC_MESSAGES/django.po | 54 + .../locale/ckb/LC_MESSAGES/django.mo | Bin 0 -> 1340 bytes .../locale/ckb/LC_MESSAGES/django.po | 49 + .../redirects/locale/cs/LC_MESSAGES/django.mo | Bin 0 -> 1229 bytes .../redirects/locale/cs/LC_MESSAGES/django.po | 51 + .../redirects/locale/cy/LC_MESSAGES/django.mo | Bin 0 -> 1132 bytes .../redirects/locale/cy/LC_MESSAGES/django.po | 51 + .../redirects/locale/da/LC_MESSAGES/django.mo | Bin 0 -> 1132 bytes .../redirects/locale/da/LC_MESSAGES/django.po | 50 + .../redirects/locale/de/LC_MESSAGES/django.mo | Bin 0 -> 1155 bytes .../redirects/locale/de/LC_MESSAGES/django.po | 51 + .../locale/dsb/LC_MESSAGES/django.mo | Bin 0 -> 1236 bytes .../locale/dsb/LC_MESSAGES/django.po | 51 + .../redirects/locale/el/LC_MESSAGES/django.mo | Bin 0 -> 1395 bytes .../redirects/locale/el/LC_MESSAGES/django.po | 52 + .../redirects/locale/en/LC_MESSAGES/django.mo | Bin 0 -> 356 bytes .../redirects/locale/en/LC_MESSAGES/django.po | 50 + .../locale/en_AU/LC_MESSAGES/django.mo | Bin 0 -> 1127 bytes .../locale/en_AU/LC_MESSAGES/django.po | 50 + .../locale/en_GB/LC_MESSAGES/django.mo | Bin 0 -> 1053 bytes .../locale/en_GB/LC_MESSAGES/django.po | 50 + .../redirects/locale/eo/LC_MESSAGES/django.mo | Bin 0 -> 712 bytes .../redirects/locale/eo/LC_MESSAGES/django.po | 49 + .../redirects/locale/es/LC_MESSAGES/django.mo | Bin 0 -> 1159 bytes .../redirects/locale/es/LC_MESSAGES/django.po | 53 + .../locale/es_AR/LC_MESSAGES/django.mo | Bin 0 -> 1144 bytes .../locale/es_AR/LC_MESSAGES/django.po | 51 + .../locale/es_CO/LC_MESSAGES/django.mo | Bin 0 -> 1147 bytes .../locale/es_CO/LC_MESSAGES/django.po | 50 + .../locale/es_MX/LC_MESSAGES/django.mo | Bin 0 -> 1116 bytes .../locale/es_MX/LC_MESSAGES/django.po | 53 + .../locale/es_VE/LC_MESSAGES/django.mo | Bin 0 -> 486 bytes .../locale/es_VE/LC_MESSAGES/django.po | 42 + .../redirects/locale/et/LC_MESSAGES/django.mo | Bin 0 -> 1131 bytes .../redirects/locale/et/LC_MESSAGES/django.po | 54 + .../redirects/locale/eu/LC_MESSAGES/django.mo | Bin 0 -> 1126 bytes .../redirects/locale/eu/LC_MESSAGES/django.po | 51 + .../redirects/locale/fa/LC_MESSAGES/django.mo | Bin 0 -> 1234 bytes .../redirects/locale/fa/LC_MESSAGES/django.po | 50 + .../redirects/locale/fi/LC_MESSAGES/django.mo | Bin 0 -> 1164 bytes .../redirects/locale/fi/LC_MESSAGES/django.po | 52 + .../redirects/locale/fr/LC_MESSAGES/django.mo | Bin 0 -> 1155 bytes .../redirects/locale/fr/LC_MESSAGES/django.po | 50 + .../redirects/locale/fy/LC_MESSAGES/django.mo | Bin 0 -> 476 bytes .../redirects/locale/fy/LC_MESSAGES/django.po | 42 + .../redirects/locale/ga/LC_MESSAGES/django.mo | Bin 0 -> 1075 bytes .../redirects/locale/ga/LC_MESSAGES/django.po | 48 + .../redirects/locale/gd/LC_MESSAGES/django.mo | Bin 0 -> 1250 bytes .../redirects/locale/gd/LC_MESSAGES/django.po | 52 + .../redirects/locale/gl/LC_MESSAGES/django.mo | Bin 0 -> 1131 bytes .../redirects/locale/gl/LC_MESSAGES/django.po | 52 + .../redirects/locale/he/LC_MESSAGES/django.mo | Bin 0 -> 1278 bytes .../redirects/locale/he/LC_MESSAGES/django.po | 49 + .../redirects/locale/hi/LC_MESSAGES/django.mo | Bin 0 -> 1409 bytes .../redirects/locale/hi/LC_MESSAGES/django.po | 49 + .../redirects/locale/hr/LC_MESSAGES/django.mo | Bin 0 -> 1207 bytes .../redirects/locale/hr/LC_MESSAGES/django.po | 52 + .../locale/hsb/LC_MESSAGES/django.mo | Bin 0 -> 1221 bytes .../locale/hsb/LC_MESSAGES/django.po | 51 + .../redirects/locale/hu/LC_MESSAGES/django.mo | Bin 0 -> 1111 bytes .../redirects/locale/hu/LC_MESSAGES/django.po | 51 + .../redirects/locale/hy/LC_MESSAGES/django.mo | Bin 0 -> 1261 bytes .../redirects/locale/hy/LC_MESSAGES/django.po | 49 + .../redirects/locale/ia/LC_MESSAGES/django.mo | Bin 0 -> 1152 bytes .../redirects/locale/ia/LC_MESSAGES/django.po | 50 + .../redirects/locale/id/LC_MESSAGES/django.mo | Bin 0 -> 1105 bytes .../redirects/locale/id/LC_MESSAGES/django.po | 52 + .../redirects/locale/io/LC_MESSAGES/django.mo | Bin 0 -> 1019 bytes .../redirects/locale/io/LC_MESSAGES/django.po | 48 + .../redirects/locale/is/LC_MESSAGES/django.mo | Bin 0 -> 1040 bytes .../redirects/locale/is/LC_MESSAGES/django.po | 49 + .../redirects/locale/it/LC_MESSAGES/django.mo | Bin 0 -> 1092 bytes .../redirects/locale/it/LC_MESSAGES/django.po | 53 + .../redirects/locale/ja/LC_MESSAGES/django.mo | Bin 0 -> 1193 bytes .../redirects/locale/ja/LC_MESSAGES/django.po | 51 + .../redirects/locale/ka/LC_MESSAGES/django.mo | Bin 0 -> 1511 bytes .../redirects/locale/ka/LC_MESSAGES/django.po | 50 + .../locale/kab/LC_MESSAGES/django.mo | Bin 0 -> 699 bytes .../locale/kab/LC_MESSAGES/django.po | 45 + .../redirects/locale/kk/LC_MESSAGES/django.mo | Bin 0 -> 1261 bytes .../redirects/locale/kk/LC_MESSAGES/django.po | 48 + .../redirects/locale/km/LC_MESSAGES/django.mo | Bin 0 -> 1248 bytes .../redirects/locale/km/LC_MESSAGES/django.po | 47 + .../redirects/locale/kn/LC_MESSAGES/django.mo | Bin 0 -> 788 bytes .../redirects/locale/kn/LC_MESSAGES/django.po | 47 + .../redirects/locale/ko/LC_MESSAGES/django.mo | Bin 0 -> 1134 bytes .../redirects/locale/ko/LC_MESSAGES/django.po | 55 + .../redirects/locale/ky/LC_MESSAGES/django.mo | Bin 0 -> 1265 bytes .../redirects/locale/ky/LC_MESSAGES/django.po | 50 + .../redirects/locale/lb/LC_MESSAGES/django.mo | Bin 0 -> 474 bytes .../redirects/locale/lb/LC_MESSAGES/django.po | 42 + .../redirects/locale/lt/LC_MESSAGES/django.mo | Bin 0 -> 1191 bytes .../redirects/locale/lt/LC_MESSAGES/django.po | 53 + .../redirects/locale/lv/LC_MESSAGES/django.mo | Bin 0 -> 1175 bytes .../redirects/locale/lv/LC_MESSAGES/django.po | 53 + .../redirects/locale/mk/LC_MESSAGES/django.mo | Bin 0 -> 1353 bytes .../redirects/locale/mk/LC_MESSAGES/django.po | 52 + .../redirects/locale/ml/LC_MESSAGES/django.mo | Bin 0 -> 1573 bytes .../redirects/locale/ml/LC_MESSAGES/django.po | 51 + .../redirects/locale/mn/LC_MESSAGES/django.mo | Bin 0 -> 1274 bytes .../redirects/locale/mn/LC_MESSAGES/django.po | 52 + .../redirects/locale/mr/LC_MESSAGES/django.mo | Bin 0 -> 1530 bytes .../redirects/locale/mr/LC_MESSAGES/django.po | 48 + .../redirects/locale/ms/LC_MESSAGES/django.mo | Bin 0 -> 1094 bytes .../redirects/locale/ms/LC_MESSAGES/django.po | 49 + .../redirects/locale/my/LC_MESSAGES/django.mo | Bin 0 -> 549 bytes .../redirects/locale/my/LC_MESSAGES/django.po | 46 + .../redirects/locale/nb/LC_MESSAGES/django.mo | Bin 0 -> 1110 bytes .../redirects/locale/nb/LC_MESSAGES/django.po | 54 + .../redirects/locale/ne/LC_MESSAGES/django.mo | Bin 0 -> 1420 bytes .../redirects/locale/ne/LC_MESSAGES/django.po | 47 + .../redirects/locale/nl/LC_MESSAGES/django.mo | Bin 0 -> 1129 bytes .../redirects/locale/nl/LC_MESSAGES/django.po | 52 + .../redirects/locale/nn/LC_MESSAGES/django.mo | Bin 0 -> 1143 bytes .../redirects/locale/nn/LC_MESSAGES/django.po | 50 + .../redirects/locale/os/LC_MESSAGES/django.mo | Bin 0 -> 1150 bytes .../redirects/locale/os/LC_MESSAGES/django.po | 49 + .../redirects/locale/pa/LC_MESSAGES/django.mo | Bin 0 -> 748 bytes .../redirects/locale/pa/LC_MESSAGES/django.po | 47 + .../redirects/locale/pl/LC_MESSAGES/django.mo | Bin 0 -> 1285 bytes .../redirects/locale/pl/LC_MESSAGES/django.po | 54 + .../redirects/locale/pt/LC_MESSAGES/django.mo | Bin 0 -> 1129 bytes .../redirects/locale/pt/LC_MESSAGES/django.po | 52 + .../locale/pt_BR/LC_MESSAGES/django.mo | Bin 0 -> 1224 bytes .../locale/pt_BR/LC_MESSAGES/django.po | 57 + .../redirects/locale/ro/LC_MESSAGES/django.mo | Bin 0 -> 1158 bytes .../redirects/locale/ro/LC_MESSAGES/django.po | 54 + .../redirects/locale/ru/LC_MESSAGES/django.mo | Bin 0 -> 1457 bytes .../redirects/locale/ru/LC_MESSAGES/django.po | 53 + .../redirects/locale/sk/LC_MESSAGES/django.mo | Bin 0 -> 1222 bytes .../redirects/locale/sk/LC_MESSAGES/django.po | 53 + .../redirects/locale/sl/LC_MESSAGES/django.mo | Bin 0 -> 1173 bytes .../redirects/locale/sl/LC_MESSAGES/django.po | 52 + .../redirects/locale/sq/LC_MESSAGES/django.mo | Bin 0 -> 1165 bytes .../redirects/locale/sq/LC_MESSAGES/django.po | 52 + .../redirects/locale/sr/LC_MESSAGES/django.mo | Bin 0 -> 1367 bytes .../redirects/locale/sr/LC_MESSAGES/django.po | 53 + .../locale/sr_Latn/LC_MESSAGES/django.mo | Bin 0 -> 1210 bytes .../locale/sr_Latn/LC_MESSAGES/django.po | 52 + .../redirects/locale/sv/LC_MESSAGES/django.mo | Bin 0 -> 1134 bytes .../redirects/locale/sv/LC_MESSAGES/django.po | 53 + .../redirects/locale/sw/LC_MESSAGES/django.mo | Bin 0 -> 1165 bytes .../redirects/locale/sw/LC_MESSAGES/django.po | 51 + .../redirects/locale/ta/LC_MESSAGES/django.mo | Bin 0 -> 1502 bytes .../redirects/locale/ta/LC_MESSAGES/django.po | 49 + .../redirects/locale/te/LC_MESSAGES/django.mo | Bin 0 -> 467 bytes .../redirects/locale/te/LC_MESSAGES/django.po | 42 + .../redirects/locale/tg/LC_MESSAGES/django.mo | Bin 0 -> 782 bytes .../redirects/locale/tg/LC_MESSAGES/django.po | 45 + .../redirects/locale/th/LC_MESSAGES/django.mo | Bin 0 -> 1331 bytes .../redirects/locale/th/LC_MESSAGES/django.po | 46 + .../redirects/locale/tk/LC_MESSAGES/django.mo | Bin 0 -> 1155 bytes .../redirects/locale/tk/LC_MESSAGES/django.po | 50 + .../redirects/locale/tr/LC_MESSAGES/django.mo | Bin 0 -> 1133 bytes .../redirects/locale/tr/LC_MESSAGES/django.po | 53 + .../redirects/locale/tt/LC_MESSAGES/django.mo | Bin 0 -> 1178 bytes .../redirects/locale/tt/LC_MESSAGES/django.po | 48 + .../locale/udm/LC_MESSAGES/django.mo | Bin 0 -> 462 bytes .../locale/udm/LC_MESSAGES/django.po | 42 + .../redirects/locale/ug/LC_MESSAGES/django.mo | Bin 0 -> 1409 bytes .../redirects/locale/ug/LC_MESSAGES/django.po | 50 + .../redirects/locale/uk/LC_MESSAGES/django.mo | Bin 0 -> 1569 bytes .../redirects/locale/uk/LC_MESSAGES/django.po | 56 + .../redirects/locale/ur/LC_MESSAGES/django.mo | Bin 0 -> 1138 bytes .../redirects/locale/ur/LC_MESSAGES/django.po | 46 + .../redirects/locale/uz/LC_MESSAGES/django.mo | Bin 0 -> 743 bytes .../redirects/locale/uz/LC_MESSAGES/django.po | 48 + .../redirects/locale/vi/LC_MESSAGES/django.mo | Bin 0 -> 1106 bytes .../redirects/locale/vi/LC_MESSAGES/django.po | 49 + .../locale/zh_Hans/LC_MESSAGES/django.mo | Bin 0 -> 1100 bytes .../locale/zh_Hans/LC_MESSAGES/django.po | 53 + .../locale/zh_Hant/LC_MESSAGES/django.mo | Bin 0 -> 1108 bytes .../locale/zh_Hant/LC_MESSAGES/django.po | 51 + .../django/contrib/redirects/middleware.py | 50 + .../redirects/migrations/0001_initial.py | 64 + .../0002_alter_redirect_new_path_help_text.py | 23 + .../contrib/redirects/migrations/__init__.py | 0 .../__pycache__/0001_initial.cpython-312.pyc | Bin 0 -> 1708 bytes ...edirect_new_path_help_text.cpython-312.pyc | Bin 0 -> 981 bytes .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 212 bytes .../django/contrib/redirects/models.py | 35 + .../django/contrib/sessions/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 200 bytes .../sessions/__pycache__/apps.cpython-312.pyc | Bin 0 -> 583 bytes .../__pycache__/base_session.cpython-312.pyc | Bin 0 -> 3043 bytes .../__pycache__/exceptions.cpython-312.pyc | Bin 0 -> 916 bytes .../__pycache__/middleware.cpython-312.pyc | Bin 0 -> 4178 bytes .../__pycache__/models.cpython-312.pyc | Bin 0 -> 2005 bytes .../__pycache__/serializers.cpython-312.pyc | Bin 0 -> 293 bytes .../django/contrib/sessions/apps.py | 7 + .../contrib/sessions/backends/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 209 bytes .../backends/__pycache__/base.cpython-312.pyc | Bin 0 -> 25971 bytes .../__pycache__/cache.cpython-312.pyc | Bin 0 -> 7217 bytes .../__pycache__/cached_db.cpython-312.pyc | Bin 0 -> 7220 bytes .../backends/__pycache__/db.cpython-312.pyc | Bin 0 -> 11101 bytes .../backends/__pycache__/file.cpython-312.pyc | Bin 0 -> 10195 bytes .../signed_cookies.cpython-312.pyc | Bin 0 -> 4883 bytes .../django/contrib/sessions/backends/base.py | 523 + .../django/contrib/sessions/backends/cache.py | 145 + .../contrib/sessions/backends/cached_db.py | 135 + .../django/contrib/sessions/backends/db.py | 198 + .../django/contrib/sessions/backends/file.py | 226 + .../sessions/backends/signed_cookies.py | 103 + .../django/contrib/sessions/base_session.py | 48 + .../django/contrib/sessions/exceptions.py | 19 + .../sessions/locale/af/LC_MESSAGES/django.mo | Bin 0 -> 717 bytes .../sessions/locale/af/LC_MESSAGES/django.po | 36 + .../sessions/locale/ar/LC_MESSAGES/django.mo | Bin 0 -> 846 bytes .../sessions/locale/ar/LC_MESSAGES/django.po | 37 + .../locale/ar_DZ/LC_MESSAGES/django.mo | Bin 0 -> 817 bytes .../locale/ar_DZ/LC_MESSAGES/django.po | 37 + .../sessions/locale/ast/LC_MESSAGES/django.mo | Bin 0 -> 702 bytes .../sessions/locale/ast/LC_MESSAGES/django.po | 36 + .../sessions/locale/az/LC_MESSAGES/django.mo | Bin 0 -> 731 bytes .../sessions/locale/az/LC_MESSAGES/django.po | 37 + .../sessions/locale/be/LC_MESSAGES/django.mo | Bin 0 -> 854 bytes .../sessions/locale/be/LC_MESSAGES/django.po | 38 + .../sessions/locale/bg/LC_MESSAGES/django.mo | Bin 0 -> 759 bytes .../sessions/locale/bg/LC_MESSAGES/django.po | 38 + .../sessions/locale/bn/LC_MESSAGES/django.mo | Bin 0 -> 762 bytes .../sessions/locale/bn/LC_MESSAGES/django.po | 36 + .../sessions/locale/br/LC_MESSAGES/django.mo | Bin 0 -> 1027 bytes .../sessions/locale/br/LC_MESSAGES/django.po | 40 + .../sessions/locale/bs/LC_MESSAGES/django.mo | Bin 0 -> 759 bytes .../sessions/locale/bs/LC_MESSAGES/django.po | 37 + .../sessions/locale/ca/LC_MESSAGES/django.mo | Bin 0 -> 738 bytes .../sessions/locale/ca/LC_MESSAGES/django.po | 37 + .../sessions/locale/ckb/LC_MESSAGES/django.mo | Bin 0 -> 741 bytes .../sessions/locale/ckb/LC_MESSAGES/django.po | 36 + .../sessions/locale/cs/LC_MESSAGES/django.mo | Bin 0 -> 759 bytes .../sessions/locale/cs/LC_MESSAGES/django.po | 37 + .../sessions/locale/cy/LC_MESSAGES/django.mo | Bin 0 -> 774 bytes .../sessions/locale/cy/LC_MESSAGES/django.po | 37 + .../sessions/locale/da/LC_MESSAGES/django.mo | Bin 0 -> 681 bytes .../sessions/locale/da/LC_MESSAGES/django.po | 36 + .../sessions/locale/de/LC_MESSAGES/django.mo | Bin 0 -> 721 bytes .../sessions/locale/de/LC_MESSAGES/django.po | 35 + .../sessions/locale/dsb/LC_MESSAGES/django.mo | Bin 0 -> 810 bytes .../sessions/locale/dsb/LC_MESSAGES/django.po | 37 + .../sessions/locale/el/LC_MESSAGES/django.mo | Bin 0 -> 809 bytes .../sessions/locale/el/LC_MESSAGES/django.po | 36 + .../sessions/locale/en/LC_MESSAGES/django.mo | Bin 0 -> 356 bytes .../sessions/locale/en/LC_MESSAGES/django.po | 38 + .../locale/en_AU/LC_MESSAGES/django.mo | Bin 0 -> 693 bytes .../locale/en_AU/LC_MESSAGES/django.po | 36 + .../locale/en_GB/LC_MESSAGES/django.mo | Bin 0 -> 707 bytes .../locale/en_GB/LC_MESSAGES/django.po | 36 + .../sessions/locale/eo/LC_MESSAGES/django.mo | Bin 0 -> 727 bytes .../sessions/locale/eo/LC_MESSAGES/django.po | 37 + .../sessions/locale/es/LC_MESSAGES/django.mo | Bin 0 -> 734 bytes .../sessions/locale/es/LC_MESSAGES/django.po | 37 + .../locale/es_AR/LC_MESSAGES/django.mo | Bin 0 -> 694 bytes .../locale/es_AR/LC_MESSAGES/django.po | 37 + .../locale/es_CO/LC_MESSAGES/django.mo | Bin 0 -> 754 bytes .../locale/es_CO/LC_MESSAGES/django.po | 36 + .../locale/es_MX/LC_MESSAGES/django.mo | Bin 0 -> 756 bytes .../locale/es_MX/LC_MESSAGES/django.po | 37 + .../locale/es_VE/LC_MESSAGES/django.mo | Bin 0 -> 486 bytes .../locale/es_VE/LC_MESSAGES/django.po | 35 + .../sessions/locale/et/LC_MESSAGES/django.mo | Bin 0 -> 737 bytes .../sessions/locale/et/LC_MESSAGES/django.po | 37 + .../sessions/locale/eu/LC_MESSAGES/django.mo | Bin 0 -> 728 bytes .../sessions/locale/eu/LC_MESSAGES/django.po | 36 + .../sessions/locale/fa/LC_MESSAGES/django.mo | Bin 0 -> 755 bytes .../sessions/locale/fa/LC_MESSAGES/django.po | 37 + .../sessions/locale/fi/LC_MESSAGES/django.mo | Bin 0 -> 721 bytes .../sessions/locale/fi/LC_MESSAGES/django.po | 37 + .../sessions/locale/fr/LC_MESSAGES/django.mo | Bin 0 -> 692 bytes .../sessions/locale/fr/LC_MESSAGES/django.po | 36 + .../sessions/locale/fy/LC_MESSAGES/django.mo | Bin 0 -> 476 bytes .../sessions/locale/fy/LC_MESSAGES/django.po | 35 + .../sessions/locale/ga/LC_MESSAGES/django.mo | Bin 0 -> 747 bytes .../sessions/locale/ga/LC_MESSAGES/django.po | 37 + .../sessions/locale/gd/LC_MESSAGES/django.mo | Bin 0 -> 791 bytes .../sessions/locale/gd/LC_MESSAGES/django.po | 37 + .../sessions/locale/gl/LC_MESSAGES/django.mo | Bin 0 -> 692 bytes .../sessions/locale/gl/LC_MESSAGES/django.po | 38 + .../sessions/locale/he/LC_MESSAGES/django.mo | Bin 0 -> 809 bytes .../sessions/locale/he/LC_MESSAGES/django.po | 37 + .../sessions/locale/hi/LC_MESSAGES/django.mo | Bin 0 -> 759 bytes .../sessions/locale/hi/LC_MESSAGES/django.po | 36 + .../sessions/locale/hr/LC_MESSAGES/django.mo | Bin 0 -> 819 bytes .../sessions/locale/hr/LC_MESSAGES/django.po | 38 + .../sessions/locale/hsb/LC_MESSAGES/django.mo | Bin 0 -> 805 bytes .../sessions/locale/hsb/LC_MESSAGES/django.po | 37 + .../sessions/locale/hu/LC_MESSAGES/django.mo | Bin 0 -> 727 bytes .../sessions/locale/hu/LC_MESSAGES/django.po | 37 + .../sessions/locale/hy/LC_MESSAGES/django.mo | Bin 0 -> 815 bytes .../sessions/locale/hy/LC_MESSAGES/django.po | 35 + .../sessions/locale/ia/LC_MESSAGES/django.mo | Bin 0 -> 744 bytes .../sessions/locale/ia/LC_MESSAGES/django.po | 36 + .../sessions/locale/id/LC_MESSAGES/django.mo | Bin 0 -> 705 bytes .../sessions/locale/id/LC_MESSAGES/django.po | 38 + .../sessions/locale/io/LC_MESSAGES/django.mo | Bin 0 -> 683 bytes .../sessions/locale/io/LC_MESSAGES/django.po | 35 + .../sessions/locale/is/LC_MESSAGES/django.mo | Bin 0 -> 706 bytes .../sessions/locale/is/LC_MESSAGES/django.po | 36 + .../sessions/locale/it/LC_MESSAGES/django.mo | Bin 0 -> 726 bytes .../sessions/locale/it/LC_MESSAGES/django.po | 37 + .../sessions/locale/ja/LC_MESSAGES/django.mo | Bin 0 -> 757 bytes .../sessions/locale/ja/LC_MESSAGES/django.po | 37 + .../sessions/locale/ka/LC_MESSAGES/django.mo | Bin 0 -> 803 bytes .../sessions/locale/ka/LC_MESSAGES/django.po | 36 + .../sessions/locale/kab/LC_MESSAGES/django.mo | Bin 0 -> 743 bytes .../sessions/locale/kab/LC_MESSAGES/django.po | 35 + .../sessions/locale/kk/LC_MESSAGES/django.mo | Bin 0 -> 810 bytes .../sessions/locale/kk/LC_MESSAGES/django.po | 37 + .../sessions/locale/km/LC_MESSAGES/django.mo | Bin 0 -> 929 bytes .../sessions/locale/km/LC_MESSAGES/django.po | 35 + .../sessions/locale/kn/LC_MESSAGES/django.mo | Bin 0 -> 810 bytes .../sessions/locale/kn/LC_MESSAGES/django.po | 37 + .../sessions/locale/ko/LC_MESSAGES/django.mo | Bin 0 -> 700 bytes .../sessions/locale/ko/LC_MESSAGES/django.po | 36 + .../sessions/locale/ky/LC_MESSAGES/django.mo | Bin 0 -> 742 bytes .../sessions/locale/ky/LC_MESSAGES/django.po | 35 + .../sessions/locale/lb/LC_MESSAGES/django.mo | Bin 0 -> 474 bytes .../sessions/locale/lb/LC_MESSAGES/django.po | 35 + .../sessions/locale/lt/LC_MESSAGES/django.mo | Bin 0 -> 786 bytes .../sessions/locale/lt/LC_MESSAGES/django.po | 39 + .../sessions/locale/lv/LC_MESSAGES/django.mo | Bin 0 -> 753 bytes .../sessions/locale/lv/LC_MESSAGES/django.po | 38 + .../sessions/locale/mk/LC_MESSAGES/django.mo | Bin 0 -> 816 bytes .../sessions/locale/mk/LC_MESSAGES/django.po | 37 + .../sessions/locale/ml/LC_MESSAGES/django.mo | Bin 0 -> 854 bytes .../sessions/locale/ml/LC_MESSAGES/django.po | 37 + .../sessions/locale/mn/LC_MESSAGES/django.mo | Bin 0 -> 784 bytes .../sessions/locale/mn/LC_MESSAGES/django.po | 38 + .../sessions/locale/mr/LC_MESSAGES/django.mo | Bin 0 -> 768 bytes .../sessions/locale/mr/LC_MESSAGES/django.po | 36 + .../sessions/locale/ms/LC_MESSAGES/django.mo | Bin 0 -> 649 bytes .../sessions/locale/ms/LC_MESSAGES/django.po | 35 + .../sessions/locale/my/LC_MESSAGES/django.mo | Bin 0 -> 872 bytes .../sessions/locale/my/LC_MESSAGES/django.po | 36 + .../sessions/locale/nb/LC_MESSAGES/django.mo | Bin 0 -> 717 bytes .../sessions/locale/nb/LC_MESSAGES/django.po | 38 + .../sessions/locale/ne/LC_MESSAGES/django.mo | Bin 0 -> 802 bytes .../sessions/locale/ne/LC_MESSAGES/django.po | 36 + .../sessions/locale/nl/LC_MESSAGES/django.mo | Bin 0 -> 692 bytes .../sessions/locale/nl/LC_MESSAGES/django.po | 36 + .../sessions/locale/nn/LC_MESSAGES/django.mo | Bin 0 -> 667 bytes .../sessions/locale/nn/LC_MESSAGES/django.po | 37 + .../sessions/locale/os/LC_MESSAGES/django.mo | Bin 0 -> 732 bytes .../sessions/locale/os/LC_MESSAGES/django.po | 36 + .../sessions/locale/pa/LC_MESSAGES/django.mo | Bin 0 -> 771 bytes .../sessions/locale/pa/LC_MESSAGES/django.po | 36 + .../sessions/locale/pl/LC_MESSAGES/django.mo | Bin 0 -> 828 bytes .../sessions/locale/pl/LC_MESSAGES/django.po | 39 + .../sessions/locale/pt/LC_MESSAGES/django.mo | Bin 0 -> 738 bytes .../sessions/locale/pt/LC_MESSAGES/django.po | 37 + .../locale/pt_BR/LC_MESSAGES/django.mo | Bin 0 -> 757 bytes .../locale/pt_BR/LC_MESSAGES/django.po | 37 + .../sessions/locale/ro/LC_MESSAGES/django.mo | Bin 0 -> 776 bytes .../sessions/locale/ro/LC_MESSAGES/django.po | 39 + .../sessions/locale/ru/LC_MESSAGES/django.mo | Bin 0 -> 913 bytes .../sessions/locale/ru/LC_MESSAGES/django.po | 39 + .../sessions/locale/sk/LC_MESSAGES/django.mo | Bin 0 -> 766 bytes .../sessions/locale/sk/LC_MESSAGES/django.po | 37 + .../sessions/locale/sl/LC_MESSAGES/django.mo | Bin 0 -> 770 bytes .../sessions/locale/sl/LC_MESSAGES/django.po | 38 + .../sessions/locale/sq/LC_MESSAGES/django.mo | Bin 0 -> 683 bytes .../sessions/locale/sq/LC_MESSAGES/django.po | 36 + .../sessions/locale/sr/LC_MESSAGES/django.mo | Bin 0 -> 855 bytes .../sessions/locale/sr/LC_MESSAGES/django.po | 38 + .../locale/sr_Latn/LC_MESSAGES/django.mo | Bin 0 -> 757 bytes .../locale/sr_Latn/LC_MESSAGES/django.po | 38 + .../sessions/locale/sv/LC_MESSAGES/django.mo | Bin 0 -> 707 bytes .../sessions/locale/sv/LC_MESSAGES/django.po | 37 + .../sessions/locale/sw/LC_MESSAGES/django.mo | Bin 0 -> 743 bytes .../sessions/locale/sw/LC_MESSAGES/django.po | 36 + .../sessions/locale/ta/LC_MESSAGES/django.mo | Bin 0 -> 801 bytes .../sessions/locale/ta/LC_MESSAGES/django.po | 35 + .../sessions/locale/te/LC_MESSAGES/django.mo | Bin 0 -> 786 bytes .../sessions/locale/te/LC_MESSAGES/django.po | 36 + .../sessions/locale/tg/LC_MESSAGES/django.mo | Bin 0 -> 747 bytes .../sessions/locale/tg/LC_MESSAGES/django.po | 35 + .../sessions/locale/th/LC_MESSAGES/django.mo | Bin 0 -> 814 bytes .../sessions/locale/th/LC_MESSAGES/django.po | 36 + .../sessions/locale/tk/LC_MESSAGES/django.mo | Bin 0 -> 699 bytes .../sessions/locale/tk/LC_MESSAGES/django.po | 36 + .../sessions/locale/tr/LC_MESSAGES/django.mo | Bin 0 -> 685 bytes .../sessions/locale/tr/LC_MESSAGES/django.po | 37 + .../sessions/locale/tt/LC_MESSAGES/django.mo | Bin 0 -> 806 bytes .../sessions/locale/tt/LC_MESSAGES/django.po | 36 + .../sessions/locale/udm/LC_MESSAGES/django.mo | Bin 0 -> 462 bytes .../sessions/locale/udm/LC_MESSAGES/django.po | 35 + .../sessions/locale/ug/LC_MESSAGES/django.mo | Bin 0 -> 748 bytes .../sessions/locale/ug/LC_MESSAGES/django.po | 34 + .../sessions/locale/uk/LC_MESSAGES/django.mo | Bin 0 -> 841 bytes .../sessions/locale/uk/LC_MESSAGES/django.po | 40 + .../sessions/locale/ur/LC_MESSAGES/django.mo | Bin 0 -> 729 bytes .../sessions/locale/ur/LC_MESSAGES/django.po | 35 + .../sessions/locale/uz/LC_MESSAGES/django.mo | Bin 0 -> 744 bytes .../sessions/locale/uz/LC_MESSAGES/django.po | 35 + .../sessions/locale/vi/LC_MESSAGES/django.mo | Bin 0 -> 679 bytes .../sessions/locale/vi/LC_MESSAGES/django.po | 38 + .../locale/zh_Hans/LC_MESSAGES/django.mo | Bin 0 -> 722 bytes .../locale/zh_Hans/LC_MESSAGES/django.po | 37 + .../locale/zh_Hant/LC_MESSAGES/django.mo | Bin 0 -> 676 bytes .../locale/zh_Hant/LC_MESSAGES/django.po | 38 + .../contrib/sessions/management/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 211 bytes .../sessions/management/commands/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 220 bytes .../__pycache__/clearsessions.cpython-312.pyc | Bin 0 -> 1252 bytes .../management/commands/clearsessions.py | 21 + .../django/contrib/sessions/middleware.py | 77 + .../sessions/migrations/0001_initial.py | 37 + .../contrib/sessions/migrations/__init__.py | 0 .../__pycache__/0001_initial.cpython-312.pyc | Bin 0 -> 1418 bytes .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 211 bytes .../django/contrib/sessions/models.py | 35 + .../django/contrib/sessions/serializers.py | 3 + .../django/contrib/sitemaps/__init__.py | 200 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 8335 bytes .../sitemaps/__pycache__/apps.cpython-312.pyc | Bin 0 -> 642 bytes .../__pycache__/views.cpython-312.pyc | Bin 0 -> 5270 bytes .../django/contrib/sitemaps/apps.py | 8 + .../contrib/sitemaps/templates/sitemap.xml | 16 + .../sitemaps/templates/sitemap_index.xml | 13 + .../django/contrib/sitemaps/views.py | 140 + .../django/contrib/sites/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 197 bytes .../sites/__pycache__/admin.cpython-312.pyc | Bin 0 -> 652 bytes .../sites/__pycache__/apps.cpython-312.pyc | Bin 0 -> 1229 bytes .../sites/__pycache__/checks.cpython-312.pyc | Bin 0 -> 761 bytes .../__pycache__/management.cpython-312.pyc | Bin 0 -> 1908 bytes .../__pycache__/managers.cpython-312.pyc | Bin 0 -> 3343 bytes .../__pycache__/middleware.cpython-312.pyc | Bin 0 -> 802 bytes .../sites/__pycache__/models.cpython-312.pyc | Bin 0 -> 5810 bytes .../__pycache__/requests.cpython-312.pyc | Bin 0 -> 1437 bytes .../__pycache__/shortcuts.cpython-312.pyc | Bin 0 -> 829 bytes .../django/contrib/sites/admin.py | 8 + .../django/contrib/sites/apps.py | 17 + .../django/contrib/sites/checks.py | 14 + .../sites/locale/af/LC_MESSAGES/django.mo | Bin 0 -> 786 bytes .../sites/locale/af/LC_MESSAGES/django.po | 36 + .../sites/locale/ar/LC_MESSAGES/django.mo | Bin 0 -> 947 bytes .../sites/locale/ar/LC_MESSAGES/django.po | 38 + .../sites/locale/ar_DZ/LC_MESSAGES/django.mo | Bin 0 -> 918 bytes .../sites/locale/ar_DZ/LC_MESSAGES/django.po | 37 + .../sites/locale/ast/LC_MESSAGES/django.mo | Bin 0 -> 774 bytes .../sites/locale/ast/LC_MESSAGES/django.po | 36 + .../sites/locale/az/LC_MESSAGES/django.mo | Bin 0 -> 773 bytes .../sites/locale/az/LC_MESSAGES/django.po | 37 + .../sites/locale/be/LC_MESSAGES/django.mo | Bin 0 -> 983 bytes .../sites/locale/be/LC_MESSAGES/django.po | 38 + .../sites/locale/bg/LC_MESSAGES/django.mo | Bin 0 -> 904 bytes .../sites/locale/bg/LC_MESSAGES/django.po | 38 + .../sites/locale/bn/LC_MESSAGES/django.mo | Bin 0 -> 925 bytes .../sites/locale/bn/LC_MESSAGES/django.po | 37 + .../sites/locale/br/LC_MESSAGES/django.mo | Bin 0 -> 1107 bytes .../sites/locale/br/LC_MESSAGES/django.po | 40 + .../sites/locale/bs/LC_MESSAGES/django.mo | Bin 0 -> 692 bytes .../sites/locale/bs/LC_MESSAGES/django.po | 37 + .../sites/locale/ca/LC_MESSAGES/django.mo | Bin 0 -> 791 bytes .../sites/locale/ca/LC_MESSAGES/django.po | 38 + .../sites/locale/ckb/LC_MESSAGES/django.mo | Bin 0 -> 843 bytes .../sites/locale/ckb/LC_MESSAGES/django.po | 36 + .../sites/locale/cs/LC_MESSAGES/django.mo | Bin 0 -> 827 bytes .../sites/locale/cs/LC_MESSAGES/django.po | 37 + .../sites/locale/cy/LC_MESSAGES/django.mo | Bin 0 -> 835 bytes .../sites/locale/cy/LC_MESSAGES/django.po | 37 + .../sites/locale/da/LC_MESSAGES/django.mo | Bin 0 -> 753 bytes .../sites/locale/da/LC_MESSAGES/django.po | 36 + .../sites/locale/de/LC_MESSAGES/django.mo | Bin 0 -> 792 bytes .../sites/locale/de/LC_MESSAGES/django.po | 36 + .../sites/locale/dsb/LC_MESSAGES/django.mo | Bin 0 -> 868 bytes .../sites/locale/dsb/LC_MESSAGES/django.po | 37 + .../sites/locale/el/LC_MESSAGES/django.mo | Bin 0 -> 878 bytes .../sites/locale/el/LC_MESSAGES/django.po | 38 + .../sites/locale/en/LC_MESSAGES/django.mo | Bin 0 -> 356 bytes .../sites/locale/en/LC_MESSAGES/django.po | 38 + .../sites/locale/en_AU/LC_MESSAGES/django.mo | Bin 0 -> 753 bytes .../sites/locale/en_AU/LC_MESSAGES/django.po | 36 + .../sites/locale/en_GB/LC_MESSAGES/django.mo | Bin 0 -> 639 bytes .../sites/locale/en_GB/LC_MESSAGES/django.po | 36 + .../sites/locale/eo/LC_MESSAGES/django.mo | Bin 0 -> 792 bytes .../sites/locale/eo/LC_MESSAGES/django.po | 38 + .../sites/locale/es/LC_MESSAGES/django.mo | Bin 0 -> 804 bytes .../sites/locale/es/LC_MESSAGES/django.po | 39 + .../sites/locale/es_AR/LC_MESSAGES/django.mo | Bin 0 -> 776 bytes .../sites/locale/es_AR/LC_MESSAGES/django.po | 38 + .../sites/locale/es_CO/LC_MESSAGES/django.mo | Bin 0 -> 825 bytes .../sites/locale/es_CO/LC_MESSAGES/django.po | 36 + .../sites/locale/es_MX/LC_MESSAGES/django.mo | Bin 0 -> 809 bytes .../sites/locale/es_MX/LC_MESSAGES/django.po | 38 + .../sites/locale/es_VE/LC_MESSAGES/django.mo | Bin 0 -> 486 bytes .../sites/locale/es_VE/LC_MESSAGES/django.po | 35 + .../sites/locale/et/LC_MESSAGES/django.mo | Bin 0 -> 788 bytes .../sites/locale/et/LC_MESSAGES/django.po | 38 + .../sites/locale/eu/LC_MESSAGES/django.mo | Bin 0 -> 807 bytes .../sites/locale/eu/LC_MESSAGES/django.po | 37 + .../sites/locale/fa/LC_MESSAGES/django.mo | Bin 0 -> 872 bytes .../sites/locale/fa/LC_MESSAGES/django.po | 38 + .../sites/locale/fi/LC_MESSAGES/django.mo | Bin 0 -> 786 bytes .../sites/locale/fi/LC_MESSAGES/django.po | 37 + .../sites/locale/fr/LC_MESSAGES/django.mo | Bin 0 -> 756 bytes .../sites/locale/fr/LC_MESSAGES/django.po | 37 + .../sites/locale/fy/LC_MESSAGES/django.mo | Bin 0 -> 476 bytes .../sites/locale/fy/LC_MESSAGES/django.po | 35 + .../sites/locale/ga/LC_MESSAGES/django.mo | Bin 0 -> 683 bytes .../sites/locale/ga/LC_MESSAGES/django.po | 37 + .../sites/locale/gd/LC_MESSAGES/django.mo | Bin 0 -> 858 bytes .../sites/locale/gd/LC_MESSAGES/django.po | 37 + .../sites/locale/gl/LC_MESSAGES/django.mo | Bin 0 -> 728 bytes .../sites/locale/gl/LC_MESSAGES/django.po | 38 + .../sites/locale/he/LC_MESSAGES/django.mo | Bin 0 -> 820 bytes .../sites/locale/he/LC_MESSAGES/django.po | 37 + .../sites/locale/hi/LC_MESSAGES/django.mo | Bin 0 -> 665 bytes .../sites/locale/hi/LC_MESSAGES/django.po | 35 + .../sites/locale/hr/LC_MESSAGES/django.mo | Bin 0 -> 876 bytes .../sites/locale/hr/LC_MESSAGES/django.po | 38 + .../sites/locale/hsb/LC_MESSAGES/django.mo | Bin 0 -> 863 bytes .../sites/locale/hsb/LC_MESSAGES/django.po | 37 + .../sites/locale/hu/LC_MESSAGES/django.mo | Bin 0 -> 796 bytes .../sites/locale/hu/LC_MESSAGES/django.po | 37 + .../sites/locale/hy/LC_MESSAGES/django.mo | Bin 0 -> 906 bytes .../sites/locale/hy/LC_MESSAGES/django.po | 36 + .../sites/locale/ia/LC_MESSAGES/django.mo | Bin 0 -> 809 bytes .../sites/locale/ia/LC_MESSAGES/django.po | 36 + .../sites/locale/id/LC_MESSAGES/django.mo | Bin 0 -> 791 bytes .../sites/locale/id/LC_MESSAGES/django.po | 38 + .../sites/locale/io/LC_MESSAGES/django.mo | Bin 0 -> 760 bytes .../sites/locale/io/LC_MESSAGES/django.po | 35 + .../sites/locale/is/LC_MESSAGES/django.mo | Bin 0 -> 812 bytes .../sites/locale/is/LC_MESSAGES/django.po | 37 + .../sites/locale/it/LC_MESSAGES/django.mo | Bin 0 -> 795 bytes .../sites/locale/it/LC_MESSAGES/django.po | 38 + .../sites/locale/ja/LC_MESSAGES/django.mo | Bin 0 -> 814 bytes .../sites/locale/ja/LC_MESSAGES/django.po | 37 + .../sites/locale/ka/LC_MESSAGES/django.mo | Bin 0 -> 993 bytes .../sites/locale/ka/LC_MESSAGES/django.po | 37 + .../sites/locale/kab/LC_MESSAGES/django.mo | Bin 0 -> 808 bytes .../sites/locale/kab/LC_MESSAGES/django.po | 35 + .../sites/locale/kk/LC_MESSAGES/django.mo | Bin 0 -> 895 bytes .../sites/locale/kk/LC_MESSAGES/django.po | 36 + .../sites/locale/km/LC_MESSAGES/django.mo | Bin 0 -> 701 bytes .../sites/locale/km/LC_MESSAGES/django.po | 35 + .../sites/locale/kn/LC_MESSAGES/django.mo | Bin 0 -> 673 bytes .../sites/locale/kn/LC_MESSAGES/django.po | 37 + .../sites/locale/ko/LC_MESSAGES/django.mo | Bin 0 -> 807 bytes .../sites/locale/ko/LC_MESSAGES/django.po | 38 + .../sites/locale/ky/LC_MESSAGES/django.mo | Bin 0 -> 811 bytes .../sites/locale/ky/LC_MESSAGES/django.po | 34 + .../sites/locale/lb/LC_MESSAGES/django.mo | Bin 0 -> 474 bytes .../sites/locale/lb/LC_MESSAGES/django.po | 35 + .../sites/locale/lt/LC_MESSAGES/django.mo | Bin 0 -> 869 bytes .../sites/locale/lt/LC_MESSAGES/django.po | 41 + .../sites/locale/lv/LC_MESSAGES/django.mo | Bin 0 -> 823 bytes .../sites/locale/lv/LC_MESSAGES/django.po | 39 + .../sites/locale/mk/LC_MESSAGES/django.mo | Bin 0 -> 885 bytes .../sites/locale/mk/LC_MESSAGES/django.po | 37 + .../sites/locale/ml/LC_MESSAGES/django.mo | Bin 0 -> 1007 bytes .../sites/locale/ml/LC_MESSAGES/django.po | 37 + .../sites/locale/mn/LC_MESSAGES/django.mo | Bin 0 -> 867 bytes .../sites/locale/mn/LC_MESSAGES/django.po | 39 + .../sites/locale/mr/LC_MESSAGES/django.mo | Bin 0 -> 884 bytes .../sites/locale/mr/LC_MESSAGES/django.po | 36 + .../sites/locale/ms/LC_MESSAGES/django.mo | Bin 0 -> 727 bytes .../sites/locale/ms/LC_MESSAGES/django.po | 35 + .../sites/locale/my/LC_MESSAGES/django.mo | Bin 0 -> 961 bytes .../sites/locale/my/LC_MESSAGES/django.po | 36 + .../sites/locale/nb/LC_MESSAGES/django.mo | Bin 0 -> 793 bytes .../sites/locale/nb/LC_MESSAGES/django.po | 38 + .../sites/locale/ne/LC_MESSAGES/django.mo | Bin 0 -> 863 bytes .../sites/locale/ne/LC_MESSAGES/django.po | 36 + .../sites/locale/nl/LC_MESSAGES/django.mo | Bin 0 -> 735 bytes .../sites/locale/nl/LC_MESSAGES/django.po | 38 + .../sites/locale/nn/LC_MESSAGES/django.mo | Bin 0 -> 731 bytes .../sites/locale/nn/LC_MESSAGES/django.po | 37 + .../sites/locale/os/LC_MESSAGES/django.mo | Bin 0 -> 806 bytes .../sites/locale/os/LC_MESSAGES/django.po | 36 + .../sites/locale/pa/LC_MESSAGES/django.mo | Bin 0 -> 684 bytes .../sites/locale/pa/LC_MESSAGES/django.po | 36 + .../sites/locale/pl/LC_MESSAGES/django.mo | Bin 0 -> 903 bytes .../sites/locale/pl/LC_MESSAGES/django.po | 40 + .../sites/locale/pt/LC_MESSAGES/django.mo | Bin 0 -> 797 bytes .../sites/locale/pt/LC_MESSAGES/django.po | 38 + .../sites/locale/pt_BR/LC_MESSAGES/django.mo | Bin 0 -> 824 bytes .../sites/locale/pt_BR/LC_MESSAGES/django.po | 38 + .../sites/locale/ro/LC_MESSAGES/django.mo | Bin 0 -> 857 bytes .../sites/locale/ro/LC_MESSAGES/django.po | 40 + .../sites/locale/ru/LC_MESSAGES/django.mo | Bin 0 -> 1016 bytes .../sites/locale/ru/LC_MESSAGES/django.po | 41 + .../sites/locale/sk/LC_MESSAGES/django.mo | Bin 0 -> 822 bytes .../sites/locale/sk/LC_MESSAGES/django.po | 38 + .../sites/locale/sl/LC_MESSAGES/django.mo | Bin 0 -> 845 bytes .../sites/locale/sl/LC_MESSAGES/django.po | 39 + .../sites/locale/sq/LC_MESSAGES/django.mo | Bin 0 -> 769 bytes .../sites/locale/sq/LC_MESSAGES/django.po | 36 + .../sites/locale/sr/LC_MESSAGES/django.mo | Bin 0 -> 935 bytes .../sites/locale/sr/LC_MESSAGES/django.po | 38 + .../locale/sr_Latn/LC_MESSAGES/django.mo | Bin 0 -> 815 bytes .../locale/sr_Latn/LC_MESSAGES/django.po | 38 + .../sites/locale/sv/LC_MESSAGES/django.mo | Bin 0 -> 768 bytes .../sites/locale/sv/LC_MESSAGES/django.po | 39 + .../sites/locale/sw/LC_MESSAGES/django.mo | Bin 0 -> 781 bytes .../sites/locale/sw/LC_MESSAGES/django.po | 36 + .../sites/locale/ta/LC_MESSAGES/django.mo | Bin 0 -> 714 bytes .../sites/locale/ta/LC_MESSAGES/django.po | 35 + .../sites/locale/te/LC_MESSAGES/django.mo | Bin 0 -> 687 bytes .../sites/locale/te/LC_MESSAGES/django.po | 35 + .../sites/locale/tg/LC_MESSAGES/django.mo | Bin 0 -> 863 bytes .../sites/locale/tg/LC_MESSAGES/django.po | 35 + .../sites/locale/th/LC_MESSAGES/django.mo | Bin 0 -> 898 bytes .../sites/locale/th/LC_MESSAGES/django.po | 36 + .../sites/locale/tk/LC_MESSAGES/django.mo | Bin 0 -> 755 bytes .../sites/locale/tk/LC_MESSAGES/django.po | 36 + .../sites/locale/tr/LC_MESSAGES/django.mo | Bin 0 -> 758 bytes .../sites/locale/tr/LC_MESSAGES/django.po | 39 + .../sites/locale/tt/LC_MESSAGES/django.mo | Bin 0 -> 706 bytes .../sites/locale/tt/LC_MESSAGES/django.po | 36 + .../sites/locale/udm/LC_MESSAGES/django.mo | Bin 0 -> 462 bytes .../sites/locale/udm/LC_MESSAGES/django.po | 35 + .../sites/locale/ug/LC_MESSAGES/django.mo | Bin 0 -> 868 bytes .../sites/locale/ug/LC_MESSAGES/django.po | 35 + .../sites/locale/uk/LC_MESSAGES/django.mo | Bin 0 -> 960 bytes .../sites/locale/uk/LC_MESSAGES/django.po | 41 + .../sites/locale/ur/LC_MESSAGES/django.mo | Bin 0 -> 654 bytes .../sites/locale/ur/LC_MESSAGES/django.po | 35 + .../sites/locale/uz/LC_MESSAGES/django.mo | Bin 0 -> 799 bytes .../sites/locale/uz/LC_MESSAGES/django.po | 35 + .../sites/locale/vi/LC_MESSAGES/django.mo | Bin 0 -> 762 bytes .../sites/locale/vi/LC_MESSAGES/django.po | 38 + .../locale/zh_Hans/LC_MESSAGES/django.mo | Bin 0 -> 779 bytes .../locale/zh_Hans/LC_MESSAGES/django.po | 37 + .../locale/zh_Hant/LC_MESSAGES/django.mo | Bin 0 -> 736 bytes .../locale/zh_Hant/LC_MESSAGES/django.po | 40 + .../django/contrib/sites/management.py | 47 + .../django/contrib/sites/managers.py | 65 + .../django/contrib/sites/middleware.py | 12 + .../contrib/sites/migrations/0001_initial.py | 43 + .../migrations/0002_alter_domain_unique.py | 21 + .../contrib/sites/migrations/__init__.py | 0 .../__pycache__/0001_initial.cpython-312.pyc | Bin 0 -> 1505 bytes .../0002_alter_domain_unique.cpython-312.pyc | Bin 0 -> 1043 bytes .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 208 bytes .../django/contrib/sites/models.py | 120 + .../django/contrib/sites/requests.py | 20 + .../django/contrib/sites/shortcuts.py | 18 + .../django/contrib/staticfiles/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 203 bytes .../__pycache__/apps.cpython-312.pyc | Bin 0 -> 1195 bytes .../__pycache__/checks.cpython-312.pyc | Bin 0 -> 1343 bytes .../__pycache__/finders.cpython-312.pyc | Bin 0 -> 14186 bytes .../__pycache__/handlers.cpython-312.pyc | Bin 0 -> 6663 bytes .../__pycache__/storage.cpython-312.pyc | Bin 0 -> 21336 bytes .../__pycache__/testing.cpython-312.pyc | Bin 0 -> 828 bytes .../__pycache__/urls.cpython-312.pyc | Bin 0 -> 810 bytes .../__pycache__/utils.cpython-312.pyc | Bin 0 -> 3036 bytes .../__pycache__/views.cpython-312.pyc | Bin 0 -> 1851 bytes .../django/contrib/staticfiles/apps.py | 14 + .../django/contrib/staticfiles/checks.py | 29 + .../django/contrib/staticfiles/finders.py | 326 + .../django/contrib/staticfiles/handlers.py | 115 + .../staticfiles/management/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 214 bytes .../management/commands/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 223 bytes .../__pycache__/collectstatic.cpython-312.pyc | Bin 0 -> 15662 bytes .../__pycache__/findstatic.cpython-312.pyc | Bin 0 -> 2531 bytes .../__pycache__/runserver.cpython-312.pyc | Bin 0 -> 1898 bytes .../management/commands/collectstatic.py | 379 + .../management/commands/findstatic.py | 48 + .../management/commands/runserver.py | 36 + .../django/contrib/staticfiles/storage.py | 543 + .../django/contrib/staticfiles/testing.py | 13 + .../django/contrib/staticfiles/urls.py | 19 + .../django/contrib/staticfiles/utils.py | 71 + .../django/contrib/staticfiles/views.py | 40 + .../django/contrib/syndication/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 203 bytes .../__pycache__/apps.cpython-312.pyc | Bin 0 -> 596 bytes .../__pycache__/views.cpython-312.pyc | Bin 0 -> 10454 bytes .../django/contrib/syndication/apps.py | 7 + .../django/contrib/syndication/views.py | 234 + .../site-packages/django/core/__init__.py | 0 .../core/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 188 bytes .../core/__pycache__/asgi.cpython-312.pyc | Bin 0 -> 714 bytes .../__pycache__/exceptions.cpython-312.pyc | Bin 0 -> 10556 bytes .../__pycache__/paginator.cpython-312.pyc | Bin 0 -> 12147 bytes .../core/__pycache__/signals.cpython-312.pyc | Bin 0 -> 397 bytes .../core/__pycache__/signing.cpython-312.pyc | Bin 0 -> 12350 bytes .../__pycache__/validators.cpython-312.pyc | Bin 0 -> 28237 bytes .../core/__pycache__/wsgi.cpython-312.pyc | Bin 0 -> 716 bytes .../site-packages/django/core/asgi.py | 13 + .../django/core/cache/__init__.py | 67 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 2498 bytes .../cache/__pycache__/utils.cpython-312.pyc | Bin 0 -> 817 bytes .../django/core/cache/backends/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 203 bytes .../backends/__pycache__/base.cpython-312.pyc | Bin 0 -> 18669 bytes .../backends/__pycache__/db.cpython-312.pyc | Bin 0 -> 13473 bytes .../__pycache__/dummy.cpython-312.pyc | Bin 0 -> 2048 bytes .../__pycache__/filebased.cpython-312.pyc | Bin 0 -> 9657 bytes .../__pycache__/locmem.cpython-312.pyc | Bin 0 -> 7514 bytes .../__pycache__/memcached.cpython-312.pyc | Bin 0 -> 9525 bytes .../__pycache__/redis.cpython-312.pyc | Bin 0 -> 13384 bytes .../django/core/cache/backends/base.py | 405 + .../django/core/cache/backends/db.py | 293 + .../django/core/cache/backends/dummy.py | 34 + .../django/core/cache/backends/filebased.py | 170 + .../django/core/cache/backends/locmem.py | 117 + .../django/core/cache/backends/memcached.py | 188 + .../django/core/cache/backends/redis.py | 233 + .../site-packages/django/core/cache/utils.py | 12 + .../django/core/checks/__init__.py | 47 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 1166 bytes .../__pycache__/async_checks.cpython-312.pyc | Bin 0 -> 861 bytes .../checks/__pycache__/caches.cpython-312.pyc | Bin 0 -> 4107 bytes .../__pycache__/database.cpython-312.pyc | Bin 0 -> 782 bytes .../checks/__pycache__/files.cpython-312.pyc | Bin 0 -> 927 bytes .../__pycache__/messages.cpython-312.pyc | Bin 0 -> 4938 bytes .../__pycache__/model_checks.cpython-312.pyc | Bin 0 -> 10585 bytes .../__pycache__/registry.cpython-312.pyc | Bin 0 -> 4840 bytes .../__pycache__/templates.cpython-312.pyc | Bin 0 -> 745 bytes .../__pycache__/translation.cpython-312.pyc | Bin 0 -> 3466 bytes .../checks/__pycache__/urls.cpython-312.pyc | Bin 0 -> 6380 bytes .../django/core/checks/async_checks.py | 16 + .../django/core/checks/caches.py | 76 + .../core/checks/compatibility/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 209 bytes .../__pycache__/django_4_0.cpython-312.pyc | Bin 0 -> 1000 bytes .../core/checks/compatibility/django_4_0.py | 20 + .../django/core/checks/database.py | 14 + .../site-packages/django/core/checks/files.py | 19 + .../django/core/checks/messages.py | 81 + .../django/core/checks/model_checks.py | 227 + .../django/core/checks/registry.py | 117 + .../django/core/checks/security/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 204 bytes .../security/__pycache__/base.cpython-312.pyc | Bin 0 -> 11669 bytes .../security/__pycache__/csrf.cpython-312.pyc | Bin 0 -> 3057 bytes .../__pycache__/sessions.cpython-312.pyc | Bin 0 -> 3520 bytes .../django/core/checks/security/base.py | 283 + .../django/core/checks/security/csrf.py | 67 + .../django/core/checks/security/sessions.py | 99 + .../django/core/checks/templates.py | 12 + .../django/core/checks/translation.py | 66 + .../site-packages/django/core/checks/urls.py | 159 + .../site-packages/django/core/exceptions.py | 255 + .../django/core/files/__init__.py | 3 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 275 bytes .../files/__pycache__/base.cpython-312.pyc | Bin 0 -> 7872 bytes .../files/__pycache__/images.cpython-312.pyc | Bin 0 -> 3272 bytes .../files/__pycache__/locks.cpython-312.pyc | Bin 0 -> 4532 bytes .../files/__pycache__/move.cpython-312.pyc | Bin 0 -> 3164 bytes .../files/__pycache__/temp.cpython-312.pyc | Bin 0 -> 3479 bytes .../__pycache__/uploadedfile.cpython-312.pyc | Bin 0 -> 6187 bytes .../__pycache__/uploadhandler.cpython-312.pyc | Bin 0 -> 9770 bytes .../files/__pycache__/utils.cpython-312.pyc | Bin 0 -> 5813 bytes .../site-packages/django/core/files/base.py | 161 + .../site-packages/django/core/files/images.py | 89 + .../site-packages/django/core/files/locks.py | 128 + .../site-packages/django/core/files/move.py | 90 + .../django/core/files/storage/__init__.py | 27 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 1041 bytes .../storage/__pycache__/base.cpython-312.pyc | Bin 0 -> 8625 bytes .../__pycache__/filesystem.cpython-312.pyc | Bin 0 -> 12677 bytes .../__pycache__/handler.cpython-312.pyc | Bin 0 -> 2563 bytes .../__pycache__/memory.cpython-312.pyc | Bin 0 -> 15331 bytes .../__pycache__/mixins.cpython-312.pyc | Bin 0 -> 1435 bytes .../django/core/files/storage/base.py | 206 + .../django/core/files/storage/filesystem.py | 247 + .../django/core/files/storage/handler.py | 46 + .../django/core/files/storage/memory.py | 290 + .../django/core/files/storage/mixins.py | 15 + .../site-packages/django/core/files/temp.py | 79 + .../django/core/files/uploadedfile.py | 150 + .../django/core/files/uploadhandler.py | 252 + .../site-packages/django/core/files/utils.py | 77 + .../django/core/handlers/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 197 bytes .../handlers/__pycache__/asgi.cpython-312.pyc | Bin 0 -> 16714 bytes .../handlers/__pycache__/base.cpython-312.pyc | Bin 0 -> 13617 bytes .../__pycache__/exception.cpython-312.pyc | Bin 0 -> 6647 bytes .../handlers/__pycache__/wsgi.cpython-312.pyc | Bin 0 -> 9532 bytes .../django/core/handlers/asgi.py | 372 + .../django/core/handlers/base.py | 373 + .../django/core/handlers/exception.py | 185 + .../django/core/handlers/wsgi.py | 207 + .../django/core/mail/__init__.py | 155 + .../mail/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 5701 bytes .../mail/__pycache__/message.cpython-312.pyc | Bin 0 -> 21915 bytes .../mail/__pycache__/utils.cpython-312.pyc | Bin 0 -> 1030 bytes .../django/core/mail/backends/__init__.py | 1 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 202 bytes .../backends/__pycache__/base.cpython-312.pyc | Bin 0 -> 2644 bytes .../__pycache__/console.cpython-312.pyc | Bin 0 -> 2692 bytes .../__pycache__/dummy.cpython-312.pyc | Bin 0 -> 725 bytes .../__pycache__/filebased.cpython-312.pyc | Bin 0 -> 3780 bytes .../__pycache__/locmem.cpython-312.pyc | Bin 0 -> 1651 bytes .../backends/__pycache__/smtp.cpython-312.pyc | Bin 0 -> 7266 bytes .../django/core/mail/backends/base.py | 62 + .../django/core/mail/backends/console.py | 45 + .../django/core/mail/backends/dummy.py | 10 + .../django/core/mail/backends/filebased.py | 66 + .../django/core/mail/backends/locmem.py | 33 + .../django/core/mail/backends/smtp.py | 162 + .../site-packages/django/core/mail/message.py | 496 + .../site-packages/django/core/mail/utils.py | 22 + .../django/core/management/__init__.py | 442 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 20717 bytes .../__pycache__/base.cpython-312.pyc | Bin 0 -> 31065 bytes .../__pycache__/color.cpython-312.pyc | Bin 0 -> 4109 bytes .../__pycache__/sql.cpython-312.pyc | Bin 0 -> 2346 bytes .../__pycache__/templates.cpython-312.pyc | Bin 0 -> 18336 bytes .../__pycache__/utils.cpython-312.pyc | Bin 0 -> 8095 bytes .../django/core/management/base.py | 695 + .../django/core/management/color.py | 120 + .../core/management/commands/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 208 bytes .../__pycache__/check.cpython-312.pyc | Bin 0 -> 3397 bytes .../compilemessages.cpython-312.pyc | Bin 0 -> 8990 bytes .../createcachetable.cpython-312.pyc | Bin 0 -> 5917 bytes .../__pycache__/dbshell.cpython-312.pyc | Bin 0 -> 2275 bytes .../__pycache__/diffsettings.cpython-312.pyc | Bin 0 -> 4330 bytes .../__pycache__/dumpdata.cpython-312.pyc | Bin 0 -> 10869 bytes .../__pycache__/flush.cpython-312.pyc | Bin 0 -> 3712 bytes .../__pycache__/inspectdb.cpython-312.pyc | Bin 0 -> 15574 bytes .../__pycache__/loaddata.cpython-312.pyc | Bin 0 -> 18846 bytes .../__pycache__/makemessages.cpython-312.pyc | Bin 0 -> 34940 bytes .../makemigrations.cpython-312.pyc | Bin 0 -> 23101 bytes .../__pycache__/migrate.cpython-312.pyc | Bin 0 -> 22986 bytes .../optimizemigration.cpython-312.pyc | Bin 0 -> 5870 bytes .../__pycache__/runserver.cpython-312.pyc | Bin 0 -> 8235 bytes .../__pycache__/sendtestemail.cpython-312.pyc | Bin 0 -> 2123 bytes .../__pycache__/shell.cpython-312.pyc | Bin 0 -> 4850 bytes .../showmigrations.cpython-312.pyc | Bin 0 -> 7638 bytes .../__pycache__/sqlflush.cpython-312.pyc | Bin 0 -> 1738 bytes .../__pycache__/sqlmigrate.cpython-312.pyc | Bin 0 -> 3690 bytes .../sqlsequencereset.cpython-312.pyc | Bin 0 -> 1892 bytes .../squashmigrations.cpython-312.pyc | Bin 0 -> 10647 bytes .../__pycache__/startapp.cpython-312.pyc | Bin 0 -> 1061 bytes .../__pycache__/startproject.cpython-312.pyc | Bin 0 -> 1303 bytes .../commands/__pycache__/test.cpython-312.pyc | Bin 0 -> 3249 bytes .../__pycache__/testserver.cpython-312.pyc | Bin 0 -> 2377 bytes .../django/core/management/commands/check.py | 88 + .../management/commands/compilemessages.py | 196 + .../management/commands/createcachetable.py | 131 + .../core/management/commands/dbshell.py | 49 + .../core/management/commands/diffsettings.py | 91 + .../core/management/commands/dumpdata.py | 285 + .../django/core/management/commands/flush.py | 93 + .../core/management/commands/inspectdb.py | 415 + .../core/management/commands/loaddata.py | 433 + .../core/management/commands/makemessages.py | 784 ++ .../management/commands/makemigrations.py | 515 + .../core/management/commands/migrate.py | 512 + .../management/commands/optimizemigration.py | 129 + .../core/management/commands/runserver.py | 190 + .../core/management/commands/sendtestemail.py | 46 + .../django/core/management/commands/shell.py | 139 + .../management/commands/showmigrations.py | 177 + .../core/management/commands/sqlflush.py | 30 + .../core/management/commands/sqlmigrate.py | 84 + .../management/commands/sqlsequencereset.py | 32 + .../management/commands/squashmigrations.py | 267 + .../core/management/commands/startapp.py | 14 + .../core/management/commands/startproject.py | 21 + .../django/core/management/commands/test.py | 66 + .../core/management/commands/testserver.py | 65 + .../django/core/management/sql.py | 59 + .../django/core/management/templates.py | 402 + .../django/core/management/utils.py | 175 + .../site-packages/django/core/paginator.py | 238 + .../django/core/serializers/__init__.py | 254 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 9448 bytes .../__pycache__/base.cpython-312.pyc | Bin 0 -> 16551 bytes .../__pycache__/json.cpython-312.pyc | Bin 0 -> 5924 bytes .../__pycache__/jsonl.cpython-312.pyc | Bin 0 -> 3321 bytes .../__pycache__/python.cpython-312.pyc | Bin 0 -> 9748 bytes .../__pycache__/pyyaml.cpython-312.pyc | Bin 0 -> 4166 bytes .../xml_serializer.cpython-312.pyc | Bin 0 -> 25078 bytes .../django/core/serializers/base.py | 387 + .../django/core/serializers/json.py | 106 + .../django/core/serializers/jsonl.py | 57 + .../django/core/serializers/python.py | 195 + .../django/core/serializers/pyyaml.py | 82 + .../django/core/serializers/xml_serializer.py | 500 + .../django/core/servers/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 196 bytes .../__pycache__/basehttp.cpython-312.pyc | Bin 0 -> 12146 bytes .../django/core/servers/basehttp.py | 282 + .../site-packages/django/core/signals.py | 6 + .../site-packages/django/core/signing.py | 277 + .../site-packages/django/core/validators.py | 695 + .../site-packages/django/core/wsgi.py | 13 + .../site-packages/django/db/__init__.py | 63 + .../db/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 1764 bytes .../__pycache__/transaction.cpython-312.pyc | Bin 0 -> 12066 bytes .../db/__pycache__/utils.cpython-312.pyc | Bin 0 -> 11540 bytes .../django/db/backends/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 195 bytes .../ddl_references.cpython-312.pyc | Bin 0 -> 15608 bytes .../__pycache__/signals.cpython-312.pyc | Bin 0 -> 285 bytes .../__pycache__/utils.cpython-312.pyc | Bin 0 -> 15682 bytes .../django/db/backends/base/__init__.py | 0 .../base/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 200 bytes .../base/__pycache__/base.cpython-312.pyc | Bin 0 -> 34781 bytes .../base/__pycache__/client.cpython-312.pyc | Bin 0 -> 1536 bytes .../base/__pycache__/creation.cpython-312.pyc | Bin 0 -> 17216 bytes .../base/__pycache__/features.cpython-312.pyc | Bin 0 -> 8535 bytes .../__pycache__/introspection.cpython-312.pyc | Bin 0 -> 11113 bytes .../__pycache__/operations.cpython-312.pyc | Bin 0 -> 38952 bytes .../base/__pycache__/schema.cpython-312.pyc | Bin 0 -> 85144 bytes .../__pycache__/validation.cpython-312.pyc | Bin 0 -> 1805 bytes .../django/db/backends/base/base.py | 792 ++ .../django/db/backends/base/client.py | 28 + .../django/db/backends/base/creation.py | 384 + .../django/db/backends/base/features.py | 417 + .../django/db/backends/base/introspection.py | 212 + .../django/db/backends/base/operations.py | 806 ++ .../django/db/backends/base/schema.py | 2038 +++ .../django/db/backends/base/validation.py | 29 + .../django/db/backends/ddl_references.py | 270 + .../django/db/backends/dummy/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 201 bytes .../dummy/__pycache__/base.cpython-312.pyc | Bin 0 -> 2917 bytes .../__pycache__/features.cpython-312.pyc | Bin 0 -> 529 bytes .../django/db/backends/dummy/base.py | 74 + .../django/db/backends/dummy/features.py | 6 + .../django/db/backends/mysql/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 201 bytes .../mysql/__pycache__/base.cpython-312.pyc | Bin 0 -> 17650 bytes .../mysql/__pycache__/client.cpython-312.pyc | Bin 0 -> 3362 bytes .../__pycache__/compiler.cpython-312.pyc | Bin 0 -> 4646 bytes .../__pycache__/creation.cpython-312.pyc | Bin 0 -> 4710 bytes .../__pycache__/features.cpython-312.pyc | Bin 0 -> 14668 bytes .../__pycache__/introspection.cpython-312.pyc | Bin 0 -> 15724 bytes .../__pycache__/operations.cpython-312.pyc | Bin 0 -> 19913 bytes .../mysql/__pycache__/schema.cpython-312.pyc | Bin 0 -> 13903 bytes .../__pycache__/validation.cpython-312.pyc | Bin 0 -> 3598 bytes .../django/db/backends/mysql/base.py | 449 + .../django/db/backends/mysql/client.py | 72 + .../django/db/backends/mysql/compiler.py | 84 + .../django/db/backends/mysql/creation.py | 87 + .../django/db/backends/mysql/features.py | 338 + .../django/db/backends/mysql/introspection.py | 358 + .../django/db/backends/mysql/operations.py | 458 + .../django/db/backends/mysql/schema.py | 281 + .../django/db/backends/mysql/validation.py | 77 + .../django/db/backends/oracle/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 202 bytes .../oracle/__pycache__/base.cpython-312.pyc | Bin 0 -> 25969 bytes .../oracle/__pycache__/client.cpython-312.pyc | Bin 0 -> 1427 bytes .../__pycache__/creation.cpython-312.pyc | Bin 0 -> 22945 bytes .../__pycache__/features.cpython-312.pyc | Bin 0 -> 8967 bytes .../__pycache__/functions.cpython-312.pyc | Bin 0 -> 1561 bytes .../__pycache__/introspection.cpython-312.pyc | Bin 0 -> 15651 bytes .../__pycache__/operations.cpython-312.pyc | Bin 0 -> 31966 bytes .../__pycache__/oracledb_any.cpython-312.pyc | Bin 0 -> 824 bytes .../oracle/__pycache__/schema.cpython-312.pyc | Bin 0 -> 12353 bytes .../oracle/__pycache__/utils.cpython-312.pyc | Bin 0 -> 4125 bytes .../__pycache__/validation.cpython-312.pyc | Bin 0 -> 1268 bytes .../django/db/backends/oracle/base.py | 612 + .../django/db/backends/oracle/client.py | 27 + .../django/db/backends/oracle/creation.py | 464 + .../django/db/backends/oracle/features.py | 209 + .../django/db/backends/oracle/functions.py | 26 + .../db/backends/oracle/introspection.py | 414 + .../django/db/backends/oracle/operations.py | 731 ++ .../django/db/backends/oracle/oracledb_any.py | 21 + .../django/db/backends/oracle/schema.py | 250 + .../django/db/backends/oracle/utils.py | 99 + .../django/db/backends/oracle/validation.py | 22 + .../django/db/backends/postgresql/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 206 bytes .../__pycache__/base.cpython-312.pyc | Bin 0 -> 24678 bytes .../__pycache__/client.cpython-312.pyc | Bin 0 -> 2968 bytes .../__pycache__/creation.cpython-312.pyc | Bin 0 -> 5224 bytes .../__pycache__/features.cpython-312.pyc | Bin 0 -> 7336 bytes .../__pycache__/introspection.cpython-312.pyc | Bin 0 -> 11786 bytes .../__pycache__/operations.cpython-312.pyc | Bin 0 -> 18417 bytes .../__pycache__/psycopg_any.cpython-312.pyc | Bin 0 -> 5679 bytes .../__pycache__/schema.cpython-312.pyc | Bin 0 -> 13641 bytes .../django/db/backends/postgresql/base.py | 615 + .../django/db/backends/postgresql/client.py | 64 + .../django/db/backends/postgresql/creation.py | 91 + .../django/db/backends/postgresql/features.py | 172 + .../db/backends/postgresql/introspection.py | 299 + .../db/backends/postgresql/operations.py | 413 + .../db/backends/postgresql/psycopg_any.py | 114 + .../django/db/backends/postgresql/schema.py | 369 + .../django/db/backends/signals.py | 3 + .../django/db/backends/sqlite3/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 203 bytes .../__pycache__/_functions.cpython-312.pyc | Bin 0 -> 19384 bytes .../sqlite3/__pycache__/base.cpython-312.pyc | Bin 0 -> 15719 bytes .../__pycache__/client.cpython-312.pyc | Bin 0 -> 808 bytes .../__pycache__/creation.cpython-312.pyc | Bin 0 -> 8114 bytes .../__pycache__/features.cpython-312.pyc | Bin 0 -> 6538 bytes .../__pycache__/introspection.cpython-312.pyc | Bin 0 -> 17029 bytes .../__pycache__/operations.cpython-312.pyc | Bin 0 -> 21334 bytes .../__pycache__/schema.cpython-312.pyc | Bin 0 -> 20345 bytes .../django/db/backends/sqlite3/_functions.py | 515 + .../django/db/backends/sqlite3/base.py | 373 + .../django/db/backends/sqlite3/client.py | 10 + .../django/db/backends/sqlite3/creation.py | 159 + .../django/db/backends/sqlite3/features.py | 156 + .../db/backends/sqlite3/introspection.py | 440 + .../django/db/backends/sqlite3/operations.py | 433 + .../django/db/backends/sqlite3/schema.py | 493 + .../site-packages/django/db/backends/utils.py | 342 + .../django/db/migrations/__init__.py | 2 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 304 bytes .../__pycache__/autodetector.cpython-312.pyc | Bin 0 -> 77204 bytes .../__pycache__/exceptions.cpython-312.pyc | Bin 0 -> 2772 bytes .../__pycache__/executor.cpython-312.pyc | Bin 0 -> 19097 bytes .../__pycache__/graph.cpython-312.pyc | Bin 0 -> 17920 bytes .../__pycache__/loader.cpython-312.pyc | Bin 0 -> 17315 bytes .../__pycache__/migration.cpython-312.pyc | Bin 0 -> 10032 bytes .../__pycache__/optimizer.cpython-312.pyc | Bin 0 -> 3491 bytes .../__pycache__/questioner.cpython-312.pyc | Bin 0 -> 15505 bytes .../__pycache__/recorder.cpython-312.pyc | Bin 0 -> 6080 bytes .../__pycache__/serializer.cpython-312.pyc | Bin 0 -> 23586 bytes .../__pycache__/state.cpython-312.pyc | Bin 0 -> 46059 bytes .../__pycache__/utils.cpython-312.pyc | Bin 0 -> 4936 bytes .../__pycache__/writer.cpython-312.pyc | Bin 0 -> 14238 bytes .../django/db/migrations/autodetector.py | 1907 +++ .../django/db/migrations/exceptions.py | 60 + .../django/db/migrations/executor.py | 413 + .../django/db/migrations/graph.py | 333 + .../django/db/migrations/loader.py | 385 + .../django/db/migrations/migration.py | 239 + .../db/migrations/operations/__init__.py | 44 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 986 bytes .../__pycache__/base.cpython-312.pyc | Bin 0 -> 7205 bytes .../__pycache__/fields.cpython-312.pyc | Bin 0 -> 18313 bytes .../__pycache__/models.cpython-312.pyc | Bin 0 -> 60199 bytes .../__pycache__/special.cpython-312.pyc | Bin 0 -> 9783 bytes .../django/db/migrations/operations/base.py | 166 + .../django/db/migrations/operations/fields.py | 365 + .../django/db/migrations/operations/models.py | 1244 ++ .../db/migrations/operations/special.py | 211 + .../django/db/migrations/optimizer.py | 69 + .../django/db/migrations/questioner.py | 341 + .../django/db/migrations/recorder.py | 111 + .../django/db/migrations/serializer.py | 405 + .../django/db/migrations/state.py | 989 ++ .../django/db/migrations/utils.py | 129 + .../django/db/migrations/writer.py | 316 + .../django/db/models/__init__.py | 125 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 2629 bytes .../__pycache__/aggregates.cpython-312.pyc | Bin 0 -> 9963 bytes .../models/__pycache__/base.cpython-312.pyc | Bin 0 -> 96710 bytes .../__pycache__/constants.cpython-312.pyc | Bin 0 -> 548 bytes .../__pycache__/constraints.cpython-312.pyc | Bin 0 -> 30754 bytes .../__pycache__/deletion.cpython-312.pyc | Bin 0 -> 25278 bytes .../models/__pycache__/enums.cpython-312.pyc | Bin 0 -> 6592 bytes .../__pycache__/expressions.cpython-312.pyc | Bin 0 -> 102146 bytes .../__pycache__/indexes.cpython-312.pyc | Bin 0 -> 15396 bytes .../__pycache__/lookups.cpython-312.pyc | Bin 0 -> 39072 bytes .../__pycache__/manager.cpython-312.pyc | Bin 0 -> 9223 bytes .../__pycache__/options.cpython-312.pyc | Bin 0 -> 40501 bytes .../models/__pycache__/query.cpython-312.pyc | Bin 0 -> 120176 bytes .../__pycache__/query_utils.cpython-312.pyc | Bin 0 -> 21712 bytes .../__pycache__/signals.cpython-312.pyc | Bin 0 -> 2255 bytes .../models/__pycache__/utils.cpython-312.pyc | Bin 0 -> 3445 bytes .../django/db/models/aggregates.py | 213 + .../site-packages/django/db/models/base.py | 2483 ++++ .../django/db/models/constants.py | 13 + .../django/db/models/constraints.py | 683 + .../django/db/models/deletion.py | 518 + .../site-packages/django/db/models/enums.py | 123 + .../django/db/models/expressions.py | 2087 +++ .../django/db/models/fields/__init__.py | 2885 +++++ .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 114940 bytes .../fields/__pycache__/files.cpython-312.pyc | Bin 0 -> 21983 bytes .../__pycache__/generated.cpython-312.pyc | Bin 0 -> 10084 bytes .../fields/__pycache__/json.cpython-312.pyc | Bin 0 -> 31323 bytes .../fields/__pycache__/mixins.cpython-312.pyc | Bin 0 -> 3889 bytes .../fields/__pycache__/proxy.cpython-312.pyc | Bin 0 -> 1072 bytes .../__pycache__/related.cpython-312.pyc | Bin 0 -> 83558 bytes .../related_descriptors.cpython-312.pyc | Bin 0 -> 76286 bytes .../related_lookups.cpython-312.pyc | Bin 0 -> 10268 bytes .../reverse_related.cpython-312.pyc | Bin 0 -> 16676 bytes .../django/db/models/fields/files.py | 538 + .../django/db/models/fields/generated.py | 197 + .../django/db/models/fields/json.py | 626 + .../django/db/models/fields/mixins.py | 80 + .../django/db/models/fields/proxy.py | 18 + .../django/db/models/fields/related.py | 1995 +++ .../db/models/fields/related_descriptors.py | 1622 +++ .../db/models/fields/related_lookups.py | 199 + .../db/models/fields/reverse_related.py | 415 + .../django/db/models/functions/__init__.py | 190 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 2504 bytes .../__pycache__/comparison.cpython-312.pyc | Bin 0 -> 11859 bytes .../__pycache__/datetime.cpython-312.pyc | Bin 0 -> 17405 bytes .../__pycache__/math.cpython-312.pyc | Bin 0 -> 9081 bytes .../__pycache__/mixins.cpython-312.pyc | Bin 0 -> 4032 bytes .../__pycache__/text.cpython-312.pyc | Bin 0 -> 16490 bytes .../__pycache__/window.cpython-312.pyc | Bin 0 -> 4791 bytes .../django/db/models/functions/comparison.py | 227 + .../django/db/models/functions/datetime.py | 439 + .../django/db/models/functions/math.py | 214 + .../django/db/models/functions/mixins.py | 62 + .../django/db/models/functions/text.py | 376 + .../django/db/models/functions/window.py | 120 + .../site-packages/django/db/models/indexes.py | 299 + .../site-packages/django/db/models/lookups.py | 798 ++ .../site-packages/django/db/models/manager.py | 213 + .../site-packages/django/db/models/options.py | 1025 ++ .../site-packages/django/db/models/query.py | 2732 ++++ .../django/db/models/query_utils.py | 486 + .../site-packages/django/db/models/signals.py | 54 + .../django/db/models/sql/__init__.py | 6 + .../sql/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 449 bytes .../sql/__pycache__/compiler.cpython-312.pyc | Bin 0 -> 93248 bytes .../sql/__pycache__/constants.cpython-312.pyc | Bin 0 -> 549 bytes .../datastructures.cpython-312.pyc | Bin 0 -> 10119 bytes .../sql/__pycache__/query.cpython-312.pyc | Bin 0 -> 112952 bytes .../__pycache__/subqueries.cpython-312.pyc | Bin 0 -> 8929 bytes .../sql/__pycache__/where.cpython-312.pyc | Bin 0 -> 16715 bytes .../django/db/models/sql/compiler.py | 2115 +++ .../django/db/models/sql/constants.py | 24 + .../django/db/models/sql/datastructures.py | 238 + .../django/db/models/sql/query.py | 2735 ++++ .../django/db/models/sql/subqueries.py | 174 + .../django/db/models/sql/where.py | 365 + .../site-packages/django/db/models/utils.py | 69 + .../site-packages/django/db/transaction.py | 340 + .../site-packages/django/db/utils.py | 278 + .../site-packages/django/dispatch/__init__.py | 9 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 510 bytes .../__pycache__/dispatcher.cpython-312.pyc | Bin 0 -> 19948 bytes .../django/dispatch/dispatcher.py | 494 + .../site-packages/django/dispatch/license.txt | 36 + .../site-packages/django/forms/__init__.py | 11 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 534 bytes .../__pycache__/boundfield.cpython-312.pyc | Bin 0 -> 18528 bytes .../forms/__pycache__/fields.cpython-312.pyc | Bin 0 -> 60774 bytes .../forms/__pycache__/forms.cpython-312.pyc | Bin 0 -> 19095 bytes .../__pycache__/formsets.cpython-312.pyc | Bin 0 -> 24073 bytes .../forms/__pycache__/models.cpython-312.pyc | Bin 0 -> 64042 bytes .../__pycache__/renderers.cpython-312.pyc | Bin 0 -> 5232 bytes .../forms/__pycache__/utils.cpython-312.pyc | Bin 0 -> 12410 bytes .../forms/__pycache__/widgets.cpython-312.pyc | Bin 0 -> 52590 bytes .../site-packages/django/forms/boundfield.py | 359 + .../site-packages/django/forms/fields.py | 1410 ++ .../site-packages/django/forms/forms.py | 426 + .../site-packages/django/forms/formsets.py | 579 + .../forms/jinja2/django/forms/attrs.html | 1 + .../django/forms/jinja2/django/forms/div.html | 15 + .../django/forms/errors/dict/default.html | 1 + .../jinja2/django/forms/errors/dict/text.txt | 3 + .../jinja2/django/forms/errors/dict/ul.html | 1 + .../django/forms/errors/list/default.html | 1 + .../jinja2/django/forms/errors/list/text.txt | 2 + .../jinja2/django/forms/errors/list/ul.html | 1 + .../forms/jinja2/django/forms/field.html | 10 + .../jinja2/django/forms/formsets/div.html | 1 + .../forms/jinja2/django/forms/formsets/p.html | 1 + .../jinja2/django/forms/formsets/table.html | 1 + .../jinja2/django/forms/formsets/ul.html | 1 + .../forms/jinja2/django/forms/label.html | 1 + .../django/forms/jinja2/django/forms/p.html | 20 + .../forms/jinja2/django/forms/table.html | 29 + .../django/forms/jinja2/django/forms/ul.html | 24 + .../jinja2/django/forms/widgets/attrs.html | 1 + .../jinja2/django/forms/widgets/checkbox.html | 1 + .../django/forms/widgets/checkbox_option.html | 1 + .../django/forms/widgets/checkbox_select.html | 1 + .../forms/widgets/clearable_file_input.html | 5 + .../jinja2/django/forms/widgets/date.html | 1 + .../jinja2/django/forms/widgets/datetime.html | 1 + .../jinja2/django/forms/widgets/email.html | 1 + .../jinja2/django/forms/widgets/file.html | 1 + .../jinja2/django/forms/widgets/hidden.html | 1 + .../jinja2/django/forms/widgets/input.html | 1 + .../django/forms/widgets/input_option.html | 1 + .../django/forms/widgets/multiple_hidden.html | 1 + .../django/forms/widgets/multiple_input.html | 5 + .../django/forms/widgets/multiwidget.html | 1 + .../jinja2/django/forms/widgets/number.html | 1 + .../jinja2/django/forms/widgets/password.html | 1 + .../jinja2/django/forms/widgets/radio.html | 1 + .../django/forms/widgets/radio_option.html | 1 + .../jinja2/django/forms/widgets/select.html | 5 + .../django/forms/widgets/select_date.html | 1 + .../django/forms/widgets/select_option.html | 1 + .../django/forms/widgets/splitdatetime.html | 1 + .../forms/widgets/splithiddendatetime.html | 1 + .../jinja2/django/forms/widgets/text.html | 1 + .../jinja2/django/forms/widgets/textarea.html | 2 + .../jinja2/django/forms/widgets/time.html | 1 + .../jinja2/django/forms/widgets/url.html | 1 + .../site-packages/django/forms/models.py | 1687 +++ .../site-packages/django/forms/renderers.py | 110 + .../forms/templates/django/forms/attrs.html | 1 + .../forms/templates/django/forms/div.html | 15 + .../django/forms/errors/dict/default.html | 1 + .../django/forms/errors/dict/text.txt | 3 + .../django/forms/errors/dict/ul.html | 1 + .../django/forms/errors/list/default.html | 1 + .../django/forms/errors/list/text.txt | 2 + .../django/forms/errors/list/ul.html | 1 + .../forms/templates/django/forms/field.html | 9 + .../templates/django/forms/formsets/div.html | 1 + .../templates/django/forms/formsets/p.html | 1 + .../django/forms/formsets/table.html | 1 + .../templates/django/forms/formsets/ul.html | 1 + .../forms/templates/django/forms/label.html | 1 + .../forms/templates/django/forms/p.html | 20 + .../forms/templates/django/forms/table.html | 29 + .../forms/templates/django/forms/ul.html | 24 + .../templates/django/forms/widgets/attrs.html | 1 + .../django/forms/widgets/checkbox.html | 1 + .../django/forms/widgets/checkbox_option.html | 1 + .../django/forms/widgets/checkbox_select.html | 1 + .../forms/widgets/clearable_file_input.html | 5 + .../templates/django/forms/widgets/date.html | 1 + .../django/forms/widgets/datetime.html | 1 + .../templates/django/forms/widgets/email.html | 1 + .../templates/django/forms/widgets/file.html | 1 + .../django/forms/widgets/hidden.html | 1 + .../templates/django/forms/widgets/input.html | 1 + .../django/forms/widgets/input_option.html | 1 + .../django/forms/widgets/multiple_hidden.html | 1 + .../django/forms/widgets/multiple_input.html | 5 + .../django/forms/widgets/multiwidget.html | 1 + .../django/forms/widgets/number.html | 1 + .../django/forms/widgets/password.html | 1 + .../templates/django/forms/widgets/radio.html | 1 + .../django/forms/widgets/radio_option.html | 1 + .../django/forms/widgets/select.html | 5 + .../django/forms/widgets/select_date.html | 1 + .../django/forms/widgets/select_option.html | 1 + .../django/forms/widgets/splitdatetime.html | 1 + .../forms/widgets/splithiddendatetime.html | 1 + .../templates/django/forms/widgets/text.html | 1 + .../django/forms/widgets/textarea.html | 2 + .../templates/django/forms/widgets/time.html | 1 + .../templates/django/forms/widgets/url.html | 1 + .../site-packages/django/forms/utils.py | 244 + .../site-packages/django/forms/widgets.py | 1210 ++ .../site-packages/django/http/__init__.py | 52 + .../http/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 1099 bytes .../http/__pycache__/cookie.cpython-312.pyc | Bin 0 -> 882 bytes .../multipartparser.cpython-312.pyc | Bin 0 -> 26344 bytes .../http/__pycache__/request.cpython-312.pyc | Bin 0 -> 34709 bytes .../http/__pycache__/response.cpython-312.pyc | Bin 0 -> 34112 bytes .../site-packages/django/http/cookie.py | 23 + .../django/http/multipartparser.py | 754 ++ .../site-packages/django/http/request.py | 738 ++ .../site-packages/django/http/response.py | 734 ++ .../django/middleware/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 194 bytes .../__pycache__/cache.cpython-312.pyc | Bin 0 -> 8881 bytes .../__pycache__/clickjacking.cpython-312.pyc | Bin 0 -> 2215 bytes .../__pycache__/common.cpython-312.pyc | Bin 0 -> 8453 bytes .../__pycache__/csrf.cpython-312.pyc | Bin 0 -> 20304 bytes .../__pycache__/gzip.cpython-312.pyc | Bin 0 -> 2955 bytes .../__pycache__/http.cpython-312.pyc | Bin 0 -> 2230 bytes .../__pycache__/locale.cpython-312.pyc | Bin 0 -> 3476 bytes .../__pycache__/security.cpython-312.pyc | Bin 0 -> 4126 bytes .../site-packages/django/middleware/cache.py | 223 + .../django/middleware/clickjacking.py | 48 + .../site-packages/django/middleware/common.py | 178 + .../site-packages/django/middleware/csrf.py | 483 + .../site-packages/django/middleware/gzip.py | 74 + .../site-packages/django/middleware/http.py | 40 + .../site-packages/django/middleware/locale.py | 80 + .../django/middleware/security.py | 66 + .../site-packages/django/shortcuts.py | 190 + .../site-packages/django/template/__init__.py | 75 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 1871 bytes .../__pycache__/autoreload.cpython-312.pyc | Bin 0 -> 3374 bytes .../template/__pycache__/base.cpython-312.pyc | Bin 0 -> 45292 bytes .../__pycache__/context.cpython-312.pyc | Bin 0 -> 14083 bytes .../context_processors.cpython-312.pyc | Bin 0 -> 3583 bytes .../defaultfilters.cpython-312.pyc | Bin 0 -> 37719 bytes .../__pycache__/defaulttags.cpython-312.pyc | Bin 0 -> 60073 bytes .../__pycache__/engine.cpython-312.pyc | Bin 0 -> 9386 bytes .../__pycache__/exceptions.cpython-312.pyc | Bin 0 -> 1938 bytes .../__pycache__/library.cpython-312.pyc | Bin 0 -> 14155 bytes .../__pycache__/loader.cpython-312.pyc | Bin 0 -> 2702 bytes .../__pycache__/loader_tags.cpython-312.pyc | Bin 0 -> 16715 bytes .../__pycache__/response.cpython-312.pyc | Bin 0 -> 6271 bytes .../__pycache__/smartif.cpython-312.pyc | Bin 0 -> 10805 bytes .../__pycache__/utils.cpython-312.pyc | Bin 0 -> 4713 bytes .../django/template/autoreload.py | 61 + .../django/template/backends/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 201 bytes .../backends/__pycache__/base.cpython-312.pyc | Bin 0 -> 3613 bytes .../__pycache__/django.cpython-312.pyc | Bin 0 -> 9561 bytes .../__pycache__/dummy.cpython-312.pyc | Bin 0 -> 3002 bytes .../__pycache__/jinja2.cpython-312.pyc | Bin 0 -> 6331 bytes .../__pycache__/utils.cpython-312.pyc | Bin 0 -> 769 bytes .../django/template/backends/base.py | 83 + .../django/template/backends/django.py | 182 + .../django/template/backends/dummy.py | 51 + .../django/template/backends/jinja2.py | 125 + .../django/template/backends/utils.py | 15 + .../site-packages/django/template/base.py | 1124 ++ .../site-packages/django/template/context.py | 300 + .../django/template/context_processors.py | 89 + .../django/template/defaultfilters.py | 991 ++ .../django/template/defaulttags.py | 1542 +++ .../site-packages/django/template/engine.py | 214 + .../django/template/exceptions.py | 44 + .../site-packages/django/template/library.py | 387 + .../site-packages/django/template/loader.py | 66 + .../django/template/loader_tags.py | 354 + .../django/template/loaders/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 200 bytes .../app_directories.cpython-312.pyc | Bin 0 -> 775 bytes .../loaders/__pycache__/base.cpython-312.pyc | Bin 0 -> 2249 bytes .../__pycache__/cached.cpython-312.pyc | Bin 0 -> 5559 bytes .../__pycache__/filesystem.cpython-312.pyc | Bin 0 -> 2460 bytes .../__pycache__/locmem.cpython-312.pyc | Bin 0 -> 1402 bytes .../template/loaders/app_directories.py | 13 + .../django/template/loaders/base.py | 51 + .../django/template/loaders/cached.py | 100 + .../django/template/loaders/filesystem.py | 45 + .../django/template/loaders/locmem.py | 26 + .../site-packages/django/template/response.py | 164 + .../site-packages/django/template/smartif.py | 214 + .../site-packages/django/template/utils.py | 111 + .../django/templatetags/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 196 bytes .../__pycache__/cache.cpython-312.pyc | Bin 0 -> 4546 bytes .../__pycache__/i18n.cpython-312.pyc | Bin 0 -> 25752 bytes .../__pycache__/l10n.cpython-312.pyc | Bin 0 -> 2910 bytes .../__pycache__/static.cpython-312.pyc | Bin 0 -> 7124 bytes .../__pycache__/tz.cpython-312.pyc | Bin 0 -> 7855 bytes .../django/templatetags/cache.py | 100 + .../site-packages/django/templatetags/i18n.py | 616 + .../site-packages/django/templatetags/l10n.py | 60 + .../django/templatetags/static.py | 179 + .../site-packages/django/templatetags/tz.py | 202 + .../site-packages/django/test/__init__.py | 38 + .../test/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 877 bytes .../test/__pycache__/client.cpython-312.pyc | Bin 0 -> 54827 bytes .../test/__pycache__/html.cpython-312.pyc | Bin 0 -> 11885 bytes .../test/__pycache__/runner.cpython-312.pyc | Bin 0 -> 54077 bytes .../test/__pycache__/selenium.cpython-312.pyc | Bin 0 -> 14638 bytes .../test/__pycache__/signals.cpython-312.pyc | Bin 0 -> 8701 bytes .../__pycache__/testcases.cpython-312.pyc | Bin 0 -> 82140 bytes .../test/__pycache__/utils.cpython-312.pyc | Bin 0 -> 44487 bytes .../site-packages/django/test/client.py | 1756 +++ .../site-packages/django/test/html.py | 273 + .../site-packages/django/test/runner.py | 1236 ++ .../site-packages/django/test/selenium.py | 263 + .../site-packages/django/test/signals.py | 253 + .../site-packages/django/test/testcases.py | 1859 +++ .../site-packages/django/test/utils.py | 994 ++ .../site-packages/django/urls/__init__.py | 53 + .../urls/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 1087 bytes .../urls/__pycache__/base.cpython-312.pyc | Bin 0 -> 6585 bytes .../urls/__pycache__/conf.cpython-312.pyc | Bin 0 -> 3327 bytes .../__pycache__/converters.cpython-312.pyc | Bin 0 -> 3175 bytes .../__pycache__/exceptions.cpython-312.pyc | Bin 0 -> 572 bytes .../__pycache__/resolvers.cpython-312.pyc | Bin 0 -> 36278 bytes .../urls/__pycache__/utils.cpython-312.pyc | Bin 0 -> 2337 bytes .../site-packages/django/urls/base.py | 187 + .../site-packages/django/urls/conf.py | 96 + .../site-packages/django/urls/converters.py | 78 + .../site-packages/django/urls/exceptions.py | 9 + .../site-packages/django/urls/resolvers.py | 831 ++ .../site-packages/django/urls/utils.py | 66 + .../site-packages/django/utils/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 189 bytes .../utils/__pycache__/_os.cpython-312.pyc | Bin 0 -> 2857 bytes .../utils/__pycache__/archive.cpython-312.pyc | Bin 0 -> 12347 bytes .../utils/__pycache__/asyncio.cpython-312.pyc | Bin 0 -> 1498 bytes .../__pycache__/autoreload.cpython-312.pyc | Bin 0 -> 32435 bytes .../utils/__pycache__/cache.cpython-312.pyc | Bin 0 -> 16858 bytes .../utils/__pycache__/choices.cpython-312.pyc | Bin 0 -> 5795 bytes .../__pycache__/connection.cpython-312.pyc | Bin 0 -> 5310 bytes .../utils/__pycache__/crypto.cpython-312.pyc | Bin 0 -> 3481 bytes .../datastructures.cpython-312.pyc | Bin 0 -> 17333 bytes .../__pycache__/dateformat.cpython-312.pyc | Bin 0 -> 16220 bytes .../__pycache__/dateparse.cpython-312.pyc | Bin 0 -> 6541 bytes .../utils/__pycache__/dates.cpython-312.pyc | Bin 0 -> 2341 bytes .../__pycache__/deconstruct.cpython-312.pyc | Bin 0 -> 2473 bytes .../__pycache__/decorators.cpython-312.pyc | Bin 0 -> 8966 bytes .../__pycache__/deprecation.cpython-312.pyc | Bin 0 -> 6649 bytes .../__pycache__/duration.cpython-312.pyc | Bin 0 -> 1900 bytes .../__pycache__/encoding.cpython-312.pyc | Bin 0 -> 9160 bytes .../__pycache__/feedgenerator.cpython-312.pyc | Bin 0 -> 19186 bytes .../utils/__pycache__/formats.cpython-312.pyc | Bin 0 -> 10822 bytes .../__pycache__/functional.cpython-312.pyc | Bin 0 -> 18748 bytes .../__pycache__/hashable.cpython-312.pyc | Bin 0 -> 1068 bytes .../utils/__pycache__/html.cpython-312.pyc | Bin 0 -> 20567 bytes .../utils/__pycache__/http.cpython-312.pyc | Bin 0 -> 14550 bytes .../utils/__pycache__/inspect.cpython-312.pyc | Bin 0 -> 4586 bytes .../utils/__pycache__/ipv6.cpython-312.pyc | Bin 0 -> 2023 bytes .../__pycache__/itercompat.cpython-312.pyc | Bin 0 -> 797 bytes .../utils/__pycache__/jslex.cpython-312.pyc | Bin 0 -> 9048 bytes .../utils/__pycache__/log.cpython-312.pyc | Bin 0 -> 9689 bytes .../__pycache__/lorem_ipsum.cpython-312.pyc | Bin 0 -> 5425 bytes .../module_loading.cpython-312.pyc | Bin 0 -> 4048 bytes .../__pycache__/numberformat.cpython-312.pyc | Bin 0 -> 3413 bytes .../__pycache__/regex_helper.cpython-312.pyc | Bin 0 -> 11177 bytes .../__pycache__/safestring.cpython-312.pyc | Bin 0 -> 3034 bytes .../__pycache__/termcolors.cpython-312.pyc | Bin 0 -> 7455 bytes .../utils/__pycache__/text.cpython-312.pyc | Bin 0 -> 21306 bytes .../__pycache__/timesince.cpython-312.pyc | Bin 0 -> 5817 bytes .../__pycache__/timezone.cpython-312.pyc | Bin 0 -> 9146 bytes .../utils/__pycache__/tree.cpython-312.pyc | Bin 0 -> 5872 bytes .../utils/__pycache__/version.cpython-312.pyc | Bin 0 -> 4864 bytes .../__pycache__/xmlutils.cpython-312.pyc | Bin 0 -> 1922 bytes .../site-packages/django/utils/_os.py | 62 + .../site-packages/django/utils/archive.py | 258 + .../site-packages/django/utils/asyncio.py | 39 + .../site-packages/django/utils/autoreload.py | 676 + .../site-packages/django/utils/cache.py | 444 + .../site-packages/django/utils/choices.py | 115 + .../site-packages/django/utils/connection.py | 85 + .../site-packages/django/utils/crypto.py | 77 + .../django/utils/datastructures.py | 345 + .../site-packages/django/utils/dateformat.py | 331 + .../site-packages/django/utils/dateparse.py | 154 + .../site-packages/django/utils/dates.py | 79 + .../site-packages/django/utils/deconstruct.py | 61 + .../site-packages/django/utils/decorators.py | 225 + .../site-packages/django/utils/deprecation.py | 151 + .../site-packages/django/utils/duration.py | 46 + .../site-packages/django/utils/encoding.py | 262 + .../django/utils/feedgenerator.py | 448 + .../site-packages/django/utils/formats.py | 305 + .../site-packages/django/utils/functional.py | 451 + .../site-packages/django/utils/hashable.py | 26 + .../site-packages/django/utils/html.py | 500 + .../site-packages/django/utils/http.py | 374 + .../site-packages/django/utils/inspect.py | 76 + .../site-packages/django/utils/ipv6.py | 49 + .../site-packages/django/utils/itercompat.py | 21 + .../site-packages/django/utils/jslex.py | 250 + .../site-packages/django/utils/log.py | 257 + .../site-packages/django/utils/lorem_ipsum.py | 286 + .../django/utils/module_loading.py | 107 + .../django/utils/numberformat.py | 105 + .../django/utils/regex_helper.py | 354 + .../site-packages/django/utils/safestring.py | 72 + .../site-packages/django/utils/termcolors.py | 221 + .../site-packages/django/utils/text.py | 487 + .../site-packages/django/utils/timesince.py | 142 + .../site-packages/django/utils/timezone.py | 259 + .../django/utils/translation/__init__.py | 302 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 12268 bytes .../__pycache__/reloader.cpython-312.pyc | Bin 0 -> 2166 bytes .../__pycache__/template.cpython-312.pyc | Bin 0 -> 9486 bytes .../__pycache__/trans_null.cpython-312.pyc | Bin 0 -> 2288 bytes .../__pycache__/trans_real.cpython-312.pyc | Bin 0 -> 27904 bytes .../django/utils/translation/reloader.py | 36 + .../django/utils/translation/template.py | 246 + .../django/utils/translation/trans_null.py | 67 + .../django/utils/translation/trans_real.py | 655 + .../site-packages/django/utils/tree.py | 126 + .../site-packages/django/utils/version.py | 123 + .../site-packages/django/utils/xmlutils.py | 35 + .../site-packages/django/views/__init__.py | 3 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 273 bytes .../views/__pycache__/csrf.cpython-312.pyc | Bin 0 -> 3920 bytes .../views/__pycache__/debug.cpython-312.pyc | Bin 0 -> 29282 bytes .../__pycache__/defaults.cpython-312.pyc | Bin 0 -> 4768 bytes .../views/__pycache__/i18n.cpython-312.pyc | Bin 0 -> 11972 bytes .../views/__pycache__/static.cpython-312.pyc | Bin 0 -> 5562 bytes .../site-packages/django/views/csrf.py | 80 + .../site-packages/django/views/debug.py | 665 + .../django/views/decorators/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 200 bytes .../__pycache__/cache.cpython-312.pyc | Bin 0 -> 3696 bytes .../__pycache__/clickjacking.cpython-312.pyc | Bin 0 -> 3259 bytes .../__pycache__/common.cpython-312.pyc | Bin 0 -> 1101 bytes .../__pycache__/csrf.cpython-312.pyc | Bin 0 -> 2986 bytes .../__pycache__/debug.cpython-312.pyc | Bin 0 -> 5347 bytes .../__pycache__/gzip.cpython-312.pyc | Bin 0 -> 467 bytes .../__pycache__/http.cpython-312.pyc | Bin 0 -> 6961 bytes .../__pycache__/vary.cpython-312.pyc | Bin 0 -> 1804 bytes .../django/views/decorators/cache.py | 84 + .../django/views/decorators/clickjacking.py | 90 + .../django/views/decorators/common.py | 27 + .../django/views/decorators/csrf.py | 69 + .../django/views/decorators/debug.py | 147 + .../django/views/decorators/gzip.py | 5 + .../django/views/decorators/http.py | 169 + .../django/views/decorators/vary.py | 44 + .../site-packages/django/views/defaults.py | 150 + .../django/views/generic/__init__.py | 39 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 1141 bytes .../generic/__pycache__/base.cpython-312.pyc | Bin 0 -> 12165 bytes .../generic/__pycache__/dates.cpython-312.pyc | Bin 0 -> 31562 bytes .../__pycache__/detail.cpython-312.pyc | Bin 0 -> 7782 bytes .../generic/__pycache__/edit.cpython-312.pyc | Bin 0 -> 12774 bytes .../generic/__pycache__/list.cpython-312.pyc | Bin 0 -> 9308 bytes .../django/views/generic/base.py | 285 + .../django/views/generic/dates.py | 795 ++ .../django/views/generic/detail.py | 180 + .../django/views/generic/edit.py | 274 + .../django/views/generic/list.py | 220 + .../site-packages/django/views/i18n.py | 251 + .../site-packages/django/views/static.py | 122 + .../django/views/templates/csrf_403.html | 84 + .../views/templates/default_urlconf.html | 241 + .../views/templates/directory_index.html | 21 + .../django/views/templates/i18n_catalog.js | 102 + .../django/views/templates/technical_404.html | 85 + .../django/views/templates/technical_500.html | 497 + .../django/views/templates/technical_500.txt | 66 + .../mypy_extensions-1.0.0.dist-info/INSTALLER | 1 + .../mypy_extensions-1.0.0.dist-info/LICENSE | 27 + .../mypy_extensions-1.0.0.dist-info/METADATA | 29 + .../mypy_extensions-1.0.0.dist-info/RECORD | 8 + .../mypy_extensions-1.0.0.dist-info/WHEEL | 5 + .../top_level.txt | 1 + .../site-packages/mypy_extensions.py | 213 + .../packaging-24.1.dist-info/INSTALLER | 1 + .../packaging-24.1.dist-info/LICENSE | 3 + .../packaging-24.1.dist-info/LICENSE.APACHE | 177 + .../packaging-24.1.dist-info/LICENSE.BSD | 23 + .../packaging-24.1.dist-info/METADATA | 102 + .../packaging-24.1.dist-info/RECORD | 36 + .../packaging-24.1.dist-info/WHEEL | 4 + .../site-packages/packaging/__init__.py | 15 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 551 bytes .../__pycache__/_elffile.cpython-312.pyc | Bin 0 -> 4967 bytes .../__pycache__/_manylinux.cpython-312.pyc | Bin 0 -> 9723 bytes .../__pycache__/_musllinux.cpython-312.pyc | Bin 0 -> 4562 bytes .../__pycache__/_parser.cpython-312.pyc | Bin 0 -> 13993 bytes .../__pycache__/_structures.cpython-312.pyc | Bin 0 -> 3234 bytes .../__pycache__/_tokenizer.cpython-312.pyc | Bin 0 -> 7904 bytes .../__pycache__/markers.cpython-312.pyc | Bin 0 -> 11006 bytes .../__pycache__/metadata.cpython-312.pyc | Bin 0 -> 24985 bytes .../__pycache__/requirements.cpython-312.pyc | Bin 0 -> 4403 bytes .../__pycache__/specifiers.cpython-312.pyc | Bin 0 -> 38733 bytes .../__pycache__/tags.cpython-312.pyc | Bin 0 -> 21446 bytes .../__pycache__/utils.cpython-312.pyc | Bin 0 -> 7332 bytes .../__pycache__/version.cpython-312.pyc | Bin 0 -> 19483 bytes .../site-packages/packaging/_elffile.py | 110 + .../site-packages/packaging/_manylinux.py | 262 + .../site-packages/packaging/_musllinux.py | 85 + .../site-packages/packaging/_parser.py | 354 + .../site-packages/packaging/_structures.py | 61 + .../site-packages/packaging/_tokenizer.py | 194 + .../site-packages/packaging/markers.py | 325 + .../site-packages/packaging/metadata.py | 804 ++ .../site-packages/packaging/py.typed | 0 .../site-packages/packaging/requirements.py | 91 + .../site-packages/packaging/specifiers.py | 1009 ++ .../site-packages/packaging/tags.py | 568 + .../site-packages/packaging/utils.py | 174 + .../site-packages/packaging/version.py | 563 + .../pathspec-0.12.1.dist-info/INSTALLER | 1 + .../pathspec-0.12.1.dist-info/LICENSE | 373 + .../pathspec-0.12.1.dist-info/METADATA | 647 + .../pathspec-0.12.1.dist-info/RECORD | 22 + .../pathspec-0.12.1.dist-info/WHEEL | 4 + .../site-packages/pathspec/__init__.py | 76 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 1591 bytes .../__pycache__/_meta.cpython-312.pyc | Bin 0 -> 2363 bytes .../__pycache__/gitignore.cpython-312.pyc | Bin 0 -> 5454 bytes .../__pycache__/pathspec.cpython-312.pyc | Bin 0 -> 15859 bytes .../__pycache__/pattern.cpython-312.pyc | Bin 0 -> 7254 bytes .../pathspec/__pycache__/util.cpython-312.pyc | Bin 0 -> 26370 bytes .../site-packages/pathspec/_meta.py | 58 + .../site-packages/pathspec/gitignore.py | 157 + .../site-packages/pathspec/pathspec.py | 394 + .../site-packages/pathspec/pattern.py | 213 + .../pathspec/patterns/__init__.py | 11 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 381 bytes .../__pycache__/gitwildmatch.cpython-312.pyc | Bin 0 -> 9684 bytes .../pathspec/patterns/gitwildmatch.py | 421 + .../site-packages/pathspec/py.typed | 1 + .../python3.12/site-packages/pathspec/util.py | 792 ++ .../pip-24.0.dist-info/AUTHORS.txt | 760 ++ .../pip-24.0.dist-info/INSTALLER | 1 + .../pip-24.0.dist-info/LICENSE.txt | 20 + .../site-packages/pip-24.0.dist-info/METADATA | 88 + .../site-packages/pip-24.0.dist-info/RECORD | 1005 ++ .../pip-24.0.dist-info/REQUESTED | 0 .../site-packages/pip-24.0.dist-info/WHEEL | 5 + .../pip-24.0.dist-info/entry_points.txt | 4 + .../pip-24.0.dist-info/top_level.txt | 1 + .../python3.12/site-packages/pip/__init__.py | 13 + .../python3.12/site-packages/pip/__main__.py | 24 + .../site-packages/pip/__pip-runner__.py | 50 + .../pip/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 689 bytes .../pip/__pycache__/__main__.cpython-312.pyc | Bin 0 -> 845 bytes .../__pip-runner__.cpython-312.pyc | Bin 0 -> 2208 bytes .../site-packages/pip/_internal/__init__.py | 18 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 791 bytes .../__pycache__/build_env.cpython-312.pyc | Bin 0 -> 14298 bytes .../__pycache__/cache.cpython-312.pyc | Bin 0 -> 12669 bytes .../__pycache__/configuration.cpython-312.pyc | Bin 0 -> 17670 bytes .../__pycache__/exceptions.cpython-312.pyc | Bin 0 -> 33288 bytes .../__pycache__/main.cpython-312.pyc | Bin 0 -> 674 bytes .../__pycache__/pyproject.cpython-312.pyc | Bin 0 -> 4975 bytes .../self_outdated_check.cpython-312.pyc | Bin 0 -> 10556 bytes .../__pycache__/wheel_builder.cpython-312.pyc | Bin 0 -> 13653 bytes .../site-packages/pip/_internal/build_env.py | 311 + .../site-packages/pip/_internal/cache.py | 290 + .../pip/_internal/cli/__init__.py | 4 + .../cli/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 282 bytes .../autocompletion.cpython-312.pyc | Bin 0 -> 8469 bytes .../__pycache__/base_command.cpython-312.pyc | Bin 0 -> 10459 bytes .../__pycache__/cmdoptions.cpython-312.pyc | Bin 0 -> 30378 bytes .../command_context.cpython-312.pyc | Bin 0 -> 1785 bytes .../cli/__pycache__/main.cpython-312.pyc | Bin 0 -> 2302 bytes .../__pycache__/main_parser.cpython-312.pyc | Bin 0 -> 4909 bytes .../cli/__pycache__/parser.cpython-312.pyc | Bin 0 -> 15026 bytes .../__pycache__/progress_bars.cpython-312.pyc | Bin 0 -> 2624 bytes .../__pycache__/req_command.cpython-312.pyc | Bin 0 -> 18856 bytes .../cli/__pycache__/spinners.cpython-312.pyc | Bin 0 -> 7844 bytes .../__pycache__/status_codes.cpython-312.pyc | Bin 0 -> 379 bytes .../pip/_internal/cli/autocompletion.py | 172 + .../pip/_internal/cli/base_command.py | 236 + .../pip/_internal/cli/cmdoptions.py | 1074 ++ .../pip/_internal/cli/command_context.py | 27 + .../site-packages/pip/_internal/cli/main.py | 79 + .../pip/_internal/cli/main_parser.py | 134 + .../site-packages/pip/_internal/cli/parser.py | 294 + .../pip/_internal/cli/progress_bars.py | 68 + .../pip/_internal/cli/req_command.py | 505 + .../pip/_internal/cli/spinners.py | 159 + .../pip/_internal/cli/status_codes.py | 6 + .../pip/_internal/commands/__init__.py | 132 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 4006 bytes .../__pycache__/cache.cpython-312.pyc | Bin 0 -> 9715 bytes .../__pycache__/check.cpython-312.pyc | Bin 0 -> 2094 bytes .../__pycache__/completion.cpython-312.pyc | Bin 0 -> 5196 bytes .../__pycache__/configuration.cpython-312.pyc | Bin 0 -> 13216 bytes .../__pycache__/debug.cpython-312.pyc | Bin 0 -> 10165 bytes .../__pycache__/download.cpython-312.pyc | Bin 0 -> 7593 bytes .../__pycache__/freeze.cpython-312.pyc | Bin 0 -> 4420 bytes .../commands/__pycache__/hash.cpython-312.pyc | Bin 0 -> 2987 bytes .../commands/__pycache__/help.cpython-312.pyc | Bin 0 -> 1677 bytes .../__pycache__/index.cpython-312.pyc | Bin 0 -> 6724 bytes .../__pycache__/inspect.cpython-312.pyc | Bin 0 -> 3979 bytes .../__pycache__/install.cpython-312.pyc | Bin 0 -> 28917 bytes .../commands/__pycache__/list.cpython-312.pyc | Bin 0 -> 15660 bytes .../__pycache__/search.cpython-312.pyc | Bin 0 -> 7625 bytes .../commands/__pycache__/show.cpython-312.pyc | Bin 0 -> 9732 bytes .../__pycache__/uninstall.cpython-312.pyc | Bin 0 -> 4730 bytes .../__pycache__/wheel.cpython-312.pyc | Bin 0 -> 8960 bytes .../pip/_internal/commands/cache.py | 225 + .../pip/_internal/commands/check.py | 54 + .../pip/_internal/commands/completion.py | 130 + .../pip/_internal/commands/configuration.py | 280 + .../pip/_internal/commands/debug.py | 201 + .../pip/_internal/commands/download.py | 147 + .../pip/_internal/commands/freeze.py | 109 + .../pip/_internal/commands/hash.py | 59 + .../pip/_internal/commands/help.py | 41 + .../pip/_internal/commands/index.py | 139 + .../pip/_internal/commands/inspect.py | 92 + .../pip/_internal/commands/install.py | 774 ++ .../pip/_internal/commands/list.py | 370 + .../pip/_internal/commands/search.py | 174 + .../pip/_internal/commands/show.py | 189 + .../pip/_internal/commands/uninstall.py | 113 + .../pip/_internal/commands/wheel.py | 183 + .../pip/_internal/configuration.py | 383 + .../pip/_internal/distributions/__init__.py | 21 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 945 bytes .../__pycache__/base.cpython-312.pyc | Bin 0 -> 2866 bytes .../__pycache__/installed.cpython-312.pyc | Bin 0 -> 1704 bytes .../__pycache__/sdist.cpython-312.pyc | Bin 0 -> 8492 bytes .../__pycache__/wheel.cpython-312.pyc | Bin 0 -> 2252 bytes .../pip/_internal/distributions/base.py | 51 + .../pip/_internal/distributions/installed.py | 29 + .../pip/_internal/distributions/sdist.py | 156 + .../pip/_internal/distributions/wheel.py | 40 + .../site-packages/pip/_internal/exceptions.py | 728 ++ .../pip/_internal/index/__init__.py | 2 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 236 bytes .../__pycache__/collector.cpython-312.pyc | Bin 0 -> 21890 bytes .../package_finder.cpython-312.pyc | Bin 0 -> 40739 bytes .../index/__pycache__/sources.cpython-312.pyc | Bin 0 -> 12608 bytes .../pip/_internal/index/collector.py | 507 + .../pip/_internal/index/package_finder.py | 1027 ++ .../pip/_internal/index/sources.py | 285 + .../pip/_internal/locations/__init__.py | 467 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 16780 bytes .../__pycache__/_distutils.cpython-312.pyc | Bin 0 -> 6860 bytes .../__pycache__/_sysconfig.cpython-312.pyc | Bin 0 -> 8015 bytes .../__pycache__/base.cpython-312.pyc | Bin 0 -> 3785 bytes .../pip/_internal/locations/_distutils.py | 172 + .../pip/_internal/locations/_sysconfig.py | 213 + .../pip/_internal/locations/base.py | 81 + .../site-packages/pip/_internal/main.py | 12 + .../pip/_internal/metadata/__init__.py | 128 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 5886 bytes .../__pycache__/_json.cpython-312.pyc | Bin 0 -> 2879 bytes .../metadata/__pycache__/base.cpython-312.pyc | Bin 0 -> 35716 bytes .../__pycache__/pkg_resources.cpython-312.pyc | Bin 0 -> 15794 bytes .../pip/_internal/metadata/_json.py | 84 + .../pip/_internal/metadata/base.py | 702 + .../_internal/metadata/importlib/__init__.py | 6 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 362 bytes .../__pycache__/_compat.cpython-312.pyc | Bin 0 -> 3337 bytes .../__pycache__/_dists.cpython-312.pyc | Bin 0 -> 13429 bytes .../__pycache__/_envs.cpython-312.pyc | Bin 0 -> 11184 bytes .../_internal/metadata/importlib/_compat.py | 55 + .../_internal/metadata/importlib/_dists.py | 227 + .../pip/_internal/metadata/importlib/_envs.py | 189 + .../pip/_internal/metadata/pkg_resources.py | 278 + .../pip/_internal/models/__init__.py | 2 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 270 bytes .../__pycache__/candidate.cpython-312.pyc | Bin 0 -> 1909 bytes .../__pycache__/direct_url.cpython-312.pyc | Bin 0 -> 11203 bytes .../format_control.cpython-312.pyc | Bin 0 -> 4231 bytes .../models/__pycache__/index.cpython-312.pyc | Bin 0 -> 1698 bytes .../installation_report.cpython-312.pyc | Bin 0 -> 2276 bytes .../models/__pycache__/link.cpython-312.pyc | Bin 0 -> 26006 bytes .../models/__pycache__/scheme.cpython-312.pyc | Bin 0 -> 1173 bytes .../__pycache__/search_scope.cpython-312.pyc | Bin 0 -> 5092 bytes .../selection_prefs.cpython-312.pyc | Bin 0 -> 1855 bytes .../__pycache__/target_python.cpython-312.pyc | Bin 0 -> 4958 bytes .../models/__pycache__/wheel.cpython-312.pyc | Bin 0 -> 5784 bytes .../pip/_internal/models/candidate.py | 30 + .../pip/_internal/models/direct_url.py | 235 + .../pip/_internal/models/format_control.py | 78 + .../pip/_internal/models/index.py | 28 + .../_internal/models/installation_report.py | 56 + .../pip/_internal/models/link.py | 579 + .../pip/_internal/models/scheme.py | 31 + .../pip/_internal/models/search_scope.py | 132 + .../pip/_internal/models/selection_prefs.py | 51 + .../pip/_internal/models/target_python.py | 122 + .../pip/_internal/models/wheel.py | 92 + .../pip/_internal/network/__init__.py | 2 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 258 bytes .../network/__pycache__/auth.cpython-312.pyc | Bin 0 -> 22000 bytes .../network/__pycache__/cache.cpython-312.pyc | Bin 0 -> 6522 bytes .../__pycache__/download.cpython-312.pyc | Bin 0 -> 8557 bytes .../__pycache__/lazy_wheel.cpython-312.pyc | Bin 0 -> 11667 bytes .../__pycache__/session.cpython-312.pyc | Bin 0 -> 18778 bytes .../network/__pycache__/utils.cpython-312.pyc | Bin 0 -> 2257 bytes .../__pycache__/xmlrpc.cpython-312.pyc | Bin 0 -> 2953 bytes .../pip/_internal/network/auth.py | 561 + .../pip/_internal/network/cache.py | 106 + .../pip/_internal/network/download.py | 186 + .../pip/_internal/network/lazy_wheel.py | 210 + .../pip/_internal/network/session.py | 520 + .../pip/_internal/network/utils.py | 96 + .../pip/_internal/network/xmlrpc.py | 62 + .../pip/_internal/operations/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 201 bytes .../__pycache__/check.cpython-312.pyc | Bin 0 -> 7583 bytes .../__pycache__/freeze.cpython-312.pyc | Bin 0 -> 10121 bytes .../__pycache__/prepare.cpython-312.pyc | Bin 0 -> 25751 bytes .../_internal/operations/build/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 207 bytes .../__pycache__/build_tracker.cpython-312.pyc | Bin 0 -> 7827 bytes .../__pycache__/metadata.cpython-312.pyc | Bin 0 -> 1884 bytes .../metadata_editable.cpython-312.pyc | Bin 0 -> 1918 bytes .../metadata_legacy.cpython-312.pyc | Bin 0 -> 3069 bytes .../build/__pycache__/wheel.cpython-312.pyc | Bin 0 -> 1688 bytes .../wheel_editable.cpython-312.pyc | Bin 0 -> 2029 bytes .../__pycache__/wheel_legacy.cpython-312.pyc | Bin 0 -> 3933 bytes .../operations/build/build_tracker.py | 139 + .../_internal/operations/build/metadata.py | 39 + .../operations/build/metadata_editable.py | 41 + .../operations/build/metadata_legacy.py | 74 + .../pip/_internal/operations/build/wheel.py | 37 + .../operations/build/wheel_editable.py | 46 + .../operations/build/wheel_legacy.py | 102 + .../pip/_internal/operations/check.py | 187 + .../pip/_internal/operations/freeze.py | 255 + .../_internal/operations/install/__init__.py | 2 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 270 bytes .../editable_legacy.cpython-312.pyc | Bin 0 -> 1821 bytes .../install/__pycache__/wheel.cpython-312.pyc | Bin 0 -> 33863 bytes .../operations/install/editable_legacy.py | 46 + .../pip/_internal/operations/install/wheel.py | 734 ++ .../pip/_internal/operations/prepare.py | 730 ++ .../site-packages/pip/_internal/pyproject.py | 179 + .../pip/_internal/req/__init__.py | 92 + .../req/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 3747 bytes .../__pycache__/constructors.cpython-312.pyc | Bin 0 -> 21586 bytes .../req/__pycache__/req_file.cpython-312.pyc | Bin 0 -> 21465 bytes .../__pycache__/req_install.cpython-312.pyc | Bin 0 -> 38418 bytes .../req/__pycache__/req_set.cpython-312.pyc | Bin 0 -> 7222 bytes .../__pycache__/req_uninstall.cpython-312.pyc | Bin 0 -> 32981 bytes .../pip/_internal/req/constructors.py | 576 + .../pip/_internal/req/req_file.py | 554 + .../pip/_internal/req/req_install.py | 923 ++ .../pip/_internal/req/req_set.py | 119 + .../pip/_internal/req/req_uninstall.py | 649 + .../pip/_internal/resolution/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 201 bytes .../__pycache__/base.cpython-312.pyc | Bin 0 -> 1189 bytes .../pip/_internal/resolution/base.py | 20 + .../_internal/resolution/legacy/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 208 bytes .../__pycache__/resolver.cpython-312.pyc | Bin 0 -> 22443 bytes .../_internal/resolution/legacy/resolver.py | 598 + .../resolution/resolvelib/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 212 bytes .../__pycache__/base.cpython-312.pyc | Bin 0 -> 8341 bytes .../__pycache__/candidates.cpython-312.pyc | Bin 0 -> 30402 bytes .../__pycache__/factory.cpython-312.pyc | Bin 0 -> 32118 bytes .../found_candidates.cpython-312.pyc | Bin 0 -> 6212 bytes .../__pycache__/provider.cpython-312.pyc | Bin 0 -> 10382 bytes .../__pycache__/reporter.cpython-312.pyc | Bin 0 -> 4939 bytes .../__pycache__/requirements.cpython-312.pyc | Bin 0 -> 11433 bytes .../__pycache__/resolver.cpython-312.pyc | Bin 0 -> 12355 bytes .../_internal/resolution/resolvelib/base.py | 141 + .../resolution/resolvelib/candidates.py | 597 + .../resolution/resolvelib/factory.py | 812 ++ .../resolution/resolvelib/found_candidates.py | 155 + .../resolution/resolvelib/provider.py | 255 + .../resolution/resolvelib/reporter.py | 80 + .../resolution/resolvelib/requirements.py | 166 + .../resolution/resolvelib/resolver.py | 317 + .../pip/_internal/self_outdated_check.py | 248 + .../pip/_internal/utils/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 196 bytes .../__pycache__/_jaraco_text.cpython-312.pyc | Bin 0 -> 4537 bytes .../utils/__pycache__/_log.cpython-312.pyc | Bin 0 -> 1867 bytes .../utils/__pycache__/appdirs.cpython-312.pyc | Bin 0 -> 2411 bytes .../utils/__pycache__/compat.cpython-312.pyc | Bin 0 -> 2214 bytes .../compatibility_tags.cpython-312.pyc | Bin 0 -> 5562 bytes .../__pycache__/datetime.cpython-312.pyc | Bin 0 -> 685 bytes .../__pycache__/deprecation.cpython-312.pyc | Bin 0 -> 4187 bytes .../direct_url_helpers.cpython-312.pyc | Bin 0 -> 3564 bytes .../__pycache__/egg_link.cpython-312.pyc | Bin 0 -> 3227 bytes .../__pycache__/encoding.cpython-312.pyc | Bin 0 -> 2159 bytes .../__pycache__/entrypoints.cpython-312.pyc | Bin 0 -> 3994 bytes .../__pycache__/filesystem.cpython-312.pyc | Bin 0 -> 7459 bytes .../__pycache__/filetypes.cpython-312.pyc | Bin 0 -> 1165 bytes .../utils/__pycache__/glibc.cpython-312.pyc | Bin 0 -> 2343 bytes .../utils/__pycache__/hashes.cpython-312.pyc | Bin 0 -> 7555 bytes .../utils/__pycache__/logging.cpython-312.pyc | Bin 0 -> 13558 bytes .../utils/__pycache__/misc.cpython-312.pyc | Bin 0 -> 34122 bytes .../utils/__pycache__/models.cpython-312.pyc | Bin 0 -> 2713 bytes .../__pycache__/packaging.cpython-312.pyc | Bin 0 -> 2584 bytes .../setuptools_build.cpython-312.pyc | Bin 0 -> 4551 bytes .../__pycache__/subprocess.cpython-312.pyc | Bin 0 -> 8719 bytes .../__pycache__/temp_dir.cpython-312.pyc | Bin 0 -> 12063 bytes .../__pycache__/unpacking.cpython-312.pyc | Bin 0 -> 11109 bytes .../utils/__pycache__/urls.cpython-312.pyc | Bin 0 -> 2406 bytes .../__pycache__/virtualenv.cpython-312.pyc | Bin 0 -> 4481 bytes .../utils/__pycache__/wheel.cpython-312.pyc | Bin 0 -> 5927 bytes .../pip/_internal/utils/_jaraco_text.py | 109 + .../site-packages/pip/_internal/utils/_log.py | 38 + .../pip/_internal/utils/appdirs.py | 52 + .../pip/_internal/utils/compat.py | 63 + .../pip/_internal/utils/compatibility_tags.py | 165 + .../pip/_internal/utils/datetime.py | 11 + .../pip/_internal/utils/deprecation.py | 120 + .../pip/_internal/utils/direct_url_helpers.py | 87 + .../pip/_internal/utils/egg_link.py | 80 + .../pip/_internal/utils/encoding.py | 36 + .../pip/_internal/utils/entrypoints.py | 84 + .../pip/_internal/utils/filesystem.py | 153 + .../pip/_internal/utils/filetypes.py | 27 + .../pip/_internal/utils/glibc.py | 88 + .../pip/_internal/utils/hashes.py | 151 + .../pip/_internal/utils/logging.py | 348 + .../site-packages/pip/_internal/utils/misc.py | 783 ++ .../pip/_internal/utils/models.py | 39 + .../pip/_internal/utils/packaging.py | 57 + .../pip/_internal/utils/setuptools_build.py | 146 + .../pip/_internal/utils/subprocess.py | 260 + .../pip/_internal/utils/temp_dir.py | 296 + .../pip/_internal/utils/unpacking.py | 257 + .../site-packages/pip/_internal/utils/urls.py | 62 + .../pip/_internal/utils/virtualenv.py | 104 + .../pip/_internal/utils/wheel.py | 134 + .../pip/_internal/vcs/__init__.py | 15 + .../vcs/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 535 bytes .../vcs/__pycache__/bazaar.cpython-312.pyc | Bin 0 -> 5027 bytes .../vcs/__pycache__/git.cpython-312.pyc | Bin 0 -> 18996 bytes .../vcs/__pycache__/mercurial.cpython-312.pyc | Bin 0 -> 7616 bytes .../__pycache__/subversion.cpython-312.pyc | Bin 0 -> 12488 bytes .../versioncontrol.cpython-312.pyc | Bin 0 -> 29014 bytes .../site-packages/pip/_internal/vcs/bazaar.py | 112 + .../site-packages/pip/_internal/vcs/git.py | 526 + .../pip/_internal/vcs/mercurial.py | 163 + .../pip/_internal/vcs/subversion.py | 324 + .../pip/_internal/vcs/versioncontrol.py | 705 + .../pip/_internal/wheel_builder.py | 354 + .../site-packages/pip/_vendor/__init__.py | 121 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 4697 bytes .../_vendor/__pycache__/six.cpython-312.pyc | Bin 0 -> 41274 bytes .../typing_extensions.cpython-312.pyc | Bin 0 -> 122054 bytes .../pip/_vendor/cachecontrol/__init__.py | 28 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 907 bytes .../__pycache__/_cmd.cpython-312.pyc | Bin 0 -> 2651 bytes .../__pycache__/adapter.cpython-312.pyc | Bin 0 -> 6469 bytes .../__pycache__/cache.cpython-312.pyc | Bin 0 -> 3814 bytes .../__pycache__/controller.cpython-312.pyc | Bin 0 -> 16172 bytes .../__pycache__/filewrapper.cpython-312.pyc | Bin 0 -> 4352 bytes .../__pycache__/heuristics.cpython-312.pyc | Bin 0 -> 6699 bytes .../__pycache__/serialize.cpython-312.pyc | Bin 0 -> 6410 bytes .../__pycache__/wrapper.cpython-312.pyc | Bin 0 -> 1679 bytes .../pip/_vendor/cachecontrol/_cmd.py | 70 + .../pip/_vendor/cachecontrol/adapter.py | 161 + .../pip/_vendor/cachecontrol/cache.py | 74 + .../_vendor/cachecontrol/caches/__init__.py | 8 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 440 bytes .../__pycache__/file_cache.cpython-312.pyc | Bin 0 -> 7715 bytes .../__pycache__/redis_cache.cpython-312.pyc | Bin 0 -> 2743 bytes .../_vendor/cachecontrol/caches/file_cache.py | 181 + .../cachecontrol/caches/redis_cache.py | 48 + .../pip/_vendor/cachecontrol/controller.py | 494 + .../pip/_vendor/cachecontrol/filewrapper.py | 119 + .../pip/_vendor/cachecontrol/heuristics.py | 154 + .../pip/_vendor/cachecontrol/serialize.py | 206 + .../pip/_vendor/cachecontrol/wrapper.py | 43 + .../pip/_vendor/certifi/__init__.py | 4 + .../pip/_vendor/certifi/__main__.py | 12 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 323 bytes .../__pycache__/__main__.cpython-312.pyc | Bin 0 -> 650 bytes .../certifi/__pycache__/core.cpython-312.pyc | Bin 0 -> 3332 bytes .../pip/_vendor/certifi/cacert.pem | 4635 +++++++ .../site-packages/pip/_vendor/certifi/core.py | 119 + .../pip/_vendor/chardet/__init__.py | 115 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 4573 bytes .../__pycache__/big5freq.cpython-312.pyc | Bin 0 -> 27204 bytes .../__pycache__/big5prober.cpython-312.pyc | Bin 0 -> 1392 bytes .../chardistribution.cpython-312.pyc | Bin 0 -> 9643 bytes .../charsetgroupprober.cpython-312.pyc | Bin 0 -> 4127 bytes .../__pycache__/charsetprober.cpython-312.pyc | Bin 0 -> 5023 bytes .../codingstatemachine.cpython-312.pyc | Bin 0 -> 3883 bytes .../codingstatemachinedict.cpython-312.pyc | Bin 0 -> 794 bytes .../__pycache__/cp949prober.cpython-312.pyc | Bin 0 -> 1401 bytes .../chardet/__pycache__/enums.cpython-312.pyc | Bin 0 -> 3001 bytes .../__pycache__/escprober.cpython-312.pyc | Bin 0 -> 4571 bytes .../chardet/__pycache__/escsm.cpython-312.pyc | Bin 0 -> 15315 bytes .../__pycache__/eucjpprober.cpython-312.pyc | Bin 0 -> 4388 bytes .../__pycache__/euckrfreq.cpython-312.pyc | Bin 0 -> 12087 bytes .../__pycache__/euckrprober.cpython-312.pyc | Bin 0 -> 1395 bytes .../__pycache__/euctwfreq.cpython-312.pyc | Bin 0 -> 27209 bytes .../__pycache__/euctwprober.cpython-312.pyc | Bin 0 -> 1395 bytes .../__pycache__/gb2312freq.cpython-312.pyc | Bin 0 -> 19131 bytes .../__pycache__/gb2312prober.cpython-312.pyc | Bin 0 -> 1408 bytes .../__pycache__/hebrewprober.cpython-312.pyc | Bin 0 -> 5827 bytes .../__pycache__/jisfreq.cpython-312.pyc | Bin 0 -> 22160 bytes .../__pycache__/johabfreq.cpython-312.pyc | Bin 0 -> 83008 bytes .../__pycache__/johabprober.cpython-312.pyc | Bin 0 -> 1399 bytes .../__pycache__/jpcntx.cpython-312.pyc | Bin 0 -> 39554 bytes .../langbulgarianmodel.cpython-312.pyc | Bin 0 -> 83127 bytes .../langgreekmodel.cpython-312.pyc | Bin 0 -> 76993 bytes .../langhebrewmodel.cpython-312.pyc | Bin 0 -> 77504 bytes .../langhungarianmodel.cpython-312.pyc | Bin 0 -> 83081 bytes .../langrussianmodel.cpython-312.pyc | Bin 0 -> 105256 bytes .../__pycache__/langthaimodel.cpython-312.pyc | Bin 0 -> 77682 bytes .../langturkishmodel.cpython-312.pyc | Bin 0 -> 77521 bytes .../__pycache__/latin1prober.cpython-312.pyc | Bin 0 -> 7007 bytes .../macromanprober.cpython-312.pyc | Bin 0 -> 7187 bytes .../mbcharsetprober.cpython-312.pyc | Bin 0 -> 3908 bytes .../mbcsgroupprober.cpython-312.pyc | Bin 0 -> 1593 bytes .../__pycache__/mbcssm.cpython-312.pyc | Bin 0 -> 38650 bytes .../__pycache__/resultdict.cpython-312.pyc | Bin 0 -> 637 bytes .../sbcharsetprober.cpython-312.pyc | Bin 0 -> 6392 bytes .../sbcsgroupprober.cpython-312.pyc | Bin 0 -> 2362 bytes .../__pycache__/sjisprober.cpython-312.pyc | Bin 0 -> 4500 bytes .../universaldetector.cpython-312.pyc | Bin 0 -> 12274 bytes .../__pycache__/utf1632prober.cpython-312.pyc | Bin 0 -> 9984 bytes .../__pycache__/utf8prober.cpython-312.pyc | Bin 0 -> 3180 bytes .../__pycache__/version.cpython-312.pyc | Bin 0 -> 493 bytes .../pip/_vendor/chardet/big5freq.py | 386 + .../pip/_vendor/chardet/big5prober.py | 47 + .../pip/_vendor/chardet/chardistribution.py | 261 + .../pip/_vendor/chardet/charsetgroupprober.py | 106 + .../pip/_vendor/chardet/charsetprober.py | 147 + .../pip/_vendor/chardet/cli/__init__.py | 0 .../cli/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 200 bytes .../__pycache__/chardetect.cpython-312.pyc | Bin 0 -> 4017 bytes .../pip/_vendor/chardet/cli/chardetect.py | 112 + .../pip/_vendor/chardet/codingstatemachine.py | 90 + .../_vendor/chardet/codingstatemachinedict.py | 19 + .../pip/_vendor/chardet/cp949prober.py | 49 + .../pip/_vendor/chardet/enums.py | 85 + .../pip/_vendor/chardet/escprober.py | 102 + .../pip/_vendor/chardet/escsm.py | 261 + .../pip/_vendor/chardet/eucjpprober.py | 102 + .../pip/_vendor/chardet/euckrfreq.py | 196 + .../pip/_vendor/chardet/euckrprober.py | 47 + .../pip/_vendor/chardet/euctwfreq.py | 388 + .../pip/_vendor/chardet/euctwprober.py | 47 + .../pip/_vendor/chardet/gb2312freq.py | 284 + .../pip/_vendor/chardet/gb2312prober.py | 47 + .../pip/_vendor/chardet/hebrewprober.py | 316 + .../pip/_vendor/chardet/jisfreq.py | 325 + .../pip/_vendor/chardet/johabfreq.py | 2382 ++++ .../pip/_vendor/chardet/johabprober.py | 47 + .../pip/_vendor/chardet/jpcntx.py | 238 + .../pip/_vendor/chardet/langbulgarianmodel.py | 4649 +++++++ .../pip/_vendor/chardet/langgreekmodel.py | 4397 +++++++ .../pip/_vendor/chardet/langhebrewmodel.py | 4380 +++++++ .../pip/_vendor/chardet/langhungarianmodel.py | 4649 +++++++ .../pip/_vendor/chardet/langrussianmodel.py | 5725 +++++++++ .../pip/_vendor/chardet/langthaimodel.py | 4380 +++++++ .../pip/_vendor/chardet/langturkishmodel.py | 4380 +++++++ .../pip/_vendor/chardet/latin1prober.py | 147 + .../pip/_vendor/chardet/macromanprober.py | 162 + .../pip/_vendor/chardet/mbcharsetprober.py | 95 + .../pip/_vendor/chardet/mbcsgroupprober.py | 57 + .../pip/_vendor/chardet/mbcssm.py | 661 + .../pip/_vendor/chardet/metadata/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 205 bytes .../__pycache__/languages.cpython-312.pyc | Bin 0 -> 9760 bytes .../pip/_vendor/chardet/metadata/languages.py | 352 + .../pip/_vendor/chardet/resultdict.py | 16 + .../pip/_vendor/chardet/sbcharsetprober.py | 162 + .../pip/_vendor/chardet/sbcsgroupprober.py | 88 + .../pip/_vendor/chardet/sjisprober.py | 105 + .../pip/_vendor/chardet/universaldetector.py | 362 + .../pip/_vendor/chardet/utf1632prober.py | 225 + .../pip/_vendor/chardet/utf8prober.py | 82 + .../pip/_vendor/chardet/version.py | 9 + .../pip/_vendor/colorama/__init__.py | 7 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 497 bytes .../colorama/__pycache__/ansi.cpython-312.pyc | Bin 0 -> 3955 bytes .../__pycache__/ansitowin32.cpython-312.pyc | Bin 0 -> 16426 bytes .../__pycache__/initialise.cpython-312.pyc | Bin 0 -> 3555 bytes .../__pycache__/win32.cpython-312.pyc | Bin 0 -> 8131 bytes .../__pycache__/winterm.cpython-312.pyc | Bin 0 -> 9093 bytes .../pip/_vendor/colorama/ansi.py | 102 + .../pip/_vendor/colorama/ansitowin32.py | 277 + .../pip/_vendor/colorama/initialise.py | 121 + .../pip/_vendor/colorama/tests/__init__.py | 1 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 203 bytes .../__pycache__/ansi_test.cpython-312.pyc | Bin 0 -> 5472 bytes .../ansitowin32_test.cpython-312.pyc | Bin 0 -> 18108 bytes .../initialise_test.cpython-312.pyc | Bin 0 -> 11753 bytes .../__pycache__/isatty_test.cpython-312.pyc | Bin 0 -> 4909 bytes .../tests/__pycache__/utils.cpython-312.pyc | Bin 0 -> 2493 bytes .../__pycache__/winterm_test.cpython-312.pyc | Bin 0 -> 6617 bytes .../pip/_vendor/colorama/tests/ansi_test.py | 76 + .../colorama/tests/ansitowin32_test.py | 294 + .../_vendor/colorama/tests/initialise_test.py | 189 + .../pip/_vendor/colorama/tests/isatty_test.py | 57 + .../pip/_vendor/colorama/tests/utils.py | 49 + .../_vendor/colorama/tests/winterm_test.py | 131 + .../pip/_vendor/colorama/win32.py | 180 + .../pip/_vendor/colorama/winterm.py | 195 + .../pip/_vendor/distlib/__init__.py | 33 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 1274 bytes .../__pycache__/compat.cpython-312.pyc | Bin 0 -> 45610 bytes .../__pycache__/database.cpython-312.pyc | Bin 0 -> 66032 bytes .../distlib/__pycache__/index.cpython-312.pyc | Bin 0 -> 24371 bytes .../__pycache__/locators.cpython-312.pyc | Bin 0 -> 60163 bytes .../__pycache__/manifest.cpython-312.pyc | Bin 0 -> 15130 bytes .../__pycache__/markers.cpython-312.pyc | Bin 0 -> 7687 bytes .../__pycache__/metadata.cpython-312.pyc | Bin 0 -> 41804 bytes .../__pycache__/resources.cpython-312.pyc | Bin 0 -> 17330 bytes .../__pycache__/scripts.cpython-312.pyc | Bin 0 -> 19585 bytes .../distlib/__pycache__/util.cpython-312.pyc | Bin 0 -> 88261 bytes .../__pycache__/version.cpython-312.pyc | Bin 0 -> 30371 bytes .../distlib/__pycache__/wheel.cpython-312.pyc | Bin 0 -> 51866 bytes .../pip/_vendor/distlib/compat.py | 1138 ++ .../pip/_vendor/distlib/database.py | 1359 ++ .../pip/_vendor/distlib/index.py | 508 + .../pip/_vendor/distlib/locators.py | 1303 ++ .../pip/_vendor/distlib/manifest.py | 384 + .../pip/_vendor/distlib/markers.py | 167 + .../pip/_vendor/distlib/metadata.py | 1068 ++ .../pip/_vendor/distlib/resources.py | 358 + .../pip/_vendor/distlib/scripts.py | 452 + .../site-packages/pip/_vendor/distlib/util.py | 2025 +++ .../pip/_vendor/distlib/version.py | 751 ++ .../pip/_vendor/distlib/wheel.py | 1099 ++ .../pip/_vendor/distro/__init__.py | 54 + .../pip/_vendor/distro/__main__.py | 4 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 965 bytes .../__pycache__/__main__.cpython-312.pyc | Bin 0 -> 297 bytes .../distro/__pycache__/distro.cpython-312.pyc | Bin 0 -> 53759 bytes .../pip/_vendor/distro/distro.py | 1399 ++ .../pip/_vendor/idna/__init__.py | 44 + .../idna/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 886 bytes .../idna/__pycache__/codec.cpython-312.pyc | Bin 0 -> 4638 bytes .../idna/__pycache__/compat.cpython-312.pyc | Bin 0 -> 892 bytes .../idna/__pycache__/core.cpython-312.pyc | Bin 0 -> 16287 bytes .../idna/__pycache__/idnadata.cpython-312.pyc | Bin 0 -> 38387 bytes .../__pycache__/intranges.cpython-312.pyc | Bin 0 -> 2643 bytes .../__pycache__/package_data.cpython-312.pyc | Bin 0 -> 221 bytes .../__pycache__/uts46data.cpython-312.pyc | Bin 0 -> 158875 bytes .../site-packages/pip/_vendor/idna/codec.py | 112 + .../site-packages/pip/_vendor/idna/compat.py | 13 + .../site-packages/pip/_vendor/idna/core.py | 400 + .../pip/_vendor/idna/idnadata.py | 2151 ++++ .../pip/_vendor/idna/intranges.py | 54 + .../pip/_vendor/idna/package_data.py | 2 + .../pip/_vendor/idna/uts46data.py | 8600 +++++++++++++ .../pip/_vendor/msgpack/__init__.py | 57 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 1836 bytes .../__pycache__/exceptions.cpython-312.pyc | Bin 0 -> 2030 bytes .../msgpack/__pycache__/ext.cpython-312.pyc | Bin 0 -> 8673 bytes .../__pycache__/fallback.cpython-312.pyc | Bin 0 -> 43581 bytes .../pip/_vendor/msgpack/exceptions.py | 48 + .../site-packages/pip/_vendor/msgpack/ext.py | 193 + .../pip/_vendor/msgpack/fallback.py | 1010 ++ .../pip/_vendor/packaging/__about__.py | 26 + .../pip/_vendor/packaging/__init__.py | 25 + .../__pycache__/__about__.cpython-312.pyc | Bin 0 -> 635 bytes .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 471 bytes .../__pycache__/_manylinux.cpython-312.pyc | Bin 0 -> 12081 bytes .../__pycache__/_musllinux.cpython-312.pyc | Bin 0 -> 6915 bytes .../__pycache__/_structures.cpython-312.pyc | Bin 0 -> 3246 bytes .../__pycache__/markers.cpython-312.pyc | Bin 0 -> 14063 bytes .../__pycache__/requirements.cpython-312.pyc | Bin 0 -> 6951 bytes .../__pycache__/specifiers.cpython-312.pyc | Bin 0 -> 31252 bytes .../__pycache__/tags.cpython-312.pyc | Bin 0 -> 18961 bytes .../__pycache__/utils.cpython-312.pyc | Bin 0 -> 5873 bytes .../__pycache__/version.cpython-312.pyc | Bin 0 -> 19944 bytes .../pip/_vendor/packaging/_manylinux.py | 301 + .../pip/_vendor/packaging/_musllinux.py | 136 + .../pip/_vendor/packaging/_structures.py | 61 + .../pip/_vendor/packaging/markers.py | 304 + .../pip/_vendor/packaging/requirements.py | 146 + .../pip/_vendor/packaging/specifiers.py | 802 ++ .../pip/_vendor/packaging/tags.py | 487 + .../pip/_vendor/packaging/utils.py | 136 + .../pip/_vendor/packaging/version.py | 504 + .../pip/_vendor/pkg_resources/__init__.py | 3361 +++++ .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 146479 bytes .../pip/_vendor/platformdirs/__init__.py | 566 + .../pip/_vendor/platformdirs/__main__.py | 53 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 18034 bytes .../__pycache__/__main__.cpython-312.pyc | Bin 0 -> 1951 bytes .../__pycache__/android.cpython-312.pyc | Bin 0 -> 9449 bytes .../__pycache__/api.cpython-312.pyc | Bin 0 -> 9677 bytes .../__pycache__/macos.cpython-312.pyc | Bin 0 -> 5642 bytes .../__pycache__/unix.cpython-312.pyc | Bin 0 -> 12446 bytes .../__pycache__/version.cpython-312.pyc | Bin 0 -> 316 bytes .../__pycache__/windows.cpython-312.pyc | Bin 0 -> 13004 bytes .../pip/_vendor/platformdirs/android.py | 210 + .../pip/_vendor/platformdirs/api.py | 223 + .../pip/_vendor/platformdirs/macos.py | 91 + .../pip/_vendor/platformdirs/unix.py | 223 + .../pip/_vendor/platformdirs/version.py | 4 + .../pip/_vendor/platformdirs/windows.py | 255 + .../pip/_vendor/pygments/__init__.py | 82 + .../pip/_vendor/pygments/__main__.py | 17 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 3494 bytes .../__pycache__/__main__.cpython-312.pyc | Bin 0 -> 740 bytes .../__pycache__/cmdline.cpython-312.pyc | Bin 0 -> 26611 bytes .../__pycache__/console.cpython-312.pyc | Bin 0 -> 2632 bytes .../__pycache__/filter.cpython-312.pyc | Bin 0 -> 3238 bytes .../__pycache__/formatter.cpython-312.pyc | Bin 0 -> 4575 bytes .../__pycache__/lexer.cpython-312.pyc | Bin 0 -> 38335 bytes .../__pycache__/modeline.cpython-312.pyc | Bin 0 -> 1574 bytes .../__pycache__/plugin.cpython-312.pyc | Bin 0 -> 3402 bytes .../__pycache__/regexopt.cpython-312.pyc | Bin 0 -> 4087 bytes .../__pycache__/scanner.cpython-312.pyc | Bin 0 -> 4762 bytes .../__pycache__/sphinxext.cpython-312.pyc | Bin 0 -> 11052 bytes .../__pycache__/style.cpython-312.pyc | Bin 0 -> 6680 bytes .../__pycache__/token.cpython-312.pyc | Bin 0 -> 8148 bytes .../__pycache__/unistring.cpython-312.pyc | Bin 0 -> 32994 bytes .../pygments/__pycache__/util.cpython-312.pyc | Bin 0 -> 13987 bytes .../pip/_vendor/pygments/cmdline.py | 668 + .../pip/_vendor/pygments/console.py | 70 + .../pip/_vendor/pygments/filter.py | 71 + .../pip/_vendor/pygments/filters/__init__.py | 940 ++ .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 37942 bytes .../pip/_vendor/pygments/formatter.py | 124 + .../_vendor/pygments/formatters/__init__.py | 158 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 6932 bytes .../__pycache__/_mapping.cpython-312.pyc | Bin 0 -> 4221 bytes .../__pycache__/bbcode.cpython-312.pyc | Bin 0 -> 4200 bytes .../__pycache__/groff.cpython-312.pyc | Bin 0 -> 7270 bytes .../__pycache__/html.cpython-312.pyc | Bin 0 -> 40578 bytes .../__pycache__/img.cpython-312.pyc | Bin 0 -> 27049 bytes .../__pycache__/irc.cpython-312.pyc | Bin 0 -> 6071 bytes .../__pycache__/latex.cpython-312.pyc | Bin 0 -> 19960 bytes .../__pycache__/other.cpython-312.pyc | Bin 0 -> 6890 bytes .../__pycache__/pangomarkup.cpython-312.pyc | Bin 0 -> 2936 bytes .../__pycache__/rtf.cpython-312.pyc | Bin 0 -> 6132 bytes .../__pycache__/svg.cpython-312.pyc | Bin 0 -> 9072 bytes .../__pycache__/terminal.cpython-312.pyc | Bin 0 -> 5835 bytes .../__pycache__/terminal256.cpython-312.pyc | Bin 0 -> 15163 bytes .../_vendor/pygments/formatters/_mapping.py | 23 + .../pip/_vendor/pygments/formatters/bbcode.py | 108 + .../pip/_vendor/pygments/formatters/groff.py | 170 + .../pip/_vendor/pygments/formatters/html.py | 989 ++ .../pip/_vendor/pygments/formatters/img.py | 645 + .../pip/_vendor/pygments/formatters/irc.py | 154 + .../pip/_vendor/pygments/formatters/latex.py | 521 + .../pip/_vendor/pygments/formatters/other.py | 161 + .../pygments/formatters/pangomarkup.py | 83 + .../pip/_vendor/pygments/formatters/rtf.py | 146 + .../pip/_vendor/pygments/formatters/svg.py | 188 + .../_vendor/pygments/formatters/terminal.py | 127 + .../pygments/formatters/terminal256.py | 338 + .../pip/_vendor/pygments/lexer.py | 943 ++ .../pip/_vendor/pygments/lexers/__init__.py | 362 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 14658 bytes .../__pycache__/_mapping.cpython-312.pyc | Bin 0 -> 64410 bytes .../lexers/__pycache__/python.cpython-312.pyc | Bin 0 -> 42645 bytes .../pip/_vendor/pygments/lexers/_mapping.py | 559 + .../pip/_vendor/pygments/lexers/python.py | 1198 ++ .../pip/_vendor/pygments/modeline.py | 43 + .../pip/_vendor/pygments/plugin.py | 88 + .../pip/_vendor/pygments/regexopt.py | 91 + .../pip/_vendor/pygments/scanner.py | 104 + .../pip/_vendor/pygments/sphinxext.py | 217 + .../pip/_vendor/pygments/style.py | 197 + .../pip/_vendor/pygments/styles/__init__.py | 103 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 4454 bytes .../pip/_vendor/pygments/token.py | 213 + .../pip/_vendor/pygments/unistring.py | 153 + .../pip/_vendor/pygments/util.py | 330 + .../pip/_vendor/pyparsing/__init__.py | 322 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 7917 bytes .../__pycache__/actions.cpython-312.pyc | Bin 0 -> 8401 bytes .../__pycache__/common.cpython-312.pyc | Bin 0 -> 13420 bytes .../__pycache__/core.cpython-312.pyc | Bin 0 -> 267714 bytes .../__pycache__/exceptions.cpython-312.pyc | Bin 0 -> 13000 bytes .../__pycache__/helpers.cpython-312.pyc | Bin 0 -> 48507 bytes .../__pycache__/results.cpython-312.pyc | Bin 0 -> 34116 bytes .../__pycache__/testing.cpython-312.pyc | Bin 0 -> 17194 bytes .../__pycache__/unicode.cpython-312.pyc | Bin 0 -> 13190 bytes .../__pycache__/util.cpython-312.pyc | Bin 0 -> 14910 bytes .../pip/_vendor/pyparsing/actions.py | 217 + .../pip/_vendor/pyparsing/common.py | 432 + .../pip/_vendor/pyparsing/core.py | 6115 +++++++++ .../pip/_vendor/pyparsing/diagram/__init__.py | 656 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 26819 bytes .../pip/_vendor/pyparsing/exceptions.py | 299 + .../pip/_vendor/pyparsing/helpers.py | 1100 ++ .../pip/_vendor/pyparsing/results.py | 796 ++ .../pip/_vendor/pyparsing/testing.py | 331 + .../pip/_vendor/pyparsing/unicode.py | 361 + .../pip/_vendor/pyparsing/util.py | 284 + .../pip/_vendor/pyproject_hooks/__init__.py | 23 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 619 bytes .../__pycache__/_compat.cpython-312.pyc | Bin 0 -> 380 bytes .../__pycache__/_impl.cpython-312.pyc | Bin 0 -> 14731 bytes .../pip/_vendor/pyproject_hooks/_compat.py | 8 + .../pip/_vendor/pyproject_hooks/_impl.py | 330 + .../pyproject_hooks/_in_process/__init__.py | 18 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 1086 bytes .../__pycache__/_in_process.cpython-312.pyc | Bin 0 -> 14403 bytes .../_in_process/_in_process.py | 353 + .../pip/_vendor/requests/__init__.py | 182 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 5459 bytes .../__pycache__/__version__.cpython-312.pyc | Bin 0 -> 590 bytes .../_internal_utils.cpython-312.pyc | Bin 0 -> 2030 bytes .../__pycache__/adapters.cpython-312.pyc | Bin 0 -> 21286 bytes .../requests/__pycache__/api.cpython-312.pyc | Bin 0 -> 7210 bytes .../requests/__pycache__/auth.cpython-312.pyc | Bin 0 -> 13929 bytes .../__pycache__/certs.cpython-312.pyc | Bin 0 -> 928 bytes .../__pycache__/compat.cpython-312.pyc | Bin 0 -> 1513 bytes .../__pycache__/cookies.cpython-312.pyc | Bin 0 -> 25252 bytes .../__pycache__/exceptions.cpython-312.pyc | Bin 0 -> 7053 bytes .../requests/__pycache__/help.cpython-312.pyc | Bin 0 -> 4318 bytes .../__pycache__/hooks.cpython-312.pyc | Bin 0 -> 1058 bytes .../__pycache__/models.cpython-312.pyc | Bin 0 -> 35454 bytes .../__pycache__/packages.cpython-312.pyc | Bin 0 -> 778 bytes .../__pycache__/sessions.cpython-312.pyc | Bin 0 -> 27763 bytes .../__pycache__/status_codes.cpython-312.pyc | Bin 0 -> 5965 bytes .../__pycache__/structures.cpython-312.pyc | Bin 0 -> 5623 bytes .../__pycache__/utils.cpython-312.pyc | Bin 0 -> 36275 bytes .../pip/_vendor/requests/__version__.py | 14 + .../pip/_vendor/requests/_internal_utils.py | 50 + .../pip/_vendor/requests/adapters.py | 538 + .../site-packages/pip/_vendor/requests/api.py | 157 + .../pip/_vendor/requests/auth.py | 315 + .../pip/_vendor/requests/certs.py | 24 + .../pip/_vendor/requests/compat.py | 67 + .../pip/_vendor/requests/cookies.py | 561 + .../pip/_vendor/requests/exceptions.py | 141 + .../pip/_vendor/requests/help.py | 131 + .../pip/_vendor/requests/hooks.py | 33 + .../pip/_vendor/requests/models.py | 1034 ++ .../pip/_vendor/requests/packages.py | 16 + .../pip/_vendor/requests/sessions.py | 833 ++ .../pip/_vendor/requests/status_codes.py | 128 + .../pip/_vendor/requests/structures.py | 99 + .../pip/_vendor/requests/utils.py | 1094 ++ .../pip/_vendor/resolvelib/__init__.py | 26 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 640 bytes .../__pycache__/providers.cpython-312.pyc | Bin 0 -> 6857 bytes .../__pycache__/reporters.cpython-312.pyc | Bin 0 -> 2660 bytes .../__pycache__/resolvers.cpython-312.pyc | Bin 0 -> 25903 bytes .../__pycache__/structs.cpython-312.pyc | Bin 0 -> 10512 bytes .../pip/_vendor/resolvelib/compat/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 206 bytes .../collections_abc.cpython-312.pyc | Bin 0 -> 426 bytes .../resolvelib/compat/collections_abc.py | 6 + .../pip/_vendor/resolvelib/providers.py | 133 + .../pip/_vendor/resolvelib/reporters.py | 43 + .../pip/_vendor/resolvelib/resolvers.py | 547 + .../pip/_vendor/resolvelib/structs.py | 170 + .../pip/_vendor/rich/__init__.py | 177 + .../pip/_vendor/rich/__main__.py | 274 + .../rich/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 7021 bytes .../rich/__pycache__/__main__.cpython-312.pyc | Bin 0 -> 10310 bytes .../__pycache__/_cell_widths.cpython-312.pyc | Bin 0 -> 7827 bytes .../__pycache__/_emoji_codes.cpython-312.pyc | Bin 0 -> 205982 bytes .../_emoji_replace.cpython-312.pyc | Bin 0 -> 1735 bytes .../_export_format.cpython-312.pyc | Bin 0 -> 2327 bytes .../__pycache__/_extension.cpython-312.pyc | Bin 0 -> 543 bytes .../rich/__pycache__/_fileno.cpython-312.pyc | Bin 0 -> 861 bytes .../rich/__pycache__/_inspect.cpython-312.pyc | Bin 0 -> 12083 bytes .../__pycache__/_log_render.cpython-312.pyc | Bin 0 -> 4153 bytes .../rich/__pycache__/_loop.cpython-312.pyc | Bin 0 -> 1891 bytes .../__pycache__/_null_file.cpython-312.pyc | Bin 0 -> 3626 bytes .../__pycache__/_palettes.cpython-312.pyc | Bin 0 -> 5166 bytes .../rich/__pycache__/_pick.cpython-312.pyc | Bin 0 -> 732 bytes .../rich/__pycache__/_ratio.cpython-312.pyc | Bin 0 -> 6585 bytes .../__pycache__/_spinners.cpython-312.pyc | Bin 0 -> 13185 bytes .../rich/__pycache__/_stack.cpython-312.pyc | Bin 0 -> 971 bytes .../rich/__pycache__/_timer.cpython-312.pyc | Bin 0 -> 871 bytes .../_win32_console.cpython-312.pyc | Bin 0 -> 28982 bytes .../rich/__pycache__/_windows.cpython-312.pyc | Bin 0 -> 2496 bytes .../_windows_renderer.cpython-312.pyc | Bin 0 -> 3579 bytes .../rich/__pycache__/_wrap.cpython-312.pyc | Bin 0 -> 2366 bytes .../rich/__pycache__/abc.cpython-312.pyc | Bin 0 -> 1614 bytes .../rich/__pycache__/align.cpython-312.pyc | Bin 0 -> 12328 bytes .../rich/__pycache__/ansi.cpython-312.pyc | Bin 0 -> 9112 bytes .../rich/__pycache__/bar.cpython-312.pyc | Bin 0 -> 4278 bytes .../rich/__pycache__/box.cpython-312.pyc | Bin 0 -> 11864 bytes .../rich/__pycache__/cells.cpython-312.pyc | Bin 0 -> 5624 bytes .../rich/__pycache__/color.cpython-312.pyc | Bin 0 -> 26576 bytes .../__pycache__/color_triplet.cpython-312.pyc | Bin 0 -> 1707 bytes .../rich/__pycache__/columns.cpython-312.pyc | Bin 0 -> 8593 bytes .../rich/__pycache__/console.cpython-312.pyc | Bin 0 -> 113799 bytes .../__pycache__/constrain.cpython-312.pyc | Bin 0 -> 2264 bytes .../__pycache__/containers.cpython-312.pyc | Bin 0 -> 9232 bytes .../rich/__pycache__/control.cpython-312.pyc | Bin 0 -> 10935 bytes .../default_styles.cpython-312.pyc | Bin 0 -> 10379 bytes .../rich/__pycache__/diagnose.cpython-312.pyc | Bin 0 -> 1493 bytes .../rich/__pycache__/emoji.cpython-312.pyc | Bin 0 -> 4215 bytes .../rich/__pycache__/errors.cpython-312.pyc | Bin 0 -> 1851 bytes .../__pycache__/file_proxy.cpython-312.pyc | Bin 0 -> 3583 bytes .../rich/__pycache__/filesize.cpython-312.pyc | Bin 0 -> 3088 bytes .../__pycache__/highlighter.cpython-312.pyc | Bin 0 -> 9904 bytes .../rich/__pycache__/json.cpython-312.pyc | Bin 0 -> 6041 bytes .../rich/__pycache__/jupyter.cpython-312.pyc | Bin 0 -> 5215 bytes .../rich/__pycache__/layout.cpython-312.pyc | Bin 0 -> 20226 bytes .../rich/__pycache__/live.cpython-312.pyc | Bin 0 -> 19149 bytes .../__pycache__/live_render.cpython-312.pyc | Bin 0 -> 4900 bytes .../rich/__pycache__/logging.cpython-312.pyc | Bin 0 -> 13560 bytes .../rich/__pycache__/markup.cpython-312.pyc | Bin 0 -> 9304 bytes .../rich/__pycache__/measure.cpython-312.pyc | Bin 0 -> 6382 bytes .../rich/__pycache__/padding.cpython-312.pyc | Bin 0 -> 7140 bytes .../rich/__pycache__/pager.cpython-312.pyc | Bin 0 -> 1826 bytes .../rich/__pycache__/palette.cpython-312.pyc | Bin 0 -> 5320 bytes .../rich/__pycache__/panel.cpython-312.pyc | Bin 0 -> 12103 bytes .../rich/__pycache__/pretty.cpython-312.pyc | Bin 0 -> 40062 bytes .../rich/__pycache__/progress.cpython-312.pyc | Bin 0 -> 75084 bytes .../__pycache__/progress_bar.cpython-312.pyc | Bin 0 -> 10395 bytes .../rich/__pycache__/prompt.cpython-312.pyc | Bin 0 -> 14787 bytes .../rich/__pycache__/protocol.cpython-312.pyc | Bin 0 -> 1798 bytes .../rich/__pycache__/region.cpython-312.pyc | Bin 0 -> 573 bytes .../rich/__pycache__/repr.cpython-312.pyc | Bin 0 -> 6632 bytes .../rich/__pycache__/rule.cpython-312.pyc | Bin 0 -> 6574 bytes .../rich/__pycache__/scope.cpython-312.pyc | Bin 0 -> 3836 bytes .../rich/__pycache__/screen.cpython-312.pyc | Bin 0 -> 2490 bytes .../rich/__pycache__/segment.cpython-312.pyc | Bin 0 -> 28167 bytes .../rich/__pycache__/spinner.cpython-312.pyc | Bin 0 -> 6070 bytes .../rich/__pycache__/status.cpython-312.pyc | Bin 0 -> 6074 bytes .../rich/__pycache__/style.cpython-312.pyc | Bin 0 -> 33520 bytes .../rich/__pycache__/styled.cpython-312.pyc | Bin 0 -> 2145 bytes .../rich/__pycache__/syntax.cpython-312.pyc | Bin 0 -> 39618 bytes .../rich/__pycache__/table.cpython-312.pyc | Bin 0 -> 43590 bytes .../terminal_theme.cpython-312.pyc | Bin 0 -> 3354 bytes .../rich/__pycache__/text.cpython-312.pyc | Bin 0 -> 58969 bytes .../rich/__pycache__/theme.cpython-312.pyc | Bin 0 -> 6346 bytes .../rich/__pycache__/themes.cpython-312.pyc | Bin 0 -> 320 bytes .../__pycache__/traceback.cpython-312.pyc | Bin 0 -> 31554 bytes .../rich/__pycache__/tree.cpython-312.pyc | Bin 0 -> 11445 bytes .../pip/_vendor/rich/_cell_widths.py | 451 + .../pip/_vendor/rich/_emoji_codes.py | 3610 ++++++ .../pip/_vendor/rich/_emoji_replace.py | 32 + .../pip/_vendor/rich/_export_format.py | 76 + .../pip/_vendor/rich/_extension.py | 10 + .../site-packages/pip/_vendor/rich/_fileno.py | 24 + .../pip/_vendor/rich/_inspect.py | 270 + .../pip/_vendor/rich/_log_render.py | 94 + .../site-packages/pip/_vendor/rich/_loop.py | 43 + .../pip/_vendor/rich/_null_file.py | 69 + .../pip/_vendor/rich/_palettes.py | 309 + .../site-packages/pip/_vendor/rich/_pick.py | 17 + .../site-packages/pip/_vendor/rich/_ratio.py | 160 + .../pip/_vendor/rich/_spinners.py | 482 + .../site-packages/pip/_vendor/rich/_stack.py | 16 + .../site-packages/pip/_vendor/rich/_timer.py | 19 + .../pip/_vendor/rich/_win32_console.py | 662 + .../pip/_vendor/rich/_windows.py | 72 + .../pip/_vendor/rich/_windows_renderer.py | 56 + .../site-packages/pip/_vendor/rich/_wrap.py | 56 + .../site-packages/pip/_vendor/rich/abc.py | 33 + .../site-packages/pip/_vendor/rich/align.py | 311 + .../site-packages/pip/_vendor/rich/ansi.py | 240 + .../site-packages/pip/_vendor/rich/bar.py | 94 + .../site-packages/pip/_vendor/rich/box.py | 517 + .../site-packages/pip/_vendor/rich/cells.py | 154 + .../site-packages/pip/_vendor/rich/color.py | 622 + .../pip/_vendor/rich/color_triplet.py | 38 + .../site-packages/pip/_vendor/rich/columns.py | 187 + .../site-packages/pip/_vendor/rich/console.py | 2633 ++++ .../pip/_vendor/rich/constrain.py | 37 + .../pip/_vendor/rich/containers.py | 167 + .../site-packages/pip/_vendor/rich/control.py | 225 + .../pip/_vendor/rich/default_styles.py | 190 + .../pip/_vendor/rich/diagnose.py | 37 + .../site-packages/pip/_vendor/rich/emoji.py | 96 + .../site-packages/pip/_vendor/rich/errors.py | 34 + .../pip/_vendor/rich/file_proxy.py | 57 + .../pip/_vendor/rich/filesize.py | 89 + .../pip/_vendor/rich/highlighter.py | 232 + .../site-packages/pip/_vendor/rich/json.py | 140 + .../site-packages/pip/_vendor/rich/jupyter.py | 101 + .../site-packages/pip/_vendor/rich/layout.py | 443 + .../site-packages/pip/_vendor/rich/live.py | 375 + .../pip/_vendor/rich/live_render.py | 113 + .../site-packages/pip/_vendor/rich/logging.py | 289 + .../site-packages/pip/_vendor/rich/markup.py | 246 + .../site-packages/pip/_vendor/rich/measure.py | 151 + .../site-packages/pip/_vendor/rich/padding.py | 141 + .../site-packages/pip/_vendor/rich/pager.py | 34 + .../site-packages/pip/_vendor/rich/palette.py | 100 + .../site-packages/pip/_vendor/rich/panel.py | 308 + .../site-packages/pip/_vendor/rich/pretty.py | 994 ++ .../pip/_vendor/rich/progress.py | 1702 +++ .../pip/_vendor/rich/progress_bar.py | 224 + .../site-packages/pip/_vendor/rich/prompt.py | 376 + .../pip/_vendor/rich/protocol.py | 42 + .../site-packages/pip/_vendor/rich/region.py | 10 + .../site-packages/pip/_vendor/rich/repr.py | 149 + .../site-packages/pip/_vendor/rich/rule.py | 130 + .../site-packages/pip/_vendor/rich/scope.py | 86 + .../site-packages/pip/_vendor/rich/screen.py | 54 + .../site-packages/pip/_vendor/rich/segment.py | 739 ++ .../site-packages/pip/_vendor/rich/spinner.py | 137 + .../site-packages/pip/_vendor/rich/status.py | 132 + .../site-packages/pip/_vendor/rich/style.py | 796 ++ .../site-packages/pip/_vendor/rich/styled.py | 42 + .../site-packages/pip/_vendor/rich/syntax.py | 948 ++ .../site-packages/pip/_vendor/rich/table.py | 1002 ++ .../pip/_vendor/rich/terminal_theme.py | 153 + .../site-packages/pip/_vendor/rich/text.py | 1307 ++ .../site-packages/pip/_vendor/rich/theme.py | 115 + .../site-packages/pip/_vendor/rich/themes.py | 5 + .../pip/_vendor/rich/traceback.py | 756 ++ .../site-packages/pip/_vendor/rich/tree.py | 251 + .../site-packages/pip/_vendor/six.py | 998 ++ .../pip/_vendor/tenacity/__init__.py | 608 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 27092 bytes .../__pycache__/_asyncio.cpython-312.pyc | Bin 0 -> 4812 bytes .../__pycache__/_utils.cpython-312.pyc | Bin 0 -> 2321 bytes .../__pycache__/after.cpython-312.pyc | Bin 0 -> 1630 bytes .../__pycache__/before.cpython-312.pyc | Bin 0 -> 1470 bytes .../__pycache__/before_sleep.cpython-312.pyc | Bin 0 -> 2308 bytes .../tenacity/__pycache__/nap.cpython-312.pyc | Bin 0 -> 1418 bytes .../__pycache__/retry.cpython-312.pyc | Bin 0 -> 14287 bytes .../tenacity/__pycache__/stop.cpython-312.pyc | Bin 0 -> 5574 bytes .../__pycache__/tornadoweb.cpython-312.pyc | Bin 0 -> 2592 bytes .../tenacity/__pycache__/wait.cpython-312.pyc | Bin 0 -> 12419 bytes .../pip/_vendor/tenacity/_asyncio.py | 94 + .../pip/_vendor/tenacity/_utils.py | 76 + .../pip/_vendor/tenacity/after.py | 51 + .../pip/_vendor/tenacity/before.py | 46 + .../pip/_vendor/tenacity/before_sleep.py | 71 + .../site-packages/pip/_vendor/tenacity/nap.py | 43 + .../pip/_vendor/tenacity/retry.py | 272 + .../pip/_vendor/tenacity/stop.py | 103 + .../pip/_vendor/tenacity/tornadoweb.py | 59 + .../pip/_vendor/tenacity/wait.py | 228 + .../pip/_vendor/tomli/__init__.py | 11 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 390 bytes .../tomli/__pycache__/_parser.cpython-312.pyc | Bin 0 -> 26933 bytes .../tomli/__pycache__/_re.cpython-312.pyc | Bin 0 -> 3914 bytes .../tomli/__pycache__/_types.cpython-312.pyc | Bin 0 -> 372 bytes .../pip/_vendor/tomli/_parser.py | 691 + .../site-packages/pip/_vendor/tomli/_re.py | 107 + .../site-packages/pip/_vendor/tomli/_types.py | 10 + .../pip/_vendor/truststore/__init__.py | 13 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 624 bytes .../__pycache__/_api.cpython-312.pyc | Bin 0 -> 15803 bytes .../__pycache__/_macos.cpython-312.pyc | Bin 0 -> 16668 bytes .../__pycache__/_openssl.cpython-312.pyc | Bin 0 -> 2221 bytes .../_ssl_constants.cpython-312.pyc | Bin 0 -> 1105 bytes .../__pycache__/_windows.cpython-312.pyc | Bin 0 -> 15512 bytes .../pip/_vendor/truststore/_api.py | 302 + .../pip/_vendor/truststore/_macos.py | 501 + .../pip/_vendor/truststore/_openssl.py | 66 + .../pip/_vendor/truststore/_ssl_constants.py | 31 + .../pip/_vendor/truststore/_windows.py | 554 + .../pip/_vendor/typing_extensions.py | 3072 +++++ .../pip/_vendor/urllib3/__init__.py | 102 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 3411 bytes .../__pycache__/_collections.cpython-312.pyc | Bin 0 -> 15937 bytes .../__pycache__/_version.cpython-312.pyc | Bin 0 -> 224 bytes .../__pycache__/connection.cpython-312.pyc | Bin 0 -> 20413 bytes .../connectionpool.cpython-312.pyc | Bin 0 -> 36285 bytes .../__pycache__/exceptions.cpython-312.pyc | Bin 0 -> 13499 bytes .../__pycache__/fields.cpython-312.pyc | Bin 0 -> 10419 bytes .../__pycache__/filepost.cpython-312.pyc | Bin 0 -> 4024 bytes .../__pycache__/poolmanager.cpython-312.pyc | Bin 0 -> 20308 bytes .../__pycache__/request.cpython-312.pyc | Bin 0 -> 7300 bytes .../__pycache__/response.cpython-312.pyc | Bin 0 -> 33974 bytes .../pip/_vendor/urllib3/_collections.py | 337 + .../pip/_vendor/urllib3/_version.py | 2 + .../pip/_vendor/urllib3/connection.py | 572 + .../pip/_vendor/urllib3/connectionpool.py | 1132 ++ .../pip/_vendor/urllib3/contrib/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 204 bytes .../_appengine_environ.cpython-312.pyc | Bin 0 -> 1854 bytes .../__pycache__/appengine.cpython-312.pyc | Bin 0 -> 11570 bytes .../__pycache__/ntlmpool.cpython-312.pyc | Bin 0 -> 5725 bytes .../__pycache__/pyopenssl.cpython-312.pyc | Bin 0 -> 24456 bytes .../securetransport.cpython-312.pyc | Bin 0 -> 35562 bytes .../contrib/__pycache__/socks.cpython-312.pyc | Bin 0 -> 7517 bytes .../urllib3/contrib/_appengine_environ.py | 36 + .../contrib/_securetransport/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 221 bytes .../__pycache__/bindings.cpython-312.pyc | Bin 0 -> 17433 bytes .../__pycache__/low_level.cpython-312.pyc | Bin 0 -> 14807 bytes .../contrib/_securetransport/bindings.py | 519 + .../contrib/_securetransport/low_level.py | 397 + .../pip/_vendor/urllib3/contrib/appengine.py | 314 + .../pip/_vendor/urllib3/contrib/ntlmpool.py | 130 + .../pip/_vendor/urllib3/contrib/pyopenssl.py | 518 + .../urllib3/contrib/securetransport.py | 921 ++ .../pip/_vendor/urllib3/contrib/socks.py | 216 + .../pip/_vendor/urllib3/exceptions.py | 323 + .../pip/_vendor/urllib3/fields.py | 274 + .../pip/_vendor/urllib3/filepost.py | 98 + .../pip/_vendor/urllib3/packages/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 205 bytes .../packages/__pycache__/six.cpython-312.pyc | Bin 0 -> 41325 bytes .../urllib3/packages/backports/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 215 bytes .../__pycache__/makefile.cpython-312.pyc | Bin 0 -> 1831 bytes .../weakref_finalize.cpython-312.pyc | Bin 0 -> 7337 bytes .../urllib3/packages/backports/makefile.py | 51 + .../packages/backports/weakref_finalize.py | 155 + .../pip/_vendor/urllib3/packages/six.py | 1076 ++ .../pip/_vendor/urllib3/poolmanager.py | 537 + .../pip/_vendor/urllib3/request.py | 191 + .../pip/_vendor/urllib3/response.py | 879 ++ .../pip/_vendor/urllib3/util/__init__.py | 49 + .../util/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 1152 bytes .../__pycache__/connection.cpython-312.pyc | Bin 0 -> 4762 bytes .../util/__pycache__/proxy.cpython-312.pyc | Bin 0 -> 1558 bytes .../util/__pycache__/queue.cpython-312.pyc | Bin 0 -> 1358 bytes .../util/__pycache__/request.cpython-312.pyc | Bin 0 -> 4189 bytes .../util/__pycache__/response.cpython-312.pyc | Bin 0 -> 2995 bytes .../util/__pycache__/retry.cpython-312.pyc | Bin 0 -> 21703 bytes .../util/__pycache__/ssl_.cpython-312.pyc | Bin 0 -> 15109 bytes .../ssl_match_hostname.cpython-312.pyc | Bin 0 -> 5077 bytes .../__pycache__/ssltransport.cpython-312.pyc | Bin 0 -> 10778 bytes .../util/__pycache__/timeout.cpython-312.pyc | Bin 0 -> 11145 bytes .../util/__pycache__/url.cpython-312.pyc | Bin 0 -> 15801 bytes .../util/__pycache__/wait.cpython-312.pyc | Bin 0 -> 4409 bytes .../pip/_vendor/urllib3/util/connection.py | 149 + .../pip/_vendor/urllib3/util/proxy.py | 57 + .../pip/_vendor/urllib3/util/queue.py | 22 + .../pip/_vendor/urllib3/util/request.py | 137 + .../pip/_vendor/urllib3/util/response.py | 107 + .../pip/_vendor/urllib3/util/retry.py | 620 + .../pip/_vendor/urllib3/util/ssl_.py | 495 + .../urllib3/util/ssl_match_hostname.py | 159 + .../pip/_vendor/urllib3/util/ssltransport.py | 221 + .../pip/_vendor/urllib3/util/timeout.py | 271 + .../pip/_vendor/urllib3/util/url.py | 435 + .../pip/_vendor/urllib3/util/wait.py | 152 + .../site-packages/pip/_vendor/vendor.txt | 24 + .../pip/_vendor/webencodings/__init__.py | 342 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 12007 bytes .../__pycache__/labels.cpython-312.pyc | Bin 0 -> 7138 bytes .../__pycache__/mklabels.cpython-312.pyc | Bin 0 -> 2705 bytes .../__pycache__/tests.cpython-312.pyc | Bin 0 -> 9257 bytes .../x_user_defined.cpython-312.pyc | Bin 0 -> 3301 bytes .../pip/_vendor/webencodings/labels.py | 231 + .../pip/_vendor/webencodings/mklabels.py | 59 + .../pip/_vendor/webencodings/tests.py | 153 + .../_vendor/webencodings/x_user_defined.py | 325 + .../lib/python3.12/site-packages/pip/py.typed | 4 + .../platformdirs-4.2.2.dist-info/INSTALLER | 1 + .../platformdirs-4.2.2.dist-info/METADATA | 319 + .../platformdirs-4.2.2.dist-info/RECORD | 22 + .../platformdirs-4.2.2.dist-info/WHEEL | 4 + .../licenses/LICENSE | 21 + .../site-packages/platformdirs/__init__.py | 627 + .../site-packages/platformdirs/__main__.py | 55 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 19774 bytes .../__pycache__/__main__.cpython-312.pyc | Bin 0 -> 1949 bytes .../__pycache__/android.cpython-312.pyc | Bin 0 -> 10700 bytes .../__pycache__/api.cpython-312.pyc | Bin 0 -> 12924 bytes .../__pycache__/macos.cpython-312.pyc | Bin 0 -> 8000 bytes .../__pycache__/unix.cpython-312.pyc | Bin 0 -> 15025 bytes .../__pycache__/version.cpython-312.pyc | Bin 0 -> 590 bytes .../__pycache__/windows.cpython-312.pyc | Bin 0 -> 13666 bytes .../site-packages/platformdirs/android.py | 249 + .../site-packages/platformdirs/api.py | 292 + .../site-packages/platformdirs/macos.py | 130 + .../site-packages/platformdirs/py.typed | 0 .../site-packages/platformdirs/unix.py | 275 + .../site-packages/platformdirs/version.py | 16 + .../site-packages/platformdirs/windows.py | 272 + .../sqlparse-0.5.1.dist-info/INSTALLER | 1 + .../sqlparse-0.5.1.dist-info/METADATA | 114 + .../sqlparse-0.5.1.dist-info/RECORD | 50 + .../sqlparse-0.5.1.dist-info/WHEEL | 4 + .../sqlparse-0.5.1.dist-info/entry_points.txt | 2 + .../sqlparse-0.5.1.dist-info/licenses/AUTHORS | 85 + .../sqlparse-0.5.1.dist-info/licenses/LICENSE | 25 + .../site-packages/sqlparse/__init__.py | 72 + .../site-packages/sqlparse/__main__.py | 22 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 3093 bytes .../__pycache__/__main__.cpython-312.pyc | Bin 0 -> 655 bytes .../sqlparse/__pycache__/cli.cpython-312.pyc | Bin 0 -> 7422 bytes .../__pycache__/exceptions.cpython-312.pyc | Bin 0 -> 481 bytes .../__pycache__/formatter.cpython-312.pyc | Bin 0 -> 8360 bytes .../__pycache__/keywords.cpython-312.pyc | Bin 0 -> 51092 bytes .../__pycache__/lexer.cpython-312.pyc | Bin 0 -> 6786 bytes .../sqlparse/__pycache__/sql.cpython-312.pyc | Bin 0 -> 32090 bytes .../__pycache__/tokens.cpython-312.pyc | Bin 0 -> 2276 bytes .../__pycache__/utils.cpython-312.pyc | Bin 0 -> 4591 bytes .../python3.12/site-packages/sqlparse/cli.py | 203 + .../site-packages/sqlparse/engine/__init__.py | 16 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 428 bytes .../__pycache__/filter_stack.cpython-312.pyc | Bin 0 -> 1996 bytes .../__pycache__/grouping.cpython-312.pyc | Bin 0 -> 25110 bytes .../statement_splitter.cpython-312.pyc | Bin 0 -> 3993 bytes .../sqlparse/engine/filter_stack.py | 47 + .../site-packages/sqlparse/engine/grouping.py | 486 + .../sqlparse/engine/statement_splitter.py | 115 + .../site-packages/sqlparse/exceptions.py | 12 + .../sqlparse/filters/__init__.py | 42 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 1018 bytes .../aligned_indent.cpython-312.pyc | Bin 0 -> 7964 bytes .../__pycache__/others.cpython-312.pyc | Bin 0 -> 9327 bytes .../__pycache__/output.cpython-312.pyc | Bin 0 -> 6523 bytes .../__pycache__/reindent.cpython-312.pyc | Bin 0 -> 15672 bytes .../__pycache__/right_margin.cpython-312.pyc | Bin 0 -> 2216 bytes .../__pycache__/tokens.cpython-312.pyc | Bin 0 -> 2927 bytes .../sqlparse/filters/aligned_indent.py | 135 + .../site-packages/sqlparse/filters/others.py | 149 + .../site-packages/sqlparse/filters/output.py | 122 + .../sqlparse/filters/reindent.py | 247 + .../sqlparse/filters/right_margin.py | 48 + .../site-packages/sqlparse/filters/tokens.py | 59 + .../site-packages/sqlparse/formatter.py | 204 + .../site-packages/sqlparse/keywords.py | 1001 ++ .../site-packages/sqlparse/lexer.py | 161 + .../python3.12/site-packages/sqlparse/sql.py | 664 + .../site-packages/sqlparse/tokens.py | 71 + .../site-packages/sqlparse/utils.py | 124 + venv/lib64 | 1 + venv/pyvenv.cfg | 5 + 5875 files changed, 790094 insertions(+), 1 deletion(-) create mode 100644 blango/__pycache__/__init__.cpython-312.pyc create mode 100644 blango/__pycache__/settings.cpython-312.pyc create mode 100644 blango/__pycache__/urls.cpython-312.pyc create mode 100644 blango/__pycache__/wsgi.cpython-312.pyc create mode 100644 blog/__init__.py create mode 100644 blog/__pycache__/__init__.cpython-312.pyc create mode 100644 blog/__pycache__/admin.cpython-312.pyc create mode 100644 blog/__pycache__/apps.cpython-312.pyc create mode 100644 blog/__pycache__/models.cpython-312.pyc create mode 100644 blog/admin.py create mode 100644 blog/apps.py create mode 100644 blog/migrations/0001_initial.py create mode 100644 blog/migrations/__init__.py create mode 100644 blog/migrations/__pycache__/0001_initial.cpython-312.pyc create mode 100644 blog/migrations/__pycache__/__init__.cpython-312.pyc create mode 100644 blog/models.py create mode 100644 blog/tests.py create mode 100644 blog/views.py create mode 100644 db.sqlite3 create mode 100644 venv/bin/Activate.ps1 create mode 100644 venv/bin/activate create mode 100644 venv/bin/activate.csh create mode 100644 venv/bin/activate.fish create mode 100755 venv/bin/black create mode 100755 venv/bin/blackd create mode 100755 venv/bin/django-admin create mode 100755 venv/bin/pip create mode 100755 venv/bin/pip3 create mode 100755 venv/bin/pip3.12 create mode 120000 venv/bin/python create mode 120000 venv/bin/python3 create mode 120000 venv/bin/python3.12 create mode 100755 venv/bin/sqlformat create mode 100644 venv/lib/python3.12/site-packages/Django-5.1.dist-info/AUTHORS create mode 100644 venv/lib/python3.12/site-packages/Django-5.1.dist-info/INSTALLER create mode 100644 venv/lib/python3.12/site-packages/Django-5.1.dist-info/LICENSE create mode 100644 venv/lib/python3.12/site-packages/Django-5.1.dist-info/LICENSE.python create mode 100644 venv/lib/python3.12/site-packages/Django-5.1.dist-info/METADATA create mode 100644 venv/lib/python3.12/site-packages/Django-5.1.dist-info/RECORD create mode 100644 venv/lib/python3.12/site-packages/Django-5.1.dist-info/REQUESTED create mode 100644 venv/lib/python3.12/site-packages/Django-5.1.dist-info/WHEEL create mode 100644 venv/lib/python3.12/site-packages/Django-5.1.dist-info/entry_points.txt create mode 100644 venv/lib/python3.12/site-packages/Django-5.1.dist-info/top_level.txt create mode 100644 venv/lib/python3.12/site-packages/__pycache__/_black_version.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/__pycache__/mypy_extensions.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/_black_version.py create mode 100644 venv/lib/python3.12/site-packages/asgiref-3.8.1.dist-info/INSTALLER create mode 100644 venv/lib/python3.12/site-packages/asgiref-3.8.1.dist-info/LICENSE create mode 100644 venv/lib/python3.12/site-packages/asgiref-3.8.1.dist-info/METADATA create mode 100644 venv/lib/python3.12/site-packages/asgiref-3.8.1.dist-info/RECORD create mode 100644 venv/lib/python3.12/site-packages/asgiref-3.8.1.dist-info/WHEEL create mode 100644 venv/lib/python3.12/site-packages/asgiref-3.8.1.dist-info/top_level.txt create mode 100644 venv/lib/python3.12/site-packages/asgiref/__init__.py create mode 100644 venv/lib/python3.12/site-packages/asgiref/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/asgiref/__pycache__/compatibility.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/asgiref/__pycache__/current_thread_executor.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/asgiref/__pycache__/local.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/asgiref/__pycache__/server.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/asgiref/__pycache__/sync.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/asgiref/__pycache__/testing.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/asgiref/__pycache__/timeout.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/asgiref/__pycache__/typing.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/asgiref/__pycache__/wsgi.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/asgiref/compatibility.py create mode 100644 venv/lib/python3.12/site-packages/asgiref/current_thread_executor.py create mode 100644 venv/lib/python3.12/site-packages/asgiref/local.py create mode 100644 venv/lib/python3.12/site-packages/asgiref/py.typed create mode 100644 venv/lib/python3.12/site-packages/asgiref/server.py create mode 100644 venv/lib/python3.12/site-packages/asgiref/sync.py create mode 100644 venv/lib/python3.12/site-packages/asgiref/testing.py create mode 100644 venv/lib/python3.12/site-packages/asgiref/timeout.py create mode 100644 venv/lib/python3.12/site-packages/asgiref/typing.py create mode 100644 venv/lib/python3.12/site-packages/asgiref/wsgi.py create mode 100644 venv/lib/python3.12/site-packages/black-24.8.1.dev4+g699b45a.dist-info/INSTALLER create mode 100644 venv/lib/python3.12/site-packages/black-24.8.1.dev4+g699b45a.dist-info/METADATA create mode 100644 venv/lib/python3.12/site-packages/black-24.8.1.dev4+g699b45a.dist-info/RECORD create mode 100644 venv/lib/python3.12/site-packages/black-24.8.1.dev4+g699b45a.dist-info/REQUESTED create mode 100644 venv/lib/python3.12/site-packages/black-24.8.1.dev4+g699b45a.dist-info/WHEEL create mode 100644 venv/lib/python3.12/site-packages/black-24.8.1.dev4+g699b45a.dist-info/direct_url.json create mode 100644 venv/lib/python3.12/site-packages/black-24.8.1.dev4+g699b45a.dist-info/entry_points.txt create mode 100644 venv/lib/python3.12/site-packages/black-24.8.1.dev4+g699b45a.dist-info/licenses/AUTHORS.md create mode 100644 venv/lib/python3.12/site-packages/black-24.8.1.dev4+g699b45a.dist-info/licenses/LICENSE create mode 100644 venv/lib/python3.12/site-packages/black/__init__.py create mode 100644 venv/lib/python3.12/site-packages/black/__main__.py create mode 100644 venv/lib/python3.12/site-packages/black/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/black/__pycache__/__main__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/black/__pycache__/_width_table.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/black/__pycache__/brackets.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/black/__pycache__/cache.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/black/__pycache__/comments.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/black/__pycache__/concurrency.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/black/__pycache__/const.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/black/__pycache__/debug.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/black/__pycache__/files.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/black/__pycache__/handle_ipynb_magics.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/black/__pycache__/linegen.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/black/__pycache__/lines.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/black/__pycache__/mode.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/black/__pycache__/nodes.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/black/__pycache__/numerics.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/black/__pycache__/output.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/black/__pycache__/parsing.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/black/__pycache__/ranges.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/black/__pycache__/report.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/black/__pycache__/rusty.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/black/__pycache__/schema.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/black/__pycache__/strings.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/black/__pycache__/trans.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/black/_width_table.py create mode 100644 venv/lib/python3.12/site-packages/black/brackets.py create mode 100644 venv/lib/python3.12/site-packages/black/cache.py create mode 100644 venv/lib/python3.12/site-packages/black/comments.py create mode 100644 venv/lib/python3.12/site-packages/black/concurrency.py create mode 100644 venv/lib/python3.12/site-packages/black/const.py create mode 100644 venv/lib/python3.12/site-packages/black/debug.py create mode 100644 venv/lib/python3.12/site-packages/black/files.py create mode 100644 venv/lib/python3.12/site-packages/black/handle_ipynb_magics.py create mode 100644 venv/lib/python3.12/site-packages/black/linegen.py create mode 100644 venv/lib/python3.12/site-packages/black/lines.py create mode 100644 venv/lib/python3.12/site-packages/black/mode.py create mode 100644 venv/lib/python3.12/site-packages/black/nodes.py create mode 100644 venv/lib/python3.12/site-packages/black/numerics.py create mode 100644 venv/lib/python3.12/site-packages/black/output.py create mode 100644 venv/lib/python3.12/site-packages/black/parsing.py create mode 100644 venv/lib/python3.12/site-packages/black/py.typed create mode 100644 venv/lib/python3.12/site-packages/black/ranges.py create mode 100644 venv/lib/python3.12/site-packages/black/report.py create mode 100644 venv/lib/python3.12/site-packages/black/resources/__init__.py create mode 100644 venv/lib/python3.12/site-packages/black/resources/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/black/resources/black.schema.json create mode 100644 venv/lib/python3.12/site-packages/black/rusty.py create mode 100644 venv/lib/python3.12/site-packages/black/schema.py create mode 100644 venv/lib/python3.12/site-packages/black/strings.py create mode 100644 venv/lib/python3.12/site-packages/black/trans.py create mode 100644 venv/lib/python3.12/site-packages/blackd/__init__.py create mode 100644 venv/lib/python3.12/site-packages/blackd/__main__.py create mode 100644 venv/lib/python3.12/site-packages/blackd/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/blackd/__pycache__/__main__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/blackd/__pycache__/middlewares.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/blackd/middlewares.py create mode 100644 venv/lib/python3.12/site-packages/blib2to3/Grammar.txt create mode 100644 venv/lib/python3.12/site-packages/blib2to3/LICENSE create mode 100644 venv/lib/python3.12/site-packages/blib2to3/PatternGrammar.txt create mode 100644 venv/lib/python3.12/site-packages/blib2to3/README create mode 100644 venv/lib/python3.12/site-packages/blib2to3/__init__.py create mode 100644 venv/lib/python3.12/site-packages/blib2to3/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/blib2to3/__pycache__/pygram.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/blib2to3/__pycache__/pytree.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/blib2to3/pgen2/__init__.py create mode 100644 venv/lib/python3.12/site-packages/blib2to3/pgen2/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/blib2to3/pgen2/__pycache__/conv.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/blib2to3/pgen2/__pycache__/driver.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/blib2to3/pgen2/__pycache__/grammar.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/blib2to3/pgen2/__pycache__/literals.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/blib2to3/pgen2/__pycache__/parse.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/blib2to3/pgen2/__pycache__/pgen.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/blib2to3/pgen2/__pycache__/token.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/blib2to3/pgen2/__pycache__/tokenize.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/blib2to3/pgen2/conv.py create mode 100644 venv/lib/python3.12/site-packages/blib2to3/pgen2/driver.py create mode 100644 venv/lib/python3.12/site-packages/blib2to3/pgen2/grammar.py create mode 100644 venv/lib/python3.12/site-packages/blib2to3/pgen2/literals.py create mode 100644 venv/lib/python3.12/site-packages/blib2to3/pgen2/parse.py create mode 100644 venv/lib/python3.12/site-packages/blib2to3/pgen2/pgen.py create mode 100644 venv/lib/python3.12/site-packages/blib2to3/pgen2/token.py create mode 100644 venv/lib/python3.12/site-packages/blib2to3/pgen2/tokenize.py create mode 100644 venv/lib/python3.12/site-packages/blib2to3/pygram.py create mode 100644 venv/lib/python3.12/site-packages/blib2to3/pytree.py create mode 100644 venv/lib/python3.12/site-packages/click-8.1.7.dist-info/INSTALLER create mode 100644 venv/lib/python3.12/site-packages/click-8.1.7.dist-info/LICENSE.rst create mode 100644 venv/lib/python3.12/site-packages/click-8.1.7.dist-info/METADATA create mode 100644 venv/lib/python3.12/site-packages/click-8.1.7.dist-info/RECORD create mode 100644 venv/lib/python3.12/site-packages/click-8.1.7.dist-info/WHEEL create mode 100644 venv/lib/python3.12/site-packages/click-8.1.7.dist-info/top_level.txt create mode 100644 venv/lib/python3.12/site-packages/click/__init__.py create mode 100644 venv/lib/python3.12/site-packages/click/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/click/__pycache__/_compat.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/click/__pycache__/_termui_impl.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/click/__pycache__/_textwrap.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/click/__pycache__/_winconsole.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/click/__pycache__/core.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/click/__pycache__/decorators.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/click/__pycache__/exceptions.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/click/__pycache__/formatting.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/click/__pycache__/globals.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/click/__pycache__/parser.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/click/__pycache__/shell_completion.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/click/__pycache__/termui.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/click/__pycache__/testing.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/click/__pycache__/types.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/click/__pycache__/utils.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/click/_compat.py create mode 100644 venv/lib/python3.12/site-packages/click/_termui_impl.py create mode 100644 venv/lib/python3.12/site-packages/click/_textwrap.py create mode 100644 venv/lib/python3.12/site-packages/click/_winconsole.py create mode 100644 venv/lib/python3.12/site-packages/click/core.py create mode 100644 venv/lib/python3.12/site-packages/click/decorators.py create mode 100644 venv/lib/python3.12/site-packages/click/exceptions.py create mode 100644 venv/lib/python3.12/site-packages/click/formatting.py create mode 100644 venv/lib/python3.12/site-packages/click/globals.py create mode 100644 venv/lib/python3.12/site-packages/click/parser.py create mode 100644 venv/lib/python3.12/site-packages/click/py.typed create mode 100644 venv/lib/python3.12/site-packages/click/shell_completion.py create mode 100644 venv/lib/python3.12/site-packages/click/termui.py create mode 100644 venv/lib/python3.12/site-packages/click/testing.py create mode 100644 venv/lib/python3.12/site-packages/click/types.py create mode 100644 venv/lib/python3.12/site-packages/click/utils.py create mode 100644 venv/lib/python3.12/site-packages/django/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/__main__.py create mode 100644 venv/lib/python3.12/site-packages/django/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/__pycache__/__main__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/__pycache__/shortcuts.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/apps/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/apps/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/apps/__pycache__/config.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/apps/__pycache__/registry.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/apps/config.py create mode 100644 venv/lib/python3.12/site-packages/django/apps/registry.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/__pycache__/global_settings.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/app_template/__init__.py-tpl create mode 100644 venv/lib/python3.12/site-packages/django/conf/app_template/admin.py-tpl create mode 100644 venv/lib/python3.12/site-packages/django/conf/app_template/apps.py-tpl create mode 100644 venv/lib/python3.12/site-packages/django/conf/app_template/migrations/__init__.py-tpl create mode 100644 venv/lib/python3.12/site-packages/django/conf/app_template/models.py-tpl create mode 100644 venv/lib/python3.12/site-packages/django/conf/app_template/tests.py-tpl create mode 100644 venv/lib/python3.12/site-packages/django/conf/app_template/views.py-tpl create mode 100644 venv/lib/python3.12/site-packages/django/conf/global_settings.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/af/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/af/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ar/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ar/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ar/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ar/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ar/__pycache__/formats.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ar/formats.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ar_DZ/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ar_DZ/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ar_DZ/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ar_DZ/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ar_DZ/__pycache__/formats.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ar_DZ/formats.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ast/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ast/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/az/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/az/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/az/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/az/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/az/__pycache__/formats.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/az/formats.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/be/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/be/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/bg/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/bg/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/bg/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/bg/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/bg/__pycache__/formats.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/bg/formats.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/bn/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/bn/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/bn/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/bn/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/bn/__pycache__/formats.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/bn/formats.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/br/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/br/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/bs/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/bs/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/bs/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/bs/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/bs/__pycache__/formats.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/bs/formats.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ca/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ca/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ca/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ca/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ca/__pycache__/formats.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ca/formats.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ckb/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ckb/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ckb/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ckb/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ckb/__pycache__/formats.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ckb/formats.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/cs/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/cs/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/cs/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/cs/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/cs/__pycache__/formats.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/cs/formats.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/cy/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/cy/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/cy/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/cy/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/cy/__pycache__/formats.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/cy/formats.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/da/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/da/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/da/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/da/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/da/__pycache__/formats.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/da/formats.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/de/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/de/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/de/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/de/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/de/__pycache__/formats.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/de/formats.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/de_CH/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/de_CH/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/de_CH/__pycache__/formats.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/de_CH/formats.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/dsb/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/dsb/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/el/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/el/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/el/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/el/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/el/__pycache__/formats.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/el/formats.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/en/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/en/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/en/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/en/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/en/__pycache__/formats.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/en/formats.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/en_AU/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/en_AU/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/en_AU/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/en_AU/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/en_AU/__pycache__/formats.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/en_AU/formats.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/en_CA/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/en_CA/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/en_CA/__pycache__/formats.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/en_CA/formats.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/en_GB/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/en_GB/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/en_GB/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/en_GB/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/en_GB/__pycache__/formats.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/en_GB/formats.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/en_IE/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/en_IE/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/en_IE/__pycache__/formats.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/en_IE/formats.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/eo/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/eo/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/eo/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/eo/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/eo/__pycache__/formats.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/eo/formats.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/es/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/es/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/es/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/es/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/es/__pycache__/formats.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/es/formats.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/es_AR/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/es_AR/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/es_AR/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/es_AR/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/es_AR/__pycache__/formats.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/es_AR/formats.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/es_CO/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/es_CO/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/es_CO/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/es_CO/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/es_CO/__pycache__/formats.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/es_CO/formats.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/es_MX/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/es_MX/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/es_MX/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/es_MX/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/es_MX/__pycache__/formats.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/es_MX/formats.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/es_NI/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/es_NI/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/es_NI/__pycache__/formats.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/es_NI/formats.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/es_PR/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/es_PR/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/es_PR/__pycache__/formats.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/es_PR/formats.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/es_VE/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/es_VE/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/et/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/et/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/et/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/et/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/et/__pycache__/formats.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/et/formats.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/eu/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/eu/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/eu/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/eu/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/eu/__pycache__/formats.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/eu/formats.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/fa/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/fa/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/fa/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/fa/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/fa/__pycache__/formats.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/fa/formats.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/fi/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/fi/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/fi/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/fi/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/fi/__pycache__/formats.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/fi/formats.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/fr/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/fr/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/fr/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/fr/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/fr/__pycache__/formats.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/fr/formats.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/fr_BE/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/fr_BE/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/fr_BE/__pycache__/formats.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/fr_BE/formats.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/fr_CA/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/fr_CA/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/fr_CA/__pycache__/formats.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/fr_CA/formats.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/fr_CH/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/fr_CH/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/fr_CH/__pycache__/formats.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/fr_CH/formats.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/fy/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/fy/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/fy/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/fy/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/fy/__pycache__/formats.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/fy/formats.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ga/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ga/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ga/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ga/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ga/__pycache__/formats.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ga/formats.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/gd/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/gd/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/gd/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/gd/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/gd/__pycache__/formats.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/gd/formats.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/gl/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/gl/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/gl/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/gl/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/gl/__pycache__/formats.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/gl/formats.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/he/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/he/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/he/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/he/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/he/__pycache__/formats.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/he/formats.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/hi/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/hi/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/hi/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/hi/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/hi/__pycache__/formats.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/hi/formats.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/hr/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/hr/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/hr/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/hr/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/hr/__pycache__/formats.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/hr/formats.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/hsb/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/hsb/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/hu/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/hu/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/hu/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/hu/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/hu/__pycache__/formats.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/hu/formats.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/hy/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/hy/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ia/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ia/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/id/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/id/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/id/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/id/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/id/__pycache__/formats.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/id/formats.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ig/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ig/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ig/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ig/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ig/__pycache__/formats.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ig/formats.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/io/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/io/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/is/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/is/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/is/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/is/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/is/__pycache__/formats.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/is/formats.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/it/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/it/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/it/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/it/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/it/__pycache__/formats.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/it/formats.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ja/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ja/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ja/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ja/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ja/__pycache__/formats.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ja/formats.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ka/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ka/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ka/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ka/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ka/__pycache__/formats.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ka/formats.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/kab/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/kab/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/kk/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/kk/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/km/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/km/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/km/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/km/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/km/__pycache__/formats.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/km/formats.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/kn/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/kn/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/kn/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/kn/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/kn/__pycache__/formats.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/kn/formats.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ko/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ko/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ko/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ko/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ko/__pycache__/formats.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ko/formats.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ky/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ky/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ky/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ky/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ky/__pycache__/formats.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ky/formats.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/lb/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/lb/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/lt/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/lt/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/lt/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/lt/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/lt/__pycache__/formats.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/lt/formats.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/lv/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/lv/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/lv/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/lv/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/lv/__pycache__/formats.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/lv/formats.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/mk/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/mk/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/mk/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/mk/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/mk/__pycache__/formats.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/mk/formats.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ml/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ml/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ml/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ml/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ml/__pycache__/formats.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ml/formats.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/mn/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/mn/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/mn/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/mn/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/mn/__pycache__/formats.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/mn/formats.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/mr/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/mr/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ms/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ms/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ms/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ms/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ms/__pycache__/formats.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ms/formats.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/my/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/my/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/nb/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/nb/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/nb/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/nb/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/nb/__pycache__/formats.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/nb/formats.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ne/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ne/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/nl/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/nl/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/nl/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/nl/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/nl/__pycache__/formats.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/nl/formats.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/nn/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/nn/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/nn/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/nn/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/nn/__pycache__/formats.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/nn/formats.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/os/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/os/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/pa/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/pa/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/pl/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/pl/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/pl/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/pl/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/pl/__pycache__/formats.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/pl/formats.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/pt/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/pt/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/pt/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/pt/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/pt/__pycache__/formats.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/pt/formats.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/pt_BR/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/pt_BR/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/pt_BR/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/pt_BR/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/pt_BR/__pycache__/formats.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/pt_BR/formats.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ro/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ro/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ro/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ro/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ro/__pycache__/formats.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ro/formats.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ru/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ru/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ru/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ru/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ru/__pycache__/formats.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ru/formats.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/sk/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/sk/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/sk/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/sk/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/sk/__pycache__/formats.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/sk/formats.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/sl/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/sl/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/sl/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/sl/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/sl/__pycache__/formats.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/sl/formats.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/sq/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/sq/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/sq/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/sq/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/sq/__pycache__/formats.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/sq/formats.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/sr/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/sr/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/sr/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/sr/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/sr/__pycache__/formats.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/sr/formats.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/sr_Latn/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/sr_Latn/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/sr_Latn/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/sr_Latn/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/sr_Latn/__pycache__/formats.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/sr_Latn/formats.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/sv/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/sv/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/sv/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/sv/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/sv/__pycache__/formats.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/sv/formats.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/sw/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/sw/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ta/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ta/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ta/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ta/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ta/__pycache__/formats.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ta/formats.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/te/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/te/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/te/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/te/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/te/__pycache__/formats.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/te/formats.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/tg/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/tg/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/tg/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/tg/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/tg/__pycache__/formats.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/tg/formats.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/th/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/th/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/th/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/th/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/th/__pycache__/formats.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/th/formats.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/tk/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/tk/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/tk/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/tk/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/tk/__pycache__/formats.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/tk/formats.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/tr/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/tr/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/tr/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/tr/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/tr/__pycache__/formats.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/tr/formats.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/tt/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/tt/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/udm/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/udm/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ug/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ug/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ug/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ug/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ug/__pycache__/formats.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ug/formats.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/uk/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/uk/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/uk/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/uk/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/uk/__pycache__/formats.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/uk/formats.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ur/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/ur/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/uz/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/uz/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/uz/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/uz/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/uz/__pycache__/formats.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/uz/formats.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/vi/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/vi/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/vi/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/vi/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/vi/__pycache__/formats.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/vi/formats.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/zh_Hans/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/zh_Hans/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/zh_Hans/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/zh_Hans/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/zh_Hans/__pycache__/formats.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/zh_Hans/formats.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/zh_Hant/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/zh_Hant/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/zh_Hant/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/zh_Hant/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/zh_Hant/__pycache__/formats.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/locale/zh_Hant/formats.py create mode 100755 venv/lib/python3.12/site-packages/django/conf/project_template/manage.py-tpl create mode 100644 venv/lib/python3.12/site-packages/django/conf/project_template/project_name/__init__.py-tpl create mode 100644 venv/lib/python3.12/site-packages/django/conf/project_template/project_name/asgi.py-tpl create mode 100644 venv/lib/python3.12/site-packages/django/conf/project_template/project_name/settings.py-tpl create mode 100644 venv/lib/python3.12/site-packages/django/conf/project_template/project_name/urls.py-tpl create mode 100644 venv/lib/python3.12/site-packages/django/conf/project_template/project_name/wsgi.py-tpl create mode 100644 venv/lib/python3.12/site-packages/django/conf/urls/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/urls/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/urls/__pycache__/i18n.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/urls/__pycache__/static.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/conf/urls/i18n.py create mode 100644 venv/lib/python3.12/site-packages/django/conf/urls/static.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/__pycache__/actions.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/__pycache__/apps.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/__pycache__/checks.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/__pycache__/decorators.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/__pycache__/exceptions.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/__pycache__/filters.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/__pycache__/forms.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/__pycache__/helpers.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/__pycache__/models.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/__pycache__/options.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/__pycache__/sites.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/__pycache__/tests.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/__pycache__/utils.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/__pycache__/widgets.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/actions.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/apps.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/checks.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/decorators.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/exceptions.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/filters.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/forms.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/helpers.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/af/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/af/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/af/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/af/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/am/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/am/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/ar/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/ar/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/ar/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/ar/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/ar_DZ/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/ar_DZ/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/ar_DZ/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/ar_DZ/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/ast/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/ast/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/ast/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/ast/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/az/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/az/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/az/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/az/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/be/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/be/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/be/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/be/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/bg/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/bg/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/bg/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/bg/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/bn/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/bn/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/bn/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/bn/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/br/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/br/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/br/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/br/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/bs/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/bs/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/bs/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/bs/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/ca/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/ca/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/ca/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/ca/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/ckb/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/ckb/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/ckb/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/ckb/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/cs/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/cs/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/cs/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/cs/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/cy/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/cy/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/cy/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/cy/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/da/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/da/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/da/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/da/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/de/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/de/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/de/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/de/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/dsb/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/dsb/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/dsb/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/dsb/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/el/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/el/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/el/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/el/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/en/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/en/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/en/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/en/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/en_AU/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/en_AU/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/en_AU/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/en_AU/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/en_GB/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/en_GB/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/en_GB/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/en_GB/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/eo/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/eo/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/eo/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/eo/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/es/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/es/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/es/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/es/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/es_AR/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/es_AR/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/es_AR/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/es_AR/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/es_CO/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/es_CO/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/es_CO/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/es_CO/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/es_MX/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/es_MX/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/es_MX/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/es_MX/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/es_VE/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/es_VE/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/es_VE/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/es_VE/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/et/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/et/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/et/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/et/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/eu/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/eu/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/eu/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/eu/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/fa/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/fa/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/fa/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/fa/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/fi/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/fi/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/fi/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/fi/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/fr/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/fr/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/fr/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/fr/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/fy/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/fy/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/fy/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/fy/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/ga/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/ga/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/ga/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/ga/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/gd/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/gd/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/gd/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/gd/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/gl/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/gl/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/gl/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/gl/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/he/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/he/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/he/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/he/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/hi/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/hi/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/hi/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/hi/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/hr/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/hr/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/hr/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/hr/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/hsb/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/hsb/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/hsb/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/hsb/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/hu/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/hu/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/hu/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/hu/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/hy/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/hy/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/hy/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/hy/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/ia/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/ia/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/ia/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/ia/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/id/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/id/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/id/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/id/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/io/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/io/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/io/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/io/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/is/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/is/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/is/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/is/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/it/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/it/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/it/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/it/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/ja/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/ja/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/ja/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/ja/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/ka/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/ka/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/ka/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/ka/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/kab/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/kab/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/kab/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/kab/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/kk/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/kk/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/kk/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/kk/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/km/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/km/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/km/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/km/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/kn/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/kn/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/kn/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/kn/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/ko/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/ko/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/ko/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/ko/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/ky/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/ky/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/ky/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/ky/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/lb/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/lb/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/lb/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/lb/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/lt/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/lt/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/lt/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/lt/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/lv/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/lv/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/lv/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/lv/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/mk/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/mk/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/mk/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/mk/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/ml/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/ml/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/ml/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/ml/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/mn/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/mn/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/mn/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/mn/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/mr/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/mr/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/mr/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/mr/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/ms/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/ms/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/ms/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/ms/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/my/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/my/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/my/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/my/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/nb/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/nb/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/nb/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/nb/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/ne/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/ne/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/ne/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/ne/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/nl/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/nl/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/nl/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/nl/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/nn/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/nn/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/nn/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/nn/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/os/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/os/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/os/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/os/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/pa/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/pa/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/pa/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/pa/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/pl/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/pl/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/pl/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/pl/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/pt/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/pt/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/pt/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/pt/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/pt_BR/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/pt_BR/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/pt_BR/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/pt_BR/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/ro/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/ro/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/ro/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/ro/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/ru/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/ru/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/ru/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/ru/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/sk/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/sk/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/sk/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/sk/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/sl/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/sl/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/sl/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/sl/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/sq/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/sq/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/sq/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/sq/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/sr/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/sr/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/sr/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/sr/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/sr_Latn/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/sr_Latn/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/sr_Latn/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/sr_Latn/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/sv/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/sv/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/sv/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/sv/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/sw/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/sw/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/sw/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/sw/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/ta/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/ta/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/ta/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/ta/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/te/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/te/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/te/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/te/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/tg/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/tg/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/tg/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/tg/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/th/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/th/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/th/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/th/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/tk/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/tk/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/tr/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/tr/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/tr/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/tr/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/tt/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/tt/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/tt/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/tt/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/udm/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/udm/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/udm/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/udm/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/ug/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/ug/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/ug/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/ug/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/uk/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/uk/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/uk/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/uk/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/ur/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/ur/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/ur/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/ur/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/uz/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/uz/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/uz/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/uz/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/vi/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/vi/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/vi/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/vi/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/zh_Hans/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/zh_Hans/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/zh_Hans/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/zh_Hans/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/zh_Hant/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/zh_Hant/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/zh_Hant/LC_MESSAGES/djangojs.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/locale/zh_Hant/LC_MESSAGES/djangojs.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/migrations/0001_initial.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/migrations/0002_logentry_remove_auto_add.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/migrations/0003_logentry_add_action_flag_choices.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/migrations/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/migrations/__pycache__/0001_initial.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/migrations/__pycache__/0002_logentry_remove_auto_add.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/migrations/__pycache__/0003_logentry_add_action_flag_choices.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/migrations/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/models.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/options.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/sites.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/autocomplete.css create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/base.css create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/changelists.css create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/dark_mode.css create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/dashboard.css create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/forms.css create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/login.css create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/nav_sidebar.css create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/responsive.css create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/responsive_rtl.css create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/rtl.css create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/unusable_password_field.css create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/vendor/select2/LICENSE-SELECT2.md create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/vendor/select2/select2.css create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/vendor/select2/select2.min.css create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/widgets.css create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/LICENSE create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/README.txt create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/calendar-icons.svg create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/gis/move_vertex_off.svg create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/gis/move_vertex_on.svg create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/icon-addlink.svg create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/icon-alert.svg create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/icon-calendar.svg create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/icon-changelink.svg create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/icon-clock.svg create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/icon-deletelink.svg create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/icon-hidelink.svg create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/icon-no.svg create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/icon-unknown-alt.svg create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/icon-unknown.svg create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/icon-viewlink.svg create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/icon-yes.svg create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/inline-delete.svg create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/search.svg create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/selector-icons.svg create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/sorting-icons.svg create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/tooltag-add.svg create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/tooltag-arrowright.svg create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/SelectBox.js create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/SelectFilter2.js create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/actions.js create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/admin/DateTimeShortcuts.js create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/admin/RelatedObjectLookups.js create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/autocomplete.js create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/calendar.js create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/cancel.js create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/change_form.js create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/core.js create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/filters.js create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/inlines.js create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/jquery.init.js create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/nav_sidebar.js create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/popup_response.js create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/prepopulate.js create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/prepopulate_init.js create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/theme.js create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/unusable_password_field.js create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/urlify.js create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/jquery/LICENSE.txt create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/jquery/jquery.js create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/jquery/jquery.min.js create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/LICENSE.md create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/af.js create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ar.js create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/az.js create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/bg.js create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/bn.js create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/bs.js create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ca.js create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/cs.js create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/da.js create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/de.js create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/dsb.js create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/el.js create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/en.js create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/es.js create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/et.js create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/eu.js create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/fa.js create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/fi.js create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/fr.js create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/gl.js create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/he.js create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/hi.js create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/hr.js create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/hsb.js create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/hu.js create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/hy.js create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/id.js create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/is.js create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/it.js create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ja.js create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ka.js create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/km.js create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ko.js create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/lt.js create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/lv.js create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/mk.js create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ms.js create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/nb.js create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ne.js create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/nl.js create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/pl.js create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ps.js create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/pt-BR.js create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/pt.js create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ro.js create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ru.js create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sk.js create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sl.js create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sq.js create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sr-Cyrl.js create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sr.js create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sv.js create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/th.js create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/tk.js create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/tr.js create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/uk.js create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/vi.js create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/zh-CN.js create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/zh-TW.js create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/select2.full.js create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/select2.full.min.js create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/xregexp/LICENSE.txt create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/xregexp/xregexp.js create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/xregexp/xregexp.min.js create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/404.html create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/500.html create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/actions.html create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/app_index.html create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/app_list.html create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/auth/user/add_form.html create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/auth/user/change_password.html create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/base.html create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/base_site.html create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/change_form.html create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/change_form_object_tools.html create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/change_list.html create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/change_list_object_tools.html create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/change_list_results.html create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/color_theme_toggle.html create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/date_hierarchy.html create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/delete_confirmation.html create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/delete_selected_confirmation.html create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/edit_inline/stacked.html create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/edit_inline/tabular.html create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/filter.html create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/includes/fieldset.html create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/includes/object_delete_summary.html create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/index.html create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/invalid_setup.html create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/login.html create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/nav_sidebar.html create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/object_history.html create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/pagination.html create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/popup_response.html create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/prepopulated_fields_js.html create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/search_form.html create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/submit_line.html create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/widgets/clearable_file_input.html create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/widgets/date.html create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/widgets/foreign_key_raw_id.html create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/widgets/many_to_many_raw_id.html create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/widgets/radio.html create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/widgets/related_widget_wrapper.html create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/widgets/split_datetime.html create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/widgets/time.html create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/widgets/url.html create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/templates/registration/logged_out.html create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/templates/registration/password_change_done.html create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/templates/registration/password_change_form.html create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/templates/registration/password_reset_complete.html create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/templates/registration/password_reset_confirm.html create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/templates/registration/password_reset_done.html create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/templates/registration/password_reset_email.html create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/templates/registration/password_reset_form.html create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/templatetags/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/templatetags/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/templatetags/__pycache__/admin_list.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/templatetags/__pycache__/admin_modify.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/templatetags/__pycache__/admin_urls.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/templatetags/__pycache__/base.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/templatetags/__pycache__/log.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/templatetags/admin_list.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/templatetags/admin_modify.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/templatetags/admin_urls.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/templatetags/base.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/templatetags/log.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/tests.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/utils.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/views/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/views/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/views/__pycache__/autocomplete.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/views/__pycache__/decorators.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/views/__pycache__/main.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/views/autocomplete.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/views/decorators.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/views/main.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admin/widgets.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/__pycache__/apps.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/__pycache__/middleware.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/__pycache__/urls.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/__pycache__/utils.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/__pycache__/views.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/apps.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/af/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/af/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/ar/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/ar/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/ar_DZ/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/ar_DZ/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/ast/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/ast/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/az/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/az/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/be/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/be/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/bg/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/bg/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/bn/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/bn/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/br/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/br/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/bs/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/bs/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/ca/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/ca/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/ckb/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/ckb/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/cs/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/cs/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/cy/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/cy/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/da/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/da/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/de/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/de/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/dsb/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/dsb/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/el/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/el/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/en/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/en/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/en_AU/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/en_AU/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/en_GB/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/en_GB/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/eo/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/eo/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/es/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/es/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/es_AR/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/es_AR/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/es_CO/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/es_CO/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/es_MX/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/es_MX/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/es_VE/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/es_VE/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/et/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/et/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/eu/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/eu/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/fa/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/fa/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/fi/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/fi/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/fr/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/fr/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/fy/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/fy/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/ga/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/ga/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/gd/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/gd/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/gl/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/gl/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/he/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/he/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/hi/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/hi/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/hr/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/hr/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/hsb/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/hsb/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/hu/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/hu/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/ia/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/ia/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/id/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/id/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/io/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/io/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/is/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/is/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/it/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/it/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/ja/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/ja/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/ka/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/ka/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/kab/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/kab/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/kk/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/kk/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/km/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/km/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/kn/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/kn/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/ko/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/ko/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/ky/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/ky/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/lb/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/lb/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/lt/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/lt/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/lv/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/lv/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/mk/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/mk/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/ml/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/ml/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/mn/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/mn/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/mr/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/mr/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/ms/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/ms/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/my/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/my/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/nb/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/nb/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/ne/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/ne/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/nl/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/nl/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/nn/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/nn/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/os/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/os/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/pa/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/pa/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/pl/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/pl/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/pt/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/pt/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/pt_BR/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/pt_BR/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/ro/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/ro/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/ru/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/ru/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/sk/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/sk/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/sl/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/sl/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/sq/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/sq/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/sr/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/sr/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/sr_Latn/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/sr_Latn/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/sv/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/sv/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/sw/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/sw/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/ta/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/ta/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/te/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/te/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/tg/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/tg/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/th/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/th/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/tr/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/tr/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/tt/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/tt/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/udm/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/udm/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/ug/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/ug/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/uk/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/uk/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/ur/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/ur/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/vi/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/vi/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/zh_Hans/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/zh_Hans/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/zh_Hant/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/locale/zh_Hant/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/middleware.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/templates/admin_doc/bookmarklets.html create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/templates/admin_doc/index.html create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/templates/admin_doc/missing_docutils.html create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/templates/admin_doc/model_detail.html create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/templates/admin_doc/model_index.html create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/templates/admin_doc/template_detail.html create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/templates/admin_doc/template_filter_index.html create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/templates/admin_doc/template_tag_index.html create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/templates/admin_doc/view_detail.html create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/templates/admin_doc/view_index.html create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/urls.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/utils.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/admindocs/views.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/__pycache__/admin.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/__pycache__/apps.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/__pycache__/backends.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/__pycache__/base_user.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/__pycache__/checks.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/__pycache__/context_processors.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/__pycache__/decorators.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/__pycache__/forms.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/__pycache__/hashers.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/__pycache__/middleware.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/__pycache__/mixins.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/__pycache__/models.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/__pycache__/password_validation.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/__pycache__/signals.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/__pycache__/tokens.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/__pycache__/urls.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/__pycache__/validators.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/__pycache__/views.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/admin.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/apps.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/backends.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/base_user.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/checks.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/common-passwords.txt.gz create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/context_processors.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/decorators.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/forms.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/handlers/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/handlers/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/handlers/__pycache__/modwsgi.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/handlers/modwsgi.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/hashers.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/af/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/af/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/ar/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/ar/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/ar_DZ/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/ar_DZ/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/ast/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/ast/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/az/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/az/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/be/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/be/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/bg/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/bg/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/bn/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/bn/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/br/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/br/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/bs/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/bs/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/ca/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/ca/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/ckb/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/ckb/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/cs/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/cs/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/cy/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/cy/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/da/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/da/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/de/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/de/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/dsb/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/dsb/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/el/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/el/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/en/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/en/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/en_AU/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/en_AU/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/en_GB/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/en_GB/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/eo/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/eo/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/es/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/es/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/es_AR/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/es_AR/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/es_CO/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/es_CO/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/es_MX/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/es_MX/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/es_VE/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/es_VE/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/et/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/et/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/eu/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/eu/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/fa/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/fa/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/fi/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/fi/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/fr/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/fr/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/fy/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/fy/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/ga/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/ga/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/gd/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/gd/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/gl/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/gl/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/he/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/he/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/hi/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/hi/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/hr/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/hr/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/hsb/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/hsb/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/hu/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/hu/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/hy/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/hy/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/ia/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/ia/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/id/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/id/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/io/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/io/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/is/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/is/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/it/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/it/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/ja/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/ja/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/ka/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/ka/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/kab/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/kab/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/kk/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/kk/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/km/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/km/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/kn/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/kn/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/ko/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/ko/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/ky/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/ky/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/lb/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/lb/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/lt/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/lt/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/lv/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/lv/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/mk/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/mk/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/ml/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/ml/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/mn/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/mn/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/mr/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/mr/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/ms/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/ms/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/my/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/my/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/nb/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/nb/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/ne/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/ne/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/nl/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/nl/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/nn/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/nn/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/os/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/os/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/pa/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/pa/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/pl/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/pl/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/pt/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/pt/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/pt_BR/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/pt_BR/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/ro/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/ro/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/ru/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/ru/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/sk/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/sk/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/sl/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/sl/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/sq/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/sq/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/sr/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/sr/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/sr_Latn/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/sr_Latn/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/sv/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/sv/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/sw/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/sw/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/ta/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/ta/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/te/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/te/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/tg/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/tg/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/th/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/th/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/tk/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/tk/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/tr/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/tr/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/tt/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/tt/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/udm/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/udm/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/ug/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/ug/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/uk/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/uk/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/ur/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/ur/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/uz/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/uz/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/vi/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/vi/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/zh_Hans/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/zh_Hans/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/zh_Hant/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/locale/zh_Hant/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/management/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/management/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/management/commands/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/management/commands/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/management/commands/__pycache__/changepassword.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/management/commands/__pycache__/createsuperuser.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/management/commands/changepassword.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/management/commands/createsuperuser.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/middleware.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/migrations/0001_initial.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/migrations/0002_alter_permission_name_max_length.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/migrations/0003_alter_user_email_max_length.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/migrations/0004_alter_user_username_opts.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/migrations/0005_alter_user_last_login_null.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/migrations/0006_require_contenttypes_0002.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/migrations/0007_alter_validators_add_error_messages.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/migrations/0008_alter_user_username_max_length.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/migrations/0009_alter_user_last_name_max_length.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/migrations/0010_alter_group_name_max_length.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/migrations/0011_update_proxy_permissions.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/migrations/0012_alter_user_first_name_max_length.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/migrations/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/migrations/__pycache__/0001_initial.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/migrations/__pycache__/0002_alter_permission_name_max_length.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/migrations/__pycache__/0003_alter_user_email_max_length.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/migrations/__pycache__/0004_alter_user_username_opts.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/migrations/__pycache__/0005_alter_user_last_login_null.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/migrations/__pycache__/0006_require_contenttypes_0002.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/migrations/__pycache__/0007_alter_validators_add_error_messages.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/migrations/__pycache__/0008_alter_user_username_max_length.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/migrations/__pycache__/0009_alter_user_last_name_max_length.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/migrations/__pycache__/0010_alter_group_name_max_length.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/migrations/__pycache__/0011_update_proxy_permissions.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/migrations/__pycache__/0012_alter_user_first_name_max_length.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/migrations/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/mixins.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/models.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/password_validation.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/signals.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/templates/auth/widgets/read_only_password_hash.html create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/templates/registration/password_reset_subject.txt create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/tokens.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/urls.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/validators.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/auth/views.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/__pycache__/admin.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/__pycache__/apps.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/__pycache__/checks.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/__pycache__/fields.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/__pycache__/forms.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/__pycache__/models.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/__pycache__/prefetch.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/__pycache__/views.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/admin.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/apps.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/checks.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/fields.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/forms.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/af/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/af/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/ar/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/ar/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/ar_DZ/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/ar_DZ/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/ast/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/ast/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/az/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/az/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/be/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/be/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/bg/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/bg/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/bn/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/bn/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/br/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/br/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/bs/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/bs/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/ca/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/ca/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/ckb/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/ckb/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/cs/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/cs/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/cy/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/cy/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/da/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/da/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/de/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/de/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/dsb/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/dsb/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/el/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/el/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/en/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/en/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/en_AU/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/en_AU/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/en_GB/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/en_GB/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/eo/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/eo/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/es/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/es/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/es_AR/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/es_AR/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/es_CO/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/es_CO/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/es_MX/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/es_MX/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/es_VE/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/es_VE/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/et/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/et/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/eu/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/eu/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/fa/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/fa/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/fi/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/fi/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/fr/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/fr/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/fy/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/fy/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/ga/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/ga/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/gd/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/gd/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/gl/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/gl/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/he/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/he/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/hi/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/hi/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/hr/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/hr/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/hsb/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/hsb/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/hu/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/hu/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/hy/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/hy/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/ia/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/ia/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/id/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/id/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/io/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/io/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/is/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/is/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/it/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/it/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/ja/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/ja/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/ka/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/ka/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/kk/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/kk/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/km/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/km/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/kn/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/kn/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/ko/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/ko/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/ky/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/ky/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/lb/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/lb/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/lt/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/lt/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/lv/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/lv/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/mk/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/mk/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/ml/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/ml/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/mn/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/mn/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/mr/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/mr/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/ms/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/ms/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/my/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/my/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/nb/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/nb/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/ne/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/ne/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/nl/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/nl/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/nn/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/nn/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/os/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/os/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/pa/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/pa/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/pl/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/pl/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/pt/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/pt/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/pt_BR/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/pt_BR/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/ro/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/ro/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/ru/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/ru/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/sk/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/sk/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/sl/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/sl/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/sq/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/sq/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/sr/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/sr/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/sr_Latn/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/sr_Latn/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/sv/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/sv/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/sw/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/sw/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/ta/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/ta/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/te/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/te/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/tg/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/tg/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/th/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/th/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/tk/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/tk/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/tr/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/tr/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/tt/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/tt/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/udm/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/udm/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/ug/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/ug/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/uk/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/uk/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/ur/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/ur/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/vi/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/vi/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/zh_Hans/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/zh_Hans/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/zh_Hant/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/locale/zh_Hant/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/management/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/management/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/management/commands/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/management/commands/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/management/commands/__pycache__/remove_stale_contenttypes.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/management/commands/remove_stale_contenttypes.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/migrations/0001_initial.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/migrations/0002_remove_content_type_name.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/migrations/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/migrations/__pycache__/0001_initial.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/migrations/__pycache__/0002_remove_content_type_name.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/migrations/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/models.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/prefetch.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/contenttypes/views.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/__pycache__/admin.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/__pycache__/apps.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/__pycache__/forms.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/__pycache__/middleware.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/__pycache__/models.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/__pycache__/sitemaps.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/__pycache__/urls.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/__pycache__/views.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/admin.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/apps.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/forms.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/af/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/af/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/ar/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/ar/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/ar_DZ/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/ar_DZ/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/ast/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/ast/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/az/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/az/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/be/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/be/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/bg/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/bg/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/bn/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/bn/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/br/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/br/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/bs/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/bs/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/ca/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/ca/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/ckb/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/ckb/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/cs/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/cs/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/cy/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/cy/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/da/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/da/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/de/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/de/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/dsb/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/dsb/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/el/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/el/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/en/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/en/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/en_AU/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/en_AU/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/en_GB/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/en_GB/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/eo/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/eo/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/es/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/es/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/es_AR/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/es_AR/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/es_CO/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/es_CO/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/es_MX/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/es_MX/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/es_VE/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/es_VE/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/et/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/et/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/eu/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/eu/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/fa/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/fa/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/fi/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/fi/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/fr/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/fr/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/fy/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/fy/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/ga/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/ga/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/gd/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/gd/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/gl/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/gl/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/he/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/he/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/hi/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/hi/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/hr/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/hr/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/hsb/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/hsb/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/hu/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/hu/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/hy/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/hy/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/ia/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/ia/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/id/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/id/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/io/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/io/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/is/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/is/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/it/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/it/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/ja/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/ja/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/ka/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/ka/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/kk/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/kk/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/km/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/km/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/kn/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/kn/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/ko/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/ko/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/ky/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/ky/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/lb/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/lb/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/lt/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/lt/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/lv/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/lv/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/mk/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/mk/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/ml/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/ml/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/mn/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/mn/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/mr/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/mr/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/ms/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/ms/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/my/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/my/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/nb/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/nb/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/ne/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/ne/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/nl/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/nl/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/nn/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/nn/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/os/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/os/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/pa/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/pa/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/pl/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/pl/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/pt/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/pt/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/pt_BR/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/pt_BR/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/ro/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/ro/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/ru/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/ru/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/sk/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/sk/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/sl/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/sl/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/sq/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/sq/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/sr/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/sr/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/sr_Latn/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/sr_Latn/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/sv/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/sv/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/sw/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/sw/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/ta/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/ta/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/te/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/te/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/tg/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/tg/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/th/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/th/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/tk/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/tk/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/tr/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/tr/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/tt/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/tt/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/udm/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/udm/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/ug/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/ug/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/uk/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/uk/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/ur/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/ur/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/vi/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/vi/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/zh_Hans/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/zh_Hans/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/zh_Hant/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/locale/zh_Hant/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/middleware.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/migrations/0001_initial.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/migrations/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/migrations/__pycache__/0001_initial.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/migrations/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/models.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/sitemaps.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/templatetags/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/templatetags/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/templatetags/__pycache__/flatpages.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/templatetags/flatpages.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/urls.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/flatpages/views.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/__pycache__/apps.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/__pycache__/feeds.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/__pycache__/geoip2.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/__pycache__/geometry.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/__pycache__/measure.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/__pycache__/ptr.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/__pycache__/shortcuts.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/__pycache__/views.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/admin/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/admin/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/admin/__pycache__/options.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/admin/options.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/apps.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/backends/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/backends/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/backends/__pycache__/utils.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/backends/base/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/backends/base/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/backends/base/__pycache__/adapter.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/backends/base/__pycache__/features.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/backends/base/__pycache__/models.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/backends/base/__pycache__/operations.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/backends/base/adapter.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/backends/base/features.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/backends/base/models.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/backends/base/operations.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/backends/mysql/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/backends/mysql/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/backends/mysql/__pycache__/base.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/backends/mysql/__pycache__/features.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/backends/mysql/__pycache__/introspection.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/backends/mysql/__pycache__/operations.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/backends/mysql/__pycache__/schema.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/backends/mysql/base.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/backends/mysql/features.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/backends/mysql/introspection.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/backends/mysql/operations.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/backends/mysql/schema.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/backends/oracle/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/backends/oracle/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/backends/oracle/__pycache__/adapter.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/backends/oracle/__pycache__/base.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/backends/oracle/__pycache__/features.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/backends/oracle/__pycache__/introspection.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/backends/oracle/__pycache__/models.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/backends/oracle/__pycache__/operations.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/backends/oracle/__pycache__/schema.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/backends/oracle/adapter.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/backends/oracle/base.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/backends/oracle/features.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/backends/oracle/introspection.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/backends/oracle/models.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/backends/oracle/operations.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/backends/oracle/schema.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/backends/postgis/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/backends/postgis/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/backends/postgis/__pycache__/adapter.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/backends/postgis/__pycache__/base.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/backends/postgis/__pycache__/const.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/backends/postgis/__pycache__/features.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/backends/postgis/__pycache__/introspection.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/backends/postgis/__pycache__/models.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/backends/postgis/__pycache__/operations.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/backends/postgis/__pycache__/pgraster.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/backends/postgis/__pycache__/schema.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/backends/postgis/adapter.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/backends/postgis/base.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/backends/postgis/const.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/backends/postgis/features.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/backends/postgis/introspection.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/backends/postgis/models.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/backends/postgis/operations.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/backends/postgis/pgraster.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/backends/postgis/schema.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/backends/spatialite/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/backends/spatialite/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/backends/spatialite/__pycache__/adapter.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/backends/spatialite/__pycache__/base.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/backends/spatialite/__pycache__/client.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/backends/spatialite/__pycache__/features.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/backends/spatialite/__pycache__/introspection.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/backends/spatialite/__pycache__/models.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/backends/spatialite/__pycache__/operations.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/backends/spatialite/__pycache__/schema.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/backends/spatialite/adapter.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/backends/spatialite/base.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/backends/spatialite/client.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/backends/spatialite/features.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/backends/spatialite/introspection.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/backends/spatialite/models.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/backends/spatialite/operations.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/backends/spatialite/schema.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/backends/utils.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/models/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/models/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/models/__pycache__/aggregates.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/models/__pycache__/fields.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/models/__pycache__/functions.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/models/__pycache__/lookups.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/models/__pycache__/proxy.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/models/aggregates.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/models/fields.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/models/functions.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/models/lookups.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/models/proxy.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/models/sql/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/models/sql/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/models/sql/__pycache__/conversion.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/db/models/sql/conversion.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/feeds.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/forms/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/forms/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/forms/__pycache__/fields.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/forms/__pycache__/widgets.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/forms/fields.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/forms/widgets.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/gdal/LICENSE create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/gdal/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/gdal/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/gdal/__pycache__/base.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/gdal/__pycache__/datasource.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/gdal/__pycache__/driver.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/gdal/__pycache__/envelope.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/gdal/__pycache__/error.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/gdal/__pycache__/feature.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/gdal/__pycache__/field.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/gdal/__pycache__/geometries.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/gdal/__pycache__/geomtype.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/gdal/__pycache__/layer.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/gdal/__pycache__/libgdal.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/gdal/__pycache__/srs.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/gdal/base.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/gdal/datasource.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/gdal/driver.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/gdal/envelope.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/gdal/error.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/gdal/feature.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/gdal/field.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/gdal/geometries.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/gdal/geomtype.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/gdal/layer.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/gdal/libgdal.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/gdal/prototypes/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/gdal/prototypes/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/gdal/prototypes/__pycache__/ds.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/gdal/prototypes/__pycache__/errcheck.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/gdal/prototypes/__pycache__/generation.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/gdal/prototypes/__pycache__/geom.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/gdal/prototypes/__pycache__/raster.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/gdal/prototypes/__pycache__/srs.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/gdal/prototypes/ds.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/gdal/prototypes/errcheck.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/gdal/prototypes/generation.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/gdal/prototypes/geom.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/gdal/prototypes/raster.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/gdal/prototypes/srs.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/gdal/raster/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/gdal/raster/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/gdal/raster/__pycache__/band.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/gdal/raster/__pycache__/base.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/gdal/raster/__pycache__/const.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/gdal/raster/__pycache__/source.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/gdal/raster/band.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/gdal/raster/base.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/gdal/raster/const.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/gdal/raster/source.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/gdal/srs.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/geoip2.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/geometry.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/geos/LICENSE create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/geos/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/geos/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/geos/__pycache__/base.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/geos/__pycache__/collections.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/geos/__pycache__/coordseq.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/geos/__pycache__/error.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/geos/__pycache__/factory.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/geos/__pycache__/geometry.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/geos/__pycache__/io.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/geos/__pycache__/libgeos.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/geos/__pycache__/linestring.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/geos/__pycache__/mutable_list.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/geos/__pycache__/point.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/geos/__pycache__/polygon.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/geos/__pycache__/prepared.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/geos/base.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/geos/collections.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/geos/coordseq.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/geos/error.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/geos/factory.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/geos/geometry.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/geos/io.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/geos/libgeos.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/geos/linestring.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/geos/mutable_list.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/geos/point.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/geos/polygon.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/geos/prepared.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/geos/prototypes/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/geos/prototypes/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/geos/prototypes/__pycache__/coordseq.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/geos/prototypes/__pycache__/errcheck.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/geos/prototypes/__pycache__/geom.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/geos/prototypes/__pycache__/io.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/geos/prototypes/__pycache__/misc.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/geos/prototypes/__pycache__/predicates.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/geos/prototypes/__pycache__/prepared.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/geos/prototypes/__pycache__/threadsafe.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/geos/prototypes/__pycache__/topology.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/geos/prototypes/coordseq.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/geos/prototypes/errcheck.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/geos/prototypes/geom.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/geos/prototypes/io.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/geos/prototypes/misc.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/geos/prototypes/predicates.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/geos/prototypes/prepared.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/geos/prototypes/threadsafe.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/geos/prototypes/topology.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/af/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/af/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/ar/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/ar/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/ar_DZ/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/ar_DZ/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/ast/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/ast/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/az/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/az/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/be/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/be/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/bg/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/bg/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/bn/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/bn/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/br/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/br/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/bs/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/bs/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/ca/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/ca/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/ckb/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/ckb/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/cs/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/cs/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/cy/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/cy/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/da/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/da/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/de/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/de/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/dsb/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/dsb/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/el/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/el/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/en/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/en/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/en_AU/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/en_AU/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/en_GB/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/en_GB/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/eo/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/eo/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/es/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/es/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/es_AR/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/es_AR/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/es_CO/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/es_CO/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/es_MX/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/es_MX/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/es_VE/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/es_VE/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/et/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/et/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/eu/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/eu/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/fa/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/fa/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/fi/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/fi/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/fr/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/fr/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/fy/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/fy/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/ga/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/ga/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/gd/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/gd/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/gl/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/gl/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/he/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/he/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/hi/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/hi/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/hr/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/hr/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/hsb/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/hsb/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/hu/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/hu/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/hy/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/hy/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/ia/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/ia/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/id/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/id/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/io/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/io/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/is/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/is/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/it/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/it/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/ja/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/ja/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/ka/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/ka/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/kk/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/kk/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/km/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/km/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/kn/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/kn/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/ko/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/ko/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/ky/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/ky/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/lb/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/lb/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/lt/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/lt/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/lv/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/lv/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/mk/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/mk/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/ml/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/ml/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/mn/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/mn/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/mr/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/mr/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/ms/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/ms/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/my/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/my/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/nb/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/nb/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/ne/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/ne/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/nl/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/nl/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/nn/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/nn/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/os/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/os/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/pa/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/pa/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/pl/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/pl/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/pt/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/pt/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/pt_BR/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/pt_BR/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/ro/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/ro/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/ru/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/ru/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/sk/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/sk/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/sl/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/sl/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/sq/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/sq/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/sr/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/sr/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/sr_Latn/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/sr_Latn/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/sv/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/sv/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/sw/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/sw/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/ta/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/ta/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/te/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/te/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/tg/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/tg/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/th/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/th/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/tr/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/tr/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/tt/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/tt/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/udm/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/udm/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/ug/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/ug/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/uk/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/uk/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/ur/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/ur/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/vi/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/vi/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/zh_Hans/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/zh_Hans/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/zh_Hant/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/locale/zh_Hant/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/management/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/management/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/management/commands/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/management/commands/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/management/commands/__pycache__/inspectdb.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/management/commands/__pycache__/ogrinspect.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/management/commands/inspectdb.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/management/commands/ogrinspect.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/measure.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/ptr.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/serializers/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/serializers/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/serializers/__pycache__/geojson.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/serializers/geojson.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/shortcuts.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/sitemaps/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/sitemaps/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/sitemaps/__pycache__/kml.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/sitemaps/__pycache__/views.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/sitemaps/kml.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/sitemaps/views.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/static/gis/css/ol3.css create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/static/gis/img/draw_line_off.svg create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/static/gis/img/draw_line_on.svg create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/static/gis/img/draw_point_off.svg create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/static/gis/img/draw_point_on.svg create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/static/gis/img/draw_polygon_off.svg create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/static/gis/img/draw_polygon_on.svg create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/static/gis/js/OLMapWidget.js create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/templates/gis/kml/base.kml create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/templates/gis/kml/placemarks.kml create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/templates/gis/openlayers-osm.html create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/templates/gis/openlayers.html create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/utils/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/utils/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/utils/__pycache__/layermapping.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/utils/__pycache__/ogrinfo.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/utils/__pycache__/ogrinspect.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/utils/__pycache__/srs.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/utils/layermapping.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/utils/ogrinfo.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/utils/ogrinspect.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/utils/srs.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/gis/views.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/__pycache__/apps.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/apps.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/af/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/af/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/ar/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/ar/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/ar_DZ/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/ar_DZ/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/ast/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/ast/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/az/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/az/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/be/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/be/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/bg/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/bg/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/bn/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/bn/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/br/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/br/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/bs/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/bs/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/ca/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/ca/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/ckb/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/ckb/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/cs/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/cs/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/cy/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/cy/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/da/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/da/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/de/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/de/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/dsb/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/dsb/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/el/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/el/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/en/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/en/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/en_AU/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/en_AU/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/en_GB/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/en_GB/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/eo/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/eo/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/es/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/es/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/es_AR/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/es_AR/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/es_CO/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/es_CO/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/es_MX/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/es_MX/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/es_VE/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/es_VE/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/et/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/et/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/eu/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/eu/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/fa/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/fa/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/fi/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/fi/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/fr/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/fr/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/fy/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/fy/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/ga/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/ga/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/gd/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/gd/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/gl/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/gl/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/he/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/he/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/hi/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/hi/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/hr/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/hr/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/hsb/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/hsb/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/hu/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/hu/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/hy/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/hy/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/ia/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/ia/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/id/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/id/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/io/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/io/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/is/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/is/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/it/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/it/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/ja/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/ja/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/ka/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/ka/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/kk/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/kk/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/km/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/km/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/kn/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/kn/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/ko/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/ko/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/ky/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/ky/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/lb/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/lb/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/lt/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/lt/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/lv/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/lv/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/mk/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/mk/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/ml/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/ml/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/mn/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/mn/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/mr/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/mr/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/ms/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/ms/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/my/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/my/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/nb/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/nb/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/ne/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/ne/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/nl/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/nl/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/nn/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/nn/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/os/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/os/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/pa/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/pa/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/pl/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/pl/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/pt/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/pt/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/pt_BR/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/pt_BR/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/ro/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/ro/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/ru/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/ru/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/sk/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/sk/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/sl/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/sl/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/sq/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/sq/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/sr/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/sr/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/sr_Latn/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/sr_Latn/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/sv/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/sv/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/sw/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/sw/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/ta/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/ta/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/te/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/te/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/tg/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/tg/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/th/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/th/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/tk/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/tk/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/tr/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/tr/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/tt/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/tt/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/udm/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/udm/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/ug/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/ug/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/uk/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/uk/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/ur/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/ur/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/uz/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/uz/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/vi/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/vi/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/zh_Hans/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/zh_Hans/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/zh_Hant/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/locale/zh_Hant/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/templatetags/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/templatetags/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/templatetags/__pycache__/humanize.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/humanize/templatetags/humanize.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/messages/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/messages/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/messages/__pycache__/api.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/messages/__pycache__/apps.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/messages/__pycache__/constants.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/messages/__pycache__/context_processors.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/messages/__pycache__/middleware.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/messages/__pycache__/test.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/messages/__pycache__/utils.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/messages/__pycache__/views.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/messages/api.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/messages/apps.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/messages/constants.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/messages/context_processors.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/messages/middleware.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/messages/storage/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/messages/storage/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/messages/storage/__pycache__/base.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/messages/storage/__pycache__/cookie.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/messages/storage/__pycache__/fallback.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/messages/storage/__pycache__/session.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/messages/storage/base.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/messages/storage/cookie.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/messages/storage/fallback.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/messages/storage/session.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/messages/test.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/messages/utils.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/messages/views.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/__pycache__/apps.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/__pycache__/constraints.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/__pycache__/expressions.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/__pycache__/functions.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/__pycache__/indexes.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/__pycache__/lookups.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/__pycache__/operations.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/__pycache__/search.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/__pycache__/serializers.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/__pycache__/signals.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/__pycache__/utils.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/__pycache__/validators.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/aggregates/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/aggregates/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/aggregates/__pycache__/general.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/aggregates/__pycache__/mixins.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/aggregates/__pycache__/statistics.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/aggregates/general.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/aggregates/mixins.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/aggregates/statistics.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/apps.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/constraints.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/expressions.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/fields/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/fields/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/fields/__pycache__/array.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/fields/__pycache__/citext.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/fields/__pycache__/hstore.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/fields/__pycache__/jsonb.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/fields/__pycache__/ranges.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/fields/__pycache__/utils.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/fields/array.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/fields/citext.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/fields/hstore.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/fields/jsonb.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/fields/ranges.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/fields/utils.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/forms/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/forms/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/forms/__pycache__/array.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/forms/__pycache__/hstore.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/forms/__pycache__/ranges.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/forms/array.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/forms/hstore.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/forms/ranges.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/functions.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/indexes.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/jinja2/postgres/widgets/split_array.html create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/af/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/af/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/ar/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/ar/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/ar_DZ/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/ar_DZ/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/az/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/az/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/be/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/be/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/bg/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/bg/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/ca/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/ca/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/ckb/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/ckb/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/cs/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/cs/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/da/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/da/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/de/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/de/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/dsb/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/dsb/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/el/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/el/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/en/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/en/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/en_AU/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/en_AU/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/eo/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/eo/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/es/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/es/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/es_AR/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/es_AR/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/es_CO/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/es_CO/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/es_MX/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/es_MX/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/et/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/et/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/eu/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/eu/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/fa/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/fa/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/fi/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/fi/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/fr/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/fr/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/gd/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/gd/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/gl/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/gl/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/he/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/he/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/hr/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/hr/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/hsb/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/hsb/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/hu/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/hu/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/hy/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/hy/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/ia/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/ia/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/id/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/id/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/is/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/is/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/it/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/it/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/ja/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/ja/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/ka/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/ka/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/kk/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/kk/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/ko/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/ko/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/ky/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/ky/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/lt/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/lt/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/lv/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/lv/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/mk/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/mk/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/ml/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/ml/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/mn/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/mn/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/mr/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/mr/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/ms/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/ms/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/nb/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/nb/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/ne/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/ne/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/nl/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/nl/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/nn/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/nn/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/pl/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/pl/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/pt/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/pt/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/pt_BR/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/pt_BR/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/ro/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/ro/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/ru/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/ru/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/sk/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/sk/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/sl/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/sl/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/sq/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/sq/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/sr/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/sr/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/sr_Latn/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/sr_Latn/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/sv/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/sv/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/tg/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/tg/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/tk/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/tk/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/tr/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/tr/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/ug/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/ug/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/uk/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/uk/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/uz/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/uz/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/zh_Hans/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/zh_Hans/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/zh_Hant/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/locale/zh_Hant/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/lookups.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/operations.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/search.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/serializers.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/signals.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/templates/postgres/widgets/split_array.html create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/utils.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/postgres/validators.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/__pycache__/admin.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/__pycache__/apps.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/__pycache__/middleware.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/__pycache__/models.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/admin.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/apps.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/af/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/af/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/ar/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/ar/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/ar_DZ/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/ar_DZ/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/ast/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/ast/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/az/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/az/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/be/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/be/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/bg/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/bg/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/bn/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/bn/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/br/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/br/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/bs/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/bs/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/ca/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/ca/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/ckb/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/ckb/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/cs/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/cs/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/cy/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/cy/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/da/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/da/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/de/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/de/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/dsb/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/dsb/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/el/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/el/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/en/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/en/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/en_AU/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/en_AU/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/en_GB/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/en_GB/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/eo/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/eo/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/es/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/es/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/es_AR/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/es_AR/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/es_CO/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/es_CO/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/es_MX/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/es_MX/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/es_VE/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/es_VE/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/et/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/et/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/eu/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/eu/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/fa/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/fa/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/fi/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/fi/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/fr/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/fr/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/fy/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/fy/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/ga/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/ga/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/gd/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/gd/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/gl/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/gl/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/he/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/he/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/hi/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/hi/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/hr/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/hr/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/hsb/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/hsb/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/hu/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/hu/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/hy/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/hy/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/ia/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/ia/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/id/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/id/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/io/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/io/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/is/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/is/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/it/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/it/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/ja/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/ja/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/ka/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/ka/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/kab/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/kab/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/kk/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/kk/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/km/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/km/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/kn/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/kn/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/ko/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/ko/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/ky/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/ky/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/lb/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/lb/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/lt/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/lt/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/lv/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/lv/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/mk/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/mk/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/ml/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/ml/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/mn/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/mn/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/mr/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/mr/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/ms/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/ms/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/my/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/my/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/nb/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/nb/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/ne/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/ne/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/nl/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/nl/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/nn/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/nn/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/os/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/os/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/pa/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/pa/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/pl/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/pl/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/pt/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/pt/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/pt_BR/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/pt_BR/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/ro/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/ro/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/ru/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/ru/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/sk/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/sk/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/sl/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/sl/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/sq/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/sq/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/sr/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/sr/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/sr_Latn/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/sr_Latn/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/sv/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/sv/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/sw/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/sw/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/ta/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/ta/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/te/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/te/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/tg/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/tg/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/th/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/th/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/tk/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/tk/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/tr/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/tr/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/tt/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/tt/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/udm/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/udm/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/ug/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/ug/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/uk/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/uk/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/ur/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/ur/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/uz/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/uz/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/vi/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/vi/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/zh_Hans/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/zh_Hans/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/zh_Hant/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/locale/zh_Hant/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/middleware.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/migrations/0001_initial.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/migrations/0002_alter_redirect_new_path_help_text.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/migrations/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/migrations/__pycache__/0001_initial.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/migrations/__pycache__/0002_alter_redirect_new_path_help_text.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/migrations/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/redirects/models.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/__pycache__/apps.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/__pycache__/base_session.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/__pycache__/exceptions.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/__pycache__/middleware.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/__pycache__/models.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/__pycache__/serializers.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/apps.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/backends/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/backends/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/backends/__pycache__/base.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/backends/__pycache__/cache.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/backends/__pycache__/cached_db.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/backends/__pycache__/db.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/backends/__pycache__/file.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/backends/__pycache__/signed_cookies.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/backends/base.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/backends/cache.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/backends/cached_db.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/backends/db.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/backends/file.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/backends/signed_cookies.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/base_session.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/exceptions.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/af/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/af/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/ar/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/ar/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/ar_DZ/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/ar_DZ/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/ast/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/ast/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/az/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/az/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/be/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/be/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/bg/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/bg/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/bn/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/bn/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/br/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/br/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/bs/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/bs/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/ca/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/ca/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/ckb/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/ckb/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/cs/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/cs/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/cy/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/cy/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/da/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/da/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/de/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/de/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/dsb/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/dsb/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/el/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/el/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/en/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/en/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/en_AU/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/en_AU/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/en_GB/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/en_GB/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/eo/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/eo/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/es/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/es/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/es_AR/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/es_AR/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/es_CO/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/es_CO/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/es_MX/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/es_MX/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/es_VE/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/es_VE/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/et/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/et/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/eu/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/eu/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/fa/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/fa/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/fi/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/fi/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/fr/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/fr/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/fy/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/fy/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/ga/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/ga/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/gd/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/gd/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/gl/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/gl/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/he/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/he/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/hi/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/hi/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/hr/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/hr/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/hsb/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/hsb/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/hu/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/hu/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/hy/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/hy/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/ia/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/ia/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/id/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/id/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/io/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/io/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/is/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/is/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/it/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/it/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/ja/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/ja/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/ka/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/ka/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/kab/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/kab/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/kk/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/kk/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/km/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/km/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/kn/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/kn/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/ko/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/ko/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/ky/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/ky/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/lb/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/lb/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/lt/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/lt/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/lv/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/lv/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/mk/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/mk/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/ml/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/ml/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/mn/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/mn/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/mr/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/mr/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/ms/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/ms/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/my/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/my/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/nb/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/nb/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/ne/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/ne/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/nl/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/nl/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/nn/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/nn/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/os/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/os/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/pa/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/pa/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/pl/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/pl/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/pt/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/pt/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/pt_BR/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/pt_BR/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/ro/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/ro/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/ru/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/ru/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/sk/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/sk/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/sl/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/sl/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/sq/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/sq/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/sr/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/sr/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/sr_Latn/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/sr_Latn/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/sv/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/sv/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/sw/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/sw/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/ta/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/ta/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/te/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/te/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/tg/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/tg/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/th/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/th/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/tk/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/tk/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/tr/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/tr/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/tt/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/tt/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/udm/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/udm/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/ug/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/ug/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/uk/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/uk/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/ur/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/ur/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/uz/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/uz/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/vi/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/vi/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/zh_Hans/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/zh_Hans/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/zh_Hant/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/locale/zh_Hant/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/management/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/management/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/management/commands/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/management/commands/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/management/commands/__pycache__/clearsessions.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/management/commands/clearsessions.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/middleware.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/migrations/0001_initial.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/migrations/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/migrations/__pycache__/0001_initial.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/migrations/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/models.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sessions/serializers.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sitemaps/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sitemaps/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sitemaps/__pycache__/apps.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sitemaps/__pycache__/views.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sitemaps/apps.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sitemaps/templates/sitemap.xml create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sitemaps/templates/sitemap_index.xml create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sitemaps/views.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/__pycache__/admin.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/__pycache__/apps.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/__pycache__/checks.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/__pycache__/management.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/__pycache__/managers.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/__pycache__/middleware.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/__pycache__/models.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/__pycache__/requests.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/__pycache__/shortcuts.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/admin.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/apps.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/checks.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/af/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/af/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/ar/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/ar/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/ar_DZ/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/ar_DZ/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/ast/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/ast/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/az/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/az/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/be/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/be/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/bg/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/bg/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/bn/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/bn/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/br/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/br/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/bs/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/bs/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/ca/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/ca/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/ckb/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/ckb/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/cs/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/cs/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/cy/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/cy/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/da/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/da/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/de/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/de/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/dsb/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/dsb/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/el/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/el/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/en/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/en/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/en_AU/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/en_AU/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/en_GB/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/en_GB/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/eo/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/eo/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/es/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/es/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/es_AR/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/es_AR/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/es_CO/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/es_CO/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/es_MX/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/es_MX/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/es_VE/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/es_VE/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/et/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/et/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/eu/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/eu/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/fa/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/fa/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/fi/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/fi/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/fr/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/fr/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/fy/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/fy/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/ga/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/ga/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/gd/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/gd/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/gl/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/gl/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/he/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/he/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/hi/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/hi/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/hr/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/hr/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/hsb/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/hsb/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/hu/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/hu/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/hy/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/hy/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/ia/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/ia/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/id/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/id/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/io/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/io/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/is/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/is/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/it/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/it/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/ja/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/ja/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/ka/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/ka/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/kab/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/kab/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/kk/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/kk/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/km/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/km/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/kn/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/kn/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/ko/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/ko/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/ky/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/ky/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/lb/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/lb/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/lt/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/lt/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/lv/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/lv/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/mk/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/mk/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/ml/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/ml/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/mn/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/mn/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/mr/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/mr/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/ms/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/ms/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/my/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/my/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/nb/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/nb/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/ne/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/ne/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/nl/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/nl/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/nn/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/nn/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/os/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/os/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/pa/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/pa/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/pl/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/pl/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/pt/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/pt/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/pt_BR/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/pt_BR/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/ro/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/ro/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/ru/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/ru/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/sk/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/sk/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/sl/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/sl/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/sq/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/sq/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/sr/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/sr/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/sr_Latn/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/sr_Latn/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/sv/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/sv/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/sw/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/sw/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/ta/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/ta/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/te/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/te/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/tg/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/tg/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/th/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/th/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/tk/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/tk/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/tr/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/tr/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/tt/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/tt/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/udm/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/udm/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/ug/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/ug/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/uk/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/uk/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/ur/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/ur/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/uz/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/uz/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/vi/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/vi/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/zh_Hans/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/zh_Hans/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/zh_Hant/LC_MESSAGES/django.mo create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/locale/zh_Hant/LC_MESSAGES/django.po create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/management.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/managers.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/middleware.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/migrations/0001_initial.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/migrations/0002_alter_domain_unique.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/migrations/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/migrations/__pycache__/0001_initial.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/migrations/__pycache__/0002_alter_domain_unique.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/migrations/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/models.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/requests.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/sites/shortcuts.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/staticfiles/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/staticfiles/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/staticfiles/__pycache__/apps.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/staticfiles/__pycache__/checks.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/staticfiles/__pycache__/finders.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/staticfiles/__pycache__/handlers.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/staticfiles/__pycache__/storage.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/staticfiles/__pycache__/testing.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/staticfiles/__pycache__/urls.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/staticfiles/__pycache__/utils.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/staticfiles/__pycache__/views.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/staticfiles/apps.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/staticfiles/checks.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/staticfiles/finders.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/staticfiles/handlers.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/staticfiles/management/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/staticfiles/management/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/staticfiles/management/commands/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/staticfiles/management/commands/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/staticfiles/management/commands/__pycache__/collectstatic.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/staticfiles/management/commands/__pycache__/findstatic.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/staticfiles/management/commands/__pycache__/runserver.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/staticfiles/management/commands/collectstatic.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/staticfiles/management/commands/findstatic.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/staticfiles/management/commands/runserver.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/staticfiles/storage.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/staticfiles/testing.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/staticfiles/urls.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/staticfiles/utils.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/staticfiles/views.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/syndication/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/syndication/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/syndication/__pycache__/apps.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/syndication/__pycache__/views.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/contrib/syndication/apps.py create mode 100644 venv/lib/python3.12/site-packages/django/contrib/syndication/views.py create mode 100644 venv/lib/python3.12/site-packages/django/core/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/core/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/__pycache__/asgi.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/__pycache__/exceptions.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/__pycache__/paginator.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/__pycache__/signals.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/__pycache__/signing.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/__pycache__/validators.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/__pycache__/wsgi.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/asgi.py create mode 100644 venv/lib/python3.12/site-packages/django/core/cache/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/core/cache/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/cache/__pycache__/utils.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/cache/backends/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/core/cache/backends/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/cache/backends/__pycache__/base.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/cache/backends/__pycache__/db.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/cache/backends/__pycache__/dummy.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/cache/backends/__pycache__/filebased.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/cache/backends/__pycache__/locmem.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/cache/backends/__pycache__/memcached.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/cache/backends/__pycache__/redis.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/cache/backends/base.py create mode 100644 venv/lib/python3.12/site-packages/django/core/cache/backends/db.py create mode 100644 venv/lib/python3.12/site-packages/django/core/cache/backends/dummy.py create mode 100644 venv/lib/python3.12/site-packages/django/core/cache/backends/filebased.py create mode 100644 venv/lib/python3.12/site-packages/django/core/cache/backends/locmem.py create mode 100644 venv/lib/python3.12/site-packages/django/core/cache/backends/memcached.py create mode 100644 venv/lib/python3.12/site-packages/django/core/cache/backends/redis.py create mode 100644 venv/lib/python3.12/site-packages/django/core/cache/utils.py create mode 100644 venv/lib/python3.12/site-packages/django/core/checks/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/core/checks/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/checks/__pycache__/async_checks.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/checks/__pycache__/caches.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/checks/__pycache__/database.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/checks/__pycache__/files.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/checks/__pycache__/messages.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/checks/__pycache__/model_checks.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/checks/__pycache__/registry.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/checks/__pycache__/templates.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/checks/__pycache__/translation.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/checks/__pycache__/urls.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/checks/async_checks.py create mode 100644 venv/lib/python3.12/site-packages/django/core/checks/caches.py create mode 100644 venv/lib/python3.12/site-packages/django/core/checks/compatibility/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/core/checks/compatibility/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/checks/compatibility/__pycache__/django_4_0.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/checks/compatibility/django_4_0.py create mode 100644 venv/lib/python3.12/site-packages/django/core/checks/database.py create mode 100644 venv/lib/python3.12/site-packages/django/core/checks/files.py create mode 100644 venv/lib/python3.12/site-packages/django/core/checks/messages.py create mode 100644 venv/lib/python3.12/site-packages/django/core/checks/model_checks.py create mode 100644 venv/lib/python3.12/site-packages/django/core/checks/registry.py create mode 100644 venv/lib/python3.12/site-packages/django/core/checks/security/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/core/checks/security/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/checks/security/__pycache__/base.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/checks/security/__pycache__/csrf.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/checks/security/__pycache__/sessions.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/checks/security/base.py create mode 100644 venv/lib/python3.12/site-packages/django/core/checks/security/csrf.py create mode 100644 venv/lib/python3.12/site-packages/django/core/checks/security/sessions.py create mode 100644 venv/lib/python3.12/site-packages/django/core/checks/templates.py create mode 100644 venv/lib/python3.12/site-packages/django/core/checks/translation.py create mode 100644 venv/lib/python3.12/site-packages/django/core/checks/urls.py create mode 100644 venv/lib/python3.12/site-packages/django/core/exceptions.py create mode 100644 venv/lib/python3.12/site-packages/django/core/files/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/core/files/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/files/__pycache__/base.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/files/__pycache__/images.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/files/__pycache__/locks.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/files/__pycache__/move.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/files/__pycache__/temp.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/files/__pycache__/uploadedfile.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/files/__pycache__/uploadhandler.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/files/__pycache__/utils.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/files/base.py create mode 100644 venv/lib/python3.12/site-packages/django/core/files/images.py create mode 100644 venv/lib/python3.12/site-packages/django/core/files/locks.py create mode 100644 venv/lib/python3.12/site-packages/django/core/files/move.py create mode 100644 venv/lib/python3.12/site-packages/django/core/files/storage/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/core/files/storage/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/files/storage/__pycache__/base.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/files/storage/__pycache__/filesystem.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/files/storage/__pycache__/handler.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/files/storage/__pycache__/memory.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/files/storage/__pycache__/mixins.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/files/storage/base.py create mode 100644 venv/lib/python3.12/site-packages/django/core/files/storage/filesystem.py create mode 100644 venv/lib/python3.12/site-packages/django/core/files/storage/handler.py create mode 100644 venv/lib/python3.12/site-packages/django/core/files/storage/memory.py create mode 100644 venv/lib/python3.12/site-packages/django/core/files/storage/mixins.py create mode 100644 venv/lib/python3.12/site-packages/django/core/files/temp.py create mode 100644 venv/lib/python3.12/site-packages/django/core/files/uploadedfile.py create mode 100644 venv/lib/python3.12/site-packages/django/core/files/uploadhandler.py create mode 100644 venv/lib/python3.12/site-packages/django/core/files/utils.py create mode 100644 venv/lib/python3.12/site-packages/django/core/handlers/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/core/handlers/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/handlers/__pycache__/asgi.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/handlers/__pycache__/base.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/handlers/__pycache__/exception.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/handlers/__pycache__/wsgi.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/handlers/asgi.py create mode 100644 venv/lib/python3.12/site-packages/django/core/handlers/base.py create mode 100644 venv/lib/python3.12/site-packages/django/core/handlers/exception.py create mode 100644 venv/lib/python3.12/site-packages/django/core/handlers/wsgi.py create mode 100644 venv/lib/python3.12/site-packages/django/core/mail/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/core/mail/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/mail/__pycache__/message.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/mail/__pycache__/utils.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/mail/backends/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/core/mail/backends/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/mail/backends/__pycache__/base.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/mail/backends/__pycache__/console.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/mail/backends/__pycache__/dummy.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/mail/backends/__pycache__/filebased.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/mail/backends/__pycache__/locmem.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/mail/backends/__pycache__/smtp.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/mail/backends/base.py create mode 100644 venv/lib/python3.12/site-packages/django/core/mail/backends/console.py create mode 100644 venv/lib/python3.12/site-packages/django/core/mail/backends/dummy.py create mode 100644 venv/lib/python3.12/site-packages/django/core/mail/backends/filebased.py create mode 100644 venv/lib/python3.12/site-packages/django/core/mail/backends/locmem.py create mode 100644 venv/lib/python3.12/site-packages/django/core/mail/backends/smtp.py create mode 100644 venv/lib/python3.12/site-packages/django/core/mail/message.py create mode 100644 venv/lib/python3.12/site-packages/django/core/mail/utils.py create mode 100644 venv/lib/python3.12/site-packages/django/core/management/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/core/management/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/management/__pycache__/base.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/management/__pycache__/color.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/management/__pycache__/sql.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/management/__pycache__/templates.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/management/__pycache__/utils.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/management/base.py create mode 100644 venv/lib/python3.12/site-packages/django/core/management/color.py create mode 100644 venv/lib/python3.12/site-packages/django/core/management/commands/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/core/management/commands/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/management/commands/__pycache__/check.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/management/commands/__pycache__/compilemessages.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/management/commands/__pycache__/createcachetable.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/management/commands/__pycache__/dbshell.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/management/commands/__pycache__/diffsettings.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/management/commands/__pycache__/dumpdata.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/management/commands/__pycache__/flush.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/management/commands/__pycache__/inspectdb.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/management/commands/__pycache__/loaddata.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/management/commands/__pycache__/makemessages.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/management/commands/__pycache__/makemigrations.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/management/commands/__pycache__/migrate.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/management/commands/__pycache__/optimizemigration.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/management/commands/__pycache__/runserver.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/management/commands/__pycache__/sendtestemail.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/management/commands/__pycache__/shell.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/management/commands/__pycache__/showmigrations.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/management/commands/__pycache__/sqlflush.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/management/commands/__pycache__/sqlmigrate.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/management/commands/__pycache__/sqlsequencereset.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/management/commands/__pycache__/squashmigrations.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/management/commands/__pycache__/startapp.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/management/commands/__pycache__/startproject.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/management/commands/__pycache__/test.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/management/commands/__pycache__/testserver.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/management/commands/check.py create mode 100644 venv/lib/python3.12/site-packages/django/core/management/commands/compilemessages.py create mode 100644 venv/lib/python3.12/site-packages/django/core/management/commands/createcachetable.py create mode 100644 venv/lib/python3.12/site-packages/django/core/management/commands/dbshell.py create mode 100644 venv/lib/python3.12/site-packages/django/core/management/commands/diffsettings.py create mode 100644 venv/lib/python3.12/site-packages/django/core/management/commands/dumpdata.py create mode 100644 venv/lib/python3.12/site-packages/django/core/management/commands/flush.py create mode 100644 venv/lib/python3.12/site-packages/django/core/management/commands/inspectdb.py create mode 100644 venv/lib/python3.12/site-packages/django/core/management/commands/loaddata.py create mode 100644 venv/lib/python3.12/site-packages/django/core/management/commands/makemessages.py create mode 100644 venv/lib/python3.12/site-packages/django/core/management/commands/makemigrations.py create mode 100644 venv/lib/python3.12/site-packages/django/core/management/commands/migrate.py create mode 100644 venv/lib/python3.12/site-packages/django/core/management/commands/optimizemigration.py create mode 100644 venv/lib/python3.12/site-packages/django/core/management/commands/runserver.py create mode 100644 venv/lib/python3.12/site-packages/django/core/management/commands/sendtestemail.py create mode 100644 venv/lib/python3.12/site-packages/django/core/management/commands/shell.py create mode 100644 venv/lib/python3.12/site-packages/django/core/management/commands/showmigrations.py create mode 100644 venv/lib/python3.12/site-packages/django/core/management/commands/sqlflush.py create mode 100644 venv/lib/python3.12/site-packages/django/core/management/commands/sqlmigrate.py create mode 100644 venv/lib/python3.12/site-packages/django/core/management/commands/sqlsequencereset.py create mode 100644 venv/lib/python3.12/site-packages/django/core/management/commands/squashmigrations.py create mode 100644 venv/lib/python3.12/site-packages/django/core/management/commands/startapp.py create mode 100644 venv/lib/python3.12/site-packages/django/core/management/commands/startproject.py create mode 100644 venv/lib/python3.12/site-packages/django/core/management/commands/test.py create mode 100644 venv/lib/python3.12/site-packages/django/core/management/commands/testserver.py create mode 100644 venv/lib/python3.12/site-packages/django/core/management/sql.py create mode 100644 venv/lib/python3.12/site-packages/django/core/management/templates.py create mode 100644 venv/lib/python3.12/site-packages/django/core/management/utils.py create mode 100644 venv/lib/python3.12/site-packages/django/core/paginator.py create mode 100644 venv/lib/python3.12/site-packages/django/core/serializers/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/core/serializers/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/serializers/__pycache__/base.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/serializers/__pycache__/json.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/serializers/__pycache__/jsonl.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/serializers/__pycache__/python.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/serializers/__pycache__/pyyaml.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/serializers/__pycache__/xml_serializer.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/serializers/base.py create mode 100644 venv/lib/python3.12/site-packages/django/core/serializers/json.py create mode 100644 venv/lib/python3.12/site-packages/django/core/serializers/jsonl.py create mode 100644 venv/lib/python3.12/site-packages/django/core/serializers/python.py create mode 100644 venv/lib/python3.12/site-packages/django/core/serializers/pyyaml.py create mode 100644 venv/lib/python3.12/site-packages/django/core/serializers/xml_serializer.py create mode 100644 venv/lib/python3.12/site-packages/django/core/servers/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/core/servers/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/servers/__pycache__/basehttp.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/core/servers/basehttp.py create mode 100644 venv/lib/python3.12/site-packages/django/core/signals.py create mode 100644 venv/lib/python3.12/site-packages/django/core/signing.py create mode 100644 venv/lib/python3.12/site-packages/django/core/validators.py create mode 100644 venv/lib/python3.12/site-packages/django/core/wsgi.py create mode 100644 venv/lib/python3.12/site-packages/django/db/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/db/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/__pycache__/transaction.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/__pycache__/utils.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/__pycache__/ddl_references.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/__pycache__/signals.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/__pycache__/utils.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/base/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/base/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/base/__pycache__/base.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/base/__pycache__/client.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/base/__pycache__/creation.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/base/__pycache__/features.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/base/__pycache__/introspection.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/base/__pycache__/operations.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/base/__pycache__/schema.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/base/__pycache__/validation.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/base/base.py create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/base/client.py create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/base/creation.py create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/base/features.py create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/base/introspection.py create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/base/operations.py create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/base/schema.py create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/base/validation.py create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/ddl_references.py create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/dummy/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/dummy/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/dummy/__pycache__/base.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/dummy/__pycache__/features.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/dummy/base.py create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/dummy/features.py create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/mysql/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/mysql/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/mysql/__pycache__/base.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/mysql/__pycache__/client.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/mysql/__pycache__/compiler.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/mysql/__pycache__/creation.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/mysql/__pycache__/features.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/mysql/__pycache__/introspection.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/mysql/__pycache__/operations.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/mysql/__pycache__/schema.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/mysql/__pycache__/validation.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/mysql/base.py create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/mysql/client.py create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/mysql/compiler.py create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/mysql/creation.py create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/mysql/features.py create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/mysql/introspection.py create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/mysql/operations.py create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/mysql/schema.py create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/mysql/validation.py create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/oracle/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/oracle/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/oracle/__pycache__/base.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/oracle/__pycache__/client.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/oracle/__pycache__/creation.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/oracle/__pycache__/features.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/oracle/__pycache__/functions.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/oracle/__pycache__/introspection.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/oracle/__pycache__/operations.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/oracle/__pycache__/oracledb_any.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/oracle/__pycache__/schema.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/oracle/__pycache__/utils.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/oracle/__pycache__/validation.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/oracle/base.py create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/oracle/client.py create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/oracle/creation.py create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/oracle/features.py create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/oracle/functions.py create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/oracle/introspection.py create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/oracle/operations.py create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/oracle/oracledb_any.py create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/oracle/schema.py create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/oracle/utils.py create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/oracle/validation.py create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/postgresql/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/postgresql/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/postgresql/__pycache__/base.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/postgresql/__pycache__/client.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/postgresql/__pycache__/creation.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/postgresql/__pycache__/features.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/postgresql/__pycache__/introspection.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/postgresql/__pycache__/operations.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/postgresql/__pycache__/psycopg_any.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/postgresql/__pycache__/schema.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/postgresql/base.py create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/postgresql/client.py create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/postgresql/creation.py create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/postgresql/features.py create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/postgresql/introspection.py create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/postgresql/operations.py create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/postgresql/psycopg_any.py create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/postgresql/schema.py create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/signals.py create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/sqlite3/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/sqlite3/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/sqlite3/__pycache__/_functions.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/sqlite3/__pycache__/base.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/sqlite3/__pycache__/client.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/sqlite3/__pycache__/creation.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/sqlite3/__pycache__/features.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/sqlite3/__pycache__/introspection.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/sqlite3/__pycache__/operations.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/sqlite3/__pycache__/schema.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/sqlite3/_functions.py create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/sqlite3/base.py create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/sqlite3/client.py create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/sqlite3/creation.py create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/sqlite3/features.py create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/sqlite3/introspection.py create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/sqlite3/operations.py create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/sqlite3/schema.py create mode 100644 venv/lib/python3.12/site-packages/django/db/backends/utils.py create mode 100644 venv/lib/python3.12/site-packages/django/db/migrations/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/db/migrations/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/migrations/__pycache__/autodetector.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/migrations/__pycache__/exceptions.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/migrations/__pycache__/executor.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/migrations/__pycache__/graph.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/migrations/__pycache__/loader.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/migrations/__pycache__/migration.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/migrations/__pycache__/optimizer.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/migrations/__pycache__/questioner.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/migrations/__pycache__/recorder.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/migrations/__pycache__/serializer.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/migrations/__pycache__/state.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/migrations/__pycache__/utils.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/migrations/__pycache__/writer.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/migrations/autodetector.py create mode 100644 venv/lib/python3.12/site-packages/django/db/migrations/exceptions.py create mode 100644 venv/lib/python3.12/site-packages/django/db/migrations/executor.py create mode 100644 venv/lib/python3.12/site-packages/django/db/migrations/graph.py create mode 100644 venv/lib/python3.12/site-packages/django/db/migrations/loader.py create mode 100644 venv/lib/python3.12/site-packages/django/db/migrations/migration.py create mode 100644 venv/lib/python3.12/site-packages/django/db/migrations/operations/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/db/migrations/operations/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/migrations/operations/__pycache__/base.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/migrations/operations/__pycache__/fields.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/migrations/operations/__pycache__/models.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/migrations/operations/__pycache__/special.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/migrations/operations/base.py create mode 100644 venv/lib/python3.12/site-packages/django/db/migrations/operations/fields.py create mode 100644 venv/lib/python3.12/site-packages/django/db/migrations/operations/models.py create mode 100644 venv/lib/python3.12/site-packages/django/db/migrations/operations/special.py create mode 100644 venv/lib/python3.12/site-packages/django/db/migrations/optimizer.py create mode 100644 venv/lib/python3.12/site-packages/django/db/migrations/questioner.py create mode 100644 venv/lib/python3.12/site-packages/django/db/migrations/recorder.py create mode 100644 venv/lib/python3.12/site-packages/django/db/migrations/serializer.py create mode 100644 venv/lib/python3.12/site-packages/django/db/migrations/state.py create mode 100644 venv/lib/python3.12/site-packages/django/db/migrations/utils.py create mode 100644 venv/lib/python3.12/site-packages/django/db/migrations/writer.py create mode 100644 venv/lib/python3.12/site-packages/django/db/models/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/db/models/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/models/__pycache__/aggregates.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/models/__pycache__/base.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/models/__pycache__/constants.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/models/__pycache__/constraints.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/models/__pycache__/deletion.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/models/__pycache__/enums.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/models/__pycache__/expressions.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/models/__pycache__/indexes.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/models/__pycache__/lookups.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/models/__pycache__/manager.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/models/__pycache__/options.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/models/__pycache__/query.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/models/__pycache__/query_utils.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/models/__pycache__/signals.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/models/__pycache__/utils.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/models/aggregates.py create mode 100644 venv/lib/python3.12/site-packages/django/db/models/base.py create mode 100644 venv/lib/python3.12/site-packages/django/db/models/constants.py create mode 100644 venv/lib/python3.12/site-packages/django/db/models/constraints.py create mode 100644 venv/lib/python3.12/site-packages/django/db/models/deletion.py create mode 100644 venv/lib/python3.12/site-packages/django/db/models/enums.py create mode 100644 venv/lib/python3.12/site-packages/django/db/models/expressions.py create mode 100644 venv/lib/python3.12/site-packages/django/db/models/fields/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/db/models/fields/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/models/fields/__pycache__/files.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/models/fields/__pycache__/generated.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/models/fields/__pycache__/json.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/models/fields/__pycache__/mixins.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/models/fields/__pycache__/proxy.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/models/fields/__pycache__/related.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/models/fields/__pycache__/related_descriptors.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/models/fields/__pycache__/related_lookups.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/models/fields/__pycache__/reverse_related.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/models/fields/files.py create mode 100644 venv/lib/python3.12/site-packages/django/db/models/fields/generated.py create mode 100644 venv/lib/python3.12/site-packages/django/db/models/fields/json.py create mode 100644 venv/lib/python3.12/site-packages/django/db/models/fields/mixins.py create mode 100644 venv/lib/python3.12/site-packages/django/db/models/fields/proxy.py create mode 100644 venv/lib/python3.12/site-packages/django/db/models/fields/related.py create mode 100644 venv/lib/python3.12/site-packages/django/db/models/fields/related_descriptors.py create mode 100644 venv/lib/python3.12/site-packages/django/db/models/fields/related_lookups.py create mode 100644 venv/lib/python3.12/site-packages/django/db/models/fields/reverse_related.py create mode 100644 venv/lib/python3.12/site-packages/django/db/models/functions/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/db/models/functions/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/models/functions/__pycache__/comparison.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/models/functions/__pycache__/datetime.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/models/functions/__pycache__/math.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/models/functions/__pycache__/mixins.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/models/functions/__pycache__/text.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/models/functions/__pycache__/window.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/models/functions/comparison.py create mode 100644 venv/lib/python3.12/site-packages/django/db/models/functions/datetime.py create mode 100644 venv/lib/python3.12/site-packages/django/db/models/functions/math.py create mode 100644 venv/lib/python3.12/site-packages/django/db/models/functions/mixins.py create mode 100644 venv/lib/python3.12/site-packages/django/db/models/functions/text.py create mode 100644 venv/lib/python3.12/site-packages/django/db/models/functions/window.py create mode 100644 venv/lib/python3.12/site-packages/django/db/models/indexes.py create mode 100644 venv/lib/python3.12/site-packages/django/db/models/lookups.py create mode 100644 venv/lib/python3.12/site-packages/django/db/models/manager.py create mode 100644 venv/lib/python3.12/site-packages/django/db/models/options.py create mode 100644 venv/lib/python3.12/site-packages/django/db/models/query.py create mode 100644 venv/lib/python3.12/site-packages/django/db/models/query_utils.py create mode 100644 venv/lib/python3.12/site-packages/django/db/models/signals.py create mode 100644 venv/lib/python3.12/site-packages/django/db/models/sql/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/db/models/sql/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/models/sql/__pycache__/compiler.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/models/sql/__pycache__/constants.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/models/sql/__pycache__/datastructures.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/models/sql/__pycache__/query.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/models/sql/__pycache__/subqueries.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/models/sql/__pycache__/where.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/db/models/sql/compiler.py create mode 100644 venv/lib/python3.12/site-packages/django/db/models/sql/constants.py create mode 100644 venv/lib/python3.12/site-packages/django/db/models/sql/datastructures.py create mode 100644 venv/lib/python3.12/site-packages/django/db/models/sql/query.py create mode 100644 venv/lib/python3.12/site-packages/django/db/models/sql/subqueries.py create mode 100644 venv/lib/python3.12/site-packages/django/db/models/sql/where.py create mode 100644 venv/lib/python3.12/site-packages/django/db/models/utils.py create mode 100644 venv/lib/python3.12/site-packages/django/db/transaction.py create mode 100644 venv/lib/python3.12/site-packages/django/db/utils.py create mode 100644 venv/lib/python3.12/site-packages/django/dispatch/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/dispatch/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/dispatch/__pycache__/dispatcher.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/dispatch/dispatcher.py create mode 100644 venv/lib/python3.12/site-packages/django/dispatch/license.txt create mode 100644 venv/lib/python3.12/site-packages/django/forms/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/forms/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/forms/__pycache__/boundfield.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/forms/__pycache__/fields.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/forms/__pycache__/forms.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/forms/__pycache__/formsets.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/forms/__pycache__/models.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/forms/__pycache__/renderers.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/forms/__pycache__/utils.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/forms/__pycache__/widgets.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/forms/boundfield.py create mode 100644 venv/lib/python3.12/site-packages/django/forms/fields.py create mode 100644 venv/lib/python3.12/site-packages/django/forms/forms.py create mode 100644 venv/lib/python3.12/site-packages/django/forms/formsets.py create mode 100644 venv/lib/python3.12/site-packages/django/forms/jinja2/django/forms/attrs.html create mode 100644 venv/lib/python3.12/site-packages/django/forms/jinja2/django/forms/div.html create mode 100644 venv/lib/python3.12/site-packages/django/forms/jinja2/django/forms/errors/dict/default.html create mode 100644 venv/lib/python3.12/site-packages/django/forms/jinja2/django/forms/errors/dict/text.txt create mode 100644 venv/lib/python3.12/site-packages/django/forms/jinja2/django/forms/errors/dict/ul.html create mode 100644 venv/lib/python3.12/site-packages/django/forms/jinja2/django/forms/errors/list/default.html create mode 100644 venv/lib/python3.12/site-packages/django/forms/jinja2/django/forms/errors/list/text.txt create mode 100644 venv/lib/python3.12/site-packages/django/forms/jinja2/django/forms/errors/list/ul.html create mode 100644 venv/lib/python3.12/site-packages/django/forms/jinja2/django/forms/field.html create mode 100644 venv/lib/python3.12/site-packages/django/forms/jinja2/django/forms/formsets/div.html create mode 100644 venv/lib/python3.12/site-packages/django/forms/jinja2/django/forms/formsets/p.html create mode 100644 venv/lib/python3.12/site-packages/django/forms/jinja2/django/forms/formsets/table.html create mode 100644 venv/lib/python3.12/site-packages/django/forms/jinja2/django/forms/formsets/ul.html create mode 100644 venv/lib/python3.12/site-packages/django/forms/jinja2/django/forms/label.html create mode 100644 venv/lib/python3.12/site-packages/django/forms/jinja2/django/forms/p.html create mode 100644 venv/lib/python3.12/site-packages/django/forms/jinja2/django/forms/table.html create mode 100644 venv/lib/python3.12/site-packages/django/forms/jinja2/django/forms/ul.html create mode 100644 venv/lib/python3.12/site-packages/django/forms/jinja2/django/forms/widgets/attrs.html create mode 100644 venv/lib/python3.12/site-packages/django/forms/jinja2/django/forms/widgets/checkbox.html create mode 100644 venv/lib/python3.12/site-packages/django/forms/jinja2/django/forms/widgets/checkbox_option.html create mode 100644 venv/lib/python3.12/site-packages/django/forms/jinja2/django/forms/widgets/checkbox_select.html create mode 100644 venv/lib/python3.12/site-packages/django/forms/jinja2/django/forms/widgets/clearable_file_input.html create mode 100644 venv/lib/python3.12/site-packages/django/forms/jinja2/django/forms/widgets/date.html create mode 100644 venv/lib/python3.12/site-packages/django/forms/jinja2/django/forms/widgets/datetime.html create mode 100644 venv/lib/python3.12/site-packages/django/forms/jinja2/django/forms/widgets/email.html create mode 100644 venv/lib/python3.12/site-packages/django/forms/jinja2/django/forms/widgets/file.html create mode 100644 venv/lib/python3.12/site-packages/django/forms/jinja2/django/forms/widgets/hidden.html create mode 100644 venv/lib/python3.12/site-packages/django/forms/jinja2/django/forms/widgets/input.html create mode 100644 venv/lib/python3.12/site-packages/django/forms/jinja2/django/forms/widgets/input_option.html create mode 100644 venv/lib/python3.12/site-packages/django/forms/jinja2/django/forms/widgets/multiple_hidden.html create mode 100644 venv/lib/python3.12/site-packages/django/forms/jinja2/django/forms/widgets/multiple_input.html create mode 100644 venv/lib/python3.12/site-packages/django/forms/jinja2/django/forms/widgets/multiwidget.html create mode 100644 venv/lib/python3.12/site-packages/django/forms/jinja2/django/forms/widgets/number.html create mode 100644 venv/lib/python3.12/site-packages/django/forms/jinja2/django/forms/widgets/password.html create mode 100644 venv/lib/python3.12/site-packages/django/forms/jinja2/django/forms/widgets/radio.html create mode 100644 venv/lib/python3.12/site-packages/django/forms/jinja2/django/forms/widgets/radio_option.html create mode 100644 venv/lib/python3.12/site-packages/django/forms/jinja2/django/forms/widgets/select.html create mode 100644 venv/lib/python3.12/site-packages/django/forms/jinja2/django/forms/widgets/select_date.html create mode 100644 venv/lib/python3.12/site-packages/django/forms/jinja2/django/forms/widgets/select_option.html create mode 100644 venv/lib/python3.12/site-packages/django/forms/jinja2/django/forms/widgets/splitdatetime.html create mode 100644 venv/lib/python3.12/site-packages/django/forms/jinja2/django/forms/widgets/splithiddendatetime.html create mode 100644 venv/lib/python3.12/site-packages/django/forms/jinja2/django/forms/widgets/text.html create mode 100644 venv/lib/python3.12/site-packages/django/forms/jinja2/django/forms/widgets/textarea.html create mode 100644 venv/lib/python3.12/site-packages/django/forms/jinja2/django/forms/widgets/time.html create mode 100644 venv/lib/python3.12/site-packages/django/forms/jinja2/django/forms/widgets/url.html create mode 100644 venv/lib/python3.12/site-packages/django/forms/models.py create mode 100644 venv/lib/python3.12/site-packages/django/forms/renderers.py create mode 100644 venv/lib/python3.12/site-packages/django/forms/templates/django/forms/attrs.html create mode 100644 venv/lib/python3.12/site-packages/django/forms/templates/django/forms/div.html create mode 100644 venv/lib/python3.12/site-packages/django/forms/templates/django/forms/errors/dict/default.html create mode 100644 venv/lib/python3.12/site-packages/django/forms/templates/django/forms/errors/dict/text.txt create mode 100644 venv/lib/python3.12/site-packages/django/forms/templates/django/forms/errors/dict/ul.html create mode 100644 venv/lib/python3.12/site-packages/django/forms/templates/django/forms/errors/list/default.html create mode 100644 venv/lib/python3.12/site-packages/django/forms/templates/django/forms/errors/list/text.txt create mode 100644 venv/lib/python3.12/site-packages/django/forms/templates/django/forms/errors/list/ul.html create mode 100644 venv/lib/python3.12/site-packages/django/forms/templates/django/forms/field.html create mode 100644 venv/lib/python3.12/site-packages/django/forms/templates/django/forms/formsets/div.html create mode 100644 venv/lib/python3.12/site-packages/django/forms/templates/django/forms/formsets/p.html create mode 100644 venv/lib/python3.12/site-packages/django/forms/templates/django/forms/formsets/table.html create mode 100644 venv/lib/python3.12/site-packages/django/forms/templates/django/forms/formsets/ul.html create mode 100644 venv/lib/python3.12/site-packages/django/forms/templates/django/forms/label.html create mode 100644 venv/lib/python3.12/site-packages/django/forms/templates/django/forms/p.html create mode 100644 venv/lib/python3.12/site-packages/django/forms/templates/django/forms/table.html create mode 100644 venv/lib/python3.12/site-packages/django/forms/templates/django/forms/ul.html create mode 100644 venv/lib/python3.12/site-packages/django/forms/templates/django/forms/widgets/attrs.html create mode 100644 venv/lib/python3.12/site-packages/django/forms/templates/django/forms/widgets/checkbox.html create mode 100644 venv/lib/python3.12/site-packages/django/forms/templates/django/forms/widgets/checkbox_option.html create mode 100644 venv/lib/python3.12/site-packages/django/forms/templates/django/forms/widgets/checkbox_select.html create mode 100644 venv/lib/python3.12/site-packages/django/forms/templates/django/forms/widgets/clearable_file_input.html create mode 100644 venv/lib/python3.12/site-packages/django/forms/templates/django/forms/widgets/date.html create mode 100644 venv/lib/python3.12/site-packages/django/forms/templates/django/forms/widgets/datetime.html create mode 100644 venv/lib/python3.12/site-packages/django/forms/templates/django/forms/widgets/email.html create mode 100644 venv/lib/python3.12/site-packages/django/forms/templates/django/forms/widgets/file.html create mode 100644 venv/lib/python3.12/site-packages/django/forms/templates/django/forms/widgets/hidden.html create mode 100644 venv/lib/python3.12/site-packages/django/forms/templates/django/forms/widgets/input.html create mode 100644 venv/lib/python3.12/site-packages/django/forms/templates/django/forms/widgets/input_option.html create mode 100644 venv/lib/python3.12/site-packages/django/forms/templates/django/forms/widgets/multiple_hidden.html create mode 100644 venv/lib/python3.12/site-packages/django/forms/templates/django/forms/widgets/multiple_input.html create mode 100644 venv/lib/python3.12/site-packages/django/forms/templates/django/forms/widgets/multiwidget.html create mode 100644 venv/lib/python3.12/site-packages/django/forms/templates/django/forms/widgets/number.html create mode 100644 venv/lib/python3.12/site-packages/django/forms/templates/django/forms/widgets/password.html create mode 100644 venv/lib/python3.12/site-packages/django/forms/templates/django/forms/widgets/radio.html create mode 100644 venv/lib/python3.12/site-packages/django/forms/templates/django/forms/widgets/radio_option.html create mode 100644 venv/lib/python3.12/site-packages/django/forms/templates/django/forms/widgets/select.html create mode 100644 venv/lib/python3.12/site-packages/django/forms/templates/django/forms/widgets/select_date.html create mode 100644 venv/lib/python3.12/site-packages/django/forms/templates/django/forms/widgets/select_option.html create mode 100644 venv/lib/python3.12/site-packages/django/forms/templates/django/forms/widgets/splitdatetime.html create mode 100644 venv/lib/python3.12/site-packages/django/forms/templates/django/forms/widgets/splithiddendatetime.html create mode 100644 venv/lib/python3.12/site-packages/django/forms/templates/django/forms/widgets/text.html create mode 100644 venv/lib/python3.12/site-packages/django/forms/templates/django/forms/widgets/textarea.html create mode 100644 venv/lib/python3.12/site-packages/django/forms/templates/django/forms/widgets/time.html create mode 100644 venv/lib/python3.12/site-packages/django/forms/templates/django/forms/widgets/url.html create mode 100644 venv/lib/python3.12/site-packages/django/forms/utils.py create mode 100644 venv/lib/python3.12/site-packages/django/forms/widgets.py create mode 100644 venv/lib/python3.12/site-packages/django/http/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/http/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/http/__pycache__/cookie.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/http/__pycache__/multipartparser.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/http/__pycache__/request.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/http/__pycache__/response.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/http/cookie.py create mode 100644 venv/lib/python3.12/site-packages/django/http/multipartparser.py create mode 100644 venv/lib/python3.12/site-packages/django/http/request.py create mode 100644 venv/lib/python3.12/site-packages/django/http/response.py create mode 100644 venv/lib/python3.12/site-packages/django/middleware/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/middleware/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/middleware/__pycache__/cache.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/middleware/__pycache__/clickjacking.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/middleware/__pycache__/common.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/middleware/__pycache__/csrf.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/middleware/__pycache__/gzip.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/middleware/__pycache__/http.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/middleware/__pycache__/locale.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/middleware/__pycache__/security.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/middleware/cache.py create mode 100644 venv/lib/python3.12/site-packages/django/middleware/clickjacking.py create mode 100644 venv/lib/python3.12/site-packages/django/middleware/common.py create mode 100644 venv/lib/python3.12/site-packages/django/middleware/csrf.py create mode 100644 venv/lib/python3.12/site-packages/django/middleware/gzip.py create mode 100644 venv/lib/python3.12/site-packages/django/middleware/http.py create mode 100644 venv/lib/python3.12/site-packages/django/middleware/locale.py create mode 100644 venv/lib/python3.12/site-packages/django/middleware/security.py create mode 100644 venv/lib/python3.12/site-packages/django/shortcuts.py create mode 100644 venv/lib/python3.12/site-packages/django/template/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/template/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/template/__pycache__/autoreload.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/template/__pycache__/base.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/template/__pycache__/context.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/template/__pycache__/context_processors.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/template/__pycache__/defaultfilters.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/template/__pycache__/defaulttags.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/template/__pycache__/engine.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/template/__pycache__/exceptions.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/template/__pycache__/library.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/template/__pycache__/loader.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/template/__pycache__/loader_tags.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/template/__pycache__/response.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/template/__pycache__/smartif.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/template/__pycache__/utils.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/template/autoreload.py create mode 100644 venv/lib/python3.12/site-packages/django/template/backends/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/template/backends/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/template/backends/__pycache__/base.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/template/backends/__pycache__/django.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/template/backends/__pycache__/dummy.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/template/backends/__pycache__/jinja2.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/template/backends/__pycache__/utils.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/template/backends/base.py create mode 100644 venv/lib/python3.12/site-packages/django/template/backends/django.py create mode 100644 venv/lib/python3.12/site-packages/django/template/backends/dummy.py create mode 100644 venv/lib/python3.12/site-packages/django/template/backends/jinja2.py create mode 100644 venv/lib/python3.12/site-packages/django/template/backends/utils.py create mode 100644 venv/lib/python3.12/site-packages/django/template/base.py create mode 100644 venv/lib/python3.12/site-packages/django/template/context.py create mode 100644 venv/lib/python3.12/site-packages/django/template/context_processors.py create mode 100644 venv/lib/python3.12/site-packages/django/template/defaultfilters.py create mode 100644 venv/lib/python3.12/site-packages/django/template/defaulttags.py create mode 100644 venv/lib/python3.12/site-packages/django/template/engine.py create mode 100644 venv/lib/python3.12/site-packages/django/template/exceptions.py create mode 100644 venv/lib/python3.12/site-packages/django/template/library.py create mode 100644 venv/lib/python3.12/site-packages/django/template/loader.py create mode 100644 venv/lib/python3.12/site-packages/django/template/loader_tags.py create mode 100644 venv/lib/python3.12/site-packages/django/template/loaders/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/template/loaders/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/template/loaders/__pycache__/app_directories.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/template/loaders/__pycache__/base.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/template/loaders/__pycache__/cached.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/template/loaders/__pycache__/filesystem.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/template/loaders/__pycache__/locmem.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/template/loaders/app_directories.py create mode 100644 venv/lib/python3.12/site-packages/django/template/loaders/base.py create mode 100644 venv/lib/python3.12/site-packages/django/template/loaders/cached.py create mode 100644 venv/lib/python3.12/site-packages/django/template/loaders/filesystem.py create mode 100644 venv/lib/python3.12/site-packages/django/template/loaders/locmem.py create mode 100644 venv/lib/python3.12/site-packages/django/template/response.py create mode 100644 venv/lib/python3.12/site-packages/django/template/smartif.py create mode 100644 venv/lib/python3.12/site-packages/django/template/utils.py create mode 100644 venv/lib/python3.12/site-packages/django/templatetags/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/templatetags/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/templatetags/__pycache__/cache.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/templatetags/__pycache__/i18n.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/templatetags/__pycache__/l10n.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/templatetags/__pycache__/static.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/templatetags/__pycache__/tz.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/templatetags/cache.py create mode 100644 venv/lib/python3.12/site-packages/django/templatetags/i18n.py create mode 100644 venv/lib/python3.12/site-packages/django/templatetags/l10n.py create mode 100644 venv/lib/python3.12/site-packages/django/templatetags/static.py create mode 100644 venv/lib/python3.12/site-packages/django/templatetags/tz.py create mode 100644 venv/lib/python3.12/site-packages/django/test/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/test/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/test/__pycache__/client.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/test/__pycache__/html.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/test/__pycache__/runner.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/test/__pycache__/selenium.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/test/__pycache__/signals.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/test/__pycache__/testcases.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/test/__pycache__/utils.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/test/client.py create mode 100644 venv/lib/python3.12/site-packages/django/test/html.py create mode 100644 venv/lib/python3.12/site-packages/django/test/runner.py create mode 100644 venv/lib/python3.12/site-packages/django/test/selenium.py create mode 100644 venv/lib/python3.12/site-packages/django/test/signals.py create mode 100644 venv/lib/python3.12/site-packages/django/test/testcases.py create mode 100644 venv/lib/python3.12/site-packages/django/test/utils.py create mode 100644 venv/lib/python3.12/site-packages/django/urls/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/urls/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/urls/__pycache__/base.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/urls/__pycache__/conf.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/urls/__pycache__/converters.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/urls/__pycache__/exceptions.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/urls/__pycache__/resolvers.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/urls/__pycache__/utils.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/urls/base.py create mode 100644 venv/lib/python3.12/site-packages/django/urls/conf.py create mode 100644 venv/lib/python3.12/site-packages/django/urls/converters.py create mode 100644 venv/lib/python3.12/site-packages/django/urls/exceptions.py create mode 100644 venv/lib/python3.12/site-packages/django/urls/resolvers.py create mode 100644 venv/lib/python3.12/site-packages/django/urls/utils.py create mode 100644 venv/lib/python3.12/site-packages/django/utils/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/utils/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/utils/__pycache__/_os.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/utils/__pycache__/archive.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/utils/__pycache__/asyncio.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/utils/__pycache__/autoreload.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/utils/__pycache__/cache.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/utils/__pycache__/choices.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/utils/__pycache__/connection.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/utils/__pycache__/crypto.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/utils/__pycache__/datastructures.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/utils/__pycache__/dateformat.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/utils/__pycache__/dateparse.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/utils/__pycache__/dates.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/utils/__pycache__/deconstruct.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/utils/__pycache__/decorators.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/utils/__pycache__/deprecation.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/utils/__pycache__/duration.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/utils/__pycache__/encoding.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/utils/__pycache__/feedgenerator.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/utils/__pycache__/formats.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/utils/__pycache__/functional.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/utils/__pycache__/hashable.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/utils/__pycache__/html.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/utils/__pycache__/http.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/utils/__pycache__/inspect.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/utils/__pycache__/ipv6.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/utils/__pycache__/itercompat.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/utils/__pycache__/jslex.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/utils/__pycache__/log.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/utils/__pycache__/lorem_ipsum.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/utils/__pycache__/module_loading.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/utils/__pycache__/numberformat.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/utils/__pycache__/regex_helper.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/utils/__pycache__/safestring.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/utils/__pycache__/termcolors.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/utils/__pycache__/text.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/utils/__pycache__/timesince.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/utils/__pycache__/timezone.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/utils/__pycache__/tree.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/utils/__pycache__/version.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/utils/__pycache__/xmlutils.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/utils/_os.py create mode 100644 venv/lib/python3.12/site-packages/django/utils/archive.py create mode 100644 venv/lib/python3.12/site-packages/django/utils/asyncio.py create mode 100644 venv/lib/python3.12/site-packages/django/utils/autoreload.py create mode 100644 venv/lib/python3.12/site-packages/django/utils/cache.py create mode 100644 venv/lib/python3.12/site-packages/django/utils/choices.py create mode 100644 venv/lib/python3.12/site-packages/django/utils/connection.py create mode 100644 venv/lib/python3.12/site-packages/django/utils/crypto.py create mode 100644 venv/lib/python3.12/site-packages/django/utils/datastructures.py create mode 100644 venv/lib/python3.12/site-packages/django/utils/dateformat.py create mode 100644 venv/lib/python3.12/site-packages/django/utils/dateparse.py create mode 100644 venv/lib/python3.12/site-packages/django/utils/dates.py create mode 100644 venv/lib/python3.12/site-packages/django/utils/deconstruct.py create mode 100644 venv/lib/python3.12/site-packages/django/utils/decorators.py create mode 100644 venv/lib/python3.12/site-packages/django/utils/deprecation.py create mode 100644 venv/lib/python3.12/site-packages/django/utils/duration.py create mode 100644 venv/lib/python3.12/site-packages/django/utils/encoding.py create mode 100644 venv/lib/python3.12/site-packages/django/utils/feedgenerator.py create mode 100644 venv/lib/python3.12/site-packages/django/utils/formats.py create mode 100644 venv/lib/python3.12/site-packages/django/utils/functional.py create mode 100644 venv/lib/python3.12/site-packages/django/utils/hashable.py create mode 100644 venv/lib/python3.12/site-packages/django/utils/html.py create mode 100644 venv/lib/python3.12/site-packages/django/utils/http.py create mode 100644 venv/lib/python3.12/site-packages/django/utils/inspect.py create mode 100644 venv/lib/python3.12/site-packages/django/utils/ipv6.py create mode 100644 venv/lib/python3.12/site-packages/django/utils/itercompat.py create mode 100644 venv/lib/python3.12/site-packages/django/utils/jslex.py create mode 100644 venv/lib/python3.12/site-packages/django/utils/log.py create mode 100644 venv/lib/python3.12/site-packages/django/utils/lorem_ipsum.py create mode 100644 venv/lib/python3.12/site-packages/django/utils/module_loading.py create mode 100644 venv/lib/python3.12/site-packages/django/utils/numberformat.py create mode 100644 venv/lib/python3.12/site-packages/django/utils/regex_helper.py create mode 100644 venv/lib/python3.12/site-packages/django/utils/safestring.py create mode 100644 venv/lib/python3.12/site-packages/django/utils/termcolors.py create mode 100644 venv/lib/python3.12/site-packages/django/utils/text.py create mode 100644 venv/lib/python3.12/site-packages/django/utils/timesince.py create mode 100644 venv/lib/python3.12/site-packages/django/utils/timezone.py create mode 100644 venv/lib/python3.12/site-packages/django/utils/translation/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/utils/translation/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/utils/translation/__pycache__/reloader.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/utils/translation/__pycache__/template.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/utils/translation/__pycache__/trans_null.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/utils/translation/__pycache__/trans_real.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/utils/translation/reloader.py create mode 100644 venv/lib/python3.12/site-packages/django/utils/translation/template.py create mode 100644 venv/lib/python3.12/site-packages/django/utils/translation/trans_null.py create mode 100644 venv/lib/python3.12/site-packages/django/utils/translation/trans_real.py create mode 100644 venv/lib/python3.12/site-packages/django/utils/tree.py create mode 100644 venv/lib/python3.12/site-packages/django/utils/version.py create mode 100644 venv/lib/python3.12/site-packages/django/utils/xmlutils.py create mode 100644 venv/lib/python3.12/site-packages/django/views/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/views/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/views/__pycache__/csrf.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/views/__pycache__/debug.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/views/__pycache__/defaults.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/views/__pycache__/i18n.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/views/__pycache__/static.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/views/csrf.py create mode 100644 venv/lib/python3.12/site-packages/django/views/debug.py create mode 100644 venv/lib/python3.12/site-packages/django/views/decorators/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/views/decorators/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/views/decorators/__pycache__/cache.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/views/decorators/__pycache__/clickjacking.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/views/decorators/__pycache__/common.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/views/decorators/__pycache__/csrf.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/views/decorators/__pycache__/debug.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/views/decorators/__pycache__/gzip.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/views/decorators/__pycache__/http.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/views/decorators/__pycache__/vary.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/views/decorators/cache.py create mode 100644 venv/lib/python3.12/site-packages/django/views/decorators/clickjacking.py create mode 100644 venv/lib/python3.12/site-packages/django/views/decorators/common.py create mode 100644 venv/lib/python3.12/site-packages/django/views/decorators/csrf.py create mode 100644 venv/lib/python3.12/site-packages/django/views/decorators/debug.py create mode 100644 venv/lib/python3.12/site-packages/django/views/decorators/gzip.py create mode 100644 venv/lib/python3.12/site-packages/django/views/decorators/http.py create mode 100644 venv/lib/python3.12/site-packages/django/views/decorators/vary.py create mode 100644 venv/lib/python3.12/site-packages/django/views/defaults.py create mode 100644 venv/lib/python3.12/site-packages/django/views/generic/__init__.py create mode 100644 venv/lib/python3.12/site-packages/django/views/generic/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/views/generic/__pycache__/base.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/views/generic/__pycache__/dates.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/views/generic/__pycache__/detail.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/views/generic/__pycache__/edit.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/views/generic/__pycache__/list.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/django/views/generic/base.py create mode 100644 venv/lib/python3.12/site-packages/django/views/generic/dates.py create mode 100644 venv/lib/python3.12/site-packages/django/views/generic/detail.py create mode 100644 venv/lib/python3.12/site-packages/django/views/generic/edit.py create mode 100644 venv/lib/python3.12/site-packages/django/views/generic/list.py create mode 100644 venv/lib/python3.12/site-packages/django/views/i18n.py create mode 100644 venv/lib/python3.12/site-packages/django/views/static.py create mode 100644 venv/lib/python3.12/site-packages/django/views/templates/csrf_403.html create mode 100644 venv/lib/python3.12/site-packages/django/views/templates/default_urlconf.html create mode 100644 venv/lib/python3.12/site-packages/django/views/templates/directory_index.html create mode 100644 venv/lib/python3.12/site-packages/django/views/templates/i18n_catalog.js create mode 100644 venv/lib/python3.12/site-packages/django/views/templates/technical_404.html create mode 100644 venv/lib/python3.12/site-packages/django/views/templates/technical_500.html create mode 100644 venv/lib/python3.12/site-packages/django/views/templates/technical_500.txt create mode 100644 venv/lib/python3.12/site-packages/mypy_extensions-1.0.0.dist-info/INSTALLER create mode 100644 venv/lib/python3.12/site-packages/mypy_extensions-1.0.0.dist-info/LICENSE create mode 100644 venv/lib/python3.12/site-packages/mypy_extensions-1.0.0.dist-info/METADATA create mode 100644 venv/lib/python3.12/site-packages/mypy_extensions-1.0.0.dist-info/RECORD create mode 100644 venv/lib/python3.12/site-packages/mypy_extensions-1.0.0.dist-info/WHEEL create mode 100644 venv/lib/python3.12/site-packages/mypy_extensions-1.0.0.dist-info/top_level.txt create mode 100644 venv/lib/python3.12/site-packages/mypy_extensions.py create mode 100644 venv/lib/python3.12/site-packages/packaging-24.1.dist-info/INSTALLER create mode 100644 venv/lib/python3.12/site-packages/packaging-24.1.dist-info/LICENSE create mode 100644 venv/lib/python3.12/site-packages/packaging-24.1.dist-info/LICENSE.APACHE create mode 100644 venv/lib/python3.12/site-packages/packaging-24.1.dist-info/LICENSE.BSD create mode 100644 venv/lib/python3.12/site-packages/packaging-24.1.dist-info/METADATA create mode 100644 venv/lib/python3.12/site-packages/packaging-24.1.dist-info/RECORD create mode 100644 venv/lib/python3.12/site-packages/packaging-24.1.dist-info/WHEEL create mode 100644 venv/lib/python3.12/site-packages/packaging/__init__.py create mode 100644 venv/lib/python3.12/site-packages/packaging/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/packaging/__pycache__/_elffile.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/packaging/__pycache__/_manylinux.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/packaging/__pycache__/_musllinux.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/packaging/__pycache__/_parser.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/packaging/__pycache__/_structures.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/packaging/__pycache__/_tokenizer.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/packaging/__pycache__/markers.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/packaging/__pycache__/metadata.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/packaging/__pycache__/requirements.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/packaging/__pycache__/specifiers.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/packaging/__pycache__/tags.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/packaging/__pycache__/utils.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/packaging/__pycache__/version.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/packaging/_elffile.py create mode 100644 venv/lib/python3.12/site-packages/packaging/_manylinux.py create mode 100644 venv/lib/python3.12/site-packages/packaging/_musllinux.py create mode 100644 venv/lib/python3.12/site-packages/packaging/_parser.py create mode 100644 venv/lib/python3.12/site-packages/packaging/_structures.py create mode 100644 venv/lib/python3.12/site-packages/packaging/_tokenizer.py create mode 100644 venv/lib/python3.12/site-packages/packaging/markers.py create mode 100644 venv/lib/python3.12/site-packages/packaging/metadata.py create mode 100644 venv/lib/python3.12/site-packages/packaging/py.typed create mode 100644 venv/lib/python3.12/site-packages/packaging/requirements.py create mode 100644 venv/lib/python3.12/site-packages/packaging/specifiers.py create mode 100644 venv/lib/python3.12/site-packages/packaging/tags.py create mode 100644 venv/lib/python3.12/site-packages/packaging/utils.py create mode 100644 venv/lib/python3.12/site-packages/packaging/version.py create mode 100644 venv/lib/python3.12/site-packages/pathspec-0.12.1.dist-info/INSTALLER create mode 100644 venv/lib/python3.12/site-packages/pathspec-0.12.1.dist-info/LICENSE create mode 100644 venv/lib/python3.12/site-packages/pathspec-0.12.1.dist-info/METADATA create mode 100644 venv/lib/python3.12/site-packages/pathspec-0.12.1.dist-info/RECORD create mode 100644 venv/lib/python3.12/site-packages/pathspec-0.12.1.dist-info/WHEEL create mode 100644 venv/lib/python3.12/site-packages/pathspec/__init__.py create mode 100644 venv/lib/python3.12/site-packages/pathspec/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pathspec/__pycache__/_meta.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pathspec/__pycache__/gitignore.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pathspec/__pycache__/pathspec.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pathspec/__pycache__/pattern.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pathspec/__pycache__/util.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pathspec/_meta.py create mode 100644 venv/lib/python3.12/site-packages/pathspec/gitignore.py create mode 100644 venv/lib/python3.12/site-packages/pathspec/pathspec.py create mode 100644 venv/lib/python3.12/site-packages/pathspec/pattern.py create mode 100644 venv/lib/python3.12/site-packages/pathspec/patterns/__init__.py create mode 100644 venv/lib/python3.12/site-packages/pathspec/patterns/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pathspec/patterns/__pycache__/gitwildmatch.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pathspec/patterns/gitwildmatch.py create mode 100644 venv/lib/python3.12/site-packages/pathspec/py.typed create mode 100644 venv/lib/python3.12/site-packages/pathspec/util.py create mode 100644 venv/lib/python3.12/site-packages/pip-24.0.dist-info/AUTHORS.txt create mode 100644 venv/lib/python3.12/site-packages/pip-24.0.dist-info/INSTALLER create mode 100644 venv/lib/python3.12/site-packages/pip-24.0.dist-info/LICENSE.txt create mode 100644 venv/lib/python3.12/site-packages/pip-24.0.dist-info/METADATA create mode 100644 venv/lib/python3.12/site-packages/pip-24.0.dist-info/RECORD create mode 100644 venv/lib/python3.12/site-packages/pip-24.0.dist-info/REQUESTED create mode 100644 venv/lib/python3.12/site-packages/pip-24.0.dist-info/WHEEL create mode 100644 venv/lib/python3.12/site-packages/pip-24.0.dist-info/entry_points.txt create mode 100644 venv/lib/python3.12/site-packages/pip-24.0.dist-info/top_level.txt create mode 100644 venv/lib/python3.12/site-packages/pip/__init__.py create mode 100644 venv/lib/python3.12/site-packages/pip/__main__.py create mode 100644 venv/lib/python3.12/site-packages/pip/__pip-runner__.py create mode 100644 venv/lib/python3.12/site-packages/pip/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/__pycache__/__main__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/__pycache__/__pip-runner__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/__init__.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/__pycache__/build_env.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/__pycache__/cache.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/__pycache__/configuration.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/__pycache__/exceptions.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/__pycache__/main.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/__pycache__/pyproject.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/__pycache__/self_outdated_check.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/__pycache__/wheel_builder.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/build_env.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/cache.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/cli/__init__.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/cli/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/cli/__pycache__/autocompletion.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/cli/__pycache__/base_command.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/cli/__pycache__/cmdoptions.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/cli/__pycache__/command_context.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/cli/__pycache__/main.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/cli/__pycache__/main_parser.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/cli/__pycache__/parser.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/cli/__pycache__/progress_bars.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/cli/__pycache__/req_command.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/cli/__pycache__/spinners.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/cli/__pycache__/status_codes.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/cli/autocompletion.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/cli/base_command.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/cli/cmdoptions.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/cli/command_context.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/cli/main.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/cli/main_parser.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/cli/parser.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/cli/progress_bars.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/cli/req_command.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/cli/spinners.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/cli/status_codes.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/commands/__init__.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/commands/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/commands/__pycache__/cache.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/commands/__pycache__/check.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/commands/__pycache__/completion.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/commands/__pycache__/configuration.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/commands/__pycache__/debug.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/commands/__pycache__/download.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/commands/__pycache__/freeze.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/commands/__pycache__/hash.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/commands/__pycache__/help.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/commands/__pycache__/index.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/commands/__pycache__/inspect.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/commands/__pycache__/install.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/commands/__pycache__/list.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/commands/__pycache__/search.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/commands/__pycache__/show.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/commands/__pycache__/uninstall.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/commands/__pycache__/wheel.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/commands/cache.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/commands/check.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/commands/completion.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/commands/configuration.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/commands/debug.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/commands/download.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/commands/freeze.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/commands/hash.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/commands/help.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/commands/index.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/commands/inspect.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/commands/install.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/commands/list.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/commands/search.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/commands/show.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/commands/uninstall.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/commands/wheel.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/configuration.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/distributions/__init__.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/distributions/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/distributions/__pycache__/base.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/distributions/__pycache__/installed.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/distributions/__pycache__/sdist.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/distributions/__pycache__/wheel.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/distributions/base.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/distributions/installed.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/distributions/sdist.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/distributions/wheel.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/exceptions.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/index/__init__.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/index/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/index/__pycache__/collector.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/index/__pycache__/package_finder.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/index/__pycache__/sources.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/index/collector.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/index/package_finder.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/index/sources.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/locations/__init__.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/locations/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/locations/__pycache__/_distutils.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/locations/__pycache__/_sysconfig.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/locations/__pycache__/base.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/locations/_distutils.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/locations/_sysconfig.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/locations/base.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/main.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/metadata/__init__.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/metadata/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/metadata/__pycache__/_json.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/metadata/__pycache__/base.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/metadata/__pycache__/pkg_resources.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/metadata/_json.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/metadata/base.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/metadata/importlib/__init__.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/metadata/importlib/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/metadata/importlib/__pycache__/_compat.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/metadata/importlib/__pycache__/_dists.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/metadata/importlib/__pycache__/_envs.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/metadata/importlib/_compat.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/metadata/importlib/_dists.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/metadata/importlib/_envs.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/metadata/pkg_resources.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/models/__init__.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/models/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/models/__pycache__/candidate.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/models/__pycache__/direct_url.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/models/__pycache__/format_control.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/models/__pycache__/index.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/models/__pycache__/installation_report.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/models/__pycache__/link.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/models/__pycache__/scheme.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/models/__pycache__/search_scope.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/models/__pycache__/selection_prefs.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/models/__pycache__/target_python.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/models/__pycache__/wheel.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/models/candidate.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/models/direct_url.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/models/format_control.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/models/index.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/models/installation_report.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/models/link.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/models/scheme.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/models/search_scope.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/models/selection_prefs.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/models/target_python.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/models/wheel.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/network/__init__.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/network/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/network/__pycache__/auth.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/network/__pycache__/cache.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/network/__pycache__/download.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/network/__pycache__/lazy_wheel.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/network/__pycache__/session.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/network/__pycache__/utils.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/network/__pycache__/xmlrpc.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/network/auth.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/network/cache.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/network/download.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/network/lazy_wheel.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/network/session.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/network/utils.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/network/xmlrpc.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/operations/__init__.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/operations/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/operations/__pycache__/check.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/operations/__pycache__/freeze.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/operations/__pycache__/prepare.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/operations/build/__init__.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/operations/build/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/operations/build/__pycache__/build_tracker.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/operations/build/__pycache__/metadata.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/operations/build/__pycache__/metadata_editable.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/operations/build/__pycache__/metadata_legacy.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/operations/build/__pycache__/wheel.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/operations/build/__pycache__/wheel_editable.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/operations/build/__pycache__/wheel_legacy.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/operations/build/build_tracker.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/operations/build/metadata.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/operations/build/metadata_editable.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/operations/build/metadata_legacy.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/operations/build/wheel.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/operations/build/wheel_editable.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/operations/build/wheel_legacy.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/operations/check.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/operations/freeze.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/operations/install/__init__.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/operations/install/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/operations/install/__pycache__/editable_legacy.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/operations/install/__pycache__/wheel.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/operations/install/editable_legacy.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/operations/install/wheel.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/operations/prepare.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/pyproject.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/req/__init__.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/req/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/req/__pycache__/constructors.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/req/__pycache__/req_file.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/req/__pycache__/req_install.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/req/__pycache__/req_set.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/req/__pycache__/req_uninstall.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/req/constructors.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/req/req_file.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/req/req_install.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/req/req_set.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/req/req_uninstall.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/resolution/__init__.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/resolution/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/resolution/__pycache__/base.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/resolution/base.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/resolution/legacy/__init__.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/resolution/legacy/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/resolution/legacy/__pycache__/resolver.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/resolution/legacy/resolver.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/__init__.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/__pycache__/base.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/__pycache__/candidates.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/__pycache__/factory.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/__pycache__/found_candidates.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/__pycache__/provider.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/__pycache__/reporter.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/__pycache__/requirements.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/__pycache__/resolver.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/base.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/candidates.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/factory.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/provider.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/reporter.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/requirements.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/resolver.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/self_outdated_check.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/utils/__init__.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/_jaraco_text.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/_log.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/appdirs.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/compat.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/compatibility_tags.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/datetime.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/deprecation.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/direct_url_helpers.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/egg_link.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/encoding.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/entrypoints.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/filesystem.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/filetypes.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/glibc.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/hashes.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/logging.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/misc.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/models.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/packaging.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/setuptools_build.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/subprocess.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/temp_dir.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/unpacking.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/urls.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/virtualenv.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/wheel.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/utils/_jaraco_text.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/utils/_log.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/utils/appdirs.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/utils/compat.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/utils/compatibility_tags.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/utils/datetime.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/utils/deprecation.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/utils/direct_url_helpers.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/utils/egg_link.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/utils/encoding.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/utils/entrypoints.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/utils/filesystem.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/utils/filetypes.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/utils/glibc.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/utils/logging.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/utils/misc.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/utils/models.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/utils/packaging.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/utils/setuptools_build.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/utils/subprocess.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/utils/temp_dir.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/utils/unpacking.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/utils/urls.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/utils/virtualenv.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/utils/wheel.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/vcs/__init__.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/vcs/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/vcs/__pycache__/bazaar.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/vcs/__pycache__/git.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/vcs/__pycache__/mercurial.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/vcs/__pycache__/subversion.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/vcs/__pycache__/versioncontrol.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/vcs/bazaar.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/vcs/git.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/vcs/mercurial.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/vcs/subversion.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/vcs/versioncontrol.py create mode 100644 venv/lib/python3.12/site-packages/pip/_internal/wheel_builder.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/__init__.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/__pycache__/six.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/__pycache__/typing_extensions.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/__init__.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/__pycache__/_cmd.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/__pycache__/adapter.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/__pycache__/cache.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/__pycache__/controller.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/__pycache__/filewrapper.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/__pycache__/heuristics.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/__pycache__/serialize.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/__pycache__/wrapper.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/_cmd.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/adapter.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/cache.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/caches/__init__.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/caches/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/caches/__pycache__/file_cache.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/caches/__pycache__/redis_cache.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/caches/file_cache.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/caches/redis_cache.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/controller.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/filewrapper.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/heuristics.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/serialize.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/wrapper.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/certifi/__init__.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/certifi/__main__.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/certifi/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/certifi/__pycache__/__main__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/certifi/__pycache__/core.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/certifi/cacert.pem create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/certifi/core.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/__init__.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/big5freq.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/big5prober.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/chardistribution.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/charsetgroupprober.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/charsetprober.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/codingstatemachine.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/codingstatemachinedict.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/cp949prober.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/enums.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/escprober.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/escsm.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/eucjpprober.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/euckrfreq.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/euckrprober.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/euctwfreq.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/euctwprober.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/gb2312freq.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/gb2312prober.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/hebrewprober.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/jisfreq.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/johabfreq.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/johabprober.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/jpcntx.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/langbulgarianmodel.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/langgreekmodel.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/langhebrewmodel.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/langhungarianmodel.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/langrussianmodel.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/langthaimodel.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/langturkishmodel.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/latin1prober.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/macromanprober.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/mbcharsetprober.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/mbcsgroupprober.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/mbcssm.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/resultdict.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/sbcharsetprober.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/sbcsgroupprober.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/sjisprober.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/universaldetector.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/utf1632prober.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/utf8prober.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/version.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/big5freq.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/big5prober.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/chardistribution.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/charsetgroupprober.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/charsetprober.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/cli/__init__.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/cli/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/cli/__pycache__/chardetect.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/cli/chardetect.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/codingstatemachine.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/codingstatemachinedict.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/cp949prober.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/enums.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/escprober.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/escsm.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/eucjpprober.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/euckrfreq.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/euckrprober.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/euctwfreq.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/euctwprober.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/gb2312freq.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/gb2312prober.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/hebrewprober.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/jisfreq.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/johabfreq.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/johabprober.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/jpcntx.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/langbulgarianmodel.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/langgreekmodel.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/langhebrewmodel.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/langhungarianmodel.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/langrussianmodel.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/langthaimodel.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/langturkishmodel.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/latin1prober.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/macromanprober.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/mbcharsetprober.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/mbcsgroupprober.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/mbcssm.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/metadata/__init__.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/metadata/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/metadata/__pycache__/languages.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/metadata/languages.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/resultdict.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/sbcharsetprober.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/sbcsgroupprober.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/sjisprober.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/universaldetector.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/utf1632prober.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/utf8prober.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/chardet/version.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/colorama/__init__.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/colorama/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/colorama/__pycache__/ansi.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/colorama/__pycache__/ansitowin32.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/colorama/__pycache__/initialise.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/colorama/__pycache__/win32.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/colorama/__pycache__/winterm.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/colorama/ansi.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/colorama/ansitowin32.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/colorama/initialise.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/colorama/tests/__init__.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/colorama/tests/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/colorama/tests/__pycache__/ansi_test.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/colorama/tests/__pycache__/ansitowin32_test.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/colorama/tests/__pycache__/initialise_test.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/colorama/tests/__pycache__/isatty_test.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/colorama/tests/__pycache__/utils.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/colorama/tests/__pycache__/winterm_test.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/colorama/tests/ansi_test.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/colorama/tests/ansitowin32_test.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/colorama/tests/initialise_test.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/colorama/tests/isatty_test.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/colorama/tests/utils.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/colorama/tests/winterm_test.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/colorama/win32.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/colorama/winterm.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/distlib/__init__.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/distlib/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/distlib/__pycache__/compat.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/distlib/__pycache__/database.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/distlib/__pycache__/index.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/distlib/__pycache__/locators.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/distlib/__pycache__/manifest.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/distlib/__pycache__/markers.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/distlib/__pycache__/metadata.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/distlib/__pycache__/resources.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/distlib/__pycache__/scripts.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/distlib/__pycache__/util.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/distlib/__pycache__/version.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/distlib/__pycache__/wheel.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/distlib/compat.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/distlib/database.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/distlib/index.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/distlib/locators.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/distlib/manifest.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/distlib/markers.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/distlib/metadata.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/distlib/resources.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/distlib/scripts.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/distlib/util.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/distlib/version.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/distlib/wheel.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/distro/__init__.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/distro/__main__.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/distro/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/distro/__pycache__/__main__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/distro/__pycache__/distro.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/distro/distro.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/idna/__init__.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/idna/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/idna/__pycache__/codec.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/idna/__pycache__/compat.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/idna/__pycache__/core.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/idna/__pycache__/idnadata.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/idna/__pycache__/intranges.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/idna/__pycache__/package_data.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/idna/__pycache__/uts46data.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/idna/codec.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/idna/compat.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/idna/core.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/idna/idnadata.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/idna/intranges.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/idna/package_data.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/idna/uts46data.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/msgpack/__init__.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/msgpack/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/msgpack/__pycache__/exceptions.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/msgpack/__pycache__/ext.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/msgpack/__pycache__/fallback.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/msgpack/exceptions.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/msgpack/ext.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/msgpack/fallback.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/packaging/__about__.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/packaging/__init__.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/packaging/__pycache__/__about__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/packaging/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/packaging/__pycache__/_manylinux.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/packaging/__pycache__/_musllinux.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/packaging/__pycache__/_structures.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/packaging/__pycache__/markers.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/packaging/__pycache__/requirements.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/packaging/__pycache__/specifiers.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/packaging/__pycache__/tags.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/packaging/__pycache__/utils.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/packaging/__pycache__/version.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/packaging/_manylinux.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/packaging/_musllinux.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/packaging/_structures.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/packaging/markers.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/packaging/requirements.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/packaging/specifiers.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/packaging/tags.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/packaging/utils.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/packaging/version.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pkg_resources/__init__.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pkg_resources/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/platformdirs/__init__.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/platformdirs/__main__.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/platformdirs/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/platformdirs/__pycache__/__main__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/platformdirs/__pycache__/android.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/platformdirs/__pycache__/api.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/platformdirs/__pycache__/macos.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/platformdirs/__pycache__/unix.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/platformdirs/__pycache__/version.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/platformdirs/__pycache__/windows.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/platformdirs/android.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/platformdirs/api.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/platformdirs/macos.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/platformdirs/unix.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/platformdirs/version.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/platformdirs/windows.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pygments/__init__.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pygments/__main__.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pygments/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pygments/__pycache__/__main__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pygments/__pycache__/cmdline.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pygments/__pycache__/console.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pygments/__pycache__/filter.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pygments/__pycache__/formatter.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pygments/__pycache__/lexer.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pygments/__pycache__/modeline.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pygments/__pycache__/plugin.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pygments/__pycache__/regexopt.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pygments/__pycache__/scanner.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pygments/__pycache__/sphinxext.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pygments/__pycache__/style.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pygments/__pycache__/token.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pygments/__pycache__/unistring.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pygments/__pycache__/util.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pygments/cmdline.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pygments/console.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pygments/filter.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pygments/filters/__init__.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pygments/filters/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatter.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/__init__.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/__pycache__/_mapping.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/__pycache__/bbcode.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/__pycache__/groff.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/__pycache__/html.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/__pycache__/img.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/__pycache__/irc.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/__pycache__/latex.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/__pycache__/other.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/__pycache__/pangomarkup.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/__pycache__/rtf.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/__pycache__/svg.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/__pycache__/terminal.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/__pycache__/terminal256.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/_mapping.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/bbcode.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/groff.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/html.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/img.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/irc.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/latex.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/other.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/pangomarkup.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/rtf.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/svg.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/terminal.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/terminal256.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pygments/lexer.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pygments/lexers/__init__.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pygments/lexers/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pygments/lexers/__pycache__/_mapping.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pygments/lexers/__pycache__/python.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pygments/lexers/_mapping.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pygments/lexers/python.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pygments/modeline.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pygments/plugin.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pygments/regexopt.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pygments/scanner.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pygments/sphinxext.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pygments/style.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pygments/styles/__init__.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pygments/styles/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pygments/token.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pygments/unistring.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pygments/util.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pyparsing/__init__.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pyparsing/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pyparsing/__pycache__/actions.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pyparsing/__pycache__/common.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pyparsing/__pycache__/core.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pyparsing/__pycache__/exceptions.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pyparsing/__pycache__/helpers.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pyparsing/__pycache__/results.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pyparsing/__pycache__/testing.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pyparsing/__pycache__/unicode.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pyparsing/__pycache__/util.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pyparsing/actions.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pyparsing/common.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pyparsing/core.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pyparsing/diagram/__init__.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pyparsing/diagram/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pyparsing/exceptions.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pyparsing/helpers.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pyparsing/results.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pyparsing/testing.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pyparsing/unicode.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pyparsing/util.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/__init__.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/__pycache__/_compat.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/__pycache__/_impl.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_compat.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_impl.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/__init__.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/__pycache__/_in_process.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/requests/__init__.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/requests/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/requests/__pycache__/__version__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/requests/__pycache__/_internal_utils.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/requests/__pycache__/adapters.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/requests/__pycache__/api.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/requests/__pycache__/auth.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/requests/__pycache__/certs.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/requests/__pycache__/compat.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/requests/__pycache__/cookies.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/requests/__pycache__/exceptions.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/requests/__pycache__/help.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/requests/__pycache__/hooks.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/requests/__pycache__/models.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/requests/__pycache__/packages.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/requests/__pycache__/sessions.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/requests/__pycache__/status_codes.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/requests/__pycache__/structures.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/requests/__pycache__/utils.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/requests/__version__.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/requests/_internal_utils.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/requests/adapters.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/requests/api.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/requests/auth.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/requests/certs.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/requests/compat.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/requests/cookies.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/requests/exceptions.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/requests/help.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/requests/hooks.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/requests/models.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/requests/packages.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/requests/sessions.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/requests/status_codes.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/requests/structures.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/requests/utils.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/resolvelib/__init__.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/resolvelib/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/resolvelib/__pycache__/providers.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/resolvelib/__pycache__/reporters.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/resolvelib/__pycache__/resolvers.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/resolvelib/__pycache__/structs.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/resolvelib/compat/__init__.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/resolvelib/compat/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/resolvelib/compat/__pycache__/collections_abc.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/resolvelib/compat/collections_abc.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/resolvelib/providers.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/resolvelib/reporters.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/resolvelib/resolvers.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/resolvelib/structs.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/__init__.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/__main__.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/__main__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/_cell_widths.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/_emoji_codes.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/_emoji_replace.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/_export_format.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/_extension.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/_fileno.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/_inspect.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/_log_render.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/_loop.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/_null_file.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/_palettes.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/_pick.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/_ratio.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/_spinners.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/_stack.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/_timer.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/_win32_console.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/_windows.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/_windows_renderer.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/_wrap.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/abc.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/align.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/ansi.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/bar.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/box.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/cells.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/color.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/color_triplet.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/columns.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/console.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/constrain.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/containers.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/control.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/default_styles.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/diagnose.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/emoji.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/errors.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/file_proxy.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/filesize.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/highlighter.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/json.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/jupyter.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/layout.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/live.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/live_render.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/logging.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/markup.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/measure.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/padding.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/pager.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/palette.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/panel.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/pretty.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/progress.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/progress_bar.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/prompt.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/protocol.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/region.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/repr.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/rule.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/scope.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/screen.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/segment.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/spinner.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/status.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/style.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/styled.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/syntax.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/table.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/terminal_theme.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/text.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/theme.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/themes.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/traceback.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/tree.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/_cell_widths.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/_emoji_codes.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/_emoji_replace.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/_export_format.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/_extension.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/_fileno.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/_inspect.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/_log_render.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/_loop.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/_null_file.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/_palettes.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/_pick.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/_ratio.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/_spinners.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/_stack.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/_timer.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/_win32_console.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/_windows.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/_windows_renderer.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/_wrap.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/abc.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/align.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/ansi.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/bar.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/box.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/cells.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/color.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/color_triplet.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/columns.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/console.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/constrain.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/containers.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/control.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/default_styles.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/diagnose.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/emoji.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/errors.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/file_proxy.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/filesize.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/highlighter.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/json.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/jupyter.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/layout.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/live.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/live_render.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/logging.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/markup.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/measure.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/padding.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/pager.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/palette.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/panel.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/pretty.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/progress.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/progress_bar.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/prompt.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/protocol.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/region.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/repr.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/rule.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/scope.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/screen.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/segment.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/spinner.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/status.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/style.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/styled.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/syntax.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/table.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/terminal_theme.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/text.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/theme.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/themes.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/traceback.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/rich/tree.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/six.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/tenacity/__init__.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/tenacity/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/tenacity/__pycache__/_asyncio.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/tenacity/__pycache__/_utils.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/tenacity/__pycache__/after.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/tenacity/__pycache__/before.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/tenacity/__pycache__/before_sleep.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/tenacity/__pycache__/nap.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/tenacity/__pycache__/retry.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/tenacity/__pycache__/stop.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/tenacity/__pycache__/tornadoweb.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/tenacity/__pycache__/wait.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/tenacity/_asyncio.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/tenacity/_utils.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/tenacity/after.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/tenacity/before.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/tenacity/before_sleep.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/tenacity/nap.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/tenacity/retry.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/tenacity/stop.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/tenacity/tornadoweb.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/tenacity/wait.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/tomli/__init__.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/tomli/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/tomli/__pycache__/_parser.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/tomli/__pycache__/_re.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/tomli/__pycache__/_types.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/tomli/_parser.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/tomli/_re.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/tomli/_types.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/truststore/__init__.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/truststore/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/truststore/__pycache__/_api.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/truststore/__pycache__/_macos.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/truststore/__pycache__/_openssl.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/truststore/__pycache__/_ssl_constants.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/truststore/__pycache__/_windows.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/truststore/_api.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/truststore/_macos.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/truststore/_openssl.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/truststore/_ssl_constants.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/truststore/_windows.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/typing_extensions.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/urllib3/__init__.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/urllib3/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/urllib3/__pycache__/_collections.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/urllib3/__pycache__/_version.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/urllib3/__pycache__/connection.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/urllib3/__pycache__/connectionpool.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/urllib3/__pycache__/exceptions.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/urllib3/__pycache__/fields.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/urllib3/__pycache__/filepost.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/urllib3/__pycache__/poolmanager.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/urllib3/__pycache__/request.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/urllib3/__pycache__/response.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/urllib3/_collections.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/urllib3/_version.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/urllib3/connection.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/urllib3/connectionpool.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/__init__.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/__pycache__/_appengine_environ.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/__pycache__/appengine.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/__pycache__/ntlmpool.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/__pycache__/pyopenssl.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/__pycache__/securetransport.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/__pycache__/socks.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/_appengine_environ.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__init__.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__pycache__/bindings.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__pycache__/low_level.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/_securetransport/bindings.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/_securetransport/low_level.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/appengine.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/ntlmpool.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/pyopenssl.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/securetransport.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/socks.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/urllib3/exceptions.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/urllib3/fields.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/urllib3/filepost.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/urllib3/packages/__init__.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/urllib3/packages/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/urllib3/packages/__pycache__/six.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/urllib3/packages/backports/__init__.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/urllib3/packages/backports/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/urllib3/packages/backports/__pycache__/makefile.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/urllib3/packages/backports/__pycache__/weakref_finalize.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/urllib3/packages/backports/makefile.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/urllib3/packages/backports/weakref_finalize.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/urllib3/packages/six.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/urllib3/poolmanager.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/urllib3/request.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/urllib3/response.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/__init__.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/__pycache__/connection.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/__pycache__/proxy.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/__pycache__/queue.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/__pycache__/request.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/__pycache__/response.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/__pycache__/retry.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/__pycache__/ssl_.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/__pycache__/ssl_match_hostname.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/__pycache__/ssltransport.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/__pycache__/timeout.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/__pycache__/url.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/__pycache__/wait.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/connection.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/proxy.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/queue.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/request.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/response.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/retry.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/ssl_.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/ssl_match_hostname.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/ssltransport.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/timeout.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/url.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/wait.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/vendor.txt create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/webencodings/__init__.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/webencodings/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/webencodings/__pycache__/labels.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/webencodings/__pycache__/mklabels.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/webencodings/__pycache__/tests.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/webencodings/__pycache__/x_user_defined.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/webencodings/labels.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/webencodings/mklabels.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/webencodings/tests.py create mode 100644 venv/lib/python3.12/site-packages/pip/_vendor/webencodings/x_user_defined.py create mode 100644 venv/lib/python3.12/site-packages/pip/py.typed create mode 100644 venv/lib/python3.12/site-packages/platformdirs-4.2.2.dist-info/INSTALLER create mode 100644 venv/lib/python3.12/site-packages/platformdirs-4.2.2.dist-info/METADATA create mode 100644 venv/lib/python3.12/site-packages/platformdirs-4.2.2.dist-info/RECORD create mode 100644 venv/lib/python3.12/site-packages/platformdirs-4.2.2.dist-info/WHEEL create mode 100644 venv/lib/python3.12/site-packages/platformdirs-4.2.2.dist-info/licenses/LICENSE create mode 100644 venv/lib/python3.12/site-packages/platformdirs/__init__.py create mode 100644 venv/lib/python3.12/site-packages/platformdirs/__main__.py create mode 100644 venv/lib/python3.12/site-packages/platformdirs/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/platformdirs/__pycache__/__main__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/platformdirs/__pycache__/android.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/platformdirs/__pycache__/api.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/platformdirs/__pycache__/macos.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/platformdirs/__pycache__/unix.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/platformdirs/__pycache__/version.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/platformdirs/__pycache__/windows.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/platformdirs/android.py create mode 100644 venv/lib/python3.12/site-packages/platformdirs/api.py create mode 100644 venv/lib/python3.12/site-packages/platformdirs/macos.py create mode 100644 venv/lib/python3.12/site-packages/platformdirs/py.typed create mode 100644 venv/lib/python3.12/site-packages/platformdirs/unix.py create mode 100644 venv/lib/python3.12/site-packages/platformdirs/version.py create mode 100644 venv/lib/python3.12/site-packages/platformdirs/windows.py create mode 100644 venv/lib/python3.12/site-packages/sqlparse-0.5.1.dist-info/INSTALLER create mode 100644 venv/lib/python3.12/site-packages/sqlparse-0.5.1.dist-info/METADATA create mode 100644 venv/lib/python3.12/site-packages/sqlparse-0.5.1.dist-info/RECORD create mode 100644 venv/lib/python3.12/site-packages/sqlparse-0.5.1.dist-info/WHEEL create mode 100644 venv/lib/python3.12/site-packages/sqlparse-0.5.1.dist-info/entry_points.txt create mode 100644 venv/lib/python3.12/site-packages/sqlparse-0.5.1.dist-info/licenses/AUTHORS create mode 100644 venv/lib/python3.12/site-packages/sqlparse-0.5.1.dist-info/licenses/LICENSE create mode 100644 venv/lib/python3.12/site-packages/sqlparse/__init__.py create mode 100644 venv/lib/python3.12/site-packages/sqlparse/__main__.py create mode 100644 venv/lib/python3.12/site-packages/sqlparse/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/sqlparse/__pycache__/__main__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/sqlparse/__pycache__/cli.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/sqlparse/__pycache__/exceptions.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/sqlparse/__pycache__/formatter.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/sqlparse/__pycache__/keywords.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/sqlparse/__pycache__/lexer.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/sqlparse/__pycache__/sql.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/sqlparse/__pycache__/tokens.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/sqlparse/__pycache__/utils.cpython-312.pyc create mode 100755 venv/lib/python3.12/site-packages/sqlparse/cli.py create mode 100644 venv/lib/python3.12/site-packages/sqlparse/engine/__init__.py create mode 100644 venv/lib/python3.12/site-packages/sqlparse/engine/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/sqlparse/engine/__pycache__/filter_stack.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/sqlparse/engine/__pycache__/grouping.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/sqlparse/engine/__pycache__/statement_splitter.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/sqlparse/engine/filter_stack.py create mode 100644 venv/lib/python3.12/site-packages/sqlparse/engine/grouping.py create mode 100644 venv/lib/python3.12/site-packages/sqlparse/engine/statement_splitter.py create mode 100644 venv/lib/python3.12/site-packages/sqlparse/exceptions.py create mode 100644 venv/lib/python3.12/site-packages/sqlparse/filters/__init__.py create mode 100644 venv/lib/python3.12/site-packages/sqlparse/filters/__pycache__/__init__.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/sqlparse/filters/__pycache__/aligned_indent.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/sqlparse/filters/__pycache__/others.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/sqlparse/filters/__pycache__/output.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/sqlparse/filters/__pycache__/reindent.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/sqlparse/filters/__pycache__/right_margin.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/sqlparse/filters/__pycache__/tokens.cpython-312.pyc create mode 100644 venv/lib/python3.12/site-packages/sqlparse/filters/aligned_indent.py create mode 100644 venv/lib/python3.12/site-packages/sqlparse/filters/others.py create mode 100644 venv/lib/python3.12/site-packages/sqlparse/filters/output.py create mode 100644 venv/lib/python3.12/site-packages/sqlparse/filters/reindent.py create mode 100644 venv/lib/python3.12/site-packages/sqlparse/filters/right_margin.py create mode 100644 venv/lib/python3.12/site-packages/sqlparse/filters/tokens.py create mode 100644 venv/lib/python3.12/site-packages/sqlparse/formatter.py create mode 100644 venv/lib/python3.12/site-packages/sqlparse/keywords.py create mode 100644 venv/lib/python3.12/site-packages/sqlparse/lexer.py create mode 100644 venv/lib/python3.12/site-packages/sqlparse/sql.py create mode 100644 venv/lib/python3.12/site-packages/sqlparse/tokens.py create mode 100644 venv/lib/python3.12/site-packages/sqlparse/utils.py create mode 120000 venv/lib64 create mode 100644 venv/pyvenv.cfg diff --git a/blango/__pycache__/__init__.cpython-312.pyc b/blango/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..198dea0af40ee68b7b4c08bdae83df4a3e54069c GIT binary patch literal 149 zcmX@j%ge<81VXMS(m?cM5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!GSSb-&rQ|OP0Yy6 zFHO;RNiEZNN=(kyby$n)RA3LapLAt1ZilAc7({1D^YRFAq1s+Ez{vcA*nd# zq`gbFcF2^i$ll*jpi7JnF*q6M)J=BKB~uS6$rfY-bqVo4&OP6E&OP^>OZ^d#M+kTp zxZgK_ixI?M&SdlihJ(*XF!-531WzCmd1O-Y@E(%z5ZHsgAIO2$c6bCk=|2pI+pdih zxidOT#s`p>4ed`2-^)Xkyh9Mv^|gc@?*rSH)90lfm0il$>qQh{9&O-WNJ_?cT0*pp=ZHJHbdEz|56 z-{$j3YZ>&w#>j(~rsT1j2g1Cmb)=S&ANiXf(3@MB+U&|QB};}$X`3he5mf|+u%uJ3 zMY)TO|6@zXn`4Ilb`Ca6+P-zs+_IL3QIJ#vx4JscEg0%e)DdTIKe)HhUbwlmWIddJ zvHjvzuDhhpZr{4GBWK?{6mJTPTIY#n-C0=7aW*-h4O-~|6W!8OQpvUm_fou$wJ#7SzT+vjz;CBC^YUrDE0h;F$-WgN9 zKjDiAAsqLEfjLA^YPlIX2Atf)C}88@wLuWaQ1{N*gevSFv(9C%|2P%AC)Nz;w2&$=~9 zb6Sf=xY=!6^XJgi@hhkt(^?qn9%rf(&@-5wKwEbwl#hdW24J+7_1VE?rtpld6m4Iz zRIA$|W_?|7N5SekSE^R(*32+oJ4Rcg#ZCue>>i*UM0iu|%I0xiqvlEYj90Q`;=5J^ zgu`*xV+YvEYN^87z6!I(>TxJ=>*<8wZq{@}!`RVuB)}yiA=ez;FtE;;PRVvnT$dC{ z7M)^vKG4u~>+yM+)+AL@x=IqA}$rJ^A$8}zc&hHBDQBrKy!He&|`0j_aDu!9}AEM=*wdm*-V zND!Rc#gXgS(B#+H4s_s3QB6Cv%+y)ur0qzZE!0>}c*g!{`-|*yW7Uo`<#Kg{EecPo zb*^qFN|ibXA`n1&)a}SxsaPzt8%&M0W3_6P6B@O0p;}q7!yLP|US>G9ZYMYDt0hOj zTq-b5CfVU4!!eH8x}9Mf+*4tlsn<8EwW9ExDVJce3JDl5GnLf_v&ssEYLNxP(i$u9 zRmho80~{_bKBx>v<;B|-JK)GT9`?Y2je_Hcohq^`Ory*RV52Iml-P3dSK_ntG5NBT z-_jJESHvwv>!N%Szs@g1z2{gJPFu?y0iNw^a!HfmGNUe3nb1z6eA36-%FC@ zp(jH6{>c#J<--6GOTG>L^!QVBb}u^nXY|IW==@%E{!?^uFS^(Z^%F#*M)o5801=M& z{0GzNxBg!IC=yC}dWoZSDB*#%G?BdCi}gc9nkDy>sr_{3AVwV#{u_zDH<*qbhGYIf z-UUKfx?@fY^-_^N7gr`0x`M%c!xR5(pAD?_b zKB)~R7vtAFABjx=D`Gm+iyy?Md*OrVR4+7W!1q8uMkF%eZG^b=%^s1`=O85i0!b}S A-v9sr literal 0 HcmV?d00001 diff --git a/blango/__pycache__/urls.cpython-312.pyc b/blango/__pycache__/urls.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b52f0ca200d62703de0d1a60308883e30896eaaa GIT binary patch literal 1001 zcma)5L5tHs6i(8#yQXdhPaZ@@Jfwj(Y{5G7sP|;r3l?=X4XI`S!0IPL=`R~|7pLH!`Q+v3v zXa+6B^~N|wY|6pQ=TE^NXOm=_3#1axJnzMffWus*8B&S}CJ#ZHNCgDX6_MtE1d4;B zguIa<*yjRJE(l22gbP|ifGj0Q5+DhQJfLl+R3;+`F^^@4=caHb_?*Nlj5&pb!8_p& zR6I*!2~9H8KYA}RZ0-56d&{T~aiW<(ewVJTEi z=ZVHD*|>q#J-qC1tdd zYc-D02wsz{a(ksH7iK$7`4nma>q@@aC~^HD@P3*L7}!M$)df+Q<%3>xH3_sa1HUIy*A8G)|shwejA#>L5gOS=NLXF zNAMAfU-t(L!`0=l7XuMyi}THUl;b=l4@5@;*!q)w{X1#cwteb!Z1?vK%f9*Dx_;WS fnwLIY`*?R59Y@REezw6t?d|Q(b64742*xmPqs*U_%J0RYDX5>5w9%EEnhel3ePuPiH43-8vwC z0>1(Ek07xWfk3(mgc#UB**f9t_0)Rs`<|cQ_kGXur;QB{*|pjJIDU%}`jsc;s$7EA z$b$EXqXFWWI|2`|jjnKFci>_Kc(z`)T*X=K3YUmi_>EJi$S`scxTlw;!P?SktQ~*z zUiUj)5-K^4CSa_g z2(n;lbWxHl22O@UmLwtynTeDf4lUm^D-x>|NF=RZd{H1uTJlJfaU|eA(E#4mm_$FO zl&ette3qLkJ%uW!An7CjA)TrtqbP?&sAUY&&?7yGsP`wIve&@boe7vAKMSte$hKS0 zcYB@vpx-_?==M7O;N^bn)rGjoCC-b52{ZpnEJl+-XZr3+XcCzbFMpOllBm!1!#^3(O><1_OzOXB183Mzkb*yQG?l;)(`6|n-1 TU8*$!tLDI-!P)^25F zMOhg66OdSl1Zs5>69ZzaluVttXD1Sfi5uSgzW3w1d-pzfyFS?SVeiwy()u4r*2i6e z#YYQHK!6|$G7=Gj*ilYKBbu>@5pdus2zms9NiuE}*CMT-(bh*Do8SC9hirW9-SIX6D%Ss`kL_zLGQ>sYNa{fU;7Vp6NP zl7b(kQi<|CEbs*vVR%?%GR)$`tf)n}EnkI?TEAdBVJPFir{kTgi`hSZUPt-k^B zN03+;t4K^tY)FNr1Hz7jhxhLM?yTo~Z8mEl&u{<5e~|q{k^fUE!TMN&B~YM$G<=dS&z7UZ=2}XLXD=Nu)UxFnt@DK&hpvW_+;aM}& zw(?q+i$HtlhxD36fpF;12?b?5b-I(FlTF3dgmIc%Ln$5DmAr~^L_&sfUc*=_Gp=w0 z?=JoO?%ABakw7sEFA>5H@Q$5qm epC`MLss}%Q;k{l3HTYjo0kO-U}d|55LhcVe7`gWaS z)PoN>z@>1b#~z8`z@<`;?WvV|sTE7MR?4ZT+$xz~q8>7{Ys^ndBlR7|GjC_UH}ht` z=ilS;7=g7o|J&+60Yd&n<8(sK|u% z$Z7D|?_to_i<0LlfoJGFo}p?u7kQ0gIl&DX7G=5(TEu3KQ#MQX${9K#9eC2d54-z> zk)l9JF%Tdu_;2Y@;V5t@_y9!-6EB9UVoq{{1+Da&!iN`v8#A;`RcB_&SzGD&dJ(AO zdF_4>`{Y})?rmQbOMtKd=}ONuy}|%Zw3)tYW9-nIkMnDm!SaT-W>^)PpJvbUpJ^*k zKbkRVep%Pdk_A6jDeo6OzEO3yOCIHs-OA z3%e0jH8q2&svA>PK&t4dE2{c+MbrH+9LsQ{1-9wTmYGgDg7Ir0UJ#x_y$40;RG?zt z1o51-l)>%UrZQMp1`mP_Wvn*S76qx_k3zo-?Ga%ESNl7-fcLkDN$Z%&r3I}_T-pNj zNH~O<#Z`=W?Z&(>EgCoqcH15M4==InC133YXj1n~#q+~SxU^{KDBML$cwU)HE?^#Z zwu;xT#EG24NnYjE#YuS{*>_K3y)=3h>*jr($}seORV5d9#mAQIz^q0sQw5eWhZVq5 zw2EV?ruB`gQ3`hC)XoK538(a_E1DHu=V3UEBj?K}&|O#B05oK(!kMl)jCy1Ee;CAN z00kh)DLXpjaj<*>`D2N5x}{+5r-ZlxJ3NU3hhQOhgQwBxMR6U4H}A1oi?edce88$4 z2h;8O^hx0h^~uuAqB{R*dgh@Ue!TdoF!OoA4MELo7I)**P)MO{Fpnl~Y=twgGR<*i zpjLUc3}u3$Y*d!@vc2Y6ybq7OjVDBx^h(K(6>U)6uw5|>jRUb)EYo483U z^tp&6az#fg*&ZXgSKJvXk%k-vGR6K81duYG+5V~-&(!0Y?>C#b?$vMI`+4Hmsb8iV z@x|I~D><^)*G!JolOxA>8_D~%FI%bXUbdOa)>GMIv61?u_Mnv>-J58pN9*a)1Nu{M zBRy4n_%793^1${)Qy!?x125$dYSXPmW_z`n$kY>=gFB7Hcx~?7&dbCQ*zzz&4A%ccFO4srA8>h>DtK^Oim$d5lN}9(%0{=C?s44p(op?^EOJGL`+LO?xH6tE|DCwC_QCZKw=^A-WKdyD`8 literal 0 HcmV?d00001 diff --git a/blog/admin.py b/blog/admin.py new file mode 100644 index 0000000000..b32b54264a --- /dev/null +++ b/blog/admin.py @@ -0,0 +1,12 @@ +from django.contrib import admin + +from blog.models import Tag, Post + +# Register your models here. + +class PostAdmin(admin.ModelAdmin): + prepopulated_fields = {"slug": ("title",)} + + +admin.site.register(Post, PostAdmin) +admin.site.register(Tag) \ No newline at end of file diff --git a/blog/apps.py b/blog/apps.py new file mode 100644 index 0000000000..6be26c734b --- /dev/null +++ b/blog/apps.py @@ -0,0 +1,6 @@ +from django.apps import AppConfig + + +class BlogConfig(AppConfig): + default_auto_field = "django.db.models.BigAutoField" + name = "blog" diff --git a/blog/migrations/0001_initial.py b/blog/migrations/0001_initial.py new file mode 100644 index 0000000000..93b0705f4c --- /dev/null +++ b/blog/migrations/0001_initial.py @@ -0,0 +1,61 @@ +# Generated by Django 5.1 on 2024-08-23 09:00 + +import django.db.models.deletion +from django.conf import settings +from django.db import migrations, models + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ] + + operations = [ + migrations.CreateModel( + name="Tag", + fields=[ + ( + "id", + models.BigAutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name="ID", + ), + ), + ("value", models.TextField(max_length=100)), + ], + ), + migrations.CreateModel( + name="Post", + fields=[ + ( + "id", + models.BigAutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name="ID", + ), + ), + ("created_at", models.DateTimeField(auto_now_add=True)), + ("modified_at", models.DateTimeField(auto_now=True)), + ("published_at", models.DateTimeField(blank=True, null=True)), + ("title", models.TextField(max_length=100)), + ("slug", models.SlugField()), + ("summary", models.TextField(max_length=500)), + ("content", models.TextField()), + ( + "author", + models.ForeignKey( + on_delete=django.db.models.deletion.PROTECT, + to=settings.AUTH_USER_MODEL, + ), + ), + ("tags", models.ManyToManyField(related_name="posts", to="blog.tag")), + ], + ), + ] diff --git a/blog/migrations/__init__.py b/blog/migrations/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/blog/migrations/__pycache__/0001_initial.cpython-312.pyc b/blog/migrations/__pycache__/0001_initial.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..bb21e0977040fb7a2f4c1f8ac3c12392cf3b0483 GIT binary patch literal 2199 zcmb7FJ#5=X6h2ZSMai-)sj_0ps%)!vETxW>#PQHLZR7YS{juX9QBXh&LHW)!9g0** z%84?iK!%Rl>M@<#!X65AsK-o2fG#9rfW!es19WLN0d|*6J(5zaz;=H~fcNg*ci;Q& z-M!3waGMz400Dol;7 zuoR%d4FH3W0b~%f+1DXDYIg#@T?sX*BKyki+$>U<(~)6Fil`T99H~j7CK!^c=$Ngk z5Xt)55di>+cIV(v+Es--MHL!Sl>iM;aMN2)_XGeCd!iP~M~PI0^JaFKyCy>#x~!4S zRF|`DLW;aW$n3H^LEp7b!;ps_JORz^hIiT#*J+X7jqDKp?sIDFp8pv;>c!6ZtleKo z?e-qUhJF8l>+izFPR9|(ct<~3b;3jb>#E^99xmIh&9`^jF2a>Om203ogD`a(u8Zr8 zhshm}hhm%g$r^HCMEB zNQwl9)>Oqnih)@|wV`T6Q&?4aav2~4VcJk}&=5o&Gj$?Of5=s3Rh%Lof{SWMcGKXk zQge6tW-*01-s|%`j_^ED+mI2lqdfm*Ly+Col3qwsB!lEibITbg_4`7-E>sB+qB>F_ zQr4Q9dw=2nxx3|0_`7!&Z}Tgw3yaG*`UW8(9rw(88?oZvU7CA|;^=iroFiMbW10%_>}b z!OgV-bdr6v+=_tkusfWyxSSJD5%@sbNlrXjvXc{5a>5xeI%5SV?;3|;W+2sKxOk$K z0Ex7jIk$b*&YZI{=YCw<&s;HMv#o)iWZxmv7ml=YZ}Fb_@4Pv4czS!w9-g*_r=KPF zhnLLQ4JV#6M=n2Q?UBpY$mKn_KQeE|7M%F7IXd$+WslBSqceL8&y4-iWiz(o#0O8% z=ETpK>Ed?EP8Y3o@kRQ5GdAhOGiG*jd&$mDTG`3Hz<&0s8T;^U?~Ck|87sX^W}W1? zo0V}ZIqu{O-xa?t+WAXX{*s-awequee%{K@J45f;L(|sK^dS>)bH$Qe^?}5onJ&4J zOIEtH_r>$fe!6VN?zS$b-E3t^wnon<*sng*u5@;>$lo-9P!^H#58<@lLmYFg|d3J@Q#%z2>g^MfQ>QG3mPhJ>4zER)C_Y0~S!Dzk!k8 XLE(^{q1Y!8J2qy;#{L4N<8k~A85tD6 literal 0 HcmV?d00001 diff --git a/blog/migrations/__pycache__/__init__.cpython-312.pyc b/blog/migrations/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f97d92a66e0ee0bf5d5aeffd9cd92a57a0294f58 GIT binary patch literal 158 zcmX@j%ge<81pnMmq=D$iAOanHW&w&!XQ*V*Wb|9fP{ah}eFmxdWvic&pPQzbFMpOllBm!1!#^3(NmGt-L_OEUBGiuL2;GxIV_;^XxSDt~d< ewtF1ma>4<0CU8BV!RWkOcrNX(r_W literal 0 HcmV?d00001 diff --git a/blog/models.py b/blog/models.py new file mode 100644 index 0000000000..81f53f7c07 --- /dev/null +++ b/blog/models.py @@ -0,0 +1,24 @@ +from django.db import models +from django.conf import settings + + +# Create your models here. +class Tag(models.Model): + value = models.TextField(max_length=100) + + def __str__(self): + return self.value + +class Post(models.Model): + author = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.PROTECT) + created_at = models.DateTimeField(auto_now_add=True) + modified_at = models.DateTimeField(auto_now=True) + published_at = models.DateTimeField(blank=True, null=True) + title = models.TextField(max_length=100) + slug = models.SlugField() + summary = models.TextField(max_length=500) + content = models.TextField() + tags = models.ManyToManyField(Tag, related_name="posts") + + def __str__(self): + return self.title \ No newline at end of file diff --git a/blog/tests.py b/blog/tests.py new file mode 100644 index 0000000000..7ce503c2dd --- /dev/null +++ b/blog/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/blog/views.py b/blog/views.py new file mode 100644 index 0000000000..91ea44a218 --- /dev/null +++ b/blog/views.py @@ -0,0 +1,3 @@ +from django.shortcuts import render + +# Create your views here. diff --git a/db.sqlite3 b/db.sqlite3 new file mode 100644 index 0000000000000000000000000000000000000000..e02b2a3cde02b323a34a927d1564100a46e39189 GIT binary patch literal 163840 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̷Y`t#4{r}eUI*xz<2!H?x zfB*=900@8p2!H?xfWT2B;GqVcvXyM&1MfFIKlMzy?R`_nKI{6i>;2w-=l7lGdp_#9 z+x_>BYxa?@uXV+QXSR>Y_~5VI?xfQ<9}spYc#JPa_on4?sY*9xm28zIJeHS;N7K=0 zusQdl7F5yh-!*4ii`GMP%{DCRQm=vH_Pq(G?-uC@w9~;AQBY9{rsKhMg6^oBWxl$v z5Np}JlxTJ&B^akDGD%7ACq+XONrs|oIvnR=&SqH`G+E8z&1RcAYie0LcP~>)(Ypq| zr!l8*ZbaA}wn%2t$`ZT%EoU-uB@szP_4+6FqSji*B82suZZsBn9Ci9$r@CF1x~ut( ztem2IEb;JaNU!$%Uez|4x2cik)6K>65vMN@5T4t4=udac$7}Q6xK@*PW3f5&KoP&j z5b>vSS+*WRUxr~0lIrznRlGa|t99bby^>*PP6O}uhMm5V5#a@Kq2(vKCVgXU4>$+n zlCG$<{(+`vtxZIeMromx$*oenb5DcvMk=4HuC-XuIuJIW+1Yc^No$5NqB{tJcOGI7d?w`d4G+`3d!r|)A9+X6-_bVxV03eOlPwspPpK1yh>|w*a9DQyPT`2G7Ce?N;Dk{#bV)R6Myr3ZO&|4zCL%G z4cV|V)ioA)UFz{I1_T=yr3Lz_2TFWjZZ0eboA>*6W7GU3@a$D{{9kKRv+c2FzRj6T zRfEK1l?F>=IaI_nn9OUeXfQVH37OJ5h|Fzl6WkA8>S3qpJzC91VEry)P~Yr*_ZO!4 zO#bXRZ>yf6Z#bJQ<>jcP1Jrf}upyjg7oQ9}ej4H&-;z_4-83Rpsgi z-5;vYj#R0X*H4i|jvZ~jEfO?OT7Uh0k_>qj`&g2RT2OL%Lu4o#X%fkV)RfiLF~3y= z<*0_XS$q<#(+F&PV}>eS%~h!F`v?n!U+eK*AKkZq>-Qk*9n7~!c8^aweWRno zZo%kbp2NG6Z;5UCm}eZQllN(X)(L^#^JBE)XtHU=k#XZsHZR0uA1*?xk$6mv)bC0g zc3w@kd4-peyQi1>352)aux2f_R7)S#mPehwok`)D$j=*=A}tl9OBt0lUY3GNDjbh0 z#?5J?q8?3j^T)P>x$d|nG`bq%=rhiQ-^uQnJ{ODuVd%3c>25PL4C4ch4=d)@cOmoV z9qp8AE~M4^@=rc`n~l?rWg%+wSPhx)vIcfY63;HqZLrD+-0T2KI5C8!X009sH0T2KI5I8IZ*!TbUiuC>eKNSB- z{44R##P`H6h`&k)@B#r4009sH0T2KI5C8!X009sH0T4JSfxcdcZE%478Wa8MlG{l; zgKUTW($_$b!!|sm{oYSi`#aR_uuY6>-`Zc>DXUe}w%ftVvmfYSzdYcv)1Hs*@tSur^b$0J00@8p2!H?xfB*=900@8p2!O!PM}S@b3*rxK^bao(009sH0T2KI z5C8!X009sH0T2LzLrY-TKH~~Wp~#e!oRVUGDS0_0U6z8E;!-RqC9wYg&~_|@g8&GC z00@8p2!H?xfB*=900@9U#{_Ww-!Uo}f&d7B00@8p2!H?xfB*=900@A00@8p2!H?xfB*=900@8p z2!Oz$C4lSyL)&!_4gw$m0w4eaAOHd&00JNY0w4ea9TULyf5)g`2m&Ag0w4eaAOHd& Q00JNY0w4eahnB$q0godXzyJUM literal 0 HcmV?d00001 diff --git a/venv/bin/Activate.ps1 b/venv/bin/Activate.ps1 new file mode 100644 index 0000000000..b49d77ba44 --- /dev/null +++ b/venv/bin/Activate.ps1 @@ -0,0 +1,247 @@ +<# +.Synopsis +Activate a Python virtual environment for the current PowerShell session. + +.Description +Pushes the python executable for a virtual environment to the front of the +$Env:PATH environment variable and sets the prompt to signify that you are +in a Python virtual environment. Makes use of the command line switches as +well as the `pyvenv.cfg` file values present in the virtual environment. + +.Parameter VenvDir +Path to the directory that contains the virtual environment to activate. The +default value for this is the parent of the directory that the Activate.ps1 +script is located within. + +.Parameter Prompt +The prompt prefix to display when this virtual environment is activated. By +default, this prompt is the name of the virtual environment folder (VenvDir) +surrounded by parentheses and followed by a single space (ie. '(.venv) '). + +.Example +Activate.ps1 +Activates the Python virtual environment that contains the Activate.ps1 script. + +.Example +Activate.ps1 -Verbose +Activates the Python virtual environment that contains the Activate.ps1 script, +and shows extra information about the activation as it executes. + +.Example +Activate.ps1 -VenvDir C:\Users\MyUser\Common\.venv +Activates the Python virtual environment located in the specified location. + +.Example +Activate.ps1 -Prompt "MyPython" +Activates the Python virtual environment that contains the Activate.ps1 script, +and prefixes the current prompt with the specified string (surrounded in +parentheses) while the virtual environment is active. + +.Notes +On Windows, it may be required to enable this Activate.ps1 script by setting the +execution policy for the user. You can do this by issuing the following PowerShell +command: + +PS C:\> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser + +For more information on Execution Policies: +https://go.microsoft.com/fwlink/?LinkID=135170 + +#> +Param( + [Parameter(Mandatory = $false)] + [String] + $VenvDir, + [Parameter(Mandatory = $false)] + [String] + $Prompt +) + +<# Function declarations --------------------------------------------------- #> + +<# +.Synopsis +Remove all shell session elements added by the Activate script, including the +addition of the virtual environment's Python executable from the beginning of +the PATH variable. + +.Parameter NonDestructive +If present, do not remove this function from the global namespace for the +session. + +#> +function global:deactivate ([switch]$NonDestructive) { + # Revert to original values + + # The prior prompt: + if (Test-Path -Path Function:_OLD_VIRTUAL_PROMPT) { + Copy-Item -Path Function:_OLD_VIRTUAL_PROMPT -Destination Function:prompt + Remove-Item -Path Function:_OLD_VIRTUAL_PROMPT + } + + # The prior PYTHONHOME: + if (Test-Path -Path Env:_OLD_VIRTUAL_PYTHONHOME) { + Copy-Item -Path Env:_OLD_VIRTUAL_PYTHONHOME -Destination Env:PYTHONHOME + Remove-Item -Path Env:_OLD_VIRTUAL_PYTHONHOME + } + + # The prior PATH: + if (Test-Path -Path Env:_OLD_VIRTUAL_PATH) { + Copy-Item -Path Env:_OLD_VIRTUAL_PATH -Destination Env:PATH + Remove-Item -Path Env:_OLD_VIRTUAL_PATH + } + + # Just remove the VIRTUAL_ENV altogether: + if (Test-Path -Path Env:VIRTUAL_ENV) { + Remove-Item -Path env:VIRTUAL_ENV + } + + # Just remove VIRTUAL_ENV_PROMPT altogether. + if (Test-Path -Path Env:VIRTUAL_ENV_PROMPT) { + Remove-Item -Path env:VIRTUAL_ENV_PROMPT + } + + # Just remove the _PYTHON_VENV_PROMPT_PREFIX altogether: + if (Get-Variable -Name "_PYTHON_VENV_PROMPT_PREFIX" -ErrorAction SilentlyContinue) { + Remove-Variable -Name _PYTHON_VENV_PROMPT_PREFIX -Scope Global -Force + } + + # Leave deactivate function in the global namespace if requested: + if (-not $NonDestructive) { + Remove-Item -Path function:deactivate + } +} + +<# +.Description +Get-PyVenvConfig parses the values from the pyvenv.cfg file located in the +given folder, and returns them in a map. + +For each line in the pyvenv.cfg file, if that line can be parsed into exactly +two strings separated by `=` (with any amount of whitespace surrounding the =) +then it is considered a `key = value` line. The left hand string is the key, +the right hand is the value. + +If the value starts with a `'` or a `"` then the first and last character is +stripped from the value before being captured. + +.Parameter ConfigDir +Path to the directory that contains the `pyvenv.cfg` file. +#> +function Get-PyVenvConfig( + [String] + $ConfigDir +) { + Write-Verbose "Given ConfigDir=$ConfigDir, obtain values in pyvenv.cfg" + + # Ensure the file exists, and issue a warning if it doesn't (but still allow the function to continue). + $pyvenvConfigPath = Join-Path -Resolve -Path $ConfigDir -ChildPath 'pyvenv.cfg' -ErrorAction Continue + + # An empty map will be returned if no config file is found. + $pyvenvConfig = @{ } + + if ($pyvenvConfigPath) { + + Write-Verbose "File exists, parse `key = value` lines" + $pyvenvConfigContent = Get-Content -Path $pyvenvConfigPath + + $pyvenvConfigContent | ForEach-Object { + $keyval = $PSItem -split "\s*=\s*", 2 + if ($keyval[0] -and $keyval[1]) { + $val = $keyval[1] + + # Remove extraneous quotations around a string value. + if ("'""".Contains($val.Substring(0, 1))) { + $val = $val.Substring(1, $val.Length - 2) + } + + $pyvenvConfig[$keyval[0]] = $val + Write-Verbose "Adding Key: '$($keyval[0])'='$val'" + } + } + } + return $pyvenvConfig +} + + +<# Begin Activate script --------------------------------------------------- #> + +# Determine the containing directory of this script +$VenvExecPath = Split-Path -Parent $MyInvocation.MyCommand.Definition +$VenvExecDir = Get-Item -Path $VenvExecPath + +Write-Verbose "Activation script is located in path: '$VenvExecPath'" +Write-Verbose "VenvExecDir Fullname: '$($VenvExecDir.FullName)" +Write-Verbose "VenvExecDir Name: '$($VenvExecDir.Name)" + +# Set values required in priority: CmdLine, ConfigFile, Default +# First, get the location of the virtual environment, it might not be +# VenvExecDir if specified on the command line. +if ($VenvDir) { + Write-Verbose "VenvDir given as parameter, using '$VenvDir' to determine values" +} +else { + Write-Verbose "VenvDir not given as a parameter, using parent directory name as VenvDir." + $VenvDir = $VenvExecDir.Parent.FullName.TrimEnd("\\/") + Write-Verbose "VenvDir=$VenvDir" +} + +# Next, read the `pyvenv.cfg` file to determine any required value such +# as `prompt`. +$pyvenvCfg = Get-PyVenvConfig -ConfigDir $VenvDir + +# Next, set the prompt from the command line, or the config file, or +# just use the name of the virtual environment folder. +if ($Prompt) { + Write-Verbose "Prompt specified as argument, using '$Prompt'" +} +else { + Write-Verbose "Prompt not specified as argument to script, checking pyvenv.cfg value" + if ($pyvenvCfg -and $pyvenvCfg['prompt']) { + Write-Verbose " Setting based on value in pyvenv.cfg='$($pyvenvCfg['prompt'])'" + $Prompt = $pyvenvCfg['prompt']; + } + else { + Write-Verbose " Setting prompt based on parent's directory's name. (Is the directory name passed to venv module when creating the virtual environment)" + Write-Verbose " Got leaf-name of $VenvDir='$(Split-Path -Path $venvDir -Leaf)'" + $Prompt = Split-Path -Path $venvDir -Leaf + } +} + +Write-Verbose "Prompt = '$Prompt'" +Write-Verbose "VenvDir='$VenvDir'" + +# Deactivate any currently active virtual environment, but leave the +# deactivate function in place. +deactivate -nondestructive + +# Now set the environment variable VIRTUAL_ENV, used by many tools to determine +# that there is an activated venv. +$env:VIRTUAL_ENV = $VenvDir + +if (-not $Env:VIRTUAL_ENV_DISABLE_PROMPT) { + + Write-Verbose "Setting prompt to '$Prompt'" + + # Set the prompt to include the env name + # Make sure _OLD_VIRTUAL_PROMPT is global + function global:_OLD_VIRTUAL_PROMPT { "" } + Copy-Item -Path function:prompt -Destination function:_OLD_VIRTUAL_PROMPT + New-Variable -Name _PYTHON_VENV_PROMPT_PREFIX -Description "Python virtual environment prompt prefix" -Scope Global -Option ReadOnly -Visibility Public -Value $Prompt + + function global:prompt { + Write-Host -NoNewline -ForegroundColor Green "($_PYTHON_VENV_PROMPT_PREFIX) " + _OLD_VIRTUAL_PROMPT + } + $env:VIRTUAL_ENV_PROMPT = $Prompt +} + +# Clear PYTHONHOME +if (Test-Path -Path Env:PYTHONHOME) { + Copy-Item -Path Env:PYTHONHOME -Destination Env:_OLD_VIRTUAL_PYTHONHOME + Remove-Item -Path Env:PYTHONHOME +} + +# Add the venv to the PATH +Copy-Item -Path Env:PATH -Destination Env:_OLD_VIRTUAL_PATH +$Env:PATH = "$VenvExecDir$([System.IO.Path]::PathSeparator)$Env:PATH" diff --git a/venv/bin/activate b/venv/bin/activate new file mode 100644 index 0000000000..b0eec460d9 --- /dev/null +++ b/venv/bin/activate @@ -0,0 +1,70 @@ +# This file must be used with "source bin/activate" *from bash* +# You cannot run it directly + +deactivate () { + # reset old environment variables + if [ -n "${_OLD_VIRTUAL_PATH:-}" ] ; then + PATH="${_OLD_VIRTUAL_PATH:-}" + export PATH + unset _OLD_VIRTUAL_PATH + fi + if [ -n "${_OLD_VIRTUAL_PYTHONHOME:-}" ] ; then + PYTHONHOME="${_OLD_VIRTUAL_PYTHONHOME:-}" + export PYTHONHOME + unset _OLD_VIRTUAL_PYTHONHOME + fi + + # Call hash to forget past commands. Without forgetting + # past commands the $PATH changes we made may not be respected + hash -r 2> /dev/null + + if [ -n "${_OLD_VIRTUAL_PS1:-}" ] ; then + PS1="${_OLD_VIRTUAL_PS1:-}" + export PS1 + unset _OLD_VIRTUAL_PS1 + fi + + unset VIRTUAL_ENV + unset VIRTUAL_ENV_PROMPT + if [ ! "${1:-}" = "nondestructive" ] ; then + # Self destruct! + unset -f deactivate + fi +} + +# unset irrelevant variables +deactivate nondestructive + +# on Windows, a path can contain colons and backslashes and has to be converted: +if [ "${OSTYPE:-}" = "cygwin" ] || [ "${OSTYPE:-}" = "msys" ] ; then + # transform D:\path\to\venv to /d/path/to/venv on MSYS + # and to /cygdrive/d/path/to/venv on Cygwin + export VIRTUAL_ENV=$(cygpath "/home/mahmoud/Dev/Back-End/blango/venv") +else + # use the path as-is + export VIRTUAL_ENV="/home/mahmoud/Dev/Back-End/blango/venv" +fi + +_OLD_VIRTUAL_PATH="$PATH" +PATH="$VIRTUAL_ENV/bin:$PATH" +export PATH + +# unset PYTHONHOME if set +# this will fail if PYTHONHOME is set to the empty string (which is bad anyway) +# could use `if (set -u; : $PYTHONHOME) ;` in bash +if [ -n "${PYTHONHOME:-}" ] ; then + _OLD_VIRTUAL_PYTHONHOME="${PYTHONHOME:-}" + unset PYTHONHOME +fi + +if [ -z "${VIRTUAL_ENV_DISABLE_PROMPT:-}" ] ; then + _OLD_VIRTUAL_PS1="${PS1:-}" + PS1="(venv) ${PS1:-}" + export PS1 + VIRTUAL_ENV_PROMPT="(venv) " + export VIRTUAL_ENV_PROMPT +fi + +# Call hash to forget past commands. Without forgetting +# past commands the $PATH changes we made may not be respected +hash -r 2> /dev/null diff --git a/venv/bin/activate.csh b/venv/bin/activate.csh new file mode 100644 index 0000000000..8460981c1b --- /dev/null +++ b/venv/bin/activate.csh @@ -0,0 +1,27 @@ +# This file must be used with "source bin/activate.csh" *from csh*. +# You cannot run it directly. + +# Created by Davide Di Blasi . +# Ported to Python 3.3 venv by Andrew Svetlov + +alias deactivate 'test $?_OLD_VIRTUAL_PATH != 0 && setenv PATH "$_OLD_VIRTUAL_PATH" && unset _OLD_VIRTUAL_PATH; rehash; test $?_OLD_VIRTUAL_PROMPT != 0 && set prompt="$_OLD_VIRTUAL_PROMPT" && unset _OLD_VIRTUAL_PROMPT; unsetenv VIRTUAL_ENV; unsetenv VIRTUAL_ENV_PROMPT; test "\!:*" != "nondestructive" && unalias deactivate' + +# Unset irrelevant variables. +deactivate nondestructive + +setenv VIRTUAL_ENV "/home/mahmoud/Dev/Back-End/blango/venv" + +set _OLD_VIRTUAL_PATH="$PATH" +setenv PATH "$VIRTUAL_ENV/bin:$PATH" + + +set _OLD_VIRTUAL_PROMPT="$prompt" + +if (! "$?VIRTUAL_ENV_DISABLE_PROMPT") then + set prompt = "(venv) $prompt" + setenv VIRTUAL_ENV_PROMPT "(venv) " +endif + +alias pydoc python -m pydoc + +rehash diff --git a/venv/bin/activate.fish b/venv/bin/activate.fish new file mode 100644 index 0000000000..8809774549 --- /dev/null +++ b/venv/bin/activate.fish @@ -0,0 +1,69 @@ +# This file must be used with "source /bin/activate.fish" *from fish* +# (https://fishshell.com/). You cannot run it directly. + +function deactivate -d "Exit virtual environment and return to normal shell environment" + # reset old environment variables + if test -n "$_OLD_VIRTUAL_PATH" + set -gx PATH $_OLD_VIRTUAL_PATH + set -e _OLD_VIRTUAL_PATH + end + if test -n "$_OLD_VIRTUAL_PYTHONHOME" + set -gx PYTHONHOME $_OLD_VIRTUAL_PYTHONHOME + set -e _OLD_VIRTUAL_PYTHONHOME + end + + if test -n "$_OLD_FISH_PROMPT_OVERRIDE" + set -e _OLD_FISH_PROMPT_OVERRIDE + # prevents error when using nested fish instances (Issue #93858) + if functions -q _old_fish_prompt + functions -e fish_prompt + functions -c _old_fish_prompt fish_prompt + functions -e _old_fish_prompt + end + end + + set -e VIRTUAL_ENV + set -e VIRTUAL_ENV_PROMPT + if test "$argv[1]" != "nondestructive" + # Self-destruct! + functions -e deactivate + end +end + +# Unset irrelevant variables. +deactivate nondestructive + +set -gx VIRTUAL_ENV "/home/mahmoud/Dev/Back-End/blango/venv" + +set -gx _OLD_VIRTUAL_PATH $PATH +set -gx PATH "$VIRTUAL_ENV/bin" $PATH + +# Unset PYTHONHOME if set. +if set -q PYTHONHOME + set -gx _OLD_VIRTUAL_PYTHONHOME $PYTHONHOME + set -e PYTHONHOME +end + +if test -z "$VIRTUAL_ENV_DISABLE_PROMPT" + # fish uses a function instead of an env var to generate the prompt. + + # Save the current fish_prompt function as the function _old_fish_prompt. + functions -c fish_prompt _old_fish_prompt + + # With the original prompt function renamed, we can override with our own. + function fish_prompt + # Save the return status of the last command. + set -l old_status $status + + # Output the venv prompt; color taken from the blue of the Python logo. + printf "%s%s%s" (set_color 4B8BBE) "(venv) " (set_color normal) + + # Restore the return status of the previous command. + echo "exit $old_status" | . + # Output the original/"old" prompt. + _old_fish_prompt + end + + set -gx _OLD_FISH_PROMPT_OVERRIDE "$VIRTUAL_ENV" + set -gx VIRTUAL_ENV_PROMPT "(venv) " +end diff --git a/venv/bin/black b/venv/bin/black new file mode 100755 index 0000000000..6d80fa236e --- /dev/null +++ b/venv/bin/black @@ -0,0 +1,8 @@ +#!/home/mahmoud/Dev/Back-End/blango/venv/bin/python3 +# -*- coding: utf-8 -*- +import re +import sys +from black import patched_main +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(patched_main()) diff --git a/venv/bin/blackd b/venv/bin/blackd new file mode 100755 index 0000000000..2b4d9658dc --- /dev/null +++ b/venv/bin/blackd @@ -0,0 +1,8 @@ +#!/home/mahmoud/Dev/Back-End/blango/venv/bin/python3 +# -*- coding: utf-8 -*- +import re +import sys +from blackd import patched_main +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(patched_main()) diff --git a/venv/bin/django-admin b/venv/bin/django-admin new file mode 100755 index 0000000000..9c819ef3c9 --- /dev/null +++ b/venv/bin/django-admin @@ -0,0 +1,8 @@ +#!/home/mahmoud/Dev/Back-End/blango/venv/bin/python3 +# -*- coding: utf-8 -*- +import re +import sys +from django.core.management import execute_from_command_line +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(execute_from_command_line()) diff --git a/venv/bin/pip b/venv/bin/pip new file mode 100755 index 0000000000..44dd21aa59 --- /dev/null +++ b/venv/bin/pip @@ -0,0 +1,8 @@ +#!/home/mahmoud/Dev/Back-End/blango/venv/bin/python3 +# -*- coding: utf-8 -*- +import re +import sys +from pip._internal.cli.main import main +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(main()) diff --git a/venv/bin/pip3 b/venv/bin/pip3 new file mode 100755 index 0000000000..44dd21aa59 --- /dev/null +++ b/venv/bin/pip3 @@ -0,0 +1,8 @@ +#!/home/mahmoud/Dev/Back-End/blango/venv/bin/python3 +# -*- coding: utf-8 -*- +import re +import sys +from pip._internal.cli.main import main +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(main()) diff --git a/venv/bin/pip3.12 b/venv/bin/pip3.12 new file mode 100755 index 0000000000..44dd21aa59 --- /dev/null +++ b/venv/bin/pip3.12 @@ -0,0 +1,8 @@ +#!/home/mahmoud/Dev/Back-End/blango/venv/bin/python3 +# -*- coding: utf-8 -*- +import re +import sys +from pip._internal.cli.main import main +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(main()) diff --git a/venv/bin/python b/venv/bin/python new file mode 120000 index 0000000000..b8a0adbbb9 --- /dev/null +++ b/venv/bin/python @@ -0,0 +1 @@ +python3 \ No newline at end of file diff --git a/venv/bin/python3 b/venv/bin/python3 new file mode 120000 index 0000000000..ae65fdaa12 --- /dev/null +++ b/venv/bin/python3 @@ -0,0 +1 @@ +/usr/bin/python3 \ No newline at end of file diff --git a/venv/bin/python3.12 b/venv/bin/python3.12 new file mode 120000 index 0000000000..b8a0adbbb9 --- /dev/null +++ b/venv/bin/python3.12 @@ -0,0 +1 @@ +python3 \ No newline at end of file diff --git a/venv/bin/sqlformat b/venv/bin/sqlformat new file mode 100755 index 0000000000..cfb0ffcef5 --- /dev/null +++ b/venv/bin/sqlformat @@ -0,0 +1,8 @@ +#!/home/mahmoud/Dev/Back-End/blango/venv/bin/python3 +# -*- coding: utf-8 -*- +import re +import sys +from sqlparse.__main__ import main +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(main()) diff --git a/venv/lib/python3.12/site-packages/Django-5.1.dist-info/AUTHORS b/venv/lib/python3.12/site-packages/Django-5.1.dist-info/AUTHORS new file mode 100644 index 0000000000..0ba20a211b --- /dev/null +++ b/venv/lib/python3.12/site-packages/Django-5.1.dist-info/AUTHORS @@ -0,0 +1,1106 @@ +Django was originally created in late 2003 at World Online, the web division +of the Lawrence Journal-World newspaper in Lawrence, Kansas. + +Here is an inevitably incomplete list of MUCH-APPRECIATED CONTRIBUTORS -- +people who have submitted patches, reported bugs, added translations, helped +answer newbie questions, and generally made Django that much better: + + Aaron Cannon + Aaron Linville + Aaron Swartz + Aaron T. Myers + Abeer Upadhyay + Abhijeet Viswa + Abhinav Patil + Abhinav Yadav + Abhishek Gautam + Abhyudai + Adam Allred + Adam Bogdał + Adam Donaghy + Adam Johnson + Adam Malinowski + Adam Vandenberg + Adam Zapletal + Ade Lee + Adiyat Mubarak + Adnan Umer + Arslan Noor + Adrian Holovaty + Adrian Torres + Adrien Lemaire + Afonso Fernández Nogueira + AgarFu + Ahmad Alhashemi + Ahmad Al-Ibrahim + Ahmed Eltawela + ajs + Akash Agrawal + Akash Kumar Sen + Akis Kesoglou + Aksel Ethem + Akshesh Doshi + alang@bright-green.com + Alasdair Nicol + Albert Defler + Albert Wang + Alcides Fonseca + Aldian Fazrihady + Alejandro García Ruiz de Oteiza + Aleksander Milinkevich + Aleksandra Sendecka + Aleksi Häkli + Alex Dutton + Alexander Lazarević + Alexander Myodov + Alexandr Tatarinov + Alex Aktsipetrov + Alex Becker + Alex Couper + Alex Dedul + Alex Gaynor + Alex Hill + Alex Ogier + Alex Robbins + Alexey Boriskin + Alexey Tsivunin + Ali Vakilzade + Aljaž Košir + Aljosa Mohorovic + Alokik Vijay + Amir Karimi + Amit Chakradeo + Amit Ramon + Amit Upadhyay + A. Murat Eren + Ana Belen Sarabia + Ana Krivokapic + Andi Albrecht + André Ericson + Andrei Kulakov + Andreas + Andreas Mock + Andreas Pelme + Andrés Torres Marroquín + Andrew Brehaut + Andrew Clark + Andrew Durdin + Andrew Godwin + Andrew Miller + Andrew Pinkham + Andrews Medina + Andrew Northall + Andriy Sokolovskiy + Andy Chosak + Andy Dustman + Andy Gayton + andy@jadedplanet.net + Anssi Kääriäinen + ant9000@netwise.it + Anthony Briggs + Anthony Wright + Antoine Chéneau + Anton Samarchyan + Antoni Aloy + Antonio Cavedoni + Antonis Christofides + Antti Haapala + Antti Kaihola + Anubhav Joshi + Anvesh Mishra + Anže Pečar + Aram Dulyan + arien + Armin Ronacher + Aron Podrigal + Arsalan Ghassemi + Artem Gnilov + Arthur + Arthur Jovart + Arthur Koziel + Arthur Moreira + Arthur Rio + Arvis Bickovskis + Arya Khaligh + Aryeh Leib Taurog + A S Alam + Asif Saif Uddin + atlithorn + Audrey Roy + av0000@mail.ru + Axel Haustant + Aymeric Augustin + Bahadır Kandemir + Baishampayan Ghose + Baptiste Mispelon + Barry Pederson + Bartolome Sanchez Salado + Barton Ip + Bartosz Grabski + Bashar Al-Abdulhadi + Bastian Kleineidam + Batiste Bieler + Batman + Batuhan Taskaya + Baurzhan Ismagulov + Ben Dean Kawamura + Ben Firshman + Ben Godfrey + Benjamin Wohlwend + Ben Khoo + Ben Lomax + Ben Slavin + Ben Sturmfels + Berker Peksag + Bernd Schlapsi + Bernhard Essl + berto + Bhuvnesh Sharma + Bill Fenner + Bjørn Stabell + Bo Marchman + Bogdan Mateescu + Bojan Mihelac + Bouke Haarsma + Božidar Benko + Brad Melin + Brandon Chinn + Brant Harris + Brendan Hayward + Brendan Quinn + Brenton Simpson + Brett Cannon + Brett Hoerner + Brian Beck + Brian Fabian Crain + Brian Harring + Brian Helba + Brian Ray + Brian Rosner + Bruce Kroeze + Bruno Alla + Bruno Renié + brut.alll@gmail.com + Bryan Chow + Bryan Veloso + bthomas + btoll@bestweb.net + C8E + Caio Ariede + Calvin Spealman + Cameron Curry + Cameron Knight (ckknight) + Can Burak Çilingir + Can Sarıgöl + Carl Meyer + Carles Pina i Estany + Carlos Eduardo de Paula + Carlos Matías de la Torre + Carlton Gibson + cedric@terramater.net + Chad Whitman + ChaosKCW + Charlie Leifer + charly.wilhelm@gmail.com + Chason Chaffin + Cheng Zhang + Chinmoy Chakraborty + Chris Adams + Chris Beaven + Chris Bennett + Chris Cahoon + Chris Chamberlin + Chris Jerdonek + Chris Jones + Chris Lamb + Chris Streeter + Christian Barcenas + Christian Metts + Christian Oudard + Christian Tanzer + Christoffer Sjöbergsson + Christophe Pettus + Christopher Adams + Christopher Babiak + Christopher Lenz + Christoph Mędrela + Chris Wagner + Chris Wesseling + Chris Wilson + Ciaran McCormick + Claude Paroz + Clint Ecker + colin@owlfish.com + Colin Wood + Collin Anderson + Collin Grady + Colton Hicks + Craig Blaszczyk + crankycoder@gmail.com + Curtis Maloney (FunkyBob) + dackze+django@gmail.com + Dagur Páll Ammendrup + Dane Springmeyer + Dan Fairs + Daniel Alves Barbosa de Oliveira Vaz + Daniel Duan + Daniele Procida + Daniel Fairhead + Daniel Greenfeld + dAniel hAhler + Daniel Jilg + Daniel Lindsley + Daniel Poelzleithner + Daniel Pyrathon + Daniel Roseman + Daniel Tao + Daniel Wiesmann + Danilo Bargen + Dan Johnson + Dan Palmer + Dan Poirier + Dan Stephenson + Dan Watson + dave@thebarproject.com + David Ascher + David Avsajanishvili + David Blewett + David Brenneman + David Cramer + David Danier + David Eklund + David Foster + David Gouldin + david@kazserve.org + David Krauth + David Larlet + David Reynolds + David Sanders + David Schein + David Tulig + David Winterbottom + David Wobrock + Davide Ceretti + Deep L. Sukhwani + Deepak Thukral + Denis Kuzmichyov + Dennis Schwertel + Derek Willis + Deric Crago + deric@monowerks.com + Deryck Hodge + Dimitris Glezos + Dirk Datzert + Dirk Eschler + Dmitri Fedortchenko + Dmitry Jemerov + dne@mayonnaise.net + Dolan Antenucci + Donald Harvey + Donald Stufft + Don Spaulding + Doug Beck + Doug Napoleone + dready + Durval Carvalho de Souza + dusk@woofle.net + Dustyn Gibson + Ed Morley + Egidijus Macijauskas + eibaan@gmail.com + elky + Emmanuelle Delescolle + Emil Stenström + enlight + Enrico + Eric Boersma + Eric Brandwein + Eric Floehr + Eric Florenzano + Eric Holscher + Eric Moritz + Eric Palakovich Carr + Erik Karulf + Erik Romijn + eriks@win.tue.nl + Erin Kelly + Erwin Junge + Esdras Beleza + Espen Grindhaug + Étienne Beaulé + Eugene Lazutkin + Evan Grim + Fabian Büchler + Fabian Braun + Fabrice Aneche + Faishal Manzar + Farhaan Bukhsh + favo@exoweb.net + fdr + Federico Capoano + Felipe Lee + Filip Noetzel + Filip Wasilewski + Finn Gruwier Larsen + Fiza Ashraf + Flávio Juvenal da Silva Junior + flavio.curella@gmail.com + Florian Apolloner + Florian Demmer + Florian Moussous + fnaimi66 + Fran Hrženjak + Francesco Panico + Francisco Albarran Cristobal + Francisco Couzo + François Freitag + Frank Tegtmeyer + Frank Wierzbicki + Frank Wiles + František Malina + Fraser Nevett + Gabriel Grant + Gabriel Hurley + gandalf@owca.info + Garry Lawrence + Garry Polley + Garth Kidd + Gary Wilson + Gasper Koren + Gasper Zejn + Gav O'Connor + Gavin Wahl + Ge Hanbin + geber@datacollect.com + Geert Vanderkelen + George Karpenkov + George Song + George Vilches + George Y. Kussumoto + Georg "Hugo" Bauer + Georgi Stanojevski + Gerardo Orozco + Gil Gonçalves + Girish Kumar + Girish Sontakke + Gisle Aas + Glenn Maynard + glin@seznam.cz + GomoX + Gonzalo Saavedra + Gopal Narayanan + Graham Carlyle + Grant Jenks + Greg Chapple + Greg Twohig + Gregor Allensworth + Gregor Müllegger + Grigory Fateyev + Grzegorz Ślusarek + Guilherme Mesquita Gondim + Guillaume Pannatier + Gustavo Picon + hambaloney + Hang Park + Hannes Ljungberg + Hannes Struß + Hao Dong + Harm Geerts + Hasan Ramezani + Hawkeye + Helen Sherwood-Taylor + Henrique Romano + Henry Dang + Hidde Bultsma + Himanshu Chauhan + hipertracker@gmail.com + Hiroki Kiyohara + Hisham Mahmood + Honza Král + Horst Gutmann + Hugo Osvaldo Barrera + HyukJin Jang + Hyun Mi Ae + Iacopo Spalletti + Ian A Wilson + Ian Clelland + Ian Holsman + Ian Lee + Ibon + Idan Gazit + Idan Melamed + Ifedapo Olarewaju + Igor Kolar + Illia Volochii + Ilya Bass + Ilya Semenov + Ingo Klöcker + I.S. van Oostveen + Iuri de Silvio + ivan.chelubeev@gmail.com + Ivan Sagalaev (Maniac) + Jaap Roes + Jack Moffitt + Jacob Burch + Jacob Green + Jacob Kaplan-Moss + Jacob Rief + Jacob Walls + Jakub Bagiński + Jakub Paczkowski + Jakub Wilk + Jakub Wiśniowski + james_027@yahoo.com + James Aylett + James Bennett + James Gillard + James Murty + James Tauber + James Timmins + James Turk + James Wheare + Jamie Matthews + Jannis Leidel + Janos Guljas + Jan Pazdziora + Jan Rademaker + Jarek Głowacki + Jarek Zgoda + Jarosław Wygoda + Jason Davies (Esaj) + Jason Huggins + Jason McBrayer + jason.sidabras@gmail.com + Jason Yan + Javier Mansilla + Jay Parlar + Jay Welborn + Jay Wineinger + J. Clifford Dyer + jcrasta@gmail.com + jdetaeye + Jeff Anderson + Jeff Balogh + Jeff Hui + Jeffrey Gelens + Jeff Triplett + Jeffrey Yancey + Jens Diemer + Jens Page + Jensen Cochran + Jeong-Min Lee + Jérémie Blaser + Jeremy Bowman + Jeremy Carbaugh + Jeremy Dunck + Jeremy Lainé + Jerin Peter George + Jesse Young + Jezeniel Zapanta + jhenry + Jim Dalton + Jimmy Song + Jiri Barton + Joachim Jablon + Joao Oliveira + Joao Pedro Silva + Joe Heck + Joe Jackson + Joel Bohman + Joel Heenan + Joel Watts + Joe Topjian + Johan C. Stöver + Johann Queuniet + Johannes Westphal + john@calixto.net + John D'Agostino + John D'Ambrosio + John Huddleston + John Moses + John Paulett + John Shaffer + Jökull Sólberg Auðunsson + Jon Dufresne + Jon Janzen + Jonas Haag + Jonas Lundberg + Jonathan Davis + Jonatas C. D. + Jonathan Buchanan + Jonathan Daugherty (cygnus) + Jonathan Feignberg + Jonathan Slenders + Jonny Park + Jordan Bae + Jordan Dimov + Jordi J. Tablada + Jorge Bastida + Jorge Gajon + José Tomás Tocino García + Josef Rousek + Joseph Kocherhans + Josh Smeaton + Joshua Cannon + Joshua Ginsberg + Jozko Skrablin + J. Pablo Fernandez + jpellerin@gmail.com + Juan Catalano + Juan Manuel Caicedo + Juan Pedro Fisanotti + Julia Elman + Julia Matsieva + Julian Bez + Julie Rymer + Julien Phalip + Junyoung Choi + junzhang.jn@gmail.com + Jure Cuhalev + Justin Bronn + Justine Tunney + Justin Lilly + Justin Michalicek + Justin Myles Holmes + Jyrki Pulliainen + Kacper Wolkiewicz + Kadesarin Sanjek + Kapil Bansal + Karderio + Karen Tracey + Karol Sikora + Kasun Herath + Katherine “Kati” Michel + Kathryn Killebrew + Katie Miller + Keith Bussell + Kenneth Love + Kent Hauser + Keryn Knight + Kevin Grinberg + Kevin Kubasik + Kevin McConnell + Kieran Holland + kilian + Kim Joon Hwan 김준환 + Kim Soung Ryoul 김성렬 + Klaas van Schelven + knox + konrad@gwu.edu + Kowito Charoenratchatabhan + Krišjānis Vaiders + krzysiek.pawlik@silvermedia.pl + Krzysztof Jagiello + Krzysztof Jurewicz + Krzysztof Kulewski + kurtiss@meetro.com + Lakin Wecker + Lars Yencken + Lau Bech Lauritzen + Laurent Luce + Laurent Rahuel + lcordier@point45.com + Leah Culver + Leandra Finger + Lee Reilly + Lee Sanghyuck + Lemuel Sta Ana + Leo "hylje" Honkanen + Leo Shklovskii + Leo Soto + lerouxb@gmail.com + Lex Berezhny + Liang Feng + Lily Foote + limodou + Lincoln Smith + Liu Yijie <007gzs@gmail.com> + Loek van Gent + Loïc Bistuer + Lowe Thiderman + Luan Pablo + Lucas Connors + Luciano Ramalho + Lucidiot + Ludvig Ericson + Luis C. Berrocal + Łukasz Langa + Łukasz Rekucki + Luke Granger-Brown + Luke Plant + Maciej Fijalkowski + Maciej Wiśniowski + Mads Jensen + Makoto Tsuyuki + Malcolm Tredinnick + Manav Agarwal + Manuel Saelices + Manuzhai + Marc Aymerich Gubern + Marc Egli + Marcel Telka + Marcelo Galigniana + Marc Fargas + Marc Garcia + Marcin Wróbel + Marc Remolt + Marc Seguí Coll + Marc Tamlyn + Marc-Aurèle Brothier + Marian Andre + Marijke Luttekes + Marijn Vriens + Mario Gonzalez + Mariusz Felisiak + Mark Biggers + Mark Evans + Mark Gensler + mark@junklight.com + Mark Lavin + Mark Sandstrom + Markus Amalthea Magnuson + Markus Holtermann + Marten Kenbeek + Marti Raudsepp + martin.glueck@gmail.com + Martin Green + Martin Kosír + Martin Mahner + Martin Maney + Martin von Gagern + Mart Sõmermaa + Marty Alchin + Masashi Shibata + masonsimon+django@gmail.com + Massimiliano Ravelli + Massimo Scamarcia + Mathieu Agopian + Matías Bordese + Matt Boersma + Matt Brewer + Matt Croydon + Matt Deacalion Stevens + Matt Dennenbaum + Matthew Flanagan + Matthew Schinckel + Matthew Somerville + Matthew Tretter + Matthew Wilkes + Matthias Kestenholz + Matthias Pronk + Matt Hoskins + Matt McClanahan + Matt Riggott + Matt Robenolt + Mattia Larentis + Mattia Procopio + Mattias Loverot + mattycakes@gmail.com + Max Burstein + Max Derkachev + Max Smolens + Maxime Lorant + Maxime Toussaint + Maxime Turcotte + Maximilian Merz + Maximillian Dornseif + mccutchen@gmail.com + Meghana Bhange + Meir Kriheli + Michael S. Brown + Michael Hall + Michael Josephson + Michael Lissner + Michael Manfre + michael.mcewan@gmail.com + Michael Placentra II + Michael Radziej + Michael Sanders + Michael Schwarz + Michael Sinov + Michael Thornhill + Michal Chruszcz + michal@plovarna.cz + Michał Modzelewski + Mihai Damian + Mihai Preda + Mikaël Barbero + Mike Axiak + Mike Grouchy + Mike Malone + Mike Richardson + Mike Wiacek + Mikhail Korobov + Mikko Hellsing + Mikołaj Siedlarek + milkomeda + Milton Waddams + mitakummaa@gmail.com + mmarshall + Moayad Mardini + Morgan Aubert + Moritz Sichert + Morten Bagai + msaelices + msundstr + Mushtaq Ali + Mykola Zamkovoi + Nadège Michel + Nagy Károly + Nasimul Haque + Nasir Hussain + Natalia Bidart + Nate Bragg + Nathan Gaberel + Neal Norwitz + Nebojša Dorđević + Ned Batchelder + Nena Kojadin + Niall Dalton + Niall Kelly + Nick Efford + Nick Lane + Nick Pope + Nick Presta + Nick Sandford + Nick Sarbicki + Niclas Olofsson + Nicola Larosa + Nicolas Lara + Nicolas Noé + Nikita Marchant + Nikita Sobolev + Nina Menezes + Niran Babalola + Nis Jørgensen + Nowell Strite + Nuno Mariz + Octavio Peri + oggie rob + oggy + Oguzhan Akan + Oliver Beattie + Oliver Rutherfurd + Olivier Le Thanh Duong + Olivier Sels + Olivier Tabone + Orestis Markou + Orne Brocaar + Oscar Ramirez + Ossama M. Khayat + Owen Griffiths + Ömer Faruk Abacı + Pablo Martín + Panos Laganakos + Paolo Melchiorre + Pascal Hartig + Pascal Varet + Patrik Sletmo + Paul Bissex + Paul Collier + Paul Collins + Paul Donohue + Paul Lanier + Paul McLanahan + Paul McMillan + Paulo Poiati + Paulo Scardine + Paul Smith + Pavel Kulikov + pavithran s + Pavlo Kapyshin + permonik@mesias.brnonet.cz + Petar Marić + Pete Crosier + peter@mymart.com + Peter Sheats + Peter van Kampen + Peter Zsoldos + Pete Shinners + Petr Marhoun + Petter Strandmark + pgross@thoughtworks.com + phaedo + phil.h.smith@gmail.com + Philip Lindborg + Philippe Raoult + phil@produxion.net + Piotr Jakimiak + Piotr Lewandowski + plisk + polpak@yahoo.com + pradeep.gowda@gmail.com + Prashant Pandey + Preston Holmes + Preston Timmons + Priyank Panchal + Priyansh Saxena + Przemysław Buczkowski + Przemysław Suliga + Qi Zhao + Rachel Tobin + Rachel Willmer + Radek Švarz + Rafael Giebisch + Raffaele Salmaso + Rahmat Faisal + Rajesh Dhawan + Ramez Ashraf + Ramil Yanbulatov + Ramin Farajpour Cami + Ramiro Morales + Ramon Saraiva + Ram Rachum + Randy Barlow + Raphaël Barrois + Raphael Michel + Raúl Cumplido + Rebecca Smith + Remco Wendt + Renaud Parent + Renbi Yu + Reza Mohammadi + rhettg@gmail.com + Ricardo Javier Cárdenes Medina + ricardojbarrios@gmail.com + Riccardo Di Virgilio + Riccardo Magliocchetti + Richard Davies + Richard House + Rick Wagner + Rigel Di Scala + Robert Coup + Robert Myers + Roberto Aguilar + Robert Rock Howard + Robert Wittams + Rob Golding-Day + Rob Hudson + Rob Nguyen + Robin Munn + Rodrigo Pinheiro Marques de Araújo + Rohith P R + Romain Garrigues + Ronnie van den Crommenacker + Ronny Haryanto + Ross Poulton + Roxane Bellot + Rozza + Rudolph Froger + Rudy Mutter + Rune Rønde Laursen + Russell Cloran + Russell Keith-Magee + Russ Webber + Ryan Hall + Ryan Heard + ryankanno + Ryan Kelly + Ryan Niemeyer + Ryan Petrello + Ryan Rubin + Ryno Mathee + Sachin Jat + Sage M. Abdullah + Sam Newman + Sander Dijkhuis + Sanket Saurav + Sanyam Khurana + Sarah Abderemane + Sarah Boyce + Sarthak Mehrish + schwank@gmail.com + Scot Hacker + Scott Barr + Scott Cranfill + Scott Fitsimones + Scott Pashley + scott@staplefish.com + Sean Brant + Sebastian Hillig + Sebastian Spiegel + Segyo Myung + Selwin Ong + Sengtha Chay + Senko Rašić + serbaut@gmail.com + Sergei Maertens + Sergey Fedoseev + Sergey Kolosov + Seth Hill + Shafiya Adzhani + Shai Berger + Shannon -jj Behrens + Shawn Milochik + Shreya Bamne + Silvan Spross + Simeon Visser + Simon Blanchard + Simon Charette + Simon Greenhill + Simon Litchfield + Simon Meers + Simon Williams + Simon Willison + Sjoerd Job Postmus + Slawek Mikula + sloonz + smurf@smurf.noris.de + sopel + Sreehari K V + Sridhar Marella + Srinivas Reddy Thatiparthy + Stanislas Guerra + Stanislaus Madueke + Stanislav Karpov + starrynight + Stefan R. Filipek + Stefane Fermgier + Stefano Rivera + Stéphane Raimbault + Stephan Jaekel + Stephen Burrows + Steven L. Smith (fvox13) + Steven Noorbergen (Xaroth) + Stuart Langridge + Subhav Gautam + Sujay S Kumar + Sune Kirkeby + Sung-Jin Hong + SuperJared + Susan Tan + Sutrisno Efendi + Swaroop C H + Szilveszter Farkas + Taavi Teska + Tai Lee + Takashi Matsuo + Tareque Hossain + Taylor Mitchell + tell-k + Terry Huang + thebjorn + Thejaswi Puthraya + Thijs van Dien + Thom Wiggers + Thomas Chaumeny + Thomas Güttler + Thomas Kerpe + Thomas Sorrel + Thomas Steinacher + Thomas Stromberg + Thomas Tanner + tibimicu@gmx.net + Ties Jan Hefting + Tim Allen + Tim Givois + Tim Graham + Tim Heap + Tim McCurrach + Tim Saylor + Toan Vuong + Tobias Kunze + Tobias McNulty + tobias@neuyork.de + Todd O'Bryan + Tom Carrick + Tom Christie + Tom Forbes + Tom Insam + Tom Tobin + Tom Wojcik + Tomáš Ehrlich + Tomáš Kopeček + Tome Cvitan + Tomek Paczkowski + Tomer Chachamu + Tommy Beadle + Tore Lundqvist + torne-django@wolfpuppy.org.uk + Travis Cline + Travis Pinney + Travis Swicegood + Travis Terry + Trevor Caira + Trey Long + tstromberg@google.com + tt@gurgle.no + Tyler Tarabula + Tyson Clugg + Tyson Tate + Unai Zalakain + Valentina Mukhamedzhanova + valtron + Vasiliy Stavenko + Vasil Vangelovski + Vibhu Agarwal + Victor Andrée + viestards.lists@gmail.com + Viktor Danyliuk + Viktor Grabov + Ville Säävuori + Vinay Karanam + Vinay Sajip + Vincent Foley + Vinny Do + Vitaly Babiy + Vitaliy Yelnik + Vladimir Kuzma + Vlado + Vsevolod Solovyov + Vytis Banaitis + wam-djangobug@wamber.net + Wang Chun + Warren Smith + Waylan Limberg + Wiktor Kołodziej + Wiley Kestner + Wiliam Alves de Souza + Will Ayd + William Schwartz + Will Hardy + Will Zhao + Wilson Miner + Wim Glenn + wojtek + Wu Haotian + Xavier Francisco + Xia Kai + Yann Fouillat + Yann Malet + Yash Jhunjhunwala + Yasushi Masuda + ye7cakf02@sneakemail.com + ymasuda@ethercube.com + Yoong Kang Lim + Yury V. Zaytsev + Yusuke Miyazaki + Yves Weissig + yyyyyyyan + Zac Hatfield-Dodds + Zachary Voase + Zach Liu + Zach Thompson + Zain Memon + Zain Patel + Zak Johnson + Žan Anderle + Zbigniew Siciarz + zegor + Zeynel Özdemir + Zlatko Mašek + zriv + + +A big THANK YOU goes to: + + Rob Curley and Ralph Gage for letting us open-source Django. + + Frank Wiles for making excellent arguments for open-sourcing, and for + his sage sysadmin advice. + + Ian Bicking for convincing Adrian to ditch code generation. + + Mark Pilgrim for "Dive Into Python" (https://diveintopython3.net/). + + Guido van Rossum for creating Python. diff --git a/venv/lib/python3.12/site-packages/Django-5.1.dist-info/INSTALLER b/venv/lib/python3.12/site-packages/Django-5.1.dist-info/INSTALLER new file mode 100644 index 0000000000..a1b589e38a --- /dev/null +++ b/venv/lib/python3.12/site-packages/Django-5.1.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/venv/lib/python3.12/site-packages/Django-5.1.dist-info/LICENSE b/venv/lib/python3.12/site-packages/Django-5.1.dist-info/LICENSE new file mode 100644 index 0000000000..5f4f225dd2 --- /dev/null +++ b/venv/lib/python3.12/site-packages/Django-5.1.dist-info/LICENSE @@ -0,0 +1,27 @@ +Copyright (c) Django Software Foundation and individual contributors. +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + 3. Neither the name of Django nor the names of its contributors may be used + to endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/venv/lib/python3.12/site-packages/Django-5.1.dist-info/LICENSE.python b/venv/lib/python3.12/site-packages/Django-5.1.dist-info/LICENSE.python new file mode 100644 index 0000000000..9f995bf7bf --- /dev/null +++ b/venv/lib/python3.12/site-packages/Django-5.1.dist-info/LICENSE.python @@ -0,0 +1,288 @@ +Django is licensed under the three-clause BSD license; see the file +LICENSE for details. + +Django includes code from the Python standard library, which is licensed under +the Python license, a permissive open source license. The copyright and license +is included below for compliance with Python's terms. + +---------------------------------------------------------------------- + +Copyright (c) 2001-present Python Software Foundation; All Rights Reserved + +A. HISTORY OF THE SOFTWARE +========================== + +Python was created in the early 1990s by Guido van Rossum at Stichting +Mathematisch Centrum (CWI, see https://www.cwi.nl) in the Netherlands +as a successor of a language called ABC. Guido remains Python's +principal author, although it includes many contributions from others. + +In 1995, Guido continued his work on Python at the Corporation for +National Research Initiatives (CNRI, see https://www.cnri.reston.va.us) +in Reston, Virginia where he released several versions of the +software. + +In May 2000, Guido and the Python core development team moved to +BeOpen.com to form the BeOpen PythonLabs team. In October of the same +year, the PythonLabs team moved to Digital Creations, which became +Zope Corporation. In 2001, the Python Software Foundation (PSF, see +https://www.python.org/psf/) was formed, a non-profit organization +created specifically to own Python-related Intellectual Property. +Zope Corporation was a sponsoring member of the PSF. + +All Python releases are Open Source (see https://opensource.org for +the Open Source Definition). Historically, most, but not all, Python +releases have also been GPL-compatible; the table below summarizes +the various releases. + + Release Derived Year Owner GPL- + from compatible? (1) + + 0.9.0 thru 1.2 1991-1995 CWI yes + 1.3 thru 1.5.2 1.2 1995-1999 CNRI yes + 1.6 1.5.2 2000 CNRI no + 2.0 1.6 2000 BeOpen.com no + 1.6.1 1.6 2001 CNRI yes (2) + 2.1 2.0+1.6.1 2001 PSF no + 2.0.1 2.0+1.6.1 2001 PSF yes + 2.1.1 2.1+2.0.1 2001 PSF yes + 2.1.2 2.1.1 2002 PSF yes + 2.1.3 2.1.2 2002 PSF yes + 2.2 and above 2.1.1 2001-now PSF yes + +Footnotes: + +(1) GPL-compatible doesn't mean that we're distributing Python under + the GPL. All Python licenses, unlike the GPL, let you distribute + a modified version without making your changes open source. The + GPL-compatible licenses make it possible to combine Python with + other software that is released under the GPL; the others don't. + +(2) According to Richard Stallman, 1.6.1 is not GPL-compatible, + because its license has a choice of law clause. According to + CNRI, however, Stallman's lawyer has told CNRI's lawyer that 1.6.1 + is "not incompatible" with the GPL. + +Thanks to the many outside volunteers who have worked under Guido's +direction to make these releases possible. + + +B. TERMS AND CONDITIONS FOR ACCESSING OR OTHERWISE USING PYTHON +=============================================================== + +Python software and documentation are licensed under the +Python Software Foundation License Version 2. + +Starting with Python 3.8.6, examples, recipes, and other code in +the documentation are dual licensed under the PSF License Version 2 +and the Zero-Clause BSD license. + +Some software incorporated into Python is under different licenses. +The licenses are listed with code falling under that license. + + +PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2 +-------------------------------------------- + +1. This LICENSE AGREEMENT is between the Python Software Foundation +("PSF"), and the Individual or Organization ("Licensee") accessing and +otherwise using this software ("Python") in source or binary form and +its associated documentation. + +2. Subject to the terms and conditions of this License Agreement, PSF hereby +grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce, +analyze, test, perform and/or display publicly, prepare derivative works, +distribute, and otherwise use Python alone or in any derivative version, +provided, however, that PSF's License Agreement and PSF's notice of copyright, +i.e., "Copyright (c) 2001-2024 Python Software Foundation; All Rights Reserved" +are retained in Python alone or in any derivative version prepared by Licensee. + +3. In the event Licensee prepares a derivative work that is based on +or incorporates Python or any part thereof, and wants to make +the derivative work available to others as provided herein, then +Licensee hereby agrees to include in any such work a brief summary of +the changes made to Python. + +4. PSF is making Python available to Licensee on an "AS IS" +basis. PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR +IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND +DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS +FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON WILL NOT +INFRINGE ANY THIRD PARTY RIGHTS. + +5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON +FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS +A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON, +OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. + +6. This License Agreement will automatically terminate upon a material +breach of its terms and conditions. + +7. Nothing in this License Agreement shall be deemed to create any +relationship of agency, partnership, or joint venture between PSF and +Licensee. This License Agreement does not grant permission to use PSF +trademarks or trade name in a trademark sense to endorse or promote +products or services of Licensee, or any third party. + +8. By copying, installing or otherwise using Python, Licensee +agrees to be bound by the terms and conditions of this License +Agreement. + + +BEOPEN.COM LICENSE AGREEMENT FOR PYTHON 2.0 +------------------------------------------- + +BEOPEN PYTHON OPEN SOURCE LICENSE AGREEMENT VERSION 1 + +1. This LICENSE AGREEMENT is between BeOpen.com ("BeOpen"), having an +office at 160 Saratoga Avenue, Santa Clara, CA 95051, and the +Individual or Organization ("Licensee") accessing and otherwise using +this software in source or binary form and its associated +documentation ("the Software"). + +2. Subject to the terms and conditions of this BeOpen Python License +Agreement, BeOpen hereby grants Licensee a non-exclusive, +royalty-free, world-wide license to reproduce, analyze, test, perform +and/or display publicly, prepare derivative works, distribute, and +otherwise use the Software alone or in any derivative version, +provided, however, that the BeOpen Python License is retained in the +Software, alone or in any derivative version prepared by Licensee. + +3. BeOpen is making the Software available to Licensee on an "AS IS" +basis. BEOPEN MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR +IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, BEOPEN MAKES NO AND +DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS +FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE WILL NOT +INFRINGE ANY THIRD PARTY RIGHTS. + +4. BEOPEN SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF THE +SOFTWARE FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS +AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THE SOFTWARE, OR ANY +DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. + +5. This License Agreement will automatically terminate upon a material +breach of its terms and conditions. + +6. This License Agreement shall be governed by and interpreted in all +respects by the law of the State of California, excluding conflict of +law provisions. Nothing in this License Agreement shall be deemed to +create any relationship of agency, partnership, or joint venture +between BeOpen and Licensee. This License Agreement does not grant +permission to use BeOpen trademarks or trade names in a trademark +sense to endorse or promote products or services of Licensee, or any +third party. As an exception, the "BeOpen Python" logos available at +http://www.pythonlabs.com/logos.html may be used according to the +permissions granted on that web page. + +7. By copying, installing or otherwise using the software, Licensee +agrees to be bound by the terms and conditions of this License +Agreement. + + +CNRI LICENSE AGREEMENT FOR PYTHON 1.6.1 +--------------------------------------- + +1. This LICENSE AGREEMENT is between the Corporation for National +Research Initiatives, having an office at 1895 Preston White Drive, +Reston, VA 20191 ("CNRI"), and the Individual or Organization +("Licensee") accessing and otherwise using Python 1.6.1 software in +source or binary form and its associated documentation. + +2. Subject to the terms and conditions of this License Agreement, CNRI +hereby grants Licensee a nonexclusive, royalty-free, world-wide +license to reproduce, analyze, test, perform and/or display publicly, +prepare derivative works, distribute, and otherwise use Python 1.6.1 +alone or in any derivative version, provided, however, that CNRI's +License Agreement and CNRI's notice of copyright, i.e., "Copyright (c) +1995-2001 Corporation for National Research Initiatives; All Rights +Reserved" are retained in Python 1.6.1 alone or in any derivative +version prepared by Licensee. Alternately, in lieu of CNRI's License +Agreement, Licensee may substitute the following text (omitting the +quotes): "Python 1.6.1 is made available subject to the terms and +conditions in CNRI's License Agreement. This Agreement together with +Python 1.6.1 may be located on the internet using the following +unique, persistent identifier (known as a handle): 1895.22/1013. This +Agreement may also be obtained from a proxy server on the internet +using the following URL: http://hdl.handle.net/1895.22/1013". + +3. In the event Licensee prepares a derivative work that is based on +or incorporates Python 1.6.1 or any part thereof, and wants to make +the derivative work available to others as provided herein, then +Licensee hereby agrees to include in any such work a brief summary of +the changes made to Python 1.6.1. + +4. CNRI is making Python 1.6.1 available to Licensee on an "AS IS" +basis. CNRI MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR +IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, CNRI MAKES NO AND +DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS +FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON 1.6.1 WILL NOT +INFRINGE ANY THIRD PARTY RIGHTS. + +5. CNRI SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON +1.6.1 FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS +A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON 1.6.1, +OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. + +6. This License Agreement will automatically terminate upon a material +breach of its terms and conditions. + +7. This License Agreement shall be governed by the federal +intellectual property law of the United States, including without +limitation the federal copyright law, and, to the extent such +U.S. federal law does not apply, by the law of the Commonwealth of +Virginia, excluding Virginia's conflict of law provisions. +Notwithstanding the foregoing, with regard to derivative works based +on Python 1.6.1 that incorporate non-separable material that was +previously distributed under the GNU General Public License (GPL), the +law of the Commonwealth of Virginia shall govern this License +Agreement only as to issues arising under or with respect to +Paragraphs 4, 5, and 7 of this License Agreement. Nothing in this +License Agreement shall be deemed to create any relationship of +agency, partnership, or joint venture between CNRI and Licensee. This +License Agreement does not grant permission to use CNRI trademarks or +trade name in a trademark sense to endorse or promote products or +services of Licensee, or any third party. + +8. By clicking on the "ACCEPT" button where indicated, or by copying, +installing or otherwise using Python 1.6.1, Licensee agrees to be +bound by the terms and conditions of this License Agreement. + + ACCEPT + + +CWI LICENSE AGREEMENT FOR PYTHON 0.9.0 THROUGH 1.2 +-------------------------------------------------- + +Copyright (c) 1991 - 1995, Stichting Mathematisch Centrum Amsterdam, +The Netherlands. All rights reserved. + +Permission to use, copy, modify, and distribute this software and its +documentation for any purpose and without fee is hereby granted, +provided that the above copyright notice appear in all copies and that +both that copyright notice and this permission notice appear in +supporting documentation, and that the name of Stichting Mathematisch +Centrum or CWI not be used in advertising or publicity pertaining to +distribution of the software without specific, written prior +permission. + +STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO +THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE +FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT +OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +ZERO-CLAUSE BSD LICENSE FOR CODE IN THE PYTHON DOCUMENTATION +---------------------------------------------------------------------- + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. diff --git a/venv/lib/python3.12/site-packages/Django-5.1.dist-info/METADATA b/venv/lib/python3.12/site-packages/Django-5.1.dist-info/METADATA new file mode 100644 index 0000000000..65488accc5 --- /dev/null +++ b/venv/lib/python3.12/site-packages/Django-5.1.dist-info/METADATA @@ -0,0 +1,100 @@ +Metadata-Version: 2.1 +Name: Django +Version: 5.1 +Summary: A high-level Python web framework that encourages rapid development and clean, pragmatic design. +Author-email: Django Software Foundation +License: BSD-3-Clause +Project-URL: Homepage, https://www.djangoproject.com/ +Project-URL: Documentation, https://docs.djangoproject.com/ +Project-URL: Release notes, https://docs.djangoproject.com/en/stable/releases/ +Project-URL: Funding, https://www.djangoproject.com/fundraising/ +Project-URL: Source, https://github.com/django/django +Project-URL: Tracker, https://code.djangoproject.com/ +Classifier: Development Status :: 5 - Production/Stable +Classifier: Environment :: Web Environment +Classifier: Framework :: Django +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: BSD License +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3 :: Only +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 +Classifier: Topic :: Internet :: WWW/HTTP +Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content +Classifier: Topic :: Internet :: WWW/HTTP :: WSGI +Classifier: Topic :: Software Development :: Libraries :: Application Frameworks +Classifier: Topic :: Software Development :: Libraries :: Python Modules +Requires-Python: >=3.10 +Description-Content-Type: text/x-rst +License-File: LICENSE +License-File: LICENSE.python +License-File: AUTHORS +Requires-Dist: asgiref<4,>=3.8.1 +Requires-Dist: sqlparse>=0.3.1 +Requires-Dist: tzdata; sys_platform == "win32" +Provides-Extra: argon2 +Requires-Dist: argon2-cffi>=19.1.0; extra == "argon2" +Provides-Extra: bcrypt +Requires-Dist: bcrypt; extra == "bcrypt" + +====== +Django +====== + +Django is a high-level Python web framework that encourages rapid development +and clean, pragmatic design. Thanks for checking it out. + +All documentation is in the "``docs``" directory and online at +https://docs.djangoproject.com/en/stable/. If you're just getting started, +here's how we recommend you read the docs: + +* First, read ``docs/intro/install.txt`` for instructions on installing Django. + +* Next, work through the tutorials in order (``docs/intro/tutorial01.txt``, + ``docs/intro/tutorial02.txt``, etc.). + +* If you want to set up an actual deployment server, read + ``docs/howto/deployment/index.txt`` for instructions. + +* You'll probably want to read through the topical guides (in ``docs/topics``) + next; from there you can jump to the HOWTOs (in ``docs/howto``) for specific + problems, and check out the reference (``docs/ref``) for gory details. + +* See ``docs/README`` for instructions on building an HTML version of the docs. + +Docs are updated rigorously. If you find any problems in the docs, or think +they should be clarified in any way, please take 30 seconds to fill out a +ticket here: https://code.djangoproject.com/newticket + +To get more help: + +* Join the ``#django`` channel on ``irc.libera.chat``. Lots of helpful people + hang out there. `Webchat is available `_. + +* Join the django-users mailing list, or read the archives, at + https://groups.google.com/group/django-users. + +* Join the `Django Discord community `_. + +* Join the community on the `Django Forum `_. + +To contribute to Django: + +* Check out https://docs.djangoproject.com/en/dev/internals/contributing/ for + information about getting involved. + +To run Django's test suite: + +* Follow the instructions in the "Unit tests" section of + ``docs/internals/contributing/writing-code/unit-tests.txt``, published online at + https://docs.djangoproject.com/en/dev/internals/contributing/writing-code/unit-tests/#running-the-unit-tests + +Supporting the Development of Django +==================================== + +Django's development depends on your contributions. + +If you depend on Django, remember to support the Django Software Foundation: https://www.djangoproject.com/fundraising/ diff --git a/venv/lib/python3.12/site-packages/Django-5.1.dist-info/RECORD b/venv/lib/python3.12/site-packages/Django-5.1.dist-info/RECORD new file mode 100644 index 0000000000..a5c8ff8c4c --- /dev/null +++ b/venv/lib/python3.12/site-packages/Django-5.1.dist-info/RECORD @@ -0,0 +1,4538 @@ +../../../bin/django-admin,sha256=iLwFLO3lCNDDgWxHylMMD22Z_9vnFVSx2ABsNx-2N1o,297 +Django-5.1.dist-info/AUTHORS,sha256=PRqRG0Fm9_wNJAoFDQo51gEVArm104sUEQB5GRGBSxw,43110 +Django-5.1.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +Django-5.1.dist-info/LICENSE,sha256=uEZBXRtRTpwd_xSiLeuQbXlLxUbKYSn5UKGM0JHipmk,1552 +Django-5.1.dist-info/LICENSE.python,sha256=ktIAtrhtqXpPighr74DsWGJ6aCryy_ks3CvX6ekGLlE,14261 +Django-5.1.dist-info/METADATA,sha256=yLI_Md8vzaMXSCF_JAacVk5Or_IpmnB8NV0lnWk7rFU,4165 +Django-5.1.dist-info/RECORD,, +Django-5.1.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +Django-5.1.dist-info/WHEEL,sha256=eOLhNAGa2EW3wWl_TU484h7q1UNgy0JXjjoqKoxAAQc,92 +Django-5.1.dist-info/entry_points.txt,sha256=hi1U04jQDqr9xaV6Gklnqh-d69jiCZdS73E0l_671L4,82 +Django-5.1.dist-info/top_level.txt,sha256=V_goijg9tfO20ox_7os6CcnPvmBavbxu46LpJiNLwjA,7 +django/__init__.py,sha256=z3FTSg1FCsRGzNOOFR8zYYEZSCnP6XCOd76RuaTD4ks,799 +django/__main__.py,sha256=XO-CRvbZFCKtIvAT6Jvbn32dWnv2pnNszRVS-1nKX0I,212 +django/__pycache__/__init__.cpython-312.pyc,, +django/__pycache__/__main__.cpython-312.pyc,, +django/__pycache__/shortcuts.cpython-312.pyc,, +django/apps/__init__.py,sha256=8WZTI_JnNuP4tyfuimH3_pKQYbDAy2haq-xkQT1UXkc,90 +django/apps/__pycache__/__init__.cpython-312.pyc,, +django/apps/__pycache__/config.cpython-312.pyc,, +django/apps/__pycache__/registry.cpython-312.pyc,, +django/apps/config.py,sha256=1Zhxt4OrwRnOmsT_B_BurImz3oi8330TJG0rRRJ58bQ,11482 +django/apps/registry.py,sha256=rdexON5JuhKAMWAZv4k2DH0fRSKdPZoi6_tTjOUgFRA,17693 +django/conf/__init__.py,sha256=z-39ierCs_8FYomobh9PWESoZI5RJ-TgzEuew8B9kJM,9809 +django/conf/__pycache__/__init__.cpython-312.pyc,, +django/conf/__pycache__/global_settings.cpython-312.pyc,, +django/conf/app_template/__init__.py-tpl,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/conf/app_template/admin.py-tpl,sha256=suMo4x8I3JBxAFBVIdE-5qnqZ6JAZV0FESABHOSc-vg,63 +django/conf/app_template/apps.py-tpl,sha256=jrRjsh9lSkUvV4NnKdlAhLDtvydwBNjite0w2J9WPtI,171 +django/conf/app_template/migrations/__init__.py-tpl,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/conf/app_template/models.py-tpl,sha256=Vjc0p2XbAPgE6HyTF6vll98A4eDhA5AvaQqsc4kQ9AQ,57 +django/conf/app_template/tests.py-tpl,sha256=mrbGGRNg5jwbTJtWWa7zSKdDyeB4vmgZCRc2nk6VY-g,60 +django/conf/app_template/views.py-tpl,sha256=xc1IQHrsij7j33TUbo-_oewy3vs03pw_etpBWaMYJl0,63 +django/conf/global_settings.py,sha256=UaMjYpMCgVGN3h2uxsLYnxk5t7hXfvq5650ctiy-BWM,22889 +django/conf/locale/__init__.py,sha256=QHDK8QIAcRjGMtWL8QVgYA_6psetuZuWBJkPwumTeI8,13864 +django/conf/locale/__pycache__/__init__.cpython-312.pyc,, +django/conf/locale/af/LC_MESSAGES/django.mo,sha256=xpMB1OGspYCduAEidr_EPfAJon5f1JrF_WCQFokkoBo,27068 +django/conf/locale/af/LC_MESSAGES/django.po,sha256=sQd5MkwXD8R2o28JFbnp4pIwqvz_thflWmBo9a_4QjY,29915 +django/conf/locale/ar/LC_MESSAGES/django.mo,sha256=qBaEPhfJxd2mK1uPH7J06hPI3_leRPsWkVgcKtJSAvQ,35688 +django/conf/locale/ar/LC_MESSAGES/django.po,sha256=MQeB4q0H-uDLurniJP5b2SBOTETAUl9k9NHxtaw0nnU,38892 +django/conf/locale/ar/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/conf/locale/ar/__pycache__/__init__.cpython-312.pyc,, +django/conf/locale/ar/__pycache__/formats.cpython-312.pyc,, +django/conf/locale/ar/formats.py,sha256=EI9DAiGt1avNY-a6luMnAqKISKGHXHiKE4QLRx7wGHU,696 +django/conf/locale/ar_DZ/LC_MESSAGES/django.mo,sha256=QosXYYYvQjGu13pLrC9LIVwUQXVwdJpIYn7RB9QCJY8,33960 +django/conf/locale/ar_DZ/LC_MESSAGES/django.po,sha256=2iT_sY4XedSSiHagu03OgpYXWNJVaKDwKUfxgEN4k3k,37626 +django/conf/locale/ar_DZ/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/conf/locale/ar_DZ/__pycache__/__init__.cpython-312.pyc,, +django/conf/locale/ar_DZ/__pycache__/formats.cpython-312.pyc,, +django/conf/locale/ar_DZ/formats.py,sha256=T84q3oMKng-L7_xymPqYwpzs78LvvfHy2drfSRj8XjE,901 +django/conf/locale/ast/LC_MESSAGES/django.mo,sha256=XSStt50HP-49AJ8wFcnbn55SLncJCsS2lx_4UwK-h-8,15579 +django/conf/locale/ast/LC_MESSAGES/django.po,sha256=7qZUb5JjfrWLqtXPRjpNOMNycbcsEYpNO-oYmazLTk4,23675 +django/conf/locale/az/LC_MESSAGES/django.mo,sha256=EJI2hYCCFFJb0YhaS7b5LrHOG6TGT_lJSOYQ2K7VAbY,28595 +django/conf/locale/az/LC_MESSAGES/django.po,sha256=44nzF7PPC0Ax1QI-PSpwvAGyyKQBwoLyZKJlPfJ9vfw,30893 +django/conf/locale/az/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/conf/locale/az/__pycache__/__init__.cpython-312.pyc,, +django/conf/locale/az/__pycache__/formats.cpython-312.pyc,, +django/conf/locale/az/formats.py,sha256=JQoS2AYHKJxiH6TJas1MoeYgTeUv5XcNtYUHF7ulDmw,1087 +django/conf/locale/be/LC_MESSAGES/django.mo,sha256=rcdijOhkdSXs8BoQZN5jQDB-pkWYlgWF3m5VfJjCssI,37554 +django/conf/locale/be/LC_MESSAGES/django.po,sha256=7h7Z5qvjhD3BYgmbF1G7-Z2I70t1figiFlvMAz6twA4,40172 +django/conf/locale/bg/LC_MESSAGES/django.mo,sha256=x22bBhceDhNZXSoXiTKnc7w_HvtmW3EfWrZgsomUv6A,34729 +django/conf/locale/bg/LC_MESSAGES/django.po,sha256=xTU8GIhvPPuU7K4G8lZq8FXFsWiloT2u-118KtxkxBc,37283 +django/conf/locale/bg/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/conf/locale/bg/__pycache__/__init__.cpython-312.pyc,, +django/conf/locale/bg/__pycache__/formats.cpython-312.pyc,, +django/conf/locale/bg/formats.py,sha256=LC7P_5yjdGgsxLQ_GDtC8H2bz9NTxUze_CAtzlm37TA,705 +django/conf/locale/bn/LC_MESSAGES/django.mo,sha256=sB0RIFrGS11Z8dx5829oOFw55vuO4vty3W4oVzIEe8Q,16660 +django/conf/locale/bn/LC_MESSAGES/django.po,sha256=rF9vML3LDOqXkmK6R_VF3tQaFEoZI7besJAPx5qHNM0,26877 +django/conf/locale/bn/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/conf/locale/bn/__pycache__/__init__.cpython-312.pyc,, +django/conf/locale/bn/__pycache__/formats.cpython-312.pyc,, +django/conf/locale/bn/formats.py,sha256=jynhZ9XNNuxTXeF7f2FrJYYZuFwlLY58fGfQ6gVs7s8,964 +django/conf/locale/br/LC_MESSAGES/django.mo,sha256=Xow2-sd55CZJsvfF8axtxXNRe27EDwxKixCGelVQ4aU,14009 +django/conf/locale/br/LC_MESSAGES/django.po,sha256=ODCUDdEDAvsOVOAr49YiWT2YQaBZmc-38brdgYWc8Bs,24293 +django/conf/locale/bs/LC_MESSAGES/django.mo,sha256=Xa5QAbsHIdLkyG4nhLCD4UHdCngrw5Oh120abCNdWlA,10824 +django/conf/locale/bs/LC_MESSAGES/django.po,sha256=IB-2VvrQKUivAMLMpQo1LGRAxw3kj-7kB6ckPai0fug,22070 +django/conf/locale/bs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/conf/locale/bs/__pycache__/__init__.cpython-312.pyc,, +django/conf/locale/bs/__pycache__/formats.cpython-312.pyc,, +django/conf/locale/bs/formats.py,sha256=760m-h4OHpij6p_BAD2dr3nsWaTb6oR1Y5culX9Gxqw,705 +django/conf/locale/ca/LC_MESSAGES/django.mo,sha256=v6lEJTUbXyEUBsctIdNFOg-Ck5MVFbuz-JgjqkUe32c,27707 +django/conf/locale/ca/LC_MESSAGES/django.po,sha256=16M-EtYLbfKnquh-IPRjWxTdHAqtisDc46Dzo5n-ZMc,30320 +django/conf/locale/ca/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/conf/locale/ca/__pycache__/__init__.cpython-312.pyc,, +django/conf/locale/ca/__pycache__/formats.cpython-312.pyc,, +django/conf/locale/ca/formats.py,sha256=s7N6Ns3yIqr_KDhatnUvfjbPhUbrhvemB5HtCeodGZo,940 +django/conf/locale/ckb/LC_MESSAGES/django.mo,sha256=-Wk2cPQA7s-zQQKuzxnrQ18w-9LnAOfT3Ji5htLgbqI,34015 +django/conf/locale/ckb/LC_MESSAGES/django.po,sha256=OlbnQh93KtkGZ0yQKi8_r-BQQceL5EvAiB30f3Z84Vw,36195 +django/conf/locale/ckb/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/conf/locale/ckb/__pycache__/__init__.cpython-312.pyc,, +django/conf/locale/ckb/__pycache__/formats.cpython-312.pyc,, +django/conf/locale/ckb/formats.py,sha256=EbmQC-dyQl8EqVQOVGwy1Ra5-P1n-J3UF4K55p3VzOM,728 +django/conf/locale/cs/LC_MESSAGES/django.mo,sha256=z8TcGqBp91REABKRFu2Iv6Mfn7B9Xn0RrJpds3x5gA8,29060 +django/conf/locale/cs/LC_MESSAGES/django.po,sha256=pCdIvV7JEvQTgSBexXu7hHX-57IbJjDw3Q9Ub24Q3tw,32110 +django/conf/locale/cs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/conf/locale/cs/__pycache__/__init__.cpython-312.pyc,, +django/conf/locale/cs/__pycache__/formats.cpython-312.pyc,, +django/conf/locale/cs/formats.py,sha256=3MA70CW0wfr0AIYvYqE0ACmX79tNOx-ZdlR6Aetp9e8,1539 +django/conf/locale/cy/LC_MESSAGES/django.mo,sha256=s7mf895rsoiqrPrXpyWg2k85rN8umYB2aTExWMTux7s,18319 +django/conf/locale/cy/LC_MESSAGES/django.po,sha256=S-1PVWWVgYmugHoYUlmTFAzKCpI81n9MIAhkETbpUoo,25758 +django/conf/locale/cy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/conf/locale/cy/__pycache__/__init__.cpython-312.pyc,, +django/conf/locale/cy/__pycache__/formats.cpython-312.pyc,, +django/conf/locale/cy/formats.py,sha256=NY1pYPfpu7XjLMCCuJk5ggdpLcufV1h101ojyxfPUrY,1355 +django/conf/locale/da/LC_MESSAGES/django.mo,sha256=V5XqSSfkF19P9QbNWPVlF-x3_3di8YohxNlbCRyyeG4,27799 +django/conf/locale/da/LC_MESSAGES/django.po,sha256=8Wkt220nr-BgTKMXzFK_y4o6v8wrz4mof_sI30vJlVs,30236 +django/conf/locale/da/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/conf/locale/da/__pycache__/__init__.cpython-312.pyc,, +django/conf/locale/da/__pycache__/formats.cpython-312.pyc,, +django/conf/locale/da/formats.py,sha256=-y3033Fo7COyY0NbxeJVYGFybrnLbgXtRf1yBGlouys,876 +django/conf/locale/de/LC_MESSAGES/django.mo,sha256=-J6VqvJeSF8tk4rjb1aI5MSWwyV372EPzwI3O18vecE,29167 +django/conf/locale/de/LC_MESSAGES/django.po,sha256=RZMqmCY1nUVapY7ryTBN3vFNlEsuhw8mQC7b5M6IV9c,31680 +django/conf/locale/de/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/conf/locale/de/__pycache__/__init__.cpython-312.pyc,, +django/conf/locale/de/__pycache__/formats.cpython-312.pyc,, +django/conf/locale/de/formats.py,sha256=fysX8z5TkbPUWAngoy_sMeFGWp2iaNU6ftkBz8cqplg,996 +django/conf/locale/de_CH/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/conf/locale/de_CH/__pycache__/__init__.cpython-312.pyc,, +django/conf/locale/de_CH/__pycache__/formats.cpython-312.pyc,, +django/conf/locale/de_CH/formats.py,sha256=22UDF62ESuU0Jp_iNUqAj-Bhq4_-frpji0-ynBdHXYk,1377 +django/conf/locale/dsb/LC_MESSAGES/django.mo,sha256=7BR6XmSw2M21d2CY3RfmGo0KeUTLafSan93svc-uVEs,30694 +django/conf/locale/dsb/LC_MESSAGES/django.po,sha256=CuTAlu-Mq1Y9hZQc46U--wdxW3H88__UULc8HlINXh4,33213 +django/conf/locale/el/LC_MESSAGES/django.mo,sha256=P5lTOPFcl9x6_j69ZN3hM_mQbhW7Fbbx02RtTNJwfS0,33648 +django/conf/locale/el/LC_MESSAGES/django.po,sha256=rZCComPQcSSr8ZDLPgtz958uBeBZsmV_gEP-sW88kRA,37123 +django/conf/locale/el/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/conf/locale/el/__pycache__/__init__.cpython-312.pyc,, +django/conf/locale/el/__pycache__/formats.cpython-312.pyc,, +django/conf/locale/el/formats.py,sha256=RON2aqQaQK3DYVF_wGlBQJDHrhANxypcUW_udYKI-ro,1241 +django/conf/locale/en/LC_MESSAGES/django.mo,sha256=mVpSj1AoAdDdW3zPZIg5ZDsDbkSUQUMACg_BbWHGFig,356 +django/conf/locale/en/LC_MESSAGES/django.po,sha256=5rdKpzn7YKtjU3sGEHcCGPD9j0c907Xo9k_noqnTglo,30401 +django/conf/locale/en/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/conf/locale/en/__pycache__/__init__.cpython-312.pyc,, +django/conf/locale/en/__pycache__/formats.cpython-312.pyc,, +django/conf/locale/en/formats.py,sha256=VTQUhaZ_WFhS5rQj0PxbnoMySK0nzUSqrd6Gx-DtXxI,2438 +django/conf/locale/en_AU/LC_MESSAGES/django.mo,sha256=SntsKx21R2zdjj0D73BkOXGTDnoN5unsLMJ3y06nONM,25633 +django/conf/locale/en_AU/LC_MESSAGES/django.po,sha256=6Qh4Z6REzhUdG5KwNPNK9xgLlgq3VbAJuoSXyd_eHdE,28270 +django/conf/locale/en_AU/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/conf/locale/en_AU/__pycache__/__init__.cpython-312.pyc,, +django/conf/locale/en_AU/__pycache__/formats.cpython-312.pyc,, +django/conf/locale/en_AU/formats.py,sha256=BoI5UviKGZ4TccqLmxpcdMf0Yk1YiEhY_iLQUddjvi0,1650 +django/conf/locale/en_CA/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/conf/locale/en_CA/__pycache__/__init__.cpython-312.pyc,, +django/conf/locale/en_CA/__pycache__/formats.cpython-312.pyc,, +django/conf/locale/en_CA/formats.py,sha256=joB2Dy7XYhlii_PBJfuzHNLbOPmRXW2JjYkmxFr6KxI,1166 +django/conf/locale/en_GB/LC_MESSAGES/django.mo,sha256=jSIe44HYGfzQlPtUZ8tWK2vCYM9GqCKs-CxLURn4e1o,12108 +django/conf/locale/en_GB/LC_MESSAGES/django.po,sha256=PTXvOpkxgZFRoyiqftEAuMrFcYRLfLDd6w0K8crN8j4,22140 +django/conf/locale/en_GB/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/conf/locale/en_GB/__pycache__/__init__.cpython-312.pyc,, +django/conf/locale/en_GB/__pycache__/formats.cpython-312.pyc,, +django/conf/locale/en_GB/formats.py,sha256=cJN8YNthkIOHCIMnwiTaSZ6RCwgSHkjWYMcfw8VFScE,1650 +django/conf/locale/en_IE/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/conf/locale/en_IE/__pycache__/__init__.cpython-312.pyc,, +django/conf/locale/en_IE/__pycache__/formats.cpython-312.pyc,, +django/conf/locale/en_IE/formats.py,sha256=aKEIT96Y6tzbGHFu3qsFzFc4Qw_uzhNjB69GpmP6qX8,1484 +django/conf/locale/eo/LC_MESSAGES/django.mo,sha256=TPgHTDrh1amnOQjA7sY-lQvicdFewMutOfoptV3OKkU,27676 +django/conf/locale/eo/LC_MESSAGES/django.po,sha256=IPo-3crOWkp5dDQPDAFSzgCbf9OHjWB1zE3mklhTexk,30235 +django/conf/locale/eo/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/conf/locale/eo/__pycache__/__init__.cpython-312.pyc,, +django/conf/locale/eo/__pycache__/formats.cpython-312.pyc,, +django/conf/locale/eo/formats.py,sha256=zIEAk-SiLX0cvQVmRc3LpmV69jwRrejMMdC7vtVsSh0,1715 +django/conf/locale/es/LC_MESSAGES/django.mo,sha256=obYxux5pMwwbgMs6c_I5T-3CR7e_07d0h-JwmzwsKWU,29265 +django/conf/locale/es/LC_MESSAGES/django.po,sha256=77fpBrwtaZ3nvcXyLrf5k4Psq22dHuN0iR7OPn0MUTs,33344 +django/conf/locale/es/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/conf/locale/es/__pycache__/__init__.cpython-312.pyc,, +django/conf/locale/es/__pycache__/formats.cpython-312.pyc,, +django/conf/locale/es/formats.py,sha256=7SusO1dPErY68h5g4lpxvPbsJYdrbTcr_0EX7uDKYNo,978 +django/conf/locale/es_AR/LC_MESSAGES/django.mo,sha256=lP1VV3EXv4C7ogFFN1Iit8U8tm3Npui-Vv3SKyXa_n0,29643 +django/conf/locale/es_AR/LC_MESSAGES/django.po,sha256=n0FvSWY9XordnLSFr5JjLs7TqFYTnPtPriyzd0lknwQ,32057 +django/conf/locale/es_AR/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/conf/locale/es_AR/__pycache__/__init__.cpython-312.pyc,, +django/conf/locale/es_AR/__pycache__/formats.cpython-312.pyc,, +django/conf/locale/es_AR/formats.py,sha256=4qgOJoR2K5ZE-pA2-aYRwFW7AbK-M9F9u3zVwgebr2w,935 +django/conf/locale/es_CO/LC_MESSAGES/django.mo,sha256=ehUwvqz9InObH3fGnOLuBwivRTVMJriZmJzXcJHsfjc,18079 +django/conf/locale/es_CO/LC_MESSAGES/django.po,sha256=XRgn56QENxEixlyix3v4ZSTSjo4vn8fze8smkrv_gc4,25107 +django/conf/locale/es_CO/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/conf/locale/es_CO/__pycache__/__init__.cpython-312.pyc,, +django/conf/locale/es_CO/__pycache__/formats.cpython-312.pyc,, +django/conf/locale/es_CO/formats.py,sha256=0uAbBvOkdJZKjvhrrd0htScdO7sTgbofOkkC8A35_a8,691 +django/conf/locale/es_MX/LC_MESSAGES/django.mo,sha256=UkpQJeGOs_JQRmpRiU6kQmmYGL_tizL4JQOWb9i35M4,18501 +django/conf/locale/es_MX/LC_MESSAGES/django.po,sha256=M0O6o1f3V-EIY9meS3fXP_c7t144rXWZuERF5XeG5Uo,25870 +django/conf/locale/es_MX/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/conf/locale/es_MX/__pycache__/__init__.cpython-312.pyc,, +django/conf/locale/es_MX/__pycache__/formats.cpython-312.pyc,, +django/conf/locale/es_MX/formats.py,sha256=fBvyAqBcAXARptSE3hxwzFYNx3lEE8QrhNrCWuuGNlA,768 +django/conf/locale/es_NI/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/conf/locale/es_NI/__pycache__/__init__.cpython-312.pyc,, +django/conf/locale/es_NI/__pycache__/formats.cpython-312.pyc,, +django/conf/locale/es_NI/formats.py,sha256=UiOadPoMrNt0iTp8jZVq65xR_4LkOwp-fjvFb8MyNVg,711 +django/conf/locale/es_PR/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/conf/locale/es_PR/__pycache__/__init__.cpython-312.pyc,, +django/conf/locale/es_PR/__pycache__/formats.cpython-312.pyc,, +django/conf/locale/es_PR/formats.py,sha256=VVTlwyekX80zCKlg1P4jhaAdKNpN5I64pW_xgrhpyVs,675 +django/conf/locale/es_VE/LC_MESSAGES/django.mo,sha256=h-h1D_Kr-LI_DyUJuIG4Zbu1HcLWTM1s5X515EYLXO8,18840 +django/conf/locale/es_VE/LC_MESSAGES/django.po,sha256=Xj38imu4Yw-Mugwge5CqAqWlcnRWnAKpVBPuL06Twjs,25494 +django/conf/locale/et/LC_MESSAGES/django.mo,sha256=G4JFXVc99Y4GDRrqMb6LRH4Iprg_EmEYMZFW6zSwKBk,27273 +django/conf/locale/et/LC_MESSAGES/django.po,sha256=Hi-kAoqksNbFYkGda0_kphd34Oy9Ti78-oPBiYpV1lg,30056 +django/conf/locale/et/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/conf/locale/et/__pycache__/__init__.cpython-312.pyc,, +django/conf/locale/et/__pycache__/formats.cpython-312.pyc,, +django/conf/locale/et/formats.py,sha256=DyFSZVuGSYGoImrRI2FodeM51OtvIcCkKzkI0KvYTQw,707 +django/conf/locale/eu/LC_MESSAGES/django.mo,sha256=EdncCA6Qp76DsqkyEYygaZFrnKRYzJ6LEucQqIjCsSM,21725 +django/conf/locale/eu/LC_MESSAGES/django.po,sha256=6T-yCAeg_8ntlqD_KJyjbqY0qgKPTwi3J46j0J6Ld1I,27752 +django/conf/locale/eu/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/conf/locale/eu/__pycache__/__init__.cpython-312.pyc,, +django/conf/locale/eu/__pycache__/formats.cpython-312.pyc,, +django/conf/locale/eu/formats.py,sha256=-PuRA6eHeXP8R3YV0aIEQRbk2LveaZk-_kjHlBT-Drg,749 +django/conf/locale/fa/LC_MESSAGES/django.mo,sha256=i9wWfM-zV76dkEoItqgfDniZ8qI66htM3cw48bBnvNg,31655 +django/conf/locale/fa/LC_MESSAGES/django.po,sha256=yry0L0s1KLG-NZ5T6rAAiQ1j7vhc3vXG24Knzn141eo,35114 +django/conf/locale/fa/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/conf/locale/fa/__pycache__/__init__.cpython-312.pyc,, +django/conf/locale/fa/__pycache__/formats.cpython-312.pyc,, +django/conf/locale/fa/formats.py,sha256=v0dLaIh6-CWCAQHkmX0PaIlA499gTeRcJEi7lVJzw9o,722 +django/conf/locale/fi/LC_MESSAGES/django.mo,sha256=_Co3hzTYSaAMnKp8sNnxlX73AtEfjdUaqK46fiV7LdA,27865 +django/conf/locale/fi/LC_MESSAGES/django.po,sha256=_vBbAfxE0j-qD8PKwyxalip51sRZpA1NRpDnQwsyzXY,30420 +django/conf/locale/fi/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/conf/locale/fi/__pycache__/__init__.cpython-312.pyc,, +django/conf/locale/fi/__pycache__/formats.cpython-312.pyc,, +django/conf/locale/fi/formats.py,sha256=CO_wD5ZBHwAVgjxArXktLCD7M-PPhtHbayX_bBKqhlA,1213 +django/conf/locale/fr/LC_MESSAGES/django.mo,sha256=MfdRiUoWLAZh1U_FoZQK8on7YVy6RbyLqbeZD9QGjSQ,30289 +django/conf/locale/fr/LC_MESSAGES/django.po,sha256=tDtC7JAuj1x5rnJm4J6eDbs_IoXlmrVCR66yHX-4Zrk,32905 +django/conf/locale/fr/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/conf/locale/fr/__pycache__/__init__.cpython-312.pyc,, +django/conf/locale/fr/__pycache__/formats.cpython-312.pyc,, +django/conf/locale/fr/formats.py,sha256=0uO3NMUAc2rRZOtr9SMJgFHTNNhr8t2xrGruVBRHTmw,938 +django/conf/locale/fr_BE/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/conf/locale/fr_BE/__pycache__/__init__.cpython-312.pyc,, +django/conf/locale/fr_BE/__pycache__/formats.cpython-312.pyc,, +django/conf/locale/fr_BE/formats.py,sha256=DB7W-i5BYeRjMRGWMWmm5oK4FNOTy4H4LL_xx6Ztk00,1154 +django/conf/locale/fr_CA/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/conf/locale/fr_CA/__pycache__/__init__.cpython-312.pyc,, +django/conf/locale/fr_CA/__pycache__/formats.cpython-312.pyc,, +django/conf/locale/fr_CA/formats.py,sha256=uSZ4s7XJmcutcbx51DVRu2Sh9ZkOhlTU1RHI37NQqQs,1171 +django/conf/locale/fr_CH/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/conf/locale/fr_CH/__pycache__/__init__.cpython-312.pyc,, +django/conf/locale/fr_CH/__pycache__/formats.cpython-312.pyc,, +django/conf/locale/fr_CH/formats.py,sha256=DB7W-i5BYeRjMRGWMWmm5oK4FNOTy4H4LL_xx6Ztk00,1154 +django/conf/locale/fy/LC_MESSAGES/django.mo,sha256=9P7zoJtaYHfXly8d6zBoqkxLM98dO8uI6nmWtsGu-lM,2286 +django/conf/locale/fy/LC_MESSAGES/django.po,sha256=jveK-2MjopbqC9jWcrYbttIb4DUmFyW1_-0tYaD6R0I,19684 +django/conf/locale/fy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/conf/locale/fy/__pycache__/__init__.cpython-312.pyc,, +django/conf/locale/fy/__pycache__/formats.cpython-312.pyc,, +django/conf/locale/fy/formats.py,sha256=mJXj1dHUnO883PYWPwuI07CNbjmnfBTQVRXZMg2hmOk,658 +django/conf/locale/ga/LC_MESSAGES/django.mo,sha256=abQpDgeTUIdZzldVuZLZiBOgf1s2YVSyrvEhxwl0GK8,14025 +django/conf/locale/ga/LC_MESSAGES/django.po,sha256=rppcWQVozZdsbl7Gud6KnJo6yDB8T0xH6hvIiLFi_zA,24343 +django/conf/locale/ga/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/conf/locale/ga/__pycache__/__init__.cpython-312.pyc,, +django/conf/locale/ga/__pycache__/formats.cpython-312.pyc,, +django/conf/locale/ga/formats.py,sha256=Qh7R3UMfWzt7QIdMZqxY0o4OMpVsqlchHK7Z0QnDWds,682 +django/conf/locale/gd/LC_MESSAGES/django.mo,sha256=2VKzI7Nqd2NjABVQGdcduWHjj0h2b3UBGQub7xaTVPs,30752 +django/conf/locale/gd/LC_MESSAGES/django.po,sha256=3PfuhhmosuarfPjvM2TVf2kHhZaw5_G8oIM2VWTc3gI,33347 +django/conf/locale/gd/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/conf/locale/gd/__pycache__/__init__.cpython-312.pyc,, +django/conf/locale/gd/__pycache__/formats.cpython-312.pyc,, +django/conf/locale/gd/formats.py,sha256=7doL7JIoCqA_o-lpCwM3jDHMpptA3BbSgeLRqdZk8Lc,715 +django/conf/locale/gl/LC_MESSAGES/django.mo,sha256=UJY2CZtRqTkiPz5CgV1y1qPbcxZ6tPZvYtAWhwCNGgQ,28464 +django/conf/locale/gl/LC_MESSAGES/django.po,sha256=ZT-YXU4N4Z6qYkUPm84IXPqLznbOsOEE-PQJN9FCzIc,30925 +django/conf/locale/gl/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/conf/locale/gl/__pycache__/__init__.cpython-312.pyc,, +django/conf/locale/gl/__pycache__/formats.cpython-312.pyc,, +django/conf/locale/gl/formats.py,sha256=ygSFv-YTS8htG_LW0awegkkOarPRTZNPbUck5sxkAwI,757 +django/conf/locale/he/LC_MESSAGES/django.mo,sha256=pAzuekmiofxdO7eLRThdsoghuHLWhzaeIrrNy0s6eCQ,32301 +django/conf/locale/he/LC_MESSAGES/django.po,sha256=JHeqYJDlX7s9sAkx1voy68XF_w21sopMLypB3I_ioqs,35086 +django/conf/locale/he/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/conf/locale/he/__pycache__/__init__.cpython-312.pyc,, +django/conf/locale/he/__pycache__/formats.cpython-312.pyc,, +django/conf/locale/he/formats.py,sha256=M-tu-LmTZd_oYPNH6CZEsdxJN526RUOfnLHlQxRL0N0,712 +django/conf/locale/hi/LC_MESSAGES/django.mo,sha256=8pV5j5q8VbrxdVkcS0qwhVx6DmXRRXPKfRsm3nWhI2g,19712 +django/conf/locale/hi/LC_MESSAGES/django.po,sha256=DPV-I1aXgIiZB7zHdEgAHShZFyb9zlNmMXlyjH5ug0I,29221 +django/conf/locale/hi/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/conf/locale/hi/__pycache__/__init__.cpython-312.pyc,, +django/conf/locale/hi/__pycache__/formats.cpython-312.pyc,, +django/conf/locale/hi/formats.py,sha256=JArVM9dMluSP-cwpZydSVXHB5Vs9QKyR9c-bftI9hds,684 +django/conf/locale/hr/LC_MESSAGES/django.mo,sha256=HP4PCb-i1yYsl5eqCamg5s3qBxZpS_aXDDKZ4Hlbbcc,19457 +django/conf/locale/hr/LC_MESSAGES/django.po,sha256=qeVJgKiAv5dKR2msD2iokSOApZozB3Gp0xqzC09jnvs,26329 +django/conf/locale/hr/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/conf/locale/hr/__pycache__/__init__.cpython-312.pyc,, +django/conf/locale/hr/__pycache__/formats.cpython-312.pyc,, +django/conf/locale/hr/formats.py,sha256=F4mIdDoaOYJ_lPmsJ_6bQo4Zj8pOSVwuldm92zRy4Fo,1723 +django/conf/locale/hsb/LC_MESSAGES/django.mo,sha256=oMDdIf-qu97gcocpdx_g1MhBwzQ6XA7zaxL9RJMMsyo,30347 +django/conf/locale/hsb/LC_MESSAGES/django.po,sha256=cZ2Sp3cG6p_VNhYmFr20CIXoyBkh1r15zWhLO7Ow-rA,32838 +django/conf/locale/hu/LC_MESSAGES/django.mo,sha256=6rkADx1TKbehAEauc_lga5Yo43l26UAG83jrlHmUEiE,29197 +django/conf/locale/hu/LC_MESSAGES/django.po,sha256=kpqAkbZlMHbIY4hfPj230Rssvp8v7OrTpm7FTxbfbwY,31802 +django/conf/locale/hu/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/conf/locale/hu/__pycache__/__init__.cpython-312.pyc,, +django/conf/locale/hu/__pycache__/formats.cpython-312.pyc,, +django/conf/locale/hu/formats.py,sha256=xAD7mNsC5wFA2_KGRbBMPKwj884pq0jCKmXhEenGAEk,1001 +django/conf/locale/hy/LC_MESSAGES/django.mo,sha256=KfmTnB-3ZUKDHeNgLiego2Af0WZoHTuNKss3zE-_XOE,22207 +django/conf/locale/hy/LC_MESSAGES/django.po,sha256=kNKlJ5NqZmeTnnxdqhmU3kXiqT9t8MgAFgxM2V09AIc,28833 +django/conf/locale/ia/LC_MESSAGES/django.mo,sha256=JcrpersrDAoJXrD3AnPYBCQyGJ-6kUzH_Q8StbqmMeE,21428 +django/conf/locale/ia/LC_MESSAGES/django.po,sha256=LG0juYDjf3KkscDxwjY3ac6H1u5BBwGHljW3QWvr1nc,26859 +django/conf/locale/id/LC_MESSAGES/django.mo,sha256=yvfilgl_Bt8BXM4bFbQACjS1Nx4vbkcJk3juYpocu7M,27405 +django/conf/locale/id/LC_MESSAGES/django.po,sha256=bLzDlWUNQPsloIlto2GVuStzGJtjiUuDZ3ky3U-R47Q,29999 +django/conf/locale/id/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/conf/locale/id/__pycache__/__init__.cpython-312.pyc,, +django/conf/locale/id/__pycache__/formats.cpython-312.pyc,, +django/conf/locale/id/formats.py,sha256=kYyOxWHN3Jyif3rFxLFyBUjTzFUwmuaLrkw5JvGbEz8,1644 +django/conf/locale/ig/LC_MESSAGES/django.mo,sha256=tAZG5GKhEbrUCJtLrUxzmrROe1RxOhep8w-RR7DaDYo,27188 +django/conf/locale/ig/LC_MESSAGES/django.po,sha256=DB_I4JXKMY4M7PdAeIsdqnLSFpq6ImkGPCuY82rNBpY,28931 +django/conf/locale/ig/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/conf/locale/ig/__pycache__/__init__.cpython-312.pyc,, +django/conf/locale/ig/__pycache__/formats.cpython-312.pyc,, +django/conf/locale/ig/formats.py,sha256=P3IsxhF5rNFZ5nCWUSyJfFLb0V1QdX_Xn-tYdrcll5Q,1119 +django/conf/locale/io/LC_MESSAGES/django.mo,sha256=uI78C7Qkytf3g1A6kVWiri_CbS55jReO2XmRfLTeNs0,14317 +django/conf/locale/io/LC_MESSAGES/django.po,sha256=FyN4ZTfNPV5TagM8NEhRts8y_FhehIPPouh_MfslnWY,23124 +django/conf/locale/is/LC_MESSAGES/django.mo,sha256=1pFU-dTPg2zs87L0ZqFFGS9q-f-XrzTOlhKujlyNL2E,24273 +django/conf/locale/is/LC_MESSAGES/django.po,sha256=76cQ_9DLg1jR53hiKSc1tLUMeKn8qTdPwpHwutEK014,28607 +django/conf/locale/is/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/conf/locale/is/__pycache__/__init__.cpython-312.pyc,, +django/conf/locale/is/__pycache__/formats.cpython-312.pyc,, +django/conf/locale/is/formats.py,sha256=scsNfP4vVacxWIoN03qc2Fa3R8Uh5Izr1MqBicrAl3A,688 +django/conf/locale/it/LC_MESSAGES/django.mo,sha256=39GKwsSkjlL1h4vVysTWMuo4hq2UGQEC-kqJcaVW54A,28587 +django/conf/locale/it/LC_MESSAGES/django.po,sha256=t973TArDuAfpRpPgSTyc-bU6CPti2xkST9O2tVb8vFc,31670 +django/conf/locale/it/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/conf/locale/it/__pycache__/__init__.cpython-312.pyc,, +django/conf/locale/it/__pycache__/formats.cpython-312.pyc,, +django/conf/locale/it/formats.py,sha256=KzkSb3KXBwfM3gk2FezyR-W8_RYKpnlFeFuIi5zl-S0,1774 +django/conf/locale/ja/LC_MESSAGES/django.mo,sha256=2Ye0yCvw0i_rJuhaPU4PmXMytkvUPh0eFAr2mcj3QAo,30945 +django/conf/locale/ja/LC_MESSAGES/django.po,sha256=E3n4fgr5Hje_J0OfnatKyGHkduYHigwuywmLRwynZHo,33466 +django/conf/locale/ja/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/conf/locale/ja/__pycache__/__init__.cpython-312.pyc,, +django/conf/locale/ja/__pycache__/formats.cpython-312.pyc,, +django/conf/locale/ja/formats.py,sha256=COUuaXo5zCSNzEwJ0smjbm9Qj28YNBcGxm8qFCJv4sE,729 +django/conf/locale/ka/LC_MESSAGES/django.mo,sha256=4e8at-KNaxYJKIJd8r6iPrYhEdnaJ1qtPw-QHPMh-Sc,24759 +django/conf/locale/ka/LC_MESSAGES/django.po,sha256=pIgaLU6hXgVQ2WJp1DTFoubI7zHOUkkKMddwV3PTdt8,32088 +django/conf/locale/ka/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/conf/locale/ka/__pycache__/__init__.cpython-312.pyc,, +django/conf/locale/ka/__pycache__/formats.cpython-312.pyc,, +django/conf/locale/ka/formats.py,sha256=elTGOjS-mxuoSCAKOm8Wz2aLfh4pWvNyClUFcrYq9ng,1861 +django/conf/locale/kab/LC_MESSAGES/django.mo,sha256=x5Kyq2Uf3XNlQP06--4lT8Q1MacA096hZbyMJRrHYIc,7139 +django/conf/locale/kab/LC_MESSAGES/django.po,sha256=DsFL3IzidcAnPoAWIfIbGJ6Teop1yKPBRALeLYrdiFA,20221 +django/conf/locale/kk/LC_MESSAGES/django.mo,sha256=krjcDvA5bu591zcP76bWp2mD2FL1VUl7wutaZjgD668,13148 +django/conf/locale/kk/LC_MESSAGES/django.po,sha256=RgM4kzn46ZjkSDHMAsyOoUg7GdxGiZ-vaEOdf7k0c5A,23933 +django/conf/locale/km/LC_MESSAGES/django.mo,sha256=kEvhZlH7lkY1DUIHTHhFVQzOMAPd_-QMItXTYX0j1xY,7223 +django/conf/locale/km/LC_MESSAGES/django.po,sha256=QgRxEiJMopO14drcmeSG6XEXQpiAyfQN0Ot6eH4gca8,21999 +django/conf/locale/km/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/conf/locale/km/__pycache__/__init__.cpython-312.pyc,, +django/conf/locale/km/__pycache__/formats.cpython-312.pyc,, +django/conf/locale/km/formats.py,sha256=0UMLrZz1aI2sdRPkJ0YzX99co2IV6tldP7pEvGEPdP0,750 +django/conf/locale/kn/LC_MESSAGES/django.mo,sha256=fQ7AD5tUiV_PZFBxUjNPQN79dWBJKqfoYwRdrOaQjU4,17515 +django/conf/locale/kn/LC_MESSAGES/django.po,sha256=fS4Z7L4NGVQ6ipZ7lMHAqAopTBP0KkOc-eBK0IYdbBE,28133 +django/conf/locale/kn/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/conf/locale/kn/__pycache__/__init__.cpython-312.pyc,, +django/conf/locale/kn/__pycache__/formats.cpython-312.pyc,, +django/conf/locale/kn/formats.py,sha256=X5j9VHIW2XRdeTzDFEyS8tG05OBFzP2R7sEGUQa_INg,680 +django/conf/locale/ko/LC_MESSAGES/django.mo,sha256=21a6D_pZTeyP9B7n19gLYBPuweAdWawAZFPYzVrUaRY,29175 +django/conf/locale/ko/LC_MESSAGES/django.po,sha256=_0oYJJD8RcPEkuyQ48xCuH60EINzVdCopTzIysYJIiM,32054 +django/conf/locale/ko/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/conf/locale/ko/__pycache__/__init__.cpython-312.pyc,, +django/conf/locale/ko/__pycache__/formats.cpython-312.pyc,, +django/conf/locale/ko/formats.py,sha256=qn36EjiO4Bu12D_6qitjMDkBfy4M0LgFE-FhK8bPOto,2061 +django/conf/locale/ky/LC_MESSAGES/django.mo,sha256=IBVfwPwaZmaoljMRBGww_wWGMJqbF_IOHHnH2j-yJw8,31395 +django/conf/locale/ky/LC_MESSAGES/django.po,sha256=5ACTPMMbXuPJbU7Rfzs0yZHh3xy483pqo5DwSBQp4s4,33332 +django/conf/locale/ky/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/conf/locale/ky/__pycache__/__init__.cpython-312.pyc,, +django/conf/locale/ky/__pycache__/formats.cpython-312.pyc,, +django/conf/locale/ky/formats.py,sha256=QCq7vxAD5fe9VhcjRhG6C3N28jNvdzKR-c-EvDSJ1Pg,1178 +django/conf/locale/lb/LC_MESSAGES/django.mo,sha256=tQSJLQUeD5iUt-eA2EsHuyYqsCSYFtbGdryATxisZsc,8008 +django/conf/locale/lb/LC_MESSAGES/django.po,sha256=GkKPLO3zfGTNync-xoYTf0vZ2GUSAotAjfPSP01SDMU,20622 +django/conf/locale/lt/LC_MESSAGES/django.mo,sha256=cdUzK5RYW-61Upf8Sd8ydAg9wXg21pJaIRWFSKPv17c,21421 +django/conf/locale/lt/LC_MESSAGES/django.po,sha256=Lvpe_xlbxSa5vWEossxBCKryDVT7Lwz0EnuL1kSO6OY,28455 +django/conf/locale/lt/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/conf/locale/lt/__pycache__/__init__.cpython-312.pyc,, +django/conf/locale/lt/__pycache__/formats.cpython-312.pyc,, +django/conf/locale/lt/formats.py,sha256=C9ScR3gYswT1dQXFedUUnYe6DQPVGAS_nLxs0h2E3dE,1637 +django/conf/locale/lv/LC_MESSAGES/django.mo,sha256=EYHx-u3LwFcMCO9oHR1IAhAfm5axFLatAqe7CMNaszo,29213 +django/conf/locale/lv/LC_MESSAGES/django.po,sha256=920CMyfWRaJVTO6hJjiAJN33GTRcymBga7FjlqrcZhI,32015 +django/conf/locale/lv/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/conf/locale/lv/__pycache__/__init__.cpython-312.pyc,, +django/conf/locale/lv/__pycache__/formats.cpython-312.pyc,, +django/conf/locale/lv/formats.py,sha256=k8owdq0U7-x6yl8ll1W5VjRoKdp8a1G2enH04G5_nvU,1713 +django/conf/locale/mk/LC_MESSAGES/django.mo,sha256=uQKmcys0rOsRynEa812XDAaeiNTeBMkqhR4LZ_cfdAk,22737 +django/conf/locale/mk/LC_MESSAGES/django.po,sha256=4K11QRb493wD-FM6-ruCxks9_vl_jB59V1c1rx-TdKg,29863 +django/conf/locale/mk/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/conf/locale/mk/__pycache__/__init__.cpython-312.pyc,, +django/conf/locale/mk/__pycache__/formats.cpython-312.pyc,, +django/conf/locale/mk/formats.py,sha256=xwnJsXLXGogOqpP18u6GozjehpWAwwKmXbELolYV_k4,1451 +django/conf/locale/ml/LC_MESSAGES/django.mo,sha256=MGvV0e3LGUFdVIA-h__BuY8Ckom2dAhSFvAtZ8FiAXU,30808 +django/conf/locale/ml/LC_MESSAGES/django.po,sha256=iLllS6vlCpBNZfy9Xd_2Cuwi_1-Vz9fW4G1lUNOuZ6k,37271 +django/conf/locale/ml/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/conf/locale/ml/__pycache__/__init__.cpython-312.pyc,, +django/conf/locale/ml/__pycache__/formats.cpython-312.pyc,, +django/conf/locale/ml/formats.py,sha256=ZR7tMdJF0U6K1H95cTqrFH4gop6ZuSQ7vD2h0yKq6mo,1597 +django/conf/locale/mn/LC_MESSAGES/django.mo,sha256=T8B76Nv_h6nCsTENPSAag_oGc67uj-fMy0jfHyQ7WLI,33282 +django/conf/locale/mn/LC_MESSAGES/django.po,sha256=uaXe-9Y8KcNBAij69nU0Id1ABE6q_pyNRhqigKGlzZY,35852 +django/conf/locale/mn/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/conf/locale/mn/__pycache__/__init__.cpython-312.pyc,, +django/conf/locale/mn/__pycache__/formats.cpython-312.pyc,, +django/conf/locale/mn/formats.py,sha256=fsexJU9_UTig2PS_o11hcEmrbPBS8voI4ojuAVPOd_U,676 +django/conf/locale/mr/LC_MESSAGES/django.mo,sha256=wDaS4FOhKcxM7mhzwItieazQ_qBp97ZaKhTZgETDXt0,27608 +django/conf/locale/mr/LC_MESSAGES/django.po,sha256=6eBOK9ZgqrvD1pdIa3NtXojHx-qw_WJLxtNdCkEelrg,34449 +django/conf/locale/ms/LC_MESSAGES/django.mo,sha256=U4_kzfbYF7u78DesFRSReOIeVbOnq8hi_pReFfHfyUQ,27066 +django/conf/locale/ms/LC_MESSAGES/django.po,sha256=49pG3cykGjVfC9N8WPyskz-m7r6KmQiq5i8MR6eOi54,28985 +django/conf/locale/ms/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/conf/locale/ms/__pycache__/__init__.cpython-312.pyc,, +django/conf/locale/ms/__pycache__/formats.cpython-312.pyc,, +django/conf/locale/ms/formats.py,sha256=YtOBs6s4j4SOmfB3cpp2ekcxVFoVGgUN8mThoSueCt0,1522 +django/conf/locale/my/LC_MESSAGES/django.mo,sha256=SjYOewwnVim3-GrANk2RNanOjo6Hy2omw0qnpkMzTlM,2589 +django/conf/locale/my/LC_MESSAGES/django.po,sha256=b_QSKXc3lS2Xzb45yVYVg307uZNaAnA0eoXX2ZmNiT0,19684 +django/conf/locale/nb/LC_MESSAGES/django.mo,sha256=qX1Z1F3YXVavlrECVkHXek9tsvJEXbWNrogdjjY3jCg,27007 +django/conf/locale/nb/LC_MESSAGES/django.po,sha256=QQ_adZsyp2BfzcJS-LXnZL0EMmUZLbnHsBB1pRRfV-8,29500 +django/conf/locale/nb/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/conf/locale/nb/__pycache__/__init__.cpython-312.pyc,, +django/conf/locale/nb/__pycache__/formats.cpython-312.pyc,, +django/conf/locale/nb/formats.py,sha256=y1QLE-SG00eHwje0lkAToHtz4t621Rz_HQRyBWCgK8c,1552 +django/conf/locale/ne/LC_MESSAGES/django.mo,sha256=BcK8z38SNWDXXWVWUmOyHEzwk2xHEeaW2t7JwrxehKM,27248 +django/conf/locale/ne/LC_MESSAGES/django.po,sha256=_Kj_i2zMb7JLU7EN7Z7JcUn89YgonJf6agSFCjXa49w,33369 +django/conf/locale/nl/LC_MESSAGES/django.mo,sha256=1nQqA4PEgduFpzunMFi0pFVn2qmDPtI76umGzOlgoMU,28191 +django/conf/locale/nl/LC_MESSAGES/django.po,sha256=j5ZwYFj2voEYEybwkH5tPEYkn99g6xnCNH1Ej288yVw,31031 +django/conf/locale/nl/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/conf/locale/nl/__pycache__/__init__.cpython-312.pyc,, +django/conf/locale/nl/__pycache__/formats.cpython-312.pyc,, +django/conf/locale/nl/formats.py,sha256=cKaaOvRdeauORjvuZ1xyVcVsl36J3Zk4FSE-lnx2Xwg,3927 +django/conf/locale/nn/LC_MESSAGES/django.mo,sha256=Ccj8kjvjTefC8H6TuDCOdSrTmtkYXkmRR2V42HBMYo4,26850 +django/conf/locale/nn/LC_MESSAGES/django.po,sha256=oaVJTl0NgZ92XJv9DHdsXVaKAc81ky_R3CA6HljTH-8,29100 +django/conf/locale/nn/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/conf/locale/nn/__pycache__/__init__.cpython-312.pyc,, +django/conf/locale/nn/__pycache__/formats.cpython-312.pyc,, +django/conf/locale/nn/formats.py,sha256=y1QLE-SG00eHwje0lkAToHtz4t621Rz_HQRyBWCgK8c,1552 +django/conf/locale/os/LC_MESSAGES/django.mo,sha256=LBpf_dyfBnvGOvthpn5-oJuFiSNHrgiVHBzJBR-FxOw,17994 +django/conf/locale/os/LC_MESSAGES/django.po,sha256=WYlAnNYwGFnH76Elnnth6YP2TWA-fEtvV5UinnNj7AA,26278 +django/conf/locale/pa/LC_MESSAGES/django.mo,sha256=H1hCnQzcq0EiSEaayT6t9H-WgONO5V4Cf7l25H2930M,11253 +django/conf/locale/pa/LC_MESSAGES/django.po,sha256=26ifUdCX9fOiXfWvgMkOXlsvS6h6nNskZcIBoASJec4,23013 +django/conf/locale/pl/LC_MESSAGES/django.mo,sha256=8vp8b354Fc7VM1YuOJlOZLf4befel3MDCK-NybFMBtA,30667 +django/conf/locale/pl/LC_MESSAGES/django.po,sha256=v4-ZzdKIL3nYVUxTszG9up4pK1dkxaUiIjFrksu3DAo,34616 +django/conf/locale/pl/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/conf/locale/pl/__pycache__/__init__.cpython-312.pyc,, +django/conf/locale/pl/__pycache__/formats.cpython-312.pyc,, +django/conf/locale/pl/formats.py,sha256=KREhPtHuzKS_ZsAqXs5LqYPGhn6O-jLd4WZQ-39BA8I,1032 +django/conf/locale/pt/LC_MESSAGES/django.mo,sha256=nlj_L7Z2FkXs1w6wCGGseuZ_U-IecnlfYRtG5jPkGrs,20657 +django/conf/locale/pt/LC_MESSAGES/django.po,sha256=ETTedbjU2J4FLi2QDHNN8C7zlAsvLWNUlYzkEV1WB6s,26224 +django/conf/locale/pt/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/conf/locale/pt/__pycache__/__init__.cpython-312.pyc,, +django/conf/locale/pt/__pycache__/formats.cpython-312.pyc,, +django/conf/locale/pt/formats.py,sha256=RQ9MuIwUPhiY2u-1hFU2abs9Wqv1qZE2AUAfYVK-NU8,1520 +django/conf/locale/pt_BR/LC_MESSAGES/django.mo,sha256=4mM2UEHa1sbwQjlHbxhpGRafRyWyQs56zJ8d3nzNMD4,29218 +django/conf/locale/pt_BR/LC_MESSAGES/django.po,sha256=SvnvurlGJ2QutJGKbGmdAQ55QllPuDqAyDjF0ZYadSA,33298 +django/conf/locale/pt_BR/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/conf/locale/pt_BR/__pycache__/__init__.cpython-312.pyc,, +django/conf/locale/pt_BR/__pycache__/formats.cpython-312.pyc,, +django/conf/locale/pt_BR/formats.py,sha256=J1IKV7cS2YMJ5_qlT9h1dDYUX9tLFvqA95l_GpZTLUY,1285 +django/conf/locale/ro/LC_MESSAGES/django.mo,sha256=9RSlC_3Ipn_Vm31ALaGHsrOA1IKmKJ5sN2m6iy5Hk60,21493 +django/conf/locale/ro/LC_MESSAGES/django.po,sha256=XoGlHKEnGlno_sbUTnbkg9nGkRfPIpxv7Wfm3hHGu9w,28099 +django/conf/locale/ro/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/conf/locale/ro/__pycache__/__init__.cpython-312.pyc,, +django/conf/locale/ro/__pycache__/formats.cpython-312.pyc,, +django/conf/locale/ro/formats.py,sha256=e_dp0zyfFfoydrGyn6Kk3DnQIj7RTRuvRc6rQ6tSxzA,928 +django/conf/locale/ru/LC_MESSAGES/django.mo,sha256=Y9QMees4Kj3WQDoAtCcugQh2Ky1_ZoaU-vSyTckDxnk,38774 +django/conf/locale/ru/LC_MESSAGES/django.po,sha256=zWmJpjWwpKPnoCjIEKOjclbxBjWf6dwgwoJdnTEx0Jc,42141 +django/conf/locale/ru/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/conf/locale/ru/__pycache__/__init__.cpython-312.pyc,, +django/conf/locale/ru/__pycache__/formats.cpython-312.pyc,, +django/conf/locale/ru/formats.py,sha256=lTfYbecdSmHCxebog_2bd0N32iD3nEq_f5buh9il-nI,1098 +django/conf/locale/sk/LC_MESSAGES/django.mo,sha256=m4rFecNfLaaDjlq6yCKIH9ziuhLXKqALZX7BYTY90kQ,29942 +django/conf/locale/sk/LC_MESSAGES/django.po,sha256=lbXg5EJazVNhhDbFM4r4Qk_pWM_RDiAdLO9AntGVnfs,32766 +django/conf/locale/sk/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/conf/locale/sk/__pycache__/__init__.cpython-312.pyc,, +django/conf/locale/sk/__pycache__/formats.cpython-312.pyc,, +django/conf/locale/sk/formats.py,sha256=bWj0FNpYfOAgi9J-L4VuiN6C_jsgPsKNdLYd9gTnFs0,1051 +django/conf/locale/sl/LC_MESSAGES/django.mo,sha256=1mzO4ZC9IYwbKM7iavLJfb2bYaLaC1UVmm4T37Xil7g,23147 +django/conf/locale/sl/LC_MESSAGES/django.po,sha256=EDR734fFO7UM_F-4Q-psEHc-VF2po7fl6n5akKdWYyY,29440 +django/conf/locale/sl/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/conf/locale/sl/__pycache__/__init__.cpython-312.pyc,, +django/conf/locale/sl/__pycache__/formats.cpython-312.pyc,, +django/conf/locale/sl/formats.py,sha256=Nq4IfEUnlGebMZeRvB2l9aps-5G5b4y1kQ_3MiJTfe8,1642 +django/conf/locale/sq/LC_MESSAGES/django.mo,sha256=resBCLeu82Vp4LMPj8HJCOFKPxXqpmDJtZq9orfGh34,28679 +django/conf/locale/sq/LC_MESSAGES/django.po,sha256=kO8LFug9I9JdqNDta9pybyN659LMJTlA0vxFkUHN7Io,31128 +django/conf/locale/sq/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/conf/locale/sq/__pycache__/__init__.cpython-312.pyc,, +django/conf/locale/sq/__pycache__/formats.cpython-312.pyc,, +django/conf/locale/sq/formats.py,sha256=SA_jCSNwI8-p79skHoLxrPLZnkyq1PVadwT6gMt7n_M,688 +django/conf/locale/sr/LC_MESSAGES/django.mo,sha256=bqJfj3QMTIUFiMxYWBUBGXdjZFLrz1HXMoEINi_Z04I,35035 +django/conf/locale/sr/LC_MESSAGES/django.po,sha256=NGxxpRU-9gqj2I0yPzRuE3alMaUAgOhD_pteaLIhB6A,37561 +django/conf/locale/sr/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/conf/locale/sr/__pycache__/__init__.cpython-312.pyc,, +django/conf/locale/sr/__pycache__/formats.cpython-312.pyc,, +django/conf/locale/sr/formats.py,sha256=F3_gYopOXINcllaPFzTqZrZ2oZ1ye3xzR0NQtlqXYp0,1729 +django/conf/locale/sr_Latn/LC_MESSAGES/django.mo,sha256=GHilyEVbIGQt6ItMgQJVk-m6TF8tgHI4rtidYmOwUGI,28715 +django/conf/locale/sr_Latn/LC_MESSAGES/django.po,sha256=FegpyTDYtB-kPG8d8EmK_lK3C7PSxhc2p9xLAZadO74,41466 +django/conf/locale/sr_Latn/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/conf/locale/sr_Latn/__pycache__/__init__.cpython-312.pyc,, +django/conf/locale/sr_Latn/__pycache__/formats.cpython-312.pyc,, +django/conf/locale/sr_Latn/formats.py,sha256=BDZm-ajQgCIxQ8mCcckEH32IoCN9233TvAOXkg4mc38,1728 +django/conf/locale/sv/LC_MESSAGES/django.mo,sha256=sLEVlvxPVNVms8Tfmhxs84Ltbx7ryDZtwU54SGJXKRc,28006 +django/conf/locale/sv/LC_MESSAGES/django.po,sha256=Emb4MrDT_fsFdZRhixZztQVgYb5Wl-YpsR8bC9yY3hs,30872 +django/conf/locale/sv/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/conf/locale/sv/__pycache__/__init__.cpython-312.pyc,, +django/conf/locale/sv/__pycache__/formats.cpython-312.pyc,, +django/conf/locale/sv/formats.py,sha256=9o8ZtaSq1UOa5y6Du3rQsLAAl5ZOEdVY1OVVMbj02RA,1311 +django/conf/locale/sw/LC_MESSAGES/django.mo,sha256=aUmIVLANgSCTK5Lq8QZPEKWjZWnsnBvm_-ZUcih3J6g,13534 +django/conf/locale/sw/LC_MESSAGES/django.po,sha256=GOE6greXZoLhpccsfPZjE6lR3G4vpK230EnIOdjsgPk,22698 +django/conf/locale/ta/LC_MESSAGES/django.mo,sha256=WeM8tElbcmL11P_D60y5oHKtDxUNWZM9UNgXe1CsRQ4,7094 +django/conf/locale/ta/LC_MESSAGES/django.po,sha256=kgHTFqysEMj1hqktLr-bnL1NRM715zTpiwhelqC232s,22329 +django/conf/locale/ta/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/conf/locale/ta/__pycache__/__init__.cpython-312.pyc,, +django/conf/locale/ta/__pycache__/formats.cpython-312.pyc,, +django/conf/locale/ta/formats.py,sha256=vmjfiM54oJJxqcdgZJUNNQN7oMS-XLVBYJ4lWBb5ctY,682 +django/conf/locale/te/LC_MESSAGES/django.mo,sha256=Sk45kPC4capgRdW5ImOKYEVxiBjHXsosNyhVIDtHLBc,13259 +django/conf/locale/te/LC_MESSAGES/django.po,sha256=IQxpGTpsKUtBGN1P-KdGwvE7ojNCqKqPXEvYD3qT5A4,25378 +django/conf/locale/te/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/conf/locale/te/__pycache__/__init__.cpython-312.pyc,, +django/conf/locale/te/__pycache__/formats.cpython-312.pyc,, +django/conf/locale/te/formats.py,sha256=-HOoZgmnME4--4CuXzcnhXqNma0Wh7Ninof3RCCGZkU,680 +django/conf/locale/tg/LC_MESSAGES/django.mo,sha256=ePzS2pD84CTkHBaiaMyXBxiizxfFBjHdsGH7hCt5p_4,28497 +django/conf/locale/tg/LC_MESSAGES/django.po,sha256=oSKu3YT3griCrDLPqptZmHcuviI99wvlfX6I6nLJnDk,33351 +django/conf/locale/tg/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/conf/locale/tg/__pycache__/__init__.cpython-312.pyc,, +django/conf/locale/tg/__pycache__/formats.cpython-312.pyc,, +django/conf/locale/tg/formats.py,sha256=TG5TGfLNy4JSjl-QAWk46gIEb0ijdBpqPrDtwfJzshw,1160 +django/conf/locale/th/LC_MESSAGES/django.mo,sha256=SJeeJWbdF-Lae5BendxlyMKqx5zdDmh3GCQa8ER5FyY,18629 +django/conf/locale/th/LC_MESSAGES/django.po,sha256=K4ITjzHLq6DyTxgMAfu3CoGxrTd3aG2J6-ZxQj2KG1U,27507 +django/conf/locale/th/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/conf/locale/th/__pycache__/__init__.cpython-312.pyc,, +django/conf/locale/th/__pycache__/formats.cpython-312.pyc,, +django/conf/locale/th/formats.py,sha256=SmCUD-zVgI1QE2HwqkFtAO87rJ-FoCjw1s-2-cfl1h0,1072 +django/conf/locale/tk/LC_MESSAGES/django.mo,sha256=qtFLB9rBkpUDv5LtNAZqkkCKtquMySyg3dzQ8x_Nb-Y,27792 +django/conf/locale/tk/LC_MESSAGES/django.po,sha256=dEjcfeYmvjKbAPFVCmrlh7rVOU90MgiYpoo1cHfPj2E,30232 +django/conf/locale/tk/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/conf/locale/tk/__pycache__/__init__.cpython-312.pyc,, +django/conf/locale/tk/__pycache__/formats.cpython-312.pyc,, +django/conf/locale/tk/formats.py,sha256=TG5TGfLNy4JSjl-QAWk46gIEb0ijdBpqPrDtwfJzshw,1160 +django/conf/locale/tr/LC_MESSAGES/django.mo,sha256=38GDWb1p0LnWAwXC5CaRYrMgBDgB1O68Jrzer-2Z6Ko,28842 +django/conf/locale/tr/LC_MESSAGES/django.po,sha256=6dCHOghUd4tr14G3ylLQRLkjOZcmY8RDjfSuL6FMq8A,31433 +django/conf/locale/tr/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/conf/locale/tr/__pycache__/__init__.cpython-312.pyc,, +django/conf/locale/tr/__pycache__/formats.cpython-312.pyc,, +django/conf/locale/tr/formats.py,sha256=yJg-7hmevD1gvj9iBRMCiYGgd5DxKZcL7T_C3K3ztME,1019 +django/conf/locale/tt/LC_MESSAGES/django.mo,sha256=r554DvdPjD_S8hBRjW8ehccEjEk8h7czQsp46FZZ_Do,14500 +django/conf/locale/tt/LC_MESSAGES/django.po,sha256=W8QgEAH7yXNmjWoF-UeqyVAu5jEMHZ5MXE60e5sawJc,24793 +django/conf/locale/udm/LC_MESSAGES/django.mo,sha256=cIf0i3TjY-yORRAcSev3mIsdGYT49jioTHZtTLYAEyc,12822 +django/conf/locale/udm/LC_MESSAGES/django.po,sha256=n9Az_8M8O5y16yE3iWmK20R9F9VoKBh3jR3iKwMgFlY,23113 +django/conf/locale/ug/LC_MESSAGES/django.mo,sha256=1rD3kSFFPQ_PYpjzvbg1oHbyqIrbxVSQe7x6bt0uA64,35453 +django/conf/locale/ug/LC_MESSAGES/django.po,sha256=E8npwLuDFsCoCsPRGKKc_XoJ5ogjRLwiX2ermZ4gvRM,37707 +django/conf/locale/ug/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/conf/locale/ug/__pycache__/__init__.cpython-312.pyc,, +django/conf/locale/ug/__pycache__/formats.cpython-312.pyc,, +django/conf/locale/ug/formats.py,sha256=qoSAkaWqJ7FW2OTGaZs_CfiMN9PxAVxHecZfwNCzdUo,454 +django/conf/locale/uk/LC_MESSAGES/django.mo,sha256=9U34hcSaoTUqrMtp5wpdsu2L0S-l7Hn5RBDHQkhp38Y,30194 +django/conf/locale/uk/LC_MESSAGES/django.po,sha256=XZm1LpBkwoMFEXNJyAOitN223EuMzkT_2iN8yb8oWVs,36096 +django/conf/locale/uk/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/conf/locale/uk/__pycache__/__init__.cpython-312.pyc,, +django/conf/locale/uk/__pycache__/formats.cpython-312.pyc,, +django/conf/locale/uk/formats.py,sha256=ZmeYmL0eooFwQgmE054V36RQ469ZTfAv6k8SUJrDYQ8,1241 +django/conf/locale/ur/LC_MESSAGES/django.mo,sha256=M6R2DYFRBvcVRAsgVxVOLvH3e8v14b2mJs650UlUb2I,12291 +django/conf/locale/ur/LC_MESSAGES/django.po,sha256=Lr0DXaPqWtCFAxn10BQ0vlvZIMNRvCg_QJQxAC01eWk,23479 +django/conf/locale/uz/LC_MESSAGES/django.mo,sha256=CJSRoHJANkNevG-6QM-TL5VJ9UgS63dWPHeGHan9Ano,26443 +django/conf/locale/uz/LC_MESSAGES/django.po,sha256=u6En3LJg7x7VKsCNff3haprDlsizPxBukfWomKXaMak,29725 +django/conf/locale/uz/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/conf/locale/uz/__pycache__/__init__.cpython-312.pyc,, +django/conf/locale/uz/__pycache__/formats.cpython-312.pyc,, +django/conf/locale/uz/formats.py,sha256=cdmqOUBVnPSyi2k9AkOGl27s89PymFePG2gtnYzYbiw,1176 +django/conf/locale/vi/LC_MESSAGES/django.mo,sha256=TMsBzDnf9kZndozqVUnEKtKxfH2N1ajLdrm8hJ4HkYI,17396 +django/conf/locale/vi/LC_MESSAGES/django.po,sha256=tL2rvgunvaN_yqpPSBYAKImFDaFaeqbnpEw_egI11Lo,25342 +django/conf/locale/vi/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/conf/locale/vi/__pycache__/__init__.cpython-312.pyc,, +django/conf/locale/vi/__pycache__/formats.cpython-312.pyc,, +django/conf/locale/vi/formats.py,sha256=_xIugkqLnjN9dzIhefMpsJXaTPldr4blKSGS-c3swg0,762 +django/conf/locale/zh_Hans/LC_MESSAGES/django.mo,sha256=71aeJlALoU8mSetlr1XgfNbPqYXoZIqpsrJi_Xg3qDI,26927 +django/conf/locale/zh_Hans/LC_MESSAGES/django.po,sha256=EWybYIp0qwcHTxDJPPyinC8Ct4mwkuCN3PFlBYax5mQ,30097 +django/conf/locale/zh_Hans/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/conf/locale/zh_Hans/__pycache__/__init__.cpython-312.pyc,, +django/conf/locale/zh_Hans/__pycache__/formats.cpython-312.pyc,, +django/conf/locale/zh_Hans/formats.py,sha256=iMb9Taj6xQQA3l_NWCC7wUlQuh4YfNUgs2mHcQ6XUEo,1598 +django/conf/locale/zh_Hant/LC_MESSAGES/django.mo,sha256=IdUhxMJtFZAzsKuTKsG_ehCT9xMss31d-KoVf7GkWQg,26802 +django/conf/locale/zh_Hant/LC_MESSAGES/django.po,sha256=yZ1jlfTF9Do5TayisoXES41toj-m_Nb4jauJm73NITg,29034 +django/conf/locale/zh_Hant/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/conf/locale/zh_Hant/__pycache__/__init__.cpython-312.pyc,, +django/conf/locale/zh_Hant/__pycache__/formats.cpython-312.pyc,, +django/conf/locale/zh_Hant/formats.py,sha256=iMb9Taj6xQQA3l_NWCC7wUlQuh4YfNUgs2mHcQ6XUEo,1598 +django/conf/project_template/manage.py-tpl,sha256=JDuGG02670bELmn3XLUSxHFZ8VFhqZTT_oN9VbT5Acc,674 +django/conf/project_template/project_name/__init__.py-tpl,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/conf/project_template/project_name/asgi.py-tpl,sha256=q_6Jo5tLy6ba-S7pLs3YTK7byxSBmU0oYylYJlNvwHI,428 +django/conf/project_template/project_name/settings.py-tpl,sha256=JskIPIEWPSX2p7_rlsPr60JDjmFC0bVEeMChmq--0OY,3342 +django/conf/project_template/project_name/urls.py-tpl,sha256=5en0vlo3TdXdQquXZVNENrmX2DZJxje156HqcRbySKU,789 +django/conf/project_template/project_name/wsgi.py-tpl,sha256=OCfjjCsdEeXPkJgFIrMml_FURt7msovNUPnjzb401fs,428 +django/conf/urls/__init__.py,sha256=qmpaRi5Gn2uaY9h3g9RNu0z3LDEpEeNL9JlfSLed9s0,292 +django/conf/urls/__pycache__/__init__.cpython-312.pyc,, +django/conf/urls/__pycache__/i18n.cpython-312.pyc,, +django/conf/urls/__pycache__/static.cpython-312.pyc,, +django/conf/urls/i18n.py,sha256=M_lO6q_92QrrPoTY9oui95BQgJfPla9edRNuN5Vc4GM,1166 +django/conf/urls/static.py,sha256=gZOYaiIf3SxQ75N69GyVm9C0OmQv1r1IDrUJ0E7zMe0,908 +django/contrib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/contrib/__pycache__/__init__.cpython-312.pyc,, +django/contrib/admin/__init__.py,sha256=i0TwjHWq6qfZJ0e9pVWAZXxVHZ-eOPewGjtdwHljbOM,1203 +django/contrib/admin/__pycache__/__init__.cpython-312.pyc,, +django/contrib/admin/__pycache__/actions.cpython-312.pyc,, +django/contrib/admin/__pycache__/apps.cpython-312.pyc,, +django/contrib/admin/__pycache__/checks.cpython-312.pyc,, +django/contrib/admin/__pycache__/decorators.cpython-312.pyc,, +django/contrib/admin/__pycache__/exceptions.cpython-312.pyc,, +django/contrib/admin/__pycache__/filters.cpython-312.pyc,, +django/contrib/admin/__pycache__/forms.cpython-312.pyc,, +django/contrib/admin/__pycache__/helpers.cpython-312.pyc,, +django/contrib/admin/__pycache__/models.cpython-312.pyc,, +django/contrib/admin/__pycache__/options.cpython-312.pyc,, +django/contrib/admin/__pycache__/sites.cpython-312.pyc,, +django/contrib/admin/__pycache__/tests.cpython-312.pyc,, +django/contrib/admin/__pycache__/utils.cpython-312.pyc,, +django/contrib/admin/__pycache__/widgets.cpython-312.pyc,, +django/contrib/admin/actions.py,sha256=Rdz8-2cPMklSQoPuPBrhWY0MzgllGS6jHVDR0Mq2U48,3171 +django/contrib/admin/apps.py,sha256=BOiulA4tsb3wuAUtLGTGjrbywpSXX0dLo2pUCGV8URw,840 +django/contrib/admin/checks.py,sha256=KkyUfKtosw8cRETN3RSvPO2NOPgdEUjOt1ilnFMYvBM,50474 +django/contrib/admin/decorators.py,sha256=dki7GLFKOPT-mB5rxsYX12rox18BywroxmrzjG_VJXM,3481 +django/contrib/admin/exceptions.py,sha256=VJhzurallXV322hhZklmvp3OmDIZZQpbEOuE-CX7938,507 +django/contrib/admin/filters.py,sha256=xWca0wsA_fGlkgV9mAXA3RipmXvj8EKaumU4f_Kyk9s,27668 +django/contrib/admin/forms.py,sha256=0UCJstmmBfp_c_0AqlALJQYy9bxXo9fqoQQICQONGEo,1023 +django/contrib/admin/helpers.py,sha256=MBXCdcywfCWHUSymxYBNW8VyJ7u_lzpmz8ZISayYMR0,18622 +django/contrib/admin/locale/af/LC_MESSAGES/django.mo,sha256=pYiZtE4_lsLZTy0g4XzY3wx8DCNiDZXfRkSpGrDHyd4,17407 +django/contrib/admin/locale/af/LC_MESSAGES/django.po,sha256=yIx87yG_CHe1cWnimDcKnalK65_qaPqe3AAuDCpMjso,18838 +django/contrib/admin/locale/af/LC_MESSAGES/djangojs.mo,sha256=mvjNbeoFfpyc8aHeOi3-X7QGeY6o29IZPXMZT7BnOGU,5773 +django/contrib/admin/locale/af/LC_MESSAGES/djangojs.po,sha256=KdjKyHdgLPDj09K4IgTJ_KWU47ZlNSnuPklRZDT1bHo,6546 +django/contrib/admin/locale/am/LC_MESSAGES/django.mo,sha256=UOwMxYH1r5AEBpu-P9zxHazk3kwI4CtsPosGIYtl6Hs,8309 +django/contrib/admin/locale/am/LC_MESSAGES/django.po,sha256=NmsIZoBEQwyBIqbKjkwCJ2_iMHnMKB87atoT0iuNXrw,14651 +django/contrib/admin/locale/ar/LC_MESSAGES/django.mo,sha256=tzGQ8jSJc406IBBwtAErlXVqaA10glxB8krZtWp1Rq4,19890 +django/contrib/admin/locale/ar/LC_MESSAGES/django.po,sha256=RBJbiYNDy57K592OKghugZFYiHpTvxUoEQ_B26-5i8A,21339 +django/contrib/admin/locale/ar/LC_MESSAGES/djangojs.mo,sha256=xoI2xNKgspuuJe1UCUB9H6Kyp3AGhj5aeo_WEg5e23A,6545 +django/contrib/admin/locale/ar/LC_MESSAGES/djangojs.po,sha256=jwehFDFk3lMIEH43AEU_JyHOm84Seo-OLd5FmGBbaxo,7281 +django/contrib/admin/locale/ar_DZ/LC_MESSAGES/django.mo,sha256=ipELNNGQYb_nHTEQbUFED8IT26L9c2UXsELf4wk0q6k,19947 +django/contrib/admin/locale/ar_DZ/LC_MESSAGES/django.po,sha256=2mGF2NfofR8WgSJPShF5CrMjECXj0dGFcFaZ2lriulc,21378 +django/contrib/admin/locale/ar_DZ/LC_MESSAGES/djangojs.mo,sha256=L3N1U9OFXYZ8OfrvKHLbVvXa40biIDdmon0ZV8BOIvY,6423 +django/contrib/admin/locale/ar_DZ/LC_MESSAGES/djangojs.po,sha256=Atzp95E2dFtSHZHHna0pBCqU_2V7partODX675OBkQs,7206 +django/contrib/admin/locale/ast/LC_MESSAGES/django.mo,sha256=3uffu2zPbQ1rExUsG_ambggq854Vy8HbullkCYdazA4,2476 +django/contrib/admin/locale/ast/LC_MESSAGES/django.po,sha256=wCWFh9viYUhTGOX0mW3fpN2z0kdE6b7IaA-A5zzb3Yo,11676 +django/contrib/admin/locale/ast/LC_MESSAGES/djangojs.mo,sha256=kiG-lzQidkXER5s_6POO1G91mcAv9VAkAXI25jdYBLE,2137 +django/contrib/admin/locale/ast/LC_MESSAGES/djangojs.po,sha256=s4s6aHocTlzGcFi0p7cFGTi3K8AgoPvFCv7-Hji6At0,4085 +django/contrib/admin/locale/az/LC_MESSAGES/django.mo,sha256=iuElxhnD6K_xzp4WhuYrM6-EREY6WBWHntASQFOhFQ8,18963 +django/contrib/admin/locale/az/LC_MESSAGES/django.po,sha256=GiPWzcWbxWjfzDA4F_ed2j1Uce2Ktri8ZXm7ecF9jbk,20383 +django/contrib/admin/locale/az/LC_MESSAGES/djangojs.mo,sha256=sre90ULGTqwvLUyrrTJrj3kEPwlbP-VDg-fqT_02fsE,5225 +django/contrib/admin/locale/az/LC_MESSAGES/djangojs.po,sha256=-o9woCOf9ikbIptd9uTej6G-TtTQPKRSuK86N0Ta0yU,5968 +django/contrib/admin/locale/be/LC_MESSAGES/django.mo,sha256=ndFEwhHu8GP4EZQoJNSqH-oWNLWdEYcbleaFYCU74nI,23275 +django/contrib/admin/locale/be/LC_MESSAGES/django.po,sha256=QAwFZJpkz-Hm6vS5AHyQ8rxowt_LVhMAYC-cS78F9Qg,24597 +django/contrib/admin/locale/be/LC_MESSAGES/djangojs.mo,sha256=e1xbTtl47sBU5ZCUEf4fHN6E7rRkz_HIYCObX0lWDug,7703 +django/contrib/admin/locale/be/LC_MESSAGES/djangojs.po,sha256=DBSHPnSZm7AVqxg1fINkRQ89QVp_cdi4VhQ7Ynd1NWs,8466 +django/contrib/admin/locale/bg/LC_MESSAGES/django.mo,sha256=fNYcFUCFOnBEH_lR4t80bUN6IwkjS5tIs7xWRNxu80I,22994 +django/contrib/admin/locale/bg/LC_MESSAGES/django.po,sha256=1HZYpZgHwqJsPMwasK1O8zv7mDgX3t-2JTdtV_lzM_w,24461 +django/contrib/admin/locale/bg/LC_MESSAGES/djangojs.mo,sha256=IRQMah9wBmq0g9RZ5hBH_dvQD4Q_pmNG4jJHxCGWwZI,7195 +django/contrib/admin/locale/bg/LC_MESSAGES/djangojs.po,sha256=zv5xU9wS1PCdsmmWaV8txSdY4JduEse7w4iWd3QkzsE,7900 +django/contrib/admin/locale/bn/LC_MESSAGES/django.mo,sha256=I3KUX53ePEC-8x_bwkR5spx3WbJRR8Xf67_2Xrr7Ccg,18585 +django/contrib/admin/locale/bn/LC_MESSAGES/django.po,sha256=UvKCBSa5MuxxZ7U5pRWXH6CEQ9WCJH2cQND0jjBmgpQ,22889 +django/contrib/admin/locale/bn/LC_MESSAGES/djangojs.mo,sha256=t_OiMyPMsR2IdH65qfD9qvQfpWbwFueNuY72XSed2Io,2313 +django/contrib/admin/locale/bn/LC_MESSAGES/djangojs.po,sha256=iFwEJi4k3ULklCq9eQNUhKVblivQPJIoC_6lbyEkotY,4576 +django/contrib/admin/locale/br/LC_MESSAGES/django.mo,sha256=yCuMwrrEB_H44UsnKwY0E87sLpect_AMo0GdBjMZRPs,6489 +django/contrib/admin/locale/br/LC_MESSAGES/django.po,sha256=WMU_sN0ENWgyEbKOm8uVQfTQh9sabvKihtSdMt4XQBM,13717 +django/contrib/admin/locale/br/LC_MESSAGES/djangojs.mo,sha256=n7Yx2k9sAVSNtdY-2Ao6VFsnsx4aiExZ3TF_DnnrKU0,1658 +django/contrib/admin/locale/br/LC_MESSAGES/djangojs.po,sha256=gjg-VapbI9n_827CqNYhbtIQ8W9UcMmMObCsxCzReUU,4108 +django/contrib/admin/locale/bs/LC_MESSAGES/django.mo,sha256=44D550fxiO59Pczu5HZ6gvWEClsfmMuaxQWbA4lCW2M,8845 +django/contrib/admin/locale/bs/LC_MESSAGES/django.po,sha256=FrieR1JB4ssdWwYitJVpZO-odzPBKrW4ZsGK9LA595I,14317 +django/contrib/admin/locale/bs/LC_MESSAGES/djangojs.mo,sha256=SupUK-RLDcqJkpLEsOVjgZOWBRKQMALZLRXGEnA623M,1183 +django/contrib/admin/locale/bs/LC_MESSAGES/djangojs.po,sha256=TOtcfw-Spn5Y8Yugv2OlPoaZ5DRwJjRIl-YKiyU092U,3831 +django/contrib/admin/locale/ca/LC_MESSAGES/django.mo,sha256=Wj8KdBSUuUtebE45FK3kvzl155GdTv4KgecoMxFi0_g,17535 +django/contrib/admin/locale/ca/LC_MESSAGES/django.po,sha256=5s5RIsOY5uL1oQQ5IrOhsOgAWWFZ25vTcYURO2dlR8g,19130 +django/contrib/admin/locale/ca/LC_MESSAGES/djangojs.mo,sha256=HjPaPtF5TZGtRu1P40X2YIuRAoKndwurWE4nlZlc7sE,6075 +django/contrib/admin/locale/ca/LC_MESSAGES/djangojs.po,sha256=G7jxAwjnpvvlGinLWDx_awUBu6XwVrdIFqdxBDMVfJQ,6906 +django/contrib/admin/locale/ckb/LC_MESSAGES/django.mo,sha256=ZVy1U4xWrNSU7lUL2mfdqx9MMQODgbi5B5g7Cea_26M,23234 +django/contrib/admin/locale/ckb/LC_MESSAGES/django.po,sha256=TDGnHwoHvZbYmOvsQEU8rHAgzjp5dY1jAwyu3VGblbo,24560 +django/contrib/admin/locale/ckb/LC_MESSAGES/djangojs.mo,sha256=-Czkr04TLjKYmob6CyoJxuS3YcUs7z-I9Sgh6rOyOdc,7671 +django/contrib/admin/locale/ckb/LC_MESSAGES/djangojs.po,sha256=L1r7AcAvTOFO3_uzQ_9oRHEIYAcnDWd_oIIqX133mjU,8392 +django/contrib/admin/locale/cs/LC_MESSAGES/django.mo,sha256=SGPfh9-MhUiRmguk3CGa5GC-Q8LHIo5aHZa4zkpWgow,17736 +django/contrib/admin/locale/cs/LC_MESSAGES/django.po,sha256=4HVVC6Bb4MhileINcde8RmKbHKomhW4xpiyUx91cTdc,19306 +django/contrib/admin/locale/cs/LC_MESSAGES/djangojs.mo,sha256=OiM40p3ioK9FD4JWLb2jYP75kcurEcn9ih_HDL7Pyus,5851 +django/contrib/admin/locale/cs/LC_MESSAGES/djangojs.po,sha256=hh7P3DpEzkCb7M6d2iFwHKp1CzbrmMgeyAGP96BxprE,6629 +django/contrib/admin/locale/cy/LC_MESSAGES/django.mo,sha256=7ifUyqraN1n0hbyTVb_UjRIG1jdn1HcwehugHBiQvHs,12521 +django/contrib/admin/locale/cy/LC_MESSAGES/django.po,sha256=bS_gUoKklZwd3Vs0YlRTt24-k5ure5ObTu-b5nB5qCA,15918 +django/contrib/admin/locale/cy/LC_MESSAGES/djangojs.mo,sha256=fOCA1fXEmJw_QaXEISLkuBhaMnEmP1ssP9lhqdCCC3c,3801 +django/contrib/admin/locale/cy/LC_MESSAGES/djangojs.po,sha256=OVcS-3tlMJS_T58qnZbWLGczHwFyAjbuWr35YwuxAVM,5082 +django/contrib/admin/locale/da/LC_MESSAGES/django.mo,sha256=UDegq2r-2A-LjbDNaiKxMhVAzZwoKyumfoJE-Y5rMPg,18085 +django/contrib/admin/locale/da/LC_MESSAGES/django.po,sha256=7UqmqCRnGeBRt-RnTa0UMjGVncSjWhddlOdYo0XS6iU,19498 +django/contrib/admin/locale/da/LC_MESSAGES/djangojs.mo,sha256=Y-_2QRAeQ3Mtl3stD2J4eHXdNyuzHcUcpIlvTEuDs6k,5984 +django/contrib/admin/locale/da/LC_MESSAGES/djangojs.po,sha256=tiONUqX3jJnHZ1BbMIOzuQH-SMp2ESlA0RuGJSumy_U,6866 +django/contrib/admin/locale/de/LC_MESSAGES/django.mo,sha256=v2tKhZL-KDMv4UDzNuUgXDEIIoE787wFfpKHk0PUTHU,18731 +django/contrib/admin/locale/de/LC_MESSAGES/django.po,sha256=lNY-xVF6alq55oF3Jn6wj2WWb2j9HO52OUVVxxqDHOQ,20259 +django/contrib/admin/locale/de/LC_MESSAGES/djangojs.mo,sha256=kdve4d181AhGDekHiaxt79iyVWvahp3k9SN3H6Xx_9w,6130 +django/contrib/admin/locale/de/LC_MESSAGES/djangojs.po,sha256=tb25boxPrggqnB7mB2M5iyZ6CEM87PBZNa_JzaOXFF4,6921 +django/contrib/admin/locale/dsb/LC_MESSAGES/django.mo,sha256=oimRC2FFZUE6ZhrBuC9AHS3GQ6zureqSVIZFdTdHO4E,18813 +django/contrib/admin/locale/dsb/LC_MESSAGES/django.po,sha256=ZSmE6VCjs0JkMfSTA7CBaerto6eLqxbmY1hpiY_wMkk,20102 +django/contrib/admin/locale/dsb/LC_MESSAGES/djangojs.mo,sha256=y9yhJ8ITu5uRDID0AX6dpqWLE5-0bqDuVmUBJ-JJ6H8,6609 +django/contrib/admin/locale/dsb/LC_MESSAGES/djangojs.po,sha256=ca5XVYaT4H4kK-LvvBL1fcpCxRbd1OrbSNk5DAZcfaM,7335 +django/contrib/admin/locale/el/LC_MESSAGES/django.mo,sha256=54kG_94nJigDgJpZM8Cy58G_AGLdS5csJFEjTTvJBfM,22968 +django/contrib/admin/locale/el/LC_MESSAGES/django.po,sha256=f2gUQtedb0sZCBxAoy3hP2rGXT9ysP5UTOlCBvu2NvI,24555 +django/contrib/admin/locale/el/LC_MESSAGES/djangojs.mo,sha256=cix1Bkj2hYO_ofRvtPDhJ9rBnTR6-cnKCFKpZrsxJ34,6509 +django/contrib/admin/locale/el/LC_MESSAGES/djangojs.po,sha256=R05tMMuQEjVQpioy_ayQgFBlLM4WdwXthkMguW6ga24,7339 +django/contrib/admin/locale/en/LC_MESSAGES/django.mo,sha256=U0OV81NfbuNL9ctF-gbGUG5al1StqN-daB-F-gFBFC8,356 +django/contrib/admin/locale/en/LC_MESSAGES/django.po,sha256=_LT1ydmUGadrxathYSS-mZOSmW1hdbKisiEhmTjU8Aw,25103 +django/contrib/admin/locale/en/LC_MESSAGES/djangojs.mo,sha256=U0OV81NfbuNL9ctF-gbGUG5al1StqN-daB-F-gFBFC8,356 +django/contrib/admin/locale/en/LC_MESSAGES/djangojs.po,sha256=XwjM4uE51Mw04zU5xdyW86VlEKYR25s3JxZIO6e8oEM,8920 +django/contrib/admin/locale/en_AU/LC_MESSAGES/django.mo,sha256=QEvxPxDqNUmq8NxN-8c_F6KMEcWWum3YzERlc3_S_DM,16191 +django/contrib/admin/locale/en_AU/LC_MESSAGES/django.po,sha256=BoVuGaPoGdQcF3zdgGRxrNKSq2XLHTvKfINCyU8t86Y,17548 +django/contrib/admin/locale/en_AU/LC_MESSAGES/djangojs.mo,sha256=s0qPS8TjODtPo4miSznQfS6M8CQK9URDeMKeQsp7DK4,5001 +django/contrib/admin/locale/en_AU/LC_MESSAGES/djangojs.po,sha256=YecPU6VmUDDNNIzZVl2Wgd6lNRp3msJaW8FhdHMtEyc,5553 +django/contrib/admin/locale/en_GB/LC_MESSAGES/django.mo,sha256=pFkTMRDDj76WA91wtGPjUB7Pq2PN7IJEC54Tewobrlc,11159 +django/contrib/admin/locale/en_GB/LC_MESSAGES/django.po,sha256=REUJMGLGRyDMkqh4kJdYXO9R0Y6CULFVumJ_P3a0nv0,15313 +django/contrib/admin/locale/en_GB/LC_MESSAGES/djangojs.mo,sha256=hW325c2HlYIIdvNE308c935_IaDu7_qeP-NlwPnklhQ,3147 +django/contrib/admin/locale/en_GB/LC_MESSAGES/djangojs.po,sha256=Ol5j1-BLbtSIDgbcC0o7tg_uHImcjJQmkA4-kSmZY9o,4581 +django/contrib/admin/locale/eo/LC_MESSAGES/django.mo,sha256=zAeGKzSNit2LNNX97WXaARyzxKIasOmTutcTPqpRKAE,14194 +django/contrib/admin/locale/eo/LC_MESSAGES/django.po,sha256=LHoYvbenD9A05EkHtOk8raW7aKyyiqN50d6OHMxnAZY,17258 +django/contrib/admin/locale/eo/LC_MESSAGES/djangojs.mo,sha256=hGXULxueBP24xSZ0StxfFCO0vwZZME7OEERxgnWBqcI,4595 +django/contrib/admin/locale/eo/LC_MESSAGES/djangojs.po,sha256=enHGjcvH_B0Z9K2Vk391qHAKT7QamqUcx8xPzYLQltA,5698 +django/contrib/admin/locale/es/LC_MESSAGES/django.mo,sha256=WhCCm1eoYPJtqX5Xn7Y2nBsW9bZfhZIlK0AZmzIEvZI,19163 +django/contrib/admin/locale/es/LC_MESSAGES/django.po,sha256=nrMSoVGHvSjYvanuRuYWd7eAToM78IR4HPz5wXzIoac,21272 +django/contrib/admin/locale/es/LC_MESSAGES/djangojs.mo,sha256=GH3zJZEVfJc_REXoYwaCNzhL4EHJosWa7qDmeFRWbco,6347 +django/contrib/admin/locale/es/LC_MESSAGES/djangojs.po,sha256=aqR-EZ2XUWNclkSxVa1xKFdaZpw7sQMORSMMINDRjlQ,7290 +django/contrib/admin/locale/es_AR/LC_MESSAGES/django.mo,sha256=_YhWI2PXQ4y66adv6Ml2PMMr2_dy22BFB0BVZfiGxJ4,19032 +django/contrib/admin/locale/es_AR/LC_MESSAGES/django.po,sha256=KmDcmElOGL04i1RnZgjsF_7v2pPGVHiuwq29x8Kpc-U,20412 +django/contrib/admin/locale/es_AR/LC_MESSAGES/djangojs.mo,sha256=2VDkQJCHtYndAr3kz53BhLwxqbDzkQhoDwNedrGtMEw,6647 +django/contrib/admin/locale/es_AR/LC_MESSAGES/djangojs.po,sha256=MRHZAsXyTEiYtlqmybyuJgwfdHtjNOu4EgcWdzzVF4M,7351 +django/contrib/admin/locale/es_CO/LC_MESSAGES/django.mo,sha256=0k8kSiwIawYCa-Lao0uetNPLUzd4m_me3tCAVBvgcSw,15156 +django/contrib/admin/locale/es_CO/LC_MESSAGES/django.po,sha256=4T_syIsVY-nyvn5gEAtfN-ejPrJSUpNT2dmzufxaBsE,17782 +django/contrib/admin/locale/es_CO/LC_MESSAGES/djangojs.mo,sha256=PLS10KgX10kxyy7MUkiyLjqhMzRgkAFGPmzugx9AGfs,3895 +django/contrib/admin/locale/es_CO/LC_MESSAGES/djangojs.po,sha256=Y4bkC8vkJE6kqLbN8t56dR5670B06sB2fbtVzmQygK8,5176 +django/contrib/admin/locale/es_MX/LC_MESSAGES/django.mo,sha256=O8CbY83U4fTvvPPuONtlMx6jpA-qkrYxNTkLuMrWiRQ,11517 +django/contrib/admin/locale/es_MX/LC_MESSAGES/django.po,sha256=8MSKNxhHMp0ksr5AUUAbs_H6MtMjIqkaFwmaJlBxELs,16307 +django/contrib/admin/locale/es_MX/LC_MESSAGES/djangojs.mo,sha256=2w3CMJFBugP8xMOmXsDU82xUm8cWGRUGZQX5XjiTCpM,3380 +django/contrib/admin/locale/es_MX/LC_MESSAGES/djangojs.po,sha256=OP9cBsdCf3zZAXiKBMJPvY1AHwC_WE1k2vKlzVCtUec,4761 +django/contrib/admin/locale/es_VE/LC_MESSAGES/django.mo,sha256=himCORjsM-U3QMYoURSRbVv09i0P7-cfVh26aQgGnKg,16837 +django/contrib/admin/locale/es_VE/LC_MESSAGES/django.po,sha256=mlmaSYIHpa-Vp3f3NJfdt2RXB88CVZRoPEMfl-tccr0,18144 +django/contrib/admin/locale/es_VE/LC_MESSAGES/djangojs.mo,sha256=Zy-Hj_Mr2FiMiGGrZyssN7GZJrbxRj3_yKQFZKR36Ro,4635 +django/contrib/admin/locale/es_VE/LC_MESSAGES/djangojs.po,sha256=RI8CIdewjL3bAivniMOl7lA9tD7caP4zEo2WK71cX7c,5151 +django/contrib/admin/locale/et/LC_MESSAGES/django.mo,sha256=b1dS8_M7Ehzk0nZlgxMVrVGP7WqKZaGP7P0hRvUIb3E,17574 +django/contrib/admin/locale/et/LC_MESSAGES/django.po,sha256=tN1MhM7VyCCQn7nX5qE5r23hyK28BxEctylyZlIpikY,19239 +django/contrib/admin/locale/et/LC_MESSAGES/djangojs.mo,sha256=VftLeDX1ngXgy3Rvztk21zNcPus9Vbr-Gp4MnChaRbM,5880 +django/contrib/admin/locale/et/LC_MESSAGES/djangojs.po,sha256=yi-8VC9eCScS98u4CIDirsfG_a5-BDnO0XrI9Gm4lK8,6718 +django/contrib/admin/locale/eu/LC_MESSAGES/django.mo,sha256=CBk_9H8S8LlK8hfGQsEB7IgSms-BsURzAFrX9Zrsw4c,15009 +django/contrib/admin/locale/eu/LC_MESSAGES/django.po,sha256=9vnPgJRPcdSa4P5rguB5zqWQC1xAt4POzDw-mSD8UHs,17489 +django/contrib/admin/locale/eu/LC_MESSAGES/djangojs.mo,sha256=vKtO_mbexiW-EO-L-G0PYruvc8N7GOF94HWQCkDnJNQ,4480 +django/contrib/admin/locale/eu/LC_MESSAGES/djangojs.po,sha256=BAWU-6kH8PLBxx_d9ZeeueB_lV5KFXjbRJXgKN43nQ4,5560 +django/contrib/admin/locale/fa/LC_MESSAGES/django.mo,sha256=Y01G4go-V_BZ1aR7u5Z9StnqL0BS5kvj2ZlSfffhToY,20889 +django/contrib/admin/locale/fa/LC_MESSAGES/django.po,sha256=1q914M9N6NfUgP72mIhTRMYukc1r-GpVV5Pt4qESTTM,23054 +django/contrib/admin/locale/fa/LC_MESSAGES/djangojs.mo,sha256=MAje4ub3vWYhiKrVR_LvxAIqkvOlFpVcXQEBz3ezlPs,6050 +django/contrib/admin/locale/fa/LC_MESSAGES/djangojs.po,sha256=1nzEmRuswDmyCCMShGH2CYdjMY7tUuedfN4kDCEnTCM,6859 +django/contrib/admin/locale/fi/LC_MESSAGES/django.mo,sha256=o2bZycvUaAigyMRW2EOSkqJy2Xq0BfvGB2eEWV-h9jg,17289 +django/contrib/admin/locale/fi/LC_MESSAGES/django.po,sha256=dBux4oefCngbb6PCukB-U6XrpY5tym9B0CMIsWk2LIs,18990 +django/contrib/admin/locale/fi/LC_MESSAGES/djangojs.mo,sha256=ZIJoZ4T-2iNfpdHiyqsKTqIC9lgGAPOCbQhk7Lh36N4,5822 +django/contrib/admin/locale/fi/LC_MESSAGES/djangojs.po,sha256=6suDw1Cj_AVqQocM67EN7ZZs6hWgvTa9TP80a7Y9xaM,6742 +django/contrib/admin/locale/fr/LC_MESSAGES/django.mo,sha256=yDGZobllSEwKmcxgbEdivBgJrxcpSgytRR4tdTGsblo,20013 +django/contrib/admin/locale/fr/LC_MESSAGES/django.po,sha256=IjnhRml2Cqxd1Z93vz5CM3GjspM4rIuv9LsjF1YQFQk,21340 +django/contrib/admin/locale/fr/LC_MESSAGES/djangojs.mo,sha256=eSiwCTcZrv3jKlu_KVL9myvW6Yc6lSWx1CcA_T6qSng,6509 +django/contrib/admin/locale/fr/LC_MESSAGES/djangojs.po,sha256=lfTg4_vFyMbkCqTThaSn4f-D2S0sGNdW0PFWJgBz2ck,7226 +django/contrib/admin/locale/fy/LC_MESSAGES/django.mo,sha256=mWnHXGJUtiewo1F0bsuJCE_YBh7-Ak9gjTpwjOAv-HI,476 +django/contrib/admin/locale/fy/LC_MESSAGES/django.po,sha256=oSKEF_DInUC42Xzhw9HiTobJjE2fLNI1VE5_p6rqnCE,10499 +django/contrib/admin/locale/fy/LC_MESSAGES/djangojs.mo,sha256=YQQy7wpjBORD9Isd-p0lLzYrUgAqv770_56-vXa0EOc,476 +django/contrib/admin/locale/fy/LC_MESSAGES/djangojs.po,sha256=efBDCcu43j4SRxN8duO5Yfe7NlpcM88kUPzz-qOkC04,2864 +django/contrib/admin/locale/ga/LC_MESSAGES/django.mo,sha256=cIOjVge5KC37U6g-0MMaP5p8N0XJxzK6oJqWNUw9jfI,15075 +django/contrib/admin/locale/ga/LC_MESSAGES/django.po,sha256=Qx1D0cEGIIPnO10I_83IfU3faEYpp0lm-KHg48lJMxE,17687 +django/contrib/admin/locale/ga/LC_MESSAGES/djangojs.mo,sha256=G-9VfhiMcooTbAI1IMvbvUwj_h_ttNyxGS89nIgrpw4,5247 +django/contrib/admin/locale/ga/LC_MESSAGES/djangojs.po,sha256=DsDMYhm5PEpFBBGepf2iRD0qCkh2r45Y4tIHzFtjJAo,5920 +django/contrib/admin/locale/gd/LC_MESSAGES/django.mo,sha256=HEqiGvjMp0NnfIS0Z-c1i8SicEtMPIg8LvNMh-SXiPg,18871 +django/contrib/admin/locale/gd/LC_MESSAGES/django.po,sha256=cZWnJyEoyGFLbk_M4-eddTJLKJ0dqTIlIj4w6YwcjJg,20139 +django/contrib/admin/locale/gd/LC_MESSAGES/djangojs.mo,sha256=QA2_hxHGzt_y0U8sAGQaT27IvvyWrehLPKP2X1jAvEs,5904 +django/contrib/admin/locale/gd/LC_MESSAGES/djangojs.po,sha256=KyYGpFHq2E55dK005xzH0I2RD-C2kD6BlJi8bcMjtRA,6540 +django/contrib/admin/locale/gl/LC_MESSAGES/django.mo,sha256=0sPdq8aidlYj1CYL0on_rwwp80oN1Ex-vw2pehBon-M,18542 +django/contrib/admin/locale/gl/LC_MESSAGES/django.po,sha256=GFJrhH0aQZsLrUe4Dbzwi7BDtp7KRyklnnzZFr2-BqU,20074 +django/contrib/admin/locale/gl/LC_MESSAGES/djangojs.mo,sha256=AePXV8VZToob6vNEsOqyuijJYv-QxRfBO7BrBUgLi_Q,6083 +django/contrib/admin/locale/gl/LC_MESSAGES/djangojs.po,sha256=eDMuV05SuQrACfcovaPb8Zsk8hP4g1GMx6507QNFAko,6868 +django/contrib/admin/locale/he/LC_MESSAGES/django.mo,sha256=DQnjAK201x7Zp_eoZiuq6GJZ7ML2WVeP5dXJNaeSEBs,19856 +django/contrib/admin/locale/he/LC_MESSAGES/django.po,sha256=-YnanZ_omTTjDkO8o-chGB6NSsKGLWmO7aWGnIUiJv8,21341 +django/contrib/admin/locale/he/LC_MESSAGES/djangojs.mo,sha256=E-ZlEnXIeJIkXWcthR9kgNJBzDp6gT7mKKDUpEVqM7k,6893 +django/contrib/admin/locale/he/LC_MESSAGES/djangojs.po,sha256=1tenNpIJmcT5wTRNETkSO7cDlDlL1Mqpnb-klRlHw-s,7809 +django/contrib/admin/locale/hi/LC_MESSAGES/django.mo,sha256=yWjTYyrVxXxwBWgPsC7IJ9IxL_85v378To4PCEEcwuI,13811 +django/contrib/admin/locale/hi/LC_MESSAGES/django.po,sha256=FpKFToDAMsgc1aG6-CVpi5wAxhMQjkZxz_89kCiKmS4,19426 +django/contrib/admin/locale/hi/LC_MESSAGES/djangojs.mo,sha256=yCUHDS17dQDKcAbqCg5q8ualaUgaa9qndORgM-tLCIw,4893 +django/contrib/admin/locale/hi/LC_MESSAGES/djangojs.po,sha256=U9rb5tPMICK50bRyTl40lvn-tvh6xL_6o7xIPkzfKi0,6378 +django/contrib/admin/locale/hr/LC_MESSAGES/django.mo,sha256=3TR3uFcd0pnkDi551WaB9IyKX1aOazH7USxqc0lA0KQ,14702 +django/contrib/admin/locale/hr/LC_MESSAGES/django.po,sha256=qcW7tvZoWZIR8l-nMRexGDD8VlrOD7l5Fah6-ecilMk,17378 +django/contrib/admin/locale/hr/LC_MESSAGES/djangojs.mo,sha256=KR34lviGYh1esCkPE9xcDE1pQ_q-RxK1R2LPjnG553w,3360 +django/contrib/admin/locale/hr/LC_MESSAGES/djangojs.po,sha256=w7AqbYcLtu88R3KIKKKXyRt2gwBBBnr-ulxONWbw01I,4870 +django/contrib/admin/locale/hsb/LC_MESSAGES/django.mo,sha256=PPTNUZAf0rsc54f01Xgntn3dIwGQuDpUj-48YbyVqic,18595 +django/contrib/admin/locale/hsb/LC_MESSAGES/django.po,sha256=AYuTF9tLEEtt1xbIVwjxP4ijfBYJ11VoxxLoUOtyvUM,19883 +django/contrib/admin/locale/hsb/LC_MESSAGES/djangojs.mo,sha256=4kIdcgSBZ5ldlS0LKZV8-gh45-AcRTMQc784VmoRmP8,6693 +django/contrib/admin/locale/hsb/LC_MESSAGES/djangojs.po,sha256=7Lx6Be_8i8g2GtqOfc1UKpKgwF2CFXfYG4PrjKV0t-0,7425 +django/contrib/admin/locale/hu/LC_MESSAGES/django.mo,sha256=fMea7oqZDrBAicpyubIq-JCPg_7QBws7N0PdyBwebOo,18629 +django/contrib/admin/locale/hu/LC_MESSAGES/django.po,sha256=eFRlDToCWD_BZVyRxW6L_xLIfItPmHQshxoOFC53iV0,20211 +django/contrib/admin/locale/hu/LC_MESSAGES/djangojs.mo,sha256=tXeG5F6_Yh6qHmNUNrlgzavH1Wc8NZb3fj4oEW9qE_M,6034 +django/contrib/admin/locale/hu/LC_MESSAGES/djangojs.po,sha256=pvn7ae43zgVp3mpjXPI7_JCqvQLaHZZF7hTasP2uZx0,6854 +django/contrib/admin/locale/hy/LC_MESSAGES/django.mo,sha256=Dcx9cOsYBfbgQgoAQoLhn_cG1d2sKGV6dag4DwnUTaY,18274 +django/contrib/admin/locale/hy/LC_MESSAGES/django.po,sha256=CnQlRZ_DUILMIqVEgUTT2sufAseEKJHHjWsYr_LAqi8,20771 +django/contrib/admin/locale/hy/LC_MESSAGES/djangojs.mo,sha256=ttfGmyEN0-3bM-WmfCge2lG8inubMPOzFXfZrfX9sfw,5636 +django/contrib/admin/locale/hy/LC_MESSAGES/djangojs.po,sha256=jf94wzUOMQaKSBR-77aijQXfdRAqiYSeAQopiT_8Obc,6046 +django/contrib/admin/locale/ia/LC_MESSAGES/django.mo,sha256=SRKlr8RqW8FQhzMsXdA9HNqttO3hc0xf4QdQJd4Dy8c,11278 +django/contrib/admin/locale/ia/LC_MESSAGES/django.po,sha256=pBQLQsMinRNh0UzIHBy3qEW0etUWMhFALu4-h-woFyE,15337 +django/contrib/admin/locale/ia/LC_MESSAGES/djangojs.mo,sha256=28MiqUf-0-p3PIaongqgPQp2F3D54MLAujPslVACAls,3177 +django/contrib/admin/locale/ia/LC_MESSAGES/djangojs.po,sha256=CauoEc8Fiowa8k6K-f9N8fQDle40qsgtXdNPDHBiudQ,4567 +django/contrib/admin/locale/id/LC_MESSAGES/django.mo,sha256=agdqqmXdd_J-k_lOU9-zPiSFiXYblTNp9alKhSEQkuc,17412 +django/contrib/admin/locale/id/LC_MESSAGES/django.po,sha256=HXaL2REJL9m2lutIxoiAoKK_YNUa6l8KxoqYdCH1q9c,19182 +django/contrib/admin/locale/id/LC_MESSAGES/djangojs.mo,sha256=aCPmIcwloBrlvfAf95HZfOgVs7XU9Bp064Sn08pQK1E,5275 +django/contrib/admin/locale/id/LC_MESSAGES/djangojs.po,sha256=x_D6AQiyGC-AJL889Q51JkmlqiVHfyAwGdA3Ck9_Z7Q,6589 +django/contrib/admin/locale/io/LC_MESSAGES/django.mo,sha256=URiYZQZpROBedC-AkpVo0q3Tz78VfkmwN1W7j6jYpMo,12624 +django/contrib/admin/locale/io/LC_MESSAGES/django.po,sha256=y0WXY7v_9ff-ZbFasj33loG-xWlFO8ttvCB6YPyF7FQ,15562 +django/contrib/admin/locale/io/LC_MESSAGES/djangojs.mo,sha256=nMu5JhIy8Fjie0g5bT8-h42YElCiS00b4h8ej_Ie-w0,464 +django/contrib/admin/locale/io/LC_MESSAGES/djangojs.po,sha256=WLh40q6yDs-8ZG1hpz6kfMQDXuUzOZa7cqtEPDywxG4,2852 +django/contrib/admin/locale/is/LC_MESSAGES/django.mo,sha256=csD3bmz3iQgLLdSqCKOmY_d893147TvDumrpRVoRTY0,16804 +django/contrib/admin/locale/is/LC_MESSAGES/django.po,sha256=tXgb3ARXP5tPa5iEYwwiHscDGfjS5JgIV2BsUX8OnjE,18222 +django/contrib/admin/locale/is/LC_MESSAGES/djangojs.mo,sha256=Z3ujWoenX5yYTAUmHUSCvHcuV65nQmYKPv6Jo9ygx_c,5174 +django/contrib/admin/locale/is/LC_MESSAGES/djangojs.po,sha256=YPf4XqfnpvrS9irAS8O4G0jgU5PCoQ9C-w3MoDipelk,5847 +django/contrib/admin/locale/it/LC_MESSAGES/django.mo,sha256=N_pVjbd3SkV4xtFMvwtlwRWo_ulGR83SzKcPD8wiFgY,18505 +django/contrib/admin/locale/it/LC_MESSAGES/django.po,sha256=hVYj4UvphkCqlFzH6NtyRAZgGewCKNjVnON0vHtxGKY,20338 +django/contrib/admin/locale/it/LC_MESSAGES/djangojs.mo,sha256=FWtyPVubufiaNKFxy4DQ0KbW93GUt-x1Mc8ZKhqokwg,5640 +django/contrib/admin/locale/it/LC_MESSAGES/djangojs.po,sha256=VRqeY7gYmcP5oWVMgpHL_Br8cAkFXphFQStFpIbWOrc,6578 +django/contrib/admin/locale/ja/LC_MESSAGES/django.mo,sha256=Cvue4zVcYA-3T0l6jKFglMDhzqNeLuGKKdTZ-JsZM4o,19945 +django/contrib/admin/locale/ja/LC_MESSAGES/django.po,sha256=DpjilJj0IrkqRNsegdDCs9_VzokjHA8j8NIXrg6Th4U,21521 +django/contrib/admin/locale/ja/LC_MESSAGES/djangojs.mo,sha256=XBOtJbkByhQEMUxvnqSr1XhBCe-DsII4Ke5pISJZAb8,6233 +django/contrib/admin/locale/ja/LC_MESSAGES/djangojs.po,sha256=SrJeh3-t73Z2gY7nVP01cgZE6H11pryDms1pqrQKjnw,6968 +django/contrib/admin/locale/ka/LC_MESSAGES/django.mo,sha256=M3FBRrXFFa87DlUi0HDD_n7a_0IYElQAOafJoIH_i60,20101 +django/contrib/admin/locale/ka/LC_MESSAGES/django.po,sha256=abkt7pw4Kc-Y74ZCpAk_VpFWIkr7trseCtQdM6IUYpQ,23527 +django/contrib/admin/locale/ka/LC_MESSAGES/djangojs.mo,sha256=GlPU3qUavvU0FXPfvCl-8KboYhDOmMsKM-tv14NqOac,5516 +django/contrib/admin/locale/ka/LC_MESSAGES/djangojs.po,sha256=jDpB9c_edcLoFPHFIogOSPrFkssOjIdxtCA_lum8UCs,6762 +django/contrib/admin/locale/kab/LC_MESSAGES/django.mo,sha256=9QKEWgr8YQV17OJ14rMusgV8b79ZgOOsX4aIFMZrEto,3531 +django/contrib/admin/locale/kab/LC_MESSAGES/django.po,sha256=cSOG_HqsNE4tA5YYDd6txMFoUul8d5UKvk77ZhaqOK0,11711 +django/contrib/admin/locale/kab/LC_MESSAGES/djangojs.mo,sha256=nqwZHJdtjHUSFDJmC0nPNyvWcAdcoRcN3f-4XPIItvs,1844 +django/contrib/admin/locale/kab/LC_MESSAGES/djangojs.po,sha256=tF3RH22p2E236Cv6lpIWQxtuPFeWOvJ-Ery3vBUv6co,3713 +django/contrib/admin/locale/kk/LC_MESSAGES/django.mo,sha256=f2WU3e7dOz0XXHFFe0gnCm1MAPCJ9sva2OUnWYTHOJg,12845 +django/contrib/admin/locale/kk/LC_MESSAGES/django.po,sha256=D1vF3nqANT46f17Gc2D2iGCKyysHAyEmv9nBei6NRA4,17837 +django/contrib/admin/locale/kk/LC_MESSAGES/djangojs.mo,sha256=cBxp5pFJYUF2-zXxPVBIG06UNq6XAeZ72uRLwGeLbiE,2387 +django/contrib/admin/locale/kk/LC_MESSAGES/djangojs.po,sha256=Y30fcDpi31Fn7DU7JGqROAiZY76iumoiW9qGAgPCCbU,4459 +django/contrib/admin/locale/km/LC_MESSAGES/django.mo,sha256=eOe9EcFPzAWrTjbGUr-m6RAz2TryC-qHKbqRP337lPY,10403 +django/contrib/admin/locale/km/LC_MESSAGES/django.po,sha256=RSxy5vY2sgC43h-9sl6eomkFvxClvH_Ka4lFiwTvc2I,17103 +django/contrib/admin/locale/km/LC_MESSAGES/djangojs.mo,sha256=Ja8PIXmw6FMREHZhhBtGrr3nRKQF_rVjgLasGPnU95w,1334 +django/contrib/admin/locale/km/LC_MESSAGES/djangojs.po,sha256=LH4h4toEgpVBb9yjw7d9JQ8sdU0WIZD-M025JNlLXAU,3846 +django/contrib/admin/locale/kn/LC_MESSAGES/django.mo,sha256=955iPq05ru6tm_iPFVMebxwvZMtEa5_7GaFG1mPt6HU,9203 +django/contrib/admin/locale/kn/LC_MESSAGES/django.po,sha256=-4YAm0MyhS-wp4RQmo0TzWvqYqmzHFNpIBtdQlg_8Dw,16059 +django/contrib/admin/locale/kn/LC_MESSAGES/djangojs.mo,sha256=kJsCOGf62XOWTKcB9AF6Oc-GqHl2LFtz-qw0spjcU_w,1847 +django/contrib/admin/locale/kn/LC_MESSAGES/djangojs.po,sha256=zzl7QZ5DfdyNWrkIqYlpUcZiTdlZXx_ktahyXqM2-0Q,5022 +django/contrib/admin/locale/ko/LC_MESSAGES/django.mo,sha256=rtqJ_W6Ed28-mc7LE0joZCEepDbdiIIlR52h5RhLmoY,18721 +django/contrib/admin/locale/ko/LC_MESSAGES/django.po,sha256=Ugj9PktRuvCSUPOhn3elHuhsa0nN5sRECmUOLwRSHLs,20839 +django/contrib/admin/locale/ko/LC_MESSAGES/djangojs.mo,sha256=wZ2hHD7BJgl855rxKburyumBSS7ECkL3kqNv2col5mo,5985 +django/contrib/admin/locale/ko/LC_MESSAGES/djangojs.po,sha256=qvndtDKv_TIoeYuEErRb62oSaCeS2iFYkjyZ4m8YKHI,6899 +django/contrib/admin/locale/ky/LC_MESSAGES/django.mo,sha256=eg-TnIzJO4h3q_FS2a1LnCs7qOf5dpNJwvRD99ZZ0GQ,20129 +django/contrib/admin/locale/ky/LC_MESSAGES/django.po,sha256=dWxU3yUAKHUGKdVJbRLkS6fJEefPBk2XM0i2INcRPms,21335 +django/contrib/admin/locale/ky/LC_MESSAGES/djangojs.mo,sha256=VuBYBwFwIHC27GFZiHY2_4AB0cME2R0Q3juczjOs3G0,5888 +django/contrib/admin/locale/ky/LC_MESSAGES/djangojs.po,sha256=uMk9CxL1wP45goq2093lYMza7LRuO4XbVo5RRWlsbaE,6432 +django/contrib/admin/locale/lb/LC_MESSAGES/django.mo,sha256=8GGM2sYG6GQTQwQFJ7lbg7w32SvqgSzNRZIUi9dIe6M,913 +django/contrib/admin/locale/lb/LC_MESSAGES/django.po,sha256=PZ3sL-HvghnlIdrdPovNJP6wDrdDMSYp_M1ok6dodrw,11078 +django/contrib/admin/locale/lb/LC_MESSAGES/djangojs.mo,sha256=xokesKl7h7k9dXFKIJwGETgwx1Ytq6mk2erBSxkgY-o,474 +django/contrib/admin/locale/lb/LC_MESSAGES/djangojs.po,sha256=fiMelo6K0_RITx8b9k26X1R86Ck2daQXm86FLJpzt20,2862 +django/contrib/admin/locale/lt/LC_MESSAGES/django.mo,sha256=SpaNUiaGtDlX5qngVj0dWdqNLSin8EOXXyBvRM9AnKg,17033 +django/contrib/admin/locale/lt/LC_MESSAGES/django.po,sha256=tHnRrSNG2ENVduP0sOffCIYQUn69O6zIev3Bb7PjKb0,18497 +django/contrib/admin/locale/lt/LC_MESSAGES/djangojs.mo,sha256=vZtnYQupzdTjVHnWrtjkC2QKNpsca5yrpb4SDuFx0_0,5183 +django/contrib/admin/locale/lt/LC_MESSAGES/djangojs.po,sha256=dMjFClA0mh5g0aNFTyHC8nbYxwmFD0-j-7gCKD8NFnw,5864 +django/contrib/admin/locale/lv/LC_MESSAGES/django.mo,sha256=pzm-BGE4jnD7OPob0a6eI_gQYRAMtHJOqmnmJieJwuU,18547 +django/contrib/admin/locale/lv/LC_MESSAGES/django.po,sha256=9BAd3sT-aFEeUupwGWxIjT4YLoA2OC3lN2hqdXGayiM,20103 +django/contrib/admin/locale/lv/LC_MESSAGES/djangojs.mo,sha256=TfQupQgc6UMUbj_6MoEEO87VmZTsh2McSDl_4Dsqgvo,6446 +django/contrib/admin/locale/lv/LC_MESSAGES/djangojs.po,sha256=cT0J4Bvh8UEdNq2HphcOwJBkgXwXNXl-xhwNt6GBcqg,7336 +django/contrib/admin/locale/mk/LC_MESSAGES/django.mo,sha256=xcKetKf7XcO-4vbWEIoI2c40gRE2twuiINaby6ypO7Q,17948 +django/contrib/admin/locale/mk/LC_MESSAGES/django.po,sha256=hx2peq-wztDHtiST_zZ58c7rjZ6jSvDDXhVOTmyUDzI,21063 +django/contrib/admin/locale/mk/LC_MESSAGES/djangojs.mo,sha256=8BkWjadml2f1lDeH-IULdxsogXSK8NpVuu293GvcQc8,4719 +django/contrib/admin/locale/mk/LC_MESSAGES/djangojs.po,sha256=u9mVSzbIgA1uRgV_L8ZOZLelyknoKFvXH0HbBurezf8,6312 +django/contrib/admin/locale/ml/LC_MESSAGES/django.mo,sha256=4Y1KAip3NNsoRc9Zz3k0YFLzes3DNRFvAXWSTBivXDk,20830 +django/contrib/admin/locale/ml/LC_MESSAGES/django.po,sha256=jL9i3kmOnoKYDq2RiF90WCc55KeA8EBN9dmPHjuUfmo,24532 +django/contrib/admin/locale/ml/LC_MESSAGES/djangojs.mo,sha256=COohY0mAHAOkv1eNzLkaGZy8mimXzcDK1EgRd3tTB_E,6200 +django/contrib/admin/locale/ml/LC_MESSAGES/djangojs.po,sha256=NvN0sF_w5tkc3bND4lBtCHsIDLkwqdEPo-8wi2MTQ14,7128 +django/contrib/admin/locale/mn/LC_MESSAGES/django.mo,sha256=6Jhz8HVVnFDWT1kYR0QemGIK2C3AFIyLO34uqG0-zus,22236 +django/contrib/admin/locale/mn/LC_MESSAGES/django.po,sha256=uh2ZAdEdbTkIU3ORSOvgaetcF3kgR5WlA1f_2nWJ0ow,23694 +django/contrib/admin/locale/mn/LC_MESSAGES/djangojs.mo,sha256=H7fIPdWTK3_iuC0WRBJdfXN8zO77p7-IzTviEUVQJ2U,5228 +django/contrib/admin/locale/mn/LC_MESSAGES/djangojs.po,sha256=vJIqqVG34Zd7q8-MhTgZcXTtl6gukOSb6egt70AOyAc,5757 +django/contrib/admin/locale/mr/LC_MESSAGES/django.mo,sha256=4aUjTWqmtElJ-byWRVmaj4EI0TQIExyU68EB-VS6vnE,21488 +django/contrib/admin/locale/mr/LC_MESSAGES/django.po,sha256=svc6n_Jsn8vrL0hY7tRCl7YLrBVHDSLTrM2phQO5mHI,24801 +django/contrib/admin/locale/mr/LC_MESSAGES/djangojs.mo,sha256=2Z5jaGJzpiJTCnhCk8ulCDeAdj-WwR99scdHFPRoHoA,468 +django/contrib/admin/locale/mr/LC_MESSAGES/djangojs.po,sha256=uGe9kH2mwrab97Ue77oggJBlrpzZNckKGRUMU1vaigs,2856 +django/contrib/admin/locale/ms/LC_MESSAGES/django.mo,sha256=Xj5v1F4_m1ZFUn42Rbep9eInxIV-NE-oA_NyfQkbp00,16840 +django/contrib/admin/locale/ms/LC_MESSAGES/django.po,sha256=ykFH-mPbv2plm2NIvKgaj3WVukJ3SquU8nQIAXuOrWA,17967 +django/contrib/admin/locale/ms/LC_MESSAGES/djangojs.mo,sha256=9VY_MrHK-dGOIkucLCyR9psy4o5p4nHd8kN_5N2E-gY,5018 +django/contrib/admin/locale/ms/LC_MESSAGES/djangojs.po,sha256=P4GvM17rlX1Vl-7EbCyfWVasAJBEv_RvgWEvfJqcErA,5479 +django/contrib/admin/locale/my/LC_MESSAGES/django.mo,sha256=xvlgM0vdYxZuA7kPQR7LhrLzgmyVCHAvqaqvFhKX9wY,3677 +django/contrib/admin/locale/my/LC_MESSAGES/django.po,sha256=zdUCYcyq2-vKudkYvFcjk95YUtbMDDSKQHCysmQ-Pvc,12522 +django/contrib/admin/locale/my/LC_MESSAGES/djangojs.mo,sha256=1fS9FfWi8b9NJKm3DBKETmuffsrTX-_OHo9fkCCXzpg,3268 +django/contrib/admin/locale/my/LC_MESSAGES/djangojs.po,sha256=-z1j108uoswi9YZfh3vSIswLXu1iUKgDXNdZNEA0yrA,5062 +django/contrib/admin/locale/nb/LC_MESSAGES/django.mo,sha256=viQKBFH6ospYn2sE-DokVJGGYhSqosTgbNMn5sBVnmM,16244 +django/contrib/admin/locale/nb/LC_MESSAGES/django.po,sha256=x0ANRpDhe1rxxAH0qjpPxRfccCvR73_4g5TNUdJqmrc,17682 +django/contrib/admin/locale/nb/LC_MESSAGES/djangojs.mo,sha256=KwrxBpvwveERK4uKTIgh-DCc9aDLumpHQYh5YroqxhQ,4939 +django/contrib/admin/locale/nb/LC_MESSAGES/djangojs.po,sha256=ygn6a5zkHkoIYMC8Hgup8Uw1tMbZcLGgwwDu3x33M-o,5555 +django/contrib/admin/locale/ne/LC_MESSAGES/django.mo,sha256=yrm85YXwXIli7eNaPyBTtV7y3TxQuH4mokKuHdAja2A,15772 +django/contrib/admin/locale/ne/LC_MESSAGES/django.po,sha256=F8vfWKvSNngkLPZUIwik_qDYu0UAnrWepbI9Z9Iz35g,20400 +django/contrib/admin/locale/ne/LC_MESSAGES/djangojs.mo,sha256=mJdtpLT9k4vDbN9fk2fOeiy4q720B3pLD3OjLbAjmUI,5362 +django/contrib/admin/locale/ne/LC_MESSAGES/djangojs.po,sha256=N91RciTV1m7e8-6Ihod5U2xR9K0vrLoFnyXjn2ta098,6458 +django/contrib/admin/locale/nl/LC_MESSAGES/django.mo,sha256=FKCQ39RbxWddBA-Id8W-hxgH0tkixJkVctP1laEXJEU,18565 +django/contrib/admin/locale/nl/LC_MESSAGES/django.po,sha256=zRaeZKxUZbi-0CL9BBr-X0j5HOJvvrJ94u8jw3sbaaA,20308 +django/contrib/admin/locale/nl/LC_MESSAGES/djangojs.mo,sha256=iWjyDgay1LIiS6C-Zl33inFKxzM2LFQPIWyKEw2x6Is,6122 +django/contrib/admin/locale/nl/LC_MESSAGES/djangojs.po,sha256=xZjgzxEEWMG2ofgSfLNUU0abr9Y_cUpXIHsmjKBGyig,7217 +django/contrib/admin/locale/nn/LC_MESSAGES/django.mo,sha256=yAdb8Yew1ARlnAnvd5gHL7-SDzpkXedBwCSSPEzGCKk,16504 +django/contrib/admin/locale/nn/LC_MESSAGES/django.po,sha256=sFxr3UYzltQRqiotm_d5Qqtf8iLXI0LgCw_V6kYffJ0,17932 +django/contrib/admin/locale/nn/LC_MESSAGES/djangojs.mo,sha256=RsDri1DmCwrby8m7mLWkFdCe6HK7MD7GindOarVYPWc,4939 +django/contrib/admin/locale/nn/LC_MESSAGES/djangojs.po,sha256=koVTt2mmdku1j7SUDRbnug8EThxXuCIF2XPnGckMi7A,5543 +django/contrib/admin/locale/os/LC_MESSAGES/django.mo,sha256=c51PwfOeLU2YcVNEEPCK6kG4ZyNc79jUFLuNopmsRR8,14978 +django/contrib/admin/locale/os/LC_MESSAGES/django.po,sha256=yugDw7iziHto6s6ATNDK4yuG6FN6yJUvYKhrGxvKmcY,18188 +django/contrib/admin/locale/os/LC_MESSAGES/djangojs.mo,sha256=0gMkAyO4Zi85e9qRuMYmxm6JV98WvyRffOKbBVJ_fLQ,3806 +django/contrib/admin/locale/os/LC_MESSAGES/djangojs.po,sha256=skiTlhgUEN8uKk7ihl2z-Rxr1ZXqu5qV4wB4q9qXVq0,5208 +django/contrib/admin/locale/pa/LC_MESSAGES/django.mo,sha256=EEitcdoS-iQ9QWHPbJBK2ajdN56mBi0BzGnVl3KTmU4,8629 +django/contrib/admin/locale/pa/LC_MESSAGES/django.po,sha256=xscRlOkn9Jc8bDsSRM5bzQxEsCLMVsV-Wwin0rfkHDI,16089 +django/contrib/admin/locale/pa/LC_MESSAGES/djangojs.mo,sha256=Hub-6v7AfF-tWhw53abpyhnVHo76h_xBgGIhlGIcS70,1148 +django/contrib/admin/locale/pa/LC_MESSAGES/djangojs.po,sha256=7L8D4qqhq53XG83NJUZNoM8zCCScwMwzsrzzsyO4lHY,4357 +django/contrib/admin/locale/pl/LC_MESSAGES/django.mo,sha256=Lg8aJUDeJy2F4HJ0sHzexRSi6rVhAxfNxUMjWsLAZKU,19372 +django/contrib/admin/locale/pl/LC_MESSAGES/django.po,sha256=MM8TxQU-rsr0ZznLDZZ10ZbO9et8i63QC6A4iXWVkoY,21310 +django/contrib/admin/locale/pl/LC_MESSAGES/djangojs.mo,sha256=J06UuQkB2V4E8XAeUfTHbbjGVeNWAu328oFIeieb588,6655 +django/contrib/admin/locale/pl/LC_MESSAGES/djangojs.po,sha256=E084nmFnaWDKZHwwSVIjBdNc-9tIfgGWCl58GqbVRP8,7808 +django/contrib/admin/locale/pt/LC_MESSAGES/django.mo,sha256=jZNC62eFhnXnFY9MmqXGoELL7aH8OaJZ2h3cAYWnOWU,18681 +django/contrib/admin/locale/pt/LC_MESSAGES/django.po,sha256=ZGTP8N_3zvTyHBPXnmIch3pA4vafqalk__-lqyhkJps,20270 +django/contrib/admin/locale/pt/LC_MESSAGES/djangojs.mo,sha256=RlsEslBxu8-1AJUz6olYHOVpqnV2kXrYXjxsMPHWGHs,5392 +django/contrib/admin/locale/pt/LC_MESSAGES/djangojs.po,sha256=D1sNOYDTY1DsaGC09V4nAaMea-FvW6UWOpnknP2F5uE,6716 +django/contrib/admin/locale/pt_BR/LC_MESSAGES/django.mo,sha256=VFGVGpK6iSfh1bIwz_99Ioah4LOQR0GHdKCIaSFuQKs,18810 +django/contrib/admin/locale/pt_BR/LC_MESSAGES/django.po,sha256=qW8ZpwonsMz1PhLPDMPKNCoz05S2Yczl4t-njKxH-ZQ,21437 +django/contrib/admin/locale/pt_BR/LC_MESSAGES/djangojs.mo,sha256=xvi5ZdYPvbQ9xDFLn8B_twhZeP77rPUOj42nEoeI1IY,6329 +django/contrib/admin/locale/pt_BR/LC_MESSAGES/djangojs.po,sha256=-8OovJeLBnTxCEXDf8IPlhoMB_k6De6dxMcV9Jzr1Yw,7492 +django/contrib/admin/locale/ro/LC_MESSAGES/django.mo,sha256=SEbnJ1aQ3m2nF7PtqzKvYYCdvgg_iG5hzrdO_Xxiv_k,15157 +django/contrib/admin/locale/ro/LC_MESSAGES/django.po,sha256=wPfGo9yi3j28cwikkogZ_erQKtUZ9WmzdZ2FuMVugFE,18253 +django/contrib/admin/locale/ro/LC_MESSAGES/djangojs.mo,sha256=voEqSN3JUgJM9vumLxE_QNPV7kA0XOoTktN7E7AYV6o,4639 +django/contrib/admin/locale/ro/LC_MESSAGES/djangojs.po,sha256=SO7FAqNnuvIDfZ_tsWRiwSv91mHx5NZHyR2VnmoYBWY,5429 +django/contrib/admin/locale/ru/LC_MESSAGES/django.mo,sha256=scHv1IpdVCHwdVVxWAdW1Q0yT7SgoLz6paIYWiLZIEA,24187 +django/contrib/admin/locale/ru/LC_MESSAGES/django.po,sha256=OeUyRdR9uihQ912OU1cPPCD1nnkVqt_y46ENTI6SlUE,25938 +django/contrib/admin/locale/ru/LC_MESSAGES/djangojs.mo,sha256=TE4M5XbCJ3tX4pTzyTbLG_xjtCtqZzVg1ZXSxeSXgcU,8392 +django/contrib/admin/locale/ru/LC_MESSAGES/djangojs.po,sha256=owCCQnZqwfIOG3zZucZPwOh47TnDS59ItQwzYeEexvM,9546 +django/contrib/admin/locale/sk/LC_MESSAGES/django.mo,sha256=H_cS4U4rG97oRDxFyCx5VRPAHTbEGCDdIvmZPnSkFpI,18706 +django/contrib/admin/locale/sk/LC_MESSAGES/django.po,sha256=_innyhCl5gRfmmU_yRudZQYvhANGYbNwXt3x-85Ftdo,20366 +django/contrib/admin/locale/sk/LC_MESSAGES/djangojs.mo,sha256=sl2PRwXLtikrOiHJ_EEltZivpV5IwT5lmbyfpGCSrLo,6305 +django/contrib/admin/locale/sk/LC_MESSAGES/djangojs.po,sha256=-ZcKl0UxOObVuB_8My20fdjCrV51drP4w-yan3X-RKk,7275 +django/contrib/admin/locale/sl/LC_MESSAGES/django.mo,sha256=rBSsaXNtCo43Cri9Gq_Ueq2IUNMBmzOV6lgMm7xF_p0,15077 +django/contrib/admin/locale/sl/LC_MESSAGES/django.po,sha256=ywIn4PB3xg6Q27NARZ3JRmSvNhcRFKU8nF_gbgA93qg,18281 +django/contrib/admin/locale/sl/LC_MESSAGES/djangojs.mo,sha256=chhBmd2IkeOONuRlRsOnrPAEbS0tlH4w-G8YKVNRsNI,6146 +django/contrib/admin/locale/sl/LC_MESSAGES/djangojs.po,sha256=8mrwhJ1Geg5TEvJY40COC7bZl7cyIecRhLyqLjBqBAQ,6975 +django/contrib/admin/locale/sq/LC_MESSAGES/django.mo,sha256=12ltn7X_iHVHreOt0Eev86XolcxoFxfORBOf48yuTDk,18886 +django/contrib/admin/locale/sq/LC_MESSAGES/django.po,sha256=sYkz3gXb7QU2hwinqakJb0EcibH-IgOMcoNUq4E5mxM,20193 +django/contrib/admin/locale/sq/LC_MESSAGES/djangojs.mo,sha256=JZd4AaMh0TPnT1bCSyDLWwRMMCVN9C8w3Ubd-UkLDWI,6122 +django/contrib/admin/locale/sq/LC_MESSAGES/djangojs.po,sha256=h0TU4rJnZ4KwpaL1mt8SiNvAQGuGVIFB1j4nh7vb7UI,6864 +django/contrib/admin/locale/sr/LC_MESSAGES/django.mo,sha256=7eF4L3TQMaMFXh2m1RkCdt4KZpICmgyvH15U9mLDrRA,23216 +django/contrib/admin/locale/sr/LC_MESSAGES/django.po,sha256=iKYVmh2UQk1Vf1qyhwD7WF_h9G9UaqL2bhnVKIV9BCs,24565 +django/contrib/admin/locale/sr/LC_MESSAGES/djangojs.mo,sha256=1GW3zhwJYBiH5c0dmy4sXOsnt1r88LiHSZdlJ5IP1bI,7234 +django/contrib/admin/locale/sr/LC_MESSAGES/djangojs.po,sha256=AY4qY7h8JdA4WgOam0lSeVp0nUz2fdiLNHrFRNh2jLQ,8013 +django/contrib/admin/locale/sr_Latn/LC_MESSAGES/django.mo,sha256=8wcRn4O2WYMFJal760MvjtSPBNoDgHAEYtedg8CC7Ao,12383 +django/contrib/admin/locale/sr_Latn/LC_MESSAGES/django.po,sha256=N4fPEJTtUrQnc8q1MioPZ2a7E55YXrE-JvfAcWZubfA,16150 +django/contrib/admin/locale/sr_Latn/LC_MESSAGES/djangojs.mo,sha256=HBndv8hTWMFpfJizmF-CkSmFr_-QPhdq-AziTaZCOOY,6021 +django/contrib/admin/locale/sr_Latn/LC_MESSAGES/djangojs.po,sha256=4m55hUurXwpzT968ifHH2FXAlt-ZmoqyjuLfUj8PpW8,10955 +django/contrib/admin/locale/sv/LC_MESSAGES/django.mo,sha256=-H1w7_y2w3bCRddOEq49tWofGGqbrJM8rmgdQWcAAFU,18004 +django/contrib/admin/locale/sv/LC_MESSAGES/django.po,sha256=Aq3NjhpgY7Ni2paOrWpeMB0zbm3zeK02JkHl-_dNYW8,19752 +django/contrib/admin/locale/sv/LC_MESSAGES/djangojs.mo,sha256=o0ExbIeEhV8xPC62BLMaaNEw8vQ1JSeYVwUTY4SZjwo,5938 +django/contrib/admin/locale/sv/LC_MESSAGES/djangojs.po,sha256=J7KNDezuRJfGIt4-z1-Mm2cKf9lGODrEScs3w3n88y0,6937 +django/contrib/admin/locale/sw/LC_MESSAGES/django.mo,sha256=kiy4ZiBR6SIzF3SIqC3dNLTUDncZ9qjTdiG1AkIuuXk,17698 +django/contrib/admin/locale/sw/LC_MESSAGES/django.po,sha256=Km7ETJkQTpQUyp1r4mEpa3d_rCLbwh4n5DnYF6JLCxc,19082 +django/contrib/admin/locale/sw/LC_MESSAGES/djangojs.mo,sha256=p0pi6-Zg-qsDVMDjNHO4aav3GfJ3tKKhy6MK7mPtC50,3647 +django/contrib/admin/locale/sw/LC_MESSAGES/djangojs.po,sha256=lZFP7Po4BM_QMTj-SXGlew1hqyJApZxu0lxMP-YduHI,4809 +django/contrib/admin/locale/ta/LC_MESSAGES/django.mo,sha256=ZdtNRZLRqquwMk7mE0XmTzEjTno9Zni3mV6j4DXL4nI,10179 +django/contrib/admin/locale/ta/LC_MESSAGES/django.po,sha256=D0TCLM4FFF7K9NqUGXNFE2KfoEzx5IHcJQ6-dYQi2Eg,16881 +django/contrib/admin/locale/ta/LC_MESSAGES/djangojs.mo,sha256=2-37FOw9Bge0ahIRxFajzxvMkAZL2zBiQFaELmqyhhY,1379 +django/contrib/admin/locale/ta/LC_MESSAGES/djangojs.po,sha256=Qs-D7N3ZVzpZVxXtMWKOzJfSmu_Mk9pge5W15f21ihI,3930 +django/contrib/admin/locale/te/LC_MESSAGES/django.mo,sha256=aIAG0Ey4154R2wa-vNe2x8X4fz2L958zRmTpCaXZzds,10590 +django/contrib/admin/locale/te/LC_MESSAGES/django.po,sha256=-zJYrDNmIs5fp37VsG4EAOVefgbBNl75c-Pp3RGBDAM,16941 +django/contrib/admin/locale/te/LC_MESSAGES/djangojs.mo,sha256=VozLzWQwrY-USvin5XyVPtUUKEmCr0dxaWC6J14BReo,1362 +django/contrib/admin/locale/te/LC_MESSAGES/djangojs.po,sha256=HI8IfXqJf4I6i-XZB8ELGyp5ZNr-oi5hW9h7n_8XSaQ,3919 +django/contrib/admin/locale/tg/LC_MESSAGES/django.mo,sha256=gJfgsEn9doTT0erBK77OBDi7_0O7Rb6PF9tRPacliXU,15463 +django/contrib/admin/locale/tg/LC_MESSAGES/django.po,sha256=Wkx7Hk2a9OzZymgrt9N91OL9K5HZXTbpPBXMhyE0pjI,19550 +django/contrib/admin/locale/tg/LC_MESSAGES/djangojs.mo,sha256=SEaBcnnKupXbTKCJchkSu_dYFBBvOTAOQSZNbCYUuHE,5154 +django/contrib/admin/locale/tg/LC_MESSAGES/djangojs.po,sha256=CfUjLtwMmz1h_MLE7c4UYv05ZTz_SOclyKKWmVEP9Jg,5978 +django/contrib/admin/locale/th/LC_MESSAGES/django.mo,sha256=EVlUISdKOvNkGMG4nbQFzSn5p7d8c9zOGpXwoHsHNlY,16394 +django/contrib/admin/locale/th/LC_MESSAGES/django.po,sha256=OqhGCZ87VX-WKdC2EQ8A8WeXdWXu9mj6k8mG9RLZMpM,20187 +django/contrib/admin/locale/th/LC_MESSAGES/djangojs.mo,sha256=ukj5tyDor9COi5BT9oRLucO2wVTI6jZWclOM-wNpXHM,6250 +django/contrib/admin/locale/th/LC_MESSAGES/djangojs.po,sha256=3L5VU3BNcmfiqzrAWK0tvRRVOtgR8Ceg9YIxL54RGBc,6771 +django/contrib/admin/locale/tk/LC_MESSAGES/django.mo,sha256=f51Ug7txuVeDo1WAywl6oi1aVi1ZJrv94rD4svUobm8,2845 +django/contrib/admin/locale/tk/LC_MESSAGES/django.po,sha256=AXMpn9mSO24azMC5CPHqPZRq-cbk6IpPpaF3Ab3K54k,13309 +django/contrib/admin/locale/tr/LC_MESSAGES/django.mo,sha256=2TG5asYEJCqGPGNofytA2qfjGxNVz3GwdOvkgbbHI-s,18745 +django/contrib/admin/locale/tr/LC_MESSAGES/django.po,sha256=CjXcGzi8vK12O_03qtUKTG8IPjOnKGP-08zoQjaNfzM,20255 +django/contrib/admin/locale/tr/LC_MESSAGES/djangojs.mo,sha256=ZD3OYJSFuhPLrYZbAHb3tPhIxWK_tW1F8DOt7UwDR6g,6044 +django/contrib/admin/locale/tr/LC_MESSAGES/djangojs.po,sha256=bmh2K3ZxUnvAy_OdQB-NOE2injry30mzKGlwCsigIjg,6789 +django/contrib/admin/locale/tt/LC_MESSAGES/django.mo,sha256=ObJ8zwVLhFsS6XZK_36AkNRCeznoJJwLTMh4_LLGPAA,12952 +django/contrib/admin/locale/tt/LC_MESSAGES/django.po,sha256=VDjg5nDrLqRGXpxCyQudEC_n-6kTCIYsOl3izt1Eblc,17329 +django/contrib/admin/locale/tt/LC_MESSAGES/djangojs.mo,sha256=Sz5qnMHWfLXjaCIHxQNrwac4c0w4oeAAQubn5R7KL84,2607 +django/contrib/admin/locale/tt/LC_MESSAGES/djangojs.po,sha256=_Uh3yH_RXVB3PP75RFztvSzVykVq0SQjy9QtTnyH3Qk,4541 +django/contrib/admin/locale/udm/LC_MESSAGES/django.mo,sha256=2Q_lfocM7OEjFKebqNR24ZBqUiIee7Lm1rmS5tPGdZA,622 +django/contrib/admin/locale/udm/LC_MESSAGES/django.po,sha256=L4TgEk2Fm2mtKqhZroE6k_gfz1VC-_dXe39CiJvaOPE,10496 +django/contrib/admin/locale/udm/LC_MESSAGES/djangojs.mo,sha256=CNmoKj9Uc0qEInnV5t0Nt4ZnKSZCRdIG5fyfSsqwky4,462 +django/contrib/admin/locale/udm/LC_MESSAGES/djangojs.po,sha256=ZLYr0yHdMYAl7Z7ipNSNjRFIMNYmzIjT7PsKNMT6XVk,2811 +django/contrib/admin/locale/ug/LC_MESSAGES/django.mo,sha256=U_CgE0Q_Db7s4lLO7oMXZOUISUzHx_4_ktBx9dPfJzs,22887 +django/contrib/admin/locale/ug/LC_MESSAGES/django.po,sha256=unvCb5iqBFR8XGY8N4ZqPWJ5ZegfOopOuGhu4WIT5I4,24251 +django/contrib/admin/locale/ug/LC_MESSAGES/djangojs.mo,sha256=xC3-Xz8R95NL6EkVKvUuPX4jCwnNA_0sq6PvWEKbZ5I,7306 +django/contrib/admin/locale/ug/LC_MESSAGES/djangojs.po,sha256=V3UuGjeYLnfV151Yn_X0QrAYwfqMe6WvoyWJ1QnKsjo,7927 +django/contrib/admin/locale/uk/LC_MESSAGES/django.mo,sha256=LwO4uX79ZynANx47kGLijkDJ-DAdYWlmW3nYOqbXuuo,22319 +django/contrib/admin/locale/uk/LC_MESSAGES/django.po,sha256=9vEMtbw4ck4Sipdu-Y8mYOufWOTWpu7PVrMDu71GT9g,24335 +django/contrib/admin/locale/uk/LC_MESSAGES/djangojs.mo,sha256=_YwTcBttv3DZNYkBq4Rsl6oq30o8nDvUHPI5Yx0GaA4,5787 +django/contrib/admin/locale/uk/LC_MESSAGES/djangojs.po,sha256=4lYvm_LDX5xha4Qj1dXE5tGs4BjGPUgjigvG2n6y1S4,6993 +django/contrib/admin/locale/ur/LC_MESSAGES/django.mo,sha256=HvyjnSeLhUf1JVDy759V_TI7ygZfLaMhLnoCBJxhH_s,13106 +django/contrib/admin/locale/ur/LC_MESSAGES/django.po,sha256=BFxxLbHs-UZWEmbvtWJNA7xeuvO9wDc32H2ysKZQvF4,17531 +django/contrib/admin/locale/ur/LC_MESSAGES/djangojs.mo,sha256=eYN9Q9KKTV2W0UuqRc-gg7y42yFAvJP8avMeZM-W7mw,2678 +django/contrib/admin/locale/ur/LC_MESSAGES/djangojs.po,sha256=Nj-6L6axLrqA0RHUQbidNAT33sXYfVdGcX4egVua-Pk,4646 +django/contrib/admin/locale/uz/LC_MESSAGES/django.mo,sha256=yKpKebwX6RzUwCkvHzEQ_DFRr7x_nGeACRBP0PljTCQ,4634 +django/contrib/admin/locale/uz/LC_MESSAGES/django.po,sha256=bf_EhEV0c-H8MAdvRFb8TrXjgAAFfl8xif2Sw9uip_A,13776 +django/contrib/admin/locale/uz/LC_MESSAGES/djangojs.mo,sha256=LpuFvNKqNRCCiV5VyRnJoZ8gY3Xieb05YV9KakNU7o8,3783 +django/contrib/admin/locale/uz/LC_MESSAGES/djangojs.po,sha256=joswozR3I1ijRapf50FZMzQQhI_aU2XiiSTLeSxkL64,5235 +django/contrib/admin/locale/vi/LC_MESSAGES/django.mo,sha256=coCDRhju7xVvdSaounXO5cMqCmLWICZPJth6JI3Si2c,18077 +django/contrib/admin/locale/vi/LC_MESSAGES/django.po,sha256=Q1etVmaAb1f79f4uVjbNjPkn-_3m2Spz1buNAV3y9lk,19543 +django/contrib/admin/locale/vi/LC_MESSAGES/djangojs.mo,sha256=45E-fCQkq-BRLzRzsGkw1-AvWlvjL1rdsRFqfsvAq98,5302 +django/contrib/admin/locale/vi/LC_MESSAGES/djangojs.po,sha256=k87QvFnt8psnwMXXrFO6TyH6xCyXIDd_rlnWDfl2FAA,5958 +django/contrib/admin/locale/zh_Hans/LC_MESSAGES/django.mo,sha256=Mqf-2H_QUW3Ex30n_KSWdWufO6gFUYSUsBxdW418huM,17143 +django/contrib/admin/locale/zh_Hans/LC_MESSAGES/django.po,sha256=0rSHQ8jJ5OuiX5zgBwhswSqM6Z90NO5WASbZkFjTNy4,19234 +django/contrib/admin/locale/zh_Hans/LC_MESSAGES/djangojs.mo,sha256=-oaPtoS-K1iBfmpOtn-_XFuqJaFLFDDFzZ6EToaC8g0,5715 +django/contrib/admin/locale/zh_Hans/LC_MESSAGES/djangojs.po,sha256=lpJDxzzdngESFzW38Al5DbfQFfTmM59GCGpj8u9f4rA,6853 +django/contrib/admin/locale/zh_Hant/LC_MESSAGES/django.mo,sha256=XnlgIwrF5lx8UX3uH2x2mTvruwywKo1w2lJ2e07D1AQ,16991 +django/contrib/admin/locale/zh_Hant/LC_MESSAGES/django.po,sha256=t1qEsnnUFNko1aWiln7HpRxIgy7uQy_GlsVrKJ25vfw,18404 +django/contrib/admin/locale/zh_Hant/LC_MESSAGES/djangojs.mo,sha256=yFwS8aTJUAG5lN4tYLCxx-FLfTsiOxXrCEhlIA-9vcs,4230 +django/contrib/admin/locale/zh_Hant/LC_MESSAGES/djangojs.po,sha256=C4Yk5yuYcmaovVs_CS8YFYY2iS4RGi0oNaUpTm7akeU,4724 +django/contrib/admin/migrations/0001_initial.py,sha256=9HFpidmBW2Ix8NcpF1SDXgCMloGER_5XmEu_iYWIMzU,2507 +django/contrib/admin/migrations/0002_logentry_remove_auto_add.py,sha256=LBJ-ZZoiNu3qDtV-zNOHhq6E42V5CoC5a3WMYX9QvkM,553 +django/contrib/admin/migrations/0003_logentry_add_action_flag_choices.py,sha256=AnAKgnGQcg5cQXSVo5UHG2uqKKNOdLyPkIJK-q_AGEE,538 +django/contrib/admin/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/contrib/admin/migrations/__pycache__/0001_initial.cpython-312.pyc,, +django/contrib/admin/migrations/__pycache__/0002_logentry_remove_auto_add.cpython-312.pyc,, +django/contrib/admin/migrations/__pycache__/0003_logentry_add_action_flag_choices.cpython-312.pyc,, +django/contrib/admin/migrations/__pycache__/__init__.cpython-312.pyc,, +django/contrib/admin/models.py,sha256=c7KbDRElgwaEL479ZXHJPSa0mfcnZ7E7utzvEK0o6RM,8444 +django/contrib/admin/options.py,sha256=TRxEYp_9eBshk0E8IXr9-VE5bswkEvNGGb9JSYxxXKA,100242 +django/contrib/admin/sites.py,sha256=1I1B-JMkFk0eoACp8cxRDY1OKrnFaJzvLsL1TdQ0M-c,23204 +django/contrib/admin/static/admin/css/autocomplete.css,sha256=oZCQKaJleVU68lo5A1fRD1iGzqNgSgtollAc2gVWbaw,9185 +django/contrib/admin/static/admin/css/base.css,sha256=RO7kMJW2rLFbd-D9yY8GrwV-Co2V9XFBajNAS592Olc,22092 +django/contrib/admin/static/admin/css/changelists.css,sha256=qaNfxJlI_NarKm0IjyTkmtRoNXvOoVHfMhoOvVjbE4M,6878 +django/contrib/admin/static/admin/css/dark_mode.css,sha256=VexPq1oTRQFmQUvDWA5TXs113B3DonxjM1dVq3jWItE,2804 +django/contrib/admin/static/admin/css/dashboard.css,sha256=iCz7Kkr5Ld3Hyjx_O1r_XfZ2LcpxOpVjcDZS1wbqHWs,441 +django/contrib/admin/static/admin/css/forms.css,sha256=iBWego_LC1PDvNZ5kF62o_YphSQMLFSrdATNRGibRt4,8710 +django/contrib/admin/static/admin/css/login.css,sha256=f8lbZQdAWt1rGdvNrIf1kciQPVcBJX4zYHf81JrqXnI,951 +django/contrib/admin/static/admin/css/nav_sidebar.css,sha256=4wmBb5tVT5_fcnP_UtS16jal0QiqgOKq_yz162Hr_C4,2810 +django/contrib/admin/static/admin/css/responsive.css,sha256=jmrf-FGu2q4Fx6GshvgFoxaWeYvH6YZ48W25Gz6Y89Y,17972 +django/contrib/admin/static/admin/css/responsive_rtl.css,sha256=-rFxMozuMebKa4cF-mnIX4rc0BQ618-ErK8eAEmEHBw,2544 +django/contrib/admin/static/admin/css/rtl.css,sha256=1bBNLRcIPTteBElXxSRY1ctni3Fytx5jtCvKNyuaRnU,4696 +django/contrib/admin/static/admin/css/unusable_password_field.css,sha256=c-s6fSgH5n2hrZO6jopy__T9_VHX0YZJnnGTEfWNjRA,663 +django/contrib/admin/static/admin/css/vendor/select2/LICENSE-SELECT2.md,sha256=TuDLxRNwr941hlKg-XeXIFNyntV4tqQvXioDfRFPCzk,1124 +django/contrib/admin/static/admin/css/vendor/select2/select2.css,sha256=kalgQ55Pfy9YBkT-4yYYd5N8Iobe-iWeBuzP7LjVO0o,17358 +django/contrib/admin/static/admin/css/vendor/select2/select2.min.css,sha256=FdatTf20PQr_rWg-cAKfl6j4_IY3oohFAJ7gVC3M34E,14966 +django/contrib/admin/static/admin/css/widgets.css,sha256=NZBu1UEPYtta6ThHX9CFDIt2DflTjrSsBu5B5Me3QMw,11564 +django/contrib/admin/static/admin/img/LICENSE,sha256=0RT6_zSIwWwxmzI13EH5AjnT1j2YU3MwM9j3U19cAAQ,1081 +django/contrib/admin/static/admin/img/README.txt,sha256=Z5Y_AuG3V72qXRo_hS7JTHAid6deKUQKfLHgWP5hQHw,321 +django/contrib/admin/static/admin/img/calendar-icons.svg,sha256=VPzjt0-CwhFaiF2JyX2SjEkPuELU7QlhH4UhuWZmWX0,2455 +django/contrib/admin/static/admin/img/gis/move_vertex_off.svg,sha256=ou-ppUNyy5QZCKFYlcrzGBwEEiTDX5mmJvM8rpwC5DM,1129 +django/contrib/admin/static/admin/img/gis/move_vertex_on.svg,sha256=DgmcezWDms_3VhgqgYUGn-RGFHyScBP0MeX8PwHy_nE,1129 +django/contrib/admin/static/admin/img/icon-addlink.svg,sha256=_5bRQvExVwSP4DsRzIb-yDwutuft2RkHLqcifdlWypE,331 +django/contrib/admin/static/admin/img/icon-alert.svg,sha256=aXtd9PA66tccls-TJfyECQrmdWrj8ROWKC0tJKa7twA,504 +django/contrib/admin/static/admin/img/icon-calendar.svg,sha256=_bcF7a_R94UpOfLf-R0plVobNUeeTto9UMiUIHBcSHY,1086 +django/contrib/admin/static/admin/img/icon-changelink.svg,sha256=pjCclLDG8vvQmfZkFVzFMw1CLer930zafI8XgvDN86c,380 +django/contrib/admin/static/admin/img/icon-clock.svg,sha256=k55Yv6R6-TyS8hlL3Kye0IMNihgORFjoJjHY21vtpEA,677 +django/contrib/admin/static/admin/img/icon-deletelink.svg,sha256=06XOHo5y59UfNBtO8jMBHQqmXt8UmohlSMloUuZ6d0A,392 +django/contrib/admin/static/admin/img/icon-hidelink.svg,sha256=4MGicntOFkPurB9LW_IC-0N88WXKvrQxVyBB9p5gMTA,784 +django/contrib/admin/static/admin/img/icon-no.svg,sha256=QqBaTrrp3KhYJxLYB5E-0cn_s4A_Y8PImYdWjfQSM-c,560 +django/contrib/admin/static/admin/img/icon-unknown-alt.svg,sha256=LyL9oJtR0U49kGHYKMxmmm1vAw3qsfXR7uzZH76sZ_g,655 +django/contrib/admin/static/admin/img/icon-unknown.svg,sha256=ePcXlyi7cob_IcJOpZ66uiymyFgMPHl8p9iEn_eE3fc,655 +django/contrib/admin/static/admin/img/icon-viewlink.svg,sha256=NL7fcy7mQOQ91sRzxoVRLfzWzXBRU59cFANOrGOwWM0,581 +django/contrib/admin/static/admin/img/icon-yes.svg,sha256=_H4JqLywJ-NxoPLqSqk9aGJcxEdZwtSFua1TuI9kIcM,436 +django/contrib/admin/static/admin/img/inline-delete.svg,sha256=Ni1z8eDYBOveVDqtoaGyEMWG5Mdnt9dniiuBWTlnr5Y,560 +django/contrib/admin/static/admin/img/search.svg,sha256=HgvLPNT7FfgYvmbt1Al1yhXgmzYHzMg8BuDLnU9qpMU,458 +django/contrib/admin/static/admin/img/selector-icons.svg,sha256=0RJyrulJ_UR9aYP7Wbvs5jYayBVhLoXR26zawNMZ0JQ,3291 +django/contrib/admin/static/admin/img/sorting-icons.svg,sha256=cCvcp4i3MAr-mo8LE_h8ZRu3LD7Ma9BtpK-p24O3lVA,1097 +django/contrib/admin/static/admin/img/tooltag-add.svg,sha256=fTZCouGMJC6Qq2xlqw_h9fFodVtLmDMrpmZacGVJYZQ,331 +django/contrib/admin/static/admin/img/tooltag-arrowright.svg,sha256=GIAqy_4Oor9cDMNC2fSaEGh-3gqScvqREaULnix3wHc,280 +django/contrib/admin/static/admin/js/SelectBox.js,sha256=b42sGVqaCDqlr0ibFiZus9FbrUweRcKD_y61HDAdQuc,4530 +django/contrib/admin/static/admin/js/SelectFilter2.js,sha256=KHZTz9X8P7s1a_4Di1rpNfmnobP1Z49-JizDDDkqzLE,15502 +django/contrib/admin/static/admin/js/actions.js,sha256=KZnmpiDCroO8EcCawROJdHAdUFL87Xu9pqYUL5jHIxM,8076 +django/contrib/admin/static/admin/js/admin/DateTimeShortcuts.js,sha256=ryJhtM9SN0fMdfnhV_m2Hv2pc6a9B0Zpc37ocZ82_-0,19319 +django/contrib/admin/static/admin/js/admin/RelatedObjectLookups.js,sha256=XXtBFmKGeHSwL0SxEKKvzhbeLA1jax8ZasQobouWfGc,9097 +django/contrib/admin/static/admin/js/autocomplete.js,sha256=OAqSTiHZnTWZzJKEvOm-Z1tdAlLjPWX9jKpYkmH0Ozo,1060 +django/contrib/admin/static/admin/js/calendar.js,sha256=cj6qPrSqdWeq_OnWUUKWy4jVGCiy4YxsbXa5KhUw_r4,9141 +django/contrib/admin/static/admin/js/cancel.js,sha256=UEZdvvWu5s4ZH16lFfxa8UPgWXJ3i8VseK5Lcw2Kreg,884 +django/contrib/admin/static/admin/js/change_form.js,sha256=zOTeORCq1i9XXV_saSBBDOXbou5UtZvxYFpVPqxQ02Q,606 +django/contrib/admin/static/admin/js/core.js,sha256=H4_YZp2B3Y9JxMZPpHKVutrUZJbAZd4H6Gc-ilSb4_E,6208 +django/contrib/admin/static/admin/js/filters.js,sha256=T-JlrqZEBSWbiFw_e5lxkMykkACWqWXd_wMy-b3TnaE,978 +django/contrib/admin/static/admin/js/inlines.js,sha256=yWB-KSw_aZmVZpIitKde7imygAa36LBdqoBfB7lTvJQ,15526 +django/contrib/admin/static/admin/js/jquery.init.js,sha256=uM_Kf7EOBMipcCmuQHbyubQkycleSWDCS8-c3WevFW0,347 +django/contrib/admin/static/admin/js/nav_sidebar.js,sha256=1xzV95R3GaqQ953sVmkLIuZJrzFNoDJMHBqwQePp6-Q,3063 +django/contrib/admin/static/admin/js/popup_response.js,sha256=IKRg0dCpW_gkwT-l6yy3hIFxEwbaA5tw0XEckpPaHvE,532 +django/contrib/admin/static/admin/js/prepopulate.js,sha256=UYkWrHNK1-OWp1a5IWZdg0udfo_dcR-jKSn5AlxxqgU,1531 +django/contrib/admin/static/admin/js/prepopulate_init.js,sha256=mJIPAgn8QHji_rSqO6WKNREbpkCILFrjRCCOQ1-9SoQ,586 +django/contrib/admin/static/admin/js/theme.js,sha256=gG6whuLXbtdF-t_pvUO1O7LfVlNZDuzMZONENrOuZp4,1653 +django/contrib/admin/static/admin/js/unusable_password_field.js,sha256=tcGj7GAhLMohHLtxGOAsaZH1t0Fu3fTQk2l3vFV9AY4,1480 +django/contrib/admin/static/admin/js/urlify.js,sha256=8oC4Bcxt8oJY4uy9O4NjPws5lXzDkdfwI2Xo3MxpBTo,7887 +django/contrib/admin/static/admin/js/vendor/jquery/LICENSE.txt,sha256=1Nuevm8p9RaOrEWtcT8FViOsXQ3NW6ktoj1lCuASAg0,1097 +django/contrib/admin/static/admin/js/vendor/jquery/jquery.js,sha256=eKhayi8LEQwp4NKxN-CfCh-3qOVUtJn3QNZ0TciWLP4,285314 +django/contrib/admin/static/admin/js/vendor/jquery/jquery.min.js,sha256=_JqT3SQfawRcv_BIHPThkBvs0OEvtFFmqPF_lYI_Cxo,87533 +django/contrib/admin/static/admin/js/vendor/select2/LICENSE.md,sha256=TuDLxRNwr941hlKg-XeXIFNyntV4tqQvXioDfRFPCzk,1124 +django/contrib/admin/static/admin/js/vendor/select2/i18n/af.js,sha256=IpI3uo19fo77jMtN5R3peoP0OriN-nQfPY2J4fufd8g,866 +django/contrib/admin/static/admin/js/vendor/select2/i18n/ar.js,sha256=zxQ3peSnbVIfrH1Ndjx4DrHDsmbpqu6mfeylVWFM5mY,905 +django/contrib/admin/static/admin/js/vendor/select2/i18n/az.js,sha256=N_KU7ftojf2HgvJRlpP8KqG6hKIbqigYN3K0YH_ctuQ,721 +django/contrib/admin/static/admin/js/vendor/select2/i18n/bg.js,sha256=5Z6IlHmuk_6IdZdAVvdigXnlj7IOaKXtcjuI0n0FmYQ,968 +django/contrib/admin/static/admin/js/vendor/select2/i18n/bn.js,sha256=wdQbgaxZ47TyGlwvso7GOjpmTXUKaWzvVUr_oCRemEE,1291 +django/contrib/admin/static/admin/js/vendor/select2/i18n/bs.js,sha256=g56kWSu9Rxyh_rarLSDa_8nrdqL51JqZai4QQx20jwQ,965 +django/contrib/admin/static/admin/js/vendor/select2/i18n/ca.js,sha256=DSyyAXJUI0wTp_TbFhLNGrgvgRsGWeV3IafxYUGBggM,900 +django/contrib/admin/static/admin/js/vendor/select2/i18n/cs.js,sha256=t_8OWVi6Yy29Kabqs_l1sM2SSrjUAgZTwbTX_m0MCL8,1292 +django/contrib/admin/static/admin/js/vendor/select2/i18n/da.js,sha256=tF2mvzFYSWYOU3Yktl3G93pCkf-V9gonCxk7hcA5J1o,828 +django/contrib/admin/static/admin/js/vendor/select2/i18n/de.js,sha256=5bspfcihMp8yXDwfcqvC_nV3QTbtBuQDmR3c7UPQtFw,866 +django/contrib/admin/static/admin/js/vendor/select2/i18n/dsb.js,sha256=KtP2xNoP75oWnobUrS7Ep_BOFPzcMNDt0wyPnkbIF_Q,1017 +django/contrib/admin/static/admin/js/vendor/select2/i18n/el.js,sha256=IdvD8eY_KpX9fdHvld3OMvQfYsnaoJjDeVkgbIemfn8,1182 +django/contrib/admin/static/admin/js/vendor/select2/i18n/en.js,sha256=C66AO-KOXNuXEWwhwfjYBFa3gGcIzsPFHQAZ9qSh3Go,844 +django/contrib/admin/static/admin/js/vendor/select2/i18n/es.js,sha256=IhZaIy8ufTduO2-vBrivswMCjlPk7vrk4P81pD6B0SM,922 +django/contrib/admin/static/admin/js/vendor/select2/i18n/et.js,sha256=LgLgdOkKjc63svxP1Ua7A0ze1L6Wrv0X6np-8iRD5zw,801 +django/contrib/admin/static/admin/js/vendor/select2/i18n/eu.js,sha256=rLmtP7bA_atkNIj81l_riTM7fi5CXxVrFBHFyddO-Hw,868 +django/contrib/admin/static/admin/js/vendor/select2/i18n/fa.js,sha256=fqZkE9e8tt2rZ7OrDGPiOsTNdj3S2r0CjbddVUBDeMA,1023 +django/contrib/admin/static/admin/js/vendor/select2/i18n/fi.js,sha256=KVGirhGGNee_iIpMGLX5EzH_UkNe-FOPC_0484G-QQ0,803 +django/contrib/admin/static/admin/js/vendor/select2/i18n/fr.js,sha256=aj0q2rdJN47BRBc9LqvsgxkuPOcWAbZsUFUlbguwdY0,924 +django/contrib/admin/static/admin/js/vendor/select2/i18n/gl.js,sha256=HSJafI85yKp4WzjFPT5_3eZ_-XQDYPzzf4BWmu6uXHk,924 +django/contrib/admin/static/admin/js/vendor/select2/i18n/he.js,sha256=DIPRKHw0NkDuUtLNGdTnYZcoCiN3ustHY-UMmw34V_s,984 +django/contrib/admin/static/admin/js/vendor/select2/i18n/hi.js,sha256=m6ZqiKZ_jzwzVFgC8vkYiwy4lH5fJEMV-LTPVO2Wu40,1175 +django/contrib/admin/static/admin/js/vendor/select2/i18n/hr.js,sha256=NclTlDTiNFX1y0W1Llj10-ZIoXUYd7vDXqyeUJ7v3B4,852 +django/contrib/admin/static/admin/js/vendor/select2/i18n/hsb.js,sha256=FTLszcrGaelTW66WV50u_rS6HV0SZxQ6Vhpi2tngC6M,1018 +django/contrib/admin/static/admin/js/vendor/select2/i18n/hu.js,sha256=3PdUk0SpHY-H-h62womw4AyyRMujlGc6_oxW-L1WyOs,831 +django/contrib/admin/static/admin/js/vendor/select2/i18n/hy.js,sha256=BLh0fntrwtwNwlQoiwLkdQOVyNXHdmRpL28p-W5FsDg,1028 +django/contrib/admin/static/admin/js/vendor/select2/i18n/id.js,sha256=fGJ--Aw70Ppzk3EgLjF1V_QvqD2q_ufXjnQIIyZqYgc,768 +django/contrib/admin/static/admin/js/vendor/select2/i18n/is.js,sha256=gn0ddIqTnJX4wk-tWC5gFORJs1dkgIH9MOwLljBuQK0,807 +django/contrib/admin/static/admin/js/vendor/select2/i18n/it.js,sha256=kGxtapwhRFj3u_IhY_7zWZhKgR5CrZmmasT5w-aoXRM,897 +django/contrib/admin/static/admin/js/vendor/select2/i18n/ja.js,sha256=tZ4sqdx_SEcJbiW5-coHDV8FVmElJRA3Z822EFHkjLM,862 +django/contrib/admin/static/admin/js/vendor/select2/i18n/ka.js,sha256=DH6VrnVdR8SX6kso2tzqnJqs32uCpBNyvP9Kxs3ssjI,1195 +django/contrib/admin/static/admin/js/vendor/select2/i18n/km.js,sha256=x9hyjennc1i0oeYrFUHQnYHakXpv7WD7MSF-c9AaTjg,1088 +django/contrib/admin/static/admin/js/vendor/select2/i18n/ko.js,sha256=ImmB9v7g2ZKEmPFUQeXrL723VEjbiEW3YelxeqHEgHc,855 +django/contrib/admin/static/admin/js/vendor/select2/i18n/lt.js,sha256=ZT-45ibVwdWnTyo-TqsqW2NjIp9zw4xs5So78KMb_s8,944 +django/contrib/admin/static/admin/js/vendor/select2/i18n/lv.js,sha256=hHpEK4eYSoJj_fvA2wl8QSuJluNxh-Tvp6UZm-ZYaeE,900 +django/contrib/admin/static/admin/js/vendor/select2/i18n/mk.js,sha256=PSpxrnBpL4SSs9Tb0qdWD7umUIyIoR2V1fpqRQvCXcA,1038 +django/contrib/admin/static/admin/js/vendor/select2/i18n/ms.js,sha256=NCz4RntkJZf8YDDC1TFBvK-nkn-D-cGNy7wohqqaQD4,811 +django/contrib/admin/static/admin/js/vendor/select2/i18n/nb.js,sha256=eduKCG76J3iIPrUekCDCq741rnG4xD7TU3E7Lib7sPE,778 +django/contrib/admin/static/admin/js/vendor/select2/i18n/ne.js,sha256=QQjDPQE6GDKXS5cxq2JRjk3MGDvjg3Izex71Zhonbj8,1357 +django/contrib/admin/static/admin/js/vendor/select2/i18n/nl.js,sha256=JctLfTpLQ5UFXtyAmgbCvSPUtW0fy1mE7oNYcMI90bI,904 +django/contrib/admin/static/admin/js/vendor/select2/i18n/pl.js,sha256=6gEuKYnJdf8cbPERsw-mtdcgdByUJuLf1QUH0aSajMo,947 +django/contrib/admin/static/admin/js/vendor/select2/i18n/ps.js,sha256=4J4sZtSavxr1vZdxmnub2J0H0qr1S8WnNsTehfdfq4M,1049 +django/contrib/admin/static/admin/js/vendor/select2/i18n/pt-BR.js,sha256=0DFe1Hu9fEDSXgpjPOQrA6Eq0rGb15NRbsGh1U4vEr0,876 +django/contrib/admin/static/admin/js/vendor/select2/i18n/pt.js,sha256=L5jqz8zc5BF8ukrhpI2vvGrNR34X7482dckX-IUuUpA,878 +django/contrib/admin/static/admin/js/vendor/select2/i18n/ro.js,sha256=Aadb6LV0u2L2mCOgyX2cYZ6xI5sDT9OI3V7HwuueivM,938 +django/contrib/admin/static/admin/js/vendor/select2/i18n/ru.js,sha256=bV6emVCE9lY0LzbVN87WKAAAFLUT3kKqEzn641pJ29o,1171 +django/contrib/admin/static/admin/js/vendor/select2/i18n/sk.js,sha256=MnbUcP6pInuBzTW_L_wmXY8gPLGCOcKyzQHthFkImZo,1306 +django/contrib/admin/static/admin/js/vendor/select2/i18n/sl.js,sha256=LPIKwp9gp_WcUc4UaVt_cySlNL5_lmfZlt0bgtwnkFk,925 +django/contrib/admin/static/admin/js/vendor/select2/i18n/sq.js,sha256=oIxJLYLtK0vG2g3s5jsGLn4lHuDgSodxYAWL0ByHRHo,903 +django/contrib/admin/static/admin/js/vendor/select2/i18n/sr-Cyrl.js,sha256=BoT2KdiceZGgxhESRz3W2J_7CFYqWyZyov2YktUo_2w,1109 +django/contrib/admin/static/admin/js/vendor/select2/i18n/sr.js,sha256=7EELYXwb0tISsuvL6eorxzTviMK-oedSvZvEZCMloGU,980 +django/contrib/admin/static/admin/js/vendor/select2/i18n/sv.js,sha256=c6nqUmitKs4_6AlYDviCe6HqLyOHqot2IrvJRGjj1JE,786 +django/contrib/admin/static/admin/js/vendor/select2/i18n/th.js,sha256=saDPLk-2dq5ftKCvW1wddkJOg-mXA-GUoPPVOlSZrIY,1074 +django/contrib/admin/static/admin/js/vendor/select2/i18n/tk.js,sha256=mUEGlb-9nQHvzcTYI-1kjsB7JsPRGpLxWbjrJ8URthU,771 +django/contrib/admin/static/admin/js/vendor/select2/i18n/tr.js,sha256=dDz8iSp07vbx9gciIqz56wmc2TLHj5v8o6es75vzmZU,775 +django/contrib/admin/static/admin/js/vendor/select2/i18n/uk.js,sha256=MixhFDvdRda-wj-TjrN018s7R7E34aQhRjz4baxrdKw,1156 +django/contrib/admin/static/admin/js/vendor/select2/i18n/vi.js,sha256=mwTeySsUAgqu_IA6hvFzMyhcSIM1zGhNYKq8G7X_tpM,796 +django/contrib/admin/static/admin/js/vendor/select2/i18n/zh-CN.js,sha256=olAdvPQ5qsN9IZuxAKgDVQM-blexUnWTDTXUtiorygI,768 +django/contrib/admin/static/admin/js/vendor/select2/i18n/zh-TW.js,sha256=DnDBG9ywBOfxVb2VXg71xBR_tECPAxw7QLhZOXiJ4fo,707 +django/contrib/admin/static/admin/js/vendor/select2/select2.full.js,sha256=ugZkER5OAEGzCwwb_4MvhBKE5Gvmc0S59MKn-dooZaI,173566 +django/contrib/admin/static/admin/js/vendor/select2/select2.full.min.js,sha256=XG_auAy4aieWldzMImofrFDiySK-pwJC7aoo9St7rS0,79212 +django/contrib/admin/static/admin/js/vendor/xregexp/LICENSE.txt,sha256=c68pSb_5KWyw-BbDvhmk2k6VrclMH5JHlui60_A_Lyk,1106 +django/contrib/admin/static/admin/js/vendor/xregexp/xregexp.js,sha256=FM2fFr4a9mVscQobpyNQG1Bu4_8exjunQglEoPSP5uo,325171 +django/contrib/admin/static/admin/js/vendor/xregexp/xregexp.min.js,sha256=-FQXGywOGwW-5DdFMWIq0QWpGX3rQFuQpIDe6N_9eVI,163184 +django/contrib/admin/templates/admin/404.html,sha256=zyawWu1I9IxDGBRsks6-DgtLUGDDYOKHfj9YQqPl0AA,282 +django/contrib/admin/templates/admin/500.html,sha256=rZNmFXr9POnc9TdZwD06qkY8h2W5K05vCyssrIzbZGE,551 +django/contrib/admin/templates/admin/actions.html,sha256=B2s3wWt4g_uhd7CZdmXp4ZGZlMfh6K9RAH4Bv6Ud9nQ,1235 +django/contrib/admin/templates/admin/app_index.html,sha256=7NPb0bdLKOdja7FoIERyRZRYK-ldX3PcxMoydguWfzc,493 +django/contrib/admin/templates/admin/app_list.html,sha256=jiS-lqU3wzxA804jf-eR16GGXSKtiwok2BmGl9PXVcE,2054 +django/contrib/admin/templates/admin/auth/user/add_form.html,sha256=iZ8T3RZHTxB-RR1xVwEaajcmfgro7JOVJY_wXeL3aGg,633 +django/contrib/admin/templates/admin/auth/user/change_password.html,sha256=GVfOxP3n9o4VDcGfhugsfQrfnmIX3t39eUMVIWnYTZo,3788 +django/contrib/admin/templates/admin/base.html,sha256=afBV1wJ-8BcoXeTHr2mZ2enpRZ1ARk_FFvydsWWOWJo,6081 +django/contrib/admin/templates/admin/base_site.html,sha256=GCiXgXwC_ZZ1goTKnrbdNfWONojGxTatiD5hCsA8HTg,450 +django/contrib/admin/templates/admin/change_form.html,sha256=WPw3hBEtFidClEBe2bsXzGVVGzcjqI22x3Z_Dvwjt_E,3067 +django/contrib/admin/templates/admin/change_form_object_tools.html,sha256=C0l0BJF2HuSjIvtY-Yr-ByZ9dePFRrTc-MR-OVJD-AI,403 +django/contrib/admin/templates/admin/change_list.html,sha256=S-i0XcBZuY00idddX6w1ZKyD33thTFASFQk39mQ5JSA,3808 +django/contrib/admin/templates/admin/change_list_object_tools.html,sha256=-AX0bYTxDsdLtEpAEK3RFpY89tdvVChMAWPYBLqPn48,378 +django/contrib/admin/templates/admin/change_list_results.html,sha256=yOpb1o-L5Ys9GiRA_nCXoFhIzREDVXLBuYzZk1xrx1w,1502 +django/contrib/admin/templates/admin/color_theme_toggle.html,sha256=a2uh7_c2umbLLGRD_cVdVmfp291TwQYkD_87sYCotIU,703 +django/contrib/admin/templates/admin/date_hierarchy.html,sha256=Hug06L1uQzPQ-NAeixTtKRtDu2lAWh96o6f8ElnyU0c,453 +django/contrib/admin/templates/admin/delete_confirmation.html,sha256=3eMxQPSITd7Mae22TALXtCvJR4YMwfzNG_iAtuyF0PI,2539 +django/contrib/admin/templates/admin/delete_selected_confirmation.html,sha256=5yyaNqfiK1evhJ7px7gmMqjFwYrrMaKNDvQJ3-Lu4mo,2241 +django/contrib/admin/templates/admin/edit_inline/stacked.html,sha256=ar8EFreOcGz5BzoO1EX5RZYJCcpvEy-pnE00-SfU1Lc,3077 +django/contrib/admin/templates/admin/edit_inline/tabular.html,sha256=Dk0R0Hb9a4Dwl_F9G5W7GMxvLiUeOCcnk04_khbzeeA,4436 +django/contrib/admin/templates/admin/filter.html,sha256=cvjazGEln3BL_0iyz8Kcsend5WhT9y-gXKRN2kHqejU,395 +django/contrib/admin/templates/admin/includes/fieldset.html,sha256=Mb9hNt-Tmv8O2zxaPtWpECblagTXxTYhl3wRhvdBftI,2844 +django/contrib/admin/templates/admin/includes/object_delete_summary.html,sha256=OC7VhKQiczmi01Gt_3jyemelerSNrGyDiWghUK6xKEI,192 +django/contrib/admin/templates/admin/index.html,sha256=TQxZdAy2ZyeXBLA_KZMXus7e2TGezFAUTsYHJBMLPl8,2070 +django/contrib/admin/templates/admin/invalid_setup.html,sha256=F5FS3o7S3l4idPrX29OKlM_azYmCRKzFdYjV_jpTqhE,447 +django/contrib/admin/templates/admin/login.html,sha256=ShZFbs_ITw6YoOBI_L6B-zekHJqjlR14h8WHIo-g5Ro,1899 +django/contrib/admin/templates/admin/nav_sidebar.html,sha256=OfI8XJn3_Q_Wf2ymc1IH61eTGZNMFwkkGwXXTDqeuP8,486 +django/contrib/admin/templates/admin/object_history.html,sha256=5e6ki7C94YKBoFyCvDOfqt4YzCyhNmNMy8NM4aKqiHc,2136 +django/contrib/admin/templates/admin/pagination.html,sha256=OBvC2HWFaH3wIuk6gzKSyCli51NTaW8vnJFyBOpNo_8,549 +django/contrib/admin/templates/admin/popup_response.html,sha256=Lj8dfQrg1XWdA-52uNtWJ9hwBI98Wt2spSMkO4YBjEk,327 +django/contrib/admin/templates/admin/prepopulated_fields_js.html,sha256=PShGpqQWBBVwQ86r7b-SimwJS0mxNiz8AObaiDOSfvY,209 +django/contrib/admin/templates/admin/search_form.html,sha256=GImO4ldr2iVMDKPa2prQzrJyrZEQS1Zy6guNfF6VbQ8,1357 +django/contrib/admin/templates/admin/submit_line.html,sha256=yI7XWZCjvY5JtDAvbzx8hpXZi4vRYWx0mty7Zt5uWjY,1093 +django/contrib/admin/templates/admin/widgets/clearable_file_input.html,sha256=3g3JbkQmjgjl_Lyz6DzkvNBxlJT0GJAuQGV4MAGSyJ0,666 +django/contrib/admin/templates/admin/widgets/date.html,sha256=uJME8ir5DrcrWze9ikzlspoaCudQqxyMMGr6azIMkMc,71 +django/contrib/admin/templates/admin/widgets/foreign_key_raw_id.html,sha256=s5BiNQDbL9GcEVzYMwPfoYRFdnMiSeoyLKvyAzMqGnw,339 +django/contrib/admin/templates/admin/widgets/many_to_many_raw_id.html,sha256=w18JMKnPKrw6QyqIXBcdPs3YJlTRtHK5HGxj0lVkMlY,54 +django/contrib/admin/templates/admin/widgets/radio.html,sha256=-ob26uqmvrEUMZPQq6kAqK4KBk2YZHTCWWCM6BnaL0w,57 +django/contrib/admin/templates/admin/widgets/related_widget_wrapper.html,sha256=YwUzzVO2VBxqBJ-s0Aa9O5i1RDbo-HLqi1y-bbhvLWM,2102 +django/contrib/admin/templates/admin/widgets/split_datetime.html,sha256=BQ9XNv3eqtvNqZZGW38VBM2Nan-5PBxokbo2Fm_wwCQ,238 +django/contrib/admin/templates/admin/widgets/time.html,sha256=oiXCD1IvDhALK3w0fCrVc7wBOFMJhvPNTG2_NNz9H7A,71 +django/contrib/admin/templates/admin/widgets/url.html,sha256=Tf7PwdoKAiimfmDTVbWzRVxxUeyfhF0OlsuiOZ1tHgI,218 +django/contrib/admin/templates/registration/logged_out.html,sha256=PuviqzJh7C6SZJl9yKZXDcxxqXNCTDVfRuEpqvwJiPE,425 +django/contrib/admin/templates/registration/password_change_done.html,sha256=Ukca5IPY_VhtO3wfu9jABgY7SsbB3iIGp2KCSJqihlQ,745 +django/contrib/admin/templates/registration/password_change_form.html,sha256=vOyAdwDe7ajx0iFQR-dbWK7Q3bo6NVejWEFIoNlRYbQ,2428 +django/contrib/admin/templates/registration/password_reset_complete.html,sha256=_fc5bDeYBaI5fCUJZ0ZFpmOE2CUqlbk3npGk63uc_Ks,417 +django/contrib/admin/templates/registration/password_reset_confirm.html,sha256=r8SneE3ofcZkm38eV1FPBfyNyKXKNqGci-hdqifV_3k,1498 +django/contrib/admin/templates/registration/password_reset_done.html,sha256=SQsksjWN8vPLpvtFYPBFMMqZtLeiB4nesPq2VxpB3Y8,588 +django/contrib/admin/templates/registration/password_reset_email.html,sha256=rqaoGa900-rsUasaGYP2W9nBd6KOGZTyc1PsGTFozHo,612 +django/contrib/admin/templates/registration/password_reset_form.html,sha256=_Grf7jbOWrdT5RR8ypvCNv0j_huX5O_EiNwAO_NF0jc,955 +django/contrib/admin/templatetags/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/contrib/admin/templatetags/__pycache__/__init__.cpython-312.pyc,, +django/contrib/admin/templatetags/__pycache__/admin_list.cpython-312.pyc,, +django/contrib/admin/templatetags/__pycache__/admin_modify.cpython-312.pyc,, +django/contrib/admin/templatetags/__pycache__/admin_urls.cpython-312.pyc,, +django/contrib/admin/templatetags/__pycache__/base.cpython-312.pyc,, +django/contrib/admin/templatetags/__pycache__/log.cpython-312.pyc,, +django/contrib/admin/templatetags/admin_list.py,sha256=qWMkhfkrHzdpwpgprgV3anG_BW0Be0lKV3H34tj0Ogw,18871 +django/contrib/admin/templatetags/admin_modify.py,sha256=DGE-YaZB1-bUqvjOwmnWJTrIRiR1qYdY6NyPDj1Hj3U,4978 +django/contrib/admin/templatetags/admin_urls.py,sha256=fIWcZ4zhPURSQ0DliyMzmzALO5kshFyWG6YhIPvUx9A,2038 +django/contrib/admin/templatetags/base.py,sha256=0jlMfZu-IZkTJsnJQUtqBX2ceqCaVeClTTS1wdxn73w,1465 +django/contrib/admin/templatetags/log.py,sha256=vL2TNhgFsCH-4JXDE-2I_BhB2xQQLwx4GkHKx7m8Rz4,2050 +django/contrib/admin/tests.py,sha256=jItB0bAMHtTkDmsPXmg8UZue09a5zGV_Ws2hYH_bL80,8524 +django/contrib/admin/utils.py,sha256=d7m5I_5lC9JbrOXCNd_PCHefWmT-jc41HS3kTrFY3_0,21733 +django/contrib/admin/views/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/contrib/admin/views/__pycache__/__init__.cpython-312.pyc,, +django/contrib/admin/views/__pycache__/autocomplete.cpython-312.pyc,, +django/contrib/admin/views/__pycache__/decorators.cpython-312.pyc,, +django/contrib/admin/views/__pycache__/main.cpython-312.pyc,, +django/contrib/admin/views/autocomplete.py,sha256=PjC8db25zhYgwLS_4pq6PApTD_YRn4muIH0A_VN7kCg,4385 +django/contrib/admin/views/decorators.py,sha256=4ndYdYoPLhWsdutME0Lxsmcf6UFP5Z2ou3_pMjgNbw8,639 +django/contrib/admin/views/main.py,sha256=CzHtJVnFBREIxEv04n2gLKnWKwZDTlpK9B5p6y5Cq5Y,25866 +django/contrib/admin/widgets.py,sha256=ujOuEp7Db12KIEcje7_ry55q_FISyheBF-7E3z8drFg,19637 +django/contrib/admindocs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/contrib/admindocs/__pycache__/__init__.cpython-312.pyc,, +django/contrib/admindocs/__pycache__/apps.cpython-312.pyc,, +django/contrib/admindocs/__pycache__/middleware.cpython-312.pyc,, +django/contrib/admindocs/__pycache__/urls.cpython-312.pyc,, +django/contrib/admindocs/__pycache__/utils.cpython-312.pyc,, +django/contrib/admindocs/__pycache__/views.cpython-312.pyc,, +django/contrib/admindocs/apps.py,sha256=bklhU4oaTSmPdr0QzpVeuNT6iG77QM1AgiKKZDX05t4,216 +django/contrib/admindocs/locale/af/LC_MESSAGES/django.mo,sha256=UVln7JyuWsM6Et_syaOcMINSsBRDQFqOrbEBOy94_mE,3063 +django/contrib/admindocs/locale/af/LC_MESSAGES/django.po,sha256=eGuZrP2iI5iAnvalNJ_aCKBbLtjWF-qFV_f8WJwFyYs,5645 +django/contrib/admindocs/locale/ar/LC_MESSAGES/django.mo,sha256=MwAJ0TMsgRN4wrwlhlw3gYCfZK5IKDzNPuvjfJS_Eug,7440 +django/contrib/admindocs/locale/ar/LC_MESSAGES/django.po,sha256=KSmZCjSEizBx5a6yN_u0FPqG5QoXsTV9gdJkqWC8xC8,8052 +django/contrib/admindocs/locale/ar_DZ/LC_MESSAGES/django.mo,sha256=lW-fKcGwnRtdpJLfVw9i1HiM25TctVK0oA0bGV7yAzU,7465 +django/contrib/admindocs/locale/ar_DZ/LC_MESSAGES/django.po,sha256=c8LOJTCkHd1objwj6Xqh0wF3LwkLJvWg9FIWSWWMI-I,7985 +django/contrib/admindocs/locale/ast/LC_MESSAGES/django.mo,sha256=d4u-2zZXnnueWm9CLSnt4TRWgZk2NMlrA6gaytJ2gdU,715 +django/contrib/admindocs/locale/ast/LC_MESSAGES/django.po,sha256=TUkc-Hm4h1kD0NKyndteW97jH6bWcJMFXUuw2Bd62qo,4578 +django/contrib/admindocs/locale/az/LC_MESSAGES/django.mo,sha256=tuOpw3_db7qJuYYBmlEsi-Zmp8gRVsuxGh23Cb_WQes,6629 +django/contrib/admindocs/locale/az/LC_MESSAGES/django.po,sha256=ayt0aT7rdSJpgu88WSvciCREVhBadKDjQSHgMYwyI-g,7205 +django/contrib/admindocs/locale/be/LC_MESSAGES/django.mo,sha256=VZl0yvgbo0jwQpf-s472jagbUj83A3twnxddQGwGW5c,8163 +django/contrib/admindocs/locale/be/LC_MESSAGES/django.po,sha256=Z8ZtS_t5Tc7iy1p4TTrsKZqiMJl94f1jiTWuv1sep3A,8728 +django/contrib/admindocs/locale/bg/LC_MESSAGES/django.mo,sha256=bNNoMFB0_P1qut4txQqHiXGxJa8-sjIZA8bb_jPaaHk,8242 +django/contrib/admindocs/locale/bg/LC_MESSAGES/django.po,sha256=nJMwR6R19pXmf4u6jBwe8Xn9fObSaAzulNeqsm8bszo,8989 +django/contrib/admindocs/locale/bn/LC_MESSAGES/django.mo,sha256=NOKVcE8id9G1OctSly4C5lm64CgEF8dohX-Pdyt4kCM,3794 +django/contrib/admindocs/locale/bn/LC_MESSAGES/django.po,sha256=6M7LjIEjvDTjyraxz70On_TIsgqJPLW7omQ0Fz_zyfQ,6266 +django/contrib/admindocs/locale/br/LC_MESSAGES/django.mo,sha256=UsPTado4ZNJM_arSMXyuBGsKN-bCHXQZdFbh0GB3dtg,1571 +django/contrib/admindocs/locale/br/LC_MESSAGES/django.po,sha256=SHOxPSgozJbOkm8u5LQJ9VmL58ZSBmlxfOVw1fAGl2s,5139 +django/contrib/admindocs/locale/bs/LC_MESSAGES/django.mo,sha256=clvhu0z3IF5Nt0tZ85hOt4M37pnGEWeIYumE20vLpsI,1730 +django/contrib/admindocs/locale/bs/LC_MESSAGES/django.po,sha256=1-OrVWFqLpeXQFfh7JNjJtvWjVww7iB2s96dcSgLy90,5042 +django/contrib/admindocs/locale/ca/LC_MESSAGES/django.mo,sha256=nI2ctIbZVrsaMbJQGIHQCjwqJNTnH3DKxwI2dWR6G_w,6650 +django/contrib/admindocs/locale/ca/LC_MESSAGES/django.po,sha256=hPjkw0bkoUu-yKU8XYE3ji0NG4z5cE1LGonYPJXeze4,7396 +django/contrib/admindocs/locale/ckb/LC_MESSAGES/django.mo,sha256=QisqerDkDuKrctJ10CspniXNDqBnCI2Wo-CKZUZtsCY,8154 +django/contrib/admindocs/locale/ckb/LC_MESSAGES/django.po,sha256=0adJyGnFg3qoD11s9gZbJlY8O0Dd1mpKF8OLQAkHZHE,8727 +django/contrib/admindocs/locale/cs/LC_MESSAGES/django.mo,sha256=dJ-3fDenE42f6XZFc-yrfWL1pEAmSGt2j1eWAyy-5OQ,6619 +django/contrib/admindocs/locale/cs/LC_MESSAGES/django.po,sha256=uU4n9PsiI96O0UpJzL-inVzB1Kx7OB_SbLkjrFLuyVA,7227 +django/contrib/admindocs/locale/cy/LC_MESSAGES/django.mo,sha256=sYeCCq0CMrFWjT6rKtmFrpC09OEFpYLSI3vu9WtpVTY,5401 +django/contrib/admindocs/locale/cy/LC_MESSAGES/django.po,sha256=GhdikiXtx8Aea459uifQtBjHuTlyUeiKu0_rR_mDKyg,6512 +django/contrib/admindocs/locale/da/LC_MESSAGES/django.mo,sha256=vmsIZeMIVpLkSdJNS0G6alAmBBEtLDBLnOd-P3dSOAs,6446 +django/contrib/admindocs/locale/da/LC_MESSAGES/django.po,sha256=bSoTGPcE7MdRfAtBybZT9jsuww2VDH9t5CssaxSs_GU,7148 +django/contrib/admindocs/locale/de/LC_MESSAGES/django.mo,sha256=ReSz0aH1TKT6AtP13lWoONnwNM2OGo4jK9fXJlo75Hc,6567 +django/contrib/admindocs/locale/de/LC_MESSAGES/django.po,sha256=tVkDIPF_wYb_KaJ7PF9cZyBJoYu6RpznoM9JIk3RYN4,7180 +django/contrib/admindocs/locale/dsb/LC_MESSAGES/django.mo,sha256=K_QuInKk1HrrzQivwJcs_2lc1HreFj7_R7qQh3qMTPY,6807 +django/contrib/admindocs/locale/dsb/LC_MESSAGES/django.po,sha256=flF1D0gfTScuC_RddC9njLe6RrnqnksiRxwODVA9Vqw,7332 +django/contrib/admindocs/locale/el/LC_MESSAGES/django.mo,sha256=1x0sTZwWbGEURyRaSn4ONvTPXHwm7XemNlcun9Nm1QI,8581 +django/contrib/admindocs/locale/el/LC_MESSAGES/django.po,sha256=GebfJfW0QPzAQyBKz1Km9a3saCpAWT7d_Qe2nCBvGn4,9320 +django/contrib/admindocs/locale/en/LC_MESSAGES/django.mo,sha256=U0OV81NfbuNL9ctF-gbGUG5al1StqN-daB-F-gFBFC8,356 +django/contrib/admindocs/locale/en/LC_MESSAGES/django.po,sha256=pEypE71l-Ude2e3XVf0tkBpGx6BSYNqBagWnSYmEbxI,10688 +django/contrib/admindocs/locale/en_AU/LC_MESSAGES/django.mo,sha256=BQ54LF9Tx88m-pG_QVz_nm_vqvoy6pVJzL8urSO4l1Q,486 +django/contrib/admindocs/locale/en_AU/LC_MESSAGES/django.po,sha256=ho7s1uKEs9FGooyZBurvSjvFz1gDSX6R4G2ZKpF1c9Q,5070 +django/contrib/admindocs/locale/en_GB/LC_MESSAGES/django.mo,sha256=xKGbswq1kuWCbn4zCgUQUb58fEGlICIOr00oSdCgtU4,1821 +django/contrib/admindocs/locale/en_GB/LC_MESSAGES/django.po,sha256=No09XHkzYVFBgZqo7bPlJk6QD9heE0oaI3JmnrU_p24,4992 +django/contrib/admindocs/locale/eo/LC_MESSAGES/django.mo,sha256=114OOVg9hP0H0UU2aQngCm0wE7zEEAp7QFMupOuWCfQ,6071 +django/contrib/admindocs/locale/eo/LC_MESSAGES/django.po,sha256=h8P3lmvBaJ8J2xiytReJvI8iGK0gCe-LPK27kWxSNKI,6799 +django/contrib/admindocs/locale/es/LC_MESSAGES/django.mo,sha256=wVt9I5M6DGKZFhPhYuS2yKRGVzSROthx98TFiJvJA80,6682 +django/contrib/admindocs/locale/es/LC_MESSAGES/django.po,sha256=F72OFWbIZXvopNMzy7eIibNKc5EM0jsYgbN4PobD6tc,7602 +django/contrib/admindocs/locale/es_AR/LC_MESSAGES/django.mo,sha256=mZ7OKAmlj2_FOabKsEiWycxiKLSLCPFldponKNxINjs,6658 +django/contrib/admindocs/locale/es_AR/LC_MESSAGES/django.po,sha256=deaOq0YMCb1B1PHWYUbgUrQsyXFutn4wQ2BAXiyzugA,7257 +django/contrib/admindocs/locale/es_CO/LC_MESSAGES/django.mo,sha256=KFjQyWtSxH_kTdSJ-kNUDAFt3qVZI_3Tlpg2pdkvJfs,6476 +django/contrib/admindocs/locale/es_CO/LC_MESSAGES/django.po,sha256=dwrTVjYmueLiVPu2yiJ_fkFF8ZeRntABoVND5H2WIRI,7038 +django/contrib/admindocs/locale/es_MX/LC_MESSAGES/django.mo,sha256=3hZiFFVO8J9cC624LUt4lBweqmpgdksRtvt2TLq5Jqs,1853 +django/contrib/admindocs/locale/es_MX/LC_MESSAGES/django.po,sha256=gNmx1QTbmyMxP3ftGXGWJH_sVGThiSe_VNKkd7M9jOY,5043 +django/contrib/admindocs/locale/es_VE/LC_MESSAGES/django.mo,sha256=sMwJ7t5GqPF496w-PvBYUneZ9uSwmi5jP-sWulhc6BM,6663 +django/contrib/admindocs/locale/es_VE/LC_MESSAGES/django.po,sha256=ZOcE0f95Q6uD9SelK6bQlKtS2c3JX9QxNYCihPdlM5o,7201 +django/contrib/admindocs/locale/et/LC_MESSAGES/django.mo,sha256=JQHVKehV0sxNaBQRqbsN-Of22CMV70bQ9TUId3QDudY,6381 +django/contrib/admindocs/locale/et/LC_MESSAGES/django.po,sha256=qrS3cPEy16hEi1857jvqsmr9zHF9_AkkJUw4mKimg98,7096 +django/contrib/admindocs/locale/eu/LC_MESSAGES/django.mo,sha256=WHgK7vGaqjO4MwjBkWz2Y3ABPXCqfnwSGelazRhOiuo,6479 +django/contrib/admindocs/locale/eu/LC_MESSAGES/django.po,sha256=718XgJN7UQcHgE9ku0VyFp7Frs-cvmCTO1o-xS5kpqc,7099 +django/contrib/admindocs/locale/fa/LC_MESSAGES/django.mo,sha256=Qrkrb_CHPGymnXBoBq5oeTs4W54R6nLz5hLIWH63EHM,7499 +django/contrib/admindocs/locale/fa/LC_MESSAGES/django.po,sha256=L-rxiKqUmlQgrPTLQRaS50woZWB9JuEamJpgDpLvIXw,8251 +django/contrib/admindocs/locale/fi/LC_MESSAGES/django.mo,sha256=SzuPvgeiaBwABvkJbOoTHsbP7juAuyyMWAjENr50gYk,6397 +django/contrib/admindocs/locale/fi/LC_MESSAGES/django.po,sha256=jn4ZMVQ_Gh6I-YLSmBhlyTn5ICP5o3oj7u0VKpV2hnI,6972 +django/contrib/admindocs/locale/fr/LC_MESSAGES/django.mo,sha256=dD92eLXIDeI-a_BrxX1G49qRwLS4Vt56bTP9cha5MeE,6755 +django/contrib/admindocs/locale/fr/LC_MESSAGES/django.po,sha256=hiUeHTul4Z3JWmkClGZmD5Xn4a1Tj1A5OLRfKU5Zdmo,7329 +django/contrib/admindocs/locale/fy/LC_MESSAGES/django.mo,sha256=_xVO-FkPPoTla_R0CzktpRuafD9fuIP_G5N-Q08PxNg,476 +django/contrib/admindocs/locale/fy/LC_MESSAGES/django.po,sha256=b3CRH9bSUl_jjb9s51RlvFXp3bmsmuxTfN_MTmIIVNA,5060 +django/contrib/admindocs/locale/ga/LC_MESSAGES/django.mo,sha256=PkY5sLKd7gEIE2IkuuNJXP5RmjC-D4OODRv6KCCUDX8,1940 +django/contrib/admindocs/locale/ga/LC_MESSAGES/django.po,sha256=-l6VME96KR1KKNACVu7oHzlhCrnkC1PaJQyskOUqOvk,5211 +django/contrib/admindocs/locale/gd/LC_MESSAGES/django.mo,sha256=k5-Ov9BkwYHZ_IvIxQdHKVBdOUN7kWGft1l7w5Scd5o,6941 +django/contrib/admindocs/locale/gd/LC_MESSAGES/django.po,sha256=FyvfRNkSrEZo8x1didB6nFHYD54lZfKSoAGcwJ2wLso,7478 +django/contrib/admindocs/locale/gl/LC_MESSAGES/django.mo,sha256=15OYKk17Dlz74RReFrCHP3eHmaxP8VeRE2ylDOeUY8w,6564 +django/contrib/admindocs/locale/gl/LC_MESSAGES/django.po,sha256=mvQmxR4LwDLbCWyIU-xmJEw6oeSY3KFWC1nqnbnuDyc,7197 +django/contrib/admindocs/locale/he/LC_MESSAGES/django.mo,sha256=1_aXtUXx-NISzJmlfprUZ5LieD9BwCcCUQ-DQ_YF-jk,6998 +django/contrib/admindocs/locale/he/LC_MESSAGES/django.po,sha256=aONIl7C_5hgo0agjYleyZAkj4_VPkQVPT0R7wWPhJEs,7589 +django/contrib/admindocs/locale/hi/LC_MESSAGES/django.mo,sha256=sZhObIxqrmFu5Y-ZOQC0JGM3ly4IVFr02yqOOOHnDag,2297 +django/contrib/admindocs/locale/hi/LC_MESSAGES/django.po,sha256=X6UfEc6q0BeaxVP_C4priFt8irhh-YGOUUzNQyVnEYY,5506 +django/contrib/admindocs/locale/hr/LC_MESSAGES/django.mo,sha256=fMsayjODNoCdbpBAk9GHtIUaGJGFz4sD9qYrguj-BQA,2550 +django/contrib/admindocs/locale/hr/LC_MESSAGES/django.po,sha256=qi2IB-fBkGovlEz2JAQRUNE54MDdf5gjNJWXM-dIG1s,5403 +django/contrib/admindocs/locale/hsb/LC_MESSAGES/django.mo,sha256=4CbZ95VHJUg3UNt-FdzPtUtHJLralgnhadz-evigiFA,6770 +django/contrib/admindocs/locale/hsb/LC_MESSAGES/django.po,sha256=ty8zWmqY160ZpSbt1-_2iY2M4RIL7ksh5-ggQGc_TO8,7298 +django/contrib/admindocs/locale/hu/LC_MESSAGES/django.mo,sha256=ATEt9wE2VNQO_NMcwepgxpS7mYXdVD5OySFFPWpnBUA,6634 +django/contrib/admindocs/locale/hu/LC_MESSAGES/django.po,sha256=3XKQrlonyLXXpU8xeS1OLXcKmmE2hiBoMJN-QZ3k82g,7270 +django/contrib/admindocs/locale/ia/LC_MESSAGES/django.mo,sha256=KklX2loobVtA6PqHOZHwF1_A9YeVGlqORinHW09iupI,1860 +django/contrib/admindocs/locale/ia/LC_MESSAGES/django.po,sha256=Z7btOCeARREgdH4CIJlVob_f89r2M9j55IDtTLtgWJU,5028 +django/contrib/admindocs/locale/id/LC_MESSAGES/django.mo,sha256=2HZrdwFeJV4Xk2HIKsxp_rDyBrmxCuRb92HtFtW8MxE,6343 +django/contrib/admindocs/locale/id/LC_MESSAGES/django.po,sha256=O01yt7iDXvEwkebUxUlk-vCrLR26ebuqI51x64uqFl4,7041 +django/contrib/admindocs/locale/io/LC_MESSAGES/django.mo,sha256=5t9Vurrh6hGqKohwsZIoveGeYCsUvRBRMz9M7k9XYY8,464 +django/contrib/admindocs/locale/io/LC_MESSAGES/django.po,sha256=SVZZEmaS1WbXFRlLLGg5bzUe09pXR23TeJtHUbhyl0w,5048 +django/contrib/admindocs/locale/is/LC_MESSAGES/django.mo,sha256=pEr-_MJi4D-WpNyFaQe3tVKVLq_9V-a4eIF18B3Qyko,1828 +django/contrib/admindocs/locale/is/LC_MESSAGES/django.po,sha256=-mD5fFnL6xUqeW4MITzm8Lvx6KXq4C9DGsEM9kDluZ8,5045 +django/contrib/admindocs/locale/it/LC_MESSAGES/django.mo,sha256=AzCkkJ8x-V38XSOdOG2kMSUujcn0mD8TIvdAeNT6Qcw,6453 +django/contrib/admindocs/locale/it/LC_MESSAGES/django.po,sha256=SUsGtCKkCVoj5jaM6z_-JQR8kv8W4Wv_OE26hpOb96s,7171 +django/contrib/admindocs/locale/ja/LC_MESSAGES/django.mo,sha256=KoPwCbH9VlKoP_7zTEjOzPsHZ7jVWl2grQRckQmshw4,7358 +django/contrib/admindocs/locale/ja/LC_MESSAGES/django.po,sha256=6ZTqM2qfBS_j5aLH52yJPYW4e4X5MqiQFdqV1fmEQGg,8047 +django/contrib/admindocs/locale/ka/LC_MESSAGES/django.mo,sha256=w2cHLI1O3pVt43H-h71cnNcjNNvDC8y9uMYxZ_XDBtg,4446 +django/contrib/admindocs/locale/ka/LC_MESSAGES/django.po,sha256=omKVSzNA3evF5Mk_Ud6utHql-Do7s9xDzCVQGQA0pSg,6800 +django/contrib/admindocs/locale/kab/LC_MESSAGES/django.mo,sha256=XTuWnZOdXhCFXEW4Hp0zFtUtAF0wJHaFpQqoDUTWYGw,1289 +django/contrib/admindocs/locale/kab/LC_MESSAGES/django.po,sha256=lQWewMZncWUvGhpkgU_rtwWHcgAyvhIkrDfjFu1l-d8,4716 +django/contrib/admindocs/locale/kk/LC_MESSAGES/django.mo,sha256=mmhLzn9lo4ff_LmlIW3zZuhE77LoSUfpaMMMi3oyi38,1587 +django/contrib/admindocs/locale/kk/LC_MESSAGES/django.po,sha256=72sxLw-QDSFnsH8kuzeQcV5jx7Hf1xisBmxI8XqSCYw,5090 +django/contrib/admindocs/locale/km/LC_MESSAGES/django.mo,sha256=Fff1K0qzialXE_tLiGM_iO5kh8eAmQhPZ0h-eB9iNOU,1476 +django/contrib/admindocs/locale/km/LC_MESSAGES/django.po,sha256=E_CaaYc4GqOPgPh2t7iuo0Uf4HSQQFWAoxSOCG-uEGU,4998 +django/contrib/admindocs/locale/kn/LC_MESSAGES/django.mo,sha256=lisxE1zzW-Spdm7hIzXxDAfS7bM-RdrAG_mQVwz9WMU,1656 +django/contrib/admindocs/locale/kn/LC_MESSAGES/django.po,sha256=u6JnB-mYoYWvLl-2pzKNfeNlT1s6A2I3lRi947R_0yA,5184 +django/contrib/admindocs/locale/ko/LC_MESSAGES/django.mo,sha256=nVBVLfXUlGQCeF2foSQ2kksBmR3KbweXdbD6Kyq-PrU,6563 +django/contrib/admindocs/locale/ko/LC_MESSAGES/django.po,sha256=y2YjuXM3p0haXrGpxRtm6I84o75TQaMeT4xbHCg7zOM,7342 +django/contrib/admindocs/locale/ky/LC_MESSAGES/django.mo,sha256=HEJo4CLoIOWpK-MPcTqLhbNMA8Mt3totYN1YbJ_SNn4,7977 +django/contrib/admindocs/locale/ky/LC_MESSAGES/django.po,sha256=VaSXjz8Qlr2EI8f12gtziN7yA7IWsaVoEzL3G6dERXs,8553 +django/contrib/admindocs/locale/lb/LC_MESSAGES/django.mo,sha256=N0hKFuAdDIq5clRKZirGh4_YDLsxi1PSX3DVe_CZe4k,474 +django/contrib/admindocs/locale/lb/LC_MESSAGES/django.po,sha256=B46-wRHMKUMcbvMCdojOCxqIVL5qVEh4Czo20Qgz6oU,5058 +django/contrib/admindocs/locale/lt/LC_MESSAGES/django.mo,sha256=KOnpaVeomKJIHcVLrkeRVnaqQHzFdYM_wXZbbqxWs4g,6741 +django/contrib/admindocs/locale/lt/LC_MESSAGES/django.po,sha256=-uzCS8193VCZPyhO8VOi11HijtBG9CWVKStFBZSXfI4,7444 +django/contrib/admindocs/locale/lv/LC_MESSAGES/django.mo,sha256=5PAE_peuqlRcc45pm6RsSqnBpG-o8OZpfdt2aasYM2w,6449 +django/contrib/admindocs/locale/lv/LC_MESSAGES/django.po,sha256=_mFvAQT1ZVBuDhnWgKY3bVQUWA8DoEf-HFAEsMfkGuU,7085 +django/contrib/admindocs/locale/mk/LC_MESSAGES/django.mo,sha256=8H9IpRASM7O2-Ql1doVgM9c4ybZ2KcfnJr12PpprgP4,8290 +django/contrib/admindocs/locale/mk/LC_MESSAGES/django.po,sha256=Uew7tEljjgmslgfYJOP9JF9ELp6NbhkZG_v50CZgBg8,8929 +django/contrib/admindocs/locale/ml/LC_MESSAGES/django.mo,sha256=bm4tYwcaT8XyPcEW1PNZUqHJIds9CAq3qX_T1-iD4k4,6865 +django/contrib/admindocs/locale/ml/LC_MESSAGES/django.po,sha256=yNINX5M7JMTbYnFqQGetKGIXqOjGJtbN2DmIW9BKQ_c,8811 +django/contrib/admindocs/locale/mn/LC_MESSAGES/django.mo,sha256=MyPphoXZCl6gPq74TyPBAvbc-aUQdUx5t3cdnj3vn_A,7108 +django/contrib/admindocs/locale/mn/LC_MESSAGES/django.po,sha256=h4GNr_G_lqLCiypMQNaw3ItF8RnHzdLhcrKs6vQVPfE,8058 +django/contrib/admindocs/locale/mr/LC_MESSAGES/django.mo,sha256=LDGC7YRyVBU50W-iH0MuESunlRXrNfNjwjXRCBdfFVg,468 +django/contrib/admindocs/locale/mr/LC_MESSAGES/django.po,sha256=5cUgPltXyS2Z0kIKF5ER8f5DuBhwmAINJQyfHj652d0,5052 +django/contrib/admindocs/locale/ms/LC_MESSAGES/django.mo,sha256=vgoSQlIQeFWaVfJv3YK9_0FOywWwxLhWGICKBdxcqJY,6557 +django/contrib/admindocs/locale/ms/LC_MESSAGES/django.po,sha256=Qy_NjgqwEwLGk4oaHB4Np3dVbPeCK2URdI73S73IZLE,7044 +django/contrib/admindocs/locale/my/LC_MESSAGES/django.mo,sha256=AsdUmou0FjCiML3QOeXMdbHiaSt2GdGMcEKRJFonLOQ,1721 +django/contrib/admindocs/locale/my/LC_MESSAGES/django.po,sha256=c75V-PprKrWzgrHbfrZOpm00U_zZRzxAUr2U_j8MF4w,5189 +django/contrib/admindocs/locale/nb/LC_MESSAGES/django.mo,sha256=qlzN0-deW2xekojbHi2w6mYKeBe1Cf1nm8Z5FVrmYtA,6308 +django/contrib/admindocs/locale/nb/LC_MESSAGES/django.po,sha256=a60vtwHJXhjbRAtUIlO0w3XfQcQ0ljwmwFG3WbQ7PNo,6875 +django/contrib/admindocs/locale/ne/LC_MESSAGES/django.mo,sha256=fWPAUZOX9qrDIxGhVVouJCVDWEQLybZ129wGYymuS-c,2571 +django/contrib/admindocs/locale/ne/LC_MESSAGES/django.po,sha256=wb8pCm141YfGSHVW84FnAvsKt5KnKvzNyzGcPr-Wots,5802 +django/contrib/admindocs/locale/nl/LC_MESSAGES/django.mo,sha256=1-s_SdVm3kci2yLQhv1q6kt7zF5EdbaneGAr6PJ7dQU,6498 +django/contrib/admindocs/locale/nl/LC_MESSAGES/django.po,sha256=7s4RysNYRSisywqqZOrRR0il530jRlbEFP3kr4Hq2PA,7277 +django/contrib/admindocs/locale/nn/LC_MESSAGES/django.mo,sha256=tIOU1WrHkAfxD6JBpdakiMi6pVzzvIg0jun6gii-D08,6299 +django/contrib/admindocs/locale/nn/LC_MESSAGES/django.po,sha256=oekYY3xjjM2sPnHv_ZXxAti1ySPF-HxLrvLLk7Izibk,6824 +django/contrib/admindocs/locale/os/LC_MESSAGES/django.mo,sha256=zSQBgSj4jSu5Km0itNgDtbkb1SbxzRvQeZ5M9sXHI8k,2044 +django/contrib/admindocs/locale/os/LC_MESSAGES/django.po,sha256=hZlMmmqfbGmoiElGbJg7Fp791ZuOpRFrSu09xBXt6z4,5215 +django/contrib/admindocs/locale/pa/LC_MESSAGES/django.mo,sha256=yFeO0eZIksXeDhAl3CrnkL1CF7PHz1PII2kIxGA0opQ,1275 +django/contrib/admindocs/locale/pa/LC_MESSAGES/django.po,sha256=DA5LFFLOXHIJIqrrnj9k_rqL-wr63RYX_i-IJFhBuc0,4900 +django/contrib/admindocs/locale/pl/LC_MESSAGES/django.mo,sha256=DHxRNP6YK8qocDqSd2DZg7n-wPp2hJSbjNBLFti7U8o,6633 +django/contrib/admindocs/locale/pl/LC_MESSAGES/django.po,sha256=mRjleE2-9r9TfseHWeyjvRwzBZP_t2LMvihq8n_baU8,7575 +django/contrib/admindocs/locale/pt/LC_MESSAGES/django.mo,sha256=WcXhSlbGdJgVMvydkPYYee7iOQ9SYdrLkquzgIBhVWU,6566 +django/contrib/admindocs/locale/pt/LC_MESSAGES/django.po,sha256=J98Hxa-ApyzRevBwcAldK9bRYbkn5DFw3Z5P7SMEwx0,7191 +django/contrib/admindocs/locale/pt_BR/LC_MESSAGES/django.mo,sha256=L8t589rbg4vs4HArLpgburmMufZ6BTuwxxkv1QUetBA,6590 +django/contrib/admindocs/locale/pt_BR/LC_MESSAGES/django.po,sha256=EG4xELZ8emUIWB78cw8gFeiqTiN9UdAuEaXHyPyNtIE,7538 +django/contrib/admindocs/locale/ro/LC_MESSAGES/django.mo,sha256=9K8Sapn6sOg1wtt2mxn7u0cnqPjEHH70qjwM-XMPzNA,6755 +django/contrib/admindocs/locale/ro/LC_MESSAGES/django.po,sha256=b4AsPjWBYHQeThAtLP_TH4pJitwidtoPNkJ7dowUuRg,7476 +django/contrib/admindocs/locale/ru/LC_MESSAGES/django.mo,sha256=9pIPv2D0rq29vrBNWZENM_SOdNpaPidxmgT20hWtBis,8434 +django/contrib/admindocs/locale/ru/LC_MESSAGES/django.po,sha256=BTlxkS4C0DdfC9QJCegXwi5ejfG9pMsAdfy6UJzec3s,9175 +django/contrib/admindocs/locale/sk/LC_MESSAGES/django.mo,sha256=QR3Yvh6y6qJLr4umB0_HcVRIrqD-o1z3rnDv38hLkCQ,6670 +django/contrib/admindocs/locale/sk/LC_MESSAGES/django.po,sha256=QPTSNtN-7QBUX7G7d67zs5kPHS3tXoi7WCy_y1nhPfQ,7375 +django/contrib/admindocs/locale/sl/LC_MESSAGES/django.mo,sha256=FMg_s9ZpeRD42OsSF9bpe8pRQ7wP7-a9WWnaVliqXpU,6508 +django/contrib/admindocs/locale/sl/LC_MESSAGES/django.po,sha256=JWO_WZAwBpXw-4FoB7rkWXGhi9aEVq1tH2fOC69rcgg,7105 +django/contrib/admindocs/locale/sq/LC_MESSAGES/django.mo,sha256=XvNDzCc3-Hh5Pz7SHhG8zCT_3dtqGzBLkDqhim4jJpc,6551 +django/contrib/admindocs/locale/sq/LC_MESSAGES/django.po,sha256=0GZvLpxbuYln7GrTsFyzgjIleSw6Z9IRSPgAWWdx6Eo,7165 +django/contrib/admindocs/locale/sr/LC_MESSAGES/django.mo,sha256=wQbXQFTFYjeJvUQ4twmF_O2SYkYkigJ1LQj8xdC5Yu4,8154 +django/contrib/admindocs/locale/sr/LC_MESSAGES/django.po,sha256=KT72y37njw6vgAfXOoY41w_Myv5yrzFC1BQVAd_V79s,8778 +django/contrib/admindocs/locale/sr_Latn/LC_MESSAGES/django.mo,sha256=3ytn9SeRgnbIC8YjYTcgdNKgNrizzDwwmLQhVwjvNCY,6542 +django/contrib/admindocs/locale/sr_Latn/LC_MESSAGES/django.po,sha256=2ojglF82ZPFxdnlICYkwkN_EOLli8QRSCPTbILxug9g,13364 +django/contrib/admindocs/locale/sv/LC_MESSAGES/django.mo,sha256=5i9qxo9V7TghSIpKCOw5PpITYYHMP-0NhFivwc-w0yw,6394 +django/contrib/admindocs/locale/sv/LC_MESSAGES/django.po,sha256=WhABV5B-rhBly6ueJPOMsIBjSiw7i1yCZUQsXWE_jV4,7137 +django/contrib/admindocs/locale/sw/LC_MESSAGES/django.mo,sha256=pyJfGL7UdPrJAVlCB3YimXxTjTfEkoZQWX-CSpDkcWc,1808 +django/contrib/admindocs/locale/sw/LC_MESSAGES/django.po,sha256=SIywrLX1UGx4OiPxoxUYelmQ1YaY2LMa3dxynGQpHp8,4929 +django/contrib/admindocs/locale/ta/LC_MESSAGES/django.mo,sha256=8SjQ9eGGyaZGhkuDoZTdtYKuqcVyEtWrJuSabvNRUVM,1675 +django/contrib/admindocs/locale/ta/LC_MESSAGES/django.po,sha256=k593yzVqpSQOsdpuF-rdsSLwKQU8S_QFMRpZXww__1A,5194 +django/contrib/admindocs/locale/te/LC_MESSAGES/django.mo,sha256=eAzNpYRy_G1erCcKDAMnJC4809ITRHvJjO3vpyAC_mk,1684 +django/contrib/admindocs/locale/te/LC_MESSAGES/django.po,sha256=oDg_J8JxepFKIe5m6lDKVC4YWQ_gDLibgNyQ3508VOM,5204 +django/contrib/admindocs/locale/tg/LC_MESSAGES/django.mo,sha256=jSMmwS6F_ChDAZDyTZxRa3YuxkXWlO-M16osP2NLRc0,7731 +django/contrib/admindocs/locale/tg/LC_MESSAGES/django.po,sha256=mewOHgRsFydk0d5IY3jy3rOWa6uHdatlSIvFNZFONsc,8441 +django/contrib/admindocs/locale/th/LC_MESSAGES/django.mo,sha256=bHK49r45Q1nX4qv0a0jtDja9swKbDHHJVLa3gM13Cb4,2167 +django/contrib/admindocs/locale/th/LC_MESSAGES/django.po,sha256=_GMgPrD8Zs0lPKQOMlBmVu1I59yXSV42kfkrHzeiehY,5372 +django/contrib/admindocs/locale/tr/LC_MESSAGES/django.mo,sha256=L1iBsNGqqfdNkZZmvnnBB-HxogAgngwhanY1FYefveE,6661 +django/contrib/admindocs/locale/tr/LC_MESSAGES/django.po,sha256=D4vmznsY4icyKLXQUgAL4WZL5TOUZYVUSCJ4cvZuFg8,7311 +django/contrib/admindocs/locale/tt/LC_MESSAGES/django.mo,sha256=pQmAQOPbrBVzBqtoQ0dsFWFwC6LxA5mQZ9QPqL6pSFw,1869 +django/contrib/admindocs/locale/tt/LC_MESSAGES/django.po,sha256=NCLv7sSwvEficUOSoMJlHGqjgjYvrvm2V3j1Gkviw80,5181 +django/contrib/admindocs/locale/udm/LC_MESSAGES/django.mo,sha256=hwDLYgadsKrQEPi9HiuMWF6jiiYUSy4y-7PVNJMaNpY,618 +django/contrib/admindocs/locale/udm/LC_MESSAGES/django.po,sha256=29fpfn4p8KxxrBdg4QB0GW_l8genZVV0kYi50zO-qKs,5099 +django/contrib/admindocs/locale/ug/LC_MESSAGES/django.mo,sha256=OIyPz5i48Ab2CVmCe71agW8qMsYMTwTG2E7rJft7P5k,7867 +django/contrib/admindocs/locale/ug/LC_MESSAGES/django.po,sha256=GM6ypRwZ6d6VXM0XVvg9p_334pxhex1yd5-HS8Z1z9U,8380 +django/contrib/admindocs/locale/uk/LC_MESSAGES/django.mo,sha256=G-3yCDj2jK7ZTu80YXGJ_ZR1E7FejbLxTFe866G4Pr0,8468 +django/contrib/admindocs/locale/uk/LC_MESSAGES/django.po,sha256=bbWzP-gpbslzbTBc_AO7WBNmtr3CkLOwkSJHI0Z_dTA,9330 +django/contrib/admindocs/locale/ur/LC_MESSAGES/django.mo,sha256=VNg9o_7M0Z2LC0n3_-iwF3zYmncRJHaFqqpxuPmMq84,1836 +django/contrib/admindocs/locale/ur/LC_MESSAGES/django.po,sha256=QTg85c4Z13hMN_PnhjaLX3wx6TU4SH4hPTzNBfNVaMU,5148 +django/contrib/admindocs/locale/vi/LC_MESSAGES/django.mo,sha256=F6dyo00yeyUND_w1Ocm9SL_MUdXb60QQpmAQPto53IU,1306 +django/contrib/admindocs/locale/vi/LC_MESSAGES/django.po,sha256=JrVKjT848Y1cS4tpH-eRivFNwM-cUs886UEhY2FkTPw,4836 +django/contrib/admindocs/locale/zh_Hans/LC_MESSAGES/django.mo,sha256=ngPlxN85wGOMKoo3OK3wUQeikoaxPKqAIsgw2_0ovN4,6075 +django/contrib/admindocs/locale/zh_Hans/LC_MESSAGES/django.po,sha256=TNdJGJCAi0OijBN6w23SwKieZqNqkgNt2qdlPfY-r20,6823 +django/contrib/admindocs/locale/zh_Hant/LC_MESSAGES/django.mo,sha256=Tx2MdoDy5aGjAGnDhYrV6mHN-inyqa3mA2zDAYPsQc4,6016 +django/contrib/admindocs/locale/zh_Hant/LC_MESSAGES/django.po,sha256=vhYxKhDRm6BkUKkLFetq1zDZ1-08Xe1xVnbUD0ABQuc,6734 +django/contrib/admindocs/middleware.py,sha256=owqLbigBtxKmhPQmz767KOAkN3nKRIJrwZAUuHRIAQM,1329 +django/contrib/admindocs/templates/admin_doc/bookmarklets.html,sha256=fSQP3eErm6R8yD7c8-KVilViI0vww6dqwkLwaAjgCaY,1282 +django/contrib/admindocs/templates/admin_doc/index.html,sha256=6bmIkahIH8CWMhGEytTHUZ7DtrDmcqhomJe48KbzvZY,1369 +django/contrib/admindocs/templates/admin_doc/missing_docutils.html,sha256=sx3z874_SIWPjKndIzfwYl8bQzEpTYMckA11RFFbqRI,788 +django/contrib/admindocs/templates/admin_doc/model_detail.html,sha256=DM5mTGfs1lEKlclSKMldLDsOoyrqRavqkR57hNM-cKE,1922 +django/contrib/admindocs/templates/admin_doc/model_index.html,sha256=sgwiE4Xxz7kcbk_UhHxgxLXyBh8SMHgHHvBucby3pPc,1358 +django/contrib/admindocs/templates/admin_doc/template_detail.html,sha256=sApk1HNa-n41lMIxRZHGoft9S4PvYedDPTtvHWuSsSc,1035 +django/contrib/admindocs/templates/admin_doc/template_filter_index.html,sha256=U2HBVHXtgCqUp9hLuOMVqCxBbXyYMMgAORG8fziN7uc,1775 +django/contrib/admindocs/templates/admin_doc/template_tag_index.html,sha256=S4U-G05yi1YIlFEv-HG20bDiq4rhdiZCgebhVBzNzdY,1731 +django/contrib/admindocs/templates/admin_doc/view_detail.html,sha256=XmsemLe45BpHDKAroqH7dwlmI9npVu2DZGzELA7trgs,914 +django/contrib/admindocs/templates/admin_doc/view_index.html,sha256=ZLfmxMkVlPYETRFnjLmU3bagve4ZvY1Xzsya1Lntgkw,1734 +django/contrib/admindocs/urls.py,sha256=spPSD6wc_B9eABF4mEWIhPSZ3w6W4fM6ERGepo8NRtY,1309 +django/contrib/admindocs/utils.py,sha256=38lwFUI08_m5OK6d-EUzp90qxysM9Da7lAn-rwcSnwI,7554 +django/contrib/admindocs/views.py,sha256=wziiyS5ZKAt2iLnhlBtzQbHheq4zmJqBl7B0YCoSAS8,18858 +django/contrib/auth/__init__.py,sha256=gq2Ba2T4Z5S7-_Vbo_7GVZ6CZAqawLbuUAMB4y4emgk,9587 +django/contrib/auth/__pycache__/__init__.cpython-312.pyc,, +django/contrib/auth/__pycache__/admin.cpython-312.pyc,, +django/contrib/auth/__pycache__/apps.cpython-312.pyc,, +django/contrib/auth/__pycache__/backends.cpython-312.pyc,, +django/contrib/auth/__pycache__/base_user.cpython-312.pyc,, +django/contrib/auth/__pycache__/checks.cpython-312.pyc,, +django/contrib/auth/__pycache__/context_processors.cpython-312.pyc,, +django/contrib/auth/__pycache__/decorators.cpython-312.pyc,, +django/contrib/auth/__pycache__/forms.cpython-312.pyc,, +django/contrib/auth/__pycache__/hashers.cpython-312.pyc,, +django/contrib/auth/__pycache__/middleware.cpython-312.pyc,, +django/contrib/auth/__pycache__/mixins.cpython-312.pyc,, +django/contrib/auth/__pycache__/models.cpython-312.pyc,, +django/contrib/auth/__pycache__/password_validation.cpython-312.pyc,, +django/contrib/auth/__pycache__/signals.cpython-312.pyc,, +django/contrib/auth/__pycache__/tokens.cpython-312.pyc,, +django/contrib/auth/__pycache__/urls.cpython-312.pyc,, +django/contrib/auth/__pycache__/validators.cpython-312.pyc,, +django/contrib/auth/__pycache__/views.cpython-312.pyc,, +django/contrib/auth/admin.py,sha256=2eYZHgq13lkhwKzsLZ-8GYvFFUtDHAYHp8knLw-AEfQ,10233 +django/contrib/auth/apps.py,sha256=qpjjFdMH0H3-ialZrRYQ5fnmfCuSh0RiD3bsKzzTEeY,1284 +django/contrib/auth/backends.py,sha256=CimJyPjL4y1hth8WLKg87kJE7WqZYrNRKIZ8qfeaDIM,8535 +django/contrib/auth/base_user.py,sha256=4rB47WSGO4S_W21Tva3JGRq_FYj_cel0Qqqeu5913P0,4919 +django/contrib/auth/checks.py,sha256=yXWvy6kUyj4WfDlkDBtybwEFKuqvNhT9rqHj4FCdTlA,9847 +django/contrib/auth/common-passwords.txt.gz,sha256=MrUGEpphkJZUW9O7s1yYu5g7PnYWd48T5BWySr3CO-c,82262 +django/contrib/auth/context_processors.py,sha256=8BbvdbTVPl8GVgB5-2LTzx6FrGsMzev-E7JMnUgr-rM,1911 +django/contrib/auth/decorators.py,sha256=thqEdZgHN6Sez-O9ki7hUaP839w0QGbpOftxnedTrnk,4800 +django/contrib/auth/forms.py,sha256=DPd0y-dMMuTZ0k3nF5cthiEa2DdQOCS7x6egsUVTwmg,19556 +django/contrib/auth/handlers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/contrib/auth/handlers/__pycache__/__init__.cpython-312.pyc,, +django/contrib/auth/handlers/__pycache__/modwsgi.cpython-312.pyc,, +django/contrib/auth/handlers/modwsgi.py,sha256=bTXKVMezywsn1KA2MVyDWeHvTNa2KrwIxn2olH7o_5I,1248 +django/contrib/auth/hashers.py,sha256=6P2FN1q8DIJfO1yiGRVlI3WmrgXh6dYmrpvCoZ6E85s,23332 +django/contrib/auth/locale/af/LC_MESSAGES/django.mo,sha256=mVOEfY5dw97Eo1JuCOonKhU1p2Sfhi5QCPkvm_ExbOQ,7514 +django/contrib/auth/locale/af/LC_MESSAGES/django.po,sha256=twHhtsP_x0xV_NbCaTUqF4mBzODjmdjkrawlmn1qwbQ,7739 +django/contrib/auth/locale/ar/LC_MESSAGES/django.mo,sha256=7LhxFfL9y6RAfZ8PU-1lKI2V02LbHxXtB1UAf_vXpuc,10040 +django/contrib/auth/locale/ar/LC_MESSAGES/django.po,sha256=2QIaioY0RedAB0CFKVZLhGoCnhLzgUh84sAR7i6QUnQ,10520 +django/contrib/auth/locale/ar_DZ/LC_MESSAGES/django.mo,sha256=0UokSPc3WDs_0PozSalfBaq4JFYgF1Rt7b90CKvY5jE,10228 +django/contrib/auth/locale/ar_DZ/LC_MESSAGES/django.po,sha256=GDvm2m1U7NOY5l7FijKGR77DEZt6rYWoSPCxsY5BZ3Y,10574 +django/contrib/auth/locale/ast/LC_MESSAGES/django.mo,sha256=Pt3gYY3j8Eroo4lAEmf-LR6u9U56mpE3vqLhjR4Uq-o,2250 +django/contrib/auth/locale/ast/LC_MESSAGES/django.po,sha256=Kiq4s8d1HnYpo3DQGlgUl3bOkxmgGW8CvGp9AbryRk8,5440 +django/contrib/auth/locale/az/LC_MESSAGES/django.mo,sha256=lSvutBofai-DGk-5quHnAtUdvm8yMDODXE0mHRdXXG8,8758 +django/contrib/auth/locale/az/LC_MESSAGES/django.po,sha256=SCEXf1r7q8P0dXOM36RUM_vlxKzApsfHiN8U-IMUR_Q,9134 +django/contrib/auth/locale/be/LC_MESSAGES/django.mo,sha256=GiAmNOuVSc5mQ9ne8BGNz1BeK2WLZQPzIHTZsJZP6As,11469 +django/contrib/auth/locale/be/LC_MESSAGES/django.po,sha256=shpzgVhb1UC2uoq1IhlYRqm_b_YfGLXqdO-8pZVPBX0,11784 +django/contrib/auth/locale/bg/LC_MESSAGES/django.mo,sha256=qChURIcNm50ePM5nO-Rh44LO-f8ww7lUro0GQRXE_wY,10717 +django/contrib/auth/locale/bg/LC_MESSAGES/django.po,sha256=9Uo19-kzj6jTyvKGyWFk4KdqbXwZOvX4rucEJXRJFGE,11221 +django/contrib/auth/locale/bn/LC_MESSAGES/django.mo,sha256=cJSawQn3rNh2I57zK9vRi0r1xc598Wr26AyHh6D50ZQ,5455 +django/contrib/auth/locale/bn/LC_MESSAGES/django.po,sha256=5Vqd4n9ab98IMev4GHLxpO7f4r9nnhC3Nfx27HQNd8s,7671 +django/contrib/auth/locale/br/LC_MESSAGES/django.mo,sha256=nxLj88BBhT3Hudev1S_BRC8P6Jv7eoR8b6CHGt5eoPo,1436 +django/contrib/auth/locale/br/LC_MESSAGES/django.po,sha256=rFo68wfXMyju633KCAhg0Jcb3GVm3rk4opFQqI89d6Y,5433 +django/contrib/auth/locale/bs/LC_MESSAGES/django.mo,sha256=jDjP1qIs02k6RixY9xy3V7Cr6zi-henR8nDnhqNG18s,3146 +django/contrib/auth/locale/bs/LC_MESSAGES/django.po,sha256=NOICHHU8eFtltH0OBlnasz9TF0uZGZd3hMibRmn158E,5975 +django/contrib/auth/locale/ca/LC_MESSAGES/django.mo,sha256=lqiOLv_LZDLeXbJZYsrWRHzcnwd1vd00tW5Jrh-HHkY,7643 +django/contrib/auth/locale/ca/LC_MESSAGES/django.po,sha256=v-3t7bDTh1835nZnjYh3_HyN4yw4a1HyHpC3-jX79Z0,8216 +django/contrib/auth/locale/ckb/LC_MESSAGES/django.mo,sha256=JCxL4vCR76rQywGn0bbhs0DGltbj-DOF_GTjcWuk2n8,11066 +django/contrib/auth/locale/ckb/LC_MESSAGES/django.po,sha256=SdmYPkVor_sWdOnLkyclkaR52N1IiXUP-0i7xjZs2hk,11254 +django/contrib/auth/locale/cs/LC_MESSAGES/django.mo,sha256=7TuyZNQ11j4iLxxr_xch3gBDQ0cSTh0VFUa0FMzH1Uo,7836 +django/contrib/auth/locale/cs/LC_MESSAGES/django.po,sha256=qoA5lHFEwLZZakgYONzA-TxBqpBNhBytGHxS40YCf0s,8292 +django/contrib/auth/locale/cy/LC_MESSAGES/django.mo,sha256=lSfCwEVteW4PDaiGKPDxnSnlDUcGMkPfsxIluExZar0,4338 +django/contrib/auth/locale/cy/LC_MESSAGES/django.po,sha256=-LPAKGXNzB77lVHfCRmFlH3SUaLgOXk_YxfC0BomcEs,6353 +django/contrib/auth/locale/da/LC_MESSAGES/django.mo,sha256=VhiC9Xb7XETvGMN3aSnLOE2-VKMKrU3d_WMXjPrgAaE,8509 +django/contrib/auth/locale/da/LC_MESSAGES/django.po,sha256=AKKwK0cjG4SuQh5Rc1LU0b_rZnboXLHgvPreJv1NEVA,8979 +django/contrib/auth/locale/de/LC_MESSAGES/django.mo,sha256=nvwrbU-uvQonGW_UD5zVh7u70csi_5qCehsI-AlTRx4,7607 +django/contrib/auth/locale/de/LC_MESSAGES/django.po,sha256=MJGIuwfkwEs9oiktL4C2uB0XXG6gh2zCI_jr-DcH5Tk,8158 +django/contrib/auth/locale/dsb/LC_MESSAGES/django.mo,sha256=ENymm4sXNqH7K1z1zP7afU18b4NUcMezi7onBMArLRc,8249 +django/contrib/auth/locale/dsb/LC_MESSAGES/django.po,sha256=iOQZuKzPrsA-NE70SxzKsJWsy1CdvGLBL7y0oogOFso,8559 +django/contrib/auth/locale/el/LC_MESSAGES/django.mo,sha256=KaP9RLYThwYWLBx0W90HI0zJZ09iNhZ3tk8UVF63n74,10072 +django/contrib/auth/locale/el/LC_MESSAGES/django.po,sha256=O5JsNCUNr1YcNNqMugoM5epN6nC5pgq3E6nKXDh3OY0,10795 +django/contrib/auth/locale/en/LC_MESSAGES/django.mo,sha256=U0OV81NfbuNL9ctF-gbGUG5al1StqN-daB-F-gFBFC8,356 +django/contrib/auth/locale/en/LC_MESSAGES/django.po,sha256=I3S-zHG_0-rk6CP7Qfv3wPX7U8zJCXfC6yGI_EeYAbY,9064 +django/contrib/auth/locale/en_AU/LC_MESSAGES/django.mo,sha256=7cPKOZX0ZmWCYU2ZwgCp8LwXj7FAdP3lMoI2u4nzgeU,7183 +django/contrib/auth/locale/en_AU/LC_MESSAGES/django.po,sha256=92Q42wfwKhGxDkomv8JlGBHVUdFIc_wvm_LUNBc9Q1k,7467 +django/contrib/auth/locale/en_GB/LC_MESSAGES/django.mo,sha256=p57gDaYVvgEk1x80Hq4Pn2SZbsp9ly3XrJ5Ttlt2yOE,3179 +django/contrib/auth/locale/en_GB/LC_MESSAGES/django.po,sha256=-yDflw5-81VOlyqkmLJN17FRuwDrhYXItFUJwx2aqpE,5787 +django/contrib/auth/locale/eo/LC_MESSAGES/django.mo,sha256=OCEu7qwKb20Cq2UO-dmHjNPXRfDTsQHp9DbyVXCxNMw,7421 +django/contrib/auth/locale/eo/LC_MESSAGES/django.po,sha256=wrvLqKIJycioUFAI7GkCRtDNZ9_OigG_Bf79Dmgpa7c,7868 +django/contrib/auth/locale/es/LC_MESSAGES/django.mo,sha256=LHInLfqseBA7qwg-IGxa9dP_PPtBQ1s_WQyiOF3mWJw,9039 +django/contrib/auth/locale/es/LC_MESSAGES/django.po,sha256=NuzeujHOyrGx6ZlV7S5dzNqNnsvTVSoPvmjni-wP7PQ,9856 +django/contrib/auth/locale/es_AR/LC_MESSAGES/django.mo,sha256=bJqsTLq8LbNucR-xsZezUZt79NyRy6Zi-XZJczUTTas,8244 +django/contrib/auth/locale/es_AR/LC_MESSAGES/django.po,sha256=dpVb-WfOZmuDjQPZg7-Xd_ThwHV34KnzIOpJ0tDkWhU,8514 +django/contrib/auth/locale/es_CO/LC_MESSAGES/django.mo,sha256=K5VaKTyeV_WoKsLR1x8ZG4VQmk3azj6ZM8Phqjs81So,6529 +django/contrib/auth/locale/es_CO/LC_MESSAGES/django.po,sha256=qJywTaYi7TmeMB1sjwsiwG8GXtxAOaOX0voj7lLVZRw,7703 +django/contrib/auth/locale/es_MX/LC_MESSAGES/django.mo,sha256=dCav1yN5q3bU4PvXZd_NxHQ8cZ9KqQCiNoe4Xi8seoY,7822 +django/contrib/auth/locale/es_MX/LC_MESSAGES/django.po,sha256=_4un21ALfFsFaqpLrkE2_I18iEfJlcAnd_X8YChfdWo,8210 +django/contrib/auth/locale/es_VE/LC_MESSAGES/django.mo,sha256=GwpZytNHtK7Y9dqQKDiVi4SfA1AtPlk824_k7awqrdI,7415 +django/contrib/auth/locale/es_VE/LC_MESSAGES/django.po,sha256=G3mSCo_XGRUfOAKUeP_UNfWVzDPpbQrVYQt8Hv3VZVM,7824 +django/contrib/auth/locale/et/LC_MESSAGES/django.mo,sha256=AeyT2OxqMVsE2qoQz_Q5GTdIIToKgkidn4KA3sTe66s,7216 +django/contrib/auth/locale/et/LC_MESSAGES/django.po,sha256=c9lhLx55iLurFJPybQyEqadVE2hfL_nIpDYazHAkkk4,8370 +django/contrib/auth/locale/eu/LC_MESSAGES/django.mo,sha256=aQfIMZ8FRzP-6OpZCpC2qrd4wbyWiapJOVIWlmyqde0,7181 +django/contrib/auth/locale/eu/LC_MESSAGES/django.po,sha256=AP53NIzFy-aCLnLds70LMg-XW7F_95VSD1ZWCedgkTI,7732 +django/contrib/auth/locale/fa/LC_MESSAGES/django.mo,sha256=yeA_5LAPu7OyQssunvUNlH07bPVCyGLpnvijNenrtHQ,8979 +django/contrib/auth/locale/fa/LC_MESSAGES/django.po,sha256=NChJSgpkXrwAiTrCJzvwlm9mh-LFSD1rR1ESdRQD43o,9513 +django/contrib/auth/locale/fi/LC_MESSAGES/django.mo,sha256=fH_rcYkl9L2dK1G3MjVETXAHunCPhsXQYMTbDcNe-00,7537 +django/contrib/auth/locale/fi/LC_MESSAGES/django.po,sha256=PVwyNBaToxjyHkxy4t4L-kULjJslTe94coSxWNseyn4,7892 +django/contrib/auth/locale/fr/LC_MESSAGES/django.mo,sha256=DUeXSFpP4KknfmgTVyNjdrtAfFGPgvOhcBhdDtvDKcg,9536 +django/contrib/auth/locale/fr/LC_MESSAGES/django.po,sha256=PAV72caHdYNROMLx64MaXJ5u8Tc-s5Vfg0ui0eVlJsE,9894 +django/contrib/auth/locale/fy/LC_MESSAGES/django.mo,sha256=95N-77SHF0AzQEer5LuBKu5n5oWf3pbH6_hQGvDrlP4,476 +django/contrib/auth/locale/fy/LC_MESSAGES/django.po,sha256=8XOzOFx-WerF7whzTie03hgO-dkbUFZneyrpZtat5JY,3704 +django/contrib/auth/locale/ga/LC_MESSAGES/django.mo,sha256=Nd02Ed9ACCY6JCCSwtiWl3DTODLFFu9Mq6JVlr5YbYk,3572 +django/contrib/auth/locale/ga/LC_MESSAGES/django.po,sha256=FQJMR5DosuKqo4vvF0NAQnjfqbH54MSzqL2-4BO4-uM,6127 +django/contrib/auth/locale/gd/LC_MESSAGES/django.mo,sha256=BLBYJV9Adx1BsXZaM0qZ54mNRAF5s4dxB1TBLtIyMHQ,8743 +django/contrib/auth/locale/gd/LC_MESSAGES/django.po,sha256=rqPK26mtE_U-TG2qyjc5xCR-feI3sGXZR5H6ohNzx4s,9099 +django/contrib/auth/locale/gl/LC_MESSAGES/django.mo,sha256=WTXkzn81WNcJXzDJoPdE3TWDQpKI8WP8GHx1Gq1sHv8,8805 +django/contrib/auth/locale/gl/LC_MESSAGES/django.po,sha256=xl3kbm0rMJ-3UcblwkEmjNLupbUdbNWqXiNNEUYbFYs,9223 +django/contrib/auth/locale/he/LC_MESSAGES/django.mo,sha256=gnP77qGURtGKPgbqmI6JqmX6TExxuCbM6nxZHXwRC58,8716 +django/contrib/auth/locale/he/LC_MESSAGES/django.po,sha256=qlwNJbk638S8p90BiMJyLCHZuReShEJCZTnmbPiJNks,9162 +django/contrib/auth/locale/hi/LC_MESSAGES/django.mo,sha256=7CxV1H37hMbgKIhnAWx-aJmipLRosJe1qg8BH2CABfw,5364 +django/contrib/auth/locale/hi/LC_MESSAGES/django.po,sha256=DU5YM6r1kd5fo40yqFXzEaNh42ezFQFQ-0dmVqkaKQ0,7769 +django/contrib/auth/locale/hr/LC_MESSAGES/django.mo,sha256=GEap3QClwCkuwQZKJE7qOZl93RRxmyyvTTnOTYaAWUo,5894 +django/contrib/auth/locale/hr/LC_MESSAGES/django.po,sha256=ALftoYSaI1U90RNDEvnaFATbw1SL0m8fNXAyl6DkSvo,7355 +django/contrib/auth/locale/hsb/LC_MESSAGES/django.mo,sha256=bkFfrGhbVkopx8X9W5i2HJ6L-nCgebwT5w5WDbYvePY,8082 +django/contrib/auth/locale/hsb/LC_MESSAGES/django.po,sha256=Xb_73b2geSGdwolmiCnNoO8TfzbgAzbt6iXAlzH_5rI,8383 +django/contrib/auth/locale/hu/LC_MESSAGES/django.mo,sha256=GnQqvpIXhU3emYyLw6MMNbspnvIFzpJsz8Pd-I9jrjg,7714 +django/contrib/auth/locale/hu/LC_MESSAGES/django.po,sha256=zPswCaG-SLvyVa16iRgmPDF6vmd1yxXmTWHbjwhzy0Q,8111 +django/contrib/auth/locale/hy/LC_MESSAGES/django.mo,sha256=zoLe0EqIH8HQYC5XAWd8b8mA2DpbmDSEBsF-WIKX_OQ,8001 +django/contrib/auth/locale/hy/LC_MESSAGES/django.po,sha256=wIWLbz6f0n44ZcjEbZZsgoWTpzXRGND15hudr_DQ3l0,8787 +django/contrib/auth/locale/ia/LC_MESSAGES/django.mo,sha256=OTxh6u0QmsytMrp8IKWBwMnhrYCpyS6qVnF7YBCAWe0,7626 +django/contrib/auth/locale/ia/LC_MESSAGES/django.po,sha256=ue4RXEXweO1-9sZOKkLZsyZe8yxnPWB3JZyyh3qzmlA,7895 +django/contrib/auth/locale/id/LC_MESSAGES/django.mo,sha256=rEtc08pC6VidwzSMWJvZjERYpdTZd6np3-N3YK8uILk,7296 +django/contrib/auth/locale/id/LC_MESSAGES/django.po,sha256=X1pfbeKqnWg-Sw_hycWuXWDqKpdzrDHMt2SVuifAQjQ,7733 +django/contrib/auth/locale/io/LC_MESSAGES/django.mo,sha256=YwAS3aWljAGXWcBhGU_GLVuGJbHJnGY8kUCE89CPdks,464 +django/contrib/auth/locale/io/LC_MESSAGES/django.po,sha256=W36JXuA1HQ72LspixRxeuvxogVxtk7ZBbT0VWI38_oM,3692 +django/contrib/auth/locale/is/LC_MESSAGES/django.mo,sha256=0PBYGqQKJaAG9m2jmJUzcqRVPc16hCe2euECMCrNGgI,7509 +django/contrib/auth/locale/is/LC_MESSAGES/django.po,sha256=o6dQ8WMuPCw4brSzKUU3j8PYhkLBO7XQ3M7RlsIw-VY,7905 +django/contrib/auth/locale/it/LC_MESSAGES/django.mo,sha256=pcBcdOXLqT4shr7Yw5l-pxfYknJyDW6d-jGtkncl24E,7862 +django/contrib/auth/locale/it/LC_MESSAGES/django.po,sha256=f03_tMPiwLF1ZyWfnB_j2vhPR1AXkborGQS2Tbxufzk,8471 +django/contrib/auth/locale/ja/LC_MESSAGES/django.mo,sha256=_iLobe-w4zxA1CQTZ045ZxuUiAsfSM-NL7p9H7C6shU,9229 +django/contrib/auth/locale/ja/LC_MESSAGES/django.po,sha256=JHggNIie2hqLGta327VO0e32U_AL8Ex30bnsS4CXhHY,9564 +django/contrib/auth/locale/ka/LC_MESSAGES/django.mo,sha256=4aJoE1O5jfm5MI7kBqymzb-xOKLDw2mJD5-VhezlMA8,10372 +django/contrib/auth/locale/ka/LC_MESSAGES/django.po,sha256=hvmbD3RS3lOFj2h7A3m23asktwM5zbCdRvs7YvesAkI,11163 +django/contrib/auth/locale/kab/LC_MESSAGES/django.mo,sha256=9qKeQ-gDByoOdSxDpSbLaM4uSP5sIi7qlTn8tJidVDs,2982 +django/contrib/auth/locale/kab/LC_MESSAGES/django.po,sha256=8cq5_rjRXPzTvn1jPo6H_Jcrv6IXkWr8n9fTPvghsS8,5670 +django/contrib/auth/locale/kk/LC_MESSAGES/django.mo,sha256=RJablrXpRba6YVB_8ACSt2q_BjmxrHQZzX6RxMJImlA,3542 +django/contrib/auth/locale/kk/LC_MESSAGES/django.po,sha256=OebwPN9iWBvjDu0P2gQyBbShvIFxFIqCw8DpKuti3xk,6360 +django/contrib/auth/locale/km/LC_MESSAGES/django.mo,sha256=FahcwnCgzEamtWcDEPOiJ4KpXCIHbnSowfSRdRQ2F9U,2609 +django/contrib/auth/locale/km/LC_MESSAGES/django.po,sha256=lvRHHIkClbt_8-9Yn0xY57dMxcS72z4sUkxLb4cohP0,5973 +django/contrib/auth/locale/kn/LC_MESSAGES/django.mo,sha256=u0YygqGJYljBZwI9rm0rRk_DdgaBEMA1etL-Lk-7Mls,4024 +django/contrib/auth/locale/kn/LC_MESSAGES/django.po,sha256=J67MIAas5egVq_FJBNsug3Y7rZ8KakhQt6isyF23HAA,6957 +django/contrib/auth/locale/ko/LC_MESSAGES/django.mo,sha256=8avsa0J96myXPxdFhChPiKpjvMhaQv3EHIjuo6f3jls,7651 +django/contrib/auth/locale/ko/LC_MESSAGES/django.po,sha256=gKhckUZzS1PekOV5Jingxke-3U2dPGRAidkgBbfootg,8422 +django/contrib/auth/locale/ky/LC_MESSAGES/django.mo,sha256=mnBXtpInYxaSNIURJTmx8uBg_PH-NuPN9r54pkQY3q4,8924 +django/contrib/auth/locale/ky/LC_MESSAGES/django.po,sha256=7FeO_Kb2er0S84KnFeXVHO3TgAmEJ0gTQEDHImoxiZ4,9170 +django/contrib/auth/locale/lb/LC_MESSAGES/django.mo,sha256=OFhpMA1ZXhrs5fwZPO5IjubvWDiju4wfwWiV94SFkiA,474 +django/contrib/auth/locale/lb/LC_MESSAGES/django.po,sha256=dOfY9HjTfMQ0nkRYumw_3ZaywbUrTgT-oTXAnrRyfxo,3702 +django/contrib/auth/locale/lt/LC_MESSAGES/django.mo,sha256=-nlZHl7w__TsFUmBb5pQV_XJtKGsi9kzP6CBZXkfM8M,8146 +django/contrib/auth/locale/lt/LC_MESSAGES/django.po,sha256=-rdhB6eroSSemsdZkG1Jl4CruNZc_7dj4m5IVoyRBUQ,8620 +django/contrib/auth/locale/lv/LC_MESSAGES/django.mo,sha256=BRIOgvLPHsfaWGrwYJNGCEKD-erXHTZpI8WNAlVGVBM,8802 +django/contrib/auth/locale/lv/LC_MESSAGES/django.po,sha256=nZJfE5Q4ISl7hsh0MR_vCReE7PGmTJKVYR22cEbHVGE,9322 +django/contrib/auth/locale/mk/LC_MESSAGES/django.mo,sha256=XS9dslnD_YBeD07P8WQkss1gT7GIV-qLiCx4i5_Vd_k,9235 +django/contrib/auth/locale/mk/LC_MESSAGES/django.po,sha256=QOLgcwHub9Uo318P2z6sp69MI8syIIWCcr4VOom9vfs,9799 +django/contrib/auth/locale/ml/LC_MESSAGES/django.mo,sha256=UEaqq7nnGvcZ8vqFicLiuqsuEUhEjd2FpWfyzy2HqdU,12611 +django/contrib/auth/locale/ml/LC_MESSAGES/django.po,sha256=xBROIwJb5h2LmyBLAafZ2tUlPVTAOcMgt-olq5XnPT8,13107 +django/contrib/auth/locale/mn/LC_MESSAGES/django.mo,sha256=hBYT0p3LcvIKKPtIn2NzPk_2di9L8jYrUt9j3TcVvaY,9403 +django/contrib/auth/locale/mn/LC_MESSAGES/django.po,sha256=R3wAEwnefEHZsma8J-XOn4XlLtuWYKDPLwJ99DUYmvE,9913 +django/contrib/auth/locale/mr/LC_MESSAGES/django.mo,sha256=c_W1FsdevGBCJfpcY4MmgSPGUGqFAqWArpXhldn9MA8,10430 +django/contrib/auth/locale/mr/LC_MESSAGES/django.po,sha256=x8RUK6Bymg2o3YDREqEZvaLpw2PIzMbXaQhJqpyGpLA,11068 +django/contrib/auth/locale/ms/LC_MESSAGES/django.mo,sha256=eCAZrzQxsM_pAxr_XQo2fIOsCbj5LjGKpLNCzob2l-I,7654 +django/contrib/auth/locale/ms/LC_MESSAGES/django.po,sha256=FAtyzSGcD1mIhRIg8O_1SHLdisTPGYZK-QUjzgw-wCY,7847 +django/contrib/auth/locale/my/LC_MESSAGES/django.mo,sha256=gYzFJKi15RbphgG1IHbJF3yGz3P2D9vaPoHZpA7LoH8,1026 +django/contrib/auth/locale/my/LC_MESSAGES/django.po,sha256=lH5mrq-MyY8gvrNkH2_20rkjFnbviq23wIUqIjPIgFI,5130 +django/contrib/auth/locale/nb/LC_MESSAGES/django.mo,sha256=vLJ9F73atlexwVRzZJpQjcB9arodHIMCh-z8lP5Ah9w,7023 +django/contrib/auth/locale/nb/LC_MESSAGES/django.po,sha256=c3sTCdzWGZgs94z9dIIpfrFuujBuvWvQ-P0gb1tuqlA,7520 +django/contrib/auth/locale/ne/LC_MESSAGES/django.mo,sha256=pq8dEr1ugF5ldwkCDHOq5sXaXV31InbLHYyXU56U_Ao,7722 +django/contrib/auth/locale/ne/LC_MESSAGES/django.po,sha256=bV-uWvT1ViEejrbRbVTtwC2cZVD2yX-KaESxKBnxeRI,8902 +django/contrib/auth/locale/nl/LC_MESSAGES/django.mo,sha256=mVnVHcT_txoSb49PFTXxGVjtdv6Anmo77Ut7YuXuYU8,8654 +django/contrib/auth/locale/nl/LC_MESSAGES/django.po,sha256=VIN_7kSM-4gJVypjnpuGTvYdtZRHDkpFWtuHnZi1TBQ,9445 +django/contrib/auth/locale/nn/LC_MESSAGES/django.mo,sha256=83HdNOuNQVgJXBZMytPz1jx3wWDy8-e6t_JNEUu6W8w,7147 +django/contrib/auth/locale/nn/LC_MESSAGES/django.po,sha256=4ciwQsZFYSV6CjFqzxxcESAm16huv9XyXvU-nchD-Fs,7363 +django/contrib/auth/locale/os/LC_MESSAGES/django.mo,sha256=DVsYGz-31nofEjZla4YhM5L7qoBnQaYnZ4TBki03AI4,4434 +django/contrib/auth/locale/os/LC_MESSAGES/django.po,sha256=Akc1qelQWRA1DE6xseoK_zsY7SFI8SpiVflsSTUhQLw,6715 +django/contrib/auth/locale/pa/LC_MESSAGES/django.mo,sha256=PeOLukzQ_CZjWBa5FGVyBEysat4Gwv40xGMS29UKRww,3666 +django/contrib/auth/locale/pa/LC_MESSAGES/django.po,sha256=7ts9PUSuvfXGRLpfyVirJLDtsQcsVWFXDepVKUVlmtc,6476 +django/contrib/auth/locale/pl/LC_MESSAGES/django.mo,sha256=NXZZQrnop8eooTdPzfp38tP0EMabV7CfpZgXxhPibyM,9123 +django/contrib/auth/locale/pl/LC_MESSAGES/django.po,sha256=aQho-iU1nlNxHQbCE1kxoz7_qhEHbNNlz4hU3fDl98g,9975 +django/contrib/auth/locale/pt/LC_MESSAGES/django.mo,sha256=wRDb8DfDcvtj6MCrLJ9gxKKF2SlK_QHpqufHfoYaFa8,6953 +django/contrib/auth/locale/pt/LC_MESSAGES/django.po,sha256=suckZxgfaB1G1iXeUI59tc0AsDpdvkLugy52q1qvw9I,7893 +django/contrib/auth/locale/pt_BR/LC_MESSAGES/django.mo,sha256=SbCDXBKvSHkdoVhcfQMXv4U_REmfd_trd6yx1iDUMTE,8790 +django/contrib/auth/locale/pt_BR/LC_MESSAGES/django.po,sha256=CQOyNh0snCEjcdMllEya8aIk3DLo1OJ0xC302hJVnFg,9955 +django/contrib/auth/locale/ro/LC_MESSAGES/django.mo,sha256=GD04tb5R6nEeD6ZMAcZghVhXwr8en1omw0c6BxnyHas,7777 +django/contrib/auth/locale/ro/LC_MESSAGES/django.po,sha256=YfkFuPrMwAR50k6lfOYeBbMosEbvXGWwMBD8B7p_2ZA,8298 +django/contrib/auth/locale/ru/LC_MESSAGES/django.mo,sha256=eCeiUY5awrFu5ih4y-pu8Tvul4vYKmwC0fFi_JXCWNY,11873 +django/contrib/auth/locale/ru/LC_MESSAGES/django.po,sha256=eLgUzuchTermohKhO3WxOHEPdW8IqwqBazgiWDEzkOk,12456 +django/contrib/auth/locale/sk/LC_MESSAGES/django.mo,sha256=FJvONd0jTxmUrKmRb6IPt1uHGMqvjQ7uUXDvQCd8XsI,7917 +django/contrib/auth/locale/sk/LC_MESSAGES/django.po,sha256=1GYkv3O1SqhUhotYgSEf_s817wtc4C7VTh62Y2Q3J8s,8385 +django/contrib/auth/locale/sl/LC_MESSAGES/django.mo,sha256=_Lx1YcW4tvCpsXXXmcCMhrttpLR4389330tnB1ycCok,7659 +django/contrib/auth/locale/sl/LC_MESSAGES/django.po,sha256=MPEv4Ac5MwcywffmPyLxAzSMLLX1cOdZevPlpIMju28,8136 +django/contrib/auth/locale/sq/LC_MESSAGES/django.mo,sha256=iR5C7Yh5am7z9QLU2jm9V3R9yWawAcu9NbhAvltg_RY,9021 +django/contrib/auth/locale/sq/LC_MESSAGES/django.po,sha256=yWGvT-IIdgXCyJB8dPps02iQDLSS1FVM4yPTckaMFPM,9381 +django/contrib/auth/locale/sr/LC_MESSAGES/django.mo,sha256=70UYT-rE32AZUMPTX2BLVzndmW6PFi9plyuVXV-AmaM,11244 +django/contrib/auth/locale/sr/LC_MESSAGES/django.po,sha256=V4DApTaiWBJmF-a5caRw_F5HZP34kV-N3X7U5IgHQxA,11554 +django/contrib/auth/locale/sr_Latn/LC_MESSAGES/django.mo,sha256=ErH27vBYfkVl7T9TtnaWTxVGdGSrbIC3cflXko3QIbA,8794 +django/contrib/auth/locale/sr_Latn/LC_MESSAGES/django.po,sha256=bNkHPHLgxmKe5biIdPN_Tgo6q7-u7hJaY0Jk36TU8a0,12715 +django/contrib/auth/locale/sv/LC_MESSAGES/django.mo,sha256=Hxy7f19YQMmOTq9YywhUd5p6Y8Wlfu55bXKw-SElw3I,8542 +django/contrib/auth/locale/sv/LC_MESSAGES/django.po,sha256=c_MyD3bQV8NrBYNDP1fvRoGsjXMZl6uPr55n-r5nmUg,9250 +django/contrib/auth/locale/sw/LC_MESSAGES/django.mo,sha256=I_lEsKuMGm07X1vM3-ReGDx2j09PGLkWcG0onC8q1uQ,5029 +django/contrib/auth/locale/sw/LC_MESSAGES/django.po,sha256=TiZS5mh0oN0e6dFEdh-FK81Vk-tdv35ngJ-EbM1yX80,6455 +django/contrib/auth/locale/ta/LC_MESSAGES/django.mo,sha256=T1t5CKEb8hIumvbOtai-z4LKj2et8sX-PgBMd0B3zuA,2679 +django/contrib/auth/locale/ta/LC_MESSAGES/django.po,sha256=X8UDNmk02X9q1leNV1qWWwPNakhvNd45mCKkQ8EpZQQ,6069 +django/contrib/auth/locale/te/LC_MESSAGES/django.mo,sha256=i9hG4thA0P-Hc-S2oX7GufWFDO4Y_LF4RcdQ22cbLyE,2955 +django/contrib/auth/locale/te/LC_MESSAGES/django.po,sha256=txND8Izv2oEjSlcsx3q6l5fEUqsS-zv-sjVVILB1Bmc,6267 +django/contrib/auth/locale/tg/LC_MESSAGES/django.mo,sha256=MwdyYwC4ILX4MFsqCy46NNfPKLbW1GzRhFxMV0uIbLI,7932 +django/contrib/auth/locale/tg/LC_MESSAGES/django.po,sha256=miOPNThjHZODwjXMbON8PTMQhaCGJ0Gy6FZr6Jcj4J8,8938 +django/contrib/auth/locale/th/LC_MESSAGES/django.mo,sha256=zRpZ2xM5JEQoHtfXm2_XYdhe2FtaqH-hULJadLJ1MHU,6013 +django/contrib/auth/locale/th/LC_MESSAGES/django.po,sha256=Yhh_AQS_aM_9f_yHNNSu_3THbrU-gOoMpfiDKhkaSHo,7914 +django/contrib/auth/locale/tk/LC_MESSAGES/django.mo,sha256=5Rl2GMYL11RMSyro83E2oHNaehHjjGJKAJmp0swjV-0,7467 +django/contrib/auth/locale/tk/LC_MESSAGES/django.po,sha256=HAcou6t1zkXVrzyau7gr4i_H0DYpT5HOh9AxV-tnKD0,7763 +django/contrib/auth/locale/tr/LC_MESSAGES/django.mo,sha256=1qo1gGcZFu3rZESoCGfZX97g8j50qLd8AKDhKvxCOjM,8662 +django/contrib/auth/locale/tr/LC_MESSAGES/django.po,sha256=0-q_75Eibqzcew9-t30cueOuPBpekepDi8edFlzzAcA,9236 +django/contrib/auth/locale/tt/LC_MESSAGES/django.mo,sha256=g4pTk8QLQFCOkU29RZvR1wOd1hkOZe_o5GV9Cg5u8N4,1371 +django/contrib/auth/locale/tt/LC_MESSAGES/django.po,sha256=owkJ7iPT-zJYkuKLykfWsw8j7O8hbgzVTOD0DVv956E,5222 +django/contrib/auth/locale/udm/LC_MESSAGES/django.mo,sha256=zey19UQmS79AJFxHGrOziExPDDpJ1AbUegbCRm0x0hM,462 +django/contrib/auth/locale/udm/LC_MESSAGES/django.po,sha256=gLVgaMGg0GA3Tey1_nWIjV1lnM7czLC0XR9NFBgL2Zk,3690 +django/contrib/auth/locale/ug/LC_MESSAGES/django.mo,sha256=ofwM5-xcJz6awJwKHfxKW4NnO5ozRjpPomGDbNA5NXs,9516 +django/contrib/auth/locale/ug/LC_MESSAGES/django.po,sha256=ad2o4iCsT5ONsjX6A1WRKlTFTcBuJESIO14Dcd9bxNE,9798 +django/contrib/auth/locale/uk/LC_MESSAGES/django.mo,sha256=hjA-VzGMy8ReYSjuELwK3WEliLLjGsi0iRadzoX8UyU,10146 +django/contrib/auth/locale/uk/LC_MESSAGES/django.po,sha256=8R2bP3QC6jhcz_XSpK-GK1OPTCCb7PN6bz-1ZRX37fs,10850 +django/contrib/auth/locale/ur/LC_MESSAGES/django.mo,sha256=rippTNHoh49W19c4HDUF8G5Yo3SknL3C87Afu8YXxzA,698 +django/contrib/auth/locale/ur/LC_MESSAGES/django.po,sha256=gwSd8noEwbcvDE1Q4ZsrftvoWMwhw1J15gvdtK6E9ns,4925 +django/contrib/auth/locale/uz/LC_MESSAGES/django.mo,sha256=bDkhpvduocjekq6eZiuEfWJqnIt5hQmxxoIMhLQWzqM,2549 +django/contrib/auth/locale/uz/LC_MESSAGES/django.po,sha256=tPp8tRZwSMQCQ9AyAeUDtnRfmOk54UQMwok3HH8VNSQ,5742 +django/contrib/auth/locale/vi/LC_MESSAGES/django.mo,sha256=eBMTwnpRWRj8SZVZ1tN592Re_8CPyJzuF4Vtg9IMmFw,7892 +django/contrib/auth/locale/vi/LC_MESSAGES/django.po,sha256=mOr5WgFpwztdW-pEZ4O80MGlltYQyL2cAMhz6-Esfo0,8246 +django/contrib/auth/locale/zh_Hans/LC_MESSAGES/django.mo,sha256=yvlxCFBjcx-glKmhtkQK6e14y8ypfsuD6es3N8_XLuA,6902 +django/contrib/auth/locale/zh_Hans/LC_MESSAGES/django.po,sha256=YhVLBn5UKSNNJ6nDv_GWFcFfF4jy3AA_VsYYqxfN2j0,7689 +django/contrib/auth/locale/zh_Hant/LC_MESSAGES/django.mo,sha256=zSv5dAoJH39_y0rvB8TurVwgP3OnEozuOmtoImu5gzA,7683 +django/contrib/auth/locale/zh_Hant/LC_MESSAGES/django.po,sha256=XGPQJfi8A0wHVTkEuIZa6DPr0wLlZr06pMQeAuN12jc,8114 +django/contrib/auth/management/__init__.py,sha256=I_I5B5ym_x8_r5iFL9xm_zLwlqyljCJmcJ7KS4qx7QM,5249 +django/contrib/auth/management/__pycache__/__init__.cpython-312.pyc,, +django/contrib/auth/management/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/contrib/auth/management/commands/__pycache__/__init__.cpython-312.pyc,, +django/contrib/auth/management/commands/__pycache__/changepassword.cpython-312.pyc,, +django/contrib/auth/management/commands/__pycache__/createsuperuser.cpython-312.pyc,, +django/contrib/auth/management/commands/changepassword.py,sha256=H9onbQvVwzILiRK6Cg96qGrLi8_kdjoxBVMvupX18eI,2686 +django/contrib/auth/management/commands/createsuperuser.py,sha256=cSl8FeoXYBw5DUjtnHRYmybsYIx6WztUkYjgx4ZO1XI,13576 +django/contrib/auth/middleware.py,sha256=0u5YALdQ3V8uD4VMK1Bep5N00sRNn659mKX3djmi0HA,7726 +django/contrib/auth/migrations/0001_initial.py,sha256=hFz_MZYGMy9J7yDOFl0aF-UixCbF5W12FhM-nk6rpe8,7281 +django/contrib/auth/migrations/0002_alter_permission_name_max_length.py,sha256=_q-X4Oj30Ui-w9ubqyNJxeFYiBF8H_KCne_2PvnhbP8,346 +django/contrib/auth/migrations/0003_alter_user_email_max_length.py,sha256=nVZXtNuYctwmwtY0wvWRGj1pqx2FUq9MbWM7xAAd-r8,418 +django/contrib/auth/migrations/0004_alter_user_username_opts.py,sha256=lTjbNCyam-xMoSsxN_uAdyxOpK-4YehkeilisepYNEo,880 +django/contrib/auth/migrations/0005_alter_user_last_login_null.py,sha256=efYKNdwAD91Ce8BchSM65bnEraB4_waI_J94YEv36u4,410 +django/contrib/auth/migrations/0006_require_contenttypes_0002.py,sha256=AMsW40BfFLYtvv-hXGjJAwKR5N3VE9czZIukYNbF54E,369 +django/contrib/auth/migrations/0007_alter_validators_add_error_messages.py,sha256=EV24fcMnUw-14ZZLo9A_l0ZJL5BgBAaUe-OfVPbMBC8,802 +django/contrib/auth/migrations/0008_alter_user_username_max_length.py,sha256=AoV_ZffWSBR6XRJZayAKg-KRRTkdP5hs64SzuGWiw1E,814 +django/contrib/auth/migrations/0009_alter_user_last_name_max_length.py,sha256=GaiVAOfxCKc5famxczGB-SEF91hmOzaFtg9cLaOE124,415 +django/contrib/auth/migrations/0010_alter_group_name_max_length.py,sha256=CWPtZJisCzqEMLbKNMG0pLHV9VtD09uQLxWgP_dLFM0,378 +django/contrib/auth/migrations/0011_update_proxy_permissions.py,sha256=haXd5wjcS2ER4bxxznI-z7p7H4rt7P0TCQD_d4J2VDY,2860 +django/contrib/auth/migrations/0012_alter_user_first_name_max_length.py,sha256=bO-8n4CQN2P_hJKlN6IoNu9p8iJ-GdQCUJuAmdK67LA,411 +django/contrib/auth/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/contrib/auth/migrations/__pycache__/0001_initial.cpython-312.pyc,, +django/contrib/auth/migrations/__pycache__/0002_alter_permission_name_max_length.cpython-312.pyc,, +django/contrib/auth/migrations/__pycache__/0003_alter_user_email_max_length.cpython-312.pyc,, +django/contrib/auth/migrations/__pycache__/0004_alter_user_username_opts.cpython-312.pyc,, +django/contrib/auth/migrations/__pycache__/0005_alter_user_last_login_null.cpython-312.pyc,, +django/contrib/auth/migrations/__pycache__/0006_require_contenttypes_0002.cpython-312.pyc,, +django/contrib/auth/migrations/__pycache__/0007_alter_validators_add_error_messages.cpython-312.pyc,, +django/contrib/auth/migrations/__pycache__/0008_alter_user_username_max_length.cpython-312.pyc,, +django/contrib/auth/migrations/__pycache__/0009_alter_user_last_name_max_length.cpython-312.pyc,, +django/contrib/auth/migrations/__pycache__/0010_alter_group_name_max_length.cpython-312.pyc,, +django/contrib/auth/migrations/__pycache__/0011_update_proxy_permissions.cpython-312.pyc,, +django/contrib/auth/migrations/__pycache__/0012_alter_user_first_name_max_length.cpython-312.pyc,, +django/contrib/auth/migrations/__pycache__/__init__.cpython-312.pyc,, +django/contrib/auth/mixins.py,sha256=rHq9HsX4W8lKtfXsazxM3chhTFLqd3eKI-OVKpbeLjQ,4652 +django/contrib/auth/models.py,sha256=Ye2nx9-YkJI9iaE9jNF74y2N1zvJlwdtrWD-f_zy-ac,16508 +django/contrib/auth/password_validation.py,sha256=bcI_IpJGik69i5evI7ywa9bEPFRSkPTLJZ8Yf1y4mIE,9358 +django/contrib/auth/signals.py,sha256=BFks70O0Y8s6p1fr8SCD4-yk2kjucv7HwTcdRUzVDFM,118 +django/contrib/auth/templates/auth/widgets/read_only_password_hash.html,sha256=xBoBu4pWrFdMbEzkx_5hgVqBrqtrY3YwP3ay6AmXXUo,320 +django/contrib/auth/templates/registration/password_reset_subject.txt,sha256=-TZcy_r0vArBgdPK7feeUY6mr9EkYwy7esQ62_onbBk,132 +django/contrib/auth/tokens.py,sha256=ljqQWO0dAkd45-bBJ6W85oZZU9pEjzNh3VbZfeANwxQ,4328 +django/contrib/auth/urls.py,sha256=Uh8DrSqpJXDA5a17Br9fMmIbEcgLkxdN9FvCRg-vxyg,1185 +django/contrib/auth/validators.py,sha256=VO7MyackTaTiK8OjEm7YyLtsjKrteVjdzPbNZki0irU,722 +django/contrib/auth/views.py,sha256=iZgi5xK8K277BdSj2NIyC_41f1AlC89Ex7vpjZJ6fQ4,14084 +django/contrib/contenttypes/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/contrib/contenttypes/__pycache__/__init__.cpython-312.pyc,, +django/contrib/contenttypes/__pycache__/admin.cpython-312.pyc,, +django/contrib/contenttypes/__pycache__/apps.cpython-312.pyc,, +django/contrib/contenttypes/__pycache__/checks.cpython-312.pyc,, +django/contrib/contenttypes/__pycache__/fields.cpython-312.pyc,, +django/contrib/contenttypes/__pycache__/forms.cpython-312.pyc,, +django/contrib/contenttypes/__pycache__/models.cpython-312.pyc,, +django/contrib/contenttypes/__pycache__/prefetch.cpython-312.pyc,, +django/contrib/contenttypes/__pycache__/views.cpython-312.pyc,, +django/contrib/contenttypes/admin.py,sha256=a0KrlT8k2aPIKn54fNwCDTaAVdVr1fLY1BDz_FrE3ts,5200 +django/contrib/contenttypes/apps.py,sha256=1Q1mWjPvfYU7EaO50JvsWuDg_3uK8DoCwpvdIdT7iKY,846 +django/contrib/contenttypes/checks.py,sha256=KKB-4FOfPO60TM-uxqK8m9sIXzB3CRx7Imr-jaauM_U,1268 +django/contrib/contenttypes/fields.py,sha256=IKEJyMOlw5wkh0kFggXDml0M3nix_RbTQy8sLg8Lb4k,31144 +django/contrib/contenttypes/forms.py,sha256=zETkgsUcxavK9D78Cy27cwRs1LaGNKTiJfgy2vxYqjg,3944 +django/contrib/contenttypes/locale/af/LC_MESSAGES/django.mo,sha256=93nlniPFfVcxfBCs_PsLtMKrJ2BqpcofPRNYYTTlels,1070 +django/contrib/contenttypes/locale/af/LC_MESSAGES/django.po,sha256=SY04sW55-xpO_qBjv8pHoN7eqB2C5q_9CxQguMz7Q94,1244 +django/contrib/contenttypes/locale/ar/LC_MESSAGES/django.mo,sha256=2t3y_6wxi0khsYi6s9ZyJwjRB8bnRT1PKvazWOKhJcQ,1271 +django/contrib/contenttypes/locale/ar/LC_MESSAGES/django.po,sha256=t6M3XYQLotNMFCjzB8aWFXnlRI8fU744YZvAoFdScQY,1634 +django/contrib/contenttypes/locale/ar_DZ/LC_MESSAGES/django.mo,sha256=upFxoSvOvdmqCvC5irRV_8yYpFidanHfRk6i3tPrFAc,1233 +django/contrib/contenttypes/locale/ar_DZ/LC_MESSAGES/django.po,sha256=jUg-4BVi0arx5v-osaUDAfM6cQgaBh7mE8Mr8aVTp5A,1447 +django/contrib/contenttypes/locale/ast/LC_MESSAGES/django.mo,sha256=y88CPGGbwTVRmZYIipCNIWkn4OuzuxEk2QCYsBhc7RY,643 +django/contrib/contenttypes/locale/ast/LC_MESSAGES/django.po,sha256=H-qMo5ikva84ycnlmBT4XXEWhzMIw-r7J_zuqxo3wu4,1088 +django/contrib/contenttypes/locale/az/LC_MESSAGES/django.mo,sha256=eHIU-L0mRAlCpQaQzrShguFlYg5llOv89KEpj14p6-8,1058 +django/contrib/contenttypes/locale/az/LC_MESSAGES/django.po,sha256=h56r0_NK7YccHKrfBWUirSpkIBf4ckXyq1F8-YP1rvs,1375 +django/contrib/contenttypes/locale/be/LC_MESSAGES/django.mo,sha256=Kp1TpXX1v0IgGp9HZxleXJ6y5ZvMZ6AqJrSIVcDs7xA,1353 +django/contrib/contenttypes/locale/be/LC_MESSAGES/django.po,sha256=Oy5QXZBmBM_OYLT5OeXJQzTBCHXBp8NVMYuKmr_TUm0,1615 +django/contrib/contenttypes/locale/bg/LC_MESSAGES/django.mo,sha256=IFghXuYj0yxP5j-LfRsNJXlyS2b2dUNJXD01uhUqxLg,1225 +django/contrib/contenttypes/locale/bg/LC_MESSAGES/django.po,sha256=y-OpKdDHxHDYATSmi8DAUXuhpIwgujKZUe48G8So8AU,1613 +django/contrib/contenttypes/locale/bn/LC_MESSAGES/django.mo,sha256=2Z1GL6c1ukKQCMcls7R0_n4eNdH3YOXZSR8nCct7SLI,1201 +django/contrib/contenttypes/locale/bn/LC_MESSAGES/django.po,sha256=PLjnppx0FxfGBQMuWVjo0N4sW2QYc2DAEMK6ziGWUc8,1491 +django/contrib/contenttypes/locale/br/LC_MESSAGES/django.mo,sha256=kAlOemlwBvCdktgYoV-4NpC7XFDaIue_XN7GJYzDu88,1419 +django/contrib/contenttypes/locale/br/LC_MESSAGES/django.po,sha256=BQmHVQqOc6xJWJLeAo49rl_Ogfv-lFtx18mj82jT_to,1613 +django/contrib/contenttypes/locale/bs/LC_MESSAGES/django.mo,sha256=klj9n7AKBkTf7pIa9m9b-itsy4UlbYPnHiuvSLcFZXY,700 +django/contrib/contenttypes/locale/bs/LC_MESSAGES/django.po,sha256=pmJaMBLWbYtYFFXYBvPEvwXkTPdjQDv2WkFI5jNGmTI,1151 +django/contrib/contenttypes/locale/ca/LC_MESSAGES/django.mo,sha256=uYq1BXdw1AXjnLusUQfN7ox1ld6siiy41C8yKVTry7Q,1095 +django/contrib/contenttypes/locale/ca/LC_MESSAGES/django.po,sha256=-dsOzvzVzEPVvA9lYsIP-782BbtJxGRo-OHtS3fIjmU,1403 +django/contrib/contenttypes/locale/ckb/LC_MESSAGES/django.mo,sha256=_dJ-2B3tupoUHRS7HjC-EIlghIYLWebwsy4IvEXI13w,1213 +django/contrib/contenttypes/locale/ckb/LC_MESSAGES/django.po,sha256=SrQwgQTltnR7OExi6sP5JsnEOg6qDzd8dSPXjX92B-M,1419 +django/contrib/contenttypes/locale/cs/LC_MESSAGES/django.mo,sha256=QexBQDuGdMFhVBtA9XWUs2geFBROcxyzdU_IBUGQ7x4,1108 +django/contrib/contenttypes/locale/cs/LC_MESSAGES/django.po,sha256=8pdPwZmpGOeSZjILGLZEAzqvmmV69ogpkh0c3tukT2g,1410 +django/contrib/contenttypes/locale/cy/LC_MESSAGES/django.mo,sha256=2QyCWeXFyymoFu0Jz1iVFgOIdLtt4N1rCZATZAwiH-8,1159 +django/contrib/contenttypes/locale/cy/LC_MESSAGES/django.po,sha256=ZWDxQTHJcw1UYav1C3MX08wCFrSeJNNI2mKjzRVd6H0,1385 +django/contrib/contenttypes/locale/da/LC_MESSAGES/django.mo,sha256=EyancRrTWxM6KTpLq65gIQB0sO_PLtVr1ESN2v1pSNU,1038 +django/contrib/contenttypes/locale/da/LC_MESSAGES/django.po,sha256=J09u3IjLgv4g77Kea_WQAhevHb8DskGU-nVxyucYf_0,1349 +django/contrib/contenttypes/locale/de/LC_MESSAGES/django.mo,sha256=MGUZ4Gw8rSFjBO2OfFX9ooGGpJYwAapgNkc-GdBMXa0,1055 +django/contrib/contenttypes/locale/de/LC_MESSAGES/django.po,sha256=T5ucSqa6VyfUcoN6nFWBtjUkrSrz7wxr8t0NGTBrWow,1308 +django/contrib/contenttypes/locale/dsb/LC_MESSAGES/django.mo,sha256=QpdSZObmfb-DQZb3Oh6I1bFRnaPorXMznNZMyVIM7Hc,1132 +django/contrib/contenttypes/locale/dsb/LC_MESSAGES/django.po,sha256=_tNajamEnnf9FEjI-XBRraKjJVilwvpv2TBf9PAzPxw,1355 +django/contrib/contenttypes/locale/el/LC_MESSAGES/django.mo,sha256=1ySEbSEzhH1lDjHQK9Kv59PMA3ZPdqY8EJe6xEQejIM,1286 +django/contrib/contenttypes/locale/el/LC_MESSAGES/django.po,sha256=8rlMKE5SCLTtm1myjLFBtbEIFyuRmSrL9HS2PA7gneQ,1643 +django/contrib/contenttypes/locale/en/LC_MESSAGES/django.mo,sha256=U0OV81NfbuNL9ctF-gbGUG5al1StqN-daB-F-gFBFC8,356 +django/contrib/contenttypes/locale/en/LC_MESSAGES/django.po,sha256=BRgOISCCJb4TU0dNxG4eeQJFe-aIe7U3GKLPip03d_Q,1110 +django/contrib/contenttypes/locale/en_AU/LC_MESSAGES/django.mo,sha256=dTndJxA-F1IE_nMUOtf1sRr7Kq2s_8yjgKk6mkWkVu4,486 +django/contrib/contenttypes/locale/en_AU/LC_MESSAGES/django.po,sha256=wmxyIJtz628AbsxgkB-MjdImcIJWhcW7NV3tWbDpedg,1001 +django/contrib/contenttypes/locale/en_GB/LC_MESSAGES/django.mo,sha256=_uM-jg43W7Pz8RQhMcR_o15wRkDaYD8aRcl2_NFGoNs,1053 +django/contrib/contenttypes/locale/en_GB/LC_MESSAGES/django.po,sha256=SyzwSvqAgKF8BEhXYh4598GYP583OK2GUXH1lc4iDMk,1298 +django/contrib/contenttypes/locale/eo/LC_MESSAGES/django.mo,sha256=4EgHUHPb4TuK2DKf0dWOf7rNzJNsyT8CG39SQixI0oM,1072 +django/contrib/contenttypes/locale/eo/LC_MESSAGES/django.po,sha256=gbxNuagxW01xLd3DY0Lc5UNNSlw1nEiBExzcElrB61E,1350 +django/contrib/contenttypes/locale/es/LC_MESSAGES/django.mo,sha256=KzgypFDwIlVzr_h9Dq2X8dXu3XnsbdSaHwJKJWZ6qc8,1096 +django/contrib/contenttypes/locale/es/LC_MESSAGES/django.po,sha256=Dpn9dTvdy87bVf3It8pZFOdEEKnO91bDeYyY1YujkIA,1456 +django/contrib/contenttypes/locale/es_AR/LC_MESSAGES/django.mo,sha256=WkHABVDmtKidPyo6zaYGVGrgXpe6tZ69EkxaIBu6mtg,1084 +django/contrib/contenttypes/locale/es_AR/LC_MESSAGES/django.po,sha256=yVSu_fJSKwS4zTlRud9iDochIaY0zOPILF59biVfkeY,1337 +django/contrib/contenttypes/locale/es_CO/LC_MESSAGES/django.mo,sha256=aACo1rOrgs_BYK3AWzXEljCdAc4bC3BXpyXrwE4lzAs,1158 +django/contrib/contenttypes/locale/es_CO/LC_MESSAGES/django.po,sha256=vemhoL-sESessGmIlHoRvtWICqF2aO05WvcGesUZBRM,1338 +django/contrib/contenttypes/locale/es_MX/LC_MESSAGES/django.mo,sha256=vD9rSUAZC_rgkwiOOsrrra07Gnx7yEpNHI96tr8xD3U,840 +django/contrib/contenttypes/locale/es_MX/LC_MESSAGES/django.po,sha256=tLgjAi9Z1kZloJFVQuUdAvyiJy1J-5QHfoWmxbqQZCc,1237 +django/contrib/contenttypes/locale/es_VE/LC_MESSAGES/django.mo,sha256=TVGDydYVg_jGfnYghk_cUFjCCtpGchuoTB4Vf0XJPYk,1152 +django/contrib/contenttypes/locale/es_VE/LC_MESSAGES/django.po,sha256=vJW37vuKYb_KpXBPmoNSqtNstFgCDlKmw-8iOoSCenU,1342 +django/contrib/contenttypes/locale/et/LC_MESSAGES/django.mo,sha256=TE84lZl6EP54-pgmv275jiTOW0vIsnsGU97qmtxMEVg,1028 +django/contrib/contenttypes/locale/et/LC_MESSAGES/django.po,sha256=KO9fhmRCx25VeHNDGXVNhoFx3VFH-6PSLVXZJ6ohOSA,1368 +django/contrib/contenttypes/locale/eu/LC_MESSAGES/django.mo,sha256=K0f1cXEhfg_djPzgCL9wC0iHGWF_JGIhWGFL0Y970g0,1077 +django/contrib/contenttypes/locale/eu/LC_MESSAGES/django.po,sha256=sSuVV0o8MeWN6BxlaeKcjKA3h4H29fCo1kKEtkczEp4,1344 +django/contrib/contenttypes/locale/fa/LC_MESSAGES/django.mo,sha256=hW3A3_9b-NlLS4u6qDnPS1dmNdn1UJCt-nihXvnXywI,1130 +django/contrib/contenttypes/locale/fa/LC_MESSAGES/django.po,sha256=TPiYsGGN-j-VD--Rentx1p-IcrNJYoYxrxDO_5xeZHI,1471 +django/contrib/contenttypes/locale/fi/LC_MESSAGES/django.mo,sha256=dWar3g1rJAkUG1xRLlmGkH63Fy_h2YqzhMVv0Z25aWc,1036 +django/contrib/contenttypes/locale/fi/LC_MESSAGES/django.po,sha256=yALWMFU8-gFD2G0NdWqIDIenrAMUY4VCW1oi8TJXFAc,1325 +django/contrib/contenttypes/locale/fr/LC_MESSAGES/django.mo,sha256=CTOu_JOAQeC72VX5z9cg8Bn3HtZsdgbtjA7XKcy681o,1078 +django/contrib/contenttypes/locale/fr/LC_MESSAGES/django.po,sha256=6LArEWoBpdaJa7UPcyv4HJKD3YoKUxrwGQGd16bi9DM,1379 +django/contrib/contenttypes/locale/fy/LC_MESSAGES/django.mo,sha256=YQQy7wpjBORD9Isd-p0lLzYrUgAqv770_56-vXa0EOc,476 +django/contrib/contenttypes/locale/fy/LC_MESSAGES/django.po,sha256=SB07aEGG7n4oX_5rqHB6OnjpK_K0KwFM7YxaWYNpB_4,991 +django/contrib/contenttypes/locale/ga/LC_MESSAGES/django.mo,sha256=GYQYfYWbgwL3nQJR5d7XGjc5KeYYXsB0yRQJz7zxd_k,1097 +django/contrib/contenttypes/locale/ga/LC_MESSAGES/django.po,sha256=byvw9sQ9VLVjS7Au81LcNpxOzwA29_4Al9nB1ZyV2b4,1408 +django/contrib/contenttypes/locale/gd/LC_MESSAGES/django.mo,sha256=dQz7j45qlY3M1rL2fCVdPnuHMUdUcJ0K6cKgRD7Js2w,1154 +django/contrib/contenttypes/locale/gd/LC_MESSAGES/django.po,sha256=_hwx9XqeX5QYRFtDpEYkChswn8WMdYTQlbzL1LjREbY,1368 +django/contrib/contenttypes/locale/gl/LC_MESSAGES/django.mo,sha256=OS8R8sck0Q__XBw3M9brT4jOHmXYUHH71zU2a0mY0vQ,1080 +django/contrib/contenttypes/locale/gl/LC_MESSAGES/django.po,sha256=i-kmfgIuDtreavYL3mCc_BSRi-GmTklAsqE4AhP3wgk,1417 +django/contrib/contenttypes/locale/he/LC_MESSAGES/django.mo,sha256=oaxWykyc3N63WpxyHPI5CyhCTBqhM5-2Sasp_DNm1xc,1219 +django/contrib/contenttypes/locale/he/LC_MESSAGES/django.po,sha256=wCm08UMCiCa6y1-5E-7bEz-8Kd0oMRMwgzoEJjMwFyw,1486 +django/contrib/contenttypes/locale/hi/LC_MESSAGES/django.mo,sha256=KAZuQMKOvIPj3a7GrNJE3yhT70O2abCEF2GOsbwTE5A,1321 +django/contrib/contenttypes/locale/hi/LC_MESSAGES/django.po,sha256=PcsNgu2YmT0biklhwOF_nSvoGTvWVKw2IsBxIwSVAtI,1577 +django/contrib/contenttypes/locale/hr/LC_MESSAGES/django.mo,sha256=DbOUA8ks3phsEwQvethkwZ9-ymrd36aQ6mP7OnGdpjU,1167 +django/contrib/contenttypes/locale/hr/LC_MESSAGES/django.po,sha256=722KxvayO6YXByAmO4gfsfzyVbT-HqqrLYQsr02KDc8,1445 +django/contrib/contenttypes/locale/hsb/LC_MESSAGES/django.mo,sha256=tPtv_lIzCPIUjGkAYalnNIUxVUQFE3MShhVXTnfVx3Q,1106 +django/contrib/contenttypes/locale/hsb/LC_MESSAGES/django.po,sha256=rbI3G8ARG7DF7uEe82SYCfotBnKTRJJ641bGhjdptTQ,1329 +django/contrib/contenttypes/locale/hu/LC_MESSAGES/django.mo,sha256=2nsylOwBIDOnkUjE2GYU-JRvgs_zxent7q3_PuscdXk,1102 +django/contrib/contenttypes/locale/hu/LC_MESSAGES/django.po,sha256=Dzcf94ZSvJtyNW9EUKpmyNJ1uZbXPvc7dIxCccZrDYc,1427 +django/contrib/contenttypes/locale/hy/LC_MESSAGES/django.mo,sha256=hKOErB5dzj44ThQ1_nZHak2-aXZlwMoxYcDWmPb3Xo8,1290 +django/contrib/contenttypes/locale/hy/LC_MESSAGES/django.po,sha256=UeGzaghsEt9Lt5DsEzRb9KCbuphWUQwLayt4AN194ao,1421 +django/contrib/contenttypes/locale/ia/LC_MESSAGES/django.mo,sha256=9B0XhxH0v3FvkEvS5MOHHqVbgV6KQITPrjzx1Sn76GA,1105 +django/contrib/contenttypes/locale/ia/LC_MESSAGES/django.po,sha256=NX8jpTaIhtVbVlwEsOl5aufZ80ljHZZwqtsVVozQb4M,1318 +django/contrib/contenttypes/locale/id/LC_MESSAGES/django.mo,sha256=4-6RBAvrtA1PY3LNxMrgwzBLZE0ZKwWaXa7SmtmAIyk,1031 +django/contrib/contenttypes/locale/id/LC_MESSAGES/django.po,sha256=xdxEOgfta1kaXyQAngmmbL8wDQzJU6boC9HdbmoM1iI,1424 +django/contrib/contenttypes/locale/io/LC_MESSAGES/django.mo,sha256=3SSRXx4tYiMUc00LZ9kGHuvTgaWpsICEf5G208CEqgg,1051 +django/contrib/contenttypes/locale/io/LC_MESSAGES/django.po,sha256=1ku9WPcenn47DOF05HL2eRqghZeRYfklo2huYUrkeJ0,1266 +django/contrib/contenttypes/locale/is/LC_MESSAGES/django.mo,sha256=ZYWbT4qeaco8h_J9SGF2Bs7Rdu3auZ969xZ0RQ_03go,1049 +django/contrib/contenttypes/locale/is/LC_MESSAGES/django.po,sha256=iNdghSbBVPZmfrHu52hRG8vHMgGUfOjLqie09fYcuso,1360 +django/contrib/contenttypes/locale/it/LC_MESSAGES/django.mo,sha256=GSP0BJc3bGLoNS0tnhiz_5dtSh5NXCrBiZbnwEhWbpk,1075 +django/contrib/contenttypes/locale/it/LC_MESSAGES/django.po,sha256=njEgvhDwWOc-CsGBDz1_mtEsXx2aTU6cP3jZzcLkkYk,1457 +django/contrib/contenttypes/locale/ja/LC_MESSAGES/django.mo,sha256=tVH6RvZ5tXz56lEM3aoJtFp5PKsSR-XXpi8ZNCHjiFw,1211 +django/contrib/contenttypes/locale/ja/LC_MESSAGES/django.po,sha256=5_-Uo7Ia3X9gAWm2f72ezQnNr_pQzf6Ax4AUutULuZU,1534 +django/contrib/contenttypes/locale/ka/LC_MESSAGES/django.mo,sha256=1_yGL68sK0QG_mhwFAVdksiDlB57_1W5QkL7NGGE5L0,1429 +django/contrib/contenttypes/locale/ka/LC_MESSAGES/django.po,sha256=6iUBbKjXsIgrq7Dj_xhxzoxItSSSKwQjIZsDayefGr8,1654 +django/contrib/contenttypes/locale/kk/LC_MESSAGES/django.mo,sha256=SNY0vydwLyR2ExofAHjmg1A2ykoLI7vU5Ryq-QFu5Gs,627 +django/contrib/contenttypes/locale/kk/LC_MESSAGES/django.po,sha256=PU-NAl6xUEeGV0jvJx9siVBTZIzHywL7oKc4DgUjNkc,1130 +django/contrib/contenttypes/locale/km/LC_MESSAGES/django.mo,sha256=BXifukxf48Lr0t0V3Y0GJUMhD1KiHN1wwbueoK0MW1A,678 +django/contrib/contenttypes/locale/km/LC_MESSAGES/django.po,sha256=fTPlBbnaNbLZxjzJutGvqe33t6dWsEKiHQYaw27m7KQ,1123 +django/contrib/contenttypes/locale/kn/LC_MESSAGES/django.mo,sha256=a4sDGaiyiWn-1jFozYI4vdAvuHXrs8gbZErP_SAUk9Y,714 +django/contrib/contenttypes/locale/kn/LC_MESSAGES/django.po,sha256=A6Vss8JruQcPUKQvY-zaubVZDTLEPwHsnd_rXcyzQUs,1168 +django/contrib/contenttypes/locale/ko/LC_MESSAGES/django.mo,sha256=myRfFxf2oKcbpmCboongTsL72RTM95nEmAC938M-ckE,1089 +django/contrib/contenttypes/locale/ko/LC_MESSAGES/django.po,sha256=uui_LhgGTrW0uo4p-oKr4JUzhjvkLbFCqRVLNMrptzY,1383 +django/contrib/contenttypes/locale/ky/LC_MESSAGES/django.mo,sha256=ULoIe36zGKPZZs113CenA6J9HviYcBOKagXrPGxyBUI,1182 +django/contrib/contenttypes/locale/ky/LC_MESSAGES/django.po,sha256=FnW5uO8OrTYqbvoRuZ6gnCD6CHnuLjN00s2Jo1HX1NE,1465 +django/contrib/contenttypes/locale/lb/LC_MESSAGES/django.mo,sha256=xokesKl7h7k9dXFKIJwGETgwx1Ytq6mk2erBSxkgY-o,474 +django/contrib/contenttypes/locale/lb/LC_MESSAGES/django.po,sha256=dwVKpCRYmXTD9h69v5ivkZe-yFtvdZNZ3VfuyIl4olY,989 +django/contrib/contenttypes/locale/lt/LC_MESSAGES/django.mo,sha256=HucsRl-eqfxw6ESTuXvl7IGjPGYSI9dxM5lMly_P1sc,1215 +django/contrib/contenttypes/locale/lt/LC_MESSAGES/django.po,sha256=odzYqHprxKFIrR8TzdxA4WeeMK0W0Nvn2gAVuzAsEqI,1488 +django/contrib/contenttypes/locale/lv/LC_MESSAGES/django.mo,sha256=nWfy7jv2VSsKYT6yhk_xqxjk1TlppJfsQcurC40CeTs,1065 +django/contrib/contenttypes/locale/lv/LC_MESSAGES/django.po,sha256=pHlbzgRpIJumDMp2rh1EKrxFBg_DRcvLLgkQ3mi_L0s,1356 +django/contrib/contenttypes/locale/mk/LC_MESSAGES/django.mo,sha256=KTFZWm0F4S6lmi1FX76YKOyJqIZN5cTsiTBI_D4ADHs,1258 +django/contrib/contenttypes/locale/mk/LC_MESSAGES/django.po,sha256=mQZosS90S-Bil6-EoGjs9BDWYlvOF6mtUDZ8h9NxEdE,1534 +django/contrib/contenttypes/locale/ml/LC_MESSAGES/django.mo,sha256=rtmLWfuxJED-1KuqkUT8F5CU1KGJP0Of718n2Gl_gI0,1378 +django/contrib/contenttypes/locale/ml/LC_MESSAGES/django.po,sha256=Z-kL9X9CD7rYfa4Uoykye2UgCNQlgyql0HTv1eUXAf4,1634 +django/contrib/contenttypes/locale/mn/LC_MESSAGES/django.mo,sha256=J6kKYjUOsQxptNXDcCaY4d3dHJio4HRibRk3qfwO6Xc,1225 +django/contrib/contenttypes/locale/mn/LC_MESSAGES/django.po,sha256=x8aRJH2WQvMBBWlQt3T3vpV4yHeZXLmRTT1U0at4ZIk,1525 +django/contrib/contenttypes/locale/mr/LC_MESSAGES/django.mo,sha256=G7yoBvkVNtyQxT2RCCPjBeI8C3lAzVcPxW0OkDeVyz0,1004 +django/contrib/contenttypes/locale/mr/LC_MESSAGES/django.po,sha256=BKgamLogZ-F3gBYeTZy1rGCkNe5AjOew8Nm1LTVkhEs,1348 +django/contrib/contenttypes/locale/ms/LC_MESSAGES/django.mo,sha256=EIwbOZ0QahW9AFFWRmRdKGKBtYYY_eTcfU4eqDVSVxw,1035 +django/contrib/contenttypes/locale/ms/LC_MESSAGES/django.po,sha256=t7nKsOMxycn_CsXw2nIfU-owJRge3FAixgbTsDhffvo,1225 +django/contrib/contenttypes/locale/my/LC_MESSAGES/django.mo,sha256=YYa2PFe9iJygqL-LZclfpgR6rBmIvx61JRpBkKS6Hrs,1554 +django/contrib/contenttypes/locale/my/LC_MESSAGES/django.po,sha256=6F3nXd9mBc-msMchkC8OwAHME1x1O90xrsZp7xmynpU,1732 +django/contrib/contenttypes/locale/nb/LC_MESSAGES/django.mo,sha256=EHU9Lm49U7WilR5u-Lq0Fg8ChR_OzOce4UyPlkZ6Zs4,1031 +django/contrib/contenttypes/locale/nb/LC_MESSAGES/django.po,sha256=lbktPYsJudrhe4vxnauzpzN9eNwyoVs0ZmZSdkwjkOk,1403 +django/contrib/contenttypes/locale/ne/LC_MESSAGES/django.mo,sha256=-zZAn5cex4PkScoZVqS74PUMThJJuovZSk3WUKZ8hnw,1344 +django/contrib/contenttypes/locale/ne/LC_MESSAGES/django.po,sha256=1ZCUkulQ9Gxb50yMKFKWaTJli2SinBeNj0KpXkKpsNE,1519 +django/contrib/contenttypes/locale/nl/LC_MESSAGES/django.mo,sha256=aXDHgg891TyTiMWNcbNaahfZQ2hqtl5yTkx5gNRocMU,1040 +django/contrib/contenttypes/locale/nl/LC_MESSAGES/django.po,sha256=zDJ_vyQxhP0mP06U-e4p6Uj6v1g863s8oaxc0JIAMjg,1396 +django/contrib/contenttypes/locale/nn/LC_MESSAGES/django.mo,sha256=a_X8e2lMieWwUtENJueBr8wMvkw6at0QSaWXd5AM6yQ,1040 +django/contrib/contenttypes/locale/nn/LC_MESSAGES/django.po,sha256=xFSirHUAKv78fWUpik6xv-6WQSEoUgN5jjPbTOy58C4,1317 +django/contrib/contenttypes/locale/os/LC_MESSAGES/django.mo,sha256=QV533Wu-UpjV3XiCe83jlz7XGuwgRviV0ggoeMaIOIY,1116 +django/contrib/contenttypes/locale/os/LC_MESSAGES/django.po,sha256=UZahnxo8z6oWJfEz4JNHGng0EAifXYtJupB6lx0JB60,1334 +django/contrib/contenttypes/locale/pa/LC_MESSAGES/django.mo,sha256=qacd7eywof8rvJpstNfEmbHgvDiQ9gmkcyG7gfato8s,697 +django/contrib/contenttypes/locale/pa/LC_MESSAGES/django.po,sha256=Kq2NTzdbgq8Q9jLLgV-ZJaSRj43D1dDHcRIgNnJXu-s,1145 +django/contrib/contenttypes/locale/pl/LC_MESSAGES/django.mo,sha256=J5sC36QwKLvrMB4adsojhuw2kYuEckHz6eoTrZwYcnI,1208 +django/contrib/contenttypes/locale/pl/LC_MESSAGES/django.po,sha256=gxP59PjlIHKSiYZcbgIY4PUZSoKYx4YKCpm4W4Gj22g,1577 +django/contrib/contenttypes/locale/pt/LC_MESSAGES/django.mo,sha256=k7cJHLP3avrBD50o5oxaZmLlT9Uv_XgxzDn4YhvNeDM,1154 +django/contrib/contenttypes/locale/pt/LC_MESSAGES/django.po,sha256=O087gXKjUtRwCrYHERr-m8smmuJg-eo4OAOL2vRDBj4,1446 +django/contrib/contenttypes/locale/pt_BR/LC_MESSAGES/django.mo,sha256=qjl-3fBqNcAuoviGejjILC7Z8XmrRd7gHwOgwu1x1zw,1117 +django/contrib/contenttypes/locale/pt_BR/LC_MESSAGES/django.po,sha256=Xp0iBhseS8v13zjDcNQv4BDaroMtDJVs4-BzNc0UOpU,1494 +django/contrib/contenttypes/locale/ro/LC_MESSAGES/django.mo,sha256=sCthDD10v7GY2cui9Jj9HK8cofVEg2WERCm6aktOM-4,1142 +django/contrib/contenttypes/locale/ro/LC_MESSAGES/django.po,sha256=n-BPEfua0Gd6FN0rsP7qAlTGbQEZ14NnDMA8jI2844Y,1407 +django/contrib/contenttypes/locale/ru/LC_MESSAGES/django.mo,sha256=OSf206SFmVLULHmwVhTaRhWTQtyDKsxe03gIzuvAUnY,1345 +django/contrib/contenttypes/locale/ru/LC_MESSAGES/django.po,sha256=xHyJYD66r8We3iN5Hqo69syWkjhz4zM7X9BWPIiI6mU,1718 +django/contrib/contenttypes/locale/sk/LC_MESSAGES/django.mo,sha256=osKXPEE0x-oahNDjgr4aea3dzmLddTT_RLQ8TnbsIOg,1115 +django/contrib/contenttypes/locale/sk/LC_MESSAGES/django.po,sha256=nZBxZH3r93fbtth15iP-Q2tNLrZrYqc8V0B9c4XMRNI,1433 +django/contrib/contenttypes/locale/sl/LC_MESSAGES/django.mo,sha256=sMML-ubI_9YdKptzeri1du8FOdKcEzJbe4Tt0J4ePFI,1147 +django/contrib/contenttypes/locale/sl/LC_MESSAGES/django.po,sha256=0zxiyzRWWDNVpNNLlcwl-OLh5sLukma1vm-kYrGHYrE,1392 +django/contrib/contenttypes/locale/sq/LC_MESSAGES/django.mo,sha256=jYDQH3OpY4Vx9hp6ISFMI88uxBa2GDQK0BkLGm8Qulk,1066 +django/contrib/contenttypes/locale/sq/LC_MESSAGES/django.po,sha256=JIvguXVOFpQ3MRqRXHpxlg8_YhEzCsZBBMdpekYTxlk,1322 +django/contrib/contenttypes/locale/sr/LC_MESSAGES/django.mo,sha256=GUXj97VN15HdY7XMy5jmMLEu13juD3To5NsztcoyPGs,1204 +django/contrib/contenttypes/locale/sr/LC_MESSAGES/django.po,sha256=T1w_EeB6yT-PXr7mrwzqu270linf_KY3_ZCgl4wfLAQ,1535 +django/contrib/contenttypes/locale/sr_Latn/LC_MESSAGES/django.mo,sha256=m2plistrI8O-ztAs5HmDYXG8N_wChaDfXFev0GYWVys,1102 +django/contrib/contenttypes/locale/sr_Latn/LC_MESSAGES/django.po,sha256=lJrhLPDbJAcXgBPco-_lfUXqs31imj_vGwE5p1EXZjk,1390 +django/contrib/contenttypes/locale/sv/LC_MESSAGES/django.mo,sha256=J5ha8X6jnQ4yuafk-JCqPM5eIGNwKpDOpTwIVCrnGNE,1055 +django/contrib/contenttypes/locale/sv/LC_MESSAGES/django.po,sha256=HeKnQJaRNflAbKxTiC_2EFAg2Sx-e3nDXrReJyVoNTQ,1400 +django/contrib/contenttypes/locale/sw/LC_MESSAGES/django.mo,sha256=XLPle0JYPPkmm5xpJRmWztMTF1_3a2ZubWE4ur2sav8,563 +django/contrib/contenttypes/locale/sw/LC_MESSAGES/django.po,sha256=jRc8Eh6VuWgqc4kM-rxjbVE3yV9uip6mOJLdD6yxGLM,1009 +django/contrib/contenttypes/locale/ta/LC_MESSAGES/django.mo,sha256=L3eF4z9QSmIPqzEWrNk8-2uLteQUMsuxiD9VZyRuSfo,678 +django/contrib/contenttypes/locale/ta/LC_MESSAGES/django.po,sha256=iDb9lRU_-YPmO5tEQeXEZeGeFe-wVZy4k444sp_vTgw,1123 +django/contrib/contenttypes/locale/te/LC_MESSAGES/django.mo,sha256=S_UF_mZbYfScD6Z36aB-kwtTflTeX3Wt4k7z_pEcOV8,690 +django/contrib/contenttypes/locale/te/LC_MESSAGES/django.po,sha256=aAGMMoJPg_pF9_rCNZmda5A_TvDCvQfYEL64Xdoa4jo,1135 +django/contrib/contenttypes/locale/tg/LC_MESSAGES/django.mo,sha256=dkLic6fD2EMzrB7m7MQazaGLoJ_pBw55O4nYZc5UYEs,864 +django/contrib/contenttypes/locale/tg/LC_MESSAGES/django.po,sha256=1nv1cVJewfr44gbQh1Szzy3DT4Y9Dy7rUgAZ81otJQs,1232 +django/contrib/contenttypes/locale/th/LC_MESSAGES/django.mo,sha256=qilt-uZMvt0uw-zFz7-eCmkGEx3XYz7NNo9Xbq3s7uI,1186 +django/contrib/contenttypes/locale/th/LC_MESSAGES/django.po,sha256=42F34fNEn_3yQKBBJnCLttNeyktuLVpilhMyepOd6dg,1444 +django/contrib/contenttypes/locale/tk/LC_MESSAGES/django.mo,sha256=0fuA3E487-pceoGpX9vMCwSnCItN_pbLUIUzzcrAGOE,1068 +django/contrib/contenttypes/locale/tk/LC_MESSAGES/django.po,sha256=pS8wX9dzxys3q8Vvz3PyoVJYqplXhNuAqfq7Dsb07fw,1283 +django/contrib/contenttypes/locale/tr/LC_MESSAGES/django.mo,sha256=gKg2FCxs2fHpDB1U6gh9xrP7mOpYG65pB4CNmdPYiDg,1057 +django/contrib/contenttypes/locale/tr/LC_MESSAGES/django.po,sha256=gmI3RDhq39IlDuvNohT_FTPY5QG8JD0gFxG5CTsvVZs,1345 +django/contrib/contenttypes/locale/tt/LC_MESSAGES/django.mo,sha256=_LQ1N04FgosdDLUYXJOEqpCB2Mg92q95cBRgYPi1MyY,659 +django/contrib/contenttypes/locale/tt/LC_MESSAGES/django.po,sha256=L7wMMpxGnpQiKd_mjv2bJpE2iqCJ8XwiXK0IN4EHSbM,1110 +django/contrib/contenttypes/locale/udm/LC_MESSAGES/django.mo,sha256=CNmoKj9Uc0qEInnV5t0Nt4ZnKSZCRdIG5fyfSsqwky4,462 +django/contrib/contenttypes/locale/udm/LC_MESSAGES/django.po,sha256=YVyej0nAhhEf7knk4vCeRQhmSQeGZLhMPPXyIyWObnM,977 +django/contrib/contenttypes/locale/ug/LC_MESSAGES/django.mo,sha256=hddqwGR9yrDZye5FZSatvlBBGerLsxS0x1HRodFmwkk,1182 +django/contrib/contenttypes/locale/ug/LC_MESSAGES/django.po,sha256=DoAswgu8-Ukl5e5TLhMcMQRuWEalnmokpKZsKSN9RYk,1397 +django/contrib/contenttypes/locale/uk/LC_MESSAGES/django.mo,sha256=GgAuuLexfhYl1fRKPfZI5uMTkt2H42Ogil6MQHcejkU,1404 +django/contrib/contenttypes/locale/uk/LC_MESSAGES/django.po,sha256=1HzO_Wmxqk0Kd5gtACKZODiH8ZEpOf5Eh8Mkrg3IMf8,1779 +django/contrib/contenttypes/locale/ur/LC_MESSAGES/django.mo,sha256=OJs_EmDBps-9a_KjFJnrS8IqtJfd25LaSWeyG8u8UfI,671 +django/contrib/contenttypes/locale/ur/LC_MESSAGES/django.po,sha256=f0FnsaAM_qrBuCXzLnkBrW5uFfVc6pUh7S-qp4918Ng,1122 +django/contrib/contenttypes/locale/vi/LC_MESSAGES/django.mo,sha256=kGYgEI1gHkyU4y_73mBJN1hlKC2JujVXMg6iCdWncDg,1155 +django/contrib/contenttypes/locale/vi/LC_MESSAGES/django.po,sha256=RIDUgsElfRF8bvBdUKtshizuMnupdMGAM896s7qZKD4,1439 +django/contrib/contenttypes/locale/zh_Hans/LC_MESSAGES/django.mo,sha256=RviK0bqLZzPrZ46xUpc0f8IKkw3JLtsrt0gNA74Ypj0,1015 +django/contrib/contenttypes/locale/zh_Hans/LC_MESSAGES/django.po,sha256=vSKJDEQ_ANTj3-W8BFJd9u_QGdTMF12iS15rVgeujOs,1380 +django/contrib/contenttypes/locale/zh_Hant/LC_MESSAGES/django.mo,sha256=NMumOJ9dPX-7YjQH5Obm4Yj0-lnGXJmCMN5DGbsLQG4,1046 +django/contrib/contenttypes/locale/zh_Hant/LC_MESSAGES/django.po,sha256=7WIqYRpcs986MjUsegqIido5k6HG8d3FVvkrOQCRVCI,1338 +django/contrib/contenttypes/management/__init__.py,sha256=ZVHVJAYi_jCIXxWUZSkxq0IDECe6bvbFsWayrqbutfc,4937 +django/contrib/contenttypes/management/__pycache__/__init__.cpython-312.pyc,, +django/contrib/contenttypes/management/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/contrib/contenttypes/management/commands/__pycache__/__init__.cpython-312.pyc,, +django/contrib/contenttypes/management/commands/__pycache__/remove_stale_contenttypes.cpython-312.pyc,, +django/contrib/contenttypes/management/commands/remove_stale_contenttypes.py,sha256=F6rm6MTMLuZVXCsn6L3ln3ouehsUTaVGaNeaZ4cRW7I,4643 +django/contrib/contenttypes/migrations/0001_initial.py,sha256=Ne2EiaFH4LQqFcIbXU8OiUDeb3P7Mm6dbeqRtNC5U8w,1434 +django/contrib/contenttypes/migrations/0002_remove_content_type_name.py,sha256=fTZJQHV1Dw7TwPaNDLFUjrpZzFk_UvaR9sw3oEMIN2Y,1199 +django/contrib/contenttypes/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/contrib/contenttypes/migrations/__pycache__/0001_initial.cpython-312.pyc,, +django/contrib/contenttypes/migrations/__pycache__/0002_remove_content_type_name.cpython-312.pyc,, +django/contrib/contenttypes/migrations/__pycache__/__init__.cpython-312.pyc,, +django/contrib/contenttypes/models.py,sha256=VKXWweIQQ6eX88YX96nlcMo9ESaW7p_wUPJSalGInsc,6844 +django/contrib/contenttypes/prefetch.py,sha256=cORwKClKS-wzGrmRj2BlSBuuJz6iRBWOVl4tBYHRrtA,1358 +django/contrib/contenttypes/views.py,sha256=HBoIbNpgHTQN5pH8mul77UMEMZHbbkEH_Qdln-XFgd0,3549 +django/contrib/flatpages/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/contrib/flatpages/__pycache__/__init__.cpython-312.pyc,, +django/contrib/flatpages/__pycache__/admin.cpython-312.pyc,, +django/contrib/flatpages/__pycache__/apps.cpython-312.pyc,, +django/contrib/flatpages/__pycache__/forms.cpython-312.pyc,, +django/contrib/flatpages/__pycache__/middleware.cpython-312.pyc,, +django/contrib/flatpages/__pycache__/models.cpython-312.pyc,, +django/contrib/flatpages/__pycache__/sitemaps.cpython-312.pyc,, +django/contrib/flatpages/__pycache__/urls.cpython-312.pyc,, +django/contrib/flatpages/__pycache__/views.cpython-312.pyc,, +django/contrib/flatpages/admin.py,sha256=ynemOSDgvKoCfRFLXZrPwj27U0mPUXmxdrue7SOZeqQ,701 +django/contrib/flatpages/apps.py,sha256=_OlaDxWbMrUmFNCS4u-RnBsg67rCWs8Qzh_c58wvtXA,252 +django/contrib/flatpages/forms.py,sha256=r9yUG_-zAnI7Ubr836aiWgScYpKxHhJbNLhHRkZQOzY,2492 +django/contrib/flatpages/locale/af/LC_MESSAGES/django.mo,sha256=AG2eKl6o50fG3wWYS7D4-m3gWi9_yfPwEHp-HjB4Sr8,2282 +django/contrib/flatpages/locale/af/LC_MESSAGES/django.po,sha256=EVgUOspHqS4FuFggANzWpyQEutGV4kSx2zUWoOjBF9w,2459 +django/contrib/flatpages/locale/ar/LC_MESSAGES/django.mo,sha256=dBHaqsaKH9QOIZ0h2lIDph8l9Bv2UAcD-Hr9TAxj8Ac,2636 +django/contrib/flatpages/locale/ar/LC_MESSAGES/django.po,sha256=-0ZdfA-sDU8fOucgT2Ow1iM3QnRMuQeslMOSwYhAH9M,2958 +django/contrib/flatpages/locale/ar_DZ/LC_MESSAGES/django.mo,sha256=jp6sS05alESJ4-SbEIf574UPVcbllAd_J-FW802lGyk,2637 +django/contrib/flatpages/locale/ar_DZ/LC_MESSAGES/django.po,sha256=yezpjWcROwloS08TEMo9oPXDKS1mfFE9NYI66FUuLaA,2799 +django/contrib/flatpages/locale/ast/LC_MESSAGES/django.mo,sha256=4SEsEE2hIZJwQUNs8jDgN6qVynnUYJUIE4w-usHKA6M,924 +django/contrib/flatpages/locale/ast/LC_MESSAGES/django.po,sha256=5UlyS59bVo1lccM6ZgdYSgHe9NLt_WeOdXX-swLKubU,1746 +django/contrib/flatpages/locale/az/LC_MESSAGES/django.mo,sha256=s3YhszIU5rdigUVVPB3Jpfn3jbH5L1NXWXky_Q3slvY,2378 +django/contrib/flatpages/locale/az/LC_MESSAGES/django.po,sha256=tDALtASG8n7uaJT7yFsM-rz7FN5rONXlCKqCQIrIcPY,2707 +django/contrib/flatpages/locale/be/LC_MESSAGES/django.mo,sha256=mOQlbfwwIZiwWCrFStwag2irCwsGYsXIn6wZDsPRvyA,2978 +django/contrib/flatpages/locale/be/LC_MESSAGES/django.po,sha256=wlIfhun5Jd6gxbkmmYPSIy_tzPVmSu4CjMwPzBNnvpo,3161 +django/contrib/flatpages/locale/bg/LC_MESSAGES/django.mo,sha256=9Un5mKtsAuNeYWFQKFkIyCpQquE6qVD3zIrFoq8sCDI,2802 +django/contrib/flatpages/locale/bg/LC_MESSAGES/django.po,sha256=Vr6d-9XjgK4_eXdWY3FEpdTlCEGgbCv93bLGyMTE9hs,3104 +django/contrib/flatpages/locale/bn/LC_MESSAGES/django.mo,sha256=2oK2Rm0UtAI7QFRwpUR5aE3-fOltE6kTilsTbah737Y,2988 +django/contrib/flatpages/locale/bn/LC_MESSAGES/django.po,sha256=QrbX69iqXOD6oByLcgPkD1QzAkfthpfTjezIFQ-6kVg,3172 +django/contrib/flatpages/locale/br/LC_MESSAGES/django.mo,sha256=SKbykdilX_NcpkVi_lHF8LouB2G49ZAzdF09xw49ERc,2433 +django/contrib/flatpages/locale/br/LC_MESSAGES/django.po,sha256=O_mwrHIiEwV4oB1gZ7Yua4nVKRgyIf3j5UtedZWAtwk,2783 +django/contrib/flatpages/locale/bs/LC_MESSAGES/django.mo,sha256=bd7ID7OsEhp57JRw_TXoTwsVQNkFYiR_sxSkgi4WvZU,1782 +django/contrib/flatpages/locale/bs/LC_MESSAGES/django.po,sha256=IyFvI5mL_qesEjf6NO1nNQbRHhCAZQm0UhIpmGjrSwQ,2233 +django/contrib/flatpages/locale/ca/LC_MESSAGES/django.mo,sha256=GcMVbg4i5zKCd2Su7oN30WVJN7Q9K7FsFifgTB8jDPI,2237 +django/contrib/flatpages/locale/ca/LC_MESSAGES/django.po,sha256=-aJHSbWPVyNha_uF6R35Q6yn4-Hse3jTInr9jtaxKOI,2631 +django/contrib/flatpages/locale/ckb/LC_MESSAGES/django.mo,sha256=ds26zJRsUHDNdhoUJ8nsLtBdKDhN29Kb51wNiB8Llgo,2716 +django/contrib/flatpages/locale/ckb/LC_MESSAGES/django.po,sha256=jqqMYjrplyX8jtyBLd1ObMEwoFmaETmNXrO3tg2S0BY,2918 +django/contrib/flatpages/locale/cs/LC_MESSAGES/django.mo,sha256=8nwep22P86bMCbW7sj4n0BMGl_XaJIJV0fjnVp-_dqY,2340 +django/contrib/flatpages/locale/cs/LC_MESSAGES/django.po,sha256=1agUeRthwpam1UvZY4vRnZtLLbiop75IEXb6ul_e3mg,2611 +django/contrib/flatpages/locale/cy/LC_MESSAGES/django.mo,sha256=zr_2vsDZsrby3U8AmvlJMU3q1U_4IrrTmz6oS29OWtQ,2163 +django/contrib/flatpages/locale/cy/LC_MESSAGES/django.po,sha256=E_NC_wtuhWKYKB3YvYGB9ccJgKI3AfIZlB2HpXSyOsk,2370 +django/contrib/flatpages/locale/da/LC_MESSAGES/django.mo,sha256=nALoI50EvFPa4f3HTuaHUHATF1zHMjo4v5zcHj4n6sA,2277 +django/contrib/flatpages/locale/da/LC_MESSAGES/django.po,sha256=j4dpnreB7LWdZO7Drj7E9zBwFx_Leuj7ZLyEPi-ccAQ,2583 +django/contrib/flatpages/locale/de/LC_MESSAGES/django.mo,sha256=I4CHFzjYM_Wd-vuIYOMf8E58ntOgkLmgOAg35Chdz3s,2373 +django/contrib/flatpages/locale/de/LC_MESSAGES/django.po,sha256=P6tPVPumP9JwBIv-XXi1QQYJyj1PY3OWoM4yOAmgTRE,2592 +django/contrib/flatpages/locale/dsb/LC_MESSAGES/django.mo,sha256=oTILSe5teHa9XTYWoamstpyPu02yb_xo8S0AtkP7WP8,2391 +django/contrib/flatpages/locale/dsb/LC_MESSAGES/django.po,sha256=1xD2aH5alerranvee6QLZqgxDVXxHThXCHR4kOJAV48,2576 +django/contrib/flatpages/locale/el/LC_MESSAGES/django.mo,sha256=LQ8qIGwzoKwewtLz_1NhnhEeR4dPx2rrQ_hAN4BF6Og,2864 +django/contrib/flatpages/locale/el/LC_MESSAGES/django.po,sha256=gbLO52fcZK7LoG5Rget2Aq5PTFoz467ackXpSsR81kY,3221 +django/contrib/flatpages/locale/en/LC_MESSAGES/django.mo,sha256=U0OV81NfbuNL9ctF-gbGUG5al1StqN-daB-F-gFBFC8,356 +django/contrib/flatpages/locale/en/LC_MESSAGES/django.po,sha256=0bNWKiu-1MkHFJ_UWrCLhp9ENr-pHzBz1lkhBkkrhJM,2169 +django/contrib/flatpages/locale/en_AU/LC_MESSAGES/django.mo,sha256=dTt7KtwiEyMEKYVzkPSqs6VS0CiUfK7ISz2c6rV2erA,2210 +django/contrib/flatpages/locale/en_AU/LC_MESSAGES/django.po,sha256=_V4RTf0JtmyU7DRQv7jIwtPJs05KA2THPid5nKQ0ego,2418 +django/contrib/flatpages/locale/en_GB/LC_MESSAGES/django.mo,sha256=7zyXYOsqFkUGxclW-VPPxrQTZKDuiYQ7MQJy4m8FClo,1989 +django/contrib/flatpages/locale/en_GB/LC_MESSAGES/django.po,sha256=oHrBd6lVnO7-SdnO-Taa7iIyiqp_q2mQZjkuuU3Qa_s,2232 +django/contrib/flatpages/locale/eo/LC_MESSAGES/django.mo,sha256=W8TkkQkV58oOvFdKCPAyoQNyCxSmfErwik1U8a_W5nE,2333 +django/contrib/flatpages/locale/eo/LC_MESSAGES/django.po,sha256=e54WOtIcIQLjB4bJGol51z6d6dwLBiiJN2k-nrTQlaI,2750 +django/contrib/flatpages/locale/es/LC_MESSAGES/django.mo,sha256=9Q7Qf1eSPvAfPTZSGWq7QMWrROY-CnpUkeRpiH8rpJw,2258 +django/contrib/flatpages/locale/es/LC_MESSAGES/django.po,sha256=3vGZ3uVCyWnIkDSUt6DMMOqyphv3EQteTPLx7e9J_sU,2663 +django/contrib/flatpages/locale/es_AR/LC_MESSAGES/django.mo,sha256=bUnFDa5vpxl27kn2ojTbNaCmwRkBCH-z9zKXAvXe3Z0,2275 +django/contrib/flatpages/locale/es_AR/LC_MESSAGES/django.po,sha256=vEg3wjL_7Ee-PK4FZTaGRCXFscthkoH9szJ7H01K8w8,2487 +django/contrib/flatpages/locale/es_CO/LC_MESSAGES/django.mo,sha256=jt8wzeYky5AEnoNuAv8W4nGgd45XsMbpEdRuLnptr3U,2140 +django/contrib/flatpages/locale/es_CO/LC_MESSAGES/django.po,sha256=xrbAayPoxT7yksXOGPb-0Nc-4g14UmWANaKTD4ItAFA,2366 +django/contrib/flatpages/locale/es_MX/LC_MESSAGES/django.mo,sha256=Y5IOKRzooJHIhJzD9q4PKOe39Z4Rrdz8dBKuvmGkqWU,2062 +django/contrib/flatpages/locale/es_MX/LC_MESSAGES/django.po,sha256=Y-EXhw-jISttA9FGMz7gY_kB-hQ3wEyKEaOc2gu2hKQ,2246 +django/contrib/flatpages/locale/es_VE/LC_MESSAGES/django.mo,sha256=EI6WskepXUmbwCPBNFKqLGNcWFVZIbvXayOHxOCLZKo,2187 +django/contrib/flatpages/locale/es_VE/LC_MESSAGES/django.po,sha256=ipG6a0A2d0Pyum8GcknA-aNExVLjSyuUqbgHM9VdRQo,2393 +django/contrib/flatpages/locale/et/LC_MESSAGES/django.mo,sha256=zriqETEWD-DDPiNzXgAzgEhjvPAaTo7KBosyvBebyc0,2233 +django/contrib/flatpages/locale/et/LC_MESSAGES/django.po,sha256=tMuITUlzy6LKJh3X3CxssFpTQogg8OaGHlKExzjwyOI,2525 +django/contrib/flatpages/locale/eu/LC_MESSAGES/django.mo,sha256=FoKazUkuPpDgsEEI6Gm-xnZYVHtxILiy6Yzvnu8y-L0,2244 +django/contrib/flatpages/locale/eu/LC_MESSAGES/django.po,sha256=POPFB5Jd8sE9Z_ivYSdnet14u-aaXneTUNDMuOrJy00,2478 +django/contrib/flatpages/locale/fa/LC_MESSAGES/django.mo,sha256=2rA7-OR8lQbl_ZhlAC4cmHEmQ9mwxnA8q5M-gx3NmVQ,2612 +django/contrib/flatpages/locale/fa/LC_MESSAGES/django.po,sha256=_-yKW2xIN9XSXEwZTdkhEpRHJoacN8f56D3AkCvlFs0,3006 +django/contrib/flatpages/locale/fi/LC_MESSAGES/django.mo,sha256=VsQdof8hE_AKQGS-Qp82o8PTN_7NxxEdxelGenIAE-8,2256 +django/contrib/flatpages/locale/fi/LC_MESSAGES/django.po,sha256=RL7eruNkgDjr1b3cF2yCqeM8eDKHwAqF6h8hYuxl6R4,2552 +django/contrib/flatpages/locale/fr/LC_MESSAGES/django.mo,sha256=ZqD4O3_Ny8p5i6_RVHlANCnPiowMd19Qi_LOPfTHav4,2430 +django/contrib/flatpages/locale/fr/LC_MESSAGES/django.po,sha256=liAoOgT2CfpANL_rYzyzsET1MhsM19o7wA2GBnoDvMA,2745 +django/contrib/flatpages/locale/fy/LC_MESSAGES/django.mo,sha256=DRsFoZKo36F34XaiQg_0KUOr3NS_MG3UHptzOI4uEAU,476 +django/contrib/flatpages/locale/fy/LC_MESSAGES/django.po,sha256=9JIrRVsPL1m0NPN6uHiaAYxJXHp5IghZmQhVSkGo5g8,1523 +django/contrib/flatpages/locale/ga/LC_MESSAGES/django.mo,sha256=KKvDhZULHQ4JQ_31ltLkk88H2BKUbBXDQFSvdKFqjn8,2191 +django/contrib/flatpages/locale/ga/LC_MESSAGES/django.po,sha256=Yat7oU2XPQFQ8vhNq1nJFAlX2rqfxz4mjpU5TcnaYO8,2400 +django/contrib/flatpages/locale/gd/LC_MESSAGES/django.mo,sha256=KbaTL8kF9AxDBLDQWlxcP5hZ4zWnbkvY0l2xRKZ9Dg0,2469 +django/contrib/flatpages/locale/gd/LC_MESSAGES/django.po,sha256=DVY_1R0AhIaI1qXIeRej3XSHMtlimeKNUwzFjc4OmwA,2664 +django/contrib/flatpages/locale/gl/LC_MESSAGES/django.mo,sha256=e8hfOxRyLtCsvdd1FVGuI_dnsptVhfW_O9KyuPT0ENk,2256 +django/contrib/flatpages/locale/gl/LC_MESSAGES/django.po,sha256=YqyR8qnKho8jK03igqPv9KlJw5yVIIDCAGc5z2QxckE,2583 +django/contrib/flatpages/locale/he/LC_MESSAGES/django.mo,sha256=PbypHBhT3W_rp37u8wvaCJdtYB4IP-UeE02VUvSHPf0,2517 +django/contrib/flatpages/locale/he/LC_MESSAGES/django.po,sha256=f7phCRqJPFL7CsuSE1xg9xlaBoOpdd-0zoTYotff29M,2827 +django/contrib/flatpages/locale/hi/LC_MESSAGES/django.mo,sha256=w29ukoF48C7iJ6nE045YoWi7Zcrgu_oXoxT-r6gcQy8,2770 +django/contrib/flatpages/locale/hi/LC_MESSAGES/django.po,sha256=nXq5y1FqMGVhpXpQVdV3uU5JcUtBc2BIrf-n__C2q30,3055 +django/contrib/flatpages/locale/hr/LC_MESSAGES/django.mo,sha256=Mt4gpBuUXvcBl8K714ls4PimHQqee82jFxY1BEAYQOE,2188 +django/contrib/flatpages/locale/hr/LC_MESSAGES/django.po,sha256=ZbUMJY6a-os-xDmcDCJNrN4-YqRe9b_zJ4V5gt2wlGI,2421 +django/contrib/flatpages/locale/hsb/LC_MESSAGES/django.mo,sha256=Pk44puT-3LxzNdGYxMALWpFdw6j6W0G-dWwAfv8sopI,2361 +django/contrib/flatpages/locale/hsb/LC_MESSAGES/django.po,sha256=mhnBXgZSK19E4JU8p2qzqyZqozSzltK-3iY5glr9WG8,2538 +django/contrib/flatpages/locale/hu/LC_MESSAGES/django.mo,sha256=rZxICk460iWBubNq53g9j2JfKIw2W7OqyPG5ylGE92s,2363 +django/contrib/flatpages/locale/hu/LC_MESSAGES/django.po,sha256=DDP7OLBkNbWXr-wiulmQgG461qAubJ8VrfCCXbyPk2g,2700 +django/contrib/flatpages/locale/hy/LC_MESSAGES/django.mo,sha256=qocNtyLcQpjmGqQ130VGjJo-ruaOCtfmZehS9If_hWk,2536 +django/contrib/flatpages/locale/hy/LC_MESSAGES/django.po,sha256=WD8ohMnsaUGQItyqQmS46d76tKgzhQ17X_tGevqULO0,2619 +django/contrib/flatpages/locale/ia/LC_MESSAGES/django.mo,sha256=bochtCPlc268n0WLF0bJtUUT-XveZLPOZPQUetnOWfU,500 +django/contrib/flatpages/locale/ia/LC_MESSAGES/django.po,sha256=gOJ850e8sFcjR2G79zGn3_0-9-KSy591i7ketBRFjyw,1543 +django/contrib/flatpages/locale/id/LC_MESSAGES/django.mo,sha256=2kRHbcmfo09pIEuBb8q5AOkgC0sISJrAG37Rb5F0vts,2222 +django/contrib/flatpages/locale/id/LC_MESSAGES/django.po,sha256=1avfX88CkKMh2AjzN7dxRwj9pgohIBgKE0aXB_shZfc,2496 +django/contrib/flatpages/locale/io/LC_MESSAGES/django.mo,sha256=N8R9dXw_cnBSbZtwRbX6Tzw5XMr_ZdRkn0UmsQFDTi4,464 +django/contrib/flatpages/locale/io/LC_MESSAGES/django.po,sha256=_pJveonUOmMu3T6WS-tV1OFh-8egW0o7vU3i5YqgChA,1511 +django/contrib/flatpages/locale/is/LC_MESSAGES/django.mo,sha256=lFtP1N5CN-x2aMtBNpB6j5HsZYZIZYRm6Y-22gNe1Ek,2229 +django/contrib/flatpages/locale/is/LC_MESSAGES/django.po,sha256=9e132zDa-n6IZxB8jO5H8I0Wr7ubYxrFEMBYj2W49vI,2490 +django/contrib/flatpages/locale/it/LC_MESSAGES/django.mo,sha256=oOEG327VGpi0K5P2UOQgQa39ln15t0lAz2Z36MIQQAc,2209 +django/contrib/flatpages/locale/it/LC_MESSAGES/django.po,sha256=ar8i-bTtAKhiXLULCsKMddpmYBjKyg2paYxBI6ImY1s,2526 +django/contrib/flatpages/locale/ja/LC_MESSAGES/django.mo,sha256=Qax3t7FFRonMrszVEeiyQNMtYyWQB3dmOeeIklEmhAg,2469 +django/contrib/flatpages/locale/ja/LC_MESSAGES/django.po,sha256=N6PBvnXLEWELKTx8nHm5KwydDuFFKq5pn6AIHsBSM5M,2848 +django/contrib/flatpages/locale/ka/LC_MESSAGES/django.mo,sha256=R4OSbZ-lGxMdeJYsaXVXpo6-KSZWeKPuErKmEsUvEQE,3022 +django/contrib/flatpages/locale/ka/LC_MESSAGES/django.po,sha256=TWKtkRamM6YD-4WMoqfZ7KY-ZPs5ny7G82Wst6vQRko,3306 +django/contrib/flatpages/locale/kk/LC_MESSAGES/django.mo,sha256=lMPryzUQr21Uy-NAGQhuIZjHz-4LfBHE_zxEc2_UPaw,2438 +django/contrib/flatpages/locale/kk/LC_MESSAGES/django.po,sha256=3y9PbPw-Q8wM7tCq6u3KeYUT6pfTqcQwlNlSxpAXMxQ,2763 +django/contrib/flatpages/locale/km/LC_MESSAGES/django.mo,sha256=FYRfhNSqBtavYb10sHZNfB-xwLwdZEfVEzX116nBs-k,1942 +django/contrib/flatpages/locale/km/LC_MESSAGES/django.po,sha256=d2AfbR78U0rJqbFmJQvwiBl_QvYIeSwsPKEnfYM4JZA,2471 +django/contrib/flatpages/locale/kn/LC_MESSAGES/django.mo,sha256=n5HCZEPYN_YIVCXrgA1qhxvfhZtDbhfiannJy5EkHkI,1902 +django/contrib/flatpages/locale/kn/LC_MESSAGES/django.po,sha256=-CHwu13UuE2-Qg6poG949I_dw3YiPI9ZhMh5h2vP4xw,2443 +django/contrib/flatpages/locale/ko/LC_MESSAGES/django.mo,sha256=M-IInVdIH24ORarb-KgY60tEorJZgrThDfJQOxW-S0c,2304 +django/contrib/flatpages/locale/ko/LC_MESSAGES/django.po,sha256=DjAtWVAN_fwOvZb-7CUSLtO8WN0Sr08z3jQLNqZ98wY,2746 +django/contrib/flatpages/locale/ky/LC_MESSAGES/django.mo,sha256=WmdWR6dRgmJ-nqSzFDUETypf373fj62igDVHC4ww7hQ,2667 +django/contrib/flatpages/locale/ky/LC_MESSAGES/django.po,sha256=0XDF6CjQTGkuaHADytG95lpFRVndlf_136q0lrQiU1U,2907 +django/contrib/flatpages/locale/lb/LC_MESSAGES/django.mo,sha256=Wkvlh5L_7CopayfNM5Z_xahmyVje1nYOBfQJyqucI_0,502 +django/contrib/flatpages/locale/lb/LC_MESSAGES/django.po,sha256=gGeTuniu3ZZ835t9HR-UtwCcd2s_Yr7ihIUm3jgQ7Y0,1545 +django/contrib/flatpages/locale/lt/LC_MESSAGES/django.mo,sha256=es6xV6X1twtqhIMkV-MByA7KZ5SoVsrx5Qh8BuzJS0Q,2506 +django/contrib/flatpages/locale/lt/LC_MESSAGES/django.po,sha256=T__44veTC_u4hpPvkLekDOWfntXYAMzCd5bffRtGxWA,2779 +django/contrib/flatpages/locale/lv/LC_MESSAGES/django.mo,sha256=RJbVUR8qS8iLL3dD5x1TOau4hcdscHUJBfxge3p3dsM,2359 +django/contrib/flatpages/locale/lv/LC_MESSAGES/django.po,sha256=M6GT6S-5-7__RtSbJ9oqkIlxfU3FIWMlGAQ03NEfcKo,2610 +django/contrib/flatpages/locale/mk/LC_MESSAGES/django.mo,sha256=55H8w6fB-B-RYlKKkGw3fg2m-djxUoEp_XpupK-ZL70,2699 +django/contrib/flatpages/locale/mk/LC_MESSAGES/django.po,sha256=OhHJ5OVWb0jvNaOB3wip9tSIZ1yaPPLkfQR--uUEyUI,2989 +django/contrib/flatpages/locale/ml/LC_MESSAGES/django.mo,sha256=VMMeOujp5fiLzrrbDeH24O2qKBPUkvI_YTSPH-LQjZc,3549 +django/contrib/flatpages/locale/ml/LC_MESSAGES/django.po,sha256=KR2CGnZ1sVuRzSGaPj5IlspoAkVuVEdf48XsAzt1se0,3851 +django/contrib/flatpages/locale/mn/LC_MESSAGES/django.mo,sha256=tqwROY6D-bJ4gbDQIowKXfuLIIdCWksGwecL2sj_wco,2776 +django/contrib/flatpages/locale/mn/LC_MESSAGES/django.po,sha256=jqiBpFLXlptDyU4F8ZWbP61S4APSPh0-nuTpNOejA6c,3003 +django/contrib/flatpages/locale/mr/LC_MESSAGES/django.mo,sha256=fuDy9vFLn5Mb3wVNUg8IvLyTwmyPr3M-GThzgkphJjg,2040 +django/contrib/flatpages/locale/mr/LC_MESSAGES/django.po,sha256=L_1vnLh4AjoaXdb4p_XfDnbKAAWkdQFSpE_8cKGZSm8,2593 +django/contrib/flatpages/locale/ms/LC_MESSAGES/django.mo,sha256=5t_67bMQhux6v6SSWqHfzzCgc6hm3olxgHAsKOMGGZU,2184 +django/contrib/flatpages/locale/ms/LC_MESSAGES/django.po,sha256=-ZzZ8lfAglGkO_BRYz1lRlywxaF1zZ28-Xv74O2nT04,2336 +django/contrib/flatpages/locale/my/LC_MESSAGES/django.mo,sha256=OcbiA7tJPkyt_WNrqyvoFjHt7WL7tMGHV06AZSxzkho,507 +django/contrib/flatpages/locale/my/LC_MESSAGES/django.po,sha256=EPWE566Vn7tax0PYUKq93vtydvmt-A4ooIau9Cwcdfc,1550 +django/contrib/flatpages/locale/nb/LC_MESSAGES/django.mo,sha256=L_XICESZ0nywkk1dn6RqzdUbFTcR92ju-zHCT1g3iEg,2208 +django/contrib/flatpages/locale/nb/LC_MESSAGES/django.po,sha256=ZtcBVD0UqIcsU8iLu5a2wnHLqu5WRLLboVFye2IuQew,2576 +django/contrib/flatpages/locale/ne/LC_MESSAGES/django.mo,sha256=gDZKhcku1NVlSs5ZPPupc7RI8HOF7ex0R4Rs8tMmrYE,1500 +django/contrib/flatpages/locale/ne/LC_MESSAGES/django.po,sha256=GWlzsDaMsJkOvw2TidJOEf1Fvxx9WxGdGAtfZIHkHwk,2178 +django/contrib/flatpages/locale/nl/LC_MESSAGES/django.mo,sha256=_yV_-SYYjpbo-rOHp8NlRzVHFPOSrfS-ndHOEJ9JP3Y,2231 +django/contrib/flatpages/locale/nl/LC_MESSAGES/django.po,sha256=xUuxx2b4ZTCA-1RIdoMqykLgjLLkmpO4ur1Vh93IITU,2669 +django/contrib/flatpages/locale/nn/LC_MESSAGES/django.mo,sha256=sHkuZneEWo1TItSlarlnOUR7ERjc76bJfHUcuFgd9mQ,2256 +django/contrib/flatpages/locale/nn/LC_MESSAGES/django.po,sha256=MpI9qkWqj4rud__xetuqCP-eFHUgMYJpfBhDnWRKPK4,2487 +django/contrib/flatpages/locale/os/LC_MESSAGES/django.mo,sha256=cXGTA5M229UFsgc7hEiI9vI9SEBrNQ8d3A0XrtazO6w,2329 +django/contrib/flatpages/locale/os/LC_MESSAGES/django.po,sha256=m-qoTiKePeFviKGH1rJRjZRH-doJ2Fe4DcZ6W52rG8s,2546 +django/contrib/flatpages/locale/pa/LC_MESSAGES/django.mo,sha256=69_ZsZ4nWlQ0krS6Mx3oL6c4sP5W9mx-yAmOhZOnjPU,903 +django/contrib/flatpages/locale/pa/LC_MESSAGES/django.po,sha256=N6gkoRXP5MefEnjywzRiE3aeU6kHQ0TUG6IGdLV7uww,1780 +django/contrib/flatpages/locale/pl/LC_MESSAGES/django.mo,sha256=5M5-d-TOx2WHlD6BCw9BYIU6bYrSR0Wlem89ih5k3Pc,2448 +django/contrib/flatpages/locale/pl/LC_MESSAGES/django.po,sha256=oKeeo-vNfPaCYVUbufrJZGk0vsgzAE0kLQOTF5qHAK4,2793 +django/contrib/flatpages/locale/pt/LC_MESSAGES/django.mo,sha256=xD2pWdS3XMg7gAqBrUBmCEXFsOzEs0Npe8AJnlpueRY,2115 +django/contrib/flatpages/locale/pt/LC_MESSAGES/django.po,sha256=-K2jipPUWjXpfSPq3upnC_bvtaRAeOw0OLRFv03HWFY,2326 +django/contrib/flatpages/locale/pt_BR/LC_MESSAGES/django.mo,sha256=YGyagSFIc-ssFN8bnqVRce1_PsybvLmI8RVCygjow8E,2291 +django/contrib/flatpages/locale/pt_BR/LC_MESSAGES/django.po,sha256=pFA8RPNefZpuhbxBHLt9KrI2RiHxct5V-DnZA-XqBv0,2942 +django/contrib/flatpages/locale/ro/LC_MESSAGES/django.mo,sha256=oS3MXuRh2USyLOMrMH0WfMSFpgBcZWfrbCrovYgbONo,2337 +django/contrib/flatpages/locale/ro/LC_MESSAGES/django.po,sha256=UNKGNSZKS92pJDjxKDLqVUW87DKCWP4_Q51xS16IZl0,2632 +django/contrib/flatpages/locale/ru/LC_MESSAGES/django.mo,sha256=AACtHEQuytEohUZVgk-o33O7rJTFAluq22VJOw5JqII,2934 +django/contrib/flatpages/locale/ru/LC_MESSAGES/django.po,sha256=H6JOPAXNxji1oni9kfga_hNZevodStpEl0O6cDnZ148,3312 +django/contrib/flatpages/locale/sk/LC_MESSAGES/django.mo,sha256=P1192D_B2kDQ6nF_tGEW7WCoTodB3_9rMTaqEQSMO4E,2353 +django/contrib/flatpages/locale/sk/LC_MESSAGES/django.po,sha256=--_DaPB_aSZHn_uxzmCpITO7VPCpP4Nq2rdQGgN14r8,2638 +django/contrib/flatpages/locale/sl/LC_MESSAGES/django.mo,sha256=kOrhhBdM9nbQbCLN49bBn23hCrzpAPrfKvPs4QMHgvo,2301 +django/contrib/flatpages/locale/sl/LC_MESSAGES/django.po,sha256=oyTrOVH0v76Ttc93qfeyu3FHcWLh3tTiz2TefGkmoq4,2621 +django/contrib/flatpages/locale/sq/LC_MESSAGES/django.mo,sha256=Jv2sebdAM6CfiLzgi1b7rHo5hp-6_BFeeMQ4_BwYpjk,2328 +django/contrib/flatpages/locale/sq/LC_MESSAGES/django.po,sha256=Xm87FbWaQ1JGhhGx8uvtqwUltkTkwk5Oysagu8qIPUA,2548 +django/contrib/flatpages/locale/sr/LC_MESSAGES/django.mo,sha256=p--v7bpD8Pp6zeP3cdh8fnfC8g2nuhbzGJTdN9eoE58,2770 +django/contrib/flatpages/locale/sr/LC_MESSAGES/django.po,sha256=jxcyMN2Qh_osmo4Jf_6QUC2vW3KVKt1BupDWMMZyAXA,3071 +django/contrib/flatpages/locale/sr_Latn/LC_MESSAGES/django.mo,sha256=3N4mGacnZj0tI5tFniLqC2LQCPSopDEM1SGaw5N1bsw,2328 +django/contrib/flatpages/locale/sr_Latn/LC_MESSAGES/django.po,sha256=od7r3dPbZ7tRAJUW80Oe-nm_tHcmIiG6b2OZMsFg53s,2589 +django/contrib/flatpages/locale/sv/LC_MESSAGES/django.mo,sha256=1pFmNWiExWo5owNijZHZb8-Tbd0nYPqqvTmIitcFPbY,2252 +django/contrib/flatpages/locale/sv/LC_MESSAGES/django.po,sha256=l3anvdgLQJzYehCalwr1AAh8e-hRKrL_bSNwmkfgbbc,2613 +django/contrib/flatpages/locale/sw/LC_MESSAGES/django.mo,sha256=Lhf99AGmazKJHzWk2tkGrMInoYOq0mtdCd8SGblnVCQ,1537 +django/contrib/flatpages/locale/sw/LC_MESSAGES/django.po,sha256=cos3eahuznpTfTdl1Vj_07fCOSYE8C9CRYHCBLYZrVw,1991 +django/contrib/flatpages/locale/ta/LC_MESSAGES/django.mo,sha256=nNuoOX-FPAmTvM79o7colM4C7TtBroTFxYtETPPatcQ,1945 +django/contrib/flatpages/locale/ta/LC_MESSAGES/django.po,sha256=XE4SndPZPLf1yXGl5xQSb0uor4OE8CKJ0EIXBRDA3qU,2474 +django/contrib/flatpages/locale/te/LC_MESSAGES/django.mo,sha256=bMxhDMTQc_WseqoeqJMCSNy71o4U5tJZYgD2G0p-jD0,1238 +django/contrib/flatpages/locale/te/LC_MESSAGES/django.po,sha256=tmUWOrAZ98B9T6Cai8AgLCfb_rLeoPVGjDTgdsMOY1Y,2000 +django/contrib/flatpages/locale/tg/LC_MESSAGES/django.mo,sha256=gpzjf_LxwWX6yUrcUfNepK1LGez6yvnuYhmfULDPZ6E,2064 +django/contrib/flatpages/locale/tg/LC_MESSAGES/django.po,sha256=lZFLes8BWdJ-VbczHFDWCSKhKg0qmmk10hTjKcBNr5o,2572 +django/contrib/flatpages/locale/th/LC_MESSAGES/django.mo,sha256=mct17_099pUn0aGuHu8AlZG6UqdKDpYLojqGYDLRXRg,2698 +django/contrib/flatpages/locale/th/LC_MESSAGES/django.po,sha256=PEcRx5AtXrDZvlNGWFH-0arroD8nZbutdJBe8_I02ag,2941 +django/contrib/flatpages/locale/tk/LC_MESSAGES/django.mo,sha256=_AfI4FH0jkeeCDgujfkx4xHMGSwGi5fs9iqr3HLUVVs,835 +django/contrib/flatpages/locale/tk/LC_MESSAGES/django.po,sha256=28Af2gU6Wmo2DvjxLZrpbXq0HBFrcP7yzfh5IlL4DJg,1881 +django/contrib/flatpages/locale/tr/LC_MESSAGES/django.mo,sha256=pPNGylfG8S0iBI4ONZbky3V2Q5AG-M1njp27tFrhhZc,2290 +django/contrib/flatpages/locale/tr/LC_MESSAGES/django.po,sha256=0ULZu3Plp8H9zdirHy3MSduJ_QRdpoaaivf3bL9MCwA,2588 +django/contrib/flatpages/locale/tt/LC_MESSAGES/django.mo,sha256=9RfCKyn0ZNYsqLvFNmY18xVMl7wnmDq5uXscrsFfupk,2007 +django/contrib/flatpages/locale/tt/LC_MESSAGES/django.po,sha256=SUwalSl8JWI9tuDswmnGT8SjuWR3DQGND9roNxJtH1o,2402 +django/contrib/flatpages/locale/udm/LC_MESSAGES/django.mo,sha256=7KhzWgskBlHmi-v61Ax9fjc3NBwHB17WppdNMuz-rEc,490 +django/contrib/flatpages/locale/udm/LC_MESSAGES/django.po,sha256=zidjP05Hx1OpXGqWEmF2cg9SFxASM4loOV85uW7zV5U,1533 +django/contrib/flatpages/locale/ug/LC_MESSAGES/django.mo,sha256=FL8P63c7BRO5hNABEzurk91v01ceRBhC1DJyjFJkiwg,2644 +django/contrib/flatpages/locale/ug/LC_MESSAGES/django.po,sha256=TxlRCGW-6fyxOO3YzAzKJa4utQp4NOOZ08YZxSit9E8,2774 +django/contrib/flatpages/locale/uk/LC_MESSAGES/django.mo,sha256=r2RZT8xQ1Gi9Yp0nnoNALqQ4zrEJ0JC7m26E5gSeq4g,3002 +django/contrib/flatpages/locale/uk/LC_MESSAGES/django.po,sha256=qcVizoTiKYc1c9KwSTwSALHgjjSGVY2oito_bBRLVTE,3405 +django/contrib/flatpages/locale/ur/LC_MESSAGES/django.mo,sha256=Li4gVdFoNOskGKAKiNuse6B2sz6ePGqGvZu7aGXMNy0,1976 +django/contrib/flatpages/locale/ur/LC_MESSAGES/django.po,sha256=hDasKiKrYov9YaNIHIpoooJo0Bzba___IuN2Hl6ofSc,2371 +django/contrib/flatpages/locale/vi/LC_MESSAGES/django.mo,sha256=FsFUi96oGTWGlZwM4qSMpuL1M2TAxsW51qO70TrybSM,1035 +django/contrib/flatpages/locale/vi/LC_MESSAGES/django.po,sha256=ITX3MWd7nlWPxTCoNPl22_OMLTt0rfvajGvTVwo0QC8,1900 +django/contrib/flatpages/locale/zh_Hans/LC_MESSAGES/django.mo,sha256=UTCQr9t2wSj6dYLK1ftpF8-pZ25dAMYLRE2wEUQva-o,2124 +django/contrib/flatpages/locale/zh_Hans/LC_MESSAGES/django.po,sha256=loi9RvOnrgFs4qp8FW4RGis7wgDzBBXuwha5pFfLRxY,2533 +django/contrib/flatpages/locale/zh_Hant/LC_MESSAGES/django.mo,sha256=INt9_smj4Zwo3hkn3kemuE85lfvwjUrIxbkIHa7Cd_E,2176 +django/contrib/flatpages/locale/zh_Hant/LC_MESSAGES/django.po,sha256=d9De9F9YWkc8YZt51Cg5Xtslwg04G0aRMqxTMAXqQI8,2477 +django/contrib/flatpages/middleware.py,sha256=aXeOeOkUmpdkGOyqZnkR-l1VrDQ161RWIWa3WPBhGac,784 +django/contrib/flatpages/migrations/0001_initial.py,sha256=4xhMsKaXOycsfo9O1QIuknS9wf7r0uVsshAJ7opeqsM,2408 +django/contrib/flatpages/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/contrib/flatpages/migrations/__pycache__/0001_initial.cpython-312.pyc,, +django/contrib/flatpages/migrations/__pycache__/__init__.cpython-312.pyc,, +django/contrib/flatpages/models.py,sha256=3ugRRsDwB5C3GHOWvtOzjJl-y0yqqjYZBSOMt24QYuw,1764 +django/contrib/flatpages/sitemaps.py,sha256=CEhZOsLwv3qIJ1hs4eHlE_0AAtYjicb_yRzsstY19eg,584 +django/contrib/flatpages/templatetags/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/contrib/flatpages/templatetags/__pycache__/__init__.cpython-312.pyc,, +django/contrib/flatpages/templatetags/__pycache__/flatpages.cpython-312.pyc,, +django/contrib/flatpages/templatetags/flatpages.py,sha256=QH-suzsoPIMSrgyHR9O8uOdmfIkBv_w3LM-hGfQvnU8,3552 +django/contrib/flatpages/urls.py,sha256=Rs37Ij192SOtSBjd4Lx9YtpINfEMg7XRY01dEOY8Rgg,179 +django/contrib/flatpages/views.py,sha256=H4LG7Janb6Dcn-zINLmp358hR60JigAKGzh4A4PMPaM,2724 +django/contrib/gis/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/contrib/gis/__pycache__/__init__.cpython-312.pyc,, +django/contrib/gis/__pycache__/apps.cpython-312.pyc,, +django/contrib/gis/__pycache__/feeds.cpython-312.pyc,, +django/contrib/gis/__pycache__/geoip2.cpython-312.pyc,, +django/contrib/gis/__pycache__/geometry.cpython-312.pyc,, +django/contrib/gis/__pycache__/measure.cpython-312.pyc,, +django/contrib/gis/__pycache__/ptr.cpython-312.pyc,, +django/contrib/gis/__pycache__/shortcuts.cpython-312.pyc,, +django/contrib/gis/__pycache__/views.cpython-312.pyc,, +django/contrib/gis/admin/__init__.py,sha256=bCUsC6Hh7hztchqRKuaiTgk3nL0B4H053bVII-olB7k,486 +django/contrib/gis/admin/__pycache__/__init__.cpython-312.pyc,, +django/contrib/gis/admin/__pycache__/options.cpython-312.pyc,, +django/contrib/gis/admin/options.py,sha256=r60rycdAgcGSB21KQS_V0X78ulUjATYzws-JKLYd_lc,689 +django/contrib/gis/apps.py,sha256=dbAFKx9jj9_QdhdNfL5KCC47puH_ZTw098jsJFwDO9Y,417 +django/contrib/gis/db/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/contrib/gis/db/__pycache__/__init__.cpython-312.pyc,, +django/contrib/gis/db/backends/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/contrib/gis/db/backends/__pycache__/__init__.cpython-312.pyc,, +django/contrib/gis/db/backends/__pycache__/utils.cpython-312.pyc,, +django/contrib/gis/db/backends/base/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/contrib/gis/db/backends/base/__pycache__/__init__.cpython-312.pyc,, +django/contrib/gis/db/backends/base/__pycache__/adapter.cpython-312.pyc,, +django/contrib/gis/db/backends/base/__pycache__/features.cpython-312.pyc,, +django/contrib/gis/db/backends/base/__pycache__/models.cpython-312.pyc,, +django/contrib/gis/db/backends/base/__pycache__/operations.cpython-312.pyc,, +django/contrib/gis/db/backends/base/adapter.py,sha256=qbLG-sLB6EZ_sA6-E_uIClyp5E5hz9UQ-CsR3BWx8W8,592 +django/contrib/gis/db/backends/base/features.py,sha256=fF-AKB6__RjkxVRadNkOP7Av4wMaRGkXKybYV6ES2Gk,3718 +django/contrib/gis/db/backends/base/models.py,sha256=WqpmVLqK21m9J6k_N-SGPXq1VZMuNHafyB9xqxUwR4k,4009 +django/contrib/gis/db/backends/base/operations.py,sha256=_g_B-_AN1OVmarA3O8FdU7hnAgBCX0d4gvqalNRJAYg,6859 +django/contrib/gis/db/backends/mysql/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/contrib/gis/db/backends/mysql/__pycache__/__init__.cpython-312.pyc,, +django/contrib/gis/db/backends/mysql/__pycache__/base.cpython-312.pyc,, +django/contrib/gis/db/backends/mysql/__pycache__/features.cpython-312.pyc,, +django/contrib/gis/db/backends/mysql/__pycache__/introspection.cpython-312.pyc,, +django/contrib/gis/db/backends/mysql/__pycache__/operations.cpython-312.pyc,, +django/contrib/gis/db/backends/mysql/__pycache__/schema.cpython-312.pyc,, +django/contrib/gis/db/backends/mysql/base.py,sha256=z75wKhm-e9JfRLCvgDq-iv9OqOjBBAS238JTTrWfHRQ,498 +django/contrib/gis/db/backends/mysql/features.py,sha256=dVRo3CuV8Zp5822h9l48nApiXyn3lCuXQV3vsRZKeao,866 +django/contrib/gis/db/backends/mysql/introspection.py,sha256=ZihcSzwN0f8iqKOYKMHuQ_MY41ERSswjP46dvCF0v68,1602 +django/contrib/gis/db/backends/mysql/operations.py,sha256=FLm31EQ4dH5p94SIMaIBlIOWR6QQf7gmD-T9vSA-Pkg,4796 +django/contrib/gis/db/backends/mysql/schema.py,sha256=taCGJ5sEe8GJqd4bi1ODGWFJFCjYJq7rWjMaFeN3GSM,3051 +django/contrib/gis/db/backends/oracle/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/contrib/gis/db/backends/oracle/__pycache__/__init__.cpython-312.pyc,, +django/contrib/gis/db/backends/oracle/__pycache__/adapter.cpython-312.pyc,, +django/contrib/gis/db/backends/oracle/__pycache__/base.cpython-312.pyc,, +django/contrib/gis/db/backends/oracle/__pycache__/features.cpython-312.pyc,, +django/contrib/gis/db/backends/oracle/__pycache__/introspection.cpython-312.pyc,, +django/contrib/gis/db/backends/oracle/__pycache__/models.cpython-312.pyc,, +django/contrib/gis/db/backends/oracle/__pycache__/operations.cpython-312.pyc,, +django/contrib/gis/db/backends/oracle/__pycache__/schema.cpython-312.pyc,, +django/contrib/gis/db/backends/oracle/adapter.py,sha256=AjD0eMuptu8BqkE2LshTizkf5iv9ArYVP9PoOTHfNao,2066 +django/contrib/gis/db/backends/oracle/base.py,sha256=_7qhvEdbnrJQEKL51sg8YYu8kRYmQNAlBgNb2OUbBkw,507 +django/contrib/gis/db/backends/oracle/features.py,sha256=3yCDutKz4iX01eOjLf0CLe_cemMaRjDmH8ZKNy_Sbyk,1021 +django/contrib/gis/db/backends/oracle/introspection.py,sha256=fW9FTIW_yAQQZwk0LzdoTtj6QQpFN6fgUQzv8dCmFEo,1939 +django/contrib/gis/db/backends/oracle/models.py,sha256=AqtTfN04n3_3zYx79_nawy3CiIO47vqRq7MSiJ9-MaQ,2085 +django/contrib/gis/db/backends/oracle/operations.py,sha256=3-rl7MJQHEAYwpdGhvrgxWqoLubGqvE5pP6rxgsNWNg,8791 +django/contrib/gis/db/backends/oracle/schema.py,sha256=o7fa2jefeT0zajqkLtEwOnvtjuATwCiaIvpVnns4YR4,4271 +django/contrib/gis/db/backends/postgis/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/contrib/gis/db/backends/postgis/__pycache__/__init__.cpython-312.pyc,, +django/contrib/gis/db/backends/postgis/__pycache__/adapter.cpython-312.pyc,, +django/contrib/gis/db/backends/postgis/__pycache__/base.cpython-312.pyc,, +django/contrib/gis/db/backends/postgis/__pycache__/const.cpython-312.pyc,, +django/contrib/gis/db/backends/postgis/__pycache__/features.cpython-312.pyc,, +django/contrib/gis/db/backends/postgis/__pycache__/introspection.cpython-312.pyc,, +django/contrib/gis/db/backends/postgis/__pycache__/models.cpython-312.pyc,, +django/contrib/gis/db/backends/postgis/__pycache__/operations.cpython-312.pyc,, +django/contrib/gis/db/backends/postgis/__pycache__/pgraster.cpython-312.pyc,, +django/contrib/gis/db/backends/postgis/__pycache__/schema.cpython-312.pyc,, +django/contrib/gis/db/backends/postgis/adapter.py,sha256=3ytnzyTAqB8rmczZE-CPePoG4Pf7lo7glBHdENba6rg,1981 +django/contrib/gis/db/backends/postgis/base.py,sha256=37t0_fDD4IeFsQrMrKoQRW01e8KJeXCSkbv5sOpreR8,5793 +django/contrib/gis/db/backends/postgis/const.py,sha256=ekJc9pvJwQ0tmxENkJsZFdP03uEUEneloR23SJcnTIc,2008 +django/contrib/gis/db/backends/postgis/features.py,sha256=qOEJLQTIC1YdlDoJkpLCiVQU4GAy0d9_Dneui7w41bM,455 +django/contrib/gis/db/backends/postgis/introspection.py,sha256=ihrNd_qHQ64DRjoaPj9-1a0y3H8Ko4gWbK2N5fDA3_g,3164 +django/contrib/gis/db/backends/postgis/models.py,sha256=DfKkmur-8lvr_cflDKE3pTV_vH3Wtxr4bSiXuwPIWhU,2003 +django/contrib/gis/db/backends/postgis/operations.py,sha256=TSta36rbN3HGGG40zTD42oY_e8fwIgwzXPRky8LLyjY,16576 +django/contrib/gis/db/backends/postgis/pgraster.py,sha256=eCa2y-v3qGLeNbFI4ERFj2UmqgYAE19nuL3SgDFmm0o,4588 +django/contrib/gis/db/backends/postgis/schema.py,sha256=dU-o1GQh2lPdiNYmBgd7QTnKq3L3JYqZck5pKn-BA0o,3020 +django/contrib/gis/db/backends/spatialite/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/contrib/gis/db/backends/spatialite/__pycache__/__init__.cpython-312.pyc,, +django/contrib/gis/db/backends/spatialite/__pycache__/adapter.cpython-312.pyc,, +django/contrib/gis/db/backends/spatialite/__pycache__/base.cpython-312.pyc,, +django/contrib/gis/db/backends/spatialite/__pycache__/client.cpython-312.pyc,, +django/contrib/gis/db/backends/spatialite/__pycache__/features.cpython-312.pyc,, +django/contrib/gis/db/backends/spatialite/__pycache__/introspection.cpython-312.pyc,, +django/contrib/gis/db/backends/spatialite/__pycache__/models.cpython-312.pyc,, +django/contrib/gis/db/backends/spatialite/__pycache__/operations.cpython-312.pyc,, +django/contrib/gis/db/backends/spatialite/__pycache__/schema.cpython-312.pyc,, +django/contrib/gis/db/backends/spatialite/adapter.py,sha256=qTiA5BBGUFND3D7xGK_85oo__HSexTH32XF4uin3ZV0,318 +django/contrib/gis/db/backends/spatialite/base.py,sha256=wU1fgp68CLyKELsMfO6zYM85ox4g_GloWESEK8EPrfM,3218 +django/contrib/gis/db/backends/spatialite/client.py,sha256=dNM7mqDyTzFlgQR1XhqZIftnR9VRH7AfcSvvy4vucEs,138 +django/contrib/gis/db/backends/spatialite/features.py,sha256=zkmJPExFtRqjRj608ZTlsSpxkYaPbV3A3SEfX3PcaFY,876 +django/contrib/gis/db/backends/spatialite/introspection.py,sha256=V_iwkz0zyF1U-AKq-UlxvyDImqQCsitcmvxk2cUw81A,3118 +django/contrib/gis/db/backends/spatialite/models.py,sha256=mOQ1cNkmLFCiKYyDjkhbs6Gf20qeFC5joSk7RIdIk-s,1931 +django/contrib/gis/db/backends/spatialite/operations.py,sha256=jaLhSEYHqEewdx1AbaQpwy-S6lZOJiuY2ZwHb1euJ5M,8520 +django/contrib/gis/db/backends/spatialite/schema.py,sha256=URhFfLQM7FH39wmkViD8MZJ1qG3cixhNdWmjuM9ZB44,7340 +django/contrib/gis/db/backends/utils.py,sha256=rLwSv79tKJPxvDHACY8rhPDLFZC79mEIlIySTyl_qqc,785 +django/contrib/gis/db/models/__init__.py,sha256=TrCS27JdVa-Q7Hok-YaJxb4eLrPdyvRmasJGIu05fvA,865 +django/contrib/gis/db/models/__pycache__/__init__.cpython-312.pyc,, +django/contrib/gis/db/models/__pycache__/aggregates.cpython-312.pyc,, +django/contrib/gis/db/models/__pycache__/fields.cpython-312.pyc,, +django/contrib/gis/db/models/__pycache__/functions.cpython-312.pyc,, +django/contrib/gis/db/models/__pycache__/lookups.cpython-312.pyc,, +django/contrib/gis/db/models/__pycache__/proxy.cpython-312.pyc,, +django/contrib/gis/db/models/aggregates.py,sha256=ImbuX2AhL6PkEyrGDv_qKIgR9FSeIur7cIMIVKUYnlM,3147 +django/contrib/gis/db/models/fields.py,sha256=n40s9HYbqVpFKIW9b4X4IQ8INWUus7QZi5QdiWVPsTI,14312 +django/contrib/gis/db/models/functions.py,sha256=1zoJCVjBlFK6jjeOHVWHMLW1p1EHyoLM4DmspUqO94w,19606 +django/contrib/gis/db/models/lookups.py,sha256=FOb501DBuopcbLy175O1BwD2ZoaVa2optogbXmvwv3o,11797 +django/contrib/gis/db/models/proxy.py,sha256=qckCc10o_W1qJ7yH5VpNo6huhPfVMAz3nJSEyLfk4oo,3174 +django/contrib/gis/db/models/sql/__init__.py,sha256=-rzcC3izMJi2bnvyQUCMzIOrigBnY6N_5EQIim4wCSY,134 +django/contrib/gis/db/models/sql/__pycache__/__init__.cpython-312.pyc,, +django/contrib/gis/db/models/sql/__pycache__/conversion.cpython-312.pyc,, +django/contrib/gis/db/models/sql/conversion.py,sha256=ZiMRzEf7_kOWJ4IITXFq6dL-wDwMhIEwvbE705afgaU,2433 +django/contrib/gis/feeds.py,sha256=0vNVVScIww13bOxvlQfXAOCItIOGWSXroKKl6QXGB58,5995 +django/contrib/gis/forms/__init__.py,sha256=Zyid_YlZzHUcMYkfGX1GewmPPDNc0ni7HyXKDTeIkjo,318 +django/contrib/gis/forms/__pycache__/__init__.cpython-312.pyc,, +django/contrib/gis/forms/__pycache__/fields.cpython-312.pyc,, +django/contrib/gis/forms/__pycache__/widgets.cpython-312.pyc,, +django/contrib/gis/forms/fields.py,sha256=FrZaZWXFUdWK1QEu8wlda3u6EtqaVHjQRYrSKKu66PA,4608 +django/contrib/gis/forms/widgets.py,sha256=jV0TSxB6quB0rbkyAq4QJCdrZt4rA_LaZnO9CHRFdgI,3917 +django/contrib/gis/gdal/LICENSE,sha256=VwoEWoNyts1qAOMOuv6OPo38Cn_j1O8sxfFtQZ62Ous,1526 +django/contrib/gis/gdal/__init__.py,sha256=wpf_P8fG88Bg8vF9uyNfah5QKDD2L5mlFlIOlmwJibc,1828 +django/contrib/gis/gdal/__pycache__/__init__.cpython-312.pyc,, +django/contrib/gis/gdal/__pycache__/base.cpython-312.pyc,, +django/contrib/gis/gdal/__pycache__/datasource.cpython-312.pyc,, +django/contrib/gis/gdal/__pycache__/driver.cpython-312.pyc,, +django/contrib/gis/gdal/__pycache__/envelope.cpython-312.pyc,, +django/contrib/gis/gdal/__pycache__/error.cpython-312.pyc,, +django/contrib/gis/gdal/__pycache__/feature.cpython-312.pyc,, +django/contrib/gis/gdal/__pycache__/field.cpython-312.pyc,, +django/contrib/gis/gdal/__pycache__/geometries.cpython-312.pyc,, +django/contrib/gis/gdal/__pycache__/geomtype.cpython-312.pyc,, +django/contrib/gis/gdal/__pycache__/layer.cpython-312.pyc,, +django/contrib/gis/gdal/__pycache__/libgdal.cpython-312.pyc,, +django/contrib/gis/gdal/__pycache__/srs.cpython-312.pyc,, +django/contrib/gis/gdal/base.py,sha256=yymyL0vZRMBfiFUzrehvaeaunIxMH5ucGjPRfKj-rAo,181 +django/contrib/gis/gdal/datasource.py,sha256=tlbiem36QDKmWKSDD5uQFSY7kye8Q40gxXcE2EmdFmA,4669 +django/contrib/gis/gdal/driver.py,sha256=wu2m_-lGPO4MDmJrUPBYrGDUD7BnNPFx0RROeE3-qP0,2983 +django/contrib/gis/gdal/envelope.py,sha256=_dLqUUsQpU7WnmYwbkCQai1vkqu-i6NuKlF5BL8iV5U,7324 +django/contrib/gis/gdal/error.py,sha256=Vt-Uis9z786UGE3tD7fjiH8_0P5HSTO81n4fad4l6kw,1578 +django/contrib/gis/gdal/feature.py,sha256=HPWoCZjwzsUnhc7QmKh-BBMRqJCjj07RcFI6vjbdnp4,4017 +django/contrib/gis/gdal/field.py,sha256=EKE-Ioj5L79vo93Oixz_JE4TIZbDTRy0YVGvZH-I1z4,6886 +django/contrib/gis/gdal/geometries.py,sha256=JUnxiv1qVQC3LHiI7PZzqmODnTqXqHkvaSUU3OVM9cY,27567 +django/contrib/gis/gdal/geomtype.py,sha256=CWqbe5XtpgKiBP8Lbisbtb8o1FtuIUVb37Eb02i6TSE,4582 +django/contrib/gis/gdal/layer.py,sha256=PygAgsRZzWekp6kq6NEAZ6vhQTSo1Nk4c1Yi_pOdK58,8825 +django/contrib/gis/gdal/libgdal.py,sha256=AFNcrLSsryDKjmHzYccUXTkUmGMDuQqdfI2JhCcZT8g,3578 +django/contrib/gis/gdal/prototypes/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/contrib/gis/gdal/prototypes/__pycache__/__init__.cpython-312.pyc,, +django/contrib/gis/gdal/prototypes/__pycache__/ds.cpython-312.pyc,, +django/contrib/gis/gdal/prototypes/__pycache__/errcheck.cpython-312.pyc,, +django/contrib/gis/gdal/prototypes/__pycache__/generation.cpython-312.pyc,, +django/contrib/gis/gdal/prototypes/__pycache__/geom.cpython-312.pyc,, +django/contrib/gis/gdal/prototypes/__pycache__/raster.cpython-312.pyc,, +django/contrib/gis/gdal/prototypes/__pycache__/srs.cpython-312.pyc,, +django/contrib/gis/gdal/prototypes/ds.py,sha256=8YN4GkR3WD0DmvQbC0qSSapg82JIeZ_hev9qKZ5wHdk,4728 +django/contrib/gis/gdal/prototypes/errcheck.py,sha256=EJiU5xldKFzmaSG2ZAByogkEreG7jR0XKEfHnhhDVYw,4174 +django/contrib/gis/gdal/prototypes/generation.py,sha256=8m1MJ1WjAwlmZGWYzPr9imOMJAwHUtW4D81MEvj0Ako,4890 +django/contrib/gis/gdal/prototypes/geom.py,sha256=p0M5oQT_uqwrnvK6Rc08Xr-Z2W1OwD2ZbO0Q_kKtvk4,5951 +django/contrib/gis/gdal/prototypes/raster.py,sha256=jPOBqT6580qCThK5PhigyELzxMdp05RgI4hAKSlie_0,5571 +django/contrib/gis/gdal/prototypes/srs.py,sha256=52Aq0F7CT0_SqoMCaiIXVDVQ9dsnLGGIYXo5jf3EDDU,3677 +django/contrib/gis/gdal/raster/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/contrib/gis/gdal/raster/__pycache__/__init__.cpython-312.pyc,, +django/contrib/gis/gdal/raster/__pycache__/band.cpython-312.pyc,, +django/contrib/gis/gdal/raster/__pycache__/base.cpython-312.pyc,, +django/contrib/gis/gdal/raster/__pycache__/const.cpython-312.pyc,, +django/contrib/gis/gdal/raster/__pycache__/source.cpython-312.pyc,, +django/contrib/gis/gdal/raster/band.py,sha256=RPdut6BeQ9vW71rrPMwb2CnXrbCys8YAt1BA8Aholy0,8343 +django/contrib/gis/gdal/raster/base.py,sha256=2GGlL919lPr7YVGFtdIynLPIH-QKYhzrUpoXwVRlM1k,2882 +django/contrib/gis/gdal/raster/const.py,sha256=C_svBc-x052KJojH1t3pD1N29d67hQxyN8rm8u0141o,3283 +django/contrib/gis/gdal/raster/source.py,sha256=NmsCjTWDbNFt7oEWfSQSN7ZlofyDZ2yJ3ClSAfDjiW0,18394 +django/contrib/gis/gdal/srs.py,sha256=4if-eLG2V-G14subvHNZTZWG2I6nEC79exb4DdZpw3I,12350 +django/contrib/gis/geoip2.py,sha256=oBYj5dfizWvBtFwU-gdPOOsJe9zFjKw13CqKeiHqYz8,8884 +django/contrib/gis/geometry.py,sha256=oyapp3-FbCo1f2RQZhDwg-JD2sg1bq5Cgzpfxj-UmuE,788 +django/contrib/gis/geos/LICENSE,sha256=CL8kt1USOK4yUpUkVCWxyuua0PQvni0wPHs1NQJjIEU,1530 +django/contrib/gis/geos/__init__.py,sha256=7BIDN_LCzaNYi0RiDiPwxdm1G76cCiTBJLswcM6CMZI,661 +django/contrib/gis/geos/__pycache__/__init__.cpython-312.pyc,, +django/contrib/gis/geos/__pycache__/base.cpython-312.pyc,, +django/contrib/gis/geos/__pycache__/collections.cpython-312.pyc,, +django/contrib/gis/geos/__pycache__/coordseq.cpython-312.pyc,, +django/contrib/gis/geos/__pycache__/error.cpython-312.pyc,, +django/contrib/gis/geos/__pycache__/factory.cpython-312.pyc,, +django/contrib/gis/geos/__pycache__/geometry.cpython-312.pyc,, +django/contrib/gis/geos/__pycache__/io.cpython-312.pyc,, +django/contrib/gis/geos/__pycache__/libgeos.cpython-312.pyc,, +django/contrib/gis/geos/__pycache__/linestring.cpython-312.pyc,, +django/contrib/gis/geos/__pycache__/mutable_list.cpython-312.pyc,, +django/contrib/gis/geos/__pycache__/point.cpython-312.pyc,, +django/contrib/gis/geos/__pycache__/polygon.cpython-312.pyc,, +django/contrib/gis/geos/__pycache__/prepared.cpython-312.pyc,, +django/contrib/gis/geos/base.py,sha256=NdlFg5l9akvDp87aqzh9dk0A3ZH2TI3cOq10mmmuHBk,181 +django/contrib/gis/geos/collections.py,sha256=ucr2-UdxXWVV3EAqa9kDT4mpBbC1-4TOnWJPdg2Phiw,3941 +django/contrib/gis/geos/coordseq.py,sha256=urCtqscgvbkRObpWnFk92qALBd5nl4UPEItRp1kx7N4,6841 +django/contrib/gis/geos/error.py,sha256=r3SNTnwDBI6HtuyL3mQ_iEEeKlOqqqdkHnhNoUkMohw,104 +django/contrib/gis/geos/factory.py,sha256=KQF6lqAh5KRlFSDgN-BSXWojmWFabbEUFgz2IGYX_vk,961 +django/contrib/gis/geos/geometry.py,sha256=smf1Il8p-ZjtUIKNnO60-u2-G28FX7amxmjLqwU8UQ0,26652 +django/contrib/gis/geos/io.py,sha256=GCUL4p6B7FYAHOcPcbTc-QLuSJ3rtvKvU7vfzZpUlsg,800 +django/contrib/gis/geos/libgeos.py,sha256=dCyMvcqRixNpGKx3UyQntZgccGeRXMg7XBYXhIrrUko,4988 +django/contrib/gis/geos/linestring.py,sha256=BJAoWfHW08EX1UpNFVB09iSKXdTS6pZsTIBc6DcZcfc,6372 +django/contrib/gis/geos/mutable_list.py,sha256=nthCtQ0FsJrDGd29cSERwXb-tJkpK35Vc0T_ywCnXgc,10121 +django/contrib/gis/geos/point.py,sha256=bvatsdXTb1XYy1EaSZvp4Rnr2LwXZU12zILefLu6sRw,4781 +django/contrib/gis/geos/polygon.py,sha256=DZq6Ed9bJA3MqhpDQ9u926hHxcnxBjnbKSppHgbShxw,6710 +django/contrib/gis/geos/prepared.py,sha256=J5Dj6e3u3gEfVPNOM1E_rvcmcXR2-CdwtbAcoiDU5a0,1577 +django/contrib/gis/geos/prototypes/__init__.py,sha256=iAnsD0bg8u7Avo7Fmet4lkAo9lnsyyfZFa7k3IQ6T1w,1438 +django/contrib/gis/geos/prototypes/__pycache__/__init__.cpython-312.pyc,, +django/contrib/gis/geos/prototypes/__pycache__/coordseq.cpython-312.pyc,, +django/contrib/gis/geos/prototypes/__pycache__/errcheck.cpython-312.pyc,, +django/contrib/gis/geos/prototypes/__pycache__/geom.cpython-312.pyc,, +django/contrib/gis/geos/prototypes/__pycache__/io.cpython-312.pyc,, +django/contrib/gis/geos/prototypes/__pycache__/misc.cpython-312.pyc,, +django/contrib/gis/geos/prototypes/__pycache__/predicates.cpython-312.pyc,, +django/contrib/gis/geos/prototypes/__pycache__/prepared.cpython-312.pyc,, +django/contrib/gis/geos/prototypes/__pycache__/threadsafe.cpython-312.pyc,, +django/contrib/gis/geos/prototypes/__pycache__/topology.cpython-312.pyc,, +django/contrib/gis/geos/prototypes/coordseq.py,sha256=fIcSIzmyCbazQSR-XdvCwtP2YZItQur1Y27vfAKXNfw,3122 +django/contrib/gis/geos/prototypes/errcheck.py,sha256=t_904N1AiAHla7TiY0iLffIpRtlwNXs3gbvhsUP5Q4g,2789 +django/contrib/gis/geos/prototypes/geom.py,sha256=NlR-rUFCj_V3lppSmYSI2bapLim_VUJXABwElTldZM0,3398 +django/contrib/gis/geos/prototypes/io.py,sha256=j5379Sb-uLjW7SpxQiOeDvcJjrb1ZCa9bOa6IhD6sWI,11321 +django/contrib/gis/geos/prototypes/misc.py,sha256=m6gKAPD9B7Yukj4jbyAmqnuT5K5qahGS3MR9Kndd40c,1169 +django/contrib/gis/geos/prototypes/predicates.py,sha256=-NeNemaYkzlvHzcS1vXiBKPHuXj-WB4wE_xRCStWPoM,1662 +django/contrib/gis/geos/prototypes/prepared.py,sha256=4I9pS75Q5MZ1z8A1v0mKkmdCly33Kj_0sDcrqxOppzM,1175 +django/contrib/gis/geos/prototypes/threadsafe.py,sha256=n1yCYvQCtc7piFrhjeZCWH8Pf0-AiOGBH33VZusTgWI,2302 +django/contrib/gis/geos/prototypes/topology.py,sha256=MIpi03Vqn89Upx0sRDJp2B1Z3LpGnBmNQyEXHmquV5Y,2328 +django/contrib/gis/locale/af/LC_MESSAGES/django.mo,sha256=FWnPEpxhJG9xJ-uOTFryxIT6BFN3w-bsgqLn0IHF-Ew,518 +django/contrib/gis/locale/af/LC_MESSAGES/django.po,sha256=v5LXHABklHAVbfrPEx3xXGIHIZ4hz4MmfvZ6beC-XF4,1540 +django/contrib/gis/locale/ar/LC_MESSAGES/django.mo,sha256=5LCO903yJTtRVaaujBrmwMx8f8iLa3ihasgmj8te9eg,2301 +django/contrib/gis/locale/ar/LC_MESSAGES/django.po,sha256=pfUyK0VYgY0VC2_LvWZvG_EEIWa0OqIUfhiPT2Uov3Q,2569 +django/contrib/gis/locale/ar_DZ/LC_MESSAGES/django.mo,sha256=1e2lutVEjsa5vErMdjS6gaBbOLPTVIpDv15rax-wvKg,2403 +django/contrib/gis/locale/ar_DZ/LC_MESSAGES/django.po,sha256=dizXM36w-rUtI7Dv2mSoJDR5ouVR6Ar7zqjywX3xKr0,2555 +django/contrib/gis/locale/ast/LC_MESSAGES/django.mo,sha256=8o0Us4wR14bdv1M5oBeczYC4oW5uKnycWrj1-lMIqV4,850 +django/contrib/gis/locale/ast/LC_MESSAGES/django.po,sha256=0beyFcBkBOUNvPP45iqewTNv2ExvCPvDYwpafCJY5QM,1684 +django/contrib/gis/locale/az/LC_MESSAGES/django.mo,sha256=FOvFUN-kdoX5OvhaVJg3v4rOyQgAQ_YC--TCE3m4kXs,1901 +django/contrib/gis/locale/az/LC_MESSAGES/django.po,sha256=exlD78A7sUZBPuoLyQGZoYiBa2wWGWnsWKq0gUYUOng,2118 +django/contrib/gis/locale/be/LC_MESSAGES/django.mo,sha256=XcJGF9cH7M30Q8EwqovjAeiJFgB2PR4sXsbxdvVURjg,2389 +django/contrib/gis/locale/be/LC_MESSAGES/django.po,sha256=Cp_DXKCVHzYTA7v65TpjRhCJonkgI5Gy13Tfg1rkVp8,2596 +django/contrib/gis/locale/bg/LC_MESSAGES/django.mo,sha256=lLfpqEEEb1RYzy270gpDdEfv5k5jscyNgJv_Ok_BA_A,2323 +django/contrib/gis/locale/bg/LC_MESSAGES/django.po,sha256=hSxYwbKr-IqP5hJaPKQxoL1DkCIg60suHl1H8u8W7jQ,2586 +django/contrib/gis/locale/bn/LC_MESSAGES/django.mo,sha256=7oNsr_vHQfsanyP-o1FG8jZTSBK8jB3eK2fA9AqNOx4,1070 +django/contrib/gis/locale/bn/LC_MESSAGES/django.po,sha256=PTa9EFZdqfznUH7si3Rq3zp1kNkTOnn2HRTEYXQSOdM,1929 +django/contrib/gis/locale/br/LC_MESSAGES/django.mo,sha256=xN8hOvJi_gDlpdC5_lghXuX6yCBYDPfD_SQLjcvq8gU,1614 +django/contrib/gis/locale/br/LC_MESSAGES/django.po,sha256=LQw3Tp_ymJ_x7mJ6g4SOr6aP00bejkjuaxfFFRZnmaQ,2220 +django/contrib/gis/locale/bs/LC_MESSAGES/django.mo,sha256=9EdKtZkY0FX2NlX_q0tIxXD-Di0SNQJZk3jo7cend0A,1308 +django/contrib/gis/locale/bs/LC_MESSAGES/django.po,sha256=eu_qF8dbmlDiRKGNIz80XtIunrF8QIOcy8O28X02GvQ,1905 +django/contrib/gis/locale/ca/LC_MESSAGES/django.mo,sha256=6aq8xNlP95HRncIB6ThimqW14XFKp7OOjo0S0uT6d-Y,1948 +django/contrib/gis/locale/ca/LC_MESSAGES/django.po,sha256=0Tj64N9TVX-oDyq4srBCgqELmM8OjMgXC5Lci844Fvc,2298 +django/contrib/gis/locale/ckb/LC_MESSAGES/django.mo,sha256=tIH0KyO3XREfX8htOCAK6cJSZkS0BCE15AZngco_Vkw,2253 +django/contrib/gis/locale/ckb/LC_MESSAGES/django.po,sha256=krJj0SQiLAcc1uNA9Qazqy9Ty-7MhauoaIDHtjmPPfo,2442 +django/contrib/gis/locale/cs/LC_MESSAGES/django.mo,sha256=ia8l06-eW5VkQnNQU0aizio7pz_pSGA-KRk-liGRa2w,2026 +django/contrib/gis/locale/cs/LC_MESSAGES/django.po,sha256=8taX01JBHhr19_AKhfhbtlpt-TW1aOBwejN-o-HH5Xk,2274 +django/contrib/gis/locale/cy/LC_MESSAGES/django.mo,sha256=vUG_wzZaMumPwIlKwuN7GFcS9gnE5rpflxoA_MPM_po,1430 +django/contrib/gis/locale/cy/LC_MESSAGES/django.po,sha256=_QjXT6cySUXrjtHaJ3046z-5PoXkCqtOhvA7MCZsXxk,1900 +django/contrib/gis/locale/da/LC_MESSAGES/django.mo,sha256=eXid2KAU_8fd23jMFo41iJ3DntVNe0w939_UsBymGM4,1862 +django/contrib/gis/locale/da/LC_MESSAGES/django.po,sha256=9bSpjg9wv7nvWoaOfRhXKsuxVoMzOHU-fsnVNB8qbxM,2158 +django/contrib/gis/locale/de/LC_MESSAGES/django.mo,sha256=fECmj81LHOUcBcQ_PoQWlijVp3SjTG3GwsSRiUGMXOU,1930 +django/contrib/gis/locale/de/LC_MESSAGES/django.po,sha256=DB_2QZ0IHOxKJ51ZyJCNX24597W7DBc_DT1B-oId-bY,2129 +django/contrib/gis/locale/dsb/LC_MESSAGES/django.mo,sha256=YZOA1XJqoU3rI5REairrs9f36Cet75NmC8WXdApx0Mc,2016 +django/contrib/gis/locale/dsb/LC_MESSAGES/django.po,sha256=w36vo0t-HzjhslJLo5xesc1vVfl94sNP3XyyDcETDn0,2177 +django/contrib/gis/locale/el/LC_MESSAGES/django.mo,sha256=g3SeFfO8xTxsvs2jKG9CI99fTnVa-WuBMNG0FFGc0s8,2402 +django/contrib/gis/locale/el/LC_MESSAGES/django.po,sha256=7MATPbwGZGgWabd9BdmUCwxc2iAG2aeac9ltKsieuME,2853 +django/contrib/gis/locale/en/LC_MESSAGES/django.mo,sha256=U0OV81NfbuNL9ctF-gbGUG5al1StqN-daB-F-gFBFC8,356 +django/contrib/gis/locale/en/LC_MESSAGES/django.po,sha256=lXk5x3FBMnRKocOgqDiya7yKeXZqk9gkibxyADRQjOU,2074 +django/contrib/gis/locale/en_AU/LC_MESSAGES/django.mo,sha256=IPn5kRqOvv5S7jpbIUw8PEUkHlyjEL-4GuOANd1iAzI,486 +django/contrib/gis/locale/en_AU/LC_MESSAGES/django.po,sha256=x_58HmrHRia2LoYhmmN_NLb1J3f7oTDvwumgTo0LowI,1494 +django/contrib/gis/locale/en_GB/LC_MESSAGES/django.mo,sha256=WkORQDOsFuV2bI7hwVsJr_JTWnDQ8ZaK-VYugqnLv3w,1369 +django/contrib/gis/locale/en_GB/LC_MESSAGES/django.po,sha256=KWPMoX-X-gQhb47zoVsa79-16-SiCGpO0s4xkcGv9z0,1910 +django/contrib/gis/locale/eo/LC_MESSAGES/django.mo,sha256=FFSZ58VHOog4-tDy88OISaaLXMaHVuFsIr3uevM-LGc,1878 +django/contrib/gis/locale/eo/LC_MESSAGES/django.po,sha256=oyMvu7r3BKLV9VDYQI6IgjumYusSOgynlSdN3dDrcPo,2156 +django/contrib/gis/locale/es/LC_MESSAGES/django.mo,sha256=JTo6frVHdq3bDY7IwpP5K6Znbb0NXMyVBv-AOQ6gd9s,2005 +django/contrib/gis/locale/es/LC_MESSAGES/django.po,sha256=3xK9yehM6kTSbulhvTenKXmlBeUnfgqM3_a7waiNit4,2465 +django/contrib/gis/locale/es_AR/LC_MESSAGES/django.mo,sha256=Z_2xqsHzQNSQWphm6jV9efFFjzHmkmuk2KfLZXx5E1k,2006 +django/contrib/gis/locale/es_AR/LC_MESSAGES/django.po,sha256=_PHHHfzhzPI5xaZwDH6Rd35KEbj1l1-9IyPLEENaw6E,2161 +django/contrib/gis/locale/es_CO/LC_MESSAGES/django.mo,sha256=mMnOZTrmWutn2Lwv2Y7GuoZIhIbPsMCXJkdmeatXZaM,1817 +django/contrib/gis/locale/es_CO/LC_MESSAGES/django.po,sha256=JF0-_eNt-BPJ__GqNoEj7iKEOV8htZHyX5kZue-PZO4,2349 +django/contrib/gis/locale/es_MX/LC_MESSAGES/django.mo,sha256=bC-uMgJXdbKHQ-w7ez-6vh9E_2YSgCF_LkOQlvb60BU,1441 +django/contrib/gis/locale/es_MX/LC_MESSAGES/django.po,sha256=MYO9fGclp_VvLG5tXDjXY3J_1FXI4lDv23rGElXAyjA,1928 +django/contrib/gis/locale/es_VE/LC_MESSAGES/django.mo,sha256=5YVIO9AOtmjky90DAXVyU0YltfQ4NLEpVYRTTk7SZ5o,486 +django/contrib/gis/locale/es_VE/LC_MESSAGES/django.po,sha256=R8suLsdDnSUEKNlXzow3O6WIT5NcboZoCjir9GfSTSQ,1494 +django/contrib/gis/locale/et/LC_MESSAGES/django.mo,sha256=-Gn24H3qyIcf3ptRe7Iin8sHc6JtkkFsmJF4DI1Wwhs,1872 +django/contrib/gis/locale/et/LC_MESSAGES/django.po,sha256=c-8desC8uDUy9UrX3IicuGICF2xAWPudgAprvS3G7jY,2223 +django/contrib/gis/locale/eu/LC_MESSAGES/django.mo,sha256=c2YYr77DeKdHWhpq6T472Hc1wpzYQ1fgKXELx7GMW_U,1888 +django/contrib/gis/locale/eu/LC_MESSAGES/django.po,sha256=HVR7BSXjUy3pphfPKp2uapaKVnQeb3chQIxcG5bMxHY,2147 +django/contrib/gis/locale/fa/LC_MESSAGES/django.mo,sha256=oSM2n6s-E4eomcHHZT6gY0PrhUFDr7Wijs3Qkr62jX0,2155 +django/contrib/gis/locale/fa/LC_MESSAGES/django.po,sha256=uUaUbYmjFcZ3mp9-FmGVT3zv47n54sWtzaXHWFSpMik,2507 +django/contrib/gis/locale/fi/LC_MESSAGES/django.mo,sha256=A1QOLEk9dFKcxlE2puSLmdDdFWRwGbSKsDGbKemUsCM,1839 +django/contrib/gis/locale/fi/LC_MESSAGES/django.po,sha256=IbtvFNK1bXmck5zZQqXNCDSiuXcGonNl8UcN0BfopFQ,2064 +django/contrib/gis/locale/fr/LC_MESSAGES/django.mo,sha256=LXchLaOY_bGIf25s_rQgWHOvEMD-l8_HAT5WtC0irfs,2058 +django/contrib/gis/locale/fr/LC_MESSAGES/django.po,sha256=FVuGpVTPP2-f4CZKL0UZwLSxy2WiDczw9_q3KRTbclQ,2258 +django/contrib/gis/locale/fy/LC_MESSAGES/django.mo,sha256=2kCnWU_giddm3bAHMgDy0QqNwOb9qOiEyCEaYo1WdqQ,476 +django/contrib/gis/locale/fy/LC_MESSAGES/django.po,sha256=7ncWhxC5OLhXslQYv5unWurhyyu_vRsi4bGflZ6T2oQ,1484 +django/contrib/gis/locale/ga/LC_MESSAGES/django.mo,sha256=m6Owcr-5pln54TXcZFAkYEYDjYiAkT8bGFyw4nowNHA,1420 +django/contrib/gis/locale/ga/LC_MESSAGES/django.po,sha256=I0kyTnYBPSdYr8RontzhGPShJhylVAdRLBGWRQr2E7g,1968 +django/contrib/gis/locale/gd/LC_MESSAGES/django.mo,sha256=w9d6GRaJMzeRVMzOuapvpPayOQmrFQEwPf8g4TXSatg,2022 +django/contrib/gis/locale/gd/LC_MESSAGES/django.po,sha256=2jXpd-BBQ7JVj2l9tWhIkUXw4ZZPnGJrvHjs442GEx8,2197 +django/contrib/gis/locale/gl/LC_MESSAGES/django.mo,sha256=vjZQqAw3rDSY8Tgv-12EOhsqfFlaEOB7mVBOH6YlXNo,1956 +django/contrib/gis/locale/gl/LC_MESSAGES/django.po,sha256=zhqF1InI8QaKhDLqjfTRUbMPaT9X3D1eI1ocV5FHGf4,2231 +django/contrib/gis/locale/he/LC_MESSAGES/django.mo,sha256=qaxQ0A76SO7GM5WDK0_3pAJDFzkvAtjSV8r1P4ySCVY,2135 +django/contrib/gis/locale/he/LC_MESSAGES/django.po,sha256=f8w5v4W7w47vH6Tq4HfMOX9jB4ab0oEXnpuJcDlk7Ak,2336 +django/contrib/gis/locale/hi/LC_MESSAGES/django.mo,sha256=3nsy5mxKTPtx0EpqBNA_TJXmLmVZ4BPUZG72ZEe8OPM,1818 +django/contrib/gis/locale/hi/LC_MESSAGES/django.po,sha256=jTFG2gqqYAQct9-to0xL2kUFQu-ebR4j7RGfxn4sBAg,2372 +django/contrib/gis/locale/hr/LC_MESSAGES/django.mo,sha256=0XrRj2oriNZxNhEwTryo2zdMf-85-4X7fy7OJhB5ub4,1549 +django/contrib/gis/locale/hr/LC_MESSAGES/django.po,sha256=iijzoBoD_EJ1n-a5ys5CKnjzZzG299zPoCN-REFkeqE,2132 +django/contrib/gis/locale/hsb/LC_MESSAGES/django.mo,sha256=oXaJFKOmRL_hRqAbghejIgZiq67bAnrOV0eFpoqmyW0,1991 +django/contrib/gis/locale/hsb/LC_MESSAGES/django.po,sha256=uktC4ibheBFFZVh0LVtRVUT3RnefGXVOVQddK70hdgg,2155 +django/contrib/gis/locale/hu/LC_MESSAGES/django.mo,sha256=dXlt0Oq_W45B_Foneh2FgpExduFanuG7ia0wKsYCUqs,1891 +django/contrib/gis/locale/hu/LC_MESSAGES/django.po,sha256=Ws1oB2MpVa90a0JNK2LxsZytKBuMMNwLx0DW1sem4Es,2210 +django/contrib/gis/locale/hy/LC_MESSAGES/django.mo,sha256=pi9oAP8fLCg8ssz7ADZ_p9HntyDtdQ1Mep6KsR5Glfs,2020 +django/contrib/gis/locale/hy/LC_MESSAGES/django.po,sha256=FKRbr93M2S4dLWes80CTZ1AucKW8MF5cw98i0s8qZo4,2260 +django/contrib/gis/locale/ia/LC_MESSAGES/django.mo,sha256=gSHcbhwZ2H1amTQbWw908L0aTniLzK8T2RVGsiHuKIY,1812 +django/contrib/gis/locale/ia/LC_MESSAGES/django.po,sha256=IyKoOfc6ZNtvpL8s-r4lv41wlsCyq8CGNoNp7uHWUGE,2122 +django/contrib/gis/locale/id/LC_MESSAGES/django.mo,sha256=dzDiuO47A6XWR3G-OrY-A2c-7ccp1oGLlKPyUO2Wlpg,1862 +django/contrib/gis/locale/id/LC_MESSAGES/django.po,sha256=KZVcWZ_X8x3LO5Z4V-hzSEsvE-BEHIZq5eWJlW1SwZs,2278 +django/contrib/gis/locale/io/LC_MESSAGES/django.mo,sha256=_yUgF2fBUxVAZAPNw2ROyWly5-Bq0niGdNEzo2qbp8k,464 +django/contrib/gis/locale/io/LC_MESSAGES/django.po,sha256=fgGJ1xzliMK0MlVoV9CQn_BuuS3Kl71Kh5YEybGFS0Y,1472 +django/contrib/gis/locale/is/LC_MESSAGES/django.mo,sha256=UQb3H5F1nUxJSrADpLiYe12TgRhYKCFQE5Xy13MzEqU,1350 +django/contrib/gis/locale/is/LC_MESSAGES/django.po,sha256=8QWtgdEZR7OUVXur0mBCeEjbXTBjJmE-DOiKe55FvMo,1934 +django/contrib/gis/locale/it/LC_MESSAGES/django.mo,sha256=8VddOMr-JMs5D-J5mq-UgNnhf98uutpoJYJKTr8E224,1976 +django/contrib/gis/locale/it/LC_MESSAGES/django.po,sha256=Vp1G-GChjjTsODwABsg5LbmR6_Z-KpslwkNUipuOqk4,2365 +django/contrib/gis/locale/ja/LC_MESSAGES/django.mo,sha256=SY1Kxu_gIqusDX5-4SvWmfGi5zG_-jG_98wbkkUyMfk,2052 +django/contrib/gis/locale/ja/LC_MESSAGES/django.po,sha256=tui2WDqNwYHiOkR9j9kl8YSs_kzZ5MTHAj9hniHKI_8,2357 +django/contrib/gis/locale/ka/LC_MESSAGES/django.mo,sha256=iqWQ9j8yanPjDhwi9cNSktYgfLVnofIsdICnAg2Y_to,1991 +django/contrib/gis/locale/ka/LC_MESSAGES/django.po,sha256=rkM7RG0zxDN8vqyAudmk5nocajhOYP6CTkdJKu21Pf4,2571 +django/contrib/gis/locale/kk/LC_MESSAGES/django.mo,sha256=NtgQONp0UncUNvrh0W2R7u7Ja8H33R-a-tsQShWq-QI,1349 +django/contrib/gis/locale/kk/LC_MESSAGES/django.po,sha256=78OMHuerBJZJZVo9GjGJ1h5fwdLuSc_X03ZhSRibtf4,1979 +django/contrib/gis/locale/km/LC_MESSAGES/django.mo,sha256=T0aZIZ_gHqHpQyejnBeX40jdcfhrCOjgKjNm2hLrpNE,459 +django/contrib/gis/locale/km/LC_MESSAGES/django.po,sha256=7ARjFcuPQJG0OGLJu9pVfSiAwc2Q-1tT6xcLeKeom1c,1467 +django/contrib/gis/locale/kn/LC_MESSAGES/django.mo,sha256=EkJRlJJSHZJvNZJuOLpO4IIUEoyi_fpKwNWe0OGFcy4,461 +django/contrib/gis/locale/kn/LC_MESSAGES/django.po,sha256=MnsSftGvmgJgGfgayQUVDMj755z8ItkM9vBehORfYbk,1475 +django/contrib/gis/locale/ko/LC_MESSAGES/django.mo,sha256=TyIytTrPe4GO6lRsK1CW0wIdhbrwDHxlO_29OX6MoH4,1888 +django/contrib/gis/locale/ko/LC_MESSAGES/django.po,sha256=V5OQ0oW3zU8MMdlOJXk-4RQo0UV3cCAhgSMOaQRgttM,2296 +django/contrib/gis/locale/ky/LC_MESSAGES/django.mo,sha256=nvMSOW77P-YCRkQgrQUpM94FexqLEt8Et0jri2nm_Ec,2157 +django/contrib/gis/locale/ky/LC_MESSAGES/django.po,sha256=0qqO8QWgJXPJpZ900MVsHdw6wMZBa0tE5GN3KSGa58E,2372 +django/contrib/gis/locale/lb/LC_MESSAGES/django.mo,sha256=XAyZQUi8jDr47VpSAHp_8nQb0KvSMJHo5THojsToFdk,474 +django/contrib/gis/locale/lb/LC_MESSAGES/django.po,sha256=5rfudPpH4snSq2iVm9E81EBwM0S2vbkY2WBGhpuga1Q,1482 +django/contrib/gis/locale/lt/LC_MESSAGES/django.mo,sha256=AD69M-SBrmQ5qaFKXX6FYOOXLfhuWlQdOYcMlV0UClo,2036 +django/contrib/gis/locale/lt/LC_MESSAGES/django.po,sha256=1yXUj9Hf4D2iyl97HoRuJLkfnR7Z-WmOoIJil98Cy-M,2366 +django/contrib/gis/locale/lv/LC_MESSAGES/django.mo,sha256=ZNt2B2qukArT3gRZE2SNsKna5pf9-UcsTUbQ3UbbQKA,1978 +django/contrib/gis/locale/lv/LC_MESSAGES/django.po,sha256=CM5WUeTmm4pp5Y4E1Cm3aCwGmTHNSyjSU3B44dRYdHA,2215 +django/contrib/gis/locale/mk/LC_MESSAGES/django.mo,sha256=fLSXxmJFE9kYsKMiwWAXS-9TweB_yuWzAjR-y0eysvI,2518 +django/contrib/gis/locale/mk/LC_MESSAGES/django.po,sha256=P2IKvpaMOj5UvJX_Lz-PE0-1D7Kt_fYM5Amm3d5g6t4,2918 +django/contrib/gis/locale/ml/LC_MESSAGES/django.mo,sha256=Kl9okrE3AzTPa5WQ-IGxYVNSRo2y_VEdgDcOyJ_Je78,2049 +django/contrib/gis/locale/ml/LC_MESSAGES/django.po,sha256=PWg8atPKfOsnVxg_uro8zYO9KCE1UVhfy_zmCWG0Bdk,2603 +django/contrib/gis/locale/mn/LC_MESSAGES/django.mo,sha256=DlGtHJJMKLVntNdaPBXZw9ApM_SjUYEYAgE9DpZv33w,2323 +django/contrib/gis/locale/mn/LC_MESSAGES/django.po,sha256=z9E7N3TXiMCd2FCunpMjS55-uamM_G4iQpI1MoTDSVY,2766 +django/contrib/gis/locale/mr/LC_MESSAGES/django.mo,sha256=3be2jV7c3MBww-fNMk8A9l9hWDwR4pgSmfztJj6cio0,510 +django/contrib/gis/locale/mr/LC_MESSAGES/django.po,sha256=dKaMdzicJqGwxA5VF1GeM3wGUQOtsnWCeHoGGcjFy-o,1530 +django/contrib/gis/locale/ms/LC_MESSAGES/django.mo,sha256=5_xS-XXVyw0cxvDzUIus5JImr0dkcswait04e7TrUtY,1828 +django/contrib/gis/locale/ms/LC_MESSAGES/django.po,sha256=I8rMkUEfsbjf-dWUuXyhYwCXhyX8AS3jjOKinAh7q2Q,1956 +django/contrib/gis/locale/my/LC_MESSAGES/django.mo,sha256=e6G8VbCCthUjV6tV6PRCy_ZzsXyZ-1OYjbYZIEShbXI,525 +django/contrib/gis/locale/my/LC_MESSAGES/django.po,sha256=R3v1S-904f8FWSVGHe822sWrOJI6cNJIk93-K7_E_1c,1580 +django/contrib/gis/locale/nb/LC_MESSAGES/django.mo,sha256=mx9uGqo5w_uRBWHswuEKoI-U-RX_Xvx_qck5ForI63Y,1808 +django/contrib/gis/locale/nb/LC_MESSAGES/django.po,sha256=LVjQsJxXdDBuKS5D7BEJ10C9OE8x3g0f9ewgjoG6fbY,2039 +django/contrib/gis/locale/ne/LC_MESSAGES/django.mo,sha256=nB-Ta8w57S6hIAhAdWZjDT0Dg6JYGbAt5FofIhJT7k8,982 +django/contrib/gis/locale/ne/LC_MESSAGES/django.po,sha256=eMH6uKZZZYn-P3kmHumiO4z9M4923s9tWGhHuJ0eWuI,1825 +django/contrib/gis/locale/nl/LC_MESSAGES/django.mo,sha256=ScPsjM7aMa8PwcbxliFgqfS7_WyOuTGmODGAZY85UM4,1897 +django/contrib/gis/locale/nl/LC_MESSAGES/django.po,sha256=zoUzuPhO4XGlrhmRluXNRMpjD7lEIjAW8TufBqAOO4o,2408 +django/contrib/gis/locale/nn/LC_MESSAGES/django.mo,sha256=P1RU0OICBDeHHtX6rCSB4xXgS4Qn97LqoxJ8phgiMDs,1830 +django/contrib/gis/locale/nn/LC_MESSAGES/django.po,sha256=-mkHmKp3b76uZlFOG3lFLp2nEFtBRV_4ThDPQmUWtX4,2027 +django/contrib/gis/locale/os/LC_MESSAGES/django.mo,sha256=02NpGC8WPjxmPqQkfv9Kj2JbtECdQCtgecf_Tjk1CZc,1594 +django/contrib/gis/locale/os/LC_MESSAGES/django.po,sha256=JBIsv5nJg3Wof7Xy7odCI_xKRBLN_Hlbb__kNqNW4Xw,2161 +django/contrib/gis/locale/pa/LC_MESSAGES/django.mo,sha256=JR1NxG5_h_dFE_7p6trBWWIx-QqWYIgfGomnjaCsWAA,1265 +django/contrib/gis/locale/pa/LC_MESSAGES/django.po,sha256=Ejd_8dq_M0E9XFijk0qj4oC-8_oe48GWWHXhvOrFlnY,1993 +django/contrib/gis/locale/pl/LC_MESSAGES/django.mo,sha256=KHar168QJ7Mj0419885rkyRXvWXkICAi0hUbb8KssY8,2045 +django/contrib/gis/locale/pl/LC_MESSAGES/django.po,sha256=cfeYjcF9R8VKujBMGLx_1z9zDY19DPCjUw5FpHuBIqs,2487 +django/contrib/gis/locale/pt/LC_MESSAGES/django.mo,sha256=sE5PPOHzfT8QQXuV5w0m2pnBTRhKYs_vFhk8p_A4Jg0,2036 +django/contrib/gis/locale/pt/LC_MESSAGES/django.po,sha256=TFt6Oj1NlCM3pgs2dIgFZR3S3y_g7oR7S-XRBlM4924,2443 +django/contrib/gis/locale/pt_BR/LC_MESSAGES/django.mo,sha256=5HGIao480s3B6kXtSmdy1AYjGUZqbYuZ9Eapho_jkTk,1976 +django/contrib/gis/locale/pt_BR/LC_MESSAGES/django.po,sha256=4-2WPZT15YZPyYbH7xnBRc7A8675875kVFjM9tr1o5U,2333 +django/contrib/gis/locale/ro/LC_MESSAGES/django.mo,sha256=jncf415WRI-GaemNGtbXITeYpx2zbokFNfQkONIOSO4,1770 +django/contrib/gis/locale/ro/LC_MESSAGES/django.po,sha256=5Xb2c11mwOdsd1D8SZC5u6nsuNjWEtdT1hslrQBfxP0,2181 +django/contrib/gis/locale/ru/LC_MESSAGES/django.mo,sha256=j9DEE5SVvEXWBj_PtR9_1IsaE-YCq4iOBcaiyHHqOEo,2481 +django/contrib/gis/locale/ru/LC_MESSAGES/django.po,sha256=fgj-PmNJ88IsjUUq7x9W6KSwXWdmnEq1PBlWsLFhzwE,2835 +django/contrib/gis/locale/sk/LC_MESSAGES/django.mo,sha256=FQy4gMIxrXNm42pvJ61q4ZfG0Ce98gv78b2I0vYN2CY,1980 +django/contrib/gis/locale/sk/LC_MESSAGES/django.po,sha256=z7uy3S2VXGZKMfgFLISYUPUb-zyEYXqlDgL_ODmb_4w,2315 +django/contrib/gis/locale/sl/LC_MESSAGES/django.mo,sha256=Ha88TShV2Bt_Jmvlkkc81CUkuV2iKfhGjzpD7KLMhv8,1972 +django/contrib/gis/locale/sl/LC_MESSAGES/django.po,sha256=B81yHSMjOYevk35kC4JEi4Ua3axjadkFW8aRuMnj6P0,2319 +django/contrib/gis/locale/sq/LC_MESSAGES/django.mo,sha256=hTehi3p1Qf7RCqK4vvcL-yoV7GVdbcokLN_5RGtmivE,1660 +django/contrib/gis/locale/sq/LC_MESSAGES/django.po,sha256=qnNVwZ69HLsTRC5GVYtVkIcZTCT_lNGjlDUibpCefr8,2037 +django/contrib/gis/locale/sr/LC_MESSAGES/django.mo,sha256=bM996RqI1wt4qHsUaGXoEO3fnaSZdjVD2TvUFDp5dVk,2365 +django/contrib/gis/locale/sr/LC_MESSAGES/django.po,sha256=hunakYgljjOiiYF98ZzFzIHTkIAGQM_IJLiLfmlR86Q,2628 +django/contrib/gis/locale/sr_Latn/LC_MESSAGES/django.mo,sha256=kniIObavM7XKqD5vcglrbcD8jqANKg7hN6AP4cIVAI0,1981 +django/contrib/gis/locale/sr_Latn/LC_MESSAGES/django.po,sha256=A2NsZJvk2Cckg8OS3yW_T11Tcv5-zgGEHcDRJpvE8Zg,2206 +django/contrib/gis/locale/sv/LC_MESSAGES/django.mo,sha256=CowUAoL4t4np5cBndBNM-a4Wu5oD899nVfifMOLz6xQ,1880 +django/contrib/gis/locale/sv/LC_MESSAGES/django.po,sha256=Xyzc8X3vwQ3wWfS4_5mpwFXPPAeCx4mODYFq3Kba04g,2252 +django/contrib/gis/locale/sw/LC_MESSAGES/django.mo,sha256=uBhpGHluGwYpODTE-xhdJD2e6PHleN07wLE-kjrXr_M,1426 +django/contrib/gis/locale/sw/LC_MESSAGES/django.po,sha256=nHXQQMYYXT1ec3lIBxQIDIAwLtXucX47M4Cozy08kko,1889 +django/contrib/gis/locale/ta/LC_MESSAGES/django.mo,sha256=Rboo36cGKwTebe_MiW4bOiMsRO2isB0EAyJJcoy_F6s,466 +django/contrib/gis/locale/ta/LC_MESSAGES/django.po,sha256=sLYW8_5BSVoSLWUr13BbKRe0hNJ_cBMEtmjCPBdTlAk,1474 +django/contrib/gis/locale/te/LC_MESSAGES/django.mo,sha256=xDkaSztnzQ33Oc-GxHoSuutSIwK9A5Bg3qXEdEvo4h4,824 +django/contrib/gis/locale/te/LC_MESSAGES/django.po,sha256=nYryhktJumcwtZDGZ43xBxWljvdd-cUeBrAYFZOryVg,1772 +django/contrib/gis/locale/tg/LC_MESSAGES/django.mo,sha256=6Jyeaq1ORsnE7Ceh_rrhbfslFskGe12Ar-dQl6NFyt0,611 +django/contrib/gis/locale/tg/LC_MESSAGES/django.po,sha256=9c1zPt7kz1OaRJPPLdqjQqO8MT99KtS9prUvoPa9qJk,1635 +django/contrib/gis/locale/th/LC_MESSAGES/django.mo,sha256=0kekAr7eXc_papwPAxEZ3TxHOBg6EPzdR3q4hmAxOjg,1835 +django/contrib/gis/locale/th/LC_MESSAGES/django.po,sha256=WJPdoZjLfvepGGMhfBB1EHCpxtxxfv80lRjPG9kGErM,2433 +django/contrib/gis/locale/tr/LC_MESSAGES/django.mo,sha256=5EKMteFT0WXGacwXnRt5Eak00kbtYmqskkuCg2rGvyc,1904 +django/contrib/gis/locale/tr/LC_MESSAGES/django.po,sha256=DSIty_3V3G_Pv498EU3H60-5jS0b1S5tPwR_fkwpq98,2180 +django/contrib/gis/locale/tt/LC_MESSAGES/django.mo,sha256=cGVPrWCe4WquVV77CacaJwgLSnJN0oEAepTzNMD-OWk,1470 +django/contrib/gis/locale/tt/LC_MESSAGES/django.po,sha256=98yeRs-JcMGTyizOpEuQenlnWJMYTR1-rG3HGhKCykk,2072 +django/contrib/gis/locale/udm/LC_MESSAGES/django.mo,sha256=I6bfLvRfMn79DO6bVIGfYSVeZY54N6c8BNO7OyyOOsw,462 +django/contrib/gis/locale/udm/LC_MESSAGES/django.po,sha256=B1PCuPYtNOrrhu4fKKJgkqxUrcEyifS2Y3kw-iTmSIk,1470 +django/contrib/gis/locale/ug/LC_MESSAGES/django.mo,sha256=cKr7ETLbYR1nMm2iJsQwZYKz8U5aP2CX5RdhbKW2gh4,2360 +django/contrib/gis/locale/ug/LC_MESSAGES/django.po,sha256=d1P7kH2ETJ9n34d9ALE0tHWw_1_fq7fuiLBNK2IlM10,2529 +django/contrib/gis/locale/uk/LC_MESSAGES/django.mo,sha256=jsJMgEt6VXoSjksQGngxaywARUsk5tiIKJfUw9kgEBw,2513 +django/contrib/gis/locale/uk/LC_MESSAGES/django.po,sha256=NNAUWdHmhsWtrPIgddjT03k4IeJUlUCYM7n78DisFQw,3015 +django/contrib/gis/locale/ur/LC_MESSAGES/django.mo,sha256=tB5tz7EscuE9IksBofNuyFjk89-h5X7sJhCKlIho5SY,1410 +django/contrib/gis/locale/ur/LC_MESSAGES/django.po,sha256=16m0t10Syv76UcI7y-EXfQHETePmrWX4QMVfyeuX1fQ,2007 +django/contrib/gis/locale/vi/LC_MESSAGES/django.mo,sha256=NT5T0FRCC2XINdtaCFCVUxb5VRv8ta62nE8wwSHGTrc,1384 +django/contrib/gis/locale/vi/LC_MESSAGES/django.po,sha256=y77GtqH5bv1wR78xN5JLHusmQzoENTH9kLf9Y3xz5xk,1957 +django/contrib/gis/locale/zh_Hans/LC_MESSAGES/django.mo,sha256=NvNiRwwuqrmOWqiiuYhoxTs3CXb9Zq0-R_2YVhY6n34,1760 +django/contrib/gis/locale/zh_Hans/LC_MESSAGES/django.po,sha256=jXKQKr3GOjL5LJ7Mv1O3zpn2hr_sA_31ote8Pzk9tOU,2232 +django/contrib/gis/locale/zh_Hant/LC_MESSAGES/django.mo,sha256=jbNgO-5ICEWlqu5BaaKrPQ5XIC1CDzpYbbXA6_Xo-D0,1811 +django/contrib/gis/locale/zh_Hant/LC_MESSAGES/django.po,sha256=h72hJ3socDnGCoPHREClni4DxDS0B-n-8EGAADlnmK4,2139 +django/contrib/gis/management/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/contrib/gis/management/__pycache__/__init__.cpython-312.pyc,, +django/contrib/gis/management/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/contrib/gis/management/commands/__pycache__/__init__.cpython-312.pyc,, +django/contrib/gis/management/commands/__pycache__/inspectdb.cpython-312.pyc,, +django/contrib/gis/management/commands/__pycache__/ogrinspect.cpython-312.pyc,, +django/contrib/gis/management/commands/inspectdb.py,sha256=8WhDOBICFAbLFu7kwAAS4I5pNs_p1BrCv8GJYI3S49k,760 +django/contrib/gis/management/commands/ogrinspect.py,sha256=XnWAbLxRxTSvbKSvjgePN7D1o_Ep4qWkvMwVrG1TpYY,6071 +django/contrib/gis/measure.py,sha256=3Kwchst6tJFwK9tMQb5oD6_eUVNnSMyKruOEDuxT7Rc,12573 +django/contrib/gis/ptr.py,sha256=NeIBB-plwO61wGOOxGg7fFyVXI4a5vbAGUdaJ_Fmjqo,1312 +django/contrib/gis/serializers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/contrib/gis/serializers/__pycache__/__init__.cpython-312.pyc,, +django/contrib/gis/serializers/__pycache__/geojson.cpython-312.pyc,, +django/contrib/gis/serializers/geojson.py,sha256=lgwJ0xh-mjMVwJi_UpHH7MTKtjH_7txIQyLG-G2C4-A,3000 +django/contrib/gis/shortcuts.py,sha256=aa9zFjVU38qaEvRc0vAH_j2AgAERlI01rphYLHbc7Tg,1027 +django/contrib/gis/sitemaps/__init__.py,sha256=Tjj057omOVcoC5Fb8ITEYVhLm0HcVjrZ1Mbz_tKoD1A,138 +django/contrib/gis/sitemaps/__pycache__/__init__.cpython-312.pyc,, +django/contrib/gis/sitemaps/__pycache__/kml.cpython-312.pyc,, +django/contrib/gis/sitemaps/__pycache__/views.cpython-312.pyc,, +django/contrib/gis/sitemaps/kml.py,sha256=CUn_KKVrwGg2ZmmDcWosBc0QFuJp8hHpeNRCcloVk1U,2573 +django/contrib/gis/sitemaps/views.py,sha256=AFV1ay-oFftFC-IszzeKz3JAGzE0TOCH8pN1cwtg7yI,2353 +django/contrib/gis/static/gis/css/ol3.css,sha256=DmCfOuPC1wUs0kioWxIpSausvF6AYUlURbJLNGyvngA,773 +django/contrib/gis/static/gis/img/draw_line_off.svg,sha256=6XW83xsR5-Guh27UH3y5UFn9y9FB9T_Zc4kSPA-xSOI,918 +django/contrib/gis/static/gis/img/draw_line_on.svg,sha256=Hx-pXu4ped11esG6YjXP1GfZC5q84zrFQDPUo1C7FGA,892 +django/contrib/gis/static/gis/img/draw_point_off.svg,sha256=PICrywZPwuBkaQAKxR9nBJ0AlfTzPHtVn_up_rSiHH4,803 +django/contrib/gis/static/gis/img/draw_point_on.svg,sha256=raGk3oc8w87rJfLdtZ4nIXJyU3OChCcTd4oH-XAMmmM,803 +django/contrib/gis/static/gis/img/draw_polygon_off.svg,sha256=gnVmjeZE2jOvjfyx7mhazMDBXJ6KtSDrV9f0nSzkv3A,981 +django/contrib/gis/static/gis/img/draw_polygon_on.svg,sha256=ybJ9Ww7-bsojKQJtjErLd2cCOgrIzyqgIR9QNhH_ZfA,982 +django/contrib/gis/static/gis/js/OLMapWidget.js,sha256=JdZJtX4EP_pphsjxs7EnZdfHGM1s5Zsn1MQ38JDU0JQ,9019 +django/contrib/gis/templates/gis/kml/base.kml,sha256=VYnJaGgFVHRzDjiFjbcgI-jxlUos4B4Z1hx_JeI2ZXU,219 +django/contrib/gis/templates/gis/kml/placemarks.kml,sha256=TEC81sDL9RK2FVeH0aFJTwIzs6_YWcMeGnHkACJV1Uc,360 +django/contrib/gis/templates/gis/openlayers-osm.html,sha256=TeiUqCjt73W8Hgrp_6zAtk_ZMBxskNN6KHSmnJ1-GD4,378 +django/contrib/gis/templates/gis/openlayers.html,sha256=J9e_MAMgfMR8NFH9bhQ_ZDIsjKCiCfRRp0__bKK6TK4,1418 +django/contrib/gis/utils/__init__.py,sha256=pnsvryh3ad9wlaf1r7srfi-OwQzktSZzHoaoVZyo14U,683 +django/contrib/gis/utils/__pycache__/__init__.cpython-312.pyc,, +django/contrib/gis/utils/__pycache__/layermapping.cpython-312.pyc,, +django/contrib/gis/utils/__pycache__/ogrinfo.cpython-312.pyc,, +django/contrib/gis/utils/__pycache__/ogrinspect.cpython-312.pyc,, +django/contrib/gis/utils/__pycache__/srs.cpython-312.pyc,, +django/contrib/gis/utils/layermapping.py,sha256=AgEgNEzIUUW0a482UW5iUfVbY1HlQPl8Q9YEuRMau_Q,29043 +django/contrib/gis/utils/ogrinfo.py,sha256=6m3KaRzLoZtQ0OSrpRkaFIQXi9YOXTkQcYeqYb0S0nw,1956 +django/contrib/gis/utils/ogrinspect.py,sha256=f31eRqR5ybC-QR2mOjNWszYDANCWdEEgyqeIcvBAC4g,9170 +django/contrib/gis/utils/srs.py,sha256=UXsbxW0cQzdnPKO0d9E5K2HPdekdab5NaLZWNOUq-zk,2962 +django/contrib/gis/views.py,sha256=zdCV8QfUVfxEFGxESsUtCicsbSVtZNI_IXybdmsHKiM,714 +django/contrib/humanize/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/contrib/humanize/__pycache__/__init__.cpython-312.pyc,, +django/contrib/humanize/__pycache__/apps.cpython-312.pyc,, +django/contrib/humanize/apps.py,sha256=LH3PTbB4V1gbBc8nmCw3BsSuA8La0fNOb4cSISvJAwI,194 +django/contrib/humanize/locale/af/LC_MESSAGES/django.mo,sha256=yFvTzvROTnoZF4ZPAs3z9ireOuOf5gTfECEUdGa4EkM,4224 +django/contrib/humanize/locale/af/LC_MESSAGES/django.po,sha256=m8GF4T4HY4aGsfadUdu04yc7cq9Sm-K5LM-OFjTrq5Y,7541 +django/contrib/humanize/locale/ar/LC_MESSAGES/django.mo,sha256=PokPfBR8w4AbRtNNabl5vO8r5E8_egHvFBjKp4CCvO4,7510 +django/contrib/humanize/locale/ar/LC_MESSAGES/django.po,sha256=QGW-kx-87DlPMGr5l_Eb6Ge-x4tkz2PuwHDe3EIkIQg,12326 +django/contrib/humanize/locale/ar_DZ/LC_MESSAGES/django.mo,sha256=NwCrL5FX_xdxYdqkW_S8tmU8ktDM8LqimmUvkt8me74,9155 +django/contrib/humanize/locale/ar_DZ/LC_MESSAGES/django.po,sha256=tt0AxhohGX79OQ_lX1S5soIo-iSCC07SdAhPpy0O7Q4,15234 +django/contrib/humanize/locale/ast/LC_MESSAGES/django.mo,sha256=WvBk8V6g1vgzGqZ_rR-4p7SMh43PFnDnRhIS9HSwdoQ,3468 +django/contrib/humanize/locale/ast/LC_MESSAGES/django.po,sha256=S9lcUf2y5wR8Ufa-Rlz-M73Z3bMo7zji_63cXwtDK2I,5762 +django/contrib/humanize/locale/az/LC_MESSAGES/django.mo,sha256=ukqeNWHDFXv3XhvfpX8ZU6sb-CrUIx_ks_gwNNWfiFw,4311 +django/contrib/humanize/locale/az/LC_MESSAGES/django.po,sha256=RLGjARRoX9wwBS8Y4EBiC_0iWig93qKaWel4sLOqLhM,7765 +django/contrib/humanize/locale/be/LC_MESSAGES/django.mo,sha256=7KyJKhNqMqv32CPdJi01RPLBefOVCQW-Gx6-Vf9JVrs,6653 +django/contrib/humanize/locale/be/LC_MESSAGES/django.po,sha256=2mbReEHyXhmZysqhSmaT6A2XCHn8mYb2R_O16TMGCAo,10666 +django/contrib/humanize/locale/bg/LC_MESSAGES/django.mo,sha256=jCdDIbqWlhOs-4gML44wSRIXJQxypfak6ByRG_reMsk,4823 +django/contrib/humanize/locale/bg/LC_MESSAGES/django.po,sha256=v2ih4-pL1cdDXaa3uXm9FxRjRKyULLGyz78Q91eKEG8,8267 +django/contrib/humanize/locale/bn/LC_MESSAGES/django.mo,sha256=jbL4ucZxxtexI10jgldtgnDie3I23XR3u-PrMMMqP6U,4026 +django/contrib/humanize/locale/bn/LC_MESSAGES/django.po,sha256=0l4yyy7q3OIWyFk_PW0y883Vw2Pmu48UcnLM9OBxB68,6545 +django/contrib/humanize/locale/br/LC_MESSAGES/django.mo,sha256=V_tPVAyQzVdDwWPNlVGWmlVJjmVZfbh35alkwsFlCNU,5850 +django/contrib/humanize/locale/br/LC_MESSAGES/django.po,sha256=BcAqEV2JpF0hiCQDttIMblp9xbB7zoHsmj7fJFV632k,12245 +django/contrib/humanize/locale/bs/LC_MESSAGES/django.mo,sha256=1-RNRHPgZR_9UyiEn9Djp4mggP3fywKZho45E1nGMjM,1416 +django/contrib/humanize/locale/bs/LC_MESSAGES/django.po,sha256=M017Iu3hyXmINZkhCmn2he-FB8rQ7rXN0KRkWgrp7LI,5498 +django/contrib/humanize/locale/ca/LC_MESSAGES/django.mo,sha256=WDvXis2Y1ivSq6NdJgddO_WKbz8w5MpVpkT4sq-pWXI,4270 +django/contrib/humanize/locale/ca/LC_MESSAGES/django.po,sha256=AD3h2guGADdp1f9EcbP1vc1lmfDOL8-1qQfwvXa6I04,7731 +django/contrib/humanize/locale/ckb/LC_MESSAGES/django.mo,sha256=Mqv3kRZrOjWtTstmtOEqIJsi3vevf_hZUfYEetGxO7w,5021 +django/contrib/humanize/locale/ckb/LC_MESSAGES/django.po,sha256=q_7p7pEyV_NTw9eBvcztKlSFW7ykl0CIsNnA9g5oy20,8317 +django/contrib/humanize/locale/cs/LC_MESSAGES/django.mo,sha256=VFyZcn19aQUXhVyh2zo2g3PAuzOO38Kx9fMFOCCxzMc,5479 +django/contrib/humanize/locale/cs/LC_MESSAGES/django.po,sha256=mq3LagwA9hyWOGy76M9n_rD4p3wuVk6oQsneB9CF99w,9527 +django/contrib/humanize/locale/cy/LC_MESSAGES/django.mo,sha256=VjJiaUUhvX9tjOEe6x2Bdp7scvZirVcUsA4-iE2-ElQ,5241 +django/contrib/humanize/locale/cy/LC_MESSAGES/django.po,sha256=sylmceSq-NPvtr_FjklQXoBAfueKu7hrjEpMAsVbQC4,7813 +django/contrib/humanize/locale/da/LC_MESSAGES/django.mo,sha256=vfDHopmWFAomwqmmCX3wfmX870-zzVbgUFC6I77n9tE,4316 +django/contrib/humanize/locale/da/LC_MESSAGES/django.po,sha256=v7Al6UOkbYB1p7m8kOe-pPRIAoyWemoyg_Pm9bD5Ldc,7762 +django/contrib/humanize/locale/de/LC_MESSAGES/django.mo,sha256=aOUax9csInbXnjAJc3jq4dcW_9H-6ueVI-TtKz2b9q0,4364 +django/contrib/humanize/locale/de/LC_MESSAGES/django.po,sha256=gW3OfOfoVMvpVudwghKCYztkLrCIPbbcriZjBNnRyGo,7753 +django/contrib/humanize/locale/dsb/LC_MESSAGES/django.mo,sha256=OVKcuW9ZXosNvP_3A98WsIIk_Jl6U_kv3zOx4pvwh-g,5588 +django/contrib/humanize/locale/dsb/LC_MESSAGES/django.po,sha256=VimcsmobK3VXTbbTasg6osWDPOIZ555uimbUoUfNco4,9557 +django/contrib/humanize/locale/el/LC_MESSAGES/django.mo,sha256=o-yjhpzyGRbbdMzwUcG_dBP_FMEMZevm7Wz1p4Wd-pg,6740 +django/contrib/humanize/locale/el/LC_MESSAGES/django.po,sha256=UbD5QEw_-JNoNETaOyDfSReirkRsHnlHeSsZF5hOSkI,10658 +django/contrib/humanize/locale/en/LC_MESSAGES/django.mo,sha256=U0OV81NfbuNL9ctF-gbGUG5al1StqN-daB-F-gFBFC8,356 +django/contrib/humanize/locale/en/LC_MESSAGES/django.po,sha256=PKUuSyK8VzVdyyCpOXAffSBK7mFSiGuumzMmttS5yfM,9057 +django/contrib/humanize/locale/en_AU/LC_MESSAGES/django.mo,sha256=QFf4EgAsGprbFetnwogmj8vDV7SfGq1E3vhL9D8xTTM,918 +django/contrib/humanize/locale/en_AU/LC_MESSAGES/django.po,sha256=Bnfesr1_T9sa31qkKOMunwKKXbnFzZJhzV8rYC_pdSE,6532 +django/contrib/humanize/locale/en_GB/LC_MESSAGES/django.mo,sha256=mkx192XQM3tt1xYG8EOacMfa-BvgzYCbSsJQsWZGeAo,3461 +django/contrib/humanize/locale/en_GB/LC_MESSAGES/django.po,sha256=MArKzXxY1104jxaq3kvDZs2WzOGYxicfJxFKsLzFavw,5801 +django/contrib/humanize/locale/eo/LC_MESSAGES/django.mo,sha256=b47HphXBi0cax_reCZiD3xIedavRHcH2iRG8pcwqb54,5386 +django/contrib/humanize/locale/eo/LC_MESSAGES/django.po,sha256=oN1YqOZgxKY3L1a1liluhM6X5YA5bawg91mHF_Vfqx8,9095 +django/contrib/humanize/locale/es/LC_MESSAGES/django.mo,sha256=z5ZCmAG4jGYleEE6pESMXihlESRQPkTEo2vIedXdjjI,5005 +django/contrib/humanize/locale/es/LC_MESSAGES/django.po,sha256=WwykwsBM_Q_xtA2vllIbcFSO7eUB72r56AG4ITwM5VM,8959 +django/contrib/humanize/locale/es_AR/LC_MESSAGES/django.mo,sha256=-btiXH3B5M1qkAsW9D5I742Gt9GcJs5VC8ZhJ_DKkGY,4425 +django/contrib/humanize/locale/es_AR/LC_MESSAGES/django.po,sha256=UsiuRj-eq-Vl41wNZGw9XijCMEmcXhcGrMTPWgZn4LA,7858 +django/contrib/humanize/locale/es_CO/LC_MESSAGES/django.mo,sha256=2GhQNtNOjK5mTov5RvnuJFTYbdoGBkDGLxzvJ8Vsrfs,4203 +django/contrib/humanize/locale/es_CO/LC_MESSAGES/django.po,sha256=JBf2fHO8jWi6dFdgZhstKXwyot_qT3iJBixQZc3l330,6326 +django/contrib/humanize/locale/es_MX/LC_MESSAGES/django.mo,sha256=82DL2ztdq10X5RIceshK1nO99DW5628ZIjaN8Xzp9ok,3939 +django/contrib/humanize/locale/es_MX/LC_MESSAGES/django.po,sha256=-O7AQluA5Kce9-bd04GN4tfQKoCxb8Sa7EZR6TZBCdM,6032 +django/contrib/humanize/locale/es_VE/LC_MESSAGES/django.mo,sha256=cJECzKpD99RRIpVFKQW65x0Nvpzrm5Fuhfi-nxOWmkM,942 +django/contrib/humanize/locale/es_VE/LC_MESSAGES/django.po,sha256=tDdYtvRILgeDMgZqKHSebe7Z5ZgI1bZhDdvGVtj_anM,4832 +django/contrib/humanize/locale/et/LC_MESSAGES/django.mo,sha256=_vLDxD-e-pBY7vs6gNkhFZNGYu_dAeETVMKGsjjWOHg,4406 +django/contrib/humanize/locale/et/LC_MESSAGES/django.po,sha256=u0tSkVYckwXUv1tVfe1ODdZ8tJ2wUkS0Vv8pakJ8eBM,7915 +django/contrib/humanize/locale/eu/LC_MESSAGES/django.mo,sha256=rz3Lz209GneozN4v_19qTGysOL55x7jK2uoB2YsKSMQ,4315 +django/contrib/humanize/locale/eu/LC_MESSAGES/django.po,sha256=lWOx7rpaj2U7czrZmdxVo3kB2aGt-2GDyWO0NLvP-A0,7760 +django/contrib/humanize/locale/fa/LC_MESSAGES/django.mo,sha256=N32l1DsPALoSGe9GtJ5baIo0XUDm8U09JhcHr0lXtw4,4656 +django/contrib/humanize/locale/fa/LC_MESSAGES/django.po,sha256=YsYRnmvABepSAOgEj6dRvdY_jYZqJb0_dbQ_6daiJAQ,8228 +django/contrib/humanize/locale/fi/LC_MESSAGES/django.mo,sha256=FJfyLFkz-oAz9e15e1aQUct7CJ2EJqSkZKh_ztDxtic,4425 +django/contrib/humanize/locale/fi/LC_MESSAGES/django.po,sha256=j5Z5t9zX1kePdM_Es1hu9AKOpOrijVWTsS2t19CIiaE,7807 +django/contrib/humanize/locale/fr/LC_MESSAGES/django.mo,sha256=pHHD7DV36bC86CKXWUpWUp3NtKuqWu9_YXU04sE6ib4,5125 +django/contrib/humanize/locale/fr/LC_MESSAGES/django.po,sha256=SyN1vUt8zDG-iSTDR4OH1B_CbvKMM2YaMJ2_s-FEyog,8812 +django/contrib/humanize/locale/fy/LC_MESSAGES/django.mo,sha256=YQQy7wpjBORD9Isd-p0lLzYrUgAqv770_56-vXa0EOc,476 +django/contrib/humanize/locale/fy/LC_MESSAGES/django.po,sha256=pPvcGgBWiZwQ5yh30OlYs-YZUd_XsFro71T9wErVv0M,4732 +django/contrib/humanize/locale/ga/LC_MESSAGES/django.mo,sha256=AOEiBNOak_KQkBeGyUpTNO12zyg3CiK66h4kMoS15_0,5112 +django/contrib/humanize/locale/ga/LC_MESSAGES/django.po,sha256=jTXihbd-ysAUs0TEKkOBmXJJj69V0cFNOHM6VbcPCWw,11639 +django/contrib/humanize/locale/gd/LC_MESSAGES/django.mo,sha256=wHsBVluXm4DW7iWxGHMHexqG9ovXEvgcaXvsmvkNHSE,5838 +django/contrib/humanize/locale/gd/LC_MESSAGES/django.po,sha256=CmmpKK7me-Ujitgx2IVkOcJyZOvie6XEBS7wCY4xZQ0,9802 +django/contrib/humanize/locale/gl/LC_MESSAGES/django.mo,sha256=LbJABG0-USW2C5CQro6WcPlPwT7I1BfuKGi_VFNhJIU,4345 +django/contrib/humanize/locale/gl/LC_MESSAGES/django.po,sha256=caidyTAFJ5iZ-tpEp0bflpUx0xlaH2jIYmPKxCVzlGE,7772 +django/contrib/humanize/locale/he/LC_MESSAGES/django.mo,sha256=phFZMDohKT86DUtiAlnZslPFwSmpcpxTgZaXb8pGohc,5875 +django/contrib/humanize/locale/he/LC_MESSAGES/django.po,sha256=xhEZYcK-fg_mHMyGCEZXEwbd6FvutaGvkDyHTET-sic,9970 +django/contrib/humanize/locale/hi/LC_MESSAGES/django.mo,sha256=qrzm-6vXIUsxA7nOxa-210-6iO-3BPBj67vKfhTOPrY,4131 +django/contrib/humanize/locale/hi/LC_MESSAGES/django.po,sha256=BrypbKaQGOyY_Gl1-aHXiBVlRqrbSjGfZ2OK8omj_9M,6527 +django/contrib/humanize/locale/hr/LC_MESSAGES/django.mo,sha256=29XTvFJHex31hbu2qsOfl5kOusz-zls9eqlxtvw_H0s,1274 +django/contrib/humanize/locale/hr/LC_MESSAGES/django.po,sha256=OuEH4fJE6Fk-s0BMqoxxdlUAtndvvKK7N8Iy-9BP3qA,5424 +django/contrib/humanize/locale/hsb/LC_MESSAGES/django.mo,sha256=a1DqdiuRfFSfSrD8IvzQmZdzE0dhkxDChFddrmt3fjA,5679 +django/contrib/humanize/locale/hsb/LC_MESSAGES/django.po,sha256=V5aRblcqKii4RXSQO87lyoQwwvxL59T3m4-KOBTx4bc,9648 +django/contrib/humanize/locale/hu/LC_MESSAGES/django.mo,sha256=7ZMxGa5FaUdjRtbawYzwwhWIroON8NNXknQ3frKUabw,4313 +django/contrib/humanize/locale/hu/LC_MESSAGES/django.po,sha256=5yWfXwvJQQuDoENkiytuKXFjsNW-lS2-EFThVnYWHbI,7672 +django/contrib/humanize/locale/hy/LC_MESSAGES/django.mo,sha256=YN4XSM-NGXNJb2R0SMwC8Zk6r7F6LOfFvRgvc4fUNCM,3810 +django/contrib/humanize/locale/hy/LC_MESSAGES/django.po,sha256=JZZibNtKEOepsf5xf495lmCBk8jji5RUJETZlQpxrMo,7597 +django/contrib/humanize/locale/ia/LC_MESSAGES/django.mo,sha256=d0m-FddFnKp08fQYQSC9Wr6M4THVU7ibt3zkIpx_Y_A,4167 +django/contrib/humanize/locale/ia/LC_MESSAGES/django.po,sha256=qX6fAZyn54hmtTU62oJcHF8p4QcYnoO2ZNczVjvjOeE,6067 +django/contrib/humanize/locale/id/LC_MESSAGES/django.mo,sha256=AdUmhfkQOV9Le4jXQyQSyd5f2GqwNt-oqnJV-WVELVw,3885 +django/contrib/humanize/locale/id/LC_MESSAGES/django.po,sha256=lMnTtM27j1EWg1i9d7NzAeueo7mRztGVfNOXtXdZVjw,7021 +django/contrib/humanize/locale/io/LC_MESSAGES/django.mo,sha256=nMu5JhIy8Fjie0g5bT8-h42YElCiS00b4h8ej_Ie-w0,464 +django/contrib/humanize/locale/io/LC_MESSAGES/django.po,sha256=RUs8JkpT0toKOLwdv1oCbcBP298EOk02dkdNSJiC-_A,4720 +django/contrib/humanize/locale/is/LC_MESSAGES/django.mo,sha256=D6ElUYj8rODRsZwlJlH0QyBSM44sVmuBCNoEkwPVxko,3805 +django/contrib/humanize/locale/is/LC_MESSAGES/django.po,sha256=1VddvtkhsK_5wmpYIqEFqFOo-NxIBnL9wwW74Tw9pbw,8863 +django/contrib/humanize/locale/it/LC_MESSAGES/django.mo,sha256=Zw8reudMUlPGC3eQ-CpsGYHX-FtNrAc5SxgTdmIrUC0,5374 +django/contrib/humanize/locale/it/LC_MESSAGES/django.po,sha256=wJzT-2ygufGLMIULd7afg1sZLQKnwQ55NZ2eAnwIY8M,9420 +django/contrib/humanize/locale/ja/LC_MESSAGES/django.mo,sha256=x8AvfUPBBJkGtE0jvAP4tLeZEByuyo2H4V_UuLoCEmw,3907 +django/contrib/humanize/locale/ja/LC_MESSAGES/django.po,sha256=G2yTPZq6DxgzPV5uJ6zvMK4o3aiuLWbl4vXPH7ylUhc,6919 +django/contrib/humanize/locale/ka/LC_MESSAGES/django.mo,sha256=UeUbonYTkv1d2ljC0Qj8ZHw-59zHu83fuMvnME9Fkmw,4878 +django/contrib/humanize/locale/ka/LC_MESSAGES/django.po,sha256=-eAMexwjm8nSB4ARJU3f811UZnuatHKIFf8FevpJEpo,9875 +django/contrib/humanize/locale/kk/LC_MESSAGES/django.mo,sha256=jujbUM0jOpt3Mw8zN4LSIIkxCJ0ihk_24vR0bXoux78,2113 +django/contrib/humanize/locale/kk/LC_MESSAGES/django.po,sha256=hjZg_NRE9xMA5uEa2mVSv1Hr4rv8inG9es1Yq7uy9Zc,8283 +django/contrib/humanize/locale/km/LC_MESSAGES/django.mo,sha256=mfXs9p8VokORs6JqIfaSSnQshZEhS90rRFhOIHjW7CI,459 +django/contrib/humanize/locale/km/LC_MESSAGES/django.po,sha256=JQBEHtcy-hrV_GVWIjvUJyOf3dZ5jUzzN8DUTAbHKUg,4351 +django/contrib/humanize/locale/kn/LC_MESSAGES/django.mo,sha256=Oq3DIPjgCqkn8VZMb6ael7T8fQ7LnWobPPAZKQSFHl4,461 +django/contrib/humanize/locale/kn/LC_MESSAGES/django.po,sha256=CAJ0etMlQF3voPYrxIRr5ChAwUYO7wI42n5kjpIEVjA,4359 +django/contrib/humanize/locale/ko/LC_MESSAGES/django.mo,sha256=mWmQEoe0MNVn3sNqsz6CBc826x3KIpOL53ziv6Ekf7c,3891 +django/contrib/humanize/locale/ko/LC_MESSAGES/django.po,sha256=UUxIUYM332DOZinJrqOUtQvHfCCHkodFhENDVWj3dpk,7003 +django/contrib/humanize/locale/ky/LC_MESSAGES/django.mo,sha256=jDu1bVgJMDpaZ0tw9-wdkorvZxDdRzcuzdeC_Ot7rUs,4177 +django/contrib/humanize/locale/ky/LC_MESSAGES/django.po,sha256=MEHbKMLIiFEG7BlxsNVF60viXSnlk5iqlFCH3hgamH0,7157 +django/contrib/humanize/locale/lb/LC_MESSAGES/django.mo,sha256=xokesKl7h7k9dXFKIJwGETgwx1Ytq6mk2erBSxkgY-o,474 +django/contrib/humanize/locale/lb/LC_MESSAGES/django.po,sha256=_y0QFS5Kzx6uhwOnzmoHtCrbufMrhaTLsHD0LfMqtcM,4730 +django/contrib/humanize/locale/lt/LC_MESSAGES/django.mo,sha256=O0C-tPhxWNW5J4tCMlB7c7shVjNO6dmTURtIpTVO9uc,7333 +django/contrib/humanize/locale/lt/LC_MESSAGES/django.po,sha256=M5LlRxC1KWh1-3fwS93UqTijFuyRENmQJXfpxySSKik,12086 +django/contrib/humanize/locale/lv/LC_MESSAGES/django.mo,sha256=3gEzmKBtYsFz9wvLw0ltiir91CDLxhK3IG2j55-uM7Y,5033 +django/contrib/humanize/locale/lv/LC_MESSAGES/django.po,sha256=yfeBxpH2J49xHDzZUZI3cK5ms4QbWq0gtTmhj8ejAjE,8836 +django/contrib/humanize/locale/mk/LC_MESSAGES/django.mo,sha256=htUgd6rcaeRPDf6UrEb18onz-Ayltw9LTvWRgEkXm08,4761 +django/contrib/humanize/locale/mk/LC_MESSAGES/django.po,sha256=Wl9Rt8j8WA_0jyxKCswIovSiCQD-ZWFYXbhFsCUKIWo,6665 +django/contrib/humanize/locale/ml/LC_MESSAGES/django.mo,sha256=5As-FXkEJIYetmV9dMtzLtsRPTOm1oUgyx-oeTH_guY,4655 +django/contrib/humanize/locale/ml/LC_MESSAGES/django.po,sha256=I9_Ln0C1nSj188_Zdq9Vy6lC8aLzg_YdNc5gy9hNGjE,10065 +django/contrib/humanize/locale/mn/LC_MESSAGES/django.mo,sha256=MSw9wpCRQAX7lLWEW-Mamk_bR5R8lE_WqcD1G2mKbxI,4863 +django/contrib/humanize/locale/mn/LC_MESSAGES/django.po,sha256=xA4gODU33-hK6BXdqUun7qfjNuv6Dzq63FPVSQImfK4,8241 +django/contrib/humanize/locale/mr/LC_MESSAGES/django.mo,sha256=sJAjSaUecl5hdetpBm-rCjVrkWxNhq3IFsE1MEYmq7c,1506 +django/contrib/humanize/locale/mr/LC_MESSAGES/django.po,sha256=lHmcv7LnyXWBdh_WRsL4GPUybIMLRlIoJlHBM3_3EWA,6693 +django/contrib/humanize/locale/ms/LC_MESSAGES/django.mo,sha256=Bcictup-1bGKm0FIa3CeGNvrHg8VyxsqUHzWI7UMscs,3839 +django/contrib/humanize/locale/ms/LC_MESSAGES/django.po,sha256=UQEUC2iZxhtrWim96GaEK1VAKxAC0fTQIghg4Zx4R3Q,6774 +django/contrib/humanize/locale/my/LC_MESSAGES/django.mo,sha256=55CWHz34sy9k6TfOeVI9GYvE9GRa3pjSRE6DSPk9uQ8,3479 +django/contrib/humanize/locale/my/LC_MESSAGES/django.po,sha256=jCiDhSqARfqKcMLEHJd-Xe6zo3Uc9QpiCh3BbAAA5UE,5433 +django/contrib/humanize/locale/nb/LC_MESSAGES/django.mo,sha256=957mOf_wFBOTjpcevsRz5tQ6IQ4PJnZZfJUETUgF23s,4318 +django/contrib/humanize/locale/nb/LC_MESSAGES/django.po,sha256=G_4pAxT3QZhC-wmWKIhEkFf0IRBn6gKRQZvx0spqjuk,7619 +django/contrib/humanize/locale/ne/LC_MESSAGES/django.mo,sha256=YFT2D-yEkUdJBO2GfuUowau1OZQA5mS86CZvMzH38Rk,3590 +django/contrib/humanize/locale/ne/LC_MESSAGES/django.po,sha256=SN7yH65hthOHohnyEmQUjXusRTDRjxWJG_kuv5g2Enk,9038 +django/contrib/humanize/locale/nl/LC_MESSAGES/django.mo,sha256=RxwgVgdHvfFirimjPrpDhzqmI1Z9soDC--raoAzgBkw,4311 +django/contrib/humanize/locale/nl/LC_MESSAGES/django.po,sha256=M7dVQho17p71Ud6imsQLGMiBisLrVNEZNP4ufpkEJnM,7872 +django/contrib/humanize/locale/nn/LC_MESSAGES/django.mo,sha256=wyJDAGJWgvyBYZ_-UQnBQ84-Jelk5forKfk7hMFDGpQ,4336 +django/contrib/humanize/locale/nn/LC_MESSAGES/django.po,sha256=zuKg53XCX-C6Asc9M04BKZVVw1X6u5p5hvOXxc0AXnM,7651 +django/contrib/humanize/locale/os/LC_MESSAGES/django.mo,sha256=BwS3Mj7z_Fg5s7Qm-bGLVhzYLZ8nPgXoB0gXLnrMGWc,3902 +django/contrib/humanize/locale/os/LC_MESSAGES/django.po,sha256=CGrxyL5l-5HexruOc7QDyRbum7piADf-nY8zjDP9wVM,6212 +django/contrib/humanize/locale/pa/LC_MESSAGES/django.mo,sha256=TH1GkAhaVVLk2jrcqAmdxZprWyikAX6qMP0eIlr2tWM,1569 +django/contrib/humanize/locale/pa/LC_MESSAGES/django.po,sha256=_7oP0Hn-IU7IPLv_Qxg_wstLEdhgWNBBTCWYwSycMb0,5200 +django/contrib/humanize/locale/pl/LC_MESSAGES/django.mo,sha256=0QheMbF3Y0Q_sxZlN2wAYJRQyK3K_uq6ttVr7wCc33w,5596 +django/contrib/humanize/locale/pl/LC_MESSAGES/django.po,sha256=6wX50O68aIyKiP6CcyLMXZ3xuUnAzasFPIg_8deJQBY,9807 +django/contrib/humanize/locale/pt/LC_MESSAGES/django.mo,sha256=El9Sdr3kXS-yTol_sCg1dquxf0ThDdWyrWGjjim9Dj4,5408 +django/contrib/humanize/locale/pt/LC_MESSAGES/django.po,sha256=XudOc67ybF_fminrTR2XOCKEKwqB5FX14pl3clCNXGE,9281 +django/contrib/humanize/locale/pt_BR/LC_MESSAGES/django.mo,sha256=F5-AD4Fohf9wDyP_mqSJHvcKqIKIJsaxGuXGiHYGLHQ,5092 +django/contrib/humanize/locale/pt_BR/LC_MESSAGES/django.po,sha256=O1eVw8R8hL0N_XtTp4sdZbc5MxUNdxfGPzCT3U7QcxM,9089 +django/contrib/humanize/locale/ro/LC_MESSAGES/django.mo,sha256=vP6o72bsgKPsbKGwH0PU8Xyz9BnQ_sPWT3EANLT2wRk,6188 +django/contrib/humanize/locale/ro/LC_MESSAGES/django.po,sha256=JZiW6Y9P5JdQe4vgCvcFg35kFa8bSX0lU_2zdeudQP0,10575 +django/contrib/humanize/locale/ru/LC_MESSAGES/django.mo,sha256=tVtMvbDmHtoXFav2cXzhHpHmT-4-593Vo7kE5sd-Agc,6733 +django/contrib/humanize/locale/ru/LC_MESSAGES/django.po,sha256=0OWESEN33yMIcRUaX_oSQUuDidhbzgKpdivwAS7kNgs,11068 +django/contrib/humanize/locale/sk/LC_MESSAGES/django.mo,sha256=6l7T4rvVb8dPl0-6vwrq5K1QqJ06IdFKxEl4EGzN8Ns,5541 +django/contrib/humanize/locale/sk/LC_MESSAGES/django.po,sha256=Edsza_V5MJD_HadigUZWZoFLjl8556KFW9tbuHVHL3g,9657 +django/contrib/humanize/locale/sl/LC_MESSAGES/django.mo,sha256=yonGwvQKyqpZ_NLTpynDdS6q4yg3eafL1K5MFmnGw7o,4967 +django/contrib/humanize/locale/sl/LC_MESSAGES/django.po,sha256=-nzc9Rk9f3U_Rpze_fdJrKR-_CglPJ0_GryNUDD80jI,9580 +django/contrib/humanize/locale/sq/LC_MESSAGES/django.mo,sha256=1XXRe0nurGUUxI7r7gbSIuluRuza7VOeNdkIVX3LIFU,5280 +django/contrib/humanize/locale/sq/LC_MESSAGES/django.po,sha256=BS-5o3aG8Im9dWTkx4E_IbbeTRFcjjohinz1823ZepI,9127 +django/contrib/humanize/locale/sr/LC_MESSAGES/django.mo,sha256=Zsv4ajqk9baWkNItJjkEsZP-OO-LuIg_5QopKgVesUw,5718 +django/contrib/humanize/locale/sr/LC_MESSAGES/django.po,sha256=AZddC4WvARQd3Qd-atFONB8KbzrNJCfiQcdP16m-EyM,9363 +django/contrib/humanize/locale/sr_Latn/LC_MESSAGES/django.mo,sha256=8TIBiJ_6G0MTfEw8mTYHhig8dLZCpdjOBzP2ivQcSJ4,2613 +django/contrib/humanize/locale/sr_Latn/LC_MESSAGES/django.po,sha256=2pj14ryWKbxvcznBSK83hFvGJ_kn2EEr3w0Jhu1lVXI,10316 +django/contrib/humanize/locale/sv/LC_MESSAGES/django.mo,sha256=7OABdxvdZvKB9j1o99UiecoTXaVGn3XmXnU5xCNov8s,4333 +django/contrib/humanize/locale/sv/LC_MESSAGES/django.po,sha256=71tFrQzwtwzYfeC2BG0v8dZNkSEMbM-tAC5_z2AElLM,7876 +django/contrib/humanize/locale/sw/LC_MESSAGES/django.mo,sha256=cxjSUqegq1JX08xIAUgqq9ByP-HuqaXuxWM8Y2gHdB4,4146 +django/contrib/humanize/locale/sw/LC_MESSAGES/django.po,sha256=bPYrLJ2yY_lZ3y1K-RguNi-qrxq2r-GLlsz1gZcm2A8,6031 +django/contrib/humanize/locale/ta/LC_MESSAGES/django.mo,sha256=1X2vH0iZOwM0uYX9BccJUXqK-rOuhcu5isRzMpnjh2o,466 +django/contrib/humanize/locale/ta/LC_MESSAGES/django.po,sha256=8x1lMzq2KOJveX92ADSuqNmXGIEYf7fZ1JfIJPysS04,4722 +django/contrib/humanize/locale/te/LC_MESSAGES/django.mo,sha256=iKd4dW9tan8xPxgaSoenIGp1qQpvSHHXUw45Tj2ATKQ,1327 +django/contrib/humanize/locale/te/LC_MESSAGES/django.po,sha256=FQdjWKMsiv-qehYZ4AtN9iKRf8Rifzcm5TZzMkQVfQI,5103 +django/contrib/humanize/locale/tg/LC_MESSAGES/django.mo,sha256=1Fiqat0CZSyExRXRjRCBS0AFzwy0q1Iba-2RVnrXoZQ,1580 +django/contrib/humanize/locale/tg/LC_MESSAGES/django.po,sha256=j2iczgQDbqzpthKAAlMt1Jk7gprYLqZ1Ya0ASr2SgD0,7852 +django/contrib/humanize/locale/th/LC_MESSAGES/django.mo,sha256=jT7wGhYWP9HHwOvtr2rNPStiOgZW-rGMcO36w1U8Y4c,3709 +django/contrib/humanize/locale/th/LC_MESSAGES/django.po,sha256=ZO3_wU7z0VASS5E8RSLEtmTveMDjJ0O8QTynb2-jjt0,8318 +django/contrib/humanize/locale/tk/LC_MESSAGES/django.mo,sha256=cI2Ukp5kVTsUookoxyDD9gZKdxh4YezfRWYFBL7KuRU,4419 +django/contrib/humanize/locale/tk/LC_MESSAGES/django.po,sha256=6Qaxa03R4loH0FWQ6PCytT3Yz3LZt7UGTd01WVnHOIk,7675 +django/contrib/humanize/locale/tr/LC_MESSAGES/django.mo,sha256=D4ChMLE1Uz921NIF_Oe1vNkYAGfRpQuC8xANFwtlygE,4319 +django/contrib/humanize/locale/tr/LC_MESSAGES/django.po,sha256=4PjW65seHF9SsWnLv47JhgYPt0Gvzr-7_Ejech3d3ak,7754 +django/contrib/humanize/locale/tt/LC_MESSAGES/django.mo,sha256=z8VgtMhlfyDo7bERDfrDmcYV5aqOeBY7LDgqa5DRxDM,3243 +django/contrib/humanize/locale/tt/LC_MESSAGES/django.po,sha256=j_tRbg1hzLBFAmPQt0HoN-_WzWFtA07PloCkqhvNkcY,5201 +django/contrib/humanize/locale/udm/LC_MESSAGES/django.mo,sha256=CNmoKj9Uc0qEInnV5t0Nt4ZnKSZCRdIG5fyfSsqwky4,462 +django/contrib/humanize/locale/udm/LC_MESSAGES/django.po,sha256=AR55jQHmMrbA6RyHGOtqdvUtTFlxWnqvfMy8vZK25Bo,4354 +django/contrib/humanize/locale/ug/LC_MESSAGES/django.mo,sha256=_GtRGNtdwZ6lU2gZc5jN9nSDB15bLBMYdhiwHlKxOOc,4883 +django/contrib/humanize/locale/ug/LC_MESSAGES/django.po,sha256=x9DJRBObVq8C3orGfj737v2gCHcpqaWUXMEeCMkumco,8156 +django/contrib/humanize/locale/uk/LC_MESSAGES/django.mo,sha256=wQOJu-zKyuCazul-elFLZc-iKw2Zea7TGb90OVGZYkQ,6991 +django/contrib/humanize/locale/uk/LC_MESSAGES/django.po,sha256=hxEufGt-NOgSFc5T9OzxCibcfqkhWD7zxhQljoUQssQ,11249 +django/contrib/humanize/locale/ur/LC_MESSAGES/django.mo,sha256=MF9uX26-4FFIz-QpDUbUHUNLQ1APaMLQmISMIaPsOBE,1347 +django/contrib/humanize/locale/ur/LC_MESSAGES/django.po,sha256=D5UhcPEcQ16fsBEdkk_zmpjIF6f0gEv0P86z_pK_1eA,5015 +django/contrib/humanize/locale/uz/LC_MESSAGES/django.mo,sha256=HDah_1qqUz5m_ABBVIEML3WMR2xyomFckX82i6b3n4k,1915 +django/contrib/humanize/locale/uz/LC_MESSAGES/django.po,sha256=Ql3GZOhuoVgS0xHEzxjyYkOWQUyi_jiizfAXBp2Y4uw,7296 +django/contrib/humanize/locale/vi/LC_MESSAGES/django.mo,sha256=ZUK_Na0vnfdhjo0MgnBWnGFU34sxcMf_h0MeyuysKG8,3646 +django/contrib/humanize/locale/vi/LC_MESSAGES/django.po,sha256=DzRpXObt9yP5RK_slWruaIhnVI0-JXux2hn_uGsVZiE,5235 +django/contrib/humanize/locale/zh_Hans/LC_MESSAGES/django.mo,sha256=YgeAjXHMV1rXNNIrlDu_haxnKB0hxU5twJ86LMR10k8,3844 +django/contrib/humanize/locale/zh_Hans/LC_MESSAGES/django.po,sha256=JGfRVW_5UqwyI2mK_WRK8xDPzwBAO2q_mGsGzf89a88,7122 +django/contrib/humanize/locale/zh_Hant/LC_MESSAGES/django.mo,sha256=JQmImGUND9MONKqqLSCvvbbIT_TigIU6h-twN1qlfJc,3737 +django/contrib/humanize/locale/zh_Hant/LC_MESSAGES/django.po,sha256=u_JB8_pFJofUoiGtcGh1xemLouLePvHua5J_npnJ_Q8,6826 +django/contrib/humanize/templatetags/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/contrib/humanize/templatetags/__pycache__/__init__.cpython-312.pyc,, +django/contrib/humanize/templatetags/__pycache__/humanize.cpython-312.pyc,, +django/contrib/humanize/templatetags/humanize.py,sha256=1vF9UeTaKuJSswwHxZvcb2Dx2rv6SFLGGcJ3AyzMLfc,12350 +django/contrib/messages/__init__.py,sha256=_5b6kMxWt0TqW5ze5vZ-iqYEQfaQiAl28x2q9KRaMz4,171 +django/contrib/messages/__pycache__/__init__.cpython-312.pyc,, +django/contrib/messages/__pycache__/api.cpython-312.pyc,, +django/contrib/messages/__pycache__/apps.cpython-312.pyc,, +django/contrib/messages/__pycache__/constants.cpython-312.pyc,, +django/contrib/messages/__pycache__/context_processors.cpython-312.pyc,, +django/contrib/messages/__pycache__/middleware.cpython-312.pyc,, +django/contrib/messages/__pycache__/test.cpython-312.pyc,, +django/contrib/messages/__pycache__/utils.cpython-312.pyc,, +django/contrib/messages/__pycache__/views.cpython-312.pyc,, +django/contrib/messages/api.py,sha256=3DbnVG5oOBdg499clMU8l2hxCXMXB6S03-HCKVuBXjA,3250 +django/contrib/messages/apps.py,sha256=W_nya0lzXYBew83hqP6I8gg6XnaRlh-gmN-pYpDGN84,611 +django/contrib/messages/constants.py,sha256=JD4TpaR4C5G0oxIh4BmrWiVmCACv7rnVgZSpJ8Rmzeg,312 +django/contrib/messages/context_processors.py,sha256=xMrgYeX6AcT_WwS9AYKNDDstbvAwE7_u1ssDVLN_bbg,354 +django/contrib/messages/middleware.py,sha256=2mxncCpJVUgLtjouUGSVl39mTF-QskQpWo2jCOOqV8A,986 +django/contrib/messages/storage/__init__.py,sha256=gXDHbQ9KgQdfhYOla9Qj59_SlE9WURQiKzIA0cFH0DQ,392 +django/contrib/messages/storage/__pycache__/__init__.cpython-312.pyc,, +django/contrib/messages/storage/__pycache__/base.cpython-312.pyc,, +django/contrib/messages/storage/__pycache__/cookie.cpython-312.pyc,, +django/contrib/messages/storage/__pycache__/fallback.cpython-312.pyc,, +django/contrib/messages/storage/__pycache__/session.cpython-312.pyc,, +django/contrib/messages/storage/base.py,sha256=T-bcy6HdwRbEKNIuO5fEJZ1EUj3rTHWXRg1oxqRahGc,6082 +django/contrib/messages/storage/cookie.py,sha256=6r-z_MyYImgEC5LPvjOdp64xwkiV_ib97Sg4N4eXjxY,8678 +django/contrib/messages/storage/fallback.py,sha256=K5CrVJfUDakMjIcqSRt1WZd_1Xco1Bc2AQM3O3ld9aA,2093 +django/contrib/messages/storage/session.py,sha256=kvdVosbBAvI3XBA0G4AFKf0vxLleyzlwbGEgl60DfMQ,1764 +django/contrib/messages/test.py,sha256=8PJVFT2ICdptbMZSBrZC0ZLC3AJzL7XUK2Vz4f4wXuk,332 +django/contrib/messages/utils.py,sha256=_oItQILchdwdXH08SIyZ-DBdYi7q_uobHQajWwmAeUw,256 +django/contrib/messages/views.py,sha256=I_7C4yr-YLkhTEWx3iuhixG7NrKuyuSDG_CVg-EYRD8,524 +django/contrib/postgres/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/contrib/postgres/__pycache__/__init__.cpython-312.pyc,, +django/contrib/postgres/__pycache__/apps.cpython-312.pyc,, +django/contrib/postgres/__pycache__/constraints.cpython-312.pyc,, +django/contrib/postgres/__pycache__/expressions.cpython-312.pyc,, +django/contrib/postgres/__pycache__/functions.cpython-312.pyc,, +django/contrib/postgres/__pycache__/indexes.cpython-312.pyc,, +django/contrib/postgres/__pycache__/lookups.cpython-312.pyc,, +django/contrib/postgres/__pycache__/operations.cpython-312.pyc,, +django/contrib/postgres/__pycache__/search.cpython-312.pyc,, +django/contrib/postgres/__pycache__/serializers.cpython-312.pyc,, +django/contrib/postgres/__pycache__/signals.cpython-312.pyc,, +django/contrib/postgres/__pycache__/utils.cpython-312.pyc,, +django/contrib/postgres/__pycache__/validators.cpython-312.pyc,, +django/contrib/postgres/aggregates/__init__.py,sha256=QCznqMKqPbpraxSi1Y8-B7_MYlL42F1kEWZ1HeLgTKs,65 +django/contrib/postgres/aggregates/__pycache__/__init__.cpython-312.pyc,, +django/contrib/postgres/aggregates/__pycache__/general.cpython-312.pyc,, +django/contrib/postgres/aggregates/__pycache__/mixins.cpython-312.pyc,, +django/contrib/postgres/aggregates/__pycache__/statistics.cpython-312.pyc,, +django/contrib/postgres/aggregates/general.py,sha256=lFZkt_iDSlfXQ2SrcVj1Xr6h_GA4npskBJYzWuBF-kE,1496 +django/contrib/postgres/aggregates/mixins.py,sha256=7do4eji0SpVqvlLsI4E_Ap8EV6tfK39ybN5caV9wDLo,1716 +django/contrib/postgres/aggregates/statistics.py,sha256=xSWk5Z5ZVpM2LSaMgP97pxcijOnPHiPATe3X45poXCI,1511 +django/contrib/postgres/apps.py,sha256=sfjoL-2VJrFzrv0CC3S4WGWZblzR_4BwFDm9bEHs8B0,3692 +django/contrib/postgres/constraints.py,sha256=qWcKCH3_5mYLooCgq173UQGXSHMlhupB9dyOq_rsNs0,9789 +django/contrib/postgres/expressions.py,sha256=fo5YASHJtIjexadqskuhYYk4WutofxzymYsivWWJS84,405 +django/contrib/postgres/fields/__init__.py,sha256=Xo8wuWPwVNOkKY-EwV9U1zusQ2DjMXXtL7_8R_xAi5s,148 +django/contrib/postgres/fields/__pycache__/__init__.cpython-312.pyc,, +django/contrib/postgres/fields/__pycache__/array.cpython-312.pyc,, +django/contrib/postgres/fields/__pycache__/citext.cpython-312.pyc,, +django/contrib/postgres/fields/__pycache__/hstore.cpython-312.pyc,, +django/contrib/postgres/fields/__pycache__/jsonb.cpython-312.pyc,, +django/contrib/postgres/fields/__pycache__/ranges.cpython-312.pyc,, +django/contrib/postgres/fields/__pycache__/utils.cpython-312.pyc,, +django/contrib/postgres/fields/array.py,sha256=SsEBOHkrwr_ery0-GipbKbnK3IcmmoX9BQLHOMq-J-A,12682 +django/contrib/postgres/fields/citext.py,sha256=ytV2yAIwGvElHTAfH4BiLV-2DZ5otff8SmwmcqF2MVE,1363 +django/contrib/postgres/fields/hstore.py,sha256=WWWEoBfMtAjd226vvjFtGqbHMHFCjSly-BEhm9UN1qQ,3276 +django/contrib/postgres/fields/jsonb.py,sha256=ncMGT6WY70lCbcmhwtu2bjRmfDMUIvCr76foUv7tqv0,406 +django/contrib/postgres/fields/ranges.py,sha256=IbjAQC7IdWuISqHdBXrraiOGPzUP_4pHHcnL8VuYZRs,11417 +django/contrib/postgres/fields/utils.py,sha256=TV-Aj9VpBb13I2iuziSDURttZtz355XakxXnFwvtGio,95 +django/contrib/postgres/forms/__init__.py,sha256=NjENn2-C6BcXH4T8YeC0K2AbDk8MVT8tparL3Q4OF6g,89 +django/contrib/postgres/forms/__pycache__/__init__.cpython-312.pyc,, +django/contrib/postgres/forms/__pycache__/array.cpython-312.pyc,, +django/contrib/postgres/forms/__pycache__/hstore.cpython-312.pyc,, +django/contrib/postgres/forms/__pycache__/ranges.cpython-312.pyc,, +django/contrib/postgres/forms/array.py,sha256=LRUU3fxXePptMh3lolxhX4sbMjNSvnzMvNgcJolKfZc,8401 +django/contrib/postgres/forms/hstore.py,sha256=MXXS4LdrueKIlM3w-_QGVvV3MZXMx1TR_4NrpChAtQo,1787 +django/contrib/postgres/forms/ranges.py,sha256=cKAeWvRISPLXIPhm2C57Lu9GoIlAd1xiRxzns69XehA,3652 +django/contrib/postgres/functions.py,sha256=7v6J01QQvX70KFyg9hDc322PgvT62xZqWlzp_vrl8bA,252 +django/contrib/postgres/indexes.py,sha256=pKkozoRHWZYMml8SSbLJ5KBJGnsi36wrXu6fvg1hBdg,8535 +django/contrib/postgres/jinja2/postgres/widgets/split_array.html,sha256=AzaPLlNLg91qkVQwwtAJxwOqDemrtt_btSkWLpboJDs,54 +django/contrib/postgres/locale/af/LC_MESSAGES/django.mo,sha256=kDeL_SZezO8DRNMRh2oXz94YtAK1ZzPiK5dftqAonKI,2841 +django/contrib/postgres/locale/af/LC_MESSAGES/django.po,sha256=ALKUHbZ8DE6IH80STMJhGOoyHB8HSSxI4PlX_SfxJWc,3209 +django/contrib/postgres/locale/ar/LC_MESSAGES/django.mo,sha256=UTBknYC-W7nclTrBCEiCpTglZxZQY80UqGki8I6j3EM,4294 +django/contrib/postgres/locale/ar/LC_MESSAGES/django.po,sha256=_PgF2T3ylO4vnixVoKRsgmpPDHO-Qhj3mShHtHeSna0,4821 +django/contrib/postgres/locale/ar_DZ/LC_MESSAGES/django.mo,sha256=fND1NtGTmEl7Rukt_VlqJeExdJjphBygmI-qJmE83P0,4352 +django/contrib/postgres/locale/ar_DZ/LC_MESSAGES/django.po,sha256=Z9y3h6lDnbwD4JOn7OACLjEZqNY8OpEwuzoUD8FSdwA,4868 +django/contrib/postgres/locale/az/LC_MESSAGES/django.mo,sha256=85wf8nNlReuPu89B_kb632QFKEdtL8ZVyQdlV_f-Sdo,2899 +django/contrib/postgres/locale/az/LC_MESSAGES/django.po,sha256=HRF6LxxcKtmLEA1dsYQMU4oG3P61jbQbwG6x_Wy0t4w,3284 +django/contrib/postgres/locale/be/LC_MESSAGES/django.mo,sha256=tYaaEbBaVxIgxC9qUAuE3YpHJa-aUu9ufFuJLa8my-s,4143 +django/contrib/postgres/locale/be/LC_MESSAGES/django.po,sha256=CL9BslCvHOvwjTBbCEswW8ISH72gSAyW5Dc-zoXI670,4643 +django/contrib/postgres/locale/bg/LC_MESSAGES/django.mo,sha256=A_WOYkzm2QwAo8ZXCKg7jOOiM7bEwUT4cSsSlyC6sWQ,3529 +django/contrib/postgres/locale/bg/LC_MESSAGES/django.po,sha256=TEDRfX5DWADwlgYqScP1hGm2hq2_zUGzIBmKY8WLVLQ,3993 +django/contrib/postgres/locale/ca/LC_MESSAGES/django.mo,sha256=XR1UEZV9AXKFz7XrchjRkd-tEdjnlmccW_I7XANyMns,2904 +django/contrib/postgres/locale/ca/LC_MESSAGES/django.po,sha256=5wPLvkODU_501cHPZ7v0n89rmFrsuctt7T8dUBMfQ0Q,3430 +django/contrib/postgres/locale/ckb/LC_MESSAGES/django.mo,sha256=FQsR4nG0r8RfJ4rkD58XyWX-x7ZLkeg0VbZbSzDB2L0,3414 +django/contrib/postgres/locale/ckb/LC_MESSAGES/django.po,sha256=YStPyf6Gy68ydbzvtYcU6b_CV3h4JzJ3aYOQqccI9zI,3764 +django/contrib/postgres/locale/cs/LC_MESSAGES/django.mo,sha256=_EmT9NnoX3xeRU-AI5sPlAszjzC0XwryWOmj8d07ox8,3388 +django/contrib/postgres/locale/cs/LC_MESSAGES/django.po,sha256=dkWVucs3-avEVtk_Xh5p-C8Tvw_oKDASdgab_-ByP-w,3884 +django/contrib/postgres/locale/da/LC_MESSAGES/django.mo,sha256=VaTePWY3W7YRW-CkTUx6timYDXEYOFRFCkg3F36_k_I,2886 +django/contrib/postgres/locale/da/LC_MESSAGES/django.po,sha256=5j5xI-yKORhnywIACpjvMQA6yHj4aHMYiiN4KVSmBMM,3344 +django/contrib/postgres/locale/de/LC_MESSAGES/django.mo,sha256=iTfG4OxvwSG32U_PQ0Tmtl38v83hSjFa2W0J8Sw0NUE,3078 +django/contrib/postgres/locale/de/LC_MESSAGES/django.po,sha256=GkF6wBg7JAvAB8YExwOx4hzpLr1r2K6HsvSLYfyojow,3611 +django/contrib/postgres/locale/dsb/LC_MESSAGES/django.mo,sha256=zZa1kLFCKar4P1xVNpJ0BTXm4I-xcNi_e8IY7n8Aa4w,3605 +django/contrib/postgres/locale/dsb/LC_MESSAGES/django.po,sha256=5vnAeH9tF9H9xL2nqfwc0MLlhI4hnNr45x2NXlw8owo,4061 +django/contrib/postgres/locale/el/LC_MESSAGES/django.mo,sha256=NmzROkTfSbioGv8exM3UdMDnRAxR65YMteGv9Nhury4,3583 +django/contrib/postgres/locale/el/LC_MESSAGES/django.po,sha256=4WuswUwrInAh-OPX9k7gDdLb-oMKp1vQFUGvfm0ej00,4144 +django/contrib/postgres/locale/en/LC_MESSAGES/django.mo,sha256=U0OV81NfbuNL9ctF-gbGUG5al1StqN-daB-F-gFBFC8,356 +django/contrib/postgres/locale/en/LC_MESSAGES/django.po,sha256=jrbHgf4TLTbEAaYV9-briB5JoE7sBWTn9r6aaRtpn54,2862 +django/contrib/postgres/locale/en_AU/LC_MESSAGES/django.mo,sha256=WA0RSssD8ljI16g6DynQZQLQhd_0XR8ilrnJnepsIFg,2839 +django/contrib/postgres/locale/en_AU/LC_MESSAGES/django.po,sha256=4JASYUpYlQlSPREPvMxFBqDpDhprlkI1GpAqTJrmb10,3215 +django/contrib/postgres/locale/eo/LC_MESSAGES/django.mo,sha256=1wqM_IVO8Dl9AefzvWYuoS4eNTrBg7LDH6XUMovKi9A,2742 +django/contrib/postgres/locale/eo/LC_MESSAGES/django.po,sha256=r2tpOblfLAAHMacDWU-OVXTQus_vvAPMjUzVfrV_T7U,3217 +django/contrib/postgres/locale/es/LC_MESSAGES/django.mo,sha256=O2Tdel44oxmQ13ZcwMwK3QPxUPChHdUzVKg2pLCPoqo,3163 +django/contrib/postgres/locale/es/LC_MESSAGES/django.po,sha256=YPjvjmvpS69FuNmPm-7Z1K1Eg_W01JwRHNrWkbKzVZ8,3794 +django/contrib/postgres/locale/es_AR/LC_MESSAGES/django.mo,sha256=zIN-1vsrChWXLDuGrzs61LbBuOwsyifWcvo9NrYCy2k,3140 +django/contrib/postgres/locale/es_AR/LC_MESSAGES/django.po,sha256=1seAy6OHEKG4fDV4NwKQyGfkjT29zjgwvXZ85u1VNtw,3506 +django/contrib/postgres/locale/es_CO/LC_MESSAGES/django.mo,sha256=Q2eOegYKQFY3fAKZCX7VvZAN6lT304W51aGl0lzkbLU,2484 +django/contrib/postgres/locale/es_CO/LC_MESSAGES/django.po,sha256=bbgOn34B7CSq1Kf2IrJh6oRJWPur_Smc4ebljIxAFGE,3233 +django/contrib/postgres/locale/es_MX/LC_MESSAGES/django.mo,sha256=l6WdS59mDfjsV9EMULjKP2DhXR7x3bYax1iokL-AXcU,689 +django/contrib/postgres/locale/es_MX/LC_MESSAGES/django.po,sha256=_-jzhIT71zV539_4SUbwvOXfDHkxRy1FDGdx23iB7B4,2283 +django/contrib/postgres/locale/et/LC_MESSAGES/django.mo,sha256=oPGqGUQhU9xE7j6hQZSVdC-be2WV-_BNrSAaN4csFR4,2886 +django/contrib/postgres/locale/et/LC_MESSAGES/django.po,sha256=xKkb-0CQCAn37xe0G2jfQmjg2kuYBmXB5yBpTA5lYNI,3404 +django/contrib/postgres/locale/eu/LC_MESSAGES/django.mo,sha256=UG7x642-n3U7mamXuNHD66a_mR0agX72xSwBD3PpyJU,2883 +django/contrib/postgres/locale/eu/LC_MESSAGES/django.po,sha256=dAx6nlRd4FF_8i7Xeylwvj4HkEDKi3swFenkdJkDawU,3321 +django/contrib/postgres/locale/fa/LC_MESSAGES/django.mo,sha256=uLh9fJtCSKg5eaj9uGP2muN_71aFxpZwOjRHtnZhPik,3308 +django/contrib/postgres/locale/fa/LC_MESSAGES/django.po,sha256=adN7bh9Q_R0Wzlf2fWaQnTtvxo0NslyoHH5t5V0eeMM,3845 +django/contrib/postgres/locale/fi/LC_MESSAGES/django.mo,sha256=gB2z3nI8Bz-km3DngYfJulwelHSlWgZeBXlj5yWyA08,2943 +django/contrib/postgres/locale/fi/LC_MESSAGES/django.po,sha256=LNVTHv4-FWT5KOre5qTwLEpKIQbaSIusFH2uUmbwYBg,3315 +django/contrib/postgres/locale/fr/LC_MESSAGES/django.mo,sha256=02ug8j0VpkPC2tRDkXrK2snj91M68Ju29PUiv4UhAsQ,3391 +django/contrib/postgres/locale/fr/LC_MESSAGES/django.po,sha256=5T_wkYoHJcpzemKqR-7apZ11Pas4dZhnAitHOgT8gRc,3759 +django/contrib/postgres/locale/gd/LC_MESSAGES/django.mo,sha256=okWU_Ke95EG2pm8rZ4PT5ScO-8f0Hqg65lYZgSid8tM,3541 +django/contrib/postgres/locale/gd/LC_MESSAGES/django.po,sha256=tjt5kfkUGryU3hFzPuAly2DBDLuLQTTD5p-XrxryFEI,4013 +django/contrib/postgres/locale/gl/LC_MESSAGES/django.mo,sha256=1Od7e0SG9tEeTefFLLWkU38tlk5PL5aRF1GTlKkfTAs,2912 +django/contrib/postgres/locale/gl/LC_MESSAGES/django.po,sha256=tE2-GX2OH06krOFxvzdJeYWC7a57QYNFx5OtMXFWTdQ,3316 +django/contrib/postgres/locale/he/LC_MESSAGES/django.mo,sha256=znkNJeCKSSA4DPdvN5LCj5tdcWvRJQKRLWMXqSIO4FI,3757 +django/contrib/postgres/locale/he/LC_MESSAGES/django.po,sha256=oVJ0bfd9gH3aF3lo6rCMbA_9_3nhLWKBqfVj-H220F0,4234 +django/contrib/postgres/locale/hr/LC_MESSAGES/django.mo,sha256=vdm5GxgpKuVdGoVl3VreD8IB1Mq5HGWuq-2YDeDrNnU,929 +django/contrib/postgres/locale/hr/LC_MESSAGES/django.po,sha256=8TxEnVH2yIQWbmbmDOpR7kksNFSaUGVhimRPQgSgDkM,2501 +django/contrib/postgres/locale/hsb/LC_MESSAGES/django.mo,sha256=SSZpG-PSeVCHrzB-wzW4wRHxIEt7hqobzvRLB-9tu8Y,3518 +django/contrib/postgres/locale/hsb/LC_MESSAGES/django.po,sha256=UQUlfpJsgd-0qa6hZhUkTAi6VF5ZYiygSMrLcsiEC4k,3971 +django/contrib/postgres/locale/hu/LC_MESSAGES/django.mo,sha256=o6JDAFIN7i21GE2N0q98SiqIdvGYPLLdDiMLC_UE5hM,2892 +django/contrib/postgres/locale/hu/LC_MESSAGES/django.po,sha256=yUcbOn1k08aqhkODsrQfLR3qk-UnEEbEYuP3JyQ3eCU,3432 +django/contrib/postgres/locale/hy/LC_MESSAGES/django.mo,sha256=2QFIJdmh47IGPqI-8rvuHR0HdH2LOAmaYqEeCwUpRuw,3234 +django/contrib/postgres/locale/hy/LC_MESSAGES/django.po,sha256=MLHMbdwdo1txzFOG-fVK4VUvAoDtrLA8CdpQThybSCQ,3825 +django/contrib/postgres/locale/ia/LC_MESSAGES/django.mo,sha256=gn8lf-gOP4vv-iiqnkcxvjzhJ8pTdetBhHyjl4TapXo,582 +django/contrib/postgres/locale/ia/LC_MESSAGES/django.po,sha256=FsqhPQf0j4g06rGuWSTn8A1kJ7E5U9rX16mtB8CAiIE,2251 +django/contrib/postgres/locale/id/LC_MESSAGES/django.mo,sha256=vWCSZJBmKu5uGS8KvQIJSMZA1YTwdbbJP4-OBhTmAwQ,2737 +django/contrib/postgres/locale/id/LC_MESSAGES/django.po,sha256=Z5TrRpCOv6Mgb2YFU84vE8cT_3W7flFwA8BUMm4VvO0,3308 +django/contrib/postgres/locale/is/LC_MESSAGES/django.mo,sha256=rNL5Un5K_iRAZDtpHo4egcySaaBnNEirYDuWw0eI7gk,2931 +django/contrib/postgres/locale/is/LC_MESSAGES/django.po,sha256=UO53ciyI0jCVtBOXWkaip2AbPE2Hd2YhzK1RAlcxyQ8,3313 +django/contrib/postgres/locale/it/LC_MESSAGES/django.mo,sha256=dsn-Xuhg1WeRkJVGHHdoPz-KobYsS8A41BUdnM4wQQ8,3210 +django/contrib/postgres/locale/it/LC_MESSAGES/django.po,sha256=2RpaA-mmvXcYkYTu_y0u3p32aAhP9DyAy641ZJL79sk,3874 +django/contrib/postgres/locale/ja/LC_MESSAGES/django.mo,sha256=IC9mYW8gXWNGuXeh8gGxGFvrjfxiSpj57E63Ka47pkM,3046 +django/contrib/postgres/locale/ja/LC_MESSAGES/django.po,sha256=IPnDsh8rtq158a63zQJekJ0LJlR3uj6KAjx4omc7XN0,3437 +django/contrib/postgres/locale/ka/LC_MESSAGES/django.mo,sha256=A_VhLUZbocGNF5_5mMoYfB3l654MrPIW4dL1ywd3Tw8,713 +django/contrib/postgres/locale/ka/LC_MESSAGES/django.po,sha256=kRIwQ1Nrzdf5arHHxOPzQcB-XwPNK5lUFKU0L3QHfC8,2356 +django/contrib/postgres/locale/kk/LC_MESSAGES/django.mo,sha256=xMc-UwyP1_jBHcGIAGWmDAjvSL50jJaiZbcT5TmzDOg,665 +django/contrib/postgres/locale/kk/LC_MESSAGES/django.po,sha256=f6Z3VUFRJ3FgSReC0JItjA0RaYbblqDb31lbJ3RRExQ,2327 +django/contrib/postgres/locale/ko/LC_MESSAGES/django.mo,sha256=G9Cl4uFost_c2y-3dBEF5ODuOe2BLThiXcEMEMXQQE8,2905 +django/contrib/postgres/locale/ko/LC_MESSAGES/django.po,sha256=JXqG3VCGEhBzAxGzOBb9w6oflaX4duhxNVht69ytOQY,3481 +django/contrib/postgres/locale/ky/LC_MESSAGES/django.mo,sha256=F0Ws34MbE7zJa8FNxA-9rFm5sNLL22D24LyiBb927lE,3101 +django/contrib/postgres/locale/ky/LC_MESSAGES/django.po,sha256=yAzSeT2jBm7R2ZXiuYBQFSKQ_uWIUfNTAobE1UYnlPs,3504 +django/contrib/postgres/locale/lt/LC_MESSAGES/django.mo,sha256=kJ3ih8HrHt2M_hFW0H9BZg7zcj6sXy6H_fD1ReIzngM,3452 +django/contrib/postgres/locale/lt/LC_MESSAGES/django.po,sha256=PNADIV8hdpLoqwW4zpIhxtWnQN8cPkdcoXYngyjFeFw,3972 +django/contrib/postgres/locale/lv/LC_MESSAGES/django.mo,sha256=UwBbbIbC_MO6xhB66UzO80XFcmlyv8-mfFEK4kQd6fE,3153 +django/contrib/postgres/locale/lv/LC_MESSAGES/django.po,sha256=phDSZnB5JeCoCi0f_MYCjQiwhE00gcVl5urOFiAKmkU,3768 +django/contrib/postgres/locale/mk/LC_MESSAGES/django.mo,sha256=WE4nRJKWAZvXuyU2qT2_FGqGlKYsP1KSACCtT10gQQY,3048 +django/contrib/postgres/locale/mk/LC_MESSAGES/django.po,sha256=CQX91LP1Gbkazpt4hTownJtSqZGR1OJfoD-1MCo6C1Y,3783 +django/contrib/postgres/locale/ml/LC_MESSAGES/django.mo,sha256=N47idWIsmtghZ_D5325TRsDFeoUa0MIvMFtdx7ozAHc,1581 +django/contrib/postgres/locale/ml/LC_MESSAGES/django.po,sha256=lt_7fGZV7BCB2XqFWIQQtH4niU4oMBfGzQQuN5sD0fo,2947 +django/contrib/postgres/locale/mn/LC_MESSAGES/django.mo,sha256=VWeXaMvdqhW0GHs1Irb1ikTceH7jMKH_xMzKLH0vKZg,3310 +django/contrib/postgres/locale/mn/LC_MESSAGES/django.po,sha256=p3141FJiYrkV8rocgqdxnV05FReQYZmosv9LI46FlfE,3867 +django/contrib/postgres/locale/mr/LC_MESSAGES/django.mo,sha256=vVYwi51As7ovNuvoGU96oL3uryKHGVPCJXS2rRrkZ2o,1132 +django/contrib/postgres/locale/mr/LC_MESSAGES/django.po,sha256=DHSatTEPlPRSH_qXXBXKeyHB1X7YQ0UhkUc-j92iAyY,2595 +django/contrib/postgres/locale/ms/LC_MESSAGES/django.mo,sha256=m3JZm1IIMZwmpvIs3oV0roYCeR_UlswHyCpZjjE6-A8,2712 +django/contrib/postgres/locale/ms/LC_MESSAGES/django.po,sha256=HCMBA1fxKLJct14ywap0PYVBi2bDp2F97Ms5_-G_Pwg,3025 +django/contrib/postgres/locale/nb/LC_MESSAGES/django.mo,sha256=3h8DqEFG39i6uHY0vpXuGFmoJnAxTtRFy1RazcYIXfg,2849 +django/contrib/postgres/locale/nb/LC_MESSAGES/django.po,sha256=gDUg-HDg3LiYMKzb2QaDrYopqaJmbvnw2Fo-qhUHFuI,3252 +django/contrib/postgres/locale/ne/LC_MESSAGES/django.mo,sha256=5XdBLGMkn20qeya3MgTCpsIDxLEa7PV-i2BmK993iRc,875 +django/contrib/postgres/locale/ne/LC_MESSAGES/django.po,sha256=1QLLfbrHneJmxM_5UTpNIYalP-qX7Bn7bmj4AfDLIzE,2421 +django/contrib/postgres/locale/nl/LC_MESSAGES/django.mo,sha256=XK0L91JYDbkgw45eJysai_3u28KqZ5UFPTYaCTMiDPA,2993 +django/contrib/postgres/locale/nl/LC_MESSAGES/django.po,sha256=qU17zpXRHSoBQIkcP-Cm1GFh0BcpUTJsdh277P8dYG0,3565 +django/contrib/postgres/locale/nn/LC_MESSAGES/django.mo,sha256=RdMFozwxYIckBY40mJhN-jjkghztKn0-ytCtqxFHBMY,2836 +django/contrib/postgres/locale/nn/LC_MESSAGES/django.po,sha256=vl8NkY342eonqbrj89eCR_8PsJpeQuaRjxems-OPIBk,3184 +django/contrib/postgres/locale/pl/LC_MESSAGES/django.mo,sha256=Wox9w-HN7Guf8N1nkgemuDVs0LQxxTmEqQDOxriKy60,3462 +django/contrib/postgres/locale/pl/LC_MESSAGES/django.po,sha256=pxm_IKMg8g5qfg19CKc5JEdK6IMnhyeSPHd7THUb1GY,4217 +django/contrib/postgres/locale/pt/LC_MESSAGES/django.mo,sha256=KZvJXjrIdtxbffckcrRV3nJ5GnID6PvqAb7vpOiWpHE,2745 +django/contrib/postgres/locale/pt/LC_MESSAGES/django.po,sha256=2gIDOjnFo6Iom-oTkQek4IX6FYPI9rNp9V-6sJ55aL8,3281 +django/contrib/postgres/locale/pt_BR/LC_MESSAGES/django.mo,sha256=PVEiflh0v3AqVOC0S85XO-V3xDU3d8UwS31lzGrLoi8,3143 +django/contrib/postgres/locale/pt_BR/LC_MESSAGES/django.po,sha256=onF2K6s-McAXDSRzQ50EpGrKAIv89vvRWjCjsLCVXvs,3896 +django/contrib/postgres/locale/ro/LC_MESSAGES/django.mo,sha256=w4tyByrZlba_Ju_F2OzD52ut5JSD6UGJfjt3A7CG_uc,3188 +django/contrib/postgres/locale/ro/LC_MESSAGES/django.po,sha256=hnotgrr-zeEmE4lgpqDDiJ051GoGbL_2GVs4O9dVLXI,3700 +django/contrib/postgres/locale/ru/LC_MESSAGES/django.mo,sha256=LKkZs-TvPFTSrXVVaaoZ-Ec0kL_E9_5vTaExVxlr_rk,4732 +django/contrib/postgres/locale/ru/LC_MESSAGES/django.po,sha256=mnmVUlwZqn9QwdMx4g0D9xYxxKw_4pMFslwT2c4AjuE,5488 +django/contrib/postgres/locale/sk/LC_MESSAGES/django.mo,sha256=dRnTFkvRMbq5QnVEtrQ9Of9MxKTFYPP8sE7kbvUEjug,3381 +django/contrib/postgres/locale/sk/LC_MESSAGES/django.po,sha256=OwKv_mc9cuwt_YGnoVQLF3t2RsIbFyG_k3NKoIMAMoY,3899 +django/contrib/postgres/locale/sl/LC_MESSAGES/django.mo,sha256=JM9YZagjHIIrCxOKkR4d4oKaEXKJU7bfVdM3_uzSTAE,2810 +django/contrib/postgres/locale/sl/LC_MESSAGES/django.po,sha256=1jI2zXSU4LWxfLEUL-FXpldCExZJLD53Jy7VnA258xs,3602 +django/contrib/postgres/locale/sq/LC_MESSAGES/django.mo,sha256=slZq_bGPIzF8AlmtsfIqo65B14YYfw_uYKNcw_Tun0g,2958 +django/contrib/postgres/locale/sq/LC_MESSAGES/django.po,sha256=TPmtauQdDYM5QIOhGj2EwjRBQ3qOiRmvPMpUavUqh9A,3394 +django/contrib/postgres/locale/sr/LC_MESSAGES/django.mo,sha256=OfsUq8rZdD2NP7NQjBoatSXATxc8d6QL-nxmlPp5QSc,3775 +django/contrib/postgres/locale/sr/LC_MESSAGES/django.po,sha256=vUvFaIp8renqgGs-VgrtPNu7IBkcB38mlTBJ0xxXTaI,4214 +django/contrib/postgres/locale/sr_Latn/LC_MESSAGES/django.mo,sha256=2nDFP43vk1Jih35jns8vSbOhhLq_w7t_2vJHg-crfxY,3112 +django/contrib/postgres/locale/sr_Latn/LC_MESSAGES/django.po,sha256=QN4NEy0zFaPNjTCBrT9TydedWG7w4QBPm-pO7cKvSjg,3510 +django/contrib/postgres/locale/sv/LC_MESSAGES/django.mo,sha256=AkUgWYRBGNJYg5QDPJR3qu4BA_XF9xaZA__3m_KF4hk,2918 +django/contrib/postgres/locale/sv/LC_MESSAGES/django.po,sha256=hhJBRobgyHkLeKxdDxNkEl9XKkDXkrlx6PjyWcERp7I,3487 +django/contrib/postgres/locale/tg/LC_MESSAGES/django.mo,sha256=3yW5NKKsa2f2qDGZ4NGlSn4DHatLOYEv5SEwB9voraA,2688 +django/contrib/postgres/locale/tg/LC_MESSAGES/django.po,sha256=Zuix5sJH5Fz9-joe_ivMRpNz2Fbzefsxz3OOoDV0o1c,3511 +django/contrib/postgres/locale/tk/LC_MESSAGES/django.mo,sha256=ytivs6cnECDuyVKToFQMRnH_RPr4PlVepg8xFHnr0W4,2789 +django/contrib/postgres/locale/tk/LC_MESSAGES/django.po,sha256=bfXIyKNOFRC3U34AEKCsYQn3XMBGtgqHsXpboHvRQq0,3268 +django/contrib/postgres/locale/tr/LC_MESSAGES/django.mo,sha256=hZ2pxkYNOGE4BX--QmDlzqXxT21gHaPGA6CmXDODzhI,2914 +django/contrib/postgres/locale/tr/LC_MESSAGES/django.po,sha256=fzQsDL_wSO62qUaXCutRgq0ifrQ9oOaaxVQRyfnvV7Y,3288 +django/contrib/postgres/locale/ug/LC_MESSAGES/django.mo,sha256=ClLFBgCNopAREx7jy9WRbEASJERWJO8WZHriZrPtDZU,3938 +django/contrib/postgres/locale/ug/LC_MESSAGES/django.po,sha256=Ldd11fS8-D6ZeannnC6pCmBk7fmtqR_RXaeaNZQtU6M,4323 +django/contrib/postgres/locale/uk/LC_MESSAGES/django.mo,sha256=Jg6nM7ah7hEv7eqpe11e0e_MvRaMAQW3mdHTj9hqyG8,4406 +django/contrib/postgres/locale/uk/LC_MESSAGES/django.po,sha256=6gBP1xKxK9hf8ISCR1wABxkKXEUTx2CUYHGr6RVPI94,5100 +django/contrib/postgres/locale/uz/LC_MESSAGES/django.mo,sha256=PcmhhVC1spz3EFrQ2qdhfPFcA1ELHtBhHGWk9Z868Ss,703 +django/contrib/postgres/locale/uz/LC_MESSAGES/django.po,sha256=lbQxX2cmueGCT8sl6hsNWcrf9H-XEUbioP4L7JHGqiU,2291 +django/contrib/postgres/locale/zh_Hans/LC_MESSAGES/django.mo,sha256=ln_p6MRs5JPvTAXFzegXYnCCKki-LEr_YiOw6sK8oPA,2560 +django/contrib/postgres/locale/zh_Hans/LC_MESSAGES/django.po,sha256=7YZE8B0c1HuKVjGzreY7iiyuFeyPgqzKIwzxe5YOKb4,3084 +django/contrib/postgres/locale/zh_Hant/LC_MESSAGES/django.mo,sha256=7-gE2HUKbQwMwzMXT3_sMbI2GbuS2uzciNnJgKOMZUQ,2563 +django/contrib/postgres/locale/zh_Hant/LC_MESSAGES/django.po,sha256=nkYgbfQNoa3eYNCYMPgGVhtGWScjWtP2rjlV8nAXgH0,2973 +django/contrib/postgres/lookups.py,sha256=J50bsr8rLjp_zzdViSVDDcTLfDkY21fEUoyqCgeHauI,1991 +django/contrib/postgres/operations.py,sha256=SI3VgaNJqrZi6ZyTlZ1QclHUYix3VXUV15SmODIFg_0,12072 +django/contrib/postgres/search.py,sha256=bIXux7NXgsVTVAauvScWUPtYNR4E2u1D1Rd6PNf2s6Y,11732 +django/contrib/postgres/serializers.py,sha256=wCg0IzTNeuVOiC2cdy1wio6gChjqVvH6Ri4hkCkEeXU,435 +django/contrib/postgres/signals.py,sha256=cpkaedbyvajpN4NNAYLA6TfKI_4fe9AU40CeYhYmS8Q,2870 +django/contrib/postgres/templates/postgres/widgets/split_array.html,sha256=AzaPLlNLg91qkVQwwtAJxwOqDemrtt_btSkWLpboJDs,54 +django/contrib/postgres/utils.py,sha256=32nCnzdMZ7Ra4dDonbIdv1aCppV3tnQnoEX9AhCJe38,1187 +django/contrib/postgres/validators.py,sha256=GCJtwISehlhcqQhR5JEfrcwPUcCJqtpFV_fu4aRLb34,2801 +django/contrib/redirects/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/contrib/redirects/__pycache__/__init__.cpython-312.pyc,, +django/contrib/redirects/__pycache__/admin.cpython-312.pyc,, +django/contrib/redirects/__pycache__/apps.cpython-312.pyc,, +django/contrib/redirects/__pycache__/middleware.cpython-312.pyc,, +django/contrib/redirects/__pycache__/models.cpython-312.pyc,, +django/contrib/redirects/admin.py,sha256=1bPOgeZYRYCHdh7s2SpXnuL2WsfdQjD96U5Y3xhRY8g,314 +django/contrib/redirects/apps.py,sha256=1uS5EBp7WwDnY0WHeaRYo7VW9j-s20h4KDdImodjCNg,251 +django/contrib/redirects/locale/af/LC_MESSAGES/django.mo,sha256=p1jR8LLNrzuDM6gvYBzQAS5xg7X8O17301Fo5xEU2yI,1151 +django/contrib/redirects/locale/af/LC_MESSAGES/django.po,sha256=wkVhdkjL6kI-0uxzWPCrEMhf_iUSbbHV1D0dFPIw1eU,1385 +django/contrib/redirects/locale/ar/LC_MESSAGES/django.mo,sha256=FfPauXNUmQxq0R1-eQ2xw2WY1Oi33sLwVhyKX10_zFw,1336 +django/contrib/redirects/locale/ar/LC_MESSAGES/django.po,sha256=X0xX51asSDWedd56riJ4UrsCGEjH-lZdkcilIg4amgI,1595 +django/contrib/redirects/locale/ar_DZ/LC_MESSAGES/django.mo,sha256=hg1lkBEORP2vgLPRbuKcXiIFUcTvAO7KrjbPXlWhvqY,1379 +django/contrib/redirects/locale/ar_DZ/LC_MESSAGES/django.po,sha256=O4quBKA1jHATGGeDqCONDFfAqvDvOAATIBvueeMphyY,1581 +django/contrib/redirects/locale/ast/LC_MESSAGES/django.mo,sha256=a1ixBQQIdBZ7o-ADnF2r74CBtPLsuatG7txjc05_GXI,1071 +django/contrib/redirects/locale/ast/LC_MESSAGES/django.po,sha256=PguAqeIUeTMWsADOYLTxoC6AuKrCloi8HN18hbm3pZ0,1266 +django/contrib/redirects/locale/az/LC_MESSAGES/django.mo,sha256=IBIB2EW9ZYQTD0x4d8VadXY0lFx-XYtKCd1F_e72ibA,1106 +django/contrib/redirects/locale/az/LC_MESSAGES/django.po,sha256=D3ZGFhKeMTjJ4YtUOTRjBCvZ2cofqfksbk39mvHDemw,1384 +django/contrib/redirects/locale/be/LC_MESSAGES/django.mo,sha256=fVqy28ml508UJf5AA-QVsS5dzKI8Q_ugZZ34WjTpJ-s,1426 +django/contrib/redirects/locale/be/LC_MESSAGES/django.po,sha256=zHBVewcpt0KoavV96v3F4wybqtkGb1jUuPz7sbiWWDI,1662 +django/contrib/redirects/locale/bg/LC_MESSAGES/django.mo,sha256=o-ETSDGtAFZRo3SPd_IHe0mJ3R0RHA32KpgfOmUH11M,1279 +django/contrib/redirects/locale/bg/LC_MESSAGES/django.po,sha256=9qm8s6vj-0LStnyEJ8iYVi13_MfugVAAs2RHvIi7kW8,1587 +django/contrib/redirects/locale/bn/LC_MESSAGES/django.mo,sha256=SbQh_pgxNCogvUFud7xW9T6NTAvpaQb2jngXCtpjICM,1319 +django/contrib/redirects/locale/bn/LC_MESSAGES/django.po,sha256=LgUuiPryDLSXxo_4KMCdjM5XC3BiRfINuEk0s5PUQYQ,1511 +django/contrib/redirects/locale/br/LC_MESSAGES/django.mo,sha256=Yt8xo5B5LJ9HB8IChCkj5mljFQAAKlaW_gurtF8q8Yw,1429 +django/contrib/redirects/locale/br/LC_MESSAGES/django.po,sha256=L2qPx6mZEVUNay1yYEweKBLr_fXVURCnACfsezfP_pI,1623 +django/contrib/redirects/locale/bs/LC_MESSAGES/django.mo,sha256=0Yak4rXHjRRXLu3oYYzvS8qxvk2v4IFvUiDPA68a5YI,1115 +django/contrib/redirects/locale/bs/LC_MESSAGES/django.po,sha256=s9Nhx3H4074hlSqo1zgQRJbozakdJTwA1aTuMSqEJWw,1316 +django/contrib/redirects/locale/ca/LC_MESSAGES/django.mo,sha256=VHE6qHCEoA7rQk0fMUpoTfwqSfu63-CiOFvhvKp5DMQ,1136 +django/contrib/redirects/locale/ca/LC_MESSAGES/django.po,sha256=PSMb_7iZBuYhtdR8byh9zr9dr50Z_tQ518DUlqoEA_M,1484 +django/contrib/redirects/locale/ckb/LC_MESSAGES/django.mo,sha256=23RM9kso65HHxGHQ_DKxGDaUkmdX72DfYvqQfhr7JKw,1340 +django/contrib/redirects/locale/ckb/LC_MESSAGES/django.po,sha256=cGrAq3e6h3vbYrtyi0oFSfZmLlJ0-Y3uqrvFon48n80,1521 +django/contrib/redirects/locale/cs/LC_MESSAGES/django.mo,sha256=UwYsoEHsg7FJLVe0JxdOa1cTGypqJFienAbWe7Vldf0,1229 +django/contrib/redirects/locale/cs/LC_MESSAGES/django.po,sha256=hnWJLXX7IjwZK7_8L3p-dpj5XpDmEo7lQ7-F4upjn7U,1504 +django/contrib/redirects/locale/cy/LC_MESSAGES/django.mo,sha256=NSGoK12A7gbtuAuzQEVFPNSZMqqmhHyRvTEn9PUm9So,1132 +django/contrib/redirects/locale/cy/LC_MESSAGES/django.po,sha256=jDmC64z5exPnO9zwRkBmpa9v3DBlaeHRhqZYPoWqiIY,1360 +django/contrib/redirects/locale/da/LC_MESSAGES/django.mo,sha256=_UVfTMRG__5j7Ak8Q3HtXSy_DPGpZ1XvKj9MHdmR_xI,1132 +django/contrib/redirects/locale/da/LC_MESSAGES/django.po,sha256=RAWWbZXbJciNSdw4skUEoTnOb19iKXAe1KXJLWi0zPQ,1418 +django/contrib/redirects/locale/de/LC_MESSAGES/django.mo,sha256=uh-ldy-QkWS5-ARX6cLyzxzdhbTb_chyEbBPFCvCKuE,1155 +django/contrib/redirects/locale/de/LC_MESSAGES/django.po,sha256=hhGNnVCRV4HNxhCYfmVXTOIkabD7qsVQccwxKa5Tz9g,1424 +django/contrib/redirects/locale/dsb/LC_MESSAGES/django.mo,sha256=LXgczA38RzrN7zSWpxKy8_RY4gPg5tZLl30CJGjJ63s,1236 +django/contrib/redirects/locale/dsb/LC_MESSAGES/django.po,sha256=rI9dyDp7zuZ6CjvFyo2OkGUDK5XzdvdI0ma8IGVkjp4,1431 +django/contrib/redirects/locale/el/LC_MESSAGES/django.mo,sha256=sD3HT4e53Yd3HmQap_Mqlxkm0xF98A6PFW8Lil0PihI,1395 +django/contrib/redirects/locale/el/LC_MESSAGES/django.po,sha256=puhVCcshg5HaPHsVAOucneVgBYT6swhCCBpVGOZykgA,1716 +django/contrib/redirects/locale/en/LC_MESSAGES/django.mo,sha256=U0OV81NfbuNL9ctF-gbGUG5al1StqN-daB-F-gFBFC8,356 +django/contrib/redirects/locale/en/LC_MESSAGES/django.po,sha256=u4RcMkFmNvlG9Bv6kM0a0scWUMDUbTEDJGR90-G8C0E,1123 +django/contrib/redirects/locale/en_AU/LC_MESSAGES/django.mo,sha256=wxCpSLGl_zsE47kDwilDkpihazwHkA363PvtGOLWhdk,1127 +django/contrib/redirects/locale/en_AU/LC_MESSAGES/django.po,sha256=zujH1WuxoHw_32flptG0x2Ob_BlilLKXuMjQxVbZmgw,1307 +django/contrib/redirects/locale/en_GB/LC_MESSAGES/django.mo,sha256=VscL30uJnV-eiQZITpBCy0xk_FfKdnMh4O9Hk4HGxww,1053 +django/contrib/redirects/locale/en_GB/LC_MESSAGES/django.po,sha256=loe8xIVjZ7eyteQNLPoa-QceBZdgky22dR6deK5ubmA,1246 +django/contrib/redirects/locale/eo/LC_MESSAGES/django.mo,sha256=WZ3NHrS0qMoCJER5jWnGI12bvY5wH0yytM8F7BFTgYc,712 +django/contrib/redirects/locale/eo/LC_MESSAGES/django.po,sha256=T-Gw75sOjZgqpwjIfieIrLxbg1kekWzjrJYSMld2OEQ,1299 +django/contrib/redirects/locale/es/LC_MESSAGES/django.mo,sha256=xyeIQL_pHFyo7p7SkeuxzKdDsma2EXhvnPNDHUhaBv8,1159 +django/contrib/redirects/locale/es/LC_MESSAGES/django.po,sha256=Y3hPQrcbhLtR-pPYRJJXkJME5M8Enr20j9D63hhe9ZA,1490 +django/contrib/redirects/locale/es_AR/LC_MESSAGES/django.mo,sha256=JdKzpdyf9W2m_0_NguvXvyciOh6LAATfE6lqcsp45To,1144 +django/contrib/redirects/locale/es_AR/LC_MESSAGES/django.po,sha256=3zrKJXLh_mrjc4A6g9O6ePyFz8PNUMYTPjNFpvEhaDo,1364 +django/contrib/redirects/locale/es_CO/LC_MESSAGES/django.mo,sha256=wcAMOiqsgz2KEpRwirRH9FNoto6vmo_hxthrQJi0IHU,1147 +django/contrib/redirects/locale/es_CO/LC_MESSAGES/django.po,sha256=n8DM14vHekZRayH0B6Pm3L5XnSo4lto4ZAdu4OhcOmc,1291 +django/contrib/redirects/locale/es_MX/LC_MESSAGES/django.mo,sha256=38fbiReibMAmC75BCCbyo7pA2VA3QvmRqVEo_K6Ejow,1116 +django/contrib/redirects/locale/es_MX/LC_MESSAGES/django.po,sha256=t7R6PiQ1bCc7jhfMrjHlZxVQ6BRlWT2Vv4XXhxBD_Oo,1397 +django/contrib/redirects/locale/es_VE/LC_MESSAGES/django.mo,sha256=59fZBDut-htCj38ZUoqPjhXJPjZBz-xpU9__QFr3kLs,486 +django/contrib/redirects/locale/es_VE/LC_MESSAGES/django.po,sha256=f4XZW8OHjRJoztMJtSDCxd2_Mfy-XK44hLtigjGSsZY,958 +django/contrib/redirects/locale/et/LC_MESSAGES/django.mo,sha256=34-Z1s9msdnj6U7prMctEWCxAR8TNnP44MIoyUuFsls,1131 +django/contrib/redirects/locale/et/LC_MESSAGES/django.po,sha256=1VWcUbM9z_nNmiGnT9Mka3Y3ZLRVHuJdS_j_yNXvmQ0,1479 +django/contrib/redirects/locale/eu/LC_MESSAGES/django.mo,sha256=yHlAEz01pWse4ZworAj7JiATUam5Fp20EZd_3PRgSNw,1126 +django/contrib/redirects/locale/eu/LC_MESSAGES/django.po,sha256=zAvSdahjvq727hXeGjHJ_R5L5meCrOv98tbH3rwlBcE,1404 +django/contrib/redirects/locale/fa/LC_MESSAGES/django.mo,sha256=vZa1KKm2y8duEv9UbJMyiM8WO2EAXcevdR3Lj1ISgLU,1234 +django/contrib/redirects/locale/fa/LC_MESSAGES/django.po,sha256=1quB0Wx5VTIjX2QUCpENl1GA2hpSdsRpgK931jr20B0,1541 +django/contrib/redirects/locale/fi/LC_MESSAGES/django.mo,sha256=xJEd4M2IowXxKBlaGuOEgFKA9OuihcgPoK07Beat4cc,1164 +django/contrib/redirects/locale/fi/LC_MESSAGES/django.po,sha256=1I7AoXMPRDMY6TCjPkQh0Q9g68r9BwKOwki9DybcFWc,1429 +django/contrib/redirects/locale/fr/LC_MESSAGES/django.mo,sha256=YhVNoNaHdSOp2P2F7xfo2MHCd2KkHiehpVjLyJ4VLuw,1155 +django/contrib/redirects/locale/fr/LC_MESSAGES/django.po,sha256=-ljzEKiU05annJ8DHw4OOg8eDCAnWLV2V33R-tQn9dE,1391 +django/contrib/redirects/locale/fy/LC_MESSAGES/django.mo,sha256=YQQy7wpjBORD9Isd-p0lLzYrUgAqv770_56-vXa0EOc,476 +django/contrib/redirects/locale/fy/LC_MESSAGES/django.po,sha256=D7xverCbf3kTCcFM8h7EKWM5DcxZRqeOSKDB1irbKeE,948 +django/contrib/redirects/locale/ga/LC_MESSAGES/django.mo,sha256=blwOMshClFZKvOZXVvqENK_E_OkdS1ydbjQCDXcHXd4,1075 +django/contrib/redirects/locale/ga/LC_MESSAGES/django.po,sha256=76rdrG4GVbcKwgUQN4bB-B0t6hpivCA_ehf4uzGM_mY,1341 +django/contrib/redirects/locale/gd/LC_MESSAGES/django.mo,sha256=baZXdulbPZwe4_Q3OwfHFl4GJ4hCYtoZz-lE4wcdJvg,1250 +django/contrib/redirects/locale/gd/LC_MESSAGES/django.po,sha256=M4E2giFgzRowd3OsvhD389MyJmT5osKz1Vs1sEfmUpU,1428 +django/contrib/redirects/locale/gl/LC_MESSAGES/django.mo,sha256=au4ulT76A8cd_C_DmtEdiuQ14dIJaprVvFbS9_hYRNk,1131 +django/contrib/redirects/locale/gl/LC_MESSAGES/django.po,sha256=r2t9gHhIvPb8d9XR8fG0b_eW5xkkQswuj4ekJI9x90w,1393 +django/contrib/redirects/locale/he/LC_MESSAGES/django.mo,sha256=Yu8KTmY0mJEcxhkhTEVElPBaWwO9Zj4NqC8eopW0cRc,1278 +django/contrib/redirects/locale/he/LC_MESSAGES/django.po,sha256=UcCd_BqHOkTV1dP0hgJ4dNQzBZ4p8TujwSjF3FWAMjo,1513 +django/contrib/redirects/locale/hi/LC_MESSAGES/django.mo,sha256=onR8L7Kvkx6HgFLK7jT-wA_zjarBN8pyltG6BbKFIWU,1409 +django/contrib/redirects/locale/hi/LC_MESSAGES/django.po,sha256=fNv9_qwR9iS-pjWNXnrUFIqvc10lwg3bfj5lgdQOy1U,1649 +django/contrib/redirects/locale/hr/LC_MESSAGES/django.mo,sha256=7wHi6Uu0czZhI6v0ndJJ1wSkalTRfn7D5ovyw8tr4U4,1207 +django/contrib/redirects/locale/hr/LC_MESSAGES/django.po,sha256=HtxZwZ-ymmf-XID0z5s7nGYg-4gJL8i6FDGWt9i4Wns,1406 +django/contrib/redirects/locale/hsb/LC_MESSAGES/django.mo,sha256=6lfIW4LcMGvuLOY0U4w1V6Xwcd_TsUC3r-QzZOOLwys,1221 +django/contrib/redirects/locale/hsb/LC_MESSAGES/django.po,sha256=l5pATo8NHa8ypB8dCigRwqpLZvV8W0v2vPh60oAeGn0,1420 +django/contrib/redirects/locale/hu/LC_MESSAGES/django.mo,sha256=4oYBNGEmFMISzw3LExVf6CHsJD_o20mMy132pwzM-wk,1111 +django/contrib/redirects/locale/hu/LC_MESSAGES/django.po,sha256=UYJ_ZrAnOqA6S8nkkfN_FBLxCyPHJjOMd1OSIUVc8aY,1383 +django/contrib/redirects/locale/hy/LC_MESSAGES/django.mo,sha256=gT5x1TZXMNyBwfmQ-C_cOB60JGYdKIM7tVb3-J5d6nw,1261 +django/contrib/redirects/locale/hy/LC_MESSAGES/django.po,sha256=40QTpth2AVeoy9P36rMJC2C82YsBh_KYup19WL6zM6w,1359 +django/contrib/redirects/locale/ia/LC_MESSAGES/django.mo,sha256=PDB5ZQP6iH31xN6N2YmPZYjt6zzc88TRmh9_gAWH2U0,1152 +django/contrib/redirects/locale/ia/LC_MESSAGES/django.po,sha256=GXjbzY-cQz2QLx_iuqgijT7VUMcoNKL7prbP6yIbj8E,1297 +django/contrib/redirects/locale/id/LC_MESSAGES/django.mo,sha256=XEsvVWMR9As9csO_6iXNAcLZrErxz3HfDj5GTe06fJU,1105 +django/contrib/redirects/locale/id/LC_MESSAGES/django.po,sha256=t8FoC1xIB-XHDplyDJByQGFnHggxR0LSfUMGwWoAKWE,1410 +django/contrib/redirects/locale/io/LC_MESSAGES/django.mo,sha256=vz7TWRML-DFDFapbEXTByb9-pRQwoeJ0ApSdh6nOzXY,1019 +django/contrib/redirects/locale/io/LC_MESSAGES/django.po,sha256=obStuMYYSQ7x2utkGS3gekdPfnsNAwp3DcNwlwdg1sI,1228 +django/contrib/redirects/locale/is/LC_MESSAGES/django.mo,sha256=aMjlGilYfP7clGriAp1Za60uCD40rvLt9sKXuYX3ABg,1040 +django/contrib/redirects/locale/is/LC_MESSAGES/django.po,sha256=nw5fxVV20eQqsk4WKg6cIiKttG3zsITSVzH4p5xBV8s,1299 +django/contrib/redirects/locale/it/LC_MESSAGES/django.mo,sha256=bBj6dvhZSpxojLZ0GiMBamh1xiluxAYMt6RHubi9CxU,1092 +django/contrib/redirects/locale/it/LC_MESSAGES/django.po,sha256=NHSVus7ixtrB7JDIrYw22srZcse5i4Z9y8Ply_-Jcts,1390 +django/contrib/redirects/locale/ja/LC_MESSAGES/django.mo,sha256=XSJw3iLK0gYVjZ86MYuV4jfoiN_-WkH--oMK5uW9cs8,1193 +django/contrib/redirects/locale/ja/LC_MESSAGES/django.po,sha256=SlYrmC3arGgS7SL8cCnq7d37P-bQGcmpgUXAwVC2eRw,1510 +django/contrib/redirects/locale/ka/LC_MESSAGES/django.mo,sha256=0aOLKrhUX6YAIMNyt6KES9q2iFk2GupEr76WeGlJMkk,1511 +django/contrib/redirects/locale/ka/LC_MESSAGES/django.po,sha256=AQWIEdhxp55XnJwwHrUxxQaGbLJPmdo1YLeT86IJqnY,1725 +django/contrib/redirects/locale/kab/LC_MESSAGES/django.mo,sha256=Ogx9NXK1Nfw4ctZfp-slIL81ziDX3f4DZ01OkVNY5Tw,699 +django/contrib/redirects/locale/kab/LC_MESSAGES/django.po,sha256=gI6aUPkXH-XzKrStDsMCMNfQKDEc-D1ffqE-Z-ItQuI,1001 +django/contrib/redirects/locale/kk/LC_MESSAGES/django.mo,sha256=KVLc6PKL1MP_Px0LmpoW2lIvgLiSzlvoJ9062F-s3Zw,1261 +django/contrib/redirects/locale/kk/LC_MESSAGES/django.po,sha256=Xoy4mnOT51F_GS1oIO91EAuwt-ZfePKh-sutedo6D_g,1478 +django/contrib/redirects/locale/km/LC_MESSAGES/django.mo,sha256=tcW1s7jvTG0cagtdRNT0jSNkhX-B903LKl7bK31ZvJU,1248 +django/contrib/redirects/locale/km/LC_MESSAGES/django.po,sha256=KJ4h1umpfFLdsWZtsfXoeOl6cUPUD97U4ISWt80UZ2U,1437 +django/contrib/redirects/locale/kn/LC_MESSAGES/django.mo,sha256=24GHcQlEoCDri-98eLtqLbGjtJz9cTPAfYdAijsL5ck,788 +django/contrib/redirects/locale/kn/LC_MESSAGES/django.po,sha256=xkH24itr2fpuCQMGQ3xssOqaN_7KzM-GLy0u00ti27I,1245 +django/contrib/redirects/locale/ko/LC_MESSAGES/django.mo,sha256=viohri0QV3d46CN-YZP1k7w83Ac8r5lCkWU8fhbAEEc,1134 +django/contrib/redirects/locale/ko/LC_MESSAGES/django.po,sha256=8TsMfyl-BqGb-8fI12pazzlI7x3X1yruIYuvFroLti0,1521 +django/contrib/redirects/locale/ky/LC_MESSAGES/django.mo,sha256=4jX_g-hledmjWEx0RvY99G5QcBj_mQt_HZzpd000J44,1265 +django/contrib/redirects/locale/ky/LC_MESSAGES/django.po,sha256=yvx21nxsqqVzPyyxX9_rF-oeaY2WszXrG4ZDSZTW6-4,1522 +django/contrib/redirects/locale/lb/LC_MESSAGES/django.mo,sha256=xokesKl7h7k9dXFKIJwGETgwx1Ytq6mk2erBSxkgY-o,474 +django/contrib/redirects/locale/lb/LC_MESSAGES/django.po,sha256=Hv1CF9CC78YuVVNpklDtPJDU5-iIUeuXcljewmc9akg,946 +django/contrib/redirects/locale/lt/LC_MESSAGES/django.mo,sha256=reiFMXJnvE4XUosbKjyvUFzl4IKjlJoFK1gVJE9Tbnc,1191 +django/contrib/redirects/locale/lt/LC_MESSAGES/django.po,sha256=G56UIYuuVLgwzHCIj_suHNYPe1z76Y_cauWfGEs4nKI,1448 +django/contrib/redirects/locale/lv/LC_MESSAGES/django.mo,sha256=slGK6O2tYD5yciS8m_7h2WA4LOPf05nQ4oTRKB63etE,1175 +django/contrib/redirects/locale/lv/LC_MESSAGES/django.po,sha256=GUDn1IYQ5UMOQUBvGfuVOeVb-bpf5FHVigqTt_N0I0M,1442 +django/contrib/redirects/locale/mk/LC_MESSAGES/django.mo,sha256=3XGgf2K60LclScPKcgw07TId6x535AW5jtGVJ9lC01A,1353 +django/contrib/redirects/locale/mk/LC_MESSAGES/django.po,sha256=Smsdpid5VByoxvnfzju_XOlp6aTPl8qshFptot3cRYM,1596 +django/contrib/redirects/locale/ml/LC_MESSAGES/django.mo,sha256=IhSkvbgX9xfE4GypOQ7W7SDM-wOOqx1xgSTW7L1JofU,1573 +django/contrib/redirects/locale/ml/LC_MESSAGES/django.po,sha256=9KpXf88GRUB5I51Rj3q9qhvhjHFINuiJ9ig0SZdYE6k,1755 +django/contrib/redirects/locale/mn/LC_MESSAGES/django.mo,sha256=14fdHC_hZrRaA0EAFzBJy8BHj4jMMX6l2e6rLLBtJ8E,1274 +django/contrib/redirects/locale/mn/LC_MESSAGES/django.po,sha256=7_QzUWf5l0P-7gM35p9UW7bOj33NabQq_zSrekUeZsY,1502 +django/contrib/redirects/locale/mr/LC_MESSAGES/django.mo,sha256=KWFQR7X6niKMWIqY93sKtS6o41hsG4pEGLhXwC6MmDI,1530 +django/contrib/redirects/locale/mr/LC_MESSAGES/django.po,sha256=UZp4529Fm4US-Yi5eOlT6Ja7S_s1pc73LqNwEvaxXGw,1687 +django/contrib/redirects/locale/ms/LC_MESSAGES/django.mo,sha256=WUk6hvvHPWuylCGiDvy0MstWoQ1mdmwwfqlms1Nv4Ng,1094 +django/contrib/redirects/locale/ms/LC_MESSAGES/django.po,sha256=bsQDwxqtS5FgPCqTrfm9kw2hH_R2y44DnI5nluUgduc,1255 +django/contrib/redirects/locale/my/LC_MESSAGES/django.mo,sha256=H5-y9A3_1yIXJzC4sSuHqhURxhOlnYEL8Nvc0IF4zUE,549 +django/contrib/redirects/locale/my/LC_MESSAGES/django.po,sha256=MZGNt0jMQA6aHA6OmjvaC_ajvRWfUfDiKkV0j3_E480,1052 +django/contrib/redirects/locale/nb/LC_MESSAGES/django.mo,sha256=pxRtj5VFxTQBbi_mDS05iGoQs4BZ4y6LLJZ9pozJezY,1110 +django/contrib/redirects/locale/nb/LC_MESSAGES/django.po,sha256=ALYXciVa0d0sG70dqjtk17Yh_qwzKAzTXDlEZSU9kc0,1392 +django/contrib/redirects/locale/ne/LC_MESSAGES/django.mo,sha256=TxTnBGIi5k0PKAjADeCuOAJQV5dtzLrsFRXBXtfszWI,1420 +django/contrib/redirects/locale/ne/LC_MESSAGES/django.po,sha256=5b5R-6AlSIQrDyTtcmquoW5xrQRGZwlxZpBpZfVo5t4,1607 +django/contrib/redirects/locale/nl/LC_MESSAGES/django.mo,sha256=Xeh1YbEAu7Lhz07RXPTMDyv7AyWF9Bhe-9oHdWT74mo,1129 +django/contrib/redirects/locale/nl/LC_MESSAGES/django.po,sha256=QuNgrX7w2wO15KPEe3ogVhXbkt0v60EwKmKfD7-PedU,1476 +django/contrib/redirects/locale/nn/LC_MESSAGES/django.mo,sha256=8TQXBF2mzENl7lFpcrsKxkJ4nKySTOgXJM5_I2OD7q8,1143 +django/contrib/redirects/locale/nn/LC_MESSAGES/django.po,sha256=pfrKVQd1wLKKpq-b7CBpc-rZnEEgyZFDSjbipsEiwxM,1344 +django/contrib/redirects/locale/os/LC_MESSAGES/django.mo,sha256=joQ-ibV9_6ctGMNPLZQLCx5fUamRQngs6_LDd_s9sMQ,1150 +django/contrib/redirects/locale/os/LC_MESSAGES/django.po,sha256=ZwFWiuGS9comy7r2kMnKuqaPOvVehVdAAuFvXM5ldxM,1358 +django/contrib/redirects/locale/pa/LC_MESSAGES/django.mo,sha256=MY-OIDNXlZth-ZRoOJ52nlUPg_51_F5k0NBIpc7GZEw,748 +django/contrib/redirects/locale/pa/LC_MESSAGES/django.po,sha256=TPDTK2ZvDyvO1ob8Qfr64QDbHVWAREfEeBO5w9jf63E,1199 +django/contrib/redirects/locale/pl/LC_MESSAGES/django.mo,sha256=9Sc_8aDC8-PADnr4hYdat6iRUXj0QxsWR1RGWKIQP3M,1285 +django/contrib/redirects/locale/pl/LC_MESSAGES/django.po,sha256=RLuSAlWQPvxDGSNHL3j5ohMdf4IZL-g21-_QIuTdY4c,1605 +django/contrib/redirects/locale/pt/LC_MESSAGES/django.mo,sha256=WocPaVk3fQEz_MLmGVtFBGwsThD-gNU7GDocqEbeaBA,1129 +django/contrib/redirects/locale/pt/LC_MESSAGES/django.po,sha256=ptCzoE41c9uFAbgSjb6VHSFYPEUv_51YyBdoThXN3XA,1350 +django/contrib/redirects/locale/pt_BR/LC_MESSAGES/django.mo,sha256=adnRlAeOrULZkdpZGhHbb4D5A-hzJxeYlkfcbarx7pE,1224 +django/contrib/redirects/locale/pt_BR/LC_MESSAGES/django.po,sha256=DLTeZs_Xng3j8bveJizEIBLBjd4lJH_a-TzZxJgtu20,1703 +django/contrib/redirects/locale/ro/LC_MESSAGES/django.mo,sha256=D8FkmV6IxZOn5QAPBu9PwhStBpVQWudU62wKa7ADfJY,1158 +django/contrib/redirects/locale/ro/LC_MESSAGES/django.po,sha256=Z_-pDi2-A7_KXrEQtFlAJ_KLO0vXFKCbMphsNlqfNJk,1477 +django/contrib/redirects/locale/ru/LC_MESSAGES/django.mo,sha256=IvO0IXq1xuX0wpo2hV8po1AMifLS3ElGyQal0vmC_Jw,1457 +django/contrib/redirects/locale/ru/LC_MESSAGES/django.po,sha256=FHb4L3RMVV5ajxGj9y6ZymPtO_XjZrhHmvCZBPwwzmQ,1762 +django/contrib/redirects/locale/sk/LC_MESSAGES/django.mo,sha256=TTgi-SVyS9nbBCsI6NPbg-QA-GMc_-ciYewOUHDb1bM,1222 +django/contrib/redirects/locale/sk/LC_MESSAGES/django.po,sha256=yDuSGdVfHhsorxQNQ6S7ocyJfrI07pcLzyhkvXNCZXk,1506 +django/contrib/redirects/locale/sl/LC_MESSAGES/django.mo,sha256=GAZtOFSUxsOHdXs3AzT40D-3JFWIlNDZU_Z-cMvdaHo,1173 +django/contrib/redirects/locale/sl/LC_MESSAGES/django.po,sha256=gkZTyxNh8L2gNxyLVzm-M1HTiK8KDvughTa2MK9NzWo,1351 +django/contrib/redirects/locale/sq/LC_MESSAGES/django.mo,sha256=f2HyVjWFGnjNXV-EIk0YMFaMH6_ZwYLYgSDwU4fIJfM,1165 +django/contrib/redirects/locale/sq/LC_MESSAGES/django.po,sha256=gbd4JxoevGfDTRx3iYfDtlnh54EwyRKYXxs4XagHvRM,1453 +django/contrib/redirects/locale/sr/LC_MESSAGES/django.mo,sha256=OK90avxrpYxBcvPIZ_tDlSZP6PyRCzFg_7h0F_JlMy8,1367 +django/contrib/redirects/locale/sr/LC_MESSAGES/django.po,sha256=Ipi7j7q5N8aNGWmkz5XGlOPqpD46xCLKarfs-lNbKqM,1629 +django/contrib/redirects/locale/sr_Latn/LC_MESSAGES/django.mo,sha256=qYXT0j80c7a5jMsxeezncAL9Gff2Pb7eJz8iTX0TRX4,1210 +django/contrib/redirects/locale/sr_Latn/LC_MESSAGES/django.po,sha256=CL3ij3uGK8UOMggLXf0MctEydLbyi-9zvkXN5Teuu9c,1424 +django/contrib/redirects/locale/sv/LC_MESSAGES/django.mo,sha256=2j_IyOgbM_yED5lF10r7KGguEC2qX58dRIVogWj5PVY,1134 +django/contrib/redirects/locale/sv/LC_MESSAGES/django.po,sha256=lIFNLfEondtzlwlG3tDf3AH59uEotLtj-XdL87c-QUo,1404 +django/contrib/redirects/locale/sw/LC_MESSAGES/django.mo,sha256=qQjxB8Z6uKoNOa3wI6aDiAYLpWhx7z2yI7nEbXtMOXc,1165 +django/contrib/redirects/locale/sw/LC_MESSAGES/django.po,sha256=rAAmAwjvy69tVeB-QeccIS8CMA96XLeWdfRwDy3_QA0,1385 +django/contrib/redirects/locale/ta/LC_MESSAGES/django.mo,sha256=AE6Py2_CV2gQKjKQAa_UgkLT9i61x3i1hegQpRGuZZM,1502 +django/contrib/redirects/locale/ta/LC_MESSAGES/django.po,sha256=ojdq8p4HnwtK0n6By2I6_xuucOpJIobJEGRMGc_TrS8,1700 +django/contrib/redirects/locale/te/LC_MESSAGES/django.mo,sha256=Gtcs4cbgrD7-bSkPKiPbM5DcjONS2fSdHhvWdbs_E1M,467 +django/contrib/redirects/locale/te/LC_MESSAGES/django.po,sha256=RT-t3TjcOLyNQQWljVrIcPWErKssh_HQMyGujloy-EI,939 +django/contrib/redirects/locale/tg/LC_MESSAGES/django.mo,sha256=6e4Pk9vX1csvSz80spVLhNTd3N251JrXaCga9n60AP8,782 +django/contrib/redirects/locale/tg/LC_MESSAGES/django.po,sha256=2Cmle5usoNZBo8nTfAiqCRq3KqN1WKKdc-mogUOJm9I,1177 +django/contrib/redirects/locale/th/LC_MESSAGES/django.mo,sha256=1l6eO0k1KjcmuRJKUS4ZdtJGhAUmUDMAMIeNwEobQqY,1331 +django/contrib/redirects/locale/th/LC_MESSAGES/django.po,sha256=DVVqpGC6zL8Hy8e6P8ZkhKbvcMJmXV5euLxmfoTCtms,1513 +django/contrib/redirects/locale/tk/LC_MESSAGES/django.mo,sha256=NkxO6C7s1HHT1Jrmwad9zaD3pPyW_sPuZz3F2AGUD7M,1155 +django/contrib/redirects/locale/tk/LC_MESSAGES/django.po,sha256=0EQj1I1oNbAovKmF7o2rQ8_QsQiYqEFDab2KlCFw0s0,1373 +django/contrib/redirects/locale/tr/LC_MESSAGES/django.mo,sha256=-qySxKYwxfFO79cBytvzTBeFGdio1wJlM5DeBBfdxns,1133 +django/contrib/redirects/locale/tr/LC_MESSAGES/django.po,sha256=-03z3YMI6tlt12xwFI2lWchOxiIVbkdVRhghaCoMKlk,1408 +django/contrib/redirects/locale/tt/LC_MESSAGES/django.mo,sha256=Hf1JXcCGNwedxy1nVRM_pQ0yUebC-tvOXr7P0h86JyI,1178 +django/contrib/redirects/locale/tt/LC_MESSAGES/django.po,sha256=2WCyBQtqZk-8GXgtu-x94JYSNrryy2QoMnirhiBrgV0,1376 +django/contrib/redirects/locale/udm/LC_MESSAGES/django.mo,sha256=CNmoKj9Uc0qEInnV5t0Nt4ZnKSZCRdIG5fyfSsqwky4,462 +django/contrib/redirects/locale/udm/LC_MESSAGES/django.po,sha256=xsxlm4itpyLlLdPQRIHLuvTYRvruhM3Ezc9jtp3XSm4,934 +django/contrib/redirects/locale/ug/LC_MESSAGES/django.mo,sha256=qV4UXMJUeNM2vw0LWn-YR9TDn1sQVvnEUcXh7_AX3Jo,1409 +django/contrib/redirects/locale/ug/LC_MESSAGES/django.po,sha256=dilTTU3q5BCYiUIgpjncD3ijPaQgp1l73poSrsZiUUc,1633 +django/contrib/redirects/locale/uk/LC_MESSAGES/django.mo,sha256=QbN1ABfbr2YbZQXz2U4DI-6iTvWoKPrLAn5tGq57G5Y,1569 +django/contrib/redirects/locale/uk/LC_MESSAGES/django.po,sha256=pH9M4ilsJneoHw6E1E3T54QCHGS_i4tlhDc0nbAJP8I,1949 +django/contrib/redirects/locale/ur/LC_MESSAGES/django.mo,sha256=CQkt-yxyAaTd_Aj1ZZC8s5-4fI2TRyTEZ-SYJZgpRrQ,1138 +django/contrib/redirects/locale/ur/LC_MESSAGES/django.po,sha256=CkhmN49PvYTccvlSRu8qGpcbx2C-1aY7K3Lq1VC2fuM,1330 +django/contrib/redirects/locale/uz/LC_MESSAGES/django.mo,sha256=vD0Y920SSsRsLROKFaU6YM8CT5KjQxJcgMh5bZ4Pugo,743 +django/contrib/redirects/locale/uz/LC_MESSAGES/django.po,sha256=G2Rj-6g8Vse2Bp8L_hGIO84S--akagMXj8gSa7F2lK4,1195 +django/contrib/redirects/locale/vi/LC_MESSAGES/django.mo,sha256=BquXycJKh-7-D9p-rGUNnjqzs1d6S1YhEJjFW8_ARFA,1106 +django/contrib/redirects/locale/vi/LC_MESSAGES/django.po,sha256=xsCASrGZNbQk4d1mhsTZBcCpPJ0KO6Jr4Zz1wfnL67s,1301 +django/contrib/redirects/locale/zh_Hans/LC_MESSAGES/django.mo,sha256=iftb_HccNV383_odHbB6Tikn2h7EtP_9QK-Plq2xwTY,1100 +django/contrib/redirects/locale/zh_Hans/LC_MESSAGES/django.po,sha256=xZmfuCEYx7ou_qvtxBcBly5mBmkSBEhnx0xqJj3nvMw,1490 +django/contrib/redirects/locale/zh_Hant/LC_MESSAGES/django.mo,sha256=Dj3gCstbzcxZyR6iL-U_ridpKcyDI8UIAohw8Rq82bM,1108 +django/contrib/redirects/locale/zh_Hant/LC_MESSAGES/django.po,sha256=UvNH_gQtAhWqN-d3qGOB3nuqrKqFhxjIGu09WsZ7_oQ,1413 +django/contrib/redirects/middleware.py,sha256=ydqidqi5JTaoguEFQBRzLEkU3HeiohgVsFglHUE-HIU,1921 +django/contrib/redirects/migrations/0001_initial.py,sha256=0mXB5TgK_fwYbmbB_e7tKSjgOvpHWnZXg0IFcVtnmfU,2101 +django/contrib/redirects/migrations/0002_alter_redirect_new_path_help_text.py,sha256=RXPdSbYewnW1bjjXxNqUIL-qIeSxdBUehBp0BjfRl8o,635 +django/contrib/redirects/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/contrib/redirects/migrations/__pycache__/0001_initial.cpython-312.pyc,, +django/contrib/redirects/migrations/__pycache__/0002_alter_redirect_new_path_help_text.cpython-312.pyc,, +django/contrib/redirects/migrations/__pycache__/__init__.cpython-312.pyc,, +django/contrib/redirects/models.py,sha256=KJ6mj0BS243BNPKp26K7OSqcT9j49FPth5m0gNWWxFM,1083 +django/contrib/sessions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/contrib/sessions/__pycache__/__init__.cpython-312.pyc,, +django/contrib/sessions/__pycache__/apps.cpython-312.pyc,, +django/contrib/sessions/__pycache__/base_session.cpython-312.pyc,, +django/contrib/sessions/__pycache__/exceptions.cpython-312.pyc,, +django/contrib/sessions/__pycache__/middleware.cpython-312.pyc,, +django/contrib/sessions/__pycache__/models.cpython-312.pyc,, +django/contrib/sessions/__pycache__/serializers.cpython-312.pyc,, +django/contrib/sessions/apps.py,sha256=5WIMqa3ymqEvYMnFHe3uWZB8XSijUF_NSgaorRD50Lg,194 +django/contrib/sessions/backends/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/contrib/sessions/backends/__pycache__/__init__.cpython-312.pyc,, +django/contrib/sessions/backends/__pycache__/base.cpython-312.pyc,, +django/contrib/sessions/backends/__pycache__/cache.cpython-312.pyc,, +django/contrib/sessions/backends/__pycache__/cached_db.cpython-312.pyc,, +django/contrib/sessions/backends/__pycache__/db.cpython-312.pyc,, +django/contrib/sessions/backends/__pycache__/file.cpython-312.pyc,, +django/contrib/sessions/backends/__pycache__/signed_cookies.cpython-312.pyc,, +django/contrib/sessions/backends/base.py,sha256=uw4jDJHvBQLI1XJCru-_fYZ2Pzfz1U-iiN8sJxNNaVs,16958 +django/contrib/sessions/backends/cache.py,sha256=m9WMB8we8T1j0k9rHP9_7nBuGzDVap3rGMjoM7N5Xe4,4674 +django/contrib/sessions/backends/cached_db.py,sha256=m348hgYLr-rl760T-Yxm2FJmQ6vbI-nZ2vi5QhIybCI,4148 +django/contrib/sessions/backends/db.py,sha256=qoFg94ju0_KtsPUgFCiKAvxbMOXc1YdGAfjktn00nyA,6907 +django/contrib/sessions/backends/file.py,sha256=FtK6zcbQGwLxtINvqTRHNovLHTDuyk61Y7zwNndSUyg,8200 +django/contrib/sessions/backends/signed_cookies.py,sha256=Al_HQ7OnDs77U9AgTcjN5VUVst5dTP-ZUbhuj6Bgsk0,3218 +django/contrib/sessions/base_session.py,sha256=euTO04sxDEk0lovU38a2TLYXJBA-g6nze9asqK2PoNU,1491 +django/contrib/sessions/exceptions.py,sha256=KhkhXiFwfUflSP_t6wCLOEXz1YjBRTKVNbrLmGhOTLo,359 +django/contrib/sessions/locale/af/LC_MESSAGES/django.mo,sha256=0DS0pgVrMN-bUimDfesgHs8Lgr0loz2c6nJdz58RxyQ,717 +django/contrib/sessions/locale/af/LC_MESSAGES/django.po,sha256=ZJRLBshQCAiTTAUycdB3MZIadLeHR5LxbSlDvSWLnEo,838 +django/contrib/sessions/locale/ar/LC_MESSAGES/django.mo,sha256=yoepqaR68PTGLx--cAOzP94Sqyl5xIYpeQ0IFWgY380,846 +django/contrib/sessions/locale/ar/LC_MESSAGES/django.po,sha256=ZgwtBYIdtnqp_8nKHXF1NVJFzQU81-3yv9b7STrQHMc,995 +django/contrib/sessions/locale/ar_DZ/LC_MESSAGES/django.mo,sha256=_iSasR22CxvNWfei6aE_24woPhhhvNzQl5FUO_649dc,817 +django/contrib/sessions/locale/ar_DZ/LC_MESSAGES/django.po,sha256=vop5scstamgFSnO_FWXCEnI7R1N26t7jy_mZUAfETcY,978 +django/contrib/sessions/locale/ast/LC_MESSAGES/django.mo,sha256=hz2m-PkrHby2CKfIOARj6kCzisT-Vs0syfDSTx_iVVw,702 +django/contrib/sessions/locale/ast/LC_MESSAGES/django.po,sha256=M90j1Nx6oDJ16hguUkfKYlyb5OymUeZ5xzPixWxSC7I,846 +django/contrib/sessions/locale/az/LC_MESSAGES/django.mo,sha256=_4XcYdtRasbCjRoaWGoULsXX2cEa--KdRdqbnGoaRuM,731 +django/contrib/sessions/locale/az/LC_MESSAGES/django.po,sha256=qYd7vz6A-hHQNwewzI6wEsxRVLdoc2xLGm1RPW0Hxc4,891 +django/contrib/sessions/locale/be/LC_MESSAGES/django.mo,sha256=FHZ72QuOd-vAOjOXisLs4CaEk7uZuzjO_EfUSB6754M,854 +django/contrib/sessions/locale/be/LC_MESSAGES/django.po,sha256=tHsYVn3XNTcukB0SrHUWP1iV763rrQHCimOyJHRPiek,1023 +django/contrib/sessions/locale/bg/LC_MESSAGES/django.mo,sha256=fFZ8EgRlJ1Z-IP8gPtsUXAnqVHbqQRZpYv6PLWNlNVA,759 +django/contrib/sessions/locale/bg/LC_MESSAGES/django.po,sha256=tXcaDPNmFIv0RU-7sGscRkLCbKEgTBowzVj3AYymarY,997 +django/contrib/sessions/locale/bn/LC_MESSAGES/django.mo,sha256=0BdFN7ou9tmoVG00fCA-frb1Tri3iKz43W7SWal398s,762 +django/contrib/sessions/locale/bn/LC_MESSAGES/django.po,sha256=LycmTel6LXV2HGGN6qzlAfID-cVEQCNnW1Nv_hbWXJk,909 +django/contrib/sessions/locale/br/LC_MESSAGES/django.mo,sha256=6ubPQUyXX08KUssyVZBMMkTlD94mlA6wzsteAMiZ8C8,1027 +django/contrib/sessions/locale/br/LC_MESSAGES/django.po,sha256=LKxGGHOQejKpUp18rCU2FXW8D_H3WuP_P6dPlEluwcE,1201 +django/contrib/sessions/locale/bs/LC_MESSAGES/django.mo,sha256=M7TvlJMrSUAFhp7oUSpUKejnbTuIK-19yiGBBECl9Sc,759 +django/contrib/sessions/locale/bs/LC_MESSAGES/django.po,sha256=Ur0AeRjXUsLgDJhcGiw75hRk4Qe98DzPBOocD7GFDRQ,909 +django/contrib/sessions/locale/ca/LC_MESSAGES/django.mo,sha256=tbaZ48PaihGGD9-2oTKiMFY3kbXjU59nNciCRINOBNk,738 +django/contrib/sessions/locale/ca/LC_MESSAGES/django.po,sha256=tJuJdehKuD9aXOauWOkE5idQhsVsLbeg1Usmc6N_SP0,906 +django/contrib/sessions/locale/ckb/LC_MESSAGES/django.mo,sha256=qTCUlxmStU9w1nXRAc_gRodaN6ojJK_XAxDXoYC5vQI,741 +django/contrib/sessions/locale/ckb/LC_MESSAGES/django.po,sha256=F2bHLL66fWF5_VTM5QvNUFakY7gPRDr1qCjW6AkYxec,905 +django/contrib/sessions/locale/cs/LC_MESSAGES/django.mo,sha256=wEFP4NNaRQDbcbw96UC906jN4rOrlPJMn60VloXr944,759 +django/contrib/sessions/locale/cs/LC_MESSAGES/django.po,sha256=7XkKESwfOmbDRDbUYr1f62-fDOuyI-aCqLGaEiDrmX8,962 +django/contrib/sessions/locale/cy/LC_MESSAGES/django.mo,sha256=GeWVeV2PvgLQV8ecVUA2g3-VvdzMsedgIDUSpn8DByk,774 +django/contrib/sessions/locale/cy/LC_MESSAGES/django.po,sha256=zo18MXtkEdO1L0Q6ewFurx3lsEWTCdh0JpQJTmvw5bY,952 +django/contrib/sessions/locale/da/LC_MESSAGES/django.mo,sha256=7_YecCzfeYQp9zVYt2B7MtjhAAuVb0BcK2D5Qv_uAbg,681 +django/contrib/sessions/locale/da/LC_MESSAGES/django.po,sha256=qX_Oo7niVo57bazlIYFA6bnVmPBclUUTWvZFYNLaG04,880 +django/contrib/sessions/locale/de/LC_MESSAGES/django.mo,sha256=N3kTal0YK9z7Te3zYGLbJmoSB6oWaviWDLGdPlsPa9g,721 +django/contrib/sessions/locale/de/LC_MESSAGES/django.po,sha256=0qnfDeCUQN2buKn6R0MvwhQP05XWxSu-xgvfxvnJe3k,844 +django/contrib/sessions/locale/dsb/LC_MESSAGES/django.mo,sha256=RABl3WZmY6gLh4IqmTUhoBEXygDzjp_5lLF1MU9U5fA,810 +django/contrib/sessions/locale/dsb/LC_MESSAGES/django.po,sha256=cItKs5tASYHzDxfTg0A_dgBQounpzoGyOEFn18E_W_g,934 +django/contrib/sessions/locale/el/LC_MESSAGES/django.mo,sha256=QbTbmcfgc8_4r5hFrIghDhk2XQ4f8_emKmqupMG2ah0,809 +django/contrib/sessions/locale/el/LC_MESSAGES/django.po,sha256=HeaEbpVmFhhrZt2NsZteYaYoeo8FYKZF0IoNJwtzZkc,971 +django/contrib/sessions/locale/en/LC_MESSAGES/django.mo,sha256=U0OV81NfbuNL9ctF-gbGUG5al1StqN-daB-F-gFBFC8,356 +django/contrib/sessions/locale/en/LC_MESSAGES/django.po,sha256=afaM-IIUZtcRZduojUTS8tT0w7C4Ya9lXgReOvq_iF0,804 +django/contrib/sessions/locale/en_AU/LC_MESSAGES/django.mo,sha256=FgY1K6IVyQjMjXqVZxcsyWW_Tu5ckfrbmIfNYq5P-_E,693 +django/contrib/sessions/locale/en_AU/LC_MESSAGES/django.po,sha256=cMV15gJq8jNSUzkhn7uyOf2JYMFx7BNH1oFYa1vISnc,853 +django/contrib/sessions/locale/en_GB/LC_MESSAGES/django.mo,sha256=T5NQCTYkpERfP9yKbUvixT0VdBt1zGmGB8ITlkVc420,707 +django/contrib/sessions/locale/en_GB/LC_MESSAGES/django.po,sha256=1ks_VE1qpEfPcyKg0HybkTG0-DTttTHTfUPhQCR53sw,849 +django/contrib/sessions/locale/eo/LC_MESSAGES/django.mo,sha256=eBvYQbZS_WxVV3QCSZAOyHNIljC2ZXxVc4mktUuXVjI,727 +django/contrib/sessions/locale/eo/LC_MESSAGES/django.po,sha256=Ru9xicyTgHWVHh26hO2nQNFRQmwBnYKEagsS8TZRv3E,917 +django/contrib/sessions/locale/es/LC_MESSAGES/django.mo,sha256=jbHSvHjO2OCLlBD66LefocKOEbefWbPhj-l3NugiWuc,734 +django/contrib/sessions/locale/es/LC_MESSAGES/django.po,sha256=fY5WXeONEXHeuBlH0LkvzdZ2CSgbvLZ8BJc429aIbhI,909 +django/contrib/sessions/locale/es_AR/LC_MESSAGES/django.mo,sha256=_8icF2dMUWj4WW967rc5npgndXBAdJrIiz_VKf5D-Rw,694 +django/contrib/sessions/locale/es_AR/LC_MESSAGES/django.po,sha256=AnmvjeOA7EBTJ6wMOkCl8JRLVYRU8KS0egPijcKutns,879 +django/contrib/sessions/locale/es_CO/LC_MESSAGES/django.mo,sha256=UP7ia0gV9W-l0Qq5AS4ZPadJtml8iuzzlS5C9guMgh8,754 +django/contrib/sessions/locale/es_CO/LC_MESSAGES/django.po,sha256=_XeiiRWvDaGjofamsRHr5up_EQvcw0w-GLLeWK27Af8,878 +django/contrib/sessions/locale/es_MX/LC_MESSAGES/django.mo,sha256=MDM0K3xMvyf8ymvAurHYuacpxfG_YfJFyNnp1uuc6yY,756 +django/contrib/sessions/locale/es_MX/LC_MESSAGES/django.po,sha256=Y7VNa16F_yyK7_XJvF36rR2XNW8aBJK4UDweufyXpxE,892 +django/contrib/sessions/locale/es_VE/LC_MESSAGES/django.mo,sha256=59fZBDut-htCj38ZUoqPjhXJPjZBz-xpU9__QFr3kLs,486 +django/contrib/sessions/locale/es_VE/LC_MESSAGES/django.po,sha256=zWjgB0AmsmhX2tjk1PgldttqY56Czz8epOVCaYWXTLU,761 +django/contrib/sessions/locale/et/LC_MESSAGES/django.mo,sha256=aL1jZWourEC7jtjsuBZHD-Gw9lpL6L1SoqjTtzguxD0,737 +django/contrib/sessions/locale/et/LC_MESSAGES/django.po,sha256=VNBYohAOs59jYWkjVMY-v2zwVy5AKrtBbFRJZLwdCFg,899 +django/contrib/sessions/locale/eu/LC_MESSAGES/django.mo,sha256=M9piOB_t-ZnfN6pX-jeY0yWh2S_5cCuo1oGiy7X65A4,728 +django/contrib/sessions/locale/eu/LC_MESSAGES/django.po,sha256=bHdSoknoH0_dy26e93tWVdO4TT7rnCPXlSLPsYAhwyw,893 +django/contrib/sessions/locale/fa/LC_MESSAGES/django.mo,sha256=6DdJcqaYuBnhpFFHR42w-RqML0eQPFMAUEEDY0Redy8,755 +django/contrib/sessions/locale/fa/LC_MESSAGES/django.po,sha256=rklhNf0UFl2bM6mt7x9lWvfzPH4XWGbrW9Gc2w-9rzg,922 +django/contrib/sessions/locale/fi/LC_MESSAGES/django.mo,sha256=oAugvlTEvJmG8KsZw09WcfnifYY5oHnGo4lxcxqKeaY,721 +django/contrib/sessions/locale/fi/LC_MESSAGES/django.po,sha256=BVVrjbZZtLGAuZ9HK63p769CbjZFZMlS4BewSMfNMKU,889 +django/contrib/sessions/locale/fr/LC_MESSAGES/django.mo,sha256=aDGYdzx2eInF6IZ-UzPDEJkuYVPnvwVND3qVuSfJNWw,692 +django/contrib/sessions/locale/fr/LC_MESSAGES/django.po,sha256=hARxGdtBOzEZ_iVyzkNvcKlgyM8fOkdXTH3upj2XFYM,893 +django/contrib/sessions/locale/fy/LC_MESSAGES/django.mo,sha256=YQQy7wpjBORD9Isd-p0lLzYrUgAqv770_56-vXa0EOc,476 +django/contrib/sessions/locale/fy/LC_MESSAGES/django.po,sha256=U-VEY4WbmIkmrnPK4Mv-B-pbdtDzusBCVmE8iHyvzFU,751 +django/contrib/sessions/locale/ga/LC_MESSAGES/django.mo,sha256=zTrydRCRDiUQwF4tQ3cN1-5w36i6KptagsdA5_SaGy0,747 +django/contrib/sessions/locale/ga/LC_MESSAGES/django.po,sha256=Qpk1JaUWiHSEPdgBk-O_KfvGzwlZ4IAA6c6-nsJe400,958 +django/contrib/sessions/locale/gd/LC_MESSAGES/django.mo,sha256=Yi8blY_fUD5YTlnUD6YXZvv1qjm4QDriO6CJIUe1wIk,791 +django/contrib/sessions/locale/gd/LC_MESSAGES/django.po,sha256=fEa40AUqA5vh743Zqv0FO2WxSFXGYk4IzUR4BoaP-C4,890 +django/contrib/sessions/locale/gl/LC_MESSAGES/django.mo,sha256=lC8uu-mKxt48DLzRvaxz-mOqR0ZfvEuaBI1Hi_nuMpo,692 +django/contrib/sessions/locale/gl/LC_MESSAGES/django.po,sha256=L34leIfwmRJoqX0jfefbNHz0CmON5cSaRXeh7pmFqCY,943 +django/contrib/sessions/locale/he/LC_MESSAGES/django.mo,sha256=qhgjSWfGAOgl-i7iwzSrJttx88xcj1pB0iLkEK64mJU,809 +django/contrib/sessions/locale/he/LC_MESSAGES/django.po,sha256=KvQG6wOpokM-2JkhWnB2UUQacy5Ie1402K_pH2zUOu0,1066 +django/contrib/sessions/locale/hi/LC_MESSAGES/django.mo,sha256=naqxOjfAnNKy3qqnUG-4LGf9arLRJpjyWWmSj5tEfao,759 +django/contrib/sessions/locale/hi/LC_MESSAGES/django.po,sha256=WnTGvOz9YINMcUJg2BYCaHceZLKaTfsba_0AZtRNP38,951 +django/contrib/sessions/locale/hr/LC_MESSAGES/django.mo,sha256=axyJAmXmadpFxIhu8rroVD8NsGGadQemh9-_ZDo7L1U,819 +django/contrib/sessions/locale/hr/LC_MESSAGES/django.po,sha256=3G-qOYXBO-eMWWsa5LwTCW9M1oF0hlWgEz7hAK8hJqI,998 +django/contrib/sessions/locale/hsb/LC_MESSAGES/django.mo,sha256=_OXpOlCt4KU0i65Iw4LMjSsyn__E9wH20l9vDNBSEzw,805 +django/contrib/sessions/locale/hsb/LC_MESSAGES/django.po,sha256=yv3vX_UCDrdl07GQ79Mnytwgz2oTvySYOG9enzMpFJA,929 +django/contrib/sessions/locale/hu/LC_MESSAGES/django.mo,sha256=ik40LnsWkKYEUioJB9e11EX9XZ-qWMa-S7haxGhM-iI,727 +django/contrib/sessions/locale/hu/LC_MESSAGES/django.po,sha256=1-UWEEsFxRwmshP2x4pJbitWIGZ1YMeDDxnAX-XGNxc,884 +django/contrib/sessions/locale/hy/LC_MESSAGES/django.mo,sha256=x6VQWGdidRJFUJme-6jf1pcitktcQHQ7fhmw2UBej1Q,815 +django/contrib/sessions/locale/hy/LC_MESSAGES/django.po,sha256=eRMa3_A2Vx195mx2lvza1v-wcEcEeMrU63f0bgPPFjc,893 +django/contrib/sessions/locale/ia/LC_MESSAGES/django.mo,sha256=-o4aQPNJeqSDRSLqcKuYvJuKNBbFqDJDe3IzHgSgZeQ,744 +django/contrib/sessions/locale/ia/LC_MESSAGES/django.po,sha256=PULLDd3QOIU03kgradgQzT6IicoPhLPlUvFgRl-tGbA,869 +django/contrib/sessions/locale/id/LC_MESSAGES/django.mo,sha256=mOaIF0NGOO0-dt-nhHL-i3cfvt9-JKTbyUkFWPqDS9Y,705 +django/contrib/sessions/locale/id/LC_MESSAGES/django.po,sha256=EA6AJno3CaFOO-dEU9VQ_GEI-RAXS0v0uFqn1RJGjEs,914 +django/contrib/sessions/locale/io/LC_MESSAGES/django.mo,sha256=_rqAY6reegqmxmWc-pW8_kDaG9zflZuD-PGOVFsjRHo,683 +django/contrib/sessions/locale/io/LC_MESSAGES/django.po,sha256=tbKMxGuB6mh_m0ex9rO9KkTy6qyuRW2ERrQsGwmPiaw,840 +django/contrib/sessions/locale/is/LC_MESSAGES/django.mo,sha256=3QeMl-MCnBie9Sc_aQ1I7BrBhkbuArpoSJP95UEs4lg,706 +django/contrib/sessions/locale/is/LC_MESSAGES/django.po,sha256=LADIFJv8L5vgDJxiQUmKPSN64zzzrIKImh8wpLBEVWQ,853 +django/contrib/sessions/locale/it/LC_MESSAGES/django.mo,sha256=qTY3O-0FbbpZ5-BR5xOJWP0rlnIkBZf-oSawW_YJWlk,726 +django/contrib/sessions/locale/it/LC_MESSAGES/django.po,sha256=hEv0iTGLuUvEBk-lF-w7a9P3ifC0-eiodNtuSc7cXhg,869 +django/contrib/sessions/locale/ja/LC_MESSAGES/django.mo,sha256=hbv9FzWzXRIGRh_Kf_FLQB34xfmPU_9RQKn9u1kJqGU,757 +django/contrib/sessions/locale/ja/LC_MESSAGES/django.po,sha256=ppGx5ekOWGgDF3vzyrWsqnFUZ-sVZZhiOhvAzl_8v54,920 +django/contrib/sessions/locale/ka/LC_MESSAGES/django.mo,sha256=VZ-ysrDbea_-tMV-1xtlTeW62IAy2RWR94V3Y1iSh4U,803 +django/contrib/sessions/locale/ka/LC_MESSAGES/django.po,sha256=hqiWUiATlrc7qISF7ndlelIrFwc61kzhKje9l-DY6V4,955 +django/contrib/sessions/locale/kab/LC_MESSAGES/django.mo,sha256=W_yE0NDPJrVznA2Qb89VuprJNwyxSg59ovvjkQe6mAs,743 +django/contrib/sessions/locale/kab/LC_MESSAGES/django.po,sha256=FJeEuv4P3NT_PpWHEUsQVSWXu65nYkJ6Z2AlbSKb0ZA,821 +django/contrib/sessions/locale/kk/LC_MESSAGES/django.mo,sha256=FROGz_MuIhsIU5_-EYV38cHnRZrc3-OxxkBeK0ax9Rk,810 +django/contrib/sessions/locale/kk/LC_MESSAGES/django.po,sha256=P-oHO3Oi3V_RjWHjEAHdTrDfTwKP2xh3yJh7BlXL1VQ,1029 +django/contrib/sessions/locale/km/LC_MESSAGES/django.mo,sha256=VOuKsIG2DEeCA5JdheuMIeJlpmAhKrI6lD4KWYqIIPk,929 +django/contrib/sessions/locale/km/LC_MESSAGES/django.po,sha256=09i6Nd_rUK7UqFpJ70LMXTR6xS0NuGETRLe0CopMVBk,1073 +django/contrib/sessions/locale/kn/LC_MESSAGES/django.mo,sha256=TMZ71RqNR6zI20BeozyLa9cjYrWlvfIajGDfpnHd3pQ,810 +django/contrib/sessions/locale/kn/LC_MESSAGES/django.po,sha256=whdM8P74jkAAHvjgJN8Q77dYd9sIsf_135ID8KBu-a8,990 +django/contrib/sessions/locale/ko/LC_MESSAGES/django.mo,sha256=EUyVQYGtiFJg01mP30a0iOqBYHvpzHAcGTZM28Ubs5Q,700 +django/contrib/sessions/locale/ko/LC_MESSAGES/django.po,sha256=PjntvSzRz_Aekj9VFhGsP5yO6rAsxTMzwFj58JqToIU,855 +django/contrib/sessions/locale/ky/LC_MESSAGES/django.mo,sha256=ME7YUgKOYQz9FF_IdrqHImieEONDrkcn4T3HxTZKSV0,742 +django/contrib/sessions/locale/ky/LC_MESSAGES/django.po,sha256=JZHTs9wYmlWzilRMyp-jZWFSzGxWtPiQefPmLL9yhtM,915 +django/contrib/sessions/locale/lb/LC_MESSAGES/django.mo,sha256=xokesKl7h7k9dXFKIJwGETgwx1Ytq6mk2erBSxkgY-o,474 +django/contrib/sessions/locale/lb/LC_MESSAGES/django.po,sha256=3igeAnQjDg6D7ItBkQQhyBoFJOZlBxT7NoZiExwD-Fo,749 +django/contrib/sessions/locale/lt/LC_MESSAGES/django.mo,sha256=L9w8-qxlDlCqR_2P0PZegfhok_I61n0mJ1koJxzufy4,786 +django/contrib/sessions/locale/lt/LC_MESSAGES/django.po,sha256=dEefLGtg5flFr_v4vHS5HhK1kxx9WYWTw98cvEn132M,1023 +django/contrib/sessions/locale/lv/LC_MESSAGES/django.mo,sha256=exEzDUNwNS0GLsUkKPu_SfqBxU7T6VRA_T2schIQZ88,753 +django/contrib/sessions/locale/lv/LC_MESSAGES/django.po,sha256=fBgQEbsGg1ECVm1PFDrS2sfKs2eqmsqrSYzx9ELotNQ,909 +django/contrib/sessions/locale/mk/LC_MESSAGES/django.mo,sha256=4oTWp8-qzUQBiqG32hNieABgT3O17q2C4iEhcFtAxLA,816 +django/contrib/sessions/locale/mk/LC_MESSAGES/django.po,sha256=afApb5YRhPXUWR8yF_TTym73u0ov7lWiwRda1-uNiLY,988 +django/contrib/sessions/locale/ml/LC_MESSAGES/django.mo,sha256=tff5TsHILSV1kAAB3bzHQZDB9fgMglZJTofzCunGBzc,854 +django/contrib/sessions/locale/ml/LC_MESSAGES/django.po,sha256=eRkeupt42kUey_9vJmlH8USshnXPZ8M7aYHq88u-5iY,1016 +django/contrib/sessions/locale/mn/LC_MESSAGES/django.mo,sha256=CcCH2ggVYrD29Q11ZMthcscBno2ePkQDbZfoYquTRPM,784 +django/contrib/sessions/locale/mn/LC_MESSAGES/django.po,sha256=nvcjbJzXiDvWFXrM5CxgOQIq8XucsZEUVdYkY8LnCRE,992 +django/contrib/sessions/locale/mr/LC_MESSAGES/django.mo,sha256=rFOGgJ9q9AUlEV_XT-Sycs9eaDtD9so7ZNBTkI-E-Ew,768 +django/contrib/sessions/locale/mr/LC_MESSAGES/django.po,sha256=ZMojWauBzqXR7YSTJ5eAVAX4Xqbv6WEoYOpNL4GQaqU,907 +django/contrib/sessions/locale/ms/LC_MESSAGES/django.mo,sha256=rFi4D_ZURYUPjs5AqJ66bW70yL7AekAKWnrZRBvGPiE,649 +django/contrib/sessions/locale/ms/LC_MESSAGES/django.po,sha256=nZuJ_D0JZUzmGensLa7tSgzbBo05qgQcuHmte2oU6WQ,786 +django/contrib/sessions/locale/my/LC_MESSAGES/django.mo,sha256=8zzzyfJYok969YuAwDUaa6YhxaSi3wcXy3HRNXDb_70,872 +django/contrib/sessions/locale/my/LC_MESSAGES/django.po,sha256=mfs0zRBI0tugyyEfXBZzZ_FMIohydq6EYPZGra678pw,997 +django/contrib/sessions/locale/nb/LC_MESSAGES/django.mo,sha256=hfJ1NCFgcAAtUvNEpaZ9b31PyidHxDGicifUWANIbM8,717 +django/contrib/sessions/locale/nb/LC_MESSAGES/django.po,sha256=yXr6oYuiu01oELdQKuztQFWz8x5C2zS5OzEfU9MHJsU,908 +django/contrib/sessions/locale/ne/LC_MESSAGES/django.mo,sha256=slFgMrqGVtLRHdGorLGPpB09SM92_WnbnRR0rlpNlPQ,802 +django/contrib/sessions/locale/ne/LC_MESSAGES/django.po,sha256=1vyoiGnnaB8f9SFz8PGfzpw6V_NoL78DQwjjnB6fS98,978 +django/contrib/sessions/locale/nl/LC_MESSAGES/django.mo,sha256=84BTlTyxa409moKbQMFyJisI65w22p09qjJHBAmQe-g,692 +django/contrib/sessions/locale/nl/LC_MESSAGES/django.po,sha256=smRr-QPGm6h6hdXxghggWES8b2NnL7yDQ07coUypa8g,909 +django/contrib/sessions/locale/nn/LC_MESSAGES/django.mo,sha256=cytH72J3yS1PURcgyrD8R2PV5d3SbPE73IAqOMBPPVg,667 +django/contrib/sessions/locale/nn/LC_MESSAGES/django.po,sha256=y9l60yy_W3qjxWzxgJg5VgEH9KAIHIQb5hv7mgnep9w,851 +django/contrib/sessions/locale/os/LC_MESSAGES/django.mo,sha256=xVux1Ag45Jo9HQBbkrRzcWrNjqP09nMQl16jIh0YVlo,732 +django/contrib/sessions/locale/os/LC_MESSAGES/django.po,sha256=1hG5Vsz2a2yW05_Z9cTNrBKtK9VRPZuQdx4KJ_0n98o,892 +django/contrib/sessions/locale/pa/LC_MESSAGES/django.mo,sha256=qEx4r_ONwXK1-qYD5uxxXEQPqK5I6rf38QZoUSm7UVA,771 +django/contrib/sessions/locale/pa/LC_MESSAGES/django.po,sha256=M7fmVGP8DtZGEuTV3iJhuWWqILVUTDZvUey_mrP4_fM,918 +django/contrib/sessions/locale/pl/LC_MESSAGES/django.mo,sha256=F9CQb7gQ1ltP6B82JNKu8IAsTdHK5TNke0rtDIgNz3c,828 +django/contrib/sessions/locale/pl/LC_MESSAGES/django.po,sha256=C_MJBB-vwTZbx-t4-mzun-RxHhdOVv04b6xrWdnTv8E,1084 +django/contrib/sessions/locale/pt/LC_MESSAGES/django.mo,sha256=dlJF7hF4GjLmQPdAJhtf-FCKX26XsOmZlChOcxxIqPk,738 +django/contrib/sessions/locale/pt/LC_MESSAGES/django.po,sha256=cOycrw3HCHjSYBadpalyrg5LdRTlqZCTyMh93GOQ8O0,896 +django/contrib/sessions/locale/pt_BR/LC_MESSAGES/django.mo,sha256=XHNF5D8oXIia3e3LYwxd46a2JOgDc_ykvc8yuo21fT0,757 +django/contrib/sessions/locale/pt_BR/LC_MESSAGES/django.po,sha256=K_zxKaUKngWPFpvHgXOcymJEsiONSw-OrVrroRXmUUk,924 +django/contrib/sessions/locale/ro/LC_MESSAGES/django.mo,sha256=WR9I9Gum_pq7Qg2Gzhf-zAv43OwR_uDtsbhtx4Ta5gE,776 +django/contrib/sessions/locale/ro/LC_MESSAGES/django.po,sha256=fEgVxL_0Llnjspu9EsXBf8AVL0DGdfF7NgV88G7WN1E,987 +django/contrib/sessions/locale/ru/LC_MESSAGES/django.mo,sha256=n-8vXR5spEbdfyeWOYWC_6kBbAppNoRrWYgqKFY6gJA,913 +django/contrib/sessions/locale/ru/LC_MESSAGES/django.po,sha256=sNqNGdoof6eXzFlh4YIp1O54MdDOAFDjD3GvAFsNP8k,1101 +django/contrib/sessions/locale/sk/LC_MESSAGES/django.mo,sha256=Yntm624Wt410RwuNPU1c-WwQoyrRrBs69VlKMlNUHeQ,766 +django/contrib/sessions/locale/sk/LC_MESSAGES/django.po,sha256=wt7BJk6RpFogJ2Wwa9Mh0mJi9YMpNYKTUSDuDuv1Ong,975 +django/contrib/sessions/locale/sl/LC_MESSAGES/django.mo,sha256=EE6mB8BiYRyAxK6qzurRWcaYVs96FO_4rERYQdtIt3k,770 +django/contrib/sessions/locale/sl/LC_MESSAGES/django.po,sha256=KTjBWyvaNCHbpV9K6vbnavwxxXqf2DlIqVPv7MVFcO8,928 +django/contrib/sessions/locale/sq/LC_MESSAGES/django.mo,sha256=eRaTy3WOC76EYLtMSD4xtJj2h8eE4W-TS4VvCVxI5bw,683 +django/contrib/sessions/locale/sq/LC_MESSAGES/django.po,sha256=9pzp7834LQKafe5fJzC4OKsAd6XfgtEQl6K6hVLaBQM,844 +django/contrib/sessions/locale/sr/LC_MESSAGES/django.mo,sha256=ZDBOYmWIoSyDeT0nYIIFeMtW5jwpr257CbdTZlkVeRQ,855 +django/contrib/sessions/locale/sr/LC_MESSAGES/django.po,sha256=OXQOYeac0ghuzLrwaErJGr1FczuORTu2yroFX5hvRnk,1027 +django/contrib/sessions/locale/sr_Latn/LC_MESSAGES/django.mo,sha256=f3x9f9hTOsJltghjzJMdd8ueDwzxJex6zTXsU-_Hf_Y,757 +django/contrib/sessions/locale/sr_Latn/LC_MESSAGES/django.po,sha256=HKjo7hjSAvgrIvlI0SkgF3zxz8TtKWyBT51UGNhDwek,946 +django/contrib/sessions/locale/sv/LC_MESSAGES/django.mo,sha256=SGbr0K_5iAMA22MfseAldMDgLSEBrI56pCtyV8tMAPc,707 +django/contrib/sessions/locale/sv/LC_MESSAGES/django.po,sha256=vraY3915wBYGeYu9Ro0-TlBeLWqGZP1fbckLv8y47Ys,853 +django/contrib/sessions/locale/sw/LC_MESSAGES/django.mo,sha256=Edhqp8yuBnrGtJqPO7jxobeXN4uU5wKSLrOsFO1F23k,743 +django/contrib/sessions/locale/sw/LC_MESSAGES/django.po,sha256=iY4rN4T-AA2FBQA7DiWWFvrclqKiDYQefqwwVw61-f8,858 +django/contrib/sessions/locale/ta/LC_MESSAGES/django.mo,sha256=qLIThhFQbJKc1_UVr7wVIm1rJfK2rO5m84BCB_oKq7s,801 +django/contrib/sessions/locale/ta/LC_MESSAGES/django.po,sha256=bYqtYf9XgP9IKKFJXh0u64JhRhDvPPUliI1J-NeRpKE,945 +django/contrib/sessions/locale/te/LC_MESSAGES/django.mo,sha256=kteZeivEckt4AmAeKgmgouMQo1qqSQrI8M42B16gMnQ,786 +django/contrib/sessions/locale/te/LC_MESSAGES/django.po,sha256=dQgiNS52RHrL6bV9CEO7Jk9lk3YUQrUBDCg_bP2OSZc,980 +django/contrib/sessions/locale/tg/LC_MESSAGES/django.mo,sha256=N6AiKfV47QTlO5Z_r4SQZXVLtouu-NVSwWkePgD17Tc,747 +django/contrib/sessions/locale/tg/LC_MESSAGES/django.po,sha256=wvvDNu060yqlTxy3swM0x3v6QpvCB9DkfNm0Q-kb9Xk,910 +django/contrib/sessions/locale/th/LC_MESSAGES/django.mo,sha256=D41vbkoYMdYPj3587p-c5yytLVi9pE5xvRZEYhZrxPs,814 +django/contrib/sessions/locale/th/LC_MESSAGES/django.po,sha256=43704TUv4ysKhL8T5MowZwlyv1JZrPyVGrpdIyb3r40,988 +django/contrib/sessions/locale/tk/LC_MESSAGES/django.mo,sha256=pT_hpKCwFT60GUXzD_4z8JOhmh1HRnkZj-QSouVEgUA,699 +django/contrib/sessions/locale/tk/LC_MESSAGES/django.po,sha256=trqXxfyIbh4V4szol0pXETmEWRxAAKywPZ9EzVMVE-I,865 +django/contrib/sessions/locale/tr/LC_MESSAGES/django.mo,sha256=STDnYOeO1d9nSCVf7pSkMq8R7z1aeqq-xAuIYjsofuE,685 +django/contrib/sessions/locale/tr/LC_MESSAGES/django.po,sha256=XYKo0_P5xitYehvjMzEw2MTp_Nza-cIXEECV3dA6BmY,863 +django/contrib/sessions/locale/tt/LC_MESSAGES/django.mo,sha256=Q-FGu_ljTsxXO_EWu7zCzGwoqFXkeoTzWSlvx85VLGc,806 +django/contrib/sessions/locale/tt/LC_MESSAGES/django.po,sha256=UC85dFs_1836noZTuZEzPqAjQMFfSvj7oGmEWOGcfCA,962 +django/contrib/sessions/locale/udm/LC_MESSAGES/django.mo,sha256=CNmoKj9Uc0qEInnV5t0Nt4ZnKSZCRdIG5fyfSsqwky4,462 +django/contrib/sessions/locale/udm/LC_MESSAGES/django.po,sha256=CPml2Fn9Ax_qO5brCFDLPBoTiNdvsvJb1btQ0COwUfY,737 +django/contrib/sessions/locale/ug/LC_MESSAGES/django.mo,sha256=HMwjTByc3HrhFvCt_iOioYZE7JEKLzNlb2DTu6TCgto,748 +django/contrib/sessions/locale/ug/LC_MESSAGES/django.po,sha256=QEdIUuvVMFbOPSCYs6k-61rBwmTUXFCcR1pKn53dXtQ,864 +django/contrib/sessions/locale/uk/LC_MESSAGES/django.mo,sha256=jzNrLuFghQMCHNRQ0ihnKMCicgear0yWiTOLnvdPszw,841 +django/contrib/sessions/locale/uk/LC_MESSAGES/django.po,sha256=4K2geuGjRpJCtNfGPMhYWZlGxUy5xzIoDKA2jL2iGos,1171 +django/contrib/sessions/locale/ur/LC_MESSAGES/django.mo,sha256=FkGIiHegr8HR8zjVyJ9TTW1T9WYtAL5Mg77nRKnKqWk,729 +django/contrib/sessions/locale/ur/LC_MESSAGES/django.po,sha256=qR4QEBTP6CH09XFCzsPSPg2Dv0LqzbRV_I67HO2OUwk,879 +django/contrib/sessions/locale/uz/LC_MESSAGES/django.mo,sha256=asPu0RhMB_Ui1li-OTVL4qIXnM9XpjsYyx5yJldDYBY,744 +django/contrib/sessions/locale/uz/LC_MESSAGES/django.po,sha256=KsHuLgGJt-KDH0h6ND7JLP2dDJAdLVHSlau4DkkfqA8,880 +django/contrib/sessions/locale/vi/LC_MESSAGES/django.mo,sha256=KriTpT-Hgr10DMnY5Bmbd4isxmSFLmav8vg2tuL2Bb8,679 +django/contrib/sessions/locale/vi/LC_MESSAGES/django.po,sha256=M7S46Q0Q961ykz_5FCAN8SXQ54w8tp4rZeZpy6bPtXs,909 +django/contrib/sessions/locale/zh_Hans/LC_MESSAGES/django.mo,sha256=zsbhIMocgB8Yn1XEBxbIIbBh8tLifvvYNlhe5U61ch8,722 +django/contrib/sessions/locale/zh_Hans/LC_MESSAGES/django.po,sha256=tPshgXjEv6pME4N082ztamJhd5whHB2_IV_egdP-LlQ,889 +django/contrib/sessions/locale/zh_Hant/LC_MESSAGES/django.mo,sha256=l6mWJJ_Lbfn3GsvmblZMtyXzgzqgIgroAOCg3DdzQyI,676 +django/contrib/sessions/locale/zh_Hant/LC_MESSAGES/django.po,sha256=MRV_86xy4ILP46qZtxkHGJwWEvXwF5XAvJ16LNMdx3Q,904 +django/contrib/sessions/management/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/contrib/sessions/management/__pycache__/__init__.cpython-312.pyc,, +django/contrib/sessions/management/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/contrib/sessions/management/commands/__pycache__/__init__.cpython-312.pyc,, +django/contrib/sessions/management/commands/__pycache__/clearsessions.cpython-312.pyc,, +django/contrib/sessions/management/commands/clearsessions.py,sha256=pAiO5o7zgButVlYAV93bPnmiwzWP7V5N7-xPtxSkjJg,661 +django/contrib/sessions/middleware.py,sha256=ziZex9xiqxBYl9SC91i4QIDYuoenz4OoKaNO7sXu8kQ,3483 +django/contrib/sessions/migrations/0001_initial.py,sha256=KqQ44jk-5RNcTdqUv95l_UnoMA8cP5O-0lrjoJ8vabk,1148 +django/contrib/sessions/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/contrib/sessions/migrations/__pycache__/0001_initial.cpython-312.pyc,, +django/contrib/sessions/migrations/__pycache__/__init__.cpython-312.pyc,, +django/contrib/sessions/models.py,sha256=BguwuQSDzpeTNXhteYRAcspg1rop431tjFeZUVWZNYc,1250 +django/contrib/sessions/serializers.py,sha256=S9oDsUAjFv2MTlLQA6AoehggKyHXpu6-Qnrqybhgvkg,106 +django/contrib/sitemaps/__init__.py,sha256=hZuWQsKCQHfgPOx1GQPETMzTT9oqzcpp2wDMfGiLhp8,6923 +django/contrib/sitemaps/__pycache__/__init__.cpython-312.pyc,, +django/contrib/sitemaps/__pycache__/apps.cpython-312.pyc,, +django/contrib/sitemaps/__pycache__/views.cpython-312.pyc,, +django/contrib/sitemaps/apps.py,sha256=xYE-mAs37nL8ZAnv052LhUKVUwGYKB3xyPy4t8pwOpw,249 +django/contrib/sitemaps/templates/sitemap.xml,sha256=L092SHTtwtmNJ_Lj_jLrzHhfI0-OKKIw5fpyOfr4qRs,683 +django/contrib/sitemaps/templates/sitemap_index.xml,sha256=SQf9avfFmnT8j-nLEc8lVQQcdhiy_qhnqjssIMti3oU,360 +django/contrib/sitemaps/views.py,sha256=WoBVQN0jHzjrhuB-_tMdbC8S1Hb9TAnVyL1Kk3CcGM4,4657 +django/contrib/sites/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/contrib/sites/__pycache__/__init__.cpython-312.pyc,, +django/contrib/sites/__pycache__/admin.cpython-312.pyc,, +django/contrib/sites/__pycache__/apps.cpython-312.pyc,, +django/contrib/sites/__pycache__/checks.cpython-312.pyc,, +django/contrib/sites/__pycache__/management.cpython-312.pyc,, +django/contrib/sites/__pycache__/managers.cpython-312.pyc,, +django/contrib/sites/__pycache__/middleware.cpython-312.pyc,, +django/contrib/sites/__pycache__/models.cpython-312.pyc,, +django/contrib/sites/__pycache__/requests.cpython-312.pyc,, +django/contrib/sites/__pycache__/shortcuts.cpython-312.pyc,, +django/contrib/sites/admin.py,sha256=IWvGDQUTDPEUsd-uuxfHxJq4syGtddNKUdkP0nmVUMA,214 +django/contrib/sites/apps.py,sha256=uBLHUyQoSuo1Q7NwLTwlvsTuRU1MXwj4t6lRUnIBdwk,562 +django/contrib/sites/checks.py,sha256=AydGM1G1L9mvmTbNMTXRbZzPbHpIiknkRzLh5uFQLLI,366 +django/contrib/sites/locale/af/LC_MESSAGES/django.mo,sha256=A10bZFMs-wUetVfF5UrFwmuiKnN4ZnlrR4Rx8U4Ut1A,786 +django/contrib/sites/locale/af/LC_MESSAGES/django.po,sha256=O0-ZRvmXvV_34kONuqakuXV5OmYbQ569K1Puj3qQNac,907 +django/contrib/sites/locale/ar/LC_MESSAGES/django.mo,sha256=kLoytp2jvhWn6p1c8kNVua2sYAMnrpS4xnbluHD22Vs,947 +django/contrib/sites/locale/ar/LC_MESSAGES/django.po,sha256=HYA3pA29GktzXBP-soUEn9VP2vkZuhVIXVA8TNPCHCs,1135 +django/contrib/sites/locale/ar_DZ/LC_MESSAGES/django.mo,sha256=-ltwY57Th6LNqU3bgOPPP7qWtII5c6rj8Dv8eY7PZ84,918 +django/contrib/sites/locale/ar_DZ/LC_MESSAGES/django.po,sha256=KRTjZ2dFRWVPmE_hC5Hq8eDv3GQs3yQKCgV5ISFmEKk,1079 +django/contrib/sites/locale/ast/LC_MESSAGES/django.mo,sha256=eEvaeiGnZFBPGzKLlRz4M9AHemgJVAb-yNpbpxRqtd0,774 +django/contrib/sites/locale/ast/LC_MESSAGES/django.po,sha256=huBohKzLpdaJRFMFXXSDhDCUOqVqyWXfxb8_lLOkUd0,915 +django/contrib/sites/locale/az/LC_MESSAGES/django.mo,sha256=CjAGI4qGoXN95q4LpCLXLKvaNB33Ocf5SfXdurFBkas,773 +django/contrib/sites/locale/az/LC_MESSAGES/django.po,sha256=E84kNPFhgHmIfYT0uzCnTPGwPkAqKzqwFvJB7pETbVo,933 +django/contrib/sites/locale/be/LC_MESSAGES/django.mo,sha256=HGh78mI50ZldBtQ8jId26SI-lSHv4ZLcveRN2J8VzH8,983 +django/contrib/sites/locale/be/LC_MESSAGES/django.po,sha256=W5FhVJKcmd3WHl2Lpd5NJUsc7_sE_1Pipk3CVPoGPa4,1152 +django/contrib/sites/locale/bg/LC_MESSAGES/django.mo,sha256=a2R52umIQIhnzFaFYSRhQ6nBlywE8RGMj2FUOFmyb0A,904 +django/contrib/sites/locale/bg/LC_MESSAGES/django.po,sha256=awB8RMS-qByhNB6eH2f0Oyxb3SH8waLhrZ--rokGfaI,1118 +django/contrib/sites/locale/bn/LC_MESSAGES/django.mo,sha256=cI3a9_L-OC7gtdyRNaGX7A5w0Za0M4ERnYB7rSNkuRU,925 +django/contrib/sites/locale/bn/LC_MESSAGES/django.po,sha256=8ZxYF16bgtTZSZRZFok6IJxUV02vIztoVx2qXqwO8NM,1090 +django/contrib/sites/locale/br/LC_MESSAGES/django.mo,sha256=rI_dIznbwnadZbxOPtQxZ1pGYePNwcNNXt05iiPkchU,1107 +django/contrib/sites/locale/br/LC_MESSAGES/django.po,sha256=7Ein5Xw73DNGGtdd595Bx6ixfSD-dBXZNBUU44pSLuQ,1281 +django/contrib/sites/locale/bs/LC_MESSAGES/django.mo,sha256=bDeqQNme586LnQRQdvOWaLGZssjOoECef3vMq_OCXno,692 +django/contrib/sites/locale/bs/LC_MESSAGES/django.po,sha256=xRTWInDNiLxikjwsjgW_pYjhy24zOro90-909ns9fig,923 +django/contrib/sites/locale/ca/LC_MESSAGES/django.mo,sha256=lEUuQEpgDY3bVWzRONrPzYlojRoNduT16_oYDkkbdfk,791 +django/contrib/sites/locale/ca/LC_MESSAGES/django.po,sha256=aORAoVn69iG1ynmEfnkBzBO-UZOzzbkPVOU-ZvfMtZg,996 +django/contrib/sites/locale/ckb/LC_MESSAGES/django.mo,sha256=Chp4sX73l_RFw4aaf9x67vEO1_cM8eh5c0URKBgMU-Q,843 +django/contrib/sites/locale/ckb/LC_MESSAGES/django.po,sha256=2NPav4574kEwTS_nZTUoVbYxJFzsaC5MdQUCD9iqC6E,1007 +django/contrib/sites/locale/cs/LC_MESSAGES/django.mo,sha256=mnXnpU7sLDTJ3OrIUTnGarPYsupNIUPV4ex_BPWU8fk,827 +django/contrib/sites/locale/cs/LC_MESSAGES/django.po,sha256=ONzFlwzmt7p5jdp6111qQkkevckRrd7GNS0lkDPKu-4,1035 +django/contrib/sites/locale/cy/LC_MESSAGES/django.mo,sha256=70pOie0K__hkmM9oBUaQfVwHjK8Cl48E26kRQL2mtew,835 +django/contrib/sites/locale/cy/LC_MESSAGES/django.po,sha256=FAZrVc72x-4R1A-1qYOBwADoXngC_F6FO8nRjr5-Z6g,1013 +django/contrib/sites/locale/da/LC_MESSAGES/django.mo,sha256=FTOyV1DIH9sMldyjgPw98d2HCotoO4zJ_KY_C9DCB7Y,753 +django/contrib/sites/locale/da/LC_MESSAGES/django.po,sha256=Po1Z6u52CFCyz9hLfK009pMbZzZgHrBse0ViX8wCYm8,957 +django/contrib/sites/locale/de/LC_MESSAGES/django.mo,sha256=5Q6X0_bDQ1ZRpkTy7UpPNzrhmQsB9Q0P1agB7koRyzs,792 +django/contrib/sites/locale/de/LC_MESSAGES/django.po,sha256=aD0wBinqtDUPvBbwtHrLEhFdoVRx1nOh17cJFuWhN3U,980 +django/contrib/sites/locale/dsb/LC_MESSAGES/django.mo,sha256=pPpWYsYp81MTrqCsGF0QnGktZNIll70bdBwSkuVE8go,868 +django/contrib/sites/locale/dsb/LC_MESSAGES/django.po,sha256=IA3G8AKJls20gzfxnrfPzivMNpL8A0zBQBg7OyzrP6g,992 +django/contrib/sites/locale/el/LC_MESSAGES/django.mo,sha256=G9o1zLGysUePGzZRicQ2aIIrc2UXMLTQmdpbrUMfWBU,878 +django/contrib/sites/locale/el/LC_MESSAGES/django.po,sha256=RBi_D-_znYuV6LXfTlSOf1Mvuyl96fIyEoiZ-lgeyWs,1133 +django/contrib/sites/locale/en/LC_MESSAGES/django.mo,sha256=U0OV81NfbuNL9ctF-gbGUG5al1StqN-daB-F-gFBFC8,356 +django/contrib/sites/locale/en/LC_MESSAGES/django.po,sha256=tSjfrNZ_FqLHsXjm5NuTyo5-JpdlPLsPZjFqF2APhy8,817 +django/contrib/sites/locale/en_AU/LC_MESSAGES/django.mo,sha256=G--2j_CR99JjRgVIX2Y_5pDfO7IgIkvK4kYHZtGzpxU,753 +django/contrib/sites/locale/en_AU/LC_MESSAGES/django.po,sha256=Giw634r94MJT1Q3qgqM7gZakQCasRM9Dm7MDkb9JOc8,913 +django/contrib/sites/locale/en_GB/LC_MESSAGES/django.mo,sha256=FbSh7msJdrHsXr0EtDMuODFzSANG_HJ3iBlW8ePpqFs,639 +django/contrib/sites/locale/en_GB/LC_MESSAGES/django.po,sha256=Ib-DIuTWlrN3kg99kLCuqWJVtt1NWaFD4UbDFK6d4KY,862 +django/contrib/sites/locale/eo/LC_MESSAGES/django.mo,sha256=N4KkH12OHxic3pp1okeBhpfDx8XxxpULk3UC219vjWU,792 +django/contrib/sites/locale/eo/LC_MESSAGES/django.po,sha256=ymXSJaFJWGBO903ObqR-ows-p4T3KyUplc_p_3r1uk8,1043 +django/contrib/sites/locale/es/LC_MESSAGES/django.mo,sha256=qLN1uoCdslxdYWgdjgSBi7szllP-mQZtHbuZnNOthsQ,804 +django/contrib/sites/locale/es/LC_MESSAGES/django.po,sha256=QClia2zY39269VSQzkQsLwwukthN6u2JBsjbLNxA1VQ,1066 +django/contrib/sites/locale/es_AR/LC_MESSAGES/django.mo,sha256=_O4rVk7IM2BBlZvjDP2SvTOo8WWqthQi5exQzt027-s,776 +django/contrib/sites/locale/es_AR/LC_MESSAGES/django.po,sha256=RwyNylXbyxdSXn6qRDXd99-GaEPlmr6TicHTUW0boaQ,969 +django/contrib/sites/locale/es_CO/LC_MESSAGES/django.mo,sha256=a4Xje2M26wyIx6Wlg6puHo_OXjiDEy7b0FquT9gbThA,825 +django/contrib/sites/locale/es_CO/LC_MESSAGES/django.po,sha256=9bnRhVD099JzkheO80l65dufjuawsj9aSFgFu5A-lnM,949 +django/contrib/sites/locale/es_MX/LC_MESSAGES/django.mo,sha256=AtGta5jBL9XNBvfSpsCcnDtDhvcb89ALl4hNjSPxibM,809 +django/contrib/sites/locale/es_MX/LC_MESSAGES/django.po,sha256=TnkpQp-7swH-x9cytUJe-QJRd2n_pYMVo0ltDw9Pu8o,991 +django/contrib/sites/locale/es_VE/LC_MESSAGES/django.mo,sha256=59fZBDut-htCj38ZUoqPjhXJPjZBz-xpU9__QFr3kLs,486 +django/contrib/sites/locale/es_VE/LC_MESSAGES/django.po,sha256=8PWXy2L1l67wDIi98Q45j7OpVITr0Lt4zwitAnB-d_o,791 +django/contrib/sites/locale/et/LC_MESSAGES/django.mo,sha256=I2E-49UQsG-F26OeAfnKlfUdA3YCkUSV8ffA-GMSkE0,788 +django/contrib/sites/locale/et/LC_MESSAGES/django.po,sha256=mEfD6EyQ15PPivb5FTlkabt3Lo_XGtomI9XzHrrh34Y,992 +django/contrib/sites/locale/eu/LC_MESSAGES/django.mo,sha256=1HTAFI3DvTAflLJsN7NVtSd4XOTlfoeLGFyYCOX69Ec,807 +django/contrib/sites/locale/eu/LC_MESSAGES/django.po,sha256=NWxdE5-mF6Ak4nPRpCFEgAMIsVDe9YBEZl81v9kEuX8,1023 +django/contrib/sites/locale/fa/LC_MESSAGES/django.mo,sha256=odtsOpZ6noNqwDb18HDc2e6nz3NMsa-wrTN-9dk7d9w,872 +django/contrib/sites/locale/fa/LC_MESSAGES/django.po,sha256=-DirRvcTqcpIy90QAUiCSoNkCDRifqpWSzLriJ4cwQU,1094 +django/contrib/sites/locale/fi/LC_MESSAGES/django.mo,sha256=I5DUeLk1ChUC32q5uzriABCLLJpJKNbEK4BfqylPQzg,786 +django/contrib/sites/locale/fi/LC_MESSAGES/django.po,sha256=LH2sFIKM3YHPoz9zIu10z1DFv1svXphBdOhXNy4a17s,929 +django/contrib/sites/locale/fr/LC_MESSAGES/django.mo,sha256=W7Ne5HqgnRcl42njzbUaDSY059jdhwvr0tgZzecVWD8,756 +django/contrib/sites/locale/fr/LC_MESSAGES/django.po,sha256=u24rHDJ47AoBgcmBwI1tIescAgbjFxov6y906H_uhK0,999 +django/contrib/sites/locale/fy/LC_MESSAGES/django.mo,sha256=YQQy7wpjBORD9Isd-p0lLzYrUgAqv770_56-vXa0EOc,476 +django/contrib/sites/locale/fy/LC_MESSAGES/django.po,sha256=Yh6Lw0QI2Me0zCtlyXraFLjERKqklB6-IJLDTjH_jTs,781 +django/contrib/sites/locale/ga/LC_MESSAGES/django.mo,sha256=g5popLirHXWn6ZWJHESQaG5MmKWZL_JNI_5Vgn5FTqU,683 +django/contrib/sites/locale/ga/LC_MESSAGES/django.po,sha256=34hj3ELt7GQ7CaHL246uBDmvsVUaaN5kTrzt8j7eETM,962 +django/contrib/sites/locale/gd/LC_MESSAGES/django.mo,sha256=df4XIGGD6FIyMUXsb-SoSqNfBFAsRXf4qYtolh_C964,858 +django/contrib/sites/locale/gd/LC_MESSAGES/django.po,sha256=NPKp7A5-y-MR7r8r4WqtcVQJEHCIOP5mLTd0cIfUsug,957 +django/contrib/sites/locale/gl/LC_MESSAGES/django.mo,sha256=tiRYDFC1_V2n1jkEQqhjjQBdZzFkhxzNfHIzG2l3PX4,728 +django/contrib/sites/locale/gl/LC_MESSAGES/django.po,sha256=DNY_rv6w6VrAu3hMUwx3cgLLyH4PFfgaJ9dSKfLBrpI,979 +django/contrib/sites/locale/he/LC_MESSAGES/django.mo,sha256=L3bganfG4gHqp2WXGh4rfWmmbaIxHaGc7-ypAqjSL_E,820 +django/contrib/sites/locale/he/LC_MESSAGES/django.po,sha256=iO3OZwz2aiuAzugkKp5Hxonwdg3kKjBurxR685J2ZMk,1082 +django/contrib/sites/locale/hi/LC_MESSAGES/django.mo,sha256=J4oIS1vJnCvdCCUD4tlTUVyTe4Xn0gKcWedfhH4C0t0,665 +django/contrib/sites/locale/hi/LC_MESSAGES/django.po,sha256=INBrm37jL3okBHuzX8MSN1vMptj77a-4kwQkAyt8w_8,890 +django/contrib/sites/locale/hr/LC_MESSAGES/django.mo,sha256=KjDUhEaOuYSMexcURu2UgfkatN2rrUcAbCUbcpVSInk,876 +django/contrib/sites/locale/hr/LC_MESSAGES/django.po,sha256=-nFMFkVuDoKYDFV_zdNULOqQlnqtiCG57aakN5hqlmg,1055 +django/contrib/sites/locale/hsb/LC_MESSAGES/django.mo,sha256=RyHVb7u9aRn5BXmWzR1gApbZlOioPDJ59ufR1Oo3e8Y,863 +django/contrib/sites/locale/hsb/LC_MESSAGES/django.po,sha256=Aq54y5Gb14bIt28oDDrFltnSOk31Z2YalwaJMDMXfWc,987 +django/contrib/sites/locale/hu/LC_MESSAGES/django.mo,sha256=P--LN84U2BeZAvRVR-OiWl4R02cTTBi2o8XR2yHIwIU,796 +django/contrib/sites/locale/hu/LC_MESSAGES/django.po,sha256=b0VhyFdNaZZR5MH1vFsLL69FmICN8Dz-sTRk0PdK49E,953 +django/contrib/sites/locale/hy/LC_MESSAGES/django.mo,sha256=Hs9XwRHRkHicLWt_NvWvr7nMocmY-Kc8XphhVSAMQRc,906 +django/contrib/sites/locale/hy/LC_MESSAGES/django.po,sha256=MU4hXXGfjXKfYcjxDYzFfsEUIelz5ZzyQLkeSrUQKa0,1049 +django/contrib/sites/locale/ia/LC_MESSAGES/django.mo,sha256=gRMs-W5EiY26gqzwnDXEMbeb1vs0bYZ2DC2a9VCciew,809 +django/contrib/sites/locale/ia/LC_MESSAGES/django.po,sha256=HXZzn9ACIqfR2YoyvpK2FjZ7QuEq_RVZ1kSC4nxMgeg,934 +django/contrib/sites/locale/id/LC_MESSAGES/django.mo,sha256=__2E_2TmVUcbf1ygxtS1lHvkhv8L0mdTAtJpBsdH24Y,791 +django/contrib/sites/locale/id/LC_MESSAGES/django.po,sha256=e5teAHiMjLR8RDlg8q99qtW-K81ltcIiBIdb1MZw2sE,1000 +django/contrib/sites/locale/io/LC_MESSAGES/django.mo,sha256=W-NP0b-zR1oWUZnHZ6fPu5AC2Q6o7nUNoxssgeguUBo,760 +django/contrib/sites/locale/io/LC_MESSAGES/django.po,sha256=G4GUUz3rxoBjWTs-j5RFCvv52AEHiwrCBwom5hYeBSE,914 +django/contrib/sites/locale/is/LC_MESSAGES/django.mo,sha256=lkJgTzDjh5PNfIJpOS2DxKmwVUs9Sl5XwFHv4YdCB30,812 +django/contrib/sites/locale/is/LC_MESSAGES/django.po,sha256=1DVgAcHSZVyDd5xn483oqICIG4ooyZY8ko7A3aDogKM,976 +django/contrib/sites/locale/it/LC_MESSAGES/django.mo,sha256=6NQjjtDMudnAgnDCkemOXinzX0J-eAE5gSq1F8kjusY,795 +django/contrib/sites/locale/it/LC_MESSAGES/django.po,sha256=zxavlLMmp1t1rCDsgrw12kVgxiK5EyR_mOalSu8-ws8,984 +django/contrib/sites/locale/ja/LC_MESSAGES/django.mo,sha256=RNuCS6wv8uK5TmXkSH_7SjsbUFkf24spZfTsvfoTKro,814 +django/contrib/sites/locale/ja/LC_MESSAGES/django.po,sha256=e-cj92VOVc5ycIY6NwyFh5bO7Q9q5vp5CG4dOzd_eWQ,982 +django/contrib/sites/locale/ka/LC_MESSAGES/django.mo,sha256=m8GTqr9j0ijn0YJhvnsYwlk5oYcASKbHg_5hLqZ91TI,993 +django/contrib/sites/locale/ka/LC_MESSAGES/django.po,sha256=1upohcHrQH9T34b6lW09MTtFkk5WswdYOLs2vMAJIuE,1160 +django/contrib/sites/locale/kab/LC_MESSAGES/django.mo,sha256=Utdj5gH5YPeaYMjeMzF-vjqYvYTCipre2qCBkEJSc-Y,808 +django/contrib/sites/locale/kab/LC_MESSAGES/django.po,sha256=d78Z-YanYZkyP5tpasj8oAa5RimVEmce6dlq5vDSscA,886 +django/contrib/sites/locale/kk/LC_MESSAGES/django.mo,sha256=T2dTZ83vBRfQb2dRaKOrhvO00BHQu_2bu0O0k7RsvGA,895 +django/contrib/sites/locale/kk/LC_MESSAGES/django.po,sha256=HvdSFqsumyNurDJ6NKVLjtDdSIg0KZN2v29dM748GtU,1062 +django/contrib/sites/locale/km/LC_MESSAGES/django.mo,sha256=Q7pn5E4qN957j20-iCHgrfI-p8sm3Tc8O2DWeuH0By8,701 +django/contrib/sites/locale/km/LC_MESSAGES/django.po,sha256=TOs76vlCMYOZrdHgXPWZhQH1kTBQTpzsDJ8N4kbJQ7E,926 +django/contrib/sites/locale/kn/LC_MESSAGES/django.mo,sha256=_jl_4_39oe940UMyb15NljGOd45kkCeVNpJy6JvGWTE,673 +django/contrib/sites/locale/kn/LC_MESSAGES/django.po,sha256=cMPXF2DeiQuErhyFMe4i7swxMoqoz1sqtBEXf4Ghx1c,921 +django/contrib/sites/locale/ko/LC_MESSAGES/django.mo,sha256=wlfoWG-vmMSCipUJVVC0Y_W7QbGNNE-oEnVwl_6-AmY,807 +django/contrib/sites/locale/ko/LC_MESSAGES/django.po,sha256=TENAk9obGUxFwMnJQj_V9sZxEKJj4DyWMuGpx3Ft_pM,1049 +django/contrib/sites/locale/ky/LC_MESSAGES/django.mo,sha256=IYxp8jG5iyN81h7YJqOiSQdOH7DnwOiIvelKZfzP6ZA,811 +django/contrib/sites/locale/ky/LC_MESSAGES/django.po,sha256=rxPdgQoBtGQSi5diOy3MXyoM4ffpwdWCc4WE3pjIHEI,927 +django/contrib/sites/locale/lb/LC_MESSAGES/django.mo,sha256=xokesKl7h7k9dXFKIJwGETgwx1Ytq6mk2erBSxkgY-o,474 +django/contrib/sites/locale/lb/LC_MESSAGES/django.po,sha256=1yRdK9Zyh7kcWG7wUexuF9-zxEaKLS2gG3ggVOHbRJ8,779 +django/contrib/sites/locale/lt/LC_MESSAGES/django.mo,sha256=bK6PJtd7DaOgDukkzuqos5ktgdjSF_ffL9IJTQY839s,869 +django/contrib/sites/locale/lt/LC_MESSAGES/django.po,sha256=T-vdVqs9KCz9vMs9FfushgZN9z7LQOT-C86D85H2X8c,1195 +django/contrib/sites/locale/lv/LC_MESSAGES/django.mo,sha256=t9bQiVqpAmXrq8QijN4Lh0n6EGUGQjnuH7hDcu21z4c,823 +django/contrib/sites/locale/lv/LC_MESSAGES/django.po,sha256=vMaEtXGosD3AcTomiuctbOpjLes8TRBnumLe8DC4yq4,1023 +django/contrib/sites/locale/mk/LC_MESSAGES/django.mo,sha256=_YXasRJRWjYmmiEWCrAoqnrKuHHPBG_v_EYTUe16Nfo,885 +django/contrib/sites/locale/mk/LC_MESSAGES/django.po,sha256=AgdIjiSpN0P5o5rr5Ie4sFhnmS5d4doB1ffk91lmOvY,1062 +django/contrib/sites/locale/ml/LC_MESSAGES/django.mo,sha256=axNQVBY0nbR7hYa5bzNtdxB17AUOs2WXhu0Rg--FA3Q,1007 +django/contrib/sites/locale/ml/LC_MESSAGES/django.po,sha256=Sg7hHfK8OMs05ebtTv8gxS6_2kZv-OODwf7okP95Jtk,1169 +django/contrib/sites/locale/mn/LC_MESSAGES/django.mo,sha256=w2sqJRAe0wyz_IuCZ_Ocubs_VHL6wV1BcutWPz0dseQ,867 +django/contrib/sites/locale/mn/LC_MESSAGES/django.po,sha256=Zh_Eao0kLZsrQ8wkL1f-pRrsAtNJOspu45uStq5t8Mo,1127 +django/contrib/sites/locale/mr/LC_MESSAGES/django.mo,sha256=CudEHmP5qNvQ-BfEBOoYMh0qGVw80m-wgeu7eh7zaCQ,884 +django/contrib/sites/locale/mr/LC_MESSAGES/django.po,sha256=FtdCo3O-35EIuOP5OOQU8afWDCbn4ge2lmxjVAYtbGU,1023 +django/contrib/sites/locale/ms/LC_MESSAGES/django.mo,sha256=GToJlS8yDNEy-D3-p7p8ZlWEZYHlSzZAcVIH5nQEkkI,727 +django/contrib/sites/locale/ms/LC_MESSAGES/django.po,sha256=_4l4DCIqSWZtZZNyfzpBA0V-CbAaHe9Ckz06VLbTjFo,864 +django/contrib/sites/locale/my/LC_MESSAGES/django.mo,sha256=jN59e9wRheZYx1A4t_BKc7Hx11J5LJg2wQRd21aQv08,961 +django/contrib/sites/locale/my/LC_MESSAGES/django.po,sha256=EhqYIW5-rX33YjsDsBwfiFb3BK6fZKVc3CRYeJpZX1E,1086 +django/contrib/sites/locale/nb/LC_MESSAGES/django.mo,sha256=AaiHGcmcciy5IMBPVAShcc1OQOETJvBCv7GYHMcIQMA,793 +django/contrib/sites/locale/nb/LC_MESSAGES/django.po,sha256=936zoN1sPSiiq7GuH01umrw8W6BtymYEU3bCfOQyfWE,1000 +django/contrib/sites/locale/ne/LC_MESSAGES/django.mo,sha256=n96YovpBax3T5VZSmIfGmd7Zakn9FJShJs5rvUX7Kf0,863 +django/contrib/sites/locale/ne/LC_MESSAGES/django.po,sha256=B14rhDd8GAaIjxd1sYjxO2pZfS8gAwZ1C-kCdVkRXho,1078 +django/contrib/sites/locale/nl/LC_MESSAGES/django.mo,sha256=ghu-tNPNZuE4sVRDWDVmmmVNPYZLWYm_UPJRqh8wmec,735 +django/contrib/sites/locale/nl/LC_MESSAGES/django.po,sha256=1DCQNzMRhy4vW-KkmlPGy58UR27Np5ilmYhmjaq-8_k,1030 +django/contrib/sites/locale/nn/LC_MESSAGES/django.mo,sha256=eSW8kwbzm2HsE9s9IRCsAo9juimVQjcfdd8rtl3TQJM,731 +django/contrib/sites/locale/nn/LC_MESSAGES/django.po,sha256=OOyvE7iji9hwvz8Z_OxWoKw2e3ptk3dqeqlriXgilSc,915 +django/contrib/sites/locale/os/LC_MESSAGES/django.mo,sha256=Su06FkWMOPzBxoung3bEju_EnyAEAXROoe33imO65uQ,806 +django/contrib/sites/locale/os/LC_MESSAGES/django.po,sha256=4i4rX6aXDUKjq64T02iStqV2V2erUsSVnTivh2XtQeY,963 +django/contrib/sites/locale/pa/LC_MESSAGES/django.mo,sha256=tOHiisOtZrTyIFoo4Ipn_XFH9hhu-ubJLMdOML5ZUgk,684 +django/contrib/sites/locale/pa/LC_MESSAGES/django.po,sha256=ztGyuqvzxRfNjqDG0rMLCu_oQ8V3Dxdsx0WZoYUyNv8,912 +django/contrib/sites/locale/pl/LC_MESSAGES/django.mo,sha256=lo5K262sZmo-hXvcHoBsEDqX8oJEPSxJY5EfRIqHZh0,903 +django/contrib/sites/locale/pl/LC_MESSAGES/django.po,sha256=-kQ49UvXITMy1vjJoN_emuazV_EjNDQnZDERXWNoKvw,1181 +django/contrib/sites/locale/pt/LC_MESSAGES/django.mo,sha256=PrcFQ04lFJ7mIYThXbW6acmDigEFIoLAC0PYk5hfaJs,797 +django/contrib/sites/locale/pt/LC_MESSAGES/django.po,sha256=Aj8hYI9W5nk5uxKHj1oE-b9bxmmuoeXLKaJDPfI2x2o,993 +django/contrib/sites/locale/pt_BR/LC_MESSAGES/django.mo,sha256=BsFfarOR6Qk67fB-tTWgGhuOReJSgjwJBkIzZsv28vo,824 +django/contrib/sites/locale/pt_BR/LC_MESSAGES/django.po,sha256=jfvgelpWn2VQqYe2_CE39SLTsscCckvjuZo6dWII28c,1023 +django/contrib/sites/locale/ro/LC_MESSAGES/django.mo,sha256=oGsZw4_uYpaH6adMxnAuifJgHeZ_ytRZ4rFhiNfRQkQ,857 +django/contrib/sites/locale/ro/LC_MESSAGES/django.po,sha256=tWbWVbjFFELNzSXX4_5ltmzEeEJsY3pKwgEOjgV_W_8,1112 +django/contrib/sites/locale/ru/LC_MESSAGES/django.mo,sha256=bIZJWMpm2O5S6RC_2cfkrp5NXaTU2GWSsMr0wHVEmcw,1016 +django/contrib/sites/locale/ru/LC_MESSAGES/django.po,sha256=jHy5GR05ZSjLmAwaVNq3m0WdhO9GYxge3rDBziqesA8,1300 +django/contrib/sites/locale/sk/LC_MESSAGES/django.mo,sha256=-EYdm14ZjoR8bd7Rv2b5G7UJVSKmZa1ItLsdATR3-Cg,822 +django/contrib/sites/locale/sk/LC_MESSAGES/django.po,sha256=VSRlsq8uk-hP0JI94iWsGX8Al76vvGK4N1xIoFtoRQM,1070 +django/contrib/sites/locale/sl/LC_MESSAGES/django.mo,sha256=JmkpTKJGWgnBM3CqOUriGvrDnvg2YWabIU2kbYAOM4s,845 +django/contrib/sites/locale/sl/LC_MESSAGES/django.po,sha256=qWrWrSz5r3UOVraX08ILt3TTmfyTDGKbJKbTlN9YImU,1059 +django/contrib/sites/locale/sq/LC_MESSAGES/django.mo,sha256=DMLN1ZDJeDnslavjcKloXSXn6IvangVliVP3O6U8dAY,769 +django/contrib/sites/locale/sq/LC_MESSAGES/django.po,sha256=zg3ALcMNZErAS_xFxmtv6TmXZ0vxobX5AzCwOSRSwc8,930 +django/contrib/sites/locale/sr/LC_MESSAGES/django.mo,sha256=8kfi9IPdB2reF8C_eC2phaP6qonboHPwes_w3UgNtzw,935 +django/contrib/sites/locale/sr/LC_MESSAGES/django.po,sha256=A7xaen8H1W4uMBRAqCXT_0KQMoA2-45AUNDfGo9FydI,1107 +django/contrib/sites/locale/sr_Latn/LC_MESSAGES/django.mo,sha256=jMXiq18efq0wErJAQfJR1fCnkYcEb7OYXg8sv6kzP0s,815 +django/contrib/sites/locale/sr_Latn/LC_MESSAGES/django.po,sha256=9jkWYcZCTfQr2UZtyvhWDAmEHBrzunJUZcx7FlrFOis,1004 +django/contrib/sites/locale/sv/LC_MESSAGES/django.mo,sha256=1AttMJ2KbQQgJVH9e9KuCKC0UqDHvWSPcKkbPkSLphQ,768 +django/contrib/sites/locale/sv/LC_MESSAGES/django.po,sha256=N7wqrcFb5ZNX83q1ZCkpkP94Lb3ZIBUATDssNT8F51c,1028 +django/contrib/sites/locale/sw/LC_MESSAGES/django.mo,sha256=cWjjDdFXBGmpUm03UDtgdDrREa2r75oMsXiEPT_Bx3g,781 +django/contrib/sites/locale/sw/LC_MESSAGES/django.po,sha256=oOKNdztQQU0sd6XmLI-n3ONmTL7jx3Q0z1YD8673Wi8,901 +django/contrib/sites/locale/ta/LC_MESSAGES/django.mo,sha256=CLO41KsSKqBrgtrHi6fmXaBk-_Y2l4KBLDJctZuZyWY,714 +django/contrib/sites/locale/ta/LC_MESSAGES/django.po,sha256=YsTITHg7ikkNcsP29tDgkZrUdtO0s9PrV1XPu4mgqCw,939 +django/contrib/sites/locale/te/LC_MESSAGES/django.mo,sha256=GmIWuVyIOcoQoAmr2HxCwBDE9JUYEktzYig93H_4v50,687 +django/contrib/sites/locale/te/LC_MESSAGES/django.po,sha256=jbncxU9H3EjXxWPsEoCKJhKi392XXTGvWyuenqLDxps,912 +django/contrib/sites/locale/tg/LC_MESSAGES/django.mo,sha256=wiWRlf3AN5zlFMNyP_rSDZS7M5rHQJ2DTUHARtXjim8,863 +django/contrib/sites/locale/tg/LC_MESSAGES/django.po,sha256=VBGZfJIw40JZe15ghsk-n3qUVX0VH2nFQQhpBy_lk1Y,1026 +django/contrib/sites/locale/th/LC_MESSAGES/django.mo,sha256=dQOp4JoP3gvfsxqEQ73L6F8FgH1YtAA9hYY-Uz5sv6Y,898 +django/contrib/sites/locale/th/LC_MESSAGES/django.po,sha256=auZBoKKKCHZbbh0PaUr9YKiWB1TEYZoj4bE7efAonV8,1077 +django/contrib/sites/locale/tk/LC_MESSAGES/django.mo,sha256=YhzSiVb_NdG1s7G1-SGGd4R3uweZQgnTs3G8Lv9r5z0,755 +django/contrib/sites/locale/tk/LC_MESSAGES/django.po,sha256=sigmzH3Ni2vJwLJ7ba8EeB4wnDXsg8rQRFExZAGycF4,917 +django/contrib/sites/locale/tr/LC_MESSAGES/django.mo,sha256=ryf01jcvvBMGPKkdViieDuor-Lr2KRXZeFF1gPupCOA,758 +django/contrib/sites/locale/tr/LC_MESSAGES/django.po,sha256=L9tsnwxw1BEJD-Nm3m1RAS7ekgdmyC0ETs_mr7tQw1E,1043 +django/contrib/sites/locale/tt/LC_MESSAGES/django.mo,sha256=gmmjXeEQUlBpfDmouhxE-qpEtv-iWdQSobYL5MWprZc,706 +django/contrib/sites/locale/tt/LC_MESSAGES/django.po,sha256=yj49TjwcZ4YrGqnJrKh3neKydlTgwYduto9KsmxI_eI,930 +django/contrib/sites/locale/udm/LC_MESSAGES/django.mo,sha256=CNmoKj9Uc0qEInnV5t0Nt4ZnKSZCRdIG5fyfSsqwky4,462 +django/contrib/sites/locale/udm/LC_MESSAGES/django.po,sha256=vrLZ0XJF63CO3IucbQpd12lxuoM9S8tTUv6cpu3g81c,767 +django/contrib/sites/locale/ug/LC_MESSAGES/django.mo,sha256=EBWMPAJLaxkIPQ5hm_nMRxs7Y0SEEgu6zcDM4jBUAt8,868 +django/contrib/sites/locale/ug/LC_MESSAGES/django.po,sha256=9a0kmoIxg-KMu5faIjcRgWehr3Ild-stVZsBdDrzHV0,1030 +django/contrib/sites/locale/uk/LC_MESSAGES/django.mo,sha256=H4806mPqOoHJFm549F7drzsfkvAXWKmn1w_WVwQx9rk,960 +django/contrib/sites/locale/uk/LC_MESSAGES/django.po,sha256=CJZTOaurDXwpgBiwXx3W7juaF0EctEImPhJdDn8j1xU,1341 +django/contrib/sites/locale/ur/LC_MESSAGES/django.mo,sha256=s6QL8AB_Mp9haXS4n1r9b0YhEUECPxUyPrHTMI3agts,654 +django/contrib/sites/locale/ur/LC_MESSAGES/django.po,sha256=R9tv3qtett8CUGackoHrc5XADeygVKAE0Fz8YzK2PZ4,885 +django/contrib/sites/locale/uz/LC_MESSAGES/django.mo,sha256=OsuqnLEDl9gUAwsmM2s1KH7VD74ID-k7JXcjGhjFlEY,799 +django/contrib/sites/locale/uz/LC_MESSAGES/django.po,sha256=RoaOwLDjkqqIJTuxpuY7eMLo42n6FoYAYutCfMaDk4I,935 +django/contrib/sites/locale/vi/LC_MESSAGES/django.mo,sha256=YOaKcdrN1238Zdm81jUkc2cpxjInAbdnhsSqHP_jQsI,762 +django/contrib/sites/locale/vi/LC_MESSAGES/django.po,sha256=AHcqR2p0fdscLvzbJO_a-CzMzaeRL4LOw4HB9K3noVQ,989 +django/contrib/sites/locale/zh_Hans/LC_MESSAGES/django.mo,sha256=7D9_pDY5lBRpo1kfzIQL-PNvIg-ofCm7cBHE1-JWlMk,779 +django/contrib/sites/locale/zh_Hans/LC_MESSAGES/django.po,sha256=xI_N00xhV8dWDp4fg5Mmj9ivOBBdHP79T3-JYXPyc5M,946 +django/contrib/sites/locale/zh_Hant/LC_MESSAGES/django.mo,sha256=C4ZEuruq2Qnj7Zk-ZUfPWjLHcbNaC0V9MlDs8Go9Ieo,736 +django/contrib/sites/locale/zh_Hant/LC_MESSAGES/django.po,sha256=wGZCUT4Yg8FJLZZ6C_mf5Lly3YkPIhbTBiyTmj5emj8,1055 +django/contrib/sites/management.py,sha256=AElGktvFhWXJtlJwOKpUlIeuv2thkNM8F6boliML84U,1646 +django/contrib/sites/managers.py,sha256=uqD_Cu3P4NCp7VVdGn0NvHfhsZB05MLmiPmgot-ygz4,1994 +django/contrib/sites/middleware.py,sha256=qYcVHsHOg0VxQNS4saoLHkdF503nJR-D7Z01vE0SvUM,309 +django/contrib/sites/migrations/0001_initial.py,sha256=8fY63Z5DwbKQ1HtvAajKDhBLEufigRTsoRazyEf5RU4,1361 +django/contrib/sites/migrations/0002_alter_domain_unique.py,sha256=llK7IKQKnFCK5viHLew2ZMdV9e1sHy0H1blszEu_NKs,549 +django/contrib/sites/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/contrib/sites/migrations/__pycache__/0001_initial.cpython-312.pyc,, +django/contrib/sites/migrations/__pycache__/0002_alter_domain_unique.cpython-312.pyc,, +django/contrib/sites/migrations/__pycache__/__init__.cpython-312.pyc,, +django/contrib/sites/models.py,sha256=0DWVfDGMYqTZgs_LP6hlVxY3ztbwPzulE9Dos8z6M3Q,3695 +django/contrib/sites/requests.py,sha256=baABc6fmTejNmk8M3fcoQ1cuI2qpJzF8Y47A1xSt8gY,641 +django/contrib/sites/shortcuts.py,sha256=nekVQADJROFYwKCD7flmWDMQ9uLAaaKztHVKl5emuWc,573 +django/contrib/staticfiles/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/contrib/staticfiles/__pycache__/__init__.cpython-312.pyc,, +django/contrib/staticfiles/__pycache__/apps.cpython-312.pyc,, +django/contrib/staticfiles/__pycache__/checks.cpython-312.pyc,, +django/contrib/staticfiles/__pycache__/finders.cpython-312.pyc,, +django/contrib/staticfiles/__pycache__/handlers.cpython-312.pyc,, +django/contrib/staticfiles/__pycache__/storage.cpython-312.pyc,, +django/contrib/staticfiles/__pycache__/testing.cpython-312.pyc,, +django/contrib/staticfiles/__pycache__/urls.cpython-312.pyc,, +django/contrib/staticfiles/__pycache__/utils.cpython-312.pyc,, +django/contrib/staticfiles/__pycache__/views.cpython-312.pyc,, +django/contrib/staticfiles/apps.py,sha256=8G9HetU3WBNDfXKfzYfyXjZ--X3loBkkQSB7xfleIl4,504 +django/contrib/staticfiles/checks.py,sha256=FPzYotgRzxqWYDnjIK78bgQAfBSFqeJB04RDVMxlhng,846 +django/contrib/staticfiles/finders.py,sha256=_mfSsh1rOFW_ZHzX__fug0yGAuBqdXI-v0cG1aTRMEE,10996 +django/contrib/staticfiles/handlers.py,sha256=DeDbXvIUeSs0icls4e1HQ3y-6-agjO_c2O5ufkSnuls,4035 +django/contrib/staticfiles/management/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/contrib/staticfiles/management/__pycache__/__init__.cpython-312.pyc,, +django/contrib/staticfiles/management/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/contrib/staticfiles/management/commands/__pycache__/__init__.cpython-312.pyc,, +django/contrib/staticfiles/management/commands/__pycache__/collectstatic.cpython-312.pyc,, +django/contrib/staticfiles/management/commands/__pycache__/findstatic.cpython-312.pyc,, +django/contrib/staticfiles/management/commands/__pycache__/runserver.cpython-312.pyc,, +django/contrib/staticfiles/management/commands/collectstatic.py,sha256=Zd65dgKD8JlXmoDb3ig6tvZka4gMV_6egbLcoRLJ1SA,15137 +django/contrib/staticfiles/management/commands/findstatic.py,sha256=TMMGlbV-B1aq1b27nA6Otu6hV44pqAzeuEtTV2DPmp0,1638 +django/contrib/staticfiles/management/commands/runserver.py,sha256=U_7oCY8LJX5Jn1xlMv-qF4EQoUvlT0ldB5E_0sJmRtw,1373 +django/contrib/staticfiles/storage.py,sha256=ZI_qo3HWJ64rXMExqay2XXlzviqsy7Yy4mU9Zv5jvfM,21036 +django/contrib/staticfiles/testing.py,sha256=4X-EtOfXnwkJAyFT8qe4H4sbVTKgM65klLUtY81KHiE,463 +django/contrib/staticfiles/urls.py,sha256=owDM_hdyPeRmxYxZisSMoplwnzWrptI_W8-3K2f7ITA,498 +django/contrib/staticfiles/utils.py,sha256=iPXHA0yMXu37PQwCrq9zjhSzjZf_zEBXJ-dHGsqZoX8,2279 +django/contrib/staticfiles/views.py,sha256=mX70oejBU2FPZ9_idkI0EiRBkTjKcCD7JJ34gYxhM2M,1262 +django/contrib/syndication/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/contrib/syndication/__pycache__/__init__.cpython-312.pyc,, +django/contrib/syndication/__pycache__/apps.cpython-312.pyc,, +django/contrib/syndication/__pycache__/views.cpython-312.pyc,, +django/contrib/syndication/apps.py,sha256=7IpHoihPWtOcA6S4O6VoG0XRlqEp3jsfrNf-D-eluic,203 +django/contrib/syndication/views.py,sha256=c8T8V49cyTMk6KLna8fbULOr3aMjkqye6C5lMAFofUU,9309 +django/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/core/__pycache__/__init__.cpython-312.pyc,, +django/core/__pycache__/asgi.cpython-312.pyc,, +django/core/__pycache__/exceptions.cpython-312.pyc,, +django/core/__pycache__/paginator.cpython-312.pyc,, +django/core/__pycache__/signals.cpython-312.pyc,, +django/core/__pycache__/signing.cpython-312.pyc,, +django/core/__pycache__/validators.cpython-312.pyc,, +django/core/__pycache__/wsgi.cpython-312.pyc,, +django/core/asgi.py,sha256=N2L3GS6F6oL-yD9Tu2otspCi2UhbRQ90LEx3ExOP1m0,386 +django/core/cache/__init__.py,sha256=Z1LsL-TNTNVU5X3CLeHeK4Fbfar76n4zwBr4aC9kxuI,1929 +django/core/cache/__pycache__/__init__.cpython-312.pyc,, +django/core/cache/__pycache__/utils.cpython-312.pyc,, +django/core/cache/backends/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/core/cache/backends/__pycache__/__init__.cpython-312.pyc,, +django/core/cache/backends/__pycache__/base.cpython-312.pyc,, +django/core/cache/backends/__pycache__/db.cpython-312.pyc,, +django/core/cache/backends/__pycache__/dummy.cpython-312.pyc,, +django/core/cache/backends/__pycache__/filebased.cpython-312.pyc,, +django/core/cache/backends/__pycache__/locmem.cpython-312.pyc,, +django/core/cache/backends/__pycache__/memcached.cpython-312.pyc,, +django/core/cache/backends/__pycache__/redis.cpython-312.pyc,, +django/core/cache/backends/base.py,sha256=n7j5e0LbCYY3y6mv96_qEqPW1g5a_Ogp6J98dqtScv0,14291 +django/core/cache/backends/db.py,sha256=HlTGDpZugousm1JUeT9HCdp1_leMdKihOJu8cWyIqfg,11372 +django/core/cache/backends/dummy.py,sha256=fQbFiL72DnVKP9UU4WDsZYaxYKx7FlMOJhtP8aky2ic,1043 +django/core/cache/backends/filebased.py,sha256=NCV0UEKnPt8Esfd4ItW7nV9w1LNavIAy_qB02tx1By0,5788 +django/core/cache/backends/locmem.py,sha256=cqdFgPxYrfEKDvKR2IYiFV7-MwhM0CIHPxLTBxJMDTQ,4035 +django/core/cache/backends/memcached.py,sha256=cB5QRCdr9uocB-tWA1FMBQtWQRqHSRpE7UcIMYI86gI,6776 +django/core/cache/backends/redis.py,sha256=TB1bw1JK7jmUMLlu-nzuuMhtUp0JXBxzFOX149RVeFc,7924 +django/core/cache/utils.py,sha256=3ZLYgUDD6iLiLMC6vjXKfUQigsoU23ffpJx8e71M4XA,397 +django/core/checks/__init__.py,sha256=gFG0gY0C0L-akCrk1F0Q_WmkptYDLXYdyzr3wNJVIi4,1195 +django/core/checks/__pycache__/__init__.cpython-312.pyc,, +django/core/checks/__pycache__/async_checks.cpython-312.pyc,, +django/core/checks/__pycache__/caches.cpython-312.pyc,, +django/core/checks/__pycache__/database.cpython-312.pyc,, +django/core/checks/__pycache__/files.cpython-312.pyc,, +django/core/checks/__pycache__/messages.cpython-312.pyc,, +django/core/checks/__pycache__/model_checks.cpython-312.pyc,, +django/core/checks/__pycache__/registry.cpython-312.pyc,, +django/core/checks/__pycache__/templates.cpython-312.pyc,, +django/core/checks/__pycache__/translation.cpython-312.pyc,, +django/core/checks/__pycache__/urls.cpython-312.pyc,, +django/core/checks/async_checks.py,sha256=A9p_jebELrf4fiD6jJtBM6Gvm8cMb03sSuW9Ncx3-vU,403 +django/core/checks/caches.py,sha256=hbcIFD_grXUQR2lGAzzlCX6qMJfkXj02ZDJElgdT5Yg,2643 +django/core/checks/compatibility/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/core/checks/compatibility/__pycache__/__init__.cpython-312.pyc,, +django/core/checks/compatibility/__pycache__/django_4_0.cpython-312.pyc,, +django/core/checks/compatibility/django_4_0.py,sha256=2s7lm9LZ0NrhaYSrw1Y5mMkL5BC68SS-TyD-TKczbEI,657 +django/core/checks/database.py,sha256=sBj-8o4DmpG5QPy1KXgXtZ0FZ0T9xdlT4XBIc70wmEQ,341 +django/core/checks/files.py,sha256=W4yYHiWrqi0d_G6tDWTw79pr2dgJY41rOv7mRpbtp2Q,522 +django/core/checks/messages.py,sha256=vIJtvmeafgwFzwcXaoRBWkcL_t2gLTLjstWSw5xCtjQ,2241 +django/core/checks/model_checks.py,sha256=8aK5uit9yP_lDfdXBJPlz_r-46faP_gIOXLszXqLQqY,8830 +django/core/checks/registry.py,sha256=Qqig55OhANmA-QBQBSTLuy64Z2VqPT97lLlSHBgyq9g,3456 +django/core/checks/security/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/core/checks/security/__pycache__/__init__.cpython-312.pyc,, +django/core/checks/security/__pycache__/base.cpython-312.pyc,, +django/core/checks/security/__pycache__/csrf.cpython-312.pyc,, +django/core/checks/security/__pycache__/sessions.cpython-312.pyc,, +django/core/checks/security/base.py,sha256=I0Gm446twRIhbRopEmKsdsYW_NdI7_nK_ZV28msRPEo,9140 +django/core/checks/security/csrf.py,sha256=hmFJ4m9oxDGwhDAWedmtpnIYQcI8Mxcge1D6CCoOBbc,2055 +django/core/checks/security/sessions.py,sha256=Qyb93CJeQBM5LLhhrqor4KQJR2tSpFklS-p7WltXcHc,2554 +django/core/checks/templates.py,sha256=leQ8nyjQBzofWFTo6YH9NkLmt582OlG2p8sFw00sbew,296 +django/core/checks/translation.py,sha256=it7VjXf10-HBdCc3z55_lSxwok9qEncdojRBG74d4FA,1990 +django/core/checks/urls.py,sha256=-H945kSYVe_am-2XJI_T4c2V34lySfA6ZHnEEW8USJ8,4917 +django/core/exceptions.py,sha256=eMWYfZAUY9xvOIVm41ByemPfXNIY59xxO6-vT5oNWIE,6577 +django/core/files/__init__.py,sha256=Rhz5Jm9BM6gy_nf5yMtswN1VsTIILYUL7Z-5edjh_HI,60 +django/core/files/__pycache__/__init__.cpython-312.pyc,, +django/core/files/__pycache__/base.cpython-312.pyc,, +django/core/files/__pycache__/images.cpython-312.pyc,, +django/core/files/__pycache__/locks.cpython-312.pyc,, +django/core/files/__pycache__/move.cpython-312.pyc,, +django/core/files/__pycache__/temp.cpython-312.pyc,, +django/core/files/__pycache__/uploadedfile.cpython-312.pyc,, +django/core/files/__pycache__/uploadhandler.cpython-312.pyc,, +django/core/files/__pycache__/utils.cpython-312.pyc,, +django/core/files/base.py,sha256=MKNxxgiuwHHwGifpydBgjfZpTzdF7VxCQnVV-w8bqhg,4845 +django/core/files/images.py,sha256=Yms--hugUWcpsZJJJ0-UwkIe3PVZ4LjMFz4O7Ew9FBE,2644 +django/core/files/locks.py,sha256=mp96hc8nMob8cMESiASFWUTUn_afW8A4ag_viWz0ojU,3614 +django/core/files/move.py,sha256=Xv8ejaYIITJzLN2NlCE0MhFqalBYUIZiyYbjMIblkAo,2919 +django/core/files/storage/__init__.py,sha256=EosmC1_WLaAFOuapjyoKFNudQiyRIW8C2hx90oQaVD4,622 +django/core/files/storage/__pycache__/__init__.cpython-312.pyc,, +django/core/files/storage/__pycache__/base.cpython-312.pyc,, +django/core/files/storage/__pycache__/filesystem.cpython-312.pyc,, +django/core/files/storage/__pycache__/handler.cpython-312.pyc,, +django/core/files/storage/__pycache__/memory.cpython-312.pyc,, +django/core/files/storage/__pycache__/mixins.cpython-312.pyc,, +django/core/files/storage/base.py,sha256=83MumBD3zLS_tegimD51Oh9yQsIL4cYbW9dduhRnHqI,8296 +django/core/files/storage/filesystem.py,sha256=BQrsvQYbVJ8s3F-_91CRzInD0WT6GtkIPanKnsVqa0M,9542 +django/core/files/storage/handler.py,sha256=ntOJZ2nf2VUaUY7tKH0mndORFiGKSdh_16o3OtilIBI,1507 +django/core/files/storage/memory.py,sha256=Mz27sDPbeRXGjh77id2LHt8sErp5WAmNj89NBNRDA3I,9745 +django/core/files/storage/mixins.py,sha256=j_Y3unzk9Ccmx-QQjj4AoC3MUhXIw5nFbDYF3Qn_Fh0,700 +django/core/files/temp.py,sha256=iUegEgQ3UyUrDN10SgvKIrHfBPSej1lk-LAgJqMZBcU,2503 +django/core/files/uploadedfile.py,sha256=6hBjxmx8P0fxmZQbtj4OTsXtUk9GdIA7IUcv_KwSI08,4189 +django/core/files/uploadhandler.py,sha256=tMzeS-FJOMQBYQm2ORsLwltwZZrdOizyJSmdFjer_Sw,7180 +django/core/files/utils.py,sha256=tBT8c8wCObMmiVF4BpBpCV5_hhgMKxe2poiunwFpIcw,2602 +django/core/handlers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/core/handlers/__pycache__/__init__.cpython-312.pyc,, +django/core/handlers/__pycache__/asgi.cpython-312.pyc,, +django/core/handlers/__pycache__/base.cpython-312.pyc,, +django/core/handlers/__pycache__/exception.cpython-312.pyc,, +django/core/handlers/__pycache__/wsgi.cpython-312.pyc,, +django/core/handlers/asgi.py,sha256=-lHVt6z6ioCs0CgGIrsPVXvpqqdaH-Lc3Xb99RdSbu4,13839 +django/core/handlers/base.py,sha256=j7ScIbMLKYa52HqwHYhIfMWWAG749natcsBsVQsvBjc,14813 +django/core/handlers/exception.py,sha256=Qa03HgQpLx7nqp5emF0bwdiemE0X7U9FfuLfoOHMf_4,5922 +django/core/handlers/wsgi.py,sha256=81DErgzHAaZcw2UivrKqwS69QpoRF8tm0ASEc4v3uQ4,7315 +django/core/mail/__init__.py,sha256=gSCtVTSbqIqkHMK7no1mIqrcircH1fuIuqZmXONayuY,4959 +django/core/mail/__pycache__/__init__.cpython-312.pyc,, +django/core/mail/__pycache__/message.cpython-312.pyc,, +django/core/mail/__pycache__/utils.cpython-312.pyc,, +django/core/mail/backends/__init__.py,sha256=VJ_9dBWKA48MXBZXVUaTy9NhgfRonapA6UAjVFEPKD8,37 +django/core/mail/backends/__pycache__/__init__.cpython-312.pyc,, +django/core/mail/backends/__pycache__/base.cpython-312.pyc,, +django/core/mail/backends/__pycache__/console.cpython-312.pyc,, +django/core/mail/backends/__pycache__/dummy.cpython-312.pyc,, +django/core/mail/backends/__pycache__/filebased.cpython-312.pyc,, +django/core/mail/backends/__pycache__/locmem.cpython-312.pyc,, +django/core/mail/backends/__pycache__/smtp.cpython-312.pyc,, +django/core/mail/backends/base.py,sha256=Cljbb7nil40Dfpob2R8iLmlO0Yv_wlOCBA9hF2Z6W54,1683 +django/core/mail/backends/console.py,sha256=H6lWE18H8uSxj7LB1SGTqQ7UFpk9gWLZYq6reowixLU,1427 +django/core/mail/backends/dummy.py,sha256=sI7tAa3MfG43UHARduttBvEAYYfiLasgF39jzaZPu9E,234 +django/core/mail/backends/filebased.py,sha256=AbEBL9tXr6WIhuSQvm3dHoCpuMoDTSIkx6qFb4GMUe4,2353 +django/core/mail/backends/locmem.py,sha256=95yAcfid-4akp2Eq1DkNrHiYF2-0pKR2N7VCPxMu_50,913 +django/core/mail/backends/smtp.py,sha256=vYF03edaHedkcZqoKaSL38B2BFwuzA_uPXeMdPrDFBo,5803 +django/core/mail/message.py,sha256=QxGgpJfOGQYdHDtRvX57bTfhM_4CzR4S3lSIj0bBszA,17849 +django/core/mail/utils.py,sha256=Wf-pdSdv0WLREYzI7EVWr59K6o7tfb3d2HSbAyE3SOE,506 +django/core/management/__init__.py,sha256=gkXgKuqIpyFauk2-kgOgU-IDxcw8TjAKM_MU-erraE0,17407 +django/core/management/__pycache__/__init__.cpython-312.pyc,, +django/core/management/__pycache__/base.cpython-312.pyc,, +django/core/management/__pycache__/color.cpython-312.pyc,, +django/core/management/__pycache__/sql.cpython-312.pyc,, +django/core/management/__pycache__/templates.cpython-312.pyc,, +django/core/management/__pycache__/utils.cpython-312.pyc,, +django/core/management/base.py,sha256=zJ5lX6qXvsKBWWiBIGmDm8eSJPyiCqdWoSXPbHV_qyE,24392 +django/core/management/color.py,sha256=KXdNATK5AvxVK8wtKH2GTWApnLGCZ_1NKewTsLWCBc0,3168 +django/core/management/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/core/management/commands/__pycache__/__init__.cpython-312.pyc,, +django/core/management/commands/__pycache__/check.cpython-312.pyc,, +django/core/management/commands/__pycache__/compilemessages.cpython-312.pyc,, +django/core/management/commands/__pycache__/createcachetable.cpython-312.pyc,, +django/core/management/commands/__pycache__/dbshell.cpython-312.pyc,, +django/core/management/commands/__pycache__/diffsettings.cpython-312.pyc,, +django/core/management/commands/__pycache__/dumpdata.cpython-312.pyc,, +django/core/management/commands/__pycache__/flush.cpython-312.pyc,, +django/core/management/commands/__pycache__/inspectdb.cpython-312.pyc,, +django/core/management/commands/__pycache__/loaddata.cpython-312.pyc,, +django/core/management/commands/__pycache__/makemessages.cpython-312.pyc,, +django/core/management/commands/__pycache__/makemigrations.cpython-312.pyc,, +django/core/management/commands/__pycache__/migrate.cpython-312.pyc,, +django/core/management/commands/__pycache__/optimizemigration.cpython-312.pyc,, +django/core/management/commands/__pycache__/runserver.cpython-312.pyc,, +django/core/management/commands/__pycache__/sendtestemail.cpython-312.pyc,, +django/core/management/commands/__pycache__/shell.cpython-312.pyc,, +django/core/management/commands/__pycache__/showmigrations.cpython-312.pyc,, +django/core/management/commands/__pycache__/sqlflush.cpython-312.pyc,, +django/core/management/commands/__pycache__/sqlmigrate.cpython-312.pyc,, +django/core/management/commands/__pycache__/sqlsequencereset.cpython-312.pyc,, +django/core/management/commands/__pycache__/squashmigrations.cpython-312.pyc,, +django/core/management/commands/__pycache__/startapp.cpython-312.pyc,, +django/core/management/commands/__pycache__/startproject.cpython-312.pyc,, +django/core/management/commands/__pycache__/test.cpython-312.pyc,, +django/core/management/commands/__pycache__/testserver.cpython-312.pyc,, +django/core/management/commands/check.py,sha256=X68B4VTS8i-3LPY0TjuQOc9AM5m9HOMBNPGbzv3FDfA,2832 +django/core/management/commands/compilemessages.py,sha256=gblYId4asdPcuP2tlw5IqpIblKLB9zeW2qzjA4q-fFw,7076 +django/core/management/commands/createcachetable.py,sha256=bdKfxftffjoKQgSJfCBJRgVCwzhqnUn88MvAMPNTits,4656 +django/core/management/commands/dbshell.py,sha256=0ZofTU8SWm7M-vimeLJvRzN5YVEZ7-U-BgZTqXhHjUM,1781 +django/core/management/commands/diffsettings.py,sha256=NNL_J0P3HRzAZd9XcW7Eo_iE_lNliIpKtdcarDbBRpc,3554 +django/core/management/commands/dumpdata.py,sha256=eGPBqrzdk4YZpyRaIUQWKfxe7qprKBYY_jC8DcuJILw,11180 +django/core/management/commands/flush.py,sha256=1LRuBYcWCqIKa23IHLEdtIZzgUGGDGw0YSb6RTX1SaE,3651 +django/core/management/commands/inspectdb.py,sha256=PJ-zDxhwWY3suqZ4odnWyDLry0wy_i3CzMS1JubzNw0,17372 +django/core/management/commands/loaddata.py,sha256=8odpvT9UxaJuHA7ze5dDUHzFeq-dhdbH9Lk19JY3QZo,16008 +django/core/management/commands/makemessages.py,sha256=2wWAiFl-S9SRY5qgBU1GCB68EjnnfVhp_zzv6Jo6q8s,29423 +django/core/management/commands/makemigrations.py,sha256=gxIR6-Dc3OyaW2VrN8j4hVAql8OSN7tZ38x-bjagRpU,22466 +django/core/management/commands/migrate.py,sha256=-r78CKcgXqmFTK_ZGkmqLTgZr6UGAv_kZ7hyVsiFL1M,21415 +django/core/management/commands/optimizemigration.py,sha256=GVWIhX94tOLHEx53w-VrUc48euVWpKCLMw-BbpiQgIg,5224 +django/core/management/commands/runserver.py,sha256=Ax-IvMnZAleIhXdFJlU10YT5pPpXvjSaYbxZvygUMTI,6913 +django/core/management/commands/sendtestemail.py,sha256=sF5TUMbD_tlGBnUsn9t-oFVGNSyeiWRIrgyPbJE88cs,1518 +django/core/management/commands/shell.py,sha256=LKmj6KYv6zpJzQ2mWtR4-u2CDSQL-_Na6TsT4JLYsi4,4613 +django/core/management/commands/showmigrations.py,sha256=24s51EzwIhL6lIpumivpaixQTDGx7I1qJ0wKFNGaEMU,6847 +django/core/management/commands/sqlflush.py,sha256=7KiAXzUqqE3IeGresT-kVzyk_i8XP2NTsIBmYt30D3Y,1031 +django/core/management/commands/sqlmigrate.py,sha256=uMz1V1AZxyyo9UNs4x_vMh3_-aCcYLVxy0VHILtKBLU,3348 +django/core/management/commands/sqlsequencereset.py,sha256=cdnbbd7y81CAYK9KX-V6Ho8KJIO_mVtG3V6tftIBp6g,1101 +django/core/management/commands/squashmigrations.py,sha256=ltDbyWCCLwNknkjG9rZG7DpLl7XgQKXJN7F31uVY5z8,10862 +django/core/management/commands/startapp.py,sha256=Dhllhaf1q3EKVnyBLhJ9QsWf6JmjAtYnVLruHsmMlcQ,503 +django/core/management/commands/startproject.py,sha256=Iv7KOco1GkzGqUEME_LCx5vGi4JfY8-lzdkazDqF7k8,789 +django/core/management/commands/test.py,sha256=UXxsInhGqrcsMMiHk6uBvAwMMzCZDwJl5_Ql3L6lkx8,2367 +django/core/management/commands/testserver.py,sha256=aiS0tCe6uXp9hjcE1LUfZ118xAcMa28ImHL4ynQSqO8,2238 +django/core/management/sql.py,sha256=fP6Bvq4NrQB_9Tb6XsYeCg57xs2Ck6uaCXq0ojFOSvA,1851 +django/core/management/templates.py,sha256=PlaxlTex6m1d42f_HT-B2nhittfw6RmjkIphVlQ558c,15415 +django/core/management/utils.py,sha256=VbXTgGLO7HYzg3Y93nt8VkHbPOBWWyojVHDMfdyzcyc,5434 +django/core/paginator.py,sha256=YFR2EE0W2cLhEuXSWI67c33DreVVSxlz9xRjqGs50zc,7905 +django/core/serializers/__init__.py,sha256=gaH58ip_2dyUFDlfOPenMkVJftQQOBvXqCcZBjAKwTA,8772 +django/core/serializers/__pycache__/__init__.cpython-312.pyc,, +django/core/serializers/__pycache__/base.cpython-312.pyc,, +django/core/serializers/__pycache__/json.cpython-312.pyc,, +django/core/serializers/__pycache__/jsonl.cpython-312.pyc,, +django/core/serializers/__pycache__/python.cpython-312.pyc,, +django/core/serializers/__pycache__/pyyaml.cpython-312.pyc,, +django/core/serializers/__pycache__/xml_serializer.cpython-312.pyc,, +django/core/serializers/base.py,sha256=6LnbPCb4wbDYsE3svEztt2AlS5hZx3NmIdM_0uRijh0,12631 +django/core/serializers/json.py,sha256=dP-VqkWpam7kZxTTPqnB5nZY9CEgS48bi1JAm27jwUo,3464 +django/core/serializers/jsonl.py,sha256=671JRbWRgOH3-oeD3auK9QCziwtrcdbyCIRDy5s4Evw,1879 +django/core/serializers/python.py,sha256=Sokl0FEwRwgKV7hKDAOZL30-Si6DWs9_kANyt7mFjss,6866 +django/core/serializers/pyyaml.py,sha256=77zu6PCfJg_75m36lX9X5018ADcux5qsDGajKNh4pI8,2955 +django/core/serializers/xml_serializer.py,sha256=HL7H3zByt0YhhoAAAzWiIq_zWG6R_byKDdBINX0v79g,18323 +django/core/servers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/core/servers/__pycache__/__init__.cpython-312.pyc,, +django/core/servers/__pycache__/basehttp.cpython-312.pyc,, +django/core/servers/basehttp.py,sha256=0XtDP4SDBGovGKe6oXBba6-qgBJK2lw1umB8RXSOtUo,9995 +django/core/signals.py,sha256=5vh1e7IgPN78WXPo7-hEMPN9tQcqJSZHu0WCibNgd-E,151 +django/core/signing.py,sha256=5-uDACJ8WxTJmwfwPoXRIO4nSr2v4032aTVwPaPLxWA,8772 +django/core/validators.py,sha256=SSPEX_MqfIovToXrXEyq8mkG7zznaQUUCxIei-HjDC0,23281 +django/core/wsgi.py,sha256=2sYMSe3IBrENeQT7rys-04CRmf8hW2Q2CjlkBUIyjHk,388 +django/db/__init__.py,sha256=CBuehITrkVMn02P63M0GY1MnZuC0GefA1MAoxlVo3b4,1533 +django/db/__pycache__/__init__.cpython-312.pyc,, +django/db/__pycache__/transaction.cpython-312.pyc,, +django/db/__pycache__/utils.cpython-312.pyc,, +django/db/backends/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/db/backends/__pycache__/__init__.cpython-312.pyc,, +django/db/backends/__pycache__/ddl_references.cpython-312.pyc,, +django/db/backends/__pycache__/signals.cpython-312.pyc,, +django/db/backends/__pycache__/utils.cpython-312.pyc,, +django/db/backends/base/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/db/backends/base/__pycache__/__init__.cpython-312.pyc,, +django/db/backends/base/__pycache__/base.cpython-312.pyc,, +django/db/backends/base/__pycache__/client.cpython-312.pyc,, +django/db/backends/base/__pycache__/creation.cpython-312.pyc,, +django/db/backends/base/__pycache__/features.cpython-312.pyc,, +django/db/backends/base/__pycache__/introspection.cpython-312.pyc,, +django/db/backends/base/__pycache__/operations.cpython-312.pyc,, +django/db/backends/base/__pycache__/schema.cpython-312.pyc,, +django/db/backends/base/__pycache__/validation.cpython-312.pyc,, +django/db/backends/base/base.py,sha256=MHWLJhA7-1OyOs9-L0CQLBoH8_Iw1_VOTZw1xJSP6GU,28603 +django/db/backends/base/client.py,sha256=90Ffs6zZYCli3tJjwsPH8TItZ8tz1Pp-zhQa-EpsNqc,937 +django/db/backends/base/creation.py,sha256=AFQL_xz48jYzZTdHl3r3d_2v_xGyJMMENXmEUcbRv48,15847 +django/db/backends/base/features.py,sha256=ijP81ZHfZPlUMKVHTjNxZ3IRWmwPdy4hpE6CxJSKZk8,15914 +django/db/backends/base/introspection.py,sha256=CJG3MUmR-wJpNm-gNWuMRMNknWp3ZdZ9DRUbKxcnwuo,7900 +django/db/backends/base/operations.py,sha256=j3OSjD1goRgNntZGnQ15-A7IKj9vV6rFrp338uqNLS8,30229 +django/db/backends/base/schema.py,sha256=mOcKOflaMQgRQ0I6IrOwbN6ET74F1rvm6Davghr3jYY,82021 +django/db/backends/base/validation.py,sha256=2zpI11hyUJr0I0cA1xmvoFwQVdZ-7_1T2F11TpQ0Rkk,1067 +django/db/backends/ddl_references.py,sha256=dUlkGLGdjOnacR_8PaweA5XSwgD8wojMTJUVOCOKVLY,8619 +django/db/backends/dummy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/db/backends/dummy/__pycache__/__init__.cpython-312.pyc,, +django/db/backends/dummy/__pycache__/base.cpython-312.pyc,, +django/db/backends/dummy/__pycache__/features.cpython-312.pyc,, +django/db/backends/dummy/base.py,sha256=im1_ubNhbY6cP8yNntqDr6Hlg5d5c_5r5IUCPCDfv28,2181 +django/db/backends/dummy/features.py,sha256=Pg8_jND-aoJomTaBBXU3hJEjzpB-rLs6VwpoKkOYuQg,181 +django/db/backends/mysql/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/db/backends/mysql/__pycache__/__init__.cpython-312.pyc,, +django/db/backends/mysql/__pycache__/base.cpython-312.pyc,, +django/db/backends/mysql/__pycache__/client.cpython-312.pyc,, +django/db/backends/mysql/__pycache__/compiler.cpython-312.pyc,, +django/db/backends/mysql/__pycache__/creation.cpython-312.pyc,, +django/db/backends/mysql/__pycache__/features.cpython-312.pyc,, +django/db/backends/mysql/__pycache__/introspection.cpython-312.pyc,, +django/db/backends/mysql/__pycache__/operations.cpython-312.pyc,, +django/db/backends/mysql/__pycache__/schema.cpython-312.pyc,, +django/db/backends/mysql/__pycache__/validation.cpython-312.pyc,, +django/db/backends/mysql/base.py,sha256=QgYv7BTHG1vGAGo6kQA27ihnyPhlxLzOPf3pBLuxpME,16861 +django/db/backends/mysql/client.py,sha256=IpwdI-H5r-QUoM8ZvPXHykNxKb2wevcUx8HvxTn_otU,2988 +django/db/backends/mysql/compiler.py,sha256=SPhbsHi8x_r4ZG8U7-Tnqr6F0G4rsxOyJjITKPHz3zE,3333 +django/db/backends/mysql/creation.py,sha256=8BV8YHk3qEq555nH3NHukxpZZgxtvXFvkv7XvkRlhKA,3449 +django/db/backends/mysql/features.py,sha256=IgbPUyEdeaUjQyo-_gbxMOtnkC-QCn1CPBe21CMRSwU,11998 +django/db/backends/mysql/introspection.py,sha256=AY06ZLynWypYTEGAsR-t4F9Uj7Fb0Hqi-QNW1YwRnEQ,14498 +django/db/backends/mysql/operations.py,sha256=R6dNA_IV4_o4e2gq8kh2kfqu4yoYoZVw_LGrqwNBxtQ,18437 +django/db/backends/mysql/schema.py,sha256=gT0N65db0omSMm4w09CccIN44cPbXzocL0ptzbUpWtc,11259 +django/db/backends/mysql/validation.py,sha256=XERj0lPEihKThPvzoVJmNpWdPOun64cRF3gHv-zmCGk,3093 +django/db/backends/oracle/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/db/backends/oracle/__pycache__/__init__.cpython-312.pyc,, +django/db/backends/oracle/__pycache__/base.cpython-312.pyc,, +django/db/backends/oracle/__pycache__/client.cpython-312.pyc,, +django/db/backends/oracle/__pycache__/creation.cpython-312.pyc,, +django/db/backends/oracle/__pycache__/features.cpython-312.pyc,, +django/db/backends/oracle/__pycache__/functions.cpython-312.pyc,, +django/db/backends/oracle/__pycache__/introspection.cpython-312.pyc,, +django/db/backends/oracle/__pycache__/operations.cpython-312.pyc,, +django/db/backends/oracle/__pycache__/oracledb_any.cpython-312.pyc,, +django/db/backends/oracle/__pycache__/schema.cpython-312.pyc,, +django/db/backends/oracle/__pycache__/utils.cpython-312.pyc,, +django/db/backends/oracle/__pycache__/validation.cpython-312.pyc,, +django/db/backends/oracle/base.py,sha256=Cu9jrGmB_6GlRIJjagt584MnhxO-8aoMtiL1Dt4bE-0,24171 +django/db/backends/oracle/client.py,sha256=DfDURfno8Sek13M8r5S2t2T8VUutx2hBT9DZRfow9VQ,784 +django/db/backends/oracle/creation.py,sha256=yHymYOsth1y8jxiyP5k7MZQeatKw75XvTT3J88vNLkE,20840 +django/db/backends/oracle/features.py,sha256=r3jmX3bcAbEVHYZQ124cdttwuY3gShcx1mqX2BjC2tc,8452 +django/db/backends/oracle/functions.py,sha256=2OoBYyY1Lb4B5hYbkRHjd8YY_artr3QeGu2hlojC-vc,812 +django/db/backends/oracle/introspection.py,sha256=MjjO-PqpcfiUd9WkLqiC8XGgbC4gocvymqQ1bh-ceKk,15474 +django/db/backends/oracle/operations.py,sha256=IVYHcknSUT0OEjnmmJV0yUFZTm-kDUuaJU97_7hGkBk,30008 +django/db/backends/oracle/oracledb_any.py,sha256=dZY337k3TH1JfZaXZR6HmDy6roolJrj50Sbv-27neFg,550 +django/db/backends/oracle/schema.py,sha256=M_Zuts3EQHIm966nK5rLIfxMYcNBc9i8QCePAdsBmKw,10700 +django/db/backends/oracle/utils.py,sha256=C9gumfPZAToaBg3HgsUoH5EU-_goM8ZrL_7VI5yw098,2753 +django/db/backends/oracle/validation.py,sha256=cq-Bvy5C0_rmkgng0SSQ4s74FKg2yTM1N782Gfz86nY,860 +django/db/backends/postgresql/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/db/backends/postgresql/__pycache__/__init__.cpython-312.pyc,, +django/db/backends/postgresql/__pycache__/base.cpython-312.pyc,, +django/db/backends/postgresql/__pycache__/client.cpython-312.pyc,, +django/db/backends/postgresql/__pycache__/creation.cpython-312.pyc,, +django/db/backends/postgresql/__pycache__/features.cpython-312.pyc,, +django/db/backends/postgresql/__pycache__/introspection.cpython-312.pyc,, +django/db/backends/postgresql/__pycache__/operations.cpython-312.pyc,, +django/db/backends/postgresql/__pycache__/psycopg_any.cpython-312.pyc,, +django/db/backends/postgresql/__pycache__/schema.cpython-312.pyc,, +django/db/backends/postgresql/base.py,sha256=fOR3vFlnOx_P1KFS0-Hc9kjIZAeCT3i9mRhsdx4GPYE,23580 +django/db/backends/postgresql/client.py,sha256=BxpiOYe2hzg4tWjPKHDJxa8zdr6S7CN9YiaOhTDJUOo,2044 +django/db/backends/postgresql/creation.py,sha256=pZYCzq893jcMd8jhnUH2suBaOC9LrkTtpBn9gdpqxTY,3886 +django/db/backends/postgresql/features.py,sha256=fkA6TruxChcZP2Q2r1fJTzXXIek57XKXIkhusWUphe4,6378 +django/db/backends/postgresql/introspection.py,sha256=0j4Y5ZAuSk8iaMbDBjUF9zHTcL3C5WibIiJygOvZMP8,11604 +django/db/backends/postgresql/operations.py,sha256=4wtKho3nrvigXJ1ymSmsJw1blPEhcRCjYAqeajd1iRE,15473 +django/db/backends/postgresql/psycopg_any.py,sha256=X2aU-MHfDNbXaKT2-2VC3mhiAVxYth_uMJPKoAPLsKQ,3885 +django/db/backends/postgresql/schema.py,sha256=TQM6fsyMssSEs5HiqoIL1hRaZAHB1b3Gg5bLYuTKEh8,14339 +django/db/backends/signals.py,sha256=Yl14KjYJijTt1ypIZirp90lS7UTJ8UogPFI_DwbcsSc,66 +django/db/backends/sqlite3/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/db/backends/sqlite3/__pycache__/__init__.cpython-312.pyc,, +django/db/backends/sqlite3/__pycache__/_functions.cpython-312.pyc,, +django/db/backends/sqlite3/__pycache__/base.cpython-312.pyc,, +django/db/backends/sqlite3/__pycache__/client.cpython-312.pyc,, +django/db/backends/sqlite3/__pycache__/creation.cpython-312.pyc,, +django/db/backends/sqlite3/__pycache__/features.cpython-312.pyc,, +django/db/backends/sqlite3/__pycache__/introspection.cpython-312.pyc,, +django/db/backends/sqlite3/__pycache__/operations.cpython-312.pyc,, +django/db/backends/sqlite3/__pycache__/schema.cpython-312.pyc,, +django/db/backends/sqlite3/_functions.py,sha256=4rwADvq4dJu8EAzUXPnrmN_lDcfg_Xf0w7DRHgj8faw,14559 +django/db/backends/sqlite3/base.py,sha256=osegQjtwLOGgblJCVfLNjzaJQ5br7hAC6i3GRZxtjto,15000 +django/db/backends/sqlite3/client.py,sha256=Eb_-P1w0aTbZGVNYkv7KA1ku5Il1N2RQov2lc3v0nho,321 +django/db/backends/sqlite3/creation.py,sha256=Ib9pfwA53G4wZpLZgh7EvdipoSdvhg-wxKSP2ZowwFM,6849 +django/db/backends/sqlite3/features.py,sha256=Fsqn-weI5SGOE4M7MfOtaDJhWUwaOMSzE_xOBVsfaJw,6295 +django/db/backends/sqlite3/introspection.py,sha256=tW6u4aGhbTUQ0AxK3xgJPU7weA9BGkBTXelFtWRh5ow,17551 +django/db/backends/sqlite3/operations.py,sha256=paIHeI57f7wImFr6sdt9EYLMPcK875Y3fp4LW-0H7jU,16880 +django/db/backends/sqlite3/schema.py,sha256=GuyAJRj5iunzQZturcnxHN7_BPtsqrsxMA8URFO0tAA,20215 +django/db/backends/utils.py,sha256=wFyQVfVs1AxR48yQIVQ-ll1sC9GUeCxdP-aavYL0lrs,11137 +django/db/migrations/__init__.py,sha256=Oa4RvfEa6hITCqdcqwXYC66YknFKyluuy7vtNbSc-L4,97 +django/db/migrations/__pycache__/__init__.cpython-312.pyc,, +django/db/migrations/__pycache__/autodetector.cpython-312.pyc,, +django/db/migrations/__pycache__/exceptions.cpython-312.pyc,, +django/db/migrations/__pycache__/executor.cpython-312.pyc,, +django/db/migrations/__pycache__/graph.cpython-312.pyc,, +django/db/migrations/__pycache__/loader.cpython-312.pyc,, +django/db/migrations/__pycache__/migration.cpython-312.pyc,, +django/db/migrations/__pycache__/optimizer.cpython-312.pyc,, +django/db/migrations/__pycache__/questioner.cpython-312.pyc,, +django/db/migrations/__pycache__/recorder.cpython-312.pyc,, +django/db/migrations/__pycache__/serializer.cpython-312.pyc,, +django/db/migrations/__pycache__/state.cpython-312.pyc,, +django/db/migrations/__pycache__/utils.cpython-312.pyc,, +django/db/migrations/__pycache__/writer.cpython-312.pyc,, +django/db/migrations/autodetector.py,sha256=PTK23c8g2cQ5o5urT5gJpSJnrKLPKba_K2AhxHEuIXY,84048 +django/db/migrations/exceptions.py,sha256=SotQF7ZKgJpd9KN-gKDL8wCJAKSEgbZToM_vtUAnqHw,1204 +django/db/migrations/executor.py,sha256=jx9J5WdS0X48UqxHkWKd2JYBUxds46Gn03ZZNAo8pTE,19038 +django/db/migrations/graph.py,sha256=vt7Pc45LuiXR8aRCrXP5Umm6VDCCTs2LAr5NXh-rxcE,13055 +django/db/migrations/loader.py,sha256=cVeJi7PwDc2Nxzgg3K_CrhK9H2HAtaXb1tG1PyDcSEA,16877 +django/db/migrations/migration.py,sha256=itZASGGepJYCY2Uv5AmLrxOgjEH1tycGV0bv3EtRjQE,9767 +django/db/migrations/operations/__init__.py,sha256=qIOjQYpm3tOtj1jsJVSpzxDH_kYAWk8MOGj-R3WYvJc,964 +django/db/migrations/operations/__pycache__/__init__.cpython-312.pyc,, +django/db/migrations/operations/__pycache__/base.cpython-312.pyc,, +django/db/migrations/operations/__pycache__/fields.cpython-312.pyc,, +django/db/migrations/operations/__pycache__/models.cpython-312.pyc,, +django/db/migrations/operations/__pycache__/special.cpython-312.pyc,, +django/db/migrations/operations/base.py,sha256=IPBwWk-8j44IZw6FvXC9RVXqecbF0OhK-R_LMYwhNd4,5562 +django/db/migrations/operations/fields.py,sha256=OAGpT0youYLL7LcxcpO-N5fhzGlx0r_wK1ZitM7qmAE,12900 +django/db/migrations/operations/models.py,sha256=RvX62tOl3DaYktF2qJbpHLO2mKnlRd6ai3umt7qFB6Y,44385 +django/db/migrations/operations/special.py,sha256=CMLfqR4rO8AhDMNscOXjblKuvNA3vWFzg-6M_7xZnX4,7966 +django/db/migrations/optimizer.py,sha256=c0JZ5FGltD_gmh20e5SR6A21q_De6rUKfkAJKwmX4Ks,3255 +django/db/migrations/questioner.py,sha256=HVtcEBRxQwL9JrQO5r1bVIZIZUFBfs9L-siuDQERZh0,13330 +django/db/migrations/recorder.py,sha256=HviA3DydJPqpE8gowv1lAnIdLMTSRpRXuLFn53r-Q1Y,3827 +django/db/migrations/serializer.py,sha256=oPznMQhNezYzUb-R1U79iIAp4DtZocFvjK--B0Bbyv4,14133 +django/db/migrations/state.py,sha256=W46D-rTkF2bLonDKgg6ucEyGAY-TEU2W4Gp5R43aubY,40750 +django/db/migrations/utils.py,sha256=pdrzumGDhgytc5KVWdZov7cQtBt3jRASLqbmBxSRSvg,4401 +django/db/migrations/writer.py,sha256=OWRUgtTrBLndIUeNxL3-6gI5ORPdIWG_Jy9Iluizs0M,11613 +django/db/models/__init__.py,sha256=Br4FzeU4EiGShlasR9xYwaXVXfVUtnbsrp7kEkWo-QQ,2992 +django/db/models/__pycache__/__init__.cpython-312.pyc,, +django/db/models/__pycache__/aggregates.cpython-312.pyc,, +django/db/models/__pycache__/base.cpython-312.pyc,, +django/db/models/__pycache__/constants.cpython-312.pyc,, +django/db/models/__pycache__/constraints.cpython-312.pyc,, +django/db/models/__pycache__/deletion.cpython-312.pyc,, +django/db/models/__pycache__/enums.cpython-312.pyc,, +django/db/models/__pycache__/expressions.cpython-312.pyc,, +django/db/models/__pycache__/indexes.cpython-312.pyc,, +django/db/models/__pycache__/lookups.cpython-312.pyc,, +django/db/models/__pycache__/manager.cpython-312.pyc,, +django/db/models/__pycache__/options.cpython-312.pyc,, +django/db/models/__pycache__/query.cpython-312.pyc,, +django/db/models/__pycache__/query_utils.cpython-312.pyc,, +django/db/models/__pycache__/signals.cpython-312.pyc,, +django/db/models/__pycache__/utils.cpython-312.pyc,, +django/db/models/aggregates.py,sha256=IRMdrM8j5t5R2Bpi-mStifRtBuaIyicymG-cSNgslCE,7663 +django/db/models/base.py,sha256=ye37ZYO2Oi7o-X5TDoIShBfp350TziWW0RrFL5hypDk,97078 +django/db/models/constants.py,sha256=ndnj9TOTKW0p4YcIPLOLEbsH6mOgFi6B1-rIzr_iwwU,210 +django/db/models/constraints.py,sha256=xSb5vVkGuMg4-8T2u7goQ9I8AH6sk5HZR2NdoKGdGtM,27772 +django/db/models/deletion.py,sha256=-d11zKahydG3NuyeM-HZLp1ZE9HWvZbMK8DEE0PzV5Q,21003 +django/db/models/enums.py,sha256=mgBBX7bFzuPYgkPR9hvy4FZOtbZE5gfbhHWsvrIhONQ,3527 +django/db/models/expressions.py,sha256=5MimSM0qi-dkGtvyu7UHZTDG4FPu74-TvkT32Fj2eYQ,72661 +django/db/models/fields/__init__.py,sha256=zuout4tQcpK99Pc5JfLRM9jE8Xi_G3r5vcgaN15_-zQ,98305 +django/db/models/fields/__pycache__/__init__.cpython-312.pyc,, +django/db/models/fields/__pycache__/files.cpython-312.pyc,, +django/db/models/fields/__pycache__/generated.cpython-312.pyc,, +django/db/models/fields/__pycache__/json.cpython-312.pyc,, +django/db/models/fields/__pycache__/mixins.cpython-312.pyc,, +django/db/models/fields/__pycache__/proxy.cpython-312.pyc,, +django/db/models/fields/__pycache__/related.cpython-312.pyc,, +django/db/models/fields/__pycache__/related_descriptors.cpython-312.pyc,, +django/db/models/fields/__pycache__/related_lookups.cpython-312.pyc,, +django/db/models/fields/__pycache__/reverse_related.cpython-312.pyc,, +django/db/models/fields/files.py,sha256=nLiRiY9bcVEwE8s5J6yxo2HqN3HreDHPDNHfaW3qLrs,20206 +django/db/models/fields/generated.py,sha256=hzCBUpS1fvoimEI_D7WtoLk6AryGw0TRdyk-UkYBDJE,7655 +django/db/models/fields/json.py,sha256=3ILErpyDWTplMZSvGf0N8mCQbUKZ1LVCZEoLMYBSAHg,22066 +django/db/models/fields/mixins.py,sha256=xyfOUGsBmteOW7LDHDuPP5jaRiwDPDR58BbPqQOvfRk,2452 +django/db/models/fields/proxy.py,sha256=eFHyl4gRTqocjgd6nID9UlQuOIppBA57Vcr71UReTAs,515 +django/db/models/fields/related.py,sha256=HzwQIVSyRQp8smW_8ImQ-AKJt5vbJRvj3hkzF14poNo,76543 +django/db/models/fields/related_descriptors.py,sha256=7ztPstQcip5e-N7QT2BAXsAVXY5f6tnm3MFg7rxeCds,66832 +django/db/models/fields/related_lookups.py,sha256=qTe81CM5MVVxmn28jfaoTDPYgh_m4gHW7g_MyJVtrmo,7813 +django/db/models/fields/reverse_related.py,sha256=vfkd-rmEFGqwqhZKRur2KNbPvTF0L1-QYPuY3qn1aP4,12882 +django/db/models/functions/__init__.py,sha256=aglCm_JtzDYk2KmxubDN_78CGG3JCfRWnfJ74Oj5YJ4,2658 +django/db/models/functions/__pycache__/__init__.cpython-312.pyc,, +django/db/models/functions/__pycache__/comparison.cpython-312.pyc,, +django/db/models/functions/__pycache__/datetime.cpython-312.pyc,, +django/db/models/functions/__pycache__/math.cpython-312.pyc,, +django/db/models/functions/__pycache__/mixins.cpython-312.pyc,, +django/db/models/functions/__pycache__/text.cpython-312.pyc,, +django/db/models/functions/__pycache__/window.cpython-312.pyc,, +django/db/models/functions/comparison.py,sha256=7Zx1XVtpkfczRMN-yGsXwKOZArOnmkoawioxSiVbvI8,8900 +django/db/models/functions/datetime.py,sha256=IxDj0X1IUkzbIFbyDmjQZ0PL7eIO2rMn1kU47JlSl1E,13614 +django/db/models/functions/math.py,sha256=NugCfaC8Y_VhpEr62HMeDX3O934NnuBPsk3mi5I_DmE,6140 +django/db/models/functions/mixins.py,sha256=UqpHYyF33JSEWYdggezTtWkrMkPKFEfW6enIkujzgaQ,2382 +django/db/models/functions/text.py,sha256=f2XaNBSV5pQIH_mY2-mCeAMmZq1p1-iit_2WMatdrxI,11526 +django/db/models/functions/window.py,sha256=g4fryay1tLQCpZRfmPQhrTiuib4RvPqtwFdodlLbi98,2841 +django/db/models/indexes.py,sha256=HYCD06Is7-f0aIGkXdWNeEXzfBoSY6ECNCiVbe8tlwk,11935 +django/db/models/lookups.py,sha256=0kFrvPOg9deZ2NN-vSNGsB55K1DyKH5770NiX1nN1gw,27407 +django/db/models/manager.py,sha256=n97p4q0ttwmI1XcF9dAl8Pfg5Zs8iudufhWebQ7Xau0,6866 +django/db/models/options.py,sha256=Q7uyChb_iUw-L9C8QNFsHi6jSRn4FqZulpxSXXqooNA,39039 +django/db/models/query.py,sha256=rdmIkedhXBaHqGvf00I3YpbuPHcCiLDpIjxle-ZU25Q,105536 +django/db/models/query_utils.py,sha256=w3x-mS-FFnF4GXkXr4_Otgv5Nst9skYNC1Hmj5pycwc,17266 +django/db/models/signals.py,sha256=mG6hxVWugr_m0ugTU2XAEMiqlu2FJ4CBuGa34dLJvEQ,1622 +django/db/models/sql/__init__.py,sha256=BGZ1GSn03dTOO8PYx6vF1-ImE3g1keZsQ74AHJoQwmQ,241 +django/db/models/sql/__pycache__/__init__.cpython-312.pyc,, +django/db/models/sql/__pycache__/compiler.cpython-312.pyc,, +django/db/models/sql/__pycache__/constants.cpython-312.pyc,, +django/db/models/sql/__pycache__/datastructures.cpython-312.pyc,, +django/db/models/sql/__pycache__/query.cpython-312.pyc,, +django/db/models/sql/__pycache__/subqueries.cpython-312.pyc,, +django/db/models/sql/__pycache__/where.cpython-312.pyc,, +django/db/models/sql/compiler.py,sha256=ny4zohi_eSFtYhri7eRJiSSgdyDV26_xpKPIOfubKqM,89920 +django/db/models/sql/constants.py,sha256=usb1LSh9WNGPsurWAGppDkV0wYJJg5GEegKibQdS718,533 +django/db/models/sql/datastructures.py,sha256=tDcVdWqVZgpzcMgEVBVBNyR21-UCoV2bd6o0AkgeUGs,8271 +django/db/models/sql/query.py,sha256=hA2k3gQUAdvWqD0V5DuhvupGMkTqzzbLjoptJqCArEw,116561 +django/db/models/sql/subqueries.py,sha256=0UgV3H-aG3178weqpp_hfQkwgUxm5t3LDlSKGAqmaU8,6029 +django/db/models/sql/where.py,sha256=Vi98aGtuFwccTDp9LJ5AtQiitnrZyF8VdRlGqsdIKBg,13049 +django/db/models/utils.py,sha256=vzojL0uUQHuOm2KxTJ19DHGnQ1pBXbnWaTlzR0vVimI,2182 +django/db/transaction.py,sha256=U9O5DF_Eg8SG1dvcn_oFimU-ONaXKoHdDsXl0ZYtjFM,12504 +django/db/utils.py,sha256=RKtSSyVJmM5__SAs1pY0njX6hLVRy1WIBggYo1zP4RI,9279 +django/dispatch/__init__.py,sha256=qP203zNwjaolUFnXLNZHnuBn7HNzyw9_JkODECRKZbc,286 +django/dispatch/__pycache__/__init__.cpython-312.pyc,, +django/dispatch/__pycache__/dispatcher.cpython-312.pyc,, +django/dispatch/dispatcher.py,sha256=OHaB-_kl1GeVwKh_bIMbHNFmH2yVN4qfSQz2aAVXfME,17777 +django/dispatch/license.txt,sha256=VABMS2BpZOvBY68W0EYHwW5Cj4p4oCb-y1P3DAn0qU8,1743 +django/forms/__init__.py,sha256=S6ckOMmvUX-vVST6AC-M8BzsfVQwuEUAdHWabMN-OGI,368 +django/forms/__pycache__/__init__.cpython-312.pyc,, +django/forms/__pycache__/boundfield.cpython-312.pyc,, +django/forms/__pycache__/fields.cpython-312.pyc,, +django/forms/__pycache__/forms.cpython-312.pyc,, +django/forms/__pycache__/formsets.cpython-312.pyc,, +django/forms/__pycache__/models.cpython-312.pyc,, +django/forms/__pycache__/renderers.cpython-312.pyc,, +django/forms/__pycache__/utils.cpython-312.pyc,, +django/forms/__pycache__/widgets.cpython-312.pyc,, +django/forms/boundfield.py,sha256=2skied44gaSV-e9TSB-iP1EVyQN_5KsOcVd30vHggmc,13029 +django/forms/fields.py,sha256=POauofCdgP4jxTeHNt9xtE0CES1ZAbi86wqEWSMjLqo,49511 +django/forms/forms.py,sha256=z43KFrTN97zgAXoybZeVafVWsRNZGHB6cwNLRUoDK9g,15767 +django/forms/formsets.py,sha256=ps-7Og-757fKSgPT6xoJJ8UFzYnIbJuZ0_rKEdZzRO4,21190 +django/forms/jinja2/django/forms/attrs.html,sha256=TD0lNK-ohDjb_bWg1Kosdn4kU01B_M0_C19dp9kYJqo,165 +django/forms/jinja2/django/forms/div.html,sha256=WaOqY1hQe1l6vnc3TdlBmQnQRsofIoNDvGAfg2-X1lU,514 +django/forms/jinja2/django/forms/errors/dict/default.html,sha256=1DLQf0Czjr5V4cghQOyJr3v34G2ClF0RAOc-H7GwXUE,49 +django/forms/jinja2/django/forms/errors/dict/text.txt,sha256=E7eqEWc6q2_kLyc9k926klRe2mPp4O2VqG-2_MliYaU,113 +django/forms/jinja2/django/forms/errors/dict/ul.html,sha256=65EYJOqDAn7-ca7FtjrcdbXygLE-RA_IJQTltO7qS1Q,137 +django/forms/jinja2/django/forms/errors/list/default.html,sha256=q41d4u6XcxDL06gRAVdU021kM_iFLIt5BuYa-HATOWE,49 +django/forms/jinja2/django/forms/errors/list/text.txt,sha256=VVbLrGMHcbs1hK9-2v2Y6SIoH9qRMtlKzM6qzLVAFyE,52 +django/forms/jinja2/django/forms/errors/list/ul.html,sha256=AwXfGxnos6llX44dhxMChz6Kk6VStAJiNzUpSLN8_y4,119 +django/forms/jinja2/django/forms/field.html,sha256=-3Ta35bjK6x9yOMn9it5RJJOVJlBXrKfZobcNV02PDY,573 +django/forms/jinja2/django/forms/formsets/div.html,sha256=uq10XZdQ1WSt6kJFoKxtluvnCKE4L3oYcLkPraF4ovs,86 +django/forms/jinja2/django/forms/formsets/p.html,sha256=HzEX7XdSDt9owDkYJvBdFIETeU9RDbXc1e4R2YEt6ec,84 +django/forms/jinja2/django/forms/formsets/table.html,sha256=L9B4E8lR0roTr7dBoMiUlekuMbO-3y4_b4NHm6Oy_Vg,88 +django/forms/jinja2/django/forms/formsets/ul.html,sha256=ANvMWb6EeFAtLPDTr61IeI3-YHtAYZCT_zmm-_y-5Oc,85 +django/forms/jinja2/django/forms/label.html,sha256=trXo6yF4ezDv-y-8y1yJnP7sSByw0TTppgZLcrmfR6M,147 +django/forms/jinja2/django/forms/p.html,sha256=NsTxSuqV58iOT7_3EvWRkY1zVYCdhzLBrtde1V47QTA,740 +django/forms/jinja2/django/forms/table.html,sha256=RoJweFtjCPwkFhAAlPT7i_sSCDxo1xMs3NH0uFIla20,881 +django/forms/jinja2/django/forms/ul.html,sha256=svUpAmU5EhhGVHKs8qXixJN-3SzPft8CXoG3-4gegs8,779 +django/forms/jinja2/django/forms/widgets/attrs.html,sha256=_J2P-AOpHFhIwaqCNcrJFxEY4s-KPdy0Wcq0KlarIG0,172 +django/forms/jinja2/django/forms/widgets/checkbox.html,sha256=fXpbxMzAdbv_avfWC5464gD2jFng931Eq7vzbzy1-yA,48 +django/forms/jinja2/django/forms/widgets/checkbox_option.html,sha256=U2dFtAXvOn_eK4ok0oO6BwKE-3-jozJboGah_PQFLVM,55 +django/forms/jinja2/django/forms/widgets/checkbox_select.html,sha256=-ob26uqmvrEUMZPQq6kAqK4KBk2YZHTCWWCM6BnaL0w,57 +django/forms/jinja2/django/forms/widgets/clearable_file_input.html,sha256=1dv4xtik6um_mzK1skURF_n4G1t1yluziQu2UWa6fX8,559 +django/forms/jinja2/django/forms/widgets/date.html,sha256=fXpbxMzAdbv_avfWC5464gD2jFng931Eq7vzbzy1-yA,48 +django/forms/jinja2/django/forms/widgets/datetime.html,sha256=fXpbxMzAdbv_avfWC5464gD2jFng931Eq7vzbzy1-yA,48 +django/forms/jinja2/django/forms/widgets/email.html,sha256=fXpbxMzAdbv_avfWC5464gD2jFng931Eq7vzbzy1-yA,48 +django/forms/jinja2/django/forms/widgets/file.html,sha256=fXpbxMzAdbv_avfWC5464gD2jFng931Eq7vzbzy1-yA,48 +django/forms/jinja2/django/forms/widgets/hidden.html,sha256=fXpbxMzAdbv_avfWC5464gD2jFng931Eq7vzbzy1-yA,48 +django/forms/jinja2/django/forms/widgets/input.html,sha256=u12fZde-ugkEAAkPAtAfSxwGQmYBkXkssWohOUs-xoE,172 +django/forms/jinja2/django/forms/widgets/input_option.html,sha256=PyRNn9lmE9Da0-RK37zW4yJZUSiJWgIPCU9ou5oUC28,219 +django/forms/jinja2/django/forms/widgets/multiple_hidden.html,sha256=T54-n1ZeUlTd-svM3C4tLF42umKM0R5A7fdfsdthwkA,54 +django/forms/jinja2/django/forms/widgets/multiple_input.html,sha256=voM3dqu69R0Z202TmCgMFM6toJp7FgFPVvbWY9WKEAU,395 +django/forms/jinja2/django/forms/widgets/multiwidget.html,sha256=pr-MxRyucRxn_HvBGZvbc3JbFyrAolbroxvA4zmPz2Y,86 +django/forms/jinja2/django/forms/widgets/number.html,sha256=fXpbxMzAdbv_avfWC5464gD2jFng931Eq7vzbzy1-yA,48 +django/forms/jinja2/django/forms/widgets/password.html,sha256=fXpbxMzAdbv_avfWC5464gD2jFng931Eq7vzbzy1-yA,48 +django/forms/jinja2/django/forms/widgets/radio.html,sha256=-ob26uqmvrEUMZPQq6kAqK4KBk2YZHTCWWCM6BnaL0w,57 +django/forms/jinja2/django/forms/widgets/radio_option.html,sha256=U2dFtAXvOn_eK4ok0oO6BwKE-3-jozJboGah_PQFLVM,55 +django/forms/jinja2/django/forms/widgets/select.html,sha256=ESyDzbLTtM7-OG34EuSUnvxCtyP5IrQsZh0jGFrIdEA,365 +django/forms/jinja2/django/forms/widgets/select_date.html,sha256=AzaPLlNLg91qkVQwwtAJxwOqDemrtt_btSkWLpboJDs,54 +django/forms/jinja2/django/forms/widgets/select_option.html,sha256=tNa1D3G8iy2ZcWeKyI-mijjDjRmMaqSo-jnAR_VS3Qc,110 +django/forms/jinja2/django/forms/widgets/splitdatetime.html,sha256=AzaPLlNLg91qkVQwwtAJxwOqDemrtt_btSkWLpboJDs,54 +django/forms/jinja2/django/forms/widgets/splithiddendatetime.html,sha256=AzaPLlNLg91qkVQwwtAJxwOqDemrtt_btSkWLpboJDs,54 +django/forms/jinja2/django/forms/widgets/text.html,sha256=fXpbxMzAdbv_avfWC5464gD2jFng931Eq7vzbzy1-yA,48 +django/forms/jinja2/django/forms/widgets/textarea.html,sha256=Av1Y-hpXUU2AjrhnUivgZFKNBLdwCSZSeuSmCqmCkDA,145 +django/forms/jinja2/django/forms/widgets/time.html,sha256=fXpbxMzAdbv_avfWC5464gD2jFng931Eq7vzbzy1-yA,48 +django/forms/jinja2/django/forms/widgets/url.html,sha256=fXpbxMzAdbv_avfWC5464gD2jFng931Eq7vzbzy1-yA,48 +django/forms/models.py,sha256=hzd8IFjIP8qauQQocI_Uf3jF0jnZkSOxDDZ0OfWo2mI,61209 +django/forms/renderers.py,sha256=48Xahe1sV49TVX_A3aKwZqMbGgC7jd0LkZ1FX2vgU_k,3203 +django/forms/templates/django/forms/attrs.html,sha256=UFPgCXXCAkbumxZE1NM-aJVE4VCe2RjCrHLNseibv3I,165 +django/forms/templates/django/forms/div.html,sha256=PgJSGlEXXLmh58WLH49cxvUaWI8bxE0ioTf-MY89uF8,525 +django/forms/templates/django/forms/errors/dict/default.html,sha256=tFtwfHlkOY_XaKjoUPsWshiSWT5olxm3kDElND-GQtQ,48 +django/forms/templates/django/forms/errors/dict/text.txt,sha256=E7eqEWc6q2_kLyc9k926klRe2mPp4O2VqG-2_MliYaU,113 +django/forms/templates/django/forms/errors/dict/ul.html,sha256=65EYJOqDAn7-ca7FtjrcdbXygLE-RA_IJQTltO7qS1Q,137 +django/forms/templates/django/forms/errors/list/default.html,sha256=Kmx1nwrzQ49MaP80Gd17GC5TQH4B7doWa3I3azXvoHA,48 +django/forms/templates/django/forms/errors/list/text.txt,sha256=VVbLrGMHcbs1hK9-2v2Y6SIoH9qRMtlKzM6qzLVAFyE,52 +django/forms/templates/django/forms/errors/list/ul.html,sha256=5kt2ckbr3esK0yoPzco2EB0WzS8MvGzau_rAcomB508,118 +django/forms/templates/django/forms/field.html,sha256=8XAHg-I3OKmLS4EGQT_zQHJKLL9z6KRPR8ehmcxsDvg,568 +django/forms/templates/django/forms/formsets/div.html,sha256=lmIRSTBuGczEd2lj-UfDS9zAlVv8ntpmRo-boDDRwEg,84 +django/forms/templates/django/forms/formsets/p.html,sha256=qkoHKem-gb3iqvTtROBcHNJqI-RoUwLHUvJC6EoHg-I,82 +django/forms/templates/django/forms/formsets/table.html,sha256=N0G9GETzJfV16wUesvdrNMDwc8Fhh6durrmkHUPeDZY,86 +django/forms/templates/django/forms/formsets/ul.html,sha256=bGQpjbpKwMahyiIP4-2p3zg3yJP-pN1A48yCqhHdw7o,83 +django/forms/templates/django/forms/label.html,sha256=0bJCdIj8G5e2Gaw3QUR0ZMdwVavC80YwxS5E0ShkzmE,122 +django/forms/templates/django/forms/p.html,sha256=NhXyxIJCngGT7xK2nA4_vpEWWiaIcIUKGVOmMcnjRy4,751 +django/forms/templates/django/forms/table.html,sha256=ELTypjKfqSluAJk6-no0m2_Rve3c6HJoWV3hQ_xfnto,892 +django/forms/templates/django/forms/ul.html,sha256=vPmRsKnLcofRZJq23XHxnBs8PLs6jD4_Pw1ULbtSxPg,790 +django/forms/templates/django/forms/widgets/attrs.html,sha256=9ylIPv5EZg-rx2qPLgobRkw6Zq_WJSM8kt106PpSYa0,172 +django/forms/templates/django/forms/widgets/checkbox.html,sha256=fXpbxMzAdbv_avfWC5464gD2jFng931Eq7vzbzy1-yA,48 +django/forms/templates/django/forms/widgets/checkbox_option.html,sha256=U2dFtAXvOn_eK4ok0oO6BwKE-3-jozJboGah_PQFLVM,55 +django/forms/templates/django/forms/widgets/checkbox_select.html,sha256=-ob26uqmvrEUMZPQq6kAqK4KBk2YZHTCWWCM6BnaL0w,57 +django/forms/templates/django/forms/widgets/clearable_file_input.html,sha256=1dv4xtik6um_mzK1skURF_n4G1t1yluziQu2UWa6fX8,559 +django/forms/templates/django/forms/widgets/date.html,sha256=fXpbxMzAdbv_avfWC5464gD2jFng931Eq7vzbzy1-yA,48 +django/forms/templates/django/forms/widgets/datetime.html,sha256=fXpbxMzAdbv_avfWC5464gD2jFng931Eq7vzbzy1-yA,48 +django/forms/templates/django/forms/widgets/email.html,sha256=fXpbxMzAdbv_avfWC5464gD2jFng931Eq7vzbzy1-yA,48 +django/forms/templates/django/forms/widgets/file.html,sha256=fXpbxMzAdbv_avfWC5464gD2jFng931Eq7vzbzy1-yA,48 +django/forms/templates/django/forms/widgets/hidden.html,sha256=fXpbxMzAdbv_avfWC5464gD2jFng931Eq7vzbzy1-yA,48 +django/forms/templates/django/forms/widgets/input.html,sha256=dwzzrLocGLZQIaGe-_X8k7z87jV6AFtn28LilnUnUH0,189 +django/forms/templates/django/forms/widgets/input_option.html,sha256=PyRNn9lmE9Da0-RK37zW4yJZUSiJWgIPCU9ou5oUC28,219 +django/forms/templates/django/forms/widgets/multiple_hidden.html,sha256=T54-n1ZeUlTd-svM3C4tLF42umKM0R5A7fdfsdthwkA,54 +django/forms/templates/django/forms/widgets/multiple_input.html,sha256=jxEWRqV32a73340eQ0uIn672Xz5jW9qm3V_srByLEd0,426 +django/forms/templates/django/forms/widgets/multiwidget.html,sha256=slk4AgCdXnVmFvavhjVcsza0quTOP2LG50D8wna0dw0,117 +django/forms/templates/django/forms/widgets/number.html,sha256=fXpbxMzAdbv_avfWC5464gD2jFng931Eq7vzbzy1-yA,48 +django/forms/templates/django/forms/widgets/password.html,sha256=fXpbxMzAdbv_avfWC5464gD2jFng931Eq7vzbzy1-yA,48 +django/forms/templates/django/forms/widgets/radio.html,sha256=-ob26uqmvrEUMZPQq6kAqK4KBk2YZHTCWWCM6BnaL0w,57 +django/forms/templates/django/forms/widgets/radio_option.html,sha256=U2dFtAXvOn_eK4ok0oO6BwKE-3-jozJboGah_PQFLVM,55 +django/forms/templates/django/forms/widgets/select.html,sha256=7U0RzjeESG87ENzQjPRUF71gvKvGjVVvXcpsW2-BTR4,384 +django/forms/templates/django/forms/widgets/select_date.html,sha256=AzaPLlNLg91qkVQwwtAJxwOqDemrtt_btSkWLpboJDs,54 +django/forms/templates/django/forms/widgets/select_option.html,sha256=N_psd0JYCqNhx2eh2oyvkF2KU2dv7M9mtMw_4BLYq8A,127 +django/forms/templates/django/forms/widgets/splitdatetime.html,sha256=AzaPLlNLg91qkVQwwtAJxwOqDemrtt_btSkWLpboJDs,54 +django/forms/templates/django/forms/widgets/splithiddendatetime.html,sha256=AzaPLlNLg91qkVQwwtAJxwOqDemrtt_btSkWLpboJDs,54 +django/forms/templates/django/forms/widgets/text.html,sha256=fXpbxMzAdbv_avfWC5464gD2jFng931Eq7vzbzy1-yA,48 +django/forms/templates/django/forms/widgets/textarea.html,sha256=Av1Y-hpXUU2AjrhnUivgZFKNBLdwCSZSeuSmCqmCkDA,145 +django/forms/templates/django/forms/widgets/time.html,sha256=fXpbxMzAdbv_avfWC5464gD2jFng931Eq7vzbzy1-yA,48 +django/forms/templates/django/forms/widgets/url.html,sha256=fXpbxMzAdbv_avfWC5464gD2jFng931Eq7vzbzy1-yA,48 +django/forms/utils.py,sha256=Aqd1Sz6wHl7SaueN7hzE1-XqhHvy9wOCWn_TSRlqLMY,7888 +django/forms/widgets.py,sha256=0xT2Cr0DYrf8Gs4wvGvyjSHWB2GtmvpmS5_Cz8Z7Qf0,39470 +django/http/__init__.py,sha256=uVUz0ov-emc29hbD78QKKka_R1L4mpDDPhkyfkx4jzQ,1200 +django/http/__pycache__/__init__.cpython-312.pyc,, +django/http/__pycache__/cookie.cpython-312.pyc,, +django/http/__pycache__/multipartparser.cpython-312.pyc,, +django/http/__pycache__/request.cpython-312.pyc,, +django/http/__pycache__/response.cpython-312.pyc,, +django/http/cookie.py,sha256=t7yGORGClUnCYVKQqyLBlEYsxQLLHn9crsMSWqK_Eic,679 +django/http/multipartparser.py,sha256=mrVXa2yenSbSOOlhIrgbfWS-3qlhvVtDEflSgTAKtsk,27830 +django/http/request.py,sha256=SPKLZprCQ1-tdSQauspS9DeDjS97XCposUg6JQLDk8w,25750 +django/http/response.py,sha256=62Xj0NhLfYR_V_UHuLEddNKif-O55RHgZhan5D1TSxo,25348 +django/middleware/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/middleware/__pycache__/__init__.cpython-312.pyc,, +django/middleware/__pycache__/cache.cpython-312.pyc,, +django/middleware/__pycache__/clickjacking.cpython-312.pyc,, +django/middleware/__pycache__/common.cpython-312.pyc,, +django/middleware/__pycache__/csrf.cpython-312.pyc,, +django/middleware/__pycache__/gzip.cpython-312.pyc,, +django/middleware/__pycache__/http.cpython-312.pyc,, +django/middleware/__pycache__/locale.cpython-312.pyc,, +django/middleware/__pycache__/security.cpython-312.pyc,, +django/middleware/cache.py,sha256=KOlg-Knjx_17KtXr-vx2DEpWvpzojk3yFUSsMHUIYo4,8487 +django/middleware/clickjacking.py,sha256=rIm2VlbblLWrMTRYJ1JBIui5xshAM-2mpyJf989xOgY,1724 +django/middleware/common.py,sha256=ZXRbyYb2l71FRhVYV8RK_APZw9qVVHQSzLq6Ip80mFo,7666 +django/middleware/csrf.py,sha256=3wo10zy9uLq1P8dF8740-rN6gbKmEjDBDlTjX9K3M-Q,19489 +django/middleware/gzip.py,sha256=jsJeYv0-A4iD6-1Pd3Hehl2ZtshpE4WeBTei-4PwciA,2945 +django/middleware/http.py,sha256=RqXN9Kp6GEh8j_ub7YXRi6W2_CKZTZEyAPpFUzeNPBs,1616 +django/middleware/locale.py,sha256=CV8aerSUWmO6cJQ6IrD5BzT3YlOxYNIqFraCqr8DoY4,3442 +django/middleware/security.py,sha256=yqawglqNcPrITIUvQhSpn3BD899It4fhyOyJCTImlXE,2599 +django/shortcuts.py,sha256=AqabKkXfFofMyVAbkYGBZcUMkkiySRu0-CIembfO6cA,6293 +django/template/__init__.py,sha256=-hvAhcRO8ydLdjTJJFr6LYoBVCsJq561ebRqE9kYBJs,1845 +django/template/__pycache__/__init__.cpython-312.pyc,, +django/template/__pycache__/autoreload.cpython-312.pyc,, +django/template/__pycache__/base.cpython-312.pyc,, +django/template/__pycache__/context.cpython-312.pyc,, +django/template/__pycache__/context_processors.cpython-312.pyc,, +django/template/__pycache__/defaultfilters.cpython-312.pyc,, +django/template/__pycache__/defaulttags.cpython-312.pyc,, +django/template/__pycache__/engine.cpython-312.pyc,, +django/template/__pycache__/exceptions.cpython-312.pyc,, +django/template/__pycache__/library.cpython-312.pyc,, +django/template/__pycache__/loader.cpython-312.pyc,, +django/template/__pycache__/loader_tags.cpython-312.pyc,, +django/template/__pycache__/response.cpython-312.pyc,, +django/template/__pycache__/smartif.cpython-312.pyc,, +django/template/__pycache__/utils.cpython-312.pyc,, +django/template/autoreload.py,sha256=hBanYQNDNEdgpty89I2mP_bxD-MyaeXWRmgX3K6a8Zg,2063 +django/template/backends/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/template/backends/__pycache__/__init__.cpython-312.pyc,, +django/template/backends/__pycache__/base.cpython-312.pyc,, +django/template/backends/__pycache__/django.cpython-312.pyc,, +django/template/backends/__pycache__/dummy.cpython-312.pyc,, +django/template/backends/__pycache__/jinja2.cpython-312.pyc,, +django/template/backends/__pycache__/utils.cpython-312.pyc,, +django/template/backends/base.py,sha256=IniOWzwfJHhrg0azO55fhZ3d1cghNjvsrgaMkV7o6x4,2801 +django/template/backends/django.py,sha256=wbOUhTVQyz2HvrTVG1GJUknDPJtuBFDuXbm15xf7jO4,5963 +django/template/backends/dummy.py,sha256=M62stG_knf7AdVp42ZWWddkNv6g6ck_sc1nRR6Sc_xA,1751 +django/template/backends/jinja2.py,sha256=U9WBznoElT-REbITG7DnZgR7SA_Awf1gWS9vc0yrEfs,4036 +django/template/backends/utils.py,sha256=z5X_lxKa9qL4KFDVeai-FmsewU3KLgVHO8y-gHLiVts,424 +django/template/base.py,sha256=NT8kiQUNjRuSDOJTW9ez_TEsBE2OESRM6h6yj6aqH28,40582 +django/template/context.py,sha256=Ztm5fvpHtdLVy7Dc7x5o8iZD3DtQBR7okocbKPpezYA,9353 +django/template/context_processors.py,sha256=PMIuGUE1iljf5L8oXggIdvvFOhCLJpASdwd39BMdjBE,2480 +django/template/defaultfilters.py,sha256=BxaTQcUOmE4C_-FLhCQkATQS0S0z7jGfSaouGPl3T5A,28438 +django/template/defaulttags.py,sha256=rg8MynL_3R2LzK9wGCuSdf2a_ynVOiC7bB5pcty8rh8,49678 +django/template/engine.py,sha256=gpk2HUxFfxVhw5onriW1uHVAec6JhVHqMcObNESXwO4,7773 +django/template/exceptions.py,sha256=rqG3_qZq31tUHbmtZD-MIu0StChqwaFejFFpR4u7th4,1342 +django/template/library.py,sha256=f_7-FMZRxhyhWdZMd4rGVYBnPoP8ZCPu5m-FSVoz_3s,13359 +django/template/loader.py,sha256=PVFUUtC5WgiRVVTilhQ6NFZnvjly6sP9s7anFmMoKdo,2054 +django/template/loader_tags.py,sha256=yGu7UOutGgzM_60RmNQhFL5Ctuho6_IuIM1sIzENgrc,13119 +django/template/loaders/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/template/loaders/__pycache__/__init__.cpython-312.pyc,, +django/template/loaders/__pycache__/app_directories.cpython-312.pyc,, +django/template/loaders/__pycache__/base.cpython-312.pyc,, +django/template/loaders/__pycache__/cached.cpython-312.pyc,, +django/template/loaders/__pycache__/filesystem.cpython-312.pyc,, +django/template/loaders/__pycache__/locmem.cpython-312.pyc,, +django/template/loaders/app_directories.py,sha256=sQpVXKYpnKr9Rl1YStNca-bGIQHcOkSnmm1l2qRGFVE,312 +django/template/loaders/base.py,sha256=Y5V4g0ly9GuNe7BQxaJSMENJnvxzXJm7XhSTxzfFM0s,1636 +django/template/loaders/cached.py,sha256=bDwkWYPgbvprU_u9f9w9oNYpSW_j9b7so_mlKzp9-N4,3716 +django/template/loaders/filesystem.py,sha256=f4silD7WWhv3K9QySMgW7dlGGNwwYAcHCMSTFpwiiXY,1506 +django/template/loaders/locmem.py,sha256=t9p0GYF2VHf4XG6Gggp0KBmHkdIuSKuLdiVXMVb2iHs,672 +django/template/response.py,sha256=UAU-aM7mn6cbGOIJuurn4EE5ITdcAqSFgKD5RXFms4w,5584 +django/template/smartif.py,sha256=TLbvSZa_M4B80M2X108FK2TFjHoA8RG9bfxB0PLKNck,6410 +django/template/utils.py,sha256=c9cJRfmBXs-41xa8KkZiLkeqUAbd-8elKc_7WdnI3G0,3626 +django/templatetags/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/templatetags/__pycache__/__init__.cpython-312.pyc,, +django/templatetags/__pycache__/cache.cpython-312.pyc,, +django/templatetags/__pycache__/i18n.cpython-312.pyc,, +django/templatetags/__pycache__/l10n.cpython-312.pyc,, +django/templatetags/__pycache__/static.cpython-312.pyc,, +django/templatetags/__pycache__/tz.cpython-312.pyc,, +django/templatetags/cache.py,sha256=WaYvWUn5ZTERwjouvkm-c5L5LRLc-GpSWl19wFod_bk,3551 +django/templatetags/i18n.py,sha256=UrS-aE3XCEK_oX18kmH8gSgA10MGHMeMTLOAESDtufI,19961 +django/templatetags/l10n.py,sha256=GB5_u3ymAtzxUtAY8QLb_pcZrzie9ZxEca-1NuKIXBY,1563 +django/templatetags/static.py,sha256=W4Rqt3DN_YtXe6EoqO-GLy7WR7xd7z0JsoX-VT0vvjc,4730 +django/templatetags/tz.py,sha256=0uSwEcqywsn1FrdOtyIjSsSCCEqzW0CDVebP-tzIBiY,5357 +django/test/__init__.py,sha256=X12C98lKN5JW1-wms7B6OaMTo-Li90waQpjfJE1V3AE,834 +django/test/__pycache__/__init__.cpython-312.pyc,, +django/test/__pycache__/client.cpython-312.pyc,, +django/test/__pycache__/html.cpython-312.pyc,, +django/test/__pycache__/runner.cpython-312.pyc,, +django/test/__pycache__/selenium.cpython-312.pyc,, +django/test/__pycache__/signals.cpython-312.pyc,, +django/test/__pycache__/testcases.cpython-312.pyc,, +django/test/__pycache__/utils.cpython-312.pyc,, +django/test/client.py,sha256=wcB9CqUb4Rq_kx5srAJ34DqMGwsjvb4B5jwnjJ8ZGb8,55968 +django/test/html.py,sha256=W97B8kAeeY3tqWrttffWkI0bK-j-vn69l-79WCsMu9A,8869 +django/test/runner.py,sha256=ZfFg65uYrWFiMMKB1HgbFK0_zVz5hsDwE-62145_H6M,42227 +django/test/selenium.py,sha256=DtQxR_MqglIfkR5dMQXeNiC3l_vmgxllRuHBz_LKZNY,9685 +django/test/signals.py,sha256=qiQBLO_rjVITdLDV4WiDVqfdGGGa5BLV4jLOn0XHJFw,7368 +django/test/testcases.py,sha256=VkWoXBHn_wsFJ4OUDiBuH8ajv6e9FPAb8vkB69rGfNA,67524 +django/test/utils.py,sha256=ObDoxbBL-vb-iT39bGt5s_kPAQiJsUEoB_PEZu5VhrQ,32151 +django/urls/__init__.py,sha256=BHyBIOD3E4_3Ng27SpXnRmqO3IzUqvBLCE4TTfs4wNs,1079 +django/urls/__pycache__/__init__.cpython-312.pyc,, +django/urls/__pycache__/base.cpython-312.pyc,, +django/urls/__pycache__/conf.cpython-312.pyc,, +django/urls/__pycache__/converters.cpython-312.pyc,, +django/urls/__pycache__/exceptions.cpython-312.pyc,, +django/urls/__pycache__/resolvers.cpython-312.pyc,, +django/urls/__pycache__/utils.cpython-312.pyc,, +django/urls/base.py,sha256=MDgpJtKVu7wKbWhzuo9SJUOyvIi3ndef0b_htzawIPU,5691 +django/urls/conf.py,sha256=TFZCdC1G8KftDuB_I7smC7UH1QGKkm5o1uNAIKP2B7M,3426 +django/urls/converters.py,sha256=OTsqmA3uCrmY7Xh94HUaOjGCBttNIKKOJRfPYBm5twM,1782 +django/urls/exceptions.py,sha256=alLNjkORtAxneC00g4qnRpG5wouOHvJvGbymdpKtG_I,115 +django/urls/resolvers.py,sha256=5p7SVNVhh9FmuFke5IquHKPO3jSA29N_eiXzsMpi2xE,31518 +django/urls/utils.py,sha256=d1KSc6JVR-5Z8axg_yDgYKtkqObdbJwWNkhcB8x44Rs,2179 +django/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/utils/__pycache__/__init__.cpython-312.pyc,, +django/utils/__pycache__/_os.cpython-312.pyc,, +django/utils/__pycache__/archive.cpython-312.pyc,, +django/utils/__pycache__/asyncio.cpython-312.pyc,, +django/utils/__pycache__/autoreload.cpython-312.pyc,, +django/utils/__pycache__/cache.cpython-312.pyc,, +django/utils/__pycache__/choices.cpython-312.pyc,, +django/utils/__pycache__/connection.cpython-312.pyc,, +django/utils/__pycache__/crypto.cpython-312.pyc,, +django/utils/__pycache__/datastructures.cpython-312.pyc,, +django/utils/__pycache__/dateformat.cpython-312.pyc,, +django/utils/__pycache__/dateparse.cpython-312.pyc,, +django/utils/__pycache__/dates.cpython-312.pyc,, +django/utils/__pycache__/deconstruct.cpython-312.pyc,, +django/utils/__pycache__/decorators.cpython-312.pyc,, +django/utils/__pycache__/deprecation.cpython-312.pyc,, +django/utils/__pycache__/duration.cpython-312.pyc,, +django/utils/__pycache__/encoding.cpython-312.pyc,, +django/utils/__pycache__/feedgenerator.cpython-312.pyc,, +django/utils/__pycache__/formats.cpython-312.pyc,, +django/utils/__pycache__/functional.cpython-312.pyc,, +django/utils/__pycache__/hashable.cpython-312.pyc,, +django/utils/__pycache__/html.cpython-312.pyc,, +django/utils/__pycache__/http.cpython-312.pyc,, +django/utils/__pycache__/inspect.cpython-312.pyc,, +django/utils/__pycache__/ipv6.cpython-312.pyc,, +django/utils/__pycache__/itercompat.cpython-312.pyc,, +django/utils/__pycache__/jslex.cpython-312.pyc,, +django/utils/__pycache__/log.cpython-312.pyc,, +django/utils/__pycache__/lorem_ipsum.cpython-312.pyc,, +django/utils/__pycache__/module_loading.cpython-312.pyc,, +django/utils/__pycache__/numberformat.cpython-312.pyc,, +django/utils/__pycache__/regex_helper.cpython-312.pyc,, +django/utils/__pycache__/safestring.cpython-312.pyc,, +django/utils/__pycache__/termcolors.cpython-312.pyc,, +django/utils/__pycache__/text.cpython-312.pyc,, +django/utils/__pycache__/timesince.cpython-312.pyc,, +django/utils/__pycache__/timezone.cpython-312.pyc,, +django/utils/__pycache__/tree.cpython-312.pyc,, +django/utils/__pycache__/version.cpython-312.pyc,, +django/utils/__pycache__/xmlutils.cpython-312.pyc,, +django/utils/_os.py,sha256=Q0d96RWFaQr6YqG00GulGqQ9M2Oni5WIjf_y4JnEWn8,2323 +django/utils/archive.py,sha256=HOBIOtVUzxNe_scK0gl-gu1yeQGU8X4VkYIdyCwkFuA,8087 +django/utils/asyncio.py,sha256=0glOg3eGmms-gUv04ZgDvZt19IZbdPBC64PnaKqeGDc,1138 +django/utils/autoreload.py,sha256=IABCHCytEe07k6h7ZlDDVnvT0JJ3Z7eQZbc_zjit-qg,24451 +django/utils/cache.py,sha256=xyazhD17lfCRXbWHnNWbI1WMHvwyXLUupRzG670y8gU,16583 +django/utils/choices.py,sha256=kSYtbZZit2Rdtl7PECG9f8Jrhkbn-DfBqZajUg8xPUg,4147 +django/utils/connection.py,sha256=2kqA6M_EObbZg6QKMXhX6p4YXG9RiPTUHwwN3mumhDY,2554 +django/utils/crypto.py,sha256=91KEDCMKAh3kKAMxUv2eQQKMEj-EgbMWRE2lVjmAzgY,2662 +django/utils/datastructures.py,sha256=mEt2-kg3zOQ24fW7ltxZDFaatZZyTSeJP9WAGWOg6UM,10267 +django/utils/dateformat.py,sha256=FvIRPWcVlSTQfVnPARPbV1BtQ1OX3Z3i49Iiyx9JuDI,10118 +django/utils/dateparse.py,sha256=oWTWbJax4NP1uY7tCGPSgnyAkoGxnXf1snEh-kfCkiQ,5356 +django/utils/dates.py,sha256=zHUHeOkxuo53rTvHG3dWMLRfVyfaMLBIt5xmA4E_Ids,2179 +django/utils/deconstruct.py,sha256=R3ks8L-Cif9-qyNwy-2R6KWf9UmcGDSiMGX-N6CbLOA,2126 +django/utils/decorators.py,sha256=p3NKImxC6MdbH2IVElMGu9OUdi3jRKt3d6_RXaeFm2M,8227 +django/utils/deprecation.py,sha256=PXnTY2003LnV5fUonR1N7dckwex7aUwF3IkS7NTiK3E,5133 +django/utils/duration.py,sha256=HK5E36F1GGdPchCqHsmloYhrHX_ByyITvOHyuxtElSE,1230 +django/utils/encoding.py,sha256=DLjcAjvBxrz5Jr5d8T2XnEUccseRVHTTXOm-zf-FVD4,8793 +django/utils/feedgenerator.py,sha256=nGSoWb5jlD0io-76tmjYnWlQxcFS6fksUn61Zn09KqQ,15636 +django/utils/formats.py,sha256=FmPUj3dfL2gCH2ijcWtcesYKbsi2-EbHGLGyHvGOJA0,10255 +django/utils/functional.py,sha256=URFZkoTNJmOlm_ay9872-_lEgV1ewunZS9GKSJRg-e8,14541 +django/utils/hashable.py,sha256=HzcLr4YPZGls_TLt0aQra7cCHcFp-hpTEOcOJ_DTQj0,738 +django/utils/html.py,sha256=wwoTl-0RCRwZrUKpE1TjsSjYgeErCuNEk6uzqJIDo6c,16656 +django/utils/http.py,sha256=PqAUD05dlvDU9zCnmct4DMeT21nFx0u878g90xmyh-E,12776 +django/utils/inspect.py,sha256=utTOblKvpF1VhziK14LoUDtAjMP9xVX9q5a-Q3YKd2o,2318 +django/utils/ipv6.py,sha256=RlrNSr2fKESeUxPyXtE3W4QJk9PdEVKLSCB1qsor3lk,1387 +django/utils/itercompat.py,sha256=mXmO77Sd3P_0VN6ox4kAorZ2vo2CjKRiFBuDbIqu1os,532 +django/utils/jslex.py,sha256=qHVWN1SCWcJCSJQa-GL2EVEJk4ksBvGIrIWeISS8UwQ,8049 +django/utils/log.py,sha256=5qHhornekS3LJLFEr095hu4wqL4bfPqdjKKhzx7vMFw,8186 +django/utils/lorem_ipsum.py,sha256=yUtBgKhshftIpPg04pc1IrLpOBydZIf7g0isFCIJZqk,5473 +django/utils/module_loading.py,sha256=-a7qOb5rpp-Lw_51vyIPSdb7R40B16Er1Zc1C_a6ibY,3820 +django/utils/numberformat.py,sha256=8LqSMmfxaN0PYSTTES6UT_ATerfDYQn7Ya4NI70gMaU,3781 +django/utils/regex_helper.py,sha256=FsGQkHjDNJmYnCDPT2f3b07hdp4RRNTMB_KgSRe-8hs,12772 +django/utils/safestring.py,sha256=-dKgvOyuADWC8mo0F5HH-OadkS87xF4OHzdB3_fpLUc,1876 +django/utils/termcolors.py,sha256=vvQbUH7GsFofGRSiKQwx4YvgE4yZMtAGRVz9QPDfisA,7386 +django/utils/text.py,sha256=kejMRNU_DRFvtWcTwdGwDjrFuLn29-BM7bGdJExY1sk,14745 +django/utils/timesince.py,sha256=j9B_wSnsdS3ZXn9pt9GImOJDpgO61YMr_jtnUpZDx0g,4914 +django/utils/timezone.py,sha256=Wg4eIhEHAsOMEKlzfSS_aYPf-h70DYqOqnmRDG1TbbE,7295 +django/utils/translation/__init__.py,sha256=IzuMZHXY059T4hOcsqQjDmSOT2itEQb8OBsNi88aURA,8878 +django/utils/translation/__pycache__/__init__.cpython-312.pyc,, +django/utils/translation/__pycache__/reloader.cpython-312.pyc,, +django/utils/translation/__pycache__/template.cpython-312.pyc,, +django/utils/translation/__pycache__/trans_null.cpython-312.pyc,, +django/utils/translation/__pycache__/trans_real.cpython-312.pyc,, +django/utils/translation/reloader.py,sha256=oVM0xenn3fraUomMEFucvwlbr5UGYUijWnUn6FL55Zc,1114 +django/utils/translation/template.py,sha256=TOfPNT62RnUbUG64a_6d_VQ7tsDC1_F1TCopw_HwlcA,10549 +django/utils/translation/trans_null.py,sha256=niy_g1nztS2bPsINqK7_g0HcpI_w6hL-c8_hqpC7U7s,1287 +django/utils/translation/trans_real.py,sha256=7pLwuC7oTOeeY_HMsMB277yIgTSl4575XAiMYAmu558,22357 +django/utils/tree.py,sha256=v8sNUsnsG2Loi9xBIIk0GmV5yN7VWOGTzbmk8BOEs6E,4394 +django/utils/version.py,sha256=oQDlhyhDJiwAhtjuevKXnyy-ZCMTlPBmOnZpsaRW8wg,3701 +django/utils/xmlutils.py,sha256=LsggeI4vhln3An_YXNBk2cCwKLQgMe-O_3L--j3o3GM,1172 +django/views/__init__.py,sha256=GIq6CKUBCbGpQVyK4xIoaAUDPrmRvbBPSX_KSHk0Bb4,63 +django/views/__pycache__/__init__.cpython-312.pyc,, +django/views/__pycache__/csrf.cpython-312.pyc,, +django/views/__pycache__/debug.cpython-312.pyc,, +django/views/__pycache__/defaults.cpython-312.pyc,, +django/views/__pycache__/i18n.cpython-312.pyc,, +django/views/__pycache__/static.cpython-312.pyc,, +django/views/csrf.py,sha256=PwZPfYD-zI0SL19etlwAcpD4LOMp8Flu1qPGgHlrsBg,3425 +django/views/debug.py,sha256=3yDwwZPSIv3D1FvSQ3r2bbZfNiPtfZt5rvf2S-JyN1w,25660 +django/views/decorators/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django/views/decorators/__pycache__/__init__.cpython-312.pyc,, +django/views/decorators/__pycache__/cache.cpython-312.pyc,, +django/views/decorators/__pycache__/clickjacking.cpython-312.pyc,, +django/views/decorators/__pycache__/common.cpython-312.pyc,, +django/views/decorators/__pycache__/csrf.cpython-312.pyc,, +django/views/decorators/__pycache__/debug.cpython-312.pyc,, +django/views/decorators/__pycache__/gzip.cpython-312.pyc,, +django/views/decorators/__pycache__/http.cpython-312.pyc,, +django/views/decorators/__pycache__/vary.cpython-312.pyc,, +django/views/decorators/cache.py,sha256=4cWEWW88qPv57St9Wwmv0aK0vVxD-7aevFOQc8z4pQs,2821 +django/views/decorators/clickjacking.py,sha256=3w8djeDoQUK67uDfIzi9jdlds_ZdekwDMIV2IM8NBWk,2555 +django/views/decorators/common.py,sha256=Kcj1Q-aPTBLGMW_kkeUleRiYiEZCg7uoP_UexklyyQA,739 +django/views/decorators/csrf.py,sha256=q9lXnlNkbm7Hlg4FRx1pesf64sNpCIC52mCqY7xduZo,2324 +django/views/decorators/debug.py,sha256=jvKimgFDSVzCN3RWA1X5Ry7BSADFA21K3A2RjUsJy7E,5256 +django/views/decorators/gzip.py,sha256=PtpSGd8BePa1utGqvKMFzpLtZJxpV2_Jej8llw5bCJY,253 +django/views/decorators/http.py,sha256=vaoIxGGIn6kychggji7CmdmVl5JXvNs-7FUUVNv5w9Y,6533 +django/views/decorators/vary.py,sha256=DGR1eA8mSaXM8kgMJta4XnzCznJIrW1_KDMrd4aqCTM,1201 +django/views/defaults.py,sha256=BXT36auw8XF5ZwqdU0akzX5ITFBWhuy8idT8YGkCo_I,4718 +django/views/generic/__init__.py,sha256=VwQKUbBFJktiq5J2fo3qRNzRc0STfcMRPChlLPYAkkE,886 +django/views/generic/__pycache__/__init__.cpython-312.pyc,, +django/views/generic/__pycache__/base.cpython-312.pyc,, +django/views/generic/__pycache__/dates.cpython-312.pyc,, +django/views/generic/__pycache__/detail.cpython-312.pyc,, +django/views/generic/__pycache__/edit.cpython-312.pyc,, +django/views/generic/__pycache__/list.cpython-312.pyc,, +django/views/generic/base.py,sha256=p5HbLA01-FQSqC3hSGIg7jQk23khBMn9ssg4d9GHui4,9275 +django/views/generic/dates.py,sha256=xwSEF6zsaSl1jUTePs6NPihnOJEWT-j8SST0RG4bco0,26332 +django/views/generic/detail.py,sha256=zrAuhJxrFvNqJLnlvK-NSiRiiONsKKOYFantD7UztwU,6663 +django/views/generic/edit.py,sha256=lQ9msLa7PVw3mp4Ivup5vPjb7Vo_9G_paX34R7xhD-8,9091 +django/views/generic/list.py,sha256=KWsT5UOK5jflxn5JFoJCnyJEQXa0fM4talHswzEjzXU,7941 +django/views/i18n.py,sha256=EVTwiUOVetsRqzxs3HSwiuC7Wa_e-CYBDq26m_Nexk8,9020 +django/views/static.py,sha256=dfEj3tr0tBN6fW02T0z43fszVSj1DB6Gxe-C3V4VYPo,4055 +django/views/templates/csrf_403.html,sha256=lrD9CeNoW5UOC1cay8RJzydMMWF12BMMSpz5UDufNAk,2856 +django/views/templates/default_urlconf.html,sha256=P8dRIQu9i-K38Gsk-OP7nAMR4vGtMd2-Pw6cWjKnhN8,12521 +django/views/templates/directory_index.html,sha256=0CGI4FUy9n_Yo2e7U2vWeKCLsUgizBmoqHseNQxxe04,653 +django/views/templates/i18n_catalog.js,sha256=WTPJxawKwdORo12g9I_mUn4YSU6Xx-DCx6E06yKBKZQ,2785 +django/views/templates/technical_404.html,sha256=da7h7kPnDufG3D1KM5JzySVHEm4mTYx3UxV8KdPSz_c,2816 +django/views/templates/technical_500.html,sha256=ZJAa_HrpoqOaemlk3nikPH-wHXHlhaY1oyx6qGDAGgQ,18124 +django/views/templates/technical_500.txt,sha256=b0ihE_FS7YtfAFOXU_yk0-CTgUmZ4ZkWVfkFHdEQXQI,3712 diff --git a/venv/lib/python3.12/site-packages/Django-5.1.dist-info/REQUESTED b/venv/lib/python3.12/site-packages/Django-5.1.dist-info/REQUESTED new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/Django-5.1.dist-info/WHEEL b/venv/lib/python3.12/site-packages/Django-5.1.dist-info/WHEEL new file mode 100644 index 0000000000..08519a6603 --- /dev/null +++ b/venv/lib/python3.12/site-packages/Django-5.1.dist-info/WHEEL @@ -0,0 +1,5 @@ +Wheel-Version: 1.0 +Generator: bdist_wheel (0.44.0) +Root-Is-Purelib: true +Tag: py3-none-any + diff --git a/venv/lib/python3.12/site-packages/Django-5.1.dist-info/entry_points.txt b/venv/lib/python3.12/site-packages/Django-5.1.dist-info/entry_points.txt new file mode 100644 index 0000000000..eaeb88e2d2 --- /dev/null +++ b/venv/lib/python3.12/site-packages/Django-5.1.dist-info/entry_points.txt @@ -0,0 +1,2 @@ +[console_scripts] +django-admin = django.core.management:execute_from_command_line diff --git a/venv/lib/python3.12/site-packages/Django-5.1.dist-info/top_level.txt b/venv/lib/python3.12/site-packages/Django-5.1.dist-info/top_level.txt new file mode 100644 index 0000000000..d3e4ba564f --- /dev/null +++ b/venv/lib/python3.12/site-packages/Django-5.1.dist-info/top_level.txt @@ -0,0 +1 @@ +django diff --git a/venv/lib/python3.12/site-packages/__pycache__/_black_version.cpython-312.pyc b/venv/lib/python3.12/site-packages/__pycache__/_black_version.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..953a783ae39f2fda594aaf3254028a943454e329 GIT binary patch literal 219 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 WuC_8?^tbBfRRwT&+VLR_^Zx)I4W#@4 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/_black_version.py b/venv/lib/python3.12/site-packages/_black_version.py new file mode 100644 index 0000000000..3bd57feddd --- /dev/null +++ b/venv/lib/python3.12/site-packages/_black_version.py @@ -0,0 +1 @@ +version = "24.8.1.dev4+g699b45a" diff --git a/venv/lib/python3.12/site-packages/asgiref-3.8.1.dist-info/INSTALLER b/venv/lib/python3.12/site-packages/asgiref-3.8.1.dist-info/INSTALLER new file mode 100644 index 0000000000..a1b589e38a --- /dev/null +++ b/venv/lib/python3.12/site-packages/asgiref-3.8.1.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/venv/lib/python3.12/site-packages/asgiref-3.8.1.dist-info/LICENSE b/venv/lib/python3.12/site-packages/asgiref-3.8.1.dist-info/LICENSE new file mode 100644 index 0000000000..5f4f225dd2 --- /dev/null +++ b/venv/lib/python3.12/site-packages/asgiref-3.8.1.dist-info/LICENSE @@ -0,0 +1,27 @@ +Copyright (c) Django Software Foundation and individual contributors. +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + 3. Neither the name of Django nor the names of its contributors may be used + to endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/venv/lib/python3.12/site-packages/asgiref-3.8.1.dist-info/METADATA b/venv/lib/python3.12/site-packages/asgiref-3.8.1.dist-info/METADATA new file mode 100644 index 0000000000..a9ffa932b9 --- /dev/null +++ b/venv/lib/python3.12/site-packages/asgiref-3.8.1.dist-info/METADATA @@ -0,0 +1,246 @@ +Metadata-Version: 2.1 +Name: asgiref +Version: 3.8.1 +Summary: ASGI specs, helper code, and adapters +Home-page: https://github.com/django/asgiref/ +Author: Django Software Foundation +Author-email: foundation@djangoproject.com +License: BSD-3-Clause +Project-URL: Documentation, https://asgi.readthedocs.io/ +Project-URL: Further Documentation, https://docs.djangoproject.com/en/stable/topics/async/#async-adapter-functions +Project-URL: Changelog, https://github.com/django/asgiref/blob/master/CHANGELOG.txt +Classifier: Development Status :: 5 - Production/Stable +Classifier: Environment :: Web Environment +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: BSD License +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3 :: Only +Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 +Classifier: Topic :: Internet :: WWW/HTTP +Requires-Python: >=3.8 +License-File: LICENSE +Requires-Dist: typing-extensions >=4 ; python_version < "3.11" +Provides-Extra: tests +Requires-Dist: pytest ; extra == 'tests' +Requires-Dist: pytest-asyncio ; extra == 'tests' +Requires-Dist: mypy >=0.800 ; extra == 'tests' + +asgiref +======= + +.. image:: https://github.com/django/asgiref/actions/workflows/tests.yml/badge.svg + :target: https://github.com/django/asgiref/actions/workflows/tests.yml + +.. image:: https://img.shields.io/pypi/v/asgiref.svg + :target: https://pypi.python.org/pypi/asgiref + +ASGI is a standard for Python asynchronous web apps and servers to communicate +with each other, and positioned as an asynchronous successor to WSGI. You can +read more at https://asgi.readthedocs.io/en/latest/ + +This package includes ASGI base libraries, such as: + +* Sync-to-async and async-to-sync function wrappers, ``asgiref.sync`` +* Server base classes, ``asgiref.server`` +* A WSGI-to-ASGI adapter, in ``asgiref.wsgi`` + + +Function wrappers +----------------- + +These allow you to wrap or decorate async or sync functions to call them from +the other style (so you can call async functions from a synchronous thread, +or vice-versa). + +In particular: + +* AsyncToSync lets a synchronous subthread stop and wait while the async + function is called on the main thread's event loop, and then control is + returned to the thread when the async function is finished. + +* SyncToAsync lets async code call a synchronous function, which is run in + a threadpool and control returned to the async coroutine when the synchronous + function completes. + +The idea is to make it easier to call synchronous APIs from async code and +asynchronous APIs from synchronous code so it's easier to transition code from +one style to the other. In the case of Channels, we wrap the (synchronous) +Django view system with SyncToAsync to allow it to run inside the (asynchronous) +ASGI server. + +Note that exactly what threads things run in is very specific, and aimed to +keep maximum compatibility with old synchronous code. See +"Synchronous code & Threads" below for a full explanation. By default, +``sync_to_async`` will run all synchronous code in the program in the same +thread for safety reasons; you can disable this for more performance with +``@sync_to_async(thread_sensitive=False)``, but make sure that your code does +not rely on anything bound to threads (like database connections) when you do. + + +Threadlocal replacement +----------------------- + +This is a drop-in replacement for ``threading.local`` that works with both +threads and asyncio Tasks. Even better, it will proxy values through from a +task-local context to a thread-local context when you use ``sync_to_async`` +to run things in a threadpool, and vice-versa for ``async_to_sync``. + +If you instead want true thread- and task-safety, you can set +``thread_critical`` on the Local object to ensure this instead. + + +Server base classes +------------------- + +Includes a ``StatelessServer`` class which provides all the hard work of +writing a stateless server (as in, does not handle direct incoming sockets +but instead consumes external streams or sockets to work out what is happening). + +An example of such a server would be a chatbot server that connects out to +a central chat server and provides a "connection scope" per user chatting to +it. There's only one actual connection, but the server has to separate things +into several scopes for easier writing of the code. + +You can see an example of this being used in `frequensgi `_. + + +WSGI-to-ASGI adapter +-------------------- + +Allows you to wrap a WSGI application so it appears as a valid ASGI application. + +Simply wrap it around your WSGI application like so:: + + asgi_application = WsgiToAsgi(wsgi_application) + +The WSGI application will be run in a synchronous threadpool, and the wrapped +ASGI application will be one that accepts ``http`` class messages. + +Please note that not all extended features of WSGI may be supported (such as +file handles for incoming POST bodies). + + +Dependencies +------------ + +``asgiref`` requires Python 3.8 or higher. + + +Contributing +------------ + +Please refer to the +`main Channels contributing docs `_. + + +Testing +''''''' + +To run tests, make sure you have installed the ``tests`` extra with the package:: + + cd asgiref/ + pip install -e .[tests] + pytest + + +Building the documentation +'''''''''''''''''''''''''' + +The documentation uses `Sphinx `_:: + + cd asgiref/docs/ + pip install sphinx + +To build the docs, you can use the default tools:: + + sphinx-build -b html . _build/html # or `make html`, if you've got make set up + cd _build/html + python -m http.server + +...or you can use ``sphinx-autobuild`` to run a server and rebuild/reload +your documentation changes automatically:: + + pip install sphinx-autobuild + sphinx-autobuild . _build/html + + +Releasing +''''''''' + +To release, first add details to CHANGELOG.txt and update the version number in ``asgiref/__init__.py``. + +Then, build and push the packages:: + + python -m build + twine upload dist/* + rm -r build/ dist/ + + +Implementation Details +---------------------- + +Synchronous code & threads +'''''''''''''''''''''''''' + +The ``asgiref.sync`` module provides two wrappers that let you go between +asynchronous and synchronous code at will, while taking care of the rough edges +for you. + +Unfortunately, the rough edges are numerous, and the code has to work especially +hard to keep things in the same thread as much as possible. Notably, the +restrictions we are working with are: + +* All synchronous code called through ``SyncToAsync`` and marked with + ``thread_sensitive`` should run in the same thread as each other (and if the + outer layer of the program is synchronous, the main thread) + +* If a thread already has a running async loop, ``AsyncToSync`` can't run things + on that loop if it's blocked on synchronous code that is above you in the + call stack. + +The first compromise you get to might be that ``thread_sensitive`` code should +just run in the same thread and not spawn in a sub-thread, fulfilling the first +restriction, but that immediately runs you into the second restriction. + +The only real solution is to essentially have a variant of ThreadPoolExecutor +that executes any ``thread_sensitive`` code on the outermost synchronous +thread - either the main thread, or a single spawned subthread. + +This means you now have two basic states: + +* If the outermost layer of your program is synchronous, then all async code + run through ``AsyncToSync`` will run in a per-call event loop in arbitrary + sub-threads, while all ``thread_sensitive`` code will run in the main thread. + +* If the outermost layer of your program is asynchronous, then all async code + runs on the main thread's event loop, and all ``thread_sensitive`` synchronous + code will run in a single shared sub-thread. + +Crucially, this means that in both cases there is a thread which is a shared +resource that all ``thread_sensitive`` code must run on, and there is a chance +that this thread is currently blocked on its own ``AsyncToSync`` call. Thus, +``AsyncToSync`` needs to act as an executor for thread code while it's blocking. + +The ``CurrentThreadExecutor`` class provides this functionality; rather than +simply waiting on a Future, you can call its ``run_until_future`` method and +it will run submitted code until that Future is done. This means that code +inside the call can then run code on your thread. + + +Maintenance and Security +------------------------ + +To report security issues, please contact security@djangoproject.com. For GPG +signatures and more security process information, see +https://docs.djangoproject.com/en/dev/internals/security/. + +To report bugs or request new features, please open a new GitHub issue. + +This repository is part of the Channels project. For the shepherd and maintenance team, please see the +`main Channels readme `_. diff --git a/venv/lib/python3.12/site-packages/asgiref-3.8.1.dist-info/RECORD b/venv/lib/python3.12/site-packages/asgiref-3.8.1.dist-info/RECORD new file mode 100644 index 0000000000..7dea830f36 --- /dev/null +++ b/venv/lib/python3.12/site-packages/asgiref-3.8.1.dist-info/RECORD @@ -0,0 +1,27 @@ +asgiref-3.8.1.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +asgiref-3.8.1.dist-info/LICENSE,sha256=uEZBXRtRTpwd_xSiLeuQbXlLxUbKYSn5UKGM0JHipmk,1552 +asgiref-3.8.1.dist-info/METADATA,sha256=Cbu67XPstSkMxAdA4puvY-FAzN9OrT_AasH7IuK6DaM,9259 +asgiref-3.8.1.dist-info/RECORD,, +asgiref-3.8.1.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92 +asgiref-3.8.1.dist-info/top_level.txt,sha256=bokQjCzwwERhdBiPdvYEZa4cHxT4NCeAffQNUqJ8ssg,8 +asgiref/__init__.py,sha256=kZzGpxWKY4rWDQrrrlM7bN7YKRAjy17Wv4w__djvVYU,22 +asgiref/__pycache__/__init__.cpython-312.pyc,, +asgiref/__pycache__/compatibility.cpython-312.pyc,, +asgiref/__pycache__/current_thread_executor.cpython-312.pyc,, +asgiref/__pycache__/local.cpython-312.pyc,, +asgiref/__pycache__/server.cpython-312.pyc,, +asgiref/__pycache__/sync.cpython-312.pyc,, +asgiref/__pycache__/testing.cpython-312.pyc,, +asgiref/__pycache__/timeout.cpython-312.pyc,, +asgiref/__pycache__/typing.cpython-312.pyc,, +asgiref/__pycache__/wsgi.cpython-312.pyc,, +asgiref/compatibility.py,sha256=DhY1SOpOvOw0Y1lSEjCqg-znRUQKecG3LTaV48MZi68,1606 +asgiref/current_thread_executor.py,sha256=EuowbT0oL_P4Fq8KTXNUyEgk3-k4Yh4E8F_anEVdeBI,3977 +asgiref/local.py,sha256=bNeER_QIfw2-PAPYanqAZq6yAAEJ-aio7e9o8Up-mgI,4808 +asgiref/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +asgiref/server.py,sha256=egTQhZo1k4G0F7SSBQNp_VOekpGcjBJZU2kkCoiGC_M,6005 +asgiref/sync.py,sha256=Why0YQV84vSp7IBBr-JDbxYCua-InLgBjuiCMlj9WgI,21444 +asgiref/testing.py,sha256=QgZgXKrwdq5xzhZqynr1msWOiTS3Kpastj7wHU2ePRY,3481 +asgiref/timeout.py,sha256=LtGL-xQpG8JHprdsEUCMErJ0kNWj4qwWZhEHJ3iKu4s,3627 +asgiref/typing.py,sha256=rLF3y_9OgvlQMaDm8yMw8QTgsO9Mv9YAc6Cj8xjvWo0,6264 +asgiref/wsgi.py,sha256=fxBLgUE_0PEVgcp13ticz6GHf3q-aKWcB5eFPhd6yxo,6753 diff --git a/venv/lib/python3.12/site-packages/asgiref-3.8.1.dist-info/WHEEL b/venv/lib/python3.12/site-packages/asgiref-3.8.1.dist-info/WHEEL new file mode 100644 index 0000000000..bab98d6758 --- /dev/null +++ b/venv/lib/python3.12/site-packages/asgiref-3.8.1.dist-info/WHEEL @@ -0,0 +1,5 @@ +Wheel-Version: 1.0 +Generator: bdist_wheel (0.43.0) +Root-Is-Purelib: true +Tag: py3-none-any + diff --git a/venv/lib/python3.12/site-packages/asgiref-3.8.1.dist-info/top_level.txt b/venv/lib/python3.12/site-packages/asgiref-3.8.1.dist-info/top_level.txt new file mode 100644 index 0000000000..ddf99d3d4f --- /dev/null +++ b/venv/lib/python3.12/site-packages/asgiref-3.8.1.dist-info/top_level.txt @@ -0,0 +1 @@ +asgiref diff --git a/venv/lib/python3.12/site-packages/asgiref/__init__.py b/venv/lib/python3.12/site-packages/asgiref/__init__.py new file mode 100644 index 0000000000..e4e78c0b9d --- /dev/null +++ b/venv/lib/python3.12/site-packages/asgiref/__init__.py @@ -0,0 +1 @@ +__version__ = "3.8.1" diff --git a/venv/lib/python3.12/site-packages/asgiref/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/asgiref/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..598edc94c70faa7a7ec7e224ec8a39135913559e GIT binary patch literal 210 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/asgiref/__pycache__/local.cpython-312.pyc b/venv/lib/python3.12/site-packages/asgiref/__pycache__/local.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..dd21fc7665f5fd0b6e9ab432619336b8dba64173 GIT binary patch literal 5846 zcmcIoU2GKB6~42xv;VuSF#>FYx!44}#NJKFZ`*_)$Ap%EqlVBnD^;`Oov}Uk?2LP7 z*2c(0QG`?zDFP}rfT9$us!|ZD)W^P5N_mRZ7dv)jcd*n(%|rXPU|JCBL(jQ0vtFA` z|D+E1&Yg4bIrrS}oO91T`}=e{LEw>(em3;kWWRZ?P!CJ7k0_QcMXc0B4 zMb(fh4n=0jkf6rSr;0I7M_O2o!|eDBIU^Jkr${d8O7g4UQ`p(|Q;x-yVU1QD-O!yW zI%F|=!YV69-i9 ztEv|IwTVKXQXcC)YN~}nLotV~!h~i{6byZ^Fh1psSmv|&XATr>-O+l-VIu6=F8C@G zxC;64DK{p|x~V&|d^W@J$p_y_Sk&GQ&AVjf(D9{1r{@oyUQX>;6+?%G#7y{u#47H) zT;C&np#3;f??C4YnI@y~-uR5-j17-Y0@Tih;$%8BEwsUmQ>2SHfv1u^gtZ97i3Y6G zJ6j_GP8q=oSjP1FN?8&ro7nD-A31=i_86=^6z_BI3u};du z9Q!0R?~>)Vo!8s1wO{YJ)^Q`W(Du|!rWO+81Hy9a?%A&S*1dD7y$@G5ZM#PVAg*kt zv;DI#%{|rs>8VeT&Fwz1u=(U%>SRsC!AEusBz_$3BtLI|S!8G_SDH|as#b1981dsa z`2;#Y6~HQjDvWg#!m}ljmvV` zP;46*VP9w|`YyK>>wwQS8`Z^b1G4>XXdZ%*l9@~U-aoj~y8ZHtV3S$<#?gh=19PbZ ze|pS%%N<=anM?M3Y{zmebun=vaWQitbLpKgVtZK&2wN8(s0cU3&!F?ah6kExg0Ni} zB(Hp3h~Y{b9x$wbFd@YME{s?!u=`QMv1Yq~z_wz;k=p3~s%C6-|2hd-?bo4c=KhFv zem+T;vmICMxop>RDtqzxh2s|oE(}~f_(f{}SIuL9qniscjDZ0-+~F8Am5L_IZbFtT zmRdEipOWPtRTaY@iORBSm1UV>JhFCZz=Isda4*~~SSQlbzU!1V!;s~h0;53XXYgUq zgD?OXHn_Nb1e%BE$sfXdR>Pu{xR;Qm0il+ONc*nZH3F|2&+^x=pZgnr)v^&7_l5?9 zS?2)|2L!$yF0%~c>Q7+DRTW505@JXTtD+i)WG9`6fsFCyJmQRBO8HMx- zX^|()STO-%`UfA+lZriMmZ_uIV|G4~z^Hm_M7JsYS16)v zL!!}wW4GJZE4raD>R7boj4(}6b#vIuex)3p9MPCYG0_1(m!%lCMR{gI7H34GCm-xX}3OvL%<5FTBers75R=C%;GEAJ-(!hrkJ3i$>rIgBegZt)?hNHlp1nyiEH6` z5ACITUdzM2_?Ze!4hm6%RfZUfn$!)04r+8lxAj3o`=*CUFRE{$lD+A(9-+Z@ z!EL#ETo789n%bnV2bYJ~m923^-1ifzl$m9N@1TP!jz2l@!J)v>5MOLE&qIOX9wI zxa}1$xYjxPotu05^h@>9onQ8aEWM?E2mNcQ`Z&Kot}M(DnUT8PdE6aW{FCx;edsvo5XU z4OoP~RX?o@aPzMp!48h_r`cU9IF^BgmQVL*;oZFIqVbpoib18QG)rD8vflLj=yoO@jpptZif7;S<()OUWxW4AfU zKuEw3H{K>Za!}Xeb*;(xDApnyo)3j90$$XB18*xEp6Ag=n#%exgnTOh7ifxdx`dxdD!KPc9f$^6QF zwk0?i>g6%kp*Fe?oDJ!grSz`(^sa^UZooC3oBjSuYx~s~XJ1`t?FO{txd%wa@;K)e zz?W0|#9vBJN7og-bxeK&QiGxws;2*>Z^Pp>vAB0UV z>_*V56~l`M+&*`HD7toHAInr9V82FvywW{{b0{>;Yuo_ndX0Mqr{eDrUX44q`NVwk z#N$4hN!e>RV0yJHSFE%7eW%8l3^+L_f$yg z^vY3`n@g}4;l*CV27gaxPebEIoT+iREqJ9fCRB!DrevN~(kG zIDF#iWTO!H8A}lEkjx#@a))fbL$ZG)UGt>tL1d>eAlxO`J~%A=KoC0b5p21{e*)<6 BRp0;s literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/asgiref/__pycache__/server.cpython-312.pyc b/venv/lib/python3.12/site-packages/asgiref/__pycache__/server.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..007f00da27506bec0e9eedc5d15847abdef3034b GIT binary patch literal 7963 zcmbtZU2GdycD^(G5h;yCSwGglJeDO(wDo5@ab!7;Em^W7+fk9YEn=Ztdc+w?BM&+3 z%+L}U8c-dhD;EZ$MYro@x9$3&XdSpk^O$`out^_Upf8%GU2&f%p4FBB&qe z#-LtvUa?m6++pT?INqFJ^g&rA`k@SnRZs@S0F>2Y5Xu^{8cI&AfwDHmh3l-)RYNc& zMbh=Fl6F(lgjF9Q)jV92f-dno{m4fZLDzX>Nig^&Aud95eqPY!C?8ehQ7K{QydvL_ zcp;Hcke61mA2y@{={Jzf>vBw11Z|LCP&FPT z*t+ovO*Pc0s_0bQfIKV>^J*N_Sdon-HEHld)JO^nj2cyAAPg0YOHmvE^j1N231viK zp5baLb(pp^)71ObZ3t1x>_hIedh&vGEl$0U$14)UUkQdhtN613xGgO5v+h_VN% zIMf{%4_hrtMnu&jbkb6!#3&KRC{%4;;FEFrPm&UUU5}~>DI$y4U0L?0>(mUW5N(0O zt^i)>lwg!$dnz*vyb!Nwd|uW;LK1XCJJFfxLacPaK|ZA>c|o(+X;Ho@!P3D1ay$W6 z1?7^`Ag_W3+KLQ#0Gp%Cm;iRd6~fL%(Krh<^Gz_L=uV|D0B;MYAX?BQeF-eMQaa8s zKMhKPaaV+ttyW=WM3u_YRa^`-FoJE|o;%euLiOa&09=)Y;a8h~fXYLV_ap(~L&uJv zc}R6^<*=X(rEHyrTw4BG8sp|Hy7Wq*u=UGXabL6cT`ZrQ@Zbfgj` zhrz6oxVj?9#y||vC@e|^K*B1br3@_vs|jF2mjRdhmW9P8Xe?-f{|dAgQ*^NFF=4e7 zbk|*1)CVa7R7HeIjVO|!8@wh(rMRJ_crXO`04(o{tSJ1vjR&Yz1UUvZIG(-)kPy|C zIC@k}0EgETLR2cCaH7QdqpAi@DWikZ^#;!ZuoNU05SfrPSrvgU6c~K~y(+~Y8y$_= zEd*meGO#CD!uD`*dRwfdmo>DXtg24A;k{2`w2P2oDzQkc5s{Yx4$nk1rNTQ4x~y zD1|MoSGhubbV-WdkhEc1vG~JJ@cPNwsHcSgk^b?0cbL+DhRKkKTb*Iyt+4G7A`^IX zwhNLXpE9#yk5yA*0js_Y9=g?BQtdL74*k67PFfJg(r_cyQ3-I47k@Ca1g3<0poX9UswULmC3W+yKn$BZ9st zYtq7qy~7MAQdS@WqsvAll5Q>Al!l!ew1D0Y#TxmlG;Sm&W)q+ETvqTn>2HdR1QtTCc!D;~4iX`KP ztVCcpPbiWhS$QPM209A8kwtcKRIs*7XlxXe7S)#7&# z$WAww;|o5%0k!%cL$OAl1<3xcT=P-0`DnIzXuWzX5XuF*%s|)2Vy^q7*?ltGJ@z0Pv^P)IWBB+;fKBdboA4skA|LbV_$ED_#MIoPj7JzA6>qCd9(G@e{kd59{BP? z#})g@fr&QqMO*j8xaW&g43vBDidg*+{&#sOE)!-CW{azPoB2l%tSUR3?zjfb6H5Y{ z%V@0_uA~#de9Bmjv#K%UR7m19a&efUX3`O-wq>;a@R;6TZW&w7B-H5*Q2dH~y+*d` z4sQ0G&DNdU44iwui_USIt7G6@0{k#4OQM^8co*Z zm<%8l>e=j>$<|%k3|xAy9e|2G1`EIkN>axGt=}czW$y!V+$GEKx%|3Gw37z5rPs?y ztaASh(*`|7=1nMH+JeP)SBU{90{g1m+Mye$^*b$#_Zw5NeVl;03MA;z9Z=f;e+=f{ z3B#q-O6N0Yv|An{9~>!HRPNzDhJi zIZ)3bym_=9xM>HmK+3i~Zf%Wv+>5}QiV&L@g}2gE<(~HH_BHeT4| zF8s1?-$rk)VbE+C%+?Kk=FN>xo1@b|tDDYq^*Qc@$(?x2z5dKYLJbv~W$UJ&`AJLn z{n++v^Kulu*_NoRk4e`mhAeXFhO$8Ddq{ix$<&^KDW?#%^y%s|hBF*7i@&5`-^40sD%sG^jY#Gg~-J3JwO z1Y_S~Z+SA1CPFIDFgL(kb>?0OBvzo~4C@dS15roHu#f{5P zIR2>zUZ3kU{t4}4Yz4zU%L550n;iT%1tlrzmJd!oG2QAY=upXrfoN#lT2mknq!sNL z46lu$4mb#Sb|F;5W6(E!_ti7RXhK(^pfPSs`%^lh(bsaLm(0;ixzTsc(RZ_>SD)d; zb_v^3ym^Z+u{e4n6oF8#Cb zyj@tFftU2rZvlQK(5*rTeFh4k@@fJMO_})N`)0$*^(soiHi>U?qqxqiW{A&)`pi(@ z<4}K|YutDnK#=2lO|JI|cX-=F>IW+GLkL|z zfO-Fbz3=%mpAVSIaG4N#Vu(?8{Wd3UV9Y-(FeU?tV{OJ<#xrBt<>HFD*Y37+1Il7! zrycUI)()CgIIBY#$U5QCH|GVpgNpM(-{tD)`w(D#NOcys)O$xmb(CUe~6CO5g&2l;~Bkty@YRPM+n^T?&_kt^B0cXmjy zw#%$PxDoicKi}B?@tE1zn`;c4jo~MaNArCD!+^;j%kig8{&bcG+pM>_E8ofII!~INCqG*?JI`&`g6wS{D3#|XzXt8v-eI0Y z{M6YC+gfwif3|jR`{4e+`W2YL?cT}L%-=DS1Kz)%An^Fbz!50FY+xpj_`huQ;&W^5 z-A+2DupP@dbU6y=B*60nsbrlQwZ z@_ER*Rl^Wvm%|~>UG!v_ACbRi9~Jlpb^$N-7GL^`3+?lep@tkY=7lj!U4E=`bKQ`0 zp__#Zv?8|CebesmT@bb7uS_KX8t41;>OQ?sw@8}h`Ps1Fs=}NW2H_HJ#Sdo9m3=efF%F5bQP{h3@-zuDCPFqj)SYYv>vHl53I6ZyLOjkb-N zO|J7dL0=GJCOoU$o(N9VKz^E$e+3%BPmz%S#UD{35vw{9iK$`|eh-aUTm*jI5tKqr zRU{&+(MUv_0tp)CLA4GnFnL9fl^O1 zy{~JxH|VRjWuw>vhiR8_h(Ro7p|EN(nF&9G&dZ8yr0B`d3c?}n3Qb>X?_tAMEU0RG z)rIr0ZIQRM_n`@Hh5B(QAgRbOzaVw=ujUt|{=dmXL>6@xzibKnW@r=XFAiPKu;9e zo$2rY?d{$HI!g9T(#f=465oFNJ^tVSd;Xu_{gvD8;P8wcy*csY(;WBT=tFxd3X#pf zHgVh)?r~1w1U}A}?sfu(x&8%HFn78++SF?RXpF zjw$D;bILX9;t8%X?w<0DdZxUi-YMUxZ^}RFpQ;$Gms%EqX^-O{}UOQDcTF2s+c>PqvXamoQmdOKJXNqsZdj9hqClNL_wAM7*#B&M4 z(H0M@U!q5%Z+pCXs%5l==M0=!EjUEK;1sO24DDYW2HU% zce~&f4U;E|?Q1c?C-4&{!T*A3bSLU`h$f*zgDSO&rpZ%U$>Mu7g7lH%w-y`SCHlqI zv%J`<;wN?r71Z@aP~^(P5dvbX;6r(n5CjIh4BSJUQ27EURB1SjcCoZ-q=m$w*e15C zu-`DMt&VoH{2Jufmd)=GYlJ$X{#9OR5PQ*(J(OX)tby_lk= zqeqleXjx4I#*Hsn-Y9f^bhqA0({B!6$E?_fMF^Kdw{ya-LNA)cs^7c?>QSK;>is{; z2$UHUi_rXnm5oJ|hws=$DLSVO-11L}83A!p@RW*n=_F;08+J zlxd~x{7%?}j#7ARRErR+N?|g5w_{J^_8Z{O%HF+qHX(x1+B3^XI)6^+24qrzj!Wc=twaeO9~lp?O2d*rFdj*bl;KRWox(C|Y!<3M6IXCJr_jisVz z;$qG=7>&nS%s!Zuk~67TLd=qBBflw#vK(}|dz%Gn;BPQ{XmXgp^fnVlA& zh)Oy0;|ZkXY{_RuDV~f9Kc}N4!sjXnXCz5Xq*R1-WcZx7$IBtQT=O#RV8z%*Mg8wNspWC|2jV$G3JbC z#Z=BHBXFKbCeP1IAC)A`t5K>4?Fkde6k8iL=SxXT`*`z46$Y-s#!YxnyE*&z`}o5@jqYajY=@(hfA&g+KYX5M1K&7S12~fU}qz7EM`y=t|w? zy5*5If6JmJZ!p;#vfjYU7hk;iJ9EoVyyI=n`hr(%mu<^c>%Q=Zx9zC(;T;F(tNVcC zQPkyo`S^>+m!9}*SAE`ygpXt|npkdo(D1|BfqL_eIv!!Jaw;mFAJ-P`#7ttG)@RN{ zu`P>&2p(G$M-aKfr4XvmWPucF-}Ii;C#{$|&yDFN=eg6I)Py`tjx|c76HDeCIvR4$ zJrYrFMkUPAwRuj5-9DxQ&LkOhd2I(3@#Es5Bg0G_BieF=C6( zO=NT96ljmOj5k}5a)lGQQC{G{%J5)g3@>nCVvGpQf(fBz)*P|qs?>dWT1;SyW6z3% z>IRBFg-#7n55k2h4NpZAn0zUmN*1De&O{Qa?0gB!8l3P{QV<;uEV=N=xtOe%)u0em zDH)f;7tY1T&uP`CaXy8`!T}XVwHa9yP()0GV+jVVY&$*S!?R&QoQTfEQ(fU`SdJym z#>Kk=mCr>bQDERM#8T&C2~?SulH;N*_h=}KK$}j??E}*h`B+z`qO;*MqKYa8N5)|l zo0ttpOYvnLo5tuBMpJL6%+Mf761#CkO3?(mBPYYjM0^yLoxMX7r#DW}3XE901p z!U&f`HGCn4A~+sc)vXObE@LkDtDQY`=ukK|HJy}DFg7JJh?K?_Fo2}a-E}PXv%)<+ zJv7hZC{d0uEt;`Za*S2)Ac#G3Tok9f!h0ee5mur64kXU}3fN`rC~ZCCs8sh8PWn{x zyqI{M&zWQ~K2fq~a<;LtSR$4h8=Gq?KW9B!0dUBiY)5d3%U0GbntsnLbI<&>V zioeZ&i{KHC2TJx&I~IttYQ`L->#luy8|MoyIzPN)EgbDA zRMVEJIjGbe%+w4hH3Qe%)@mMFJo38_-=f1VZ{-2!S27)w&+`Kz{)NUi?hg%!e7Ad` z(s;vfMD#|Gr+6jB$4d`ueO5P6U7b}>eZ;pvGC#|u^aH)zfj?>8UI)AamaQgXESTm^ zl5gHLS!NE4tD>Y0CaZ3RIqBZ|O<(2l)z$=$tx}wQt2&SSP%T$m*!i?43#&joVROdm z>Ha_2|E}%OKghJno*&pX&;|a;N(VzC zIwg*c<*O8ENTUdXcO(CLv)HR{Bv)SG%4L9y0=T3f)%p8NwB?O9`y+* zGf5kL+XEedW3p{qB0ixPa8FnS7v$)G;0D7G6g;8}a=!~X)Sg?Hs(dI@Dfop7As_^W zN})=qhE!QSx%=Z#nH=;RVT*tYsEs7)gp2+iMwL;O$5XL*EHxV* zk4I&luYeFBhohkInp6W~7)_}Z^+HlQFC)t6qq;R1xnt0X+=^g@Q{i|rISuv$q&>=r z+c_zjNX~$zDM&{uL=_n0CFGeiDzpNXADUn-Fp4dwz(g}HAQ~%R#<(nMq)ROZ#wje# zAQLD^Vh_XSQHo!P$>R1htignMLBkR_($|*ukAj4Q^|%n7rP^RG3VlUtB0L=hk3~ZS zJ`3aexEU+G_sC*u*5D9W%%;>C<0$5QwyM6}E?IUUQX~t^A zl05@wWH3$RsiQP+5Q#9NWu?t$a+NgR+mAyzXV;fW&I2sR#W4)#7?mA2maJu>0Q9~2 zdA6fd2-T-3GfK@Vy+$!r?k=XLbQ(U-3p~mc%D+*7CRe9)N;7HGS}48+gJ68qq){D` zAWQiINUYpsIm+THLeOHUr*kLs27KwQF=kAsW8i}-wK|h@3~qb0a|{slI!xBpPCyR4 zkCEpf$@Xg;3pk^Y21d)B<+R+0d6-UdT5VuG`q?}a9b;SOLR7};l}SRtqE9BeS#~!` zen`@G=g*0llk$Kq$T+riJmSvTwCr3UChG#3E+<+cSw~YTDQCM7l@eH*a?V6Ci8P*s z5%Hj)C7uBkik$&h&O~qNBxQT2u(ik7*};~Mw2M-G06B(@MbKDs&UI=gLF}<6wG+K% z4KOg8#IBMcqE2(c0qVDU?CCu1ZzD&34Z$Vuj*s(&mhJ1_mJMI)%Fw#6XCt`tP3u+r zwf)y;*E&AC9z1o&#W=_L=bYW{3}_}jy;3}@>1 zD)oC8kGyme*-hOfbk=2?P;A{+PcplIqjguN^#P^zfwk6yi$~sdg+ILGH(YgxecX+GHHVwHANlNu>y1CE<0)*iAMP~% zXcvz#XNpP~cguMU{8?FQK(#H5IxSf*{x)}DBSCK97mVduB>4+S*I7E$C_M5=aSImN z^Sf*{PTQW0y}NhblyYitCd+IoZ7ZCIfDhqV-|C;zjuC8R;TXUs(vKBvJnAWXCVg70 z_|{rmFwdJO>4@C+X!(+}xPb+ecF;V}r>eCITFC`V5oe5^zD2ciU=Lsj(QsX`rbt!6 z9vy;h-d4Wmn0_3jNLRw1$#5Z3^3oukIh%v)0J zT62>-v{>=2wLkBex1Tl5^MA;H&l2P24d3N|k6&<=UsF9z-WmSNB4o%1ez{5e6&%&Mt26xBPqKyMeIltlt{IcVB zkV`$FH85`%?8K&))U={rnLSWk$@7*^8Uv;P2x{;_=1fEcm-v_dgGT6D|4FgaT8TJ@ zM{p{+t1jPWQr9RO_OQQ&K4rpBqq*r>HQt6D99;SelPSO_;}<#`NYQDi+h=7Gg2$nAf*Ha?{9y^He}ur1vLR=I6fhM_<-F8# zNs*k7zKQb3$0k(c42%^rG?%#`<8$O>GEv}6<>-V6yugH~#4#EprdN-6nP@J3p4xhb z+Nu~EBfeKW1KDEiTugwNE0Go^=P05EIK)L2nsO!M!kETJ=X`~U&{LQNL5dOx6LG&P z-{WRXvtG-|KGi-jB|Osx6a$rWc@#jlb1n>%vF{>BPGDxCjcaI5+iIcb$#`4d@wTk? zXF4Bzr}M!(7Or*IhOaK;+o||=rXz>0n>LMxR!`d1bQ>0d*7VN(e|F}Fu^+_#{rPux z4sGlNztfZnb}GTnbhlczqhiUl?rY0C?DmR{nsBCOk5aQ|t!D4y!=!(z&3M}sZ`-XVBu z(r20Swsw18Hnd~e^li^8o~*BK!xy;Xy6pM`#Ot%Z>b%`rIY9v)b7XB#^+jeSaEUp5#5C0!PqwB7YTkU%mkGwqm;_$kwg-X|Dyv>TYdCl9JwzYnE z=TQS=D8XCiG#)em8KnK1K;Lz>d?XXoabtII$jANIbHp?h=HB+%hZ>A;*YgyHcR%bi zZjts#mZ1Y<^S@(bf6WXdkekt=(GB*WwqgaaRWXs9Hh53X|)&Ro(PuhY;+FQv=@&DIRVREz;_Ih@V7|{m2dK@MW$r^mf34BLc|vgF$iB@g|+2NIFY|)xMKWmvl%wJ zS?*r$B{SJSBF5pIU)33cn;93GUy3{uF{oM?%h@RDD#>$%_$irLxh|=k%9nx4TxSW> z+p~>z>p8%fO!-ic3dM{4CO4wihs=(#QQQ3Oo>zKS+tanjulFmp$1}m>?*xy3B$IyN zt2J%>t9*;;Ut8Mv;kk~P#5rhOX|Qx8!@`V2N>Jje!kS5j90{gimxi^L)SiX@(b!6t5HJ%BTUnn` zM?Hzexw=mnbxbcO`>-HBgoew;*?k#Xqhf1ZPOaP8@`eWcLAZouT&;?$b>+yqE0Q+vUCKz$CXDeKl06!P*M3??pS#L5MSVEh|7H4 z@`i2Qw}+K?_-j$Vy6(zzm!Dg&-kA-B3m%n8U z;Pm3S?D&Rj!&ja0?NEF>R#KUr4=6hyc-ME}!@Ln3*WL4fnZM`%y-xox`4E=Qvj3=y z`{RM`BO&fbp#dLWKMw6VYB&Cciyzu;{0q-O_wfU!zdSJD!|SGNH_~n%*fZ2^eY@L; zc+N5nSC9n!*^*}_Q}A5d!uWyRQyD+n3!lpNmG=(fHAZE@SaQ6TWAjLRsVm;mVByi~ zpN334w@W{ihZ5uQ85m+n5gjH6oGB5`T7s+>h?sMBCUe83M$TE$&r~cLmq;ATd1j^s z5-CZdg;NTX?p`;kJNNfcKzf-1Qbox$2DDw-X3fD`N^0z}xxkhUt0uP5MkW6NwoiRE z8E;tehF5~GHGHSxs%6c4@1kkL8_IZhD&C!|rd8qliPsZr-h*k|LDg{jEUL~qRENc< z$4)&X#gQP9YLZE!bIqEQ;nU=Es2hDoa1=fb&&6k+d4`Ft!{en4H;pv)X7e$eAS#)G zrr0`f`iiGGAM@~w+N$v>nrX_p0BG#R0(6{T3CtV6;s-mc8*9*7;hER9a7+|12qtPp zvOp{-#GmJxcG98MD8A>-&^1~}*9dZFVC2rElDh>vSb;Lk^Sr%;tu5lEv&|*2OYlnR zZ1SY8p(>WtdP*ZiI!0n>Q~D}}CaaMg$+2=jy$4uH-!fAV?u94jf*nR6L1SJ)yyM&8 z)-5>DOK%YqEjI5c_VOu=%!1=N$4eL0_XS>q2zKe8Xauwt7_(uXD{iF6jtD!HFT;#_6v>7nb^I_dm)0Dfm zTIRq0CD^w7gM7BOWo6GRo#|jZ)IZ^#f>tM$ZaQ@JS*7VvrsmL+1vzfOX;EA)EBn@6 zyKZ^w(m1eAq`QtlGn4VPDlo2{0E@ufl{9_QLrVi+fB3^Y)m*5Z_zX1Fx@V>TwL{-I zbhSU-didHtrS)*8;c&X)@b4cZ#$%BG2)NZg_zxRi7|3{gBugGr?TV{?C7N+{D6WoQ zk_j#HOQ?W+^}j9xzmn%MzRw>xvV;GjdCZxACnGGwQz8ZKjky zBgOCOInrwUajOx~BK)yPtuzQMq$3m@rQjF^bj~oHD^#LmOvxN2pIjNb%10=R_PRtz zi&RSiX>5MyXHF z5PecWt5ptT)%^?j^f=76+x1*+)4!^|G_-hO%@oFBc#?mLPn&Aeb*I-%pUeBWaQkg{ zz1e>&5Q0zA(y8T|mA$LR)l(}6l$zb?O8B_#(bD@~X-HS@P+U7PlkUiEqcP~nn^6_I zyqbnh0+K&4%A4Dk&wTsrD`)d?)-|_Xt@zWLKdDjU*Q8CB_Q6F%i}_&wIBzx|S{~1H zc&!ey*VW_KPF=6K_Jq=ZWRsHfo(^;Wt;*)S8E>qwKvUjIF&kICKX0cPDHNB^XR0C! z{`+_3osMTlJATAeB27cKMUtakPS55!jA1$N zrgEe~BP*j8_&-?%!<)LUXViuidpS~6G+2&01v9*mOb5{HT}$hRpHVlwpj?8bP}(y| z65F;%$HynwP}WXm?c{Y8g0GVwcY6Y=uan>sgMwSE6g))81+U=19S|S9tEvQ)n(WyI zmdaEhy^Ns^epCT?R|UwYNeGIyLM8sZtgSk+7XJdJ{#__pg_89G?k$Zr%sL`9%=Qtj z1yN;m;}d+J%KI#-{!H8bq8KcQigKw8Prl1N;USoG;_yWVv4GvDU;|?EFv`lXIWU@5 z@GO#5zhsggnL|;@c~1tWuqcm5r^RqARq7$N)z^r;zg6#!5|=0D(G2_uJtCnWGe^y` z9xyj)I9Ul|4}1{;2>%nJC_vmMRv9-&a3^J!DDq?MiUTVOfS}G)GMQpf)V`1nCfq^Q z#EVgqoV(Q0s^7XQ5X<4ypFM#a5@B%F(KDd7djr<277MP%WL-n92$1RT#P&mdqjuRB6tL z-XlV@U7Vfh__-KtRYLg8Y&a&wF*OW1=6oJ4@5Dtn2jJwt6^HN{EXngUv*gOgP*o*7 zwX+h_{?JS(R4b)cyf{aid5gxr;9V3;(9mOXXd}*UC1BO3(1&nR9V=4X?3A@z2>K-k zm1`SHgp(2$9qGvkDBE7x28Ejr1b*A(a0)Tc-npI<3ujM(IO3|-(<5bXIy{r}3FseU;9(F)fn!QUCT?J3!(ranYNc(~CFq1xWzU|{84Nz}z>T#+= z5XH2ISOg>fHV-jMR3hH#H@WWOl~+|1_lk}t<-PLYLZb_Mf_|^-dHCYX z)kdTl5z5O`z)3ny0U7vnc71`f^&tH|<$Qy3{F?Koexrfioq`*>*0%H{75*H8NI|th z3JvMI6woT#s@h;&>|VfflBrSXH9VZZW;yr`&xW^UrGMSqf%kXsUG2YG zdu?Q`_3*lP@coLqbp5HdiqmP=X{h?(R%hR^`7^e#VuLDV1xm{OFe8@LaV_zZvA8LU+JSP6ADmW;{#o!= zlZ^A`1xw<80x~h~+n#drKk8#X=#fT#{aSh-tn=i{Q^tqxSq_&r%I3^liP-~|uNHMB z%=NZ_$AV?va<`hqNG2}9TTs`Tlw)ntcJPx+%rngqa2Q2P`o^VEP@l3RW!6W^nW8SR zN6;B#930#v$y(bU^rw6qY*gn}G5721` zZ+p(-=-uL(XNSkyu5E?zx!^bpZ$Mnj>Hc`$r+EUREUgY17&E0<*Ol|Q_t48D?lM&-c7f^}mCC0QXd?7g#7r=?C z%$w>v7cRQPNv{#?5ek?VGhzmK-AhS!t9;y1* zFH)vs2=d!SmXI?EN&F7M4kSl>+q~jbjpQuVsMhtODx0mNK7d@c>-AL53@IcosH{em z64*@>aKBO#UBEqiw`w09Q)LQf+LVcwXgW^qt?D{SGqs(iP+i|%#m1Ju3|gyRfMeco z8{R6_HnQf8z&*^u!K~?QUUN2Y?C5^;e5Pkm=^4EKRQj=zwH@FPTHo{TxK-D8*_MSX zmcK{w_hkHiiXWHZ*8TUPa@X!m=W(U;c&77&(s^R7b2#nmxE1JJO=WtA75onj-)d^j zG#!H0GyUL`O4H{qABWKt?qSjOrq3)L&p!6Kr6ZZ(UM09U-GAbp;7K&|YF(ygzk>h% z{qNW9$kZKB>JD5RQR)sCkl3O4cVzs#pjBGEXWhRCE_K=9qwpvrhdQ`}LG@H0&eZKw z>h>+!aK}I6Ygc^j8DB*4!ASeAuNPQ{>dDl)c>Mi}hD^mSrDE4wMc1Nr1GXezv*K%B zX?rd5ok-eua8-E6ckt?j;ybu#&U&j}{?dzI!Ve4V?pt&L2=k4DLmSj^8?H+A)*x$- zG`EOsb+ij+eU+PTtJ||_c2qhR?fFopy?Z0nL|%C-vumL}nTkD&gLigt?uO+j*In(* z+T5(TnhV-maoyE*%UiMN$aiyrKB#jsi|vXRT40~O1(zunPv#AFcV)J^b!Fi4m*J8J zL$C9)^BZp5qVU&bYa6dTeEH#QTjVmBJI!~GG{`mY1w*7LuKCsb0pj`GmGAk2q)4p% z=$1G1@^ddfw+=r#U*&sVcne~D!iq1v?rX`0ny>UO^?rRY-;DNud8h5Jc)#oF`jt%E z_W5In9&zwL;X}u5+)rxw;}+9TYE2Yx>_GZW3y=6sTjj&`#+!|mL-mH6{pKNq;pYAP z@dK8d`>lw-&GSfq+YlHEncuE7P`sL_c*sccIv#c3uD1_$nBQ(UP<$s(@s3W!e;VK) zuCn|zXr_3L;o&Ckr>y)>>x~p|>UhLz{41*wm`J*5@}IMnR=SKK#qHVR3CI-GBtNJJ z%Qq3*CVPb4_F#6_|3T*jF&Pj&prrkDlWOes*qZmgwCz5ot^JrK)C*9X?;~LM zWvnE$l5%|eQ@nXn6o)4Z{7Y$BjjG-S3Mjt%kbqjY9oli!f7fl&kNU??1Z5yR%h|%U`^FKJ9D14e#a9axfj}SgBG19cfnwUCj@Y*NnUSy=wekOS-yim6SgokQIP+0$blsN-(b`3HK9H+p!45yQxEq_Lb0C}&qYgwf5JneJE}Qd%g|A5(A+ zLC#UsO{v8B+muC&NX}YNG3ERp(=n-x3yrF3Kw@U275XGwd0DFwEos%zL_1KT@!xJI zB0iYu+Ml4o$IqrQJ5j)F%Xe{smZiv*-pjpf6|I*Zfwyzx?rQ_<4TsXES`4ziY0;^A zDy5t5U$gCp3y--W-8j6-8O#<~T<#m@uYM_W?@8s}lUZ9W$mD&Nv?-Xb>Q@VRID5;Y zHDha5Y|U%7R;t~U4xiOBTXtmk-h10#1v`|dYDrq|TY6UUH0I4nz>=tg*@t2_E>M@Q z>s2at=cy>La(FhK6x%(_n*%F{Uwh~~59K+EUzPrJ_D^Qj`1MnpEG_>9gVlV0wyGv? zq<0(aSa{#E`f24^!6B++Wdt=R+O+KSxsO&ri6SdR)8rDP2dl8@!WDN;7N)A7{3yO`br4uJ8Di zR$ezSOSpR1lC&NL9~TCm1)-8QDzrAXfG6BpC%O>%8c)9|b;-QQPcX0R(*G@xswzA=l)l^(Q)TH#EDEN;E)JDEgSU>v6ogzTAiT(lWr-HM&F3sODm}vQ! zuzWzVuzXzEnn>1P1K_lROobJs{@P8S>i<%~);fL&K)=x~t1>AuV>v4TbloWCvTOM%bN`5;L2eLs^;KoA5q!h z-#d2j58mbw+&RUcG4lOOJC|FQ&n)k_+i4$QwBa#noQsMgqbrqK!xFPY_{^Y zTae@EjTDO~Yj!N&w{&>fPF-C+ywatFdegyP#ku=x$F;s|vo|Y#u#kS>gwl61?L4WN zhtsA zuMDnMEYB;IU1>jlGpAcimo7h(_O~d+TJZLE!1P)2MpOlBQdyHHAOL6aES_0vS)5SJ zl^=MKRA`VgTR6Kr?+)=6&|kFbM=a~bHg#*>FTb`|jNNhDXr|UxU}&9y;TW(u(f6#~ zvv_gYuspOfzPk6SVI_{AB}l{T+S`Bi+%@U?{WnkDIGBF$F=gLp)85Z2_ETxwX|;=| zma4!LQ}1fgJMdgK&g?FZq}@a#X|WhK1Jv3+b*^87Q&BK*Y(^r>gDZiRGs`EG zib&cMQOvtOa3Z_V3Ka};9bnP}=or{iwJCg1Q}-<&UNI~mQv$7uqfIM9?NQ;<_UIe! z(HtzE(^<^4yJ;n~+OitEX1sR#ddoGJ(sMMu>!{LvEbTs~m>yDBYt8ar@Q0_C4=DbQ Vw7WwwMQG)AvXy(s3CQfY`QK!{3Zei2 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/asgiref/__pycache__/testing.cpython-312.pyc b/venv/lib/python3.12/site-packages/asgiref/__pycache__/testing.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1fbcc61ec098193d1b4a70b0d09801914bea6758 GIT binary patch literal 6099 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/asgiref/__pycache__/typing.cpython-312.pyc b/venv/lib/python3.12/site-packages/asgiref/__pycache__/typing.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d07e29f3506f9353e353b84c39e5ea448a37afc5 GIT binary patch literal 9907 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 V$mzYsOM4@is{OD3pofj>{|76iYI^_x literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/asgiref/__pycache__/wsgi.cpython-312.pyc b/venv/lib/python3.12/site-packages/asgiref/__pycache__/wsgi.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8bd275a441dcb9d4fd52fbdae37261f233b817bb GIT binary patch literal 7317 zcmcIpYit`ya_%8Hd_N?Lrry@*Ws7>zvMtN6eQ5Qtb!$^znYUgmyBScNkwux}@MeaR z#if9~UE@IGjI(qBVi~u9b+`i}!xxz?Vkk_Afl)R=LSANK@LdvpKJx#jgcRz z?%`0fR?Y?p(gIsOJ=N9K-Bn*z*ZiZ)Wk*ohp|2(*H3u=mzg;g8CPQTq zOJ3k=9zCH#u;Q{gn4jG@*%O0mlKA+f=m07S^I({l*Mn2S3?H0{Ow9->E;z`~2H%N9 zZ+8tPxZp%QlDH)VXZgfzFdmx-CgNsc7sn08i40ggyJ4NQH5XGC63i3ujcB=|XIZ>1w-Sd?d`c#&u3V)7It zPw}P0FU=Q8aO8y)6_R`>aEoyBSR+JUN(%69Zi-J3&5#(DjYi^emgTuU0Yad@-tW&! zjyGTuU9fbOCcIUP$Vd6uERPi+!AW?d@e)Kgrh(Jam>)PTt>Nixt^jmWWD5DwAk%-Lj zEUVgCc1GY*aol#Y>`zjWc=3&eWjP_rvLc>R^h5OoiDkHr#T2c2Wr2o-HUBPpZZOc+ z7gmby*)^N#5T%i0$|(FwMOT&G^U(ErS@;5-p^LMbzc-sj z=L55urm>_4N`{`c9q58bPz#&xWpoY{dJU~zr;w-wb^m>s2V?Gm!Z~y*3dz`7Ndep{ zt{)D(Bpu*gxlXb7KV#Bq5AFc*pRg;s#DIASFz*-e^E9I#BvEq)3f%-O#Bc5xZ=yMh z;Gr|5n&kN;AjOm{C)3A>$I>)f1Yja4!ePV{5?z2>+;B%}qkvpsuOY>xj z0bL>nG?ktc!7Hi8TfB^Mj=wEp^-*oasbkzzonk7%&K2Eaz)T=gW8lMFj^L^VkFgZR zkj(Iek+O)D1eIQ6E*e}m!2oFkDgu{^qioTC?~Uc*O-Iu+Z{0@yP~JPd;T%?u)MQQf z?ay3|tG!#Uo*m?}wXcP@z5YKk$A4pc99*<06*bFemfl)PY*w6pR@1W4dLv)+!G`Yx zrOfxxzGPqSdwk*1g_YS=DPMbPtL(H=dGz7OOCPUX*s2UFzUmzps;Jy?BUkx@k$WSH zk^5KvT;I0p%hz{j2k(bqo`SbI=WSjY%zFa`XJEq___h{AAad-OQEmHoJ3i!U|8B4M zzofTdQJ)?k@KH~k16JeTQ3EFP-@k*P`G+&qfZ6X$jWcNA=SRKU~bRC}FKe|Y=haJ-;tk^fYWFHGgz#kgp z&;N;w={1N^vRTocG07$L*t2EMTmz^DGFY$-8Dj>wtwf%~Q`p1!Q24du!}!X4%LU+TO~{zL?0y(`VcT- z!MtF}n14V6%o#IRcN-!Z(a6;=SQ8!ae6;x70ME@F13V5vS$!9$G1MF=TqD<{?>s)C z1#8Cg19Dh0)(j0N;Kh5G^rs7yeX!3bHrMQE`H#O*N=E*ZkaG#}j;xvDl%5M(wPk*8Fono{!QS=Ahe zAUDyYns9GOHP7%6>jPo}YjGap3NeqBGj4~?>~sS=3ouH2s3F5aug-O z@`@0^AXq_Bw$ZV$YKsei|5Jh_tA?{DRC6>QgQ!b&j165K4G*#XgM(wLWeVnny?W^` z24!7ZP^P*EMnmDDP?)_k6uK0?oObH(i6eIEZ^JjQ4QYGNwn{IlE|p?mQk?<2h@*4W z%qOA(2U2r9`EMt&poDK9su3mq<;pTf@_BrRn|R>EyY$Gt7CcpiGsf`=kHrL=lyRL{KGl_@E3RT{%ctW zxW46MOIHiNww$kR)t~pBDERtvzP@#9-q)YCDGp!3(U5aAtT?tDok~^XZ<|+c=bKJ$ zG@ah4>dlU9A8lT_{76u0k15qnN?qehcdo9dP4e7JGj`YR8&5^uykSh zPQIcoJE(XnHY$&AdX6iNJxgw-{K)dr&2o4MF1fcG+gHQCAAd6b^ut0|f3Bw+ zeAm0V#&;Lp+rH|DSC+1g>1;J6_cK-2JWu!xlzqZZX4=ELEgVZW#P zl-j#JWDvv&7?+@ku8i>$hg^!RA)i!?JMit}(8%A+QTk}&ZA=UFo{!y&!NI>92GIla z154C+3q=hdfdcRIPNfK6lLOZ!&w_7Z2MXl0igJNR`5)g;8kP+A`%K__upi`1aBsl- zNeY(eqrm@G4$g}Gp+w!U*|)wuIrj0r-(fKFp{ywg5;0nug7__=y-G_AJ4RDiM22xK(X$vfE{3Pb| z5-I>!J93s49L%PJQM@(FJxd)0Z)eWix%$Cc*2kCq1pJz52f_YEyS@7gq@6+_6>Fcu29U7=$+>v(0 z-v}3^=N40g9VaYm|8w^Uuq2nee`q>Cz?fgj%3x?9VAKLiNWiFQh|pguhbJI2C7@V< z)G%B+&|$$KBqz}{1d9iY4l-b}zl2Z_40*a_$a}O>69?m2limYVrGQ`WBOx`;^&BWV zq(I{0(2)D5O^5eqjA=;N0_>H-<2~5R(69rzR-9IGFS(cHLc_^i!^y3(Q`?@3f~ODch}Z8I$e=3H9zq+tezgf|()Hkn$RzBLOKeaflILjV{?uC@< zuC>{(26JWa{f7}_qZzp>KW|>1{8dNJ*_!>)wx@bIT&O>nt3Q|bocm+hk)37`YUda# z^A$WTo1PY>1){SpXJe7w^65ftcdoX3%NbOx&Ij&$?q%}^b9$q)_iO7JE#nQwiTzY1 z{1dBig(D%c23I(AAZaV@Jjp3y>=E&9i?z7g%dzA1Hpy{gCQ=Vnr5wAF?tEb{r`ul~ z3(}Rl6Vy@KzVkMP%oWcK4RqhGQEzG7FryG;>I^YKyLeb-`0zFf-`uoZowNAKs2eBe zNS;n4LSeik0vwR+rS+or)!= (3, 10): + from typing import ParamSpec +else: + from typing_extensions import ParamSpec + +_T = TypeVar("_T") +_P = ParamSpec("_P") +_R = TypeVar("_R") + + +class _WorkItem: + """ + Represents an item needing to be run in the executor. + Copied from ThreadPoolExecutor (but it's private, so we're not going to rely on importing it) + """ + + def __init__( + self, + future: "Future[_R]", + fn: Callable[_P, _R], + *args: _P.args, + **kwargs: _P.kwargs, + ): + self.future = future + self.fn = fn + self.args = args + self.kwargs = kwargs + + def run(self) -> None: + __traceback_hide__ = True # noqa: F841 + if not self.future.set_running_or_notify_cancel(): + return + try: + result = self.fn(*self.args, **self.kwargs) + except BaseException as exc: + self.future.set_exception(exc) + # Break a reference cycle with the exception 'exc' + self = None # type: ignore[assignment] + else: + self.future.set_result(result) + + +class CurrentThreadExecutor(Executor): + """ + An Executor that actually runs code in the thread it is instantiated in. + Passed to other threads running async code, so they can run sync code in + the thread they came from. + """ + + def __init__(self) -> None: + self._work_thread = threading.current_thread() + self._work_queue: queue.Queue[Union[_WorkItem, "Future[Any]"]] = queue.Queue() + self._broken = False + + def run_until_future(self, future: "Future[Any]") -> None: + """ + Runs the code in the work queue until a result is available from the future. + Should be run from the thread the executor is initialised in. + """ + # Check we're in the right thread + if threading.current_thread() != self._work_thread: + raise RuntimeError( + "You cannot run CurrentThreadExecutor from a different thread" + ) + future.add_done_callback(self._work_queue.put) + # Keep getting and running work items until we get the future we're waiting for + # back via the future's done callback. + try: + while True: + # Get a work item and run it + work_item = self._work_queue.get() + if work_item is future: + return + assert isinstance(work_item, _WorkItem) + work_item.run() + del work_item + finally: + self._broken = True + + def _submit( + self, + fn: Callable[_P, _R], + *args: _P.args, + **kwargs: _P.kwargs, + ) -> "Future[_R]": + # Check they're not submitting from the same thread + if threading.current_thread() == self._work_thread: + raise RuntimeError( + "You cannot submit onto CurrentThreadExecutor from its own thread" + ) + # Check they're not too late or the executor errored + if self._broken: + raise RuntimeError("CurrentThreadExecutor already quit or is broken") + # Add to work queue + f: "Future[_R]" = Future() + work_item = _WorkItem(f, fn, *args, **kwargs) + self._work_queue.put(work_item) + # Return the future + return f + + # Python 3.9+ has a new signature for submit with a "/" after `fn`, to enforce + # it to be a positional argument. If we ignore[override] mypy on 3.9+ will be + # happy but 3.8 will say that the ignore comment is unused, even when + # defining them differently based on sys.version_info. + # We should be able to remove this when we drop support for 3.8. + if not TYPE_CHECKING: + + def submit(self, fn, *args, **kwargs): + return self._submit(fn, *args, **kwargs) diff --git a/venv/lib/python3.12/site-packages/asgiref/local.py b/venv/lib/python3.12/site-packages/asgiref/local.py new file mode 100644 index 0000000000..a8b9459b93 --- /dev/null +++ b/venv/lib/python3.12/site-packages/asgiref/local.py @@ -0,0 +1,128 @@ +import asyncio +import contextlib +import contextvars +import threading +from typing import Any, Dict, Union + + +class _CVar: + """Storage utility for Local.""" + + def __init__(self) -> None: + self._data: "contextvars.ContextVar[Dict[str, Any]]" = contextvars.ContextVar( + "asgiref.local" + ) + + def __getattr__(self, key): + storage_object = self._data.get({}) + try: + return storage_object[key] + except KeyError: + raise AttributeError(f"{self!r} object has no attribute {key!r}") + + def __setattr__(self, key: str, value: Any) -> None: + if key == "_data": + return super().__setattr__(key, value) + + storage_object = self._data.get({}) + storage_object[key] = value + self._data.set(storage_object) + + def __delattr__(self, key: str) -> None: + storage_object = self._data.get({}) + if key in storage_object: + del storage_object[key] + self._data.set(storage_object) + else: + raise AttributeError(f"{self!r} object has no attribute {key!r}") + + +class Local: + """Local storage for async tasks. + + This is a namespace object (similar to `threading.local`) where data is + also local to the current async task (if there is one). + + In async threads, local means in the same sense as the `contextvars` + module - i.e. a value set in an async frame will be visible: + + - to other async code `await`-ed from this frame. + - to tasks spawned using `asyncio` utilities (`create_task`, `wait_for`, + `gather` and probably others). + - to code scheduled in a sync thread using `sync_to_async` + + In "sync" threads (a thread with no async event loop running), the + data is thread-local, but additionally shared with async code executed + via the `async_to_sync` utility, which schedules async code in a new thread + and copies context across to that thread. + + If `thread_critical` is True, then the local will only be visible per-thread, + behaving exactly like `threading.local` if the thread is sync, and as + `contextvars` if the thread is async. This allows genuinely thread-sensitive + code (such as DB handles) to be kept stricly to their initial thread and + disable the sharing across `sync_to_async` and `async_to_sync` wrapped calls. + + Unlike plain `contextvars` objects, this utility is threadsafe. + """ + + def __init__(self, thread_critical: bool = False) -> None: + self._thread_critical = thread_critical + self._thread_lock = threading.RLock() + + self._storage: "Union[threading.local, _CVar]" + + if thread_critical: + # Thread-local storage + self._storage = threading.local() + else: + # Contextvar storage + self._storage = _CVar() + + @contextlib.contextmanager + def _lock_storage(self): + # Thread safe access to storage + if self._thread_critical: + try: + # this is a test for are we in a async or sync + # thread - will raise RuntimeError if there is + # no current loop + asyncio.get_running_loop() + except RuntimeError: + # We are in a sync thread, the storage is + # just the plain thread local (i.e, "global within + # this thread" - it doesn't matter where you are + # in a call stack you see the same storage) + yield self._storage + else: + # We are in an async thread - storage is still + # local to this thread, but additionally should + # behave like a context var (is only visible with + # the same async call stack) + + # Ensure context exists in the current thread + if not hasattr(self._storage, "cvar"): + self._storage.cvar = _CVar() + + # self._storage is a thread local, so the members + # can't be accessed in another thread (we don't + # need any locks) + yield self._storage.cvar + else: + # Lock for thread_critical=False as other threads + # can access the exact same storage object + with self._thread_lock: + yield self._storage + + def __getattr__(self, key): + with self._lock_storage() as storage: + return getattr(storage, key) + + def __setattr__(self, key, value): + if key in ("_local", "_storage", "_thread_critical", "_thread_lock"): + return super().__setattr__(key, value) + with self._lock_storage() as storage: + setattr(storage, key, value) + + def __delattr__(self, key): + with self._lock_storage() as storage: + delattr(storage, key) diff --git a/venv/lib/python3.12/site-packages/asgiref/py.typed b/venv/lib/python3.12/site-packages/asgiref/py.typed new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/asgiref/server.py b/venv/lib/python3.12/site-packages/asgiref/server.py new file mode 100644 index 0000000000..43c28c6cc9 --- /dev/null +++ b/venv/lib/python3.12/site-packages/asgiref/server.py @@ -0,0 +1,157 @@ +import asyncio +import logging +import time +import traceback + +from .compatibility import guarantee_single_callable + +logger = logging.getLogger(__name__) + + +class StatelessServer: + """ + Base server class that handles basic concepts like application instance + creation/pooling, exception handling, and similar, for stateless protocols + (i.e. ones without actual incoming connections to the process) + + Your code should override the handle() method, doing whatever it needs to, + and calling get_or_create_application_instance with a unique `scope_id` + and `scope` for the scope it wants to get. + + If an application instance is found with the same `scope_id`, you are + given its input queue, otherwise one is made for you with the scope provided + and you are given that fresh new input queue. Either way, you should do + something like: + + input_queue = self.get_or_create_application_instance( + "user-123456", + {"type": "testprotocol", "user_id": "123456", "username": "andrew"}, + ) + input_queue.put_nowait(message) + + If you try and create an application instance and there are already + `max_application` instances, the oldest/least recently used one will be + reclaimed and shut down to make space. + + Application coroutines that error will be found periodically (every 100ms + by default) and have their exceptions printed to the console. Override + application_exception() if you want to do more when this happens. + + If you override run(), make sure you handle things like launching the + application checker. + """ + + application_checker_interval = 0.1 + + def __init__(self, application, max_applications=1000): + # Parameters + self.application = application + self.max_applications = max_applications + # Initialisation + self.application_instances = {} + + ### Mainloop and handling + + def run(self): + """ + Runs the asyncio event loop with our handler loop. + """ + event_loop = asyncio.get_event_loop() + asyncio.ensure_future(self.application_checker()) + try: + event_loop.run_until_complete(self.handle()) + except KeyboardInterrupt: + logger.info("Exiting due to Ctrl-C/interrupt") + + async def handle(self): + raise NotImplementedError("You must implement handle()") + + async def application_send(self, scope, message): + """ + Receives outbound sends from applications and handles them. + """ + raise NotImplementedError("You must implement application_send()") + + ### Application instance management + + def get_or_create_application_instance(self, scope_id, scope): + """ + Creates an application instance and returns its queue. + """ + if scope_id in self.application_instances: + self.application_instances[scope_id]["last_used"] = time.time() + return self.application_instances[scope_id]["input_queue"] + # See if we need to delete an old one + while len(self.application_instances) > self.max_applications: + self.delete_oldest_application_instance() + # Make an instance of the application + input_queue = asyncio.Queue() + application_instance = guarantee_single_callable(self.application) + # Run it, and stash the future for later checking + future = asyncio.ensure_future( + application_instance( + scope=scope, + receive=input_queue.get, + send=lambda message: self.application_send(scope, message), + ), + ) + self.application_instances[scope_id] = { + "input_queue": input_queue, + "future": future, + "scope": scope, + "last_used": time.time(), + } + return input_queue + + def delete_oldest_application_instance(self): + """ + Finds and deletes the oldest application instance + """ + oldest_time = min( + details["last_used"] for details in self.application_instances.values() + ) + for scope_id, details in self.application_instances.items(): + if details["last_used"] == oldest_time: + self.delete_application_instance(scope_id) + # Return to make sure we only delete one in case two have + # the same oldest time + return + + def delete_application_instance(self, scope_id): + """ + Removes an application instance (makes sure its task is stopped, + then removes it from the current set) + """ + details = self.application_instances[scope_id] + del self.application_instances[scope_id] + if not details["future"].done(): + details["future"].cancel() + + async def application_checker(self): + """ + Goes through the set of current application instance Futures and cleans up + any that are done/prints exceptions for any that errored. + """ + while True: + await asyncio.sleep(self.application_checker_interval) + for scope_id, details in list(self.application_instances.items()): + if details["future"].done(): + exception = details["future"].exception() + if exception: + await self.application_exception(exception, details) + try: + del self.application_instances[scope_id] + except KeyError: + # Exception handling might have already got here before us. That's fine. + pass + + async def application_exception(self, exception, application_details): + """ + Called whenever an application coroutine has an exception. + """ + logging.error( + "Exception inside application: %s\n%s%s", + exception, + "".join(traceback.format_tb(exception.__traceback__)), + f" {exception}", + ) diff --git a/venv/lib/python3.12/site-packages/asgiref/sync.py b/venv/lib/python3.12/site-packages/asgiref/sync.py new file mode 100644 index 0000000000..4427fc2a85 --- /dev/null +++ b/venv/lib/python3.12/site-packages/asgiref/sync.py @@ -0,0 +1,613 @@ +import asyncio +import asyncio.coroutines +import contextvars +import functools +import inspect +import os +import sys +import threading +import warnings +import weakref +from concurrent.futures import Future, ThreadPoolExecutor +from typing import ( + TYPE_CHECKING, + Any, + Awaitable, + Callable, + Coroutine, + Dict, + Generic, + List, + Optional, + TypeVar, + Union, + overload, +) + +from .current_thread_executor import CurrentThreadExecutor +from .local import Local + +if sys.version_info >= (3, 10): + from typing import ParamSpec +else: + from typing_extensions import ParamSpec + +if TYPE_CHECKING: + # This is not available to import at runtime + from _typeshed import OptExcInfo + +_F = TypeVar("_F", bound=Callable[..., Any]) +_P = ParamSpec("_P") +_R = TypeVar("_R") + + +def _restore_context(context: contextvars.Context) -> None: + # Check for changes in contextvars, and set them to the current + # context for downstream consumers + for cvar in context: + cvalue = context.get(cvar) + try: + if cvar.get() != cvalue: + cvar.set(cvalue) + except LookupError: + cvar.set(cvalue) + + +# Python 3.12 deprecates asyncio.iscoroutinefunction() as an alias for +# inspect.iscoroutinefunction(), whilst also removing the _is_coroutine marker. +# The latter is replaced with the inspect.markcoroutinefunction decorator. +# Until 3.12 is the minimum supported Python version, provide a shim. + +if hasattr(inspect, "markcoroutinefunction"): + iscoroutinefunction = inspect.iscoroutinefunction + markcoroutinefunction: Callable[[_F], _F] = inspect.markcoroutinefunction +else: + iscoroutinefunction = asyncio.iscoroutinefunction # type: ignore[assignment] + + def markcoroutinefunction(func: _F) -> _F: + func._is_coroutine = asyncio.coroutines._is_coroutine # type: ignore + return func + + +class ThreadSensitiveContext: + """Async context manager to manage context for thread sensitive mode + + This context manager controls which thread pool executor is used when in + thread sensitive mode. By default, a single thread pool executor is shared + within a process. + + The ThreadSensitiveContext() context manager may be used to specify a + thread pool per context. + + This context manager is re-entrant, so only the outer-most call to + ThreadSensitiveContext will set the context. + + Usage: + + >>> import time + >>> async with ThreadSensitiveContext(): + ... await sync_to_async(time.sleep, 1)() + """ + + def __init__(self): + self.token = None + + async def __aenter__(self): + try: + SyncToAsync.thread_sensitive_context.get() + except LookupError: + self.token = SyncToAsync.thread_sensitive_context.set(self) + + return self + + async def __aexit__(self, exc, value, tb): + if not self.token: + return + + executor = SyncToAsync.context_to_thread_executor.pop(self, None) + if executor: + executor.shutdown() + SyncToAsync.thread_sensitive_context.reset(self.token) + + +class AsyncToSync(Generic[_P, _R]): + """ + Utility class which turns an awaitable that only works on the thread with + the event loop into a synchronous callable that works in a subthread. + + If the call stack contains an async loop, the code runs there. + Otherwise, the code runs in a new loop in a new thread. + + Either way, this thread then pauses and waits to run any thread_sensitive + code called from further down the call stack using SyncToAsync, before + finally exiting once the async task returns. + """ + + # Keeps a reference to the CurrentThreadExecutor in local context, so that + # any sync_to_async inside the wrapped code can find it. + executors: "Local" = Local() + + # When we can't find a CurrentThreadExecutor from the context, such as + # inside create_task, we'll look it up here from the running event loop. + loop_thread_executors: "Dict[asyncio.AbstractEventLoop, CurrentThreadExecutor]" = {} + + def __init__( + self, + awaitable: Union[ + Callable[_P, Coroutine[Any, Any, _R]], + Callable[_P, Awaitable[_R]], + ], + force_new_loop: bool = False, + ): + if not callable(awaitable) or ( + not iscoroutinefunction(awaitable) + and not iscoroutinefunction(getattr(awaitable, "__call__", awaitable)) + ): + # Python does not have very reliable detection of async functions + # (lots of false negatives) so this is just a warning. + warnings.warn( + "async_to_sync was passed a non-async-marked callable", stacklevel=2 + ) + self.awaitable = awaitable + try: + self.__self__ = self.awaitable.__self__ # type: ignore[union-attr] + except AttributeError: + pass + self.force_new_loop = force_new_loop + self.main_event_loop = None + try: + self.main_event_loop = asyncio.get_running_loop() + except RuntimeError: + # There's no event loop in this thread. + pass + + def __call__(self, *args: _P.args, **kwargs: _P.kwargs) -> _R: + __traceback_hide__ = True # noqa: F841 + + if not self.force_new_loop and not self.main_event_loop: + # There's no event loop in this thread. Look for the threadlocal if + # we're inside SyncToAsync + main_event_loop_pid = getattr( + SyncToAsync.threadlocal, "main_event_loop_pid", None + ) + # We make sure the parent loop is from the same process - if + # they've forked, this is not going to be valid any more (#194) + if main_event_loop_pid and main_event_loop_pid == os.getpid(): + self.main_event_loop = getattr( + SyncToAsync.threadlocal, "main_event_loop", None + ) + + # You can't call AsyncToSync from a thread with a running event loop + try: + event_loop = asyncio.get_running_loop() + except RuntimeError: + pass + else: + if event_loop.is_running(): + raise RuntimeError( + "You cannot use AsyncToSync in the same thread as an async event loop - " + "just await the async function directly." + ) + + # Make a future for the return information + call_result: "Future[_R]" = Future() + + # Make a CurrentThreadExecutor we'll use to idle in this thread - we + # need one for every sync frame, even if there's one above us in the + # same thread. + old_executor = getattr(self.executors, "current", None) + current_executor = CurrentThreadExecutor() + self.executors.current = current_executor + + # Wrapping context in list so it can be reassigned from within + # `main_wrap`. + context = [contextvars.copy_context()] + + # Get task context so that parent task knows which task to propagate + # an asyncio.CancelledError to. + task_context = getattr(SyncToAsync.threadlocal, "task_context", None) + + loop = None + # Use call_soon_threadsafe to schedule a synchronous callback on the + # main event loop's thread if it's there, otherwise make a new loop + # in this thread. + try: + awaitable = self.main_wrap( + call_result, + sys.exc_info(), + task_context, + context, + *args, + **kwargs, + ) + + if not (self.main_event_loop and self.main_event_loop.is_running()): + # Make our own event loop - in a new thread - and run inside that. + loop = asyncio.new_event_loop() + self.loop_thread_executors[loop] = current_executor + loop_executor = ThreadPoolExecutor(max_workers=1) + loop_future = loop_executor.submit( + self._run_event_loop, loop, awaitable + ) + if current_executor: + # Run the CurrentThreadExecutor until the future is done + current_executor.run_until_future(loop_future) + # Wait for future and/or allow for exception propagation + loop_future.result() + else: + # Call it inside the existing loop + self.main_event_loop.call_soon_threadsafe( + self.main_event_loop.create_task, awaitable + ) + if current_executor: + # Run the CurrentThreadExecutor until the future is done + current_executor.run_until_future(call_result) + finally: + # Clean up any executor we were running + if loop is not None: + del self.loop_thread_executors[loop] + _restore_context(context[0]) + # Restore old current thread executor state + self.executors.current = old_executor + + # Wait for results from the future. + return call_result.result() + + def _run_event_loop(self, loop, coro): + """ + Runs the given event loop (designed to be called in a thread). + """ + asyncio.set_event_loop(loop) + try: + loop.run_until_complete(coro) + finally: + try: + # mimic asyncio.run() behavior + # cancel unexhausted async generators + tasks = asyncio.all_tasks(loop) + for task in tasks: + task.cancel() + + async def gather(): + await asyncio.gather(*tasks, return_exceptions=True) + + loop.run_until_complete(gather()) + for task in tasks: + if task.cancelled(): + continue + if task.exception() is not None: + loop.call_exception_handler( + { + "message": "unhandled exception during loop shutdown", + "exception": task.exception(), + "task": task, + } + ) + if hasattr(loop, "shutdown_asyncgens"): + loop.run_until_complete(loop.shutdown_asyncgens()) + finally: + loop.close() + asyncio.set_event_loop(self.main_event_loop) + + def __get__(self, parent: Any, objtype: Any) -> Callable[_P, _R]: + """ + Include self for methods + """ + func = functools.partial(self.__call__, parent) + return functools.update_wrapper(func, self.awaitable) + + async def main_wrap( + self, + call_result: "Future[_R]", + exc_info: "OptExcInfo", + task_context: "Optional[List[asyncio.Task[Any]]]", + context: List[contextvars.Context], + *args: _P.args, + **kwargs: _P.kwargs, + ) -> None: + """ + Wraps the awaitable with something that puts the result into the + result/exception future. + """ + + __traceback_hide__ = True # noqa: F841 + + if context is not None: + _restore_context(context[0]) + + current_task = asyncio.current_task() + if current_task is not None and task_context is not None: + task_context.append(current_task) + + try: + # If we have an exception, run the function inside the except block + # after raising it so exc_info is correctly populated. + if exc_info[1]: + try: + raise exc_info[1] + except BaseException: + result = await self.awaitable(*args, **kwargs) + else: + result = await self.awaitable(*args, **kwargs) + except BaseException as e: + call_result.set_exception(e) + else: + call_result.set_result(result) + finally: + if current_task is not None and task_context is not None: + task_context.remove(current_task) + context[0] = contextvars.copy_context() + + +class SyncToAsync(Generic[_P, _R]): + """ + Utility class which turns a synchronous callable into an awaitable that + runs in a threadpool. It also sets a threadlocal inside the thread so + calls to AsyncToSync can escape it. + + If thread_sensitive is passed, the code will run in the same thread as any + outer code. This is needed for underlying Python code that is not + threadsafe (for example, code which handles SQLite database connections). + + If the outermost program is async (i.e. SyncToAsync is outermost), then + this will be a dedicated single sub-thread that all sync code runs in, + one after the other. If the outermost program is sync (i.e. AsyncToSync is + outermost), this will just be the main thread. This is achieved by idling + with a CurrentThreadExecutor while AsyncToSync is blocking its sync parent, + rather than just blocking. + + If executor is passed in, that will be used instead of the loop's default executor. + In order to pass in an executor, thread_sensitive must be set to False, otherwise + a TypeError will be raised. + """ + + # Storage for main event loop references + threadlocal = threading.local() + + # Single-thread executor for thread-sensitive code + single_thread_executor = ThreadPoolExecutor(max_workers=1) + + # Maintain a contextvar for the current execution context. Optionally used + # for thread sensitive mode. + thread_sensitive_context: "contextvars.ContextVar[ThreadSensitiveContext]" = ( + contextvars.ContextVar("thread_sensitive_context") + ) + + # Contextvar that is used to detect if the single thread executor + # would be awaited on while already being used in the same context + deadlock_context: "contextvars.ContextVar[bool]" = contextvars.ContextVar( + "deadlock_context" + ) + + # Maintaining a weak reference to the context ensures that thread pools are + # erased once the context goes out of scope. This terminates the thread pool. + context_to_thread_executor: "weakref.WeakKeyDictionary[ThreadSensitiveContext, ThreadPoolExecutor]" = ( + weakref.WeakKeyDictionary() + ) + + def __init__( + self, + func: Callable[_P, _R], + thread_sensitive: bool = True, + executor: Optional["ThreadPoolExecutor"] = None, + ) -> None: + if ( + not callable(func) + or iscoroutinefunction(func) + or iscoroutinefunction(getattr(func, "__call__", func)) + ): + raise TypeError("sync_to_async can only be applied to sync functions.") + self.func = func + functools.update_wrapper(self, func) + self._thread_sensitive = thread_sensitive + markcoroutinefunction(self) + if thread_sensitive and executor is not None: + raise TypeError("executor must not be set when thread_sensitive is True") + self._executor = executor + try: + self.__self__ = func.__self__ # type: ignore + except AttributeError: + pass + + async def __call__(self, *args: _P.args, **kwargs: _P.kwargs) -> _R: + __traceback_hide__ = True # noqa: F841 + loop = asyncio.get_running_loop() + + # Work out what thread to run the code in + if self._thread_sensitive: + current_thread_executor = getattr(AsyncToSync.executors, "current", None) + if current_thread_executor: + # If we have a parent sync thread above somewhere, use that + executor = current_thread_executor + elif self.thread_sensitive_context.get(None): + # If we have a way of retrieving the current context, attempt + # to use a per-context thread pool executor + thread_sensitive_context = self.thread_sensitive_context.get() + + if thread_sensitive_context in self.context_to_thread_executor: + # Re-use thread executor in current context + executor = self.context_to_thread_executor[thread_sensitive_context] + else: + # Create new thread executor in current context + executor = ThreadPoolExecutor(max_workers=1) + self.context_to_thread_executor[thread_sensitive_context] = executor + elif loop in AsyncToSync.loop_thread_executors: + # Re-use thread executor for running loop + executor = AsyncToSync.loop_thread_executors[loop] + elif self.deadlock_context.get(False): + raise RuntimeError( + "Single thread executor already being used, would deadlock" + ) + else: + # Otherwise, we run it in a fixed single thread + executor = self.single_thread_executor + self.deadlock_context.set(True) + else: + # Use the passed in executor, or the loop's default if it is None + executor = self._executor + + context = contextvars.copy_context() + child = functools.partial(self.func, *args, **kwargs) + func = context.run + task_context: List[asyncio.Task[Any]] = [] + + # Run the code in the right thread + exec_coro = loop.run_in_executor( + executor, + functools.partial( + self.thread_handler, + loop, + sys.exc_info(), + task_context, + func, + child, + ), + ) + ret: _R + try: + ret = await asyncio.shield(exec_coro) + except asyncio.CancelledError: + cancel_parent = True + try: + task = task_context[0] + task.cancel() + try: + await task + cancel_parent = False + except asyncio.CancelledError: + pass + except IndexError: + pass + if exec_coro.done(): + raise + if cancel_parent: + exec_coro.cancel() + ret = await exec_coro + finally: + _restore_context(context) + self.deadlock_context.set(False) + + return ret + + def __get__( + self, parent: Any, objtype: Any + ) -> Callable[_P, Coroutine[Any, Any, _R]]: + """ + Include self for methods + """ + func = functools.partial(self.__call__, parent) + return functools.update_wrapper(func, self.func) + + def thread_handler(self, loop, exc_info, task_context, func, *args, **kwargs): + """ + Wraps the sync application with exception handling. + """ + + __traceback_hide__ = True # noqa: F841 + + # Set the threadlocal for AsyncToSync + self.threadlocal.main_event_loop = loop + self.threadlocal.main_event_loop_pid = os.getpid() + self.threadlocal.task_context = task_context + + # Run the function + # If we have an exception, run the function inside the except block + # after raising it so exc_info is correctly populated. + if exc_info[1]: + try: + raise exc_info[1] + except BaseException: + return func(*args, **kwargs) + else: + return func(*args, **kwargs) + + +@overload +def async_to_sync( + *, + force_new_loop: bool = False, +) -> Callable[ + [Union[Callable[_P, Coroutine[Any, Any, _R]], Callable[_P, Awaitable[_R]]]], + Callable[_P, _R], +]: + ... + + +@overload +def async_to_sync( + awaitable: Union[ + Callable[_P, Coroutine[Any, Any, _R]], + Callable[_P, Awaitable[_R]], + ], + *, + force_new_loop: bool = False, +) -> Callable[_P, _R]: + ... + + +def async_to_sync( + awaitable: Optional[ + Union[ + Callable[_P, Coroutine[Any, Any, _R]], + Callable[_P, Awaitable[_R]], + ] + ] = None, + *, + force_new_loop: bool = False, +) -> Union[ + Callable[ + [Union[Callable[_P, Coroutine[Any, Any, _R]], Callable[_P, Awaitable[_R]]]], + Callable[_P, _R], + ], + Callable[_P, _R], +]: + if awaitable is None: + return lambda f: AsyncToSync( + f, + force_new_loop=force_new_loop, + ) + return AsyncToSync( + awaitable, + force_new_loop=force_new_loop, + ) + + +@overload +def sync_to_async( + *, + thread_sensitive: bool = True, + executor: Optional["ThreadPoolExecutor"] = None, +) -> Callable[[Callable[_P, _R]], Callable[_P, Coroutine[Any, Any, _R]]]: + ... + + +@overload +def sync_to_async( + func: Callable[_P, _R], + *, + thread_sensitive: bool = True, + executor: Optional["ThreadPoolExecutor"] = None, +) -> Callable[_P, Coroutine[Any, Any, _R]]: + ... + + +def sync_to_async( + func: Optional[Callable[_P, _R]] = None, + *, + thread_sensitive: bool = True, + executor: Optional["ThreadPoolExecutor"] = None, +) -> Union[ + Callable[[Callable[_P, _R]], Callable[_P, Coroutine[Any, Any, _R]]], + Callable[_P, Coroutine[Any, Any, _R]], +]: + if func is None: + return lambda f: SyncToAsync( + f, + thread_sensitive=thread_sensitive, + executor=executor, + ) + return SyncToAsync( + func, + thread_sensitive=thread_sensitive, + executor=executor, + ) diff --git a/venv/lib/python3.12/site-packages/asgiref/testing.py b/venv/lib/python3.12/site-packages/asgiref/testing.py new file mode 100644 index 0000000000..aa7cff1c33 --- /dev/null +++ b/venv/lib/python3.12/site-packages/asgiref/testing.py @@ -0,0 +1,103 @@ +import asyncio +import contextvars +import time + +from .compatibility import guarantee_single_callable +from .timeout import timeout as async_timeout + + +class ApplicationCommunicator: + """ + Runs an ASGI application in a test mode, allowing sending of + messages to it and retrieval of messages it sends. + """ + + def __init__(self, application, scope): + self.application = guarantee_single_callable(application) + self.scope = scope + self.input_queue = asyncio.Queue() + self.output_queue = asyncio.Queue() + # Clear context - this ensures that context vars set in the testing scope + # are not "leaked" into the application which would normally begin with + # an empty context. In Python >= 3.11 this could also be written as: + # asyncio.create_task(..., context=contextvars.Context()) + self.future = contextvars.Context().run( + asyncio.create_task, + self.application(scope, self.input_queue.get, self.output_queue.put), + ) + + async def wait(self, timeout=1): + """ + Waits for the application to stop itself and returns any exceptions. + """ + try: + async with async_timeout(timeout): + try: + await self.future + self.future.result() + except asyncio.CancelledError: + pass + finally: + if not self.future.done(): + self.future.cancel() + try: + await self.future + except asyncio.CancelledError: + pass + + def stop(self, exceptions=True): + if not self.future.done(): + self.future.cancel() + elif exceptions: + # Give a chance to raise any exceptions + self.future.result() + + def __del__(self): + # Clean up on deletion + try: + self.stop(exceptions=False) + except RuntimeError: + # Event loop already stopped + pass + + async def send_input(self, message): + """ + Sends a single message to the application + """ + # Give it the message + await self.input_queue.put(message) + + async def receive_output(self, timeout=1): + """ + Receives a single message from the application, with optional timeout. + """ + # Make sure there's not an exception to raise from the task + if self.future.done(): + self.future.result() + # Wait and receive the message + try: + async with async_timeout(timeout): + return await self.output_queue.get() + except asyncio.TimeoutError as e: + # See if we have another error to raise inside + if self.future.done(): + self.future.result() + else: + self.future.cancel() + try: + await self.future + except asyncio.CancelledError: + pass + raise e + + async def receive_nothing(self, timeout=0.1, interval=0.01): + """ + Checks that there is no message to receive in the given time. + """ + # `interval` has precedence over `timeout` + start = time.monotonic() + while time.monotonic() - start < timeout: + if not self.output_queue.empty(): + return False + await asyncio.sleep(interval) + return self.output_queue.empty() diff --git a/venv/lib/python3.12/site-packages/asgiref/timeout.py b/venv/lib/python3.12/site-packages/asgiref/timeout.py new file mode 100644 index 0000000000..fd5381d0d9 --- /dev/null +++ b/venv/lib/python3.12/site-packages/asgiref/timeout.py @@ -0,0 +1,118 @@ +# This code is originally sourced from the aio-libs project "async_timeout", +# under the Apache 2.0 license. You may see the original project at +# https://github.com/aio-libs/async-timeout + +# It is vendored here to reduce chain-dependencies on this library, and +# modified slightly to remove some features we don't use. + + +import asyncio +import warnings +from types import TracebackType +from typing import Any # noqa +from typing import Optional, Type + + +class timeout: + """timeout context manager. + + Useful in cases when you want to apply timeout logic around block + of code or in cases when asyncio.wait_for is not suitable. For example: + + >>> with timeout(0.001): + ... async with aiohttp.get('https://github.com') as r: + ... await r.text() + + + timeout - value in seconds or None to disable timeout logic + loop - asyncio compatible event loop + """ + + def __init__( + self, + timeout: Optional[float], + *, + loop: Optional[asyncio.AbstractEventLoop] = None, + ) -> None: + self._timeout = timeout + if loop is None: + loop = asyncio.get_running_loop() + else: + warnings.warn( + """The loop argument to timeout() is deprecated.""", DeprecationWarning + ) + self._loop = loop + self._task = None # type: Optional[asyncio.Task[Any]] + self._cancelled = False + self._cancel_handler = None # type: Optional[asyncio.Handle] + self._cancel_at = None # type: Optional[float] + + def __enter__(self) -> "timeout": + return self._do_enter() + + def __exit__( + self, + exc_type: Type[BaseException], + exc_val: BaseException, + exc_tb: TracebackType, + ) -> Optional[bool]: + self._do_exit(exc_type) + return None + + async def __aenter__(self) -> "timeout": + return self._do_enter() + + async def __aexit__( + self, + exc_type: Type[BaseException], + exc_val: BaseException, + exc_tb: TracebackType, + ) -> None: + self._do_exit(exc_type) + + @property + def expired(self) -> bool: + return self._cancelled + + @property + def remaining(self) -> Optional[float]: + if self._cancel_at is not None: + return max(self._cancel_at - self._loop.time(), 0.0) + else: + return None + + def _do_enter(self) -> "timeout": + # Support Tornado 5- without timeout + # Details: https://github.com/python/asyncio/issues/392 + if self._timeout is None: + return self + + self._task = asyncio.current_task(self._loop) + if self._task is None: + raise RuntimeError( + "Timeout context manager should be used " "inside a task" + ) + + if self._timeout <= 0: + self._loop.call_soon(self._cancel_task) + return self + + self._cancel_at = self._loop.time() + self._timeout + self._cancel_handler = self._loop.call_at(self._cancel_at, self._cancel_task) + return self + + def _do_exit(self, exc_type: Type[BaseException]) -> None: + if exc_type is asyncio.CancelledError and self._cancelled: + self._cancel_handler = None + self._task = None + raise asyncio.TimeoutError + if self._timeout is not None and self._cancel_handler is not None: + self._cancel_handler.cancel() + self._cancel_handler = None + self._task = None + return None + + def _cancel_task(self) -> None: + if self._task is not None: + self._task.cancel() + self._cancelled = True diff --git a/venv/lib/python3.12/site-packages/asgiref/typing.py b/venv/lib/python3.12/site-packages/asgiref/typing.py new file mode 100644 index 0000000000..71c25ed884 --- /dev/null +++ b/venv/lib/python3.12/site-packages/asgiref/typing.py @@ -0,0 +1,278 @@ +import sys +from typing import ( + Any, + Awaitable, + Callable, + Dict, + Iterable, + Literal, + Optional, + Protocol, + Tuple, + Type, + TypedDict, + Union, +) + +if sys.version_info >= (3, 11): + from typing import NotRequired +else: + from typing_extensions import NotRequired + +__all__ = ( + "ASGIVersions", + "HTTPScope", + "WebSocketScope", + "LifespanScope", + "WWWScope", + "Scope", + "HTTPRequestEvent", + "HTTPResponseStartEvent", + "HTTPResponseBodyEvent", + "HTTPResponseTrailersEvent", + "HTTPResponsePathsendEvent", + "HTTPServerPushEvent", + "HTTPDisconnectEvent", + "WebSocketConnectEvent", + "WebSocketAcceptEvent", + "WebSocketReceiveEvent", + "WebSocketSendEvent", + "WebSocketResponseStartEvent", + "WebSocketResponseBodyEvent", + "WebSocketDisconnectEvent", + "WebSocketCloseEvent", + "LifespanStartupEvent", + "LifespanShutdownEvent", + "LifespanStartupCompleteEvent", + "LifespanStartupFailedEvent", + "LifespanShutdownCompleteEvent", + "LifespanShutdownFailedEvent", + "ASGIReceiveEvent", + "ASGISendEvent", + "ASGIReceiveCallable", + "ASGISendCallable", + "ASGI2Protocol", + "ASGI2Application", + "ASGI3Application", + "ASGIApplication", +) + + +class ASGIVersions(TypedDict): + spec_version: str + version: Union[Literal["2.0"], Literal["3.0"]] + + +class HTTPScope(TypedDict): + type: Literal["http"] + asgi: ASGIVersions + http_version: str + method: str + scheme: str + path: str + raw_path: bytes + query_string: bytes + root_path: str + headers: Iterable[Tuple[bytes, bytes]] + client: Optional[Tuple[str, int]] + server: Optional[Tuple[str, Optional[int]]] + state: NotRequired[Dict[str, Any]] + extensions: Optional[Dict[str, Dict[object, object]]] + + +class WebSocketScope(TypedDict): + type: Literal["websocket"] + asgi: ASGIVersions + http_version: str + scheme: str + path: str + raw_path: bytes + query_string: bytes + root_path: str + headers: Iterable[Tuple[bytes, bytes]] + client: Optional[Tuple[str, int]] + server: Optional[Tuple[str, Optional[int]]] + subprotocols: Iterable[str] + state: NotRequired[Dict[str, Any]] + extensions: Optional[Dict[str, Dict[object, object]]] + + +class LifespanScope(TypedDict): + type: Literal["lifespan"] + asgi: ASGIVersions + state: NotRequired[Dict[str, Any]] + + +WWWScope = Union[HTTPScope, WebSocketScope] +Scope = Union[HTTPScope, WebSocketScope, LifespanScope] + + +class HTTPRequestEvent(TypedDict): + type: Literal["http.request"] + body: bytes + more_body: bool + + +class HTTPResponseDebugEvent(TypedDict): + type: Literal["http.response.debug"] + info: Dict[str, object] + + +class HTTPResponseStartEvent(TypedDict): + type: Literal["http.response.start"] + status: int + headers: Iterable[Tuple[bytes, bytes]] + trailers: bool + + +class HTTPResponseBodyEvent(TypedDict): + type: Literal["http.response.body"] + body: bytes + more_body: bool + + +class HTTPResponseTrailersEvent(TypedDict): + type: Literal["http.response.trailers"] + headers: Iterable[Tuple[bytes, bytes]] + more_trailers: bool + + +class HTTPResponsePathsendEvent(TypedDict): + type: Literal["http.response.pathsend"] + path: str + + +class HTTPServerPushEvent(TypedDict): + type: Literal["http.response.push"] + path: str + headers: Iterable[Tuple[bytes, bytes]] + + +class HTTPDisconnectEvent(TypedDict): + type: Literal["http.disconnect"] + + +class WebSocketConnectEvent(TypedDict): + type: Literal["websocket.connect"] + + +class WebSocketAcceptEvent(TypedDict): + type: Literal["websocket.accept"] + subprotocol: Optional[str] + headers: Iterable[Tuple[bytes, bytes]] + + +class WebSocketReceiveEvent(TypedDict): + type: Literal["websocket.receive"] + bytes: Optional[bytes] + text: Optional[str] + + +class WebSocketSendEvent(TypedDict): + type: Literal["websocket.send"] + bytes: Optional[bytes] + text: Optional[str] + + +class WebSocketResponseStartEvent(TypedDict): + type: Literal["websocket.http.response.start"] + status: int + headers: Iterable[Tuple[bytes, bytes]] + + +class WebSocketResponseBodyEvent(TypedDict): + type: Literal["websocket.http.response.body"] + body: bytes + more_body: bool + + +class WebSocketDisconnectEvent(TypedDict): + type: Literal["websocket.disconnect"] + code: int + + +class WebSocketCloseEvent(TypedDict): + type: Literal["websocket.close"] + code: int + reason: Optional[str] + + +class LifespanStartupEvent(TypedDict): + type: Literal["lifespan.startup"] + + +class LifespanShutdownEvent(TypedDict): + type: Literal["lifespan.shutdown"] + + +class LifespanStartupCompleteEvent(TypedDict): + type: Literal["lifespan.startup.complete"] + + +class LifespanStartupFailedEvent(TypedDict): + type: Literal["lifespan.startup.failed"] + message: str + + +class LifespanShutdownCompleteEvent(TypedDict): + type: Literal["lifespan.shutdown.complete"] + + +class LifespanShutdownFailedEvent(TypedDict): + type: Literal["lifespan.shutdown.failed"] + message: str + + +ASGIReceiveEvent = Union[ + HTTPRequestEvent, + HTTPDisconnectEvent, + WebSocketConnectEvent, + WebSocketReceiveEvent, + WebSocketDisconnectEvent, + LifespanStartupEvent, + LifespanShutdownEvent, +] + + +ASGISendEvent = Union[ + HTTPResponseStartEvent, + HTTPResponseBodyEvent, + HTTPResponseTrailersEvent, + HTTPServerPushEvent, + HTTPDisconnectEvent, + WebSocketAcceptEvent, + WebSocketSendEvent, + WebSocketResponseStartEvent, + WebSocketResponseBodyEvent, + WebSocketCloseEvent, + LifespanStartupCompleteEvent, + LifespanStartupFailedEvent, + LifespanShutdownCompleteEvent, + LifespanShutdownFailedEvent, +] + + +ASGIReceiveCallable = Callable[[], Awaitable[ASGIReceiveEvent]] +ASGISendCallable = Callable[[ASGISendEvent], Awaitable[None]] + + +class ASGI2Protocol(Protocol): + def __init__(self, scope: Scope) -> None: + ... + + async def __call__( + self, receive: ASGIReceiveCallable, send: ASGISendCallable + ) -> None: + ... + + +ASGI2Application = Type[ASGI2Protocol] +ASGI3Application = Callable[ + [ + Scope, + ASGIReceiveCallable, + ASGISendCallable, + ], + Awaitable[None], +] +ASGIApplication = Union[ASGI2Application, ASGI3Application] diff --git a/venv/lib/python3.12/site-packages/asgiref/wsgi.py b/venv/lib/python3.12/site-packages/asgiref/wsgi.py new file mode 100644 index 0000000000..65af427959 --- /dev/null +++ b/venv/lib/python3.12/site-packages/asgiref/wsgi.py @@ -0,0 +1,166 @@ +from io import BytesIO +from tempfile import SpooledTemporaryFile + +from asgiref.sync import AsyncToSync, sync_to_async + + +class WsgiToAsgi: + """ + Wraps a WSGI application to make it into an ASGI application. + """ + + def __init__(self, wsgi_application): + self.wsgi_application = wsgi_application + + async def __call__(self, scope, receive, send): + """ + ASGI application instantiation point. + We return a new WsgiToAsgiInstance here with the WSGI app + and the scope, ready to respond when it is __call__ed. + """ + await WsgiToAsgiInstance(self.wsgi_application)(scope, receive, send) + + +class WsgiToAsgiInstance: + """ + Per-socket instance of a wrapped WSGI application + """ + + def __init__(self, wsgi_application): + self.wsgi_application = wsgi_application + self.response_started = False + self.response_content_length = None + + async def __call__(self, scope, receive, send): + if scope["type"] != "http": + raise ValueError("WSGI wrapper received a non-HTTP scope") + self.scope = scope + with SpooledTemporaryFile(max_size=65536) as body: + # Alright, wait for the http.request messages + while True: + message = await receive() + if message["type"] != "http.request": + raise ValueError("WSGI wrapper received a non-HTTP-request message") + body.write(message.get("body", b"")) + if not message.get("more_body"): + break + body.seek(0) + # Wrap send so it can be called from the subthread + self.sync_send = AsyncToSync(send) + # Call the WSGI app + await self.run_wsgi_app(body) + + def build_environ(self, scope, body): + """ + Builds a scope and request body into a WSGI environ object. + """ + script_name = scope.get("root_path", "").encode("utf8").decode("latin1") + path_info = scope["path"].encode("utf8").decode("latin1") + if path_info.startswith(script_name): + path_info = path_info[len(script_name) :] + environ = { + "REQUEST_METHOD": scope["method"], + "SCRIPT_NAME": script_name, + "PATH_INFO": path_info, + "QUERY_STRING": scope["query_string"].decode("ascii"), + "SERVER_PROTOCOL": "HTTP/%s" % scope["http_version"], + "wsgi.version": (1, 0), + "wsgi.url_scheme": scope.get("scheme", "http"), + "wsgi.input": body, + "wsgi.errors": BytesIO(), + "wsgi.multithread": True, + "wsgi.multiprocess": True, + "wsgi.run_once": False, + } + # Get server name and port - required in WSGI, not in ASGI + if "server" in scope: + environ["SERVER_NAME"] = scope["server"][0] + environ["SERVER_PORT"] = str(scope["server"][1]) + else: + environ["SERVER_NAME"] = "localhost" + environ["SERVER_PORT"] = "80" + + if scope.get("client") is not None: + environ["REMOTE_ADDR"] = scope["client"][0] + + # Go through headers and make them into environ entries + for name, value in self.scope.get("headers", []): + name = name.decode("latin1") + if name == "content-length": + corrected_name = "CONTENT_LENGTH" + elif name == "content-type": + corrected_name = "CONTENT_TYPE" + else: + corrected_name = "HTTP_%s" % name.upper().replace("-", "_") + # HTTPbis say only ASCII chars are allowed in headers, but we latin1 just in case + value = value.decode("latin1") + if corrected_name in environ: + value = environ[corrected_name] + "," + value + environ[corrected_name] = value + return environ + + def start_response(self, status, response_headers, exc_info=None): + """ + WSGI start_response callable. + """ + # Don't allow re-calling once response has begun + if self.response_started: + raise exc_info[1].with_traceback(exc_info[2]) + # Don't allow re-calling without exc_info + if hasattr(self, "response_start") and exc_info is None: + raise ValueError( + "You cannot call start_response a second time without exc_info" + ) + # Extract status code + status_code, _ = status.split(" ", 1) + status_code = int(status_code) + # Extract headers + headers = [ + (name.lower().encode("ascii"), value.encode("ascii")) + for name, value in response_headers + ] + # Extract content-length + self.response_content_length = None + for name, value in response_headers: + if name.lower() == "content-length": + self.response_content_length = int(value) + # Build and send response start message. + self.response_start = { + "type": "http.response.start", + "status": status_code, + "headers": headers, + } + + @sync_to_async + def run_wsgi_app(self, body): + """ + Called in a subthread to run the WSGI app. We encapsulate like + this so that the start_response callable is called in the same thread. + """ + # Translate the scope and incoming request body into a WSGI environ + environ = self.build_environ(self.scope, body) + # Run the WSGI app + bytes_sent = 0 + for output in self.wsgi_application(environ, self.start_response): + # If this is the first response, include the response headers + if not self.response_started: + self.response_started = True + self.sync_send(self.response_start) + # If the application supplies a Content-Length header + if self.response_content_length is not None: + # The server should not transmit more bytes to the client than the header allows + bytes_allowed = self.response_content_length - bytes_sent + if len(output) > bytes_allowed: + output = output[:bytes_allowed] + self.sync_send( + {"type": "http.response.body", "body": output, "more_body": True} + ) + bytes_sent += len(output) + # The server should stop iterating over the response when enough data has been sent + if bytes_sent == self.response_content_length: + break + # Close connection + if not self.response_started: + self.response_started = True + self.sync_send(self.response_start) + self.sync_send({"type": "http.response.body"}) diff --git a/venv/lib/python3.12/site-packages/black-24.8.1.dev4+g699b45a.dist-info/INSTALLER b/venv/lib/python3.12/site-packages/black-24.8.1.dev4+g699b45a.dist-info/INSTALLER new file mode 100644 index 0000000000..a1b589e38a --- /dev/null +++ b/venv/lib/python3.12/site-packages/black-24.8.1.dev4+g699b45a.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/venv/lib/python3.12/site-packages/black-24.8.1.dev4+g699b45a.dist-info/METADATA b/venv/lib/python3.12/site-packages/black-24.8.1.dev4+g699b45a.dist-info/METADATA new file mode 100644 index 0000000000..5b22acd8e5 --- /dev/null +++ b/venv/lib/python3.12/site-packages/black-24.8.1.dev4+g699b45a.dist-info/METADATA @@ -0,0 +1,2162 @@ +Metadata-Version: 2.3 +Name: black +Version: 24.8.1.dev4+g699b45a +Summary: The uncompromising code formatter. +Project-URL: Documentation, https://black.readthedocs.io/ +Project-URL: Changelog, https://github.com/psf/black/blob/main/CHANGES.md +Project-URL: Repository, https://github.com/psf/black +Project-URL: Issues, https://github.com/psf/black/issues +Author-email: Łukasz Langa +License: MIT +License-File: AUTHORS.md +License-File: LICENSE +Keywords: automation,autopep8,formatter,gofmt,pyfmt,rustfmt,yapf +Classifier: Development Status :: 5 - Production/Stable +Classifier: Environment :: Console +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: MIT License +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 3 :: Only +Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 +Classifier: Topic :: Software Development :: Libraries :: Python Modules +Classifier: Topic :: Software Development :: Quality Assurance +Requires-Python: >=3.8 +Requires-Dist: click>=8.0.0 +Requires-Dist: mypy-extensions>=0.4.3 +Requires-Dist: packaging>=22.0 +Requires-Dist: pathspec>=0.9.0 +Requires-Dist: platformdirs>=2 +Requires-Dist: tomli>=1.1.0; python_version < '3.11' +Requires-Dist: typing-extensions>=4.0.1; python_version < '3.11' +Provides-Extra: colorama +Requires-Dist: colorama>=0.4.3; extra == 'colorama' +Provides-Extra: d +Requires-Dist: aiohttp!=3.9.0,>=3.7.4; (sys_platform == 'win32' and implementation_name == 'pypy') and extra == 'd' +Requires-Dist: aiohttp>=3.7.4; (sys_platform != 'win32' or implementation_name != 'pypy') and extra == 'd' +Provides-Extra: jupyter +Requires-Dist: ipython>=7.8.0; extra == 'jupyter' +Requires-Dist: tokenize-rt>=3.2.0; extra == 'jupyter' +Provides-Extra: uvloop +Requires-Dist: uvloop>=0.15.2; extra == 'uvloop' +Description-Content-Type: text/markdown + +[![Black Logo](https://raw.githubusercontent.com/psf/black/main/docs/_static/logo2-readme.png)](https://black.readthedocs.io/en/stable/) + +

The Uncompromising Code Formatter

+ +

+Actions Status +Documentation Status +Coverage Status +License: MIT +PyPI +Downloads +conda-forge +Code style: black +

+ +> “Any color you like.” + +_Black_ is the uncompromising Python code formatter. By using it, you agree to cede +control over minutiae of hand-formatting. In return, _Black_ gives you speed, +determinism, and freedom from `pycodestyle` nagging about formatting. You will save time +and mental energy for more important matters. + +Blackened code looks the same regardless of the project you're reading. Formatting +becomes transparent after a while and you can focus on the content instead. + +_Black_ makes code review faster by producing the smallest diffs possible. + +Try it out now using the [Black Playground](https://black.vercel.app). Watch the +[PyCon 2019 talk](https://youtu.be/esZLCuWs_2Y) to learn more. + +--- + +**[Read the documentation on ReadTheDocs!](https://black.readthedocs.io/en/stable)** + +--- + +## Installation and usage + +### Installation + +_Black_ can be installed by running `pip install black`. It requires Python 3.8+ to run. +If you want to format Jupyter Notebooks, install with `pip install "black[jupyter]"`. + +If you can't wait for the latest _hotness_ and want to install from GitHub, use: + +`pip install git+https://github.com/psf/black` + +### Usage + +To get started right away with sensible defaults: + +```sh +black {source_file_or_directory} +``` + +You can run _Black_ as a package if running it as a script doesn't work: + +```sh +python -m black {source_file_or_directory} +``` + +Further information can be found in our docs: + +- [Usage and Configuration](https://black.readthedocs.io/en/stable/usage_and_configuration/index.html) + +_Black_ is already [successfully used](https://github.com/psf/black#used-by) by many +projects, small and big. _Black_ has a comprehensive test suite, with efficient parallel +tests, and our own auto formatting and parallel Continuous Integration runner. Now that +we have become stable, you should not expect large formatting changes in the future. +Stylistic changes will mostly be responses to bug reports and support for new Python +syntax. For more information please refer to +[The Black Code Style](https://black.readthedocs.io/en/stable/the_black_code_style/index.html). + +Also, as a safety measure which slows down processing, _Black_ will check that the +reformatted code still produces a valid AST that is effectively equivalent to the +original (see the +[Pragmatism](https://black.readthedocs.io/en/stable/the_black_code_style/current_style.html#ast-before-and-after-formatting) +section for details). If you're feeling confident, use `--fast`. + +## The _Black_ code style + +_Black_ is a PEP 8 compliant opinionated formatter. _Black_ reformats entire files in +place. Style configuration options are deliberately limited and rarely added. It doesn't +take previous formatting into account (see +[Pragmatism](https://black.readthedocs.io/en/stable/the_black_code_style/current_style.html#pragmatism) +for exceptions). + +Our documentation covers the current _Black_ code style, but planned changes to it are +also documented. They're both worth taking a look at: + +- [The _Black_ Code Style: Current style](https://black.readthedocs.io/en/stable/the_black_code_style/current_style.html) +- [The _Black_ Code Style: Future style](https://black.readthedocs.io/en/stable/the_black_code_style/future_style.html) + +Changes to the _Black_ code style are bound by the Stability Policy: + +- [The _Black_ Code Style: Stability Policy](https://black.readthedocs.io/en/stable/the_black_code_style/index.html#stability-policy) + +Please refer to this document before submitting an issue. What seems like a bug might be +intended behaviour. + +### Pragmatism + +Early versions of _Black_ used to be absolutist in some respects. They took after its +initial author. This was fine at the time as it made the implementation simpler and +there were not many users anyway. Not many edge cases were reported. As a mature tool, +_Black_ does make some exceptions to rules it otherwise holds. + +- [The _Black_ code style: Pragmatism](https://black.readthedocs.io/en/stable/the_black_code_style/current_style.html#pragmatism) + +Please refer to this document before submitting an issue just like with the document +above. What seems like a bug might be intended behaviour. + +## Configuration + +_Black_ is able to read project-specific default values for its command line options +from a `pyproject.toml` file. This is especially useful for specifying custom +`--include` and `--exclude`/`--force-exclude`/`--extend-exclude` patterns for your +project. + +You can find more details in our documentation: + +- [The basics: Configuration via a file](https://black.readthedocs.io/en/stable/usage_and_configuration/the_basics.html#configuration-via-a-file) + +And if you're looking for more general configuration documentation: + +- [Usage and Configuration](https://black.readthedocs.io/en/stable/usage_and_configuration/index.html) + +**Pro-tip**: If you're asking yourself "Do I need to configure anything?" the answer is +"No". _Black_ is all about sensible defaults. Applying those defaults will have your +code in compliance with many other _Black_ formatted projects. + +## Used by + +The following notable open-source projects trust _Black_ with enforcing a consistent +code style: pytest, tox, Pyramid, Django, Django Channels, Hypothesis, attrs, +SQLAlchemy, Poetry, PyPA applications (Warehouse, Bandersnatch, Pipenv, virtualenv), +pandas, Pillow, Twisted, LocalStack, every Datadog Agent Integration, Home Assistant, +Zulip, Kedro, OpenOA, FLORIS, ORBIT, WOMBAT, and many more. + +The following organizations use _Black_: Facebook, Dropbox, KeepTruckin, Lyft, Mozilla, +Quora, Duolingo, QuantumBlack, Tesla, Archer Aviation. + +Are we missing anyone? Let us know. + +## Testimonials + +**Mike Bayer**, [author of `SQLAlchemy`](https://www.sqlalchemy.org/): + +> I can't think of any single tool in my entire programming career that has given me a +> bigger productivity increase by its introduction. I can now do refactorings in about +> 1% of the keystrokes that it would have taken me previously when we had no way for +> code to format itself. + +**Dusty Phillips**, +[writer](https://smile.amazon.com/s/ref=nb_sb_noss?url=search-alias%3Daps&field-keywords=dusty+phillips): + +> _Black_ is opinionated so you don't have to be. + +**Hynek Schlawack**, [creator of `attrs`](https://www.attrs.org/), core developer of +Twisted and CPython: + +> An auto-formatter that doesn't suck is all I want for Xmas! + +**Carl Meyer**, [Django](https://www.djangoproject.com/) core developer: + +> At least the name is good. + +**Kenneth Reitz**, creator of [`requests`](https://requests.readthedocs.io/en/latest/) +and [`pipenv`](https://readthedocs.org/projects/pipenv/): + +> This vastly improves the formatting of our code. Thanks a ton! + +## Show your style + +Use the badge in your project's README.md: + +```md +[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) +``` + +Using the badge in README.rst: + +``` +.. image:: https://img.shields.io/badge/code%20style-black-000000.svg + :target: https://github.com/psf/black +``` + +Looks like this: +[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) + +## License + +MIT + +## Contributing + +Welcome! Happy to see you willing to make the project better. You can get started by +reading this: + +- [Contributing: The basics](https://black.readthedocs.io/en/latest/contributing/the_basics.html) + +You can also take a look at the rest of the contributing docs or talk with the +developers: + +- [Contributing documentation](https://black.readthedocs.io/en/latest/contributing/index.html) +- [Chat on Discord](https://discord.gg/RtVdv86PrH) + +## Change log + +The log has become rather long. It moved to its own file. + +See [CHANGES](https://black.readthedocs.io/en/latest/change_log.html). + +## Authors + +The author list is quite long nowadays, so it lives in its own file. + +See [AUTHORS.md](./AUTHORS.md) + +## Code of Conduct + +Everyone participating in the _Black_ project, and in particular in the issue tracker, +pull requests, and social media activity, is expected to treat other people with respect +and more generally to follow the guidelines articulated in the +[Python Community Code of Conduct](https://www.python.org/psf/codeofconduct/). + +At the same time, humor is encouraged. In fact, basic familiarity with Monty Python's +Flying Circus is expected. We are not savages. + +And if you _really_ need to slap somebody, do it with a fish while dancing. +# Change Log + +## Unreleased + +### Highlights + + + +### Stable style + + + +### Preview style + + + +### Configuration + + + +### Packaging + + + +### Parser + + + +### Performance + + + +### Output + + + +### _Blackd_ + + + +### Integrations + + + +### Documentation + + + +## 24.8.0 + +### Stable style + +- Fix crash when `# fmt: off` is used before a closing parenthesis or bracket. (#4363) + +### Packaging + +- Packaging metadata updated: docs are explictly linked, the issue tracker is now also + linked. This improves the PyPI listing for Black. (#4345) + +### Parser + +- Fix regression where Black failed to parse a multiline f-string containing another + multiline string (#4339) +- Fix regression where Black failed to parse an escaped single quote inside an f-string + (#4401) +- Fix bug with Black incorrectly parsing empty lines with a backslash (#4343) +- Fix bugs with Black's tokenizer not handling `\{` inside f-strings very well (#4422) +- Fix incorrect line numbers in the tokenizer for certain tokens within f-strings + (#4423) + +### Performance + +- Improve performance when a large directory is listed in `.gitignore` (#4415) + +### _Blackd_ + +- Fix blackd (and all extras installs) for docker container (#4357) + +## 24.4.2 + +This is a bugfix release to fix two regressions in the new f-string parser introduced in +24.4.1. + +### Parser + +- Fix regression where certain complex f-strings failed to parse (#4332) + +### Performance + +- Fix bad performance on certain complex string literals (#4331) + +## 24.4.1 + +### Highlights + +- Add support for the new Python 3.12 f-string syntax introduced by PEP 701 (#3822) + +### Stable style + +- Fix crash involving indented dummy functions containing newlines (#4318) + +### Parser + +- Add support for type parameter defaults, a new syntactic feature added to Python 3.13 + by PEP 696 (#4327) + +### Integrations + +- Github Action now works even when `git archive` is skipped (#4313) + +## 24.4.0 + +### Stable style + +- Fix unwanted crashes caused by AST equivalency check (#4290) + +### Preview style + +- `if` guards in `case` blocks are now wrapped in parentheses when the line is too long. + (#4269) +- Stop moving multiline strings to a new line unless inside brackets (#4289) + +### Integrations + +- Add a new option `use_pyproject` to the GitHub Action `psf/black`. This will read the + Black version from `pyproject.toml`. (#4294) + +## 24.3.0 + +### Highlights + +This release is a milestone: it fixes Black's first CVE security vulnerability. If you +run Black on untrusted input, or if you habitually put thousands of leading tab +characters in your docstrings, you are strongly encouraged to upgrade immediately to fix +[CVE-2024-21503](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2024-21503). + +This release also fixes a bug in Black's AST safety check that allowed Black to make +incorrect changes to certain f-strings that are valid in Python 3.12 and higher. + +### Stable style + +- Don't move comments along with delimiters, which could cause crashes (#4248) +- Strengthen AST safety check to catch more unsafe changes to strings. Previous versions + of Black would incorrectly format the contents of certain unusual f-strings containing + nested strings with the same quote type. Now, Black will crash on such strings until + support for the new f-string syntax is implemented. (#4270) +- Fix a bug where line-ranges exceeding the last code line would not work as expected + (#4273) + +### Performance + +- Fix catastrophic performance on docstrings that contain large numbers of leading tab + characters. This fixes + [CVE-2024-21503](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2024-21503). + (#4278) + +### Documentation + +- Note what happens when `--check` is used with `--quiet` (#4236) + +## 24.2.0 + +### Stable style + +- Fixed a bug where comments where mistakenly removed along with redundant parentheses + (#4218) + +### Preview style + +- Move the `hug_parens_with_braces_and_square_brackets` feature to the unstable style + due to an outstanding crash and proposed formatting tweaks (#4198) +- Fixed a bug where base expressions caused inconsistent formatting of \*\* in tenary + expression (#4154) +- Checking for newline before adding one on docstring that is almost at the line limit + (#4185) +- Remove redundant parentheses in `case` statement `if` guards (#4214). + +### Configuration + +- Fix issue where _Black_ would ignore input files in the presence of symlinks (#4222) +- _Black_ now ignores `pyproject.toml` that is missing a `tool.black` section when + discovering project root and configuration. Since _Black_ continues to use version + control as an indicator of project root, this is expected to primarily change behavior + for users in a monorepo setup (desirably). If you wish to preserve previous behavior, + simply add an empty `[tool.black]` to the previously discovered `pyproject.toml` + (#4204) + +### Output + +- Black will swallow any `SyntaxWarning`s or `DeprecationWarning`s produced by the `ast` + module when performing equivalence checks (#4189) + +### Integrations + +- Add a JSONSchema and provide a validate-pyproject entry-point (#4181) + +## 24.1.1 + +Bugfix release to fix a bug that made Black unusable on certain file systems with strict +limits on path length. + +### Preview style + +- Consistently add trailing comma on typed parameters (#4164) + +### Configuration + +- Shorten the length of the name of the cache file to fix crashes on file systems that + do not support long paths (#4176) + +## 24.1.0 + +### Highlights + +This release introduces the new 2024 stable style (#4106), stabilizing the following +changes: + +- Add parentheses around `if`-`else` expressions (#2278) +- Dummy class and function implementations consisting only of `...` are formatted more + compactly (#3796) +- If an assignment statement is too long, we now prefer splitting on the right-hand side + (#3368) +- Hex codes in Unicode escape sequences are now standardized to lowercase (#2916) +- Allow empty first lines at the beginning of most blocks (#3967, #4061) +- Add parentheses around long type annotations (#3899) +- Enforce newline after module docstrings (#3932, #4028) +- Fix incorrect magic trailing comma handling in return types (#3916) +- Remove blank lines before class docstrings (#3692) +- Wrap multiple context managers in parentheses if combined in a single `with` statement + (#3489) +- Fix bug in line length calculations for power operations (#3942) +- Add trailing commas to collection literals even if there's a comment after the last + entry (#3393) +- When using `--skip-magic-trailing-comma` or `-C`, trailing commas are stripped from + subscript expressions with more than 1 element (#3209) +- Add extra blank lines in stubs in a few cases (#3564, #3862) +- Accept raw strings as docstrings (#3947) +- Split long lines in case blocks (#4024) +- Stop removing spaces from walrus operators within subscripts (#3823) +- Fix incorrect formatting of certain async statements (#3609) +- Allow combining `# fmt: skip` with other comments (#3959) + +There are already a few improvements in the `--preview` style, which are slated for the +2025 stable style. Try them out and +[share your feedback](https://github.com/psf/black/issues). In the past, the preview +style has included some features that we were not able to stabilize. This year, we're +adding a separate `--unstable` style for features with known problems. Now, the +`--preview` style only includes features that we actually expect to make it into next +year's stable style. + +### Stable style + +Several bug fixes were made in features that are moved to the stable style in this +release: + +- Fix comment handling when parenthesising conditional expressions (#4134) +- Fix bug where spaces were not added around parenthesized walruses in subscripts, + unlike other binary operators (#4109) +- Remove empty lines before docstrings in async functions (#4132) +- Address a missing case in the change to allow empty lines at the beginning of all + blocks, except immediately before a docstring (#4130) +- For stubs, fix logic to enforce empty line after nested classes with bodies (#4141) + +### Preview style + +- Add `--unstable` style, covering preview features that have known problems that would + block them from going into the stable style. Also add the `--enable-unstable-feature` + flag; for example, use + `--enable-unstable-feature hug_parens_with_braces_and_square_brackets` to apply this + preview feature throughout 2024, even if a later Black release downgrades the feature + to unstable (#4096) +- Format module docstrings the same as class and function docstrings (#4095) +- Fix crash when using a walrus in a dictionary (#4155) +- Fix unnecessary parentheses when wrapping long dicts (#4135) +- Stop normalizing spaces before `# fmt: skip` comments (#4146) + +### Configuration + +- Print warning when configuration in `pyproject.toml` contains an invalid key (#4165) +- Fix symlink handling, properly ignoring symlinks that point outside of root (#4161) +- Fix cache mtime logic that resulted in false positive cache hits (#4128) +- Remove the long-deprecated `--experimental-string-processing` flag. This feature can + currently be enabled with `--preview --enable-unstable-feature string_processing`. + (#4096) + +### Integrations + +- Revert the change to run Black's pre-commit integration only on specific git hooks + (#3940) for better compatibility with older versions of pre-commit (#4137) + +## 23.12.1 + +### Packaging + +- Fixed a bug that included dependencies from the `d` extra by default (#4108) + +## 23.12.0 + +### Highlights + +It's almost 2024, which means it's time for a new edition of _Black_'s stable style! +Together with this release, we'll put out an alpha release 24.1a1 showcasing the draft +2024 stable style, which we'll finalize in the January release. Please try it out and +[share your feedback](https://github.com/psf/black/issues/4042). + +This release (23.12.0) will still produce the 2023 style. Most but not all of the +changes in `--preview` mode will be in the 2024 stable style. + +### Stable style + +- Fix bug where `# fmt: off` automatically dedents when used with the `--line-ranges` + option, even when it is not within the specified line range. (#4084) +- Fix feature detection for parenthesized context managers (#4104) + +### Preview style + +- Prefer more equal signs before a break when splitting chained assignments (#4010) +- Standalone form feed characters at the module level are no longer removed (#4021) +- Additional cases of immediately nested tuples, lists, and dictionaries are now + indented less (#4012) +- Allow empty lines at the beginning of all blocks, except immediately before a + docstring (#4060) +- Fix crash in preview mode when using a short `--line-length` (#4086) +- Keep suites consisting of only an ellipsis on their own lines if they are not + functions or class definitions (#4066) (#4103) + +### Configuration + +- `--line-ranges` now skips _Black_'s internal stability check in `--safe` mode. This + avoids a crash on rare inputs that have many unformatted same-content lines. (#4034) + +### Packaging + +- Upgrade to mypy 1.7.1 (#4049) (#4069) +- Faster compiled wheels are now available for CPython 3.12 (#4070) + +### Integrations + +- Enable 3.12 CI (#4035) +- Build docker images in parallel (#4054) +- Build docker images with 3.12 (#4055) + +## 23.11.0 + +### Highlights + +- Support formatting ranges of lines with the new `--line-ranges` command-line option + (#4020) + +### Stable style + +- Fix crash on formatting bytes strings that look like docstrings (#4003) +- Fix crash when whitespace followed a backslash before newline in a docstring (#4008) +- Fix standalone comments inside complex blocks crashing Black (#4016) +- Fix crash on formatting code like `await (a ** b)` (#3994) +- No longer treat leading f-strings as docstrings. This matches Python's behaviour and + fixes a crash (#4019) + +### Preview style + +- Multiline dicts and lists that are the sole argument to a function are now indented + less (#3964) +- Multiline unpacked dicts and lists as the sole argument to a function are now also + indented less (#3992) +- In f-string debug expressions, quote types that are visible in the final string are + now preserved (#4005) +- Fix a bug where long `case` blocks were not split into multiple lines. Also enable + general trailing comma rules on `case` blocks (#4024) +- Keep requiring two empty lines between module-level docstring and first function or + class definition (#4028) +- Add support for single-line format skip with other comments on the same line (#3959) + +### Configuration + +- Consistently apply force exclusion logic before resolving symlinks (#4015) +- Fix a bug in the matching of absolute path names in `--include` (#3976) + +### Performance + +- Fix mypyc builds on arm64 on macOS (#4017) + +### Integrations + +- Black's pre-commit integration will now run only on git hooks appropriate for a code + formatter (#3940) + +## 23.10.1 + +### Highlights + +- Maintenance release to get a fix out for GitHub Action edge case (#3957) + +### Preview style + +- Fix merging implicit multiline strings that have inline comments (#3956) +- Allow empty first line after block open before a comment or compound statement (#3967) + +### Packaging + +- Change Dockerfile to hatch + compile black (#3965) + +### Integrations + +- The summary output for GitHub workflows is now suppressible using the `summary` + parameter. (#3958) +- Fix the action failing when Black check doesn't pass (#3957) + +### Documentation + +- It is known Windows documentation CI is broken + https://github.com/psf/black/issues/3968 + +## 23.10.0 + +### Stable style + +- Fix comments getting removed from inside parenthesized strings (#3909) + +### Preview style + +- Fix long lines with power operators getting split before the line length (#3942) +- Long type hints are now wrapped in parentheses and properly indented when split across + multiple lines (#3899) +- Magic trailing commas are now respected in return types. (#3916) +- Require one empty line after module-level docstrings. (#3932) +- Treat raw triple-quoted strings as docstrings (#3947) + +### Configuration + +- Fix cache versioning logic when `BLACK_CACHE_DIR` is set (#3937) + +### Parser + +- Fix bug where attributes named `type` were not accepted inside `match` statements + (#3950) +- Add support for PEP 695 type aliases containing lambdas and other unusual expressions + (#3949) + +### Output + +- Black no longer attempts to provide special errors for attempting to format Python 2 + code (#3933) +- Black will more consistently print stacktraces on internal errors in verbose mode + (#3938) + +### Integrations + +- The action output displayed in the job summary is now wrapped in Markdown (#3914) + +## 23.9.1 + +Due to various issues, the previous release (23.9.0) did not include compiled mypyc +wheels, which make Black significantly faster. These issues have now been fixed, and +this release should come with compiled wheels once again. + +There will be no wheels for Python 3.12 due to a bug in mypyc. We will provide 3.12 +wheels in a future release as soon as the mypyc bug is fixed. + +### Packaging + +- Upgrade to mypy 1.5.1 (#3864) + +### Performance + +- Store raw tuples instead of NamedTuples in Black's cache, improving performance and + decreasing the size of the cache (#3877) + +## 23.9.0 + +### Preview style + +- More concise formatting for dummy implementations (#3796) +- In stub files, add a blank line between a statement with a body (e.g an + `if sys.version_info > (3, x):`) and a function definition on the same level (#3862) +- Fix a bug whereby spaces were removed from walrus operators within subscript(#3823) + +### Configuration + +- Black now applies exclusion and ignore logic before resolving symlinks (#3846) + +### Performance + +- Avoid importing `IPython` if notebook cells do not contain magics (#3782) +- Improve caching by comparing file hashes as fallback for mtime and size (#3821) + +### _Blackd_ + +- Fix an issue in `blackd` with single character input (#3558) + +### Integrations + +- Black now has an + [official pre-commit mirror](https://github.com/psf/black-pre-commit-mirror). Swapping + `https://github.com/psf/black` to `https://github.com/psf/black-pre-commit-mirror` in + your `.pre-commit-config.yaml` will make Black about 2x faster (#3828) +- The `.black.env` folder specified by `ENV_PATH` will now be removed on the completion + of the GitHub Action (#3759) + +## 23.7.0 + +### Highlights + +- Runtime support for Python 3.7 has been removed. Formatting 3.7 code will still be + supported until further notice (#3765) + +### Stable style + +- Fix a bug where an illegal trailing comma was added to return type annotations using + PEP 604 unions (#3735) +- Fix several bugs and crashes where comments in stub files were removed or mishandled + under some circumstances (#3745) +- Fix a crash with multi-line magic comments like `type: ignore` within parentheses + (#3740) +- Fix error in AST validation when _Black_ removes trailing whitespace in a type comment + (#3773) + +### Preview style + +- Implicitly concatenated strings used as function args are no longer wrapped inside + parentheses (#3640) +- Remove blank lines between a class definition and its docstring (#3692) + +### Configuration + +- The `--workers` argument to _Black_ can now be specified via the `BLACK_NUM_WORKERS` + environment variable (#3743) +- `.pytest_cache`, `.ruff_cache` and `.vscode` are now excluded by default (#3691) +- Fix _Black_ not honouring `pyproject.toml` settings when running `--stdin-filename` + and the `pyproject.toml` found isn't in the current working directory (#3719) +- _Black_ will now error if `exclude` and `extend-exclude` have invalid data types in + `pyproject.toml`, instead of silently doing the wrong thing (#3764) + +### Packaging + +- Upgrade mypyc from 0.991 to 1.3 (#3697) +- Remove patching of Click that mitigated errors on Python 3.6 with `LANG=C` (#3768) + +### Parser + +- Add support for the new PEP 695 syntax in Python 3.12 (#3703) + +### Performance + +- Speed up _Black_ significantly when the cache is full (#3751) +- Avoid importing `IPython` in a case where we wouldn't need it (#3748) + +### Output + +- Use aware UTC datetimes internally, avoids deprecation warning on Python 3.12 (#3728) +- Change verbose logging to exactly mirror _Black_'s logic for source discovery (#3749) + +### _Blackd_ + +- The `blackd` argument parser now shows the default values for options in their help + text (#3712) + +### Integrations + +- Black is now tested with + [`PYTHONWARNDEFAULTENCODING = 1`](https://docs.python.org/3/library/io.html#io-encoding-warning) + (#3763) +- Update GitHub Action to display black output in the job summary (#3688) + +### Documentation + +- Add a CITATION.cff file to the root of the repository, containing metadata on how to + cite this software (#3723) +- Update the _classes_ and _exceptions_ documentation in Developer reference to match + the latest code base (#3755) + +## 23.3.0 + +### Highlights + +This release fixes a longstanding confusing behavior in Black's GitHub action, where the +version of the action did not determine the version of Black being run (issue #3382). In +addition, there is a small bug fix around imports and a number of improvements to the +preview style. + +Please try out the +[preview style](https://black.readthedocs.io/en/stable/the_black_code_style/future_style.html#preview-style) +with `black --preview` and tell us your feedback. All changes in the preview style are +expected to become part of Black's stable style in January 2024. + +### Stable style + +- Import lines with `# fmt: skip` and `# fmt: off` no longer have an extra blank line + added when they are right after another import line (#3610) + +### Preview style + +- Add trailing commas to collection literals even if there's a comment after the last + entry (#3393) +- `async def`, `async for`, and `async with` statements are now formatted consistently + compared to their non-async version. (#3609) +- `with` statements that contain two context managers will be consistently wrapped in + parentheses (#3589) +- Let string splitters respect [East Asian Width](https://www.unicode.org/reports/tr11/) + (#3445) +- Now long string literals can be split after East Asian commas and periods (`、` U+3001 + IDEOGRAPHIC COMMA, `。` U+3002 IDEOGRAPHIC FULL STOP, & `,` U+FF0C FULLWIDTH COMMA) + besides before spaces (#3445) +- For stubs, enforce one blank line after a nested class with a body other than just + `...` (#3564) +- Improve handling of multiline strings by changing line split behavior (#1879) + +### Parser + +- Added support for formatting files with invalid type comments (#3594) + +### Integrations + +- Update GitHub Action to use the version of Black equivalent to action's version if + version input is not specified (#3543) +- Fix missing Python binary path in autoload script for vim (#3508) + +### Documentation + +- Document that only the most recent release is supported for security issues; + vulnerabilities should be reported through Tidelift (#3612) + +## 23.1.0 + +### Highlights + +This is the first release of 2023, and following our +[stability policy](https://black.readthedocs.io/en/stable/the_black_code_style/index.html#stability-policy), +it comes with a number of improvements to our stable style, including improvements to +empty line handling, removal of redundant parentheses in several contexts, and output +that highlights implicitly concatenated strings better. + +There are also many changes to the preview style; try out `black --preview` and give us +feedback to help us set the stable style for next year. + +In addition to style changes, Black now automatically infers the supported Python +versions from your `pyproject.toml` file, removing the need to set Black's target +versions separately. + +### Stable style + +- Introduce the 2023 stable style, which incorporates most aspects of last year's + preview style (#3418). Specific changes: + - Enforce empty lines before classes and functions with sticky leading comments + (#3302) (22.12.0) + - Reformat empty and whitespace-only files as either an empty file (if no newline is + present) or as a single newline character (if a newline is present) (#3348) + (22.12.0) + - Implicitly concatenated strings used as function args are now wrapped inside + parentheses (#3307) (22.12.0) + - Correctly handle trailing commas that are inside a line's leading non-nested parens + (#3370) (22.12.0) + - `--skip-string-normalization` / `-S` now prevents docstring prefixes from being + normalized as expected (#3168) (since 22.8.0) + - When using `--skip-magic-trailing-comma` or `-C`, trailing commas are stripped from + subscript expressions with more than 1 element (#3209) (22.8.0) + - Implicitly concatenated strings inside a list, set, or tuple are now wrapped inside + parentheses (#3162) (22.8.0) + - Fix a string merging/split issue when a comment is present in the middle of + implicitly concatenated strings on its own line (#3227) (22.8.0) + - Docstring quotes are no longer moved if it would violate the line length limit + (#3044, #3430) (22.6.0) + - Parentheses around return annotations are now managed (#2990) (22.6.0) + - Remove unnecessary parentheses around awaited objects (#2991) (22.6.0) + - Remove unnecessary parentheses in `with` statements (#2926) (22.6.0) + - Remove trailing newlines after code block open (#3035) (22.6.0) + - Code cell separators `#%%` are now standardised to `# %%` (#2919) (22.3.0) + - Remove unnecessary parentheses from `except` statements (#2939) (22.3.0) + - Remove unnecessary parentheses from tuple unpacking in `for` loops (#2945) (22.3.0) + - Avoid magic-trailing-comma in single-element subscripts (#2942) (22.3.0) +- Fix a crash when a colon line is marked between `# fmt: off` and `# fmt: on` (#3439) + +### Preview style + +- Format hex codes in unicode escape sequences in string literals (#2916) +- Add parentheses around `if`-`else` expressions (#2278) +- Improve performance on large expressions that contain many strings (#3467) +- Fix a crash in preview style with assert + parenthesized string (#3415) +- Fix crashes in preview style with walrus operators used in function return annotations + and except clauses (#3423) +- Fix a crash in preview advanced string processing where mixed implicitly concatenated + regular and f-strings start with an empty span (#3463) +- Fix a crash in preview advanced string processing where a standalone comment is placed + before a dict's value (#3469) +- Fix an issue where extra empty lines are added when a decorator has `# fmt: skip` + applied or there is a standalone comment between decorators (#3470) +- Do not put the closing quotes in a docstring on a separate line, even if the line is + too long (#3430) +- Long values in dict literals are now wrapped in parentheses; correspondingly + unnecessary parentheses around short values in dict literals are now removed; long + string lambda values are now wrapped in parentheses (#3440) +- Fix two crashes in preview style involving edge cases with docstrings (#3451) +- Exclude string type annotations from improved string processing; fix crash when the + return type annotation is stringified and spans across multiple lines (#3462) +- Wrap multiple context managers in parentheses when targeting Python 3.9+ (#3489) +- Fix several crashes in preview style with walrus operators used in `with` statements + or tuples (#3473) +- Fix an invalid quote escaping bug in f-string expressions where it produced invalid + code. Implicitly concatenated f-strings with different quotes can now be merged or + quote-normalized by changing the quotes used in expressions. (#3509) +- Fix crash on `await (yield)` when Black is compiled with mypyc (#3533) + +### Configuration + +- Black now tries to infer its `--target-version` from the project metadata specified in + `pyproject.toml` (#3219) + +### Packaging + +- Upgrade mypyc from `0.971` to `0.991` so mypycified _Black_ can be built on armv7 + (#3380) + - This also fixes some crashes while using compiled Black with a debug build of + CPython +- Drop specific support for the `tomli` requirement on 3.11 alpha releases, working + around a bug that would cause the requirement not to be installed on any non-final + Python releases (#3448) +- Black now depends on `packaging` version `22.0` or later. This is required for new + functionality that needs to parse part of the project metadata (#3219) + +### Output + +- Calling `black --help` multiple times will return the same help contents each time + (#3516) +- Verbose logging now shows the values of `pyproject.toml` configuration variables + (#3392) +- Fix false symlink detection messages in verbose output due to using an incorrect + relative path to the project root (#3385) + +### Integrations + +- Move 3.11 CI to normal flow now that all dependencies support 3.11 (#3446) +- Docker: Add new `latest_prerelease` tag automation to follow latest black alpha + release on docker images (#3465) + +### Documentation + +- Expand `vim-plug` installation instructions to offer more explicit options (#3468) + +## 22.12.0 + +### Preview style + +- Enforce empty lines before classes and functions with sticky leading comments (#3302) +- Reformat empty and whitespace-only files as either an empty file (if no newline is + present) or as a single newline character (if a newline is present) (#3348) +- Implicitly concatenated strings used as function args are now wrapped inside + parentheses (#3307) +- For assignment statements, prefer splitting the right hand side if the left hand side + fits on a single line (#3368) +- Correctly handle trailing commas that are inside a line's leading non-nested parens + (#3370) + +### Configuration + +- Fix incorrectly applied `.gitignore` rules by considering the `.gitignore` location + and the relative path to the target file (#3338) +- Fix incorrectly ignoring `.gitignore` presence when more than one source directory is + specified (#3336) + +### Parser + +- Parsing support has been added for walruses inside generator expression that are + passed as function args (for example, + `any(match := my_re.match(text) for text in texts)`) (#3327). + +### Integrations + +- Vim plugin: Optionally allow using the system installation of Black via + `let g:black_use_virtualenv = 0`(#3309) + +## 22.10.0 + +### Highlights + +- Runtime support for Python 3.6 has been removed. Formatting 3.6 code will still be + supported until further notice. + +### Stable style + +- Fix a crash when `# fmt: on` is used on a different block level than `# fmt: off` + (#3281) + +### Preview style + +- Fix a crash when formatting some dicts with parenthesis-wrapped long string keys + (#3262) + +### Configuration + +- `.ipynb_checkpoints` directories are now excluded by default (#3293) +- Add `--skip-source-first-line` / `-x` option to ignore the first line of source code + while formatting (#3299) + +### Packaging + +- Executables made with PyInstaller will no longer crash when formatting several files + at once on macOS. Native x86-64 executables for macOS are available once again. + (#3275) +- Hatchling is now used as the build backend. This will not have any effect for users + who install Black with its wheels from PyPI. (#3233) +- Faster compiled wheels are now available for CPython 3.11 (#3276) + +### _Blackd_ + +- Windows style (CRLF) newlines will be preserved (#3257). + +### Integrations + +- Vim plugin: add flag (`g:black_preview`) to enable/disable the preview style (#3246) +- Update GitHub Action to support formatting of Jupyter Notebook files via a `jupyter` + option (#3282) +- Update GitHub Action to support use of version specifiers (e.g. `<23`) for Black + version (#3265) + +## 22.8.0 + +### Highlights + +- Python 3.11 is now supported, except for _blackd_ as aiohttp does not support 3.11 as + of publishing (#3234) +- This is the last release that supports running _Black_ on Python 3.6 (formatting 3.6 + code will continue to be supported until further notice) +- Reword the stability policy to say that we may, in rare cases, make changes that + affect code that was not previously formatted by _Black_ (#3155) + +### Stable style + +- Fix an infinite loop when using `# fmt: on/off` in the middle of an expression or code + block (#3158) +- Fix incorrect handling of `# fmt: skip` on colon (`:`) lines (#3148) +- Comments are no longer deleted when a line had spaces removed around power operators + (#2874) + +### Preview style + +- Single-character closing docstring quotes are no longer moved to their own line as + this is invalid. This was a bug introduced in version 22.6.0. (#3166) +- `--skip-string-normalization` / `-S` now prevents docstring prefixes from being + normalized as expected (#3168) +- When using `--skip-magic-trailing-comma` or `-C`, trailing commas are stripped from + subscript expressions with more than 1 element (#3209) +- Implicitly concatenated strings inside a list, set, or tuple are now wrapped inside + parentheses (#3162) +- Fix a string merging/split issue when a comment is present in the middle of implicitly + concatenated strings on its own line (#3227) + +### _Blackd_ + +- `blackd` now supports enabling the preview style via the `X-Preview` header (#3217) + +### Configuration + +- Black now uses the presence of debug f-strings to detect target version (#3215) +- Fix misdetection of project root and verbose logging of sources in cases involving + `--stdin-filename` (#3216) +- Immediate `.gitignore` files in source directories given on the command line are now + also respected, previously only `.gitignore` files in the project root and + automatically discovered directories were respected (#3237) + +### Documentation + +- Recommend using BlackConnect in IntelliJ IDEs (#3150) + +### Integrations + +- Vim plugin: prefix messages with `Black: ` so it's clear they come from Black (#3194) +- Docker: changed to a /opt/venv installation + added to PATH to be available to + non-root users (#3202) + +### Output + +- Change from deprecated `asyncio.get_event_loop()` to create our event loop which + removes DeprecationWarning (#3164) +- Remove logging from internal `blib2to3` library since it regularly emits error logs + about failed caching that can and should be ignored (#3193) + +### Parser + +- Type comments are now included in the AST equivalence check consistently so accidental + deletion raises an error. Though type comments can't be tracked when running on PyPy + 3.7 due to standard library limitations. (#2874) + +### Performance + +- Reduce Black's startup time when formatting a single file by 15-30% (#3211) + +## 22.6.0 + +### Style + +- Fix unstable formatting involving `#fmt: skip` and `# fmt:skip` comments (notice the + lack of spaces) (#2970) + +### Preview style + +- Docstring quotes are no longer moved if it would violate the line length limit (#3044) +- Parentheses around return annotations are now managed (#2990) +- Remove unnecessary parentheses around awaited objects (#2991) +- Remove unnecessary parentheses in `with` statements (#2926) +- Remove trailing newlines after code block open (#3035) + +### Integrations + +- Add `scripts/migrate-black.py` script to ease introduction of Black to a Git project + (#3038) + +### Output + +- Output Python version and implementation as part of `--version` flag (#2997) + +### Packaging + +- Use `tomli` instead of `tomllib` on Python 3.11 builds where `tomllib` is not + available (#2987) + +### Parser + +- [PEP 654](https://peps.python.org/pep-0654/#except) syntax (for example, + `except *ExceptionGroup:`) is now supported (#3016) +- [PEP 646](https://peps.python.org/pep-0646) syntax (for example, + `Array[Batch, *Shape]` or `def fn(*args: *T) -> None`) is now supported (#3071) + +### Vim Plugin + +- Fix `strtobool` function. It didn't parse true/on/false/off. (#3025) + +## 22.3.0 + +### Preview style + +- Code cell separators `#%%` are now standardised to `# %%` (#2919) +- Remove unnecessary parentheses from `except` statements (#2939) +- Remove unnecessary parentheses from tuple unpacking in `for` loops (#2945) +- Avoid magic-trailing-comma in single-element subscripts (#2942) + +### Configuration + +- Do not format `__pypackages__` directories by default (#2836) +- Add support for specifying stable version with `--required-version` (#2832). +- Avoid crashing when the user has no homedir (#2814) +- Avoid crashing when md5 is not available (#2905) +- Fix handling of directory junctions on Windows (#2904) + +### Documentation + +- Update pylint config documentation (#2931) + +### Integrations + +- Move test to disable plugin in Vim/Neovim, which speeds up loading (#2896) + +### Output + +- In verbose mode, log when _Black_ is using user-level config (#2861) + +### Packaging + +- Fix Black to work with Click 8.1.0 (#2966) +- On Python 3.11 and newer, use the standard library's `tomllib` instead of `tomli` + (#2903) +- `black-primer`, the deprecated internal devtool, has been removed and copied to a + [separate repository](https://github.com/cooperlees/black-primer) (#2924) + +### Parser + +- Black can now parse starred expressions in the target of `for` and `async for` + statements, e.g `for item in *items_1, *items_2: pass` (#2879). + +## 22.1.0 + +At long last, _Black_ is no longer a beta product! This is the first non-beta release +and the first release covered by our new +[stability policy](https://black.readthedocs.io/en/stable/the_black_code_style/index.html#stability-policy). + +### Highlights + +- **Remove Python 2 support** (#2740) +- Introduce the `--preview` flag (#2752) + +### Style + +- Deprecate `--experimental-string-processing` and move the functionality under + `--preview` (#2789) +- For stubs, one blank line between class attributes and methods is now kept if there's + at least one pre-existing blank line (#2736) +- Black now normalizes string prefix order (#2297) +- Remove spaces around power operators if both operands are simple (#2726) +- Work around bug that causes unstable formatting in some cases in the presence of the + magic trailing comma (#2807) +- Use parentheses for attribute access on decimal float and int literals (#2799) +- Don't add whitespace for attribute access on hexadecimal, binary, octal, and complex + literals (#2799) +- Treat blank lines in stubs the same inside top-level `if` statements (#2820) +- Fix unstable formatting with semicolons and arithmetic expressions (#2817) +- Fix unstable formatting around magic trailing comma (#2572) + +### Parser + +- Fix mapping cases that contain as-expressions, like `case {"key": 1 | 2 as password}` + (#2686) +- Fix cases that contain multiple top-level as-expressions, like `case 1 as a, 2 as b` + (#2716) +- Fix call patterns that contain as-expressions with keyword arguments, like + `case Foo(bar=baz as quux)` (#2749) +- Tuple unpacking on `return` and `yield` constructs now implies 3.8+ (#2700) +- Unparenthesized tuples on annotated assignments (e.g + `values: Tuple[int, ...] = 1, 2, 3`) now implies 3.8+ (#2708) +- Fix handling of standalone `match()` or `case()` when there is a trailing newline or a + comment inside of the parentheses. (#2760) +- `from __future__ import annotations` statement now implies Python 3.7+ (#2690) + +### Performance + +- Speed-up the new backtracking parser about 4X in general (enabled when + `--target-version` is set to 3.10 and higher). (#2728) +- _Black_ is now compiled with [mypyc](https://github.com/mypyc/mypyc) for an overall 2x + speed-up. 64-bit Windows, MacOS, and Linux (not including musl) are supported. (#1009, + #2431) + +### Configuration + +- Do not accept bare carriage return line endings in pyproject.toml (#2408) +- Add configuration option (`python-cell-magics`) to format cells with custom magics in + Jupyter Notebooks (#2744) +- Allow setting custom cache directory on all platforms with environment variable + `BLACK_CACHE_DIR` (#2739). +- Enable Python 3.10+ by default, without any extra need to specify + `--target-version=py310`. (#2758) +- Make passing `SRC` or `--code` mandatory and mutually exclusive (#2804) + +### Output + +- Improve error message for invalid regular expression (#2678) +- Improve error message when parsing fails during AST safety check by embedding the + underlying SyntaxError (#2693) +- No longer color diff headers white as it's unreadable in light themed terminals + (#2691) +- Text coloring added in the final statistics (#2712) +- Verbose mode also now describes how a project root was discovered and which paths will + be formatted. (#2526) + +### Packaging + +- All upper version bounds on dependencies have been removed (#2718) +- `typing-extensions` is no longer a required dependency in Python 3.10+ (#2772) +- Set `click` lower bound to `8.0.0` (#2791) + +### Integrations + +- Update GitHub action to support containerized runs (#2748) + +### Documentation + +- Change protocol in pip installation instructions to `https://` (#2761) +- Change HTML theme to Furo primarily for its responsive design and mobile support + (#2793) +- Deprecate the `black-primer` tool (#2809) +- Document Python support policy (#2819) + +## 21.12b0 + +### _Black_ + +- Fix determination of f-string expression spans (#2654) +- Fix bad formatting of error messages about EOF in multi-line statements (#2343) +- Functions and classes in blocks now have more consistent surrounding spacing (#2472) + +#### Jupyter Notebook support + +- Cell magics are now only processed if they are known Python cell magics. Earlier, all + cell magics were tokenized, leading to possible indentation errors e.g. with + `%%writefile`. (#2630) +- Fix assignment to environment variables in Jupyter Notebooks (#2642) + +#### Python 3.10 support + +- Point users to using `--target-version py310` if we detect 3.10-only syntax (#2668) +- Fix `match` statements with open sequence subjects, like `match a, b:` or + `match a, *b:` (#2639) (#2659) +- Fix `match`/`case` statements that contain `match`/`case` soft keywords multiple + times, like `match re.match()` (#2661) +- Fix `case` statements with an inline body (#2665) +- Fix styling of starred expressions inside `match` subject (#2667) +- Fix parser error location on invalid syntax in a `match` statement (#2649) +- Fix Python 3.10 support on platforms without ProcessPoolExecutor (#2631) +- Improve parsing performance on code that uses `match` under `--target-version py310` + up to ~50% (#2670) + +### Packaging + +- Remove dependency on `regex` (#2644) (#2663) + +## 21.11b1 + +### _Black_ + +- Bumped regex version minimum to 2021.4.4 to fix Pattern class usage (#2621) + +## 21.11b0 + +### _Black_ + +- Warn about Python 2 deprecation in more cases by improving Python 2 only syntax + detection (#2592) +- Add experimental PyPy support (#2559) +- Add partial support for the match statement. As it's experimental, it's only enabled + when `--target-version py310` is explicitly specified (#2586) +- Add support for parenthesized with (#2586) +- Declare support for Python 3.10 for running Black (#2562) + +### Integrations + +- Fixed vim plugin with Python 3.10 by removing deprecated distutils import (#2610) +- The vim plugin now parses `skip_magic_trailing_comma` from pyproject.toml (#2613) + +## 21.10b0 + +### _Black_ + +- Document stability policy, that will apply for non-beta releases (#2529) +- Add new `--workers` parameter (#2514) +- Fixed feature detection for positional-only arguments in lambdas (#2532) +- Bumped typed-ast version minimum to 1.4.3 for 3.10 compatibility (#2519) +- Fixed a Python 3.10 compatibility issue where the loop argument was still being passed + even though it has been removed (#2580) +- Deprecate Python 2 formatting support (#2523) + +### _Blackd_ + +- Remove dependency on aiohttp-cors (#2500) +- Bump required aiohttp version to 3.7.4 (#2509) + +### _Black-Primer_ + +- Add primer support for --projects (#2555) +- Print primer summary after individual failures (#2570) + +### Integrations + +- Allow to pass `target_version` in the vim plugin (#1319) +- Install build tools in docker file and use multi-stage build to keep the image size + down (#2582) + +## 21.9b0 + +### Packaging + +- Fix missing modules in self-contained binaries (#2466) +- Fix missing toml extra used during installation (#2475) + +## 21.8b0 + +### _Black_ + +- Add support for formatting Jupyter Notebook files (#2357) +- Move from `appdirs` dependency to `platformdirs` (#2375) +- Present a more user-friendly error if .gitignore is invalid (#2414) +- The failsafe for accidentally added backslashes in f-string expressions has been + hardened to handle more edge cases during quote normalization (#2437) +- Avoid changing a function return type annotation's type to a tuple by adding a + trailing comma (#2384) +- Parsing support has been added for unparenthesized walruses in set literals, set + comprehensions, and indices (#2447). +- Pin `setuptools-scm` build-time dependency version (#2457) +- Exclude typing-extensions version 3.10.0.1 due to it being broken on Python 3.10 + (#2460) + +### _Blackd_ + +- Replace sys.exit(-1) with raise ImportError as it plays more nicely with tools that + scan installed packages (#2440) + +### Integrations + +- The provided pre-commit hooks no longer specify `language_version` to avoid overriding + `default_language_version` (#2430) + +## 21.7b0 + +### _Black_ + +- Configuration files using TOML features higher than spec v0.5.0 are now supported + (#2301) +- Add primer support and test for code piped into black via STDIN (#2315) +- Fix internal error when `FORCE_OPTIONAL_PARENTHESES` feature is enabled (#2332) +- Accept empty stdin (#2346) +- Provide a more useful error when parsing fails during AST safety checks (#2304) + +### Docker + +- Add new `latest_release` tag automation to follow latest black release on docker + images (#2374) + +### Integrations + +- The vim plugin now searches upwards from the directory containing the current buffer + instead of the current working directory for pyproject.toml. (#1871) +- The vim plugin now reads the correct string normalization option in pyproject.toml + (#1869) +- The vim plugin no longer crashes Black when there's boolean values in pyproject.toml + (#1869) + +## 21.6b0 + +### _Black_ + +- Fix failure caused by `fmt: skip` and indentation (#2281) +- Account for += assignment when deciding whether to split string (#2312) +- Correct max string length calculation when there are string operators (#2292) +- Fixed option usage when using the `--code` flag (#2259) +- Do not call `uvloop.install()` when _Black_ is used as a library (#2303) +- Added `--required-version` option to require a specific version to be running (#2300) +- Fix incorrect custom breakpoint indices when string group contains fake f-strings + (#2311) +- Fix regression where `R` prefixes would be lowercased for docstrings (#2285) +- Fix handling of named escapes (`\N{...}`) when `--experimental-string-processing` is + used (#2319) + +### Integrations + +- The official Black action now supports choosing what version to use, and supports the + major 3 OSes. (#1940) + +## 21.5b2 + +### _Black_ + +- A space is no longer inserted into empty docstrings (#2249) +- Fix handling of .gitignore files containing non-ASCII characters on Windows (#2229) +- Respect `.gitignore` files in all levels, not only `root/.gitignore` file (apply + `.gitignore` rules like `git` does) (#2225) +- Restored compatibility with Click 8.0 on Python 3.6 when LANG=C used (#2227) +- Add extra uvloop install + import support if in python env (#2258) +- Fix --experimental-string-processing crash when matching parens are not found (#2283) +- Make sure to split lines that start with a string operator (#2286) +- Fix regular expression that black uses to identify f-expressions (#2287) + +### _Blackd_ + +- Add a lower bound for the `aiohttp-cors` dependency. Only 0.4.0 or higher is + supported. (#2231) + +### Packaging + +- Release self-contained x86_64 MacOS binaries as part of the GitHub release pipeline + (#2198) +- Always build binaries with the latest available Python (#2260) + +### Documentation + +- Add discussion of magic comments to FAQ page (#2272) +- `--experimental-string-processing` will be enabled by default in the future (#2273) +- Fix typos discovered by codespell (#2228) +- Fix Vim plugin installation instructions. (#2235) +- Add new Frequently Asked Questions page (#2247) +- Fix encoding + symlink issues preventing proper build on Windows (#2262) + +## 21.5b1 + +### _Black_ + +- Refactor `src/black/__init__.py` into many files (#2206) + +### Documentation + +- Replaced all remaining references to the + [`master`](https://github.com/psf/black/tree/main) branch with the + [`main`](https://github.com/psf/black/tree/main) branch. Some additional changes in + the source code were also made. (#2210) +- Significantly reorganized the documentation to make much more sense. Check them out by + heading over to [the stable docs on RTD](https://black.readthedocs.io/en/stable/). + (#2174) + +## 21.5b0 + +### _Black_ + +- Set `--pyi` mode if `--stdin-filename` ends in `.pyi` (#2169) +- Stop detecting target version as Python 3.9+ with pre-PEP-614 decorators that are + being called but with no arguments (#2182) + +### _Black-Primer_ + +- Add `--no-diff` to black-primer to suppress formatting changes (#2187) + +## 21.4b2 + +### _Black_ + +- Fix crash if the user configuration directory is inaccessible. (#2158) + +- Clarify + [circumstances](https://github.com/psf/black/blob/master/docs/the_black_code_style.md#pragmatism) + in which _Black_ may change the AST (#2159) + +- Allow `.gitignore` rules to be overridden by specifying `exclude` in `pyproject.toml` + or on the command line. (#2170) + +### _Packaging_ + +- Install `primer.json` (used by `black-primer` by default) with black. (#2154) + +## 21.4b1 + +### _Black_ + +- Fix crash on docstrings ending with "\\ ". (#2142) + +- Fix crash when atypical whitespace is cleaned out of dostrings (#2120) + +- Reflect the `--skip-magic-trailing-comma` and `--experimental-string-processing` flags + in the name of the cache file. Without this fix, changes in these flags would not take + effect if the cache had already been populated. (#2131) + +- Don't remove necessary parentheses from assignment expression containing assert / + return statements. (#2143) + +### _Packaging_ + +- Bump pathspec to >= 0.8.1 to solve invalid .gitignore exclusion handling + +## 21.4b0 + +### _Black_ + +- Fixed a rare but annoying formatting instability created by the combination of + optional trailing commas inserted by `Black` and optional parentheses looking at + pre-existing "magic" trailing commas. This fixes issue #1629 and all of its many many + duplicates. (#2126) + +- `Black` now processes one-line docstrings by stripping leading and trailing spaces, + and adding a padding space when needed to break up """". (#1740) + +- `Black` now cleans up leading non-breaking spaces in comments (#2092) + +- `Black` now respects `--skip-string-normalization` when normalizing multiline + docstring quotes (#1637) + +- `Black` no longer removes all empty lines between non-function code and decorators + when formatting typing stubs. Now `Black` enforces a single empty line. (#1646) + +- `Black` no longer adds an incorrect space after a parenthesized assignment expression + in if/while statements (#1655) + +- Added `--skip-magic-trailing-comma` / `-C` to avoid using trailing commas as a reason + to split lines (#1824) + +- fixed a crash when PWD=/ on POSIX (#1631) + +- fixed "I/O operation on closed file" when using --diff (#1664) + +- Prevent coloured diff output being interleaved with multiple files (#1673) + +- Added support for PEP 614 relaxed decorator syntax on python 3.9 (#1711) + +- Added parsing support for unparenthesized tuples and yield expressions in annotated + assignments (#1835) + +- added `--extend-exclude` argument (PR #2005) + +- speed up caching by avoiding pathlib (#1950) + +- `--diff` correctly indicates when a file doesn't end in a newline (#1662) + +- Added `--stdin-filename` argument to allow stdin to respect `--force-exclude` rules + (#1780) + +- Lines ending with `fmt: skip` will now be not formatted (#1800) + +- PR #2053: Black no longer relies on typed-ast for Python 3.8 and higher + +- PR #2053: Python 2 support is now optional, install with + `python3 -m pip install black[python2]` to maintain support. + +- Exclude `venv` directory by default (#1683) + +- Fixed "Black produced code that is not equivalent to the source" when formatting + Python 2 docstrings (#2037) + +### _Packaging_ + +- Self-contained native _Black_ binaries are now provided for releases via GitHub + Releases (#1743) + +## 20.8b1 + +### _Packaging_ + +- explicitly depend on Click 7.1.2 or newer as `Black` no longer works with versions + older than 7.0 + +## 20.8b0 + +### _Black_ + +- re-implemented support for explicit trailing commas: now it works consistently within + any bracket pair, including nested structures (#1288 and duplicates) + +- `Black` now reindents docstrings when reindenting code around it (#1053) + +- `Black` now shows colored diffs (#1266) + +- `Black` is now packaged using 'py3' tagged wheels (#1388) + +- `Black` now supports Python 3.8 code, e.g. star expressions in return statements + (#1121) + +- `Black` no longer normalizes capital R-string prefixes as those have a + community-accepted meaning (#1244) + +- `Black` now uses exit code 2 when specified configuration file doesn't exit (#1361) + +- `Black` now works on AWS Lambda (#1141) + +- added `--force-exclude` argument (#1032) + +- removed deprecated `--py36` option (#1236) + +- fixed `--diff` output when EOF is encountered (#526) + +- fixed `# fmt: off` handling around decorators (#560) + +- fixed unstable formatting with some `# type: ignore` comments (#1113) + +- fixed invalid removal on organizing brackets followed by indexing (#1575) + +- introduced `black-primer`, a CI tool that allows us to run regression tests against + existing open source users of Black (#1402) + +- introduced property-based fuzzing to our test suite based on Hypothesis and + Hypothersmith (#1566) + +- implemented experimental and disabled by default long string rewrapping (#1132), + hidden under a `--experimental-string-processing` flag while it's being worked on; + this is an undocumented and unsupported feature, you lose Internet points for + depending on it (#1609) + +### Vim plugin + +- prefer virtualenv packages over global packages (#1383) + +## 19.10b0 + +- added support for PEP 572 assignment expressions (#711) + +- added support for PEP 570 positional-only arguments (#943) + +- added support for async generators (#593) + +- added support for pre-splitting collections by putting an explicit trailing comma + inside (#826) + +- added `black -c` as a way to format code passed from the command line (#761) + +- --safe now works with Python 2 code (#840) + +- fixed grammar selection for Python 2-specific code (#765) + +- fixed feature detection for trailing commas in function definitions and call sites + (#763) + +- `# fmt: off`/`# fmt: on` comment pairs placed multiple times within the same block of + code now behave correctly (#1005) + +- _Black_ no longer crashes on Windows machines with more than 61 cores (#838) + +- _Black_ no longer crashes on standalone comments prepended with a backslash (#767) + +- _Black_ no longer crashes on `from` ... `import` blocks with comments (#829) + +- _Black_ no longer crashes on Python 3.7 on some platform configurations (#494) + +- _Black_ no longer fails on comments in from-imports (#671) + +- _Black_ no longer fails when the file starts with a backslash (#922) + +- _Black_ no longer merges regular comments with type comments (#1027) + +- _Black_ no longer splits long lines that contain type comments (#997) + +- removed unnecessary parentheses around `yield` expressions (#834) + +- added parentheses around long tuples in unpacking assignments (#832) + +- added parentheses around complex powers when they are prefixed by a unary operator + (#646) + +- fixed bug that led _Black_ format some code with a line length target of 1 (#762) + +- _Black_ no longer introduces quotes in f-string subexpressions on string boundaries + (#863) + +- if _Black_ puts parenthesis around a single expression, it moves comments to the + wrapped expression instead of after the brackets (#872) + +- `blackd` now returns the version of _Black_ in the response headers (#1013) + +- `blackd` can now output the diff of formats on source code when the `X-Diff` header is + provided (#969) + +## 19.3b0 + +- new option `--target-version` to control which Python versions _Black_-formatted code + should target (#618) + +- deprecated `--py36` (use `--target-version=py36` instead) (#724) + +- _Black_ no longer normalizes numeric literals to include `_` separators (#696) + +- long `del` statements are now split into multiple lines (#698) + +- type comments are no longer mangled in function signatures + +- improved performance of formatting deeply nested data structures (#509) + +- _Black_ now properly formats multiple files in parallel on Windows (#632) + +- _Black_ now creates cache files atomically which allows it to be used in parallel + pipelines (like `xargs -P8`) (#673) + +- _Black_ now correctly indents comments in files that were previously formatted with + tabs (#262) + +- `blackd` now supports CORS (#622) + +## 18.9b0 + +- numeric literals are now formatted by _Black_ (#452, #461, #464, #469): + + - numeric literals are normalized to include `_` separators on Python 3.6+ code + + - added `--skip-numeric-underscore-normalization` to disable the above behavior and + leave numeric underscores as they were in the input + + - code with `_` in numeric literals is recognized as Python 3.6+ + + - most letters in numeric literals are lowercased (e.g., in `1e10`, `0x01`) + + - hexadecimal digits are always uppercased (e.g. `0xBADC0DE`) + +- added `blackd`, see + [its documentation](https://github.com/psf/black/blob/18.9b0/README.md#blackd) for + more info (#349) + +- adjacent string literals are now correctly split into multiple lines (#463) + +- trailing comma is now added to single imports that don't fit on a line (#250) + +- cache is now populated when `--check` is successful for a file which speeds up + consecutive checks of properly formatted unmodified files (#448) + +- whitespace at the beginning of the file is now removed (#399) + +- fixed mangling [pweave](http://mpastell.com/pweave/) and + [Spyder IDE](https://www.spyder-ide.org/) special comments (#532) + +- fixed unstable formatting when unpacking big tuples (#267) + +- fixed parsing of `__future__` imports with renames (#389) + +- fixed scope of `# fmt: off` when directly preceding `yield` and other nodes (#385) + +- fixed formatting of lambda expressions with default arguments (#468) + +- fixed `async for` statements: _Black_ no longer breaks them into separate lines (#372) + +- note: the Vim plugin stopped registering `,=` as a default chord as it turned out to + be a bad idea (#415) + +## 18.6b4 + +- hotfix: don't freeze when multiple comments directly precede `# fmt: off` (#371) + +## 18.6b3 + +- typing stub files (`.pyi`) now have blank lines added after constants (#340) + +- `# fmt: off` and `# fmt: on` are now much more dependable: + + - they now work also within bracket pairs (#329) + + - they now correctly work across function/class boundaries (#335) + + - they now work when an indentation block starts with empty lines or misaligned + comments (#334) + +- made Click not fail on invalid environments; note that Click is right but the + likelihood we'll need to access non-ASCII file paths when dealing with Python source + code is low (#277) + +- fixed improper formatting of f-strings with quotes inside interpolated expressions + (#322) + +- fixed unnecessary slowdown when long list literals where found in a file + +- fixed unnecessary slowdown on AST nodes with very many siblings + +- fixed cannibalizing backslashes during string normalization + +- fixed a crash due to symbolic links pointing outside of the project directory (#338) + +## 18.6b2 + +- added `--config` (#65) + +- added `-h` equivalent to `--help` (#316) + +- fixed improper unmodified file caching when `-S` was used + +- fixed extra space in string unpacking (#305) + +- fixed formatting of empty triple quoted strings (#313) + +- fixed unnecessary slowdown in comment placement calculation on lines without comments + +## 18.6b1 + +- hotfix: don't output human-facing information on stdout (#299) + +- hotfix: don't output cake emoji on non-zero return code (#300) + +## 18.6b0 + +- added `--include` and `--exclude` (#270) + +- added `--skip-string-normalization` (#118) + +- added `--verbose` (#283) + +- the header output in `--diff` now actually conforms to the unified diff spec + +- fixed long trivial assignments being wrapped in unnecessary parentheses (#273) + +- fixed unnecessary parentheses when a line contained multiline strings (#232) + +- fixed stdin handling not working correctly if an old version of Click was used (#276) + +- _Black_ now preserves line endings when formatting a file in place (#258) + +## 18.5b1 + +- added `--pyi` (#249) + +- added `--py36` (#249) + +- Python grammar pickle caches are stored with the formatting caches, making _Black_ + work in environments where site-packages is not user-writable (#192) + +- _Black_ now enforces a PEP 257 empty line after a class-level docstring (and/or + fields) and the first method + +- fixed invalid code produced when standalone comments were present in a trailer that + was omitted from line splitting on a large expression (#237) + +- fixed optional parentheses being removed within `# fmt: off` sections (#224) + +- fixed invalid code produced when stars in very long imports were incorrectly wrapped + in optional parentheses (#234) + +- fixed unstable formatting when inline comments were moved around in a trailer that was + omitted from line splitting on a large expression (#238) + +- fixed extra empty line between a class declaration and the first method if no class + docstring or fields are present (#219) + +- fixed extra empty line between a function signature and an inner function or inner + class (#196) + +## 18.5b0 + +- call chains are now formatted according to the + [fluent interfaces](https://en.wikipedia.org/wiki/Fluent_interface) style (#67) + +- data structure literals (tuples, lists, dictionaries, and sets) are now also always + exploded like imports when they don't fit in a single line (#152) + +- slices are now formatted according to PEP 8 (#178) + +- parentheses are now also managed automatically on the right-hand side of assignments + and return statements (#140) + +- math operators now use their respective priorities for delimiting multiline + expressions (#148) + +- optional parentheses are now omitted on expressions that start or end with a bracket + and only contain a single operator (#177) + +- empty parentheses in a class definition are now removed (#145, #180) + +- string prefixes are now standardized to lowercase and `u` is removed on Python 3.6+ + only code and Python 2.7+ code with the `unicode_literals` future import (#188, #198, + #199) + +- typing stub files (`.pyi`) are now formatted in a style that is consistent with PEP + 484 (#207, #210) + +- progress when reformatting many files is now reported incrementally + +- fixed trailers (content with brackets) being unnecessarily exploded into their own + lines after a dedented closing bracket (#119) + +- fixed an invalid trailing comma sometimes left in imports (#185) + +- fixed non-deterministic formatting when multiple pairs of removable parentheses were + used (#183) + +- fixed multiline strings being unnecessarily wrapped in optional parentheses in long + assignments (#215) + +- fixed not splitting long from-imports with only a single name + +- fixed Python 3.6+ file discovery by also looking at function calls with unpacking. + This fixed non-deterministic formatting if trailing commas where used both in function + signatures with stars and function calls with stars but the former would be + reformatted to a single line. + +- fixed crash on dealing with optional parentheses (#193) + +- fixed "is", "is not", "in", and "not in" not considered operators for splitting + purposes + +- fixed crash when dead symlinks where encountered + +## 18.4a4 + +- don't populate the cache on `--check` (#175) + +## 18.4a3 + +- added a "cache"; files already reformatted that haven't changed on disk won't be + reformatted again (#109) + +- `--check` and `--diff` are no longer mutually exclusive (#149) + +- generalized star expression handling, including double stars; this fixes + multiplication making expressions "unsafe" for trailing commas (#132) + +- _Black_ no longer enforces putting empty lines behind control flow statements (#90) + +- _Black_ now splits imports like "Mode 3 + trailing comma" of isort (#127) + +- fixed comment indentation when a standalone comment closes a block (#16, #32) + +- fixed standalone comments receiving extra empty lines if immediately preceding a + class, def, or decorator (#56, #154) + +- fixed `--diff` not showing entire path (#130) + +- fixed parsing of complex expressions after star and double stars in function calls + (#2) + +- fixed invalid splitting on comma in lambda arguments (#133) + +- fixed missing splits of ternary expressions (#141) + +## 18.4a2 + +- fixed parsing of unaligned standalone comments (#99, #112) + +- fixed placement of dictionary unpacking inside dictionary literals (#111) + +- Vim plugin now works on Windows, too + +- fixed unstable formatting when encountering unnecessarily escaped quotes in a string + (#120) + +## 18.4a1 + +- added `--quiet` (#78) + +- added automatic parentheses management (#4) + +- added [pre-commit](https://pre-commit.com) integration (#103, #104) + +- fixed reporting on `--check` with multiple files (#101, #102) + +- fixed removing backslash escapes from raw strings (#100, #105) + +## 18.4a0 + +- added `--diff` (#87) + +- add line breaks before all delimiters, except in cases like commas, to better comply + with PEP 8 (#73) + +- standardize string literals to use double quotes (almost) everywhere (#75) + +- fixed handling of standalone comments within nested bracketed expressions; _Black_ + will no longer produce super long lines or put all standalone comments at the end of + the expression (#22) + +- fixed 18.3a4 regression: don't crash and burn on empty lines with trailing whitespace + (#80) + +- fixed 18.3a4 regression: `# yapf: disable` usage as trailing comment would cause + _Black_ to not emit the rest of the file (#95) + +- when CTRL+C is pressed while formatting many files, _Black_ no longer freaks out with + a flurry of asyncio-related exceptions + +- only allow up to two empty lines on module level and only single empty lines within + functions (#74) + +## 18.3a4 + +- `# fmt: off` and `# fmt: on` are implemented (#5) + +- automatic detection of deprecated Python 2 forms of print statements and exec + statements in the formatted file (#49) + +- use proper spaces for complex expressions in default values of typed function + arguments (#60) + +- only return exit code 1 when --check is used (#50) + +- don't remove single trailing commas from square bracket indexing (#59) + +- don't omit whitespace if the previous factor leaf wasn't a math operator (#55) + +- omit extra space in kwarg unpacking if it's the first argument (#46) + +- omit extra space in + [Sphinx auto-attribute comments](http://www.sphinx-doc.org/en/stable/ext/autodoc.html#directive-autoattribute) + (#68) + +## 18.3a3 + +- don't remove single empty lines outside of bracketed expressions (#19) + +- added ability to pipe formatting from stdin to stdin (#25) + +- restored ability to format code with legacy usage of `async` as a name (#20, #42) + +- even better handling of numpy-style array indexing (#33, again) + +## 18.3a2 + +- changed positioning of binary operators to occur at beginning of lines instead of at + the end, following + [a recent change to PEP 8](https://github.com/python/peps/commit/c59c4376ad233a62ca4b3a6060c81368bd21e85b) + (#21) + +- ignore empty bracket pairs while splitting. This avoids very weirdly looking + formattings (#34, #35) + +- remove a trailing comma if there is a single argument to a call + +- if top level functions were separated by a comment, don't put four empty lines after + the upper function + +- fixed unstable formatting of newlines with imports + +- fixed unintentional folding of post scriptum standalone comments into last statement + if it was a simple statement (#18, #28) + +- fixed missing space in numpy-style array indexing (#33) + +- fixed spurious space after star-based unary expressions (#31) + +## 18.3a1 + +- added `--check` + +- only put trailing commas in function signatures and calls if it's safe to do so. If + the file is Python 3.6+ it's always safe, otherwise only safe if there are no `*args` + or `**kwargs` used in the signature or call. (#8) + +- fixed invalid spacing of dots in relative imports (#6, #13) + +- fixed invalid splitting after comma on unpacked variables in for-loops (#23) + +- fixed spurious space in parenthesized set expressions (#7) + +- fixed spurious space after opening parentheses and in default arguments (#14, #17) + +- fixed spurious space after unary operators when the operand was a complex expression + (#15) + +## 18.3a0 + +- first published version, Happy 🍰 Day 2018! + +- alpha quality + +- date-versioned (see: ) diff --git a/venv/lib/python3.12/site-packages/black-24.8.1.dev4+g699b45a.dist-info/RECORD b/venv/lib/python3.12/site-packages/black-24.8.1.dev4+g699b45a.dist-info/RECORD new file mode 100644 index 0000000000..4716711ee7 --- /dev/null +++ b/venv/lib/python3.12/site-packages/black-24.8.1.dev4+g699b45a.dist-info/RECORD @@ -0,0 +1,99 @@ +../../../bin/black,sha256=2DzxbRk-VNE9p1oTXXYMjHy36VsB-H9n7Gi2YC8QGPE,254 +../../../bin/blackd,sha256=ae0_jMozTBgQApvSWMnX0vROcum0_mzW3XbJvHEcd6o,255 +__pycache__/_black_version.cpython-312.pyc,, +_black_version.py,sha256=OQxBOcxg4aIWqBEM5vzESXByl9gOT8sW3IqG8dGTJzg,33 +black-24.8.1.dev4+g699b45a.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +black-24.8.1.dev4+g699b45a.dist-info/METADATA,sha256=LGMINu0gxOKvAhIz5dEC9YjRqVfUq2xQ5VgOU1VrVr8,79063 +black-24.8.1.dev4+g699b45a.dist-info/RECORD,, +black-24.8.1.dev4+g699b45a.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +black-24.8.1.dev4+g699b45a.dist-info/WHEEL,sha256=1yFddiXMmvYK7QYTqtRNtX66WJ0Mz8PYEiEUoOUUxRY,87 +black-24.8.1.dev4+g699b45a.dist-info/direct_url.json,sha256=h_OlgryfcFWldM_zNzXDmsaOoQNjqj0NLKFZsvZ2r-Q,124 +black-24.8.1.dev4+g699b45a.dist-info/entry_points.txt,sha256=XTCA4X2yVA0tMiV7l96Gv9TyxhVhoCaznLN2XThqYSA,144 +black-24.8.1.dev4+g699b45a.dist-info/licenses/AUTHORS.md,sha256=q4LhA36Sf7X6e5xzVq7dFClyVKdxK2z7gpos_YsGrIg,8149 +black-24.8.1.dev4+g699b45a.dist-info/licenses/LICENSE,sha256=nAQo8MO0d5hQz1vZbhGqqK_HLUqG1KNiI9erouWNbgA,1080 +black/__init__.py,sha256=XV5ft9pudPRwoZDq9dH2Ytz4X-Ggi8_AzPu-tWMrp7U,51931 +black/__main__.py,sha256=mogeA4o9zt4w-ufKvaQjSEhtSgQkcMVLK9ChvdB5wH8,47 +black/__pycache__/__init__.cpython-312.pyc,, +black/__pycache__/__main__.cpython-312.pyc,, +black/__pycache__/_width_table.cpython-312.pyc,, +black/__pycache__/brackets.cpython-312.pyc,, +black/__pycache__/cache.cpython-312.pyc,, +black/__pycache__/comments.cpython-312.pyc,, +black/__pycache__/concurrency.cpython-312.pyc,, +black/__pycache__/const.cpython-312.pyc,, +black/__pycache__/debug.cpython-312.pyc,, +black/__pycache__/files.cpython-312.pyc,, +black/__pycache__/handle_ipynb_magics.cpython-312.pyc,, +black/__pycache__/linegen.cpython-312.pyc,, +black/__pycache__/lines.cpython-312.pyc,, +black/__pycache__/mode.cpython-312.pyc,, +black/__pycache__/nodes.cpython-312.pyc,, +black/__pycache__/numerics.cpython-312.pyc,, +black/__pycache__/output.cpython-312.pyc,, +black/__pycache__/parsing.cpython-312.pyc,, +black/__pycache__/ranges.cpython-312.pyc,, +black/__pycache__/report.cpython-312.pyc,, +black/__pycache__/rusty.cpython-312.pyc,, +black/__pycache__/schema.cpython-312.pyc,, +black/__pycache__/strings.cpython-312.pyc,, +black/__pycache__/trans.cpython-312.pyc,, +black/_width_table.py,sha256=2lSnE4s_nVXXfIj9hP2qWASqX8I003WxBM5xPnelDrQ,10761 +black/brackets.py,sha256=vSDU10V3cCzAqYO-XE9pztRUx49AlafLRCECApzGzsw,12426 +black/cache.py,sha256=5wXB2noRzTIfp4Fm_XFu2GyX3kxcHDzwVtwKv4UY2BM,4835 +black/comments.py,sha256=dSIqgzUcifTIFtHItqoc_nbIQ7c0iqlo33qlfMkhnFs,15955 +black/concurrency.py,sha256=oyFRSg5wisTi2dNLKig6Cm7R2uHWVwkfLbI6pCZRNCo,6410 +black/const.py,sha256=U7cDnhWljmrieOtPBUdO2Vcz69J_VXB6-Br94wuCVuo,321 +black/debug.py,sha256=HmpJna5KhwLpgQkqEGR2FX6GRmJ2tFh4Jl6X2aMR3ak,1906 +black/files.py,sha256=in6cgdXtj53ciWr9Sam8rOZos_J35OQvvLB91c0WGWw,14863 +black/handle_ipynb_magics.py,sha256=p51lHEjvNoTzLtQuSLoLVCv_EuSeZ22ZyiB-KS5QybQ,13404 +black/linegen.py,sha256=jF3fvDeyYvkF1Kd7MhorYj_p1-uxQ8osHKC7byN2VTA,69374 +black/lines.py,sha256=ncrM1J5V_soPNe3ZKC8EsProWBtglAM3i-5iwkWu_l8,39492 +black/mode.py,sha256=jcyx0eH4_sGCpAffl-hEEQSlo6miJRdaIdhWG7Jao8s,9313 +black/nodes.py,sha256=yKfYbhW6vxU6HUebZP5v9xSTEx2WWZ4HRenpvhlo9lA,29742 +black/numerics.py,sha256=xRGnTSdMVbTaA9IGechc8JM-cIuJGCc326s71hkXJIw,1655 +black/output.py,sha256=hhk6746lZBMbGuJ1VLgjl_Jrn7Yvb24ZBFaCfpO_ijM,3939 +black/parsing.py,sha256=R1ActEaqZWI-UrwNTSn3FVuBDQWl674somlnIqC_hSQ,8428 +black/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +black/ranges.py,sha256=EHKl3_aswNmDw4AMq9GZ3PVvBo42nC0RU5ZVMt4RdzU,19695 +black/report.py,sha256=igkNi8iR5FqSa1sXddS-HnoqW7Cq7PveCmFCfd-pN6w,3452 +black/resources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +black/resources/__pycache__/__init__.cpython-312.pyc,, +black/resources/black.schema.json,sha256=Y6N2HBCLAsfchkg52rQsBBRJhEeQ4BVFp_tQGLc7Jik,7452 +black/rusty.py,sha256=4LKo3KTUWYZ2cN6QKmwwZVbsCNt2fpu5lzue2V-uxIA,557 +black/schema.py,sha256=PiSQ5HSrqFmduqC_2_-T_-5GQ8Fr-IDYG6kbyiC_OyY,617 +black/strings.py,sha256=9S1jnAXm8iDlN-gSlBFN8A7QWu8fxtysX6DBhWcwEek,13172 +black/trans.py,sha256=soTQm8RpSKR9nNePsK5a4iocTaE0Dwciw70iRKqz8a8,95476 +blackd/__init__.py,sha256=Xqqesi8iCAtLvZSQ-DDahAi6xZAxUthexvFKC-8zFvg,8867 +blackd/__main__.py,sha256=L4xAcDh1K5zb6SsJB102AewW2G13P9-w2RiEwuFj8WA,37 +blackd/__pycache__/__init__.cpython-312.pyc,, +blackd/__pycache__/__main__.cpython-312.pyc,, +blackd/__pycache__/middlewares.cpython-312.pyc,, +blackd/middlewares.py,sha256=C2wzp2lKA4PMW6vJ8tUPh_mgwsDWT52yPy4GWSvvak8,1765 +blib2to3/Grammar.txt,sha256=zjM1rSC9GJjnboYyRDZyKx2IPWDkscVdodwQpDCs4So,11700 +blib2to3/LICENSE,sha256=V4mIG4rrnJH1g19bt8q-hKD-zUuyvi9UyeaVenjseZ0,12762 +blib2to3/PatternGrammar.txt,sha256=7lul2ztnIqDi--JWDrwciD5yMo75w7TaHHxdHMZJvOM,793 +blib2to3/README,sha256=QYZYIfb1NXTTYqDV4kn8oRcNG_qlTFYH1sr3V1h65ko,1074 +blib2to3/__init__.py,sha256=9_8wL9Scv8_Cs8HJyJHGvx1vwXErsuvlsAqNZLcJQR0,8 +blib2to3/__pycache__/__init__.cpython-312.pyc,, +blib2to3/__pycache__/pygram.cpython-312.pyc,, +blib2to3/__pycache__/pytree.cpython-312.pyc,, +blib2to3/pgen2/__init__.py,sha256=hY6w9QUzvTvRb-MoFfd_q_7ZLt6IUHC2yxWCfsZupQA,143 +blib2to3/pgen2/__pycache__/__init__.cpython-312.pyc,, +blib2to3/pgen2/__pycache__/conv.cpython-312.pyc,, +blib2to3/pgen2/__pycache__/driver.cpython-312.pyc,, +blib2to3/pgen2/__pycache__/grammar.cpython-312.pyc,, +blib2to3/pgen2/__pycache__/literals.cpython-312.pyc,, +blib2to3/pgen2/__pycache__/parse.cpython-312.pyc,, +blib2to3/pgen2/__pycache__/pgen.cpython-312.pyc,, +blib2to3/pgen2/__pycache__/token.cpython-312.pyc,, +blib2to3/pgen2/__pycache__/tokenize.cpython-312.pyc,, +blib2to3/pgen2/conv.py,sha256=vH8a_gkalWRNxuNPRxkoigw8_UobdHHSw-PyUcUuH8I,9587 +blib2to3/pgen2/driver.py,sha256=hvycxhuy9IwXGs21qVKigEo74QGV_M1ZIPB9mFXjN58,10832 +blib2to3/pgen2/grammar.py,sha256=6-wFBNM1I2rsnzfDfWeRNjfNYh4Raj_fb8cZX_FByUU,6865 +blib2to3/pgen2/literals.py,sha256=_LyRryELzqarFkW3OAEZzZ-yppCTm9g0mjqqQ2XygKE,1614 +blib2to3/pgen2/parse.py,sha256=mIGZ9BxV_G7jAjcwWefKomNGB8CfUPXqjZKQxH_fuuc,15658 +blib2to3/pgen2/pgen.py,sha256=iQH8W999TKUT5AhuOpW38ZynwSACkVNV-I6z8kyQozY,15428 +blib2to3/pgen2/token.py,sha256=Xubq2lWE3gQ7PdUikcTL6_AWDk1OWhyw_Eb9xue4XJU,1899 +blib2to3/pgen2/tokenize.py,sha256=OXfFCgOVmIdvjLD17n_sNkouXst4KeFq5NSxGHWpKWw,41520 +blib2to3/pygram.py,sha256=l2qw7mw8I533KGWAXUFCXPGCN5F66hvYg86g-EA9GEg,4915 +blib2to3/pytree.py,sha256=mYKS_Py2zDhT815ZvlDy9kkRQ6PanRJIhR6R6AiBBIk,32666 diff --git a/venv/lib/python3.12/site-packages/black-24.8.1.dev4+g699b45a.dist-info/REQUESTED b/venv/lib/python3.12/site-packages/black-24.8.1.dev4+g699b45a.dist-info/REQUESTED new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/black-24.8.1.dev4+g699b45a.dist-info/WHEEL b/venv/lib/python3.12/site-packages/black-24.8.1.dev4+g699b45a.dist-info/WHEEL new file mode 100644 index 0000000000..cdd68a497c --- /dev/null +++ b/venv/lib/python3.12/site-packages/black-24.8.1.dev4+g699b45a.dist-info/WHEEL @@ -0,0 +1,4 @@ +Wheel-Version: 1.0 +Generator: hatchling 1.25.0 +Root-Is-Purelib: true +Tag: py3-none-any diff --git a/venv/lib/python3.12/site-packages/black-24.8.1.dev4+g699b45a.dist-info/direct_url.json b/venv/lib/python3.12/site-packages/black-24.8.1.dev4+g699b45a.dist-info/direct_url.json new file mode 100644 index 0000000000..ab6c4dfcd5 --- /dev/null +++ b/venv/lib/python3.12/site-packages/black-24.8.1.dev4+g699b45a.dist-info/direct_url.json @@ -0,0 +1 @@ +{"url": "https://github.com/psf/black", "vcs_info": {"commit_id": "699b45aef7c05cbec25019ed3c990f97e8b3c944", "vcs": "git"}} \ No newline at end of file diff --git a/venv/lib/python3.12/site-packages/black-24.8.1.dev4+g699b45a.dist-info/entry_points.txt b/venv/lib/python3.12/site-packages/black-24.8.1.dev4+g699b45a.dist-info/entry_points.txt new file mode 100644 index 0000000000..864da49beb --- /dev/null +++ b/venv/lib/python3.12/site-packages/black-24.8.1.dev4+g699b45a.dist-info/entry_points.txt @@ -0,0 +1,6 @@ +[console_scripts] +black = black:patched_main +blackd = blackd:patched_main [d] + +[validate_pyproject.tool_schema] +black = black.schema:get_schema diff --git a/venv/lib/python3.12/site-packages/black-24.8.1.dev4+g699b45a.dist-info/licenses/AUTHORS.md b/venv/lib/python3.12/site-packages/black-24.8.1.dev4+g699b45a.dist-info/licenses/AUTHORS.md new file mode 100644 index 0000000000..fa1ce8f711 --- /dev/null +++ b/venv/lib/python3.12/site-packages/black-24.8.1.dev4+g699b45a.dist-info/licenses/AUTHORS.md @@ -0,0 +1,197 @@ +# Authors + +Glued together by [Łukasz Langa](mailto:lukasz@langa.pl). + +Maintained with: + +- [Carol Willing](mailto:carolcode@willingconsulting.com) +- [Carl Meyer](mailto:carl@oddbird.net) +- [Jelle Zijlstra](mailto:jelle.zijlstra@gmail.com) +- [Mika Naylor](mailto:mail@autophagy.io) +- [Zsolt Dollenstein](mailto:zsol.zsol@gmail.com) +- [Cooper Lees](mailto:me@cooperlees.com) +- [Richard Si](mailto:sichard26@gmail.com) +- [Felix Hildén](mailto:felix.hilden@gmail.com) +- [Batuhan Taskaya](mailto:batuhan@python.org) +- [Shantanu Jain](mailto:hauntsaninja@gmail.com) + +Multiple contributions by: + +- [Abdur-Rahmaan Janhangeer](mailto:arj.python@gmail.com) +- [Adam Johnson](mailto:me@adamj.eu) +- [Adam Williamson](mailto:adamw@happyassassin.net) +- [Alexander Huynh](mailto:ahrex-gh-psf-black@e.sc) +- [Alexandr Artemyev](mailto:mogost@gmail.com) +- [Alex Vandiver](mailto:github@chmrr.net) +- [Allan Simon](mailto:allan.simon@supinfo.com) +- Anders-Petter Ljungquist +- [Amethyst Reese](mailto:amy@n7.gg) +- [Andrew Thorp](mailto:andrew.thorp.dev@gmail.com) +- [Andrew Zhou](mailto:andrewfzhou@gmail.com) +- [Andrey](mailto:dyuuus@yandex.ru) +- [Andy Freeland](mailto:andy@andyfreeland.net) +- [Anthony Sottile](mailto:asottile@umich.edu) +- [Antonio Ossa Guerra](mailto:aaossa+black@uc.cl) +- [Arjaan Buijk](mailto:arjaan.buijk@gmail.com) +- [Arnav Borbornah](mailto:arnavborborah11@gmail.com) +- [Artem Malyshev](mailto:proofit404@gmail.com) +- [Asger Hautop Drewsen](mailto:asgerdrewsen@gmail.com) +- [Augie Fackler](mailto:raf@durin42.com) +- [Aviskar KC](mailto:aviskarkc10@gmail.com) +- Batuhan Taşkaya +- [Benjamin Wohlwend](mailto:bw@piquadrat.ch) +- [Benjamin Woodruff](mailto:github@benjam.info) +- [Bharat Raghunathan](mailto:bharatraghunthan9767@gmail.com) +- [Brandt Bucher](mailto:brandtbucher@gmail.com) +- [Brett Cannon](mailto:brett@python.org) +- [Bryan Bugyi](mailto:bryan.bugyi@rutgers.edu) +- [Bryan Forbes](mailto:bryan@reigndropsfall.net) +- [Calum Lind](mailto:calumlind@gmail.com) +- [Charles](mailto:peacech@gmail.com) +- Charles Reid +- [Christian Clauss](mailto:cclauss@bluewin.ch) +- [Christian Heimes](mailto:christian@python.org) +- [Chuck Wooters](mailto:chuck.wooters@microsoft.com) +- [Chris Rose](mailto:offline@offby1.net) +- Codey Oxley +- [Cong](mailto:congusbongus@gmail.com) +- [Cooper Ry Lees](mailto:me@cooperlees.com) +- [Dan Davison](mailto:dandavison7@gmail.com) +- [Daniel Hahler](mailto:github@thequod.de) +- [Daniel M. Capella](mailto:polycitizen@gmail.com) +- Daniele Esposti +- [David Hotham](mailto:david.hotham@metaswitch.com) +- [David Lukes](mailto:dafydd.lukes@gmail.com) +- [David Szotten](mailto:davidszotten@gmail.com) +- [Denis Laxalde](mailto:denis@laxalde.org) +- [Douglas Thor](mailto:dthor@transphormusa.com) +- dylanjblack +- [Eli Treuherz](mailto:eli@treuherz.com) +- [Emil Hessman](mailto:emil@hessman.se) +- [Felix Kohlgrüber](mailto:felix.kohlgrueber@gmail.com) +- [Florent Thiery](mailto:fthiery@gmail.com) +- Francisco +- [Giacomo Tagliabue](mailto:giacomo.tag@gmail.com) +- [Greg Gandenberger](mailto:ggandenberger@shoprunner.com) +- [Gregory P. Smith](mailto:greg@krypto.org) +- Gustavo Camargo +- hauntsaninja +- [Hadi Alqattan](mailto:alqattanhadizaki@gmail.com) +- [Hassan Abouelela](mailto:hassan@hassanamr.com) +- [Heaford](mailto:dan@heaford.com) +- [Hugo Barrera](mailto::hugo@barrera.io) +- Hugo van Kemenade +- [Hynek Schlawack](mailto:hs@ox.cx) +- [Ionite](mailto:dev@ionite.io) +- [Ivan Katanić](mailto:ivan.katanic@gmail.com) +- [Jakub Kadlubiec](mailto:jakub.kadlubiec@skyscanner.net) +- [Jakub Warczarek](mailto:jakub.warczarek@gmail.com) +- [Jan Hnátek](mailto:jan.hnatek@gmail.com) +- [Jason Fried](mailto:me@jasonfried.info) +- [Jason Friedland](mailto:jason@friedland.id.au) +- [jgirardet](mailto:ijkl@netc.fr) +- Jim Brännlund +- [Jimmy Jia](mailto:tesrin@gmail.com) +- [Joe Antonakakis](mailto:jma353@cornell.edu) +- [Jon Dufresne](mailto:jon.dufresne@gmail.com) +- [Jonas Obrist](mailto:ojiidotch@gmail.com) +- [Jonty Wareing](mailto:jonty@jonty.co.uk) +- [Jose Nazario](mailto:jose.monkey.org@gmail.com) +- [Joseph Larson](mailto:larson.joseph@gmail.com) +- [Josh Bode](mailto:joshbode@fastmail.com) +- [Josh Holland](mailto:anowlcalledjosh@gmail.com) +- [Joshua Cannon](mailto:joshdcannon@gmail.com) +- [José Padilla](mailto:jpadilla@webapplicate.com) +- [Juan Luis Cano Rodríguez](mailto:hello@juanlu.space) +- [kaiix](mailto:kvn.hou@gmail.com) +- [Katie McLaughlin](mailto:katie@glasnt.com) +- Katrin Leinweber +- [Keith Smiley](mailto:keithbsmiley@gmail.com) +- [Kenyon Ralph](mailto:kenyon@kenyonralph.com) +- [Kevin Kirsche](mailto:Kev.Kirsche+GitHub@gmail.com) +- [Kyle Hausmann](mailto:kyle.hausmann@gmail.com) +- [Kyle Sunden](mailto:sunden@wisc.edu) +- Lawrence Chan +- [Linus Groh](mailto:mail@linusgroh.de) +- [Loren Carvalho](mailto:comradeloren@gmail.com) +- [Luka Sterbic](mailto:luka.sterbic@gmail.com) +- [LukasDrude](mailto:mail@lukas-drude.de) +- Mahmoud Hossam +- Mariatta +- [Matt VanEseltine](mailto:vaneseltine@gmail.com) +- [Matthew Clapp](mailto:itsayellow+dev@gmail.com) +- [Matthew Walster](mailto:matthew@walster.org) +- Max Smolens +- [Michael Aquilina](mailto:michaelaquilina@gmail.com) +- [Michael Flaxman](mailto:michael.flaxman@gmail.com) +- [Michael J. Sullivan](mailto:sully@msully.net) +- [Michael McClimon](mailto:michael@mcclimon.org) +- [Miguel Gaiowski](mailto:miggaiowski@gmail.com) +- [Mike](mailto:roshi@fedoraproject.org) +- [mikehoyio](mailto:mikehoy@gmail.com) +- [Min ho Kim](mailto:minho42@gmail.com) +- [Miroslav Shubernetskiy](mailto:miroslav@miki725.com) +- MomIsBestFriend +- [Nathan Goldbaum](mailto:ngoldbau@illinois.edu) +- [Nathan Hunt](mailto:neighthan.hunt@gmail.com) +- [Neraste](mailto:neraste.herr10@gmail.com) +- [Nikolaus Waxweiler](mailto:madigens@gmail.com) +- [Ofek Lev](mailto:ofekmeister@gmail.com) +- [Osaetin Daniel](mailto:osaetindaniel@gmail.com) +- [otstrel](mailto:otstrel@gmail.com) +- [Pablo Galindo](mailto:Pablogsal@gmail.com) +- [Paul Ganssle](mailto:p.ganssle@gmail.com) +- [Paul Meinhardt](mailto:mnhrdt@gmail.com) +- [Peter Bengtsson](mailto:mail@peterbe.com) +- [Peter Grayson](mailto:pete@jpgrayson.net) +- [Peter Stensmyr](mailto:peter.stensmyr@gmail.com) +- pmacosta +- [Quentin Pradet](mailto:quentin@pradet.me) +- [Ralf Schmitt](mailto:ralf@systemexit.de) +- [Ramón Valles](mailto:mroutis@protonmail.com) +- [Richard Fearn](mailto:richardfearn@gmail.com) +- [Rishikesh Jha](mailto:rishijha424@gmail.com) +- [Rupert Bedford](mailto:rupert@rupertb.com) +- Russell Davis +- [Sagi Shadur](mailto:saroad2@gmail.com) +- [Rémi Verschelde](mailto:rverschelde@gmail.com) +- [Sami Salonen](mailto:sakki@iki.fi) +- [Samuel Cormier-Iijima](mailto:samuel@cormier-iijima.com) +- [Sanket Dasgupta](mailto:sanketdasgupta@gmail.com) +- Sergi +- [Scott Stevenson](mailto:scott@stevenson.io) +- Shantanu +- [shaoran](mailto:shaoran@sakuranohana.org) +- [Shinya Fujino](mailto:shf0811@gmail.com) +- springstan +- [Stavros Korokithakis](mailto:hi@stavros.io) +- [Stephen Rosen](mailto:sirosen@globus.org) +- [Steven M. Vascellaro](mailto:S.Vascellaro@gmail.com) +- [Sunil Kapil](mailto:snlkapil@gmail.com) +- [Sébastien Eustace](mailto:sebastien.eustace@gmail.com) +- [Tal Amuyal](mailto:TalAmuyal@gmail.com) +- [Terrance](mailto:git@terrance.allofti.me) +- [Thom Lu](mailto:thomas.c.lu@gmail.com) +- [Thomas Grainger](mailto:tagrain@gmail.com) +- [Tim Gates](mailto:tim.gates@iress.com) +- [Tim Swast](mailto:swast@google.com) +- [Timo](mailto:timo_tk@hotmail.com) +- Toby Fleming +- [Tom Christie](mailto:tom@tomchristie.com) +- [Tony Narlock](mailto:tony@git-pull.com) +- [Tsuyoshi Hombashi](mailto:tsuyoshi.hombashi@gmail.com) +- [Tushar Chandra](mailto:tusharchandra2018@u.northwestern.edu) +- [Tushar Sadhwani](mailto:tushar.sadhwani000@gmail.com) +- [Tzu-ping Chung](mailto:uranusjr@gmail.com) +- [Utsav Shah](mailto:ukshah2@illinois.edu) +- utsav-dbx +- vezeli +- [Ville Skyttä](mailto:ville.skytta@iki.fi) +- [Vishwas B Sharma](mailto:sharma.vishwas88@gmail.com) +- [Vlad Emelianov](mailto:volshebnyi@gmail.com) +- [williamfzc](mailto:178894043@qq.com) +- [wouter bolsterlee](mailto:wouter@bolsterl.ee) +- Yazdan +- [Yngve Høiseth](mailto:yngve@hoiseth.net) +- [Yurii Karabas](mailto:1998uriyyo@gmail.com) +- [Zac Hatfield-Dodds](mailto:zac@zhd.dev) diff --git a/venv/lib/python3.12/site-packages/black-24.8.1.dev4+g699b45a.dist-info/licenses/LICENSE b/venv/lib/python3.12/site-packages/black-24.8.1.dev4+g699b45a.dist-info/licenses/LICENSE new file mode 100644 index 0000000000..7a9b891f71 --- /dev/null +++ b/venv/lib/python3.12/site-packages/black-24.8.1.dev4+g699b45a.dist-info/licenses/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2018 Łukasz Langa + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/venv/lib/python3.12/site-packages/black/__init__.py b/venv/lib/python3.12/site-packages/black/__init__.py new file mode 100644 index 0000000000..942f316075 --- /dev/null +++ b/venv/lib/python3.12/site-packages/black/__init__.py @@ -0,0 +1,1606 @@ +import io +import json +import platform +import re +import sys +import tokenize +import traceback +from contextlib import contextmanager +from dataclasses import replace +from datetime import datetime, timezone +from enum import Enum +from json.decoder import JSONDecodeError +from pathlib import Path +from typing import ( + Any, + Collection, + Dict, + Generator, + Iterator, + List, + MutableMapping, + Optional, + Pattern, + Sequence, + Set, + Sized, + Tuple, + Union, +) + +import click +from click.core import ParameterSource +from mypy_extensions import mypyc_attr +from pathspec import PathSpec +from pathspec.patterns.gitwildmatch import GitWildMatchPatternError + +from _black_version import version as __version__ +from black.cache import Cache +from black.comments import normalize_fmt_off +from black.const import ( + DEFAULT_EXCLUDES, + DEFAULT_INCLUDES, + DEFAULT_LINE_LENGTH, + STDIN_PLACEHOLDER, +) +from black.files import ( + best_effort_relative_path, + find_project_root, + find_pyproject_toml, + find_user_pyproject_toml, + gen_python_files, + get_gitignore, + parse_pyproject_toml, + path_is_excluded, + resolves_outside_root_or_cannot_stat, + wrap_stream_for_windows, +) +from black.handle_ipynb_magics import ( + PYTHON_CELL_MAGICS, + TRANSFORMED_MAGICS, + jupyter_dependencies_are_installed, + mask_cell, + put_trailing_semicolon_back, + remove_trailing_semicolon, + unmask_cell, +) +from black.linegen import LN, LineGenerator, transform_line +from black.lines import EmptyLineTracker, LinesBlock +from black.mode import FUTURE_FLAG_TO_FEATURE, VERSION_TO_FEATURES, Feature +from black.mode import Mode as Mode # re-exported +from black.mode import Preview, TargetVersion, supports_feature +from black.nodes import STARS, is_number_token, is_simple_decorator_expression, syms +from black.output import color_diff, diff, dump_to_file, err, ipynb_diff, out +from black.parsing import ( # noqa F401 + ASTSafetyError, + InvalidInput, + lib2to3_parse, + parse_ast, + stringify_ast, +) +from black.ranges import ( + adjusted_lines, + convert_unchanged_lines, + parse_line_ranges, + sanitized_lines, +) +from black.report import Changed, NothingChanged, Report +from blib2to3.pgen2 import token +from blib2to3.pytree import Leaf, Node + +COMPILED = Path(__file__).suffix in (".pyd", ".so") + +# types +FileContent = str +Encoding = str +NewLine = str + + +class WriteBack(Enum): + NO = 0 + YES = 1 + DIFF = 2 + CHECK = 3 + COLOR_DIFF = 4 + + @classmethod + def from_configuration( + cls, *, check: bool, diff: bool, color: bool = False + ) -> "WriteBack": + if check and not diff: + return cls.CHECK + + if diff and color: + return cls.COLOR_DIFF + + return cls.DIFF if diff else cls.YES + + +# Legacy name, left for integrations. +FileMode = Mode + + +def read_pyproject_toml( + ctx: click.Context, param: click.Parameter, value: Optional[str] +) -> Optional[str]: + """Inject Black configuration from "pyproject.toml" into defaults in `ctx`. + + Returns the path to a successfully found and read configuration file, None + otherwise. + """ + if not value: + value = find_pyproject_toml( + ctx.params.get("src", ()), ctx.params.get("stdin_filename", None) + ) + if value is None: + return None + + try: + config = parse_pyproject_toml(value) + except (OSError, ValueError) as e: + raise click.FileError( + filename=value, hint=f"Error reading configuration file: {e}" + ) from None + + if not config: + return None + else: + spellcheck_pyproject_toml_keys(ctx, list(config), value) + # Sanitize the values to be Click friendly. For more information please see: + # https://github.com/psf/black/issues/1458 + # https://github.com/pallets/click/issues/1567 + config = { + k: str(v) if not isinstance(v, (list, dict)) else v + for k, v in config.items() + } + + target_version = config.get("target_version") + if target_version is not None and not isinstance(target_version, list): + raise click.BadOptionUsage( + "target-version", "Config key target-version must be a list" + ) + + exclude = config.get("exclude") + if exclude is not None and not isinstance(exclude, str): + raise click.BadOptionUsage("exclude", "Config key exclude must be a string") + + extend_exclude = config.get("extend_exclude") + if extend_exclude is not None and not isinstance(extend_exclude, str): + raise click.BadOptionUsage( + "extend-exclude", "Config key extend-exclude must be a string" + ) + + line_ranges = config.get("line_ranges") + if line_ranges is not None: + raise click.BadOptionUsage( + "line-ranges", "Cannot use line-ranges in the pyproject.toml file." + ) + + default_map: Dict[str, Any] = {} + if ctx.default_map: + default_map.update(ctx.default_map) + default_map.update(config) + + ctx.default_map = default_map + return value + + +def spellcheck_pyproject_toml_keys( + ctx: click.Context, config_keys: List[str], config_file_path: str +) -> None: + invalid_keys: List[str] = [] + available_config_options = {param.name for param in ctx.command.params} + for key in config_keys: + if key not in available_config_options: + invalid_keys.append(key) + if invalid_keys: + keys_str = ", ".join(map(repr, invalid_keys)) + out( + f"Invalid config keys detected: {keys_str} (in {config_file_path})", + fg="red", + ) + + +def target_version_option_callback( + c: click.Context, p: Union[click.Option, click.Parameter], v: Tuple[str, ...] +) -> List[TargetVersion]: + """Compute the target versions from a --target-version flag. + + This is its own function because mypy couldn't infer the type correctly + when it was a lambda, causing mypyc trouble. + """ + return [TargetVersion[val.upper()] for val in v] + + +def enable_unstable_feature_callback( + c: click.Context, p: Union[click.Option, click.Parameter], v: Tuple[str, ...] +) -> List[Preview]: + """Compute the features from an --enable-unstable-feature flag.""" + return [Preview[val] for val in v] + + +def re_compile_maybe_verbose(regex: str) -> Pattern[str]: + """Compile a regular expression string in `regex`. + + If it contains newlines, use verbose mode. + """ + if "\n" in regex: + regex = "(?x)" + regex + compiled: Pattern[str] = re.compile(regex) + return compiled + + +def validate_regex( + ctx: click.Context, + param: click.Parameter, + value: Optional[str], +) -> Optional[Pattern[str]]: + try: + return re_compile_maybe_verbose(value) if value is not None else None + except re.error as e: + raise click.BadParameter(f"Not a valid regular expression: {e}") from None + + +@click.command( + context_settings={"help_option_names": ["-h", "--help"]}, + # While Click does set this field automatically using the docstring, mypyc + # (annoyingly) strips 'em so we need to set it here too. + help="The uncompromising code formatter.", +) +@click.option("-c", "--code", type=str, help="Format the code passed in as a string.") +@click.option( + "-l", + "--line-length", + type=int, + default=DEFAULT_LINE_LENGTH, + help="How many characters per line to allow.", + show_default=True, +) +@click.option( + "-t", + "--target-version", + type=click.Choice([v.name.lower() for v in TargetVersion]), + callback=target_version_option_callback, + multiple=True, + help=( + "Python versions that should be supported by Black's output. You should" + " include all versions that your code supports. By default, Black will infer" + " target versions from the project metadata in pyproject.toml. If this does" + " not yield conclusive results, Black will use per-file auto-detection." + ), +) +@click.option( + "--pyi", + is_flag=True, + help=( + "Format all input files like typing stubs regardless of file extension. This" + " is useful when piping source on standard input." + ), +) +@click.option( + "--ipynb", + is_flag=True, + help=( + "Format all input files like Jupyter Notebooks regardless of file extension." + " This is useful when piping source on standard input." + ), +) +@click.option( + "--python-cell-magics", + multiple=True, + help=( + "When processing Jupyter Notebooks, add the given magic to the list" + f" of known python-magics ({', '.join(sorted(PYTHON_CELL_MAGICS))})." + " Useful for formatting cells with custom python magics." + ), + default=[], +) +@click.option( + "-x", + "--skip-source-first-line", + is_flag=True, + help="Skip the first line of the source code.", +) +@click.option( + "-S", + "--skip-string-normalization", + is_flag=True, + help="Don't normalize string quotes or prefixes.", +) +@click.option( + "-C", + "--skip-magic-trailing-comma", + is_flag=True, + help="Don't use trailing commas as a reason to split lines.", +) +@click.option( + "--preview", + is_flag=True, + help=( + "Enable potentially disruptive style changes that may be added to Black's main" + " functionality in the next major release." + ), +) +@click.option( + "--unstable", + is_flag=True, + help=( + "Enable potentially disruptive style changes that have known bugs or are not" + " currently expected to make it into the stable style Black's next major" + " release. Implies --preview." + ), +) +@click.option( + "--enable-unstable-feature", + type=click.Choice([v.name for v in Preview]), + callback=enable_unstable_feature_callback, + multiple=True, + help=( + "Enable specific features included in the `--unstable` style. Requires" + " `--preview`. No compatibility guarantees are provided on the behavior" + " or existence of any unstable features." + ), +) +@click.option( + "--check", + is_flag=True, + help=( + "Don't write the files back, just return the status. Return code 0 means" + " nothing would change. Return code 1 means some files would be reformatted." + " Return code 123 means there was an internal error." + ), +) +@click.option( + "--diff", + is_flag=True, + help=( + "Don't write the files back, just output a diff to indicate what changes" + " Black would've made. They are printed to stdout so capturing them is simple." + ), +) +@click.option( + "--color/--no-color", + is_flag=True, + help="Show (or do not show) colored diff. Only applies when --diff is given.", +) +@click.option( + "--line-ranges", + multiple=True, + metavar="START-END", + help=( + "When specified, Black will try its best to only format these lines. This" + " option can be specified multiple times, and a union of the lines will be" + " formatted. Each range must be specified as two integers connected by a `-`:" + " `-`. The `` and `` integer indices are 1-based and" + " inclusive on both ends." + ), + default=(), +) +@click.option( + "--fast/--safe", + is_flag=True, + help=( + "By default, Black performs an AST safety check after formatting your code." + " The --fast flag turns off this check and the --safe flag explicitly enables" + " it. [default: --safe]" + ), +) +@click.option( + "--required-version", + type=str, + help=( + "Require a specific version of Black to be running. This is useful for" + " ensuring that all contributors to your project are using the same" + " version, because different versions of Black may format code a little" + " differently. This option can be set in a configuration file for consistent" + " results across environments." + ), +) +@click.option( + "--exclude", + type=str, + callback=validate_regex, + help=( + "A regular expression that matches files and directories that should be" + " excluded on recursive searches. An empty value means no paths are excluded." + " Use forward slashes for directories on all platforms (Windows, too)." + " By default, Black also ignores all paths listed in .gitignore. Changing this" + f" value will override all default exclusions. [default: {DEFAULT_EXCLUDES}]" + ), + show_default=False, +) +@click.option( + "--extend-exclude", + type=str, + callback=validate_regex, + help=( + "Like --exclude, but adds additional files and directories on top of the" + " default values instead of overriding them." + ), +) +@click.option( + "--force-exclude", + type=str, + callback=validate_regex, + help=( + "Like --exclude, but files and directories matching this regex will be excluded" + " even when they are passed explicitly as arguments. This is useful when" + " invoking Black programmatically on changed files, such as in a pre-commit" + " hook or editor plugin." + ), +) +@click.option( + "--stdin-filename", + type=str, + is_eager=True, + help=( + "The name of the file when passing it through stdin. Useful to make sure Black" + " will respect the --force-exclude option on some editors that rely on using" + " stdin." + ), +) +@click.option( + "--include", + type=str, + default=DEFAULT_INCLUDES, + callback=validate_regex, + help=( + "A regular expression that matches files and directories that should be" + " included on recursive searches. An empty value means all files are included" + " regardless of the name. Use forward slashes for directories on all platforms" + " (Windows, too). Overrides all exclusions, including from .gitignore and" + " command line options." + ), + show_default=True, +) +@click.option( + "-W", + "--workers", + type=click.IntRange(min=1), + default=None, + help=( + "When Black formats multiple files, it may use a process pool to speed up" + " formatting. This option controls the number of parallel workers. This can" + " also be specified via the BLACK_NUM_WORKERS environment variable. Defaults" + " to the number of CPUs in the system." + ), +) +@click.option( + "-q", + "--quiet", + is_flag=True, + help=( + "Stop emitting all non-critical output. Error messages will still be emitted" + " (which can silenced by 2>/dev/null)." + ), +) +@click.option( + "-v", + "--verbose", + is_flag=True, + help=( + "Emit messages about files that were not changed or were ignored due to" + " exclusion patterns. If Black is using a configuration file, a message" + " detailing which one it is using will be emitted." + ), +) +@click.version_option( + version=__version__, + message=( + f"%(prog)s, %(version)s (compiled: {'yes' if COMPILED else 'no'})\n" + f"Python ({platform.python_implementation()}) {platform.python_version()}" + ), +) +@click.argument( + "src", + nargs=-1, + type=click.Path( + exists=True, file_okay=True, dir_okay=True, readable=True, allow_dash=True + ), + is_eager=True, + metavar="SRC ...", +) +@click.option( + "--config", + type=click.Path( + exists=True, + file_okay=True, + dir_okay=False, + readable=True, + allow_dash=False, + path_type=str, + ), + is_eager=True, + callback=read_pyproject_toml, + help="Read configuration options from a configuration file.", +) +@click.pass_context +def main( # noqa: C901 + ctx: click.Context, + code: Optional[str], + line_length: int, + target_version: List[TargetVersion], + check: bool, + diff: bool, + line_ranges: Sequence[str], + color: bool, + fast: bool, + pyi: bool, + ipynb: bool, + python_cell_magics: Sequence[str], + skip_source_first_line: bool, + skip_string_normalization: bool, + skip_magic_trailing_comma: bool, + preview: bool, + unstable: bool, + enable_unstable_feature: List[Preview], + quiet: bool, + verbose: bool, + required_version: Optional[str], + include: Pattern[str], + exclude: Optional[Pattern[str]], + extend_exclude: Optional[Pattern[str]], + force_exclude: Optional[Pattern[str]], + stdin_filename: Optional[str], + workers: Optional[int], + src: Tuple[str, ...], + config: Optional[str], +) -> None: + """The uncompromising code formatter.""" + ctx.ensure_object(dict) + + if src and code is not None: + out( + main.get_usage(ctx) + + "\n\n'SRC' and 'code' cannot be passed simultaneously." + ) + ctx.exit(1) + if not src and code is None: + out(main.get_usage(ctx) + "\n\nOne of 'SRC' or 'code' is required.") + ctx.exit(1) + + # It doesn't do anything if --unstable is also passed, so just allow it. + if enable_unstable_feature and not (preview or unstable): + out( + main.get_usage(ctx) + + "\n\n'--enable-unstable-feature' requires '--preview'." + ) + ctx.exit(1) + + root, method = ( + find_project_root(src, stdin_filename) if code is None else (None, None) + ) + ctx.obj["root"] = root + + if verbose: + if root: + out( + f"Identified `{root}` as project root containing a {method}.", + fg="blue", + ) + + if config: + config_source = ctx.get_parameter_source("config") + user_level_config = str(find_user_pyproject_toml()) + if config == user_level_config: + out( + "Using configuration from user-level config at " + f"'{user_level_config}'.", + fg="blue", + ) + elif config_source in ( + ParameterSource.DEFAULT, + ParameterSource.DEFAULT_MAP, + ): + out("Using configuration from project root.", fg="blue") + else: + out(f"Using configuration in '{config}'.", fg="blue") + if ctx.default_map: + for param, value in ctx.default_map.items(): + out(f"{param}: {value}") + + error_msg = "Oh no! 💥 💔 💥" + if ( + required_version + and required_version != __version__ + and required_version != __version__.split(".")[0] + ): + err( + f"{error_msg} The required version `{required_version}` does not match" + f" the running version `{__version__}`!" + ) + ctx.exit(1) + if ipynb and pyi: + err("Cannot pass both `pyi` and `ipynb` flags!") + ctx.exit(1) + + write_back = WriteBack.from_configuration(check=check, diff=diff, color=color) + if target_version: + versions = set(target_version) + else: + # We'll autodetect later. + versions = set() + mode = Mode( + target_versions=versions, + line_length=line_length, + is_pyi=pyi, + is_ipynb=ipynb, + skip_source_first_line=skip_source_first_line, + string_normalization=not skip_string_normalization, + magic_trailing_comma=not skip_magic_trailing_comma, + preview=preview, + unstable=unstable, + python_cell_magics=set(python_cell_magics), + enabled_features=set(enable_unstable_feature), + ) + + lines: List[Tuple[int, int]] = [] + if line_ranges: + if ipynb: + err("Cannot use --line-ranges with ipynb files.") + ctx.exit(1) + + try: + lines = parse_line_ranges(line_ranges) + except ValueError as e: + err(str(e)) + ctx.exit(1) + + if code is not None: + # Run in quiet mode by default with -c; the extra output isn't useful. + # You can still pass -v to get verbose output. + quiet = True + + report = Report(check=check, diff=diff, quiet=quiet, verbose=verbose) + + if code is not None: + reformat_code( + content=code, + fast=fast, + write_back=write_back, + mode=mode, + report=report, + lines=lines, + ) + else: + assert root is not None # root is only None if code is not None + try: + sources = get_sources( + root=root, + src=src, + quiet=quiet, + verbose=verbose, + include=include, + exclude=exclude, + extend_exclude=extend_exclude, + force_exclude=force_exclude, + report=report, + stdin_filename=stdin_filename, + ) + except GitWildMatchPatternError: + ctx.exit(1) + + path_empty( + sources, + "No Python files are present to be formatted. Nothing to do 😴", + quiet, + verbose, + ctx, + ) + + if len(sources) == 1: + reformat_one( + src=sources.pop(), + fast=fast, + write_back=write_back, + mode=mode, + report=report, + lines=lines, + ) + else: + from black.concurrency import reformat_many + + if lines: + err("Cannot use --line-ranges to format multiple files.") + ctx.exit(1) + reformat_many( + sources=sources, + fast=fast, + write_back=write_back, + mode=mode, + report=report, + workers=workers, + ) + + if verbose or not quiet: + if code is None and (verbose or report.change_count or report.failure_count): + out() + out(error_msg if report.return_code else "All done! ✨ 🍰 ✨") + if code is None: + click.echo(str(report), err=True) + ctx.exit(report.return_code) + + +def get_sources( + *, + root: Path, + src: Tuple[str, ...], + quiet: bool, + verbose: bool, + include: Pattern[str], + exclude: Optional[Pattern[str]], + extend_exclude: Optional[Pattern[str]], + force_exclude: Optional[Pattern[str]], + report: "Report", + stdin_filename: Optional[str], +) -> Set[Path]: + """Compute the set of files to be formatted.""" + sources: Set[Path] = set() + + assert root.is_absolute(), f"INTERNAL ERROR: `root` must be absolute but is {root}" + using_default_exclude = exclude is None + exclude = re_compile_maybe_verbose(DEFAULT_EXCLUDES) if exclude is None else exclude + gitignore: Optional[Dict[Path, PathSpec]] = None + root_gitignore = get_gitignore(root) + + for s in src: + if s == "-" and stdin_filename: + path = Path(stdin_filename) + is_stdin = True + else: + path = Path(s) + is_stdin = False + + # Compare the logic here to the logic in `gen_python_files`. + if is_stdin or path.is_file(): + if resolves_outside_root_or_cannot_stat(path, root, report): + if verbose: + out(f'Skipping invalid source: "{path}"', fg="red") + continue + + root_relative_path = best_effort_relative_path(path, root).as_posix() + root_relative_path = "/" + root_relative_path + + # Hard-exclude any files that matches the `--force-exclude` regex. + if path_is_excluded(root_relative_path, force_exclude): + report.path_ignored( + path, "matches the --force-exclude regular expression" + ) + continue + + if is_stdin: + path = Path(f"{STDIN_PLACEHOLDER}{str(path)}") + + if path.suffix == ".ipynb" and not jupyter_dependencies_are_installed( + warn=verbose or not quiet + ): + continue + + if verbose: + out(f'Found input source: "{path}"', fg="blue") + sources.add(path) + elif path.is_dir(): + path = root / (path.resolve().relative_to(root)) + if verbose: + out(f'Found input source directory: "{path}"', fg="blue") + + if using_default_exclude: + gitignore = { + root: root_gitignore, + path: get_gitignore(path), + } + sources.update( + gen_python_files( + path.iterdir(), + root, + include, + exclude, + extend_exclude, + force_exclude, + report, + gitignore, + verbose=verbose, + quiet=quiet, + ) + ) + elif s == "-": + if verbose: + out("Found input source stdin", fg="blue") + sources.add(path) + else: + err(f"invalid path: {s}") + + return sources + + +def path_empty( + src: Sized, msg: str, quiet: bool, verbose: bool, ctx: click.Context +) -> None: + """ + Exit if there is no `src` provided for formatting + """ + if not src: + if verbose or not quiet: + out(msg) + ctx.exit(0) + + +def reformat_code( + content: str, + fast: bool, + write_back: WriteBack, + mode: Mode, + report: Report, + *, + lines: Collection[Tuple[int, int]] = (), +) -> None: + """ + Reformat and print out `content` without spawning child processes. + Similar to `reformat_one`, but for string content. + + `fast`, `write_back`, and `mode` options are passed to + :func:`format_file_in_place` or :func:`format_stdin_to_stdout`. + """ + path = Path("") + try: + changed = Changed.NO + if format_stdin_to_stdout( + content=content, fast=fast, write_back=write_back, mode=mode, lines=lines + ): + changed = Changed.YES + report.done(path, changed) + except Exception as exc: + if report.verbose: + traceback.print_exc() + report.failed(path, str(exc)) + + +# diff-shades depends on being to monkeypatch this function to operate. I know it's +# not ideal, but this shouldn't cause any issues ... hopefully. ~ichard26 +@mypyc_attr(patchable=True) +def reformat_one( + src: Path, + fast: bool, + write_back: WriteBack, + mode: Mode, + report: "Report", + *, + lines: Collection[Tuple[int, int]] = (), +) -> None: + """Reformat a single file under `src` without spawning child processes. + + `fast`, `write_back`, and `mode` options are passed to + :func:`format_file_in_place` or :func:`format_stdin_to_stdout`. + """ + try: + changed = Changed.NO + + if str(src) == "-": + is_stdin = True + elif str(src).startswith(STDIN_PLACEHOLDER): + is_stdin = True + # Use the original name again in case we want to print something + # to the user + src = Path(str(src)[len(STDIN_PLACEHOLDER) :]) + else: + is_stdin = False + + if is_stdin: + if src.suffix == ".pyi": + mode = replace(mode, is_pyi=True) + elif src.suffix == ".ipynb": + mode = replace(mode, is_ipynb=True) + if format_stdin_to_stdout( + fast=fast, write_back=write_back, mode=mode, lines=lines + ): + changed = Changed.YES + else: + cache = Cache.read(mode) + if write_back not in (WriteBack.DIFF, WriteBack.COLOR_DIFF): + if not cache.is_changed(src): + changed = Changed.CACHED + if changed is not Changed.CACHED and format_file_in_place( + src, fast=fast, write_back=write_back, mode=mode, lines=lines + ): + changed = Changed.YES + if (write_back is WriteBack.YES and changed is not Changed.CACHED) or ( + write_back is WriteBack.CHECK and changed is Changed.NO + ): + cache.write([src]) + report.done(src, changed) + except Exception as exc: + if report.verbose: + traceback.print_exc() + report.failed(src, str(exc)) + + +def format_file_in_place( + src: Path, + fast: bool, + mode: Mode, + write_back: WriteBack = WriteBack.NO, + lock: Any = None, # multiprocessing.Manager().Lock() is some crazy proxy + *, + lines: Collection[Tuple[int, int]] = (), +) -> bool: + """Format file under `src` path. Return True if changed. + + If `write_back` is DIFF, write a diff to stdout. If it is YES, write reformatted + code to the file. + `mode` and `fast` options are passed to :func:`format_file_contents`. + """ + if src.suffix == ".pyi": + mode = replace(mode, is_pyi=True) + elif src.suffix == ".ipynb": + mode = replace(mode, is_ipynb=True) + + then = datetime.fromtimestamp(src.stat().st_mtime, timezone.utc) + header = b"" + with open(src, "rb") as buf: + if mode.skip_source_first_line: + header = buf.readline() + src_contents, encoding, newline = decode_bytes(buf.read()) + try: + dst_contents = format_file_contents( + src_contents, fast=fast, mode=mode, lines=lines + ) + except NothingChanged: + return False + except JSONDecodeError: + raise ValueError( + f"File '{src}' cannot be parsed as valid Jupyter notebook." + ) from None + src_contents = header.decode(encoding) + src_contents + dst_contents = header.decode(encoding) + dst_contents + + if write_back == WriteBack.YES: + with open(src, "w", encoding=encoding, newline=newline) as f: + f.write(dst_contents) + elif write_back in (WriteBack.DIFF, WriteBack.COLOR_DIFF): + now = datetime.now(timezone.utc) + src_name = f"{src}\t{then}" + dst_name = f"{src}\t{now}" + if mode.is_ipynb: + diff_contents = ipynb_diff(src_contents, dst_contents, src_name, dst_name) + else: + diff_contents = diff(src_contents, dst_contents, src_name, dst_name) + + if write_back == WriteBack.COLOR_DIFF: + diff_contents = color_diff(diff_contents) + + with lock or nullcontext(): + f = io.TextIOWrapper( + sys.stdout.buffer, + encoding=encoding, + newline=newline, + write_through=True, + ) + f = wrap_stream_for_windows(f) + f.write(diff_contents) + f.detach() + + return True + + +def format_stdin_to_stdout( + fast: bool, + *, + content: Optional[str] = None, + write_back: WriteBack = WriteBack.NO, + mode: Mode, + lines: Collection[Tuple[int, int]] = (), +) -> bool: + """Format file on stdin. Return True if changed. + + If content is None, it's read from sys.stdin. + + If `write_back` is YES, write reformatted code back to stdout. If it is DIFF, + write a diff to stdout. The `mode` argument is passed to + :func:`format_file_contents`. + """ + then = datetime.now(timezone.utc) + + if content is None: + src, encoding, newline = decode_bytes(sys.stdin.buffer.read()) + else: + src, encoding, newline = content, "utf-8", "" + + dst = src + try: + dst = format_file_contents(src, fast=fast, mode=mode, lines=lines) + return True + + except NothingChanged: + return False + + finally: + f = io.TextIOWrapper( + sys.stdout.buffer, encoding=encoding, newline=newline, write_through=True + ) + if write_back == WriteBack.YES: + # Make sure there's a newline after the content + if dst and dst[-1] != "\n": + dst += "\n" + f.write(dst) + elif write_back in (WriteBack.DIFF, WriteBack.COLOR_DIFF): + now = datetime.now(timezone.utc) + src_name = f"STDIN\t{then}" + dst_name = f"STDOUT\t{now}" + d = diff(src, dst, src_name, dst_name) + if write_back == WriteBack.COLOR_DIFF: + d = color_diff(d) + f = wrap_stream_for_windows(f) + f.write(d) + f.detach() + + +def check_stability_and_equivalence( + src_contents: str, + dst_contents: str, + *, + mode: Mode, + lines: Collection[Tuple[int, int]] = (), +) -> None: + """Perform stability and equivalence checks. + + Raise AssertionError if source and destination contents are not + equivalent, or if a second pass of the formatter would format the + content differently. + """ + assert_equivalent(src_contents, dst_contents) + assert_stable(src_contents, dst_contents, mode=mode, lines=lines) + + +def format_file_contents( + src_contents: str, + *, + fast: bool, + mode: Mode, + lines: Collection[Tuple[int, int]] = (), +) -> FileContent: + """Reformat contents of a file and return new contents. + + If `fast` is False, additionally confirm that the reformatted code is + valid by calling :func:`assert_equivalent` and :func:`assert_stable` on it. + `mode` is passed to :func:`format_str`. + """ + if mode.is_ipynb: + dst_contents = format_ipynb_string(src_contents, fast=fast, mode=mode) + else: + dst_contents = format_str(src_contents, mode=mode, lines=lines) + if src_contents == dst_contents: + raise NothingChanged + + if not fast and not mode.is_ipynb: + # Jupyter notebooks will already have been checked above. + check_stability_and_equivalence( + src_contents, dst_contents, mode=mode, lines=lines + ) + return dst_contents + + +def validate_cell(src: str, mode: Mode) -> None: + """Check that cell does not already contain TransformerManager transformations, + or non-Python cell magics, which might cause tokenizer_rt to break because of + indentations. + + If a cell contains ``!ls``, then it'll be transformed to + ``get_ipython().system('ls')``. However, if the cell originally contained + ``get_ipython().system('ls')``, then it would get transformed in the same way: + + >>> TransformerManager().transform_cell("get_ipython().system('ls')") + "get_ipython().system('ls')\n" + >>> TransformerManager().transform_cell("!ls") + "get_ipython().system('ls')\n" + + Due to the impossibility of safely roundtripping in such situations, cells + containing transformed magics will be ignored. + """ + if any(transformed_magic in src for transformed_magic in TRANSFORMED_MAGICS): + raise NothingChanged + if ( + src[:2] == "%%" + and src.split()[0][2:] not in PYTHON_CELL_MAGICS | mode.python_cell_magics + ): + raise NothingChanged + + +def format_cell(src: str, *, fast: bool, mode: Mode) -> str: + """Format code in given cell of Jupyter notebook. + + General idea is: + + - if cell has trailing semicolon, remove it; + - if cell has IPython magics, mask them; + - format cell; + - reinstate IPython magics; + - reinstate trailing semicolon (if originally present); + - strip trailing newlines. + + Cells with syntax errors will not be processed, as they + could potentially be automagics or multi-line magics, which + are currently not supported. + """ + validate_cell(src, mode) + src_without_trailing_semicolon, has_trailing_semicolon = remove_trailing_semicolon( + src + ) + try: + masked_src, replacements = mask_cell(src_without_trailing_semicolon) + except SyntaxError: + raise NothingChanged from None + masked_dst = format_str(masked_src, mode=mode) + if not fast: + check_stability_and_equivalence(masked_src, masked_dst, mode=mode) + dst_without_trailing_semicolon = unmask_cell(masked_dst, replacements) + dst = put_trailing_semicolon_back( + dst_without_trailing_semicolon, has_trailing_semicolon + ) + dst = dst.rstrip("\n") + if dst == src: + raise NothingChanged from None + return dst + + +def validate_metadata(nb: MutableMapping[str, Any]) -> None: + """If notebook is marked as non-Python, don't format it. + + All notebook metadata fields are optional, see + https://nbformat.readthedocs.io/en/latest/format_description.html. So + if a notebook has empty metadata, we will try to parse it anyway. + """ + language = nb.get("metadata", {}).get("language_info", {}).get("name", None) + if language is not None and language != "python": + raise NothingChanged from None + + +def format_ipynb_string(src_contents: str, *, fast: bool, mode: Mode) -> FileContent: + """Format Jupyter notebook. + + Operate cell-by-cell, only on code cells, only for Python notebooks. + If the ``.ipynb`` originally had a trailing newline, it'll be preserved. + """ + if not src_contents: + raise NothingChanged + + trailing_newline = src_contents[-1] == "\n" + modified = False + nb = json.loads(src_contents) + validate_metadata(nb) + for cell in nb["cells"]: + if cell.get("cell_type", None) == "code": + try: + src = "".join(cell["source"]) + dst = format_cell(src, fast=fast, mode=mode) + except NothingChanged: + pass + else: + cell["source"] = dst.splitlines(keepends=True) + modified = True + if modified: + dst_contents = json.dumps(nb, indent=1, ensure_ascii=False) + if trailing_newline: + dst_contents = dst_contents + "\n" + return dst_contents + else: + raise NothingChanged + + +def format_str( + src_contents: str, *, mode: Mode, lines: Collection[Tuple[int, int]] = () +) -> str: + """Reformat a string and return new contents. + + `mode` determines formatting options, such as how many characters per line are + allowed. Example: + + >>> import black + >>> print(black.format_str("def f(arg:str='')->None:...", mode=black.Mode())) + def f(arg: str = "") -> None: + ... + + A more complex example: + + >>> print( + ... black.format_str( + ... "def f(arg:str='')->None: hey", + ... mode=black.Mode( + ... target_versions={black.TargetVersion.PY36}, + ... line_length=10, + ... string_normalization=False, + ... is_pyi=False, + ... ), + ... ), + ... ) + def f( + arg: str = '', + ) -> None: + hey + + """ + if lines: + lines = sanitized_lines(lines, src_contents) + if not lines: + return src_contents # Nothing to format + dst_contents = _format_str_once(src_contents, mode=mode, lines=lines) + # Forced second pass to work around optional trailing commas (becoming + # forced trailing commas on pass 2) interacting differently with optional + # parentheses. Admittedly ugly. + if src_contents != dst_contents: + if lines: + lines = adjusted_lines(lines, src_contents, dst_contents) + return _format_str_once(dst_contents, mode=mode, lines=lines) + return dst_contents + + +def _format_str_once( + src_contents: str, *, mode: Mode, lines: Collection[Tuple[int, int]] = () +) -> str: + src_node = lib2to3_parse(src_contents.lstrip(), mode.target_versions) + dst_blocks: List[LinesBlock] = [] + if mode.target_versions: + versions = mode.target_versions + else: + future_imports = get_future_imports(src_node) + versions = detect_target_versions(src_node, future_imports=future_imports) + + context_manager_features = { + feature + for feature in {Feature.PARENTHESIZED_CONTEXT_MANAGERS} + if supports_feature(versions, feature) + } + normalize_fmt_off(src_node, mode, lines) + if lines: + # This should be called after normalize_fmt_off. + convert_unchanged_lines(src_node, lines) + + line_generator = LineGenerator(mode=mode, features=context_manager_features) + elt = EmptyLineTracker(mode=mode) + split_line_features = { + feature + for feature in { + Feature.TRAILING_COMMA_IN_CALL, + Feature.TRAILING_COMMA_IN_DEF, + } + if supports_feature(versions, feature) + } + block: Optional[LinesBlock] = None + for current_line in line_generator.visit(src_node): + block = elt.maybe_empty_lines(current_line) + dst_blocks.append(block) + for line in transform_line( + current_line, mode=mode, features=split_line_features + ): + block.content_lines.append(str(line)) + if dst_blocks: + dst_blocks[-1].after = 0 + dst_contents = [] + for block in dst_blocks: + dst_contents.extend(block.all_lines()) + if not dst_contents: + # Use decode_bytes to retrieve the correct source newline (CRLF or LF), + # and check if normalized_content has more than one line + normalized_content, _, newline = decode_bytes(src_contents.encode("utf-8")) + if "\n" in normalized_content: + return newline + return "" + return "".join(dst_contents) + + +def decode_bytes(src: bytes) -> Tuple[FileContent, Encoding, NewLine]: + """Return a tuple of (decoded_contents, encoding, newline). + + `newline` is either CRLF or LF but `decoded_contents` is decoded with + universal newlines (i.e. only contains LF). + """ + srcbuf = io.BytesIO(src) + encoding, lines = tokenize.detect_encoding(srcbuf.readline) + if not lines: + return "", encoding, "\n" + + newline = "\r\n" if b"\r\n" == lines[0][-2:] else "\n" + srcbuf.seek(0) + with io.TextIOWrapper(srcbuf, encoding) as tiow: + return tiow.read(), encoding, newline + + +def get_features_used( # noqa: C901 + node: Node, *, future_imports: Optional[Set[str]] = None +) -> Set[Feature]: + """Return a set of (relatively) new Python features used in this file. + + Currently looking for: + - f-strings; + - self-documenting expressions in f-strings (f"{x=}"); + - underscores in numeric literals; + - trailing commas after * or ** in function signatures and calls; + - positional only arguments in function signatures and lambdas; + - assignment expression; + - relaxed decorator syntax; + - usage of __future__ flags (annotations); + - print / exec statements; + - parenthesized context managers; + - match statements; + - except* clause; + - variadic generics; + """ + features: Set[Feature] = set() + if future_imports: + features |= { + FUTURE_FLAG_TO_FEATURE[future_import] + for future_import in future_imports + if future_import in FUTURE_FLAG_TO_FEATURE + } + + for n in node.pre_order(): + if n.type == token.FSTRING_START: + features.add(Feature.F_STRINGS) + elif ( + n.type == token.RBRACE + and n.parent is not None + and any(child.type == token.EQUAL for child in n.parent.children) + ): + features.add(Feature.DEBUG_F_STRINGS) + + elif is_number_token(n): + if "_" in n.value: + features.add(Feature.NUMERIC_UNDERSCORES) + + elif n.type == token.SLASH: + if n.parent and n.parent.type in { + syms.typedargslist, + syms.arglist, + syms.varargslist, + }: + features.add(Feature.POS_ONLY_ARGUMENTS) + + elif n.type == token.COLONEQUAL: + features.add(Feature.ASSIGNMENT_EXPRESSIONS) + + elif n.type == syms.decorator: + if len(n.children) > 1 and not is_simple_decorator_expression( + n.children[1] + ): + features.add(Feature.RELAXED_DECORATORS) + + elif ( + n.type in {syms.typedargslist, syms.arglist} + and n.children + and n.children[-1].type == token.COMMA + ): + if n.type == syms.typedargslist: + feature = Feature.TRAILING_COMMA_IN_DEF + else: + feature = Feature.TRAILING_COMMA_IN_CALL + + for ch in n.children: + if ch.type in STARS: + features.add(feature) + + if ch.type == syms.argument: + for argch in ch.children: + if argch.type in STARS: + features.add(feature) + + elif ( + n.type in {syms.return_stmt, syms.yield_expr} + and len(n.children) >= 2 + and n.children[1].type == syms.testlist_star_expr + and any(child.type == syms.star_expr for child in n.children[1].children) + ): + features.add(Feature.UNPACKING_ON_FLOW) + + elif ( + n.type == syms.annassign + and len(n.children) >= 4 + and n.children[3].type == syms.testlist_star_expr + ): + features.add(Feature.ANN_ASSIGN_EXTENDED_RHS) + + elif ( + n.type == syms.with_stmt + and len(n.children) > 2 + and n.children[1].type == syms.atom + ): + atom_children = n.children[1].children + if ( + len(atom_children) == 3 + and atom_children[0].type == token.LPAR + and _contains_asexpr(atom_children[1]) + and atom_children[2].type == token.RPAR + ): + features.add(Feature.PARENTHESIZED_CONTEXT_MANAGERS) + + elif n.type == syms.match_stmt: + features.add(Feature.PATTERN_MATCHING) + + elif ( + n.type == syms.except_clause + and len(n.children) >= 2 + and n.children[1].type == token.STAR + ): + features.add(Feature.EXCEPT_STAR) + + elif n.type in {syms.subscriptlist, syms.trailer} and any( + child.type == syms.star_expr for child in n.children + ): + features.add(Feature.VARIADIC_GENERICS) + + elif ( + n.type == syms.tname_star + and len(n.children) == 3 + and n.children[2].type == syms.star_expr + ): + features.add(Feature.VARIADIC_GENERICS) + + elif n.type in (syms.type_stmt, syms.typeparams): + features.add(Feature.TYPE_PARAMS) + + elif ( + n.type in (syms.typevartuple, syms.paramspec, syms.typevar) + and n.children[-2].type == token.EQUAL + ): + features.add(Feature.TYPE_PARAM_DEFAULTS) + + return features + + +def _contains_asexpr(node: Union[Node, Leaf]) -> bool: + """Return True if `node` contains an as-pattern.""" + if node.type == syms.asexpr_test: + return True + elif node.type == syms.atom: + if ( + len(node.children) == 3 + and node.children[0].type == token.LPAR + and node.children[2].type == token.RPAR + ): + return _contains_asexpr(node.children[1]) + elif node.type == syms.testlist_gexp: + return any(_contains_asexpr(child) for child in node.children) + return False + + +def detect_target_versions( + node: Node, *, future_imports: Optional[Set[str]] = None +) -> Set[TargetVersion]: + """Detect the version to target based on the nodes used.""" + features = get_features_used(node, future_imports=future_imports) + return { + version for version in TargetVersion if features <= VERSION_TO_FEATURES[version] + } + + +def get_future_imports(node: Node) -> Set[str]: + """Return a set of __future__ imports in the file.""" + imports: Set[str] = set() + + def get_imports_from_children(children: List[LN]) -> Generator[str, None, None]: + for child in children: + if isinstance(child, Leaf): + if child.type == token.NAME: + yield child.value + + elif child.type == syms.import_as_name: + orig_name = child.children[0] + assert isinstance(orig_name, Leaf), "Invalid syntax parsing imports" + assert orig_name.type == token.NAME, "Invalid syntax parsing imports" + yield orig_name.value + + elif child.type == syms.import_as_names: + yield from get_imports_from_children(child.children) + + else: + raise AssertionError("Invalid syntax parsing imports") + + for child in node.children: + if child.type != syms.simple_stmt: + break + + first_child = child.children[0] + if isinstance(first_child, Leaf): + # Continue looking if we see a docstring; otherwise stop. + if ( + len(child.children) == 2 + and first_child.type == token.STRING + and child.children[1].type == token.NEWLINE + ): + continue + + break + + elif first_child.type == syms.import_from: + module_name = first_child.children[1] + if not isinstance(module_name, Leaf) or module_name.value != "__future__": + break + + imports |= set(get_imports_from_children(first_child.children[3:])) + else: + break + + return imports + + +def assert_equivalent(src: str, dst: str) -> None: + """Raise AssertionError if `src` and `dst` aren't equivalent.""" + try: + src_ast = parse_ast(src) + except Exception as exc: + raise ASTSafetyError( + "cannot use --safe with this file; failed to parse source file AST: " + f"{exc}\n" + "This could be caused by running Black with an older Python version " + "that does not support new syntax used in your source file." + ) from exc + + try: + dst_ast = parse_ast(dst) + except Exception as exc: + log = dump_to_file("".join(traceback.format_tb(exc.__traceback__)), dst) + raise ASTSafetyError( + f"INTERNAL ERROR: Black produced invalid code: {exc}. " + "Please report a bug on https://github.com/psf/black/issues. " + f"This invalid output might be helpful: {log}" + ) from None + + src_ast_str = "\n".join(stringify_ast(src_ast)) + dst_ast_str = "\n".join(stringify_ast(dst_ast)) + if src_ast_str != dst_ast_str: + log = dump_to_file(diff(src_ast_str, dst_ast_str, "src", "dst")) + raise ASTSafetyError( + "INTERNAL ERROR: Black produced code that is not equivalent to the" + " source. Please report a bug on " + f"https://github.com/psf/black/issues. This diff might be helpful: {log}" + ) from None + + +def assert_stable( + src: str, dst: str, mode: Mode, *, lines: Collection[Tuple[int, int]] = () +) -> None: + """Raise AssertionError if `dst` reformats differently the second time.""" + if lines: + # Formatting specified lines requires `adjusted_lines` to map original lines + # to the formatted lines before re-formatting the previously formatted result. + # Due to less-ideal diff algorithm, some edge cases produce incorrect new line + # ranges. Hence for now, we skip the stable check. + # See https://github.com/psf/black/issues/4033 for context. + return + # We shouldn't call format_str() here, because that formats the string + # twice and may hide a bug where we bounce back and forth between two + # versions. + newdst = _format_str_once(dst, mode=mode, lines=lines) + if dst != newdst: + log = dump_to_file( + str(mode), + diff(src, dst, "source", "first pass"), + diff(dst, newdst, "first pass", "second pass"), + ) + raise AssertionError( + "INTERNAL ERROR: Black produced different code on the second pass of the" + " formatter. Please report a bug on https://github.com/psf/black/issues." + f" This diff might be helpful: {log}" + ) from None + + +@contextmanager +def nullcontext() -> Iterator[None]: + """Return an empty context manager. + + To be used like `nullcontext` in Python 3.7. + """ + yield + + +def patched_main() -> None: + # PyInstaller patches multiprocessing to need freeze_support() even in non-Windows + # environments so just assume we always need to call it if frozen. + if getattr(sys, "frozen", False): + from multiprocessing import freeze_support + + freeze_support() + + main() + + +if __name__ == "__main__": + patched_main() diff --git a/venv/lib/python3.12/site-packages/black/__main__.py b/venv/lib/python3.12/site-packages/black/__main__.py new file mode 100644 index 0000000000..19b810b530 --- /dev/null +++ b/venv/lib/python3.12/site-packages/black/__main__.py @@ -0,0 +1,3 @@ +from black import patched_main + +patched_main() diff --git a/venv/lib/python3.12/site-packages/black/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/black/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..fd469ebc4cb55c9a4957954040bda926b8a1bfad GIT binary patch literal 63126 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

~a8JJ0X@ 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 F{|iRYijV*R literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/black/__pycache__/__main__.cpython-312.pyc b/venv/lib/python3.12/site-packages/black/__pycache__/__main__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..fc6e2c4c43dd1135088bcb9f8aafb42073a490a7 GIT binary patch literal 246 zcmX@j%ge<81l4XQ()5A!V-N=hn4pZ$azMs(h7^Vr#vF!R#wbQc1}277#??@1Mutiz zP3D&%o+jfho`S@ZmQTdYYriOJbT%s}at44*-&eue61>2WCb_#=8u14;gq``HI+p FA^^3CK3D(% literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/black/__pycache__/_width_table.cpython-312.pyc b/venv/lib/python3.12/site-packages/black/__pycache__/_width_table.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..16b9fd87e866644256e7c675aa9ff67e0c376f30 GIT binary patch literal 8394 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/black/__pycache__/brackets.cpython-312.pyc b/venv/lib/python3.12/site-packages/black/__pycache__/brackets.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e9591c120949eddfa9a8672dcf31a3247768f5e6 GIT binary patch literal 18547 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/black/__pycache__/cache.cpython-312.pyc b/venv/lib/python3.12/site-packages/black/__pycache__/cache.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8d04ab110c837b16c1a759f95add857b0afebb35 GIT binary patch literal 7621 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/black/__pycache__/concurrency.cpython-312.pyc b/venv/lib/python3.12/site-packages/black/__pycache__/concurrency.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1dc764e03b6d56c73de1e41f6148b8b7db40779e GIT binary patch literal 8534 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 QqE`ofu-kGSf;x%+2R++d-2eap literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/black/__pycache__/const.cpython-312.pyc b/venv/lib/python3.12/site-packages/black/__pycache__/const.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e2a35161a961d7ed762e91023671122b87ad1819 GIT binary patch literal 519 zcmYLG&uiN-6qb_?ww6Le!su~_LYG4#wq3_Y8Y^q4=an{v5(>h$6k8;gOeCAR^Z(Jm zq0m31uuFFZaSZ!Qm^>MviYrpz?3a;}j{Qj)V#GK2bI_vT{)^Nna046bj$VwT~DB;mGQ$iZ+ zPRp#MQ2-(kseS@xrQzDVi1U0hc_C&Qp$iFd#dDoPM~d-^(yYvaXd1*^Q(Dn57c*9c zc{J^)+`z?BCbX&SyEZ;=K(kpXzCxyDW9^;AHl=%BuYW*~NAA$4gP}+K-giQ&-(FiZ zT{7sMcq8f!eL}(WZM47GT8ZSe@13~h_`fpr|0#{_#7taH3L< z(;!Jz&alf1yayw6h-5gN1u|CHHj8H>#ITh_$xq!6AF&pOcUH67z-WpiCAEQh9$$Y> v70YM*%X|Y$*uT^70PgFK20N# literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/black/__pycache__/debug.cpython-312.pyc b/venv/lib/python3.12/site-packages/black/__pycache__/debug.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c9796b9fcda26b46ac0171096a429d8c0b5fb435 GIT binary patch literal 3490 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 L^(pTTB~SmQ{Ay7;KD=YGOft~n4R}~~M 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/black/__pycache__/nodes.cpython-312.pyc b/venv/lib/python3.12/site-packages/black/__pycache__/nodes.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1a1d1b03419416ed38303cfb6cea4ec511615c09 GIT binary patch literal 44570 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 z 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/black/__pycache__/parsing.cpython-312.pyc b/venv/lib/python3.12/site-packages/black/__pycache__/parsing.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..603f29ef5ff802b5726a9477d772be97098d483a GIT binary patch literal 10478 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 VKCovSZZ`dT_lM1^nO^E3{vXqT_euZ& literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/black/__pycache__/ranges.cpython-312.pyc b/venv/lib/python3.12/site-packages/black/__pycache__/ranges.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7ac5a1ade231a1792e3b9320eaf2557ecef1b712 GIT binary patch literal 18835 zcmb_^dvIIVncuy5695U21m6!`lA=gRBq)m3Tb3+Kv>ukJB$U@N9W4y;UXqXqfVmg6 zL?8JwW5f|D8!3x8N1PGYh>Ml6 zPP!xIBju5bk&1|C#1rw3cq5e~m658Esz~)nb;LK~i`0zNu(Gzv+DP3TMG%C2z^P4$*|Rt58M|tEF;nd_H`)nYdG&So1C?)=HHk zo7YEXb>&CeQPwNgNo7)_I)BzmJ!*BRt>D`tHsE`^*oajsXQi4XkEr(7jGRufg}$+7 z7O@rIJH&00ODe}oveN2GB46tRr394flFV#eZ5UVkN7#RQK2l%YNViy63y0Lr_Q580 zpq^jcE;Wjs7z;}kci@Zqc8Fcb-8p0OcV9pD!gO>r9*#v7L6#;%aY+>7G2!{i(CC#e zMHq|8kx)Dyj*bhLW`xObR1)M+bX-D?6pByFQs7rKj3GatD-%QU(CB1HQT+Ct^F(ZN zQey4q9B1N^9E!)}oaJ0tiRT={(zmCj=%|!44@>c!^}_Vjq?EJ19K|5~WjWKipAC1D*i z+UL0&Aq$t_hq(?eZqZ9^=VUL>6^+Waaa1Drj_E3Q&HO5NmG|3+zT|sDm-!c43#laiMo`=ww$9AZaJZGMiqB-a9QJq0q2FRFEBWDXuO-WJFZy6;|dyyWhRXBC%<)@1*ob-}6A2-odEY zcWDv`66Z(XifB(>8<$K3g ztD5sBzS5WVwJbcFH}jS4>t=IxMV>R4SL7XKWnHVjx<%_^=#Jz4my(04RW%FJ;_+J( z@AoE82G-6WR=_Sy#b*JAs9lnBXXNdaBl7zuef-`M4mtyZ$^l( zG;-W9=Qm&P{su!!MYuX40pVoz_3xX1Z<*0n;gCCEDv=BmR= zkQFRib9pCncHyTqBbejXJig??hprxVxt0c(+wPuD)%UDede)K8<=l!q8XS!Q2%~Xj zR3pul!x1vGdHr`pFfU#)jbr>E7$%^kMi8i={uGl5lrRW|o?lEz6f1~;>3TVcj+v34 zBOLcF^ge5uwF0%xS5AVU@HgBAJ3f&2-}6_iJr)*|A8R*f=N5VL;>;W!Gy zVWNErL0sVUt)VSpYg@E2jGeH}8V>_K1SK{tk4gcjlaT7d1h!3?zK!s3-jR{!4sZ=C}LexZefA6J`B8h$>92KQ<rpB6NAy_#U>tL?R?2Q z859y#8U>vL4{gsve7M`ZyU4T3}nBKIK3Imcr$k-?^ts~|XIq=7XcZ>Lh7 z2#Uy(3e_GZ6b;8|&T3V8FG}sEl7EC?j{CKbbJu4*m7pJ$)pKXFHEo%iu2fCevL#*9 zJ2#Yd)n!~l$|WrM9=Ud89kq*XDMwSXB3s+^1?RAK&pVUWq>^=c7mhx3wPoGD&%M

4Jk*%;@+i>#h%BGu6!jL%2#pj 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/black/__pycache__/report.cpython-312.pyc b/venv/lib/python3.12/site-packages/black/__pycache__/report.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8ce026b8441965373facaa92f9622727580be1d9 GIT binary patch literal 5111 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 O*06id`yFM_E&m@bd!&&7 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/black/__pycache__/rusty.cpython-312.pyc b/venv/lib/python3.12/site-packages/black/__pycache__/rusty.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..74dbbdd4f02cb97bab6fe992813dce91e37762f7 GIT binary patch literal 1566 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�!or7aWZqO*o6^+T+fOXy<*0A-CvJc`dtlK>CvHiW(ER znGz+XP~$18jyg$==lPYKrUh}aIo@_)we3i}?a1F+|D*G-ol9-K31{h?KklrGcCEo; zs572hy_(w)&uxevx>ve+;m~qv+iK~KcA8~&nTvVL1>0v#zsxJ2>z*%L&TEMt{;Z^8?h4ripF|<6&g!_cdcJAJ*|O#?oGX~k zna_*6H_Z>waz6>*<#!9>?)}mBPjk!W+UKq<=hjCLt*Nc|kp|2|TCv>L3y*CH2_P)1wx$I!{=naA+MHQ6r&2977ezs>Z z_x6Fs?pWcIQ3qpK+OkfPT&SpKwWuKuSMB!YqHWRR;N;D<|2TWyY|1`kTyu48Sm`C< zu0U>O_4AkB_bm4PQB}PDV66U7tn_g7RHCBpL;E|Pg{R*s``8$-IQj9pctuyVE8#3z zb$a7Y@0(={eRrW5aQqYJiS=A6^ox8$QQ7M|-q?Fy!LiVpZ0yd1_*w)*@}C|n$0O$C%v><^+detiN%%`+rb2e=B1dcDQ0V8aJef*FF|2mE`ZsH z(=ti-;LkzAfVv~k>rgUMNFHoa36Q5<%5H-c7ptt_s*}c{;8@54Z>M9 z@<0Ez^9N=dgCuG@Ir{AtVkZfE_shP1)qjs_3DlYC~@rFju>W)FXUk)vm#kvzpv@ACvneL ze(9F$r9N5DmTQzg74|b~OExiS7xugmZw4}1ALAU>(f?T^#LLn%t+Vb)unGfVsC$~JHsGx(F;PD%=`+Axi zoCw~=(>|t6)7azVq+;VSA6fIN`~$_vqa{2HM_;rP2aTz*SmAD>$rG54Djl;;`6{U^ zbCcJFttr>1A(^Wte{K=uZIn!5$UXdZ-{Z+tAK?p*_WzPiit2`dOc>z?OHe%~$fQ{d zv+YT>FySme=AV&VyU2<)?Oo5JmtaBJ;-}+j$a5WYH<`*Ypp5l01uu^>16R>6_cbqv zGkn17;ac2wxn}B9N3^a+@;6?hG=@B1%8ohv149Of2B5;jqr}*g>;155KadH&PW_Ux zc*uh%Hre1%a=)3df}!J9ADSySVuabK+e&%qXcWx?h0qyb$*oCWb31HW?jry880K$nly@&jgR_7JJ}|m zILzivNSnaGBJsj<=g1AeupsaCH;nCxjfh(L9$fzFq%c5GZ@Kk~yyuE@QTu zW!RsG&VXFN9(}tZzwC2^JF6rLV~f&gd!ni~<}ANgv2F3l2dCaU1@=<3>(e~%eC{WC zn-(nZI_@|Y+wbJ8HtvZx?z!hKxapjA-gDQiTg?ZJIpE0pXoC*Dkv+3}=Dt0hCr`MEi{yi`p!f#F9o?I^2x?1pLyx_^@g5BUWfYpbMJ^SY9 za?!CR_pvo+*{ZV&yn*?Q6|(e)kEkELi1W+#-P(tWCEP8GxpDW_n7iekr)gn3o#62E zyt_yKq!{+xfA2YrK8$(0m&sB!C0z;

eaTS)EuKW){<|;7_IG`JG3Gu8 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/black/_width_table.py b/venv/lib/python3.12/site-packages/black/_width_table.py new file mode 100644 index 0000000000..f3304e48ed --- /dev/null +++ b/venv/lib/python3.12/site-packages/black/_width_table.py @@ -0,0 +1,478 @@ +# Generated by make_width_table.py +# wcwidth 0.2.6 +# Unicode 15.0.0 +from typing import Final, List, Tuple + +WIDTH_TABLE: Final[List[Tuple[int, int, int]]] = [ + (0, 0, 0), + (1, 31, -1), + (127, 159, -1), + (768, 879, 0), + (1155, 1161, 0), + (1425, 1469, 0), + (1471, 1471, 0), + (1473, 1474, 0), + (1476, 1477, 0), + (1479, 1479, 0), + (1552, 1562, 0), + (1611, 1631, 0), + (1648, 1648, 0), + (1750, 1756, 0), + (1759, 1764, 0), + (1767, 1768, 0), + (1770, 1773, 0), + (1809, 1809, 0), + (1840, 1866, 0), + (1958, 1968, 0), + (2027, 2035, 0), + (2045, 2045, 0), + (2070, 2073, 0), + (2075, 2083, 0), + (2085, 2087, 0), + (2089, 2093, 0), + (2137, 2139, 0), + (2200, 2207, 0), + (2250, 2273, 0), + (2275, 2306, 0), + (2362, 2362, 0), + (2364, 2364, 0), + (2369, 2376, 0), + (2381, 2381, 0), + (2385, 2391, 0), + (2402, 2403, 0), + (2433, 2433, 0), + (2492, 2492, 0), + (2497, 2500, 0), + (2509, 2509, 0), + (2530, 2531, 0), + (2558, 2558, 0), + (2561, 2562, 0), + (2620, 2620, 0), + (2625, 2626, 0), + (2631, 2632, 0), + (2635, 2637, 0), + (2641, 2641, 0), + (2672, 2673, 0), + (2677, 2677, 0), + (2689, 2690, 0), + (2748, 2748, 0), + (2753, 2757, 0), + (2759, 2760, 0), + (2765, 2765, 0), + (2786, 2787, 0), + (2810, 2815, 0), + (2817, 2817, 0), + (2876, 2876, 0), + (2879, 2879, 0), + (2881, 2884, 0), + (2893, 2893, 0), + (2901, 2902, 0), + (2914, 2915, 0), + (2946, 2946, 0), + (3008, 3008, 0), + (3021, 3021, 0), + (3072, 3072, 0), + (3076, 3076, 0), + (3132, 3132, 0), + (3134, 3136, 0), + (3142, 3144, 0), + (3146, 3149, 0), + (3157, 3158, 0), + (3170, 3171, 0), + (3201, 3201, 0), + (3260, 3260, 0), + (3263, 3263, 0), + (3270, 3270, 0), + (3276, 3277, 0), + (3298, 3299, 0), + (3328, 3329, 0), + (3387, 3388, 0), + (3393, 3396, 0), + (3405, 3405, 0), + (3426, 3427, 0), + (3457, 3457, 0), + (3530, 3530, 0), + (3538, 3540, 0), + (3542, 3542, 0), + (3633, 3633, 0), + (3636, 3642, 0), + (3655, 3662, 0), + (3761, 3761, 0), + (3764, 3772, 0), + (3784, 3790, 0), + (3864, 3865, 0), + (3893, 3893, 0), + (3895, 3895, 0), + (3897, 3897, 0), + (3953, 3966, 0), + (3968, 3972, 0), + (3974, 3975, 0), + (3981, 3991, 0), + (3993, 4028, 0), + (4038, 4038, 0), + (4141, 4144, 0), + (4146, 4151, 0), + (4153, 4154, 0), + (4157, 4158, 0), + (4184, 4185, 0), + (4190, 4192, 0), + (4209, 4212, 0), + (4226, 4226, 0), + (4229, 4230, 0), + (4237, 4237, 0), + (4253, 4253, 0), + (4352, 4447, 2), + (4957, 4959, 0), + (5906, 5908, 0), + (5938, 5939, 0), + (5970, 5971, 0), + (6002, 6003, 0), + (6068, 6069, 0), + (6071, 6077, 0), + (6086, 6086, 0), + (6089, 6099, 0), + (6109, 6109, 0), + (6155, 6157, 0), + (6159, 6159, 0), + (6277, 6278, 0), + (6313, 6313, 0), + (6432, 6434, 0), + (6439, 6440, 0), + (6450, 6450, 0), + (6457, 6459, 0), + (6679, 6680, 0), + (6683, 6683, 0), + (6742, 6742, 0), + (6744, 6750, 0), + (6752, 6752, 0), + (6754, 6754, 0), + (6757, 6764, 0), + (6771, 6780, 0), + (6783, 6783, 0), + (6832, 6862, 0), + (6912, 6915, 0), + (6964, 6964, 0), + (6966, 6970, 0), + (6972, 6972, 0), + (6978, 6978, 0), + (7019, 7027, 0), + (7040, 7041, 0), + (7074, 7077, 0), + (7080, 7081, 0), + (7083, 7085, 0), + (7142, 7142, 0), + (7144, 7145, 0), + (7149, 7149, 0), + (7151, 7153, 0), + (7212, 7219, 0), + (7222, 7223, 0), + (7376, 7378, 0), + (7380, 7392, 0), + (7394, 7400, 0), + (7405, 7405, 0), + (7412, 7412, 0), + (7416, 7417, 0), + (7616, 7679, 0), + (8203, 8207, 0), + (8232, 8238, 0), + (8288, 8291, 0), + (8400, 8432, 0), + (8986, 8987, 2), + (9001, 9002, 2), + (9193, 9196, 2), + (9200, 9200, 2), + (9203, 9203, 2), + (9725, 9726, 2), + (9748, 9749, 2), + (9800, 9811, 2), + (9855, 9855, 2), + (9875, 9875, 2), + (9889, 9889, 2), + (9898, 9899, 2), + (9917, 9918, 2), + (9924, 9925, 2), + (9934, 9934, 2), + (9940, 9940, 2), + (9962, 9962, 2), + (9970, 9971, 2), + (9973, 9973, 2), + (9978, 9978, 2), + (9981, 9981, 2), + (9989, 9989, 2), + (9994, 9995, 2), + (10024, 10024, 2), + (10060, 10060, 2), + (10062, 10062, 2), + (10067, 10069, 2), + (10071, 10071, 2), + (10133, 10135, 2), + (10160, 10160, 2), + (10175, 10175, 2), + (11035, 11036, 2), + (11088, 11088, 2), + (11093, 11093, 2), + (11503, 11505, 0), + (11647, 11647, 0), + (11744, 11775, 0), + (11904, 11929, 2), + (11931, 12019, 2), + (12032, 12245, 2), + (12272, 12283, 2), + (12288, 12329, 2), + (12330, 12333, 0), + (12334, 12350, 2), + (12353, 12438, 2), + (12441, 12442, 0), + (12443, 12543, 2), + (12549, 12591, 2), + (12593, 12686, 2), + (12688, 12771, 2), + (12784, 12830, 2), + (12832, 12871, 2), + (12880, 19903, 2), + (19968, 42124, 2), + (42128, 42182, 2), + (42607, 42610, 0), + (42612, 42621, 0), + (42654, 42655, 0), + (42736, 42737, 0), + (43010, 43010, 0), + (43014, 43014, 0), + (43019, 43019, 0), + (43045, 43046, 0), + (43052, 43052, 0), + (43204, 43205, 0), + (43232, 43249, 0), + (43263, 43263, 0), + (43302, 43309, 0), + (43335, 43345, 0), + (43360, 43388, 2), + (43392, 43394, 0), + (43443, 43443, 0), + (43446, 43449, 0), + (43452, 43453, 0), + (43493, 43493, 0), + (43561, 43566, 0), + (43569, 43570, 0), + (43573, 43574, 0), + (43587, 43587, 0), + (43596, 43596, 0), + (43644, 43644, 0), + (43696, 43696, 0), + (43698, 43700, 0), + (43703, 43704, 0), + (43710, 43711, 0), + (43713, 43713, 0), + (43756, 43757, 0), + (43766, 43766, 0), + (44005, 44005, 0), + (44008, 44008, 0), + (44013, 44013, 0), + (44032, 55203, 2), + (63744, 64255, 2), + (64286, 64286, 0), + (65024, 65039, 0), + (65040, 65049, 2), + (65056, 65071, 0), + (65072, 65106, 2), + (65108, 65126, 2), + (65128, 65131, 2), + (65281, 65376, 2), + (65504, 65510, 2), + (66045, 66045, 0), + (66272, 66272, 0), + (66422, 66426, 0), + (68097, 68099, 0), + (68101, 68102, 0), + (68108, 68111, 0), + (68152, 68154, 0), + (68159, 68159, 0), + (68325, 68326, 0), + (68900, 68903, 0), + (69291, 69292, 0), + (69373, 69375, 0), + (69446, 69456, 0), + (69506, 69509, 0), + (69633, 69633, 0), + (69688, 69702, 0), + (69744, 69744, 0), + (69747, 69748, 0), + (69759, 69761, 0), + (69811, 69814, 0), + (69817, 69818, 0), + (69826, 69826, 0), + (69888, 69890, 0), + (69927, 69931, 0), + (69933, 69940, 0), + (70003, 70003, 0), + (70016, 70017, 0), + (70070, 70078, 0), + (70089, 70092, 0), + (70095, 70095, 0), + (70191, 70193, 0), + (70196, 70196, 0), + (70198, 70199, 0), + (70206, 70206, 0), + (70209, 70209, 0), + (70367, 70367, 0), + (70371, 70378, 0), + (70400, 70401, 0), + (70459, 70460, 0), + (70464, 70464, 0), + (70502, 70508, 0), + (70512, 70516, 0), + (70712, 70719, 0), + (70722, 70724, 0), + (70726, 70726, 0), + (70750, 70750, 0), + (70835, 70840, 0), + (70842, 70842, 0), + (70847, 70848, 0), + (70850, 70851, 0), + (71090, 71093, 0), + (71100, 71101, 0), + (71103, 71104, 0), + (71132, 71133, 0), + (71219, 71226, 0), + (71229, 71229, 0), + (71231, 71232, 0), + (71339, 71339, 0), + (71341, 71341, 0), + (71344, 71349, 0), + (71351, 71351, 0), + (71453, 71455, 0), + (71458, 71461, 0), + (71463, 71467, 0), + (71727, 71735, 0), + (71737, 71738, 0), + (71995, 71996, 0), + (71998, 71998, 0), + (72003, 72003, 0), + (72148, 72151, 0), + (72154, 72155, 0), + (72160, 72160, 0), + (72193, 72202, 0), + (72243, 72248, 0), + (72251, 72254, 0), + (72263, 72263, 0), + (72273, 72278, 0), + (72281, 72283, 0), + (72330, 72342, 0), + (72344, 72345, 0), + (72752, 72758, 0), + (72760, 72765, 0), + (72767, 72767, 0), + (72850, 72871, 0), + (72874, 72880, 0), + (72882, 72883, 0), + (72885, 72886, 0), + (73009, 73014, 0), + (73018, 73018, 0), + (73020, 73021, 0), + (73023, 73029, 0), + (73031, 73031, 0), + (73104, 73105, 0), + (73109, 73109, 0), + (73111, 73111, 0), + (73459, 73460, 0), + (73472, 73473, 0), + (73526, 73530, 0), + (73536, 73536, 0), + (73538, 73538, 0), + (78912, 78912, 0), + (78919, 78933, 0), + (92912, 92916, 0), + (92976, 92982, 0), + (94031, 94031, 0), + (94095, 94098, 0), + (94176, 94179, 2), + (94180, 94180, 0), + (94192, 94193, 2), + (94208, 100343, 2), + (100352, 101589, 2), + (101632, 101640, 2), + (110576, 110579, 2), + (110581, 110587, 2), + (110589, 110590, 2), + (110592, 110882, 2), + (110898, 110898, 2), + (110928, 110930, 2), + (110933, 110933, 2), + (110948, 110951, 2), + (110960, 111355, 2), + (113821, 113822, 0), + (118528, 118573, 0), + (118576, 118598, 0), + (119143, 119145, 0), + (119163, 119170, 0), + (119173, 119179, 0), + (119210, 119213, 0), + (119362, 119364, 0), + (121344, 121398, 0), + (121403, 121452, 0), + (121461, 121461, 0), + (121476, 121476, 0), + (121499, 121503, 0), + (121505, 121519, 0), + (122880, 122886, 0), + (122888, 122904, 0), + (122907, 122913, 0), + (122915, 122916, 0), + (122918, 122922, 0), + (123023, 123023, 0), + (123184, 123190, 0), + (123566, 123566, 0), + (123628, 123631, 0), + (124140, 124143, 0), + (125136, 125142, 0), + (125252, 125258, 0), + (126980, 126980, 2), + (127183, 127183, 2), + (127374, 127374, 2), + (127377, 127386, 2), + (127488, 127490, 2), + (127504, 127547, 2), + (127552, 127560, 2), + (127568, 127569, 2), + (127584, 127589, 2), + (127744, 127776, 2), + (127789, 127797, 2), + (127799, 127868, 2), + (127870, 127891, 2), + (127904, 127946, 2), + (127951, 127955, 2), + (127968, 127984, 2), + (127988, 127988, 2), + (127992, 128062, 2), + (128064, 128064, 2), + (128066, 128252, 2), + (128255, 128317, 2), + (128331, 128334, 2), + (128336, 128359, 2), + (128378, 128378, 2), + (128405, 128406, 2), + (128420, 128420, 2), + (128507, 128591, 2), + (128640, 128709, 2), + (128716, 128716, 2), + (128720, 128722, 2), + (128725, 128727, 2), + (128732, 128735, 2), + (128747, 128748, 2), + (128756, 128764, 2), + (128992, 129003, 2), + (129008, 129008, 2), + (129292, 129338, 2), + (129340, 129349, 2), + (129351, 129535, 2), + (129648, 129660, 2), + (129664, 129672, 2), + (129680, 129725, 2), + (129727, 129733, 2), + (129742, 129755, 2), + (129760, 129768, 2), + (129776, 129784, 2), + (131072, 196605, 2), + (196608, 262141, 2), + (917760, 917999, 0), +] diff --git a/venv/lib/python3.12/site-packages/black/brackets.py b/venv/lib/python3.12/site-packages/black/brackets.py new file mode 100644 index 0000000000..37e6b2590e --- /dev/null +++ b/venv/lib/python3.12/site-packages/black/brackets.py @@ -0,0 +1,382 @@ +"""Builds on top of nodes.py to track brackets.""" + +from dataclasses import dataclass, field +from typing import Dict, Final, Iterable, List, Optional, Sequence, Set, Tuple, Union + +from black.nodes import ( + BRACKET, + CLOSING_BRACKETS, + COMPARATORS, + LOGIC_OPERATORS, + MATH_OPERATORS, + OPENING_BRACKETS, + UNPACKING_PARENTS, + VARARGS_PARENTS, + is_vararg, + syms, +) +from blib2to3.pgen2 import token +from blib2to3.pytree import Leaf, Node + +# types +LN = Union[Leaf, Node] +Depth = int +LeafID = int +NodeType = int +Priority = int + + +COMPREHENSION_PRIORITY: Final = 20 +COMMA_PRIORITY: Final = 18 +TERNARY_PRIORITY: Final = 16 +LOGIC_PRIORITY: Final = 14 +STRING_PRIORITY: Final = 12 +COMPARATOR_PRIORITY: Final = 10 +MATH_PRIORITIES: Final = { + token.VBAR: 9, + token.CIRCUMFLEX: 8, + token.AMPER: 7, + token.LEFTSHIFT: 6, + token.RIGHTSHIFT: 6, + token.PLUS: 5, + token.MINUS: 5, + token.STAR: 4, + token.SLASH: 4, + token.DOUBLESLASH: 4, + token.PERCENT: 4, + token.AT: 4, + token.TILDE: 3, + token.DOUBLESTAR: 2, +} +DOT_PRIORITY: Final = 1 + + +class BracketMatchError(Exception): + """Raised when an opening bracket is unable to be matched to a closing bracket.""" + + +@dataclass +class BracketTracker: + """Keeps track of brackets on a line.""" + + depth: int = 0 + bracket_match: Dict[Tuple[Depth, NodeType], Leaf] = field(default_factory=dict) + delimiters: Dict[LeafID, Priority] = field(default_factory=dict) + previous: Optional[Leaf] = None + _for_loop_depths: List[int] = field(default_factory=list) + _lambda_argument_depths: List[int] = field(default_factory=list) + invisible: List[Leaf] = field(default_factory=list) + + def mark(self, leaf: Leaf) -> None: + """Mark `leaf` with bracket-related metadata. Keep track of delimiters. + + All leaves receive an int `bracket_depth` field that stores how deep + within brackets a given leaf is. 0 means there are no enclosing brackets + that started on this line. + + If a leaf is itself a closing bracket and there is a matching opening + bracket earlier, it receives an `opening_bracket` field with which it forms a + pair. This is a one-directional link to avoid reference cycles. Closing + bracket without opening happens on lines continued from previous + breaks, e.g. `) -> "ReturnType":` as part of a funcdef where we place + the return type annotation on its own line of the previous closing RPAR. + + If a leaf is a delimiter (a token on which Black can split the line if + needed) and it's on depth 0, its `id()` is stored in the tracker's + `delimiters` field. + """ + if leaf.type == token.COMMENT: + return + + if ( + self.depth == 0 + and leaf.type in CLOSING_BRACKETS + and (self.depth, leaf.type) not in self.bracket_match + ): + return + + self.maybe_decrement_after_for_loop_variable(leaf) + self.maybe_decrement_after_lambda_arguments(leaf) + if leaf.type in CLOSING_BRACKETS: + self.depth -= 1 + try: + opening_bracket = self.bracket_match.pop((self.depth, leaf.type)) + except KeyError as e: + raise BracketMatchError( + "Unable to match a closing bracket to the following opening" + f" bracket: {leaf}" + ) from e + leaf.opening_bracket = opening_bracket + if not leaf.value: + self.invisible.append(leaf) + leaf.bracket_depth = self.depth + if self.depth == 0: + delim = is_split_before_delimiter(leaf, self.previous) + if delim and self.previous is not None: + self.delimiters[id(self.previous)] = delim + else: + delim = is_split_after_delimiter(leaf) + if delim: + self.delimiters[id(leaf)] = delim + if leaf.type in OPENING_BRACKETS: + self.bracket_match[self.depth, BRACKET[leaf.type]] = leaf + self.depth += 1 + if not leaf.value: + self.invisible.append(leaf) + self.previous = leaf + self.maybe_increment_lambda_arguments(leaf) + self.maybe_increment_for_loop_variable(leaf) + + def any_open_for_or_lambda(self) -> bool: + """Return True if there is an open for or lambda expression on the line. + + See maybe_increment_for_loop_variable and maybe_increment_lambda_arguments + for details.""" + return bool(self._for_loop_depths or self._lambda_argument_depths) + + def any_open_brackets(self) -> bool: + """Return True if there is an yet unmatched open bracket on the line.""" + return bool(self.bracket_match) + + def max_delimiter_priority(self, exclude: Iterable[LeafID] = ()) -> Priority: + """Return the highest priority of a delimiter found on the line. + + Values are consistent with what `is_split_*_delimiter()` return. + Raises ValueError on no delimiters. + """ + return max(v for k, v in self.delimiters.items() if k not in exclude) + + def delimiter_count_with_priority(self, priority: Priority = 0) -> int: + """Return the number of delimiters with the given `priority`. + + If no `priority` is passed, defaults to max priority on the line. + """ + if not self.delimiters: + return 0 + + priority = priority or self.max_delimiter_priority() + return sum(1 for p in self.delimiters.values() if p == priority) + + def maybe_increment_for_loop_variable(self, leaf: Leaf) -> bool: + """In a for loop, or comprehension, the variables are often unpacks. + + To avoid splitting on the comma in this situation, increase the depth of + tokens between `for` and `in`. + """ + if leaf.type == token.NAME and leaf.value == "for": + self.depth += 1 + self._for_loop_depths.append(self.depth) + return True + + return False + + def maybe_decrement_after_for_loop_variable(self, leaf: Leaf) -> bool: + """See `maybe_increment_for_loop_variable` above for explanation.""" + if ( + self._for_loop_depths + and self._for_loop_depths[-1] == self.depth + and leaf.type == token.NAME + and leaf.value == "in" + ): + self.depth -= 1 + self._for_loop_depths.pop() + return True + + return False + + def maybe_increment_lambda_arguments(self, leaf: Leaf) -> bool: + """In a lambda expression, there might be more than one argument. + + To avoid splitting on the comma in this situation, increase the depth of + tokens between `lambda` and `:`. + """ + if leaf.type == token.NAME and leaf.value == "lambda": + self.depth += 1 + self._lambda_argument_depths.append(self.depth) + return True + + return False + + def maybe_decrement_after_lambda_arguments(self, leaf: Leaf) -> bool: + """See `maybe_increment_lambda_arguments` above for explanation.""" + if ( + self._lambda_argument_depths + and self._lambda_argument_depths[-1] == self.depth + and leaf.type == token.COLON + ): + self.depth -= 1 + self._lambda_argument_depths.pop() + return True + + return False + + def get_open_lsqb(self) -> Optional[Leaf]: + """Return the most recent opening square bracket (if any).""" + return self.bracket_match.get((self.depth - 1, token.RSQB)) + + +def is_split_after_delimiter(leaf: Leaf) -> Priority: + """Return the priority of the `leaf` delimiter, given a line break after it. + + The delimiter priorities returned here are from those delimiters that would + cause a line break after themselves. + + Higher numbers are higher priority. + """ + if leaf.type == token.COMMA: + return COMMA_PRIORITY + + return 0 + + +def is_split_before_delimiter(leaf: Leaf, previous: Optional[Leaf] = None) -> Priority: + """Return the priority of the `leaf` delimiter, given a line break before it. + + The delimiter priorities returned here are from those delimiters that would + cause a line break before themselves. + + Higher numbers are higher priority. + """ + if is_vararg(leaf, within=VARARGS_PARENTS | UNPACKING_PARENTS): + # * and ** might also be MATH_OPERATORS but in this case they are not. + # Don't treat them as a delimiter. + return 0 + + if ( + leaf.type == token.DOT + and leaf.parent + and leaf.parent.type not in {syms.import_from, syms.dotted_name} + and (previous is None or previous.type in CLOSING_BRACKETS) + ): + return DOT_PRIORITY + + if ( + leaf.type in MATH_OPERATORS + and leaf.parent + and leaf.parent.type not in {syms.factor, syms.star_expr} + ): + return MATH_PRIORITIES[leaf.type] + + if leaf.type in COMPARATORS: + return COMPARATOR_PRIORITY + + if ( + leaf.type == token.STRING + and previous is not None + and previous.type == token.STRING + ): + return STRING_PRIORITY + + if leaf.type not in {token.NAME, token.ASYNC}: + return 0 + + if ( + leaf.value == "for" + and leaf.parent + and leaf.parent.type in {syms.comp_for, syms.old_comp_for} + or leaf.type == token.ASYNC + ): + if ( + not isinstance(leaf.prev_sibling, Leaf) + or leaf.prev_sibling.value != "async" + ): + return COMPREHENSION_PRIORITY + + if ( + leaf.value == "if" + and leaf.parent + and leaf.parent.type in {syms.comp_if, syms.old_comp_if} + ): + return COMPREHENSION_PRIORITY + + if leaf.value in {"if", "else"} and leaf.parent and leaf.parent.type == syms.test: + return TERNARY_PRIORITY + + if leaf.value == "is": + return COMPARATOR_PRIORITY + + if ( + leaf.value == "in" + and leaf.parent + and leaf.parent.type in {syms.comp_op, syms.comparison} + and not ( + previous is not None + and previous.type == token.NAME + and previous.value == "not" + ) + ): + return COMPARATOR_PRIORITY + + if ( + leaf.value == "not" + and leaf.parent + and leaf.parent.type == syms.comp_op + and not ( + previous is not None + and previous.type == token.NAME + and previous.value == "is" + ) + ): + return COMPARATOR_PRIORITY + + if leaf.value in LOGIC_OPERATORS and leaf.parent: + return LOGIC_PRIORITY + + return 0 + + +def max_delimiter_priority_in_atom(node: LN) -> Priority: + """Return maximum delimiter priority inside `node`. + + This is specific to atoms with contents contained in a pair of parentheses. + If `node` isn't an atom or there are no enclosing parentheses, returns 0. + """ + if node.type != syms.atom: + return 0 + + first = node.children[0] + last = node.children[-1] + if not (first.type == token.LPAR and last.type == token.RPAR): + return 0 + + bt = BracketTracker() + for c in node.children[1:-1]: + if isinstance(c, Leaf): + bt.mark(c) + else: + for leaf in c.leaves(): + bt.mark(leaf) + try: + return bt.max_delimiter_priority() + + except ValueError: + return 0 + + +def get_leaves_inside_matching_brackets(leaves: Sequence[Leaf]) -> Set[LeafID]: + """Return leaves that are inside matching brackets. + + The input `leaves` can have non-matching brackets at the head or tail parts. + Matching brackets are included. + """ + try: + # Start with the first opening bracket and ignore closing brackets before. + start_index = next( + i for i, l in enumerate(leaves) if l.type in OPENING_BRACKETS + ) + except StopIteration: + return set() + bracket_stack = [] + ids = set() + for i in range(start_index, len(leaves)): + leaf = leaves[i] + if leaf.type in OPENING_BRACKETS: + bracket_stack.append((BRACKET[leaf.type], i)) + if leaf.type in CLOSING_BRACKETS: + if bracket_stack and leaf.type == bracket_stack[-1][0]: + _, start = bracket_stack.pop() + for j in range(start, i + 1): + ids.add(id(leaves[j])) + else: + break + return ids diff --git a/venv/lib/python3.12/site-packages/black/cache.py b/venv/lib/python3.12/site-packages/black/cache.py new file mode 100644 index 0000000000..35bddb573d --- /dev/null +++ b/venv/lib/python3.12/site-packages/black/cache.py @@ -0,0 +1,150 @@ +"""Caching of formatted files with feature-based invalidation.""" + +import hashlib +import os +import pickle +import sys +import tempfile +from dataclasses import dataclass, field +from pathlib import Path +from typing import Dict, Iterable, NamedTuple, Set, Tuple + +from platformdirs import user_cache_dir + +from _black_version import version as __version__ +from black.mode import Mode +from black.output import err + +if sys.version_info >= (3, 11): + from typing import Self +else: + from typing_extensions import Self + + +class FileData(NamedTuple): + st_mtime: float + st_size: int + hash: str + + +def get_cache_dir() -> Path: + """Get the cache directory used by black. + + Users can customize this directory on all systems using `BLACK_CACHE_DIR` + environment variable. By default, the cache directory is the user cache directory + under the black application. + + This result is immediately set to a constant `black.cache.CACHE_DIR` as to avoid + repeated calls. + """ + # NOTE: Function mostly exists as a clean way to test getting the cache directory. + default_cache_dir = user_cache_dir("black") + cache_dir = Path(os.environ.get("BLACK_CACHE_DIR", default_cache_dir)) + cache_dir = cache_dir / __version__ + return cache_dir + + +CACHE_DIR = get_cache_dir() + + +def get_cache_file(mode: Mode) -> Path: + return CACHE_DIR / f"cache.{mode.get_cache_key()}.pickle" + + +@dataclass +class Cache: + mode: Mode + cache_file: Path + file_data: Dict[str, FileData] = field(default_factory=dict) + + @classmethod + def read(cls, mode: Mode) -> Self: + """Read the cache if it exists and is well-formed. + + If it is not well-formed, the call to write later should + resolve the issue. + """ + cache_file = get_cache_file(mode) + try: + exists = cache_file.exists() + except OSError as e: + # Likely file too long; see #4172 and #4174 + err(f"Unable to read cache file {cache_file} due to {e}") + return cls(mode, cache_file) + if not exists: + return cls(mode, cache_file) + + with cache_file.open("rb") as fobj: + try: + data: Dict[str, Tuple[float, int, str]] = pickle.load(fobj) + file_data = {k: FileData(*v) for k, v in data.items()} + except (pickle.UnpicklingError, ValueError, IndexError): + return cls(mode, cache_file) + + return cls(mode, cache_file, file_data) + + @staticmethod + def hash_digest(path: Path) -> str: + """Return hash digest for path.""" + + data = path.read_bytes() + return hashlib.sha256(data).hexdigest() + + @staticmethod + def get_file_data(path: Path) -> FileData: + """Return file data for path.""" + + stat = path.stat() + hash = Cache.hash_digest(path) + return FileData(stat.st_mtime, stat.st_size, hash) + + def is_changed(self, source: Path) -> bool: + """Check if source has changed compared to cached version.""" + res_src = source.resolve() + old = self.file_data.get(str(res_src)) + if old is None: + return True + + st = res_src.stat() + if st.st_size != old.st_size: + return True + if st.st_mtime != old.st_mtime: + new_hash = Cache.hash_digest(res_src) + if new_hash != old.hash: + return True + return False + + def filtered_cached(self, sources: Iterable[Path]) -> Tuple[Set[Path], Set[Path]]: + """Split an iterable of paths in `sources` into two sets. + + The first contains paths of files that modified on disk or are not in the + cache. The other contains paths to non-modified files. + """ + changed: Set[Path] = set() + done: Set[Path] = set() + for src in sources: + if self.is_changed(src): + changed.add(src) + else: + done.add(src) + return changed, done + + def write(self, sources: Iterable[Path]) -> None: + """Update the cache file data and write a new cache file.""" + self.file_data.update( + **{str(src.resolve()): Cache.get_file_data(src) for src in sources} + ) + try: + CACHE_DIR.mkdir(parents=True, exist_ok=True) + with tempfile.NamedTemporaryFile( + dir=str(self.cache_file.parent), delete=False + ) as f: + # We store raw tuples in the cache because pickling NamedTuples + # doesn't work with mypyc on Python 3.8, and because it's faster. + data: Dict[str, Tuple[float, int, str]] = { + k: (*v,) for k, v in self.file_data.items() + } + pickle.dump(data, f, protocol=4) + os.replace(f.name, self.cache_file) + except OSError: + pass diff --git a/venv/lib/python3.12/site-packages/black/comments.py b/venv/lib/python3.12/site-packages/black/comments.py new file mode 100644 index 0000000000..a835f58a90 --- /dev/null +++ b/venv/lib/python3.12/site-packages/black/comments.py @@ -0,0 +1,415 @@ +import re +from dataclasses import dataclass +from functools import lru_cache +from typing import Collection, Final, Iterator, List, Optional, Tuple, Union + +from black.mode import Mode, Preview +from black.nodes import ( + CLOSING_BRACKETS, + STANDALONE_COMMENT, + WHITESPACE, + container_of, + first_leaf_of, + make_simple_prefix, + preceding_leaf, + syms, +) +from blib2to3.pgen2 import token +from blib2to3.pytree import Leaf, Node + +# types +LN = Union[Leaf, Node] + +FMT_OFF: Final = {"# fmt: off", "# fmt:off", "# yapf: disable"} +FMT_SKIP: Final = {"# fmt: skip", "# fmt:skip"} +FMT_ON: Final = {"# fmt: on", "# fmt:on", "# yapf: enable"} + +COMMENT_EXCEPTIONS = " !:#'" +_COMMENT_PREFIX = "# " +_COMMENT_LIST_SEPARATOR = ";" + + +@dataclass +class ProtoComment: + """Describes a piece of syntax that is a comment. + + It's not a :class:`blib2to3.pytree.Leaf` so that: + + * it can be cached (`Leaf` objects should not be reused more than once as + they store their lineno, column, prefix, and parent information); + * `newlines` and `consumed` fields are kept separate from the `value`. This + simplifies handling of special marker comments like ``# fmt: off/on``. + """ + + type: int # token.COMMENT or STANDALONE_COMMENT + value: str # content of the comment + newlines: int # how many newlines before the comment + consumed: int # how many characters of the original leaf's prefix did we consume + form_feed: bool # is there a form feed before the comment + leading_whitespace: str # leading whitespace before the comment, if any + + +def generate_comments(leaf: LN) -> Iterator[Leaf]: + """Clean the prefix of the `leaf` and generate comments from it, if any. + + Comments in lib2to3 are shoved into the whitespace prefix. This happens + in `pgen2/driver.py:Driver.parse_tokens()`. This was a brilliant implementation + move because it does away with modifying the grammar to include all the + possible places in which comments can be placed. + + The sad consequence for us though is that comments don't "belong" anywhere. + This is why this function generates simple parentless Leaf objects for + comments. We simply don't know what the correct parent should be. + + No matter though, we can live without this. We really only need to + differentiate between inline and standalone comments. The latter don't + share the line with any code. + + Inline comments are emitted as regular token.COMMENT leaves. Standalone + are emitted with a fake STANDALONE_COMMENT token identifier. + """ + total_consumed = 0 + for pc in list_comments(leaf.prefix, is_endmarker=leaf.type == token.ENDMARKER): + total_consumed = pc.consumed + prefix = make_simple_prefix(pc.newlines, pc.form_feed) + yield Leaf(pc.type, pc.value, prefix=prefix) + normalize_trailing_prefix(leaf, total_consumed) + + +@lru_cache(maxsize=4096) +def list_comments(prefix: str, *, is_endmarker: bool) -> List[ProtoComment]: + """Return a list of :class:`ProtoComment` objects parsed from the given `prefix`.""" + result: List[ProtoComment] = [] + if not prefix or "#" not in prefix: + return result + + consumed = 0 + nlines = 0 + ignored_lines = 0 + form_feed = False + for index, full_line in enumerate(re.split("\r?\n", prefix)): + consumed += len(full_line) + 1 # adding the length of the split '\n' + match = re.match(r"^(\s*)(\S.*|)$", full_line) + assert match + whitespace, line = match.groups() + if not line: + nlines += 1 + if "\f" in full_line: + form_feed = True + if not line.startswith("#"): + # Escaped newlines outside of a comment are not really newlines at + # all. We treat a single-line comment following an escaped newline + # as a simple trailing comment. + if line.endswith("\\"): + ignored_lines += 1 + continue + + if index == ignored_lines and not is_endmarker: + comment_type = token.COMMENT # simple trailing comment + else: + comment_type = STANDALONE_COMMENT + comment = make_comment(line) + result.append( + ProtoComment( + type=comment_type, + value=comment, + newlines=nlines, + consumed=consumed, + form_feed=form_feed, + leading_whitespace=whitespace, + ) + ) + form_feed = False + nlines = 0 + return result + + +def normalize_trailing_prefix(leaf: LN, total_consumed: int) -> None: + """Normalize the prefix that's left over after generating comments. + + Note: don't use backslashes for formatting or you'll lose your voting rights. + """ + remainder = leaf.prefix[total_consumed:] + if "\\" not in remainder: + nl_count = remainder.count("\n") + form_feed = "\f" in remainder and remainder.endswith("\n") + leaf.prefix = make_simple_prefix(nl_count, form_feed) + return + + leaf.prefix = "" + + +def make_comment(content: str) -> str: + """Return a consistently formatted comment from the given `content` string. + + All comments (except for "##", "#!", "#:", '#'") should have a single + space between the hash sign and the content. + + If `content` didn't start with a hash sign, one is provided. + """ + content = content.rstrip() + if not content: + return "#" + + if content[0] == "#": + content = content[1:] + NON_BREAKING_SPACE = " " + if ( + content + and content[0] == NON_BREAKING_SPACE + and not content.lstrip().startswith("type:") + ): + content = " " + content[1:] # Replace NBSP by a simple space + if content and content[0] not in COMMENT_EXCEPTIONS: + content = " " + content + return "#" + content + + +def normalize_fmt_off( + node: Node, mode: Mode, lines: Collection[Tuple[int, int]] +) -> None: + """Convert content between `# fmt: off`/`# fmt: on` into standalone comments.""" + try_again = True + while try_again: + try_again = convert_one_fmt_off_pair(node, mode, lines) + + +def convert_one_fmt_off_pair( + node: Node, mode: Mode, lines: Collection[Tuple[int, int]] +) -> bool: + """Convert content of a single `# fmt: off`/`# fmt: on` into a standalone comment. + + Returns True if a pair was converted. + """ + for leaf in node.leaves(): + previous_consumed = 0 + for comment in list_comments(leaf.prefix, is_endmarker=False): + is_fmt_off = comment.value in FMT_OFF + is_fmt_skip = _contains_fmt_skip_comment(comment.value, mode) + if (not is_fmt_off and not is_fmt_skip) or ( + # Invalid use when `# fmt: off` is applied before a closing bracket. + is_fmt_off + and leaf.type in CLOSING_BRACKETS + ): + previous_consumed = comment.consumed + continue + # We only want standalone comments. If there's no previous leaf or + # the previous leaf is indentation, it's a standalone comment in + # disguise. + if comment.type != STANDALONE_COMMENT: + prev = preceding_leaf(leaf) + if prev: + if is_fmt_off and prev.type not in WHITESPACE: + continue + if is_fmt_skip and prev.type in WHITESPACE: + continue + + ignored_nodes = list(generate_ignored_nodes(leaf, comment, mode)) + if not ignored_nodes: + continue + + first = ignored_nodes[0] # Can be a container node with the `leaf`. + parent = first.parent + prefix = first.prefix + if comment.value in FMT_OFF: + first.prefix = prefix[comment.consumed :] + if is_fmt_skip: + first.prefix = "" + standalone_comment_prefix = prefix + else: + standalone_comment_prefix = ( + prefix[:previous_consumed] + "\n" * comment.newlines + ) + hidden_value = "".join(str(n) for n in ignored_nodes) + comment_lineno = leaf.lineno - comment.newlines + if comment.value in FMT_OFF: + fmt_off_prefix = "" + if len(lines) > 0 and not any( + line[0] <= comment_lineno <= line[1] for line in lines + ): + # keeping indentation of comment by preserving original whitespaces. + fmt_off_prefix = prefix.split(comment.value)[0] + if "\n" in fmt_off_prefix: + fmt_off_prefix = fmt_off_prefix.split("\n")[-1] + standalone_comment_prefix += fmt_off_prefix + hidden_value = comment.value + "\n" + hidden_value + if is_fmt_skip: + hidden_value += ( + comment.leading_whitespace + if Preview.no_normalize_fmt_skip_whitespace in mode + else " " + ) + comment.value + if hidden_value.endswith("\n"): + # That happens when one of the `ignored_nodes` ended with a NEWLINE + # leaf (possibly followed by a DEDENT). + hidden_value = hidden_value[:-1] + first_idx: Optional[int] = None + for ignored in ignored_nodes: + index = ignored.remove() + if first_idx is None: + first_idx = index + assert parent is not None, "INTERNAL ERROR: fmt: on/off handling (1)" + assert first_idx is not None, "INTERNAL ERROR: fmt: on/off handling (2)" + parent.insert_child( + first_idx, + Leaf( + STANDALONE_COMMENT, + hidden_value, + prefix=standalone_comment_prefix, + fmt_pass_converted_first_leaf=first_leaf_of(first), + ), + ) + return True + + return False + + +def generate_ignored_nodes( + leaf: Leaf, comment: ProtoComment, mode: Mode +) -> Iterator[LN]: + """Starting from the container of `leaf`, generate all leaves until `# fmt: on`. + + If comment is skip, returns leaf only. + Stops at the end of the block. + """ + if _contains_fmt_skip_comment(comment.value, mode): + yield from _generate_ignored_nodes_from_fmt_skip(leaf, comment) + return + container: Optional[LN] = container_of(leaf) + while container is not None and container.type != token.ENDMARKER: + if is_fmt_on(container): + return + + # fix for fmt: on in children + if children_contains_fmt_on(container): + for index, child in enumerate(container.children): + if isinstance(child, Leaf) and is_fmt_on(child): + if child.type in CLOSING_BRACKETS: + # This means `# fmt: on` is placed at a different bracket level + # than `# fmt: off`. This is an invalid use, but as a courtesy, + # we include this closing bracket in the ignored nodes. + # The alternative is to fail the formatting. + yield child + return + if ( + child.type == token.INDENT + and index < len(container.children) - 1 + and children_contains_fmt_on(container.children[index + 1]) + ): + # This means `# fmt: on` is placed right after an indentation + # level, and we shouldn't swallow the previous INDENT token. + return + if children_contains_fmt_on(child): + return + yield child + else: + if container.type == token.DEDENT and container.next_sibling is None: + # This can happen when there is no matching `# fmt: on` comment at the + # same level as `# fmt: on`. We need to keep this DEDENT. + return + yield container + container = container.next_sibling + + +def _generate_ignored_nodes_from_fmt_skip( + leaf: Leaf, comment: ProtoComment +) -> Iterator[LN]: + """Generate all leaves that should be ignored by the `# fmt: skip` from `leaf`.""" + prev_sibling = leaf.prev_sibling + parent = leaf.parent + # Need to properly format the leaf prefix to compare it to comment.value, + # which is also formatted + comments = list_comments(leaf.prefix, is_endmarker=False) + if not comments or comment.value != comments[0].value: + return + if prev_sibling is not None: + leaf.prefix = "" + siblings = [prev_sibling] + while "\n" not in prev_sibling.prefix and prev_sibling.prev_sibling is not None: + prev_sibling = prev_sibling.prev_sibling + siblings.insert(0, prev_sibling) + yield from siblings + elif ( + parent is not None and parent.type == syms.suite and leaf.type == token.NEWLINE + ): + # The `# fmt: skip` is on the colon line of the if/while/def/class/... + # statements. The ignored nodes should be previous siblings of the + # parent suite node. + leaf.prefix = "" + ignored_nodes: List[LN] = [] + parent_sibling = parent.prev_sibling + while parent_sibling is not None and parent_sibling.type != syms.suite: + ignored_nodes.insert(0, parent_sibling) + parent_sibling = parent_sibling.prev_sibling + # Special case for `async_stmt` where the ASYNC token is on the + # grandparent node. + grandparent = parent.parent + if ( + grandparent is not None + and grandparent.prev_sibling is not None + and grandparent.prev_sibling.type == token.ASYNC + ): + ignored_nodes.insert(0, grandparent.prev_sibling) + yield from iter(ignored_nodes) + + +def is_fmt_on(container: LN) -> bool: + """Determine whether formatting is switched on within a container. + Determined by whether the last `# fmt:` comment is `on` or `off`. + """ + fmt_on = False + for comment in list_comments(container.prefix, is_endmarker=False): + if comment.value in FMT_ON: + fmt_on = True + elif comment.value in FMT_OFF: + fmt_on = False + return fmt_on + + +def children_contains_fmt_on(container: LN) -> bool: + """Determine if children have formatting switched on.""" + for child in container.children: + leaf = first_leaf_of(child) + if leaf is not None and is_fmt_on(leaf): + return True + + return False + + +def contains_pragma_comment(comment_list: List[Leaf]) -> bool: + """ + Returns: + True iff one of the comments in @comment_list is a pragma used by one + of the more common static analysis tools for python (e.g. mypy, flake8, + pylint). + """ + for comment in comment_list: + if comment.value.startswith(("# type:", "# noqa", "# pylint:")): + return True + + return False + + +def _contains_fmt_skip_comment(comment_line: str, mode: Mode) -> bool: + """ + Checks if the given comment contains FMT_SKIP alone or paired with other comments. + Matching styles: + # fmt:skip <-- single comment + # noqa:XXX # fmt:skip # a nice line <-- multiple comments (Preview) + # pylint:XXX; fmt:skip <-- list of comments (; separated, Preview) + """ + semantic_comment_blocks = [ + comment_line, + *[ + _COMMENT_PREFIX + comment.strip() + for comment in comment_line.split(_COMMENT_PREFIX)[1:] + ], + *[ + _COMMENT_PREFIX + comment.strip() + for comment in comment_line.strip(_COMMENT_PREFIX).split( + _COMMENT_LIST_SEPARATOR + ) + ], + ] + + return any(comment in FMT_SKIP for comment in semantic_comment_blocks) diff --git a/venv/lib/python3.12/site-packages/black/concurrency.py b/venv/lib/python3.12/site-packages/black/concurrency.py new file mode 100644 index 0000000000..ff0a8f5fd3 --- /dev/null +++ b/venv/lib/python3.12/site-packages/black/concurrency.py @@ -0,0 +1,190 @@ +""" +Formatting many files at once via multiprocessing. Contains entrypoint and utilities. + +NOTE: this module is only imported if we need to format several files at once. +""" + +import asyncio +import logging +import os +import signal +import sys +import traceback +from concurrent.futures import Executor, ProcessPoolExecutor, ThreadPoolExecutor +from multiprocessing import Manager +from pathlib import Path +from typing import Any, Iterable, Optional, Set + +from mypy_extensions import mypyc_attr + +from black import WriteBack, format_file_in_place +from black.cache import Cache +from black.mode import Mode +from black.output import err +from black.report import Changed, Report + + +def maybe_install_uvloop() -> None: + """If our environment has uvloop installed we use it. + + This is called only from command-line entry points to avoid + interfering with the parent process if Black is used as a library. + """ + try: + import uvloop + + uvloop.install() + except ImportError: + pass + + +def cancel(tasks: Iterable["asyncio.Future[Any]"]) -> None: + """asyncio signal handler that cancels all `tasks` and reports to stderr.""" + err("Aborted!") + for task in tasks: + task.cancel() + + +def shutdown(loop: asyncio.AbstractEventLoop) -> None: + """Cancel all pending tasks on `loop`, wait for them, and close the loop.""" + try: + # This part is borrowed from asyncio/runners.py in Python 3.7b2. + to_cancel = [task for task in asyncio.all_tasks(loop) if not task.done()] + if not to_cancel: + return + + for task in to_cancel: + task.cancel() + loop.run_until_complete(asyncio.gather(*to_cancel, return_exceptions=True)) + finally: + # `concurrent.futures.Future` objects cannot be cancelled once they + # are already running. There might be some when the `shutdown()` happened. + # Silence their logger's spew about the event loop being closed. + cf_logger = logging.getLogger("concurrent.futures") + cf_logger.setLevel(logging.CRITICAL) + loop.close() + + +# diff-shades depends on being to monkeypatch this function to operate. I know it's +# not ideal, but this shouldn't cause any issues ... hopefully. ~ichard26 +@mypyc_attr(patchable=True) +def reformat_many( + sources: Set[Path], + fast: bool, + write_back: WriteBack, + mode: Mode, + report: Report, + workers: Optional[int], +) -> None: + """Reformat multiple files using a ProcessPoolExecutor.""" + maybe_install_uvloop() + + executor: Executor + if workers is None: + workers = int(os.environ.get("BLACK_NUM_WORKERS", 0)) + workers = workers or os.cpu_count() or 1 + if sys.platform == "win32": + # Work around https://bugs.python.org/issue26903 + workers = min(workers, 60) + try: + executor = ProcessPoolExecutor(max_workers=workers) + except (ImportError, NotImplementedError, OSError): + # we arrive here if the underlying system does not support multi-processing + # like in AWS Lambda or Termux, in which case we gracefully fallback to + # a ThreadPoolExecutor with just a single worker (more workers would not do us + # any good due to the Global Interpreter Lock) + executor = ThreadPoolExecutor(max_workers=1) + + loop = asyncio.new_event_loop() + asyncio.set_event_loop(loop) + try: + loop.run_until_complete( + schedule_formatting( + sources=sources, + fast=fast, + write_back=write_back, + mode=mode, + report=report, + loop=loop, + executor=executor, + ) + ) + finally: + try: + shutdown(loop) + finally: + asyncio.set_event_loop(None) + if executor is not None: + executor.shutdown() + + +async def schedule_formatting( + sources: Set[Path], + fast: bool, + write_back: WriteBack, + mode: Mode, + report: "Report", + loop: asyncio.AbstractEventLoop, + executor: "Executor", +) -> None: + """Run formatting of `sources` in parallel using the provided `executor`. + + (Use ProcessPoolExecutors for actual parallelism.) + + `write_back`, `fast`, and `mode` options are passed to + :func:`format_file_in_place`. + """ + cache = Cache.read(mode) + if write_back not in (WriteBack.DIFF, WriteBack.COLOR_DIFF): + sources, cached = cache.filtered_cached(sources) + for src in sorted(cached): + report.done(src, Changed.CACHED) + if not sources: + return + + cancelled = [] + sources_to_cache = [] + lock = None + if write_back in (WriteBack.DIFF, WriteBack.COLOR_DIFF): + # For diff output, we need locks to ensure we don't interleave output + # from different processes. + manager = Manager() + lock = manager.Lock() + tasks = { + asyncio.ensure_future( + loop.run_in_executor( + executor, format_file_in_place, src, fast, mode, write_back, lock + ) + ): src + for src in sorted(sources) + } + pending = tasks.keys() + try: + loop.add_signal_handler(signal.SIGINT, cancel, pending) + loop.add_signal_handler(signal.SIGTERM, cancel, pending) + except NotImplementedError: + # There are no good alternatives for these on Windows. + pass + while pending: + done, _ = await asyncio.wait(pending, return_when=asyncio.FIRST_COMPLETED) + for task in done: + src = tasks.pop(task) + if task.cancelled(): + cancelled.append(task) + elif exc := task.exception(): + if report.verbose: + traceback.print_exception(type(exc), exc, exc.__traceback__) + report.failed(src, str(exc)) + else: + changed = Changed.YES if task.result() else Changed.NO + # If the file was written back or was successfully checked as + # well-formatted, store this information in the cache. + if write_back is WriteBack.YES or ( + write_back is WriteBack.CHECK and changed is Changed.NO + ): + sources_to_cache.append(src) + report.done(src, changed) + if cancelled: + await asyncio.gather(*cancelled, return_exceptions=True) + if sources_to_cache: + cache.write(sources_to_cache) diff --git a/venv/lib/python3.12/site-packages/black/const.py b/venv/lib/python3.12/site-packages/black/const.py new file mode 100644 index 0000000000..ee466679c7 --- /dev/null +++ b/venv/lib/python3.12/site-packages/black/const.py @@ -0,0 +1,4 @@ +DEFAULT_LINE_LENGTH = 88 +DEFAULT_EXCLUDES = r"/(\.direnv|\.eggs|\.git|\.hg|\.ipynb_checkpoints|\.mypy_cache|\.nox|\.pytest_cache|\.ruff_cache|\.tox|\.svn|\.venv|\.vscode|__pypackages__|_build|buck-out|build|dist|venv)/" # noqa: B950 +DEFAULT_INCLUDES = r"(\.pyi?|\.ipynb)$" +STDIN_PLACEHOLDER = "__BLACK_STDIN_FILENAME__" diff --git a/venv/lib/python3.12/site-packages/black/debug.py b/venv/lib/python3.12/site-packages/black/debug.py new file mode 100644 index 0000000000..cebc48765b --- /dev/null +++ b/venv/lib/python3.12/site-packages/black/debug.py @@ -0,0 +1,54 @@ +from dataclasses import dataclass, field +from typing import Any, Iterator, List, TypeVar, Union + +from black.nodes import Visitor +from black.output import out +from black.parsing import lib2to3_parse +from blib2to3.pgen2 import token +from blib2to3.pytree import Leaf, Node, type_repr + +LN = Union[Leaf, Node] +T = TypeVar("T") + + +@dataclass +class DebugVisitor(Visitor[T]): + tree_depth: int = 0 + list_output: List[str] = field(default_factory=list) + print_output: bool = True + + def out(self, message: str, *args: Any, **kwargs: Any) -> None: + self.list_output.append(message) + if self.print_output: + out(message, *args, **kwargs) + + def visit_default(self, node: LN) -> Iterator[T]: + indent = " " * (2 * self.tree_depth) + if isinstance(node, Node): + _type = type_repr(node.type) + self.out(f"{indent}{_type}", fg="yellow") + self.tree_depth += 1 + for child in node.children: + yield from self.visit(child) + + self.tree_depth -= 1 + self.out(f"{indent}/{_type}", fg="yellow", bold=False) + else: + _type = token.tok_name.get(node.type, str(node.type)) + self.out(f"{indent}{_type}", fg="blue", nl=False) + if node.prefix: + # We don't have to handle prefixes for `Node` objects since + # that delegates to the first child anyway. + self.out(f" {node.prefix!r}", fg="green", bold=False, nl=False) + self.out(f" {node.value!r}", fg="blue", bold=False) + + @classmethod + def show(cls, code: Union[str, Leaf, Node]) -> None: + """Pretty-print the lib2to3 AST of a given string of `code`. + + Convenience method for debugging. + """ + v: DebugVisitor[None] = DebugVisitor() + if isinstance(code, str): + code = lib2to3_parse(code) + list(v.visit(code)) diff --git a/venv/lib/python3.12/site-packages/black/files.py b/venv/lib/python3.12/site-packages/black/files.py new file mode 100644 index 0000000000..d4c1208076 --- /dev/null +++ b/venv/lib/python3.12/site-packages/black/files.py @@ -0,0 +1,438 @@ +import io +import os +import sys +from functools import lru_cache +from pathlib import Path +from typing import ( + TYPE_CHECKING, + Any, + Dict, + Iterable, + Iterator, + List, + Optional, + Pattern, + Sequence, + Tuple, + Union, +) + +from mypy_extensions import mypyc_attr +from packaging.specifiers import InvalidSpecifier, Specifier, SpecifierSet +from packaging.version import InvalidVersion, Version +from pathspec import PathSpec +from pathspec.patterns.gitwildmatch import GitWildMatchPatternError + +if sys.version_info >= (3, 11): + try: + import tomllib + except ImportError: + # Help users on older alphas + if not TYPE_CHECKING: + import tomli as tomllib +else: + import tomli as tomllib + +from black.handle_ipynb_magics import jupyter_dependencies_are_installed +from black.mode import TargetVersion +from black.output import err +from black.report import Report + +if TYPE_CHECKING: + import colorama # noqa: F401 + + +@lru_cache +def _load_toml(path: Union[Path, str]) -> Dict[str, Any]: + with open(path, "rb") as f: + return tomllib.load(f) + + +@lru_cache +def _cached_resolve(path: Path) -> Path: + return path.resolve() + + +@lru_cache +def find_project_root( + srcs: Sequence[str], stdin_filename: Optional[str] = None +) -> Tuple[Path, str]: + """Return a directory containing .git, .hg, or pyproject.toml. + + pyproject.toml files are only considered if they contain a [tool.black] + section and are ignored otherwise. + + That directory will be a common parent of all files and directories + passed in `srcs`. + + If no directory in the tree contains a marker that would specify it's the + project root, the root of the file system is returned. + + Returns a two-tuple with the first element as the project root path and + the second element as a string describing the method by which the + project root was discovered. + """ + if stdin_filename is not None: + srcs = tuple(stdin_filename if s == "-" else s for s in srcs) + if not srcs: + srcs = [str(_cached_resolve(Path.cwd()))] + + path_srcs = [_cached_resolve(Path(Path.cwd(), src)) for src in srcs] + + # A list of lists of parents for each 'src'. 'src' is included as a + # "parent" of itself if it is a directory + src_parents = [ + list(path.parents) + ([path] if path.is_dir() else []) for path in path_srcs + ] + + common_base = max( + set.intersection(*(set(parents) for parents in src_parents)), + key=lambda path: path.parts, + ) + + for directory in (common_base, *common_base.parents): + if (directory / ".git").exists(): + return directory, ".git directory" + + if (directory / ".hg").is_dir(): + return directory, ".hg directory" + + if (directory / "pyproject.toml").is_file(): + pyproject_toml = _load_toml(directory / "pyproject.toml") + if "black" in pyproject_toml.get("tool", {}): + return directory, "pyproject.toml" + + return directory, "file system root" + + +def find_pyproject_toml( + path_search_start: Tuple[str, ...], stdin_filename: Optional[str] = None +) -> Optional[str]: + """Find the absolute filepath to a pyproject.toml if it exists""" + path_project_root, _ = find_project_root(path_search_start, stdin_filename) + path_pyproject_toml = path_project_root / "pyproject.toml" + if path_pyproject_toml.is_file(): + return str(path_pyproject_toml) + + try: + path_user_pyproject_toml = find_user_pyproject_toml() + return ( + str(path_user_pyproject_toml) + if path_user_pyproject_toml.is_file() + else None + ) + except (PermissionError, RuntimeError) as e: + # We do not have access to the user-level config directory, so ignore it. + err(f"Ignoring user configuration directory due to {e!r}") + return None + + +@mypyc_attr(patchable=True) +def parse_pyproject_toml(path_config: str) -> Dict[str, Any]: + """Parse a pyproject toml file, pulling out relevant parts for Black. + + If parsing fails, will raise a tomllib.TOMLDecodeError. + """ + pyproject_toml = _load_toml(path_config) + config: Dict[str, Any] = pyproject_toml.get("tool", {}).get("black", {}) + config = {k.replace("--", "").replace("-", "_"): v for k, v in config.items()} + + if "target_version" not in config: + inferred_target_version = infer_target_version(pyproject_toml) + if inferred_target_version is not None: + config["target_version"] = [v.name.lower() for v in inferred_target_version] + + return config + + +def infer_target_version( + pyproject_toml: Dict[str, Any], +) -> Optional[List[TargetVersion]]: + """Infer Black's target version from the project metadata in pyproject.toml. + + Supports the PyPA standard format (PEP 621): + https://packaging.python.org/en/latest/specifications/declaring-project-metadata/#requires-python + + If the target version cannot be inferred, returns None. + """ + project_metadata = pyproject_toml.get("project", {}) + requires_python = project_metadata.get("requires-python", None) + if requires_python is not None: + try: + return parse_req_python_version(requires_python) + except InvalidVersion: + pass + try: + return parse_req_python_specifier(requires_python) + except (InvalidSpecifier, InvalidVersion): + pass + + return None + + +def parse_req_python_version(requires_python: str) -> Optional[List[TargetVersion]]: + """Parse a version string (i.e. ``"3.7"``) to a list of TargetVersion. + + If parsing fails, will raise a packaging.version.InvalidVersion error. + If the parsed version cannot be mapped to a valid TargetVersion, returns None. + """ + version = Version(requires_python) + if version.release[0] != 3: + return None + try: + return [TargetVersion(version.release[1])] + except (IndexError, ValueError): + return None + + +def parse_req_python_specifier(requires_python: str) -> Optional[List[TargetVersion]]: + """Parse a specifier string (i.e. ``">=3.7,<3.10"``) to a list of TargetVersion. + + If parsing fails, will raise a packaging.specifiers.InvalidSpecifier error. + If the parsed specifier cannot be mapped to a valid TargetVersion, returns None. + """ + specifier_set = strip_specifier_set(SpecifierSet(requires_python)) + if not specifier_set: + return None + + target_version_map = {f"3.{v.value}": v for v in TargetVersion} + compatible_versions: List[str] = list(specifier_set.filter(target_version_map)) + if compatible_versions: + return [target_version_map[v] for v in compatible_versions] + return None + + +def strip_specifier_set(specifier_set: SpecifierSet) -> SpecifierSet: + """Strip minor versions for some specifiers in the specifier set. + + For background on version specifiers, see PEP 440: + https://peps.python.org/pep-0440/#version-specifiers + """ + specifiers = [] + for s in specifier_set: + if "*" in str(s): + specifiers.append(s) + elif s.operator in ["~=", "==", ">=", "==="]: + version = Version(s.version) + stripped = Specifier(f"{s.operator}{version.major}.{version.minor}") + specifiers.append(stripped) + elif s.operator == ">": + version = Version(s.version) + if len(version.release) > 2: + s = Specifier(f">={version.major}.{version.minor}") + specifiers.append(s) + else: + specifiers.append(s) + + return SpecifierSet(",".join(str(s) for s in specifiers)) + + +@lru_cache +def find_user_pyproject_toml() -> Path: + r"""Return the path to the top-level user configuration for black. + + This looks for ~\.black on Windows and ~/.config/black on Linux and other + Unix systems. + + May raise: + - RuntimeError: if the current user has no homedir + - PermissionError: if the current process cannot access the user's homedir + """ + if sys.platform == "win32": + # Windows + user_config_path = Path.home() / ".black" + else: + config_root = os.environ.get("XDG_CONFIG_HOME", "~/.config") + user_config_path = Path(config_root).expanduser() / "black" + return _cached_resolve(user_config_path) + + +@lru_cache +def get_gitignore(root: Path) -> PathSpec: + """Return a PathSpec matching gitignore content if present.""" + gitignore = root / ".gitignore" + lines: List[str] = [] + if gitignore.is_file(): + with gitignore.open(encoding="utf-8") as gf: + lines = gf.readlines() + try: + return PathSpec.from_lines("gitwildmatch", lines) + except GitWildMatchPatternError as e: + err(f"Could not parse {gitignore}: {e}") + raise + + +def resolves_outside_root_or_cannot_stat( + path: Path, + root: Path, + report: Optional[Report] = None, +) -> bool: + """ + Returns whether the path is a symbolic link that points outside the + root directory. Also returns True if we failed to resolve the path. + """ + try: + if sys.version_info < (3, 8, 6): + path = path.absolute() # https://bugs.python.org/issue33660 + resolved_path = _cached_resolve(path) + except OSError as e: + if report: + report.path_ignored(path, f"cannot be read because {e}") + return True + try: + resolved_path.relative_to(root) + except ValueError: + if report: + report.path_ignored(path, f"is a symbolic link that points outside {root}") + return True + return False + + +def best_effort_relative_path(path: Path, root: Path) -> Path: + # Precondition: resolves_outside_root_or_cannot_stat(path, root) is False + try: + return path.absolute().relative_to(root) + except ValueError: + pass + root_parent = next((p for p in path.parents if _cached_resolve(p) == root), None) + if root_parent is not None: + return path.relative_to(root_parent) + # something adversarial, fallback to path guaranteed by precondition + return _cached_resolve(path).relative_to(root) + + +def _path_is_ignored( + root_relative_path: str, + root: Path, + gitignore_dict: Dict[Path, PathSpec], +) -> bool: + path = root / root_relative_path + # Note that this logic is sensitive to the ordering of gitignore_dict. Callers must + # ensure that gitignore_dict is ordered from least specific to most specific. + for gitignore_path, pattern in gitignore_dict.items(): + try: + relative_path = path.relative_to(gitignore_path).as_posix() + if path.is_dir(): + relative_path = relative_path + "/" + except ValueError: + break + if pattern.match_file(relative_path): + return True + return False + + +def path_is_excluded( + normalized_path: str, + pattern: Optional[Pattern[str]], +) -> bool: + match = pattern.search(normalized_path) if pattern else None + return bool(match and match.group(0)) + + +def gen_python_files( + paths: Iterable[Path], + root: Path, + include: Pattern[str], + exclude: Pattern[str], + extend_exclude: Optional[Pattern[str]], + force_exclude: Optional[Pattern[str]], + report: Report, + gitignore_dict: Optional[Dict[Path, PathSpec]], + *, + verbose: bool, + quiet: bool, +) -> Iterator[Path]: + """Generate all files under `path` whose paths are not excluded by the + `exclude_regex`, `extend_exclude`, or `force_exclude` regexes, + but are included by the `include` regex. + + Symbolic links pointing outside of the `root` directory are ignored. + + `report` is where output about exclusions goes. + """ + + assert root.is_absolute(), f"INTERNAL ERROR: `root` must be absolute but is {root}" + for child in paths: + assert child.is_absolute() + root_relative_path = child.relative_to(root).as_posix() + + # First ignore files matching .gitignore, if passed + if gitignore_dict and _path_is_ignored( + root_relative_path, root, gitignore_dict + ): + report.path_ignored(child, "matches a .gitignore file content") + continue + + # Then ignore with `--exclude` `--extend-exclude` and `--force-exclude` options. + root_relative_path = "/" + root_relative_path + if child.is_dir(): + root_relative_path += "/" + + if path_is_excluded(root_relative_path, exclude): + report.path_ignored(child, "matches the --exclude regular expression") + continue + + if path_is_excluded(root_relative_path, extend_exclude): + report.path_ignored( + child, "matches the --extend-exclude regular expression" + ) + continue + + if path_is_excluded(root_relative_path, force_exclude): + report.path_ignored(child, "matches the --force-exclude regular expression") + continue + + if resolves_outside_root_or_cannot_stat(child, root, report): + continue + + if child.is_dir(): + # If gitignore is None, gitignore usage is disabled, while a Falsey + # gitignore is when the directory doesn't have a .gitignore file. + if gitignore_dict is not None: + new_gitignore_dict = { + **gitignore_dict, + root / child: get_gitignore(child), + } + else: + new_gitignore_dict = None + yield from gen_python_files( + child.iterdir(), + root, + include, + exclude, + extend_exclude, + force_exclude, + report, + new_gitignore_dict, + verbose=verbose, + quiet=quiet, + ) + + elif child.is_file(): + if child.suffix == ".ipynb" and not jupyter_dependencies_are_installed( + warn=verbose or not quiet + ): + continue + include_match = include.search(root_relative_path) if include else True + if include_match: + yield child + + +def wrap_stream_for_windows( + f: io.TextIOWrapper, +) -> Union[io.TextIOWrapper, "colorama.AnsiToWin32"]: + """ + Wrap stream with colorama's wrap_stream so colors are shown on Windows. + + If `colorama` is unavailable, the original stream is returned unmodified. + Otherwise, the `wrap_stream()` function determines whether the stream needs + to be wrapped for a Windows environment and will accordingly either return + an `AnsiToWin32` wrapper or the original stream. + """ + try: + from colorama.initialise import wrap_stream + except ImportError: + return f + else: + # Set `strip=False` to avoid needing to modify test_express_diff_with_color. + return wrap_stream(f, convert=None, strip=False, autoreset=False, wrap=True) diff --git a/venv/lib/python3.12/site-packages/black/handle_ipynb_magics.py b/venv/lib/python3.12/site-packages/black/handle_ipynb_magics.py new file mode 100644 index 0000000000..1695c568bd --- /dev/null +++ b/venv/lib/python3.12/site-packages/black/handle_ipynb_magics.py @@ -0,0 +1,452 @@ +"""Functions to process IPython magics with.""" + +import ast +import collections +import dataclasses +import secrets +import sys +from functools import lru_cache +from importlib.util import find_spec +from typing import Dict, List, Optional, Tuple + +if sys.version_info >= (3, 10): + from typing import TypeGuard +else: + from typing_extensions import TypeGuard + +from black.output import out +from black.report import NothingChanged + +TRANSFORMED_MAGICS = frozenset(( + "get_ipython().run_cell_magic", + "get_ipython().system", + "get_ipython().getoutput", + "get_ipython().run_line_magic", +)) +TOKENS_TO_IGNORE = frozenset(( + "ENDMARKER", + "NL", + "NEWLINE", + "COMMENT", + "DEDENT", + "UNIMPORTANT_WS", + "ESCAPED_NL", +)) +PYTHON_CELL_MAGICS = frozenset(( + "capture", + "prun", + "pypy", + "python", + "python3", + "time", + "timeit", +)) +TOKEN_HEX = secrets.token_hex + + +@dataclasses.dataclass(frozen=True) +class Replacement: + mask: str + src: str + + +@lru_cache +def jupyter_dependencies_are_installed(*, warn: bool) -> bool: + installed = ( + find_spec("tokenize_rt") is not None and find_spec("IPython") is not None + ) + if not installed and warn: + msg = ( + "Skipping .ipynb files as Jupyter dependencies are not installed.\n" + 'You can fix this by running ``pip install "black[jupyter]"``' + ) + out(msg) + return installed + + +def remove_trailing_semicolon(src: str) -> Tuple[str, bool]: + """Remove trailing semicolon from Jupyter notebook cell. + + For example, + + fig, ax = plt.subplots() + ax.plot(x_data, y_data); # plot data + + would become + + fig, ax = plt.subplots() + ax.plot(x_data, y_data) # plot data + + Mirrors the logic in `quiet` from `IPython.core.displayhook`, but uses + ``tokenize_rt`` so that round-tripping works fine. + """ + from tokenize_rt import reversed_enumerate, src_to_tokens, tokens_to_src + + tokens = src_to_tokens(src) + trailing_semicolon = False + for idx, token in reversed_enumerate(tokens): + if token.name in TOKENS_TO_IGNORE: + continue + if token.name == "OP" and token.src == ";": + del tokens[idx] + trailing_semicolon = True + break + if not trailing_semicolon: + return src, False + return tokens_to_src(tokens), True + + +def put_trailing_semicolon_back(src: str, has_trailing_semicolon: bool) -> str: + """Put trailing semicolon back if cell originally had it. + + Mirrors the logic in `quiet` from `IPython.core.displayhook`, but uses + ``tokenize_rt`` so that round-tripping works fine. + """ + if not has_trailing_semicolon: + return src + from tokenize_rt import reversed_enumerate, src_to_tokens, tokens_to_src + + tokens = src_to_tokens(src) + for idx, token in reversed_enumerate(tokens): + if token.name in TOKENS_TO_IGNORE: + continue + tokens[idx] = token._replace(src=token.src + ";") + break + else: # pragma: nocover + raise AssertionError( + "INTERNAL ERROR: Was not able to reinstate trailing semicolon. " + "Please report a bug on https://github.com/psf/black/issues. " + ) from None + return str(tokens_to_src(tokens)) + + +def mask_cell(src: str) -> Tuple[str, List[Replacement]]: + """Mask IPython magics so content becomes parseable Python code. + + For example, + + %matplotlib inline + 'foo' + + becomes + + "25716f358c32750e" + 'foo' + + The replacements are returned, along with the transformed code. + """ + replacements: List[Replacement] = [] + try: + ast.parse(src) + except SyntaxError: + # Might have IPython magics, will process below. + pass + else: + # Syntax is fine, nothing to mask, early return. + return src, replacements + + from IPython.core.inputtransformer2 import TransformerManager + + transformer_manager = TransformerManager() + transformed = transformer_manager.transform_cell(src) + transformed, cell_magic_replacements = replace_cell_magics(transformed) + replacements += cell_magic_replacements + transformed = transformer_manager.transform_cell(transformed) + transformed, magic_replacements = replace_magics(transformed) + if len(transformed.splitlines()) != len(src.splitlines()): + # Multi-line magic, not supported. + raise NothingChanged + replacements += magic_replacements + return transformed, replacements + + +def get_token(src: str, magic: str) -> str: + """Return randomly generated token to mask IPython magic with. + + For example, if 'magic' was `%matplotlib inline`, then a possible + token to mask it with would be `"43fdd17f7e5ddc83"`. The token + will be the same length as the magic, and we make sure that it was + not already present anywhere else in the cell. + """ + assert magic + nbytes = max(len(magic) // 2 - 1, 1) + token = TOKEN_HEX(nbytes) + counter = 0 + while token in src: + token = TOKEN_HEX(nbytes) + counter += 1 + if counter > 100: + raise AssertionError( + "INTERNAL ERROR: Black was not able to replace IPython magic. " + "Please report a bug on https://github.com/psf/black/issues. " + f"The magic might be helpful: {magic}" + ) from None + if len(token) + 2 < len(magic): + token = f"{token}." + return f'"{token}"' + + +def replace_cell_magics(src: str) -> Tuple[str, List[Replacement]]: + """Replace cell magic with token. + + Note that 'src' will already have been processed by IPython's + TransformerManager().transform_cell. + + Example, + + get_ipython().run_cell_magic('t', '-n1', 'ls =!ls\\n') + + becomes + + "a794." + ls =!ls + + The replacement, along with the transformed code, is returned. + """ + replacements: List[Replacement] = [] + + tree = ast.parse(src) + + cell_magic_finder = CellMagicFinder() + cell_magic_finder.visit(tree) + if cell_magic_finder.cell_magic is None: + return src, replacements + header = cell_magic_finder.cell_magic.header + mask = get_token(src, header) + replacements.append(Replacement(mask=mask, src=header)) + return f"{mask}\n{cell_magic_finder.cell_magic.body}", replacements + + +def replace_magics(src: str) -> Tuple[str, List[Replacement]]: + """Replace magics within body of cell. + + Note that 'src' will already have been processed by IPython's + TransformerManager().transform_cell. + + Example, this + + get_ipython().run_line_magic('matplotlib', 'inline') + 'foo' + + becomes + + "5e67db56d490fd39" + 'foo' + + The replacement, along with the transformed code, are returned. + """ + replacements = [] + magic_finder = MagicFinder() + magic_finder.visit(ast.parse(src)) + new_srcs = [] + for i, line in enumerate(src.splitlines(), start=1): + if i in magic_finder.magics: + offsets_and_magics = magic_finder.magics[i] + if len(offsets_and_magics) != 1: # pragma: nocover + raise AssertionError( + f"Expecting one magic per line, got: {offsets_and_magics}\n" + "Please report a bug on https://github.com/psf/black/issues." + ) + col_offset, magic = ( + offsets_and_magics[0].col_offset, + offsets_and_magics[0].magic, + ) + mask = get_token(src, magic) + replacements.append(Replacement(mask=mask, src=magic)) + line = line[:col_offset] + mask + new_srcs.append(line) + return "\n".join(new_srcs), replacements + + +def unmask_cell(src: str, replacements: List[Replacement]) -> str: + """Remove replacements from cell. + + For example + + "9b20" + foo = bar + + becomes + + %%time + foo = bar + """ + for replacement in replacements: + src = src.replace(replacement.mask, replacement.src) + return src + + +def _is_ipython_magic(node: ast.expr) -> TypeGuard[ast.Attribute]: + """Check if attribute is IPython magic. + + Note that the source of the abstract syntax tree + will already have been processed by IPython's + TransformerManager().transform_cell. + """ + return ( + isinstance(node, ast.Attribute) + and isinstance(node.value, ast.Call) + and isinstance(node.value.func, ast.Name) + and node.value.func.id == "get_ipython" + ) + + +def _get_str_args(args: List[ast.expr]) -> List[str]: + str_args = [] + for arg in args: + assert isinstance(arg, ast.Constant) and isinstance(arg.value, str) + str_args.append(arg.value) + return str_args + + +@dataclasses.dataclass(frozen=True) +class CellMagic: + name: str + params: Optional[str] + body: str + + @property + def header(self) -> str: + if self.params: + return f"%%{self.name} {self.params}" + return f"%%{self.name}" + + +# ast.NodeVisitor + dataclass = breakage under mypyc. +class CellMagicFinder(ast.NodeVisitor): + """Find cell magics. + + Note that the source of the abstract syntax tree + will already have been processed by IPython's + TransformerManager().transform_cell. + + For example, + + %%time\n + foo() + + would have been transformed to + + get_ipython().run_cell_magic('time', '', 'foo()\\n') + + and we look for instances of the latter. + """ + + def __init__(self, cell_magic: Optional[CellMagic] = None) -> None: + self.cell_magic = cell_magic + + def visit_Expr(self, node: ast.Expr) -> None: + """Find cell magic, extract header and body.""" + if ( + isinstance(node.value, ast.Call) + and _is_ipython_magic(node.value.func) + and node.value.func.attr == "run_cell_magic" + ): + args = _get_str_args(node.value.args) + self.cell_magic = CellMagic(name=args[0], params=args[1], body=args[2]) + self.generic_visit(node) + + +@dataclasses.dataclass(frozen=True) +class OffsetAndMagic: + col_offset: int + magic: str + + +# Unsurprisingly, subclassing ast.NodeVisitor means we can't use dataclasses here +# as mypyc will generate broken code. +class MagicFinder(ast.NodeVisitor): + """Visit cell to look for get_ipython calls. + + Note that the source of the abstract syntax tree + will already have been processed by IPython's + TransformerManager().transform_cell. + + For example, + + %matplotlib inline + + would have been transformed to + + get_ipython().run_line_magic('matplotlib', 'inline') + + and we look for instances of the latter (and likewise for other + types of magics). + """ + + def __init__(self) -> None: + self.magics: Dict[int, List[OffsetAndMagic]] = collections.defaultdict(list) + + def visit_Assign(self, node: ast.Assign) -> None: + """Look for system assign magics. + + For example, + + black_version = !black --version + env = %env var + + would have been (respectively) transformed to + + black_version = get_ipython().getoutput('black --version') + env = get_ipython().run_line_magic('env', 'var') + + and we look for instances of any of the latter. + """ + if isinstance(node.value, ast.Call) and _is_ipython_magic(node.value.func): + args = _get_str_args(node.value.args) + if node.value.func.attr == "getoutput": + src = f"!{args[0]}" + elif node.value.func.attr == "run_line_magic": + src = f"%{args[0]}" + if args[1]: + src += f" {args[1]}" + else: + raise AssertionError( + f"Unexpected IPython magic {node.value.func.attr!r} found. " + "Please report a bug on https://github.com/psf/black/issues." + ) from None + self.magics[node.value.lineno].append( + OffsetAndMagic(node.value.col_offset, src) + ) + self.generic_visit(node) + + def visit_Expr(self, node: ast.Expr) -> None: + """Look for magics in body of cell. + + For examples, + + !ls + !!ls + ?ls + ??ls + + would (respectively) get transformed to + + get_ipython().system('ls') + get_ipython().getoutput('ls') + get_ipython().run_line_magic('pinfo', 'ls') + get_ipython().run_line_magic('pinfo2', 'ls') + + and we look for instances of any of the latter. + """ + if isinstance(node.value, ast.Call) and _is_ipython_magic(node.value.func): + args = _get_str_args(node.value.args) + if node.value.func.attr == "run_line_magic": + if args[0] == "pinfo": + src = f"?{args[1]}" + elif args[0] == "pinfo2": + src = f"??{args[1]}" + else: + src = f"%{args[0]}" + if args[1]: + src += f" {args[1]}" + elif node.value.func.attr == "system": + src = f"!{args[0]}" + elif node.value.func.attr == "getoutput": + src = f"!!{args[0]}" + else: + raise NothingChanged # unsupported magic. + self.magics[node.value.lineno].append( + OffsetAndMagic(node.value.col_offset, src) + ) + self.generic_visit(node) diff --git a/venv/lib/python3.12/site-packages/black/linegen.py b/venv/lib/python3.12/site-packages/black/linegen.py new file mode 100644 index 0000000000..46945ca2a1 --- /dev/null +++ b/venv/lib/python3.12/site-packages/black/linegen.py @@ -0,0 +1,1798 @@ +""" +Generating lines of code. +""" + +import re +import sys +from dataclasses import replace +from enum import Enum, auto +from functools import partial, wraps +from typing import Collection, Iterator, List, Optional, Set, Union, cast + +from black.brackets import ( + COMMA_PRIORITY, + DOT_PRIORITY, + STRING_PRIORITY, + get_leaves_inside_matching_brackets, + max_delimiter_priority_in_atom, +) +from black.comments import FMT_OFF, generate_comments, list_comments +from black.lines import ( + Line, + RHSResult, + append_leaves, + can_be_split, + can_omit_invisible_parens, + is_line_short_enough, + line_to_string, +) +from black.mode import Feature, Mode, Preview +from black.nodes import ( + ASSIGNMENTS, + BRACKETS, + CLOSING_BRACKETS, + OPENING_BRACKETS, + STANDALONE_COMMENT, + STATEMENT, + WHITESPACE, + Visitor, + ensure_visible, + fstring_to_string, + get_annotation_type, + is_arith_like, + is_async_stmt_or_funcdef, + is_atom_with_invisible_parens, + is_docstring, + is_empty_tuple, + is_lpar_token, + is_multiline_string, + is_name_token, + is_one_sequence_between, + is_one_tuple, + is_parent_function_or_class, + is_part_of_annotation, + is_rpar_token, + is_stub_body, + is_stub_suite, + is_tuple_containing_walrus, + is_type_ignore_comment_string, + is_vararg, + is_walrus_assignment, + is_yield, + syms, + wrap_in_parentheses, +) +from black.numerics import normalize_numeric_literal +from black.strings import ( + fix_docstring, + get_string_prefix, + normalize_string_prefix, + normalize_string_quotes, + normalize_unicode_escape_sequences, +) +from black.trans import ( + CannotTransform, + StringMerger, + StringParenStripper, + StringParenWrapper, + StringSplitter, + Transformer, + hug_power_op, +) +from blib2to3.pgen2 import token +from blib2to3.pytree import Leaf, Node + +# types +LeafID = int +LN = Union[Leaf, Node] + + +class CannotSplit(CannotTransform): + """A readable split that fits the allotted line length is impossible.""" + + +# This isn't a dataclass because @dataclass + Generic breaks mypyc. +# See also https://github.com/mypyc/mypyc/issues/827. +class LineGenerator(Visitor[Line]): + """Generates reformatted Line objects. Empty lines are not emitted. + + Note: destroys the tree it's visiting by mutating prefixes of its leaves + in ways that will no longer stringify to valid Python code on the tree. + """ + + def __init__(self, mode: Mode, features: Collection[Feature]) -> None: + self.mode = mode + self.features = features + self.current_line: Line + self.__post_init__() + + def line(self, indent: int = 0) -> Iterator[Line]: + """Generate a line. + + If the line is empty, only emit if it makes sense. + If the line is too long, split it first and then generate. + + If any lines were generated, set up a new current_line. + """ + if not self.current_line: + self.current_line.depth += indent + return # Line is empty, don't emit. Creating a new one unnecessary. + + if len(self.current_line.leaves) == 1 and is_async_stmt_or_funcdef( + self.current_line.leaves[0] + ): + # Special case for async def/for/with statements. `visit_async_stmt` + # adds an `ASYNC` leaf then visits the child def/for/with statement + # nodes. Line yields from those nodes shouldn't treat the former + # `ASYNC` leaf as a complete line. + return + + complete_line = self.current_line + self.current_line = Line(mode=self.mode, depth=complete_line.depth + indent) + yield complete_line + + def visit_default(self, node: LN) -> Iterator[Line]: + """Default `visit_*()` implementation. Recurses to children of `node`.""" + if isinstance(node, Leaf): + any_open_brackets = self.current_line.bracket_tracker.any_open_brackets() + for comment in generate_comments(node): + if any_open_brackets: + # any comment within brackets is subject to splitting + self.current_line.append(comment) + elif comment.type == token.COMMENT: + # regular trailing comment + self.current_line.append(comment) + yield from self.line() + + else: + # regular standalone comment + yield from self.line() + + self.current_line.append(comment) + yield from self.line() + + if any_open_brackets: + node.prefix = "" + if node.type not in WHITESPACE: + self.current_line.append(node) + yield from super().visit_default(node) + + def visit_test(self, node: Node) -> Iterator[Line]: + """Visit an `x if y else z` test""" + + already_parenthesized = ( + node.prev_sibling and node.prev_sibling.type == token.LPAR + ) + + if not already_parenthesized: + # Similar to logic in wrap_in_parentheses + lpar = Leaf(token.LPAR, "") + rpar = Leaf(token.RPAR, "") + prefix = node.prefix + node.prefix = "" + lpar.prefix = prefix + node.insert_child(0, lpar) + node.append_child(rpar) + + yield from self.visit_default(node) + + def visit_INDENT(self, node: Leaf) -> Iterator[Line]: + """Increase indentation level, maybe yield a line.""" + # In blib2to3 INDENT never holds comments. + yield from self.line(+1) + yield from self.visit_default(node) + + def visit_DEDENT(self, node: Leaf) -> Iterator[Line]: + """Decrease indentation level, maybe yield a line.""" + # The current line might still wait for trailing comments. At DEDENT time + # there won't be any (they would be prefixes on the preceding NEWLINE). + # Emit the line then. + yield from self.line() + + # While DEDENT has no value, its prefix may contain standalone comments + # that belong to the current indentation level. Get 'em. + yield from self.visit_default(node) + + # Finally, emit the dedent. + yield from self.line(-1) + + def visit_stmt( + self, node: Node, keywords: Set[str], parens: Set[str] + ) -> Iterator[Line]: + """Visit a statement. + + This implementation is shared for `if`, `while`, `for`, `try`, `except`, + `def`, `with`, `class`, `assert`, and assignments. + + The relevant Python language `keywords` for a given statement will be + NAME leaves within it. This methods puts those on a separate line. + + `parens` holds a set of string leaf values immediately after which + invisible parens should be put. + """ + normalize_invisible_parens( + node, parens_after=parens, mode=self.mode, features=self.features + ) + for child in node.children: + if is_name_token(child) and child.value in keywords: + yield from self.line() + + yield from self.visit(child) + + def visit_typeparams(self, node: Node) -> Iterator[Line]: + yield from self.visit_default(node) + node.children[0].prefix = "" + + def visit_typevartuple(self, node: Node) -> Iterator[Line]: + yield from self.visit_default(node) + node.children[1].prefix = "" + + def visit_paramspec(self, node: Node) -> Iterator[Line]: + yield from self.visit_default(node) + node.children[1].prefix = "" + + def visit_dictsetmaker(self, node: Node) -> Iterator[Line]: + if Preview.wrap_long_dict_values_in_parens in self.mode: + for i, child in enumerate(node.children): + if i == 0: + continue + if node.children[i - 1].type == token.COLON: + if ( + child.type == syms.atom + and child.children[0].type in OPENING_BRACKETS + and not is_walrus_assignment(child) + ): + maybe_make_parens_invisible_in_atom( + child, + parent=node, + remove_brackets_around_comma=False, + ) + else: + wrap_in_parentheses(node, child, visible=False) + yield from self.visit_default(node) + + def visit_funcdef(self, node: Node) -> Iterator[Line]: + """Visit function definition.""" + yield from self.line() + + # Remove redundant brackets around return type annotation. + is_return_annotation = False + for child in node.children: + if child.type == token.RARROW: + is_return_annotation = True + elif is_return_annotation: + if child.type == syms.atom and child.children[0].type == token.LPAR: + if maybe_make_parens_invisible_in_atom( + child, + parent=node, + remove_brackets_around_comma=False, + ): + wrap_in_parentheses(node, child, visible=False) + else: + wrap_in_parentheses(node, child, visible=False) + is_return_annotation = False + + for child in node.children: + yield from self.visit(child) + + def visit_match_case(self, node: Node) -> Iterator[Line]: + """Visit either a match or case statement.""" + normalize_invisible_parens( + node, parens_after=set(), mode=self.mode, features=self.features + ) + + yield from self.line() + for child in node.children: + yield from self.visit(child) + + def visit_suite(self, node: Node) -> Iterator[Line]: + """Visit a suite.""" + if is_stub_suite(node): + yield from self.visit(node.children[2]) + else: + yield from self.visit_default(node) + + def visit_simple_stmt(self, node: Node) -> Iterator[Line]: + """Visit a statement without nested statements.""" + prev_type: Optional[int] = None + for child in node.children: + if (prev_type is None or prev_type == token.SEMI) and is_arith_like(child): + wrap_in_parentheses(node, child, visible=False) + prev_type = child.type + + if node.parent and node.parent.type in STATEMENT: + if is_parent_function_or_class(node) and is_stub_body(node): + yield from self.visit_default(node) + else: + yield from self.line(+1) + yield from self.visit_default(node) + yield from self.line(-1) + + else: + if node.parent and is_stub_suite(node.parent): + node.prefix = "" + yield from self.visit_default(node) + return + yield from self.line() + yield from self.visit_default(node) + + def visit_async_stmt(self, node: Node) -> Iterator[Line]: + """Visit `async def`, `async for`, `async with`.""" + yield from self.line() + + children = iter(node.children) + for child in children: + yield from self.visit(child) + + if child.type == token.ASYNC or child.type == STANDALONE_COMMENT: + # STANDALONE_COMMENT happens when `# fmt: skip` is applied on the async + # line. + break + + internal_stmt = next(children) + yield from self.visit(internal_stmt) + + def visit_decorators(self, node: Node) -> Iterator[Line]: + """Visit decorators.""" + for child in node.children: + yield from self.line() + yield from self.visit(child) + + def visit_power(self, node: Node) -> Iterator[Line]: + for idx, leaf in enumerate(node.children[:-1]): + next_leaf = node.children[idx + 1] + + if not isinstance(leaf, Leaf): + continue + + value = leaf.value.lower() + if ( + leaf.type == token.NUMBER + and next_leaf.type == syms.trailer + # Ensure that we are in an attribute trailer + and next_leaf.children[0].type == token.DOT + # It shouldn't wrap hexadecimal, binary and octal literals + and not value.startswith(("0x", "0b", "0o")) + # It shouldn't wrap complex literals + and "j" not in value + ): + wrap_in_parentheses(node, leaf) + + remove_await_parens(node) + + yield from self.visit_default(node) + + def visit_SEMI(self, leaf: Leaf) -> Iterator[Line]: + """Remove a semicolon and put the other statement on a separate line.""" + yield from self.line() + + def visit_ENDMARKER(self, leaf: Leaf) -> Iterator[Line]: + """End of file. Process outstanding comments and end with a newline.""" + yield from self.visit_default(leaf) + yield from self.line() + + def visit_STANDALONE_COMMENT(self, leaf: Leaf) -> Iterator[Line]: + if not self.current_line.bracket_tracker.any_open_brackets(): + yield from self.line() + yield from self.visit_default(leaf) + + def visit_factor(self, node: Node) -> Iterator[Line]: + """Force parentheses between a unary op and a binary power: + + -2 ** 8 -> -(2 ** 8) + """ + _operator, operand = node.children + if ( + operand.type == syms.power + and len(operand.children) == 3 + and operand.children[1].type == token.DOUBLESTAR + ): + lpar = Leaf(token.LPAR, "(") + rpar = Leaf(token.RPAR, ")") + index = operand.remove() or 0 + node.insert_child(index, Node(syms.atom, [lpar, operand, rpar])) + yield from self.visit_default(node) + + def visit_tname(self, node: Node) -> Iterator[Line]: + """ + Add potential parentheses around types in function parameter lists to be made + into real parentheses in case the type hint is too long to fit on a line + Examples: + def foo(a: int, b: float = 7): ... + + -> + + def foo(a: (int), b: (float) = 7): ... + """ + assert len(node.children) == 3 + if maybe_make_parens_invisible_in_atom(node.children[2], parent=node): + wrap_in_parentheses(node, node.children[2], visible=False) + + yield from self.visit_default(node) + + def visit_STRING(self, leaf: Leaf) -> Iterator[Line]: + if Preview.hex_codes_in_unicode_sequences in self.mode: + normalize_unicode_escape_sequences(leaf) + + if is_docstring(leaf, self.mode) and not re.search(r"\\\s*\n", leaf.value): + # We're ignoring docstrings with backslash newline escapes because changing + # indentation of those changes the AST representation of the code. + if self.mode.string_normalization: + docstring = normalize_string_prefix(leaf.value) + # We handle string normalization at the end of this method, but since + # what we do right now acts differently depending on quote style (ex. + # see padding logic below), there's a possibility for unstable + # formatting. To avoid a situation where this function formats a + # docstring differently on the second pass, normalize it early. + docstring = normalize_string_quotes(docstring) + else: + docstring = leaf.value + prefix = get_string_prefix(docstring) + docstring = docstring[len(prefix) :] # Remove the prefix + quote_char = docstring[0] + # A natural way to remove the outer quotes is to do: + # docstring = docstring.strip(quote_char) + # but that breaks on """""x""" (which is '""x'). + # So we actually need to remove the first character and the next two + # characters but only if they are the same as the first. + quote_len = 1 if docstring[1] != quote_char else 3 + docstring = docstring[quote_len:-quote_len] + docstring_started_empty = not docstring + indent = " " * 4 * self.current_line.depth + + if is_multiline_string(leaf): + docstring = fix_docstring(docstring, indent) + else: + docstring = docstring.strip() + + has_trailing_backslash = False + if docstring: + # Add some padding if the docstring starts / ends with a quote mark. + if docstring[0] == quote_char: + docstring = " " + docstring + if docstring[-1] == quote_char: + docstring += " " + if docstring[-1] == "\\": + backslash_count = len(docstring) - len(docstring.rstrip("\\")) + if backslash_count % 2: + # Odd number of tailing backslashes, add some padding to + # avoid escaping the closing string quote. + docstring += " " + has_trailing_backslash = True + elif not docstring_started_empty: + docstring = " " + + # We could enforce triple quotes at this point. + quote = quote_char * quote_len + + # It's invalid to put closing single-character quotes on a new line. + if quote_len == 3: + # We need to find the length of the last line of the docstring + # to find if we can add the closing quotes to the line without + # exceeding the maximum line length. + # If docstring is one line, we don't put the closing quotes on a + # separate line because it looks ugly (#3320). + lines = docstring.splitlines() + last_line_length = len(lines[-1]) if docstring else 0 + + # If adding closing quotes would cause the last line to exceed + # the maximum line length, and the closing quote is not + # prefixed by a newline then put a line break before + # the closing quotes + if ( + len(lines) > 1 + and last_line_length + quote_len > self.mode.line_length + and len(indent) + quote_len <= self.mode.line_length + and not has_trailing_backslash + ): + if ( + Preview.docstring_check_for_newline in self.mode + and leaf.value[-1 - quote_len] == "\n" + ): + leaf.value = prefix + quote + docstring + quote + else: + leaf.value = prefix + quote + docstring + "\n" + indent + quote + else: + leaf.value = prefix + quote + docstring + quote + else: + leaf.value = prefix + quote + docstring + quote + + if self.mode.string_normalization and leaf.type == token.STRING: + leaf.value = normalize_string_prefix(leaf.value) + leaf.value = normalize_string_quotes(leaf.value) + yield from self.visit_default(leaf) + + def visit_NUMBER(self, leaf: Leaf) -> Iterator[Line]: + normalize_numeric_literal(leaf) + yield from self.visit_default(leaf) + + def visit_fstring(self, node: Node) -> Iterator[Line]: + # currently we don't want to format and split f-strings at all. + string_leaf = fstring_to_string(node) + node.replace(string_leaf) + if "\\" in string_leaf.value and any( + "\\" in str(child) + for child in node.children + if child.type == syms.fstring_replacement_field + ): + # string normalization doesn't account for nested quotes, + # causing breakages. skip normalization when nested quotes exist + yield from self.visit_default(string_leaf) + return + yield from self.visit_STRING(string_leaf) + + # TODO: Uncomment Implementation to format f-string children + # fstring_start = node.children[0] + # fstring_end = node.children[-1] + # assert isinstance(fstring_start, Leaf) + # assert isinstance(fstring_end, Leaf) + + # quote_char = fstring_end.value[0] + # quote_idx = fstring_start.value.index(quote_char) + # prefix, quote = ( + # fstring_start.value[:quote_idx], + # fstring_start.value[quote_idx:] + # ) + + # if not is_docstring(node, self.mode): + # prefix = normalize_string_prefix(prefix) + + # assert quote == fstring_end.value + + # is_raw_fstring = "r" in prefix or "R" in prefix + # middles = [ + # leaf + # for leaf in node.leaves() + # if leaf.type == token.FSTRING_MIDDLE + # ] + + # if self.mode.string_normalization: + # middles, quote = normalize_fstring_quotes(quote, middles, is_raw_fstring) + + # fstring_start.value = prefix + quote + # fstring_end.value = quote + + # yield from self.visit_default(node) + + def __post_init__(self) -> None: + """You are in a twisty little maze of passages.""" + self.current_line = Line(mode=self.mode) + + v = self.visit_stmt + Ø: Set[str] = set() + self.visit_assert_stmt = partial(v, keywords={"assert"}, parens={"assert", ","}) + self.visit_if_stmt = partial( + v, keywords={"if", "else", "elif"}, parens={"if", "elif"} + ) + self.visit_while_stmt = partial(v, keywords={"while", "else"}, parens={"while"}) + self.visit_for_stmt = partial(v, keywords={"for", "else"}, parens={"for", "in"}) + self.visit_try_stmt = partial( + v, keywords={"try", "except", "else", "finally"}, parens=Ø + ) + self.visit_except_clause = partial(v, keywords={"except"}, parens={"except"}) + self.visit_with_stmt = partial(v, keywords={"with"}, parens={"with"}) + self.visit_classdef = partial(v, keywords={"class"}, parens=Ø) + + self.visit_expr_stmt = partial(v, keywords=Ø, parens=ASSIGNMENTS) + self.visit_return_stmt = partial(v, keywords={"return"}, parens={"return"}) + self.visit_import_from = partial(v, keywords=Ø, parens={"import"}) + self.visit_del_stmt = partial(v, keywords=Ø, parens={"del"}) + self.visit_async_funcdef = self.visit_async_stmt + self.visit_decorated = self.visit_decorators + + # PEP 634 + self.visit_match_stmt = self.visit_match_case + self.visit_case_block = self.visit_match_case + if Preview.remove_redundant_guard_parens in self.mode: + self.visit_guard = partial(v, keywords=Ø, parens={"if"}) + + +def _hugging_power_ops_line_to_string( + line: Line, + features: Collection[Feature], + mode: Mode, +) -> Optional[str]: + try: + return line_to_string(next(hug_power_op(line, features, mode))) + except CannotTransform: + return None + + +def transform_line( + line: Line, mode: Mode, features: Collection[Feature] = () +) -> Iterator[Line]: + """Transform a `line`, potentially splitting it into many lines. + + They should fit in the allotted `line_length` but might not be able to. + + `features` are syntactical features that may be used in the output. + """ + if line.is_comment: + yield line + return + + line_str = line_to_string(line) + + # We need the line string when power operators are hugging to determine if we should + # split the line. Default to line_str, if no power operator are present on the line. + line_str_hugging_power_ops = ( + _hugging_power_ops_line_to_string(line, features, mode) or line_str + ) + + ll = mode.line_length + sn = mode.string_normalization + string_merge = StringMerger(ll, sn) + string_paren_strip = StringParenStripper(ll, sn) + string_split = StringSplitter(ll, sn) + string_paren_wrap = StringParenWrapper(ll, sn) + + transformers: List[Transformer] + if ( + not line.contains_uncollapsable_type_comments() + and not line.should_split_rhs + and not line.magic_trailing_comma + and ( + is_line_short_enough(line, mode=mode, line_str=line_str_hugging_power_ops) + or line.contains_unsplittable_type_ignore() + ) + and not (line.inside_brackets and line.contains_standalone_comments()) + and not line.contains_implicit_multiline_string_with_comments() + ): + # Only apply basic string preprocessing, since lines shouldn't be split here. + if Preview.string_processing in mode: + transformers = [string_merge, string_paren_strip] + else: + transformers = [] + elif line.is_def and not should_split_funcdef_with_rhs(line, mode): + transformers = [left_hand_split] + else: + + def _rhs( + self: object, line: Line, features: Collection[Feature], mode: Mode + ) -> Iterator[Line]: + """Wraps calls to `right_hand_split`. + + The calls increasingly `omit` right-hand trailers (bracket pairs with + content), meaning the trailers get glued together to split on another + bracket pair instead. + """ + for omit in generate_trailers_to_omit(line, mode.line_length): + lines = list(right_hand_split(line, mode, features, omit=omit)) + # Note: this check is only able to figure out if the first line of the + # *current* transformation fits in the line length. This is true only + # for simple cases. All others require running more transforms via + # `transform_line()`. This check doesn't know if those would succeed. + if is_line_short_enough(lines[0], mode=mode): + yield from lines + return + + # All splits failed, best effort split with no omits. + # This mostly happens to multiline strings that are by definition + # reported as not fitting a single line, as well as lines that contain + # trailing commas (those have to be exploded). + yield from right_hand_split(line, mode, features=features) + + # HACK: nested functions (like _rhs) compiled by mypyc don't retain their + # __name__ attribute which is needed in `run_transformer` further down. + # Unfortunately a nested class breaks mypyc too. So a class must be created + # via type ... https://github.com/mypyc/mypyc/issues/884 + rhs = type("rhs", (), {"__call__": _rhs})() + + if Preview.string_processing in mode: + if line.inside_brackets: + transformers = [ + string_merge, + string_paren_strip, + string_split, + delimiter_split, + standalone_comment_split, + string_paren_wrap, + rhs, + ] + else: + transformers = [ + string_merge, + string_paren_strip, + string_split, + string_paren_wrap, + rhs, + ] + else: + if line.inside_brackets: + transformers = [delimiter_split, standalone_comment_split, rhs] + else: + transformers = [rhs] + # It's always safe to attempt hugging of power operations and pretty much every line + # could match. + transformers.append(hug_power_op) + + for transform in transformers: + # We are accumulating lines in `result` because we might want to abort + # mission and return the original line in the end, or attempt a different + # split altogether. + try: + result = run_transformer(line, transform, mode, features, line_str=line_str) + except CannotTransform: + continue + else: + yield from result + break + + else: + yield line + + +def should_split_funcdef_with_rhs(line: Line, mode: Mode) -> bool: + """If a funcdef has a magic trailing comma in the return type, then we should first + split the line with rhs to respect the comma. + """ + return_type_leaves: List[Leaf] = [] + in_return_type = False + + for leaf in line.leaves: + if leaf.type == token.COLON: + in_return_type = False + if in_return_type: + return_type_leaves.append(leaf) + if leaf.type == token.RARROW: + in_return_type = True + + # using `bracket_split_build_line` will mess with whitespace, so we duplicate a + # couple lines from it. + result = Line(mode=line.mode, depth=line.depth) + leaves_to_track = get_leaves_inside_matching_brackets(return_type_leaves) + for leaf in return_type_leaves: + result.append( + leaf, + preformatted=True, + track_bracket=id(leaf) in leaves_to_track, + ) + + # we could also return true if the line is too long, and the return type is longer + # than the param list. Or if `should_split_rhs` returns True. + return result.magic_trailing_comma is not None + + +class _BracketSplitComponent(Enum): + head = auto() + body = auto() + tail = auto() + + +def left_hand_split( + line: Line, _features: Collection[Feature], mode: Mode +) -> Iterator[Line]: + """Split line into many lines, starting with the first matching bracket pair. + + Note: this usually looks weird, only use this for function definitions. + Prefer RHS otherwise. This is why this function is not symmetrical with + :func:`right_hand_split` which also handles optional parentheses. + """ + tail_leaves: List[Leaf] = [] + body_leaves: List[Leaf] = [] + head_leaves: List[Leaf] = [] + current_leaves = head_leaves + matching_bracket: Optional[Leaf] = None + for leaf in line.leaves: + if ( + current_leaves is body_leaves + and leaf.type in CLOSING_BRACKETS + and leaf.opening_bracket is matching_bracket + and isinstance(matching_bracket, Leaf) + ): + ensure_visible(leaf) + ensure_visible(matching_bracket) + current_leaves = tail_leaves if body_leaves else head_leaves + current_leaves.append(leaf) + if current_leaves is head_leaves: + if leaf.type in OPENING_BRACKETS: + matching_bracket = leaf + current_leaves = body_leaves + if not matching_bracket or not tail_leaves: + raise CannotSplit("No brackets found") + + head = bracket_split_build_line( + head_leaves, line, matching_bracket, component=_BracketSplitComponent.head + ) + body = bracket_split_build_line( + body_leaves, line, matching_bracket, component=_BracketSplitComponent.body + ) + tail = bracket_split_build_line( + tail_leaves, line, matching_bracket, component=_BracketSplitComponent.tail + ) + bracket_split_succeeded_or_raise(head, body, tail) + for result in (head, body, tail): + if result: + yield result + + +def right_hand_split( + line: Line, + mode: Mode, + features: Collection[Feature] = (), + omit: Collection[LeafID] = (), +) -> Iterator[Line]: + """Split line into many lines, starting with the last matching bracket pair. + + If the split was by optional parentheses, attempt splitting without them, too. + `omit` is a collection of closing bracket IDs that shouldn't be considered for + this split. + + Note: running this function modifies `bracket_depth` on the leaves of `line`. + """ + rhs_result = _first_right_hand_split(line, omit=omit) + yield from _maybe_split_omitting_optional_parens( + rhs_result, line, mode, features=features, omit=omit + ) + + +def _first_right_hand_split( + line: Line, + omit: Collection[LeafID] = (), +) -> RHSResult: + """Split the line into head, body, tail starting with the last bracket pair. + + Note: this function should not have side effects. It's relied upon by + _maybe_split_omitting_optional_parens to get an opinion whether to prefer + splitting on the right side of an assignment statement. + """ + tail_leaves: List[Leaf] = [] + body_leaves: List[Leaf] = [] + head_leaves: List[Leaf] = [] + current_leaves = tail_leaves + opening_bracket: Optional[Leaf] = None + closing_bracket: Optional[Leaf] = None + for leaf in reversed(line.leaves): + if current_leaves is body_leaves: + if leaf is opening_bracket: + current_leaves = head_leaves if body_leaves else tail_leaves + current_leaves.append(leaf) + if current_leaves is tail_leaves: + if leaf.type in CLOSING_BRACKETS and id(leaf) not in omit: + opening_bracket = leaf.opening_bracket + closing_bracket = leaf + current_leaves = body_leaves + if not (opening_bracket and closing_bracket and head_leaves): + # If there is no opening or closing_bracket that means the split failed and + # all content is in the tail. Otherwise, if `head_leaves` are empty, it means + # the matching `opening_bracket` wasn't available on `line` anymore. + raise CannotSplit("No brackets found") + + tail_leaves.reverse() + body_leaves.reverse() + head_leaves.reverse() + + body: Optional[Line] = None + if ( + Preview.hug_parens_with_braces_and_square_brackets in line.mode + and tail_leaves[0].value + and tail_leaves[0].opening_bracket is head_leaves[-1] + ): + inner_body_leaves = list(body_leaves) + hugged_opening_leaves: List[Leaf] = [] + hugged_closing_leaves: List[Leaf] = [] + is_unpacking = body_leaves[0].type in [token.STAR, token.DOUBLESTAR] + unpacking_offset: int = 1 if is_unpacking else 0 + while ( + len(inner_body_leaves) >= 2 + unpacking_offset + and inner_body_leaves[-1].type in CLOSING_BRACKETS + and inner_body_leaves[-1].opening_bracket + is inner_body_leaves[unpacking_offset] + ): + if unpacking_offset: + hugged_opening_leaves.append(inner_body_leaves.pop(0)) + unpacking_offset = 0 + hugged_opening_leaves.append(inner_body_leaves.pop(0)) + hugged_closing_leaves.insert(0, inner_body_leaves.pop()) + + if hugged_opening_leaves and inner_body_leaves: + inner_body = bracket_split_build_line( + inner_body_leaves, + line, + hugged_opening_leaves[-1], + component=_BracketSplitComponent.body, + ) + if ( + line.mode.magic_trailing_comma + and inner_body_leaves[-1].type == token.COMMA + ): + should_hug = True + else: + line_length = line.mode.line_length - sum( + len(str(leaf)) + for leaf in hugged_opening_leaves + hugged_closing_leaves + ) + if is_line_short_enough( + inner_body, mode=replace(line.mode, line_length=line_length) + ): + # Do not hug if it fits on a single line. + should_hug = False + else: + should_hug = True + if should_hug: + body_leaves = inner_body_leaves + head_leaves.extend(hugged_opening_leaves) + tail_leaves = hugged_closing_leaves + tail_leaves + body = inner_body # No need to re-calculate the body again later. + + head = bracket_split_build_line( + head_leaves, line, opening_bracket, component=_BracketSplitComponent.head + ) + if body is None: + body = bracket_split_build_line( + body_leaves, line, opening_bracket, component=_BracketSplitComponent.body + ) + tail = bracket_split_build_line( + tail_leaves, line, opening_bracket, component=_BracketSplitComponent.tail + ) + bracket_split_succeeded_or_raise(head, body, tail) + return RHSResult(head, body, tail, opening_bracket, closing_bracket) + + +def _maybe_split_omitting_optional_parens( + rhs: RHSResult, + line: Line, + mode: Mode, + features: Collection[Feature] = (), + omit: Collection[LeafID] = (), +) -> Iterator[Line]: + if ( + Feature.FORCE_OPTIONAL_PARENTHESES not in features + # the opening bracket is an optional paren + and rhs.opening_bracket.type == token.LPAR + and not rhs.opening_bracket.value + # the closing bracket is an optional paren + and rhs.closing_bracket.type == token.RPAR + and not rhs.closing_bracket.value + # it's not an import (optional parens are the only thing we can split on + # in this case; attempting a split without them is a waste of time) + and not line.is_import + # and we can actually remove the parens + and can_omit_invisible_parens(rhs, mode.line_length) + ): + omit = {id(rhs.closing_bracket), *omit} + try: + # The RHSResult Omitting Optional Parens. + rhs_oop = _first_right_hand_split(line, omit=omit) + is_split_right_after_equal = ( + len(rhs.head.leaves) >= 2 and rhs.head.leaves[-2].type == token.EQUAL + ) + rhs_head_contains_brackets = any( + leaf.type in BRACKETS for leaf in rhs.head.leaves[:-1] + ) + # the -1 is for the ending optional paren + rhs_head_short_enough = is_line_short_enough( + rhs.head, mode=replace(mode, line_length=mode.line_length - 1) + ) + rhs_head_explode_blocked_by_magic_trailing_comma = ( + rhs.head.magic_trailing_comma is None + ) + if ( + not ( + is_split_right_after_equal + and rhs_head_contains_brackets + and rhs_head_short_enough + and rhs_head_explode_blocked_by_magic_trailing_comma + ) + # the omit optional parens split is preferred by some other reason + or _prefer_split_rhs_oop_over_rhs(rhs_oop, rhs, mode) + ): + yield from _maybe_split_omitting_optional_parens( + rhs_oop, line, mode, features=features, omit=omit + ) + return + + except CannotSplit as e: + # For chained assignments we want to use the previous successful split + if line.is_chained_assignment: + pass + + elif not can_be_split(rhs.body) and not is_line_short_enough( + rhs.body, mode=mode + ): + raise CannotSplit( + "Splitting failed, body is still too long and can't be split." + ) from e + + elif ( + rhs.head.contains_multiline_strings() + or rhs.tail.contains_multiline_strings() + ): + raise CannotSplit( + "The current optional pair of parentheses is bound to fail to" + " satisfy the splitting algorithm because the head or the tail" + " contains multiline strings which by definition never fit one" + " line." + ) from e + + ensure_visible(rhs.opening_bracket) + ensure_visible(rhs.closing_bracket) + for result in (rhs.head, rhs.body, rhs.tail): + if result: + yield result + + +def _prefer_split_rhs_oop_over_rhs( + rhs_oop: RHSResult, rhs: RHSResult, mode: Mode +) -> bool: + """ + Returns whether we should prefer the result from a split omitting optional parens + (rhs_oop) over the original (rhs). + """ + # If we have multiple targets, we prefer more `=`s on the head vs pushing them to + # the body + rhs_head_equal_count = [leaf.type for leaf in rhs.head.leaves].count(token.EQUAL) + rhs_oop_head_equal_count = [leaf.type for leaf in rhs_oop.head.leaves].count( + token.EQUAL + ) + if rhs_head_equal_count > 1 and rhs_head_equal_count > rhs_oop_head_equal_count: + return False + + has_closing_bracket_after_assign = False + for leaf in reversed(rhs_oop.head.leaves): + if leaf.type == token.EQUAL: + break + if leaf.type in CLOSING_BRACKETS: + has_closing_bracket_after_assign = True + break + return ( + # contains matching brackets after the `=` (done by checking there is a + # closing bracket) + has_closing_bracket_after_assign + or ( + # the split is actually from inside the optional parens (done by checking + # the first line still contains the `=`) + any(leaf.type == token.EQUAL for leaf in rhs_oop.head.leaves) + # the first line is short enough + and is_line_short_enough(rhs_oop.head, mode=mode) + ) + # contains unsplittable type ignore + or rhs_oop.head.contains_unsplittable_type_ignore() + or rhs_oop.body.contains_unsplittable_type_ignore() + or rhs_oop.tail.contains_unsplittable_type_ignore() + ) + + +def bracket_split_succeeded_or_raise(head: Line, body: Line, tail: Line) -> None: + """Raise :exc:`CannotSplit` if the last left- or right-hand split failed. + + Do nothing otherwise. + + A left- or right-hand split is based on a pair of brackets. Content before + (and including) the opening bracket is left on one line, content inside the + brackets is put on a separate line, and finally content starting with and + following the closing bracket is put on a separate line. + + Those are called `head`, `body`, and `tail`, respectively. If the split + produced the same line (all content in `head`) or ended up with an empty `body` + and the `tail` is just the closing bracket, then it's considered failed. + """ + tail_len = len(str(tail).strip()) + if not body: + if tail_len == 0: + raise CannotSplit("Splitting brackets produced the same line") + + elif tail_len < 3: + raise CannotSplit( + f"Splitting brackets on an empty body to save {tail_len} characters is" + " not worth it" + ) + + +def bracket_split_build_line( + leaves: List[Leaf], + original: Line, + opening_bracket: Leaf, + *, + component: _BracketSplitComponent, +) -> Line: + """Return a new line with given `leaves` and respective comments from `original`. + + If it's the head component, brackets will be tracked so trailing commas are + respected. + + If it's the body component, the result line is one-indented inside brackets and as + such has its first leaf's prefix normalized and a trailing comma added when + expected. + """ + result = Line(mode=original.mode, depth=original.depth) + if component is _BracketSplitComponent.body: + result.inside_brackets = True + result.depth += 1 + if leaves: + no_commas = ( + # Ensure a trailing comma for imports and standalone function arguments + original.is_def + # Don't add one after any comments or within type annotations + and opening_bracket.value == "(" + # Don't add one if there's already one there + and not any( + leaf.type == token.COMMA + and ( + Preview.typed_params_trailing_comma not in original.mode + or not is_part_of_annotation(leaf) + ) + for leaf in leaves + ) + # Don't add one inside parenthesized return annotations + and get_annotation_type(leaves[0]) != "return" + # Don't add one inside PEP 604 unions + and not ( + leaves[0].parent + and leaves[0].parent.next_sibling + and leaves[0].parent.next_sibling.type == token.VBAR + ) + ) + + if original.is_import or no_commas: + for i in range(len(leaves) - 1, -1, -1): + if leaves[i].type == STANDALONE_COMMENT: + continue + + if leaves[i].type != token.COMMA: + new_comma = Leaf(token.COMMA, ",") + leaves.insert(i + 1, new_comma) + break + + leaves_to_track: Set[LeafID] = set() + if component is _BracketSplitComponent.head: + leaves_to_track = get_leaves_inside_matching_brackets(leaves) + # Populate the line + for leaf in leaves: + result.append( + leaf, + preformatted=True, + track_bracket=id(leaf) in leaves_to_track, + ) + for comment_after in original.comments_after(leaf): + result.append(comment_after, preformatted=True) + if component is _BracketSplitComponent.body and should_split_line( + result, opening_bracket + ): + result.should_split_rhs = True + return result + + +def dont_increase_indentation(split_func: Transformer) -> Transformer: + """Normalize prefix of the first leaf in every line returned by `split_func`. + + This is a decorator over relevant split functions. + """ + + @wraps(split_func) + def split_wrapper( + line: Line, features: Collection[Feature], mode: Mode + ) -> Iterator[Line]: + for split_line in split_func(line, features, mode): + split_line.leaves[0].prefix = "" + yield split_line + + return split_wrapper + + +def _get_last_non_comment_leaf(line: Line) -> Optional[int]: + for leaf_idx in range(len(line.leaves) - 1, 0, -1): + if line.leaves[leaf_idx].type != STANDALONE_COMMENT: + return leaf_idx + return None + + +def _can_add_trailing_comma(leaf: Leaf, features: Collection[Feature]) -> bool: + if is_vararg(leaf, within={syms.typedargslist}): + return Feature.TRAILING_COMMA_IN_DEF in features + if is_vararg(leaf, within={syms.arglist, syms.argument}): + return Feature.TRAILING_COMMA_IN_CALL in features + return True + + +def _safe_add_trailing_comma(safe: bool, delimiter_priority: int, line: Line) -> Line: + if ( + safe + and delimiter_priority == COMMA_PRIORITY + and line.leaves[-1].type != token.COMMA + and line.leaves[-1].type != STANDALONE_COMMENT + ): + new_comma = Leaf(token.COMMA, ",") + line.append(new_comma) + return line + + +MIGRATE_COMMENT_DELIMITERS = {STRING_PRIORITY, COMMA_PRIORITY} + + +@dont_increase_indentation +def delimiter_split( + line: Line, features: Collection[Feature], mode: Mode +) -> Iterator[Line]: + """Split according to delimiters of the highest priority. + + If the appropriate Features are given, the split will add trailing commas + also in function signatures and calls that contain `*` and `**`. + """ + if len(line.leaves) == 0: + raise CannotSplit("Line empty") from None + last_leaf = line.leaves[-1] + + bt = line.bracket_tracker + try: + delimiter_priority = bt.max_delimiter_priority(exclude={id(last_leaf)}) + except ValueError: + raise CannotSplit("No delimiters found") from None + + if ( + delimiter_priority == DOT_PRIORITY + and bt.delimiter_count_with_priority(delimiter_priority) == 1 + ): + raise CannotSplit("Splitting a single attribute from its owner looks wrong") + + current_line = Line( + mode=line.mode, depth=line.depth, inside_brackets=line.inside_brackets + ) + lowest_depth = sys.maxsize + trailing_comma_safe = True + + def append_to_line(leaf: Leaf) -> Iterator[Line]: + """Append `leaf` to current line or to new line if appending impossible.""" + nonlocal current_line + try: + current_line.append_safe(leaf, preformatted=True) + except ValueError: + yield current_line + + current_line = Line( + mode=line.mode, depth=line.depth, inside_brackets=line.inside_brackets + ) + current_line.append(leaf) + + def append_comments(leaf: Leaf) -> Iterator[Line]: + for comment_after in line.comments_after(leaf): + yield from append_to_line(comment_after) + + last_non_comment_leaf = _get_last_non_comment_leaf(line) + for leaf_idx, leaf in enumerate(line.leaves): + yield from append_to_line(leaf) + + previous_priority = leaf_idx > 0 and bt.delimiters.get( + id(line.leaves[leaf_idx - 1]) + ) + if ( + previous_priority != delimiter_priority + or delimiter_priority in MIGRATE_COMMENT_DELIMITERS + ): + yield from append_comments(leaf) + + lowest_depth = min(lowest_depth, leaf.bracket_depth) + if trailing_comma_safe and leaf.bracket_depth == lowest_depth: + trailing_comma_safe = _can_add_trailing_comma(leaf, features) + + if last_leaf.type == STANDALONE_COMMENT and leaf_idx == last_non_comment_leaf: + current_line = _safe_add_trailing_comma( + trailing_comma_safe, delimiter_priority, current_line + ) + + leaf_priority = bt.delimiters.get(id(leaf)) + if leaf_priority == delimiter_priority: + if ( + leaf_idx + 1 < len(line.leaves) + and delimiter_priority not in MIGRATE_COMMENT_DELIMITERS + ): + yield from append_comments(line.leaves[leaf_idx + 1]) + + yield current_line + current_line = Line( + mode=line.mode, depth=line.depth, inside_brackets=line.inside_brackets + ) + + if current_line: + current_line = _safe_add_trailing_comma( + trailing_comma_safe, delimiter_priority, current_line + ) + yield current_line + + +@dont_increase_indentation +def standalone_comment_split( + line: Line, features: Collection[Feature], mode: Mode +) -> Iterator[Line]: + """Split standalone comments from the rest of the line.""" + if not line.contains_standalone_comments(): + raise CannotSplit("Line does not have any standalone comments") + + current_line = Line( + mode=line.mode, depth=line.depth, inside_brackets=line.inside_brackets + ) + + def append_to_line(leaf: Leaf) -> Iterator[Line]: + """Append `leaf` to current line or to new line if appending impossible.""" + nonlocal current_line + try: + current_line.append_safe(leaf, preformatted=True) + except ValueError: + yield current_line + + current_line = Line( + line.mode, depth=line.depth, inside_brackets=line.inside_brackets + ) + current_line.append(leaf) + + for leaf in line.leaves: + yield from append_to_line(leaf) + + for comment_after in line.comments_after(leaf): + yield from append_to_line(comment_after) + + if current_line: + yield current_line + + +def normalize_invisible_parens( # noqa: C901 + node: Node, parens_after: Set[str], *, mode: Mode, features: Collection[Feature] +) -> None: + """Make existing optional parentheses invisible or create new ones. + + `parens_after` is a set of string leaf values immediately after which parens + should be put. + + Standardizes on visible parentheses for single-element tuples, and keeps + existing visible parentheses for other tuples and generator expressions. + """ + for pc in list_comments(node.prefix, is_endmarker=False): + if pc.value in FMT_OFF: + # This `node` has a prefix with `# fmt: off`, don't mess with parens. + return + + # The multiple context managers grammar has a different pattern, thus this is + # separate from the for-loop below. This possibly wraps them in invisible parens, + # and later will be removed in remove_with_parens when needed. + if node.type == syms.with_stmt: + _maybe_wrap_cms_in_parens(node, mode, features) + + check_lpar = False + for index, child in enumerate(list(node.children)): + # Fixes a bug where invisible parens are not properly stripped from + # assignment statements that contain type annotations. + if isinstance(child, Node) and child.type == syms.annassign: + normalize_invisible_parens( + child, parens_after=parens_after, mode=mode, features=features + ) + + # Fixes a bug where invisible parens are not properly wrapped around + # case blocks. + if isinstance(child, Node) and child.type == syms.case_block: + normalize_invisible_parens( + child, parens_after={"case"}, mode=mode, features=features + ) + + # Add parentheses around if guards in case blocks + if ( + isinstance(child, Node) + and child.type == syms.guard + and Preview.parens_for_long_if_clauses_in_case_block in mode + ): + normalize_invisible_parens( + child, parens_after={"if"}, mode=mode, features=features + ) + + # Add parentheses around long tuple unpacking in assignments. + if ( + index == 0 + and isinstance(child, Node) + and child.type == syms.testlist_star_expr + ): + check_lpar = True + + if check_lpar: + if ( + child.type == syms.atom + and node.type == syms.for_stmt + and isinstance(child.prev_sibling, Leaf) + and child.prev_sibling.type == token.NAME + and child.prev_sibling.value == "for" + ): + if maybe_make_parens_invisible_in_atom( + child, + parent=node, + remove_brackets_around_comma=True, + ): + wrap_in_parentheses(node, child, visible=False) + elif isinstance(child, Node) and node.type == syms.with_stmt: + remove_with_parens(child, node) + elif child.type == syms.atom: + if maybe_make_parens_invisible_in_atom( + child, + parent=node, + ): + wrap_in_parentheses(node, child, visible=False) + elif is_one_tuple(child): + wrap_in_parentheses(node, child, visible=True) + elif node.type == syms.import_from: + _normalize_import_from(node, child, index) + break + elif ( + index == 1 + and child.type == token.STAR + and node.type == syms.except_clause + ): + # In except* (PEP 654), the star is actually part of + # of the keyword. So we need to skip the insertion of + # invisible parentheses to work more precisely. + continue + + elif ( + isinstance(child, Leaf) + and child.next_sibling is not None + and child.next_sibling.type == token.COLON + and child.value == "case" + ): + # A special patch for "case case:" scenario, the second occurrence + # of case will be not parsed as a Python keyword. + break + + elif not is_multiline_string(child): + wrap_in_parentheses(node, child, visible=False) + + comma_check = child.type == token.COMMA + + check_lpar = isinstance(child, Leaf) and ( + child.value in parens_after or comma_check + ) + + +def _normalize_import_from(parent: Node, child: LN, index: int) -> None: + # "import from" nodes store parentheses directly as part of + # the statement + if is_lpar_token(child): + assert is_rpar_token(parent.children[-1]) + # make parentheses invisible + child.value = "" + parent.children[-1].value = "" + elif child.type != token.STAR: + # insert invisible parentheses + parent.insert_child(index, Leaf(token.LPAR, "")) + parent.append_child(Leaf(token.RPAR, "")) + + +def remove_await_parens(node: Node) -> None: + if node.children[0].type == token.AWAIT and len(node.children) > 1: + if ( + node.children[1].type == syms.atom + and node.children[1].children[0].type == token.LPAR + ): + if maybe_make_parens_invisible_in_atom( + node.children[1], + parent=node, + remove_brackets_around_comma=True, + ): + wrap_in_parentheses(node, node.children[1], visible=False) + + # Since await is an expression we shouldn't remove + # brackets in cases where this would change + # the AST due to operator precedence. + # Therefore we only aim to remove brackets around + # power nodes that aren't also await expressions themselves. + # https://peps.python.org/pep-0492/#updated-operator-precedence-table + # N.B. We've still removed any redundant nested brackets though :) + opening_bracket = cast(Leaf, node.children[1].children[0]) + closing_bracket = cast(Leaf, node.children[1].children[-1]) + bracket_contents = node.children[1].children[1] + if isinstance(bracket_contents, Node) and ( + bracket_contents.type != syms.power + or bracket_contents.children[0].type == token.AWAIT + or any( + isinstance(child, Leaf) and child.type == token.DOUBLESTAR + for child in bracket_contents.children + ) + ): + ensure_visible(opening_bracket) + ensure_visible(closing_bracket) + + +def _maybe_wrap_cms_in_parens( + node: Node, mode: Mode, features: Collection[Feature] +) -> None: + """When enabled and safe, wrap the multiple context managers in invisible parens. + + It is only safe when `features` contain Feature.PARENTHESIZED_CONTEXT_MANAGERS. + """ + if ( + Feature.PARENTHESIZED_CONTEXT_MANAGERS not in features + or len(node.children) <= 2 + # If it's an atom, it's already wrapped in parens. + or node.children[1].type == syms.atom + ): + return + colon_index: Optional[int] = None + for i in range(2, len(node.children)): + if node.children[i].type == token.COLON: + colon_index = i + break + if colon_index is not None: + lpar = Leaf(token.LPAR, "") + rpar = Leaf(token.RPAR, "") + context_managers = node.children[1:colon_index] + for child in context_managers: + child.remove() + # After wrapping, the with_stmt will look like this: + # with_stmt + # NAME 'with' + # atom + # LPAR '' + # testlist_gexp + # ... <-- context_managers + # /testlist_gexp + # RPAR '' + # /atom + # COLON ':' + new_child = Node( + syms.atom, [lpar, Node(syms.testlist_gexp, context_managers), rpar] + ) + node.insert_child(1, new_child) + + +def remove_with_parens(node: Node, parent: Node) -> None: + """Recursively hide optional parens in `with` statements.""" + # Removing all unnecessary parentheses in with statements in one pass is a tad + # complex as different variations of bracketed statements result in pretty + # different parse trees: + # + # with (open("file")) as f: # this is an asexpr_test + # ... + # + # with (open("file") as f): # this is an atom containing an + # ... # asexpr_test + # + # with (open("file")) as f, (open("file")) as f: # this is asexpr_test, COMMA, + # ... # asexpr_test + # + # with (open("file") as f, open("file") as f): # an atom containing a + # ... # testlist_gexp which then + # # contains multiple asexpr_test(s) + if node.type == syms.atom: + if maybe_make_parens_invisible_in_atom( + node, + parent=parent, + remove_brackets_around_comma=True, + ): + wrap_in_parentheses(parent, node, visible=False) + if isinstance(node.children[1], Node): + remove_with_parens(node.children[1], node) + elif node.type == syms.testlist_gexp: + for child in node.children: + if isinstance(child, Node): + remove_with_parens(child, node) + elif node.type == syms.asexpr_test and not any( + leaf.type == token.COLONEQUAL for leaf in node.leaves() + ): + if maybe_make_parens_invisible_in_atom( + node.children[0], + parent=node, + remove_brackets_around_comma=True, + ): + wrap_in_parentheses(node, node.children[0], visible=False) + + +def maybe_make_parens_invisible_in_atom( + node: LN, + parent: LN, + remove_brackets_around_comma: bool = False, +) -> bool: + """If it's safe, make the parens in the atom `node` invisible, recursively. + Additionally, remove repeated, adjacent invisible parens from the atom `node` + as they are redundant. + + Returns whether the node should itself be wrapped in invisible parentheses. + """ + if ( + node.type not in (syms.atom, syms.expr) + or is_empty_tuple(node) + or is_one_tuple(node) + or (is_yield(node) and parent.type != syms.expr_stmt) + or ( + # This condition tries to prevent removing non-optional brackets + # around a tuple, however, can be a bit overzealous so we provide + # and option to skip this check for `for` and `with` statements. + not remove_brackets_around_comma + and max_delimiter_priority_in_atom(node) >= COMMA_PRIORITY + ) + or is_tuple_containing_walrus(node) + ): + return False + + if is_walrus_assignment(node): + if parent.type in [ + syms.annassign, + syms.expr_stmt, + syms.assert_stmt, + syms.return_stmt, + syms.except_clause, + syms.funcdef, + syms.with_stmt, + syms.tname, + # these ones aren't useful to end users, but they do please fuzzers + syms.for_stmt, + syms.del_stmt, + syms.for_stmt, + ]: + return False + + first = node.children[0] + last = node.children[-1] + if is_lpar_token(first) and is_rpar_token(last): + middle = node.children[1] + # make parentheses invisible + if ( + # If the prefix of `middle` includes a type comment with + # ignore annotation, then we do not remove the parentheses + not is_type_ignore_comment_string(middle.prefix.strip()) + ): + first.value = "" + if first.prefix.strip(): + # Preserve comments before first paren + middle.prefix = first.prefix + middle.prefix + last.value = "" + maybe_make_parens_invisible_in_atom( + middle, + parent=parent, + remove_brackets_around_comma=remove_brackets_around_comma, + ) + + if is_atom_with_invisible_parens(middle): + # Strip the invisible parens from `middle` by replacing + # it with the child in-between the invisible parens + middle.replace(middle.children[1]) + if middle.children[-1].prefix.strip(): + # Preserve comments before last paren + last.prefix = middle.children[-1].prefix + last.prefix + + return False + + return True + + +def should_split_line(line: Line, opening_bracket: Leaf) -> bool: + """Should `line` be immediately split with `delimiter_split()` after RHS?""" + + if not (opening_bracket.parent and opening_bracket.value in "[{("): + return False + + # We're essentially checking if the body is delimited by commas and there's more + # than one of them (we're excluding the trailing comma and if the delimiter priority + # is still commas, that means there's more). + exclude = set() + trailing_comma = False + try: + last_leaf = line.leaves[-1] + if last_leaf.type == token.COMMA: + trailing_comma = True + exclude.add(id(last_leaf)) + max_priority = line.bracket_tracker.max_delimiter_priority(exclude=exclude) + except (IndexError, ValueError): + return False + + return max_priority == COMMA_PRIORITY and ( + (line.mode.magic_trailing_comma and trailing_comma) + # always explode imports + or opening_bracket.parent.type in {syms.atom, syms.import_from} + ) + + +def generate_trailers_to_omit(line: Line, line_length: int) -> Iterator[Set[LeafID]]: + """Generate sets of closing bracket IDs that should be omitted in a RHS. + + Brackets can be omitted if the entire trailer up to and including + a preceding closing bracket fits in one line. + + Yielded sets are cumulative (contain results of previous yields, too). First + set is empty, unless the line should explode, in which case bracket pairs until + the one that needs to explode are omitted. + """ + + omit: Set[LeafID] = set() + if not line.magic_trailing_comma: + yield omit + + length = 4 * line.depth + opening_bracket: Optional[Leaf] = None + closing_bracket: Optional[Leaf] = None + inner_brackets: Set[LeafID] = set() + for index, leaf, leaf_length in line.enumerate_with_length(is_reversed=True): + length += leaf_length + if length > line_length: + break + + has_inline_comment = leaf_length > len(leaf.value) + len(leaf.prefix) + if leaf.type == STANDALONE_COMMENT or has_inline_comment: + break + + if opening_bracket: + if leaf is opening_bracket: + opening_bracket = None + elif leaf.type in CLOSING_BRACKETS: + prev = line.leaves[index - 1] if index > 0 else None + if ( + prev + and prev.type == token.COMMA + and leaf.opening_bracket is not None + and not is_one_sequence_between( + leaf.opening_bracket, leaf, line.leaves + ) + ): + # Never omit bracket pairs with trailing commas. + # We need to explode on those. + break + + inner_brackets.add(id(leaf)) + elif leaf.type in CLOSING_BRACKETS: + prev = line.leaves[index - 1] if index > 0 else None + if prev and prev.type in OPENING_BRACKETS: + # Empty brackets would fail a split so treat them as "inner" + # brackets (e.g. only add them to the `omit` set if another + # pair of brackets was good enough. + inner_brackets.add(id(leaf)) + continue + + if closing_bracket: + omit.add(id(closing_bracket)) + omit.update(inner_brackets) + inner_brackets.clear() + yield omit + + if ( + prev + and prev.type == token.COMMA + and leaf.opening_bracket is not None + and not is_one_sequence_between(leaf.opening_bracket, leaf, line.leaves) + ): + # Never omit bracket pairs with trailing commas. + # We need to explode on those. + break + + if leaf.value: + opening_bracket = leaf.opening_bracket + closing_bracket = leaf + + +def run_transformer( + line: Line, + transform: Transformer, + mode: Mode, + features: Collection[Feature], + *, + line_str: str = "", +) -> List[Line]: + if not line_str: + line_str = line_to_string(line) + result: List[Line] = [] + for transformed_line in transform(line, features, mode): + if str(transformed_line).strip("\n") == line_str: + raise CannotTransform("Line transformer returned an unchanged result") + + result.extend(transform_line(transformed_line, mode=mode, features=features)) + + features_set = set(features) + if ( + Feature.FORCE_OPTIONAL_PARENTHESES in features_set + or transform.__class__.__name__ != "rhs" + or not line.bracket_tracker.invisible + or any(bracket.value for bracket in line.bracket_tracker.invisible) + or line.contains_multiline_strings() + or result[0].contains_uncollapsable_type_comments() + or result[0].contains_unsplittable_type_ignore() + or is_line_short_enough(result[0], mode=mode) + # If any leaves have no parents (which _can_ occur since + # `transform(line)` potentially destroys the line's underlying node + # structure), then we can't proceed. Doing so would cause the below + # call to `append_leaves()` to fail. + or any(leaf.parent is None for leaf in line.leaves) + ): + return result + + line_copy = line.clone() + append_leaves(line_copy, line, line.leaves) + features_fop = features_set | {Feature.FORCE_OPTIONAL_PARENTHESES} + second_opinion = run_transformer( + line_copy, transform, mode, features_fop, line_str=line_str + ) + if all(is_line_short_enough(ln, mode=mode) for ln in second_opinion): + result = second_opinion + return result diff --git a/venv/lib/python3.12/site-packages/black/lines.py b/venv/lib/python3.12/site-packages/black/lines.py new file mode 100644 index 0000000000..b9b3add9e2 --- /dev/null +++ b/venv/lib/python3.12/site-packages/black/lines.py @@ -0,0 +1,1078 @@ +import itertools +import math +from dataclasses import dataclass, field +from typing import ( + Callable, + Dict, + Iterator, + List, + Optional, + Sequence, + Tuple, + TypeVar, + Union, + cast, +) + +from black.brackets import COMMA_PRIORITY, DOT_PRIORITY, BracketTracker +from black.mode import Mode, Preview +from black.nodes import ( + BRACKETS, + CLOSING_BRACKETS, + OPENING_BRACKETS, + STANDALONE_COMMENT, + TEST_DESCENDANTS, + child_towards, + is_docstring, + is_import, + is_multiline_string, + is_one_sequence_between, + is_type_comment, + is_type_ignore_comment, + is_with_or_async_with_stmt, + make_simple_prefix, + replace_child, + syms, + whitespace, +) +from black.strings import str_width +from blib2to3.pgen2 import token +from blib2to3.pytree import Leaf, Node + +# types +T = TypeVar("T") +Index = int +LeafID = int +LN = Union[Leaf, Node] + + +@dataclass +class Line: + """Holds leaves and comments. Can be printed with `str(line)`.""" + + mode: Mode = field(repr=False) + depth: int = 0 + leaves: List[Leaf] = field(default_factory=list) + # keys ordered like `leaves` + comments: Dict[LeafID, List[Leaf]] = field(default_factory=dict) + bracket_tracker: BracketTracker = field(default_factory=BracketTracker) + inside_brackets: bool = False + should_split_rhs: bool = False + magic_trailing_comma: Optional[Leaf] = None + + def append( + self, leaf: Leaf, preformatted: bool = False, track_bracket: bool = False + ) -> None: + """Add a new `leaf` to the end of the line. + + Unless `preformatted` is True, the `leaf` will receive a new consistent + whitespace prefix and metadata applied by :class:`BracketTracker`. + Trailing commas are maybe removed, unpacked for loop variables are + demoted from being delimiters. + + Inline comments are put aside. + """ + has_value = ( + leaf.type in BRACKETS + # empty fstring-middles must not be truncated + or leaf.type == token.FSTRING_MIDDLE + or bool(leaf.value.strip()) + ) + if not has_value: + return + + if token.COLON == leaf.type and self.is_class_paren_empty: + del self.leaves[-2:] + if self.leaves and not preformatted: + # Note: at this point leaf.prefix should be empty except for + # imports, for which we only preserve newlines. + leaf.prefix += whitespace( + leaf, + complex_subscript=self.is_complex_subscript(leaf), + mode=self.mode, + ) + if self.inside_brackets or not preformatted or track_bracket: + self.bracket_tracker.mark(leaf) + if self.mode.magic_trailing_comma: + if self.has_magic_trailing_comma(leaf): + self.magic_trailing_comma = leaf + elif self.has_magic_trailing_comma(leaf): + self.remove_trailing_comma() + if not self.append_comment(leaf): + self.leaves.append(leaf) + + def append_safe(self, leaf: Leaf, preformatted: bool = False) -> None: + """Like :func:`append()` but disallow invalid standalone comment structure. + + Raises ValueError when any `leaf` is appended after a standalone comment + or when a standalone comment is not the first leaf on the line. + """ + if ( + self.bracket_tracker.depth == 0 + or self.bracket_tracker.any_open_for_or_lambda() + ): + if self.is_comment: + raise ValueError("cannot append to standalone comments") + + if self.leaves and leaf.type == STANDALONE_COMMENT: + raise ValueError( + "cannot append standalone comments to a populated line" + ) + + self.append(leaf, preformatted=preformatted) + + @property + def is_comment(self) -> bool: + """Is this line a standalone comment?""" + return len(self.leaves) == 1 and self.leaves[0].type == STANDALONE_COMMENT + + @property + def is_decorator(self) -> bool: + """Is this line a decorator?""" + return bool(self) and self.leaves[0].type == token.AT + + @property + def is_import(self) -> bool: + """Is this an import line?""" + return bool(self) and is_import(self.leaves[0]) + + @property + def is_with_or_async_with_stmt(self) -> bool: + """Is this a with_stmt line?""" + return bool(self) and is_with_or_async_with_stmt(self.leaves[0]) + + @property + def is_class(self) -> bool: + """Is this line a class definition?""" + return ( + bool(self) + and self.leaves[0].type == token.NAME + and self.leaves[0].value == "class" + ) + + @property + def is_stub_class(self) -> bool: + """Is this line a class definition with a body consisting only of "..."?""" + return self.is_class and self.leaves[-3:] == [ + Leaf(token.DOT, ".") for _ in range(3) + ] + + @property + def is_def(self) -> bool: + """Is this a function definition? (Also returns True for async defs.)""" + try: + first_leaf = self.leaves[0] + except IndexError: + return False + + try: + second_leaf: Optional[Leaf] = self.leaves[1] + except IndexError: + second_leaf = None + return (first_leaf.type == token.NAME and first_leaf.value == "def") or ( + first_leaf.type == token.ASYNC + and second_leaf is not None + and second_leaf.type == token.NAME + and second_leaf.value == "def" + ) + + @property + def is_stub_def(self) -> bool: + """Is this line a function definition with a body consisting only of "..."?""" + return self.is_def and self.leaves[-4:] == [Leaf(token.COLON, ":")] + [ + Leaf(token.DOT, ".") for _ in range(3) + ] + + @property + def is_class_paren_empty(self) -> bool: + """Is this a class with no base classes but using parentheses? + + Those are unnecessary and should be removed. + """ + return ( + bool(self) + and len(self.leaves) == 4 + and self.is_class + and self.leaves[2].type == token.LPAR + and self.leaves[2].value == "(" + and self.leaves[3].type == token.RPAR + and self.leaves[3].value == ")" + ) + + @property + def _is_triple_quoted_string(self) -> bool: + """Is the line a triple quoted string?""" + if not self or self.leaves[0].type != token.STRING: + return False + value = self.leaves[0].value + if value.startswith(('"""', "'''")): + return True + if value.startswith(("r'''", 'r"""', "R'''", 'R"""')): + return True + return False + + @property + def is_docstring(self) -> bool: + """Is the line a docstring?""" + if Preview.unify_docstring_detection not in self.mode: + return self._is_triple_quoted_string + return bool(self) and is_docstring(self.leaves[0], self.mode) + + @property + def is_chained_assignment(self) -> bool: + """Is the line a chained assignment""" + return [leaf.type for leaf in self.leaves].count(token.EQUAL) > 1 + + @property + def opens_block(self) -> bool: + """Does this line open a new level of indentation.""" + if len(self.leaves) == 0: + return False + return self.leaves[-1].type == token.COLON + + def is_fmt_pass_converted( + self, *, first_leaf_matches: Optional[Callable[[Leaf], bool]] = None + ) -> bool: + """Is this line converted from fmt off/skip code? + + If first_leaf_matches is not None, it only returns True if the first + leaf of converted code matches. + """ + if len(self.leaves) != 1: + return False + leaf = self.leaves[0] + if ( + leaf.type != STANDALONE_COMMENT + or leaf.fmt_pass_converted_first_leaf is None + ): + return False + return first_leaf_matches is None or first_leaf_matches( + leaf.fmt_pass_converted_first_leaf + ) + + def contains_standalone_comments(self) -> bool: + """If so, needs to be split before emitting.""" + for leaf in self.leaves: + if leaf.type == STANDALONE_COMMENT: + return True + + return False + + def contains_implicit_multiline_string_with_comments(self) -> bool: + """Chck if we have an implicit multiline string with comments on the line""" + for leaf_type, leaf_group_iterator in itertools.groupby( + self.leaves, lambda leaf: leaf.type + ): + if leaf_type != token.STRING: + continue + leaf_list = list(leaf_group_iterator) + if len(leaf_list) == 1: + continue + for leaf in leaf_list: + if self.comments_after(leaf): + return True + return False + + def contains_uncollapsable_type_comments(self) -> bool: + ignored_ids = set() + try: + last_leaf = self.leaves[-1] + ignored_ids.add(id(last_leaf)) + if last_leaf.type == token.COMMA or ( + last_leaf.type == token.RPAR and not last_leaf.value + ): + # When trailing commas or optional parens are inserted by Black for + # consistency, comments after the previous last element are not moved + # (they don't have to, rendering will still be correct). So we ignore + # trailing commas and invisible. + last_leaf = self.leaves[-2] + ignored_ids.add(id(last_leaf)) + except IndexError: + return False + + # A type comment is uncollapsable if it is attached to a leaf + # that isn't at the end of the line (since that could cause it + # to get associated to a different argument) or if there are + # comments before it (since that could cause it to get hidden + # behind a comment. + comment_seen = False + for leaf_id, comments in self.comments.items(): + for comment in comments: + if is_type_comment(comment): + if comment_seen or ( + not is_type_ignore_comment(comment) + and leaf_id not in ignored_ids + ): + return True + + comment_seen = True + + return False + + def contains_unsplittable_type_ignore(self) -> bool: + if not self.leaves: + return False + + # If a 'type: ignore' is attached to the end of a line, we + # can't split the line, because we can't know which of the + # subexpressions the ignore was meant to apply to. + # + # We only want this to apply to actual physical lines from the + # original source, though: we don't want the presence of a + # 'type: ignore' at the end of a multiline expression to + # justify pushing it all onto one line. Thus we + # (unfortunately) need to check the actual source lines and + # only report an unsplittable 'type: ignore' if this line was + # one line in the original code. + + # Grab the first and last line numbers, skipping generated leaves + first_line = next((leaf.lineno for leaf in self.leaves if leaf.lineno != 0), 0) + last_line = next( + (leaf.lineno for leaf in reversed(self.leaves) if leaf.lineno != 0), 0 + ) + + if first_line == last_line: + # We look at the last two leaves since a comma or an + # invisible paren could have been added at the end of the + # line. + for node in self.leaves[-2:]: + for comment in self.comments.get(id(node), []): + if is_type_ignore_comment(comment): + return True + + return False + + def contains_multiline_strings(self) -> bool: + return any(is_multiline_string(leaf) for leaf in self.leaves) + + def has_magic_trailing_comma(self, closing: Leaf) -> bool: + """Return True if we have a magic trailing comma, that is when: + - there's a trailing comma here + - it's not from single-element square bracket indexing + - it's not a one-tuple + """ + if not ( + closing.type in CLOSING_BRACKETS + and self.leaves + and self.leaves[-1].type == token.COMMA + ): + return False + + if closing.type == token.RBRACE: + return True + + if closing.type == token.RSQB: + if ( + closing.parent is not None + and closing.parent.type == syms.trailer + and closing.opening_bracket is not None + and is_one_sequence_between( + closing.opening_bracket, + closing, + self.leaves, + brackets=(token.LSQB, token.RSQB), + ) + ): + assert closing.prev_sibling is not None + assert closing.prev_sibling.type == syms.subscriptlist + return False + + return True + + if self.is_import: + return True + + if closing.opening_bracket is not None and not is_one_sequence_between( + closing.opening_bracket, closing, self.leaves + ): + return True + + return False + + def append_comment(self, comment: Leaf) -> bool: + """Add an inline or standalone comment to the line.""" + if ( + comment.type == STANDALONE_COMMENT + and self.bracket_tracker.any_open_brackets() + ): + comment.prefix = "" + return False + + if comment.type != token.COMMENT: + return False + + if not self.leaves: + comment.type = STANDALONE_COMMENT + comment.prefix = "" + return False + + last_leaf = self.leaves[-1] + if ( + last_leaf.type == token.RPAR + and not last_leaf.value + and last_leaf.parent + and len(list(last_leaf.parent.leaves())) <= 3 + and not is_type_comment(comment) + ): + # Comments on an optional parens wrapping a single leaf should belong to + # the wrapped node except if it's a type comment. Pinning the comment like + # this avoids unstable formatting caused by comment migration. + if len(self.leaves) < 2: + comment.type = STANDALONE_COMMENT + comment.prefix = "" + return False + + last_leaf = self.leaves[-2] + self.comments.setdefault(id(last_leaf), []).append(comment) + return True + + def comments_after(self, leaf: Leaf) -> List[Leaf]: + """Generate comments that should appear directly after `leaf`.""" + return self.comments.get(id(leaf), []) + + def remove_trailing_comma(self) -> None: + """Remove the trailing comma and moves the comments attached to it.""" + trailing_comma = self.leaves.pop() + trailing_comma_comments = self.comments.pop(id(trailing_comma), []) + self.comments.setdefault(id(self.leaves[-1]), []).extend( + trailing_comma_comments + ) + + def is_complex_subscript(self, leaf: Leaf) -> bool: + """Return True iff `leaf` is part of a slice with non-trivial exprs.""" + open_lsqb = self.bracket_tracker.get_open_lsqb() + if open_lsqb is None: + return False + + subscript_start = open_lsqb.next_sibling + + if isinstance(subscript_start, Node): + if subscript_start.type == syms.listmaker: + return False + + if subscript_start.type == syms.subscriptlist: + subscript_start = child_towards(subscript_start, leaf) + + return subscript_start is not None and any( + n.type in TEST_DESCENDANTS for n in subscript_start.pre_order() + ) + + def enumerate_with_length( + self, is_reversed: bool = False + ) -> Iterator[Tuple[Index, Leaf, int]]: + """Return an enumeration of leaves with their length. + + Stops prematurely on multiline strings and standalone comments. + """ + op = cast( + Callable[[Sequence[Leaf]], Iterator[Tuple[Index, Leaf]]], + enumerate_reversed if is_reversed else enumerate, + ) + for index, leaf in op(self.leaves): + length = len(leaf.prefix) + len(leaf.value) + if "\n" in leaf.value: + return # Multiline strings, we can't continue. + + for comment in self.comments_after(leaf): + length += len(comment.value) + + yield index, leaf, length + + def clone(self) -> "Line": + return Line( + mode=self.mode, + depth=self.depth, + inside_brackets=self.inside_brackets, + should_split_rhs=self.should_split_rhs, + magic_trailing_comma=self.magic_trailing_comma, + ) + + def __str__(self) -> str: + """Render the line.""" + if not self: + return "\n" + + indent = " " * self.depth + leaves = iter(self.leaves) + first = next(leaves) + res = f"{first.prefix}{indent}{first.value}" + for leaf in leaves: + res += str(leaf) + for comment in itertools.chain.from_iterable(self.comments.values()): + res += str(comment) + + return res + "\n" + + def __bool__(self) -> bool: + """Return True if the line has leaves or comments.""" + return bool(self.leaves or self.comments) + + +@dataclass +class RHSResult: + """Intermediate split result from a right hand split.""" + + head: Line + body: Line + tail: Line + opening_bracket: Leaf + closing_bracket: Leaf + + +@dataclass +class LinesBlock: + """Class that holds information about a block of formatted lines. + + This is introduced so that the EmptyLineTracker can look behind the standalone + comments and adjust their empty lines for class or def lines. + """ + + mode: Mode + previous_block: Optional["LinesBlock"] + original_line: Line + before: int = 0 + content_lines: List[str] = field(default_factory=list) + after: int = 0 + form_feed: bool = False + + def all_lines(self) -> List[str]: + empty_line = str(Line(mode=self.mode)) + prefix = make_simple_prefix(self.before, self.form_feed, empty_line) + return [prefix] + self.content_lines + [empty_line * self.after] + + +@dataclass +class EmptyLineTracker: + """Provides a stateful method that returns the number of potential extra + empty lines needed before and after the currently processed line. + + Note: this tracker works on lines that haven't been split yet. It assumes + the prefix of the first leaf consists of optional newlines. Those newlines + are consumed by `maybe_empty_lines()` and included in the computation. + """ + + mode: Mode + previous_line: Optional[Line] = None + previous_block: Optional[LinesBlock] = None + previous_defs: List[Line] = field(default_factory=list) + semantic_leading_comment: Optional[LinesBlock] = None + + def maybe_empty_lines(self, current_line: Line) -> LinesBlock: + """Return the number of extra empty lines before and after the `current_line`. + + This is for separating `def`, `async def` and `class` with extra empty + lines (two on module-level). + """ + form_feed = ( + current_line.depth == 0 + and bool(current_line.leaves) + and "\f\n" in current_line.leaves[0].prefix + ) + before, after = self._maybe_empty_lines(current_line) + previous_after = self.previous_block.after if self.previous_block else 0 + before = max(0, before - previous_after) + if ( + # Always have one empty line after a module docstring + self.previous_block + and self.previous_block.previous_block is None + and len(self.previous_block.original_line.leaves) == 1 + and self.previous_block.original_line.is_docstring + and not (current_line.is_class or current_line.is_def) + ): + before = 1 + + block = LinesBlock( + mode=self.mode, + previous_block=self.previous_block, + original_line=current_line, + before=before, + after=after, + form_feed=form_feed, + ) + + # Maintain the semantic_leading_comment state. + if current_line.is_comment: + if self.previous_line is None or ( + not self.previous_line.is_decorator + # `or before` means this comment already has an empty line before + and (not self.previous_line.is_comment or before) + and (self.semantic_leading_comment is None or before) + ): + self.semantic_leading_comment = block + # `or before` means this decorator already has an empty line before + elif not current_line.is_decorator or before: + self.semantic_leading_comment = None + + self.previous_line = current_line + self.previous_block = block + return block + + def _maybe_empty_lines(self, current_line: Line) -> Tuple[int, int]: # noqa: C901 + max_allowed = 1 + if current_line.depth == 0: + max_allowed = 1 if self.mode.is_pyi else 2 + + if current_line.leaves: + # Consume the first leaf's extra newlines. + first_leaf = current_line.leaves[0] + before = first_leaf.prefix.count("\n") + before = min(before, max_allowed) + first_leaf.prefix = "" + else: + before = 0 + + user_had_newline = bool(before) + depth = current_line.depth + + # Mutate self.previous_defs, remainder of this function should be pure + previous_def = None + while self.previous_defs and self.previous_defs[-1].depth >= depth: + previous_def = self.previous_defs.pop() + if current_line.is_def or current_line.is_class: + self.previous_defs.append(current_line) + + if self.previous_line is None: + # Don't insert empty lines before the first line in the file. + return 0, 0 + + if current_line.is_docstring: + if self.previous_line.is_class: + return 0, 1 + if self.previous_line.opens_block and self.previous_line.is_def: + return 0, 0 + + if previous_def is not None: + assert self.previous_line is not None + if self.mode.is_pyi: + if previous_def.is_class and not previous_def.is_stub_class: + before = 1 + elif depth and not current_line.is_def and self.previous_line.is_def: + # Empty lines between attributes and methods should be preserved. + before = 1 if user_had_newline else 0 + elif depth: + before = 0 + else: + before = 1 + else: + if depth: + before = 1 + elif ( + not depth + and previous_def.depth + and current_line.leaves[-1].type == token.COLON + and ( + current_line.leaves[0].value + not in ("with", "try", "for", "while", "if", "match") + ) + ): + # We shouldn't add two newlines between an indented function and + # a dependent non-indented clause. This is to avoid issues with + # conditional function definitions that are technically top-level + # and therefore get two trailing newlines, but look weird and + # inconsistent when they're followed by elif, else, etc. This is + # worse because these functions only get *one* preceding newline + # already. + before = 1 + else: + before = 2 + + if current_line.is_decorator or current_line.is_def or current_line.is_class: + return self._maybe_empty_lines_for_class_or_def( + current_line, before, user_had_newline + ) + + if ( + self.previous_line.is_import + and not current_line.is_import + and not current_line.is_fmt_pass_converted(first_leaf_matches=is_import) + and depth == self.previous_line.depth + ): + return (before or 1), 0 + + return before, 0 + + def _maybe_empty_lines_for_class_or_def( # noqa: C901 + self, current_line: Line, before: int, user_had_newline: bool + ) -> Tuple[int, int]: + assert self.previous_line is not None + + if self.previous_line.is_decorator: + if self.mode.is_pyi and current_line.is_stub_class: + # Insert an empty line after a decorated stub class + return 0, 1 + return 0, 0 + + if self.previous_line.depth < current_line.depth and ( + self.previous_line.is_class or self.previous_line.is_def + ): + if self.mode.is_pyi: + return 0, 0 + return 1 if user_had_newline else 0, 0 + + comment_to_add_newlines: Optional[LinesBlock] = None + if ( + self.previous_line.is_comment + and self.previous_line.depth == current_line.depth + and before == 0 + ): + slc = self.semantic_leading_comment + if ( + slc is not None + and slc.previous_block is not None + and not slc.previous_block.original_line.is_class + and not slc.previous_block.original_line.opens_block + and slc.before <= 1 + ): + comment_to_add_newlines = slc + else: + return 0, 0 + + if self.mode.is_pyi: + if current_line.is_class or self.previous_line.is_class: + if self.previous_line.depth < current_line.depth: + newlines = 0 + elif self.previous_line.depth > current_line.depth: + newlines = 1 + elif current_line.is_stub_class and self.previous_line.is_stub_class: + # No blank line between classes with an empty body + newlines = 0 + else: + newlines = 1 + # Don't inspect the previous line if it's part of the body of the previous + # statement in the same level, we always want a blank line if there's + # something with a body preceding. + elif self.previous_line.depth > current_line.depth: + newlines = 1 + elif ( + current_line.is_def or current_line.is_decorator + ) and not self.previous_line.is_def: + if current_line.depth: + # In classes empty lines between attributes and methods should + # be preserved. + newlines = min(1, before) + else: + # Blank line between a block of functions (maybe with preceding + # decorators) and a block of non-functions + newlines = 1 + else: + newlines = 0 + else: + newlines = 1 if current_line.depth else 2 + # If a user has left no space after a dummy implementation, don't insert + # new lines. This is useful for instance for @overload or Protocols. + if self.previous_line.is_stub_def and not user_had_newline: + newlines = 0 + if comment_to_add_newlines is not None: + previous_block = comment_to_add_newlines.previous_block + if previous_block is not None: + comment_to_add_newlines.before = ( + max(comment_to_add_newlines.before, newlines) - previous_block.after + ) + newlines = 0 + return newlines, 0 + + +def enumerate_reversed(sequence: Sequence[T]) -> Iterator[Tuple[Index, T]]: + """Like `reversed(enumerate(sequence))` if that were possible.""" + index = len(sequence) - 1 + for element in reversed(sequence): + yield (index, element) + index -= 1 + + +def append_leaves( + new_line: Line, old_line: Line, leaves: List[Leaf], preformatted: bool = False +) -> None: + """ + Append leaves (taken from @old_line) to @new_line, making sure to fix the + underlying Node structure where appropriate. + + All of the leaves in @leaves are duplicated. The duplicates are then + appended to @new_line and used to replace their originals in the underlying + Node structure. Any comments attached to the old leaves are reattached to + the new leaves. + + Pre-conditions: + set(@leaves) is a subset of set(@old_line.leaves). + """ + for old_leaf in leaves: + new_leaf = Leaf(old_leaf.type, old_leaf.value) + replace_child(old_leaf, new_leaf) + new_line.append(new_leaf, preformatted=preformatted) + + for comment_leaf in old_line.comments_after(old_leaf): + new_line.append(comment_leaf, preformatted=True) + + +def is_line_short_enough( # noqa: C901 + line: Line, *, mode: Mode, line_str: str = "" +) -> bool: + """For non-multiline strings, return True if `line` is no longer than `line_length`. + For multiline strings, looks at the context around `line` to determine + if it should be inlined or split up. + Uses the provided `line_str` rendering, if any, otherwise computes a new one. + """ + if not line_str: + line_str = line_to_string(line) + + if Preview.multiline_string_handling not in mode: + return ( + str_width(line_str) <= mode.line_length + and "\n" not in line_str # multiline strings + and not line.contains_standalone_comments() + ) + + if line.contains_standalone_comments(): + return False + if "\n" not in line_str: + # No multiline strings (MLS) present + return str_width(line_str) <= mode.line_length + + first, *_, last = line_str.split("\n") + if str_width(first) > mode.line_length or str_width(last) > mode.line_length: + return False + + # Traverse the AST to examine the context of the multiline string (MLS), + # tracking aspects such as depth and comma existence, + # to determine whether to split the MLS or keep it together. + # Depth (which is based on the existing bracket_depth concept) + # is needed to determine nesting level of the MLS. + # Includes special case for trailing commas. + commas: List[int] = [] # tracks number of commas per depth level + multiline_string: Optional[Leaf] = None + # store the leaves that contain parts of the MLS + multiline_string_contexts: List[LN] = [] + + max_level_to_update: Union[int, float] = math.inf # track the depth of the MLS + for i, leaf in enumerate(line.leaves): + if max_level_to_update == math.inf: + had_comma: Optional[int] = None + if leaf.bracket_depth + 1 > len(commas): + commas.append(0) + elif leaf.bracket_depth + 1 < len(commas): + had_comma = commas.pop() + if ( + had_comma is not None + and multiline_string is not None + and multiline_string.bracket_depth == leaf.bracket_depth + 1 + ): + # Have left the level with the MLS, stop tracking commas + max_level_to_update = leaf.bracket_depth + if had_comma > 0: + # MLS was in parens with at least one comma - force split + return False + + if leaf.bracket_depth <= max_level_to_update and leaf.type == token.COMMA: + # Inside brackets, ignore trailing comma + # directly after MLS/MLS-containing expression + ignore_ctxs: List[Optional[LN]] = [None] + ignore_ctxs += multiline_string_contexts + if (line.inside_brackets or leaf.bracket_depth > 0) and ( + i != len(line.leaves) - 1 or leaf.prev_sibling not in ignore_ctxs + ): + commas[leaf.bracket_depth] += 1 + if max_level_to_update != math.inf: + max_level_to_update = min(max_level_to_update, leaf.bracket_depth) + + if is_multiline_string(leaf): + if len(multiline_string_contexts) > 0: + # >1 multiline string cannot fit on a single line - force split + return False + multiline_string = leaf + ctx: LN = leaf + # fetch the leaf components of the MLS in the AST + while str(ctx) in line_str: + multiline_string_contexts.append(ctx) + if ctx.parent is None: + break + ctx = ctx.parent + + # May not have a triple-quoted multiline string at all, + # in case of a regular string with embedded newlines and line continuations + if len(multiline_string_contexts) == 0: + return True + + return all(val == 0 for val in commas) + + +def can_be_split(line: Line) -> bool: + """Return False if the line cannot be split *for sure*. + + This is not an exhaustive search but a cheap heuristic that we can use to + avoid some unfortunate formattings (mostly around wrapping unsplittable code + in unnecessary parentheses). + """ + leaves = line.leaves + if len(leaves) < 2: + return False + + if leaves[0].type == token.STRING and leaves[1].type == token.DOT: + call_count = 0 + dot_count = 0 + next = leaves[-1] + for leaf in leaves[-2::-1]: + if leaf.type in OPENING_BRACKETS: + if next.type not in CLOSING_BRACKETS: + return False + + call_count += 1 + elif leaf.type == token.DOT: + dot_count += 1 + elif leaf.type == token.NAME: + if not (next.type == token.DOT or next.type in OPENING_BRACKETS): + return False + + elif leaf.type not in CLOSING_BRACKETS: + return False + + if dot_count > 1 and call_count > 1: + return False + + return True + + +def can_omit_invisible_parens( + rhs: RHSResult, + line_length: int, +) -> bool: + """Does `rhs.body` have a shape safe to reformat without optional parens around it? + + Returns True for only a subset of potentially nice looking formattings but + the point is to not return false positives that end up producing lines that + are too long. + """ + line = rhs.body + + # We need optional parens in order to split standalone comments to their own lines + # if there are no nested parens around the standalone comments + closing_bracket: Optional[Leaf] = None + for leaf in reversed(line.leaves): + if closing_bracket and leaf is closing_bracket.opening_bracket: + closing_bracket = None + if leaf.type == STANDALONE_COMMENT and not closing_bracket: + return False + if ( + not closing_bracket + and leaf.type in CLOSING_BRACKETS + and leaf.opening_bracket in line.leaves + and leaf.value + ): + closing_bracket = leaf + + bt = line.bracket_tracker + if not bt.delimiters: + # Without delimiters the optional parentheses are useless. + return True + + max_priority = bt.max_delimiter_priority() + delimiter_count = bt.delimiter_count_with_priority(max_priority) + if delimiter_count > 1: + # With more than one delimiter of a kind the optional parentheses read better. + return False + + if delimiter_count == 1: + if max_priority == COMMA_PRIORITY and rhs.head.is_with_or_async_with_stmt: + # For two context manager with statements, the optional parentheses read + # better. In this case, `rhs.body` is the context managers part of + # the with statement. `rhs.head` is the `with (` part on the previous + # line. + return False + # Otherwise it may also read better, but we don't do it today and requires + # careful considerations for all possible cases. See + # https://github.com/psf/black/issues/2156. + + if max_priority == DOT_PRIORITY: + # A single stranded method call doesn't require optional parentheses. + return True + + assert len(line.leaves) >= 2, "Stranded delimiter" + + # With a single delimiter, omit if the expression starts or ends with + # a bracket. + first = line.leaves[0] + second = line.leaves[1] + if first.type in OPENING_BRACKETS and second.type not in CLOSING_BRACKETS: + if _can_omit_opening_paren(line, first=first, line_length=line_length): + return True + + # Note: we are not returning False here because a line might have *both* + # a leading opening bracket and a trailing closing bracket. If the + # opening bracket doesn't match our rule, maybe the closing will. + + penultimate = line.leaves[-2] + last = line.leaves[-1] + + if ( + last.type == token.RPAR + or last.type == token.RBRACE + or ( + # don't use indexing for omitting optional parentheses; + # it looks weird + last.type == token.RSQB + and last.parent + and last.parent.type != syms.trailer + ) + ): + if penultimate.type in OPENING_BRACKETS: + # Empty brackets don't help. + return False + + if is_multiline_string(first): + # Additional wrapping of a multiline string in this situation is + # unnecessary. + return True + + if _can_omit_closing_paren(line, last=last, line_length=line_length): + return True + + return False + + +def _can_omit_opening_paren(line: Line, *, first: Leaf, line_length: int) -> bool: + """See `can_omit_invisible_parens`.""" + remainder = False + length = 4 * line.depth + _index = -1 + for _index, leaf, leaf_length in line.enumerate_with_length(): + if leaf.type in CLOSING_BRACKETS and leaf.opening_bracket is first: + remainder = True + if remainder: + length += leaf_length + if length > line_length: + break + + if leaf.type in OPENING_BRACKETS: + # There are brackets we can further split on. + remainder = False + + else: + # checked the entire string and line length wasn't exceeded + if len(line.leaves) == _index + 1: + return True + + return False + + +def _can_omit_closing_paren(line: Line, *, last: Leaf, line_length: int) -> bool: + """See `can_omit_invisible_parens`.""" + length = 4 * line.depth + seen_other_brackets = False + for _index, leaf, leaf_length in line.enumerate_with_length(): + length += leaf_length + if leaf is last.opening_bracket: + if seen_other_brackets or length <= line_length: + return True + + elif leaf.type in OPENING_BRACKETS: + # There are brackets we can further split on. + seen_other_brackets = True + + return False + + +def line_to_string(line: Line) -> str: + """Returns the string representation of @line. + + WARNING: This is known to be computationally expensive. + """ + return str(line).strip("\n") diff --git a/venv/lib/python3.12/site-packages/black/mode.py b/venv/lib/python3.12/site-packages/black/mode.py new file mode 100644 index 0000000000..ca224fc8da --- /dev/null +++ b/venv/lib/python3.12/site-packages/black/mode.py @@ -0,0 +1,290 @@ +"""Data structures configuring Black behavior. + +Mostly around Python language feature support per version and Black configuration +chosen by the user. +""" + +from dataclasses import dataclass, field +from enum import Enum, auto +from hashlib import sha256 +from operator import attrgetter +from typing import Dict, Final, Set + +from black.const import DEFAULT_LINE_LENGTH + + +class TargetVersion(Enum): + PY33 = 3 + PY34 = 4 + PY35 = 5 + PY36 = 6 + PY37 = 7 + PY38 = 8 + PY39 = 9 + PY310 = 10 + PY311 = 11 + PY312 = 12 + PY313 = 13 + + +class Feature(Enum): + F_STRINGS = 2 + NUMERIC_UNDERSCORES = 3 + TRAILING_COMMA_IN_CALL = 4 + TRAILING_COMMA_IN_DEF = 5 + # The following two feature-flags are mutually exclusive, and exactly one should be + # set for every version of python. + ASYNC_IDENTIFIERS = 6 + ASYNC_KEYWORDS = 7 + ASSIGNMENT_EXPRESSIONS = 8 + POS_ONLY_ARGUMENTS = 9 + RELAXED_DECORATORS = 10 + PATTERN_MATCHING = 11 + UNPACKING_ON_FLOW = 12 + ANN_ASSIGN_EXTENDED_RHS = 13 + EXCEPT_STAR = 14 + VARIADIC_GENERICS = 15 + DEBUG_F_STRINGS = 16 + PARENTHESIZED_CONTEXT_MANAGERS = 17 + TYPE_PARAMS = 18 + FSTRING_PARSING = 19 + TYPE_PARAM_DEFAULTS = 20 + FORCE_OPTIONAL_PARENTHESES = 50 + + # __future__ flags + FUTURE_ANNOTATIONS = 51 + + +FUTURE_FLAG_TO_FEATURE: Final = { + "annotations": Feature.FUTURE_ANNOTATIONS, +} + + +VERSION_TO_FEATURES: Dict[TargetVersion, Set[Feature]] = { + TargetVersion.PY33: {Feature.ASYNC_IDENTIFIERS}, + TargetVersion.PY34: {Feature.ASYNC_IDENTIFIERS}, + TargetVersion.PY35: {Feature.TRAILING_COMMA_IN_CALL, Feature.ASYNC_IDENTIFIERS}, + TargetVersion.PY36: { + Feature.F_STRINGS, + Feature.NUMERIC_UNDERSCORES, + Feature.TRAILING_COMMA_IN_CALL, + Feature.TRAILING_COMMA_IN_DEF, + Feature.ASYNC_IDENTIFIERS, + }, + TargetVersion.PY37: { + Feature.F_STRINGS, + Feature.NUMERIC_UNDERSCORES, + Feature.TRAILING_COMMA_IN_CALL, + Feature.TRAILING_COMMA_IN_DEF, + Feature.ASYNC_KEYWORDS, + Feature.FUTURE_ANNOTATIONS, + }, + TargetVersion.PY38: { + Feature.F_STRINGS, + Feature.DEBUG_F_STRINGS, + Feature.NUMERIC_UNDERSCORES, + Feature.TRAILING_COMMA_IN_CALL, + Feature.TRAILING_COMMA_IN_DEF, + Feature.ASYNC_KEYWORDS, + Feature.FUTURE_ANNOTATIONS, + Feature.ASSIGNMENT_EXPRESSIONS, + Feature.POS_ONLY_ARGUMENTS, + Feature.UNPACKING_ON_FLOW, + Feature.ANN_ASSIGN_EXTENDED_RHS, + }, + TargetVersion.PY39: { + Feature.F_STRINGS, + Feature.DEBUG_F_STRINGS, + Feature.NUMERIC_UNDERSCORES, + Feature.TRAILING_COMMA_IN_CALL, + Feature.TRAILING_COMMA_IN_DEF, + Feature.ASYNC_KEYWORDS, + Feature.FUTURE_ANNOTATIONS, + Feature.ASSIGNMENT_EXPRESSIONS, + Feature.RELAXED_DECORATORS, + Feature.POS_ONLY_ARGUMENTS, + Feature.UNPACKING_ON_FLOW, + Feature.ANN_ASSIGN_EXTENDED_RHS, + Feature.PARENTHESIZED_CONTEXT_MANAGERS, + }, + TargetVersion.PY310: { + Feature.F_STRINGS, + Feature.DEBUG_F_STRINGS, + Feature.NUMERIC_UNDERSCORES, + Feature.TRAILING_COMMA_IN_CALL, + Feature.TRAILING_COMMA_IN_DEF, + Feature.ASYNC_KEYWORDS, + Feature.FUTURE_ANNOTATIONS, + Feature.ASSIGNMENT_EXPRESSIONS, + Feature.RELAXED_DECORATORS, + Feature.POS_ONLY_ARGUMENTS, + Feature.UNPACKING_ON_FLOW, + Feature.ANN_ASSIGN_EXTENDED_RHS, + Feature.PARENTHESIZED_CONTEXT_MANAGERS, + Feature.PATTERN_MATCHING, + }, + TargetVersion.PY311: { + Feature.F_STRINGS, + Feature.DEBUG_F_STRINGS, + Feature.NUMERIC_UNDERSCORES, + Feature.TRAILING_COMMA_IN_CALL, + Feature.TRAILING_COMMA_IN_DEF, + Feature.ASYNC_KEYWORDS, + Feature.FUTURE_ANNOTATIONS, + Feature.ASSIGNMENT_EXPRESSIONS, + Feature.RELAXED_DECORATORS, + Feature.POS_ONLY_ARGUMENTS, + Feature.UNPACKING_ON_FLOW, + Feature.ANN_ASSIGN_EXTENDED_RHS, + Feature.PARENTHESIZED_CONTEXT_MANAGERS, + Feature.PATTERN_MATCHING, + Feature.EXCEPT_STAR, + Feature.VARIADIC_GENERICS, + }, + TargetVersion.PY312: { + Feature.F_STRINGS, + Feature.DEBUG_F_STRINGS, + Feature.NUMERIC_UNDERSCORES, + Feature.TRAILING_COMMA_IN_CALL, + Feature.TRAILING_COMMA_IN_DEF, + Feature.ASYNC_KEYWORDS, + Feature.FUTURE_ANNOTATIONS, + Feature.ASSIGNMENT_EXPRESSIONS, + Feature.RELAXED_DECORATORS, + Feature.POS_ONLY_ARGUMENTS, + Feature.UNPACKING_ON_FLOW, + Feature.ANN_ASSIGN_EXTENDED_RHS, + Feature.PARENTHESIZED_CONTEXT_MANAGERS, + Feature.PATTERN_MATCHING, + Feature.EXCEPT_STAR, + Feature.VARIADIC_GENERICS, + Feature.TYPE_PARAMS, + Feature.FSTRING_PARSING, + }, + TargetVersion.PY313: { + Feature.F_STRINGS, + Feature.DEBUG_F_STRINGS, + Feature.NUMERIC_UNDERSCORES, + Feature.TRAILING_COMMA_IN_CALL, + Feature.TRAILING_COMMA_IN_DEF, + Feature.ASYNC_KEYWORDS, + Feature.FUTURE_ANNOTATIONS, + Feature.ASSIGNMENT_EXPRESSIONS, + Feature.RELAXED_DECORATORS, + Feature.POS_ONLY_ARGUMENTS, + Feature.UNPACKING_ON_FLOW, + Feature.ANN_ASSIGN_EXTENDED_RHS, + Feature.PARENTHESIZED_CONTEXT_MANAGERS, + Feature.PATTERN_MATCHING, + Feature.EXCEPT_STAR, + Feature.VARIADIC_GENERICS, + Feature.TYPE_PARAMS, + Feature.FSTRING_PARSING, + Feature.TYPE_PARAM_DEFAULTS, + }, +} + + +def supports_feature(target_versions: Set[TargetVersion], feature: Feature) -> bool: + return all(feature in VERSION_TO_FEATURES[version] for version in target_versions) + + +class Preview(Enum): + """Individual preview style features.""" + + hex_codes_in_unicode_sequences = auto() + # NOTE: string_processing requires wrap_long_dict_values_in_parens + # for https://github.com/psf/black/issues/3117 to be fixed. + string_processing = auto() + hug_parens_with_braces_and_square_brackets = auto() + unify_docstring_detection = auto() + no_normalize_fmt_skip_whitespace = auto() + wrap_long_dict_values_in_parens = auto() + multiline_string_handling = auto() + typed_params_trailing_comma = auto() + is_simple_lookup_for_doublestar_expression = auto() + docstring_check_for_newline = auto() + remove_redundant_guard_parens = auto() + parens_for_long_if_clauses_in_case_block = auto() + + +UNSTABLE_FEATURES: Set[Preview] = { + # Many issues, see summary in https://github.com/psf/black/issues/4042 + Preview.string_processing, + # See issues #3452 and #4158 + Preview.wrap_long_dict_values_in_parens, + # See issue #4159 + Preview.multiline_string_handling, + # See issue #4036 (crash), #4098, #4099 (proposed tweaks) + Preview.hug_parens_with_braces_and_square_brackets, +} + + +class Deprecated(UserWarning): + """Visible deprecation warning.""" + + +_MAX_CACHE_KEY_PART_LENGTH: Final = 32 + + +@dataclass +class Mode: + target_versions: Set[TargetVersion] = field(default_factory=set) + line_length: int = DEFAULT_LINE_LENGTH + string_normalization: bool = True + is_pyi: bool = False + is_ipynb: bool = False + skip_source_first_line: bool = False + magic_trailing_comma: bool = True + python_cell_magics: Set[str] = field(default_factory=set) + preview: bool = False + unstable: bool = False + enabled_features: Set[Preview] = field(default_factory=set) + + def __contains__(self, feature: Preview) -> bool: + """ + Provide `Preview.FEATURE in Mode` syntax that mirrors the ``preview`` flag. + + In unstable mode, all features are enabled. In preview mode, all features + except those in UNSTABLE_FEATURES are enabled. Any features in + `self.enabled_features` are also enabled. + """ + if self.unstable: + return True + if feature in self.enabled_features: + return True + return self.preview and feature not in UNSTABLE_FEATURES + + def get_cache_key(self) -> str: + if self.target_versions: + version_str = ",".join( + str(version.value) + for version in sorted(self.target_versions, key=attrgetter("value")) + ) + else: + version_str = "-" + if len(version_str) > _MAX_CACHE_KEY_PART_LENGTH: + version_str = sha256(version_str.encode()).hexdigest()[ + :_MAX_CACHE_KEY_PART_LENGTH + ] + features_and_magics = ( + ",".join(sorted(f.name for f in self.enabled_features)) + + "@" + + ",".join(sorted(self.python_cell_magics)) + ) + if len(features_and_magics) > _MAX_CACHE_KEY_PART_LENGTH: + features_and_magics = sha256(features_and_magics.encode()).hexdigest()[ + :_MAX_CACHE_KEY_PART_LENGTH + ] + parts = [ + version_str, + str(self.line_length), + str(int(self.string_normalization)), + str(int(self.is_pyi)), + str(int(self.is_ipynb)), + str(int(self.skip_source_first_line)), + str(int(self.magic_trailing_comma)), + str(int(self.preview)), + features_and_magics, + ] + return ".".join(parts) diff --git a/venv/lib/python3.12/site-packages/black/nodes.py b/venv/lib/python3.12/site-packages/black/nodes.py new file mode 100644 index 0000000000..9579b715ad --- /dev/null +++ b/venv/lib/python3.12/site-packages/black/nodes.py @@ -0,0 +1,1037 @@ +""" +blib2to3 Node/Leaf transformation-related utility functions. +""" + +import sys +from typing import ( + Final, + Generic, + Iterator, + List, + Literal, + Optional, + Set, + Tuple, + TypeVar, + Union, +) + +if sys.version_info >= (3, 10): + from typing import TypeGuard +else: + from typing_extensions import TypeGuard + +from mypy_extensions import mypyc_attr + +from black.cache import CACHE_DIR +from black.mode import Mode, Preview +from black.strings import get_string_prefix, has_triple_quotes +from blib2to3 import pygram +from blib2to3.pgen2 import token +from blib2to3.pytree import NL, Leaf, Node, type_repr + +pygram.initialize(CACHE_DIR) +syms: Final = pygram.python_symbols + + +# types +T = TypeVar("T") +LN = Union[Leaf, Node] +LeafID = int +NodeType = int + + +WHITESPACE: Final = {token.DEDENT, token.INDENT, token.NEWLINE} +STATEMENT: Final = { + syms.if_stmt, + syms.while_stmt, + syms.for_stmt, + syms.try_stmt, + syms.except_clause, + syms.with_stmt, + syms.funcdef, + syms.classdef, + syms.match_stmt, + syms.case_block, +} +STANDALONE_COMMENT: Final = 153 +token.tok_name[STANDALONE_COMMENT] = "STANDALONE_COMMENT" +LOGIC_OPERATORS: Final = {"and", "or"} +COMPARATORS: Final = { + token.LESS, + token.GREATER, + token.EQEQUAL, + token.NOTEQUAL, + token.LESSEQUAL, + token.GREATEREQUAL, +} +MATH_OPERATORS: Final = { + token.VBAR, + token.CIRCUMFLEX, + token.AMPER, + token.LEFTSHIFT, + token.RIGHTSHIFT, + token.PLUS, + token.MINUS, + token.STAR, + token.SLASH, + token.DOUBLESLASH, + token.PERCENT, + token.AT, + token.TILDE, + token.DOUBLESTAR, +} +STARS: Final = {token.STAR, token.DOUBLESTAR} +VARARGS_SPECIALS: Final = STARS | {token.SLASH} +VARARGS_PARENTS: Final = { + syms.arglist, + syms.argument, # double star in arglist + syms.trailer, # single argument to call + syms.typedargslist, + syms.varargslist, # lambdas +} +UNPACKING_PARENTS: Final = { + syms.atom, # single element of a list or set literal + syms.dictsetmaker, + syms.listmaker, + syms.testlist_gexp, + syms.testlist_star_expr, + syms.subject_expr, + syms.pattern, +} +TEST_DESCENDANTS: Final = { + syms.test, + syms.lambdef, + syms.or_test, + syms.and_test, + syms.not_test, + syms.comparison, + syms.star_expr, + syms.expr, + syms.xor_expr, + syms.and_expr, + syms.shift_expr, + syms.arith_expr, + syms.trailer, + syms.term, + syms.power, + syms.namedexpr_test, +} +TYPED_NAMES: Final = {syms.tname, syms.tname_star} +ASSIGNMENTS: Final = { + "=", + "+=", + "-=", + "*=", + "@=", + "/=", + "%=", + "&=", + "|=", + "^=", + "<<=", + ">>=", + "**=", + "//=", + ":", +} + +IMPLICIT_TUPLE: Final = {syms.testlist, syms.testlist_star_expr, syms.exprlist} +BRACKET: Final = { + token.LPAR: token.RPAR, + token.LSQB: token.RSQB, + token.LBRACE: token.RBRACE, +} +OPENING_BRACKETS: Final = set(BRACKET.keys()) +CLOSING_BRACKETS: Final = set(BRACKET.values()) +BRACKETS: Final = OPENING_BRACKETS | CLOSING_BRACKETS +ALWAYS_NO_SPACE: Final = CLOSING_BRACKETS | { + token.COMMA, + STANDALONE_COMMENT, + token.FSTRING_MIDDLE, + token.FSTRING_END, + token.BANG, +} + +RARROW = 55 + + +@mypyc_attr(allow_interpreted_subclasses=True) +class Visitor(Generic[T]): + """Basic lib2to3 visitor that yields things of type `T` on `visit()`.""" + + def visit(self, node: LN) -> Iterator[T]: + """Main method to visit `node` and its children. + + It tries to find a `visit_*()` method for the given `node.type`, like + `visit_simple_stmt` for Node objects or `visit_INDENT` for Leaf objects. + If no dedicated `visit_*()` method is found, chooses `visit_default()` + instead. + + Then yields objects of type `T` from the selected visitor. + """ + if node.type < 256: + name = token.tok_name[node.type] + else: + name = str(type_repr(node.type)) + # We explicitly branch on whether a visitor exists (instead of + # using self.visit_default as the default arg to getattr) in order + # to save needing to create a bound method object and so mypyc can + # generate a native call to visit_default. + visitf = getattr(self, f"visit_{name}", None) + if visitf: + yield from visitf(node) + else: + yield from self.visit_default(node) + + def visit_default(self, node: LN) -> Iterator[T]: + """Default `visit_*()` implementation. Recurses to children of `node`.""" + if isinstance(node, Node): + for child in node.children: + yield from self.visit(child) + + +def whitespace(leaf: Leaf, *, complex_subscript: bool, mode: Mode) -> str: # noqa: C901 + """Return whitespace prefix if needed for the given `leaf`. + + `complex_subscript` signals whether the given leaf is part of a subscription + which has non-trivial arguments, like arithmetic expressions or function calls. + """ + NO: Final[str] = "" + SPACE: Final[str] = " " + DOUBLESPACE: Final[str] = " " + t = leaf.type + p = leaf.parent + v = leaf.value + if t in ALWAYS_NO_SPACE: + return NO + + if t == token.COMMENT: + return DOUBLESPACE + + assert p is not None, f"INTERNAL ERROR: hand-made leaf without parent: {leaf!r}" + if t == token.COLON and p.type not in { + syms.subscript, + syms.subscriptlist, + syms.sliceop, + }: + return NO + + if t == token.LBRACE and p.type == syms.fstring_replacement_field: + return NO + + prev = leaf.prev_sibling + if not prev: + prevp = preceding_leaf(p) + if not prevp or prevp.type in OPENING_BRACKETS: + return NO + + if t == token.COLON: + if prevp.type == token.COLON: + return NO + + elif prevp.type != token.COMMA and not complex_subscript: + return NO + + return SPACE + + if prevp.type == token.EQUAL: + if prevp.parent: + if prevp.parent.type in { + syms.arglist, + syms.argument, + syms.parameters, + syms.varargslist, + }: + return NO + + elif prevp.parent.type == syms.typedargslist: + # A bit hacky: if the equal sign has whitespace, it means we + # previously found it's a typed argument. So, we're using + # that, too. + return prevp.prefix + + elif ( + prevp.type == token.STAR + and parent_type(prevp) == syms.star_expr + and parent_type(prevp.parent) == syms.subscriptlist + ): + # No space between typevar tuples. + return NO + + elif prevp.type in VARARGS_SPECIALS: + if is_vararg(prevp, within=VARARGS_PARENTS | UNPACKING_PARENTS): + return NO + + elif prevp.type == token.COLON: + if prevp.parent and prevp.parent.type in {syms.subscript, syms.sliceop}: + return SPACE if complex_subscript else NO + + elif ( + prevp.parent + and prevp.parent.type == syms.factor + and prevp.type in MATH_OPERATORS + ): + return NO + + elif prevp.type == token.AT and p.parent and p.parent.type == syms.decorator: + # no space in decorators + return NO + + elif prev.type in OPENING_BRACKETS: + return NO + + elif prev.type == token.BANG: + return NO + + if p.type in {syms.parameters, syms.arglist}: + # untyped function signatures or calls + if not prev or prev.type != token.COMMA: + return NO + + elif p.type == syms.varargslist: + # lambdas + if prev and prev.type != token.COMMA: + return NO + + elif p.type == syms.typedargslist: + # typed function signatures + if not prev: + return NO + + if t == token.EQUAL: + if prev.type not in TYPED_NAMES: + return NO + + elif prev.type == token.EQUAL: + # A bit hacky: if the equal sign has whitespace, it means we + # previously found it's a typed argument. So, we're using that, too. + return prev.prefix + + elif prev.type != token.COMMA: + return NO + + elif p.type in TYPED_NAMES: + # type names + if not prev: + prevp = preceding_leaf(p) + if not prevp or prevp.type != token.COMMA: + return NO + + elif p.type == syms.trailer: + # attributes and calls + if t == token.LPAR or t == token.RPAR: + return NO + + if not prev: + if t == token.DOT or t == token.LSQB: + return NO + + elif prev.type != token.COMMA: + return NO + + elif p.type == syms.argument: + # single argument + if t == token.EQUAL: + return NO + + if not prev: + prevp = preceding_leaf(p) + if not prevp or prevp.type == token.LPAR: + return NO + + elif prev.type in {token.EQUAL} | VARARGS_SPECIALS: + return NO + + elif p.type == syms.decorator: + # decorators + return NO + + elif p.type == syms.dotted_name: + if prev: + return NO + + prevp = preceding_leaf(p) + if not prevp or prevp.type == token.AT or prevp.type == token.DOT: + return NO + + elif p.type == syms.classdef: + if t == token.LPAR: + return NO + + if prev and prev.type == token.LPAR: + return NO + + elif p.type in {syms.subscript, syms.sliceop}: + # indexing + if not prev: + assert p.parent is not None, "subscripts are always parented" + if p.parent.type == syms.subscriptlist: + return SPACE + + return NO + + elif t == token.COLONEQUAL or prev.type == token.COLONEQUAL: + return SPACE + + elif not complex_subscript: + return NO + + elif p.type == syms.atom: + if prev and t == token.DOT: + # dots, but not the first one. + return NO + + elif p.type == syms.dictsetmaker: + # dict unpacking + if prev and prev.type == token.DOUBLESTAR: + return NO + + elif p.type in {syms.factor, syms.star_expr}: + # unary ops + if not prev: + prevp = preceding_leaf(p) + if not prevp or prevp.type in OPENING_BRACKETS: + return NO + + prevp_parent = prevp.parent + assert prevp_parent is not None + if prevp.type == token.COLON and prevp_parent.type in { + syms.subscript, + syms.sliceop, + }: + return NO + + elif prevp.type == token.EQUAL and prevp_parent.type == syms.argument: + return NO + + # TODO: add fstring here? + elif t in {token.NAME, token.NUMBER, token.STRING}: + return NO + + elif p.type == syms.import_from: + if t == token.DOT: + if prev and prev.type == token.DOT: + return NO + + elif t == token.NAME: + if v == "import": + return SPACE + + if prev and prev.type == token.DOT: + return NO + + elif p.type == syms.sliceop: + return NO + + elif p.type == syms.except_clause: + if t == token.STAR: + return NO + + return SPACE + + +def make_simple_prefix(nl_count: int, form_feed: bool, empty_line: str = "\n") -> str: + """Generate a normalized prefix string.""" + if form_feed: + return (empty_line * (nl_count - 1)) + "\f" + empty_line + return empty_line * nl_count + + +def preceding_leaf(node: Optional[LN]) -> Optional[Leaf]: + """Return the first leaf that precedes `node`, if any.""" + while node: + res = node.prev_sibling + if res: + if isinstance(res, Leaf): + return res + + try: + return list(res.leaves())[-1] + + except IndexError: + return None + + node = node.parent + return None + + +def prev_siblings_are(node: Optional[LN], tokens: List[Optional[NodeType]]) -> bool: + """Return if the `node` and its previous siblings match types against the provided + list of tokens; the provided `node`has its type matched against the last element in + the list. `None` can be used as the first element to declare that the start of the + list is anchored at the start of its parent's children.""" + if not tokens: + return True + if tokens[-1] is None: + return node is None + if not node: + return False + if node.type != tokens[-1]: + return False + return prev_siblings_are(node.prev_sibling, tokens[:-1]) + + +def parent_type(node: Optional[LN]) -> Optional[NodeType]: + """ + Returns: + @node.parent.type, if @node is not None and has a parent. + OR + None, otherwise. + """ + if node is None or node.parent is None: + return None + + return node.parent.type + + +def child_towards(ancestor: Node, descendant: LN) -> Optional[LN]: + """Return the child of `ancestor` that contains `descendant`.""" + node: Optional[LN] = descendant + while node and node.parent != ancestor: + node = node.parent + return node + + +def replace_child(old_child: LN, new_child: LN) -> None: + """ + Side Effects: + * If @old_child.parent is set, replace @old_child with @new_child in + @old_child's underlying Node structure. + OR + * Otherwise, this function does nothing. + """ + parent = old_child.parent + if not parent: + return + + child_idx = old_child.remove() + if child_idx is not None: + parent.insert_child(child_idx, new_child) + + +def container_of(leaf: Leaf) -> LN: + """Return `leaf` or one of its ancestors that is the topmost container of it. + + By "container" we mean a node where `leaf` is the very first child. + """ + same_prefix = leaf.prefix + container: LN = leaf + while container: + parent = container.parent + if parent is None: + break + + if parent.children[0].prefix != same_prefix: + break + + if parent.type == syms.file_input: + break + + if parent.prev_sibling is not None and parent.prev_sibling.type in BRACKETS: + break + + container = parent + return container + + +def first_leaf_of(node: LN) -> Optional[Leaf]: + """Returns the first leaf of the node tree.""" + if isinstance(node, Leaf): + return node + if node.children: + return first_leaf_of(node.children[0]) + else: + return None + + +def is_arith_like(node: LN) -> bool: + """Whether node is an arithmetic or a binary arithmetic expression""" + return node.type in { + syms.arith_expr, + syms.shift_expr, + syms.xor_expr, + syms.and_expr, + } + + +def is_docstring(node: NL, mode: Mode) -> bool: + if isinstance(node, Leaf): + if node.type != token.STRING: + return False + + prefix = get_string_prefix(node.value) + if set(prefix).intersection("bBfF"): + return False + + if ( + Preview.unify_docstring_detection in mode + and node.parent + and node.parent.type == syms.simple_stmt + and not node.parent.prev_sibling + and node.parent.parent + and node.parent.parent.type == syms.file_input + ): + return True + + if prev_siblings_are( + node.parent, [None, token.NEWLINE, token.INDENT, syms.simple_stmt] + ): + return True + + # Multiline docstring on the same line as the `def`. + if prev_siblings_are(node.parent, [syms.parameters, token.COLON, syms.simple_stmt]): + # `syms.parameters` is only used in funcdefs and async_funcdefs in the Python + # grammar. We're safe to return True without further checks. + return True + + return False + + +def is_empty_tuple(node: LN) -> bool: + """Return True if `node` holds an empty tuple.""" + return ( + node.type == syms.atom + and len(node.children) == 2 + and node.children[0].type == token.LPAR + and node.children[1].type == token.RPAR + ) + + +def is_one_tuple(node: LN) -> bool: + """Return True if `node` holds a tuple with one element, with or without parens.""" + if node.type == syms.atom: + gexp = unwrap_singleton_parenthesis(node) + if gexp is None or gexp.type != syms.testlist_gexp: + return False + + return len(gexp.children) == 2 and gexp.children[1].type == token.COMMA + + return ( + node.type in IMPLICIT_TUPLE + and len(node.children) == 2 + and node.children[1].type == token.COMMA + ) + + +def is_tuple_containing_walrus(node: LN) -> bool: + """Return True if `node` holds a tuple that contains a walrus operator.""" + if node.type != syms.atom: + return False + gexp = unwrap_singleton_parenthesis(node) + if gexp is None or gexp.type != syms.testlist_gexp: + return False + + return any(child.type == syms.namedexpr_test for child in gexp.children) + + +def is_one_sequence_between( + opening: Leaf, + closing: Leaf, + leaves: List[Leaf], + brackets: Tuple[int, int] = (token.LPAR, token.RPAR), +) -> bool: + """Return True if content between `opening` and `closing` is a one-sequence.""" + if (opening.type, closing.type) != brackets: + return False + + depth = closing.bracket_depth + 1 + for _opening_index, leaf in enumerate(leaves): + if leaf is opening: + break + + else: + raise LookupError("Opening paren not found in `leaves`") + + commas = 0 + _opening_index += 1 + for leaf in leaves[_opening_index:]: + if leaf is closing: + break + + bracket_depth = leaf.bracket_depth + if bracket_depth == depth and leaf.type == token.COMMA: + commas += 1 + if leaf.parent and leaf.parent.type in { + syms.arglist, + syms.typedargslist, + }: + commas += 1 + break + + return commas < 2 + + +def is_walrus_assignment(node: LN) -> bool: + """Return True iff `node` is of the shape ( test := test )""" + inner = unwrap_singleton_parenthesis(node) + return inner is not None and inner.type == syms.namedexpr_test + + +def is_simple_decorator_trailer(node: LN, last: bool = False) -> bool: + """Return True iff `node` is a trailer valid in a simple decorator""" + return node.type == syms.trailer and ( + ( + len(node.children) == 2 + and node.children[0].type == token.DOT + and node.children[1].type == token.NAME + ) + # last trailer can be an argument-less parentheses pair + or ( + last + and len(node.children) == 2 + and node.children[0].type == token.LPAR + and node.children[1].type == token.RPAR + ) + # last trailer can be arguments + or ( + last + and len(node.children) == 3 + and node.children[0].type == token.LPAR + # and node.children[1].type == syms.argument + and node.children[2].type == token.RPAR + ) + ) + + +def is_simple_decorator_expression(node: LN) -> bool: + """Return True iff `node` could be a 'dotted name' decorator + + This function takes the node of the 'namedexpr_test' of the new decorator + grammar and test if it would be valid under the old decorator grammar. + + The old grammar was: decorator: @ dotted_name [arguments] NEWLINE + The new grammar is : decorator: @ namedexpr_test NEWLINE + """ + if node.type == token.NAME: + return True + if node.type == syms.power: + if node.children: + return ( + node.children[0].type == token.NAME + and all(map(is_simple_decorator_trailer, node.children[1:-1])) + and ( + len(node.children) < 2 + or is_simple_decorator_trailer(node.children[-1], last=True) + ) + ) + return False + + +def is_yield(node: LN) -> bool: + """Return True if `node` holds a `yield` or `yield from` expression.""" + if node.type == syms.yield_expr: + return True + + if is_name_token(node) and node.value == "yield": + return True + + if node.type != syms.atom: + return False + + if len(node.children) != 3: + return False + + lpar, expr, rpar = node.children + if lpar.type == token.LPAR and rpar.type == token.RPAR: + return is_yield(expr) + + return False + + +def is_vararg(leaf: Leaf, within: Set[NodeType]) -> bool: + """Return True if `leaf` is a star or double star in a vararg or kwarg. + + If `within` includes VARARGS_PARENTS, this applies to function signatures. + If `within` includes UNPACKING_PARENTS, it applies to right hand-side + extended iterable unpacking (PEP 3132) and additional unpacking + generalizations (PEP 448). + """ + if leaf.type not in VARARGS_SPECIALS or not leaf.parent: + return False + + p = leaf.parent + if p.type == syms.star_expr: + # Star expressions are also used as assignment targets in extended + # iterable unpacking (PEP 3132). See what its parent is instead. + if not p.parent: + return False + + p = p.parent + + return p.type in within + + +def is_fstring(node: Node) -> bool: + """Return True if the node is an f-string""" + return node.type == syms.fstring + + +def fstring_to_string(node: Node) -> Leaf: + """Converts an fstring node back to a string node.""" + string_without_prefix = str(node)[len(node.prefix) :] + string_leaf = Leaf(token.STRING, string_without_prefix, prefix=node.prefix) + string_leaf.lineno = node.get_lineno() or 0 + return string_leaf + + +def is_multiline_string(node: LN) -> bool: + """Return True if `leaf` is a multiline string that actually spans many lines.""" + if isinstance(node, Node) and is_fstring(node): + leaf = fstring_to_string(node) + elif isinstance(node, Leaf): + leaf = node + else: + return False + + return has_triple_quotes(leaf.value) and "\n" in leaf.value + + +def is_parent_function_or_class(node: Node) -> bool: + assert node.type in {syms.suite, syms.simple_stmt} + assert node.parent is not None + # Note this works for suites / simple_stmts in async def as well + return node.parent.type in {syms.funcdef, syms.classdef} + + +def is_function_or_class(node: Node) -> bool: + return node.type in {syms.funcdef, syms.classdef, syms.async_funcdef} + + +def is_stub_suite(node: Node) -> bool: + """Return True if `node` is a suite with a stub body.""" + if node.parent is not None and not is_parent_function_or_class(node): + return False + + # If there is a comment, we want to keep it. + if node.prefix.strip(): + return False + + if ( + len(node.children) != 4 + or node.children[0].type != token.NEWLINE + or node.children[1].type != token.INDENT + or node.children[3].type != token.DEDENT + ): + return False + + if node.children[3].prefix.strip(): + return False + + return is_stub_body(node.children[2]) + + +def is_stub_body(node: LN) -> bool: + """Return True if `node` is a simple statement containing an ellipsis.""" + if not isinstance(node, Node) or node.type != syms.simple_stmt: + return False + + if len(node.children) != 2: + return False + + child = node.children[0] + return ( + not child.prefix.strip() + and child.type == syms.atom + and len(child.children) == 3 + and all(leaf == Leaf(token.DOT, ".") for leaf in child.children) + ) + + +def is_atom_with_invisible_parens(node: LN) -> bool: + """Given a `LN`, determines whether it's an atom `node` with invisible + parens. Useful in dedupe-ing and normalizing parens. + """ + if isinstance(node, Leaf) or node.type != syms.atom: + return False + + first, last = node.children[0], node.children[-1] + return ( + isinstance(first, Leaf) + and first.type == token.LPAR + and first.value == "" + and isinstance(last, Leaf) + and last.type == token.RPAR + and last.value == "" + ) + + +def is_empty_par(leaf: Leaf) -> bool: + return is_empty_lpar(leaf) or is_empty_rpar(leaf) + + +def is_empty_lpar(leaf: Leaf) -> bool: + return leaf.type == token.LPAR and leaf.value == "" + + +def is_empty_rpar(leaf: Leaf) -> bool: + return leaf.type == token.RPAR and leaf.value == "" + + +def is_import(leaf: Leaf) -> bool: + """Return True if the given leaf starts an import statement.""" + p = leaf.parent + t = leaf.type + v = leaf.value + return bool( + t == token.NAME + and ( + (v == "import" and p and p.type == syms.import_name) + or (v == "from" and p and p.type == syms.import_from) + ) + ) + + +def is_with_or_async_with_stmt(leaf: Leaf) -> bool: + """Return True if the given leaf starts a with or async with statement.""" + return bool( + leaf.type == token.NAME + and leaf.value == "with" + and leaf.parent + and leaf.parent.type == syms.with_stmt + ) or bool( + leaf.type == token.ASYNC + and leaf.next_sibling + and leaf.next_sibling.type == syms.with_stmt + ) + + +def is_async_stmt_or_funcdef(leaf: Leaf) -> bool: + """Return True if the given leaf starts an async def/for/with statement. + + Note that `async def` can be either an `async_stmt` or `async_funcdef`, + the latter is used when it has decorators. + """ + return bool( + leaf.type == token.ASYNC + and leaf.parent + and leaf.parent.type in {syms.async_stmt, syms.async_funcdef} + ) + + +def is_type_comment(leaf: Leaf) -> bool: + """Return True if the given leaf is a type comment. This function should only + be used for general type comments (excluding ignore annotations, which should + use `is_type_ignore_comment`). Note that general type comments are no longer + used in modern version of Python, this function may be deprecated in the future.""" + t = leaf.type + v = leaf.value + return t in {token.COMMENT, STANDALONE_COMMENT} and v.startswith("# type:") + + +def is_type_ignore_comment(leaf: Leaf) -> bool: + """Return True if the given leaf is a type comment with ignore annotation.""" + t = leaf.type + v = leaf.value + return t in {token.COMMENT, STANDALONE_COMMENT} and is_type_ignore_comment_string(v) + + +def is_type_ignore_comment_string(value: str) -> bool: + """Return True if the given string match with type comment with + ignore annotation.""" + return value.startswith("# type: ignore") + + +def wrap_in_parentheses(parent: Node, child: LN, *, visible: bool = True) -> None: + """Wrap `child` in parentheses. + + This replaces `child` with an atom holding the parentheses and the old + child. That requires moving the prefix. + + If `visible` is False, the leaves will be valueless (and thus invisible). + """ + lpar = Leaf(token.LPAR, "(" if visible else "") + rpar = Leaf(token.RPAR, ")" if visible else "") + prefix = child.prefix + child.prefix = "" + index = child.remove() or 0 + new_child = Node(syms.atom, [lpar, child, rpar]) + new_child.prefix = prefix + parent.insert_child(index, new_child) + + +def unwrap_singleton_parenthesis(node: LN) -> Optional[LN]: + """Returns `wrapped` if `node` is of the shape ( wrapped ). + + Parenthesis can be optional. Returns None otherwise""" + if len(node.children) != 3: + return None + + lpar, wrapped, rpar = node.children + if not (lpar.type == token.LPAR and rpar.type == token.RPAR): + return None + + return wrapped + + +def ensure_visible(leaf: Leaf) -> None: + """Make sure parentheses are visible. + + They could be invisible as part of some statements (see + :func:`normalize_invisible_parens` and :func:`visit_import_from`). + """ + if leaf.type == token.LPAR: + leaf.value = "(" + elif leaf.type == token.RPAR: + leaf.value = ")" + + +def is_name_token(nl: NL) -> TypeGuard[Leaf]: + return nl.type == token.NAME + + +def is_lpar_token(nl: NL) -> TypeGuard[Leaf]: + return nl.type == token.LPAR + + +def is_rpar_token(nl: NL) -> TypeGuard[Leaf]: + return nl.type == token.RPAR + + +def is_number_token(nl: NL) -> TypeGuard[Leaf]: + return nl.type == token.NUMBER + + +def get_annotation_type(leaf: Leaf) -> Literal["return", "param", None]: + """Returns the type of annotation this leaf is part of, if any.""" + ancestor = leaf.parent + while ancestor is not None: + if ancestor.prev_sibling and ancestor.prev_sibling.type == token.RARROW: + return "return" + if ancestor.parent and ancestor.parent.type == syms.tname: + return "param" + ancestor = ancestor.parent + return None + + +def is_part_of_annotation(leaf: Leaf) -> bool: + """Returns whether this leaf is part of a type annotation.""" + return get_annotation_type(leaf) is not None + + +def first_leaf(node: LN) -> Optional[Leaf]: + """Returns the first leaf of the ancestor node.""" + if isinstance(node, Leaf): + return node + elif not node.children: + return None + else: + return first_leaf(node.children[0]) + + +def last_leaf(node: LN) -> Optional[Leaf]: + """Returns the last leaf of the ancestor node.""" + if isinstance(node, Leaf): + return node + elif not node.children: + return None + else: + return last_leaf(node.children[-1]) + + +def furthest_ancestor_with_last_leaf(leaf: Leaf) -> LN: + """Returns the furthest ancestor that has this leaf node as the last leaf.""" + node: LN = leaf + while node.parent and node.parent.children and node is node.parent.children[-1]: + node = node.parent + return node diff --git a/venv/lib/python3.12/site-packages/black/numerics.py b/venv/lib/python3.12/site-packages/black/numerics.py new file mode 100644 index 0000000000..3040de06fd --- /dev/null +++ b/venv/lib/python3.12/site-packages/black/numerics.py @@ -0,0 +1,61 @@ +""" +Formatting numeric literals. +""" + +from blib2to3.pytree import Leaf + + +def format_hex(text: str) -> str: + """ + Formats a hexadecimal string like "0x12B3" + """ + before, after = text[:2], text[2:] + return f"{before}{after.upper()}" + + +def format_scientific_notation(text: str) -> str: + """Formats a numeric string utilizing scientific notation""" + before, after = text.split("e") + sign = "" + if after.startswith("-"): + after = after[1:] + sign = "-" + elif after.startswith("+"): + after = after[1:] + before = format_float_or_int_string(before) + return f"{before}e{sign}{after}" + + +def format_complex_number(text: str) -> str: + """Formats a complex string like `10j`""" + number = text[:-1] + suffix = text[-1] + return f"{format_float_or_int_string(number)}{suffix}" + + +def format_float_or_int_string(text: str) -> str: + """Formats a float string like "1.0".""" + if "." not in text: + return text + + before, after = text.split(".") + return f"{before or 0}.{after or 0}" + + +def normalize_numeric_literal(leaf: Leaf) -> None: + """Normalizes numeric (float, int, and complex) literals. + + All letters used in the representation are normalized to lowercase.""" + text = leaf.value.lower() + if text.startswith(("0o", "0b")): + # Leave octal and binary literals alone. + pass + elif text.startswith("0x"): + text = format_hex(text) + elif "e" in text: + text = format_scientific_notation(text) + elif text.endswith("j"): + text = format_complex_number(text) + else: + text = format_float_or_int_string(text) + leaf.value = text diff --git a/venv/lib/python3.12/site-packages/black/output.py b/venv/lib/python3.12/site-packages/black/output.py new file mode 100644 index 0000000000..7c7dd0fe14 --- /dev/null +++ b/venv/lib/python3.12/site-packages/black/output.py @@ -0,0 +1,122 @@ +"""Nice output for Black. + +The double calls are for patching purposes in tests. +""" + +import json +import re +import tempfile +from typing import Any, List, Optional + +from click import echo, style +from mypy_extensions import mypyc_attr + + +@mypyc_attr(patchable=True) +def _out(message: Optional[str] = None, nl: bool = True, **styles: Any) -> None: + if message is not None: + if "bold" not in styles: + styles["bold"] = True + message = style(message, **styles) + echo(message, nl=nl, err=True) + + +@mypyc_attr(patchable=True) +def _err(message: Optional[str] = None, nl: bool = True, **styles: Any) -> None: + if message is not None: + if "fg" not in styles: + styles["fg"] = "red" + message = style(message, **styles) + echo(message, nl=nl, err=True) + + +@mypyc_attr(patchable=True) +def out(message: Optional[str] = None, nl: bool = True, **styles: Any) -> None: + _out(message, nl=nl, **styles) + + +def err(message: Optional[str] = None, nl: bool = True, **styles: Any) -> None: + _err(message, nl=nl, **styles) + + +def ipynb_diff(a: str, b: str, a_name: str, b_name: str) -> str: + """Return a unified diff string between each cell in notebooks `a` and `b`.""" + a_nb = json.loads(a) + b_nb = json.loads(b) + diff_lines = [ + diff( + "".join(a_nb["cells"][cell_number]["source"]) + "\n", + "".join(b_nb["cells"][cell_number]["source"]) + "\n", + f"{a_name}:cell_{cell_number}", + f"{b_name}:cell_{cell_number}", + ) + for cell_number, cell in enumerate(a_nb["cells"]) + if cell["cell_type"] == "code" + ] + return "".join(diff_lines) + + +_line_pattern = re.compile(r"(.*?(?:\r\n|\n|\r|$))") + + +def _splitlines_no_ff(source: str) -> List[str]: + """Split a string into lines ignoring form feed and other chars. + + This mimics how the Python parser splits source code. + + A simplified version of the function with the same name in Lib/ast.py + """ + result = [match[0] for match in _line_pattern.finditer(source)] + if result[-1] == "": + result.pop(-1) + return result + + +def diff(a: str, b: str, a_name: str, b_name: str) -> str: + """Return a unified diff string between strings `a` and `b`.""" + import difflib + + a_lines = _splitlines_no_ff(a) + b_lines = _splitlines_no_ff(b) + diff_lines = [] + for line in difflib.unified_diff( + a_lines, b_lines, fromfile=a_name, tofile=b_name, n=5 + ): + # Work around https://bugs.python.org/issue2142 + # See: + # https://www.gnu.org/software/diffutils/manual/html_node/Incomplete-Lines.html + if line[-1] == "\n": + diff_lines.append(line) + else: + diff_lines.append(line + "\n") + diff_lines.append("\\ No newline at end of file\n") + return "".join(diff_lines) + + +def color_diff(contents: str) -> str: + """Inject the ANSI color codes to the diff.""" + lines = contents.split("\n") + for i, line in enumerate(lines): + if line.startswith("+++") or line.startswith("---"): + line = "\033[1m" + line + "\033[0m" # bold, reset + elif line.startswith("@@"): + line = "\033[36m" + line + "\033[0m" # cyan, reset + elif line.startswith("+"): + line = "\033[32m" + line + "\033[0m" # green, reset + elif line.startswith("-"): + line = "\033[31m" + line + "\033[0m" # red, reset + lines[i] = line + return "\n".join(lines) + + +@mypyc_attr(patchable=True) +def dump_to_file(*output: str, ensure_final_newline: bool = True) -> str: + """Dump `output` to a temporary file. Return path to the file.""" + with tempfile.NamedTemporaryFile( + mode="w", prefix="blk_", suffix=".log", delete=False, encoding="utf8" + ) as f: + for lines in output: + f.write(lines) + if ensure_final_newline and lines and lines[-1] != "\n": + f.write("\n") + return f.name diff --git a/venv/lib/python3.12/site-packages/black/parsing.py b/venv/lib/python3.12/site-packages/black/parsing.py new file mode 100644 index 0000000000..e8664b5ee2 --- /dev/null +++ b/venv/lib/python3.12/site-packages/black/parsing.py @@ -0,0 +1,244 @@ +""" +Parse Python code and perform AST validation. +""" + +import ast +import sys +import warnings +from typing import Iterable, Iterator, List, Set, Tuple + +from black.mode import VERSION_TO_FEATURES, Feature, TargetVersion, supports_feature +from black.nodes import syms +from blib2to3 import pygram +from blib2to3.pgen2 import driver +from blib2to3.pgen2.grammar import Grammar +from blib2to3.pgen2.parse import ParseError +from blib2to3.pgen2.tokenize import TokenError +from blib2to3.pytree import Leaf, Node + + +class InvalidInput(ValueError): + """Raised when input source code fails all parse attempts.""" + + +def get_grammars(target_versions: Set[TargetVersion]) -> List[Grammar]: + if not target_versions: + # No target_version specified, so try all grammars. + return [ + # Python 3.7-3.9 + pygram.python_grammar_async_keywords, + # Python 3.0-3.6 + pygram.python_grammar, + # Python 3.10+ + pygram.python_grammar_soft_keywords, + ] + + grammars = [] + # If we have to parse both, try to parse async as a keyword first + if not supports_feature( + target_versions, Feature.ASYNC_IDENTIFIERS + ) and not supports_feature(target_versions, Feature.PATTERN_MATCHING): + # Python 3.7-3.9 + grammars.append(pygram.python_grammar_async_keywords) + if not supports_feature(target_versions, Feature.ASYNC_KEYWORDS): + # Python 3.0-3.6 + grammars.append(pygram.python_grammar) + if any(Feature.PATTERN_MATCHING in VERSION_TO_FEATURES[v] for v in target_versions): + # Python 3.10+ + grammars.append(pygram.python_grammar_soft_keywords) + + # At least one of the above branches must have been taken, because every Python + # version has exactly one of the two 'ASYNC_*' flags + return grammars + + +def lib2to3_parse(src_txt: str, target_versions: Iterable[TargetVersion] = ()) -> Node: + """Given a string with source, return the lib2to3 Node.""" + if not src_txt.endswith("\n"): + src_txt += "\n" + + grammars = get_grammars(set(target_versions)) + errors = {} + for grammar in grammars: + drv = driver.Driver(grammar) + try: + result = drv.parse_string(src_txt, True) + break + + except ParseError as pe: + lineno, column = pe.context[1] + lines = src_txt.splitlines() + try: + faulty_line = lines[lineno - 1] + except IndexError: + faulty_line = "" + errors[grammar.version] = InvalidInput( + f"Cannot parse: {lineno}:{column}: {faulty_line}" + ) + + except TokenError as te: + # In edge cases these are raised; and typically don't have a "faulty_line". + lineno, column = te.args[1] + errors[grammar.version] = InvalidInput( + f"Cannot parse: {lineno}:{column}: {te.args[0]}" + ) + + else: + # Choose the latest version when raising the actual parsing error. + assert len(errors) >= 1 + exc = errors[max(errors)] + raise exc from None + + if isinstance(result, Leaf): + result = Node(syms.file_input, [result]) + return result + + +def matches_grammar(src_txt: str, grammar: Grammar) -> bool: + drv = driver.Driver(grammar) + try: + drv.parse_string(src_txt, True) + except (ParseError, TokenError, IndentationError): + return False + else: + return True + + +def lib2to3_unparse(node: Node) -> str: + """Given a lib2to3 node, return its string representation.""" + code = str(node) + return code + + +class ASTSafetyError(Exception): + """Raised when Black's generated code is not equivalent to the old AST.""" + + +def _parse_single_version( + src: str, version: Tuple[int, int], *, type_comments: bool +) -> ast.AST: + filename = "" + with warnings.catch_warnings(): + warnings.simplefilter("ignore", SyntaxWarning) + warnings.simplefilter("ignore", DeprecationWarning) + return ast.parse( + src, filename, feature_version=version, type_comments=type_comments + ) + + +def parse_ast(src: str) -> ast.AST: + # TODO: support Python 4+ ;) + versions = [(3, minor) for minor in range(3, sys.version_info[1] + 1)] + + first_error = "" + for version in sorted(versions, reverse=True): + try: + return _parse_single_version(src, version, type_comments=True) + except SyntaxError as e: + if not first_error: + first_error = str(e) + + # Try to parse without type comments + for version in sorted(versions, reverse=True): + try: + return _parse_single_version(src, version, type_comments=False) + except SyntaxError: + pass + + raise SyntaxError(first_error) + + +def _normalize(lineend: str, value: str) -> str: + # To normalize, we strip any leading and trailing space from + # each line... + stripped: List[str] = [i.strip() for i in value.splitlines()] + normalized = lineend.join(stripped) + # ...and remove any blank lines at the beginning and end of + # the whole string + return normalized.strip() + + +def stringify_ast(node: ast.AST) -> Iterator[str]: + """Simple visitor generating strings to compare ASTs by content.""" + return _stringify_ast(node, []) + + +def _stringify_ast_with_new_parent( + node: ast.AST, parent_stack: List[ast.AST], new_parent: ast.AST +) -> Iterator[str]: + parent_stack.append(new_parent) + yield from _stringify_ast(node, parent_stack) + parent_stack.pop() + + +def _stringify_ast(node: ast.AST, parent_stack: List[ast.AST]) -> Iterator[str]: + if ( + isinstance(node, ast.Constant) + and isinstance(node.value, str) + and node.kind == "u" + ): + # It's a quirk of history that we strip the u prefix over here. We used to + # rewrite the AST nodes for Python version compatibility and we never copied + # over the kind + node.kind = None + + yield f"{' ' * len(parent_stack)}{node.__class__.__name__}(" + + for field in sorted(node._fields): # noqa: F402 + # TypeIgnore has only one field 'lineno' which breaks this comparison + if isinstance(node, ast.TypeIgnore): + break + + try: + value: object = getattr(node, field) + except AttributeError: + continue + + yield f"{' ' * (len(parent_stack) + 1)}{field}=" + + if isinstance(value, list): + for item in value: + # Ignore nested tuples within del statements, because we may insert + # parentheses and they change the AST. + if ( + field == "targets" + and isinstance(node, ast.Delete) + and isinstance(item, ast.Tuple) + ): + for elt in item.elts: + yield from _stringify_ast_with_new_parent( + elt, parent_stack, node + ) + + elif isinstance(item, ast.AST): + yield from _stringify_ast_with_new_parent(item, parent_stack, node) + + elif isinstance(value, ast.AST): + yield from _stringify_ast_with_new_parent(value, parent_stack, node) + + else: + normalized: object + if ( + isinstance(node, ast.Constant) + and field == "value" + and isinstance(value, str) + and len(parent_stack) >= 2 + # Any standalone string, ideally this would + # exactly match black.nodes.is_docstring + and isinstance(parent_stack[-1], ast.Expr) + ): + # Constant strings may be indented across newlines, if they are + # docstrings; fold spaces after newlines when comparing. Similarly, + # trailing and leading space may be removed. + normalized = _normalize("\n", value) + elif field == "type_comment" and isinstance(value, str): + # Trailing whitespace in type comments is removed. + normalized = value.rstrip() + else: + normalized = value + yield ( + f"{' ' * (len(parent_stack) + 1)}{normalized!r}, #" + f" {value.__class__.__name__}" + ) + + yield f"{' ' * len(parent_stack)}) # /{node.__class__.__name__}" diff --git a/venv/lib/python3.12/site-packages/black/py.typed b/venv/lib/python3.12/site-packages/black/py.typed new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/black/ranges.py b/venv/lib/python3.12/site-packages/black/ranges.py new file mode 100644 index 0000000000..1ecaf7b0ae --- /dev/null +++ b/venv/lib/python3.12/site-packages/black/ranges.py @@ -0,0 +1,521 @@ +"""Functions related to Black's formatting by line ranges feature.""" + +import difflib +from dataclasses import dataclass +from typing import Collection, Iterator, List, Sequence, Set, Tuple, Union + +from black.nodes import ( + LN, + STANDALONE_COMMENT, + Leaf, + Node, + Visitor, + first_leaf, + furthest_ancestor_with_last_leaf, + last_leaf, + syms, +) +from blib2to3.pgen2.token import ASYNC, NEWLINE + + +def parse_line_ranges(line_ranges: Sequence[str]) -> List[Tuple[int, int]]: + lines: List[Tuple[int, int]] = [] + for lines_str in line_ranges: + parts = lines_str.split("-") + if len(parts) != 2: + raise ValueError( + "Incorrect --line-ranges format, expect 'START-END', found" + f" {lines_str!r}" + ) + try: + start = int(parts[0]) + end = int(parts[1]) + except ValueError: + raise ValueError( + "Incorrect --line-ranges value, expect integer ranges, found" + f" {lines_str!r}" + ) from None + else: + lines.append((start, end)) + return lines + + +def is_valid_line_range(lines: Tuple[int, int]) -> bool: + """Returns whether the line range is valid.""" + return not lines or lines[0] <= lines[1] + + +def sanitized_lines( + lines: Collection[Tuple[int, int]], src_contents: str +) -> Collection[Tuple[int, int]]: + """Returns the valid line ranges for the given source. + + This removes ranges that are entirely outside the valid lines. + + Other ranges are normalized so that the start values are at least 1 and the + end values are at most the (1-based) index of the last source line. + """ + if not src_contents: + return [] + good_lines = [] + src_line_count = src_contents.count("\n") + if not src_contents.endswith("\n"): + src_line_count += 1 + for start, end in lines: + if start > src_line_count: + continue + # line-ranges are 1-based + start = max(start, 1) + if end < start: + continue + end = min(end, src_line_count) + good_lines.append((start, end)) + return good_lines + + +def adjusted_lines( + lines: Collection[Tuple[int, int]], + original_source: str, + modified_source: str, +) -> List[Tuple[int, int]]: + """Returns the adjusted line ranges based on edits from the original code. + + This computes the new line ranges by diffing original_source and + modified_source, and adjust each range based on how the range overlaps with + the diffs. + + Note the diff can contain lines outside of the original line ranges. This can + happen when the formatting has to be done in adjacent to maintain consistent + local results. For example: + + 1. def my_func(arg1, arg2, + 2. arg3,): + 3. pass + + If it restricts to line 2-2, it can't simply reformat line 2, it also has + to reformat line 1: + + 1. def my_func( + 2. arg1, + 3. arg2, + 4. arg3, + 5. ): + 6. pass + + In this case, we will expand the line ranges to also include the whole diff + block. + + Args: + lines: a collection of line ranges. + original_source: the original source. + modified_source: the modified source. + """ + lines_mappings = _calculate_lines_mappings(original_source, modified_source) + + new_lines = [] + # Keep an index of the current search. Since the lines and lines_mappings are + # sorted, this makes the search complexity linear. + current_mapping_index = 0 + for start, end in sorted(lines): + start_mapping_index = _find_lines_mapping_index( + start, + lines_mappings, + current_mapping_index, + ) + end_mapping_index = _find_lines_mapping_index( + end, + lines_mappings, + start_mapping_index, + ) + current_mapping_index = start_mapping_index + if start_mapping_index >= len(lines_mappings) or end_mapping_index >= len( + lines_mappings + ): + # Protect against invalid inputs. + continue + start_mapping = lines_mappings[start_mapping_index] + end_mapping = lines_mappings[end_mapping_index] + if start_mapping.is_changed_block: + # When the line falls into a changed block, expands to the whole block. + new_start = start_mapping.modified_start + else: + new_start = ( + start - start_mapping.original_start + start_mapping.modified_start + ) + if end_mapping.is_changed_block: + # When the line falls into a changed block, expands to the whole block. + new_end = end_mapping.modified_end + else: + new_end = end - end_mapping.original_start + end_mapping.modified_start + new_range = (new_start, new_end) + if is_valid_line_range(new_range): + new_lines.append(new_range) + return new_lines + + +def convert_unchanged_lines(src_node: Node, lines: Collection[Tuple[int, int]]) -> None: + """Converts unchanged lines to STANDALONE_COMMENT. + + The idea is similar to how `# fmt: on/off` is implemented. It also converts the + nodes between those markers as a single `STANDALONE_COMMENT` leaf node with + the unformatted code as its value. `STANDALONE_COMMENT` is a "fake" token + that will be formatted as-is with its prefix normalized. + + Here we perform two passes: + + 1. Visit the top-level statements, and convert them to a single + `STANDALONE_COMMENT` when unchanged. This speeds up formatting when some + of the top-level statements aren't changed. + 2. Convert unchanged "unwrapped lines" to `STANDALONE_COMMENT` nodes line by + line. "unwrapped lines" are divided by the `NEWLINE` token. e.g. a + multi-line statement is *one* "unwrapped line" that ends with `NEWLINE`, + even though this statement itself can span multiple lines, and the + tokenizer only sees the last '\n' as the `NEWLINE` token. + + NOTE: During pass (2), comment prefixes and indentations are ALWAYS + normalized even when the lines aren't changed. This is fixable by moving + more formatting to pass (1). However, it's hard to get it correct when + incorrect indentations are used. So we defer this to future optimizations. + """ + lines_set: Set[int] = set() + for start, end in lines: + lines_set.update(range(start, end + 1)) + visitor = _TopLevelStatementsVisitor(lines_set) + _ = list(visitor.visit(src_node)) # Consume all results. + _convert_unchanged_line_by_line(src_node, lines_set) + + +def _contains_standalone_comment(node: LN) -> bool: + if isinstance(node, Leaf): + return node.type == STANDALONE_COMMENT + else: + for child in node.children: + if _contains_standalone_comment(child): + return True + return False + + +class _TopLevelStatementsVisitor(Visitor[None]): + """ + A node visitor that converts unchanged top-level statements to + STANDALONE_COMMENT. + + This is used in addition to _convert_unchanged_line_by_line, to + speed up formatting when there are unchanged top-level + classes/functions/statements. + """ + + def __init__(self, lines_set: Set[int]): + self._lines_set = lines_set + + def visit_simple_stmt(self, node: Node) -> Iterator[None]: + # This is only called for top-level statements, since `visit_suite` + # won't visit its children nodes. + yield from [] + newline_leaf = last_leaf(node) + if not newline_leaf: + return + assert ( + newline_leaf.type == NEWLINE + ), f"Unexpectedly found leaf.type={newline_leaf.type}" + # We need to find the furthest ancestor with the NEWLINE as the last + # leaf, since a `suite` can simply be a `simple_stmt` when it puts + # its body on the same line. Example: `if cond: pass`. + ancestor = furthest_ancestor_with_last_leaf(newline_leaf) + if not _get_line_range(ancestor).intersection(self._lines_set): + _convert_node_to_standalone_comment(ancestor) + + def visit_suite(self, node: Node) -> Iterator[None]: + yield from [] + # If there is a STANDALONE_COMMENT node, it means parts of the node tree + # have fmt on/off/skip markers. Those STANDALONE_COMMENT nodes can't + # be simply converted by calling str(node). So we just don't convert + # here. + if _contains_standalone_comment(node): + return + # Find the semantic parent of this suite. For `async_stmt` and + # `async_funcdef`, the ASYNC token is defined on a separate level by the + # grammar. + semantic_parent = node.parent + if semantic_parent is not None: + if ( + semantic_parent.prev_sibling is not None + and semantic_parent.prev_sibling.type == ASYNC + ): + semantic_parent = semantic_parent.parent + if semantic_parent is not None and not _get_line_range( + semantic_parent + ).intersection(self._lines_set): + _convert_node_to_standalone_comment(semantic_parent) + + +def _convert_unchanged_line_by_line(node: Node, lines_set: Set[int]) -> None: + """Converts unchanged to STANDALONE_COMMENT line by line.""" + for leaf in node.leaves(): + if leaf.type != NEWLINE: + # We only consider "unwrapped lines", which are divided by the NEWLINE + # token. + continue + if leaf.parent and leaf.parent.type == syms.match_stmt: + # The `suite` node is defined as: + # match_stmt: "match" subject_expr ':' NEWLINE INDENT case_block+ DEDENT + # Here we need to check `subject_expr`. The `case_block+` will be + # checked by their own NEWLINEs. + nodes_to_ignore: List[LN] = [] + prev_sibling = leaf.prev_sibling + while prev_sibling: + nodes_to_ignore.insert(0, prev_sibling) + prev_sibling = prev_sibling.prev_sibling + if not _get_line_range(nodes_to_ignore).intersection(lines_set): + _convert_nodes_to_standalone_comment(nodes_to_ignore, newline=leaf) + elif leaf.parent and leaf.parent.type == syms.suite: + # The `suite` node is defined as: + # suite: simple_stmt | NEWLINE INDENT stmt+ DEDENT + # We will check `simple_stmt` and `stmt+` separately against the lines set + parent_sibling = leaf.parent.prev_sibling + nodes_to_ignore = [] + while parent_sibling and not parent_sibling.type == syms.suite: + # NOTE: Multiple suite nodes can exist as siblings in e.g. `if_stmt`. + nodes_to_ignore.insert(0, parent_sibling) + parent_sibling = parent_sibling.prev_sibling + # Special case for `async_stmt` and `async_funcdef` where the ASYNC + # token is on the grandparent node. + grandparent = leaf.parent.parent + if ( + grandparent is not None + and grandparent.prev_sibling is not None + and grandparent.prev_sibling.type == ASYNC + ): + nodes_to_ignore.insert(0, grandparent.prev_sibling) + if not _get_line_range(nodes_to_ignore).intersection(lines_set): + _convert_nodes_to_standalone_comment(nodes_to_ignore, newline=leaf) + else: + ancestor = furthest_ancestor_with_last_leaf(leaf) + # Consider multiple decorators as a whole block, as their + # newlines have different behaviors than the rest of the grammar. + if ( + ancestor.type == syms.decorator + and ancestor.parent + and ancestor.parent.type == syms.decorators + ): + ancestor = ancestor.parent + if not _get_line_range(ancestor).intersection(lines_set): + _convert_node_to_standalone_comment(ancestor) + + +def _convert_node_to_standalone_comment(node: LN) -> None: + """Convert node to STANDALONE_COMMENT by modifying the tree inline.""" + parent = node.parent + if not parent: + return + first = first_leaf(node) + last = last_leaf(node) + if not first or not last: + return + if first is last: + # This can happen on the following edge cases: + # 1. A block of `# fmt: off/on` code except the `# fmt: on` is placed + # on the end of the last line instead of on a new line. + # 2. A single backslash on its own line followed by a comment line. + # Ideally we don't want to format them when not requested, but fixing + # isn't easy. These cases are also badly formatted code, so it isn't + # too bad we reformat them. + return + # The prefix contains comments and indentation whitespaces. They are + # reformatted accordingly to the correct indentation level. + # This also means the indentation will be changed on the unchanged lines, and + # this is actually required to not break incremental reformatting. + prefix = first.prefix + first.prefix = "" + index = node.remove() + if index is not None: + # Remove the '\n', as STANDALONE_COMMENT will have '\n' appended when + # generating the formatted code. + value = str(node)[:-1] + parent.insert_child( + index, + Leaf( + STANDALONE_COMMENT, + value, + prefix=prefix, + fmt_pass_converted_first_leaf=first, + ), + ) + + +def _convert_nodes_to_standalone_comment(nodes: Sequence[LN], *, newline: Leaf) -> None: + """Convert nodes to STANDALONE_COMMENT by modifying the tree inline.""" + if not nodes: + return + parent = nodes[0].parent + first = first_leaf(nodes[0]) + if not parent or not first: + return + prefix = first.prefix + first.prefix = "" + value = "".join(str(node) for node in nodes) + # The prefix comment on the NEWLINE leaf is the trailing comment of the statement. + if newline.prefix: + value += newline.prefix + newline.prefix = "" + index = nodes[0].remove() + for node in nodes[1:]: + node.remove() + if index is not None: + parent.insert_child( + index, + Leaf( + STANDALONE_COMMENT, + value, + prefix=prefix, + fmt_pass_converted_first_leaf=first, + ), + ) + + +def _leaf_line_end(leaf: Leaf) -> int: + """Returns the line number of the leaf node's last line.""" + if leaf.type == NEWLINE: + return leaf.lineno + else: + # Leaf nodes like multiline strings can occupy multiple lines. + return leaf.lineno + str(leaf).count("\n") + + +def _get_line_range(node_or_nodes: Union[LN, List[LN]]) -> Set[int]: + """Returns the line range of this node or list of nodes.""" + if isinstance(node_or_nodes, list): + nodes = node_or_nodes + if not nodes: + return set() + first = first_leaf(nodes[0]) + last = last_leaf(nodes[-1]) + if first and last: + line_start = first.lineno + line_end = _leaf_line_end(last) + return set(range(line_start, line_end + 1)) + else: + return set() + else: + node = node_or_nodes + if isinstance(node, Leaf): + return set(range(node.lineno, _leaf_line_end(node) + 1)) + else: + first = first_leaf(node) + last = last_leaf(node) + if first and last: + return set(range(first.lineno, _leaf_line_end(last) + 1)) + else: + return set() + + +@dataclass +class _LinesMapping: + """1-based lines mapping from original source to modified source. + + Lines [original_start, original_end] from original source + are mapped to [modified_start, modified_end]. + + The ranges are inclusive on both ends. + """ + + original_start: int + original_end: int + modified_start: int + modified_end: int + # Whether this range corresponds to a changed block, or an unchanged block. + is_changed_block: bool + + +def _calculate_lines_mappings( + original_source: str, + modified_source: str, +) -> Sequence[_LinesMapping]: + """Returns a sequence of _LinesMapping by diffing the sources. + + For example, given the following diff: + import re + - def func(arg1, + - arg2, arg3): + + def func(arg1, arg2, arg3): + pass + It returns the following mappings: + original -> modified + (1, 1) -> (1, 1), is_changed_block=False (the "import re" line) + (2, 3) -> (2, 2), is_changed_block=True (the diff) + (4, 4) -> (3, 3), is_changed_block=False (the "pass" line) + + You can think of this visually as if it brings up a side-by-side diff, and tries + to map the line ranges from the left side to the right side: + + (1, 1)->(1, 1) 1. import re 1. import re + (2, 3)->(2, 2) 2. def func(arg1, 2. def func(arg1, arg2, arg3): + 3. arg2, arg3): + (4, 4)->(3, 3) 4. pass 3. pass + + Args: + original_source: the original source. + modified_source: the modified source. + """ + matcher = difflib.SequenceMatcher( + None, + original_source.splitlines(keepends=True), + modified_source.splitlines(keepends=True), + ) + matching_blocks = matcher.get_matching_blocks() + lines_mappings: List[_LinesMapping] = [] + # matching_blocks is a sequence of "same block of code ranges", see + # https://docs.python.org/3/library/difflib.html#difflib.SequenceMatcher.get_matching_blocks + # Each block corresponds to a _LinesMapping with is_changed_block=False, + # and the ranges between two blocks corresponds to a _LinesMapping with + # is_changed_block=True, + # NOTE: matching_blocks is 0-based, but _LinesMapping is 1-based. + for i, block in enumerate(matching_blocks): + if i == 0: + if block.a != 0 or block.b != 0: + lines_mappings.append( + _LinesMapping( + original_start=1, + original_end=block.a, + modified_start=1, + modified_end=block.b, + is_changed_block=False, + ) + ) + else: + previous_block = matching_blocks[i - 1] + lines_mappings.append( + _LinesMapping( + original_start=previous_block.a + previous_block.size + 1, + original_end=block.a, + modified_start=previous_block.b + previous_block.size + 1, + modified_end=block.b, + is_changed_block=True, + ) + ) + if i < len(matching_blocks) - 1: + lines_mappings.append( + _LinesMapping( + original_start=block.a + 1, + original_end=block.a + block.size, + modified_start=block.b + 1, + modified_end=block.b + block.size, + is_changed_block=False, + ) + ) + return lines_mappings + + +def _find_lines_mapping_index( + original_line: int, + lines_mappings: Sequence[_LinesMapping], + start_index: int, +) -> int: + """Returns the original index of the lines mappings for the original line.""" + index = start_index + while index < len(lines_mappings): + mapping = lines_mappings[index] + if mapping.original_start <= original_line <= mapping.original_end: + return index + index += 1 + return index diff --git a/venv/lib/python3.12/site-packages/black/report.py b/venv/lib/python3.12/site-packages/black/report.py new file mode 100644 index 0000000000..89899f2f38 --- /dev/null +++ b/venv/lib/python3.12/site-packages/black/report.py @@ -0,0 +1,107 @@ +""" +Summarize Black runs to users. +""" + +from dataclasses import dataclass +from enum import Enum +from pathlib import Path + +from click import style + +from black.output import err, out + + +class Changed(Enum): + NO = 0 + CACHED = 1 + YES = 2 + + +class NothingChanged(UserWarning): + """Raised when reformatted code is the same as source.""" + + +@dataclass +class Report: + """Provides a reformatting counter. Can be rendered with `str(report)`.""" + + check: bool = False + diff: bool = False + quiet: bool = False + verbose: bool = False + change_count: int = 0 + same_count: int = 0 + failure_count: int = 0 + + def done(self, src: Path, changed: Changed) -> None: + """Increment the counter for successful reformatting. Write out a message.""" + if changed is Changed.YES: + reformatted = "would reformat" if self.check or self.diff else "reformatted" + if self.verbose or not self.quiet: + out(f"{reformatted} {src}") + self.change_count += 1 + else: + if self.verbose: + if changed is Changed.NO: + msg = f"{src} already well formatted, good job." + else: + msg = f"{src} wasn't modified on disk since last run." + out(msg, bold=False) + self.same_count += 1 + + def failed(self, src: Path, message: str) -> None: + """Increment the counter for failed reformatting. Write out a message.""" + err(f"error: cannot format {src}: {message}") + self.failure_count += 1 + + def path_ignored(self, path: Path, message: str) -> None: + if self.verbose: + out(f"{path} ignored: {message}", bold=False) + + @property + def return_code(self) -> int: + """Return the exit code that the app should use. + + This considers the current state of changed files and failures: + - if there were any failures, return 123; + - if any files were changed and --check is being used, return 1; + - otherwise return 0. + """ + # According to http://tldp.org/LDP/abs/html/exitcodes.html starting with + # 126 we have special return codes reserved by the shell. + if self.failure_count: + return 123 + + elif self.change_count and self.check: + return 1 + + return 0 + + def __str__(self) -> str: + """Render a color report of the current state. + + Use `click.unstyle` to remove colors. + """ + if self.check or self.diff: + reformatted = "would be reformatted" + unchanged = "would be left unchanged" + failed = "would fail to reformat" + else: + reformatted = "reformatted" + unchanged = "left unchanged" + failed = "failed to reformat" + report = [] + if self.change_count: + s = "s" if self.change_count > 1 else "" + report.append( + style(f"{self.change_count} file{s} ", bold=True, fg="blue") + + style(f"{reformatted}", bold=True) + ) + + if self.same_count: + s = "s" if self.same_count > 1 else "" + report.append(style(f"{self.same_count} file{s} ", fg="blue") + unchanged) + if self.failure_count: + s = "s" if self.failure_count > 1 else "" + report.append(style(f"{self.failure_count} file{s} {failed}", fg="red")) + return ", ".join(report) + "." diff --git a/venv/lib/python3.12/site-packages/black/resources/__init__.py b/venv/lib/python3.12/site-packages/black/resources/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/black/resources/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/black/resources/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..96c1a94b54bd907f64630b589b230d1eaf3e33e9 GIT binary patch literal 192 zcmX@j%ge<81l4XQ(m?cM5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!ir3G`&rQ|OP0Yy6 zFHO;RNiEZNN=(kybEFQ_cZ$j>v@Gc?jK&MZmQEdVM^ zOiwKaDNN4RFG?-WFD*(2^5f$(^D;}~/dev/null).", + "default": false + }, + "verbose": { + "type": "boolean", + "description": "Emit messages about files that were not changed or were ignored due to exclusion patterns. If Black is using a configuration file, a message detailing which one it is using will be emitted.", + "default": false + } + } +} diff --git a/venv/lib/python3.12/site-packages/black/rusty.py b/venv/lib/python3.12/site-packages/black/rusty.py new file mode 100644 index 0000000000..ebd4c052d1 --- /dev/null +++ b/venv/lib/python3.12/site-packages/black/rusty.py @@ -0,0 +1,28 @@ +"""An error-handling model influenced by that used by the Rust programming language + +See https://doc.rust-lang.org/book/ch09-00-error-handling.html. +""" + +from typing import Generic, TypeVar, Union + +T = TypeVar("T") +E = TypeVar("E", bound=Exception) + + +class Ok(Generic[T]): + def __init__(self, value: T) -> None: + self._value = value + + def ok(self) -> T: + return self._value + + +class Err(Generic[E]): + def __init__(self, e: E) -> None: + self._e = e + + def err(self) -> E: + return self._e + + +Result = Union[Ok[T], Err[E]] diff --git a/venv/lib/python3.12/site-packages/black/schema.py b/venv/lib/python3.12/site-packages/black/schema.py new file mode 100644 index 0000000000..78e9564cdb --- /dev/null +++ b/venv/lib/python3.12/site-packages/black/schema.py @@ -0,0 +1,20 @@ +import importlib.resources +import json +import sys +from typing import Any + + +def get_schema(tool_name: str = "black") -> Any: + """Get the stored complete schema for black's settings.""" + assert tool_name == "black", "Only black is supported." + + pkg = "black.resources" + fname = "black.schema.json" + + if sys.version_info < (3, 9): + with importlib.resources.open_text(pkg, fname, encoding="utf-8") as f: + return json.load(f) + + schema = importlib.resources.files(pkg).joinpath(fname) # type: ignore[unreachable] + with schema.open(encoding="utf-8") as f: + return json.load(f) diff --git a/venv/lib/python3.12/site-packages/black/strings.py b/venv/lib/python3.12/site-packages/black/strings.py new file mode 100644 index 0000000000..69a8c8002e --- /dev/null +++ b/venv/lib/python3.12/site-packages/black/strings.py @@ -0,0 +1,390 @@ +""" +Simple formatting on strings. Further string formatting code is in trans.py. +""" + +import re +import sys +from functools import lru_cache +from typing import Final, List, Match, Pattern, Tuple + +from black._width_table import WIDTH_TABLE +from blib2to3.pytree import Leaf + +STRING_PREFIX_CHARS: Final = "furbFURB" # All possible string prefix characters. +STRING_PREFIX_RE: Final = re.compile( + r"^([" + STRING_PREFIX_CHARS + r"]*)(.*)$", re.DOTALL +) +UNICODE_ESCAPE_RE: Final = re.compile( + r"(?P\\+)(?P" + r"(u(?P[a-fA-F0-9]{4}))" # Character with 16-bit hex value xxxx + r"|(U(?P[a-fA-F0-9]{8}))" # Character with 32-bit hex value xxxxxxxx + r"|(x(?P[a-fA-F0-9]{2}))" # Character with hex value hh + r"|(N\{(?P[a-zA-Z0-9 \-]{2,})\})" # Character named name in the Unicode database + r")", + re.VERBOSE, +) + + +def sub_twice(regex: Pattern[str], replacement: str, original: str) -> str: + """Replace `regex` with `replacement` twice on `original`. + + This is used by string normalization to perform replaces on + overlapping matches. + """ + return regex.sub(replacement, regex.sub(replacement, original)) + + +def has_triple_quotes(string: str) -> bool: + """ + Returns: + True iff @string starts with three quotation characters. + """ + raw_string = string.lstrip(STRING_PREFIX_CHARS) + return raw_string[:3] in {'"""', "'''"} + + +def lines_with_leading_tabs_expanded(s: str) -> List[str]: + """ + Splits string into lines and expands only leading tabs (following the normal + Python rules) + """ + lines = [] + for line in s.splitlines(): + stripped_line = line.lstrip() + if not stripped_line or stripped_line == line: + lines.append(line) + else: + prefix_length = len(line) - len(stripped_line) + prefix = line[:prefix_length].expandtabs() + lines.append(prefix + stripped_line) + if s.endswith("\n"): + lines.append("") + return lines + + +def fix_docstring(docstring: str, prefix: str) -> str: + # https://www.python.org/dev/peps/pep-0257/#handling-docstring-indentation + if not docstring: + return "" + lines = lines_with_leading_tabs_expanded(docstring) + # Determine minimum indentation (first line doesn't count): + indent = sys.maxsize + for line in lines[1:]: + stripped = line.lstrip() + if stripped: + indent = min(indent, len(line) - len(stripped)) + # Remove indentation (first line is special): + trimmed = [lines[0].strip()] + if indent < sys.maxsize: + last_line_idx = len(lines) - 2 + for i, line in enumerate(lines[1:]): + stripped_line = line[indent:].rstrip() + if stripped_line or i == last_line_idx: + trimmed.append(prefix + stripped_line) + else: + trimmed.append("") + return "\n".join(trimmed) + + +def get_string_prefix(string: str) -> str: + """ + Pre-conditions: + * assert_is_leaf_string(@string) + + Returns: + @string's prefix (e.g. '', 'r', 'f', or 'rf'). + """ + assert_is_leaf_string(string) + + prefix = "" + prefix_idx = 0 + while string[prefix_idx] in STRING_PREFIX_CHARS: + prefix += string[prefix_idx] + prefix_idx += 1 + + return prefix + + +def assert_is_leaf_string(string: str) -> None: + """ + Checks the pre-condition that @string has the format that you would expect + of `leaf.value` where `leaf` is some Leaf such that `leaf.type == + token.STRING`. A more precise description of the pre-conditions that are + checked are listed below. + + Pre-conditions: + * @string starts with either ', ", ', or " where + `set()` is some subset of `set(STRING_PREFIX_CHARS)`. + * @string ends with a quote character (' or "). + + Raises: + AssertionError(...) if the pre-conditions listed above are not + satisfied. + """ + dquote_idx = string.find('"') + squote_idx = string.find("'") + if -1 in [dquote_idx, squote_idx]: + quote_idx = max(dquote_idx, squote_idx) + else: + quote_idx = min(squote_idx, dquote_idx) + + assert ( + 0 <= quote_idx < len(string) - 1 + ), f"{string!r} is missing a starting quote character (' or \")." + assert string[-1] in ( + "'", + '"', + ), f"{string!r} is missing an ending quote character (' or \")." + assert set(string[:quote_idx]).issubset( + set(STRING_PREFIX_CHARS) + ), f"{set(string[:quote_idx])} is NOT a subset of {set(STRING_PREFIX_CHARS)}." + + +def normalize_string_prefix(s: str) -> str: + """Make all string prefixes lowercase.""" + match = STRING_PREFIX_RE.match(s) + assert match is not None, f"failed to match string {s!r}" + orig_prefix = match.group(1) + new_prefix = ( + orig_prefix.replace("F", "f") + .replace("B", "b") + .replace("U", "") + .replace("u", "") + ) + + # Python syntax guarantees max 2 prefixes and that one of them is "r" + if len(new_prefix) == 2 and "r" != new_prefix[0].lower(): + new_prefix = new_prefix[::-1] + return f"{new_prefix}{match.group(2)}" + + +# Re(gex) does actually cache patterns internally but this still improves +# performance on a long list literal of strings by 5-9% since lru_cache's +# caching overhead is much lower. +@lru_cache(maxsize=64) +def _cached_compile(pattern: str) -> Pattern[str]: + return re.compile(pattern) + + +def normalize_string_quotes(s: str) -> str: + """Prefer double quotes but only if it doesn't cause more escaping. + + Adds or removes backslashes as appropriate. + """ + value = s.lstrip(STRING_PREFIX_CHARS) + if value[:3] == '"""': + return s + + elif value[:3] == "'''": + orig_quote = "'''" + new_quote = '"""' + elif value[0] == '"': + orig_quote = '"' + new_quote = "'" + else: + orig_quote = "'" + new_quote = '"' + first_quote_pos = s.find(orig_quote) + if first_quote_pos == -1: + return s # There's an internal error + + prefix = s[:first_quote_pos] + unescaped_new_quote = _cached_compile(rf"(([^\\]|^)(\\\\)*){new_quote}") + escaped_new_quote = _cached_compile(rf"([^\\]|^)\\((?:\\\\)*){new_quote}") + escaped_orig_quote = _cached_compile(rf"([^\\]|^)\\((?:\\\\)*){orig_quote}") + body = s[first_quote_pos + len(orig_quote) : -len(orig_quote)] + if "r" in prefix.casefold(): + if unescaped_new_quote.search(body): + # There's at least one unescaped new_quote in this raw string + # so converting is impossible + return s + + # Do not introduce or remove backslashes in raw strings + new_body = body + else: + # remove unnecessary escapes + new_body = sub_twice(escaped_new_quote, rf"\1\2{new_quote}", body) + if body != new_body: + # Consider the string without unnecessary escapes as the original + body = new_body + s = f"{prefix}{orig_quote}{body}{orig_quote}" + new_body = sub_twice(escaped_orig_quote, rf"\1\2{orig_quote}", new_body) + new_body = sub_twice(unescaped_new_quote, rf"\1\\{new_quote}", new_body) + + if "f" in prefix.casefold(): + matches = re.findall( + r""" + (?:(? orig_escape_count: + return s # Do not introduce more escaping + + if new_escape_count == orig_escape_count and orig_quote == '"': + return s # Prefer double quotes + + return f"{prefix}{new_quote}{new_body}{new_quote}" + + +def normalize_fstring_quotes( + quote: str, + middles: List[Leaf], + is_raw_fstring: bool, +) -> Tuple[List[Leaf], str]: + """Prefer double quotes but only if it doesn't cause more escaping. + + Adds or removes backslashes as appropriate. + """ + if quote == '"""': + return middles, quote + + elif quote == "'''": + new_quote = '"""' + elif quote == '"': + new_quote = "'" + else: + new_quote = '"' + + unescaped_new_quote = _cached_compile(rf"(([^\\]|^)(\\\\)*){new_quote}") + escaped_new_quote = _cached_compile(rf"([^\\]|^)\\((?:\\\\)*){new_quote}") + escaped_orig_quote = _cached_compile(rf"([^\\]|^)\\((?:\\\\)*){quote}") + if is_raw_fstring: + for middle in middles: + if unescaped_new_quote.search(middle.value): + # There's at least one unescaped new_quote in this raw string + # so converting is impossible + return middles, quote + + # Do not introduce or remove backslashes in raw strings, just use double quote + return middles, '"' + + new_segments = [] + for middle in middles: + segment = middle.value + # remove unnecessary escapes + new_segment = sub_twice(escaped_new_quote, rf"\1\2{new_quote}", segment) + if segment != new_segment: + # Consider the string without unnecessary escapes as the original + middle.value = new_segment + + new_segment = sub_twice(escaped_orig_quote, rf"\1\2{quote}", new_segment) + new_segment = sub_twice(unescaped_new_quote, rf"\1\\{new_quote}", new_segment) + new_segments.append(new_segment) + + if new_quote == '"""' and new_segments[-1].endswith('"'): + # edge case: + new_segments[-1] = new_segments[-1][:-1] + '\\"' + + for middle, new_segment in zip(middles, new_segments): + orig_escape_count = middle.value.count("\\") + new_escape_count = new_segment.count("\\") + + if new_escape_count > orig_escape_count: + return middles, quote # Do not introduce more escaping + + if new_escape_count == orig_escape_count and quote == '"': + return middles, quote # Prefer double quotes + + for middle, new_segment in zip(middles, new_segments): + middle.value = new_segment + + return middles, new_quote + + +def normalize_unicode_escape_sequences(leaf: Leaf) -> None: + """Replace hex codes in Unicode escape sequences with lowercase representation.""" + text = leaf.value + prefix = get_string_prefix(text) + if "r" in prefix.lower(): + return + + def replace(m: Match[str]) -> str: + groups = m.groupdict() + back_slashes = groups["backslashes"] + + if len(back_slashes) % 2 == 0: + return back_slashes + groups["body"] + + if groups["u"]: + # \u + return back_slashes + "u" + groups["u"].lower() + elif groups["U"]: + # \U + return back_slashes + "U" + groups["U"].lower() + elif groups["x"]: + # \x + return back_slashes + "x" + groups["x"].lower() + else: + assert groups["N"], f"Unexpected match: {m}" + # \N{} + return back_slashes + "N{" + groups["N"].upper() + "}" + + leaf.value = re.sub(UNICODE_ESCAPE_RE, replace, text) + + +@lru_cache(maxsize=4096) +def char_width(char: str) -> int: + """Return the width of a single character as it would be displayed in a + terminal or editor (which respects Unicode East Asian Width). + + Full width characters are counted as 2, while half width characters are + counted as 1. Also control characters are counted as 0. + """ + table = WIDTH_TABLE + codepoint = ord(char) + highest = len(table) - 1 + lowest = 0 + idx = highest // 2 + while True: + start_codepoint, end_codepoint, width = table[idx] + if codepoint < start_codepoint: + highest = idx - 1 + elif codepoint > end_codepoint: + lowest = idx + 1 + else: + return 0 if width < 0 else width + if highest < lowest: + break + idx = (highest + lowest) // 2 + return 1 + + +def str_width(line_str: str) -> int: + """Return the width of `line_str` as it would be displayed in a terminal + or editor (which respects Unicode East Asian Width). + + You could utilize this function to determine, for example, if a string + is too wide to display in a terminal or editor. + """ + if line_str.isascii(): + # Fast path for a line consisting of only ASCII characters + return len(line_str) + return sum(map(char_width, line_str)) + + +def count_chars_in_width(line_str: str, max_width: int) -> int: + """Count the number of characters in `line_str` that would fit in a + terminal or editor of `max_width` (which respects Unicode East Asian + Width). + """ + total_width = 0 + for i, char in enumerate(line_str): + width = char_width(char) + if width + total_width > max_width: + return i + total_width += width + return len(line_str) diff --git a/venv/lib/python3.12/site-packages/black/trans.py b/venv/lib/python3.12/site-packages/black/trans.py new file mode 100644 index 0000000000..29a978c6b7 --- /dev/null +++ b/venv/lib/python3.12/site-packages/black/trans.py @@ -0,0 +1,2534 @@ +""" +String transformers that can split and merge strings. +""" + +import re +from abc import ABC, abstractmethod +from collections import defaultdict +from dataclasses import dataclass +from typing import ( + Any, + Callable, + ClassVar, + Collection, + Dict, + Final, + Iterable, + Iterator, + List, + Literal, + Optional, + Sequence, + Set, + Tuple, + TypeVar, + Union, +) + +from mypy_extensions import trait + +from black.comments import contains_pragma_comment +from black.lines import Line, append_leaves +from black.mode import Feature, Mode, Preview +from black.nodes import ( + CLOSING_BRACKETS, + OPENING_BRACKETS, + STANDALONE_COMMENT, + is_empty_lpar, + is_empty_par, + is_empty_rpar, + is_part_of_annotation, + parent_type, + replace_child, + syms, +) +from black.rusty import Err, Ok, Result +from black.strings import ( + assert_is_leaf_string, + count_chars_in_width, + get_string_prefix, + has_triple_quotes, + normalize_string_quotes, + str_width, +) +from blib2to3.pgen2 import token +from blib2to3.pytree import Leaf, Node + + +class CannotTransform(Exception): + """Base class for errors raised by Transformers.""" + + +# types +T = TypeVar("T") +LN = Union[Leaf, Node] +Transformer = Callable[[Line, Collection[Feature], Mode], Iterator[Line]] +Index = int +NodeType = int +ParserState = int +StringID = int +TResult = Result[T, CannotTransform] # (T)ransform Result +TMatchResult = TResult[List[Index]] + +SPLIT_SAFE_CHARS = frozenset(["\u3001", "\u3002", "\uff0c"]) # East Asian stops + + +def TErr(err_msg: str) -> Err[CannotTransform]: + """(T)ransform Err + + Convenience function used when working with the TResult type. + """ + cant_transform = CannotTransform(err_msg) + return Err(cant_transform) + + +def hug_power_op( + line: Line, features: Collection[Feature], mode: Mode +) -> Iterator[Line]: + """A transformer which normalizes spacing around power operators.""" + + # Performance optimization to avoid unnecessary Leaf clones and other ops. + for leaf in line.leaves: + if leaf.type == token.DOUBLESTAR: + break + else: + raise CannotTransform("No doublestar token was found in the line.") + + def is_simple_lookup(index: int, kind: Literal[1, -1]) -> bool: + # Brackets and parentheses indicate calls, subscripts, etc. ... + # basically stuff that doesn't count as "simple". Only a NAME lookup + # or dotted lookup (eg. NAME.NAME) is OK. + if Preview.is_simple_lookup_for_doublestar_expression not in mode: + return original_is_simple_lookup_func(line, index, kind) + + else: + if kind == -1: + return handle_is_simple_look_up_prev( + line, index, {token.RPAR, token.RSQB} + ) + else: + return handle_is_simple_lookup_forward( + line, index, {token.LPAR, token.LSQB} + ) + + def is_simple_operand(index: int, kind: Literal[1, -1]) -> bool: + # An operand is considered "simple" if's a NAME, a numeric CONSTANT, a simple + # lookup (see above), with or without a preceding unary operator. + start = line.leaves[index] + if start.type in {token.NAME, token.NUMBER}: + return is_simple_lookup(index, kind) + + if start.type in {token.PLUS, token.MINUS, token.TILDE}: + if line.leaves[index + 1].type in {token.NAME, token.NUMBER}: + # kind is always one as bases with a preceding unary op will be checked + # for simplicity starting from the next token (so it'll hit the check + # above). + return is_simple_lookup(index + 1, kind=1) + + return False + + new_line = line.clone() + should_hug = False + for idx, leaf in enumerate(line.leaves): + new_leaf = leaf.clone() + if should_hug: + new_leaf.prefix = "" + should_hug = False + + should_hug = ( + (0 < idx < len(line.leaves) - 1) + and leaf.type == token.DOUBLESTAR + and is_simple_operand(idx - 1, kind=-1) + and line.leaves[idx - 1].value != "lambda" + and is_simple_operand(idx + 1, kind=1) + ) + if should_hug: + new_leaf.prefix = "" + + # We have to be careful to make a new line properly: + # - bracket related metadata must be maintained (handled by Line.append) + # - comments need to copied over, updating the leaf IDs they're attached to + new_line.append(new_leaf, preformatted=True) + for comment_leaf in line.comments_after(leaf): + new_line.append(comment_leaf, preformatted=True) + + yield new_line + + +def original_is_simple_lookup_func( + line: Line, index: int, step: Literal[1, -1] +) -> bool: + if step == -1: + disallowed = {token.RPAR, token.RSQB} + else: + disallowed = {token.LPAR, token.LSQB} + + while 0 <= index < len(line.leaves): + current = line.leaves[index] + if current.type in disallowed: + return False + if current.type not in {token.NAME, token.DOT} or current.value == "for": + # If the current token isn't disallowed, we'll assume this is + # simple as only the disallowed tokens are semantically + # attached to this lookup expression we're checking. Also, + # stop early if we hit the 'for' bit of a comprehension. + return True + + index += step + + return True + + +def handle_is_simple_look_up_prev(line: Line, index: int, disallowed: Set[int]) -> bool: + """ + Handling the determination of is_simple_lookup for the lines prior to the doublestar + token. This is required because of the need to isolate the chained expression + to determine the bracket or parenthesis belong to the single expression. + """ + contains_disallowed = False + chain = [] + + while 0 <= index < len(line.leaves): + current = line.leaves[index] + chain.append(current) + if not contains_disallowed and current.type in disallowed: + contains_disallowed = True + if not is_expression_chained(chain): + return not contains_disallowed + + index -= 1 + + return True + + +def handle_is_simple_lookup_forward( + line: Line, index: int, disallowed: Set[int] +) -> bool: + """ + Handling decision is_simple_lookup for the lines behind the doublestar token. + This function is simplified to keep consistent with the prior logic and the forward + case are more straightforward and do not need to care about chained expressions. + """ + while 0 <= index < len(line.leaves): + current = line.leaves[index] + if current.type in disallowed: + return False + if current.type not in {token.NAME, token.DOT} or ( + current.type == token.NAME and current.value == "for" + ): + # If the current token isn't disallowed, we'll assume this is simple as + # only the disallowed tokens are semantically attached to this lookup + # expression we're checking. Also, stop early if we hit the 'for' bit + # of a comprehension. + return True + + index += 1 + + return True + + +def is_expression_chained(chained_leaves: List[Leaf]) -> bool: + """ + Function to determine if the variable is a chained call. + (e.g., foo.lookup, foo().lookup, (foo.lookup())) will be recognized as chained call) + """ + if len(chained_leaves) < 2: + return True + + current_leaf = chained_leaves[-1] + past_leaf = chained_leaves[-2] + + if past_leaf.type == token.NAME: + return current_leaf.type in {token.DOT} + elif past_leaf.type in {token.RPAR, token.RSQB}: + return current_leaf.type in {token.RSQB, token.RPAR} + elif past_leaf.type in {token.LPAR, token.LSQB}: + return current_leaf.type in {token.NAME, token.LPAR, token.LSQB} + else: + return False + + +class StringTransformer(ABC): + """ + An implementation of the Transformer protocol that relies on its + subclasses overriding the template methods `do_match(...)` and + `do_transform(...)`. + + This Transformer works exclusively on strings (for example, by merging + or splitting them). + + The following sections can be found among the docstrings of each concrete + StringTransformer subclass. + + Requirements: + Which requirements must be met of the given Line for this + StringTransformer to be applied? + + Transformations: + If the given Line meets all of the above requirements, which string + transformations can you expect to be applied to it by this + StringTransformer? + + Collaborations: + What contractual agreements does this StringTransformer have with other + StringTransfomers? Such collaborations should be eliminated/minimized + as much as possible. + """ + + __name__: Final = "StringTransformer" + + # Ideally this would be a dataclass, but unfortunately mypyc breaks when used with + # `abc.ABC`. + def __init__(self, line_length: int, normalize_strings: bool) -> None: + self.line_length = line_length + self.normalize_strings = normalize_strings + + @abstractmethod + def do_match(self, line: Line) -> TMatchResult: + """ + Returns: + * Ok(string_indices) such that for each index, `line.leaves[index]` + is our target string if a match was able to be made. For + transformers that don't result in more lines (e.g. StringMerger, + StringParenStripper), multiple matches and transforms are done at + once to reduce the complexity. + OR + * Err(CannotTransform), if no match could be made. + """ + + @abstractmethod + def do_transform( + self, line: Line, string_indices: List[int] + ) -> Iterator[TResult[Line]]: + """ + Yields: + * Ok(new_line) where new_line is the new transformed line. + OR + * Err(CannotTransform) if the transformation failed for some reason. The + `do_match(...)` template method should usually be used to reject + the form of the given Line, but in some cases it is difficult to + know whether or not a Line meets the StringTransformer's + requirements until the transformation is already midway. + + Side Effects: + This method should NOT mutate @line directly, but it MAY mutate the + Line's underlying Node structure. (WARNING: If the underlying Node + structure IS altered, then this method should NOT be allowed to + yield an CannotTransform after that point.) + """ + + def __call__( + self, line: Line, _features: Collection[Feature], _mode: Mode + ) -> Iterator[Line]: + """ + StringTransformer instances have a call signature that mirrors that of + the Transformer type. + + Raises: + CannotTransform(...) if the concrete StringTransformer class is unable + to transform @line. + """ + # Optimization to avoid calling `self.do_match(...)` when the line does + # not contain any string. + if not any(leaf.type == token.STRING for leaf in line.leaves): + raise CannotTransform("There are no strings in this line.") + + match_result = self.do_match(line) + + if isinstance(match_result, Err): + cant_transform = match_result.err() + raise CannotTransform( + f"The string transformer {self.__class__.__name__} does not recognize" + " this line as one that it can transform." + ) from cant_transform + + string_indices = match_result.ok() + + for line_result in self.do_transform(line, string_indices): + if isinstance(line_result, Err): + cant_transform = line_result.err() + raise CannotTransform( + "StringTransformer failed while attempting to transform string." + ) from cant_transform + line = line_result.ok() + yield line + + +@dataclass +class CustomSplit: + """A custom (i.e. manual) string split. + + A single CustomSplit instance represents a single substring. + + Examples: + Consider the following string: + ``` + "Hi there friend." + " This is a custom" + f" string {split}." + ``` + + This string will correspond to the following three CustomSplit instances: + ``` + CustomSplit(False, 16) + CustomSplit(False, 17) + CustomSplit(True, 16) + ``` + """ + + has_prefix: bool + break_idx: int + + +@trait +class CustomSplitMapMixin: + """ + This mixin class is used to map merged strings to a sequence of + CustomSplits, which will then be used to re-split the strings iff none of + the resultant substrings go over the configured max line length. + """ + + _Key: ClassVar = Tuple[StringID, str] + _CUSTOM_SPLIT_MAP: ClassVar[Dict[_Key, Tuple[CustomSplit, ...]]] = defaultdict( + tuple + ) + + @staticmethod + def _get_key(string: str) -> "CustomSplitMapMixin._Key": + """ + Returns: + A unique identifier that is used internally to map @string to a + group of custom splits. + """ + return (id(string), string) + + def add_custom_splits( + self, string: str, custom_splits: Iterable[CustomSplit] + ) -> None: + """Custom Split Map Setter Method + + Side Effects: + Adds a mapping from @string to the custom splits @custom_splits. + """ + key = self._get_key(string) + self._CUSTOM_SPLIT_MAP[key] = tuple(custom_splits) + + def pop_custom_splits(self, string: str) -> List[CustomSplit]: + """Custom Split Map Getter Method + + Returns: + * A list of the custom splits that are mapped to @string, if any + exist. + OR + * [], otherwise. + + Side Effects: + Deletes the mapping between @string and its associated custom + splits (which are returned to the caller). + """ + key = self._get_key(string) + + custom_splits = self._CUSTOM_SPLIT_MAP[key] + del self._CUSTOM_SPLIT_MAP[key] + + return list(custom_splits) + + def has_custom_splits(self, string: str) -> bool: + """ + Returns: + True iff @string is associated with a set of custom splits. + """ + key = self._get_key(string) + return key in self._CUSTOM_SPLIT_MAP + + +class StringMerger(StringTransformer, CustomSplitMapMixin): + """StringTransformer that merges strings together. + + Requirements: + (A) The line contains adjacent strings such that ALL of the validation checks + listed in StringMerger._validate_msg(...)'s docstring pass. + OR + (B) The line contains a string which uses line continuation backslashes. + + Transformations: + Depending on which of the two requirements above where met, either: + + (A) The string group associated with the target string is merged. + OR + (B) All line-continuation backslashes are removed from the target string. + + Collaborations: + StringMerger provides custom split information to StringSplitter. + """ + + def do_match(self, line: Line) -> TMatchResult: + LL = line.leaves + + is_valid_index = is_valid_index_factory(LL) + + string_indices = [] + idx = 0 + while is_valid_index(idx): + leaf = LL[idx] + if ( + leaf.type == token.STRING + and is_valid_index(idx + 1) + and LL[idx + 1].type == token.STRING + ): + # Let's check if the string group contains an inline comment + # If we have a comment inline, we don't merge the strings + contains_comment = False + i = idx + while is_valid_index(i): + if LL[i].type != token.STRING: + break + if line.comments_after(LL[i]): + contains_comment = True + break + i += 1 + + if not is_part_of_annotation(leaf) and not contains_comment: + string_indices.append(idx) + + # Advance to the next non-STRING leaf. + idx += 2 + while is_valid_index(idx) and LL[idx].type == token.STRING: + idx += 1 + + elif leaf.type == token.STRING and "\\\n" in leaf.value: + string_indices.append(idx) + # Advance to the next non-STRING leaf. + idx += 1 + while is_valid_index(idx) and LL[idx].type == token.STRING: + idx += 1 + + else: + idx += 1 + + if string_indices: + return Ok(string_indices) + else: + return TErr("This line has no strings that need merging.") + + def do_transform( + self, line: Line, string_indices: List[int] + ) -> Iterator[TResult[Line]]: + new_line = line + + rblc_result = self._remove_backslash_line_continuation_chars( + new_line, string_indices + ) + if isinstance(rblc_result, Ok): + new_line = rblc_result.ok() + + msg_result = self._merge_string_group(new_line, string_indices) + if isinstance(msg_result, Ok): + new_line = msg_result.ok() + + if isinstance(rblc_result, Err) and isinstance(msg_result, Err): + msg_cant_transform = msg_result.err() + rblc_cant_transform = rblc_result.err() + cant_transform = CannotTransform( + "StringMerger failed to merge any strings in this line." + ) + + # Chain the errors together using `__cause__`. + msg_cant_transform.__cause__ = rblc_cant_transform + cant_transform.__cause__ = msg_cant_transform + + yield Err(cant_transform) + else: + yield Ok(new_line) + + @staticmethod + def _remove_backslash_line_continuation_chars( + line: Line, string_indices: List[int] + ) -> TResult[Line]: + """ + Merge strings that were split across multiple lines using + line-continuation backslashes. + + Returns: + Ok(new_line), if @line contains backslash line-continuation + characters. + OR + Err(CannotTransform), otherwise. + """ + LL = line.leaves + + indices_to_transform = [] + for string_idx in string_indices: + string_leaf = LL[string_idx] + if ( + string_leaf.type == token.STRING + and "\\\n" in string_leaf.value + and not has_triple_quotes(string_leaf.value) + ): + indices_to_transform.append(string_idx) + + if not indices_to_transform: + return TErr( + "Found no string leaves that contain backslash line continuation" + " characters." + ) + + new_line = line.clone() + new_line.comments = line.comments.copy() + append_leaves(new_line, line, LL) + + for string_idx in indices_to_transform: + new_string_leaf = new_line.leaves[string_idx] + new_string_leaf.value = new_string_leaf.value.replace("\\\n", "") + + return Ok(new_line) + + def _merge_string_group( + self, line: Line, string_indices: List[int] + ) -> TResult[Line]: + """ + Merges string groups (i.e. set of adjacent strings). + + Each index from `string_indices` designates one string group's first + leaf in `line.leaves`. + + Returns: + Ok(new_line), if ALL of the validation checks found in + _validate_msg(...) pass. + OR + Err(CannotTransform), otherwise. + """ + LL = line.leaves + + is_valid_index = is_valid_index_factory(LL) + + # A dict of {string_idx: tuple[num_of_strings, string_leaf]}. + merged_string_idx_dict: Dict[int, Tuple[int, Leaf]] = {} + for string_idx in string_indices: + vresult = self._validate_msg(line, string_idx) + if isinstance(vresult, Err): + continue + merged_string_idx_dict[string_idx] = self._merge_one_string_group( + LL, string_idx, is_valid_index + ) + + if not merged_string_idx_dict: + return TErr("No string group is merged") + + # Build the final line ('new_line') that this method will later return. + new_line = line.clone() + previous_merged_string_idx = -1 + previous_merged_num_of_strings = -1 + for i, leaf in enumerate(LL): + if i in merged_string_idx_dict: + previous_merged_string_idx = i + previous_merged_num_of_strings, string_leaf = merged_string_idx_dict[i] + new_line.append(string_leaf) + + if ( + previous_merged_string_idx + <= i + < previous_merged_string_idx + previous_merged_num_of_strings + ): + for comment_leaf in line.comments_after(LL[i]): + new_line.append(comment_leaf, preformatted=True) + continue + + append_leaves(new_line, line, [leaf]) + + return Ok(new_line) + + def _merge_one_string_group( + self, LL: List[Leaf], string_idx: int, is_valid_index: Callable[[int], bool] + ) -> Tuple[int, Leaf]: + """ + Merges one string group where the first string in the group is + `LL[string_idx]`. + + Returns: + A tuple of `(num_of_strings, leaf)` where `num_of_strings` is the + number of strings merged and `leaf` is the newly merged string + to be replaced in the new line. + """ + # If the string group is wrapped inside an Atom node, we must make sure + # to later replace that Atom with our new (merged) string leaf. + atom_node = LL[string_idx].parent + + # We will place BREAK_MARK in between every two substrings that we + # merge. We will then later go through our final result and use the + # various instances of BREAK_MARK we find to add the right values to + # the custom split map. + BREAK_MARK = "@@@@@ BLACK BREAKPOINT MARKER @@@@@" + + QUOTE = LL[string_idx].value[-1] + + def make_naked(string: str, string_prefix: str) -> str: + """Strip @string (i.e. make it a "naked" string) + + Pre-conditions: + * assert_is_leaf_string(@string) + + Returns: + A string that is identical to @string except that + @string_prefix has been stripped, the surrounding QUOTE + characters have been removed, and any remaining QUOTE + characters have been escaped. + """ + assert_is_leaf_string(string) + if "f" in string_prefix: + f_expressions = ( + string[span[0] + 1 : span[1] - 1] # +-1 to get rid of curly braces + for span in iter_fexpr_spans(string) + ) + debug_expressions_contain_visible_quotes = any( + re.search(r".*[\'\"].*(?= 0 + ), "Logic error while filling the custom string breakpoint cache." + + temp_string = temp_string[mark_idx + len(BREAK_MARK) :] + breakpoint_idx = mark_idx + (len(prefix) if has_prefix else 0) + 1 + custom_splits.append(CustomSplit(has_prefix, breakpoint_idx)) + + string_leaf = Leaf(token.STRING, S_leaf.value.replace(BREAK_MARK, "")) + + if atom_node is not None: + # If not all children of the atom node are merged (this can happen + # when there is a standalone comment in the middle) ... + if non_string_idx - string_idx < len(atom_node.children): + # We need to replace the old STRING leaves with the new string leaf. + first_child_idx = LL[string_idx].remove() + for idx in range(string_idx + 1, non_string_idx): + LL[idx].remove() + if first_child_idx is not None: + atom_node.insert_child(first_child_idx, string_leaf) + else: + # Else replace the atom node with the new string leaf. + replace_child(atom_node, string_leaf) + + self.add_custom_splits(string_leaf.value, custom_splits) + return num_of_strings, string_leaf + + @staticmethod + def _validate_msg(line: Line, string_idx: int) -> TResult[None]: + """Validate (M)erge (S)tring (G)roup + + Transform-time string validation logic for _merge_string_group(...). + + Returns: + * Ok(None), if ALL validation checks (listed below) pass. + OR + * Err(CannotTransform), if any of the following are true: + - The target string group does not contain ANY stand-alone comments. + - The target string is not in a string group (i.e. it has no + adjacent strings). + - The string group has more than one inline comment. + - The string group has an inline comment that appears to be a pragma. + - The set of all string prefixes in the string group is of + length greater than one and is not equal to {"", "f"}. + - The string group consists of raw strings. + - The string group is stringified type annotations. We don't want to + process stringified type annotations since pyright doesn't support + them spanning multiple string values. (NOTE: mypy, pytype, pyre do + support them, so we can change if pyright also gains support in the + future. See https://github.com/microsoft/pyright/issues/4359.) + """ + # We first check for "inner" stand-alone comments (i.e. stand-alone + # comments that have a string leaf before them AND after them). + for inc in [1, -1]: + i = string_idx + found_sa_comment = False + is_valid_index = is_valid_index_factory(line.leaves) + while is_valid_index(i) and line.leaves[i].type in [ + token.STRING, + STANDALONE_COMMENT, + ]: + if line.leaves[i].type == STANDALONE_COMMENT: + found_sa_comment = True + elif found_sa_comment: + return TErr( + "StringMerger does NOT merge string groups which contain " + "stand-alone comments." + ) + + i += inc + + num_of_inline_string_comments = 0 + set_of_prefixes = set() + num_of_strings = 0 + for leaf in line.leaves[string_idx:]: + if leaf.type != token.STRING: + # If the string group is trailed by a comma, we count the + # comments trailing the comma to be one of the string group's + # comments. + if leaf.type == token.COMMA and id(leaf) in line.comments: + num_of_inline_string_comments += 1 + break + + if has_triple_quotes(leaf.value): + return TErr("StringMerger does NOT merge multiline strings.") + + num_of_strings += 1 + prefix = get_string_prefix(leaf.value).lower() + if "r" in prefix: + return TErr("StringMerger does NOT merge raw strings.") + + set_of_prefixes.add(prefix) + + if id(leaf) in line.comments: + num_of_inline_string_comments += 1 + if contains_pragma_comment(line.comments[id(leaf)]): + return TErr("Cannot merge strings which have pragma comments.") + + if num_of_strings < 2: + return TErr( + f"Not enough strings to merge (num_of_strings={num_of_strings})." + ) + + if num_of_inline_string_comments > 1: + return TErr( + f"Too many inline string comments ({num_of_inline_string_comments})." + ) + + if len(set_of_prefixes) > 1 and set_of_prefixes != {"", "f"}: + return TErr(f"Too many different prefixes ({set_of_prefixes}).") + + return Ok(None) + + +class StringParenStripper(StringTransformer): + """StringTransformer that strips surrounding parentheses from strings. + + Requirements: + The line contains a string which is surrounded by parentheses and: + - The target string is NOT the only argument to a function call. + - The target string is NOT a "pointless" string. + - If the target string contains a PERCENT, the brackets are not + preceded or followed by an operator with higher precedence than + PERCENT. + + Transformations: + The parentheses mentioned in the 'Requirements' section are stripped. + + Collaborations: + StringParenStripper has its own inherent usefulness, but it is also + relied on to clean up the parentheses created by StringParenWrapper (in + the event that they are no longer needed). + """ + + def do_match(self, line: Line) -> TMatchResult: + LL = line.leaves + + is_valid_index = is_valid_index_factory(LL) + + string_indices = [] + + idx = -1 + while True: + idx += 1 + if idx >= len(LL): + break + leaf = LL[idx] + + # Should be a string... + if leaf.type != token.STRING: + continue + + # If this is a "pointless" string... + if ( + leaf.parent + and leaf.parent.parent + and leaf.parent.parent.type == syms.simple_stmt + ): + continue + + # Should be preceded by a non-empty LPAR... + if ( + not is_valid_index(idx - 1) + or LL[idx - 1].type != token.LPAR + or is_empty_lpar(LL[idx - 1]) + ): + continue + + # That LPAR should NOT be preceded by a function name or a closing + # bracket (which could be a function which returns a function or a + # list/dictionary that contains a function)... + if is_valid_index(idx - 2) and ( + LL[idx - 2].type == token.NAME or LL[idx - 2].type in CLOSING_BRACKETS + ): + continue + + string_idx = idx + + # Skip the string trailer, if one exists. + string_parser = StringParser() + next_idx = string_parser.parse(LL, string_idx) + + # if the leaves in the parsed string include a PERCENT, we need to + # make sure the initial LPAR is NOT preceded by an operator with + # higher or equal precedence to PERCENT + if is_valid_index(idx - 2): + # mypy can't quite follow unless we name this + before_lpar = LL[idx - 2] + if token.PERCENT in {leaf.type for leaf in LL[idx - 1 : next_idx]} and ( + ( + before_lpar.type + in { + token.STAR, + token.AT, + token.SLASH, + token.DOUBLESLASH, + token.PERCENT, + token.TILDE, + token.DOUBLESTAR, + token.AWAIT, + token.LSQB, + token.LPAR, + } + ) + or ( + # only unary PLUS/MINUS + before_lpar.parent + and before_lpar.parent.type == syms.factor + and (before_lpar.type in {token.PLUS, token.MINUS}) + ) + ): + continue + + # Should be followed by a non-empty RPAR... + if ( + is_valid_index(next_idx) + and LL[next_idx].type == token.RPAR + and not is_empty_rpar(LL[next_idx]) + ): + # That RPAR should NOT be followed by anything with higher + # precedence than PERCENT + if is_valid_index(next_idx + 1) and LL[next_idx + 1].type in { + token.DOUBLESTAR, + token.LSQB, + token.LPAR, + token.DOT, + }: + continue + + string_indices.append(string_idx) + idx = string_idx + while idx < len(LL) - 1 and LL[idx + 1].type == token.STRING: + idx += 1 + + if string_indices: + return Ok(string_indices) + return TErr("This line has no strings wrapped in parens.") + + def do_transform( + self, line: Line, string_indices: List[int] + ) -> Iterator[TResult[Line]]: + LL = line.leaves + + string_and_rpar_indices: List[int] = [] + for string_idx in string_indices: + string_parser = StringParser() + rpar_idx = string_parser.parse(LL, string_idx) + + should_transform = True + for leaf in (LL[string_idx - 1], LL[rpar_idx]): + if line.comments_after(leaf): + # Should not strip parentheses which have comments attached + # to them. + should_transform = False + break + if should_transform: + string_and_rpar_indices.extend((string_idx, rpar_idx)) + + if string_and_rpar_indices: + yield Ok(self._transform_to_new_line(line, string_and_rpar_indices)) + else: + yield Err( + CannotTransform("All string groups have comments attached to them.") + ) + + def _transform_to_new_line( + self, line: Line, string_and_rpar_indices: List[int] + ) -> Line: + LL = line.leaves + + new_line = line.clone() + new_line.comments = line.comments.copy() + + previous_idx = -1 + # We need to sort the indices, since string_idx and its matching + # rpar_idx may not come in order, e.g. in + # `("outer" % ("inner".join(items)))`, the "inner" string's + # string_idx is smaller than "outer" string's rpar_idx. + for idx in sorted(string_and_rpar_indices): + leaf = LL[idx] + lpar_or_rpar_idx = idx - 1 if leaf.type == token.STRING else idx + append_leaves(new_line, line, LL[previous_idx + 1 : lpar_or_rpar_idx]) + if leaf.type == token.STRING: + string_leaf = Leaf(token.STRING, LL[idx].value) + LL[lpar_or_rpar_idx].remove() # Remove lpar. + replace_child(LL[idx], string_leaf) + new_line.append(string_leaf) + # replace comments + old_comments = new_line.comments.pop(id(LL[idx]), []) + new_line.comments.setdefault(id(string_leaf), []).extend(old_comments) + else: + LL[lpar_or_rpar_idx].remove() # This is a rpar. + + previous_idx = idx + + # Append the leaves after the last idx: + append_leaves(new_line, line, LL[idx + 1 :]) + + return new_line + + +class BaseStringSplitter(StringTransformer): + """ + Abstract class for StringTransformers which transform a Line's strings by splitting + them or placing them on their own lines where necessary to avoid going over + the configured line length. + + Requirements: + * The target string value is responsible for the line going over the + line length limit. It follows that after all of black's other line + split methods have been exhausted, this line (or one of the resulting + lines after all line splits are performed) would still be over the + line_length limit unless we split this string. + AND + + * The target string is NOT a "pointless" string (i.e. a string that has + no parent or siblings). + AND + + * The target string is not followed by an inline comment that appears + to be a pragma. + AND + + * The target string is not a multiline (i.e. triple-quote) string. + """ + + STRING_OPERATORS: Final = [ + token.EQEQUAL, + token.GREATER, + token.GREATEREQUAL, + token.LESS, + token.LESSEQUAL, + token.NOTEQUAL, + token.PERCENT, + token.PLUS, + token.STAR, + ] + + @abstractmethod + def do_splitter_match(self, line: Line) -> TMatchResult: + """ + BaseStringSplitter asks its clients to override this method instead of + `StringTransformer.do_match(...)`. + + Follows the same protocol as `StringTransformer.do_match(...)`. + + Refer to `help(StringTransformer.do_match)` for more information. + """ + + def do_match(self, line: Line) -> TMatchResult: + match_result = self.do_splitter_match(line) + if isinstance(match_result, Err): + return match_result + + string_indices = match_result.ok() + assert len(string_indices) == 1, ( + f"{self.__class__.__name__} should only find one match at a time, found" + f" {len(string_indices)}" + ) + string_idx = string_indices[0] + vresult = self._validate(line, string_idx) + if isinstance(vresult, Err): + return vresult + + return match_result + + def _validate(self, line: Line, string_idx: int) -> TResult[None]: + """ + Checks that @line meets all of the requirements listed in this classes' + docstring. Refer to `help(BaseStringSplitter)` for a detailed + description of those requirements. + + Returns: + * Ok(None), if ALL of the requirements are met. + OR + * Err(CannotTransform), if ANY of the requirements are NOT met. + """ + LL = line.leaves + + string_leaf = LL[string_idx] + + max_string_length = self._get_max_string_length(line, string_idx) + if len(string_leaf.value) <= max_string_length: + return TErr( + "The string itself is not what is causing this line to be too long." + ) + + if not string_leaf.parent or [L.type for L in string_leaf.parent.children] == [ + token.STRING, + token.NEWLINE, + ]: + return TErr( + f"This string ({string_leaf.value}) appears to be pointless (i.e. has" + " no parent)." + ) + + if id(line.leaves[string_idx]) in line.comments and contains_pragma_comment( + line.comments[id(line.leaves[string_idx])] + ): + return TErr( + "Line appears to end with an inline pragma comment. Splitting the line" + " could modify the pragma's behavior." + ) + + if has_triple_quotes(string_leaf.value): + return TErr("We cannot split multiline strings.") + + return Ok(None) + + def _get_max_string_length(self, line: Line, string_idx: int) -> int: + """ + Calculates the max string length used when attempting to determine + whether or not the target string is responsible for causing the line to + go over the line length limit. + + WARNING: This method is tightly coupled to both StringSplitter and + (especially) StringParenWrapper. There is probably a better way to + accomplish what is being done here. + + Returns: + max_string_length: such that `line.leaves[string_idx].value > + max_string_length` implies that the target string IS responsible + for causing this line to exceed the line length limit. + """ + LL = line.leaves + + is_valid_index = is_valid_index_factory(LL) + + # We use the shorthand "WMA4" in comments to abbreviate "We must + # account for". When giving examples, we use STRING to mean some/any + # valid string. + # + # Finally, we use the following convenience variables: + # + # P: The leaf that is before the target string leaf. + # N: The leaf that is after the target string leaf. + # NN: The leaf that is after N. + + # WMA4 the whitespace at the beginning of the line. + offset = line.depth * 4 + + if is_valid_index(string_idx - 1): + p_idx = string_idx - 1 + if ( + LL[string_idx - 1].type == token.LPAR + and LL[string_idx - 1].value == "" + and string_idx >= 2 + ): + # If the previous leaf is an empty LPAR placeholder, we should skip it. + p_idx -= 1 + + P = LL[p_idx] + if P.type in self.STRING_OPERATORS: + # WMA4 a space and a string operator (e.g. `+ STRING` or `== STRING`). + offset += len(str(P)) + 1 + + if P.type == token.COMMA: + # WMA4 a space, a comma, and a closing bracket [e.g. `), STRING`]. + offset += 3 + + if P.type in [token.COLON, token.EQUAL, token.PLUSEQUAL, token.NAME]: + # This conditional branch is meant to handle dictionary keys, + # variable assignments, 'return STRING' statement lines, and + # 'else STRING' ternary expression lines. + + # WMA4 a single space. + offset += 1 + + # WMA4 the lengths of any leaves that came before that space, + # but after any closing bracket before that space. + for leaf in reversed(LL[: p_idx + 1]): + offset += len(str(leaf)) + if leaf.type in CLOSING_BRACKETS: + break + + if is_valid_index(string_idx + 1): + N = LL[string_idx + 1] + if N.type == token.RPAR and N.value == "" and len(LL) > string_idx + 2: + # If the next leaf is an empty RPAR placeholder, we should skip it. + N = LL[string_idx + 2] + + if N.type == token.COMMA: + # WMA4 a single comma at the end of the string (e.g `STRING,`). + offset += 1 + + if is_valid_index(string_idx + 2): + NN = LL[string_idx + 2] + + if N.type == token.DOT and NN.type == token.NAME: + # This conditional branch is meant to handle method calls invoked + # off of a string literal up to and including the LPAR character. + + # WMA4 the '.' character. + offset += 1 + + if ( + is_valid_index(string_idx + 3) + and LL[string_idx + 3].type == token.LPAR + ): + # WMA4 the left parenthesis character. + offset += 1 + + # WMA4 the length of the method's name. + offset += len(NN.value) + + has_comments = False + for comment_leaf in line.comments_after(LL[string_idx]): + if not has_comments: + has_comments = True + # WMA4 two spaces before the '#' character. + offset += 2 + + # WMA4 the length of the inline comment. + offset += len(comment_leaf.value) + + max_string_length = count_chars_in_width(str(line), self.line_length - offset) + return max_string_length + + @staticmethod + def _prefer_paren_wrap_match(LL: List[Leaf]) -> Optional[int]: + """ + Returns: + string_idx such that @LL[string_idx] is equal to our target (i.e. + matched) string, if this line matches the "prefer paren wrap" statement + requirements listed in the 'Requirements' section of the StringParenWrapper + class's docstring. + OR + None, otherwise. + """ + # The line must start with a string. + if LL[0].type != token.STRING: + return None + + matching_nodes = [ + syms.listmaker, + syms.dictsetmaker, + syms.testlist_gexp, + ] + # If the string is an immediate child of a list/set/tuple literal... + if ( + parent_type(LL[0]) in matching_nodes + or parent_type(LL[0].parent) in matching_nodes + ): + # And the string is surrounded by commas (or is the first/last child)... + prev_sibling = LL[0].prev_sibling + next_sibling = LL[0].next_sibling + if ( + not prev_sibling + and not next_sibling + and parent_type(LL[0]) == syms.atom + ): + # If it's an atom string, we need to check the parent atom's siblings. + parent = LL[0].parent + assert parent is not None # For type checkers. + prev_sibling = parent.prev_sibling + next_sibling = parent.next_sibling + if (not prev_sibling or prev_sibling.type == token.COMMA) and ( + not next_sibling or next_sibling.type == token.COMMA + ): + return 0 + + return None + + +def iter_fexpr_spans(s: str) -> Iterator[Tuple[int, int]]: + """ + Yields spans corresponding to expressions in a given f-string. + Spans are half-open ranges (left inclusive, right exclusive). + Assumes the input string is a valid f-string, but will not crash if the input + string is invalid. + """ + stack: List[int] = [] # our curly paren stack + i = 0 + while i < len(s): + if s[i] == "{": + # if we're in a string part of the f-string, ignore escaped curly braces + if not stack and i + 1 < len(s) and s[i + 1] == "{": + i += 2 + continue + stack.append(i) + i += 1 + continue + + if s[i] == "}": + if not stack: + i += 1 + continue + j = stack.pop() + # we've made it back out of the expression! yield the span + if not stack: + yield (j, i + 1) + i += 1 + continue + + # if we're in an expression part of the f-string, fast-forward through strings + # note that backslashes are not legal in the expression portion of f-strings + if stack: + delim = None + if s[i : i + 3] in ("'''", '"""'): + delim = s[i : i + 3] + elif s[i] in ("'", '"'): + delim = s[i] + if delim: + i += len(delim) + while i < len(s) and s[i : i + len(delim)] != delim: + i += 1 + i += len(delim) + continue + i += 1 + + +def fstring_contains_expr(s: str) -> bool: + return any(iter_fexpr_spans(s)) + + +def _toggle_fexpr_quotes(fstring: str, old_quote: str) -> str: + """ + Toggles quotes used in f-string expressions that are `old_quote`. + + f-string expressions can't contain backslashes, so we need to toggle the + quotes if the f-string itself will end up using the same quote. We can + simply toggle without escaping because, quotes can't be reused in f-string + expressions. They will fail to parse. + + NOTE: If PEP 701 is accepted, above statement will no longer be true. + Though if quotes can be reused, we can simply reuse them without updates or + escaping, once Black figures out how to parse the new grammar. + """ + new_quote = "'" if old_quote == '"' else '"' + parts = [] + previous_index = 0 + for start, end in iter_fexpr_spans(fstring): + parts.append(fstring[previous_index:start]) + parts.append(fstring[start:end].replace(old_quote, new_quote)) + previous_index = end + parts.append(fstring[previous_index:]) + return "".join(parts) + + +class StringSplitter(BaseStringSplitter, CustomSplitMapMixin): + """ + StringTransformer that splits "atom" strings (i.e. strings which exist on + lines by themselves). + + Requirements: + * The line consists ONLY of a single string (possibly prefixed by a + string operator [e.g. '+' or '==']), MAYBE a string trailer, and MAYBE + a trailing comma. + AND + * All of the requirements listed in BaseStringSplitter's docstring. + + Transformations: + The string mentioned in the 'Requirements' section is split into as + many substrings as necessary to adhere to the configured line length. + + In the final set of substrings, no substring should be smaller than + MIN_SUBSTR_SIZE characters. + + The string will ONLY be split on spaces (i.e. each new substring should + start with a space). Note that the string will NOT be split on a space + which is escaped with a backslash. + + If the string is an f-string, it will NOT be split in the middle of an + f-expression (e.g. in f"FooBar: {foo() if x else bar()}", {foo() if x + else bar()} is an f-expression). + + If the string that is being split has an associated set of custom split + records and those custom splits will NOT result in any line going over + the configured line length, those custom splits are used. Otherwise the + string is split as late as possible (from left-to-right) while still + adhering to the transformation rules listed above. + + Collaborations: + StringSplitter relies on StringMerger to construct the appropriate + CustomSplit objects and add them to the custom split map. + """ + + MIN_SUBSTR_SIZE: Final = 6 + + def do_splitter_match(self, line: Line) -> TMatchResult: + LL = line.leaves + + if self._prefer_paren_wrap_match(LL) is not None: + return TErr("Line needs to be wrapped in parens first.") + + is_valid_index = is_valid_index_factory(LL) + + idx = 0 + + # The first two leaves MAY be the 'not in' keywords... + if ( + is_valid_index(idx) + and is_valid_index(idx + 1) + and [LL[idx].type, LL[idx + 1].type] == [token.NAME, token.NAME] + and str(LL[idx]) + str(LL[idx + 1]) == "not in" + ): + idx += 2 + # Else the first leaf MAY be a string operator symbol or the 'in' keyword... + elif is_valid_index(idx) and ( + LL[idx].type in self.STRING_OPERATORS + or LL[idx].type == token.NAME + and str(LL[idx]) == "in" + ): + idx += 1 + + # The next/first leaf MAY be an empty LPAR... + if is_valid_index(idx) and is_empty_lpar(LL[idx]): + idx += 1 + + # The next/first leaf MUST be a string... + if not is_valid_index(idx) or LL[idx].type != token.STRING: + return TErr("Line does not start with a string.") + + string_idx = idx + + # Skip the string trailer, if one exists. + string_parser = StringParser() + idx = string_parser.parse(LL, string_idx) + + # That string MAY be followed by an empty RPAR... + if is_valid_index(idx) and is_empty_rpar(LL[idx]): + idx += 1 + + # That string / empty RPAR leaf MAY be followed by a comma... + if is_valid_index(idx) and LL[idx].type == token.COMMA: + idx += 1 + + # But no more leaves are allowed... + if is_valid_index(idx): + return TErr("This line does not end with a string.") + + return Ok([string_idx]) + + def do_transform( + self, line: Line, string_indices: List[int] + ) -> Iterator[TResult[Line]]: + LL = line.leaves + assert len(string_indices) == 1, ( + f"{self.__class__.__name__} should only find one match at a time, found" + f" {len(string_indices)}" + ) + string_idx = string_indices[0] + + QUOTE = LL[string_idx].value[-1] + + is_valid_index = is_valid_index_factory(LL) + insert_str_child = insert_str_child_factory(LL[string_idx]) + + prefix = get_string_prefix(LL[string_idx].value).lower() + + # We MAY choose to drop the 'f' prefix from substrings that don't + # contain any f-expressions, but ONLY if the original f-string + # contains at least one f-expression. Otherwise, we will alter the AST + # of the program. + drop_pointless_f_prefix = ("f" in prefix) and fstring_contains_expr( + LL[string_idx].value + ) + + first_string_line = True + + string_op_leaves = self._get_string_operator_leaves(LL) + string_op_leaves_length = ( + sum(len(str(prefix_leaf)) for prefix_leaf in string_op_leaves) + 1 + if string_op_leaves + else 0 + ) + + def maybe_append_string_operators(new_line: Line) -> None: + """ + Side Effects: + If @line starts with a string operator and this is the first + line we are constructing, this function appends the string + operator to @new_line and replaces the old string operator leaf + in the node structure. Otherwise this function does nothing. + """ + maybe_prefix_leaves = string_op_leaves if first_string_line else [] + for i, prefix_leaf in enumerate(maybe_prefix_leaves): + replace_child(LL[i], prefix_leaf) + new_line.append(prefix_leaf) + + ends_with_comma = ( + is_valid_index(string_idx + 1) and LL[string_idx + 1].type == token.COMMA + ) + + def max_last_string_column() -> int: + """ + Returns: + The max allowed width of the string value used for the last + line we will construct. Note that this value means the width + rather than the number of characters (e.g., many East Asian + characters expand to two columns). + """ + result = self.line_length + result -= line.depth * 4 + result -= 1 if ends_with_comma else 0 + result -= string_op_leaves_length + return result + + # --- Calculate Max Break Width (for string value) + # We start with the line length limit + max_break_width = self.line_length + # The last index of a string of length N is N-1. + max_break_width -= 1 + # Leading whitespace is not present in the string value (e.g. Leaf.value). + max_break_width -= line.depth * 4 + if max_break_width < 0: + yield TErr( + f"Unable to split {LL[string_idx].value} at such high of a line depth:" + f" {line.depth}" + ) + return + + # Check if StringMerger registered any custom splits. + custom_splits = self.pop_custom_splits(LL[string_idx].value) + # We use them ONLY if none of them would produce lines that exceed the + # line limit. + use_custom_breakpoints = bool( + custom_splits + and all(csplit.break_idx <= max_break_width for csplit in custom_splits) + ) + + # Temporary storage for the remaining chunk of the string line that + # can't fit onto the line currently being constructed. + rest_value = LL[string_idx].value + + def more_splits_should_be_made() -> bool: + """ + Returns: + True iff `rest_value` (the remaining string value from the last + split), should be split again. + """ + if use_custom_breakpoints: + return len(custom_splits) > 1 + else: + return str_width(rest_value) > max_last_string_column() + + string_line_results: List[Ok[Line]] = [] + while more_splits_should_be_made(): + if use_custom_breakpoints: + # Custom User Split (manual) + csplit = custom_splits.pop(0) + break_idx = csplit.break_idx + else: + # Algorithmic Split (automatic) + max_bidx = ( + count_chars_in_width(rest_value, max_break_width) + - string_op_leaves_length + ) + maybe_break_idx = self._get_break_idx(rest_value, max_bidx) + if maybe_break_idx is None: + # If we are unable to algorithmically determine a good split + # and this string has custom splits registered to it, we + # fall back to using them--which means we have to start + # over from the beginning. + if custom_splits: + rest_value = LL[string_idx].value + string_line_results = [] + first_string_line = True + use_custom_breakpoints = True + continue + + # Otherwise, we stop splitting here. + break + + break_idx = maybe_break_idx + + # --- Construct `next_value` + next_value = rest_value[:break_idx] + QUOTE + + # HACK: The following 'if' statement is a hack to fix the custom + # breakpoint index in the case of either: (a) substrings that were + # f-strings but will have the 'f' prefix removed OR (b) substrings + # that were not f-strings but will now become f-strings because of + # redundant use of the 'f' prefix (i.e. none of the substrings + # contain f-expressions but one or more of them had the 'f' prefix + # anyway; in which case, we will prepend 'f' to _all_ substrings). + # + # There is probably a better way to accomplish what is being done + # here... + # + # If this substring is an f-string, we _could_ remove the 'f' + # prefix, and the current custom split did NOT originally use a + # prefix... + if ( + use_custom_breakpoints + and not csplit.has_prefix + and ( + # `next_value == prefix + QUOTE` happens when the custom + # split is an empty string. + next_value == prefix + QUOTE + or next_value != self._normalize_f_string(next_value, prefix) + ) + ): + # Then `csplit.break_idx` will be off by one after removing + # the 'f' prefix. + break_idx += 1 + next_value = rest_value[:break_idx] + QUOTE + + if drop_pointless_f_prefix: + next_value = self._normalize_f_string(next_value, prefix) + + # --- Construct `next_leaf` + next_leaf = Leaf(token.STRING, next_value) + insert_str_child(next_leaf) + self._maybe_normalize_string_quotes(next_leaf) + + # --- Construct `next_line` + next_line = line.clone() + maybe_append_string_operators(next_line) + next_line.append(next_leaf) + string_line_results.append(Ok(next_line)) + + rest_value = prefix + QUOTE + rest_value[break_idx:] + first_string_line = False + + yield from string_line_results + + if drop_pointless_f_prefix: + rest_value = self._normalize_f_string(rest_value, prefix) + + rest_leaf = Leaf(token.STRING, rest_value) + insert_str_child(rest_leaf) + + # NOTE: I could not find a test case that verifies that the following + # line is actually necessary, but it seems to be. Otherwise we risk + # not normalizing the last substring, right? + self._maybe_normalize_string_quotes(rest_leaf) + + last_line = line.clone() + maybe_append_string_operators(last_line) + + # If there are any leaves to the right of the target string... + if is_valid_index(string_idx + 1): + # We use `temp_value` here to determine how long the last line + # would be if we were to append all the leaves to the right of the + # target string to the last string line. + temp_value = rest_value + for leaf in LL[string_idx + 1 :]: + temp_value += str(leaf) + if leaf.type == token.LPAR: + break + + # Try to fit them all on the same line with the last substring... + if ( + str_width(temp_value) <= max_last_string_column() + or LL[string_idx + 1].type == token.COMMA + ): + last_line.append(rest_leaf) + append_leaves(last_line, line, LL[string_idx + 1 :]) + yield Ok(last_line) + # Otherwise, place the last substring on one line and everything + # else on a line below that... + else: + last_line.append(rest_leaf) + yield Ok(last_line) + + non_string_line = line.clone() + append_leaves(non_string_line, line, LL[string_idx + 1 :]) + yield Ok(non_string_line) + # Else the target string was the last leaf... + else: + last_line.append(rest_leaf) + last_line.comments = line.comments.copy() + yield Ok(last_line) + + def _iter_nameescape_slices(self, string: str) -> Iterator[Tuple[Index, Index]]: + """ + Yields: + All ranges of @string which, if @string were to be split there, + would result in the splitting of an \\N{...} expression (which is NOT + allowed). + """ + # True - the previous backslash was unescaped + # False - the previous backslash was escaped *or* there was no backslash + previous_was_unescaped_backslash = False + it = iter(enumerate(string)) + for idx, c in it: + if c == "\\": + previous_was_unescaped_backslash = not previous_was_unescaped_backslash + continue + if not previous_was_unescaped_backslash or c != "N": + previous_was_unescaped_backslash = False + continue + previous_was_unescaped_backslash = False + + begin = idx - 1 # the position of backslash before \N{...} + for idx, c in it: + if c == "}": + end = idx + break + else: + # malformed nameescape expression? + # should have been detected by AST parsing earlier... + raise RuntimeError(f"{self.__class__.__name__} LOGIC ERROR!") + yield begin, end + + def _iter_fexpr_slices(self, string: str) -> Iterator[Tuple[Index, Index]]: + """ + Yields: + All ranges of @string which, if @string were to be split there, + would result in the splitting of an f-expression (which is NOT + allowed). + """ + if "f" not in get_string_prefix(string).lower(): + return + yield from iter_fexpr_spans(string) + + def _get_illegal_split_indices(self, string: str) -> Set[Index]: + illegal_indices: Set[Index] = set() + iterators = [ + self._iter_fexpr_slices(string), + self._iter_nameescape_slices(string), + ] + for it in iterators: + for begin, end in it: + illegal_indices.update(range(begin, end + 1)) + return illegal_indices + + def _get_break_idx(self, string: str, max_break_idx: int) -> Optional[int]: + """ + This method contains the algorithm that StringSplitter uses to + determine which character to split each string at. + + Args: + @string: The substring that we are attempting to split. + @max_break_idx: The ideal break index. We will return this value if it + meets all the necessary conditions. In the likely event that it + doesn't we will try to find the closest index BELOW @max_break_idx + that does. If that fails, we will expand our search by also + considering all valid indices ABOVE @max_break_idx. + + Pre-Conditions: + * assert_is_leaf_string(@string) + * 0 <= @max_break_idx < len(@string) + + Returns: + break_idx, if an index is able to be found that meets all of the + conditions listed in the 'Transformations' section of this classes' + docstring. + OR + None, otherwise. + """ + is_valid_index = is_valid_index_factory(string) + + assert is_valid_index(max_break_idx) + assert_is_leaf_string(string) + + _illegal_split_indices = self._get_illegal_split_indices(string) + + def breaks_unsplittable_expression(i: Index) -> bool: + """ + Returns: + True iff returning @i would result in the splitting of an + unsplittable expression (which is NOT allowed). + """ + return i in _illegal_split_indices + + def passes_all_checks(i: Index) -> bool: + """ + Returns: + True iff ALL of the conditions listed in the 'Transformations' + section of this classes' docstring would be met by returning @i. + """ + is_space = string[i] == " " + is_split_safe = is_valid_index(i - 1) and string[i - 1] in SPLIT_SAFE_CHARS + + is_not_escaped = True + j = i - 1 + while is_valid_index(j) and string[j] == "\\": + is_not_escaped = not is_not_escaped + j -= 1 + + is_big_enough = ( + len(string[i:]) >= self.MIN_SUBSTR_SIZE + and len(string[:i]) >= self.MIN_SUBSTR_SIZE + ) + return ( + (is_space or is_split_safe) + and is_not_escaped + and is_big_enough + and not breaks_unsplittable_expression(i) + ) + + # First, we check all indices BELOW @max_break_idx. + break_idx = max_break_idx + while is_valid_index(break_idx - 1) and not passes_all_checks(break_idx): + break_idx -= 1 + + if not passes_all_checks(break_idx): + # If that fails, we check all indices ABOVE @max_break_idx. + # + # If we are able to find a valid index here, the next line is going + # to be longer than the specified line length, but it's probably + # better than doing nothing at all. + break_idx = max_break_idx + 1 + while is_valid_index(break_idx + 1) and not passes_all_checks(break_idx): + break_idx += 1 + + if not is_valid_index(break_idx) or not passes_all_checks(break_idx): + return None + + return break_idx + + def _maybe_normalize_string_quotes(self, leaf: Leaf) -> None: + if self.normalize_strings: + leaf.value = normalize_string_quotes(leaf.value) + + def _normalize_f_string(self, string: str, prefix: str) -> str: + """ + Pre-Conditions: + * assert_is_leaf_string(@string) + + Returns: + * If @string is an f-string that contains no f-expressions, we + return a string identical to @string except that the 'f' prefix + has been stripped and all double braces (i.e. '{{' or '}}') have + been normalized (i.e. turned into '{' or '}'). + OR + * Otherwise, we return @string. + """ + assert_is_leaf_string(string) + + if "f" in prefix and not fstring_contains_expr(string): + new_prefix = prefix.replace("f", "") + + temp = string[len(prefix) :] + temp = re.sub(r"\{\{", "{", temp) + temp = re.sub(r"\}\}", "}", temp) + new_string = temp + + return f"{new_prefix}{new_string}" + else: + return string + + def _get_string_operator_leaves(self, leaves: Iterable[Leaf]) -> List[Leaf]: + LL = list(leaves) + + string_op_leaves = [] + i = 0 + while LL[i].type in self.STRING_OPERATORS + [token.NAME]: + prefix_leaf = Leaf(LL[i].type, str(LL[i]).strip()) + string_op_leaves.append(prefix_leaf) + i += 1 + return string_op_leaves + + +class StringParenWrapper(BaseStringSplitter, CustomSplitMapMixin): + """ + StringTransformer that wraps strings in parens and then splits at the LPAR. + + Requirements: + All of the requirements listed in BaseStringSplitter's docstring in + addition to the requirements listed below: + + * The line is a return/yield statement, which returns/yields a string. + OR + * The line is part of a ternary expression (e.g. `x = y if cond else + z`) such that the line starts with `else `, where is + some string. + OR + * The line is an assert statement, which ends with a string. + OR + * The line is an assignment statement (e.g. `x = ` or `x += + `) such that the variable is being assigned the value of some + string. + OR + * The line is a dictionary key assignment where some valid key is being + assigned the value of some string. + OR + * The line is an lambda expression and the value is a string. + OR + * The line starts with an "atom" string that prefers to be wrapped in + parens. It's preferred to be wrapped when it's is an immediate child of + a list/set/tuple literal, AND the string is surrounded by commas (or is + the first/last child). + + Transformations: + The chosen string is wrapped in parentheses and then split at the LPAR. + + We then have one line which ends with an LPAR and another line that + starts with the chosen string. The latter line is then split again at + the RPAR. This results in the RPAR (and possibly a trailing comma) + being placed on its own line. + + NOTE: If any leaves exist to the right of the chosen string (except + for a trailing comma, which would be placed after the RPAR), those + leaves are placed inside the parentheses. In effect, the chosen + string is not necessarily being "wrapped" by parentheses. We can, + however, count on the LPAR being placed directly before the chosen + string. + + In other words, StringParenWrapper creates "atom" strings. These + can then be split again by StringSplitter, if necessary. + + Collaborations: + In the event that a string line split by StringParenWrapper is + changed such that it no longer needs to be given its own line, + StringParenWrapper relies on StringParenStripper to clean up the + parentheses it created. + + For "atom" strings that prefers to be wrapped in parens, it requires + StringSplitter to hold the split until the string is wrapped in parens. + """ + + def do_splitter_match(self, line: Line) -> TMatchResult: + LL = line.leaves + + if line.leaves[-1].type in OPENING_BRACKETS: + return TErr( + "Cannot wrap parens around a line that ends in an opening bracket." + ) + + string_idx = ( + self._return_match(LL) + or self._else_match(LL) + or self._assert_match(LL) + or self._assign_match(LL) + or self._dict_or_lambda_match(LL) + or self._prefer_paren_wrap_match(LL) + ) + + if string_idx is not None: + string_value = line.leaves[string_idx].value + # If the string has neither spaces nor East Asian stops... + if not any( + char == " " or char in SPLIT_SAFE_CHARS for char in string_value + ): + # And will still violate the line length limit when split... + max_string_width = self.line_length - ((line.depth + 1) * 4) + if str_width(string_value) > max_string_width: + # And has no associated custom splits... + if not self.has_custom_splits(string_value): + # Then we should NOT put this string on its own line. + return TErr( + "We do not wrap long strings in parentheses when the" + " resultant line would still be over the specified line" + " length and can't be split further by StringSplitter." + ) + return Ok([string_idx]) + + return TErr("This line does not contain any non-atomic strings.") + + @staticmethod + def _return_match(LL: List[Leaf]) -> Optional[int]: + """ + Returns: + string_idx such that @LL[string_idx] is equal to our target (i.e. + matched) string, if this line matches the return/yield statement + requirements listed in the 'Requirements' section of this classes' + docstring. + OR + None, otherwise. + """ + # If this line is a part of a return/yield statement and the first leaf + # contains either the "return" or "yield" keywords... + if parent_type(LL[0]) in [syms.return_stmt, syms.yield_expr] and LL[ + 0 + ].value in ["return", "yield"]: + is_valid_index = is_valid_index_factory(LL) + + idx = 2 if is_valid_index(1) and is_empty_par(LL[1]) else 1 + # The next visible leaf MUST contain a string... + if is_valid_index(idx) and LL[idx].type == token.STRING: + return idx + + return None + + @staticmethod + def _else_match(LL: List[Leaf]) -> Optional[int]: + """ + Returns: + string_idx such that @LL[string_idx] is equal to our target (i.e. + matched) string, if this line matches the ternary expression + requirements listed in the 'Requirements' section of this classes' + docstring. + OR + None, otherwise. + """ + # If this line is a part of a ternary expression and the first leaf + # contains the "else" keyword... + if ( + parent_type(LL[0]) == syms.test + and LL[0].type == token.NAME + and LL[0].value == "else" + ): + is_valid_index = is_valid_index_factory(LL) + + idx = 2 if is_valid_index(1) and is_empty_par(LL[1]) else 1 + # The next visible leaf MUST contain a string... + if is_valid_index(idx) and LL[idx].type == token.STRING: + return idx + + return None + + @staticmethod + def _assert_match(LL: List[Leaf]) -> Optional[int]: + """ + Returns: + string_idx such that @LL[string_idx] is equal to our target (i.e. + matched) string, if this line matches the assert statement + requirements listed in the 'Requirements' section of this classes' + docstring. + OR + None, otherwise. + """ + # If this line is a part of an assert statement and the first leaf + # contains the "assert" keyword... + if parent_type(LL[0]) == syms.assert_stmt and LL[0].value == "assert": + is_valid_index = is_valid_index_factory(LL) + + for i, leaf in enumerate(LL): + # We MUST find a comma... + if leaf.type == token.COMMA: + idx = i + 2 if is_empty_par(LL[i + 1]) else i + 1 + + # That comma MUST be followed by a string... + if is_valid_index(idx) and LL[idx].type == token.STRING: + string_idx = idx + + # Skip the string trailer, if one exists. + string_parser = StringParser() + idx = string_parser.parse(LL, string_idx) + + # But no more leaves are allowed... + if not is_valid_index(idx): + return string_idx + + return None + + @staticmethod + def _assign_match(LL: List[Leaf]) -> Optional[int]: + """ + Returns: + string_idx such that @LL[string_idx] is equal to our target (i.e. + matched) string, if this line matches the assignment statement + requirements listed in the 'Requirements' section of this classes' + docstring. + OR + None, otherwise. + """ + # If this line is a part of an expression statement or is a function + # argument AND the first leaf contains a variable name... + if ( + parent_type(LL[0]) in [syms.expr_stmt, syms.argument, syms.power] + and LL[0].type == token.NAME + ): + is_valid_index = is_valid_index_factory(LL) + + for i, leaf in enumerate(LL): + # We MUST find either an '=' or '+=' symbol... + if leaf.type in [token.EQUAL, token.PLUSEQUAL]: + idx = i + 2 if is_empty_par(LL[i + 1]) else i + 1 + + # That symbol MUST be followed by a string... + if is_valid_index(idx) and LL[idx].type == token.STRING: + string_idx = idx + + # Skip the string trailer, if one exists. + string_parser = StringParser() + idx = string_parser.parse(LL, string_idx) + + # The next leaf MAY be a comma iff this line is a part + # of a function argument... + if ( + parent_type(LL[0]) == syms.argument + and is_valid_index(idx) + and LL[idx].type == token.COMMA + ): + idx += 1 + + # But no more leaves are allowed... + if not is_valid_index(idx): + return string_idx + + return None + + @staticmethod + def _dict_or_lambda_match(LL: List[Leaf]) -> Optional[int]: + """ + Returns: + string_idx such that @LL[string_idx] is equal to our target (i.e. + matched) string, if this line matches the dictionary key assignment + statement or lambda expression requirements listed in the + 'Requirements' section of this classes' docstring. + OR + None, otherwise. + """ + # If this line is a part of a dictionary key assignment or lambda expression... + parent_types = [parent_type(LL[0]), parent_type(LL[0].parent)] + if syms.dictsetmaker in parent_types or syms.lambdef in parent_types: + is_valid_index = is_valid_index_factory(LL) + + for i, leaf in enumerate(LL): + # We MUST find a colon, it can either be dict's or lambda's colon... + if leaf.type == token.COLON and i < len(LL) - 1: + idx = i + 2 if is_empty_par(LL[i + 1]) else i + 1 + + # That colon MUST be followed by a string... + if is_valid_index(idx) and LL[idx].type == token.STRING: + string_idx = idx + + # Skip the string trailer, if one exists. + string_parser = StringParser() + idx = string_parser.parse(LL, string_idx) + + # That string MAY be followed by a comma... + if is_valid_index(idx) and LL[idx].type == token.COMMA: + idx += 1 + + # But no more leaves are allowed... + if not is_valid_index(idx): + return string_idx + + return None + + def do_transform( + self, line: Line, string_indices: List[int] + ) -> Iterator[TResult[Line]]: + LL = line.leaves + assert len(string_indices) == 1, ( + f"{self.__class__.__name__} should only find one match at a time, found" + f" {len(string_indices)}" + ) + string_idx = string_indices[0] + + is_valid_index = is_valid_index_factory(LL) + insert_str_child = insert_str_child_factory(LL[string_idx]) + + comma_idx = -1 + ends_with_comma = False + if LL[comma_idx].type == token.COMMA: + ends_with_comma = True + + leaves_to_steal_comments_from = [LL[string_idx]] + if ends_with_comma: + leaves_to_steal_comments_from.append(LL[comma_idx]) + + # --- First Line + first_line = line.clone() + left_leaves = LL[:string_idx] + + # We have to remember to account for (possibly invisible) LPAR and RPAR + # leaves that already wrapped the target string. If these leaves do + # exist, we will replace them with our own LPAR and RPAR leaves. + old_parens_exist = False + if left_leaves and left_leaves[-1].type == token.LPAR: + old_parens_exist = True + leaves_to_steal_comments_from.append(left_leaves[-1]) + left_leaves.pop() + + append_leaves(first_line, line, left_leaves) + + lpar_leaf = Leaf(token.LPAR, "(") + if old_parens_exist: + replace_child(LL[string_idx - 1], lpar_leaf) + else: + insert_str_child(lpar_leaf) + first_line.append(lpar_leaf) + + # We throw inline comments that were originally to the right of the + # target string to the top line. They will now be shown to the right of + # the LPAR. + for leaf in leaves_to_steal_comments_from: + for comment_leaf in line.comments_after(leaf): + first_line.append(comment_leaf, preformatted=True) + + yield Ok(first_line) + + # --- Middle (String) Line + # We only need to yield one (possibly too long) string line, since the + # `StringSplitter` will break it down further if necessary. + string_value = LL[string_idx].value + string_line = Line( + mode=line.mode, + depth=line.depth + 1, + inside_brackets=True, + should_split_rhs=line.should_split_rhs, + magic_trailing_comma=line.magic_trailing_comma, + ) + string_leaf = Leaf(token.STRING, string_value) + insert_str_child(string_leaf) + string_line.append(string_leaf) + + old_rpar_leaf = None + if is_valid_index(string_idx + 1): + right_leaves = LL[string_idx + 1 :] + if ends_with_comma: + right_leaves.pop() + + if old_parens_exist: + assert right_leaves and right_leaves[-1].type == token.RPAR, ( + "Apparently, old parentheses do NOT exist?!" + f" (left_leaves={left_leaves}, right_leaves={right_leaves})" + ) + old_rpar_leaf = right_leaves.pop() + elif right_leaves and right_leaves[-1].type == token.RPAR: + # Special case for lambda expressions as dict's value, e.g.: + # my_dict = { + # "key": lambda x: f"formatted: {x}, + # } + # After wrapping the dict's value with parentheses, the string is + # followed by a RPAR but its opening bracket is lambda's, not + # the string's: + # "key": (lambda x: f"formatted: {x}), + opening_bracket = right_leaves[-1].opening_bracket + if opening_bracket is not None and opening_bracket in left_leaves: + index = left_leaves.index(opening_bracket) + if ( + 0 < index < len(left_leaves) - 1 + and left_leaves[index - 1].type == token.COLON + and left_leaves[index + 1].value == "lambda" + ): + right_leaves.pop() + + append_leaves(string_line, line, right_leaves) + + yield Ok(string_line) + + # --- Last Line + last_line = line.clone() + last_line.bracket_tracker = first_line.bracket_tracker + + new_rpar_leaf = Leaf(token.RPAR, ")") + if old_rpar_leaf is not None: + replace_child(old_rpar_leaf, new_rpar_leaf) + else: + insert_str_child(new_rpar_leaf) + last_line.append(new_rpar_leaf) + + # If the target string ended with a comma, we place this comma to the + # right of the RPAR on the last line. + if ends_with_comma: + comma_leaf = Leaf(token.COMMA, ",") + replace_child(LL[comma_idx], comma_leaf) + last_line.append(comma_leaf) + + yield Ok(last_line) + + +class StringParser: + """ + A state machine that aids in parsing a string's "trailer", which can be + either non-existent, an old-style formatting sequence (e.g. `% varX` or `% + (varX, varY)`), or a method-call / attribute access (e.g. `.format(varX, + varY)`). + + NOTE: A new StringParser object MUST be instantiated for each string + trailer we need to parse. + + Examples: + We shall assume that `line` equals the `Line` object that corresponds + to the following line of python code: + ``` + x = "Some {}.".format("String") + some_other_string + ``` + + Furthermore, we will assume that `string_idx` is some index such that: + ``` + assert line.leaves[string_idx].value == "Some {}." + ``` + + The following code snippet then holds: + ``` + string_parser = StringParser() + idx = string_parser.parse(line.leaves, string_idx) + assert line.leaves[idx].type == token.PLUS + ``` + """ + + DEFAULT_TOKEN: Final = 20210605 + + # String Parser States + START: Final = 1 + DOT: Final = 2 + NAME: Final = 3 + PERCENT: Final = 4 + SINGLE_FMT_ARG: Final = 5 + LPAR: Final = 6 + RPAR: Final = 7 + DONE: Final = 8 + + # Lookup Table for Next State + _goto: Final[Dict[Tuple[ParserState, NodeType], ParserState]] = { + # A string trailer may start with '.' OR '%'. + (START, token.DOT): DOT, + (START, token.PERCENT): PERCENT, + (START, DEFAULT_TOKEN): DONE, + # A '.' MUST be followed by an attribute or method name. + (DOT, token.NAME): NAME, + # A method name MUST be followed by an '(', whereas an attribute name + # is the last symbol in the string trailer. + (NAME, token.LPAR): LPAR, + (NAME, DEFAULT_TOKEN): DONE, + # A '%' symbol can be followed by an '(' or a single argument (e.g. a + # string or variable name). + (PERCENT, token.LPAR): LPAR, + (PERCENT, DEFAULT_TOKEN): SINGLE_FMT_ARG, + # If a '%' symbol is followed by a single argument, that argument is + # the last leaf in the string trailer. + (SINGLE_FMT_ARG, DEFAULT_TOKEN): DONE, + # If present, a ')' symbol is the last symbol in a string trailer. + # (NOTE: LPARS and nested RPARS are not included in this lookup table, + # since they are treated as a special case by the parsing logic in this + # classes' implementation.) + (RPAR, DEFAULT_TOKEN): DONE, + } + + def __init__(self) -> None: + self._state = self.START + self._unmatched_lpars = 0 + + def parse(self, leaves: List[Leaf], string_idx: int) -> int: + """ + Pre-conditions: + * @leaves[@string_idx].type == token.STRING + + Returns: + The index directly after the last leaf which is a part of the string + trailer, if a "trailer" exists. + OR + @string_idx + 1, if no string "trailer" exists. + """ + assert leaves[string_idx].type == token.STRING + + idx = string_idx + 1 + while idx < len(leaves) and self._next_state(leaves[idx]): + idx += 1 + return idx + + def _next_state(self, leaf: Leaf) -> bool: + """ + Pre-conditions: + * On the first call to this function, @leaf MUST be the leaf that + was directly after the string leaf in question (e.g. if our target + string is `line.leaves[i]` then the first call to this method must + be `line.leaves[i + 1]`). + * On the next call to this function, the leaf parameter passed in + MUST be the leaf directly following @leaf. + + Returns: + True iff @leaf is a part of the string's trailer. + """ + # We ignore empty LPAR or RPAR leaves. + if is_empty_par(leaf): + return True + + next_token = leaf.type + if next_token == token.LPAR: + self._unmatched_lpars += 1 + + current_state = self._state + + # The LPAR parser state is a special case. We will return True until we + # find the matching RPAR token. + if current_state == self.LPAR: + if next_token == token.RPAR: + self._unmatched_lpars -= 1 + if self._unmatched_lpars == 0: + self._state = self.RPAR + # Otherwise, we use a lookup table to determine the next state. + else: + # If the lookup table matches the current state to the next + # token, we use the lookup table. + if (current_state, next_token) in self._goto: + self._state = self._goto[current_state, next_token] + else: + # Otherwise, we check if a the current state was assigned a + # default. + if (current_state, self.DEFAULT_TOKEN) in self._goto: + self._state = self._goto[current_state, self.DEFAULT_TOKEN] + # If no default has been assigned, then this parser has a logic + # error. + else: + raise RuntimeError(f"{self.__class__.__name__} LOGIC ERROR!") + + if self._state == self.DONE: + return False + + return True + + +def insert_str_child_factory(string_leaf: Leaf) -> Callable[[LN], None]: + """ + Factory for a convenience function that is used to orphan @string_leaf + and then insert multiple new leaves into the same part of the node + structure that @string_leaf had originally occupied. + + Examples: + Let `string_leaf = Leaf(token.STRING, '"foo"')` and `N = + string_leaf.parent`. Assume the node `N` has the following + original structure: + + Node( + expr_stmt, [ + Leaf(NAME, 'x'), + Leaf(EQUAL, '='), + Leaf(STRING, '"foo"'), + ] + ) + + We then run the code snippet shown below. + ``` + insert_str_child = insert_str_child_factory(string_leaf) + + lpar = Leaf(token.LPAR, '(') + insert_str_child(lpar) + + bar = Leaf(token.STRING, '"bar"') + insert_str_child(bar) + + rpar = Leaf(token.RPAR, ')') + insert_str_child(rpar) + ``` + + After which point, it follows that `string_leaf.parent is None` and + the node `N` now has the following structure: + + Node( + expr_stmt, [ + Leaf(NAME, 'x'), + Leaf(EQUAL, '='), + Leaf(LPAR, '('), + Leaf(STRING, '"bar"'), + Leaf(RPAR, ')'), + ] + ) + """ + string_parent = string_leaf.parent + string_child_idx = string_leaf.remove() + + def insert_str_child(child: LN) -> None: + nonlocal string_child_idx + + assert string_parent is not None + assert string_child_idx is not None + + string_parent.insert_child(string_child_idx, child) + string_child_idx += 1 + + return insert_str_child + + +def is_valid_index_factory(seq: Sequence[Any]) -> Callable[[int], bool]: + """ + Examples: + ``` + my_list = [1, 2, 3] + + is_valid_index = is_valid_index_factory(my_list) + + assert is_valid_index(0) + assert is_valid_index(2) + + assert not is_valid_index(3) + assert not is_valid_index(-1) + ``` + """ + + def is_valid_index(idx: int) -> bool: + """ + Returns: + True iff @idx is positive AND seq[@idx] does NOT raise an + IndexError. + """ + return 0 <= idx < len(seq) + + return is_valid_index diff --git a/venv/lib/python3.12/site-packages/blackd/__init__.py b/venv/lib/python3.12/site-packages/blackd/__init__.py new file mode 100644 index 0000000000..7041671f59 --- /dev/null +++ b/venv/lib/python3.12/site-packages/blackd/__init__.py @@ -0,0 +1,259 @@ +import asyncio +import logging +from concurrent.futures import Executor, ProcessPoolExecutor +from datetime import datetime, timezone +from functools import partial +from multiprocessing import freeze_support +from typing import Set, Tuple + +try: + from aiohttp import web + from multidict import MultiMapping + + from .middlewares import cors +except ImportError as ie: + raise ImportError( + f"aiohttp dependency is not installed: {ie}. " + + "Please re-install black with the '[d]' extra install " + + "to obtain aiohttp_cors: `pip install black[d]`" + ) from None + +import click + +import black +from _black_version import version as __version__ +from black.concurrency import maybe_install_uvloop + +# This is used internally by tests to shut down the server prematurely +_stop_signal = asyncio.Event() + +# Request headers +PROTOCOL_VERSION_HEADER = "X-Protocol-Version" +LINE_LENGTH_HEADER = "X-Line-Length" +PYTHON_VARIANT_HEADER = "X-Python-Variant" +SKIP_SOURCE_FIRST_LINE = "X-Skip-Source-First-Line" +SKIP_STRING_NORMALIZATION_HEADER = "X-Skip-String-Normalization" +SKIP_MAGIC_TRAILING_COMMA = "X-Skip-Magic-Trailing-Comma" +PREVIEW = "X-Preview" +UNSTABLE = "X-Unstable" +ENABLE_UNSTABLE_FEATURE = "X-Enable-Unstable-Feature" +FAST_OR_SAFE_HEADER = "X-Fast-Or-Safe" +DIFF_HEADER = "X-Diff" + +BLACK_HEADERS = [ + PROTOCOL_VERSION_HEADER, + LINE_LENGTH_HEADER, + PYTHON_VARIANT_HEADER, + SKIP_SOURCE_FIRST_LINE, + SKIP_STRING_NORMALIZATION_HEADER, + SKIP_MAGIC_TRAILING_COMMA, + PREVIEW, + UNSTABLE, + ENABLE_UNSTABLE_FEATURE, + FAST_OR_SAFE_HEADER, + DIFF_HEADER, +] + +# Response headers +BLACK_VERSION_HEADER = "X-Black-Version" + + +class HeaderError(Exception): + pass + + +class InvalidVariantHeader(Exception): + pass + + +@click.command(context_settings={"help_option_names": ["-h", "--help"]}) +@click.option( + "--bind-host", + type=str, + help="Address to bind the server to.", + default="localhost", + show_default=True, +) +@click.option( + "--bind-port", type=int, help="Port to listen on", default=45484, show_default=True +) +@click.version_option(version=black.__version__) +def main(bind_host: str, bind_port: int) -> None: + logging.basicConfig(level=logging.INFO) + app = make_app() + ver = black.__version__ + black.out(f"blackd version {ver} listening on {bind_host} port {bind_port}") + web.run_app(app, host=bind_host, port=bind_port, handle_signals=True, print=None) + + +def make_app() -> web.Application: + app = web.Application( + middlewares=[cors(allow_headers=(*BLACK_HEADERS, "Content-Type"))] + ) + executor = ProcessPoolExecutor() + app.add_routes([web.post("/", partial(handle, executor=executor))]) + return app + + +async def handle(request: web.Request, executor: Executor) -> web.Response: + headers = {BLACK_VERSION_HEADER: __version__} + try: + if request.headers.get(PROTOCOL_VERSION_HEADER, "1") != "1": + return web.Response( + status=501, text="This server only supports protocol version 1" + ) + + fast = False + if request.headers.get(FAST_OR_SAFE_HEADER, "safe") == "fast": + fast = True + try: + mode = parse_mode(request.headers) + except HeaderError as e: + return web.Response(status=400, text=e.args[0]) + req_bytes = await request.content.read() + charset = request.charset if request.charset is not None else "utf8" + req_str = req_bytes.decode(charset) + then = datetime.now(timezone.utc) + + header = "" + if mode.skip_source_first_line: + first_newline_position: int = req_str.find("\n") + 1 + header = req_str[:first_newline_position] + req_str = req_str[first_newline_position:] + + loop = asyncio.get_event_loop() + formatted_str = await loop.run_in_executor( + executor, partial(black.format_file_contents, req_str, fast=fast, mode=mode) + ) + + # Preserve CRLF line endings + nl = req_str.find("\n") + if nl > 0 and req_str[nl - 1] == "\r": + formatted_str = formatted_str.replace("\n", "\r\n") + # If, after swapping line endings, nothing changed, then say so + if formatted_str == req_str: + raise black.NothingChanged + + # Put the source first line back + req_str = header + req_str + formatted_str = header + formatted_str + + # Only output the diff in the HTTP response + only_diff = bool(request.headers.get(DIFF_HEADER, False)) + if only_diff: + now = datetime.now(timezone.utc) + src_name = f"In\t{then}" + dst_name = f"Out\t{now}" + loop = asyncio.get_event_loop() + formatted_str = await loop.run_in_executor( + executor, + partial(black.diff, req_str, formatted_str, src_name, dst_name), + ) + + return web.Response( + content_type=request.content_type, + charset=charset, + headers=headers, + text=formatted_str, + ) + except black.NothingChanged: + return web.Response(status=204, headers=headers) + except black.InvalidInput as e: + return web.Response(status=400, headers=headers, text=str(e)) + except Exception as e: + logging.exception("Exception during handling a request") + return web.Response(status=500, headers=headers, text=str(e)) + + +def parse_mode(headers: MultiMapping[str]) -> black.Mode: + try: + line_length = int(headers.get(LINE_LENGTH_HEADER, black.DEFAULT_LINE_LENGTH)) + except ValueError: + raise HeaderError("Invalid line length header value") from None + + if PYTHON_VARIANT_HEADER in headers: + value = headers[PYTHON_VARIANT_HEADER] + try: + pyi, versions = parse_python_variant_header(value) + except InvalidVariantHeader as e: + raise HeaderError( + f"Invalid value for {PYTHON_VARIANT_HEADER}: {e.args[0]}", + ) from None + else: + pyi = False + versions = set() + + skip_string_normalization = bool( + headers.get(SKIP_STRING_NORMALIZATION_HEADER, False) + ) + skip_magic_trailing_comma = bool(headers.get(SKIP_MAGIC_TRAILING_COMMA, False)) + skip_source_first_line = bool(headers.get(SKIP_SOURCE_FIRST_LINE, False)) + + preview = bool(headers.get(PREVIEW, False)) + unstable = bool(headers.get(UNSTABLE, False)) + enable_features: Set[black.Preview] = set() + enable_unstable_features = headers.get(ENABLE_UNSTABLE_FEATURE, "").split(",") + for piece in enable_unstable_features: + piece = piece.strip() + if piece: + try: + enable_features.add(black.Preview[piece]) + except KeyError: + raise HeaderError( + f"Invalid value for {ENABLE_UNSTABLE_FEATURE}: {piece}", + ) from None + + return black.FileMode( + target_versions=versions, + is_pyi=pyi, + line_length=line_length, + skip_source_first_line=skip_source_first_line, + string_normalization=not skip_string_normalization, + magic_trailing_comma=not skip_magic_trailing_comma, + preview=preview, + unstable=unstable, + enabled_features=enable_features, + ) + + +def parse_python_variant_header(value: str) -> Tuple[bool, Set[black.TargetVersion]]: + if value == "pyi": + return True, set() + else: + versions = set() + for version in value.split(","): + if version.startswith("py"): + version = version[len("py") :] + if "." in version: + major_str, *rest = version.split(".") + else: + major_str = version[0] + rest = [version[1:]] if len(version) > 1 else [] + try: + major = int(major_str) + if major not in (2, 3): + raise InvalidVariantHeader("major version must be 2 or 3") + if len(rest) > 0: + minor = int(rest[0]) + if major == 2: + raise InvalidVariantHeader("Python 2 is not supported") + else: + # Default to lowest supported minor version. + minor = 7 if major == 2 else 3 + version_str = f"PY{major}{minor}" + if major == 3 and not hasattr(black.TargetVersion, version_str): + raise InvalidVariantHeader(f"3.{minor} is not supported") + versions.add(black.TargetVersion[version_str]) + except (KeyError, ValueError): + raise InvalidVariantHeader("expected e.g. '3.7', 'py3.5'") from None + return False, versions + + +def patched_main() -> None: + maybe_install_uvloop() + freeze_support() + main() + + +if __name__ == "__main__": + patched_main() diff --git a/venv/lib/python3.12/site-packages/blackd/__main__.py b/venv/lib/python3.12/site-packages/blackd/__main__.py new file mode 100644 index 0000000000..b5a4b13744 --- /dev/null +++ b/venv/lib/python3.12/site-packages/blackd/__main__.py @@ -0,0 +1,3 @@ +import blackd + +blackd.patched_main() diff --git a/venv/lib/python3.12/site-packages/blackd/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/blackd/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7fdc1b44940da8f06cef59c381d5b70017dc1e5a GIT binary patch literal 11770 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 I?Mg)d4_daAG5`Po literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/blackd/__pycache__/__main__.cpython-312.pyc b/venv/lib/python3.12/site-packages/blackd/__pycache__/__main__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..840c1fb8bd0a86b14202d57528c54455edbb4acc GIT binary patch literal 266 zcmX@j%ge<81l4XQ(o});V-N=hn4pZ$dO*f>h7^Vr#vFzy1}277hAfyIOf8UJ4P`Sj zR5EHZy#(?6G?{L(CFLY0XQ$laDM&0y&PYv(&rQtCTgmVlB>yW+KO;XkRX;Z|BR9V^ zMc*a0Oy3EpTGur%MIWdyFFjwsEH$r8KPNLuzo4=tBR|hr&(KJ}II|>Gw*aUxF+H^y zq!4I zR3K_9BtTUgSL#PTsi0CnTdA~7zo`1rxF8W$pn@u-_RnqjK=h|~)^-Xhs3ZCAojLb4 z_ujewDG=}?SZDX%8h9)r^c&k$7wp|Nw+JINiQYykQn7|~oWeSn;&eX6>q1J<#gwQ^ zDG4*2(>%JIl3kwHYIJYPixClsoW_JF-X&mgfMYb}BbYXUhM@WNKq`O{hlr$#L{KHd zm1S;tu5;xOQbDj01RKFJLTXjH6(A#6!@SPhaCbFYonD`+hZuZBBw^-F^^?GWpa#wh zsfN+uDnvr75v?spMto^*L2QBJ=u-0tI>R4FBe){X?&m#^QuTnvt5~e|4;Eldaso$> zAMWUF-`~;Rd7yir!?ziuPEFg0lChOOjW}|OnEw{W%Z^pRpL)`0RLc(9}s%R|a)+SWWIBr<1#t{*&$C<2Yk@)^{UygC>8poEs zRKFq-4xc8rBMg}tBj%xt;e@g$<9IVx zubH(oFbf<%@L5U*v`l&sWGRdYM>5?j(g+A!tPL97H9_l{wvf@Y+E{(RNv%YyX7($Z zwKKuamNW62K%V}No=%{Lk!6!7uAZ10Ek@Soy|dA#U!uomnmcYqe_r|H%9-Y4dH+3M z^nSSMc6imrJ&%?&PDO7oiQNsy@_QcEEuLI?b>-c<)y2BiQ^#)CCGyg}+Q@7;n(utL zxg{@L_FweRL^c-XO|x6KSGR8z$&vDAbVmm6oH1wa=^&+~C}{c8qW0-MfTucXPnT1a}lt)~SwXf8}Yj z97CB{n&=uJ7JHiSHCEEZ5=3KgvW!6+fIw32i?t=LL2USJUkSnIM%w*+lX${*b3Bql zE?ioN{Go|X+5lSJv4|ttquGp+rfhalHk2rP>6DEm$_hkfAWm4xn1i;RO^lGf-pU{< zhurWYQvMrodxXM(K~AWOgCC-j0gL*WRX@XOdwUhbFm1(cnBHE;cRyPBxD|}(=RQt8?)c)eq_#HVh(KZ`e zTxcqU3rb;8G1PcRXeP z5C-Yl$nwI-HP6h7^Mm~VoLSLXj2!&X3n2phcggFD@?z7U5?a&*=N{mnS*zg| i(*dci8BI4xZ9C9(b6wjue!2xSx5Zs63hg literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/blackd/middlewares.py b/venv/lib/python3.12/site-packages/blackd/middlewares.py new file mode 100644 index 0000000000..4a795d0aec --- /dev/null +++ b/venv/lib/python3.12/site-packages/blackd/middlewares.py @@ -0,0 +1,52 @@ +from typing import TYPE_CHECKING, Any, Awaitable, Callable, Iterable, TypeVar + +from aiohttp.web_request import Request +from aiohttp.web_response import StreamResponse + +Handler = Callable[[Request], Awaitable[StreamResponse]] + +if TYPE_CHECKING: + from aiohttp.typedefs import Middleware + + F = TypeVar("F", bound=Callable[..., Any]) + middleware: Callable[[F], F] +else: + try: + # Available in aiohttp 3.9 and newer + from aiohttp.typedefs import Middleware + except ImportError: + Middleware = Callable[[Request, Handler], Awaitable[StreamResponse]] + + try: + from aiohttp.web_middlewares import middleware + except ImportError: + # @middleware is deprecated and its behaviour is the default since aiohttp 4.0 + # so if it doesn't exist anymore, define a no-op for forward compatibility. + middleware = lambda x: x # noqa: E731 + + +def cors(allow_headers: Iterable[str]) -> Middleware: + @middleware + async def impl(request: Request, handler: Handler) -> StreamResponse: + is_options = request.method == "OPTIONS" + is_preflight = is_options and "Access-Control-Request-Method" in request.headers + if is_preflight: + resp = StreamResponse() + else: + resp = await handler(request) + + origin = request.headers.get("Origin") + if not origin: + return resp + + resp.headers["Access-Control-Allow-Origin"] = "*" + resp.headers["Access-Control-Expose-Headers"] = "*" + if is_options: + resp.headers["Access-Control-Allow-Headers"] = ", ".join(allow_headers) + resp.headers["Access-Control-Allow-Methods"] = ", ".join( + ("OPTIONS", "POST") + ) + + return resp + + return impl diff --git a/venv/lib/python3.12/site-packages/blib2to3/Grammar.txt b/venv/lib/python3.12/site-packages/blib2to3/Grammar.txt new file mode 100644 index 0000000000..c8800e2193 --- /dev/null +++ b/venv/lib/python3.12/site-packages/blib2to3/Grammar.txt @@ -0,0 +1,261 @@ +# Grammar for 2to3. This grammar supports Python 2.x and 3.x. + +# NOTE WELL: You should also follow all the steps listed at +# https://devguide.python.org/grammar/ + +# Start symbols for the grammar: +# file_input is a module or sequence of commands read from an input file; +# single_input is a single interactive statement; +# eval_input is the input for the eval() and input() functions. +# NB: compound_stmt in single_input is followed by extra NEWLINE! +file_input: (NEWLINE | stmt)* ENDMARKER +single_input: NEWLINE | simple_stmt | compound_stmt NEWLINE +eval_input: testlist NEWLINE* ENDMARKER + +typevar: NAME [':' expr] ['=' expr] +paramspec: '**' NAME ['=' expr] +typevartuple: '*' NAME ['=' (expr|star_expr)] +typeparam: typevar | paramspec | typevartuple +typeparams: '[' typeparam (',' typeparam)* [','] ']' + +decorator: '@' namedexpr_test NEWLINE +decorators: decorator+ +decorated: decorators (classdef | funcdef | async_funcdef) +async_funcdef: ASYNC funcdef +funcdef: 'def' NAME [typeparams] parameters ['->' test] ':' suite +parameters: '(' [typedargslist] ')' + +# The following definition for typedarglist is equivalent to this set of rules: +# +# arguments = argument (',' argument)* +# argument = tfpdef ['=' test] +# kwargs = '**' tname [','] +# args = '*' [tname_star] +# kwonly_kwargs = (',' argument)* [',' [kwargs]] +# args_kwonly_kwargs = args kwonly_kwargs | kwargs +# poskeyword_args_kwonly_kwargs = arguments [',' [args_kwonly_kwargs]] +# typedargslist_no_posonly = poskeyword_args_kwonly_kwargs | args_kwonly_kwargs +# typedarglist = arguments ',' '/' [',' [typedargslist_no_posonly]])|(typedargslist_no_posonly)" +# +# It needs to be fully expanded to allow our LL(1) parser to work on it. + +typedargslist: tfpdef ['=' test] (',' tfpdef ['=' test])* ',' '/' [ + ',' [((tfpdef ['=' test] ',')* ('*' [tname_star] (',' tname ['=' test])* + [',' ['**' tname [',']]] | '**' tname [',']) + | tfpdef ['=' test] (',' tfpdef ['=' test])* [','])] + ] | ((tfpdef ['=' test] ',')* ('*' [tname_star] (',' tname ['=' test])* + [',' ['**' tname [',']]] | '**' tname [',']) + | tfpdef ['=' test] (',' tfpdef ['=' test])* [',']) + +tname: NAME [':' test] +tname_star: NAME [':' (test|star_expr)] +tfpdef: tname | '(' tfplist ')' +tfplist: tfpdef (',' tfpdef)* [','] + +# The following definition for varargslist is equivalent to this set of rules: +# +# arguments = argument (',' argument )* +# argument = vfpdef ['=' test] +# kwargs = '**' vname [','] +# args = '*' [vname] +# kwonly_kwargs = (',' argument )* [',' [kwargs]] +# args_kwonly_kwargs = args kwonly_kwargs | kwargs +# poskeyword_args_kwonly_kwargs = arguments [',' [args_kwonly_kwargs]] +# vararglist_no_posonly = poskeyword_args_kwonly_kwargs | args_kwonly_kwargs +# varargslist = arguments ',' '/' [','[(vararglist_no_posonly)]] | (vararglist_no_posonly) +# +# It needs to be fully expanded to allow our LL(1) parser to work on it. + +varargslist: vfpdef ['=' test ](',' vfpdef ['=' test])* ',' '/' [',' [ + ((vfpdef ['=' test] ',')* ('*' [vname] (',' vname ['=' test])* + [',' ['**' vname [',']]] | '**' vname [',']) + | vfpdef ['=' test] (',' vfpdef ['=' test])* [',']) + ]] | ((vfpdef ['=' test] ',')* + ('*' [vname] (',' vname ['=' test])* [',' ['**' vname [',']]]| '**' vname [',']) + | vfpdef ['=' test] (',' vfpdef ['=' test])* [',']) + +vname: NAME +vfpdef: vname | '(' vfplist ')' +vfplist: vfpdef (',' vfpdef)* [','] + +stmt: simple_stmt | compound_stmt +simple_stmt: small_stmt (';' small_stmt)* [';'] NEWLINE +small_stmt: (type_stmt | expr_stmt | del_stmt | pass_stmt | flow_stmt | + import_stmt | global_stmt | assert_stmt) +expr_stmt: testlist_star_expr (annassign | augassign (yield_expr|testlist) | + ('=' (yield_expr|testlist_star_expr))*) +annassign: ':' test ['=' (yield_expr|testlist_star_expr)] +testlist_star_expr: (test|star_expr) (',' (test|star_expr))* [','] +augassign: ('+=' | '-=' | '*=' | '@=' | '/=' | '%=' | '&=' | '|=' | '^=' | + '<<=' | '>>=' | '**=' | '//=') +# For normal and annotated assignments, additional restrictions enforced by the interpreter +del_stmt: 'del' exprlist +pass_stmt: 'pass' +flow_stmt: break_stmt | continue_stmt | return_stmt | raise_stmt | yield_stmt +break_stmt: 'break' +continue_stmt: 'continue' +return_stmt: 'return' [testlist_star_expr] +yield_stmt: yield_expr +raise_stmt: 'raise' [test ['from' test | ',' test [',' test]]] +import_stmt: import_name | import_from +import_name: 'import' dotted_as_names +import_from: ('from' ('.'* dotted_name | '.'+) + 'import' ('*' | '(' import_as_names ')' | import_as_names)) +import_as_name: NAME ['as' NAME] +dotted_as_name: dotted_name ['as' NAME] +import_as_names: import_as_name (',' import_as_name)* [','] +dotted_as_names: dotted_as_name (',' dotted_as_name)* +dotted_name: NAME ('.' NAME)* +global_stmt: ('global' | 'nonlocal') NAME (',' NAME)* +assert_stmt: 'assert' test [',' test] +type_stmt: "type" NAME [typeparams] '=' test + +compound_stmt: if_stmt | while_stmt | for_stmt | try_stmt | with_stmt | funcdef | classdef | decorated | async_stmt | match_stmt +async_stmt: ASYNC (funcdef | with_stmt | for_stmt) +if_stmt: 'if' namedexpr_test ':' suite ('elif' namedexpr_test ':' suite)* ['else' ':' suite] +while_stmt: 'while' namedexpr_test ':' suite ['else' ':' suite] +for_stmt: 'for' exprlist 'in' testlist_star_expr ':' suite ['else' ':' suite] +try_stmt: ('try' ':' suite + ((except_clause ':' suite)+ + ['else' ':' suite] + ['finally' ':' suite] | + 'finally' ':' suite)) +with_stmt: 'with' asexpr_test (',' asexpr_test)* ':' suite + +# NB compile.c makes sure that the default except clause is last +except_clause: 'except' ['*'] [test [(',' | 'as') test]] +suite: simple_stmt | NEWLINE INDENT stmt+ DEDENT + +# Backward compatibility cruft to support: +# [ x for x in lambda: True, lambda: False if x() ] +# even while also allowing: +# lambda x: 5 if x else 2 +# (But not a mix of the two) +testlist_safe: old_test [(',' old_test)+ [',']] +old_test: or_test | old_lambdef +old_lambdef: 'lambda' [varargslist] ':' old_test + +namedexpr_test: asexpr_test [':=' asexpr_test] + +# This is actually not a real rule, though since the parser is very +# limited in terms of the strategy about match/case rules, we are inserting +# a virtual case ( as ) as a valid expression. Unless a better +# approach is thought, the only side effect of this seem to be just allowing +# more stuff to be parser (which would fail on the ast). +asexpr_test: test ['as' test] + +test: or_test ['if' or_test 'else' test] | lambdef +or_test: and_test ('or' and_test)* +and_test: not_test ('and' not_test)* +not_test: 'not' not_test | comparison +comparison: expr (comp_op expr)* +comp_op: '<'|'>'|'=='|'>='|'<='|'<>'|'!='|'in'|'not' 'in'|'is'|'is' 'not' +star_expr: '*' expr +expr: xor_expr ('|' xor_expr)* +xor_expr: and_expr ('^' and_expr)* +and_expr: shift_expr ('&' shift_expr)* +shift_expr: arith_expr (('<<'|'>>') arith_expr)* +arith_expr: term (('+'|'-') term)* +term: factor (('*'|'@'|'/'|'%'|'//') factor)* +factor: ('+'|'-'|'~') factor | power +power: [AWAIT] atom trailer* ['**' factor] +atom: ('(' [yield_expr|testlist_gexp] ')' | + '[' [listmaker] ']' | + '{' [dictsetmaker] '}' | + '`' testlist1 '`' | + NAME | NUMBER | (STRING | fstring)+ | '.' '.' '.') +listmaker: (namedexpr_test|star_expr) ( old_comp_for | (',' (namedexpr_test|star_expr))* [','] ) +testlist_gexp: (namedexpr_test|star_expr) ( old_comp_for | (',' (namedexpr_test|star_expr))* [','] ) +lambdef: 'lambda' [varargslist] ':' test +trailer: '(' [arglist] ')' | '[' subscriptlist ']' | '.' NAME +subscriptlist: (subscript|star_expr) (',' (subscript|star_expr))* [','] +subscript: test [':=' test] | [test] ':' [test] [sliceop] +sliceop: ':' [test] +exprlist: (expr|star_expr) (',' (expr|star_expr))* [','] +testlist: test (',' test)* [','] +dictsetmaker: ( ((test ':' asexpr_test | '**' expr) + (comp_for | (',' (test ':' asexpr_test | '**' expr))* [','])) | + ((test [':=' test] | star_expr) + (comp_for | (',' (test [':=' test] | star_expr))* [','])) ) + +classdef: 'class' NAME [typeparams] ['(' [arglist] ')'] ':' suite + +arglist: argument (',' argument)* [','] + +# "test '=' test" is really "keyword '=' test", but we have no such token. +# These need to be in a single rule to avoid grammar that is ambiguous +# to our LL(1) parser. Even though 'test' includes '*expr' in star_expr, +# we explicitly match '*' here, too, to give it proper precedence. +# Illegal combinations and orderings are blocked in ast.c: +# multiple (test comp_for) arguments are blocked; keyword unpackings +# that precede iterable unpackings are blocked; etc. +argument: ( test [comp_for] | + test ':=' test [comp_for] | + test 'as' test | + test '=' asexpr_test | + '**' test | + '*' test ) + +comp_iter: comp_for | comp_if +comp_for: [ASYNC] 'for' exprlist 'in' or_test [comp_iter] +comp_if: 'if' old_test [comp_iter] + +# As noted above, testlist_safe extends the syntax allowed in list +# comprehensions and generators. We can't use it indiscriminately in all +# derivations using a comp_for-like pattern because the testlist_safe derivation +# contains comma which clashes with trailing comma in arglist. +# +# This was an issue because the parser would not follow the correct derivation +# when parsing syntactically valid Python code. Since testlist_safe was created +# specifically to handle list comprehensions and generator expressions enclosed +# with parentheses, it's safe to only use it in those. That avoids the issue; we +# can parse code like set(x for x in [],). +# +# The syntax supported by this set of rules is not a valid Python 3 syntax, +# hence the prefix "old". +# +# See https://bugs.python.org/issue27494 +old_comp_iter: old_comp_for | old_comp_if +old_comp_for: [ASYNC] 'for' exprlist 'in' testlist_safe [old_comp_iter] +old_comp_if: 'if' old_test [old_comp_iter] + +testlist1: test (',' test)* + +# not used in grammar, but may appear in "node" passed from Parser to Compiler +encoding_decl: NAME + +yield_expr: 'yield' [yield_arg] +yield_arg: 'from' test | testlist_star_expr + + +# 3.10 match statement definition + +# PS: normally the grammar is much much more restricted, but +# at this moment for not trying to bother much with encoding the +# exact same DSL in a LL(1) parser, we will just accept an expression +# and let the ast.parse() step of the safe mode to reject invalid +# grammar. + +# The reason why it is more restricted is that, patterns are some +# sort of a DSL (more advanced than our LHS on assignments, but +# still in a very limited python subset). They are not really +# expressions, but who cares. If we can parse them, that is enough +# to reformat them. + +match_stmt: "match" subject_expr ':' NEWLINE INDENT case_block+ DEDENT + +# This is more permissive than the actual version. For example it +# accepts `match *something:`, even though single-item starred expressions +# are forbidden. +subject_expr: (namedexpr_test|star_expr) (',' (namedexpr_test|star_expr))* [','] + +# cases +case_block: "case" patterns [guard] ':' suite +guard: 'if' namedexpr_test +patterns: pattern (',' pattern)* [','] +pattern: (expr|star_expr) ['as' expr] + +fstring: FSTRING_START fstring_middle* FSTRING_END +fstring_middle: fstring_replacement_field | FSTRING_MIDDLE +fstring_replacement_field: '{' (yield_expr | testlist_star_expr) ['='] [ "!" NAME ] [ ':' fstring_format_spec* ] '}' +fstring_format_spec: FSTRING_MIDDLE | fstring_replacement_field diff --git a/venv/lib/python3.12/site-packages/blib2to3/LICENSE b/venv/lib/python3.12/site-packages/blib2to3/LICENSE new file mode 100644 index 0000000000..ef8df0698b --- /dev/null +++ b/venv/lib/python3.12/site-packages/blib2to3/LICENSE @@ -0,0 +1,254 @@ +A. HISTORY OF THE SOFTWARE +========================== + +Python was created in the early 1990s by Guido van Rossum at Stichting +Mathematisch Centrum (CWI, see https://www.cwi.nl) in the Netherlands +as a successor of a language called ABC. Guido remains Python's +principal author, although it includes many contributions from others. + +In 1995, Guido continued his work on Python at the Corporation for +National Research Initiatives (CNRI, see https://www.cnri.reston.va.us) +in Reston, Virginia where he released several versions of the +software. + +In May 2000, Guido and the Python core development team moved to +BeOpen.com to form the BeOpen PythonLabs team. In October of the same +year, the PythonLabs team moved to Digital Creations, which became +Zope Corporation. In 2001, the Python Software Foundation (PSF, see +https://www.python.org/psf/) was formed, a non-profit organization +created specifically to own Python-related Intellectual Property. +Zope Corporation was a sponsoring member of the PSF. + +All Python releases are Open Source (see https://opensource.org for +the Open Source Definition). Historically, most, but not all, Python +releases have also been GPL-compatible; the table below summarizes +the various releases. + + Release Derived Year Owner GPL- + from compatible? (1) + + 0.9.0 thru 1.2 1991-1995 CWI yes + 1.3 thru 1.5.2 1.2 1995-1999 CNRI yes + 1.6 1.5.2 2000 CNRI no + 2.0 1.6 2000 BeOpen.com no + 1.6.1 1.6 2001 CNRI yes (2) + 2.1 2.0+1.6.1 2001 PSF no + 2.0.1 2.0+1.6.1 2001 PSF yes + 2.1.1 2.1+2.0.1 2001 PSF yes + 2.1.2 2.1.1 2002 PSF yes + 2.1.3 2.1.2 2002 PSF yes + 2.2 and above 2.1.1 2001-now PSF yes + +Footnotes: + +(1) GPL-compatible doesn't mean that we're distributing Python under + the GPL. All Python licenses, unlike the GPL, let you distribute + a modified version without making your changes open source. The + GPL-compatible licenses make it possible to combine Python with + other software that is released under the GPL; the others don't. + +(2) According to Richard Stallman, 1.6.1 is not GPL-compatible, + because its license has a choice of law clause. According to + CNRI, however, Stallman's lawyer has told CNRI's lawyer that 1.6.1 + is "not incompatible" with the GPL. + +Thanks to the many outside volunteers who have worked under Guido's +direction to make these releases possible. + + +B. TERMS AND CONDITIONS FOR ACCESSING OR OTHERWISE USING PYTHON +=============================================================== + +PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2 +-------------------------------------------- + +1. This LICENSE AGREEMENT is between the Python Software Foundation +("PSF"), and the Individual or Organization ("Licensee") accessing and +otherwise using this software ("Python") in source or binary form and +its associated documentation. + +2. Subject to the terms and conditions of this License Agreement, PSF hereby +grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce, +analyze, test, perform and/or display publicly, prepare derivative works, +distribute, and otherwise use Python alone or in any derivative version, +provided, however, that PSF's License Agreement and PSF's notice of copyright, +i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, +2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 Python Software Foundation; All +Rights Reserved" are retained in Python alone or in any derivative version +prepared by Licensee. + +3. In the event Licensee prepares a derivative work that is based on +or incorporates Python or any part thereof, and wants to make +the derivative work available to others as provided herein, then +Licensee hereby agrees to include in any such work a brief summary of +the changes made to Python. + +4. PSF is making Python available to Licensee on an "AS IS" +basis. PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR +IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND +DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS +FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON WILL NOT +INFRINGE ANY THIRD PARTY RIGHTS. + +5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON +FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS +A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON, +OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. + +6. This License Agreement will automatically terminate upon a material +breach of its terms and conditions. + +7. Nothing in this License Agreement shall be deemed to create any +relationship of agency, partnership, or joint venture between PSF and +Licensee. This License Agreement does not grant permission to use PSF +trademarks or trade name in a trademark sense to endorse or promote +products or services of Licensee, or any third party. + +8. By copying, installing or otherwise using Python, Licensee +agrees to be bound by the terms and conditions of this License +Agreement. + + +BEOPEN.COM LICENSE AGREEMENT FOR PYTHON 2.0 +------------------------------------------- + +BEOPEN PYTHON OPEN SOURCE LICENSE AGREEMENT VERSION 1 + +1. This LICENSE AGREEMENT is between BeOpen.com ("BeOpen"), having an +office at 160 Saratoga Avenue, Santa Clara, CA 95051, and the +Individual or Organization ("Licensee") accessing and otherwise using +this software in source or binary form and its associated +documentation ("the Software"). + +2. Subject to the terms and conditions of this BeOpen Python License +Agreement, BeOpen hereby grants Licensee a non-exclusive, +royalty-free, world-wide license to reproduce, analyze, test, perform +and/or display publicly, prepare derivative works, distribute, and +otherwise use the Software alone or in any derivative version, +provided, however, that the BeOpen Python License is retained in the +Software, alone or in any derivative version prepared by Licensee. + +3. BeOpen is making the Software available to Licensee on an "AS IS" +basis. BEOPEN MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR +IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, BEOPEN MAKES NO AND +DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS +FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE WILL NOT +INFRINGE ANY THIRD PARTY RIGHTS. + +4. BEOPEN SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF THE +SOFTWARE FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS +AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THE SOFTWARE, OR ANY +DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. + +5. This License Agreement will automatically terminate upon a material +breach of its terms and conditions. + +6. This License Agreement shall be governed by and interpreted in all +respects by the law of the State of California, excluding conflict of +law provisions. Nothing in this License Agreement shall be deemed to +create any relationship of agency, partnership, or joint venture +between BeOpen and Licensee. This License Agreement does not grant +permission to use BeOpen trademarks or trade names in a trademark +sense to endorse or promote products or services of Licensee, or any +third party. As an exception, the "BeOpen Python" logos available at +http://www.pythonlabs.com/logos.html may be used according to the +permissions granted on that web page. + +7. By copying, installing or otherwise using the software, Licensee +agrees to be bound by the terms and conditions of this License +Agreement. + + +CNRI LICENSE AGREEMENT FOR PYTHON 1.6.1 +--------------------------------------- + +1. This LICENSE AGREEMENT is between the Corporation for National +Research Initiatives, having an office at 1895 Preston White Drive, +Reston, VA 20191 ("CNRI"), and the Individual or Organization +("Licensee") accessing and otherwise using Python 1.6.1 software in +source or binary form and its associated documentation. + +2. Subject to the terms and conditions of this License Agreement, CNRI +hereby grants Licensee a nonexclusive, royalty-free, world-wide +license to reproduce, analyze, test, perform and/or display publicly, +prepare derivative works, distribute, and otherwise use Python 1.6.1 +alone or in any derivative version, provided, however, that CNRI's +License Agreement and CNRI's notice of copyright, i.e., "Copyright (c) +1995-2001 Corporation for National Research Initiatives; All Rights +Reserved" are retained in Python 1.6.1 alone or in any derivative +version prepared by Licensee. Alternately, in lieu of CNRI's License +Agreement, Licensee may substitute the following text (omitting the +quotes): "Python 1.6.1 is made available subject to the terms and +conditions in CNRI's License Agreement. This Agreement together with +Python 1.6.1 may be located on the Internet using the following +unique, persistent identifier (known as a handle): 1895.22/1013. This +Agreement may also be obtained from a proxy server on the Internet +using the following URL: http://hdl.handle.net/1895.22/1013". + +3. In the event Licensee prepares a derivative work that is based on +or incorporates Python 1.6.1 or any part thereof, and wants to make +the derivative work available to others as provided herein, then +Licensee hereby agrees to include in any such work a brief summary of +the changes made to Python 1.6.1. + +4. CNRI is making Python 1.6.1 available to Licensee on an "AS IS" +basis. CNRI MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR +IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, CNRI MAKES NO AND +DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS +FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON 1.6.1 WILL NOT +INFRINGE ANY THIRD PARTY RIGHTS. + +5. CNRI SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON +1.6.1 FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS +A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON 1.6.1, +OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. + +6. This License Agreement will automatically terminate upon a material +breach of its terms and conditions. + +7. This License Agreement shall be governed by the federal +intellectual property law of the United States, including without +limitation the federal copyright law, and, to the extent such +U.S. federal law does not apply, by the law of the Commonwealth of +Virginia, excluding Virginia's conflict of law provisions. +Notwithstanding the foregoing, with regard to derivative works based +on Python 1.6.1 that incorporate non-separable material that was +previously distributed under the GNU General Public License (GPL), the +law of the Commonwealth of Virginia shall govern this License +Agreement only as to issues arising under or with respect to +Paragraphs 4, 5, and 7 of this License Agreement. Nothing in this +License Agreement shall be deemed to create any relationship of +agency, partnership, or joint venture between CNRI and Licensee. This +License Agreement does not grant permission to use CNRI trademarks or +trade name in a trademark sense to endorse or promote products or +services of Licensee, or any third party. + +8. By clicking on the "ACCEPT" button where indicated, or by copying, +installing or otherwise using Python 1.6.1, Licensee agrees to be +bound by the terms and conditions of this License Agreement. + + ACCEPT + + +CWI LICENSE AGREEMENT FOR PYTHON 0.9.0 THROUGH 1.2 +-------------------------------------------------- + +Copyright (c) 1991 - 1995, Stichting Mathematisch Centrum Amsterdam, +The Netherlands. All rights reserved. + +Permission to use, copy, modify, and distribute this software and its +documentation for any purpose and without fee is hereby granted, +provided that the above copyright notice appear in all copies and that +both that copyright notice and this permission notice appear in +supporting documentation, and that the name of Stichting Mathematisch +Centrum or CWI not be used in advertising or publicity pertaining to +distribution of the software without specific, written prior +permission. + +STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO +THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE +FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT +OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/venv/lib/python3.12/site-packages/blib2to3/PatternGrammar.txt b/venv/lib/python3.12/site-packages/blib2to3/PatternGrammar.txt new file mode 100644 index 0000000000..36bf814827 --- /dev/null +++ b/venv/lib/python3.12/site-packages/blib2to3/PatternGrammar.txt @@ -0,0 +1,28 @@ +# Copyright 2006 Google, Inc. All Rights Reserved. +# Licensed to PSF under a Contributor Agreement. + +# A grammar to describe tree matching patterns. +# Not shown here: +# - 'TOKEN' stands for any token (leaf node) +# - 'any' stands for any node (leaf or interior) +# With 'any' we can still specify the sub-structure. + +# The start symbol is 'Matcher'. + +Matcher: Alternatives ENDMARKER + +Alternatives: Alternative ('|' Alternative)* + +Alternative: (Unit | NegatedUnit)+ + +Unit: [NAME '='] ( STRING [Repeater] + | NAME [Details] [Repeater] + | '(' Alternatives ')' [Repeater] + | '[' Alternatives ']' + ) + +NegatedUnit: 'not' (STRING | NAME [Details] | '(' Alternatives ')') + +Repeater: '*' | '+' | '{' NUMBER [',' NUMBER] '}' + +Details: '<' Alternatives '>' diff --git a/venv/lib/python3.12/site-packages/blib2to3/README b/venv/lib/python3.12/site-packages/blib2to3/README new file mode 100644 index 0000000000..38b04158dd --- /dev/null +++ b/venv/lib/python3.12/site-packages/blib2to3/README @@ -0,0 +1,24 @@ +A subset of lib2to3 taken from Python 3.7.0b2. Commit hash: +9c17e3a1987004b8bcfbe423953aad84493a7984 + +Reasons for forking: + +- consistent handling of f-strings for users of Python < 3.6.2 +- backport of BPO-33064 that fixes parsing files with trailing commas after \*args and + \*\*kwargs +- backport of GH-6143 that restores the ability to reformat legacy usage of `async` +- support all types of string literals +- better ability to debug (better reprs) +- INDENT and DEDENT don't hold whitespace and comment prefixes +- ability to Cythonize + +Change Log: + +- Changes default logger used by Driver +- Backported the following upstream parser changes: + - "bpo-42381: Allow walrus in set literals and set comprehensions (GH-23332)" + https://github.com/python/cpython/commit/cae60187cf7a7b26281d012e1952fafe4e2e97e9 + - "bpo-42316: Allow unparenthesized walrus operator in indexes (GH-23317)" + https://github.com/python/cpython/commit/b0aba1fcdc3da952698d99aec2334faa79a8b68c +- Tweaks to help mypyc compile faster code (including inlining type information, + "Final-ing", etc.) diff --git a/venv/lib/python3.12/site-packages/blib2to3/__init__.py b/venv/lib/python3.12/site-packages/blib2to3/__init__.py new file mode 100644 index 0000000000..1bb8bf6d7f --- /dev/null +++ b/venv/lib/python3.12/site-packages/blib2to3/__init__.py @@ -0,0 +1 @@ +# empty diff --git a/venv/lib/python3.12/site-packages/blib2to3/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/blib2to3/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..eaaa56a8b9a041b31f83376943a879157253fb52 GIT binary patch literal 185 zcmX@j%ge<81l4XQ(l~(hV-N=&d}aZPOlPQM&}8&m$xy@uJXUz}Nzs#^e5 zn3$eg3{;qzWK@!GtREkrnU`4-AFo$X`HRCQH$SB`C)KWq6=)G75Ep|OADI~$8H<>K FECBC;FOC2J literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/blib2to3/__pycache__/pygram.cpython-312.pyc b/venv/lib/python3.12/site-packages/blib2to3/__pycache__/pygram.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..691c6ae8901700ef68b3786e0c1ce04de263f6c5 GIT binary patch literal 6432 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 JH5jt^zX1spTB!g4 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/blib2to3/pgen2/__init__.py b/venv/lib/python3.12/site-packages/blib2to3/pgen2/__init__.py new file mode 100644 index 0000000000..af39048452 --- /dev/null +++ b/venv/lib/python3.12/site-packages/blib2to3/pgen2/__init__.py @@ -0,0 +1,4 @@ +# Copyright 2004-2005 Elemental Security, Inc. All Rights Reserved. +# Licensed to PSF under a Contributor Agreement. + +"""The pgen2 package.""" diff --git a/venv/lib/python3.12/site-packages/blib2to3/pgen2/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/blib2to3/pgen2/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..96aea8a6af31649725ed103290dc855c816ca5e6 GIT binary patch literal 226 zcmX@j%ge<81l4XQ()xk)V-N=h7@>^M96-i&h7^V|N!5j#TMSf~nPgOwZ>$ftPd`3BGcU6w rK3=b&@)w6qZhlH>PO4oI8_+tCV~at4`M}J`$oPqafl;!E1;_;e9pXL_ literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/blib2to3/pgen2/__pycache__/conv.cpython-312.pyc b/venv/lib/python3.12/site-packages/blib2to3/pgen2/__pycache__/conv.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4d442633b30c0d1f561135a4fd7c665380cfdf35 GIT binary patch literal 11858 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/blib2to3/pgen2/__pycache__/driver.cpython-312.pyc b/venv/lib/python3.12/site-packages/blib2to3/pgen2/__pycache__/driver.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4644f23d225cee6d944be46622b2feb7f8c37000 GIT binary patch literal 14347 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 Q68S=CE}A)^fo<0R0~|wIU;qFB literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/blib2to3/pgen2/__pycache__/grammar.cpython-312.pyc b/venv/lib/python3.12/site-packages/blib2to3/pgen2/__pycache__/grammar.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2979f0e65252690d3f84c6aa890e864c454abe08 GIT binary patch literal 8502 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/blib2to3/pgen2/__pycache__/literals.cpython-312.pyc b/venv/lib/python3.12/site-packages/blib2to3/pgen2/__pycache__/literals.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ca7604ebfb58da182205fff3bb9af379a8f97e57 GIT binary patch literal 2851 zcmai0O>7&-6`t82a=E*tXv&c-MY5@%#AYg+mfXmVD+`b%xwQfdRT&$pLYG)^RuX0Y zd3GsV^0KCd7NH`iUc&`Upgy>0fws`GJqYL}O?xoV3mrKqyAaSrPP#Fc4*`4W%!*4% zsge%J`FZb~H*aR%`)2>)^@@O$JC~l#Ot=8}f)1P_)jQiI(s>N70tBW2f{01NDM(s2 z$)wmRHpNYG5Fifm$c5ZUKprF_3CYNdd{4wFUS(C6>Y8C%i51n2ng&UW{3@rqs01A% zIt~SX&P@rZS#{ONhsoH3j-b~_E2)!>O5?5e?NNVK40!D$Q5STJotY(d?E3s@$Wu$NXo zQdvGNk;*33n5xBiQXwZ>9FL#y-uW$fdS_CYU?O^>TAr-AWGUi z%rgd@r}Ms65W7~NuQB6b8S0z^n0Gt9-PT|nbe=WXdyK(GfWaJSmvfN#9fLs(0&O7A z=^n?H(aOl6?1$i+y+L4^xdm>sKLNMkx6bqI-^Jc}A#noJ>)E1bzjOWY_7;^abtcjz z(h?{*r`~o#awjB$Cr?D*&`yN5{B)*3!QBox6W5jG!SIk^@v}IS%UYtQD_GZPT;mop z-C}1|-C~n!+7hpkTu{d_&R~m8q=_^>heIxW#D*!!q{Zn!8DzmCafQjjTJ##jkomJEQ1iO=pr?ZQeYv&MfFIkd$rF})J0;u>8J$65Imtd*y zk@w!^!btIOMe;ouS{W+!ypWEUx#MN&_@;RDpJMxSvAy)(hS*gYskp_$-AYrSC|2Ck zhj;JYHMJM+*DLt`KyE7DTpcJ}sd`w?HCs1Y>U<;Qxi)x4i_A&faJAnO>G7 zRhBCL^Gd9Ph#3kR`2;=h7~crITb{gHmakIOHCWS*lFk41ZTVsk_|z+p0Ptx~>%|M~ z-$3g~D{Db*A7juwwi(0xR>p9$N9*|pPHE)6);tdM2A3Fw=Mmf1$X17Mmm$$`l(X}+ z2N2%|42bw8!eBN#^UjFs=P9p!tr)Q3Q^)=l^#(WXVkEN0L0;^^Hhe^`J<`T1wr5ci zS~e3J;2_LFGKq2<*yXnQ2AAw^2)T92_jWPBTK)7QAS6uec?jBweuo$+0JoEBDHM&K zjGi!}T}Cu&e4tFvq_Mtm-MD@F&Y9l+yz#-AQ|GSV>FYh44~5(~NM=|ZR0k6grl2JzcOKrz~1NJa8Yk{=AN43^jz zQu|Z*d-*r=A0jV;ePwRw&);2#>s{-8>-?X-zrhWarM`;bDR!=Kh2e@@C)`yfs$r!?~6mqhXy=#BRiH6mdYTt7$Rc3+e`v6zQ?BUX2#FVF0Wj7Fx=SJHqt zh%F7?e`_~F43Y^3c|F(auPp@k-{HU_2r&~|v#V1t0nZ;R!cDo!gsYcm z$8R25{Q>Q?m^W9i*q1|81Do<8v(ucU)cU#H@uftj;Q?aF5@NBGl1Rs5B#bB#O@w62 z9gCq%JQll>>bsF!Bht2lIjqqo1s^xeM~CChY-FL033l|0MEa{v8oG*zKX~DKR>zRkt?F_ z%h#kXrrMp)m{O<3(f8-plzvp+itg8 cT<};m064k0^cmawFHZQyr78=!Hrw6*0$0j<+5i9m literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/blib2to3/pgen2/__pycache__/parse.cpython-312.pyc b/venv/lib/python3.12/site-packages/blib2to3/pgen2/__pycache__/parse.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c4d77ea1a798a23e8b81a9054bc2a17cef31848f GIT binary patch literal 17784 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 Yxjnt%8!WZ`+qP$H{J_^7z1iOVKe9d~00000 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/blib2to3/pgen2/__pycache__/pgen.cpython-312.pyc b/venv/lib/python3.12/site-packages/blib2to3/pgen2/__pycache__/pgen.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..727d6600704b65b2d8ce44e544a58e7fee855978 GIT binary patch literal 20886 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 qK>e%(Gyoc8 zouDC*k9C2DLAzKtXg6pN>jCWrjj&$OKG1&F2O0$(VEv$jphIi`bQpAm4T8o%N7)eQ z80a|jflh$N*)YftI>~l{PJt%aZqOv?G}{9@13Jt0g3f`?vk}k*&_%WnbP05s?FU@} zU1g)7YoP1w04M;OVh2G%P>3A@$)GSh44MYbup^)d=mRzengvDKQBVw|uw$S&XpS8R z&4Uu`1V{xX**GW#`jGiSH$XSpNzg42W2Zp3L3h{$=q~6tY!Z|P{g#~uWk3t;3}_LQ zWoJPe=pH)HC2eTY}}yvjM;T(D7RSAUEy3Ylh>PNB@_!JX61xI^VOY7 zASN4PvXbsrQn4xFI{<1j5mBZMN^p9UBHxHc6xnd0D58X9C26<;AsHYNqv$L;7f2W$ zgb50pO;??tGAM`Y&IE<66uN@(Xk0Pcw&PeVV6>x(D#s#*7vWqqr5YWm5sN4y?lfy8 zMb}-h)o4JSF}h)YI3?^J*n!xbSV%AIsI01nI1#ao>4Y3eih_PrlIK%_s4+mXBNR^> zgQz1K25EJ44fN)zKyY?G6;H~BkJufZN(6$kF$_qUunX@&nLHBzIn`sUv z?Ao``9UkmX87q9NJXM{!Fqk_e_^;i!Dm*iVLNA5N+>k#N!&MTJCUdS=@=03#Gn zO^HEhV-BJPZJpWuA!3i%KNAn5m};7Q1nseprZGlF+x9k?)=|{KrkchvbV3_$@^Ru0 zYucuJf?V&;+)Z;FRjmb>t{<+o3e!DFZtJ#-lRiaGXMJpT=AVWg zpEJ(D4#s0KI@+_am8fx!0(T;iNW^a#=LuYa8-YmDxM0TWEhT7Nq_{;EbrQ+=tgIN9 zVBq?i!_Yg{+r#FINz>LQjVt7N-+Hk~C=`{At7NvmHN{Ibu94%M3W%3>okEY2#vrO8 ziRY;|E6H>`99HF|?hy|=UCb0T-S&y@=2~Ty7ZTsTr}Zdll)1DxfK452=(@e zs>GF@QNI)34e@`oGwS!v&#u094)Je=``)99cd|X|n2l2&{GV}M5mk>>Ok2&2^9v}&l$RyJw5t3Pw7)hLDoGzOUESV@|WDVT|^U zs-v0`>#_=awin&E+1YKbRjg|#vg&pBRz0hqJg1mdrchkP{Zu3nOMi%umk<(73|+~OQQ#A z$Lr3z`eL+x^IPvfTJ~;82Y%@rdU^QIV}J3#^l$i%ZS)=gw`8~NdlIY4wX?r8wbsJx zkL%^1n|zzYBQ;OG|7XwOmP=IFYO&dd>Z4nd_`EpqhCW*!o6T2O$@0BOlI4R{Gp%~^ JKV%^%{uc_y(|`Z~ literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/blib2to3/pgen2/__pycache__/tokenize.cpython-312.pyc b/venv/lib/python3.12/site-packages/blib2to3/pgen2/__pycache__/tokenize.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..398bbeb846496590f88a66d92c82a36bd4ae84a5 GIT binary patch literal 37530 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 DMzVI) literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/blib2to3/pgen2/conv.py b/venv/lib/python3.12/site-packages/blib2to3/pgen2/conv.py new file mode 100644 index 0000000000..04eccfa1d4 --- /dev/null +++ b/venv/lib/python3.12/site-packages/blib2to3/pgen2/conv.py @@ -0,0 +1,256 @@ +# Copyright 2004-2005 Elemental Security, Inc. All Rights Reserved. +# Licensed to PSF under a Contributor Agreement. + +# mypy: ignore-errors + +"""Convert graminit.[ch] spit out by pgen to Python code. + +Pgen is the Python parser generator. It is useful to quickly create a +parser from a grammar file in Python's grammar notation. But I don't +want my parsers to be written in C (yet), so I'm translating the +parsing tables to Python data structures and writing a Python parse +engine. + +Note that the token numbers are constants determined by the standard +Python tokenizer. The standard token module defines these numbers and +their names (the names are not used much). The token numbers are +hardcoded into the Python tokenizer and into pgen. A Python +implementation of the Python tokenizer is also available, in the +standard tokenize module. + +On the other hand, symbol numbers (representing the grammar's +non-terminals) are assigned by pgen based on the actual grammar +input. + +Note: this module is pretty much obsolete; the pgen module generates +equivalent grammar tables directly from the Grammar.txt input file +without having to invoke the Python pgen C program. + +""" + +# Python imports +import re + +# Local imports +from pgen2 import grammar, token + + +class Converter(grammar.Grammar): + """Grammar subclass that reads classic pgen output files. + + The run() method reads the tables as produced by the pgen parser + generator, typically contained in two C files, graminit.h and + graminit.c. The other methods are for internal use only. + + See the base class for more documentation. + + """ + + def run(self, graminit_h, graminit_c): + """Load the grammar tables from the text files written by pgen.""" + self.parse_graminit_h(graminit_h) + self.parse_graminit_c(graminit_c) + self.finish_off() + + def parse_graminit_h(self, filename): + """Parse the .h file written by pgen. (Internal) + + This file is a sequence of #define statements defining the + nonterminals of the grammar as numbers. We build two tables + mapping the numbers to names and back. + + """ + try: + f = open(filename) + except OSError as err: + print(f"Can't open {filename}: {err}") + return False + self.symbol2number = {} + self.number2symbol = {} + lineno = 0 + for line in f: + lineno += 1 + mo = re.match(r"^#define\s+(\w+)\s+(\d+)$", line) + if not mo and line.strip(): + print(f"{filename}({lineno}): can't parse {line.strip()}") + else: + symbol, number = mo.groups() + number = int(number) + assert symbol not in self.symbol2number + assert number not in self.number2symbol + self.symbol2number[symbol] = number + self.number2symbol[number] = symbol + return True + + def parse_graminit_c(self, filename): + """Parse the .c file written by pgen. (Internal) + + The file looks as follows. The first two lines are always this: + + #include "pgenheaders.h" + #include "grammar.h" + + After that come four blocks: + + 1) one or more state definitions + 2) a table defining dfas + 3) a table defining labels + 4) a struct defining the grammar + + A state definition has the following form: + - one or more arc arrays, each of the form: + static arc arcs__[] = { + {, }, + ... + }; + - followed by a state array, of the form: + static state states_[] = { + {, arcs__}, + ... + }; + + """ + try: + f = open(filename) + except OSError as err: + print(f"Can't open {filename}: {err}") + return False + # The code below essentially uses f's iterator-ness! + lineno = 0 + + # Expect the two #include lines + lineno, line = lineno + 1, next(f) + assert line == '#include "pgenheaders.h"\n', (lineno, line) + lineno, line = lineno + 1, next(f) + assert line == '#include "grammar.h"\n', (lineno, line) + + # Parse the state definitions + lineno, line = lineno + 1, next(f) + allarcs = {} + states = [] + while line.startswith("static arc "): + while line.startswith("static arc "): + mo = re.match(r"static arc arcs_(\d+)_(\d+)\[(\d+)\] = {$", line) + assert mo, (lineno, line) + n, m, k = list(map(int, mo.groups())) + arcs = [] + for _ in range(k): + lineno, line = lineno + 1, next(f) + mo = re.match(r"\s+{(\d+), (\d+)},$", line) + assert mo, (lineno, line) + i, j = list(map(int, mo.groups())) + arcs.append((i, j)) + lineno, line = lineno + 1, next(f) + assert line == "};\n", (lineno, line) + allarcs[(n, m)] = arcs + lineno, line = lineno + 1, next(f) + mo = re.match(r"static state states_(\d+)\[(\d+)\] = {$", line) + assert mo, (lineno, line) + s, t = list(map(int, mo.groups())) + assert s == len(states), (lineno, line) + state = [] + for _ in range(t): + lineno, line = lineno + 1, next(f) + mo = re.match(r"\s+{(\d+), arcs_(\d+)_(\d+)},$", line) + assert mo, (lineno, line) + k, n, m = list(map(int, mo.groups())) + arcs = allarcs[n, m] + assert k == len(arcs), (lineno, line) + state.append(arcs) + states.append(state) + lineno, line = lineno + 1, next(f) + assert line == "};\n", (lineno, line) + lineno, line = lineno + 1, next(f) + self.states = states + + # Parse the dfas + dfas = {} + mo = re.match(r"static dfa dfas\[(\d+)\] = {$", line) + assert mo, (lineno, line) + ndfas = int(mo.group(1)) + for i in range(ndfas): + lineno, line = lineno + 1, next(f) + mo = re.match(r'\s+{(\d+), "(\w+)", (\d+), (\d+), states_(\d+),$', line) + assert mo, (lineno, line) + symbol = mo.group(2) + number, x, y, z = list(map(int, mo.group(1, 3, 4, 5))) + assert self.symbol2number[symbol] == number, (lineno, line) + assert self.number2symbol[number] == symbol, (lineno, line) + assert x == 0, (lineno, line) + state = states[z] + assert y == len(state), (lineno, line) + lineno, line = lineno + 1, next(f) + mo = re.match(r'\s+("(?:\\\d\d\d)*")},$', line) + assert mo, (lineno, line) + first = {} + rawbitset = eval(mo.group(1)) + for i, c in enumerate(rawbitset): + byte = ord(c) + for j in range(8): + if byte & (1 << j): + first[i * 8 + j] = 1 + dfas[number] = (state, first) + lineno, line = lineno + 1, next(f) + assert line == "};\n", (lineno, line) + self.dfas = dfas + + # Parse the labels + labels = [] + lineno, line = lineno + 1, next(f) + mo = re.match(r"static label labels\[(\d+)\] = {$", line) + assert mo, (lineno, line) + nlabels = int(mo.group(1)) + for i in range(nlabels): + lineno, line = lineno + 1, next(f) + mo = re.match(r'\s+{(\d+), (0|"\w+")},$', line) + assert mo, (lineno, line) + x, y = mo.groups() + x = int(x) + if y == "0": + y = None + else: + y = eval(y) + labels.append((x, y)) + lineno, line = lineno + 1, next(f) + assert line == "};\n", (lineno, line) + self.labels = labels + + # Parse the grammar struct + lineno, line = lineno + 1, next(f) + assert line == "grammar _PyParser_Grammar = {\n", (lineno, line) + lineno, line = lineno + 1, next(f) + mo = re.match(r"\s+(\d+),$", line) + assert mo, (lineno, line) + ndfas = int(mo.group(1)) + assert ndfas == len(self.dfas) + lineno, line = lineno + 1, next(f) + assert line == "\tdfas,\n", (lineno, line) + lineno, line = lineno + 1, next(f) + mo = re.match(r"\s+{(\d+), labels},$", line) + assert mo, (lineno, line) + nlabels = int(mo.group(1)) + assert nlabels == len(self.labels), (lineno, line) + lineno, line = lineno + 1, next(f) + mo = re.match(r"\s+(\d+)$", line) + assert mo, (lineno, line) + start = int(mo.group(1)) + assert start in self.number2symbol, (lineno, line) + self.start = start + lineno, line = lineno + 1, next(f) + assert line == "};\n", (lineno, line) + try: + lineno, line = lineno + 1, next(f) + except StopIteration: + pass + else: + assert 0, (lineno, line) + + def finish_off(self): + """Create additional useful structures. (Internal).""" + self.keywords = {} # map from keyword strings to arc labels + self.tokens = {} # map from numeric token values to arc labels + for ilabel, (type, value) in enumerate(self.labels): + if type == token.NAME and value is not None: + self.keywords[value] = ilabel + elif value is None: + self.tokens[type] = ilabel diff --git a/venv/lib/python3.12/site-packages/blib2to3/pgen2/driver.py b/venv/lib/python3.12/site-packages/blib2to3/pgen2/driver.py new file mode 100644 index 0000000000..71a147cbcd --- /dev/null +++ b/venv/lib/python3.12/site-packages/blib2to3/pgen2/driver.py @@ -0,0 +1,318 @@ +# Copyright 2004-2005 Elemental Security, Inc. All Rights Reserved. +# Licensed to PSF under a Contributor Agreement. + +# Modifications: +# Copyright 2006 Google, Inc. All Rights Reserved. +# Licensed to PSF under a Contributor Agreement. + +"""Parser driver. + +This provides a high-level interface to parse a file into a syntax tree. + +""" + +__author__ = "Guido van Rossum " + +__all__ = ["Driver", "load_grammar"] + +# Python imports +import io +import logging +import os +import pkgutil +import sys +from contextlib import contextmanager +from dataclasses import dataclass, field +from logging import Logger +from typing import IO, Any, Iterable, Iterator, List, Optional, Tuple, Union, cast + +from blib2to3.pgen2.grammar import Grammar +from blib2to3.pgen2.tokenize import GoodTokenInfo +from blib2to3.pytree import NL + +# Pgen imports +from . import grammar, parse, pgen, token, tokenize + +Path = Union[str, "os.PathLike[str]"] + + +@dataclass +class ReleaseRange: + start: int + end: Optional[int] = None + tokens: List[Any] = field(default_factory=list) + + def lock(self) -> None: + total_eaten = len(self.tokens) + self.end = self.start + total_eaten + + +class TokenProxy: + def __init__(self, generator: Any) -> None: + self._tokens = generator + self._counter = 0 + self._release_ranges: List[ReleaseRange] = [] + + @contextmanager + def release(self) -> Iterator["TokenProxy"]: + release_range = ReleaseRange(self._counter) + self._release_ranges.append(release_range) + try: + yield self + finally: + # Lock the last release range to the final position that + # has been eaten. + release_range.lock() + + def eat(self, point: int) -> Any: + eaten_tokens = self._release_ranges[-1].tokens + if point < len(eaten_tokens): + return eaten_tokens[point] + else: + while point >= len(eaten_tokens): + token = next(self._tokens) + eaten_tokens.append(token) + return token + + def __iter__(self) -> "TokenProxy": + return self + + def __next__(self) -> Any: + # If the current position is already compromised (looked up) + # return the eaten token, if not just go further on the given + # token producer. + for release_range in self._release_ranges: + assert release_range.end is not None + + start, end = release_range.start, release_range.end + if start <= self._counter < end: + token = release_range.tokens[self._counter - start] + break + else: + token = next(self._tokens) + self._counter += 1 + return token + + def can_advance(self, to: int) -> bool: + # Try to eat, fail if it can't. The eat operation is cached + # so there won't be any additional cost of eating here + try: + self.eat(to) + except StopIteration: + return False + else: + return True + + +class Driver: + def __init__(self, grammar: Grammar, logger: Optional[Logger] = None) -> None: + self.grammar = grammar + if logger is None: + logger = logging.getLogger(__name__) + self.logger = logger + + def parse_tokens(self, tokens: Iterable[GoodTokenInfo], debug: bool = False) -> NL: + """Parse a series of tokens and return the syntax tree.""" + # XXX Move the prefix computation into a wrapper around tokenize. + proxy = TokenProxy(tokens) + + p = parse.Parser(self.grammar) + p.setup(proxy=proxy) + + lineno = 1 + column = 0 + indent_columns: List[int] = [] + type = value = start = end = line_text = None + prefix = "" + + for quintuple in proxy: + type, value, start, end, line_text = quintuple + if start != (lineno, column): + assert (lineno, column) <= start, ((lineno, column), start) + s_lineno, s_column = start + if lineno < s_lineno: + prefix += "\n" * (s_lineno - lineno) + lineno = s_lineno + column = 0 + if column < s_column: + prefix += line_text[column:s_column] + column = s_column + if type in (tokenize.COMMENT, tokenize.NL): + prefix += value + lineno, column = end + if value.endswith("\n"): + lineno += 1 + column = 0 + continue + if type == token.OP: + type = grammar.opmap[value] + if debug: + assert type is not None + self.logger.debug( + "%s %r (prefix=%r)", token.tok_name[type], value, prefix + ) + if type == token.INDENT: + indent_columns.append(len(value)) + _prefix = prefix + value + prefix = "" + value = "" + elif type == token.DEDENT: + _indent_col = indent_columns.pop() + prefix, _prefix = self._partially_consume_prefix(prefix, _indent_col) + if p.addtoken(cast(int, type), value, (prefix, start)): + if debug: + self.logger.debug("Stop.") + break + prefix = "" + if type in {token.INDENT, token.DEDENT}: + prefix = _prefix + lineno, column = end + # FSTRING_MIDDLE is the only token that can end with a newline, and + # `end` will point to the next line. For that case, don't increment lineno. + if value.endswith("\n") and type != token.FSTRING_MIDDLE: + lineno += 1 + column = 0 + else: + # We never broke out -- EOF is too soon (how can this happen???) + assert start is not None + raise parse.ParseError("incomplete input", type, value, (prefix, start)) + assert p.rootnode is not None + return p.rootnode + + def parse_stream_raw(self, stream: IO[str], debug: bool = False) -> NL: + """Parse a stream and return the syntax tree.""" + tokens = tokenize.generate_tokens(stream.readline, grammar=self.grammar) + return self.parse_tokens(tokens, debug) + + def parse_stream(self, stream: IO[str], debug: bool = False) -> NL: + """Parse a stream and return the syntax tree.""" + return self.parse_stream_raw(stream, debug) + + def parse_file( + self, filename: Path, encoding: Optional[str] = None, debug: bool = False + ) -> NL: + """Parse a file and return the syntax tree.""" + with open(filename, encoding=encoding) as stream: + return self.parse_stream(stream, debug) + + def parse_string(self, text: str, debug: bool = False) -> NL: + """Parse a string and return the syntax tree.""" + tokens = tokenize.generate_tokens( + io.StringIO(text).readline, grammar=self.grammar + ) + return self.parse_tokens(tokens, debug) + + def _partially_consume_prefix(self, prefix: str, column: int) -> Tuple[str, str]: + lines: List[str] = [] + current_line = "" + current_column = 0 + wait_for_nl = False + for char in prefix: + current_line += char + if wait_for_nl: + if char == "\n": + if current_line.strip() and current_column < column: + res = "".join(lines) + return res, prefix[len(res) :] + + lines.append(current_line) + current_line = "" + current_column = 0 + wait_for_nl = False + elif char in " \t": + current_column += 1 + elif char == "\n": + # unexpected empty line + current_column = 0 + elif char == "\f": + current_column = 0 + else: + # indent is finished + wait_for_nl = True + return "".join(lines), current_line + + +def _generate_pickle_name(gt: Path, cache_dir: Optional[Path] = None) -> str: + head, tail = os.path.splitext(gt) + if tail == ".txt": + tail = "" + name = head + tail + ".".join(map(str, sys.version_info)) + ".pickle" + if cache_dir: + return os.path.join(cache_dir, os.path.basename(name)) + else: + return name + + +def load_grammar( + gt: str = "Grammar.txt", + gp: Optional[str] = None, + save: bool = True, + force: bool = False, + logger: Optional[Logger] = None, +) -> Grammar: + """Load the grammar (maybe from a pickle).""" + if logger is None: + logger = logging.getLogger(__name__) + gp = _generate_pickle_name(gt) if gp is None else gp + if force or not _newer(gp, gt): + g: grammar.Grammar = pgen.generate_grammar(gt) + if save: + try: + g.dump(gp) + except OSError: + # Ignore error, caching is not vital. + pass + else: + g = grammar.Grammar() + g.load(gp) + return g + + +def _newer(a: str, b: str) -> bool: + """Inquire whether file a was written since file b.""" + if not os.path.exists(a): + return False + if not os.path.exists(b): + return True + return os.path.getmtime(a) >= os.path.getmtime(b) + + +def load_packaged_grammar( + package: str, grammar_source: str, cache_dir: Optional[Path] = None +) -> grammar.Grammar: + """Normally, loads a pickled grammar by doing + pkgutil.get_data(package, pickled_grammar) + where *pickled_grammar* is computed from *grammar_source* by adding the + Python version and using a ``.pickle`` extension. + + However, if *grammar_source* is an extant file, load_grammar(grammar_source) + is called instead. This facilitates using a packaged grammar file when needed + but preserves load_grammar's automatic regeneration behavior when possible. + + """ + if os.path.isfile(grammar_source): + gp = _generate_pickle_name(grammar_source, cache_dir) if cache_dir else None + return load_grammar(grammar_source, gp=gp) + pickled_name = _generate_pickle_name(os.path.basename(grammar_source), cache_dir) + data = pkgutil.get_data(package, pickled_name) + assert data is not None + g = grammar.Grammar() + g.loads(data) + return g + + +def main(*args: str) -> bool: + """Main program, when run as a script: produce grammar pickle files. + + Calls load_grammar for each argument, a path to a grammar text file. + """ + if not args: + args = tuple(sys.argv[1:]) + logging.basicConfig(level=logging.INFO, stream=sys.stdout, format="%(message)s") + for gt in args: + load_grammar(gt, save=True, force=True) + return True + + +if __name__ == "__main__": + sys.exit(int(not main())) diff --git a/venv/lib/python3.12/site-packages/blib2to3/pgen2/grammar.py b/venv/lib/python3.12/site-packages/blib2to3/pgen2/grammar.py new file mode 100644 index 0000000000..804db1ad98 --- /dev/null +++ b/venv/lib/python3.12/site-packages/blib2to3/pgen2/grammar.py @@ -0,0 +1,228 @@ +# Copyright 2004-2005 Elemental Security, Inc. All Rights Reserved. +# Licensed to PSF under a Contributor Agreement. + +"""This module defines the data structures used to represent a grammar. + +These are a bit arcane because they are derived from the data +structures used by Python's 'pgen' parser generator. + +There's also a table here mapping operators to their names in the +token module; the Python tokenize module reports all operators as the +fallback token code OP, but the parser needs the actual token code. + +""" + +# Python imports +import os +import pickle +import tempfile +from typing import Any, Dict, List, Optional, Tuple, TypeVar, Union + +# Local imports +from . import token + +_P = TypeVar("_P", bound="Grammar") +Label = Tuple[int, Optional[str]] +DFA = List[List[Tuple[int, int]]] +DFAS = Tuple[DFA, Dict[int, int]] +Path = Union[str, "os.PathLike[str]"] + + +class Grammar: + """Pgen parsing tables conversion class. + + Once initialized, this class supplies the grammar tables for the + parsing engine implemented by parse.py. The parsing engine + accesses the instance variables directly. The class here does not + provide initialization of the tables; several subclasses exist to + do this (see the conv and pgen modules). + + The load() method reads the tables from a pickle file, which is + much faster than the other ways offered by subclasses. The pickle + file is written by calling dump() (after loading the grammar + tables using a subclass). The report() method prints a readable + representation of the tables to stdout, for debugging. + + The instance variables are as follows: + + symbol2number -- a dict mapping symbol names to numbers. Symbol + numbers are always 256 or higher, to distinguish + them from token numbers, which are between 0 and + 255 (inclusive). + + number2symbol -- a dict mapping numbers to symbol names; + these two are each other's inverse. + + states -- a list of DFAs, where each DFA is a list of + states, each state is a list of arcs, and each + arc is a (i, j) pair where i is a label and j is + a state number. The DFA number is the index into + this list. (This name is slightly confusing.) + Final states are represented by a special arc of + the form (0, j) where j is its own state number. + + dfas -- a dict mapping symbol numbers to (DFA, first) + pairs, where DFA is an item from the states list + above, and first is a set of tokens that can + begin this grammar rule (represented by a dict + whose values are always 1). + + labels -- a list of (x, y) pairs where x is either a token + number or a symbol number, and y is either None + or a string; the strings are keywords. The label + number is the index in this list; label numbers + are used to mark state transitions (arcs) in the + DFAs. + + start -- the number of the grammar's start symbol. + + keywords -- a dict mapping keyword strings to arc labels. + + tokens -- a dict mapping token numbers to arc labels. + + """ + + def __init__(self) -> None: + self.symbol2number: Dict[str, int] = {} + self.number2symbol: Dict[int, str] = {} + self.states: List[DFA] = [] + self.dfas: Dict[int, DFAS] = {} + self.labels: List[Label] = [(0, "EMPTY")] + self.keywords: Dict[str, int] = {} + self.soft_keywords: Dict[str, int] = {} + self.tokens: Dict[int, int] = {} + self.symbol2label: Dict[str, int] = {} + self.version: Tuple[int, int] = (0, 0) + self.start = 256 + # Python 3.7+ parses async as a keyword, not an identifier + self.async_keywords = False + + def dump(self, filename: Path) -> None: + """Dump the grammar tables to a pickle file.""" + + # mypyc generates objects that don't have a __dict__, but they + # do have __getstate__ methods that will return an equivalent + # dictionary + if hasattr(self, "__dict__"): + d = self.__dict__ + else: + d = self.__getstate__() # type: ignore + + with tempfile.NamedTemporaryFile( + dir=os.path.dirname(filename), delete=False + ) as f: + pickle.dump(d, f, pickle.HIGHEST_PROTOCOL) + os.replace(f.name, filename) + + def _update(self, attrs: Dict[str, Any]) -> None: + for k, v in attrs.items(): + setattr(self, k, v) + + def load(self, filename: Path) -> None: + """Load the grammar tables from a pickle file.""" + with open(filename, "rb") as f: + d = pickle.load(f) + self._update(d) + + def loads(self, pkl: bytes) -> None: + """Load the grammar tables from a pickle bytes object.""" + self._update(pickle.loads(pkl)) + + def copy(self: _P) -> _P: + """ + Copy the grammar. + """ + new = self.__class__() + for dict_attr in ( + "symbol2number", + "number2symbol", + "dfas", + "keywords", + "soft_keywords", + "tokens", + "symbol2label", + ): + setattr(new, dict_attr, getattr(self, dict_attr).copy()) + new.labels = self.labels[:] + new.states = self.states[:] + new.start = self.start + new.version = self.version + new.async_keywords = self.async_keywords + return new + + def report(self) -> None: + """Dump the grammar tables to standard output, for debugging.""" + from pprint import pprint + + print("s2n") + pprint(self.symbol2number) + print("n2s") + pprint(self.number2symbol) + print("states") + pprint(self.states) + print("dfas") + pprint(self.dfas) + print("labels") + pprint(self.labels) + print("start", self.start) + + +# Map from operator to number (since tokenize doesn't do this) + +opmap_raw = """ +( LPAR +) RPAR +[ LSQB +] RSQB +: COLON +, COMMA +; SEMI ++ PLUS +- MINUS +* STAR +/ SLASH +| VBAR +& AMPER +< LESS +> GREATER += EQUAL +. DOT +% PERCENT +` BACKQUOTE +{ LBRACE +} RBRACE +@ AT +@= ATEQUAL +== EQEQUAL +!= NOTEQUAL +<> NOTEQUAL +<= LESSEQUAL +>= GREATEREQUAL +~ TILDE +^ CIRCUMFLEX +<< LEFTSHIFT +>> RIGHTSHIFT +** DOUBLESTAR ++= PLUSEQUAL +-= MINEQUAL +*= STAREQUAL +/= SLASHEQUAL +%= PERCENTEQUAL +&= AMPEREQUAL +|= VBAREQUAL +^= CIRCUMFLEXEQUAL +<<= LEFTSHIFTEQUAL +>>= RIGHTSHIFTEQUAL +**= DOUBLESTAREQUAL +// DOUBLESLASH +//= DOUBLESLASHEQUAL +-> RARROW +:= COLONEQUAL +! BANG +""" + +opmap = {} +for line in opmap_raw.splitlines(): + if line: + op, name = line.split() + opmap[op] = getattr(token, name) diff --git a/venv/lib/python3.12/site-packages/blib2to3/pgen2/literals.py b/venv/lib/python3.12/site-packages/blib2to3/pgen2/literals.py new file mode 100644 index 0000000000..53c0b8ac2b --- /dev/null +++ b/venv/lib/python3.12/site-packages/blib2to3/pgen2/literals.py @@ -0,0 +1,66 @@ +# Copyright 2004-2005 Elemental Security, Inc. All Rights Reserved. +# Licensed to PSF under a Contributor Agreement. + +"""Safely evaluate Python string literals without using eval().""" + +import re +from typing import Dict, Match + +simple_escapes: Dict[str, str] = { + "a": "\a", + "b": "\b", + "f": "\f", + "n": "\n", + "r": "\r", + "t": "\t", + "v": "\v", + "'": "'", + '"': '"', + "\\": "\\", +} + + +def escape(m: Match[str]) -> str: + all, tail = m.group(0, 1) + assert all.startswith("\\") + esc = simple_escapes.get(tail) + if esc is not None: + return esc + if tail.startswith("x"): + hexes = tail[1:] + if len(hexes) < 2: + raise ValueError("invalid hex string escape ('\\%s')" % tail) + try: + i = int(hexes, 16) + except ValueError: + raise ValueError("invalid hex string escape ('\\%s')" % tail) from None + else: + try: + i = int(tail, 8) + except ValueError: + raise ValueError("invalid octal string escape ('\\%s')" % tail) from None + return chr(i) + + +def evalString(s: str) -> str: + assert s.startswith("'") or s.startswith('"'), repr(s[:1]) + q = s[0] + if s[:3] == q * 3: + q = q * 3 + assert s.endswith(q), repr(s[-len(q) :]) + assert len(s) >= 2 * len(q) + s = s[len(q) : -len(q)] + return re.sub(r"\\(\'|\"|\\|[abfnrtv]|x.{0,2}|[0-7]{1,3})", escape, s) + + +def test() -> None: + for i in range(256): + c = chr(i) + s = repr(c) + e = evalString(s) + if e != c: + print(i, c, s, e) + + +if __name__ == "__main__": + test() diff --git a/venv/lib/python3.12/site-packages/blib2to3/pgen2/parse.py b/venv/lib/python3.12/site-packages/blib2to3/pgen2/parse.py new file mode 100644 index 0000000000..ad1d795b51 --- /dev/null +++ b/venv/lib/python3.12/site-packages/blib2to3/pgen2/parse.py @@ -0,0 +1,411 @@ +# Copyright 2004-2005 Elemental Security, Inc. All Rights Reserved. +# Licensed to PSF under a Contributor Agreement. + +"""Parser engine for the grammar tables generated by pgen. + +The grammar table must be loaded first. + +See Parser/parser.c in the Python distribution for additional info on +how this parsing engine works. + +""" +from contextlib import contextmanager +from typing import ( + TYPE_CHECKING, + Any, + Callable, + Dict, + Iterator, + List, + Optional, + Set, + Tuple, + Union, + cast, +) + +from blib2to3.pgen2.grammar import Grammar +from blib2to3.pytree import NL, Context, Leaf, Node, RawNode, convert + +# Local imports +from . import grammar, token, tokenize + +if TYPE_CHECKING: + from blib2to3.pgen2.driver import TokenProxy + + +Results = Dict[str, NL] +Convert = Callable[[Grammar, RawNode], Union[Node, Leaf]] +DFA = List[List[Tuple[int, int]]] +DFAS = Tuple[DFA, Dict[int, int]] + + +def lam_sub(grammar: Grammar, node: RawNode) -> NL: + assert node[3] is not None + return Node(type=node[0], children=node[3], context=node[2]) + + +# A placeholder node, used when parser is backtracking. +DUMMY_NODE = (-1, None, None, None) + + +def stack_copy( + stack: List[Tuple[DFAS, int, RawNode]], +) -> List[Tuple[DFAS, int, RawNode]]: + """Nodeless stack copy.""" + return [(dfa, label, DUMMY_NODE) for dfa, label, _ in stack] + + +class Recorder: + def __init__(self, parser: "Parser", ilabels: List[int], context: Context) -> None: + self.parser = parser + self._ilabels = ilabels + self.context = context # not really matter + + self._dead_ilabels: Set[int] = set() + self._start_point = self.parser.stack + self._points = {ilabel: stack_copy(self._start_point) for ilabel in ilabels} + + @property + def ilabels(self) -> Set[int]: + return self._dead_ilabels.symmetric_difference(self._ilabels) + + @contextmanager + def switch_to(self, ilabel: int) -> Iterator[None]: + with self.backtrack(): + self.parser.stack = self._points[ilabel] + try: + yield + except ParseError: + self._dead_ilabels.add(ilabel) + finally: + self.parser.stack = self._start_point + + @contextmanager + def backtrack(self) -> Iterator[None]: + """ + Use the node-level invariant ones for basic parsing operations (push/pop/shift). + These still will operate on the stack; but they won't create any new nodes, or + modify the contents of any other existing nodes. + + This saves us a ton of time when we are backtracking, since we + want to restore to the initial state as quick as possible, which + can only be done by having as little mutatations as possible. + """ + is_backtracking = self.parser.is_backtracking + try: + self.parser.is_backtracking = True + yield + finally: + self.parser.is_backtracking = is_backtracking + + def add_token(self, tok_type: int, tok_val: str, raw: bool = False) -> None: + func: Callable[..., Any] + if raw: + func = self.parser._addtoken + else: + func = self.parser.addtoken + + for ilabel in self.ilabels: + with self.switch_to(ilabel): + args = [tok_type, tok_val, self.context] + if raw: + args.insert(0, ilabel) + func(*args) + + def determine_route( + self, value: Optional[str] = None, force: bool = False + ) -> Optional[int]: + alive_ilabels = self.ilabels + if len(alive_ilabels) == 0: + *_, most_successful_ilabel = self._dead_ilabels + raise ParseError("bad input", most_successful_ilabel, value, self.context) + + ilabel, *rest = alive_ilabels + if force or not rest: + return ilabel + else: + return None + + +class ParseError(Exception): + """Exception to signal the parser is stuck.""" + + def __init__( + self, msg: str, type: Optional[int], value: Optional[str], context: Context + ) -> None: + Exception.__init__( + self, f"{msg}: type={type!r}, value={value!r}, context={context!r}" + ) + self.msg = msg + self.type = type + self.value = value + self.context = context + + +class Parser: + """Parser engine. + + The proper usage sequence is: + + p = Parser(grammar, [converter]) # create instance + p.setup([start]) # prepare for parsing + : + if p.addtoken(...): # parse a token; may raise ParseError + break + root = p.rootnode # root of abstract syntax tree + + A Parser instance may be reused by calling setup() repeatedly. + + A Parser instance contains state pertaining to the current token + sequence, and should not be used concurrently by different threads + to parse separate token sequences. + + See driver.py for how to get input tokens by tokenizing a file or + string. + + Parsing is complete when addtoken() returns True; the root of the + abstract syntax tree can then be retrieved from the rootnode + instance variable. When a syntax error occurs, addtoken() raises + the ParseError exception. There is no error recovery; the parser + cannot be used after a syntax error was reported (but it can be + reinitialized by calling setup()). + + """ + + def __init__(self, grammar: Grammar, convert: Optional[Convert] = None) -> None: + """Constructor. + + The grammar argument is a grammar.Grammar instance; see the + grammar module for more information. + + The parser is not ready yet for parsing; you must call the + setup() method to get it started. + + The optional convert argument is a function mapping concrete + syntax tree nodes to abstract syntax tree nodes. If not + given, no conversion is done and the syntax tree produced is + the concrete syntax tree. If given, it must be a function of + two arguments, the first being the grammar (a grammar.Grammar + instance), and the second being the concrete syntax tree node + to be converted. The syntax tree is converted from the bottom + up. + + **post-note: the convert argument is ignored since for Black's + usage, convert will always be blib2to3.pytree.convert. Allowing + this to be dynamic hurts mypyc's ability to use early binding. + These docs are left for historical and informational value. + + A concrete syntax tree node is a (type, value, context, nodes) + tuple, where type is the node type (a token or symbol number), + value is None for symbols and a string for tokens, context is + None or an opaque value used for error reporting (typically a + (lineno, offset) pair), and nodes is a list of children for + symbols, and None for tokens. + + An abstract syntax tree node may be anything; this is entirely + up to the converter function. + + """ + self.grammar = grammar + # See note in docstring above. TL;DR this is ignored. + self.convert = convert or lam_sub + self.is_backtracking = False + self.last_token: Optional[int] = None + + def setup(self, proxy: "TokenProxy", start: Optional[int] = None) -> None: + """Prepare for parsing. + + This *must* be called before starting to parse. + + The optional argument is an alternative start symbol; it + defaults to the grammar's start symbol. + + You can use a Parser instance to parse any number of programs; + each time you call setup() the parser is reset to an initial + state determined by the (implicit or explicit) start symbol. + + """ + if start is None: + start = self.grammar.start + # Each stack entry is a tuple: (dfa, state, node). + # A node is a tuple: (type, value, context, children), + # where children is a list of nodes or None, and context may be None. + newnode: RawNode = (start, None, None, []) + stackentry = (self.grammar.dfas[start], 0, newnode) + self.stack: List[Tuple[DFAS, int, RawNode]] = [stackentry] + self.rootnode: Optional[NL] = None + self.used_names: Set[str] = set() + self.proxy = proxy + self.last_token = None + + def addtoken(self, type: int, value: str, context: Context) -> bool: + """Add a token; return True iff this is the end of the program.""" + # Map from token to label + ilabels = self.classify(type, value, context) + assert len(ilabels) >= 1 + + # If we have only one state to advance, we'll directly + # take it as is. + if len(ilabels) == 1: + [ilabel] = ilabels + return self._addtoken(ilabel, type, value, context) + + # If there are multiple states which we can advance (only + # happen under soft-keywords), then we will try all of them + # in parallel and as soon as one state can reach further than + # the rest, we'll choose that one. This is a pretty hacky + # and hopefully temporary algorithm. + # + # For a more detailed explanation, check out this post: + # https://tree.science/what-the-backtracking.html + + with self.proxy.release() as proxy: + counter, force = 0, False + recorder = Recorder(self, ilabels, context) + recorder.add_token(type, value, raw=True) + + next_token_value = value + while recorder.determine_route(next_token_value) is None: + if not proxy.can_advance(counter): + force = True + break + + next_token_type, next_token_value, *_ = proxy.eat(counter) + if next_token_type in (tokenize.COMMENT, tokenize.NL): + counter += 1 + continue + + if next_token_type == tokenize.OP: + next_token_type = grammar.opmap[next_token_value] + + recorder.add_token(next_token_type, next_token_value) + counter += 1 + + ilabel = cast(int, recorder.determine_route(next_token_value, force=force)) + assert ilabel is not None + + return self._addtoken(ilabel, type, value, context) + + def _addtoken(self, ilabel: int, type: int, value: str, context: Context) -> bool: + # Loop until the token is shifted; may raise exceptions + while True: + dfa, state, node = self.stack[-1] + states, first = dfa + arcs = states[state] + # Look for a state with this label + for i, newstate in arcs: + t = self.grammar.labels[i][0] + if t >= 256: + # See if it's a symbol and if we're in its first set + itsdfa = self.grammar.dfas[t] + itsstates, itsfirst = itsdfa + if ilabel in itsfirst: + # Push a symbol + self.push(t, itsdfa, newstate, context) + break # To continue the outer while loop + + elif ilabel == i: + # Look it up in the list of labels + # Shift a token; we're done with it + self.shift(type, value, newstate, context) + # Pop while we are in an accept-only state + state = newstate + while states[state] == [(0, state)]: + self.pop() + if not self.stack: + # Done parsing! + return True + dfa, state, node = self.stack[-1] + states, first = dfa + # Done with this token + self.last_token = type + return False + + else: + if (0, state) in arcs: + # An accepting state, pop it and try something else + self.pop() + if not self.stack: + # Done parsing, but another token is input + raise ParseError("too much input", type, value, context) + else: + # No success finding a transition + raise ParseError("bad input", type, value, context) + + def classify(self, type: int, value: str, context: Context) -> List[int]: + """Turn a token into a label. (Internal) + + Depending on whether the value is a soft-keyword or not, + this function may return multiple labels to choose from.""" + if type == token.NAME: + # Keep a listing of all used names + self.used_names.add(value) + # Check for reserved words + if value in self.grammar.keywords: + return [self.grammar.keywords[value]] + elif value in self.grammar.soft_keywords: + assert type in self.grammar.tokens + # Current soft keywords (match, case, type) can only appear at the + # beginning of a statement. So as a shortcut, don't try to treat them + # like keywords in any other context. + # ('_' is also a soft keyword in the real grammar, but for our grammar + # it's just an expression, so we don't need to treat it specially.) + if self.last_token not in ( + None, + token.INDENT, + token.DEDENT, + token.NEWLINE, + token.SEMI, + token.COLON, + ): + return [self.grammar.tokens[type]] + return [ + self.grammar.tokens[type], + self.grammar.soft_keywords[value], + ] + + ilabel = self.grammar.tokens.get(type) + if ilabel is None: + raise ParseError("bad token", type, value, context) + return [ilabel] + + def shift(self, type: int, value: str, newstate: int, context: Context) -> None: + """Shift a token. (Internal)""" + if self.is_backtracking: + dfa, state, _ = self.stack[-1] + self.stack[-1] = (dfa, newstate, DUMMY_NODE) + else: + dfa, state, node = self.stack[-1] + rawnode: RawNode = (type, value, context, None) + newnode = convert(self.grammar, rawnode) + assert node[-1] is not None + node[-1].append(newnode) + self.stack[-1] = (dfa, newstate, node) + + def push(self, type: int, newdfa: DFAS, newstate: int, context: Context) -> None: + """Push a nonterminal. (Internal)""" + if self.is_backtracking: + dfa, state, _ = self.stack[-1] + self.stack[-1] = (dfa, newstate, DUMMY_NODE) + self.stack.append((newdfa, 0, DUMMY_NODE)) + else: + dfa, state, node = self.stack[-1] + newnode: RawNode = (type, None, context, []) + self.stack[-1] = (dfa, newstate, node) + self.stack.append((newdfa, 0, newnode)) + + def pop(self) -> None: + """Pop a nonterminal. (Internal)""" + if self.is_backtracking: + self.stack.pop() + else: + popdfa, popstate, popnode = self.stack.pop() + newnode = convert(self.grammar, popnode) + if self.stack: + dfa, state, node = self.stack[-1] + assert node[-1] is not None + node[-1].append(newnode) + else: + self.rootnode = newnode + self.rootnode.used_names = self.used_names diff --git a/venv/lib/python3.12/site-packages/blib2to3/pgen2/pgen.py b/venv/lib/python3.12/site-packages/blib2to3/pgen2/pgen.py new file mode 100644 index 0000000000..3ece9bb41e --- /dev/null +++ b/venv/lib/python3.12/site-packages/blib2to3/pgen2/pgen.py @@ -0,0 +1,428 @@ +# Copyright 2004-2005 Elemental Security, Inc. All Rights Reserved. +# Licensed to PSF under a Contributor Agreement. + +import os +from typing import ( + IO, + Any, + Dict, + Iterator, + List, + NoReturn, + Optional, + Sequence, + Tuple, + Union, +) + +from blib2to3.pgen2 import grammar, token, tokenize +from blib2to3.pgen2.tokenize import GoodTokenInfo + +Path = Union[str, "os.PathLike[str]"] + + +class PgenGrammar(grammar.Grammar): + pass + + +class ParserGenerator: + filename: Path + stream: IO[str] + generator: Iterator[GoodTokenInfo] + first: Dict[str, Optional[Dict[str, int]]] + + def __init__(self, filename: Path, stream: Optional[IO[str]] = None) -> None: + close_stream = None + if stream is None: + stream = open(filename, encoding="utf-8") + close_stream = stream.close + self.filename = filename + self.stream = stream + self.generator = tokenize.generate_tokens(stream.readline) + self.gettoken() # Initialize lookahead + self.dfas, self.startsymbol = self.parse() + if close_stream is not None: + close_stream() + self.first = {} # map from symbol name to set of tokens + self.addfirstsets() + + def make_grammar(self) -> PgenGrammar: + c = PgenGrammar() + names = list(self.dfas.keys()) + names.sort() + names.remove(self.startsymbol) + names.insert(0, self.startsymbol) + for name in names: + i = 256 + len(c.symbol2number) + c.symbol2number[name] = i + c.number2symbol[i] = name + for name in names: + dfa = self.dfas[name] + states = [] + for state in dfa: + arcs = [] + for label, next in sorted(state.arcs.items()): + arcs.append((self.make_label(c, label), dfa.index(next))) + if state.isfinal: + arcs.append((0, dfa.index(state))) + states.append(arcs) + c.states.append(states) + c.dfas[c.symbol2number[name]] = (states, self.make_first(c, name)) + c.start = c.symbol2number[self.startsymbol] + return c + + def make_first(self, c: PgenGrammar, name: str) -> Dict[int, int]: + rawfirst = self.first[name] + assert rawfirst is not None + first = {} + for label in sorted(rawfirst): + ilabel = self.make_label(c, label) + ##assert ilabel not in first # XXX failed on <> ... != + first[ilabel] = 1 + return first + + def make_label(self, c: PgenGrammar, label: str) -> int: + # XXX Maybe this should be a method on a subclass of converter? + ilabel = len(c.labels) + if label[0].isalpha(): + # Either a symbol name or a named token + if label in c.symbol2number: + # A symbol name (a non-terminal) + if label in c.symbol2label: + return c.symbol2label[label] + else: + c.labels.append((c.symbol2number[label], None)) + c.symbol2label[label] = ilabel + return ilabel + else: + # A named token (NAME, NUMBER, STRING) + itoken = getattr(token, label, None) + assert isinstance(itoken, int), label + assert itoken in token.tok_name, label + if itoken in c.tokens: + return c.tokens[itoken] + else: + c.labels.append((itoken, None)) + c.tokens[itoken] = ilabel + return ilabel + else: + # Either a keyword or an operator + assert label[0] in ('"', "'"), label + value = eval(label) + if value[0].isalpha(): + if label[0] == '"': + keywords = c.soft_keywords + else: + keywords = c.keywords + + # A keyword + if value in keywords: + return keywords[value] + else: + c.labels.append((token.NAME, value)) + keywords[value] = ilabel + return ilabel + else: + # An operator (any non-numeric token) + itoken = grammar.opmap[value] # Fails if unknown token + if itoken in c.tokens: + return c.tokens[itoken] + else: + c.labels.append((itoken, None)) + c.tokens[itoken] = ilabel + return ilabel + + def addfirstsets(self) -> None: + names = list(self.dfas.keys()) + names.sort() + for name in names: + if name not in self.first: + self.calcfirst(name) + # print name, self.first[name].keys() + + def calcfirst(self, name: str) -> None: + dfa = self.dfas[name] + self.first[name] = None # dummy to detect left recursion + state = dfa[0] + totalset: Dict[str, int] = {} + overlapcheck = {} + for label in state.arcs: + if label in self.dfas: + if label in self.first: + fset = self.first[label] + if fset is None: + raise ValueError("recursion for rule %r" % name) + else: + self.calcfirst(label) + fset = self.first[label] + assert fset is not None + totalset.update(fset) + overlapcheck[label] = fset + else: + totalset[label] = 1 + overlapcheck[label] = {label: 1} + inverse: Dict[str, str] = {} + for label, itsfirst in overlapcheck.items(): + for symbol in itsfirst: + if symbol in inverse: + raise ValueError( + "rule %s is ambiguous; %s is in the first sets of %s as well" + " as %s" % (name, symbol, label, inverse[symbol]) + ) + inverse[symbol] = label + self.first[name] = totalset + + def parse(self) -> Tuple[Dict[str, List["DFAState"]], str]: + dfas = {} + startsymbol: Optional[str] = None + # MSTART: (NEWLINE | RULE)* ENDMARKER + while self.type != token.ENDMARKER: + while self.type == token.NEWLINE: + self.gettoken() + # RULE: NAME ':' RHS NEWLINE + name = self.expect(token.NAME) + self.expect(token.OP, ":") + a, z = self.parse_rhs() + self.expect(token.NEWLINE) + # self.dump_nfa(name, a, z) + dfa = self.make_dfa(a, z) + # self.dump_dfa(name, dfa) + # oldlen = len(dfa) + self.simplify_dfa(dfa) + # newlen = len(dfa) + dfas[name] = dfa + # print name, oldlen, newlen + if startsymbol is None: + startsymbol = name + assert startsymbol is not None + return dfas, startsymbol + + def make_dfa(self, start: "NFAState", finish: "NFAState") -> List["DFAState"]: + # To turn an NFA into a DFA, we define the states of the DFA + # to correspond to *sets* of states of the NFA. Then do some + # state reduction. Let's represent sets as dicts with 1 for + # values. + assert isinstance(start, NFAState) + assert isinstance(finish, NFAState) + + def closure(state: NFAState) -> Dict[NFAState, int]: + base: Dict[NFAState, int] = {} + addclosure(state, base) + return base + + def addclosure(state: NFAState, base: Dict[NFAState, int]) -> None: + assert isinstance(state, NFAState) + if state in base: + return + base[state] = 1 + for label, next in state.arcs: + if label is None: + addclosure(next, base) + + states = [DFAState(closure(start), finish)] + for state in states: # NB states grows while we're iterating + arcs: Dict[str, Dict[NFAState, int]] = {} + for nfastate in state.nfaset: + for label, next in nfastate.arcs: + if label is not None: + addclosure(next, arcs.setdefault(label, {})) + for label, nfaset in sorted(arcs.items()): + for st in states: + if st.nfaset == nfaset: + break + else: + st = DFAState(nfaset, finish) + states.append(st) + state.addarc(st, label) + return states # List of DFAState instances; first one is start + + def dump_nfa(self, name: str, start: "NFAState", finish: "NFAState") -> None: + print("Dump of NFA for", name) + todo = [start] + for i, state in enumerate(todo): + print(" State", i, state is finish and "(final)" or "") + for label, next in state.arcs: + if next in todo: + j = todo.index(next) + else: + j = len(todo) + todo.append(next) + if label is None: + print(" -> %d" % j) + else: + print(" %s -> %d" % (label, j)) + + def dump_dfa(self, name: str, dfa: Sequence["DFAState"]) -> None: + print("Dump of DFA for", name) + for i, state in enumerate(dfa): + print(" State", i, state.isfinal and "(final)" or "") + for label, next in sorted(state.arcs.items()): + print(" %s -> %d" % (label, dfa.index(next))) + + def simplify_dfa(self, dfa: List["DFAState"]) -> None: + # This is not theoretically optimal, but works well enough. + # Algorithm: repeatedly look for two states that have the same + # set of arcs (same labels pointing to the same nodes) and + # unify them, until things stop changing. + + # dfa is a list of DFAState instances + changes = True + while changes: + changes = False + for i, state_i in enumerate(dfa): + for j in range(i + 1, len(dfa)): + state_j = dfa[j] + if state_i == state_j: + # print " unify", i, j + del dfa[j] + for state in dfa: + state.unifystate(state_j, state_i) + changes = True + break + + def parse_rhs(self) -> Tuple["NFAState", "NFAState"]: + # RHS: ALT ('|' ALT)* + a, z = self.parse_alt() + if self.value != "|": + return a, z + else: + aa = NFAState() + zz = NFAState() + aa.addarc(a) + z.addarc(zz) + while self.value == "|": + self.gettoken() + a, z = self.parse_alt() + aa.addarc(a) + z.addarc(zz) + return aa, zz + + def parse_alt(self) -> Tuple["NFAState", "NFAState"]: + # ALT: ITEM+ + a, b = self.parse_item() + while self.value in ("(", "[") or self.type in (token.NAME, token.STRING): + c, d = self.parse_item() + b.addarc(c) + b = d + return a, b + + def parse_item(self) -> Tuple["NFAState", "NFAState"]: + # ITEM: '[' RHS ']' | ATOM ['+' | '*'] + if self.value == "[": + self.gettoken() + a, z = self.parse_rhs() + self.expect(token.OP, "]") + a.addarc(z) + return a, z + else: + a, z = self.parse_atom() + value = self.value + if value not in ("+", "*"): + return a, z + self.gettoken() + z.addarc(a) + if value == "+": + return a, z + else: + return a, a + + def parse_atom(self) -> Tuple["NFAState", "NFAState"]: + # ATOM: '(' RHS ')' | NAME | STRING + if self.value == "(": + self.gettoken() + a, z = self.parse_rhs() + self.expect(token.OP, ")") + return a, z + elif self.type in (token.NAME, token.STRING): + a = NFAState() + z = NFAState() + a.addarc(z, self.value) + self.gettoken() + return a, z + else: + self.raise_error( + "expected (...) or NAME or STRING, got %s/%s", self.type, self.value + ) + raise AssertionError + + def expect(self, type: int, value: Optional[Any] = None) -> str: + if self.type != type or (value is not None and self.value != value): + self.raise_error( + "expected %s/%s, got %s/%s", type, value, self.type, self.value + ) + value = self.value + self.gettoken() + return value + + def gettoken(self) -> None: + tup = next(self.generator) + while tup[0] in (tokenize.COMMENT, tokenize.NL): + tup = next(self.generator) + self.type, self.value, self.begin, self.end, self.line = tup + # print token.tok_name[self.type], repr(self.value) + + def raise_error(self, msg: str, *args: Any) -> NoReturn: + if args: + try: + msg = msg % args + except Exception: + msg = " ".join([msg] + list(map(str, args))) + raise SyntaxError(msg, (self.filename, self.end[0], self.end[1], self.line)) + + +class NFAState: + arcs: List[Tuple[Optional[str], "NFAState"]] + + def __init__(self) -> None: + self.arcs = [] # list of (label, NFAState) pairs + + def addarc(self, next: "NFAState", label: Optional[str] = None) -> None: + assert label is None or isinstance(label, str) + assert isinstance(next, NFAState) + self.arcs.append((label, next)) + + +class DFAState: + nfaset: Dict[NFAState, Any] + isfinal: bool + arcs: Dict[str, "DFAState"] + + def __init__(self, nfaset: Dict[NFAState, Any], final: NFAState) -> None: + assert isinstance(nfaset, dict) + assert isinstance(next(iter(nfaset)), NFAState) + assert isinstance(final, NFAState) + self.nfaset = nfaset + self.isfinal = final in nfaset + self.arcs = {} # map from label to DFAState + + def addarc(self, next: "DFAState", label: str) -> None: + assert isinstance(label, str) + assert label not in self.arcs + assert isinstance(next, DFAState) + self.arcs[label] = next + + def unifystate(self, old: "DFAState", new: "DFAState") -> None: + for label, next in self.arcs.items(): + if next is old: + self.arcs[label] = new + + def __eq__(self, other: Any) -> bool: + # Equality test -- ignore the nfaset instance variable + assert isinstance(other, DFAState) + if self.isfinal != other.isfinal: + return False + # Can't just return self.arcs == other.arcs, because that + # would invoke this method recursively, with cycles... + if len(self.arcs) != len(other.arcs): + return False + for label, next in self.arcs.items(): + if next is not other.arcs.get(label): + return False + return True + + __hash__: Any = None # For Py3 compatibility. + + +def generate_grammar(filename: Path = "Grammar.txt") -> PgenGrammar: + p = ParserGenerator(filename) + return p.make_grammar() diff --git a/venv/lib/python3.12/site-packages/blib2to3/pgen2/token.py b/venv/lib/python3.12/site-packages/blib2to3/pgen2/token.py new file mode 100644 index 0000000000..3068c3157f --- /dev/null +++ b/venv/lib/python3.12/site-packages/blib2to3/pgen2/token.py @@ -0,0 +1,92 @@ +"""Token constants (from "token.h").""" + +from typing import Dict, Final + +# Taken from Python (r53757) and modified to include some tokens +# originally monkeypatched in by pgen2.tokenize + +# --start constants-- +ENDMARKER: Final = 0 +NAME: Final = 1 +NUMBER: Final = 2 +STRING: Final = 3 +NEWLINE: Final = 4 +INDENT: Final = 5 +DEDENT: Final = 6 +LPAR: Final = 7 +RPAR: Final = 8 +LSQB: Final = 9 +RSQB: Final = 10 +COLON: Final = 11 +COMMA: Final = 12 +SEMI: Final = 13 +PLUS: Final = 14 +MINUS: Final = 15 +STAR: Final = 16 +SLASH: Final = 17 +VBAR: Final = 18 +AMPER: Final = 19 +LESS: Final = 20 +GREATER: Final = 21 +EQUAL: Final = 22 +DOT: Final = 23 +PERCENT: Final = 24 +BACKQUOTE: Final = 25 +LBRACE: Final = 26 +RBRACE: Final = 27 +EQEQUAL: Final = 28 +NOTEQUAL: Final = 29 +LESSEQUAL: Final = 30 +GREATEREQUAL: Final = 31 +TILDE: Final = 32 +CIRCUMFLEX: Final = 33 +LEFTSHIFT: Final = 34 +RIGHTSHIFT: Final = 35 +DOUBLESTAR: Final = 36 +PLUSEQUAL: Final = 37 +MINEQUAL: Final = 38 +STAREQUAL: Final = 39 +SLASHEQUAL: Final = 40 +PERCENTEQUAL: Final = 41 +AMPEREQUAL: Final = 42 +VBAREQUAL: Final = 43 +CIRCUMFLEXEQUAL: Final = 44 +LEFTSHIFTEQUAL: Final = 45 +RIGHTSHIFTEQUAL: Final = 46 +DOUBLESTAREQUAL: Final = 47 +DOUBLESLASH: Final = 48 +DOUBLESLASHEQUAL: Final = 49 +AT: Final = 50 +ATEQUAL: Final = 51 +OP: Final = 52 +COMMENT: Final = 53 +NL: Final = 54 +RARROW: Final = 55 +AWAIT: Final = 56 +ASYNC: Final = 57 +ERRORTOKEN: Final = 58 +COLONEQUAL: Final = 59 +FSTRING_START: Final = 60 +FSTRING_MIDDLE: Final = 61 +FSTRING_END: Final = 62 +BANG: Final = 63 +N_TOKENS: Final = 64 +NT_OFFSET: Final = 256 +# --end constants-- + +tok_name: Final[Dict[int, str]] = {} +for _name, _value in list(globals().items()): + if type(_value) is int: + tok_name[_value] = _name + + +def ISTERMINAL(x: int) -> bool: + return x < NT_OFFSET + + +def ISNONTERMINAL(x: int) -> bool: + return x >= NT_OFFSET + + +def ISEOF(x: int) -> bool: + return x == ENDMARKER diff --git a/venv/lib/python3.12/site-packages/blib2to3/pgen2/tokenize.py b/venv/lib/python3.12/site-packages/blib2to3/pgen2/tokenize.py new file mode 100644 index 0000000000..d15dc03d94 --- /dev/null +++ b/venv/lib/python3.12/site-packages/blib2to3/pgen2/tokenize.py @@ -0,0 +1,1123 @@ +# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006 Python Software Foundation. +# All rights reserved. + +# mypy: allow-untyped-defs, allow-untyped-calls + +"""Tokenization help for Python programs. + +generate_tokens(readline) is a generator that breaks a stream of +text into Python tokens. It accepts a readline-like method which is called +repeatedly to get the next line of input (or "" for EOF). It generates +5-tuples with these members: + + the token type (see token.py) + the token (a string) + the starting (row, column) indices of the token (a 2-tuple of ints) + the ending (row, column) indices of the token (a 2-tuple of ints) + the original line (string) + +It is designed to match the working of the Python tokenizer exactly, except +that it produces COMMENT tokens for comments and gives type OP for all +operators + +Older entry points + tokenize_loop(readline, tokeneater) + tokenize(readline, tokeneater=printtoken) +are the same, except instead of generating tokens, tokeneater is a callback +function to which the 5 fields described above are passed as 5 arguments, +each time a new token is found.""" + +import builtins +import sys +from typing import ( + Callable, + Final, + Iterable, + Iterator, + List, + Optional, + Pattern, + Set, + Tuple, + Union, +) + +from blib2to3.pgen2.grammar import Grammar +from blib2to3.pgen2.token import ( + ASYNC, + AWAIT, + COMMENT, + DEDENT, + ENDMARKER, + ERRORTOKEN, + FSTRING_END, + FSTRING_MIDDLE, + FSTRING_START, + INDENT, + LBRACE, + NAME, + NEWLINE, + NL, + NUMBER, + OP, + RBRACE, + STRING, + tok_name, +) + +__author__ = "Ka-Ping Yee " +__credits__ = "GvR, ESR, Tim Peters, Thomas Wouters, Fred Drake, Skip Montanaro" + +import re +from codecs import BOM_UTF8, lookup + +from . import token + +__all__ = [x for x in dir(token) if x[0] != "_"] + [ + "tokenize", + "generate_tokens", + "untokenize", +] +del token + + +def group(*choices: str) -> str: + return "(" + "|".join(choices) + ")" + + +def any(*choices: str) -> str: + return group(*choices) + "*" + + +def maybe(*choices: str) -> str: + return group(*choices) + "?" + + +def _combinations(*l: str) -> Set[str]: + return {x + y for x in l for y in l + ("",) if x.casefold() != y.casefold()} + + +Whitespace = r"[ \f\t]*" +Comment = r"#[^\r\n]*" +Ignore = Whitespace + any(r"\\\r?\n" + Whitespace) + maybe(Comment) +Name = ( # this is invalid but it's fine because Name comes after Number in all groups + r"[^\s#\(\)\[\]\{\}+\-*/!@$%^&=|;:'\",\.<>/?`~\\]+" +) + +Binnumber = r"0[bB]_?[01]+(?:_[01]+)*" +Hexnumber = r"0[xX]_?[\da-fA-F]+(?:_[\da-fA-F]+)*[lL]?" +Octnumber = r"0[oO]?_?[0-7]+(?:_[0-7]+)*[lL]?" +Decnumber = group(r"[1-9]\d*(?:_\d+)*[lL]?", "0[lL]?") +Intnumber = group(Binnumber, Hexnumber, Octnumber, Decnumber) +Exponent = r"[eE][-+]?\d+(?:_\d+)*" +Pointfloat = group(r"\d+(?:_\d+)*\.(?:\d+(?:_\d+)*)?", r"\.\d+(?:_\d+)*") + maybe( + Exponent +) +Expfloat = r"\d+(?:_\d+)*" + Exponent +Floatnumber = group(Pointfloat, Expfloat) +Imagnumber = group(r"\d+(?:_\d+)*[jJ]", Floatnumber + r"[jJ]") +Number = group(Imagnumber, Floatnumber, Intnumber) + +# Tail end of ' string. +Single = r"(?:\\.|[^'\\])*'" +# Tail end of " string. +Double = r'(?:\\.|[^"\\])*"' +# Tail end of ''' string. +Single3 = r"(?:\\.|'(?!'')|[^'\\])*'''" +# Tail end of """ string. +Double3 = r'(?:\\.|"(?!"")|[^"\\])*"""' +_litprefix = r"(?:[uUrRbB]|[rR][bB]|[bBuU][rR])?" +_fstringlitprefix = r"(?:rF|FR|Fr|fr|RF|F|rf|f|Rf|fR)" +Triple = group( + _litprefix + "'''", + _litprefix + '"""', + _fstringlitprefix + '"""', + _fstringlitprefix + "'''", +) + +# beginning of a single quoted f-string. must not end with `{{` or `\N{` +SingleLbrace = r"(?:\\N{|{{|\\'|[^\n'{])*(?>=?", + r"<<=?", + r"<>", + r"!=", + r"//=?", + r"->", + r"[+\-*/%&@|^=<>:]=?", + r"~", +) + +Bracket = "[][(){}]" +Special = group(r"\r?\n", r"[:;.,`@]") +Funny = group(Operator, Bracket, Special) + +_string_middle_single = r"(?:[^\n'\\]|\\.)*" +_string_middle_double = r'(?:[^\n"\\]|\\.)*' + +# FSTRING_MIDDLE and LBRACE, must not end with a `{{` or `\N{` +_fstring_middle_single = SingleLbrace +_fstring_middle_double = DoubleLbrace + +# First (or only) line of ' or " string. +ContStr = group( + _litprefix + "'" + _string_middle_single + group("'", r"\\\r?\n"), + _litprefix + '"' + _string_middle_double + group('"', r"\\\r?\n"), + group(_fstringlitprefix + "'") + _fstring_middle_single, + group(_fstringlitprefix + '"') + _fstring_middle_double, + group(_fstringlitprefix + "'") + _string_middle_single + group("'", r"\\\r?\n"), + group(_fstringlitprefix + '"') + _string_middle_double + group('"', r"\\\r?\n"), +) +PseudoExtras = group(r"\\\r?\n", Comment, Triple) +PseudoToken = Whitespace + group(PseudoExtras, Number, Funny, ContStr, Name) + +pseudoprog: Final = re.compile(PseudoToken, re.UNICODE) + +singleprog = re.compile(Single) +singleprog_plus_lbrace = re.compile(group(SingleLbrace, Single)) +doubleprog = re.compile(Double) +doubleprog_plus_lbrace = re.compile(group(DoubleLbrace, Double)) + +single3prog = re.compile(Single3) +single3prog_plus_lbrace = re.compile(group(Single3Lbrace, Single3)) +double3prog = re.compile(Double3) +double3prog_plus_lbrace = re.compile(group(Double3Lbrace, Double3)) + +_strprefixes = _combinations("r", "R", "b", "B") | {"u", "U", "ur", "uR", "Ur", "UR"} +_fstring_prefixes = _combinations("r", "R", "f", "F") - {"r", "R"} + +endprogs: Final = { + "'": singleprog, + '"': doubleprog, + "'''": single3prog, + '"""': double3prog, + **{f"{prefix}'": singleprog for prefix in _strprefixes}, + **{f'{prefix}"': doubleprog for prefix in _strprefixes}, + **{f"{prefix}'": singleprog_plus_lbrace for prefix in _fstring_prefixes}, + **{f'{prefix}"': doubleprog_plus_lbrace for prefix in _fstring_prefixes}, + **{f"{prefix}'''": single3prog for prefix in _strprefixes}, + **{f'{prefix}"""': double3prog for prefix in _strprefixes}, + **{f"{prefix}'''": single3prog_plus_lbrace for prefix in _fstring_prefixes}, + **{f'{prefix}"""': double3prog_plus_lbrace for prefix in _fstring_prefixes}, +} + +triple_quoted: Final = ( + {"'''", '"""'} + | {f"{prefix}'''" for prefix in _strprefixes | _fstring_prefixes} + | {f'{prefix}"""' for prefix in _strprefixes | _fstring_prefixes} +) +single_quoted: Final = ( + {"'", '"'} + | {f"{prefix}'" for prefix in _strprefixes | _fstring_prefixes} + | {f'{prefix}"' for prefix in _strprefixes | _fstring_prefixes} +) +fstring_prefix: Final = ( + {f"{prefix}'" for prefix in _fstring_prefixes} + | {f'{prefix}"' for prefix in _fstring_prefixes} + | {f"{prefix}'''" for prefix in _fstring_prefixes} + | {f'{prefix}"""' for prefix in _fstring_prefixes} +) + +tabsize = 8 + + +class TokenError(Exception): + pass + + +class StopTokenizing(Exception): + pass + + +Coord = Tuple[int, int] + + +def printtoken( + type: int, token: str, srow_col: Coord, erow_col: Coord, line: str +) -> None: # for testing + (srow, scol) = srow_col + (erow, ecol) = erow_col + print( + "%d,%d-%d,%d:\t%s\t%s" % (srow, scol, erow, ecol, tok_name[type], repr(token)) + ) + + +TokenEater = Callable[[int, str, Coord, Coord, str], None] + + +def tokenize(readline: Callable[[], str], tokeneater: TokenEater = printtoken) -> None: + """ + The tokenize() function accepts two parameters: one representing the + input stream, and one providing an output mechanism for tokenize(). + + The first parameter, readline, must be a callable object which provides + the same interface as the readline() method of built-in file objects. + Each call to the function should return one line of input as a string. + + The second parameter, tokeneater, must also be a callable object. It is + called once for each token, with five arguments, corresponding to the + tuples generated by generate_tokens(). + """ + try: + tokenize_loop(readline, tokeneater) + except StopTokenizing: + pass + + +# backwards compatible interface +def tokenize_loop(readline: Callable[[], str], tokeneater: TokenEater) -> None: + for token_info in generate_tokens(readline): + tokeneater(*token_info) + + +GoodTokenInfo = Tuple[int, str, Coord, Coord, str] +TokenInfo = Union[Tuple[int, str], GoodTokenInfo] + + +class Untokenizer: + tokens: List[str] + prev_row: int + prev_col: int + + def __init__(self) -> None: + self.tokens = [] + self.prev_row = 1 + self.prev_col = 0 + + def add_whitespace(self, start: Coord) -> None: + row, col = start + assert row <= self.prev_row + col_offset = col - self.prev_col + if col_offset: + self.tokens.append(" " * col_offset) + + def untokenize(self, iterable: Iterable[TokenInfo]) -> str: + for t in iterable: + if len(t) == 2: + self.compat(t, iterable) + break + tok_type, token, start, end, line = t + self.add_whitespace(start) + self.tokens.append(token) + self.prev_row, self.prev_col = end + if tok_type in (NEWLINE, NL): + self.prev_row += 1 + self.prev_col = 0 + return "".join(self.tokens) + + def compat(self, token: Tuple[int, str], iterable: Iterable[TokenInfo]) -> None: + startline = False + indents = [] + toks_append = self.tokens.append + toknum, tokval = token + if toknum in (NAME, NUMBER): + tokval += " " + if toknum in (NEWLINE, NL): + startline = True + for tok in iterable: + toknum, tokval = tok[:2] + + if toknum in (NAME, NUMBER, ASYNC, AWAIT): + tokval += " " + + if toknum == INDENT: + indents.append(tokval) + continue + elif toknum == DEDENT: + indents.pop() + continue + elif toknum in (NEWLINE, NL): + startline = True + elif startline and indents: + toks_append(indents[-1]) + startline = False + toks_append(tokval) + + +cookie_re = re.compile(r"^[ \t\f]*#.*?coding[:=][ \t]*([-\w.]+)", re.ASCII) +blank_re = re.compile(rb"^[ \t\f]*(?:[#\r\n]|$)", re.ASCII) + + +def _get_normal_name(orig_enc: str) -> str: + """Imitates get_normal_name in tokenizer.c.""" + # Only care about the first 12 characters. + enc = orig_enc[:12].lower().replace("_", "-") + if enc == "utf-8" or enc.startswith("utf-8-"): + return "utf-8" + if enc in ("latin-1", "iso-8859-1", "iso-latin-1") or enc.startswith( + ("latin-1-", "iso-8859-1-", "iso-latin-1-") + ): + return "iso-8859-1" + return orig_enc + + +def detect_encoding(readline: Callable[[], bytes]) -> Tuple[str, List[bytes]]: + """ + The detect_encoding() function is used to detect the encoding that should + be used to decode a Python source file. It requires one argument, readline, + in the same way as the tokenize() generator. + + It will call readline a maximum of twice, and return the encoding used + (as a string) and a list of any lines (left as bytes) it has read + in. + + It detects the encoding from the presence of a utf-8 bom or an encoding + cookie as specified in pep-0263. If both a bom and a cookie are present, but + disagree, a SyntaxError will be raised. If the encoding cookie is an invalid + charset, raise a SyntaxError. Note that if a utf-8 bom is found, + 'utf-8-sig' is returned. + + If no encoding is specified, then the default of 'utf-8' will be returned. + """ + bom_found = False + encoding = None + default = "utf-8" + + def read_or_stop() -> bytes: + try: + return readline() + except StopIteration: + return b"" + + def find_cookie(line: bytes) -> Optional[str]: + try: + line_string = line.decode("ascii") + except UnicodeDecodeError: + return None + match = cookie_re.match(line_string) + if not match: + return None + encoding = _get_normal_name(match.group(1)) + try: + codec = lookup(encoding) + except LookupError: + # This behaviour mimics the Python interpreter + raise SyntaxError("unknown encoding: " + encoding) + + if bom_found: + if codec.name != "utf-8": + # This behaviour mimics the Python interpreter + raise SyntaxError("encoding problem: utf-8") + encoding += "-sig" + return encoding + + first = read_or_stop() + if first.startswith(BOM_UTF8): + bom_found = True + first = first[3:] + default = "utf-8-sig" + if not first: + return default, [] + + encoding = find_cookie(first) + if encoding: + return encoding, [first] + if not blank_re.match(first): + return default, [first] + + second = read_or_stop() + if not second: + return default, [first] + + encoding = find_cookie(second) + if encoding: + return encoding, [first, second] + + return default, [first, second] + + +def untokenize(iterable: Iterable[TokenInfo]) -> str: + """Transform tokens back into Python source code. + + Each element returned by the iterable must be a token sequence + with at least two elements, a token number and token value. If + only two tokens are passed, the resulting output is poor. + + Round-trip invariant for full input: + Untokenized source will match input source exactly + + Round-trip invariant for limited input: + # Output text will tokenize the back to the input + t1 = [tok[:2] for tok in generate_tokens(f.readline)] + newcode = untokenize(t1) + readline = iter(newcode.splitlines(1)).next + t2 = [tok[:2] for tokin generate_tokens(readline)] + assert t1 == t2 + """ + ut = Untokenizer() + return ut.untokenize(iterable) + + +def is_fstring_start(token: str) -> bool: + return builtins.any(token.startswith(prefix) for prefix in fstring_prefix) + + +def _split_fstring_start_and_middle(token: str) -> Tuple[str, str]: + for prefix in fstring_prefix: + _, prefix, rest = token.partition(prefix) + if prefix != "": + return prefix, rest + + raise ValueError(f"Token {token!r} is not a valid f-string start") + + +STATE_NOT_FSTRING: Final = 0 # not in an f-string +STATE_MIDDLE: Final = 1 # in the string portion of an f-string (outside braces) +STATE_IN_BRACES: Final = 2 # between braces in an f-string +# in the format specifier (between the colon and the closing brace) +STATE_IN_COLON: Final = 3 + + +class FStringState: + """Keeps track of state around f-strings. + + The tokenizer should call the appropriate method on this class when + it transitions to a different part of an f-string. This is needed + because the tokenization depends on knowing where exactly we are in + the f-string. + + For example, consider the following f-string: + + f"a{1:b{2}c}d" + + The following is the tokenization of this string and the states + tracked by this class: + + 1,0-1,2: FSTRING_START 'f"' # [STATE_NOT_FSTRING, STATE_MIDDLE] + 1,2-1,3: FSTRING_MIDDLE 'a' + 1,3-1,4: LBRACE '{' # [STATE_NOT_FSTRING, STATE_IN_BRACES] + 1,4-1,5: NUMBER '1' + 1,5-1,6: OP ':' # [STATE_NOT_FSTRING, STATE_IN_COLON] + 1,6-1,7: FSTRING_MIDDLE 'b' + 1,7-1,8: LBRACE '{' # [STATE_NOT_FSTRING, STATE_IN_COLON, STATE_IN_BRACES] + 1,8-1,9: NUMBER '2' + 1,9-1,10: RBRACE '}' # [STATE_NOT_FSTRING, STATE_IN_COLON] + 1,10-1,11: FSTRING_MIDDLE 'c' + 1,11-1,12: RBRACE '}' # [STATE_NOT_FSTRING, STATE_MIDDLE] + 1,12-1,13: FSTRING_MIDDLE 'd' + 1,13-1,14: FSTRING_END '"' # [STATE_NOT_FSTRING] + 1,14-1,15: NEWLINE '\n' + 2,0-2,0: ENDMARKER '' + + Notice that the nested braces in the format specifier are represented + by adding a STATE_IN_BRACES entry to the state stack. The stack is + also used if there are nested f-strings. + + """ + + def __init__(self) -> None: + self.stack: List[int] = [STATE_NOT_FSTRING] + + def is_in_fstring_expression(self) -> bool: + return self.stack[-1] not in (STATE_MIDDLE, STATE_NOT_FSTRING) + + def current(self) -> int: + return self.stack[-1] + + def enter_fstring(self) -> None: + self.stack.append(STATE_MIDDLE) + + def leave_fstring(self) -> None: + state = self.stack.pop() + assert state == STATE_MIDDLE + + def consume_lbrace(self) -> None: + current_state = self.stack[-1] + if current_state == STATE_MIDDLE: + self.stack[-1] = STATE_IN_BRACES + elif current_state == STATE_IN_COLON: + self.stack.append(STATE_IN_BRACES) + else: + assert False, current_state + + def consume_rbrace(self) -> None: + current_state = self.stack[-1] + assert current_state in (STATE_IN_BRACES, STATE_IN_COLON) + if len(self.stack) > 1 and self.stack[-2] == STATE_IN_COLON: + self.stack.pop() + else: + self.stack[-1] = STATE_MIDDLE + + def consume_colon(self) -> None: + assert self.stack[-1] == STATE_IN_BRACES, self.stack + self.stack[-1] = STATE_IN_COLON + + +def generate_tokens( + readline: Callable[[], str], grammar: Optional[Grammar] = None +) -> Iterator[GoodTokenInfo]: + """ + The generate_tokens() generator requires one argument, readline, which + must be a callable object which provides the same interface as the + readline() method of built-in file objects. Each call to the function + should return one line of input as a string. Alternately, readline + can be a callable function terminating with StopIteration: + readline = open(myfile).next # Example of alternate readline + + The generator produces 5-tuples with these members: the token type; the + token string; a 2-tuple (srow, scol) of ints specifying the row and + column where the token begins in the source; a 2-tuple (erow, ecol) of + ints specifying the row and column where the token ends in the source; + and the line on which the token was found. The line passed is the + logical line; continuation lines are included. + """ + lnum = parenlev = continued = 0 + parenlev_stack: List[int] = [] + fstring_state = FStringState() + formatspec = "" + numchars: Final[str] = "0123456789" + contstr, needcont = "", 0 + contline: Optional[str] = None + indents = [0] + + # If we know we're parsing 3.7+, we can unconditionally parse `async` and + # `await` as keywords. + async_keywords = False if grammar is None else grammar.async_keywords + # 'stashed' and 'async_*' are used for async/await parsing + stashed: Optional[GoodTokenInfo] = None + async_def = False + async_def_indent = 0 + async_def_nl = False + + strstart: Tuple[int, int] + endprog_stack: List[Pattern[str]] = [] + formatspec_start: Tuple[int, int] + + while 1: # loop over lines in stream + try: + line = readline() + except StopIteration: + line = "" + lnum += 1 + + # skip lines that are just indent characters ending with a slash + # to avoid storing that line's indent information. + if not contstr and line.rstrip("\n").strip(" \t\f") == "\\": + continue + + pos, max = 0, len(line) + + if contstr: # continued string + assert contline is not None + if not line: + raise TokenError("EOF in multi-line string", strstart) + endprog = endprog_stack[-1] + endmatch = endprog.match(line) + if endmatch: + end = endmatch.end(0) + token = contstr + line[:end] + spos = strstart + epos = (lnum, end) + tokenline = contline + line + if fstring_state.current() in ( + STATE_NOT_FSTRING, + STATE_IN_BRACES, + ) and not is_fstring_start(token): + yield (STRING, token, spos, epos, tokenline) + endprog_stack.pop() + parenlev = parenlev_stack.pop() + else: + if is_fstring_start(token): + fstring_start, token = _split_fstring_start_and_middle(token) + fstring_start_epos = (spos[0], spos[1] + len(fstring_start)) + yield ( + FSTRING_START, + fstring_start, + spos, + fstring_start_epos, + tokenline, + ) + fstring_state.enter_fstring() + # increase spos to the end of the fstring start + spos = fstring_start_epos + + if token.endswith("{"): + fstring_middle, lbrace = token[:-1], token[-1] + fstring_middle_epos = lbrace_spos = (lnum, end - 1) + yield ( + FSTRING_MIDDLE, + fstring_middle, + spos, + fstring_middle_epos, + line, + ) + yield (LBRACE, lbrace, lbrace_spos, epos, line) + fstring_state.consume_lbrace() + else: + if token.endswith(('"""', "'''")): + fstring_middle, fstring_end = token[:-3], token[-3:] + fstring_middle_epos = end_spos = (lnum, end - 3) + else: + fstring_middle, fstring_end = token[:-1], token[-1] + fstring_middle_epos = end_spos = (lnum, end - 1) + yield ( + FSTRING_MIDDLE, + fstring_middle, + spos, + fstring_middle_epos, + line, + ) + yield ( + FSTRING_END, + fstring_end, + end_spos, + epos, + line, + ) + fstring_state.leave_fstring() + endprog_stack.pop() + parenlev = parenlev_stack.pop() + pos = end + contstr, needcont = "", 0 + contline = None + elif needcont and line[-2:] != "\\\n" and line[-3:] != "\\\r\n": + yield ( + ERRORTOKEN, + contstr + line, + strstart, + (lnum, len(line)), + contline, + ) + contstr = "" + contline = None + continue + else: + contstr = contstr + line + contline = contline + line + continue + + # new statement + elif ( + parenlev == 0 + and not continued + and not fstring_state.is_in_fstring_expression() + ): + if not line: + break + column = 0 + while pos < max: # measure leading whitespace + if line[pos] == " ": + column += 1 + elif line[pos] == "\t": + column = (column // tabsize + 1) * tabsize + elif line[pos] == "\f": + column = 0 + else: + break + pos += 1 + if pos == max: + break + + if stashed: + yield stashed + stashed = None + + if line[pos] in "\r\n": # skip blank lines + yield (NL, line[pos:], (lnum, pos), (lnum, len(line)), line) + continue + + if line[pos] == "#": # skip comments + comment_token = line[pos:].rstrip("\r\n") + nl_pos = pos + len(comment_token) + yield ( + COMMENT, + comment_token, + (lnum, pos), + (lnum, nl_pos), + line, + ) + yield (NL, line[nl_pos:], (lnum, nl_pos), (lnum, len(line)), line) + continue + + if column > indents[-1]: # count indents + indents.append(column) + yield (INDENT, line[:pos], (lnum, 0), (lnum, pos), line) + + while column < indents[-1]: # count dedents + if column not in indents: + raise IndentationError( + "unindent does not match any outer indentation level", + ("", lnum, pos, line), + ) + indents = indents[:-1] + + if async_def and async_def_indent >= indents[-1]: + async_def = False + async_def_nl = False + async_def_indent = 0 + + yield (DEDENT, "", (lnum, pos), (lnum, pos), line) + + if async_def and async_def_nl and async_def_indent >= indents[-1]: + async_def = False + async_def_nl = False + async_def_indent = 0 + + else: # continued statement + if not line: + raise TokenError("EOF in multi-line statement", (lnum, 0)) + continued = 0 + + while pos < max: + if fstring_state.current() == STATE_MIDDLE: + endprog = endprog_stack[-1] + endmatch = endprog.match(line, pos) + if endmatch: # all on one line + start, end = endmatch.span(0) + token = line[start:end] + if token.endswith(('"""', "'''")): + middle_token, end_token = token[:-3], token[-3:] + middle_epos = end_spos = (lnum, end - 3) + else: + middle_token, end_token = token[:-1], token[-1] + middle_epos = end_spos = (lnum, end - 1) + # TODO: unsure if this can be safely removed + if stashed: + yield stashed + stashed = None + yield ( + FSTRING_MIDDLE, + middle_token, + (lnum, pos), + middle_epos, + line, + ) + if not token.endswith("{"): + yield ( + FSTRING_END, + end_token, + end_spos, + (lnum, end), + line, + ) + fstring_state.leave_fstring() + endprog_stack.pop() + parenlev = parenlev_stack.pop() + else: + yield (LBRACE, "{", (lnum, end - 1), (lnum, end), line) + fstring_state.consume_lbrace() + pos = end + continue + else: # multiple lines + strstart = (lnum, end) + contstr = line[end:] + contline = line + break + + if fstring_state.current() == STATE_IN_COLON: + match = fstring_middle_after_colon.match(line, pos) + if match is None: + formatspec += line[pos:] + pos = max + continue + + start, end = match.span(1) + token = line[start:end] + formatspec += token + + brace_start, brace_end = match.span(2) + brace_or_nl = line[brace_start:brace_end] + if brace_or_nl == "\n": + pos = brace_end + + yield (FSTRING_MIDDLE, formatspec, formatspec_start, (lnum, end), line) + formatspec = "" + + if brace_or_nl == "{": + yield (LBRACE, "{", (lnum, brace_start), (lnum, brace_end), line) + fstring_state.consume_lbrace() + end = brace_end + elif brace_or_nl == "}": + yield (RBRACE, "}", (lnum, brace_start), (lnum, brace_end), line) + fstring_state.consume_rbrace() + end = brace_end + formatspec_start = (lnum, brace_end) + + pos = end + continue + + if fstring_state.current() == STATE_IN_BRACES and parenlev == 0: + match = bang.match(line, pos) + if match: + start, end = match.span(1) + yield (OP, "!", (lnum, start), (lnum, end), line) + pos = end + continue + + match = colon.match(line, pos) + if match: + start, end = match.span(1) + yield (OP, ":", (lnum, start), (lnum, end), line) + fstring_state.consume_colon() + formatspec_start = (lnum, end) + pos = end + continue + + pseudomatch = pseudoprog.match(line, pos) + if pseudomatch: # scan for tokens + start, end = pseudomatch.span(1) + spos, epos, pos = (lnum, start), (lnum, end), end + token, initial = line[start:end], line[start] + + if initial in numchars or ( + initial == "." and token != "." + ): # ordinary number + yield (NUMBER, token, spos, epos, line) + elif initial in "\r\n": + newline = NEWLINE + if parenlev > 0 or fstring_state.is_in_fstring_expression(): + newline = NL + elif async_def: + async_def_nl = True + if stashed: + yield stashed + stashed = None + yield (newline, token, spos, epos, line) + + elif initial == "#": + assert not token.endswith("\n") + if stashed: + yield stashed + stashed = None + yield (COMMENT, token, spos, epos, line) + elif token in triple_quoted: + endprog = endprogs[token] + endprog_stack.append(endprog) + parenlev_stack.append(parenlev) + parenlev = 0 + if is_fstring_start(token): + yield (FSTRING_START, token, spos, epos, line) + fstring_state.enter_fstring() + + endmatch = endprog.match(line, pos) + if endmatch: # all on one line + if stashed: + yield stashed + stashed = None + if not is_fstring_start(token): + pos = endmatch.end(0) + token = line[start:pos] + epos = (lnum, pos) + yield (STRING, token, spos, epos, line) + endprog_stack.pop() + parenlev = parenlev_stack.pop() + else: + end = endmatch.end(0) + token = line[pos:end] + spos, epos = (lnum, pos), (lnum, end) + if not token.endswith("{"): + fstring_middle, fstring_end = token[:-3], token[-3:] + fstring_middle_epos = fstring_end_spos = (lnum, end - 3) + yield ( + FSTRING_MIDDLE, + fstring_middle, + spos, + fstring_middle_epos, + line, + ) + yield ( + FSTRING_END, + fstring_end, + fstring_end_spos, + epos, + line, + ) + fstring_state.leave_fstring() + endprog_stack.pop() + parenlev = parenlev_stack.pop() + else: + fstring_middle, lbrace = token[:-1], token[-1] + fstring_middle_epos = lbrace_spos = (lnum, end - 1) + yield ( + FSTRING_MIDDLE, + fstring_middle, + spos, + fstring_middle_epos, + line, + ) + yield (LBRACE, lbrace, lbrace_spos, epos, line) + fstring_state.consume_lbrace() + pos = end + else: + # multiple lines + if is_fstring_start(token): + strstart = (lnum, pos) + contstr = line[pos:] + else: + strstart = (lnum, start) + contstr = line[start:] + contline = line + break + elif ( + initial in single_quoted + or token[:2] in single_quoted + or token[:3] in single_quoted + ): + maybe_endprog = ( + endprogs.get(initial) + or endprogs.get(token[:2]) + or endprogs.get(token[:3]) + ) + assert maybe_endprog is not None, f"endprog not found for {token}" + endprog = maybe_endprog + if token[-1] == "\n": # continued string + endprog_stack.append(endprog) + parenlev_stack.append(parenlev) + parenlev = 0 + strstart = (lnum, start) + contstr, needcont = line[start:], 1 + contline = line + break + else: # ordinary string + if stashed: + yield stashed + stashed = None + + if not is_fstring_start(token): + yield (STRING, token, spos, epos, line) + else: + if pseudomatch[20] is not None: + fstring_start = pseudomatch[20] + offset = pseudomatch.end(20) - pseudomatch.start(1) + elif pseudomatch[22] is not None: + fstring_start = pseudomatch[22] + offset = pseudomatch.end(22) - pseudomatch.start(1) + elif pseudomatch[24] is not None: + fstring_start = pseudomatch[24] + offset = pseudomatch.end(24) - pseudomatch.start(1) + else: + fstring_start = pseudomatch[26] + offset = pseudomatch.end(26) - pseudomatch.start(1) + + start_epos = (lnum, start + offset) + yield (FSTRING_START, fstring_start, spos, start_epos, line) + fstring_state.enter_fstring() + endprog = endprogs[fstring_start] + endprog_stack.append(endprog) + parenlev_stack.append(parenlev) + parenlev = 0 + + end_offset = pseudomatch.end(1) - 1 + fstring_middle = line[start + offset : end_offset] + middle_spos = (lnum, start + offset) + middle_epos = (lnum, end_offset) + yield ( + FSTRING_MIDDLE, + fstring_middle, + middle_spos, + middle_epos, + line, + ) + if not token.endswith("{"): + end_spos = (lnum, end_offset) + end_epos = (lnum, end_offset + 1) + yield (FSTRING_END, token[-1], end_spos, end_epos, line) + fstring_state.leave_fstring() + endprog_stack.pop() + parenlev = parenlev_stack.pop() + else: + end_spos = (lnum, end_offset) + end_epos = (lnum, end_offset + 1) + yield (LBRACE, "{", end_spos, end_epos, line) + fstring_state.consume_lbrace() + + elif initial.isidentifier(): # ordinary name + if token in ("async", "await"): + if async_keywords or async_def: + yield ( + ASYNC if token == "async" else AWAIT, + token, + spos, + epos, + line, + ) + continue + + tok = (NAME, token, spos, epos, line) + if token == "async" and not stashed: + stashed = tok + continue + + if token in ("def", "for"): + if stashed and stashed[0] == NAME and stashed[1] == "async": + if token == "def": + async_def = True + async_def_indent = indents[-1] + + yield ( + ASYNC, + stashed[1], + stashed[2], + stashed[3], + stashed[4], + ) + stashed = None + + if stashed: + yield stashed + stashed = None + + yield tok + elif initial == "\\": # continued stmt + # This yield is new; needed for better idempotency: + if stashed: + yield stashed + stashed = None + yield (NL, token, spos, (lnum, pos), line) + continued = 1 + elif ( + initial == "}" + and parenlev == 0 + and fstring_state.is_in_fstring_expression() + ): + yield (RBRACE, token, spos, epos, line) + fstring_state.consume_rbrace() + formatspec_start = epos + else: + if initial in "([{": + parenlev += 1 + elif initial in ")]}": + parenlev -= 1 + if stashed: + yield stashed + stashed = None + yield (OP, token, spos, epos, line) + else: + yield (ERRORTOKEN, line[pos], (lnum, pos), (lnum, pos + 1), line) + pos += 1 + + if stashed: + yield stashed + stashed = None + + for _indent in indents[1:]: # pop remaining indent levels + yield (DEDENT, "", (lnum, 0), (lnum, 0), "") + yield (ENDMARKER, "", (lnum, 0), (lnum, 0), "") + assert len(endprog_stack) == 0 + assert len(parenlev_stack) == 0 + + +if __name__ == "__main__": # testing + if len(sys.argv) > 1: + tokenize(open(sys.argv[1]).readline) + else: + tokenize(sys.stdin.readline) diff --git a/venv/lib/python3.12/site-packages/blib2to3/pygram.py b/venv/lib/python3.12/site-packages/blib2to3/pygram.py new file mode 100644 index 0000000000..70a5684bb0 --- /dev/null +++ b/venv/lib/python3.12/site-packages/blib2to3/pygram.py @@ -0,0 +1,204 @@ +# Copyright 2006 Google, Inc. All Rights Reserved. +# Licensed to PSF under a Contributor Agreement. + +"""Export the Python grammar and symbols.""" + +# Python imports +import os +from typing import Union + +# Local imports +from .pgen2 import driver +from .pgen2.grammar import Grammar + +# Moved into initialize because mypyc can't handle __file__ (XXX bug) +# # The grammar file +# _GRAMMAR_FILE = os.path.join(os.path.dirname(__file__), "Grammar.txt") +# _PATTERN_GRAMMAR_FILE = os.path.join(os.path.dirname(__file__), +# "PatternGrammar.txt") + + +class Symbols: + def __init__(self, grammar: Grammar) -> None: + """Initializer. + + Creates an attribute for each grammar symbol (nonterminal), + whose value is the symbol's type (an int >= 256). + """ + for name, symbol in grammar.symbol2number.items(): + setattr(self, name, symbol) + + +class _python_symbols(Symbols): + and_expr: int + and_test: int + annassign: int + arglist: int + argument: int + arith_expr: int + asexpr_test: int + assert_stmt: int + async_funcdef: int + async_stmt: int + atom: int + augassign: int + break_stmt: int + case_block: int + classdef: int + comp_for: int + comp_if: int + comp_iter: int + comp_op: int + comparison: int + compound_stmt: int + continue_stmt: int + decorated: int + decorator: int + decorators: int + del_stmt: int + dictsetmaker: int + dotted_as_name: int + dotted_as_names: int + dotted_name: int + encoding_decl: int + eval_input: int + except_clause: int + expr: int + expr_stmt: int + exprlist: int + factor: int + file_input: int + flow_stmt: int + for_stmt: int + fstring: int + fstring_format_spec: int + fstring_middle: int + fstring_replacement_field: int + funcdef: int + global_stmt: int + guard: int + if_stmt: int + import_as_name: int + import_as_names: int + import_from: int + import_name: int + import_stmt: int + lambdef: int + listmaker: int + match_stmt: int + namedexpr_test: int + not_test: int + old_comp_for: int + old_comp_if: int + old_comp_iter: int + old_lambdef: int + old_test: int + or_test: int + parameters: int + paramspec: int + pass_stmt: int + pattern: int + patterns: int + power: int + raise_stmt: int + return_stmt: int + shift_expr: int + simple_stmt: int + single_input: int + sliceop: int + small_stmt: int + subject_expr: int + star_expr: int + stmt: int + subscript: int + subscriptlist: int + suite: int + term: int + test: int + testlist: int + testlist1: int + testlist_gexp: int + testlist_safe: int + testlist_star_expr: int + tfpdef: int + tfplist: int + tname: int + tname_star: int + trailer: int + try_stmt: int + type_stmt: int + typedargslist: int + typeparam: int + typeparams: int + typevar: int + typevartuple: int + varargslist: int + vfpdef: int + vfplist: int + vname: int + while_stmt: int + with_stmt: int + xor_expr: int + yield_arg: int + yield_expr: int + yield_stmt: int + + +class _pattern_symbols(Symbols): + Alternative: int + Alternatives: int + Details: int + Matcher: int + NegatedUnit: int + Repeater: int + Unit: int + + +python_grammar: Grammar +python_grammar_async_keywords: Grammar +python_grammar_soft_keywords: Grammar +pattern_grammar: Grammar +python_symbols: _python_symbols +pattern_symbols: _pattern_symbols + + +def initialize(cache_dir: Union[str, "os.PathLike[str]", None] = None) -> None: + global python_grammar + global python_grammar_async_keywords + global python_grammar_soft_keywords + global python_symbols + global pattern_grammar + global pattern_symbols + + # The grammar file + _GRAMMAR_FILE = os.path.join(os.path.dirname(__file__), "Grammar.txt") + _PATTERN_GRAMMAR_FILE = os.path.join( + os.path.dirname(__file__), "PatternGrammar.txt" + ) + + python_grammar = driver.load_packaged_grammar("blib2to3", _GRAMMAR_FILE, cache_dir) + assert "print" not in python_grammar.keywords + assert "exec" not in python_grammar.keywords + + soft_keywords = python_grammar.soft_keywords.copy() + python_grammar.soft_keywords.clear() + + python_symbols = _python_symbols(python_grammar) + + # Python 3.0-3.6 + python_grammar.version = (3, 0) + + # Python 3.7+ + python_grammar_async_keywords = python_grammar.copy() + python_grammar_async_keywords.async_keywords = True + python_grammar_async_keywords.version = (3, 7) + + # Python 3.10+ + python_grammar_soft_keywords = python_grammar_async_keywords.copy() + python_grammar_soft_keywords.soft_keywords = soft_keywords + python_grammar_soft_keywords.version = (3, 10) + + pattern_grammar = driver.load_packaged_grammar( + "blib2to3", _PATTERN_GRAMMAR_FILE, cache_dir + ) + pattern_symbols = _pattern_symbols(pattern_grammar) diff --git a/venv/lib/python3.12/site-packages/blib2to3/pytree.py b/venv/lib/python3.12/site-packages/blib2to3/pytree.py new file mode 100644 index 0000000000..4c55d7ac77 --- /dev/null +++ b/venv/lib/python3.12/site-packages/blib2to3/pytree.py @@ -0,0 +1,986 @@ +# Copyright 2006 Google, Inc. All Rights Reserved. +# Licensed to PSF under a Contributor Agreement. + +""" +Python parse tree definitions. + +This is a very concrete parse tree; we need to keep every token and +even the comments and whitespace between tokens. + +There's also a pattern matching implementation here. +""" + +# mypy: allow-untyped-defs, allow-incomplete-defs + +from typing import ( + Any, + Dict, + Iterable, + Iterator, + List, + Optional, + Set, + Tuple, + TypeVar, + Union, +) + +from blib2to3.pgen2.grammar import Grammar + +__author__ = "Guido van Rossum " + +import sys +from io import StringIO + +HUGE: int = 0x7FFFFFFF # maximum repeat count, default max + +_type_reprs: Dict[int, Union[str, int]] = {} + + +def type_repr(type_num: int) -> Union[str, int]: + global _type_reprs + if not _type_reprs: + from . import pygram + + if not hasattr(pygram, "python_symbols"): + pygram.initialize(cache_dir=None) + + # printing tokens is possible but not as useful + # from .pgen2 import token // token.__dict__.items(): + for name in dir(pygram.python_symbols): + val = getattr(pygram.python_symbols, name) + if type(val) == int: + _type_reprs[val] = name + return _type_reprs.setdefault(type_num, type_num) + + +_P = TypeVar("_P", bound="Base") + +NL = Union["Node", "Leaf"] +Context = Tuple[str, Tuple[int, int]] +RawNode = Tuple[int, Optional[str], Optional[Context], Optional[List[NL]]] + + +class Base: + """ + Abstract base class for Node and Leaf. + + This provides some default functionality and boilerplate using the + template pattern. + + A node may be a subnode of at most one parent. + """ + + # Default values for instance variables + type: int # int: token number (< 256) or symbol number (>= 256) + parent: Optional["Node"] = None # Parent node pointer, or None + children: List[NL] # List of subnodes + was_changed: bool = False + was_checked: bool = False + + def __new__(cls, *args, **kwds): + """Constructor that prevents Base from being instantiated.""" + assert cls is not Base, "Cannot instantiate Base" + return object.__new__(cls) + + def __eq__(self, other: Any) -> bool: + """ + Compare two nodes for equality. + + This calls the method _eq(). + """ + if self.__class__ is not other.__class__: + return NotImplemented + return self._eq(other) + + @property + def prefix(self) -> str: + raise NotImplementedError + + def _eq(self: _P, other: _P) -> bool: + """ + Compare two nodes for equality. + + This is called by __eq__ and __ne__. It is only called if the two nodes + have the same type. This must be implemented by the concrete subclass. + Nodes should be considered equal if they have the same structure, + ignoring the prefix string and other context information. + """ + raise NotImplementedError + + def __deepcopy__(self: _P, memo: Any) -> _P: + return self.clone() + + def clone(self: _P) -> _P: + """ + Return a cloned (deep) copy of self. + + This must be implemented by the concrete subclass. + """ + raise NotImplementedError + + def post_order(self) -> Iterator[NL]: + """ + Return a post-order iterator for the tree. + + This must be implemented by the concrete subclass. + """ + raise NotImplementedError + + def pre_order(self) -> Iterator[NL]: + """ + Return a pre-order iterator for the tree. + + This must be implemented by the concrete subclass. + """ + raise NotImplementedError + + def replace(self, new: Union[NL, List[NL]]) -> None: + """Replace this node with a new one in the parent.""" + assert self.parent is not None, str(self) + assert new is not None + if not isinstance(new, list): + new = [new] + l_children = [] + found = False + for ch in self.parent.children: + if ch is self: + assert not found, (self.parent.children, self, new) + if new is not None: + l_children.extend(new) + found = True + else: + l_children.append(ch) + assert found, (self.children, self, new) + self.parent.children = l_children + self.parent.changed() + self.parent.invalidate_sibling_maps() + for x in new: + x.parent = self.parent + self.parent = None + + def get_lineno(self) -> Optional[int]: + """Return the line number which generated the invocant node.""" + node = self + while not isinstance(node, Leaf): + if not node.children: + return None + node = node.children[0] + return node.lineno + + def changed(self) -> None: + if self.was_changed: + return + if self.parent: + self.parent.changed() + self.was_changed = True + + def remove(self) -> Optional[int]: + """ + Remove the node from the tree. Returns the position of the node in its + parent's children before it was removed. + """ + if self.parent: + for i, node in enumerate(self.parent.children): + if node is self: + del self.parent.children[i] + self.parent.changed() + self.parent.invalidate_sibling_maps() + self.parent = None + return i + return None + + @property + def next_sibling(self) -> Optional[NL]: + """ + The node immediately following the invocant in their parent's children + list. If the invocant does not have a next sibling, it is None + """ + if self.parent is None: + return None + + if self.parent.next_sibling_map is None: + self.parent.update_sibling_maps() + assert self.parent.next_sibling_map is not None + return self.parent.next_sibling_map[id(self)] + + @property + def prev_sibling(self) -> Optional[NL]: + """ + The node immediately preceding the invocant in their parent's children + list. If the invocant does not have a previous sibling, it is None. + """ + if self.parent is None: + return None + + if self.parent.prev_sibling_map is None: + self.parent.update_sibling_maps() + assert self.parent.prev_sibling_map is not None + return self.parent.prev_sibling_map[id(self)] + + def leaves(self) -> Iterator["Leaf"]: + for child in self.children: + yield from child.leaves() + + def depth(self) -> int: + if self.parent is None: + return 0 + return 1 + self.parent.depth() + + def get_suffix(self) -> str: + """ + Return the string immediately following the invocant node. This is + effectively equivalent to node.next_sibling.prefix + """ + next_sib = self.next_sibling + if next_sib is None: + return "" + prefix = next_sib.prefix + return prefix + + +class Node(Base): + """Concrete implementation for interior nodes.""" + + fixers_applied: Optional[List[Any]] + used_names: Optional[Set[str]] + + def __init__( + self, + type: int, + children: List[NL], + context: Optional[Any] = None, + prefix: Optional[str] = None, + fixers_applied: Optional[List[Any]] = None, + ) -> None: + """ + Initializer. + + Takes a type constant (a symbol number >= 256), a sequence of + child nodes, and an optional context keyword argument. + + As a side effect, the parent pointers of the children are updated. + """ + assert type >= 256, type + self.type = type + self.children = list(children) + for ch in self.children: + assert ch.parent is None, repr(ch) + ch.parent = self + self.invalidate_sibling_maps() + if prefix is not None: + self.prefix = prefix + if fixers_applied: + self.fixers_applied = fixers_applied[:] + else: + self.fixers_applied = None + + def __repr__(self) -> str: + """Return a canonical string representation.""" + assert self.type is not None + return "{}({}, {!r})".format( + self.__class__.__name__, + type_repr(self.type), + self.children, + ) + + def __str__(self) -> str: + """ + Return a pretty string representation. + + This reproduces the input source exactly. + """ + return "".join(map(str, self.children)) + + def _eq(self, other: Base) -> bool: + """Compare two nodes for equality.""" + return (self.type, self.children) == (other.type, other.children) + + def clone(self) -> "Node": + assert self.type is not None + """Return a cloned (deep) copy of self.""" + return Node( + self.type, + [ch.clone() for ch in self.children], + fixers_applied=self.fixers_applied, + ) + + def post_order(self) -> Iterator[NL]: + """Return a post-order iterator for the tree.""" + for child in self.children: + yield from child.post_order() + yield self + + def pre_order(self) -> Iterator[NL]: + """Return a pre-order iterator for the tree.""" + yield self + for child in self.children: + yield from child.pre_order() + + @property + def prefix(self) -> str: + """ + The whitespace and comments preceding this node in the input. + """ + if not self.children: + return "" + return self.children[0].prefix + + @prefix.setter + def prefix(self, prefix: str) -> None: + if self.children: + self.children[0].prefix = prefix + + def set_child(self, i: int, child: NL) -> None: + """ + Equivalent to 'node.children[i] = child'. This method also sets the + child's parent attribute appropriately. + """ + child.parent = self + self.children[i].parent = None + self.children[i] = child + self.changed() + self.invalidate_sibling_maps() + + def insert_child(self, i: int, child: NL) -> None: + """ + Equivalent to 'node.children.insert(i, child)'. This method also sets + the child's parent attribute appropriately. + """ + child.parent = self + self.children.insert(i, child) + self.changed() + self.invalidate_sibling_maps() + + def append_child(self, child: NL) -> None: + """ + Equivalent to 'node.children.append(child)'. This method also sets the + child's parent attribute appropriately. + """ + child.parent = self + self.children.append(child) + self.changed() + self.invalidate_sibling_maps() + + def invalidate_sibling_maps(self) -> None: + self.prev_sibling_map: Optional[Dict[int, Optional[NL]]] = None + self.next_sibling_map: Optional[Dict[int, Optional[NL]]] = None + + def update_sibling_maps(self) -> None: + _prev: Dict[int, Optional[NL]] = {} + _next: Dict[int, Optional[NL]] = {} + self.prev_sibling_map = _prev + self.next_sibling_map = _next + previous: Optional[NL] = None + for current in self.children: + _prev[id(current)] = previous + _next[id(previous)] = current + previous = current + _next[id(current)] = None + + +class Leaf(Base): + """Concrete implementation for leaf nodes.""" + + # Default values for instance variables + value: str + fixers_applied: List[Any] + bracket_depth: int + # Changed later in brackets.py + opening_bracket: Optional["Leaf"] = None + used_names: Optional[Set[str]] + _prefix = "" # Whitespace and comments preceding this token in the input + lineno: int = 0 # Line where this token starts in the input + column: int = 0 # Column where this token starts in the input + # If not None, this Leaf is created by converting a block of fmt off/skip + # code, and `fmt_pass_converted_first_leaf` points to the first Leaf in the + # converted code. + fmt_pass_converted_first_leaf: Optional["Leaf"] = None + + def __init__( + self, + type: int, + value: str, + context: Optional[Context] = None, + prefix: Optional[str] = None, + fixers_applied: List[Any] = [], + opening_bracket: Optional["Leaf"] = None, + fmt_pass_converted_first_leaf: Optional["Leaf"] = None, + ) -> None: + """ + Initializer. + + Takes a type constant (a token number < 256), a string value, and an + optional context keyword argument. + """ + + assert 0 <= type < 256, type + if context is not None: + self._prefix, (self.lineno, self.column) = context + self.type = type + self.value = value + if prefix is not None: + self._prefix = prefix + self.fixers_applied: Optional[List[Any]] = fixers_applied[:] + self.children = [] + self.opening_bracket = opening_bracket + self.fmt_pass_converted_first_leaf = fmt_pass_converted_first_leaf + + def __repr__(self) -> str: + """Return a canonical string representation.""" + from .pgen2.token import tok_name + + assert self.type is not None + return "{}({}, {!r})".format( + self.__class__.__name__, + tok_name.get(self.type, self.type), + self.value, + ) + + def __str__(self) -> str: + """ + Return a pretty string representation. + + This reproduces the input source exactly. + """ + return self._prefix + str(self.value) + + def _eq(self, other: "Leaf") -> bool: + """Compare two nodes for equality.""" + return (self.type, self.value) == (other.type, other.value) + + def clone(self) -> "Leaf": + assert self.type is not None + """Return a cloned (deep) copy of self.""" + return Leaf( + self.type, + self.value, + (self.prefix, (self.lineno, self.column)), + fixers_applied=self.fixers_applied, + ) + + def leaves(self) -> Iterator["Leaf"]: + yield self + + def post_order(self) -> Iterator["Leaf"]: + """Return a post-order iterator for the tree.""" + yield self + + def pre_order(self) -> Iterator["Leaf"]: + """Return a pre-order iterator for the tree.""" + yield self + + @property + def prefix(self) -> str: + """ + The whitespace and comments preceding this token in the input. + """ + return self._prefix + + @prefix.setter + def prefix(self, prefix: str) -> None: + self.changed() + self._prefix = prefix + + +def convert(gr: Grammar, raw_node: RawNode) -> NL: + """ + Convert raw node information to a Node or Leaf instance. + + This is passed to the parser driver which calls it whenever a reduction of a + grammar rule produces a new complete node, so that the tree is build + strictly bottom-up. + """ + type, value, context, children = raw_node + if children or type in gr.number2symbol: + # If there's exactly one child, return that child instead of + # creating a new node. + assert children is not None + if len(children) == 1: + return children[0] + return Node(type, children, context=context) + else: + return Leaf(type, value or "", context=context) + + +_Results = Dict[str, NL] + + +class BasePattern: + """ + A pattern is a tree matching pattern. + + It looks for a specific node type (token or symbol), and + optionally for a specific content. + + This is an abstract base class. There are three concrete + subclasses: + + - LeafPattern matches a single leaf node; + - NodePattern matches a single node (usually non-leaf); + - WildcardPattern matches a sequence of nodes of variable length. + """ + + # Defaults for instance variables + type: Optional[int] + type = None # Node type (token if < 256, symbol if >= 256) + content: Any = None # Optional content matching pattern + name: Optional[str] = None # Optional name used to store match in results dict + + def __new__(cls, *args, **kwds): + """Constructor that prevents BasePattern from being instantiated.""" + assert cls is not BasePattern, "Cannot instantiate BasePattern" + return object.__new__(cls) + + def __repr__(self) -> str: + assert self.type is not None + args = [type_repr(self.type), self.content, self.name] + while args and args[-1] is None: + del args[-1] + return "{}({})".format(self.__class__.__name__, ", ".join(map(repr, args))) + + def _submatch(self, node, results=None) -> bool: + raise NotImplementedError + + def optimize(self) -> "BasePattern": + """ + A subclass can define this as a hook for optimizations. + + Returns either self or another node with the same effect. + """ + return self + + def match(self, node: NL, results: Optional[_Results] = None) -> bool: + """ + Does this pattern exactly match a node? + + Returns True if it matches, False if not. + + If results is not None, it must be a dict which will be + updated with the nodes matching named subpatterns. + + Default implementation for non-wildcard patterns. + """ + if self.type is not None and node.type != self.type: + return False + if self.content is not None: + r: Optional[_Results] = None + if results is not None: + r = {} + if not self._submatch(node, r): + return False + if r: + assert results is not None + results.update(r) + if results is not None and self.name: + results[self.name] = node + return True + + def match_seq(self, nodes: List[NL], results: Optional[_Results] = None) -> bool: + """ + Does this pattern exactly match a sequence of nodes? + + Default implementation for non-wildcard patterns. + """ + if len(nodes) != 1: + return False + return self.match(nodes[0], results) + + def generate_matches(self, nodes: List[NL]) -> Iterator[Tuple[int, _Results]]: + """ + Generator yielding all matches for this pattern. + + Default implementation for non-wildcard patterns. + """ + r: _Results = {} + if nodes and self.match(nodes[0], r): + yield 1, r + + +class LeafPattern(BasePattern): + def __init__( + self, + type: Optional[int] = None, + content: Optional[str] = None, + name: Optional[str] = None, + ) -> None: + """ + Initializer. Takes optional type, content, and name. + + The type, if given must be a token type (< 256). If not given, + this matches any *leaf* node; the content may still be required. + + The content, if given, must be a string. + + If a name is given, the matching node is stored in the results + dict under that key. + """ + if type is not None: + assert 0 <= type < 256, type + if content is not None: + assert isinstance(content, str), repr(content) + self.type = type + self.content = content + self.name = name + + def match(self, node: NL, results=None) -> bool: + """Override match() to insist on a leaf node.""" + if not isinstance(node, Leaf): + return False + return BasePattern.match(self, node, results) + + def _submatch(self, node, results=None): + """ + Match the pattern's content to the node's children. + + This assumes the node type matches and self.content is not None. + + Returns True if it matches, False if not. + + If results is not None, it must be a dict which will be + updated with the nodes matching named subpatterns. + + When returning False, the results dict may still be updated. + """ + return self.content == node.value + + +class NodePattern(BasePattern): + wildcards: bool = False + + def __init__( + self, + type: Optional[int] = None, + content: Optional[Iterable[str]] = None, + name: Optional[str] = None, + ) -> None: + """ + Initializer. Takes optional type, content, and name. + + The type, if given, must be a symbol type (>= 256). If the + type is None this matches *any* single node (leaf or not), + except if content is not None, in which it only matches + non-leaf nodes that also match the content pattern. + + The content, if not None, must be a sequence of Patterns that + must match the node's children exactly. If the content is + given, the type must not be None. + + If a name is given, the matching node is stored in the results + dict under that key. + """ + if type is not None: + assert type >= 256, type + if content is not None: + assert not isinstance(content, str), repr(content) + newcontent = list(content) + for i, item in enumerate(newcontent): + assert isinstance(item, BasePattern), (i, item) + # I don't even think this code is used anywhere, but it does cause + # unreachable errors from mypy. This function's signature does look + # odd though *shrug*. + if isinstance(item, WildcardPattern): # type: ignore[unreachable] + self.wildcards = True # type: ignore[unreachable] + self.type = type + self.content = newcontent # TODO: this is unbound when content is None + self.name = name + + def _submatch(self, node, results=None) -> bool: + """ + Match the pattern's content to the node's children. + + This assumes the node type matches and self.content is not None. + + Returns True if it matches, False if not. + + If results is not None, it must be a dict which will be + updated with the nodes matching named subpatterns. + + When returning False, the results dict may still be updated. + """ + if self.wildcards: + for c, r in generate_matches(self.content, node.children): + if c == len(node.children): + if results is not None: + results.update(r) + return True + return False + if len(self.content) != len(node.children): + return False + for subpattern, child in zip(self.content, node.children): + if not subpattern.match(child, results): + return False + return True + + +class WildcardPattern(BasePattern): + """ + A wildcard pattern can match zero or more nodes. + + This has all the flexibility needed to implement patterns like: + + .* .+ .? .{m,n} + (a b c | d e | f) + (...)* (...)+ (...)? (...){m,n} + + except it always uses non-greedy matching. + """ + + min: int + max: int + + def __init__( + self, + content: Optional[str] = None, + min: int = 0, + max: int = HUGE, + name: Optional[str] = None, + ) -> None: + """ + Initializer. + + Args: + content: optional sequence of subsequences of patterns; + if absent, matches one node; + if present, each subsequence is an alternative [*] + min: optional minimum number of times to match, default 0 + max: optional maximum number of times to match, default HUGE + name: optional name assigned to this match + + [*] Thus, if content is [[a, b, c], [d, e], [f, g, h]] this is + equivalent to (a b c | d e | f g h); if content is None, + this is equivalent to '.' in regular expression terms. + The min and max parameters work as follows: + min=0, max=maxint: .* + min=1, max=maxint: .+ + min=0, max=1: .? + min=1, max=1: . + If content is not None, replace the dot with the parenthesized + list of alternatives, e.g. (a b c | d e | f g h)* + """ + assert 0 <= min <= max <= HUGE, (min, max) + if content is not None: + f = lambda s: tuple(s) + wrapped_content = tuple(map(f, content)) # Protect against alterations + # Check sanity of alternatives + assert len(wrapped_content), repr( + wrapped_content + ) # Can't have zero alternatives + for alt in wrapped_content: + assert len(alt), repr(alt) # Can have empty alternatives + self.content = wrapped_content + self.min = min + self.max = max + self.name = name + + def optimize(self) -> Any: + """Optimize certain stacked wildcard patterns.""" + subpattern = None + if ( + self.content is not None + and len(self.content) == 1 + and len(self.content[0]) == 1 + ): + subpattern = self.content[0][0] + if self.min == 1 and self.max == 1: + if self.content is None: + return NodePattern(name=self.name) + if subpattern is not None and self.name == subpattern.name: + return subpattern.optimize() + if ( + self.min <= 1 + and isinstance(subpattern, WildcardPattern) + and subpattern.min <= 1 + and self.name == subpattern.name + ): + return WildcardPattern( + subpattern.content, + self.min * subpattern.min, + self.max * subpattern.max, + subpattern.name, + ) + return self + + def match(self, node, results=None) -> bool: + """Does this pattern exactly match a node?""" + return self.match_seq([node], results) + + def match_seq(self, nodes, results=None) -> bool: + """Does this pattern exactly match a sequence of nodes?""" + for c, r in self.generate_matches(nodes): + if c == len(nodes): + if results is not None: + results.update(r) + if self.name: + results[self.name] = list(nodes) + return True + return False + + def generate_matches(self, nodes) -> Iterator[Tuple[int, _Results]]: + """ + Generator yielding matches for a sequence of nodes. + + Args: + nodes: sequence of nodes + + Yields: + (count, results) tuples where: + count: the match comprises nodes[:count]; + results: dict containing named submatches. + """ + if self.content is None: + # Shortcut for special case (see __init__.__doc__) + for count in range(self.min, 1 + min(len(nodes), self.max)): + r = {} + if self.name: + r[self.name] = nodes[:count] + yield count, r + elif self.name == "bare_name": + yield self._bare_name_matches(nodes) + else: + # The reason for this is that hitting the recursion limit usually + # results in some ugly messages about how RuntimeErrors are being + # ignored. We only have to do this on CPython, though, because other + # implementations don't have this nasty bug in the first place. + if hasattr(sys, "getrefcount"): + save_stderr = sys.stderr + sys.stderr = StringIO() + try: + for count, r in self._recursive_matches(nodes, 0): + if self.name: + r[self.name] = nodes[:count] + yield count, r + except RuntimeError: + # We fall back to the iterative pattern matching scheme if the recursive + # scheme hits the recursion limit. + for count, r in self._iterative_matches(nodes): + if self.name: + r[self.name] = nodes[:count] + yield count, r + finally: + if hasattr(sys, "getrefcount"): + sys.stderr = save_stderr + + def _iterative_matches(self, nodes) -> Iterator[Tuple[int, _Results]]: + """Helper to iteratively yield the matches.""" + nodelen = len(nodes) + if 0 >= self.min: + yield 0, {} + + results = [] + # generate matches that use just one alt from self.content + for alt in self.content: + for c, r in generate_matches(alt, nodes): + yield c, r + results.append((c, r)) + + # for each match, iterate down the nodes + while results: + new_results = [] + for c0, r0 in results: + # stop if the entire set of nodes has been matched + if c0 < nodelen and c0 <= self.max: + for alt in self.content: + for c1, r1 in generate_matches(alt, nodes[c0:]): + if c1 > 0: + r = {} + r.update(r0) + r.update(r1) + yield c0 + c1, r + new_results.append((c0 + c1, r)) + results = new_results + + def _bare_name_matches(self, nodes) -> Tuple[int, _Results]: + """Special optimized matcher for bare_name.""" + count = 0 + r = {} # type: _Results + done = False + max = len(nodes) + while not done and count < max: + done = True + for leaf in self.content: + if leaf[0].match(nodes[count], r): + count += 1 + done = False + break + assert self.name is not None + r[self.name] = nodes[:count] + return count, r + + def _recursive_matches(self, nodes, count) -> Iterator[Tuple[int, _Results]]: + """Helper to recursively yield the matches.""" + assert self.content is not None + if count >= self.min: + yield 0, {} + if count < self.max: + for alt in self.content: + for c0, r0 in generate_matches(alt, nodes): + for c1, r1 in self._recursive_matches(nodes[c0:], count + 1): + r = {} + r.update(r0) + r.update(r1) + yield c0 + c1, r + + +class NegatedPattern(BasePattern): + def __init__(self, content: Optional[BasePattern] = None) -> None: + """ + Initializer. + + The argument is either a pattern or None. If it is None, this + only matches an empty sequence (effectively '$' in regex + lingo). If it is not None, this matches whenever the argument + pattern doesn't have any matches. + """ + if content is not None: + assert isinstance(content, BasePattern), repr(content) + self.content = content + + def match(self, node, results=None) -> bool: + # We never match a node in its entirety + return False + + def match_seq(self, nodes, results=None) -> bool: + # We only match an empty sequence of nodes in its entirety + return len(nodes) == 0 + + def generate_matches(self, nodes: List[NL]) -> Iterator[Tuple[int, _Results]]: + if self.content is None: + # Return a match if there is an empty sequence + if len(nodes) == 0: + yield 0, {} + else: + # Return a match if the argument pattern has no matches + for c, r in self.content.generate_matches(nodes): + return + yield 0, {} + + +def generate_matches( + patterns: List[BasePattern], nodes: List[NL] +) -> Iterator[Tuple[int, _Results]]: + """ + Generator yielding matches for a sequence of patterns and nodes. + + Args: + patterns: a sequence of patterns + nodes: a sequence of nodes + + Yields: + (count, results) tuples where: + count: the entire sequence of patterns matches nodes[:count]; + results: dict containing named submatches. + """ + if not patterns: + yield 0, {} + else: + p, rest = patterns[0], patterns[1:] + for c0, r0 in p.generate_matches(nodes): + if not rest: + yield c0, r0 + else: + for c1, r1 in generate_matches(rest, nodes[c0:]): + r = {} + r.update(r0) + r.update(r1) + yield c0 + c1, r diff --git a/venv/lib/python3.12/site-packages/click-8.1.7.dist-info/INSTALLER b/venv/lib/python3.12/site-packages/click-8.1.7.dist-info/INSTALLER new file mode 100644 index 0000000000..a1b589e38a --- /dev/null +++ b/venv/lib/python3.12/site-packages/click-8.1.7.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/venv/lib/python3.12/site-packages/click-8.1.7.dist-info/LICENSE.rst b/venv/lib/python3.12/site-packages/click-8.1.7.dist-info/LICENSE.rst new file mode 100644 index 0000000000..d12a849186 --- /dev/null +++ b/venv/lib/python3.12/site-packages/click-8.1.7.dist-info/LICENSE.rst @@ -0,0 +1,28 @@ +Copyright 2014 Pallets + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED +TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/venv/lib/python3.12/site-packages/click-8.1.7.dist-info/METADATA b/venv/lib/python3.12/site-packages/click-8.1.7.dist-info/METADATA new file mode 100644 index 0000000000..7a6bbb24b5 --- /dev/null +++ b/venv/lib/python3.12/site-packages/click-8.1.7.dist-info/METADATA @@ -0,0 +1,103 @@ +Metadata-Version: 2.1 +Name: click +Version: 8.1.7 +Summary: Composable command line interface toolkit +Home-page: https://palletsprojects.com/p/click/ +Maintainer: Pallets +Maintainer-email: contact@palletsprojects.com +License: BSD-3-Clause +Project-URL: Donate, https://palletsprojects.com/donate +Project-URL: Documentation, https://click.palletsprojects.com/ +Project-URL: Changes, https://click.palletsprojects.com/changes/ +Project-URL: Source Code, https://github.com/pallets/click/ +Project-URL: Issue Tracker, https://github.com/pallets/click/issues/ +Project-URL: Chat, https://discord.gg/pallets +Classifier: Development Status :: 5 - Production/Stable +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: BSD License +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: Python +Requires-Python: >=3.7 +Description-Content-Type: text/x-rst +License-File: LICENSE.rst +Requires-Dist: colorama ; platform_system == "Windows" +Requires-Dist: importlib-metadata ; python_version < "3.8" + +\$ click\_ +========== + +Click is a Python package for creating beautiful command line interfaces +in a composable way with as little code as necessary. It's the "Command +Line Interface Creation Kit". It's highly configurable but comes with +sensible defaults out of the box. + +It aims to make the process of writing command line tools quick and fun +while also preventing any frustration caused by the inability to +implement an intended CLI API. + +Click in three points: + +- Arbitrary nesting of commands +- Automatic help page generation +- Supports lazy loading of subcommands at runtime + + +Installing +---------- + +Install and update using `pip`_: + +.. code-block:: text + + $ pip install -U click + +.. _pip: https://pip.pypa.io/en/stable/getting-started/ + + +A Simple Example +---------------- + +.. code-block:: python + + import click + + @click.command() + @click.option("--count", default=1, help="Number of greetings.") + @click.option("--name", prompt="Your name", help="The person to greet.") + def hello(count, name): + """Simple program that greets NAME for a total of COUNT times.""" + for _ in range(count): + click.echo(f"Hello, {name}!") + + if __name__ == '__main__': + hello() + +.. code-block:: text + + $ python hello.py --count=3 + Your name: Click + Hello, Click! + Hello, Click! + Hello, Click! + + +Donate +------ + +The Pallets organization develops and supports Click and other popular +packages. In order to grow the community of contributors and users, and +allow the maintainers to devote more time to the projects, `please +donate today`_. + +.. _please donate today: https://palletsprojects.com/donate + + +Links +----- + +- Documentation: https://click.palletsprojects.com/ +- Changes: https://click.palletsprojects.com/changes/ +- PyPI Releases: https://pypi.org/project/click/ +- Source Code: https://github.com/pallets/click +- Issue Tracker: https://github.com/pallets/click/issues +- Chat: https://discord.gg/pallets diff --git a/venv/lib/python3.12/site-packages/click-8.1.7.dist-info/RECORD b/venv/lib/python3.12/site-packages/click-8.1.7.dist-info/RECORD new file mode 100644 index 0000000000..497ee45afa --- /dev/null +++ b/venv/lib/python3.12/site-packages/click-8.1.7.dist-info/RECORD @@ -0,0 +1,39 @@ +click-8.1.7.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +click-8.1.7.dist-info/LICENSE.rst,sha256=morRBqOU6FO_4h9C9OctWSgZoigF2ZG18ydQKSkrZY0,1475 +click-8.1.7.dist-info/METADATA,sha256=qIMevCxGA9yEmJOM_4WHuUJCwWpsIEVbCPOhs45YPN4,3014 +click-8.1.7.dist-info/RECORD,, +click-8.1.7.dist-info/WHEEL,sha256=5sUXSg9e4bi7lTLOHcm6QEYwO5TIF1TNbTSVFVjcJcc,92 +click-8.1.7.dist-info/top_level.txt,sha256=J1ZQogalYS4pphY_lPECoNMfw0HzTSrZglC4Yfwo4xA,6 +click/__init__.py,sha256=YDDbjm406dTOA0V8bTtdGnhN7zj5j-_dFRewZF_pLvw,3138 +click/__pycache__/__init__.cpython-312.pyc,, +click/__pycache__/_compat.cpython-312.pyc,, +click/__pycache__/_termui_impl.cpython-312.pyc,, +click/__pycache__/_textwrap.cpython-312.pyc,, +click/__pycache__/_winconsole.cpython-312.pyc,, +click/__pycache__/core.cpython-312.pyc,, +click/__pycache__/decorators.cpython-312.pyc,, +click/__pycache__/exceptions.cpython-312.pyc,, +click/__pycache__/formatting.cpython-312.pyc,, +click/__pycache__/globals.cpython-312.pyc,, +click/__pycache__/parser.cpython-312.pyc,, +click/__pycache__/shell_completion.cpython-312.pyc,, +click/__pycache__/termui.cpython-312.pyc,, +click/__pycache__/testing.cpython-312.pyc,, +click/__pycache__/types.cpython-312.pyc,, +click/__pycache__/utils.cpython-312.pyc,, +click/_compat.py,sha256=5318agQpbt4kroKsbqDOYpTSWzL_YCZVUQiTT04yXmc,18744 +click/_termui_impl.py,sha256=3dFYv4445Nw-rFvZOTBMBPYwB1bxnmNk9Du6Dm_oBSU,24069 +click/_textwrap.py,sha256=10fQ64OcBUMuK7mFvh8363_uoOxPlRItZBmKzRJDgoY,1353 +click/_winconsole.py,sha256=5ju3jQkcZD0W27WEMGqmEP4y_crUVzPCqsX_FYb7BO0,7860 +click/core.py,sha256=j6oEWtGgGna8JarD6WxhXmNnxLnfRjwXglbBc-8jr7U,114086 +click/decorators.py,sha256=-ZlbGYgV-oI8jr_oH4RpuL1PFS-5QmeuEAsLDAYgxtw,18719 +click/exceptions.py,sha256=fyROO-47HWFDjt2qupo7A3J32VlpM-ovJnfowu92K3s,9273 +click/formatting.py,sha256=Frf0-5W33-loyY_i9qrwXR8-STnW3m5gvyxLVUdyxyk,9706 +click/globals.py,sha256=TP-qM88STzc7f127h35TD_v920FgfOD2EwzqA0oE8XU,1961 +click/parser.py,sha256=LKyYQE9ZLj5KgIDXkrcTHQRXIggfoivX14_UVIn56YA,19067 +click/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +click/shell_completion.py,sha256=Ty3VM_ts0sQhj6u7eFTiLwHPoTgcXTGEAUg2OpLqYKw,18460 +click/termui.py,sha256=H7Q8FpmPelhJ2ovOhfCRhjMtCpNyjFXryAMLZODqsdc,28324 +click/testing.py,sha256=1Qd4kS5bucn1hsNIRryd0WtTMuCpkA93grkWxT8POsU,16084 +click/types.py,sha256=TZvz3hKvBztf-Hpa2enOmP4eznSPLzijjig5b_0XMxE,36391 +click/utils.py,sha256=1476UduUNY6UePGU4m18uzVHLt1sKM2PP3yWsQhbItM,20298 diff --git a/venv/lib/python3.12/site-packages/click-8.1.7.dist-info/WHEEL b/venv/lib/python3.12/site-packages/click-8.1.7.dist-info/WHEEL new file mode 100644 index 0000000000..2c08da0845 --- /dev/null +++ b/venv/lib/python3.12/site-packages/click-8.1.7.dist-info/WHEEL @@ -0,0 +1,5 @@ +Wheel-Version: 1.0 +Generator: bdist_wheel (0.41.1) +Root-Is-Purelib: true +Tag: py3-none-any + diff --git a/venv/lib/python3.12/site-packages/click-8.1.7.dist-info/top_level.txt b/venv/lib/python3.12/site-packages/click-8.1.7.dist-info/top_level.txt new file mode 100644 index 0000000000..dca9a90964 --- /dev/null +++ b/venv/lib/python3.12/site-packages/click-8.1.7.dist-info/top_level.txt @@ -0,0 +1 @@ +click diff --git a/venv/lib/python3.12/site-packages/click/__init__.py b/venv/lib/python3.12/site-packages/click/__init__.py new file mode 100644 index 0000000000..9a1dab0489 --- /dev/null +++ b/venv/lib/python3.12/site-packages/click/__init__.py @@ -0,0 +1,73 @@ +""" +Click is a simple Python module inspired by the stdlib optparse to make +writing command line scripts fun. Unlike other modules, it's based +around a simple API that does not come with too much magic and is +composable. +""" +from .core import Argument as Argument +from .core import BaseCommand as BaseCommand +from .core import Command as Command +from .core import CommandCollection as CommandCollection +from .core import Context as Context +from .core import Group as Group +from .core import MultiCommand as MultiCommand +from .core import Option as Option +from .core import Parameter as Parameter +from .decorators import argument as argument +from .decorators import command as command +from .decorators import confirmation_option as confirmation_option +from .decorators import group as group +from .decorators import help_option as help_option +from .decorators import make_pass_decorator as make_pass_decorator +from .decorators import option as option +from .decorators import pass_context as pass_context +from .decorators import pass_obj as pass_obj +from .decorators import password_option as password_option +from .decorators import version_option as version_option +from .exceptions import Abort as Abort +from .exceptions import BadArgumentUsage as BadArgumentUsage +from .exceptions import BadOptionUsage as BadOptionUsage +from .exceptions import BadParameter as BadParameter +from .exceptions import ClickException as ClickException +from .exceptions import FileError as FileError +from .exceptions import MissingParameter as MissingParameter +from .exceptions import NoSuchOption as NoSuchOption +from .exceptions import UsageError as UsageError +from .formatting import HelpFormatter as HelpFormatter +from .formatting import wrap_text as wrap_text +from .globals import get_current_context as get_current_context +from .parser import OptionParser as OptionParser +from .termui import clear as clear +from .termui import confirm as confirm +from .termui import echo_via_pager as echo_via_pager +from .termui import edit as edit +from .termui import getchar as getchar +from .termui import launch as launch +from .termui import pause as pause +from .termui import progressbar as progressbar +from .termui import prompt as prompt +from .termui import secho as secho +from .termui import style as style +from .termui import unstyle as unstyle +from .types import BOOL as BOOL +from .types import Choice as Choice +from .types import DateTime as DateTime +from .types import File as File +from .types import FLOAT as FLOAT +from .types import FloatRange as FloatRange +from .types import INT as INT +from .types import IntRange as IntRange +from .types import ParamType as ParamType +from .types import Path as Path +from .types import STRING as STRING +from .types import Tuple as Tuple +from .types import UNPROCESSED as UNPROCESSED +from .types import UUID as UUID +from .utils import echo as echo +from .utils import format_filename as format_filename +from .utils import get_app_dir as get_app_dir +from .utils import get_binary_stream as get_binary_stream +from .utils import get_text_stream as get_text_stream +from .utils import open_file as open_file + +__version__ = "8.1.7" diff --git a/venv/lib/python3.12/site-packages/click/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/click/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f7df6501960af3f92fc0d7582d8bd0239a9ad169 GIT binary patch literal 2701 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 M@S!5`VMOcy01k1|Hvj+t literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/click/__pycache__/_textwrap.cpython-312.pyc b/venv/lib/python3.12/site-packages/click/__pycache__/_textwrap.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..93314daac900456a5c574d5e4a8b1f25424620a9 GIT binary patch literal 2447 zcmaJ@?Q2_A7(e$lH!polU$(SOm$hqb+}3RCHgOw{ZgoWFhwUm-&;%tT zs7fhJOsIFP$O`8JL8f15WfUGx$jh9}Pq}2r5g`9JZur z7B?T2jTwu_ijl(FSfti&Qig>;(z2bOfUP2fg2g72HJL?djZCf46-|aSQLHLgo$Lh% zO-iQ8@iV;1%gE$9QO05NCMP411e1={SFDDbj&aXx`%-Qr0THQ8d4iDbxWvAUv8 zVIJZzsf5YvV<#}nr6;9`BC5)iVX>;D8x|8u0mF)}6Nf;J9={)+NyL?KT$+g|QgV1i znG0W#BC|(d*W~b|DrwV+@SLK}h1KX}IGHwP657z<@e^S^YA8pc#w@^74@cB!WHu}k z#LmM*4<^%Ai#Q``vI=LY9e>eZ2ZX_A%;W|-26h!aY(yQtTzh`sjRUt1ZnhuEy0+a- zMR#Ds9VoT-=1&w_gV~Xiw`1i>&b99C%U&e%;>wkZ>}k6;zC510c-Ips_4a4Sa~C!| z2Yzkwm8ypEVt2UE9p3CdzU4VlW{|gY2dW~Ak7}}_8IgL(5V-Zh-_CEq-a-^W4nPI+ zUdqtV2U~_Q(E|0n2$NcDKqx|syQyr?`s!87uIDb;oiJ;@q*p0`BGj$R0M*1@uQVL} zMfQ2LzF6u4h8`Wol{e>P~Mce*^MgOsa|Jb_FSqdB~ z22K|Or`H94N$?bft_`6pH&+n)w}dWR(X%1+iO9a@;Sh5tMD!L*fc_Lt$iT42 z(k~#aqG^<&>qZk5Bep%XcMy!Ak6%IPBY6J|lVJf(q-A>uMj9hivm@{T9`GPv{vHAk zI!3k;&dfU(rtn&lj(<@VgLm?{S5#x$E^V8BLgg@-gKK@s?B3QgH=KhC*hH z8a2r1)^RsDU_W8az$`YFh-x9e0+oYAL*qG%iOLHwjUd2=k4}zHFi}H=yMj6~p{eP` zef6NIGXx<>p8<9il^U9|^q;=o{K;?6e{+7b@8qWM)C0sjL(8Mtiz{uVc3-i5pwK>$ zy|mrrU3urT`I66H^o0w)@Cv`}X}mVNJeups3Hi1>zuxiEmS>>c0Kw&E)ZBJ0y`0W@ zKhLZS-I$;de#Qh*)TFo~ik3?h;|VzhvrV)-qIfwasZ|RF)AsEsnYOxt;l7%I_d_%$ z&u5Kj;uq9Nco4KKFU+32yH#+jnjjl2W`!bJO z+g5|ugSpo0hszG45s?D#4HMf@CMDie4<4yyS4k5m+OuM+V`Jpm`<<{}<&)h!q zgIqX#_5s=NFg1tremCdOGi3zJE#@IvDkmg|gXb3r^2vy|cq5&RYSVZS43?|~{~>>v@~;dOy}^Pv_&0)$ Go#8+8MKNpu literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/click/__pycache__/_winconsole.cpython-312.pyc b/venv/lib/python3.12/site-packages/click/__pycache__/_winconsole.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..223eb94748678bf209bc72b1e8e53fef6c86c256 GIT binary patch literal 11986 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 DFc<>Z literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/click/__pycache__/core.cpython-312.pyc b/venv/lib/python3.12/site-packages/click/__pycache__/core.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6655944f6829bb902603ceddb02d70bec1237a80 GIT binary patch literal 135770 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/click/__pycache__/decorators.cpython-312.pyc b/venv/lib/python3.12/site-packages/click/__pycache__/decorators.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e95f18333638c1833ee2e5c1a7b07bf0c114cad6 GIT binary patch literal 23974 zcmeHvdvFv-nrBs4Kh-U@-XI}R0TNOR(c=9OUMYm6iEr=9gc7ul%zAXL)&1Vs!Bz5FTmitOFeE8%GgTSsiYHj%zbVf%=^*MYQEv4x!@u3i^Q+mSBo zEn{g1((Yb2OFNPF^m-puIZKxzUC~>?((bT#q_Ve?r9I)Qk?P)RQBbAfbw*cn zPpzKytG2h!BB*u4ow+YYN-6(HtG)Rlvx+OFfrsjPc=?=T-d${OJCPuY*Q%eIGM3H>+-ygm?9=;gP; zhfb9PPNhA+A1(oH9%5~lqUHzmL|w@-%y3qU-X1Wc51rLgeJKN8N~~Zu+ojiHnMnm~ zHJcRS!;0xxlKMMTPagHJN2^OyzX#O6K99aSmn{7NOfE@v>mQ1zrSP%d9Bb#pd-qW4 ze;obTkVkb(VChdt{T>q^{``JCg!)^-;lu%n%>r?TN2hXzv4_rHDJu8;!Bp;1joB`w z@-9$$r&3cI-h<_yvQe#2YB6@ZvI+8P19;A6NS7^;E`JyvT!e#%;-M53H-m>ao3pkR z^2-0Mdr|(Fda(_?=wevd4y^tm5-EQ)c4Y@}y74i<*$FtC*y8Oz}w0(K@k7Evbv9#lM9A#dh4TkfLvy76vfompvE7 zxLI;iObCY3c~bC66W@C-pq-7$0XYcRX9B^qav&z34@Baj$em}!aQoLO z;n&{Eg{qeMs&z^4&KtF#d3WBbPkDDHojVutUASr2sN6U9<9;@fmGt5~?$^gvk5{dV zZZx=?7B*0ga2F$kpU8cw}0NfE@@q- z$@unI=;r4qLnEPZKqDIICggPY=l7<+Q$8~mm!pyJxJ>zseso%iM(B;x2VVs!hY3|; za(j0m9@o12dw9MdHTr#iSw1xsiplsJi>U)+VL3Da2myd+#K$0M>Zqp1u(Ehlu{c(< z9322*N7PtcRpi(>9wQGT%O`=GrO9$wH`P$cyzVDetq~u67Oeu0jD-GaY)W(*Wz)vy zaiWo73kB{cBU&D@HMr%I(VeP}R8>dPyXVHK&%AqXy^!+mNjmqi`P5dUETa^yg{tP0 zh|_3B^WhU&+9r8;MBCm{3?xKZdZgWSnps-BAAkeF(u2Sg&0u4k3vs@!$jmj#NZ~>GG-VP9@JDc zLHx;FlYHvWhr(g`d{jHjWcndYwCIRTYb_p)hOr(-Mx$C>E|grk(uz8eLt6WQubXv);L!CXBaD1b z&hur|8Niz19IrhXztAan5Rby6gR`e1NK_BwmG{ah>?b_+@!_}UVZm3>I91_NjnxT7 z&PC6{5bGp3_cvEiRj*b!=ys#Oo$^4gCB3LgI2<+Iqa>2`sb@6a&E}QS9H#_>F2LFd zOPpuu_4sn=CKeP^cy({;{= zpa(!sLH#i#5!Yvk5Qqs)l*#IaP>i%8zt7IudO4>7oys%rJd)3NPK-fy8c`2vT2#w8 z`}!hK|N8necHXkj!Q{S1@;)PBy=bJaY3u1m%8b^5Ta1uG)G;+Rl_xQFjs(uCeQep9 zB%Ko;C9;e~K{jdZ0&b8epI5ieSGP^~+_MXn_38SCJN0d;`nDVH`TDKbq`UPE*Q3{> zb7$x4H_u3Sz17pNeqO&OYZ2?((rugXwCzr{?M|+HB3&zIZI-&#i;{I&byl!eRcAdy z?W&nA*SoKE&j#jdk~Q1s;-A%Qzi}>AvpwnAUL>V_)|@`Wht5V#l-!RobKS;e4rpTC zqYeBh4U=@A|2-xA-csq>@pX$(xoURkhB)u-NIE-MFO0TH#%fH>q8c|Lh#2a5cgWae zYGuEnY1NeIf=1TeW-3~V8yfwW%{8|5*$%-|m$cUM*2Iigi3a-=H5SxD%qYl6XVr0S z7ivsAl_yfao0l#UuW|qW$haY5A!qYSGBY4&2hj4Pg-QR5-MBGsU^ndm%cMAES1btu zi%R;DbWv2Slj08r#r7j<($a_W{9=OH5qK5gdKmk{@-Sxu%m|7XQ6ZDc7z`6jjJfH` z8`GglLm<1z59=q;Pxb)`&q5o4RwU)>z*Wv7nSg`&q{~g6@1mh@`6yZoMdW@{KV-oB z3C?|tx(M&x^1<9B=n~&x)@M{w2-ujEPLoYTXHYfL97B=9envI$Wq^;xHDU_@JP;TQ zlj0eb*U)&{(AhQTA-!dF*A(IKZ(RU zBAZuH!7S4DOq@>}?gN^*N4lE<`#eV@29pO3`u%vhw=P6bK43 z-m#Px2w=zgYM)*;VIzmiMTxO%TG>Tc!di-5bM0B;Y}QJXt8GO^FkZ5jcvrVkig8WG zFp11#gdWZ?^Z4av#wrO&AEw}uIAx50Q3H9LGF@GFz5QDI?3QaArhC#gD<8tu__e%SwW+V!>LMb>=Z|czH&YQ)B~KNr)G$M>NB^ zEKT!uVO(I8tL?zsO;Mv>#E2Q|y>$e+yGT2XylMO|(#o0=?phs8Oh6L|$1*lDePhAm z#pI^)C7O{~GuqSmtYOdB@PqIsSxfA8m8z3M0qXGxHYaP)91C@lt|c1Lm`o+2#p>cj zOG99Q-$lXzTwwx!#NIy$@P~PToh1PiHdv3dNRVlH1-wZSFG@Lu6<#iVY+8K+d`J=B z6cXYk$1^ZOKSC|K-VhTOjdG;C9C4~EP6KAwFtt>4#mylO6Wb}e;!Y!j_+Q*qR1Kfo zn~=G2k5LA^+blm|o#y7T#JD&3<0U7!C!WSgPT~zFvm@{^y2T|k8OCIFbO*zb$mBO+ zeo4q%SgUZBaH(s`S96hKQF9@qJN*n73o~2b(~8Q0v3PVO5D$@Ca9jpy27*H}(nZ4B zuy>hm)BiI1gNF4?SdGkK%Cci%bh;~)2})v3`m!($WL2hxW(a5fE7_x_c%@qTWei;b zHhO%BjR;Ot$WyrQFn0Ka!hs+p_?dB83B-of7{+;IKpu~dF&8HZ?BEbQgJfz4;+^b6 zFc4vYh{G`L1ma%>P=z;KQjyU|upj6FuZ33v2A@87U<9_?KvW|K7dJv^5UiWwand`C zak44o7T)0~{AwuG-_MX1>&JxZ@L*>~FdELR0go48jgaS>bu=DjBOnOKFz^|M8KZaf z`A9HN>taorm?U2_d<&%W1n#FRa-;-MTWI20e3 zF(#Dbl*ADcU{H+01`RVWy5Tj^wLhA3Zl>qYzFyNH-eN*AhQwMS^}xIs5F!~q4@;8^ ztE%?_JeqgG=rEfwq9KlycnFT25`DR^d1IhG`eMCL734I@mBCGBb>=|QCmy)e@s3Fk zhk#DQk_A1$2?|mNv2%wrIzs%hiLIw& z(2aHMwF8}d@$YLV4nvz7zBa;TY*Y<~2EcJ-z8)ra6x1?(P({^7wdlE!0`fAJou8{- zOs6%Z9I;&zg-nzF3b}<&j!7ZM+YNrLx#OlALlHmHAwhE3hE3On!OanpV^PfAm5bt} zcnKC)L>v?@T3o`UP|Ce=QJNI`tlc%HTGNkP=>BU7C*)s<2C*kT*?C(hl8*Kw!w3Z&vq_xjw03rFfR)~}Hon0+( zi;Kcb!dutR3m2r9g!7`$d2C|aer)WGjFM?b0w5ZJ1;$)JAVjtUrZYcdoyX6If~r4b z=d3nk9a6)i8L{shaRao}9yFA38k=X@NxU*O&{vr$3&GLM*`-EeKI0;7l6!`v(dcNV zvagTX%5dsHG{(qH1dAD~C*#yqG7D8DQ-RKEA?&3X6|sq^JxS2Sc&7Z+OUDoO^*nv3 z=jf4RPw{ThQqs0i0b4kFUez)VT@3o1Y)NF?V8NQ+BJ?`+lkjqf(zY4D{QeDe+K?=);l zHEg-n^GVHo!`^gVeY&RMo&$x^5pV517gEy_l`e%vzFU?3LHScycm1C+~1#?uGq zPmjSNZAChN#!51d+egHv`k^Qk>*=)GVsGH~4J?3zqOg14)WI(u-WluV*V5jaX{&yN zuP^C5k!(6K?>sU6>aS~-C!HsgjVI@wC#T2nI?ASA{k+0^bs#bD_IIwoaP5Wnp1Rie z;oy9Q9|*9nwAH-*a#q0O!@=LvBm0El^due2e(ha8Tl@Xjlg?Fl-L-~KEaP}e8>La2 zMhN=GE(!M%mX3A^`T6FQZIJfawFt6_xU{E`;AV}fnj?oUVydMe9!0*sZ>*z>fH8

Og7N$o5E0}mXva*5kD-q%3F7gR5XmHAef+OTT*nSN%o(HaLMca0&UsYQ z*fC8UX3m(#iov20T0pI_YcgkY)mVg_@Pbf;C=7{{7GmSMQYZ7ufYplw7VP-5GHhRv zCZe>F!xcoP@jy*5v^>&04K}Q6VP(XwXpb-^N1+mF=R;6HNGpz!nSt`Up`vrJetCEd z+j`8wNu~Osp7b*qj6YKp2kk-Y+dhUCSD>ywT-O2sliM09)&q4o8UyFT$$1I0&mTbFEkJAR6pDizEEk;aQVUz1ujrhXOeWF(*7=kd4zQ%ReXbR$ z8@2OZf70py(p^2Xb+#tuUN>jM%?K~Z*ciGB92sOsv*rB>68V0_k~&utBz+0XyOhQ? zY3gJmyfE>cCIEkcL8LLqAheS{Q;!35(=JDM^y}f!eU@X|cTpPd$Unn_F=#G8?OX%S zIEDf-lCHd%9<~ufS+*yyv*wJOOIbMmMqn1=>n@rTlCcnzj;fi}Z@;+USebUZt~wLW ztKNin*7hsssxQ6uGp{5YI~Tkg(yP}_?_cn&y6be^aWBEX8mu8*{VH#nNiUdEi zG$~=hS_5ftHYh9b6VT28w)1sWoRlnDPKKT!%VZ~yMiF>JZtt*JkeSN*dc*btvn6vY zj|KrXiRv&1g0cSg>&^7QGX{{sFgw->m zP1IM$LgxZu*i%eVq`eR_*fF;I8rN+=nAM028-u(a=RJV=4T1nps3KwsbX=HWF3ery zXQPbuW7pp_(G3@XZq%Ac;$~4Nd>aE`M*w$!SB$-8VpF?_|e z{&kOep2B?rxiMO#*bkk`+bvjO%tZ-p`_Hhj7n@Lrv~6e2%>HY!+1;sS8*jAYw&2{9 z_Et`F_b>J+$avML>uCFFN>hux1I*h_ZTCZ)fFaW+x61R)Pfx8+qTb7k^X z+gxO{uPU$ssMxPSWI|$X*f6d_jgj@0bABjhVTGhadY2~;_N8l)gPwq1nyC}Urtlth0XTL2K#P<8R- z44K^T*ow)In_yNMIuqtQ3na~HstrK@bCVWNfSrwgG)CDCrbK51JY#*h$R6jJCw8U^M{K#n(rA23a5a zE-(e}2hJce^QM$*O1q4Lg)WB|ku%YXc|cGM?X*QBeY~H!#b?;FmuUr2e<-fJHtq3V zJ(4)`gQHnVsI245QJkW6FnCHM_!*CS0h+ej#|C;BK1@ag6Uz@q3wOad zHK_YEG7TqM5voGHVv`*RQr~hL3=9IM%I~vjWN&G-otd$oK}>3<492mpv9hHP6fnht zyuhqO1t`eWlo-AC=O|0DM={#EhK5mXu`PdlkhF^BABNcD=T`Q(UAst`_n>1eOV`WO z?z`5qJJ!0CwQeRfSG!vQjsId#F>nR_2f%H0dr-MNf` zt7dj5-M+bXDYq|a^)X}@uq3i78B2N#2~Y~L7?H7<64XKwJGmu|WnZd{^%2Uzho6I! z+pnG!@>qjCuo2*MtbtYqZA}*Q2Tl?=zkyW>E}@s|l!rnJW|^(IP-K*XB*~bGoh6n5 zl^IqM86e;We4z#g0|?C`Ao-J8Xi^l2-N(TgjNU#z?%)$A$~NFU2*;K7CT8_i5uI{` zWy*jcwU40&(vYT~kv!5S$rqUYUIVDU%(cHjmA@oHe-4Q$;a(-9|6_rLe02{ZS$l93^<0M*o;GuKGXh^`u{fF z-oY(s5GFB2Q|c}UTjb7yD~JwGNK@{dZxLY?dYv~VI1)sFzDCT}il4LsyQc1_xpx;^M&e3{YB zNh{b5+nj>~s6OyZIE!=aMklOdZW9_AQ5D)Lr-MO=pVZIm=%pFAiHuQ5JYzScTkt3h zqFtyQIzNGa(%+wJ0SXG!Uic<3l$0Ji#>Lf>xHeAgN`d?d;_;;+gMr@JAq|`X*Gy|uNO=q zJ9I>SH~c58p00)KAbIopi_t7mm98Abuv%N&X$kvap5#KTSuQ6L_JOT=%GB{hnb7UA zS930a!-m+|F0dNR5x__=z;~KB&Vy1sXW!m<=+*+XiIjiJqq~3=1*2nOgo?qI!df=(AY@%}=&=)i_8j0tEhRy_trRXP|@|Q=aalVPv zNsTiq!o+A4l7THCPDMIP&97R_fJ~-i_9VYFj+U|TGt$A(6&Cwdh~~Y9fq86V^RZ7Ep)1Giltw`7|HQ*Nja9kiPjaV;AB7V(qpcFTKw7w zML-sCe$e5Bw=lfc4^`bt+%ed-|hQ5cvTpk94Ueep~B}gpxTR^}@2HYL9 z(w*fSK3l#4VL#b2+D>pcrI)XGzx>_uAA0XB-;`RuY5K@rclGqX*~w({j;!5UzWs|z zf40nC-jr@!bEmN*)!1=k&wS&~8ArB4@YGE2`@DKpx_bMq$>jFKx1-6*7ZxQ;O$A&E z*Y@eQ}r*TJTK4z5Z^W5?`)EbB7a;S+LrwR!hF^Xwas6l*7kp{ z+=c^j<=g*_&cQX^so9vS+4z-UEpNi=Gn zB)CTB!eBZEv^d+Z&AEKE@8e6J-CM>;DUS%=q3@|O7Q*@@4*zI1c@`xoE6c;kEX&AVqj|KwefZeD+3Ux!?H9gN(3S#mj6}w=wzx*H~rXhoGdKtx6G{k7%e;QAmM7ZvPpJtCWpu zL=lX|SUdni%_I0N6}VkAoaWSz5s=HiuyLqO0Xhi?Et)AZDxJH~RqsNn0f1qEgSLnY zeFQ~cFMAJT-KrQ*h#&IcI!~bu_Smf>YX9-6*~K!3)QLh5y%jm6o-FEq*9WRkIY$&! z6EhCTAdQ^jfv;x3Tkh*m3byWt%^0IxiG0O{qJ-YZCwRv{z=O%pj1x`-HbqR5YB%V^ z72FEk;fx_ptjwFq`*#A?K)Z}>K+R&&_@&b`ee&wdiI>0sALh3Fc-IHJe&yVdcDlK& zVs2~55Id)~d;y}}q`ok({|a4pfCLRw&Y*8U7asPK+@AyrbA4(*C>~PAoi`foKjSlg z&{K#}Ik53Y8)un#5X;1aSSB9i*~jA^#5FwotN&N>$T`X>qe#b*2 zQr3tnxoEc1;UylRK^&W-oWvyGarGdDAE(l#a|ONG=!i{>Yia??sNya4v1oESTpY_- z;;Q~@R43sE(nx2{I4BJFg@DFStdgrT<1}K8GZF%iwP6PSbOa#yR&OgZ*iXsu;6tVY z?4&{x0&+6W=h+5dAk0o=vM}b1GYV-Qjs_HVYLJI3MhMDzy1h=fH|R#&KFlSqk+^5H z!UE|T?XobGZ=8EzpN@sqC$#^DBH-Xc?60t15n?ThzY!{aBY1uzRDU6~d?CpHEHr*0 zG_b#AUkJ;;5LSF4w0|KiyDM3*?0aM1Z>($XI%}sbS3L>O41$~+ruN^pmQU@!a^%vH z>EM4nHYKKuUcHr9ClV90YiD11f9&0{*^ZRAb;^^rRZM;7%1f7CnvTzIdVj~eJLdM> zT9#b9GqqyZf~|YXvS@dTZHx6Tu`SyubZ)vQ`Ng_)RrU4yYxT3@wT3KvZ)s=GyEglk z-b=m7s_n_j9m!osla)tPwr3Y@sFGDgVcV{+q*bWx@?_a_&DtM#e9&>@|9bh9nd zHnaMA$F+{xlh?ZD_9UyjQe_*n5`88VH6|Ko_Fq4I?eOf5YtN@#Em>AE4_Q=@W9!9B zFHXNW6SzKnZFsJ8Zq==-pDz1&*(b|xweko7-x!&6wJ?Gm~?tlGVOc8OR0srRNkM z@}`vD82!_Xp2qY)bM2Wq&+KbAUisVeH_zW1`(*IeYpJfo$>zhU+NYA`Po->6FS@8w zhePzuY+}Ef5}e!g<82>on;lNo__6}>Z}G=%>mt2n>xDf}ieE_$Aj0apEPLXR%QNpj zGxy4m&wX(2#!#wlN2+Nj|MJYye{B7SR+ctMyn4nub7sbwvNbH)03_QjbU*O`a04H_ zmTKD0p*?-%A8r3&dmyx(bz;X{Fe~73>pMR^{qbp*{N$BiO#E!()6Ji@B#)o?v^}-& zGZmdA*wOIiV5PjXpbu9VGreAdbtoychTlw_B?V;4}=NG8};tS=LtP~NEv*)yZKRn|>p^W$n=NV!qc(yXP+Kf&E2B1n z+N`!()HX(K0kyTLZabs4f!ba~?O@anP&XA(H!5Yyt?m9T9cMPkv&t9|OVh&q{!CgOVUV^`F;dTmlW zp4t%_PekLP!UXHR$6|>{IHn)(wQ2=09-U6(e+a+3A$-!_zZm|>j)m9m?8>(H|F=%F z|7LTm7_{d-Q9T;hli_$o&D-^)mY1maps0DN2bxS-qki%YkG)o-BZg@c^j<_agf*w& zYRuGZ`PumWj=#S6Y4^z$f79EkxfEWxH1KJAf6m{ZarLj(HfN;fb+iy76q&(X+x0&O zWsNgsiP<3vbAb*ax9#b zSq(W7j>}^>EiqL_EbC*5*X3jaHB@;@SG8V^zCB+vq3Sv|fab%~aKt(Rc%qZSP7CeW zKNW8aNu)f?*=B?vqWz4uUq$3+gpk#KTF~lI7i;a%rzUYWU7=7k9!-Wq+7?cibTu~0 z9`f!`C=v_ndMKpR3uXBRTYXK&L#nm(gL}<>h;Qqyh_KZjx_omrSy$Ua>!+@5E3I48 z(ht2_2g*v0AnhymK~zG=e;jFfxX1^7S7bv&vJEwgw`85cn2d=_Z7CaHX>k`?uhXu+ zA*}cVZ_mulWL%qmzoBV6(4DrkY*;mzyrdQirCQ3yW6-I-wu>VA`n*JZwPd-SAhX%I zi40~(yx}P@CX>;DSy3GplC*(XP^@h*USrYqqiG3kK)!Cw_AL8&Fp3`Z6Le@aXpP>P7ejd`pL(sE%4}@mSUrPJa*iU=K}ZG4 zCW(l<(M<10gr%zWr;j}hbmam&(t}^Pyl=gb@o&rdx|V&xtS@+f$MV55*@I_t2hU}E z!JO~>$H{+ky~O5~Z+buNb`n~lP~H;?O(c}580Ed8&}&oSm{EciQxXx7-RdL z{wN|wqel?^?xygWbP8Ovq4CDkYm&{;xoBS#kSs}GQnKa}9h(>J>jIKBC!&P_%Rh2T zj!WV~!<~+IIu=j4{tOtyXhnm~mQ2ESq{p9y*^z0eBg)>!`qNELZ) zEpb!Dp*qLwtX5V=aWZgKqu58Cj2F9Z`V5|1u|9ffv>IC(P%FSii|11B663kGjOTh8 z&-Gj)7Rk0^cn`P;SS}!js>Q>xa^9;)uYjt{VK7;=kpXHFTCXg>G#1t6xzbG1~7{lKDnfy@KiDZfW|+F z3Uz=G8K7bcL;?`3m*0{^80Ku=j$vtZIbgyjVlfg>C{Mrjc|>Kh#$G|zK>ieD4H%4s zW@SO!T$w&jJfke2H>-zfTtP~o`Jr}booK}m=W*onH4zR+^Y+Mu5|lWpP`F+Ymb zD<-j6o&^e<$&zIQsHPuA^q4FQw4|lCTr0;<{c7y5#+G)xzx(d)<(`3T&j3W6>*GO+ z`EetLSec*qV+pGBb48d1*qOy7kJD0>g*UEOrdOKqD!ji!ulGn2BfRl!(vl2{B?rc9 zd1-N6WfUY>%R-f!l^BYhj{SR*DRVFf_8$w1Jk?FyHi^%WPZzCP-lSa9&7ty`)Xc zyRI9%eOA8C8O!W08S+*hQ)8388Z9zJ?st*ooxJ>O(E|!?%e*6!h$S>_FY;V|d%56d z=Y+Lk7eVSO#2ah-s4gM=yw`X!?jFgpd_z$sCSrB%ELCL~z)jal#&Klm4u)s=vQ`)iOZ%9k4-uk!C&z;YBWzcTBZn>80 zg&U~8&N4?;?}Zkqqz!om3`(}TbyZy%jInyKwv zX==ND{?_^1!?%XhXC8X%=LhL=xv4wb)SYYEoe2b&8kYu_`ZEm&A2fY*>DS(89=f~_ zy}nGHobzs5_U_Jlci(SXJ}{U)Fqk`VHsjr$^PXF2XkKY-{jVCy?I}VsK5aiu-T{i} z8lWAbh&UC8D&L_TVJ6NOk5KL?MKr706BIGtMhD)2B*%zI5mnLu2oWI3Bb(FVTB~QE z%26`#pDi?!TPvIl&1ZAO4aRJn}R-JXP@s$_S1i;a@{9jNoSllgX_A z2&8f};uh$i;>GPxB1|$~fzc=qhDV%LN^4lDt8%F-u~N5U8}%?O;{leb!R=APy|R|> zk_>&gfj)eB@2Rk2={UkZh{?yVd>r}ea$+hehh@51D`8EErXb@>0RtV`Fq6!e!-~xC z1*uLc2mY6`d1YIseUm&9oKpEUCb=Fe>ILP5-G8`F` z4XgpI3t+&<21r0?C7P6X(-_R_|6aT(8X05#Sfim@Q9Wp&px$2js;cSeAgm~=GB6+? z?A>1ikXSsoUUR7z%Utw>2g)mwqtgC#{3SVpGu;iL5N2YWDJNarj7F8IMBh|rFOaVBZ zoK)i&$B9Ms5}<8f9mR9Y3=|}^sIF303`G?o>!v#pwDNY{9Ul(YPyd%d_XFwSRQ7@ z`1dPgm^ZpB(<>=WQL_T{zGq-Tykln(qA6$;Oh#QaDD+f;Ar~|W7lopp?B*LPVWXtq z?6#oFs?xiK6Ty@n!>P8X+kWu=;SY~~a5UF`Y;K4_o4#CN|8n3+HgM!4 z>F>RN>&*m?7!hW$KhGDeXwdEM#Jn5k2qiy36fB&*Yu ztk*={2IDI(wvemRJ(9)rdL?0veuPR|-m0pX<5l{u zpn4g%6famzBUEmE&jcURjHLNy?3#PVu3%5nETq7!XYFy@j6{kdHanz{;j?3(u_@B4 zuo!6Gq@~7D99Dmh_*1Cie5{70sF`)d_o9aDu^R58J~kEg?J?=&6_hzp5!IUIvyK_Z zk72%n3dzeGOUODeFPkqYd&la=Q1~Fr)I^&cW+&J&H*h{LxEGm$i zOp*a{h&Rl_NJD4wYq2-zEub3h1<*K@p(`+}lJ~Q&7!PJT9j-2xsGEF%P|ySyA|`Gr zXopOE%@7p5E^nXEujJi`LU1e4!Z2|1wmPvU&JMWVhrmOs(-`>$Q#|#SBBa}>q!VN= zK}bEl@Auv9`!)z^wS7x^=!@p=#Z<2OVA}Ip@X-8g3mpsIZ1c_sjcLznbNlVktx(#t z0{e9Bmc<=E?|HW;({3|021~RqVNR8xq$8*R3j(@rB z$!yz`4+eiV^vj`K+qv}9pZVK93$&~>wJyB4=w7&<*|aCywCC38)sF4+r~hTs)_HM$ z`+W0Ubn#T$4%FjqS?KtrcKgGY)=XPZu4T{MxfNgQ!qHEBoU}XF66B;OKk;?5T6=OW zd*{x5K@ECyEq%)^{n?iOk9smK{kfLs(&tti+vnRC1{U@%hL`M%QyKrhjBDTHHxd#P zOjO)QrrM1}KT-MMYSmbcAxzMv6~NAj?V08$2p;pORI*FL3TbJg$(^IpeFz5%E*|FI zDM)jmdcKqC%8mnI%1U~Kv69&a7_^s&QnZT=W2J&Immqku|E1a<+oOg__iw2BDMZ+u zWLy4|nU%f!-yizL&_WZz^*fzE>U=Pm9(qU$$o^d5$a3I#HgNpoo=o6)E^sO1y|fx= zy?yM~v5dEqEf20W6oR!C0eAs>Gbk?Oy#*s>WfXpi>QHn8KmEsu7z%d-g?9)$cCYLV zav)AvoDlSCL*wm^TOA9hZ*~5@n7jz3Gi+W*DBaIc`VL1g**B4_Ju5mK@wgJSWylV{k8jWu8oEA56-}U{k`&}^zKwp-(jdB-HPpp4h@KJrQ={eR8%jHMVv^J=P!?G(BPI}ME+t9=DA>f_Fjwo}jIW8$4(Dq*)+}P_ zKCTdp#-honsuy%N-=LzI!L$>Q1nk&U@JA>*!^A_%Lh%`f9me7bbEMpXSO@U5Zu5rY zidBcHdMsrTKqyXn%W#6JuZ$_dF*gplrsBlKb&j^eM5S4#? z7jgy3RH6eaUNZ}${v*|=BM*$aRwsA^=@X14@6WXySZ+C*Z8`ej)lAFLT+2}U+!vNp z4A&5C>P}0ay4qH@^rWRbMKpPI zre8(GgvPRe+b8~QE0!Es?bv!J_)hR=XO|8y?|CY_=c(L|yK>&`>oroq^OZ}eZJ6s`2t9Z{-JSD1y9OObJv1fgb?>dc^II2QTWno) zXZ$@GR}bg1FXH`G#7wE4C-1rl)qn~=L2h88&#NqJu22a@e}^CYKqhM>$eKoyHQ#vx z;^tAU*Rf}{xoypX6xgRRV9A>rqPT>%_S>mjsl{ys#Fj3;+m~%UxaOuJPlZ3ku8q#Wo7#5L^+-{iTL!T3pz# zo_rk?eVoHHTV}WosI|c9v3of;CT#?Hb!y~?0MfejZXl_FbFu_Z^=ETs;06rY;7j739V=3Rr^9jHmkU?5dsFXBCOtIp#FpK_f| zkznCwAL7TQVV)YUg5B87#sps*;g`(L}-_h^u*K*dM!72Cx}N1c|O7HnM>)@j_OPPx-I_>|UTMot>qLAKjd zxst7JZn%apnSezRhP>gtiwfAS=ot)*A4NKPW}rO%)?qEKkzAGm`!J%E74C|kd9jX%RpT)>7qenP$o9C`HU{a`R58UzU>Z&)l6MGt{|qGZgdp(=O7x%bizJ zM5IWhH;`BW%J@v$`$%#+wk-zM1SCr*-yga=bYH*wJbU~o`6W@;>h0V*goJZF>L!Ap z70gws#`PR0$zwG2)X5_EQ|@mXBT-lOR{*9bD)(K$&5rq-_6}>W<(`11uq4{$YrVW`CYfSjb^othkDj;4%3!p|i+r2{=E@UUPM!()~x92gW;q1&z1 z3Ac5?W17}5FEQt9x;d2o2?XtE#&yV(7&jsk@5u3B82+_C#-nM2y@`B@21f=V<)bgR zj&>(aG2ua+?5$lmuyt&jp)aM^;a)%+x6I{={zO8LC6f3PiM$;?Y?@4U$`7Lw=XqqP{J3O+63ji6AD*sB#mi$=(G7rBo>gb zfq(i0Jn)#~Ufwa4jK*~4bf+=q=X>ep3ui*7&!0K{%+tf?Xg)Pnqi^K?zI2CUZen@I zr8pdUwAYBhkOwI_@^0(zS(vjra}Q(YTc$l?u%00gCh6Gu%X?p(iYKEJT*mPI%f7#K zPQG>>)&hTEQ7o`nNCE;c*-b~Y^-rwXQEk=X{K3c@ zBlGq*LhBAZZ!|WEm&Ey(Hv~#IdUuGP`K=oQl8s?;7aj&S1SA_TiKj$So}bweDBT#c zb&7ka49UizSSRk9AK4I)Y;-wA*L-S2K(f(ThYsq9?%C)P#q(nNS*$104VOpUo<8=a JfP^jX{{jxeW{3a) literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/click/__pycache__/formatting.cpython-312.pyc b/venv/lib/python3.12/site-packages/click/__pycache__/formatting.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c1be14748970e76a8f2b2b8bb1dd0504ca2abce2 GIT binary patch literal 14130 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/click/__pycache__/parser.cpython-312.pyc b/venv/lib/python3.12/site-packages/click/__pycache__/parser.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9247223f910ef14fbc5dec5fbf7da6d222bd42db GIT binary patch literal 21509 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 bz?&*d@3w2@IR!uGyZP%w{d4-on#TVH4fLrd literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/click/__pycache__/testing.cpython-312.pyc b/venv/lib/python3.12/site-packages/click/__pycache__/testing.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1cba88baa92f7e3e928e60555cc02960639dc703 GIT binary patch literal 24578 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 L^iz&pM(+OukPMC` literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/click/__pycache__/types.cpython-312.pyc b/venv/lib/python3.12/site-packages/click/__pycache__/types.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..74d94ab78c02c647c87bd68fabeefd07989e7458 GIT binary patch literal 49421 zcmeIb33Oc7c_#Q??S(3!3aBdV01G6z6a|8-L=s#ik{~HcG$?VAEy!x1h$@gp0x0NJ zK_nm`rfek!y+nZRgrF^tz_dC7$L@&iP9M>8eA-gtBhu-O3`@53#pXrD8 z*j3NMQL`jnks?w=?vpyjTke$kx2e;_Z*!*wZ&RPO-`Z)FDUP|%)^F>yv)=;0qtgMu zHDc>?_Lp>)u-^{9tJB4PN1waDw6m1`&c3pKPp60dCGdMYz3g|vU*1_ROHs?YX04jJ zw^GS<@pbx9j=L|=U)fp7=}O_R>a1daSzmR3O=pcPnWV!~#PgCA@qWi7^60GPuyTY| zL~Fl;R@2j2$Duxi`tw5TIW&OK%Dm794y{6HbzW#Aht?ppHZODqht?sqJ})%Lp$!Oa z%nNPe&=m*`Mw|4St>n-qgs#jBUB#iR5ZWAF8C~@qi`tH64quJ%HF>dDbLd)xu0!nA zdh9hE9zyu~yn3wV&<7COk{7y;LpLC_H7_(2*@$sEDN4_GBby?ddo7VIFIhSt;FMdD za$8=?77l$7p$|pt^ww^Ov_-Zf$Is^HCH%(a)Zk-e$0ts)DO%fWi|l;K+PTprMH{}O z7T386zZ&&loAGOv{%Z?yN^3 zKNC$RqZgADJfQmjMn*&gRCFPrE3BM(zAHM=6OY6O&LGqkAB+xkC6Y=s+<#rpxc7%6 zPlT0le>53Y@Y&NFSNg-ruHIN*bO50UavTkh3?IU8@+ZQ*(VlQ$AN=+M@d34Lr=G=i zIa78Z-apuf8pa2XB%}R3YG3fnss32FgY|Poib@0%I!&hlCpyg$Q>P_rJ?G9(ApB7~ zjZ4%KG4IAZV(D})6R$*#XQg;i7gE?bg}u|gObY9{T2V&68+B1WYF-Y`fl92;k0bmj z!+Nf9X?U-RQumr7C77{Zr{u(njVu#4LUl8!MWmGSh?Fh!)x%$@UPk3RB3{hK@`yW9 z8lgA_`HNO!Rh6TT6(1{R1!DUCiQC~rnSQ`g7q?^m(!SQ)5kSmJwXZ7?|2OK_NL8;R zQjI>Wij+k>+&eXD9X2hkL!_3++YzZl9cqT{p@xiD6eouVqv1crY(E|yRHBLKKr#_b zo{a{R2oJ`4gW=$yw)|RyPlfwpw7L_)@IWNk6CZd!sv!RJ;l810q9ll?SBdv?`kr`y zKSk<`4Im#S_{4DXY;CRgeW*KRx;QZ4JVMz*{CQ#-q#nu08r8<^4x$rokVlm!pWr4)=eOzJE-P_kl5*= zWHi{1l7gqB!9+CK%DGUg1ArpP2Q5XV6Up#E5BG=OHy2{bv%&7}j`%>dyIW+TM3Y0x z0Ovq`p?z#c4PuEP{)hVj)*{2XW=12y)5F0?v^PA|msfThz}?xlZncBe+|^$}z(%T< z==7jrcT(xp2E%;9Jw4IEq@Mn47@e&|^}105d*VDedP`^way@e-srOj;bRVWlT$>6Q zHLg}L*2{z3-QAPCh~A-z(A~`wsk>Xx6`+5J#v1*C@{4+_2mK!J=^0Xj7tTfpv;wH% zgP3B2Nj;a?z~GSDb%!$USfUFvZ!n&SVZX3p9b~LwC6*k{SZL@wGXChm^UsHsuD)0z z*_9aVi(z|GGBz=CJ+w1v51|-l{4Lyqb45z(-$teHsQz;*lBFe~_c?3+FX4~KT8apR z-7$GoHjHO3j+fLBR%sO5iiXrFrK8e0$I^1fOarD-c?^G}rik?w(+MeL8~N+QVGOB) zNi4QbYA#O#^Zg#Gtq&l5>BGG^=?KaWkYYchejY0 z@8N+%jQD`McxlR=N?@U>Q@1bHbG}vGfm@UDE-Jn&66;BJ^ORM>03C=N-r8fj|_?r7ble^q?w4}}IKQ>yRw1l*KLgoR9* z5}tltG?hh=HDjS48An$a&5f?Ej1y6kF=|xCem0ySkRhU)GnPcOuUDy~GAO?U%?#A_ z-tmoR&n4i0DB`Q0^A$*rN56m;Wus>QQ#E=h}isj_ye`Rko? zfpxQib#s9&vwCR0 zyzL6k`>L+&oZNZ2{jRTJy!~$Dx*N^2p6w~e_5~DxCB%z5W91%HJQQTc!dA-Q>rqj0 ziYU?C=QYy`&lPD@e$j`Ss;?Z1A|9Hdqh<{aJ|PWD*JZ*T?JAJFZc&1WsWg+bnw&Lo z5>ys?J*YInLjy;sURT#hMXryuu%i@zC7erA)-AcqQ?7bygf-d(^k%fjFQb zdI-C4tXGF51d`NUETQj8!F3d@_K^4-%Ig;1;2Dijch|yA+7K&h35FBF3(>wly!FDl zV47pg@5%yY3eqkd9>%tv(6?VbmpDUw+6V!nd5dP)l7pou(HMP0R<~z$tJXJV${o9d zwl8DK1bfiA;aCpC0T>(NO&~!STF+T-k>PfY)VxjWRXidv1kush>}f1en!5g@kro~q zZ9C}=$NIX1jBhClo+P@^B5U1sq%)TO)Nz&pp9`rQC1FH5f}}@6E!ZU5OMXn zFNOjudx+Kse!)wSIuGm7D@0kvG<>)<_^HAUTv8l5ToeW@M0iv%$d zxKOS=XIfBR-U#Ii5X+EAkwTEEgb*}Ro?CcocXv@tqJ04@TO@B_+|8>lV^W?kfQz*1 zc;!6;53Rh5a>4`_lxzs&B_sUkJL+zLHERkF;m2XLav-Q7j=WNU`eDzEDe(a&1psJc z0@0+-XQU0-bTT+JsP_bu6^VYVx1qG>kR#92}|7&7Y-TFHjCE z;9x3wrE=fb922MKJS%2BE2b@T!JV_gooP>7%F!k!m|fcpN|LP|ak0Z1V-&Y)b6hlO$;Da&;Q{eBTC5`>5XDJzpabyM4C%r_pqUA8mj*eM!Zg0T?nr>Ihnhy{%; z+StxWys`Zs2o^nqRl?IYp4+V2n3iqp{w>BKTN7uopD+a^7+k=>^Lbs}!T9NOpt=(( z!jeO}bJY^P13(ievYPe{;QK)W&ni9xFs0=Qunz)SpP&h#!ibEGjb=J6R!q$Jg+x9n zk2Mp|<-{buo<1*QZEwt5nJSQGsCi`I`FIcSJUY-M@`cMpF2s4rP4$@Djd&qLQFVc-6{iKP0)1YDd6oYN;)T#AZQA7~BQf?00eGgYV1%P1)wu~+ z_~lEKRt4#elDA^q$rCVS>gWj7Dh>FWDe3C!k4J|3i1cxHbv*|#q7p*(t}f7cU0sTw z;>pR3;{Y*Vo(d}&%V`jZ8BbRiZ`oq=N5lX{Gy@E0%s_n@requ%3YxLBgYe6k_YDjy zgpw-{kh77TE#%OylyRJ(Apn;}*+F5uD9mycP+HkbzZtPyMZP9-Xpyl)&@1snERo-q z-Zy!yj_gWl%>$Q?PBdLvKe>MDbNS)4r7>%hTxDN4 z0uZ%xPs&m~)%5E6tLvwqe7*Bp=MD3RRDMhwKDsjCWxExq;(XR^G`YCz3E-TUdM){kyH*0SlxVd71e`jr0t9u3? z@w!$1gWB)azIEVx_=ca^vPx@UK2Uk()a0qGnf$AoUvInCHgkS!Y< z$n3tSIN+|cgv+%ec6O7)x@-DGR>EuM$u~N$ciu8z?^>Xr+1gzD+U}P7scmgb+t#+U zZEe)HN@`bIw!&krnD^CZ&GcTqNxb*&<2O~L@^WR$8=Q4EEm{$Srzj6=4~A8L%&KpJ zmPU>%PdxdkC1Q$N!N)egWYOgjwqZ-inyEMdIK_-0eT|${s*ythn}=vB%71~#`uq(> z%kA^BvJRghIPi7ElSecLWi)b7QR2#VnQ6KNfo?&T@=_S7URro7GooHa#DojZCF#Ag zrgYh=lw%b)yCY=hWvM)jkIEzD@al5_>|#$#4l9Q!j22q)V(6eSa$dn-A_(Ut3B>ND zqj#;PS(9vSo=E%>6RCN@EZNH5rvTB>l%$}eHJ;MKO0?&T1zjCA8*!Wv%EDG;l=qyG zjl+e|A%ejIQ{Mtcv<-u2K3A5PRP{z3_sgNzG%oeZ5$j9tPG`hs95Z4^ICWsr6LF|w z3FEIUpy65>v~SXTrPnZ()27q(`*Rf&iHe9u0V9Q9FOZe>TsTrR!K>HFqbDuExw4ahWIXeTdvB67r}afHX@r=(WU>|6ikd22ZQ^JT213Tp~vdp+o4a6X>jdD=N7Kzdi-mjJQ z_+E&x2#PaMI7lkh`9~Bx0tcjm&EX8GT*#?YY2T`pd({VbJTDWG>x#r@C(H z;I~R9tsmU+tpGGD-8o;~@T&W&d-~Hev2^v0uUWHZ1m43ARa*Y?k;_LWqEn})5B$Wv zE?bH`?j;D__`KIAecib)X#TbGac#7usae2mtVs*|^e5c4i<7sRvW?cxzJi;1(Rkn_7?vHv=u^o`!0R+GazjL@GsA54Z!oNZ_W6gDjsOqfzNelCxZ`?B@igZRhUU7M z;reVAGrXTZ6yf7%DU6)&<1azA0}A3QztojeC7;tpi6~TkMlISFMIy-)Qj+SzPi{-%%}ZPI5;mkWvXs=f7o$b3munrhj#|z` zQl;!zwg%Q*4W4G)0NY=FY0z*pu6yzJCsJ!0+Q&;nZPrpKU1)g7ktvCR(JSQr8SCj` zaP}1HIfdq&avBaO+~Gtf0FeeMA;Aw$o2J0T3j{l7kRs=Xcnv2*q>QaMLE26U8dPEz zt0Ew=O;#1n6b)|t2$2)Cu)tP=)UI+O`pT)>u2pv`n$s0)#t&poC8c|`-S9-ZIy7O; z`XztO_|ZF_iiromJd$$Me6Sdh{J~#Jj?z7MYU<}|w#?RSN!M(fu+95wrcQiq5BAu= zK6yU4`gQj;_smo2;I^w)ka3jB2a8UrejT>lya=DZ5laUj`KA@SEk(&X=_BpE4J%(g zdiCf`)s0ZPe)r_Td0#cY`cUe<1VM~f%G;#>W##_$=C>Ql_iZ-4y}53Gx%E%nGD7~u zE0e!GK>iSgd^B9Noj7^?NXKDAkf;!t8mTVsQVkIP@6@LnAgmIAP#HjAF=QL0Fmm3Z z6a|p2+*+$|uH-L(Y!pxc*$|*ZHu$q^WNWp6Y%20eg%m(GCj#hM=*G$~B*%m{S|ost z^*$PD5eqcTpq~oeKRYyqoDnNx6V_k!MC}MCpkMT8T4GFYIY4f?BhE+(a^E*8`X|<$e_K(^)a!QSUKxLQJpHHc5W># z!lEbQBeVkOgCD7VOw9Q~%vEM=2hPT0J<;%9;OZnH>*1e5+@o?bH8};Cm?W(_8|^ty zGMY1xih*4k4)(?_;x{A)%+!Sb6v&&wxROL5GtU#P!F>=?-~;&l(0>qt!Lv|@AjT;2 z1j7ql$b`x}d^$c9Oq^v+jragWxr3|&rLuv+@En4^6y+wWiriU#K-_^W*`J6)^F)dELT8G{Y(so7ndlZOEf6MM z3=`W%jjQpI3u@37JRzh!y%4DKQ1pkWo#lP z6dJfbiA-5xi&Y+hId5uW(h1Bj2oE8g-~i~Kp)Qff9nkmzCS?pUl;45_-awH2dO(8m z*7p}8Qbs%nxH38u;8zGtkQ4&QU{xa+0Pgw5mT}9E9d!&33*ay1Mt=+4aDGD$fOL+w zzoG~H0h7)jFn8n{0={@B;tIk_Z=UiD!qhfi5|q?RgpByqHs&(|KBTA*!db!ySh4EW z(W|3i1cYWC_48}i&#l=xyJqLOGgYy2*0Cy|GoYht1$-U7SAGY%<2=DXKoCmmT1Na5 zC4g{)eu|jRuS0LxA`pLl3rb<%HlL6pR`%P-AF_AclSeZSO}p-%{K7qX?4JD0J^9&? zC1W`kj}36=W*j8+faX;s;~69!Pu7iMT_|lbQKK_1bqbSGcHyKVl6s^30tLx>Vdo3L!RcLY?P=bWjZ6(eZ)D9XOF}IXBLo)X+x?1i6y2tA3$~bBvW^^lj z`K&sYfQ;1UcVeL;j1zl*f>;S)VtKr&@|Lt`!<=W^tY_P;PygVv-}~%4&41bQA6n9T zKArMxOM5<(a(ssSN?@OBsN5wCEW#_e>s~^K5~LZkpaT$C{Ip9iTYF3~C`Ubu?j9q2 z-uiXZSL_yP%!Xg)7mtmajfDI!9zeK3=jW&jlxQ;=2#t0?$@Z5WJ!UQ&GM>+(repRo z$1?fawV@hypnf%6KZ{QNC=XWhyoP56@{!yG5{|(ENgc3yVgar@`JE%V-Ocf7ud_A5sxkEXp%3wBFs*{>av zCvdrU>cN@1Tj$4n(`Ap%yUXX@o?m$!&XNy*8Io!b${#K`Q2vJtWpEi6nk;GGYp!4wsbZYT)*`!VOg!~m?ufH!}k!9&CwHE9F|Jr;( z$kCzXUBdmIpnkt@&X`&^W#k@(=BkQa3UvOSb2lABxHzcn9a*Qszd{w4*4=$j0_scb zZPjBQq_t6xtUma^2-$zP^0BEWAvmeOS%2%?k2fFr#&ffkkA0Y++5CmdCi$E8CfT^r zrx7Es(Lke?YqW+m7@<1_9kNRAkadL}0!2J1NkIlWjY5@ca0>cCc?}^SzXu+r9%x1q ztp|>C4^-W(`nNT6n-9)zKKK@T;z{a><7!VdZjpB)D`!7+&_{}M5I5U|sA({3lWy1fV<2^bFbgVd_e z;yVWQSCx{p?Y+vHS61aw6?a{pIalMmuEw8LJ~sWp?aIe4AHG|&YOW?UTN46k9DnR* zmB%Uk`1s+w4{Z5~XX|u$vTW+PAA6hL^=wT!wtk2gGiBed@$7rR5|U4b0>x61ebm65 zXykGF$^FqzzML5FG5WcZ93qf}iqoUyqrIGAxdXq8`-jqsL2Ku!XAz}}sUg*J}{%Bj#f`Se+WQvwA z%M`U5>zWWdkXeEzXrRMaI#NBcLa7 zz&rdn@Cf1(Y5{^(s$!|o8$~>gpNZWS{LO9(qO;+;CaSv0QZ9m4))NRlYdRXJvsuX> zALxyp8Dj1xYoF?8aF9JIpq3Co!A9N>z3+7c@qrCg+z8PM;S0zt6g+a`Sa8Qfn>MTE zY240Fld87hD-ILCbG_E6^;*Q1;PCyqu{b?P{8*tjTEvKjI(H!xw&mk9VT(G3xhPq&exHtKrnk;yg#?qi#30SUqXvUl z9EpgAp$;#q*n&|8Cl~4J4*0}3nW^`rjuV#CF7c#^SHzmupEOp zpf@6)MSPwb!e~>mu2><9I8Rq>H5Ebv^MZl0Ab^|q2t0ze`s9aWKrEV>ShRE~zk_^~ z&y({-I2fRD@^cH9@DiCJ>(?8Y$C4eS_N_olA{r|uwqDsWxnruGWVLBuC{?k3rYYrV zNjX}?rb`{coQ@u9iuUMD>p%$Uz2#_MBg&Wb%`_sBl?W(3KTskt7wVsB>Wx$!jCiOJ zObO$s#*5bLq+-VcY0UV$lFD!whEm;ix(FtWH0XU`^qEktL<{l;|HNc=R^Rc}&H0*V zea+LSW)7u&TT||>LitQ~R{zvj1;sLF^}U1}2|gdFmZqG|=6@+So0riJ)S0WtQA$2v z+E85s%>NUlKdAQ&3Q?bS=~)=XVAd=tAQV05UHv>bF=j8xU#T7ivsT8T5eqRBsUAg7 zPHiJejp4_*Y;D}WgEr7JWqSpeXD~7|kstv-%jBx&rZEc7>C8th9jS+cC2Cuq znFv;)GJ)tL8*==>NE|x}aSNHi$lual5U>>N!;K#!dLpRCPmJljMB?`e0OL{=^3xO* z%kSTik5?m;M!!ctcacLp6y^8HVQ!&a&__Ih8E7!2M4vKFb=E=#<5Iysi&<#E)%{9P z1k48X>a$u+HcS)w+lZS}4EfA$*BaKkAhucGWFNq>vuXU$e0BX?_2${?%{Nxxs!Ufu zGJfQ)r+U`YJYN-j*Bi__5edhntLi?Q)AsPZci$)Dv@uL6ptDh90VHYKt4eMPQPTI( z%WB z5^F`@QUiPNr#}wWw{RPtoFeEc399$nH$5`!9T^@LK&TFka*;KX3|btlHO?ye2Jt}Z zna>gPs_4-bOO3y3ilv5StBR%0VP~iW`%A}A|LLfrtMBcHpdeG)HNc@lF+ESyi(q7K zV_2%pM+=*#)dEece~|8Y8x-OUt&HSsh2%*<4R!%QSVM;GclF)6P=J%KCmsU#dTkDp zszMr8iov2eclVt4 zz^wPceC>*vlW#nI{b>?;w98G`}5? z;dVe6)PV53V>^V{DhJ?XETnlXbZ8G!AOjwTB^&7HDsr00xurSZpr#O`>$h=&$A6`5 zvQ5?Pe)9EG*G^sSpY^q*EiGA#+ghe`WyoK!v?-uqX(K>g+KX2BMZr{N!E)A^@(ce0 zmB{C;kjX0XFH*$|(P(j7Y02_(T>h&iY6H)~hBG@*NQ=n5ZfI~@S%cefnMR#h+(Jq8Yz!dM10gD97GdJ zWu@>t!8sv=UuCMllDIg`Me%}asm^%S8GRf^Vxk08Iv{n74Up*ZV#Wbq7g@rCFMLt> ztT+VIKPW(oEw4v((vbL$_tzW3k?FisMUb9IT?CByfoxyuqLs&ws$q29s{8=ImAA-w zo18x(=TG5iTCU4|U!vm5BxFr-t94THb(;BWkuesrSMpau9mz58tK?U85U2*S1@Q{+T zpk@CIzraz~HJ&oIp+O>PmK}%X=-h@SJ)KYQ{yXaJ4wMCkdg0k9NBNwide%`r@AY4C zOggkzpytZ6lh4kpuZl`KUYm7E&YDFW(E$o0d22q|DJp%mE@1-GXh94q^?}~WDYajQ z0>@XegApZ}vlhexM}tv{NJHR?C=eAuFlabpiW`a_CDh-A&wvZzMx#ceO@op&>WHZ# zgK;gYi2-`THK{191^wch7(hH)oJKQ9uZbPs4LG^V@ll(y7T*Zm6+Omni$KxPXtrxK z8>m(LeR4GF4FDY@6fG}DTf&4~cOhO~Q6=#+N!u$wuz-eXOV2rCWfVQ!M@>b6_(^Ch zJ>Ruzy_G+ku=1=}dA1I=9mXc({^sxTj5G^0N7qCFXOq~93W4k33;fFAI9C20Du+e~ zHvDiB_VaiJ^Ip#o@@>>0W9p0IFDbw&LDG!r3_{K%8KP!vgiZp)7a~SDY%eU`oQ`&h zVw{Eq<&Th`vW+se^}(DJwi4SJyu%m8ku$;s38|vzQXXbiy#!9E#N}HAB5?YUK*WMg za#p`rT5SUbm_)%(>w^qi<1|plc}l)ekqx%tLNQ2r?$Pi=bL-RAAR}p zFFihU_Kow`&(D{*$0IMFy?l1TYT8^qZUbsnUH=bB=a7KDwSB4Wr=9?n{KDi5)7xI( zac#%UlQ%4HmfkE)SM5!C_x_^z>+u`@Hyds?q^llIc_03Tt9K zk@?#C>Grwi9kb0l(#<$LFO}~r#03`_7xd<=Dd2!ed}tt&F-Ky`z4BzV^(ZS|_dT<@ zCAeYpvl$C*;RR<$(VYVSr-hP#j28AwQ+dQ?r@45B zOy}rqX4CM#hCgvtay3w%K$mES-)_UN{Ft0M zI7Jje3PB@POXjUuJ!CG0HL1W8@k*YRy7DM>z4p+yOPJ5XHiVL1!#V9s-uqG$!U?-7 zdK6Pc9)Qlw7_?hPy=k#g061NLg^H%ljdGuy`ZgLaxwCL(}UJFf1STA%W*PPtcqqPTi58y`YCf7~WP92zfa9W;TH655vzJBrA#p!b?&*qe4^HRi>#*t^^2t3Qp z#{5~A%wg?0W2A<2FajLk=;WWaDPoi{gCo{&+jtWkaR^WYC5?wr7v*Pg?#V&r=Xhg$ z2=7iL>R`d?Z1eyQ79cek{R?Y>xNOB=JGz3UK7H3h>#b_#Mx5HdK) zS3*7)`P|U0%u)_OtxL)lJmjl)E~C+b@N8uREUajX8sslv2~a=*O8@~XOW;>l__KSV z0y1@w6+%+$cJceIZTx!YpsF9@wr-gQ2NJJry~+BROw2)g3w8qaM-Tq=M}s~KK?LQv zgTiV{rxlC@o3Pu`X=i&a?jr+9oy(T7Lth|z23k?oNL@hYQ2{jn7ihw3C#20sI!@k) zc^t^k8ziTggCG=g3}inyqXV=T&+Uhix$+1(%$GVuK4x9M@LSQEZSGz0|Fqz~DcQw81hY_8YDzo2gC=#)X|f9kWrnk}9g9V@uqI{1z}$ zg|ZM|&ssa*2aBi)*lx|++7OEqpbh9ctqQq9asH1C@S!is5*%F3?ind=yygb@eYZVArfL0MLl1tM2uxj8J(kG99B60bJ zltai443^bCq{v%a44N7E7O_VEE5#$nLgj3Qhg9L*5Utcp?m99sV6)cE2dcAXdar;! zIlbHV^82pSy=cX6vEnF~f)z*ILC?npQDui{8_|K3@*dKDOaNs)boAK1`+=yc!n}1L zg$q$~K&tY-K#Hq#e<1bWsK(^r{+1k&svsa$BY;$u08-*eG)FDyGM!00g-r69#M%uR z8mkyLN_cVp*iijU+?TPe;v3(l0WjwP>l8*l@aKfdC^xfROI|9)Ic68+LUeOP8GXZP zWCw1&v2>O&d({O@raV)^-6=pK?tRGviG>i6hvol=i2x`Jg8#8$Vu9`D+}Y?@Z!ijV z@TkI|EeBK+5a}y)!n(VgXv=PG2l__?sxC$p1xW2!p6AL)i47}2dvtE*afB4{o}oKI z2C@Vf6HIq&0pFKEutg~wwJNUM;R{%H!ZuFN=jCCj&qMB}5NG(_`UAuvB8pty<#K&U zv=?y7evVNZF?496Vx8sWprK<kD zUVH_c2n4sY?6RG?$G$1w^u=52-dPPs3UP@|&XV^XQfc6-<687iMO~`?(R9U;l=}!i zuWgxf2ncPki50L*T964|wAHpRA{h|ky<#x96 z{O0jWIIKa*OVUq0KHk|DOJLYFRd+aD_GrrSsHpaTrc&I+h+}St+mG);_{Sic_d4oO zg*QAy8snGrnH&OMiC5uam4Z_2dySI22K%043B6GYWW12zppasUgTn;L!CpaguvZWr z>?Nw>S045@+O0=qq7CTH!~uDTI-vJE2Y=0P(GyhTg8f2AYA5ie7^yWj>;y#DkR7kf z^o_r2GJQi9zbeyTYAmXBKkS+6J9@@W=1pPRS!qUfKc0OaENw9-|0B1M?A+mGrz=O=t&Z@m!F7D10+VLOGoAJ>gT5l znc@IBjt;VeAssromjGQx-mK6x&d9^y&_GN%98JKc7WjPHcO2vC&By~8(?C39j`#M0 z=q6hVhen!~RTxk^yA@{9sJ|gnq@@9yfS_Iml|O{Ph!-BR8nM1{xeHESvMLaRtUT^^ zpkR14g@Kc_reesR6b5h{ed1HIuBJP_swwN&cct8ocRl`>U%33jm&b6pan`dk?P(sj zfH{=%ZJ%{*hjIb?cg(tW03h7e4k4DN$~LFnTjtz5XWcvBvZmZS)9yp>Sl>zf$_&uQ ztK*}|Sj+xn$By2Ij;$V4@nbBke3~X#%w;ME+ywl>H*rTR2nsF@#ZND zk-va_Kmi5p0|e;GLhxssWoxBC90iKXh5UB~2+B{LI?~R7fQT&GE;E*)p;+V-KmuAP zygSjZlPA!mFn)jnSd4hZnqW#%sWGE9t-**f8Md@6Mvx*O&J>nF0CH9ckX<7 z4&^v!py&xmp&LOcgcJqpLC{ym#F9oDmtFGI%dHCT&?G6h2QSvD%vdN~!F8IFk#3Oj zvghQ6tG;H*SZXW3pXU7_s(6WITK@N30T_xr`RdbGpT6x{D@a#w;EHR~_4U$mYt~|A zZ6dlHr_d~=xlosAOWM12&f7NYZF?(_^0uYDhu;aLo;dNhW)mq7A@aQhb?P5^AC`Xb z;J)qVw;z(>ek43la4+cnbRuh)wo?NMzlDY>bWofjk1;eTqtE1!q(FxTY_!jlr(Z<= z0%$-11<(KiIy8VkyRsM>P$31-Kqn)&q3C=v@}sU=G?IdMI-*V^Jt1-NUeqnFWy~W? zYe0IsKwvtTzjlzccJA|)O03N-Bh42TnnTWL8B9=Fpx@+zeiNPDa-IunadK~5&geY1 zGWT2a73ep)p=VSUE1rOci zwB+g&SoznCU+vd#8x-PM?i@7RpeEcj7U@Tnw9cO0c^R*S*5DS6`T}Y8Xf= z@jl$2B5o7n)~M#va@`y2hgFUkbf_?(sMrt~#_AB!$+RQK=zc~>w}l}uqN`C8q^7fj zR2H{}3_?a=!3_Ls++)NST%fDr<(z=8;<{Q)9{oZmo^?juit}Qk0enXjUG&l#NknzN&tY=9{*)tFsBZV5sQF(U{@(dCOo@MIhmjqdK?i#Iwl7FviIhqih$HptOn z_YbB31AS4arY~Aqk6$jfZI3|u^;OqWdJNl$K;9L2ia2;nP2B&++N0nBqRRB>x}OlG z>s^5EV&)xT2g+ZNqkmdX;j^4OBwxw%kEl~NBk{6Ip0FJgyBfRE{N{$68=$^<+wn-g z&AVnKz1Ns*g~9juz%u}HEx~xA^@(uu>`|O$rhsRkEjavWMgsadR@KxiW-}*z>p~iLJ{wKKH5c#ri=C)T&6&CZb|sRrGDOx^dP^XZ?g09&Xj(q zX3AZE$5l#U6Q|Oyx~aswu9YA&=1aY>Rdi(X$ZTl?I12L~A%4E+E$(0=9#jEKl-NJq z=Z$a+&l`RR?WISMmG|%62n;}LGm=S6L&j2W42T`2d@09h0%>b_ssy1%nzfP<9*?+Q zQR93U=TeBZfrm}b)xiXuPyEhzM-2_zYCQnMM)#dtIh|u8E!w=V#P~0I2s<6sbxSde zbsg4!iaufEbG9)%jPV_X4(%G_-pT3E!t7pSQ3LQ(>nH6Em;{BOkC9jK_UinAf%iLjj!U!o|_FiQ;1D^HIU*v;eulg#n1K&)t7C>aqeTp_|YgQFZ29a>34iL)8|u@fwr5xh=f z((n;z-m^o-y1oLE;YMPd_r;AI0_9aJAxHU+0p^5~lgABpGyGEZd%sUm>j2V2Zi5?g zYo-FXT`QOa@}9T+ifz)Cs@i@lkoG=Ie2_-xF`185g=T%Bnbm3Ert$V)czkyP4G*xiIQix?H=lXO|Ce?Dp>EM^s;rnWK~mwbns^v$FmwLZv;Ni7r{~t} zo?Wy1wtvriRn=FXpM3t6@T-xlk=HiA{@}F-ub!XTlCEk^d0XFW49$B36Ui&Xlf%=^ zuWz`v0gAkJH|yRy`4`W;{R}c+QFi&*_`dPcY=z|YjeqW^z7={IubrKF?u`rAFQnIO zzwO^aH3*D9nzc%SYEg&6?{|Iv@ken;tP)nvsiESO*p&RrMl`i{Q>te34d0C?-|W2E zdE;oRa^G7IzO!o1-7)L#_`m6F_%Zojf@bo++FyULRQglXzGl3BxOO$%KPz<}a-09G zvgMH7{O5Kn{A}oIsZlly(lZpNZK%*B8=E;ZN6a`AjS-{g44oCRhKYToUks>`iFueT zi%y9$r7J`+A%(GzT!a#BiU=F_gxvxmWdxWFZBc-B=O3*N&~CW$K9^pzoI=_B4`Cn; z*E^vbAgmx2NMLKPQf5Nm2?qD&Y}@*3AA3El0Ah2@6-%uyFMY zZ{yU+4cl$+_LOHw%CUnnR$OZ)D;*gd029=^Iu5B<`Q;rx+()Ie%32eF1`CZ@#!fCM zA|?+Qy7Bo$VZG`grFfK_c5+xQd4zm9%}4@*87rfKN(=nLlGRa)MD0c+HX7Zz-wdcJwx{L1yD zQdw0`%9IUv%gRZIvH>z1oQ48AeSu!tijeh~O!xg=xO`zE zk*aUKA-`$4X#sdRb@S9sSE_2)tY>%DO0iJSf|~$2tmrC04&%E3{g?gY;g_SAqnGOz zTpawATxQ+L2D9i*2D9i*2D9)chHIX|EQIh3;T{(<3&K@KYH%ungc*m2z`b}T*?Qy{ z99+Z*%pD`5KRWz*2tfr{B+g}Na0fPLz){W+l-ZXKT+(mE07uU z`gvZcJJC9t7vy|E^Ma5i96@v8qKc_CX;;&`uHCPFdgj!P!|Bz#QmwD+L-s&H%ZJnkwT%eAZeW?Om0Y{hNIAsnRmjVaizoyyw>nzFH8tP{M`|b) zQq&?vCG&BsFl!nzmL~w6!ZTK3ORT$_es*^YTVmjiBx3zBFi$k*i+1BJflv`C$K?`N z+^a^d@SRv9V3+8cnc!bC-;2O_D{gRAV(}p`W9b$LjVH^SqN)x`MXJm+u`MRCkXXYL z>6w9q!(MzRe0)IL4AqS=dJ#rlVYG@ki&Pph9)-GV9DGvZhB2FwqcMYzxXY|}i$e8{ z8Qdo>pY>z;a$EEVaq+Y(sk=`?0G~7TrIw|gw$bz9VwmAe3|w&hh7^>iXe}q@+5~kM z83s$7j|~oz5w5&#om$WpKOY{36)w8bH>mQp!0%KQW(%UDp+&KCO^depKS<#c0palH_!0gckl$IcWR<+GN{s0Wj{3 z$c<+BG?)lO;6su^uNo8nVSQ{8!~M_}K2H~eK+Em7F!9wfhUrtJA$@1`nKt;W?nNRA zOih&wPvaCJ`*vU}Qn>)`*igR7Upw~4F z# z2A>$l72yMG>7w}FFfKjO8=b%?pm9(&q(%_`J8wa%q!ZO#gF{qyU+grq#qO`3xLL1D zzRq`Uo?+;9>Bz@b9_Q6a_pMMjba(3=wWpw3_p8@Kt(y$%m76bx^`a3K_dDAJkjprA z@Q`t6OF!e#)*oFnA=Y-roxf5tCAktZPQBupl3a)Ml;rJqL>{`4R}y?w*W928V2N1#c?PeG2lu4rM7d1dBQHwwzcT^4j) z9@?Qgd{%bicgUse!%Nvu&H-}Bt}@+PDk(?Ep&?KXlS4R-@>Oz(=Fkk|7p3NeoJB4n z*(v7C46WW15i(Nx1eTW0;a`CvOneUE;P6*VRdipiYrbYBUS%4iztBuXEwr}2;+d~s zH*UF&TVB*?|KuO6Al-J#EZ=~)~r-unl8?^M@J zJ@BnE3V#pYHQ#cQS76zMTlb&|`a@HLr{{l!=O15ufN7ym9=#4UiGEXNtNa~x0p!FI zw&K~48&8@8U{Mu`DwZ97o-)s%z6t88pmq+O(Atr59_@Vb#cmq$Q~375vNkGwRabUR z?wW_Gvw_J0%{WD&sR|qv|J>x~vZbtqY=@}|oZl`oRY5$#d#elN9DMQLM~OSAr+Caa zA%kVb9hY;gXJ!Z^QSqY@QHcabu=pc>Cv~7QgbRUlhMtTJHRPD4eEQfZH+|+5R)|spyGEp+L~Zn+f(BZ0jRcJgt^~c$6mBbI4k#fO=J_&39{W9K5yd z2RpyF^LFUqyvO(Q@a5rG4$OL1+^MQzg98tyt3oMnXudpfrDn3`mFR5ws-jOSPczlH z339d2&Csob=`H)yRR>bu15hj-SM8#%rsft}3o8)okOnW$Eie&yyJJI;2rPbJ@}z>b z`wX@Te6!%2g*1}MNaTbm@k5M~KAUoRDG$Mbqts^}v*koOh7iVPbazAU9#JFRK}~Z} z+xW(CA8B4G1|pwaeh_RJu82f`&h+HD=3F~8-{$KRpcR`ES=fXALZ`|UXruaWc zi(9mIK0 zJG52t&(e0{Hx@k~*>*W^+;1V>z(uCOFBZP1#Iuq24w|p^|ZH*ta^d?d1Elr zOS~$0>7Fp1_rSy`8J%R|2iYxx7P>(Ka90HPs#VW$t)Ao9TH?NhbF8{n*nu+6g!mmA zWqbcv8YSF1vgST{<;dRFP=g@77+ofkNeFPjWl#t=Qt0Y0rawz7kW()XTM86>X?i*8B6v>6_zsFPjnqQas1%nj6DHEQBWCUVlTtN?MIF?)dy`c zw$Puk9Pc{zIMaX`%csdplwij48F;lDU}zr};xF2Jg)J&O1nb0KQchBI6PThzDFxLh zUpB2GYRuj_1=J_;#~5{BXKty?H*UHMvns8Vt?yPmHhuE-u4`TJ+^V?sLTcw@Y-J~LhQdi}NfnbYZ}&2vpVXPb7Wn|7rGyCIRbxJoPT zAkwENKRtE)>(3yhTJl$4+55GN-K&tYgw14}Y zfA6e+?|efOofvqv>uOiJq4oPK-U+049>YP#z{9W|8mI)y7N~_N8up@KNVJS{-t)CR zubq7Tv)4X*W96IcZ?3<+dQX1NyVCyMbN&Of{sYVA%w|c8vj!>Se|hXnW3L^5{po8@ z&nSPq<<0Fkx8Gj9D?jtyY5$%%fBUSzec8+p$_DlR$Itw8U;5l@%Im||hHnJEZ~B4# zd-mIFAIY!z-n9SWIsc(q|Dk1Tet5Z>&w19&de%%UY0vtUWBmtht%WU128(Y$K554PuD8J-SJ|Ms5v9=@sdkMlU-wp*H-zEKM*P2f~X#QVU z?JL9UKW&rY=0w8<_&(v}nDo-ZXWSeR4Jpf*RVWVNxUsIB z#EJv9@Hm#@Kb7JD(PH^J11#(y=5&b$12o=K3`}H5NyuynCDH^c6zzWq?E+!$jQDZN zLvWz4sOuL9CLFQjG+kK+uuMbl#=Kx91m?vp(Um3n{D_ZXYoWfu9}tKoIs*Czwa_=X zE9_&5npu-x`OnDRW7ay-PWuaNW5$&-gp9y$c=1B(ze6aR#@ zi50Sc9;!Ax2;D@Hh`Xr3f;IGjsoML=IY7=~at@NyPR^s`e4m`h$RT#1!a4~n$;X>p zh&Jja%Wq zAE>jgybJ40R=fe~{nc4J`NWZG@`)4GeBi;X8SlH!O$%1Mv$c=Q)(7r-HfF8lDON<_up&hS z4uc}X<^>mfJ563I4!hQ8&GaVa1A3G40p3N*2M7^tQR?s>42=HJW>3!oT|kmAtrzA( zjHUI)$G;I;CNj%+5o*9dAP7trnCVS_5i?F>!FCcP&n0}koN%F{C+arNt3Z-Yw|kZ1 zbQd%LV7$uyl0_r%J3SogMJTK?>7nJ&2{5c7^aLzMjEjhi>q~WME~+4YMoL9%jPrzS zy^JLLEL-=3#pcOaPtuK4;VR7klaQEchg?oa&xW6m0ouY`kvM+=v=>6H@Zcasz_`bX z1>F!9t5P)qqcw>lops=IP3mzM9Lea9<0uWC#z?e4a@rFepeRY7(eNt|%)c<0fz`DV+8rtsLH$aCBqYS_g$adsRYr2%T7bDg(_#9h7Kq zTQ^?_wt))LWN=)vTA4(&4<l!;M!sTZY45ESzPLW(n6%-4H1R zN(N!|W-J_nq5yOVH2w^FkGh5{gi}P(e$|c?C<02v@Vlcxn;(ovfszmmCW#v^U^VrK z3s|AXI%dk#1kz<`+hj=F}i16DL zK}&(ahNON-EiL>GoFah@P8E>F7Ht*d?oUG$EU!Nx-y1Ul;W8OX>$H5(HvzS8U?hSz zZeoP1*JGn+h$XJ}Lr$W?0Tv~Q*veZT18b}p()H%cub{2{GelSZ3Qob$Q8rugw?K?9 z{bpKh1AIvYb0XV>nOL)DR^?6imGHT|iU1oPIZ;TUK=ubO`Y z59Rlfn5W{Bss`|7#3iZ<{i)>eUs7FZ3%(@1=c$<3MhMN9KbLYe3XGtca-yc(PuM|H zcCIg}vwzVTPP-tru4orE2umh;?X`RTI)qmPKZX=U*r4+m5;~h-YmA+ zWY*Y1v=m(62s_VE3L?cDj>GCQW5Em9BiJBx>&UK8oEF=znizoDp_QC*l8^JpoZvwu zx}#t%(k8)ckr=VRXVO<=xg_z?6q&&y>QIBIJ0Huxyj>GGVJrNnhUI%^*=5a z>ldnOaSL+Zu$s*)}$*Qf!$d!p0XaPv~p2$l$I^}C2!!i|M5RQaLYo#{;h-QZI9u1 z+VgnI@i;HhWiC42PtAUuoL$tY?~{*-F>H1D6d6-)D=F**IRwg-L*x*o5QH3)YEk;x z3x@&UBVx~@sicte@2D?+imz3w901vdC z5*l^s?5O-=Z$6mI9Z1V*2K4Hx*vf%XSvd+jR80Pine$SbKO$vqPFEoZAal|dT*85R z(W7k{W70rXPD+RG7)yE(?#c_-bpXadiWMM^Qm#f?-msnJ61k9)l$Im(57fLVGxRNwhAtg9#4qI&II(CH*LdvubB6kQjYw-S{YDFM`F(n8fk1{Hz0pyvkGCbbhn*pXBV5un#_ zLLH~qh-Opb{XvLRgpMWWlc(Kzh~+vbN4D-uk_`hQgg}FWLIV>Jwh2gaI}8g2sA(jq zYetH)*NvD$t+?nYj<86nK+ZG4BdeZqBE~qUrSDn-F9st8@g5VRgF{6 zO^!@hU~SOfI2C#A)OXvbKXu!;(&G^6dxpd9O$^GxuG)zUlRSQo!GWmML z`2M?9b>r^$?Bx?HzY)D{ufGFByvM&hjKkd`EOy%-ocEMtXR$lKa^l6|iTx9g-SGs* zOV!_ZJQd?5*yi=FiYML>_XyvVMW?ipR&|{u;_#a7Oo3%mfv-I-*Z)K zAF@sa-AmB={L{u2?M~^3PG|cH^A8(kxZ;M`hlBv^DeBfF;$>`@iBNqNL=pN}QfL5# z(2F+ij2#!l_Jg0S5RR!3JBl<+i9vzEO(-Q4U>$-Pj0DTX#8FQ^q*;3M=_d|$9eDKM zfya+@9L|)BlDcrCL3AKNi9w>mMi`7xM-_rOjNoRx1zc7{6TDfTi9{puEK<&rZ;+f9 z$RPqz+yVFR$@kaf{8w`R8#%uu=RWl7GUPKi9mlAKm#mPol{+Z;t0!WM5?+hj&dTz(@uwFhdM`d@ZkOfS z@!>^@-isY3k6cEn@LFs>AZUwEX$jw_by80U3^Nelq;!fcr9)T$dyx0s%GWlri3i-97l=t&i0{a z_Dq$(8n_w&>LKq*t=bFBL*BFKc-|y$r)czERID52qcY41E=uHiKO*mx8z!E-(mB~V zEx&HPW}OYJ$w~+VVpDsw_SU{19Q@wF+0FYo?48&GeR{vcBzab)%bG8_U_7;?Che@f pWP{J{`@+B_Gd#|!w4?fx6+TDc3!l4W0rYUxr0umYS{UE>e*sx!%y|F+ literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/click/__pycache__/utils.cpython-312.pyc b/venv/lib/python3.12/site-packages/click/__pycache__/utils.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..67b157373bf246aac318cf18183d323bc37e2dbc GIT binary patch literal 26303 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/click/_compat.py b/venv/lib/python3.12/site-packages/click/_compat.py new file mode 100644 index 0000000000..23f8866598 --- /dev/null +++ b/venv/lib/python3.12/site-packages/click/_compat.py @@ -0,0 +1,623 @@ +import codecs +import io +import os +import re +import sys +import typing as t +from weakref import WeakKeyDictionary + +CYGWIN = sys.platform.startswith("cygwin") +WIN = sys.platform.startswith("win") +auto_wrap_for_ansi: t.Optional[t.Callable[[t.TextIO], t.TextIO]] = None +_ansi_re = re.compile(r"\033\[[;?0-9]*[a-zA-Z]") + + +def _make_text_stream( + stream: t.BinaryIO, + encoding: t.Optional[str], + errors: t.Optional[str], + force_readable: bool = False, + force_writable: bool = False, +) -> t.TextIO: + if encoding is None: + encoding = get_best_encoding(stream) + if errors is None: + errors = "replace" + return _NonClosingTextIOWrapper( + stream, + encoding, + errors, + line_buffering=True, + force_readable=force_readable, + force_writable=force_writable, + ) + + +def is_ascii_encoding(encoding: str) -> bool: + """Checks if a given encoding is ascii.""" + try: + return codecs.lookup(encoding).name == "ascii" + except LookupError: + return False + + +def get_best_encoding(stream: t.IO[t.Any]) -> str: + """Returns the default stream encoding if not found.""" + rv = getattr(stream, "encoding", None) or sys.getdefaultencoding() + if is_ascii_encoding(rv): + return "utf-8" + return rv + + +class _NonClosingTextIOWrapper(io.TextIOWrapper): + def __init__( + self, + stream: t.BinaryIO, + encoding: t.Optional[str], + errors: t.Optional[str], + force_readable: bool = False, + force_writable: bool = False, + **extra: t.Any, + ) -> None: + self._stream = stream = t.cast( + t.BinaryIO, _FixupStream(stream, force_readable, force_writable) + ) + super().__init__(stream, encoding, errors, **extra) + + def __del__(self) -> None: + try: + self.detach() + except Exception: + pass + + def isatty(self) -> bool: + # https://bitbucket.org/pypy/pypy/issue/1803 + return self._stream.isatty() + + +class _FixupStream: + """The new io interface needs more from streams than streams + traditionally implement. As such, this fix-up code is necessary in + some circumstances. + + The forcing of readable and writable flags are there because some tools + put badly patched objects on sys (one such offender are certain version + of jupyter notebook). + """ + + def __init__( + self, + stream: t.BinaryIO, + force_readable: bool = False, + force_writable: bool = False, + ): + self._stream = stream + self._force_readable = force_readable + self._force_writable = force_writable + + def __getattr__(self, name: str) -> t.Any: + return getattr(self._stream, name) + + def read1(self, size: int) -> bytes: + f = getattr(self._stream, "read1", None) + + if f is not None: + return t.cast(bytes, f(size)) + + return self._stream.read(size) + + def readable(self) -> bool: + if self._force_readable: + return True + x = getattr(self._stream, "readable", None) + if x is not None: + return t.cast(bool, x()) + try: + self._stream.read(0) + except Exception: + return False + return True + + def writable(self) -> bool: + if self._force_writable: + return True + x = getattr(self._stream, "writable", None) + if x is not None: + return t.cast(bool, x()) + try: + self._stream.write("") # type: ignore + except Exception: + try: + self._stream.write(b"") + except Exception: + return False + return True + + def seekable(self) -> bool: + x = getattr(self._stream, "seekable", None) + if x is not None: + return t.cast(bool, x()) + try: + self._stream.seek(self._stream.tell()) + except Exception: + return False + return True + + +def _is_binary_reader(stream: t.IO[t.Any], default: bool = False) -> bool: + try: + return isinstance(stream.read(0), bytes) + except Exception: + return default + # This happens in some cases where the stream was already + # closed. In this case, we assume the default. + + +def _is_binary_writer(stream: t.IO[t.Any], default: bool = False) -> bool: + try: + stream.write(b"") + except Exception: + try: + stream.write("") + return False + except Exception: + pass + return default + return True + + +def _find_binary_reader(stream: t.IO[t.Any]) -> t.Optional[t.BinaryIO]: + # We need to figure out if the given stream is already binary. + # This can happen because the official docs recommend detaching + # the streams to get binary streams. Some code might do this, so + # we need to deal with this case explicitly. + if _is_binary_reader(stream, False): + return t.cast(t.BinaryIO, stream) + + buf = getattr(stream, "buffer", None) + + # Same situation here; this time we assume that the buffer is + # actually binary in case it's closed. + if buf is not None and _is_binary_reader(buf, True): + return t.cast(t.BinaryIO, buf) + + return None + + +def _find_binary_writer(stream: t.IO[t.Any]) -> t.Optional[t.BinaryIO]: + # We need to figure out if the given stream is already binary. + # This can happen because the official docs recommend detaching + # the streams to get binary streams. Some code might do this, so + # we need to deal with this case explicitly. + if _is_binary_writer(stream, False): + return t.cast(t.BinaryIO, stream) + + buf = getattr(stream, "buffer", None) + + # Same situation here; this time we assume that the buffer is + # actually binary in case it's closed. + if buf is not None and _is_binary_writer(buf, True): + return t.cast(t.BinaryIO, buf) + + return None + + +def _stream_is_misconfigured(stream: t.TextIO) -> bool: + """A stream is misconfigured if its encoding is ASCII.""" + # If the stream does not have an encoding set, we assume it's set + # to ASCII. This appears to happen in certain unittest + # environments. It's not quite clear what the correct behavior is + # but this at least will force Click to recover somehow. + return is_ascii_encoding(getattr(stream, "encoding", None) or "ascii") + + +def _is_compat_stream_attr(stream: t.TextIO, attr: str, value: t.Optional[str]) -> bool: + """A stream attribute is compatible if it is equal to the + desired value or the desired value is unset and the attribute + has a value. + """ + stream_value = getattr(stream, attr, None) + return stream_value == value or (value is None and stream_value is not None) + + +def _is_compatible_text_stream( + stream: t.TextIO, encoding: t.Optional[str], errors: t.Optional[str] +) -> bool: + """Check if a stream's encoding and errors attributes are + compatible with the desired values. + """ + return _is_compat_stream_attr( + stream, "encoding", encoding + ) and _is_compat_stream_attr(stream, "errors", errors) + + +def _force_correct_text_stream( + text_stream: t.IO[t.Any], + encoding: t.Optional[str], + errors: t.Optional[str], + is_binary: t.Callable[[t.IO[t.Any], bool], bool], + find_binary: t.Callable[[t.IO[t.Any]], t.Optional[t.BinaryIO]], + force_readable: bool = False, + force_writable: bool = False, +) -> t.TextIO: + if is_binary(text_stream, False): + binary_reader = t.cast(t.BinaryIO, text_stream) + else: + text_stream = t.cast(t.TextIO, text_stream) + # If the stream looks compatible, and won't default to a + # misconfigured ascii encoding, return it as-is. + if _is_compatible_text_stream(text_stream, encoding, errors) and not ( + encoding is None and _stream_is_misconfigured(text_stream) + ): + return text_stream + + # Otherwise, get the underlying binary reader. + possible_binary_reader = find_binary(text_stream) + + # If that's not possible, silently use the original reader + # and get mojibake instead of exceptions. + if possible_binary_reader is None: + return text_stream + + binary_reader = possible_binary_reader + + # Default errors to replace instead of strict in order to get + # something that works. + if errors is None: + errors = "replace" + + # Wrap the binary stream in a text stream with the correct + # encoding parameters. + return _make_text_stream( + binary_reader, + encoding, + errors, + force_readable=force_readable, + force_writable=force_writable, + ) + + +def _force_correct_text_reader( + text_reader: t.IO[t.Any], + encoding: t.Optional[str], + errors: t.Optional[str], + force_readable: bool = False, +) -> t.TextIO: + return _force_correct_text_stream( + text_reader, + encoding, + errors, + _is_binary_reader, + _find_binary_reader, + force_readable=force_readable, + ) + + +def _force_correct_text_writer( + text_writer: t.IO[t.Any], + encoding: t.Optional[str], + errors: t.Optional[str], + force_writable: bool = False, +) -> t.TextIO: + return _force_correct_text_stream( + text_writer, + encoding, + errors, + _is_binary_writer, + _find_binary_writer, + force_writable=force_writable, + ) + + +def get_binary_stdin() -> t.BinaryIO: + reader = _find_binary_reader(sys.stdin) + if reader is None: + raise RuntimeError("Was not able to determine binary stream for sys.stdin.") + return reader + + +def get_binary_stdout() -> t.BinaryIO: + writer = _find_binary_writer(sys.stdout) + if writer is None: + raise RuntimeError("Was not able to determine binary stream for sys.stdout.") + return writer + + +def get_binary_stderr() -> t.BinaryIO: + writer = _find_binary_writer(sys.stderr) + if writer is None: + raise RuntimeError("Was not able to determine binary stream for sys.stderr.") + return writer + + +def get_text_stdin( + encoding: t.Optional[str] = None, errors: t.Optional[str] = None +) -> t.TextIO: + rv = _get_windows_console_stream(sys.stdin, encoding, errors) + if rv is not None: + return rv + return _force_correct_text_reader(sys.stdin, encoding, errors, force_readable=True) + + +def get_text_stdout( + encoding: t.Optional[str] = None, errors: t.Optional[str] = None +) -> t.TextIO: + rv = _get_windows_console_stream(sys.stdout, encoding, errors) + if rv is not None: + return rv + return _force_correct_text_writer(sys.stdout, encoding, errors, force_writable=True) + + +def get_text_stderr( + encoding: t.Optional[str] = None, errors: t.Optional[str] = None +) -> t.TextIO: + rv = _get_windows_console_stream(sys.stderr, encoding, errors) + if rv is not None: + return rv + return _force_correct_text_writer(sys.stderr, encoding, errors, force_writable=True) + + +def _wrap_io_open( + file: t.Union[str, "os.PathLike[str]", int], + mode: str, + encoding: t.Optional[str], + errors: t.Optional[str], +) -> t.IO[t.Any]: + """Handles not passing ``encoding`` and ``errors`` in binary mode.""" + if "b" in mode: + return open(file, mode) + + return open(file, mode, encoding=encoding, errors=errors) + + +def open_stream( + filename: "t.Union[str, os.PathLike[str]]", + mode: str = "r", + encoding: t.Optional[str] = None, + errors: t.Optional[str] = "strict", + atomic: bool = False, +) -> t.Tuple[t.IO[t.Any], bool]: + binary = "b" in mode + filename = os.fspath(filename) + + # Standard streams first. These are simple because they ignore the + # atomic flag. Use fsdecode to handle Path("-"). + if os.fsdecode(filename) == "-": + if any(m in mode for m in ["w", "a", "x"]): + if binary: + return get_binary_stdout(), False + return get_text_stdout(encoding=encoding, errors=errors), False + if binary: + return get_binary_stdin(), False + return get_text_stdin(encoding=encoding, errors=errors), False + + # Non-atomic writes directly go out through the regular open functions. + if not atomic: + return _wrap_io_open(filename, mode, encoding, errors), True + + # Some usability stuff for atomic writes + if "a" in mode: + raise ValueError( + "Appending to an existing file is not supported, because that" + " would involve an expensive `copy`-operation to a temporary" + " file. Open the file in normal `w`-mode and copy explicitly" + " if that's what you're after." + ) + if "x" in mode: + raise ValueError("Use the `overwrite`-parameter instead.") + if "w" not in mode: + raise ValueError("Atomic writes only make sense with `w`-mode.") + + # Atomic writes are more complicated. They work by opening a file + # as a proxy in the same folder and then using the fdopen + # functionality to wrap it in a Python file. Then we wrap it in an + # atomic file that moves the file over on close. + import errno + import random + + try: + perm: t.Optional[int] = os.stat(filename).st_mode + except OSError: + perm = None + + flags = os.O_RDWR | os.O_CREAT | os.O_EXCL + + if binary: + flags |= getattr(os, "O_BINARY", 0) + + while True: + tmp_filename = os.path.join( + os.path.dirname(filename), + f".__atomic-write{random.randrange(1 << 32):08x}", + ) + try: + fd = os.open(tmp_filename, flags, 0o666 if perm is None else perm) + break + except OSError as e: + if e.errno == errno.EEXIST or ( + os.name == "nt" + and e.errno == errno.EACCES + and os.path.isdir(e.filename) + and os.access(e.filename, os.W_OK) + ): + continue + raise + + if perm is not None: + os.chmod(tmp_filename, perm) # in case perm includes bits in umask + + f = _wrap_io_open(fd, mode, encoding, errors) + af = _AtomicFile(f, tmp_filename, os.path.realpath(filename)) + return t.cast(t.IO[t.Any], af), True + + +class _AtomicFile: + def __init__(self, f: t.IO[t.Any], tmp_filename: str, real_filename: str) -> None: + self._f = f + self._tmp_filename = tmp_filename + self._real_filename = real_filename + self.closed = False + + @property + def name(self) -> str: + return self._real_filename + + def close(self, delete: bool = False) -> None: + if self.closed: + return + self._f.close() + os.replace(self._tmp_filename, self._real_filename) + self.closed = True + + def __getattr__(self, name: str) -> t.Any: + return getattr(self._f, name) + + def __enter__(self) -> "_AtomicFile": + return self + + def __exit__(self, exc_type: t.Optional[t.Type[BaseException]], *_: t.Any) -> None: + self.close(delete=exc_type is not None) + + def __repr__(self) -> str: + return repr(self._f) + + +def strip_ansi(value: str) -> str: + return _ansi_re.sub("", value) + + +def _is_jupyter_kernel_output(stream: t.IO[t.Any]) -> bool: + while isinstance(stream, (_FixupStream, _NonClosingTextIOWrapper)): + stream = stream._stream + + return stream.__class__.__module__.startswith("ipykernel.") + + +def should_strip_ansi( + stream: t.Optional[t.IO[t.Any]] = None, color: t.Optional[bool] = None +) -> bool: + if color is None: + if stream is None: + stream = sys.stdin + return not isatty(stream) and not _is_jupyter_kernel_output(stream) + return not color + + +# On Windows, wrap the output streams with colorama to support ANSI +# color codes. +# NOTE: double check is needed so mypy does not analyze this on Linux +if sys.platform.startswith("win") and WIN: + from ._winconsole import _get_windows_console_stream + + def _get_argv_encoding() -> str: + import locale + + return locale.getpreferredencoding() + + _ansi_stream_wrappers: t.MutableMapping[t.TextIO, t.TextIO] = WeakKeyDictionary() + + def auto_wrap_for_ansi( # noqa: F811 + stream: t.TextIO, color: t.Optional[bool] = None + ) -> t.TextIO: + """Support ANSI color and style codes on Windows by wrapping a + stream with colorama. + """ + try: + cached = _ansi_stream_wrappers.get(stream) + except Exception: + cached = None + + if cached is not None: + return cached + + import colorama + + strip = should_strip_ansi(stream, color) + ansi_wrapper = colorama.AnsiToWin32(stream, strip=strip) + rv = t.cast(t.TextIO, ansi_wrapper.stream) + _write = rv.write + + def _safe_write(s): + try: + return _write(s) + except BaseException: + ansi_wrapper.reset_all() + raise + + rv.write = _safe_write + + try: + _ansi_stream_wrappers[stream] = rv + except Exception: + pass + + return rv + +else: + + def _get_argv_encoding() -> str: + return getattr(sys.stdin, "encoding", None) or sys.getfilesystemencoding() + + def _get_windows_console_stream( + f: t.TextIO, encoding: t.Optional[str], errors: t.Optional[str] + ) -> t.Optional[t.TextIO]: + return None + + +def term_len(x: str) -> int: + return len(strip_ansi(x)) + + +def isatty(stream: t.IO[t.Any]) -> bool: + try: + return stream.isatty() + except Exception: + return False + + +def _make_cached_stream_func( + src_func: t.Callable[[], t.Optional[t.TextIO]], + wrapper_func: t.Callable[[], t.TextIO], +) -> t.Callable[[], t.Optional[t.TextIO]]: + cache: t.MutableMapping[t.TextIO, t.TextIO] = WeakKeyDictionary() + + def func() -> t.Optional[t.TextIO]: + stream = src_func() + + if stream is None: + return None + + try: + rv = cache.get(stream) + except Exception: + rv = None + if rv is not None: + return rv + rv = wrapper_func() + try: + cache[stream] = rv + except Exception: + pass + return rv + + return func + + +_default_text_stdin = _make_cached_stream_func(lambda: sys.stdin, get_text_stdin) +_default_text_stdout = _make_cached_stream_func(lambda: sys.stdout, get_text_stdout) +_default_text_stderr = _make_cached_stream_func(lambda: sys.stderr, get_text_stderr) + + +binary_streams: t.Mapping[str, t.Callable[[], t.BinaryIO]] = { + "stdin": get_binary_stdin, + "stdout": get_binary_stdout, + "stderr": get_binary_stderr, +} + +text_streams: t.Mapping[ + str, t.Callable[[t.Optional[str], t.Optional[str]], t.TextIO] +] = { + "stdin": get_text_stdin, + "stdout": get_text_stdout, + "stderr": get_text_stderr, +} diff --git a/venv/lib/python3.12/site-packages/click/_termui_impl.py b/venv/lib/python3.12/site-packages/click/_termui_impl.py new file mode 100644 index 0000000000..f744657753 --- /dev/null +++ b/venv/lib/python3.12/site-packages/click/_termui_impl.py @@ -0,0 +1,739 @@ +""" +This module contains implementations for the termui module. To keep the +import time of Click down, some infrequently used functionality is +placed in this module and only imported as needed. +""" +import contextlib +import math +import os +import sys +import time +import typing as t +from gettext import gettext as _ +from io import StringIO +from types import TracebackType + +from ._compat import _default_text_stdout +from ._compat import CYGWIN +from ._compat import get_best_encoding +from ._compat import isatty +from ._compat import open_stream +from ._compat import strip_ansi +from ._compat import term_len +from ._compat import WIN +from .exceptions import ClickException +from .utils import echo + +V = t.TypeVar("V") + +if os.name == "nt": + BEFORE_BAR = "\r" + AFTER_BAR = "\n" +else: + BEFORE_BAR = "\r\033[?25l" + AFTER_BAR = "\033[?25h\n" + + +class ProgressBar(t.Generic[V]): + def __init__( + self, + iterable: t.Optional[t.Iterable[V]], + length: t.Optional[int] = None, + fill_char: str = "#", + empty_char: str = " ", + bar_template: str = "%(bar)s", + info_sep: str = " ", + show_eta: bool = True, + show_percent: t.Optional[bool] = None, + show_pos: bool = False, + item_show_func: t.Optional[t.Callable[[t.Optional[V]], t.Optional[str]]] = None, + label: t.Optional[str] = None, + file: t.Optional[t.TextIO] = None, + color: t.Optional[bool] = None, + update_min_steps: int = 1, + width: int = 30, + ) -> None: + self.fill_char = fill_char + self.empty_char = empty_char + self.bar_template = bar_template + self.info_sep = info_sep + self.show_eta = show_eta + self.show_percent = show_percent + self.show_pos = show_pos + self.item_show_func = item_show_func + self.label: str = label or "" + + if file is None: + file = _default_text_stdout() + + # There are no standard streams attached to write to. For example, + # pythonw on Windows. + if file is None: + file = StringIO() + + self.file = file + self.color = color + self.update_min_steps = update_min_steps + self._completed_intervals = 0 + self.width: int = width + self.autowidth: bool = width == 0 + + if length is None: + from operator import length_hint + + length = length_hint(iterable, -1) + + if length == -1: + length = None + if iterable is None: + if length is None: + raise TypeError("iterable or length is required") + iterable = t.cast(t.Iterable[V], range(length)) + self.iter: t.Iterable[V] = iter(iterable) + self.length = length + self.pos = 0 + self.avg: t.List[float] = [] + self.last_eta: float + self.start: float + self.start = self.last_eta = time.time() + self.eta_known: bool = False + self.finished: bool = False + self.max_width: t.Optional[int] = None + self.entered: bool = False + self.current_item: t.Optional[V] = None + self.is_hidden: bool = not isatty(self.file) + self._last_line: t.Optional[str] = None + + def __enter__(self) -> "ProgressBar[V]": + self.entered = True + self.render_progress() + return self + + def __exit__( + self, + exc_type: t.Optional[t.Type[BaseException]], + exc_value: t.Optional[BaseException], + tb: t.Optional[TracebackType], + ) -> None: + self.render_finish() + + def __iter__(self) -> t.Iterator[V]: + if not self.entered: + raise RuntimeError("You need to use progress bars in a with block.") + self.render_progress() + return self.generator() + + def __next__(self) -> V: + # Iteration is defined in terms of a generator function, + # returned by iter(self); use that to define next(). This works + # because `self.iter` is an iterable consumed by that generator, + # so it is re-entry safe. Calling `next(self.generator())` + # twice works and does "what you want". + return next(iter(self)) + + def render_finish(self) -> None: + if self.is_hidden: + return + self.file.write(AFTER_BAR) + self.file.flush() + + @property + def pct(self) -> float: + if self.finished: + return 1.0 + return min(self.pos / (float(self.length or 1) or 1), 1.0) + + @property + def time_per_iteration(self) -> float: + if not self.avg: + return 0.0 + return sum(self.avg) / float(len(self.avg)) + + @property + def eta(self) -> float: + if self.length is not None and not self.finished: + return self.time_per_iteration * (self.length - self.pos) + return 0.0 + + def format_eta(self) -> str: + if self.eta_known: + t = int(self.eta) + seconds = t % 60 + t //= 60 + minutes = t % 60 + t //= 60 + hours = t % 24 + t //= 24 + if t > 0: + return f"{t}d {hours:02}:{minutes:02}:{seconds:02}" + else: + return f"{hours:02}:{minutes:02}:{seconds:02}" + return "" + + def format_pos(self) -> str: + pos = str(self.pos) + if self.length is not None: + pos += f"/{self.length}" + return pos + + def format_pct(self) -> str: + return f"{int(self.pct * 100): 4}%"[1:] + + def format_bar(self) -> str: + if self.length is not None: + bar_length = int(self.pct * self.width) + bar = self.fill_char * bar_length + bar += self.empty_char * (self.width - bar_length) + elif self.finished: + bar = self.fill_char * self.width + else: + chars = list(self.empty_char * (self.width or 1)) + if self.time_per_iteration != 0: + chars[ + int( + (math.cos(self.pos * self.time_per_iteration) / 2.0 + 0.5) + * self.width + ) + ] = self.fill_char + bar = "".join(chars) + return bar + + def format_progress_line(self) -> str: + show_percent = self.show_percent + + info_bits = [] + if self.length is not None and show_percent is None: + show_percent = not self.show_pos + + if self.show_pos: + info_bits.append(self.format_pos()) + if show_percent: + info_bits.append(self.format_pct()) + if self.show_eta and self.eta_known and not self.finished: + info_bits.append(self.format_eta()) + if self.item_show_func is not None: + item_info = self.item_show_func(self.current_item) + if item_info is not None: + info_bits.append(item_info) + + return ( + self.bar_template + % { + "label": self.label, + "bar": self.format_bar(), + "info": self.info_sep.join(info_bits), + } + ).rstrip() + + def render_progress(self) -> None: + import shutil + + if self.is_hidden: + # Only output the label as it changes if the output is not a + # TTY. Use file=stderr if you expect to be piping stdout. + if self._last_line != self.label: + self._last_line = self.label + echo(self.label, file=self.file, color=self.color) + + return + + buf = [] + # Update width in case the terminal has been resized + if self.autowidth: + old_width = self.width + self.width = 0 + clutter_length = term_len(self.format_progress_line()) + new_width = max(0, shutil.get_terminal_size().columns - clutter_length) + if new_width < old_width: + buf.append(BEFORE_BAR) + buf.append(" " * self.max_width) # type: ignore + self.max_width = new_width + self.width = new_width + + clear_width = self.width + if self.max_width is not None: + clear_width = self.max_width + + buf.append(BEFORE_BAR) + line = self.format_progress_line() + line_len = term_len(line) + if self.max_width is None or self.max_width < line_len: + self.max_width = line_len + + buf.append(line) + buf.append(" " * (clear_width - line_len)) + line = "".join(buf) + # Render the line only if it changed. + + if line != self._last_line: + self._last_line = line + echo(line, file=self.file, color=self.color, nl=False) + self.file.flush() + + def make_step(self, n_steps: int) -> None: + self.pos += n_steps + if self.length is not None and self.pos >= self.length: + self.finished = True + + if (time.time() - self.last_eta) < 1.0: + return + + self.last_eta = time.time() + + # self.avg is a rolling list of length <= 7 of steps where steps are + # defined as time elapsed divided by the total progress through + # self.length. + if self.pos: + step = (time.time() - self.start) / self.pos + else: + step = time.time() - self.start + + self.avg = self.avg[-6:] + [step] + + self.eta_known = self.length is not None + + def update(self, n_steps: int, current_item: t.Optional[V] = None) -> None: + """Update the progress bar by advancing a specified number of + steps, and optionally set the ``current_item`` for this new + position. + + :param n_steps: Number of steps to advance. + :param current_item: Optional item to set as ``current_item`` + for the updated position. + + .. versionchanged:: 8.0 + Added the ``current_item`` optional parameter. + + .. versionchanged:: 8.0 + Only render when the number of steps meets the + ``update_min_steps`` threshold. + """ + if current_item is not None: + self.current_item = current_item + + self._completed_intervals += n_steps + + if self._completed_intervals >= self.update_min_steps: + self.make_step(self._completed_intervals) + self.render_progress() + self._completed_intervals = 0 + + def finish(self) -> None: + self.eta_known = False + self.current_item = None + self.finished = True + + def generator(self) -> t.Iterator[V]: + """Return a generator which yields the items added to the bar + during construction, and updates the progress bar *after* the + yielded block returns. + """ + # WARNING: the iterator interface for `ProgressBar` relies on + # this and only works because this is a simple generator which + # doesn't create or manage additional state. If this function + # changes, the impact should be evaluated both against + # `iter(bar)` and `next(bar)`. `next()` in particular may call + # `self.generator()` repeatedly, and this must remain safe in + # order for that interface to work. + if not self.entered: + raise RuntimeError("You need to use progress bars in a with block.") + + if self.is_hidden: + yield from self.iter + else: + for rv in self.iter: + self.current_item = rv + + # This allows show_item_func to be updated before the + # item is processed. Only trigger at the beginning of + # the update interval. + if self._completed_intervals == 0: + self.render_progress() + + yield rv + self.update(1) + + self.finish() + self.render_progress() + + +def pager(generator: t.Iterable[str], color: t.Optional[bool] = None) -> None: + """Decide what method to use for paging through text.""" + stdout = _default_text_stdout() + + # There are no standard streams attached to write to. For example, + # pythonw on Windows. + if stdout is None: + stdout = StringIO() + + if not isatty(sys.stdin) or not isatty(stdout): + return _nullpager(stdout, generator, color) + pager_cmd = (os.environ.get("PAGER", None) or "").strip() + if pager_cmd: + if WIN: + return _tempfilepager(generator, pager_cmd, color) + return _pipepager(generator, pager_cmd, color) + if os.environ.get("TERM") in ("dumb", "emacs"): + return _nullpager(stdout, generator, color) + if WIN or sys.platform.startswith("os2"): + return _tempfilepager(generator, "more <", color) + if hasattr(os, "system") and os.system("(less) 2>/dev/null") == 0: + return _pipepager(generator, "less", color) + + import tempfile + + fd, filename = tempfile.mkstemp() + os.close(fd) + try: + if hasattr(os, "system") and os.system(f'more "{filename}"') == 0: + return _pipepager(generator, "more", color) + return _nullpager(stdout, generator, color) + finally: + os.unlink(filename) + + +def _pipepager(generator: t.Iterable[str], cmd: str, color: t.Optional[bool]) -> None: + """Page through text by feeding it to another program. Invoking a + pager through this might support colors. + """ + import subprocess + + env = dict(os.environ) + + # If we're piping to less we might support colors under the + # condition that + cmd_detail = cmd.rsplit("/", 1)[-1].split() + if color is None and cmd_detail[0] == "less": + less_flags = f"{os.environ.get('LESS', '')}{' '.join(cmd_detail[1:])}" + if not less_flags: + env["LESS"] = "-R" + color = True + elif "r" in less_flags or "R" in less_flags: + color = True + + c = subprocess.Popen(cmd, shell=True, stdin=subprocess.PIPE, env=env) + stdin = t.cast(t.BinaryIO, c.stdin) + encoding = get_best_encoding(stdin) + try: + for text in generator: + if not color: + text = strip_ansi(text) + + stdin.write(text.encode(encoding, "replace")) + except (OSError, KeyboardInterrupt): + pass + else: + stdin.close() + + # Less doesn't respect ^C, but catches it for its own UI purposes (aborting + # search or other commands inside less). + # + # That means when the user hits ^C, the parent process (click) terminates, + # but less is still alive, paging the output and messing up the terminal. + # + # If the user wants to make the pager exit on ^C, they should set + # `LESS='-K'`. It's not our decision to make. + while True: + try: + c.wait() + except KeyboardInterrupt: + pass + else: + break + + +def _tempfilepager( + generator: t.Iterable[str], cmd: str, color: t.Optional[bool] +) -> None: + """Page through text by invoking a program on a temporary file.""" + import tempfile + + fd, filename = tempfile.mkstemp() + # TODO: This never terminates if the passed generator never terminates. + text = "".join(generator) + if not color: + text = strip_ansi(text) + encoding = get_best_encoding(sys.stdout) + with open_stream(filename, "wb")[0] as f: + f.write(text.encode(encoding)) + try: + os.system(f'{cmd} "{filename}"') + finally: + os.close(fd) + os.unlink(filename) + + +def _nullpager( + stream: t.TextIO, generator: t.Iterable[str], color: t.Optional[bool] +) -> None: + """Simply print unformatted text. This is the ultimate fallback.""" + for text in generator: + if not color: + text = strip_ansi(text) + stream.write(text) + + +class Editor: + def __init__( + self, + editor: t.Optional[str] = None, + env: t.Optional[t.Mapping[str, str]] = None, + require_save: bool = True, + extension: str = ".txt", + ) -> None: + self.editor = editor + self.env = env + self.require_save = require_save + self.extension = extension + + def get_editor(self) -> str: + if self.editor is not None: + return self.editor + for key in "VISUAL", "EDITOR": + rv = os.environ.get(key) + if rv: + return rv + if WIN: + return "notepad" + for editor in "sensible-editor", "vim", "nano": + if os.system(f"which {editor} >/dev/null 2>&1") == 0: + return editor + return "vi" + + def edit_file(self, filename: str) -> None: + import subprocess + + editor = self.get_editor() + environ: t.Optional[t.Dict[str, str]] = None + + if self.env: + environ = os.environ.copy() + environ.update(self.env) + + try: + c = subprocess.Popen(f'{editor} "{filename}"', env=environ, shell=True) + exit_code = c.wait() + if exit_code != 0: + raise ClickException( + _("{editor}: Editing failed").format(editor=editor) + ) + except OSError as e: + raise ClickException( + _("{editor}: Editing failed: {e}").format(editor=editor, e=e) + ) from e + + def edit(self, text: t.Optional[t.AnyStr]) -> t.Optional[t.AnyStr]: + import tempfile + + if not text: + data = b"" + elif isinstance(text, (bytes, bytearray)): + data = text + else: + if text and not text.endswith("\n"): + text += "\n" + + if WIN: + data = text.replace("\n", "\r\n").encode("utf-8-sig") + else: + data = text.encode("utf-8") + + fd, name = tempfile.mkstemp(prefix="editor-", suffix=self.extension) + f: t.BinaryIO + + try: + with os.fdopen(fd, "wb") as f: + f.write(data) + + # If the filesystem resolution is 1 second, like Mac OS + # 10.12 Extended, or 2 seconds, like FAT32, and the editor + # closes very fast, require_save can fail. Set the modified + # time to be 2 seconds in the past to work around this. + os.utime(name, (os.path.getatime(name), os.path.getmtime(name) - 2)) + # Depending on the resolution, the exact value might not be + # recorded, so get the new recorded value. + timestamp = os.path.getmtime(name) + + self.edit_file(name) + + if self.require_save and os.path.getmtime(name) == timestamp: + return None + + with open(name, "rb") as f: + rv = f.read() + + if isinstance(text, (bytes, bytearray)): + return rv + + return rv.decode("utf-8-sig").replace("\r\n", "\n") # type: ignore + finally: + os.unlink(name) + + +def open_url(url: str, wait: bool = False, locate: bool = False) -> int: + import subprocess + + def _unquote_file(url: str) -> str: + from urllib.parse import unquote + + if url.startswith("file://"): + url = unquote(url[7:]) + + return url + + if sys.platform == "darwin": + args = ["open"] + if wait: + args.append("-W") + if locate: + args.append("-R") + args.append(_unquote_file(url)) + null = open("/dev/null", "w") + try: + return subprocess.Popen(args, stderr=null).wait() + finally: + null.close() + elif WIN: + if locate: + url = _unquote_file(url.replace('"', "")) + args = f'explorer /select,"{url}"' + else: + url = url.replace('"', "") + wait_str = "/WAIT" if wait else "" + args = f'start {wait_str} "" "{url}"' + return os.system(args) + elif CYGWIN: + if locate: + url = os.path.dirname(_unquote_file(url).replace('"', "")) + args = f'cygstart "{url}"' + else: + url = url.replace('"', "") + wait_str = "-w" if wait else "" + args = f'cygstart {wait_str} "{url}"' + return os.system(args) + + try: + if locate: + url = os.path.dirname(_unquote_file(url)) or "." + else: + url = _unquote_file(url) + c = subprocess.Popen(["xdg-open", url]) + if wait: + return c.wait() + return 0 + except OSError: + if url.startswith(("http://", "https://")) and not locate and not wait: + import webbrowser + + webbrowser.open(url) + return 0 + return 1 + + +def _translate_ch_to_exc(ch: str) -> t.Optional[BaseException]: + if ch == "\x03": + raise KeyboardInterrupt() + + if ch == "\x04" and not WIN: # Unix-like, Ctrl+D + raise EOFError() + + if ch == "\x1a" and WIN: # Windows, Ctrl+Z + raise EOFError() + + return None + + +if WIN: + import msvcrt + + @contextlib.contextmanager + def raw_terminal() -> t.Iterator[int]: + yield -1 + + def getchar(echo: bool) -> str: + # The function `getch` will return a bytes object corresponding to + # the pressed character. Since Windows 10 build 1803, it will also + # return \x00 when called a second time after pressing a regular key. + # + # `getwch` does not share this probably-bugged behavior. Moreover, it + # returns a Unicode object by default, which is what we want. + # + # Either of these functions will return \x00 or \xe0 to indicate + # a special key, and you need to call the same function again to get + # the "rest" of the code. The fun part is that \u00e0 is + # "latin small letter a with grave", so if you type that on a French + # keyboard, you _also_ get a \xe0. + # E.g., consider the Up arrow. This returns \xe0 and then \x48. The + # resulting Unicode string reads as "a with grave" + "capital H". + # This is indistinguishable from when the user actually types + # "a with grave" and then "capital H". + # + # When \xe0 is returned, we assume it's part of a special-key sequence + # and call `getwch` again, but that means that when the user types + # the \u00e0 character, `getchar` doesn't return until a second + # character is typed. + # The alternative is returning immediately, but that would mess up + # cross-platform handling of arrow keys and others that start with + # \xe0. Another option is using `getch`, but then we can't reliably + # read non-ASCII characters, because return values of `getch` are + # limited to the current 8-bit codepage. + # + # Anyway, Click doesn't claim to do this Right(tm), and using `getwch` + # is doing the right thing in more situations than with `getch`. + func: t.Callable[[], str] + + if echo: + func = msvcrt.getwche # type: ignore + else: + func = msvcrt.getwch # type: ignore + + rv = func() + + if rv in ("\x00", "\xe0"): + # \x00 and \xe0 are control characters that indicate special key, + # see above. + rv += func() + + _translate_ch_to_exc(rv) + return rv + +else: + import tty + import termios + + @contextlib.contextmanager + def raw_terminal() -> t.Iterator[int]: + f: t.Optional[t.TextIO] + fd: int + + if not isatty(sys.stdin): + f = open("/dev/tty") + fd = f.fileno() + else: + fd = sys.stdin.fileno() + f = None + + try: + old_settings = termios.tcgetattr(fd) + + try: + tty.setraw(fd) + yield fd + finally: + termios.tcsetattr(fd, termios.TCSADRAIN, old_settings) + sys.stdout.flush() + + if f is not None: + f.close() + except termios.error: + pass + + def getchar(echo: bool) -> str: + with raw_terminal() as fd: + ch = os.read(fd, 32).decode(get_best_encoding(sys.stdin), "replace") + + if echo and isatty(sys.stdout): + sys.stdout.write(ch) + + _translate_ch_to_exc(ch) + return ch diff --git a/venv/lib/python3.12/site-packages/click/_textwrap.py b/venv/lib/python3.12/site-packages/click/_textwrap.py new file mode 100644 index 0000000000..b47dcbd426 --- /dev/null +++ b/venv/lib/python3.12/site-packages/click/_textwrap.py @@ -0,0 +1,49 @@ +import textwrap +import typing as t +from contextlib import contextmanager + + +class TextWrapper(textwrap.TextWrapper): + def _handle_long_word( + self, + reversed_chunks: t.List[str], + cur_line: t.List[str], + cur_len: int, + width: int, + ) -> None: + space_left = max(width - cur_len, 1) + + if self.break_long_words: + last = reversed_chunks[-1] + cut = last[:space_left] + res = last[space_left:] + cur_line.append(cut) + reversed_chunks[-1] = res + elif not cur_line: + cur_line.append(reversed_chunks.pop()) + + @contextmanager + def extra_indent(self, indent: str) -> t.Iterator[None]: + old_initial_indent = self.initial_indent + old_subsequent_indent = self.subsequent_indent + self.initial_indent += indent + self.subsequent_indent += indent + + try: + yield + finally: + self.initial_indent = old_initial_indent + self.subsequent_indent = old_subsequent_indent + + def indent_only(self, text: str) -> str: + rv = [] + + for idx, line in enumerate(text.splitlines()): + indent = self.initial_indent + + if idx > 0: + indent = self.subsequent_indent + + rv.append(f"{indent}{line}") + + return "\n".join(rv) diff --git a/venv/lib/python3.12/site-packages/click/_winconsole.py b/venv/lib/python3.12/site-packages/click/_winconsole.py new file mode 100644 index 0000000000..6b20df315b --- /dev/null +++ b/venv/lib/python3.12/site-packages/click/_winconsole.py @@ -0,0 +1,279 @@ +# This module is based on the excellent work by Adam Bartoš who +# provided a lot of what went into the implementation here in +# the discussion to issue1602 in the Python bug tracker. +# +# There are some general differences in regards to how this works +# compared to the original patches as we do not need to patch +# the entire interpreter but just work in our little world of +# echo and prompt. +import io +import sys +import time +import typing as t +from ctypes import byref +from ctypes import c_char +from ctypes import c_char_p +from ctypes import c_int +from ctypes import c_ssize_t +from ctypes import c_ulong +from ctypes import c_void_p +from ctypes import POINTER +from ctypes import py_object +from ctypes import Structure +from ctypes.wintypes import DWORD +from ctypes.wintypes import HANDLE +from ctypes.wintypes import LPCWSTR +from ctypes.wintypes import LPWSTR + +from ._compat import _NonClosingTextIOWrapper + +assert sys.platform == "win32" +import msvcrt # noqa: E402 +from ctypes import windll # noqa: E402 +from ctypes import WINFUNCTYPE # noqa: E402 + +c_ssize_p = POINTER(c_ssize_t) + +kernel32 = windll.kernel32 +GetStdHandle = kernel32.GetStdHandle +ReadConsoleW = kernel32.ReadConsoleW +WriteConsoleW = kernel32.WriteConsoleW +GetConsoleMode = kernel32.GetConsoleMode +GetLastError = kernel32.GetLastError +GetCommandLineW = WINFUNCTYPE(LPWSTR)(("GetCommandLineW", windll.kernel32)) +CommandLineToArgvW = WINFUNCTYPE(POINTER(LPWSTR), LPCWSTR, POINTER(c_int))( + ("CommandLineToArgvW", windll.shell32) +) +LocalFree = WINFUNCTYPE(c_void_p, c_void_p)(("LocalFree", windll.kernel32)) + +STDIN_HANDLE = GetStdHandle(-10) +STDOUT_HANDLE = GetStdHandle(-11) +STDERR_HANDLE = GetStdHandle(-12) + +PyBUF_SIMPLE = 0 +PyBUF_WRITABLE = 1 + +ERROR_SUCCESS = 0 +ERROR_NOT_ENOUGH_MEMORY = 8 +ERROR_OPERATION_ABORTED = 995 + +STDIN_FILENO = 0 +STDOUT_FILENO = 1 +STDERR_FILENO = 2 + +EOF = b"\x1a" +MAX_BYTES_WRITTEN = 32767 + +try: + from ctypes import pythonapi +except ImportError: + # On PyPy we cannot get buffers so our ability to operate here is + # severely limited. + get_buffer = None +else: + + class Py_buffer(Structure): + _fields_ = [ + ("buf", c_void_p), + ("obj", py_object), + ("len", c_ssize_t), + ("itemsize", c_ssize_t), + ("readonly", c_int), + ("ndim", c_int), + ("format", c_char_p), + ("shape", c_ssize_p), + ("strides", c_ssize_p), + ("suboffsets", c_ssize_p), + ("internal", c_void_p), + ] + + PyObject_GetBuffer = pythonapi.PyObject_GetBuffer + PyBuffer_Release = pythonapi.PyBuffer_Release + + def get_buffer(obj, writable=False): + buf = Py_buffer() + flags = PyBUF_WRITABLE if writable else PyBUF_SIMPLE + PyObject_GetBuffer(py_object(obj), byref(buf), flags) + + try: + buffer_type = c_char * buf.len + return buffer_type.from_address(buf.buf) + finally: + PyBuffer_Release(byref(buf)) + + +class _WindowsConsoleRawIOBase(io.RawIOBase): + def __init__(self, handle): + self.handle = handle + + def isatty(self): + super().isatty() + return True + + +class _WindowsConsoleReader(_WindowsConsoleRawIOBase): + def readable(self): + return True + + def readinto(self, b): + bytes_to_be_read = len(b) + if not bytes_to_be_read: + return 0 + elif bytes_to_be_read % 2: + raise ValueError( + "cannot read odd number of bytes from UTF-16-LE encoded console" + ) + + buffer = get_buffer(b, writable=True) + code_units_to_be_read = bytes_to_be_read // 2 + code_units_read = c_ulong() + + rv = ReadConsoleW( + HANDLE(self.handle), + buffer, + code_units_to_be_read, + byref(code_units_read), + None, + ) + if GetLastError() == ERROR_OPERATION_ABORTED: + # wait for KeyboardInterrupt + time.sleep(0.1) + if not rv: + raise OSError(f"Windows error: {GetLastError()}") + + if buffer[0] == EOF: + return 0 + return 2 * code_units_read.value + + +class _WindowsConsoleWriter(_WindowsConsoleRawIOBase): + def writable(self): + return True + + @staticmethod + def _get_error_message(errno): + if errno == ERROR_SUCCESS: + return "ERROR_SUCCESS" + elif errno == ERROR_NOT_ENOUGH_MEMORY: + return "ERROR_NOT_ENOUGH_MEMORY" + return f"Windows error {errno}" + + def write(self, b): + bytes_to_be_written = len(b) + buf = get_buffer(b) + code_units_to_be_written = min(bytes_to_be_written, MAX_BYTES_WRITTEN) // 2 + code_units_written = c_ulong() + + WriteConsoleW( + HANDLE(self.handle), + buf, + code_units_to_be_written, + byref(code_units_written), + None, + ) + bytes_written = 2 * code_units_written.value + + if bytes_written == 0 and bytes_to_be_written > 0: + raise OSError(self._get_error_message(GetLastError())) + return bytes_written + + +class ConsoleStream: + def __init__(self, text_stream: t.TextIO, byte_stream: t.BinaryIO) -> None: + self._text_stream = text_stream + self.buffer = byte_stream + + @property + def name(self) -> str: + return self.buffer.name + + def write(self, x: t.AnyStr) -> int: + if isinstance(x, str): + return self._text_stream.write(x) + try: + self.flush() + except Exception: + pass + return self.buffer.write(x) + + def writelines(self, lines: t.Iterable[t.AnyStr]) -> None: + for line in lines: + self.write(line) + + def __getattr__(self, name: str) -> t.Any: + return getattr(self._text_stream, name) + + def isatty(self) -> bool: + return self.buffer.isatty() + + def __repr__(self): + return f"" + + +def _get_text_stdin(buffer_stream: t.BinaryIO) -> t.TextIO: + text_stream = _NonClosingTextIOWrapper( + io.BufferedReader(_WindowsConsoleReader(STDIN_HANDLE)), + "utf-16-le", + "strict", + line_buffering=True, + ) + return t.cast(t.TextIO, ConsoleStream(text_stream, buffer_stream)) + + +def _get_text_stdout(buffer_stream: t.BinaryIO) -> t.TextIO: + text_stream = _NonClosingTextIOWrapper( + io.BufferedWriter(_WindowsConsoleWriter(STDOUT_HANDLE)), + "utf-16-le", + "strict", + line_buffering=True, + ) + return t.cast(t.TextIO, ConsoleStream(text_stream, buffer_stream)) + + +def _get_text_stderr(buffer_stream: t.BinaryIO) -> t.TextIO: + text_stream = _NonClosingTextIOWrapper( + io.BufferedWriter(_WindowsConsoleWriter(STDERR_HANDLE)), + "utf-16-le", + "strict", + line_buffering=True, + ) + return t.cast(t.TextIO, ConsoleStream(text_stream, buffer_stream)) + + +_stream_factories: t.Mapping[int, t.Callable[[t.BinaryIO], t.TextIO]] = { + 0: _get_text_stdin, + 1: _get_text_stdout, + 2: _get_text_stderr, +} + + +def _is_console(f: t.TextIO) -> bool: + if not hasattr(f, "fileno"): + return False + + try: + fileno = f.fileno() + except (OSError, io.UnsupportedOperation): + return False + + handle = msvcrt.get_osfhandle(fileno) + return bool(GetConsoleMode(handle, byref(DWORD()))) + + +def _get_windows_console_stream( + f: t.TextIO, encoding: t.Optional[str], errors: t.Optional[str] +) -> t.Optional[t.TextIO]: + if ( + get_buffer is not None + and encoding in {"utf-16-le", None} + and errors in {"strict", None} + and _is_console(f) + ): + func = _stream_factories.get(f.fileno()) + if func is not None: + b = getattr(f, "buffer", None) + + if b is None: + return None + + return func(b) diff --git a/venv/lib/python3.12/site-packages/click/core.py b/venv/lib/python3.12/site-packages/click/core.py new file mode 100644 index 0000000000..cc65e896bf --- /dev/null +++ b/venv/lib/python3.12/site-packages/click/core.py @@ -0,0 +1,3042 @@ +import enum +import errno +import inspect +import os +import sys +import typing as t +from collections import abc +from contextlib import contextmanager +from contextlib import ExitStack +from functools import update_wrapper +from gettext import gettext as _ +from gettext import ngettext +from itertools import repeat +from types import TracebackType + +from . import types +from .exceptions import Abort +from .exceptions import BadParameter +from .exceptions import ClickException +from .exceptions import Exit +from .exceptions import MissingParameter +from .exceptions import UsageError +from .formatting import HelpFormatter +from .formatting import join_options +from .globals import pop_context +from .globals import push_context +from .parser import _flag_needs_value +from .parser import OptionParser +from .parser import split_opt +from .termui import confirm +from .termui import prompt +from .termui import style +from .utils import _detect_program_name +from .utils import _expand_args +from .utils import echo +from .utils import make_default_short_help +from .utils import make_str +from .utils import PacifyFlushWrapper + +if t.TYPE_CHECKING: + import typing_extensions as te + from .shell_completion import CompletionItem + +F = t.TypeVar("F", bound=t.Callable[..., t.Any]) +V = t.TypeVar("V") + + +def _complete_visible_commands( + ctx: "Context", incomplete: str +) -> t.Iterator[t.Tuple[str, "Command"]]: + """List all the subcommands of a group that start with the + incomplete value and aren't hidden. + + :param ctx: Invocation context for the group. + :param incomplete: Value being completed. May be empty. + """ + multi = t.cast(MultiCommand, ctx.command) + + for name in multi.list_commands(ctx): + if name.startswith(incomplete): + command = multi.get_command(ctx, name) + + if command is not None and not command.hidden: + yield name, command + + +def _check_multicommand( + base_command: "MultiCommand", cmd_name: str, cmd: "Command", register: bool = False +) -> None: + if not base_command.chain or not isinstance(cmd, MultiCommand): + return + if register: + hint = ( + "It is not possible to add multi commands as children to" + " another multi command that is in chain mode." + ) + else: + hint = ( + "Found a multi command as subcommand to a multi command" + " that is in chain mode. This is not supported." + ) + raise RuntimeError( + f"{hint}. Command {base_command.name!r} is set to chain and" + f" {cmd_name!r} was added as a subcommand but it in itself is a" + f" multi command. ({cmd_name!r} is a {type(cmd).__name__}" + f" within a chained {type(base_command).__name__} named" + f" {base_command.name!r})." + ) + + +def batch(iterable: t.Iterable[V], batch_size: int) -> t.List[t.Tuple[V, ...]]: + return list(zip(*repeat(iter(iterable), batch_size))) + + +@contextmanager +def augment_usage_errors( + ctx: "Context", param: t.Optional["Parameter"] = None +) -> t.Iterator[None]: + """Context manager that attaches extra information to exceptions.""" + try: + yield + except BadParameter as e: + if e.ctx is None: + e.ctx = ctx + if param is not None and e.param is None: + e.param = param + raise + except UsageError as e: + if e.ctx is None: + e.ctx = ctx + raise + + +def iter_params_for_processing( + invocation_order: t.Sequence["Parameter"], + declaration_order: t.Sequence["Parameter"], +) -> t.List["Parameter"]: + """Given a sequence of parameters in the order as should be considered + for processing and an iterable of parameters that exist, this returns + a list in the correct order as they should be processed. + """ + + def sort_key(item: "Parameter") -> t.Tuple[bool, float]: + try: + idx: float = invocation_order.index(item) + except ValueError: + idx = float("inf") + + return not item.is_eager, idx + + return sorted(declaration_order, key=sort_key) + + +class ParameterSource(enum.Enum): + """This is an :class:`~enum.Enum` that indicates the source of a + parameter's value. + + Use :meth:`click.Context.get_parameter_source` to get the + source for a parameter by name. + + .. versionchanged:: 8.0 + Use :class:`~enum.Enum` and drop the ``validate`` method. + + .. versionchanged:: 8.0 + Added the ``PROMPT`` value. + """ + + COMMANDLINE = enum.auto() + """The value was provided by the command line args.""" + ENVIRONMENT = enum.auto() + """The value was provided with an environment variable.""" + DEFAULT = enum.auto() + """Used the default specified by the parameter.""" + DEFAULT_MAP = enum.auto() + """Used a default provided by :attr:`Context.default_map`.""" + PROMPT = enum.auto() + """Used a prompt to confirm a default or provide a value.""" + + +class Context: + """The context is a special internal object that holds state relevant + for the script execution at every single level. It's normally invisible + to commands unless they opt-in to getting access to it. + + The context is useful as it can pass internal objects around and can + control special execution features such as reading data from + environment variables. + + A context can be used as context manager in which case it will call + :meth:`close` on teardown. + + :param command: the command class for this context. + :param parent: the parent context. + :param info_name: the info name for this invocation. Generally this + is the most descriptive name for the script or + command. For the toplevel script it is usually + the name of the script, for commands below it it's + the name of the script. + :param obj: an arbitrary object of user data. + :param auto_envvar_prefix: the prefix to use for automatic environment + variables. If this is `None` then reading + from environment variables is disabled. This + does not affect manually set environment + variables which are always read. + :param default_map: a dictionary (like object) with default values + for parameters. + :param terminal_width: the width of the terminal. The default is + inherit from parent context. If no context + defines the terminal width then auto + detection will be applied. + :param max_content_width: the maximum width for content rendered by + Click (this currently only affects help + pages). This defaults to 80 characters if + not overridden. In other words: even if the + terminal is larger than that, Click will not + format things wider than 80 characters by + default. In addition to that, formatters might + add some safety mapping on the right. + :param resilient_parsing: if this flag is enabled then Click will + parse without any interactivity or callback + invocation. Default values will also be + ignored. This is useful for implementing + things such as completion support. + :param allow_extra_args: if this is set to `True` then extra arguments + at the end will not raise an error and will be + kept on the context. The default is to inherit + from the command. + :param allow_interspersed_args: if this is set to `False` then options + and arguments cannot be mixed. The + default is to inherit from the command. + :param ignore_unknown_options: instructs click to ignore options it does + not know and keeps them for later + processing. + :param help_option_names: optionally a list of strings that define how + the default help parameter is named. The + default is ``['--help']``. + :param token_normalize_func: an optional function that is used to + normalize tokens (options, choices, + etc.). This for instance can be used to + implement case insensitive behavior. + :param color: controls if the terminal supports ANSI colors or not. The + default is autodetection. This is only needed if ANSI + codes are used in texts that Click prints which is by + default not the case. This for instance would affect + help output. + :param show_default: Show the default value for commands. If this + value is not set, it defaults to the value from the parent + context. ``Command.show_default`` overrides this default for the + specific command. + + .. versionchanged:: 8.1 + The ``show_default`` parameter is overridden by + ``Command.show_default``, instead of the other way around. + + .. versionchanged:: 8.0 + The ``show_default`` parameter defaults to the value from the + parent context. + + .. versionchanged:: 7.1 + Added the ``show_default`` parameter. + + .. versionchanged:: 4.0 + Added the ``color``, ``ignore_unknown_options``, and + ``max_content_width`` parameters. + + .. versionchanged:: 3.0 + Added the ``allow_extra_args`` and ``allow_interspersed_args`` + parameters. + + .. versionchanged:: 2.0 + Added the ``resilient_parsing``, ``help_option_names``, and + ``token_normalize_func`` parameters. + """ + + #: The formatter class to create with :meth:`make_formatter`. + #: + #: .. versionadded:: 8.0 + formatter_class: t.Type["HelpFormatter"] = HelpFormatter + + def __init__( + self, + command: "Command", + parent: t.Optional["Context"] = None, + info_name: t.Optional[str] = None, + obj: t.Optional[t.Any] = None, + auto_envvar_prefix: t.Optional[str] = None, + default_map: t.Optional[t.MutableMapping[str, t.Any]] = None, + terminal_width: t.Optional[int] = None, + max_content_width: t.Optional[int] = None, + resilient_parsing: bool = False, + allow_extra_args: t.Optional[bool] = None, + allow_interspersed_args: t.Optional[bool] = None, + ignore_unknown_options: t.Optional[bool] = None, + help_option_names: t.Optional[t.List[str]] = None, + token_normalize_func: t.Optional[t.Callable[[str], str]] = None, + color: t.Optional[bool] = None, + show_default: t.Optional[bool] = None, + ) -> None: + #: the parent context or `None` if none exists. + self.parent = parent + #: the :class:`Command` for this context. + self.command = command + #: the descriptive information name + self.info_name = info_name + #: Map of parameter names to their parsed values. Parameters + #: with ``expose_value=False`` are not stored. + self.params: t.Dict[str, t.Any] = {} + #: the leftover arguments. + self.args: t.List[str] = [] + #: protected arguments. These are arguments that are prepended + #: to `args` when certain parsing scenarios are encountered but + #: must be never propagated to another arguments. This is used + #: to implement nested parsing. + self.protected_args: t.List[str] = [] + #: the collected prefixes of the command's options. + self._opt_prefixes: t.Set[str] = set(parent._opt_prefixes) if parent else set() + + if obj is None and parent is not None: + obj = parent.obj + + #: the user object stored. + self.obj: t.Any = obj + self._meta: t.Dict[str, t.Any] = getattr(parent, "meta", {}) + + #: A dictionary (-like object) with defaults for parameters. + if ( + default_map is None + and info_name is not None + and parent is not None + and parent.default_map is not None + ): + default_map = parent.default_map.get(info_name) + + self.default_map: t.Optional[t.MutableMapping[str, t.Any]] = default_map + + #: This flag indicates if a subcommand is going to be executed. A + #: group callback can use this information to figure out if it's + #: being executed directly or because the execution flow passes + #: onwards to a subcommand. By default it's None, but it can be + #: the name of the subcommand to execute. + #: + #: If chaining is enabled this will be set to ``'*'`` in case + #: any commands are executed. It is however not possible to + #: figure out which ones. If you require this knowledge you + #: should use a :func:`result_callback`. + self.invoked_subcommand: t.Optional[str] = None + + if terminal_width is None and parent is not None: + terminal_width = parent.terminal_width + + #: The width of the terminal (None is autodetection). + self.terminal_width: t.Optional[int] = terminal_width + + if max_content_width is None and parent is not None: + max_content_width = parent.max_content_width + + #: The maximum width of formatted content (None implies a sensible + #: default which is 80 for most things). + self.max_content_width: t.Optional[int] = max_content_width + + if allow_extra_args is None: + allow_extra_args = command.allow_extra_args + + #: Indicates if the context allows extra args or if it should + #: fail on parsing. + #: + #: .. versionadded:: 3.0 + self.allow_extra_args = allow_extra_args + + if allow_interspersed_args is None: + allow_interspersed_args = command.allow_interspersed_args + + #: Indicates if the context allows mixing of arguments and + #: options or not. + #: + #: .. versionadded:: 3.0 + self.allow_interspersed_args: bool = allow_interspersed_args + + if ignore_unknown_options is None: + ignore_unknown_options = command.ignore_unknown_options + + #: Instructs click to ignore options that a command does not + #: understand and will store it on the context for later + #: processing. This is primarily useful for situations where you + #: want to call into external programs. Generally this pattern is + #: strongly discouraged because it's not possibly to losslessly + #: forward all arguments. + #: + #: .. versionadded:: 4.0 + self.ignore_unknown_options: bool = ignore_unknown_options + + if help_option_names is None: + if parent is not None: + help_option_names = parent.help_option_names + else: + help_option_names = ["--help"] + + #: The names for the help options. + self.help_option_names: t.List[str] = help_option_names + + if token_normalize_func is None and parent is not None: + token_normalize_func = parent.token_normalize_func + + #: An optional normalization function for tokens. This is + #: options, choices, commands etc. + self.token_normalize_func: t.Optional[ + t.Callable[[str], str] + ] = token_normalize_func + + #: Indicates if resilient parsing is enabled. In that case Click + #: will do its best to not cause any failures and default values + #: will be ignored. Useful for completion. + self.resilient_parsing: bool = resilient_parsing + + # If there is no envvar prefix yet, but the parent has one and + # the command on this level has a name, we can expand the envvar + # prefix automatically. + if auto_envvar_prefix is None: + if ( + parent is not None + and parent.auto_envvar_prefix is not None + and self.info_name is not None + ): + auto_envvar_prefix = ( + f"{parent.auto_envvar_prefix}_{self.info_name.upper()}" + ) + else: + auto_envvar_prefix = auto_envvar_prefix.upper() + + if auto_envvar_prefix is not None: + auto_envvar_prefix = auto_envvar_prefix.replace("-", "_") + + self.auto_envvar_prefix: t.Optional[str] = auto_envvar_prefix + + if color is None and parent is not None: + color = parent.color + + #: Controls if styling output is wanted or not. + self.color: t.Optional[bool] = color + + if show_default is None and parent is not None: + show_default = parent.show_default + + #: Show option default values when formatting help text. + self.show_default: t.Optional[bool] = show_default + + self._close_callbacks: t.List[t.Callable[[], t.Any]] = [] + self._depth = 0 + self._parameter_source: t.Dict[str, ParameterSource] = {} + self._exit_stack = ExitStack() + + def to_info_dict(self) -> t.Dict[str, t.Any]: + """Gather information that could be useful for a tool generating + user-facing documentation. This traverses the entire CLI + structure. + + .. code-block:: python + + with Context(cli) as ctx: + info = ctx.to_info_dict() + + .. versionadded:: 8.0 + """ + return { + "command": self.command.to_info_dict(self), + "info_name": self.info_name, + "allow_extra_args": self.allow_extra_args, + "allow_interspersed_args": self.allow_interspersed_args, + "ignore_unknown_options": self.ignore_unknown_options, + "auto_envvar_prefix": self.auto_envvar_prefix, + } + + def __enter__(self) -> "Context": + self._depth += 1 + push_context(self) + return self + + def __exit__( + self, + exc_type: t.Optional[t.Type[BaseException]], + exc_value: t.Optional[BaseException], + tb: t.Optional[TracebackType], + ) -> None: + self._depth -= 1 + if self._depth == 0: + self.close() + pop_context() + + @contextmanager + def scope(self, cleanup: bool = True) -> t.Iterator["Context"]: + """This helper method can be used with the context object to promote + it to the current thread local (see :func:`get_current_context`). + The default behavior of this is to invoke the cleanup functions which + can be disabled by setting `cleanup` to `False`. The cleanup + functions are typically used for things such as closing file handles. + + If the cleanup is intended the context object can also be directly + used as a context manager. + + Example usage:: + + with ctx.scope(): + assert get_current_context() is ctx + + This is equivalent:: + + with ctx: + assert get_current_context() is ctx + + .. versionadded:: 5.0 + + :param cleanup: controls if the cleanup functions should be run or + not. The default is to run these functions. In + some situations the context only wants to be + temporarily pushed in which case this can be disabled. + Nested pushes automatically defer the cleanup. + """ + if not cleanup: + self._depth += 1 + try: + with self as rv: + yield rv + finally: + if not cleanup: + self._depth -= 1 + + @property + def meta(self) -> t.Dict[str, t.Any]: + """This is a dictionary which is shared with all the contexts + that are nested. It exists so that click utilities can store some + state here if they need to. It is however the responsibility of + that code to manage this dictionary well. + + The keys are supposed to be unique dotted strings. For instance + module paths are a good choice for it. What is stored in there is + irrelevant for the operation of click. However what is important is + that code that places data here adheres to the general semantics of + the system. + + Example usage:: + + LANG_KEY = f'{__name__}.lang' + + def set_language(value): + ctx = get_current_context() + ctx.meta[LANG_KEY] = value + + def get_language(): + return get_current_context().meta.get(LANG_KEY, 'en_US') + + .. versionadded:: 5.0 + """ + return self._meta + + def make_formatter(self) -> HelpFormatter: + """Creates the :class:`~click.HelpFormatter` for the help and + usage output. + + To quickly customize the formatter class used without overriding + this method, set the :attr:`formatter_class` attribute. + + .. versionchanged:: 8.0 + Added the :attr:`formatter_class` attribute. + """ + return self.formatter_class( + width=self.terminal_width, max_width=self.max_content_width + ) + + def with_resource(self, context_manager: t.ContextManager[V]) -> V: + """Register a resource as if it were used in a ``with`` + statement. The resource will be cleaned up when the context is + popped. + + Uses :meth:`contextlib.ExitStack.enter_context`. It calls the + resource's ``__enter__()`` method and returns the result. When + the context is popped, it closes the stack, which calls the + resource's ``__exit__()`` method. + + To register a cleanup function for something that isn't a + context manager, use :meth:`call_on_close`. Or use something + from :mod:`contextlib` to turn it into a context manager first. + + .. code-block:: python + + @click.group() + @click.option("--name") + @click.pass_context + def cli(ctx): + ctx.obj = ctx.with_resource(connect_db(name)) + + :param context_manager: The context manager to enter. + :return: Whatever ``context_manager.__enter__()`` returns. + + .. versionadded:: 8.0 + """ + return self._exit_stack.enter_context(context_manager) + + def call_on_close(self, f: t.Callable[..., t.Any]) -> t.Callable[..., t.Any]: + """Register a function to be called when the context tears down. + + This can be used to close resources opened during the script + execution. Resources that support Python's context manager + protocol which would be used in a ``with`` statement should be + registered with :meth:`with_resource` instead. + + :param f: The function to execute on teardown. + """ + return self._exit_stack.callback(f) + + def close(self) -> None: + """Invoke all close callbacks registered with + :meth:`call_on_close`, and exit all context managers entered + with :meth:`with_resource`. + """ + self._exit_stack.close() + # In case the context is reused, create a new exit stack. + self._exit_stack = ExitStack() + + @property + def command_path(self) -> str: + """The computed command path. This is used for the ``usage`` + information on the help page. It's automatically created by + combining the info names of the chain of contexts to the root. + """ + rv = "" + if self.info_name is not None: + rv = self.info_name + if self.parent is not None: + parent_command_path = [self.parent.command_path] + + if isinstance(self.parent.command, Command): + for param in self.parent.command.get_params(self): + parent_command_path.extend(param.get_usage_pieces(self)) + + rv = f"{' '.join(parent_command_path)} {rv}" + return rv.lstrip() + + def find_root(self) -> "Context": + """Finds the outermost context.""" + node = self + while node.parent is not None: + node = node.parent + return node + + def find_object(self, object_type: t.Type[V]) -> t.Optional[V]: + """Finds the closest object of a given type.""" + node: t.Optional["Context"] = self + + while node is not None: + if isinstance(node.obj, object_type): + return node.obj + + node = node.parent + + return None + + def ensure_object(self, object_type: t.Type[V]) -> V: + """Like :meth:`find_object` but sets the innermost object to a + new instance of `object_type` if it does not exist. + """ + rv = self.find_object(object_type) + if rv is None: + self.obj = rv = object_type() + return rv + + @t.overload + def lookup_default( + self, name: str, call: "te.Literal[True]" = True + ) -> t.Optional[t.Any]: + ... + + @t.overload + def lookup_default( + self, name: str, call: "te.Literal[False]" = ... + ) -> t.Optional[t.Union[t.Any, t.Callable[[], t.Any]]]: + ... + + def lookup_default(self, name: str, call: bool = True) -> t.Optional[t.Any]: + """Get the default for a parameter from :attr:`default_map`. + + :param name: Name of the parameter. + :param call: If the default is a callable, call it. Disable to + return the callable instead. + + .. versionchanged:: 8.0 + Added the ``call`` parameter. + """ + if self.default_map is not None: + value = self.default_map.get(name) + + if call and callable(value): + return value() + + return value + + return None + + def fail(self, message: str) -> "te.NoReturn": + """Aborts the execution of the program with a specific error + message. + + :param message: the error message to fail with. + """ + raise UsageError(message, self) + + def abort(self) -> "te.NoReturn": + """Aborts the script.""" + raise Abort() + + def exit(self, code: int = 0) -> "te.NoReturn": + """Exits the application with a given exit code.""" + raise Exit(code) + + def get_usage(self) -> str: + """Helper method to get formatted usage string for the current + context and command. + """ + return self.command.get_usage(self) + + def get_help(self) -> str: + """Helper method to get formatted help page for the current + context and command. + """ + return self.command.get_help(self) + + def _make_sub_context(self, command: "Command") -> "Context": + """Create a new context of the same type as this context, but + for a new command. + + :meta private: + """ + return type(self)(command, info_name=command.name, parent=self) + + @t.overload + def invoke( + __self, # noqa: B902 + __callback: "t.Callable[..., V]", + *args: t.Any, + **kwargs: t.Any, + ) -> V: + ... + + @t.overload + def invoke( + __self, # noqa: B902 + __callback: "Command", + *args: t.Any, + **kwargs: t.Any, + ) -> t.Any: + ... + + def invoke( + __self, # noqa: B902 + __callback: t.Union["Command", "t.Callable[..., V]"], + *args: t.Any, + **kwargs: t.Any, + ) -> t.Union[t.Any, V]: + """Invokes a command callback in exactly the way it expects. There + are two ways to invoke this method: + + 1. the first argument can be a callback and all other arguments and + keyword arguments are forwarded directly to the function. + 2. the first argument is a click command object. In that case all + arguments are forwarded as well but proper click parameters + (options and click arguments) must be keyword arguments and Click + will fill in defaults. + + Note that before Click 3.2 keyword arguments were not properly filled + in against the intention of this code and no context was created. For + more information about this change and why it was done in a bugfix + release see :ref:`upgrade-to-3.2`. + + .. versionchanged:: 8.0 + All ``kwargs`` are tracked in :attr:`params` so they will be + passed if :meth:`forward` is called at multiple levels. + """ + if isinstance(__callback, Command): + other_cmd = __callback + + if other_cmd.callback is None: + raise TypeError( + "The given command does not have a callback that can be invoked." + ) + else: + __callback = t.cast("t.Callable[..., V]", other_cmd.callback) + + ctx = __self._make_sub_context(other_cmd) + + for param in other_cmd.params: + if param.name not in kwargs and param.expose_value: + kwargs[param.name] = param.type_cast_value( # type: ignore + ctx, param.get_default(ctx) + ) + + # Track all kwargs as params, so that forward() will pass + # them on in subsequent calls. + ctx.params.update(kwargs) + else: + ctx = __self + + with augment_usage_errors(__self): + with ctx: + return __callback(*args, **kwargs) + + def forward( + __self, __cmd: "Command", *args: t.Any, **kwargs: t.Any # noqa: B902 + ) -> t.Any: + """Similar to :meth:`invoke` but fills in default keyword + arguments from the current context if the other command expects + it. This cannot invoke callbacks directly, only other commands. + + .. versionchanged:: 8.0 + All ``kwargs`` are tracked in :attr:`params` so they will be + passed if ``forward`` is called at multiple levels. + """ + # Can only forward to other commands, not direct callbacks. + if not isinstance(__cmd, Command): + raise TypeError("Callback is not a command.") + + for param in __self.params: + if param not in kwargs: + kwargs[param] = __self.params[param] + + return __self.invoke(__cmd, *args, **kwargs) + + def set_parameter_source(self, name: str, source: ParameterSource) -> None: + """Set the source of a parameter. This indicates the location + from which the value of the parameter was obtained. + + :param name: The name of the parameter. + :param source: A member of :class:`~click.core.ParameterSource`. + """ + self._parameter_source[name] = source + + def get_parameter_source(self, name: str) -> t.Optional[ParameterSource]: + """Get the source of a parameter. This indicates the location + from which the value of the parameter was obtained. + + This can be useful for determining when a user specified a value + on the command line that is the same as the default value. It + will be :attr:`~click.core.ParameterSource.DEFAULT` only if the + value was actually taken from the default. + + :param name: The name of the parameter. + :rtype: ParameterSource + + .. versionchanged:: 8.0 + Returns ``None`` if the parameter was not provided from any + source. + """ + return self._parameter_source.get(name) + + +class BaseCommand: + """The base command implements the minimal API contract of commands. + Most code will never use this as it does not implement a lot of useful + functionality but it can act as the direct subclass of alternative + parsing methods that do not depend on the Click parser. + + For instance, this can be used to bridge Click and other systems like + argparse or docopt. + + Because base commands do not implement a lot of the API that other + parts of Click take for granted, they are not supported for all + operations. For instance, they cannot be used with the decorators + usually and they have no built-in callback system. + + .. versionchanged:: 2.0 + Added the `context_settings` parameter. + + :param name: the name of the command to use unless a group overrides it. + :param context_settings: an optional dictionary with defaults that are + passed to the context object. + """ + + #: The context class to create with :meth:`make_context`. + #: + #: .. versionadded:: 8.0 + context_class: t.Type[Context] = Context + #: the default for the :attr:`Context.allow_extra_args` flag. + allow_extra_args = False + #: the default for the :attr:`Context.allow_interspersed_args` flag. + allow_interspersed_args = True + #: the default for the :attr:`Context.ignore_unknown_options` flag. + ignore_unknown_options = False + + def __init__( + self, + name: t.Optional[str], + context_settings: t.Optional[t.MutableMapping[str, t.Any]] = None, + ) -> None: + #: the name the command thinks it has. Upon registering a command + #: on a :class:`Group` the group will default the command name + #: with this information. You should instead use the + #: :class:`Context`\'s :attr:`~Context.info_name` attribute. + self.name = name + + if context_settings is None: + context_settings = {} + + #: an optional dictionary with defaults passed to the context. + self.context_settings: t.MutableMapping[str, t.Any] = context_settings + + def to_info_dict(self, ctx: Context) -> t.Dict[str, t.Any]: + """Gather information that could be useful for a tool generating + user-facing documentation. This traverses the entire structure + below this command. + + Use :meth:`click.Context.to_info_dict` to traverse the entire + CLI structure. + + :param ctx: A :class:`Context` representing this command. + + .. versionadded:: 8.0 + """ + return {"name": self.name} + + def __repr__(self) -> str: + return f"<{self.__class__.__name__} {self.name}>" + + def get_usage(self, ctx: Context) -> str: + raise NotImplementedError("Base commands cannot get usage") + + def get_help(self, ctx: Context) -> str: + raise NotImplementedError("Base commands cannot get help") + + def make_context( + self, + info_name: t.Optional[str], + args: t.List[str], + parent: t.Optional[Context] = None, + **extra: t.Any, + ) -> Context: + """This function when given an info name and arguments will kick + off the parsing and create a new :class:`Context`. It does not + invoke the actual command callback though. + + To quickly customize the context class used without overriding + this method, set the :attr:`context_class` attribute. + + :param info_name: the info name for this invocation. Generally this + is the most descriptive name for the script or + command. For the toplevel script it's usually + the name of the script, for commands below it's + the name of the command. + :param args: the arguments to parse as list of strings. + :param parent: the parent context if available. + :param extra: extra keyword arguments forwarded to the context + constructor. + + .. versionchanged:: 8.0 + Added the :attr:`context_class` attribute. + """ + for key, value in self.context_settings.items(): + if key not in extra: + extra[key] = value + + ctx = self.context_class( + self, info_name=info_name, parent=parent, **extra # type: ignore + ) + + with ctx.scope(cleanup=False): + self.parse_args(ctx, args) + return ctx + + def parse_args(self, ctx: Context, args: t.List[str]) -> t.List[str]: + """Given a context and a list of arguments this creates the parser + and parses the arguments, then modifies the context as necessary. + This is automatically invoked by :meth:`make_context`. + """ + raise NotImplementedError("Base commands do not know how to parse arguments.") + + def invoke(self, ctx: Context) -> t.Any: + """Given a context, this invokes the command. The default + implementation is raising a not implemented error. + """ + raise NotImplementedError("Base commands are not invocable by default") + + def shell_complete(self, ctx: Context, incomplete: str) -> t.List["CompletionItem"]: + """Return a list of completions for the incomplete value. Looks + at the names of chained multi-commands. + + Any command could be part of a chained multi-command, so sibling + commands are valid at any point during command completion. Other + command classes will return more completions. + + :param ctx: Invocation context for this command. + :param incomplete: Value being completed. May be empty. + + .. versionadded:: 8.0 + """ + from click.shell_completion import CompletionItem + + results: t.List["CompletionItem"] = [] + + while ctx.parent is not None: + ctx = ctx.parent + + if isinstance(ctx.command, MultiCommand) and ctx.command.chain: + results.extend( + CompletionItem(name, help=command.get_short_help_str()) + for name, command in _complete_visible_commands(ctx, incomplete) + if name not in ctx.protected_args + ) + + return results + + @t.overload + def main( + self, + args: t.Optional[t.Sequence[str]] = None, + prog_name: t.Optional[str] = None, + complete_var: t.Optional[str] = None, + standalone_mode: "te.Literal[True]" = True, + **extra: t.Any, + ) -> "te.NoReturn": + ... + + @t.overload + def main( + self, + args: t.Optional[t.Sequence[str]] = None, + prog_name: t.Optional[str] = None, + complete_var: t.Optional[str] = None, + standalone_mode: bool = ..., + **extra: t.Any, + ) -> t.Any: + ... + + def main( + self, + args: t.Optional[t.Sequence[str]] = None, + prog_name: t.Optional[str] = None, + complete_var: t.Optional[str] = None, + standalone_mode: bool = True, + windows_expand_args: bool = True, + **extra: t.Any, + ) -> t.Any: + """This is the way to invoke a script with all the bells and + whistles as a command line application. This will always terminate + the application after a call. If this is not wanted, ``SystemExit`` + needs to be caught. + + This method is also available by directly calling the instance of + a :class:`Command`. + + :param args: the arguments that should be used for parsing. If not + provided, ``sys.argv[1:]`` is used. + :param prog_name: the program name that should be used. By default + the program name is constructed by taking the file + name from ``sys.argv[0]``. + :param complete_var: the environment variable that controls the + bash completion support. The default is + ``"__COMPLETE"`` with prog_name in + uppercase. + :param standalone_mode: the default behavior is to invoke the script + in standalone mode. Click will then + handle exceptions and convert them into + error messages and the function will never + return but shut down the interpreter. If + this is set to `False` they will be + propagated to the caller and the return + value of this function is the return value + of :meth:`invoke`. + :param windows_expand_args: Expand glob patterns, user dir, and + env vars in command line args on Windows. + :param extra: extra keyword arguments are forwarded to the context + constructor. See :class:`Context` for more information. + + .. versionchanged:: 8.0.1 + Added the ``windows_expand_args`` parameter to allow + disabling command line arg expansion on Windows. + + .. versionchanged:: 8.0 + When taking arguments from ``sys.argv`` on Windows, glob + patterns, user dir, and env vars are expanded. + + .. versionchanged:: 3.0 + Added the ``standalone_mode`` parameter. + """ + if args is None: + args = sys.argv[1:] + + if os.name == "nt" and windows_expand_args: + args = _expand_args(args) + else: + args = list(args) + + if prog_name is None: + prog_name = _detect_program_name() + + # Process shell completion requests and exit early. + self._main_shell_completion(extra, prog_name, complete_var) + + try: + try: + with self.make_context(prog_name, args, **extra) as ctx: + rv = self.invoke(ctx) + if not standalone_mode: + return rv + # it's not safe to `ctx.exit(rv)` here! + # note that `rv` may actually contain data like "1" which + # has obvious effects + # more subtle case: `rv=[None, None]` can come out of + # chained commands which all returned `None` -- so it's not + # even always obvious that `rv` indicates success/failure + # by its truthiness/falsiness + ctx.exit() + except (EOFError, KeyboardInterrupt) as e: + echo(file=sys.stderr) + raise Abort() from e + except ClickException as e: + if not standalone_mode: + raise + e.show() + sys.exit(e.exit_code) + except OSError as e: + if e.errno == errno.EPIPE: + sys.stdout = t.cast(t.TextIO, PacifyFlushWrapper(sys.stdout)) + sys.stderr = t.cast(t.TextIO, PacifyFlushWrapper(sys.stderr)) + sys.exit(1) + else: + raise + except Exit as e: + if standalone_mode: + sys.exit(e.exit_code) + else: + # in non-standalone mode, return the exit code + # note that this is only reached if `self.invoke` above raises + # an Exit explicitly -- thus bypassing the check there which + # would return its result + # the results of non-standalone execution may therefore be + # somewhat ambiguous: if there are codepaths which lead to + # `ctx.exit(1)` and to `return 1`, the caller won't be able to + # tell the difference between the two + return e.exit_code + except Abort: + if not standalone_mode: + raise + echo(_("Aborted!"), file=sys.stderr) + sys.exit(1) + + def _main_shell_completion( + self, + ctx_args: t.MutableMapping[str, t.Any], + prog_name: str, + complete_var: t.Optional[str] = None, + ) -> None: + """Check if the shell is asking for tab completion, process + that, then exit early. Called from :meth:`main` before the + program is invoked. + + :param prog_name: Name of the executable in the shell. + :param complete_var: Name of the environment variable that holds + the completion instruction. Defaults to + ``_{PROG_NAME}_COMPLETE``. + + .. versionchanged:: 8.2.0 + Dots (``.``) in ``prog_name`` are replaced with underscores (``_``). + """ + if complete_var is None: + complete_name = prog_name.replace("-", "_").replace(".", "_") + complete_var = f"_{complete_name}_COMPLETE".upper() + + instruction = os.environ.get(complete_var) + + if not instruction: + return + + from .shell_completion import shell_complete + + rv = shell_complete(self, ctx_args, prog_name, complete_var, instruction) + sys.exit(rv) + + def __call__(self, *args: t.Any, **kwargs: t.Any) -> t.Any: + """Alias for :meth:`main`.""" + return self.main(*args, **kwargs) + + +class Command(BaseCommand): + """Commands are the basic building block of command line interfaces in + Click. A basic command handles command line parsing and might dispatch + more parsing to commands nested below it. + + :param name: the name of the command to use unless a group overrides it. + :param context_settings: an optional dictionary with defaults that are + passed to the context object. + :param callback: the callback to invoke. This is optional. + :param params: the parameters to register with this command. This can + be either :class:`Option` or :class:`Argument` objects. + :param help: the help string to use for this command. + :param epilog: like the help string but it's printed at the end of the + help page after everything else. + :param short_help: the short help to use for this command. This is + shown on the command listing of the parent command. + :param add_help_option: by default each command registers a ``--help`` + option. This can be disabled by this parameter. + :param no_args_is_help: this controls what happens if no arguments are + provided. This option is disabled by default. + If enabled this will add ``--help`` as argument + if no arguments are passed + :param hidden: hide this command from help outputs. + + :param deprecated: issues a message indicating that + the command is deprecated. + + .. versionchanged:: 8.1 + ``help``, ``epilog``, and ``short_help`` are stored unprocessed, + all formatting is done when outputting help text, not at init, + and is done even if not using the ``@command`` decorator. + + .. versionchanged:: 8.0 + Added a ``repr`` showing the command name. + + .. versionchanged:: 7.1 + Added the ``no_args_is_help`` parameter. + + .. versionchanged:: 2.0 + Added the ``context_settings`` parameter. + """ + + def __init__( + self, + name: t.Optional[str], + context_settings: t.Optional[t.MutableMapping[str, t.Any]] = None, + callback: t.Optional[t.Callable[..., t.Any]] = None, + params: t.Optional[t.List["Parameter"]] = None, + help: t.Optional[str] = None, + epilog: t.Optional[str] = None, + short_help: t.Optional[str] = None, + options_metavar: t.Optional[str] = "[OPTIONS]", + add_help_option: bool = True, + no_args_is_help: bool = False, + hidden: bool = False, + deprecated: bool = False, + ) -> None: + super().__init__(name, context_settings) + #: the callback to execute when the command fires. This might be + #: `None` in which case nothing happens. + self.callback = callback + #: the list of parameters for this command in the order they + #: should show up in the help page and execute. Eager parameters + #: will automatically be handled before non eager ones. + self.params: t.List["Parameter"] = params or [] + self.help = help + self.epilog = epilog + self.options_metavar = options_metavar + self.short_help = short_help + self.add_help_option = add_help_option + self.no_args_is_help = no_args_is_help + self.hidden = hidden + self.deprecated = deprecated + + def to_info_dict(self, ctx: Context) -> t.Dict[str, t.Any]: + info_dict = super().to_info_dict(ctx) + info_dict.update( + params=[param.to_info_dict() for param in self.get_params(ctx)], + help=self.help, + epilog=self.epilog, + short_help=self.short_help, + hidden=self.hidden, + deprecated=self.deprecated, + ) + return info_dict + + def get_usage(self, ctx: Context) -> str: + """Formats the usage line into a string and returns it. + + Calls :meth:`format_usage` internally. + """ + formatter = ctx.make_formatter() + self.format_usage(ctx, formatter) + return formatter.getvalue().rstrip("\n") + + def get_params(self, ctx: Context) -> t.List["Parameter"]: + rv = self.params + help_option = self.get_help_option(ctx) + + if help_option is not None: + rv = [*rv, help_option] + + return rv + + def format_usage(self, ctx: Context, formatter: HelpFormatter) -> None: + """Writes the usage line into the formatter. + + This is a low-level method called by :meth:`get_usage`. + """ + pieces = self.collect_usage_pieces(ctx) + formatter.write_usage(ctx.command_path, " ".join(pieces)) + + def collect_usage_pieces(self, ctx: Context) -> t.List[str]: + """Returns all the pieces that go into the usage line and returns + it as a list of strings. + """ + rv = [self.options_metavar] if self.options_metavar else [] + + for param in self.get_params(ctx): + rv.extend(param.get_usage_pieces(ctx)) + + return rv + + def get_help_option_names(self, ctx: Context) -> t.List[str]: + """Returns the names for the help option.""" + all_names = set(ctx.help_option_names) + for param in self.params: + all_names.difference_update(param.opts) + all_names.difference_update(param.secondary_opts) + return list(all_names) + + def get_help_option(self, ctx: Context) -> t.Optional["Option"]: + """Returns the help option object.""" + help_options = self.get_help_option_names(ctx) + + if not help_options or not self.add_help_option: + return None + + def show_help(ctx: Context, param: "Parameter", value: str) -> None: + if value and not ctx.resilient_parsing: + echo(ctx.get_help(), color=ctx.color) + ctx.exit() + + return Option( + help_options, + is_flag=True, + is_eager=True, + expose_value=False, + callback=show_help, + help=_("Show this message and exit."), + ) + + def make_parser(self, ctx: Context) -> OptionParser: + """Creates the underlying option parser for this command.""" + parser = OptionParser(ctx) + for param in self.get_params(ctx): + param.add_to_parser(parser, ctx) + return parser + + def get_help(self, ctx: Context) -> str: + """Formats the help into a string and returns it. + + Calls :meth:`format_help` internally. + """ + formatter = ctx.make_formatter() + self.format_help(ctx, formatter) + return formatter.getvalue().rstrip("\n") + + def get_short_help_str(self, limit: int = 45) -> str: + """Gets short help for the command or makes it by shortening the + long help string. + """ + if self.short_help: + text = inspect.cleandoc(self.short_help) + elif self.help: + text = make_default_short_help(self.help, limit) + else: + text = "" + + if self.deprecated: + text = _("(Deprecated) {text}").format(text=text) + + return text.strip() + + def format_help(self, ctx: Context, formatter: HelpFormatter) -> None: + """Writes the help into the formatter if it exists. + + This is a low-level method called by :meth:`get_help`. + + This calls the following methods: + + - :meth:`format_usage` + - :meth:`format_help_text` + - :meth:`format_options` + - :meth:`format_epilog` + """ + self.format_usage(ctx, formatter) + self.format_help_text(ctx, formatter) + self.format_options(ctx, formatter) + self.format_epilog(ctx, formatter) + + def format_help_text(self, ctx: Context, formatter: HelpFormatter) -> None: + """Writes the help text to the formatter if it exists.""" + if self.help is not None: + # truncate the help text to the first form feed + text = inspect.cleandoc(self.help).partition("\f")[0] + else: + text = "" + + if self.deprecated: + text = _("(Deprecated) {text}").format(text=text) + + if text: + formatter.write_paragraph() + + with formatter.indentation(): + formatter.write_text(text) + + def format_options(self, ctx: Context, formatter: HelpFormatter) -> None: + """Writes all the options into the formatter if they exist.""" + opts = [] + for param in self.get_params(ctx): + rv = param.get_help_record(ctx) + if rv is not None: + opts.append(rv) + + if opts: + with formatter.section(_("Options")): + formatter.write_dl(opts) + + def format_epilog(self, ctx: Context, formatter: HelpFormatter) -> None: + """Writes the epilog into the formatter if it exists.""" + if self.epilog: + epilog = inspect.cleandoc(self.epilog) + formatter.write_paragraph() + + with formatter.indentation(): + formatter.write_text(epilog) + + def parse_args(self, ctx: Context, args: t.List[str]) -> t.List[str]: + if not args and self.no_args_is_help and not ctx.resilient_parsing: + echo(ctx.get_help(), color=ctx.color) + ctx.exit() + + parser = self.make_parser(ctx) + opts, args, param_order = parser.parse_args(args=args) + + for param in iter_params_for_processing(param_order, self.get_params(ctx)): + value, args = param.handle_parse_result(ctx, opts, args) + + if args and not ctx.allow_extra_args and not ctx.resilient_parsing: + ctx.fail( + ngettext( + "Got unexpected extra argument ({args})", + "Got unexpected extra arguments ({args})", + len(args), + ).format(args=" ".join(map(str, args))) + ) + + ctx.args = args + ctx._opt_prefixes.update(parser._opt_prefixes) + return args + + def invoke(self, ctx: Context) -> t.Any: + """Given a context, this invokes the attached callback (if it exists) + in the right way. + """ + if self.deprecated: + message = _( + "DeprecationWarning: The command {name!r} is deprecated." + ).format(name=self.name) + echo(style(message, fg="red"), err=True) + + if self.callback is not None: + return ctx.invoke(self.callback, **ctx.params) + + def shell_complete(self, ctx: Context, incomplete: str) -> t.List["CompletionItem"]: + """Return a list of completions for the incomplete value. Looks + at the names of options and chained multi-commands. + + :param ctx: Invocation context for this command. + :param incomplete: Value being completed. May be empty. + + .. versionadded:: 8.0 + """ + from click.shell_completion import CompletionItem + + results: t.List["CompletionItem"] = [] + + if incomplete and not incomplete[0].isalnum(): + for param in self.get_params(ctx): + if ( + not isinstance(param, Option) + or param.hidden + or ( + not param.multiple + and ctx.get_parameter_source(param.name) # type: ignore + is ParameterSource.COMMANDLINE + ) + ): + continue + + results.extend( + CompletionItem(name, help=param.help) + for name in [*param.opts, *param.secondary_opts] + if name.startswith(incomplete) + ) + + results.extend(super().shell_complete(ctx, incomplete)) + return results + + +class MultiCommand(Command): + """A multi command is the basic implementation of a command that + dispatches to subcommands. The most common version is the + :class:`Group`. + + :param invoke_without_command: this controls how the multi command itself + is invoked. By default it's only invoked + if a subcommand is provided. + :param no_args_is_help: this controls what happens if no arguments are + provided. This option is enabled by default if + `invoke_without_command` is disabled or disabled + if it's enabled. If enabled this will add + ``--help`` as argument if no arguments are + passed. + :param subcommand_metavar: the string that is used in the documentation + to indicate the subcommand place. + :param chain: if this is set to `True` chaining of multiple subcommands + is enabled. This restricts the form of commands in that + they cannot have optional arguments but it allows + multiple commands to be chained together. + :param result_callback: The result callback to attach to this multi + command. This can be set or changed later with the + :meth:`result_callback` decorator. + :param attrs: Other command arguments described in :class:`Command`. + """ + + allow_extra_args = True + allow_interspersed_args = False + + def __init__( + self, + name: t.Optional[str] = None, + invoke_without_command: bool = False, + no_args_is_help: t.Optional[bool] = None, + subcommand_metavar: t.Optional[str] = None, + chain: bool = False, + result_callback: t.Optional[t.Callable[..., t.Any]] = None, + **attrs: t.Any, + ) -> None: + super().__init__(name, **attrs) + + if no_args_is_help is None: + no_args_is_help = not invoke_without_command + + self.no_args_is_help = no_args_is_help + self.invoke_without_command = invoke_without_command + + if subcommand_metavar is None: + if chain: + subcommand_metavar = "COMMAND1 [ARGS]... [COMMAND2 [ARGS]...]..." + else: + subcommand_metavar = "COMMAND [ARGS]..." + + self.subcommand_metavar = subcommand_metavar + self.chain = chain + # The result callback that is stored. This can be set or + # overridden with the :func:`result_callback` decorator. + self._result_callback = result_callback + + if self.chain: + for param in self.params: + if isinstance(param, Argument) and not param.required: + raise RuntimeError( + "Multi commands in chain mode cannot have" + " optional arguments." + ) + + def to_info_dict(self, ctx: Context) -> t.Dict[str, t.Any]: + info_dict = super().to_info_dict(ctx) + commands = {} + + for name in self.list_commands(ctx): + command = self.get_command(ctx, name) + + if command is None: + continue + + sub_ctx = ctx._make_sub_context(command) + + with sub_ctx.scope(cleanup=False): + commands[name] = command.to_info_dict(sub_ctx) + + info_dict.update(commands=commands, chain=self.chain) + return info_dict + + def collect_usage_pieces(self, ctx: Context) -> t.List[str]: + rv = super().collect_usage_pieces(ctx) + rv.append(self.subcommand_metavar) + return rv + + def format_options(self, ctx: Context, formatter: HelpFormatter) -> None: + super().format_options(ctx, formatter) + self.format_commands(ctx, formatter) + + def result_callback(self, replace: bool = False) -> t.Callable[[F], F]: + """Adds a result callback to the command. By default if a + result callback is already registered this will chain them but + this can be disabled with the `replace` parameter. The result + callback is invoked with the return value of the subcommand + (or the list of return values from all subcommands if chaining + is enabled) as well as the parameters as they would be passed + to the main callback. + + Example:: + + @click.group() + @click.option('-i', '--input', default=23) + def cli(input): + return 42 + + @cli.result_callback() + def process_result(result, input): + return result + input + + :param replace: if set to `True` an already existing result + callback will be removed. + + .. versionchanged:: 8.0 + Renamed from ``resultcallback``. + + .. versionadded:: 3.0 + """ + + def decorator(f: F) -> F: + old_callback = self._result_callback + + if old_callback is None or replace: + self._result_callback = f + return f + + def function(__value, *args, **kwargs): # type: ignore + inner = old_callback(__value, *args, **kwargs) + return f(inner, *args, **kwargs) + + self._result_callback = rv = update_wrapper(t.cast(F, function), f) + return rv + + return decorator + + def format_commands(self, ctx: Context, formatter: HelpFormatter) -> None: + """Extra format methods for multi methods that adds all the commands + after the options. + """ + commands = [] + for subcommand in self.list_commands(ctx): + cmd = self.get_command(ctx, subcommand) + # What is this, the tool lied about a command. Ignore it + if cmd is None: + continue + if cmd.hidden: + continue + + commands.append((subcommand, cmd)) + + # allow for 3 times the default spacing + if len(commands): + limit = formatter.width - 6 - max(len(cmd[0]) for cmd in commands) + + rows = [] + for subcommand, cmd in commands: + help = cmd.get_short_help_str(limit) + rows.append((subcommand, help)) + + if rows: + with formatter.section(_("Commands")): + formatter.write_dl(rows) + + def parse_args(self, ctx: Context, args: t.List[str]) -> t.List[str]: + if not args and self.no_args_is_help and not ctx.resilient_parsing: + echo(ctx.get_help(), color=ctx.color) + ctx.exit() + + rest = super().parse_args(ctx, args) + + if self.chain: + ctx.protected_args = rest + ctx.args = [] + elif rest: + ctx.protected_args, ctx.args = rest[:1], rest[1:] + + return ctx.args + + def invoke(self, ctx: Context) -> t.Any: + def _process_result(value: t.Any) -> t.Any: + if self._result_callback is not None: + value = ctx.invoke(self._result_callback, value, **ctx.params) + return value + + if not ctx.protected_args: + if self.invoke_without_command: + # No subcommand was invoked, so the result callback is + # invoked with the group return value for regular + # groups, or an empty list for chained groups. + with ctx: + rv = super().invoke(ctx) + return _process_result([] if self.chain else rv) + ctx.fail(_("Missing command.")) + + # Fetch args back out + args = [*ctx.protected_args, *ctx.args] + ctx.args = [] + ctx.protected_args = [] + + # If we're not in chain mode, we only allow the invocation of a + # single command but we also inform the current context about the + # name of the command to invoke. + if not self.chain: + # Make sure the context is entered so we do not clean up + # resources until the result processor has worked. + with ctx: + cmd_name, cmd, args = self.resolve_command(ctx, args) + assert cmd is not None + ctx.invoked_subcommand = cmd_name + super().invoke(ctx) + sub_ctx = cmd.make_context(cmd_name, args, parent=ctx) + with sub_ctx: + return _process_result(sub_ctx.command.invoke(sub_ctx)) + + # In chain mode we create the contexts step by step, but after the + # base command has been invoked. Because at that point we do not + # know the subcommands yet, the invoked subcommand attribute is + # set to ``*`` to inform the command that subcommands are executed + # but nothing else. + with ctx: + ctx.invoked_subcommand = "*" if args else None + super().invoke(ctx) + + # Otherwise we make every single context and invoke them in a + # chain. In that case the return value to the result processor + # is the list of all invoked subcommand's results. + contexts = [] + while args: + cmd_name, cmd, args = self.resolve_command(ctx, args) + assert cmd is not None + sub_ctx = cmd.make_context( + cmd_name, + args, + parent=ctx, + allow_extra_args=True, + allow_interspersed_args=False, + ) + contexts.append(sub_ctx) + args, sub_ctx.args = sub_ctx.args, [] + + rv = [] + for sub_ctx in contexts: + with sub_ctx: + rv.append(sub_ctx.command.invoke(sub_ctx)) + return _process_result(rv) + + def resolve_command( + self, ctx: Context, args: t.List[str] + ) -> t.Tuple[t.Optional[str], t.Optional[Command], t.List[str]]: + cmd_name = make_str(args[0]) + original_cmd_name = cmd_name + + # Get the command + cmd = self.get_command(ctx, cmd_name) + + # If we can't find the command but there is a normalization + # function available, we try with that one. + if cmd is None and ctx.token_normalize_func is not None: + cmd_name = ctx.token_normalize_func(cmd_name) + cmd = self.get_command(ctx, cmd_name) + + # If we don't find the command we want to show an error message + # to the user that it was not provided. However, there is + # something else we should do: if the first argument looks like + # an option we want to kick off parsing again for arguments to + # resolve things like --help which now should go to the main + # place. + if cmd is None and not ctx.resilient_parsing: + if split_opt(cmd_name)[0]: + self.parse_args(ctx, ctx.args) + ctx.fail(_("No such command {name!r}.").format(name=original_cmd_name)) + return cmd_name if cmd else None, cmd, args[1:] + + def get_command(self, ctx: Context, cmd_name: str) -> t.Optional[Command]: + """Given a context and a command name, this returns a + :class:`Command` object if it exists or returns `None`. + """ + raise NotImplementedError + + def list_commands(self, ctx: Context) -> t.List[str]: + """Returns a list of subcommand names in the order they should + appear. + """ + return [] + + def shell_complete(self, ctx: Context, incomplete: str) -> t.List["CompletionItem"]: + """Return a list of completions for the incomplete value. Looks + at the names of options, subcommands, and chained + multi-commands. + + :param ctx: Invocation context for this command. + :param incomplete: Value being completed. May be empty. + + .. versionadded:: 8.0 + """ + from click.shell_completion import CompletionItem + + results = [ + CompletionItem(name, help=command.get_short_help_str()) + for name, command in _complete_visible_commands(ctx, incomplete) + ] + results.extend(super().shell_complete(ctx, incomplete)) + return results + + +class Group(MultiCommand): + """A group allows a command to have subcommands attached. This is + the most common way to implement nesting in Click. + + :param name: The name of the group command. + :param commands: A dict mapping names to :class:`Command` objects. + Can also be a list of :class:`Command`, which will use + :attr:`Command.name` to create the dict. + :param attrs: Other command arguments described in + :class:`MultiCommand`, :class:`Command`, and + :class:`BaseCommand`. + + .. versionchanged:: 8.0 + The ``commands`` argument can be a list of command objects. + """ + + #: If set, this is used by the group's :meth:`command` decorator + #: as the default :class:`Command` class. This is useful to make all + #: subcommands use a custom command class. + #: + #: .. versionadded:: 8.0 + command_class: t.Optional[t.Type[Command]] = None + + #: If set, this is used by the group's :meth:`group` decorator + #: as the default :class:`Group` class. This is useful to make all + #: subgroups use a custom group class. + #: + #: If set to the special value :class:`type` (literally + #: ``group_class = type``), this group's class will be used as the + #: default class. This makes a custom group class continue to make + #: custom groups. + #: + #: .. versionadded:: 8.0 + group_class: t.Optional[t.Union[t.Type["Group"], t.Type[type]]] = None + # Literal[type] isn't valid, so use Type[type] + + def __init__( + self, + name: t.Optional[str] = None, + commands: t.Optional[ + t.Union[t.MutableMapping[str, Command], t.Sequence[Command]] + ] = None, + **attrs: t.Any, + ) -> None: + super().__init__(name, **attrs) + + if commands is None: + commands = {} + elif isinstance(commands, abc.Sequence): + commands = {c.name: c for c in commands if c.name is not None} + + #: The registered subcommands by their exported names. + self.commands: t.MutableMapping[str, Command] = commands + + def add_command(self, cmd: Command, name: t.Optional[str] = None) -> None: + """Registers another :class:`Command` with this group. If the name + is not provided, the name of the command is used. + """ + name = name or cmd.name + if name is None: + raise TypeError("Command has no name.") + _check_multicommand(self, name, cmd, register=True) + self.commands[name] = cmd + + @t.overload + def command(self, __func: t.Callable[..., t.Any]) -> Command: + ... + + @t.overload + def command( + self, *args: t.Any, **kwargs: t.Any + ) -> t.Callable[[t.Callable[..., t.Any]], Command]: + ... + + def command( + self, *args: t.Any, **kwargs: t.Any + ) -> t.Union[t.Callable[[t.Callable[..., t.Any]], Command], Command]: + """A shortcut decorator for declaring and attaching a command to + the group. This takes the same arguments as :func:`command` and + immediately registers the created command with this group by + calling :meth:`add_command`. + + To customize the command class used, set the + :attr:`command_class` attribute. + + .. versionchanged:: 8.1 + This decorator can be applied without parentheses. + + .. versionchanged:: 8.0 + Added the :attr:`command_class` attribute. + """ + from .decorators import command + + func: t.Optional[t.Callable[..., t.Any]] = None + + if args and callable(args[0]): + assert ( + len(args) == 1 and not kwargs + ), "Use 'command(**kwargs)(callable)' to provide arguments." + (func,) = args + args = () + + if self.command_class and kwargs.get("cls") is None: + kwargs["cls"] = self.command_class + + def decorator(f: t.Callable[..., t.Any]) -> Command: + cmd: Command = command(*args, **kwargs)(f) + self.add_command(cmd) + return cmd + + if func is not None: + return decorator(func) + + return decorator + + @t.overload + def group(self, __func: t.Callable[..., t.Any]) -> "Group": + ... + + @t.overload + def group( + self, *args: t.Any, **kwargs: t.Any + ) -> t.Callable[[t.Callable[..., t.Any]], "Group"]: + ... + + def group( + self, *args: t.Any, **kwargs: t.Any + ) -> t.Union[t.Callable[[t.Callable[..., t.Any]], "Group"], "Group"]: + """A shortcut decorator for declaring and attaching a group to + the group. This takes the same arguments as :func:`group` and + immediately registers the created group with this group by + calling :meth:`add_command`. + + To customize the group class used, set the :attr:`group_class` + attribute. + + .. versionchanged:: 8.1 + This decorator can be applied without parentheses. + + .. versionchanged:: 8.0 + Added the :attr:`group_class` attribute. + """ + from .decorators import group + + func: t.Optional[t.Callable[..., t.Any]] = None + + if args and callable(args[0]): + assert ( + len(args) == 1 and not kwargs + ), "Use 'group(**kwargs)(callable)' to provide arguments." + (func,) = args + args = () + + if self.group_class is not None and kwargs.get("cls") is None: + if self.group_class is type: + kwargs["cls"] = type(self) + else: + kwargs["cls"] = self.group_class + + def decorator(f: t.Callable[..., t.Any]) -> "Group": + cmd: Group = group(*args, **kwargs)(f) + self.add_command(cmd) + return cmd + + if func is not None: + return decorator(func) + + return decorator + + def get_command(self, ctx: Context, cmd_name: str) -> t.Optional[Command]: + return self.commands.get(cmd_name) + + def list_commands(self, ctx: Context) -> t.List[str]: + return sorted(self.commands) + + +class CommandCollection(MultiCommand): + """A command collection is a multi command that merges multiple multi + commands together into one. This is a straightforward implementation + that accepts a list of different multi commands as sources and + provides all the commands for each of them. + + See :class:`MultiCommand` and :class:`Command` for the description of + ``name`` and ``attrs``. + """ + + def __init__( + self, + name: t.Optional[str] = None, + sources: t.Optional[t.List[MultiCommand]] = None, + **attrs: t.Any, + ) -> None: + super().__init__(name, **attrs) + #: The list of registered multi commands. + self.sources: t.List[MultiCommand] = sources or [] + + def add_source(self, multi_cmd: MultiCommand) -> None: + """Adds a new multi command to the chain dispatcher.""" + self.sources.append(multi_cmd) + + def get_command(self, ctx: Context, cmd_name: str) -> t.Optional[Command]: + for source in self.sources: + rv = source.get_command(ctx, cmd_name) + + if rv is not None: + if self.chain: + _check_multicommand(self, cmd_name, rv) + + return rv + + return None + + def list_commands(self, ctx: Context) -> t.List[str]: + rv: t.Set[str] = set() + + for source in self.sources: + rv.update(source.list_commands(ctx)) + + return sorted(rv) + + +def _check_iter(value: t.Any) -> t.Iterator[t.Any]: + """Check if the value is iterable but not a string. Raises a type + error, or return an iterator over the value. + """ + if isinstance(value, str): + raise TypeError + + return iter(value) + + +class Parameter: + r"""A parameter to a command comes in two versions: they are either + :class:`Option`\s or :class:`Argument`\s. Other subclasses are currently + not supported by design as some of the internals for parsing are + intentionally not finalized. + + Some settings are supported by both options and arguments. + + :param param_decls: the parameter declarations for this option or + argument. This is a list of flags or argument + names. + :param type: the type that should be used. Either a :class:`ParamType` + or a Python type. The latter is converted into the former + automatically if supported. + :param required: controls if this is optional or not. + :param default: the default value if omitted. This can also be a callable, + in which case it's invoked when the default is needed + without any arguments. + :param callback: A function to further process or validate the value + after type conversion. It is called as ``f(ctx, param, value)`` + and must return the value. It is called for all sources, + including prompts. + :param nargs: the number of arguments to match. If not ``1`` the return + value is a tuple instead of single value. The default for + nargs is ``1`` (except if the type is a tuple, then it's + the arity of the tuple). If ``nargs=-1``, all remaining + parameters are collected. + :param metavar: how the value is represented in the help page. + :param expose_value: if this is `True` then the value is passed onwards + to the command callback and stored on the context, + otherwise it's skipped. + :param is_eager: eager values are processed before non eager ones. This + should not be set for arguments or it will inverse the + order of processing. + :param envvar: a string or list of strings that are environment variables + that should be checked. + :param shell_complete: A function that returns custom shell + completions. Used instead of the param's type completion if + given. Takes ``ctx, param, incomplete`` and must return a list + of :class:`~click.shell_completion.CompletionItem` or a list of + strings. + + .. versionchanged:: 8.0 + ``process_value`` validates required parameters and bounded + ``nargs``, and invokes the parameter callback before returning + the value. This allows the callback to validate prompts. + ``full_process_value`` is removed. + + .. versionchanged:: 8.0 + ``autocompletion`` is renamed to ``shell_complete`` and has new + semantics described above. The old name is deprecated and will + be removed in 8.1, until then it will be wrapped to match the + new requirements. + + .. versionchanged:: 8.0 + For ``multiple=True, nargs>1``, the default must be a list of + tuples. + + .. versionchanged:: 8.0 + Setting a default is no longer required for ``nargs>1``, it will + default to ``None``. ``multiple=True`` or ``nargs=-1`` will + default to ``()``. + + .. versionchanged:: 7.1 + Empty environment variables are ignored rather than taking the + empty string value. This makes it possible for scripts to clear + variables if they can't unset them. + + .. versionchanged:: 2.0 + Changed signature for parameter callback to also be passed the + parameter. The old callback format will still work, but it will + raise a warning to give you a chance to migrate the code easier. + """ + + param_type_name = "parameter" + + def __init__( + self, + param_decls: t.Optional[t.Sequence[str]] = None, + type: t.Optional[t.Union[types.ParamType, t.Any]] = None, + required: bool = False, + default: t.Optional[t.Union[t.Any, t.Callable[[], t.Any]]] = None, + callback: t.Optional[t.Callable[[Context, "Parameter", t.Any], t.Any]] = None, + nargs: t.Optional[int] = None, + multiple: bool = False, + metavar: t.Optional[str] = None, + expose_value: bool = True, + is_eager: bool = False, + envvar: t.Optional[t.Union[str, t.Sequence[str]]] = None, + shell_complete: t.Optional[ + t.Callable[ + [Context, "Parameter", str], + t.Union[t.List["CompletionItem"], t.List[str]], + ] + ] = None, + ) -> None: + self.name: t.Optional[str] + self.opts: t.List[str] + self.secondary_opts: t.List[str] + self.name, self.opts, self.secondary_opts = self._parse_decls( + param_decls or (), expose_value + ) + self.type: types.ParamType = types.convert_type(type, default) + + # Default nargs to what the type tells us if we have that + # information available. + if nargs is None: + if self.type.is_composite: + nargs = self.type.arity + else: + nargs = 1 + + self.required = required + self.callback = callback + self.nargs = nargs + self.multiple = multiple + self.expose_value = expose_value + self.default = default + self.is_eager = is_eager + self.metavar = metavar + self.envvar = envvar + self._custom_shell_complete = shell_complete + + if __debug__: + if self.type.is_composite and nargs != self.type.arity: + raise ValueError( + f"'nargs' must be {self.type.arity} (or None) for" + f" type {self.type!r}, but it was {nargs}." + ) + + # Skip no default or callable default. + check_default = default if not callable(default) else None + + if check_default is not None: + if multiple: + try: + # Only check the first value against nargs. + check_default = next(_check_iter(check_default), None) + except TypeError: + raise ValueError( + "'default' must be a list when 'multiple' is true." + ) from None + + # Can be None for multiple with empty default. + if nargs != 1 and check_default is not None: + try: + _check_iter(check_default) + except TypeError: + if multiple: + message = ( + "'default' must be a list of lists when 'multiple' is" + " true and 'nargs' != 1." + ) + else: + message = "'default' must be a list when 'nargs' != 1." + + raise ValueError(message) from None + + if nargs > 1 and len(check_default) != nargs: + subject = "item length" if multiple else "length" + raise ValueError( + f"'default' {subject} must match nargs={nargs}." + ) + + def to_info_dict(self) -> t.Dict[str, t.Any]: + """Gather information that could be useful for a tool generating + user-facing documentation. + + Use :meth:`click.Context.to_info_dict` to traverse the entire + CLI structure. + + .. versionadded:: 8.0 + """ + return { + "name": self.name, + "param_type_name": self.param_type_name, + "opts": self.opts, + "secondary_opts": self.secondary_opts, + "type": self.type.to_info_dict(), + "required": self.required, + "nargs": self.nargs, + "multiple": self.multiple, + "default": self.default, + "envvar": self.envvar, + } + + def __repr__(self) -> str: + return f"<{self.__class__.__name__} {self.name}>" + + def _parse_decls( + self, decls: t.Sequence[str], expose_value: bool + ) -> t.Tuple[t.Optional[str], t.List[str], t.List[str]]: + raise NotImplementedError() + + @property + def human_readable_name(self) -> str: + """Returns the human readable name of this parameter. This is the + same as the name for options, but the metavar for arguments. + """ + return self.name # type: ignore + + def make_metavar(self) -> str: + if self.metavar is not None: + return self.metavar + + metavar = self.type.get_metavar(self) + + if metavar is None: + metavar = self.type.name.upper() + + if self.nargs != 1: + metavar += "..." + + return metavar + + @t.overload + def get_default( + self, ctx: Context, call: "te.Literal[True]" = True + ) -> t.Optional[t.Any]: + ... + + @t.overload + def get_default( + self, ctx: Context, call: bool = ... + ) -> t.Optional[t.Union[t.Any, t.Callable[[], t.Any]]]: + ... + + def get_default( + self, ctx: Context, call: bool = True + ) -> t.Optional[t.Union[t.Any, t.Callable[[], t.Any]]]: + """Get the default for the parameter. Tries + :meth:`Context.lookup_default` first, then the local default. + + :param ctx: Current context. + :param call: If the default is a callable, call it. Disable to + return the callable instead. + + .. versionchanged:: 8.0.2 + Type casting is no longer performed when getting a default. + + .. versionchanged:: 8.0.1 + Type casting can fail in resilient parsing mode. Invalid + defaults will not prevent showing help text. + + .. versionchanged:: 8.0 + Looks at ``ctx.default_map`` first. + + .. versionchanged:: 8.0 + Added the ``call`` parameter. + """ + value = ctx.lookup_default(self.name, call=False) # type: ignore + + if value is None: + value = self.default + + if call and callable(value): + value = value() + + return value + + def add_to_parser(self, parser: OptionParser, ctx: Context) -> None: + raise NotImplementedError() + + def consume_value( + self, ctx: Context, opts: t.Mapping[str, t.Any] + ) -> t.Tuple[t.Any, ParameterSource]: + value = opts.get(self.name) # type: ignore + source = ParameterSource.COMMANDLINE + + if value is None: + value = self.value_from_envvar(ctx) + source = ParameterSource.ENVIRONMENT + + if value is None: + value = ctx.lookup_default(self.name) # type: ignore + source = ParameterSource.DEFAULT_MAP + + if value is None: + value = self.get_default(ctx) + source = ParameterSource.DEFAULT + + return value, source + + def type_cast_value(self, ctx: Context, value: t.Any) -> t.Any: + """Convert and validate a value against the option's + :attr:`type`, :attr:`multiple`, and :attr:`nargs`. + """ + if value is None: + return () if self.multiple or self.nargs == -1 else None + + def check_iter(value: t.Any) -> t.Iterator[t.Any]: + try: + return _check_iter(value) + except TypeError: + # This should only happen when passing in args manually, + # the parser should construct an iterable when parsing + # the command line. + raise BadParameter( + _("Value must be an iterable."), ctx=ctx, param=self + ) from None + + if self.nargs == 1 or self.type.is_composite: + + def convert(value: t.Any) -> t.Any: + return self.type(value, param=self, ctx=ctx) + + elif self.nargs == -1: + + def convert(value: t.Any) -> t.Any: # t.Tuple[t.Any, ...] + return tuple(self.type(x, self, ctx) for x in check_iter(value)) + + else: # nargs > 1 + + def convert(value: t.Any) -> t.Any: # t.Tuple[t.Any, ...] + value = tuple(check_iter(value)) + + if len(value) != self.nargs: + raise BadParameter( + ngettext( + "Takes {nargs} values but 1 was given.", + "Takes {nargs} values but {len} were given.", + len(value), + ).format(nargs=self.nargs, len=len(value)), + ctx=ctx, + param=self, + ) + + return tuple(self.type(x, self, ctx) for x in value) + + if self.multiple: + return tuple(convert(x) for x in check_iter(value)) + + return convert(value) + + def value_is_missing(self, value: t.Any) -> bool: + if value is None: + return True + + if (self.nargs != 1 or self.multiple) and value == (): + return True + + return False + + def process_value(self, ctx: Context, value: t.Any) -> t.Any: + value = self.type_cast_value(ctx, value) + + if self.required and self.value_is_missing(value): + raise MissingParameter(ctx=ctx, param=self) + + if self.callback is not None: + value = self.callback(ctx, self, value) + + return value + + def resolve_envvar_value(self, ctx: Context) -> t.Optional[str]: + if self.envvar is None: + return None + + if isinstance(self.envvar, str): + rv = os.environ.get(self.envvar) + + if rv: + return rv + else: + for envvar in self.envvar: + rv = os.environ.get(envvar) + + if rv: + return rv + + return None + + def value_from_envvar(self, ctx: Context) -> t.Optional[t.Any]: + rv: t.Optional[t.Any] = self.resolve_envvar_value(ctx) + + if rv is not None and self.nargs != 1: + rv = self.type.split_envvar_value(rv) + + return rv + + def handle_parse_result( + self, ctx: Context, opts: t.Mapping[str, t.Any], args: t.List[str] + ) -> t.Tuple[t.Any, t.List[str]]: + with augment_usage_errors(ctx, param=self): + value, source = self.consume_value(ctx, opts) + ctx.set_parameter_source(self.name, source) # type: ignore + + try: + value = self.process_value(ctx, value) + except Exception: + if not ctx.resilient_parsing: + raise + + value = None + + if self.expose_value: + ctx.params[self.name] = value # type: ignore + + return value, args + + def get_help_record(self, ctx: Context) -> t.Optional[t.Tuple[str, str]]: + pass + + def get_usage_pieces(self, ctx: Context) -> t.List[str]: + return [] + + def get_error_hint(self, ctx: Context) -> str: + """Get a stringified version of the param for use in error messages to + indicate which param caused the error. + """ + hint_list = self.opts or [self.human_readable_name] + return " / ".join(f"'{x}'" for x in hint_list) + + def shell_complete(self, ctx: Context, incomplete: str) -> t.List["CompletionItem"]: + """Return a list of completions for the incomplete value. If a + ``shell_complete`` function was given during init, it is used. + Otherwise, the :attr:`type` + :meth:`~click.types.ParamType.shell_complete` function is used. + + :param ctx: Invocation context for this command. + :param incomplete: Value being completed. May be empty. + + .. versionadded:: 8.0 + """ + if self._custom_shell_complete is not None: + results = self._custom_shell_complete(ctx, self, incomplete) + + if results and isinstance(results[0], str): + from click.shell_completion import CompletionItem + + results = [CompletionItem(c) for c in results] + + return t.cast(t.List["CompletionItem"], results) + + return self.type.shell_complete(ctx, self, incomplete) + + +class Option(Parameter): + """Options are usually optional values on the command line and + have some extra features that arguments don't have. + + All other parameters are passed onwards to the parameter constructor. + + :param show_default: Show the default value for this option in its + help text. Values are not shown by default, unless + :attr:`Context.show_default` is ``True``. If this value is a + string, it shows that string in parentheses instead of the + actual value. This is particularly useful for dynamic options. + For single option boolean flags, the default remains hidden if + its value is ``False``. + :param show_envvar: Controls if an environment variable should be + shown on the help page. Normally, environment variables are not + shown. + :param prompt: If set to ``True`` or a non empty string then the + user will be prompted for input. If set to ``True`` the prompt + will be the option name capitalized. + :param confirmation_prompt: Prompt a second time to confirm the + value if it was prompted for. Can be set to a string instead of + ``True`` to customize the message. + :param prompt_required: If set to ``False``, the user will be + prompted for input only when the option was specified as a flag + without a value. + :param hide_input: If this is ``True`` then the input on the prompt + will be hidden from the user. This is useful for password input. + :param is_flag: forces this option to act as a flag. The default is + auto detection. + :param flag_value: which value should be used for this flag if it's + enabled. This is set to a boolean automatically if + the option string contains a slash to mark two options. + :param multiple: if this is set to `True` then the argument is accepted + multiple times and recorded. This is similar to ``nargs`` + in how it works but supports arbitrary number of + arguments. + :param count: this flag makes an option increment an integer. + :param allow_from_autoenv: if this is enabled then the value of this + parameter will be pulled from an environment + variable in case a prefix is defined on the + context. + :param help: the help string. + :param hidden: hide this option from help outputs. + :param attrs: Other command arguments described in :class:`Parameter`. + + .. versionchanged:: 8.1.0 + Help text indentation is cleaned here instead of only in the + ``@option`` decorator. + + .. versionchanged:: 8.1.0 + The ``show_default`` parameter overrides + ``Context.show_default``. + + .. versionchanged:: 8.1.0 + The default of a single option boolean flag is not shown if the + default value is ``False``. + + .. versionchanged:: 8.0.1 + ``type`` is detected from ``flag_value`` if given. + """ + + param_type_name = "option" + + def __init__( + self, + param_decls: t.Optional[t.Sequence[str]] = None, + show_default: t.Union[bool, str, None] = None, + prompt: t.Union[bool, str] = False, + confirmation_prompt: t.Union[bool, str] = False, + prompt_required: bool = True, + hide_input: bool = False, + is_flag: t.Optional[bool] = None, + flag_value: t.Optional[t.Any] = None, + multiple: bool = False, + count: bool = False, + allow_from_autoenv: bool = True, + type: t.Optional[t.Union[types.ParamType, t.Any]] = None, + help: t.Optional[str] = None, + hidden: bool = False, + show_choices: bool = True, + show_envvar: bool = False, + **attrs: t.Any, + ) -> None: + if help: + help = inspect.cleandoc(help) + + default_is_missing = "default" not in attrs + super().__init__(param_decls, type=type, multiple=multiple, **attrs) + + if prompt is True: + if self.name is None: + raise TypeError("'name' is required with 'prompt=True'.") + + prompt_text: t.Optional[str] = self.name.replace("_", " ").capitalize() + elif prompt is False: + prompt_text = None + else: + prompt_text = prompt + + self.prompt = prompt_text + self.confirmation_prompt = confirmation_prompt + self.prompt_required = prompt_required + self.hide_input = hide_input + self.hidden = hidden + + # If prompt is enabled but not required, then the option can be + # used as a flag to indicate using prompt or flag_value. + self._flag_needs_value = self.prompt is not None and not self.prompt_required + + if is_flag is None: + if flag_value is not None: + # Implicitly a flag because flag_value was set. + is_flag = True + elif self._flag_needs_value: + # Not a flag, but when used as a flag it shows a prompt. + is_flag = False + else: + # Implicitly a flag because flag options were given. + is_flag = bool(self.secondary_opts) + elif is_flag is False and not self._flag_needs_value: + # Not a flag, and prompt is not enabled, can be used as a + # flag if flag_value is set. + self._flag_needs_value = flag_value is not None + + self.default: t.Union[t.Any, t.Callable[[], t.Any]] + + if is_flag and default_is_missing and not self.required: + if multiple: + self.default = () + else: + self.default = False + + if flag_value is None: + flag_value = not self.default + + self.type: types.ParamType + if is_flag and type is None: + # Re-guess the type from the flag value instead of the + # default. + self.type = types.convert_type(None, flag_value) + + self.is_flag: bool = is_flag + self.is_bool_flag: bool = is_flag and isinstance(self.type, types.BoolParamType) + self.flag_value: t.Any = flag_value + + # Counting + self.count = count + if count: + if type is None: + self.type = types.IntRange(min=0) + if default_is_missing: + self.default = 0 + + self.allow_from_autoenv = allow_from_autoenv + self.help = help + self.show_default = show_default + self.show_choices = show_choices + self.show_envvar = show_envvar + + if __debug__: + if self.nargs == -1: + raise TypeError("nargs=-1 is not supported for options.") + + if self.prompt and self.is_flag and not self.is_bool_flag: + raise TypeError("'prompt' is not valid for non-boolean flag.") + + if not self.is_bool_flag and self.secondary_opts: + raise TypeError("Secondary flag is not valid for non-boolean flag.") + + if self.is_bool_flag and self.hide_input and self.prompt is not None: + raise TypeError( + "'prompt' with 'hide_input' is not valid for boolean flag." + ) + + if self.count: + if self.multiple: + raise TypeError("'count' is not valid with 'multiple'.") + + if self.is_flag: + raise TypeError("'count' is not valid with 'is_flag'.") + + def to_info_dict(self) -> t.Dict[str, t.Any]: + info_dict = super().to_info_dict() + info_dict.update( + help=self.help, + prompt=self.prompt, + is_flag=self.is_flag, + flag_value=self.flag_value, + count=self.count, + hidden=self.hidden, + ) + return info_dict + + def _parse_decls( + self, decls: t.Sequence[str], expose_value: bool + ) -> t.Tuple[t.Optional[str], t.List[str], t.List[str]]: + opts = [] + secondary_opts = [] + name = None + possible_names = [] + + for decl in decls: + if decl.isidentifier(): + if name is not None: + raise TypeError(f"Name '{name}' defined twice") + name = decl + else: + split_char = ";" if decl[:1] == "/" else "/" + if split_char in decl: + first, second = decl.split(split_char, 1) + first = first.rstrip() + if first: + possible_names.append(split_opt(first)) + opts.append(first) + second = second.lstrip() + if second: + secondary_opts.append(second.lstrip()) + if first == second: + raise ValueError( + f"Boolean option {decl!r} cannot use the" + " same flag for true/false." + ) + else: + possible_names.append(split_opt(decl)) + opts.append(decl) + + if name is None and possible_names: + possible_names.sort(key=lambda x: -len(x[0])) # group long options first + name = possible_names[0][1].replace("-", "_").lower() + if not name.isidentifier(): + name = None + + if name is None: + if not expose_value: + return None, opts, secondary_opts + raise TypeError("Could not determine name for option") + + if not opts and not secondary_opts: + raise TypeError( + f"No options defined but a name was passed ({name})." + " Did you mean to declare an argument instead? Did" + f" you mean to pass '--{name}'?" + ) + + return name, opts, secondary_opts + + def add_to_parser(self, parser: OptionParser, ctx: Context) -> None: + if self.multiple: + action = "append" + elif self.count: + action = "count" + else: + action = "store" + + if self.is_flag: + action = f"{action}_const" + + if self.is_bool_flag and self.secondary_opts: + parser.add_option( + obj=self, opts=self.opts, dest=self.name, action=action, const=True + ) + parser.add_option( + obj=self, + opts=self.secondary_opts, + dest=self.name, + action=action, + const=False, + ) + else: + parser.add_option( + obj=self, + opts=self.opts, + dest=self.name, + action=action, + const=self.flag_value, + ) + else: + parser.add_option( + obj=self, + opts=self.opts, + dest=self.name, + action=action, + nargs=self.nargs, + ) + + def get_help_record(self, ctx: Context) -> t.Optional[t.Tuple[str, str]]: + if self.hidden: + return None + + any_prefix_is_slash = False + + def _write_opts(opts: t.Sequence[str]) -> str: + nonlocal any_prefix_is_slash + + rv, any_slashes = join_options(opts) + + if any_slashes: + any_prefix_is_slash = True + + if not self.is_flag and not self.count: + rv += f" {self.make_metavar()}" + + return rv + + rv = [_write_opts(self.opts)] + + if self.secondary_opts: + rv.append(_write_opts(self.secondary_opts)) + + help = self.help or "" + extra = [] + + if self.show_envvar: + envvar = self.envvar + + if envvar is None: + if ( + self.allow_from_autoenv + and ctx.auto_envvar_prefix is not None + and self.name is not None + ): + envvar = f"{ctx.auto_envvar_prefix}_{self.name.upper()}" + + if envvar is not None: + var_str = ( + envvar + if isinstance(envvar, str) + else ", ".join(str(d) for d in envvar) + ) + extra.append(_("env var: {var}").format(var=var_str)) + + # Temporarily enable resilient parsing to avoid type casting + # failing for the default. Might be possible to extend this to + # help formatting in general. + resilient = ctx.resilient_parsing + ctx.resilient_parsing = True + + try: + default_value = self.get_default(ctx, call=False) + finally: + ctx.resilient_parsing = resilient + + show_default = False + show_default_is_str = False + + if self.show_default is not None: + if isinstance(self.show_default, str): + show_default_is_str = show_default = True + else: + show_default = self.show_default + elif ctx.show_default is not None: + show_default = ctx.show_default + + if show_default_is_str or (show_default and (default_value is not None)): + if show_default_is_str: + default_string = f"({self.show_default})" + elif isinstance(default_value, (list, tuple)): + default_string = ", ".join(str(d) for d in default_value) + elif inspect.isfunction(default_value): + default_string = _("(dynamic)") + elif self.is_bool_flag and self.secondary_opts: + # For boolean flags that have distinct True/False opts, + # use the opt without prefix instead of the value. + default_string = split_opt( + (self.opts if self.default else self.secondary_opts)[0] + )[1] + elif self.is_bool_flag and not self.secondary_opts and not default_value: + default_string = "" + else: + default_string = str(default_value) + + if default_string: + extra.append(_("default: {default}").format(default=default_string)) + + if ( + isinstance(self.type, types._NumberRangeBase) + # skip count with default range type + and not (self.count and self.type.min == 0 and self.type.max is None) + ): + range_str = self.type._describe_range() + + if range_str: + extra.append(range_str) + + if self.required: + extra.append(_("required")) + + if extra: + extra_str = "; ".join(extra) + help = f"{help} [{extra_str}]" if help else f"[{extra_str}]" + + return ("; " if any_prefix_is_slash else " / ").join(rv), help + + @t.overload + def get_default( + self, ctx: Context, call: "te.Literal[True]" = True + ) -> t.Optional[t.Any]: + ... + + @t.overload + def get_default( + self, ctx: Context, call: bool = ... + ) -> t.Optional[t.Union[t.Any, t.Callable[[], t.Any]]]: + ... + + def get_default( + self, ctx: Context, call: bool = True + ) -> t.Optional[t.Union[t.Any, t.Callable[[], t.Any]]]: + # If we're a non boolean flag our default is more complex because + # we need to look at all flags in the same group to figure out + # if we're the default one in which case we return the flag + # value as default. + if self.is_flag and not self.is_bool_flag: + for param in ctx.command.params: + if param.name == self.name and param.default: + return t.cast(Option, param).flag_value + + return None + + return super().get_default(ctx, call=call) + + def prompt_for_value(self, ctx: Context) -> t.Any: + """This is an alternative flow that can be activated in the full + value processing if a value does not exist. It will prompt the + user until a valid value exists and then returns the processed + value as result. + """ + assert self.prompt is not None + + # Calculate the default before prompting anything to be stable. + default = self.get_default(ctx) + + # If this is a prompt for a flag we need to handle this + # differently. + if self.is_bool_flag: + return confirm(self.prompt, default) + + return prompt( + self.prompt, + default=default, + type=self.type, + hide_input=self.hide_input, + show_choices=self.show_choices, + confirmation_prompt=self.confirmation_prompt, + value_proc=lambda x: self.process_value(ctx, x), + ) + + def resolve_envvar_value(self, ctx: Context) -> t.Optional[str]: + rv = super().resolve_envvar_value(ctx) + + if rv is not None: + return rv + + if ( + self.allow_from_autoenv + and ctx.auto_envvar_prefix is not None + and self.name is not None + ): + envvar = f"{ctx.auto_envvar_prefix}_{self.name.upper()}" + rv = os.environ.get(envvar) + + if rv: + return rv + + return None + + def value_from_envvar(self, ctx: Context) -> t.Optional[t.Any]: + rv: t.Optional[t.Any] = self.resolve_envvar_value(ctx) + + if rv is None: + return None + + value_depth = (self.nargs != 1) + bool(self.multiple) + + if value_depth > 0: + rv = self.type.split_envvar_value(rv) + + if self.multiple and self.nargs != 1: + rv = batch(rv, self.nargs) + + return rv + + def consume_value( + self, ctx: Context, opts: t.Mapping[str, "Parameter"] + ) -> t.Tuple[t.Any, ParameterSource]: + value, source = super().consume_value(ctx, opts) + + # The parser will emit a sentinel value if the option can be + # given as a flag without a value. This is different from None + # to distinguish from the flag not being given at all. + if value is _flag_needs_value: + if self.prompt is not None and not ctx.resilient_parsing: + value = self.prompt_for_value(ctx) + source = ParameterSource.PROMPT + else: + value = self.flag_value + source = ParameterSource.COMMANDLINE + + elif ( + self.multiple + and value is not None + and any(v is _flag_needs_value for v in value) + ): + value = [self.flag_value if v is _flag_needs_value else v for v in value] + source = ParameterSource.COMMANDLINE + + # The value wasn't set, or used the param's default, prompt if + # prompting is enabled. + elif ( + source in {None, ParameterSource.DEFAULT} + and self.prompt is not None + and (self.required or self.prompt_required) + and not ctx.resilient_parsing + ): + value = self.prompt_for_value(ctx) + source = ParameterSource.PROMPT + + return value, source + + +class Argument(Parameter): + """Arguments are positional parameters to a command. They generally + provide fewer features than options but can have infinite ``nargs`` + and are required by default. + + All parameters are passed onwards to the constructor of :class:`Parameter`. + """ + + param_type_name = "argument" + + def __init__( + self, + param_decls: t.Sequence[str], + required: t.Optional[bool] = None, + **attrs: t.Any, + ) -> None: + if required is None: + if attrs.get("default") is not None: + required = False + else: + required = attrs.get("nargs", 1) > 0 + + if "multiple" in attrs: + raise TypeError("__init__() got an unexpected keyword argument 'multiple'.") + + super().__init__(param_decls, required=required, **attrs) + + if __debug__: + if self.default is not None and self.nargs == -1: + raise TypeError("'default' is not supported for nargs=-1.") + + @property + def human_readable_name(self) -> str: + if self.metavar is not None: + return self.metavar + return self.name.upper() # type: ignore + + def make_metavar(self) -> str: + if self.metavar is not None: + return self.metavar + var = self.type.get_metavar(self) + if not var: + var = self.name.upper() # type: ignore + if not self.required: + var = f"[{var}]" + if self.nargs != 1: + var += "..." + return var + + def _parse_decls( + self, decls: t.Sequence[str], expose_value: bool + ) -> t.Tuple[t.Optional[str], t.List[str], t.List[str]]: + if not decls: + if not expose_value: + return None, [], [] + raise TypeError("Could not determine name for argument") + if len(decls) == 1: + name = arg = decls[0] + name = name.replace("-", "_").lower() + else: + raise TypeError( + "Arguments take exactly one parameter declaration, got" + f" {len(decls)}." + ) + return name, [arg], [] + + def get_usage_pieces(self, ctx: Context) -> t.List[str]: + return [self.make_metavar()] + + def get_error_hint(self, ctx: Context) -> str: + return f"'{self.make_metavar()}'" + + def add_to_parser(self, parser: OptionParser, ctx: Context) -> None: + parser.add_argument(dest=self.name, nargs=self.nargs, obj=self) diff --git a/venv/lib/python3.12/site-packages/click/decorators.py b/venv/lib/python3.12/site-packages/click/decorators.py new file mode 100644 index 0000000000..d9bba9502c --- /dev/null +++ b/venv/lib/python3.12/site-packages/click/decorators.py @@ -0,0 +1,561 @@ +import inspect +import types +import typing as t +from functools import update_wrapper +from gettext import gettext as _ + +from .core import Argument +from .core import Command +from .core import Context +from .core import Group +from .core import Option +from .core import Parameter +from .globals import get_current_context +from .utils import echo + +if t.TYPE_CHECKING: + import typing_extensions as te + + P = te.ParamSpec("P") + +R = t.TypeVar("R") +T = t.TypeVar("T") +_AnyCallable = t.Callable[..., t.Any] +FC = t.TypeVar("FC", bound=t.Union[_AnyCallable, Command]) + + +def pass_context(f: "t.Callable[te.Concatenate[Context, P], R]") -> "t.Callable[P, R]": + """Marks a callback as wanting to receive the current context + object as first argument. + """ + + def new_func(*args: "P.args", **kwargs: "P.kwargs") -> "R": + return f(get_current_context(), *args, **kwargs) + + return update_wrapper(new_func, f) + + +def pass_obj(f: "t.Callable[te.Concatenate[t.Any, P], R]") -> "t.Callable[P, R]": + """Similar to :func:`pass_context`, but only pass the object on the + context onwards (:attr:`Context.obj`). This is useful if that object + represents the state of a nested system. + """ + + def new_func(*args: "P.args", **kwargs: "P.kwargs") -> "R": + return f(get_current_context().obj, *args, **kwargs) + + return update_wrapper(new_func, f) + + +def make_pass_decorator( + object_type: t.Type[T], ensure: bool = False +) -> t.Callable[["t.Callable[te.Concatenate[T, P], R]"], "t.Callable[P, R]"]: + """Given an object type this creates a decorator that will work + similar to :func:`pass_obj` but instead of passing the object of the + current context, it will find the innermost context of type + :func:`object_type`. + + This generates a decorator that works roughly like this:: + + from functools import update_wrapper + + def decorator(f): + @pass_context + def new_func(ctx, *args, **kwargs): + obj = ctx.find_object(object_type) + return ctx.invoke(f, obj, *args, **kwargs) + return update_wrapper(new_func, f) + return decorator + + :param object_type: the type of the object to pass. + :param ensure: if set to `True`, a new object will be created and + remembered on the context if it's not there yet. + """ + + def decorator(f: "t.Callable[te.Concatenate[T, P], R]") -> "t.Callable[P, R]": + def new_func(*args: "P.args", **kwargs: "P.kwargs") -> "R": + ctx = get_current_context() + + obj: t.Optional[T] + if ensure: + obj = ctx.ensure_object(object_type) + else: + obj = ctx.find_object(object_type) + + if obj is None: + raise RuntimeError( + "Managed to invoke callback without a context" + f" object of type {object_type.__name__!r}" + " existing." + ) + + return ctx.invoke(f, obj, *args, **kwargs) + + return update_wrapper(new_func, f) + + return decorator # type: ignore[return-value] + + +def pass_meta_key( + key: str, *, doc_description: t.Optional[str] = None +) -> "t.Callable[[t.Callable[te.Concatenate[t.Any, P], R]], t.Callable[P, R]]": + """Create a decorator that passes a key from + :attr:`click.Context.meta` as the first argument to the decorated + function. + + :param key: Key in ``Context.meta`` to pass. + :param doc_description: Description of the object being passed, + inserted into the decorator's docstring. Defaults to "the 'key' + key from Context.meta". + + .. versionadded:: 8.0 + """ + + def decorator(f: "t.Callable[te.Concatenate[t.Any, P], R]") -> "t.Callable[P, R]": + def new_func(*args: "P.args", **kwargs: "P.kwargs") -> R: + ctx = get_current_context() + obj = ctx.meta[key] + return ctx.invoke(f, obj, *args, **kwargs) + + return update_wrapper(new_func, f) + + if doc_description is None: + doc_description = f"the {key!r} key from :attr:`click.Context.meta`" + + decorator.__doc__ = ( + f"Decorator that passes {doc_description} as the first argument" + " to the decorated function." + ) + return decorator # type: ignore[return-value] + + +CmdType = t.TypeVar("CmdType", bound=Command) + + +# variant: no call, directly as decorator for a function. +@t.overload +def command(name: _AnyCallable) -> Command: + ... + + +# variant: with positional name and with positional or keyword cls argument: +# @command(namearg, CommandCls, ...) or @command(namearg, cls=CommandCls, ...) +@t.overload +def command( + name: t.Optional[str], + cls: t.Type[CmdType], + **attrs: t.Any, +) -> t.Callable[[_AnyCallable], CmdType]: + ... + + +# variant: name omitted, cls _must_ be a keyword argument, @command(cls=CommandCls, ...) +@t.overload +def command( + name: None = None, + *, + cls: t.Type[CmdType], + **attrs: t.Any, +) -> t.Callable[[_AnyCallable], CmdType]: + ... + + +# variant: with optional string name, no cls argument provided. +@t.overload +def command( + name: t.Optional[str] = ..., cls: None = None, **attrs: t.Any +) -> t.Callable[[_AnyCallable], Command]: + ... + + +def command( + name: t.Union[t.Optional[str], _AnyCallable] = None, + cls: t.Optional[t.Type[CmdType]] = None, + **attrs: t.Any, +) -> t.Union[Command, t.Callable[[_AnyCallable], t.Union[Command, CmdType]]]: + r"""Creates a new :class:`Command` and uses the decorated function as + callback. This will also automatically attach all decorated + :func:`option`\s and :func:`argument`\s as parameters to the command. + + The name of the command defaults to the name of the function with + underscores replaced by dashes. If you want to change that, you can + pass the intended name as the first argument. + + All keyword arguments are forwarded to the underlying command class. + For the ``params`` argument, any decorated params are appended to + the end of the list. + + Once decorated the function turns into a :class:`Command` instance + that can be invoked as a command line utility or be attached to a + command :class:`Group`. + + :param name: the name of the command. This defaults to the function + name with underscores replaced by dashes. + :param cls: the command class to instantiate. This defaults to + :class:`Command`. + + .. versionchanged:: 8.1 + This decorator can be applied without parentheses. + + .. versionchanged:: 8.1 + The ``params`` argument can be used. Decorated params are + appended to the end of the list. + """ + + func: t.Optional[t.Callable[[_AnyCallable], t.Any]] = None + + if callable(name): + func = name + name = None + assert cls is None, "Use 'command(cls=cls)(callable)' to specify a class." + assert not attrs, "Use 'command(**kwargs)(callable)' to provide arguments." + + if cls is None: + cls = t.cast(t.Type[CmdType], Command) + + def decorator(f: _AnyCallable) -> CmdType: + if isinstance(f, Command): + raise TypeError("Attempted to convert a callback into a command twice.") + + attr_params = attrs.pop("params", None) + params = attr_params if attr_params is not None else [] + + try: + decorator_params = f.__click_params__ # type: ignore + except AttributeError: + pass + else: + del f.__click_params__ # type: ignore + params.extend(reversed(decorator_params)) + + if attrs.get("help") is None: + attrs["help"] = f.__doc__ + + if t.TYPE_CHECKING: + assert cls is not None + assert not callable(name) + + cmd = cls( + name=name or f.__name__.lower().replace("_", "-"), + callback=f, + params=params, + **attrs, + ) + cmd.__doc__ = f.__doc__ + return cmd + + if func is not None: + return decorator(func) + + return decorator + + +GrpType = t.TypeVar("GrpType", bound=Group) + + +# variant: no call, directly as decorator for a function. +@t.overload +def group(name: _AnyCallable) -> Group: + ... + + +# variant: with positional name and with positional or keyword cls argument: +# @group(namearg, GroupCls, ...) or @group(namearg, cls=GroupCls, ...) +@t.overload +def group( + name: t.Optional[str], + cls: t.Type[GrpType], + **attrs: t.Any, +) -> t.Callable[[_AnyCallable], GrpType]: + ... + + +# variant: name omitted, cls _must_ be a keyword argument, @group(cmd=GroupCls, ...) +@t.overload +def group( + name: None = None, + *, + cls: t.Type[GrpType], + **attrs: t.Any, +) -> t.Callable[[_AnyCallable], GrpType]: + ... + + +# variant: with optional string name, no cls argument provided. +@t.overload +def group( + name: t.Optional[str] = ..., cls: None = None, **attrs: t.Any +) -> t.Callable[[_AnyCallable], Group]: + ... + + +def group( + name: t.Union[str, _AnyCallable, None] = None, + cls: t.Optional[t.Type[GrpType]] = None, + **attrs: t.Any, +) -> t.Union[Group, t.Callable[[_AnyCallable], t.Union[Group, GrpType]]]: + """Creates a new :class:`Group` with a function as callback. This + works otherwise the same as :func:`command` just that the `cls` + parameter is set to :class:`Group`. + + .. versionchanged:: 8.1 + This decorator can be applied without parentheses. + """ + if cls is None: + cls = t.cast(t.Type[GrpType], Group) + + if callable(name): + return command(cls=cls, **attrs)(name) + + return command(name, cls, **attrs) + + +def _param_memo(f: t.Callable[..., t.Any], param: Parameter) -> None: + if isinstance(f, Command): + f.params.append(param) + else: + if not hasattr(f, "__click_params__"): + f.__click_params__ = [] # type: ignore + + f.__click_params__.append(param) # type: ignore + + +def argument( + *param_decls: str, cls: t.Optional[t.Type[Argument]] = None, **attrs: t.Any +) -> t.Callable[[FC], FC]: + """Attaches an argument to the command. All positional arguments are + passed as parameter declarations to :class:`Argument`; all keyword + arguments are forwarded unchanged (except ``cls``). + This is equivalent to creating an :class:`Argument` instance manually + and attaching it to the :attr:`Command.params` list. + + For the default argument class, refer to :class:`Argument` and + :class:`Parameter` for descriptions of parameters. + + :param cls: the argument class to instantiate. This defaults to + :class:`Argument`. + :param param_decls: Passed as positional arguments to the constructor of + ``cls``. + :param attrs: Passed as keyword arguments to the constructor of ``cls``. + """ + if cls is None: + cls = Argument + + def decorator(f: FC) -> FC: + _param_memo(f, cls(param_decls, **attrs)) + return f + + return decorator + + +def option( + *param_decls: str, cls: t.Optional[t.Type[Option]] = None, **attrs: t.Any +) -> t.Callable[[FC], FC]: + """Attaches an option to the command. All positional arguments are + passed as parameter declarations to :class:`Option`; all keyword + arguments are forwarded unchanged (except ``cls``). + This is equivalent to creating an :class:`Option` instance manually + and attaching it to the :attr:`Command.params` list. + + For the default option class, refer to :class:`Option` and + :class:`Parameter` for descriptions of parameters. + + :param cls: the option class to instantiate. This defaults to + :class:`Option`. + :param param_decls: Passed as positional arguments to the constructor of + ``cls``. + :param attrs: Passed as keyword arguments to the constructor of ``cls``. + """ + if cls is None: + cls = Option + + def decorator(f: FC) -> FC: + _param_memo(f, cls(param_decls, **attrs)) + return f + + return decorator + + +def confirmation_option(*param_decls: str, **kwargs: t.Any) -> t.Callable[[FC], FC]: + """Add a ``--yes`` option which shows a prompt before continuing if + not passed. If the prompt is declined, the program will exit. + + :param param_decls: One or more option names. Defaults to the single + value ``"--yes"``. + :param kwargs: Extra arguments are passed to :func:`option`. + """ + + def callback(ctx: Context, param: Parameter, value: bool) -> None: + if not value: + ctx.abort() + + if not param_decls: + param_decls = ("--yes",) + + kwargs.setdefault("is_flag", True) + kwargs.setdefault("callback", callback) + kwargs.setdefault("expose_value", False) + kwargs.setdefault("prompt", "Do you want to continue?") + kwargs.setdefault("help", "Confirm the action without prompting.") + return option(*param_decls, **kwargs) + + +def password_option(*param_decls: str, **kwargs: t.Any) -> t.Callable[[FC], FC]: + """Add a ``--password`` option which prompts for a password, hiding + input and asking to enter the value again for confirmation. + + :param param_decls: One or more option names. Defaults to the single + value ``"--password"``. + :param kwargs: Extra arguments are passed to :func:`option`. + """ + if not param_decls: + param_decls = ("--password",) + + kwargs.setdefault("prompt", True) + kwargs.setdefault("confirmation_prompt", True) + kwargs.setdefault("hide_input", True) + return option(*param_decls, **kwargs) + + +def version_option( + version: t.Optional[str] = None, + *param_decls: str, + package_name: t.Optional[str] = None, + prog_name: t.Optional[str] = None, + message: t.Optional[str] = None, + **kwargs: t.Any, +) -> t.Callable[[FC], FC]: + """Add a ``--version`` option which immediately prints the version + number and exits the program. + + If ``version`` is not provided, Click will try to detect it using + :func:`importlib.metadata.version` to get the version for the + ``package_name``. On Python < 3.8, the ``importlib_metadata`` + backport must be installed. + + If ``package_name`` is not provided, Click will try to detect it by + inspecting the stack frames. This will be used to detect the + version, so it must match the name of the installed package. + + :param version: The version number to show. If not provided, Click + will try to detect it. + :param param_decls: One or more option names. Defaults to the single + value ``"--version"``. + :param package_name: The package name to detect the version from. If + not provided, Click will try to detect it. + :param prog_name: The name of the CLI to show in the message. If not + provided, it will be detected from the command. + :param message: The message to show. The values ``%(prog)s``, + ``%(package)s``, and ``%(version)s`` are available. Defaults to + ``"%(prog)s, version %(version)s"``. + :param kwargs: Extra arguments are passed to :func:`option`. + :raise RuntimeError: ``version`` could not be detected. + + .. versionchanged:: 8.0 + Add the ``package_name`` parameter, and the ``%(package)s`` + value for messages. + + .. versionchanged:: 8.0 + Use :mod:`importlib.metadata` instead of ``pkg_resources``. The + version is detected based on the package name, not the entry + point name. The Python package name must match the installed + package name, or be passed with ``package_name=``. + """ + if message is None: + message = _("%(prog)s, version %(version)s") + + if version is None and package_name is None: + frame = inspect.currentframe() + f_back = frame.f_back if frame is not None else None + f_globals = f_back.f_globals if f_back is not None else None + # break reference cycle + # https://docs.python.org/3/library/inspect.html#the-interpreter-stack + del frame + + if f_globals is not None: + package_name = f_globals.get("__name__") + + if package_name == "__main__": + package_name = f_globals.get("__package__") + + if package_name: + package_name = package_name.partition(".")[0] + + def callback(ctx: Context, param: Parameter, value: bool) -> None: + if not value or ctx.resilient_parsing: + return + + nonlocal prog_name + nonlocal version + + if prog_name is None: + prog_name = ctx.find_root().info_name + + if version is None and package_name is not None: + metadata: t.Optional[types.ModuleType] + + try: + from importlib import metadata # type: ignore + except ImportError: + # Python < 3.8 + import importlib_metadata as metadata # type: ignore + + try: + version = metadata.version(package_name) # type: ignore + except metadata.PackageNotFoundError: # type: ignore + raise RuntimeError( + f"{package_name!r} is not installed. Try passing" + " 'package_name' instead." + ) from None + + if version is None: + raise RuntimeError( + f"Could not determine the version for {package_name!r} automatically." + ) + + echo( + message % {"prog": prog_name, "package": package_name, "version": version}, + color=ctx.color, + ) + ctx.exit() + + if not param_decls: + param_decls = ("--version",) + + kwargs.setdefault("is_flag", True) + kwargs.setdefault("expose_value", False) + kwargs.setdefault("is_eager", True) + kwargs.setdefault("help", _("Show the version and exit.")) + kwargs["callback"] = callback + return option(*param_decls, **kwargs) + + +def help_option(*param_decls: str, **kwargs: t.Any) -> t.Callable[[FC], FC]: + """Add a ``--help`` option which immediately prints the help page + and exits the program. + + This is usually unnecessary, as the ``--help`` option is added to + each command automatically unless ``add_help_option=False`` is + passed. + + :param param_decls: One or more option names. Defaults to the single + value ``"--help"``. + :param kwargs: Extra arguments are passed to :func:`option`. + """ + + def callback(ctx: Context, param: Parameter, value: bool) -> None: + if not value or ctx.resilient_parsing: + return + + echo(ctx.get_help(), color=ctx.color) + ctx.exit() + + if not param_decls: + param_decls = ("--help",) + + kwargs.setdefault("is_flag", True) + kwargs.setdefault("expose_value", False) + kwargs.setdefault("is_eager", True) + kwargs.setdefault("help", _("Show this message and exit.")) + kwargs["callback"] = callback + return option(*param_decls, **kwargs) diff --git a/venv/lib/python3.12/site-packages/click/exceptions.py b/venv/lib/python3.12/site-packages/click/exceptions.py new file mode 100644 index 0000000000..fe68a3613f --- /dev/null +++ b/venv/lib/python3.12/site-packages/click/exceptions.py @@ -0,0 +1,288 @@ +import typing as t +from gettext import gettext as _ +from gettext import ngettext + +from ._compat import get_text_stderr +from .utils import echo +from .utils import format_filename + +if t.TYPE_CHECKING: + from .core import Command + from .core import Context + from .core import Parameter + + +def _join_param_hints( + param_hint: t.Optional[t.Union[t.Sequence[str], str]] +) -> t.Optional[str]: + if param_hint is not None and not isinstance(param_hint, str): + return " / ".join(repr(x) for x in param_hint) + + return param_hint + + +class ClickException(Exception): + """An exception that Click can handle and show to the user.""" + + #: The exit code for this exception. + exit_code = 1 + + def __init__(self, message: str) -> None: + super().__init__(message) + self.message = message + + def format_message(self) -> str: + return self.message + + def __str__(self) -> str: + return self.message + + def show(self, file: t.Optional[t.IO[t.Any]] = None) -> None: + if file is None: + file = get_text_stderr() + + echo(_("Error: {message}").format(message=self.format_message()), file=file) + + +class UsageError(ClickException): + """An internal exception that signals a usage error. This typically + aborts any further handling. + + :param message: the error message to display. + :param ctx: optionally the context that caused this error. Click will + fill in the context automatically in some situations. + """ + + exit_code = 2 + + def __init__(self, message: str, ctx: t.Optional["Context"] = None) -> None: + super().__init__(message) + self.ctx = ctx + self.cmd: t.Optional["Command"] = self.ctx.command if self.ctx else None + + def show(self, file: t.Optional[t.IO[t.Any]] = None) -> None: + if file is None: + file = get_text_stderr() + color = None + hint = "" + if ( + self.ctx is not None + and self.ctx.command.get_help_option(self.ctx) is not None + ): + hint = _("Try '{command} {option}' for help.").format( + command=self.ctx.command_path, option=self.ctx.help_option_names[0] + ) + hint = f"{hint}\n" + if self.ctx is not None: + color = self.ctx.color + echo(f"{self.ctx.get_usage()}\n{hint}", file=file, color=color) + echo( + _("Error: {message}").format(message=self.format_message()), + file=file, + color=color, + ) + + +class BadParameter(UsageError): + """An exception that formats out a standardized error message for a + bad parameter. This is useful when thrown from a callback or type as + Click will attach contextual information to it (for instance, which + parameter it is). + + .. versionadded:: 2.0 + + :param param: the parameter object that caused this error. This can + be left out, and Click will attach this info itself + if possible. + :param param_hint: a string that shows up as parameter name. This + can be used as alternative to `param` in cases + where custom validation should happen. If it is + a string it's used as such, if it's a list then + each item is quoted and separated. + """ + + def __init__( + self, + message: str, + ctx: t.Optional["Context"] = None, + param: t.Optional["Parameter"] = None, + param_hint: t.Optional[str] = None, + ) -> None: + super().__init__(message, ctx) + self.param = param + self.param_hint = param_hint + + def format_message(self) -> str: + if self.param_hint is not None: + param_hint = self.param_hint + elif self.param is not None: + param_hint = self.param.get_error_hint(self.ctx) # type: ignore + else: + return _("Invalid value: {message}").format(message=self.message) + + return _("Invalid value for {param_hint}: {message}").format( + param_hint=_join_param_hints(param_hint), message=self.message + ) + + +class MissingParameter(BadParameter): + """Raised if click required an option or argument but it was not + provided when invoking the script. + + .. versionadded:: 4.0 + + :param param_type: a string that indicates the type of the parameter. + The default is to inherit the parameter type from + the given `param`. Valid values are ``'parameter'``, + ``'option'`` or ``'argument'``. + """ + + def __init__( + self, + message: t.Optional[str] = None, + ctx: t.Optional["Context"] = None, + param: t.Optional["Parameter"] = None, + param_hint: t.Optional[str] = None, + param_type: t.Optional[str] = None, + ) -> None: + super().__init__(message or "", ctx, param, param_hint) + self.param_type = param_type + + def format_message(self) -> str: + if self.param_hint is not None: + param_hint: t.Optional[str] = self.param_hint + elif self.param is not None: + param_hint = self.param.get_error_hint(self.ctx) # type: ignore + else: + param_hint = None + + param_hint = _join_param_hints(param_hint) + param_hint = f" {param_hint}" if param_hint else "" + + param_type = self.param_type + if param_type is None and self.param is not None: + param_type = self.param.param_type_name + + msg = self.message + if self.param is not None: + msg_extra = self.param.type.get_missing_message(self.param) + if msg_extra: + if msg: + msg += f". {msg_extra}" + else: + msg = msg_extra + + msg = f" {msg}" if msg else "" + + # Translate param_type for known types. + if param_type == "argument": + missing = _("Missing argument") + elif param_type == "option": + missing = _("Missing option") + elif param_type == "parameter": + missing = _("Missing parameter") + else: + missing = _("Missing {param_type}").format(param_type=param_type) + + return f"{missing}{param_hint}.{msg}" + + def __str__(self) -> str: + if not self.message: + param_name = self.param.name if self.param else None + return _("Missing parameter: {param_name}").format(param_name=param_name) + else: + return self.message + + +class NoSuchOption(UsageError): + """Raised if click attempted to handle an option that does not + exist. + + .. versionadded:: 4.0 + """ + + def __init__( + self, + option_name: str, + message: t.Optional[str] = None, + possibilities: t.Optional[t.Sequence[str]] = None, + ctx: t.Optional["Context"] = None, + ) -> None: + if message is None: + message = _("No such option: {name}").format(name=option_name) + + super().__init__(message, ctx) + self.option_name = option_name + self.possibilities = possibilities + + def format_message(self) -> str: + if not self.possibilities: + return self.message + + possibility_str = ", ".join(sorted(self.possibilities)) + suggest = ngettext( + "Did you mean {possibility}?", + "(Possible options: {possibilities})", + len(self.possibilities), + ).format(possibility=possibility_str, possibilities=possibility_str) + return f"{self.message} {suggest}" + + +class BadOptionUsage(UsageError): + """Raised if an option is generally supplied but the use of the option + was incorrect. This is for instance raised if the number of arguments + for an option is not correct. + + .. versionadded:: 4.0 + + :param option_name: the name of the option being used incorrectly. + """ + + def __init__( + self, option_name: str, message: str, ctx: t.Optional["Context"] = None + ) -> None: + super().__init__(message, ctx) + self.option_name = option_name + + +class BadArgumentUsage(UsageError): + """Raised if an argument is generally supplied but the use of the argument + was incorrect. This is for instance raised if the number of values + for an argument is not correct. + + .. versionadded:: 6.0 + """ + + +class FileError(ClickException): + """Raised if a file cannot be opened.""" + + def __init__(self, filename: str, hint: t.Optional[str] = None) -> None: + if hint is None: + hint = _("unknown error") + + super().__init__(hint) + self.ui_filename: str = format_filename(filename) + self.filename = filename + + def format_message(self) -> str: + return _("Could not open file {filename!r}: {message}").format( + filename=self.ui_filename, message=self.message + ) + + +class Abort(RuntimeError): + """An internal signalling exception that signals Click to abort.""" + + +class Exit(RuntimeError): + """An exception that indicates that the application should exit with some + status code. + + :param code: the status code to exit with. + """ + + __slots__ = ("exit_code",) + + def __init__(self, code: int = 0) -> None: + self.exit_code: int = code diff --git a/venv/lib/python3.12/site-packages/click/formatting.py b/venv/lib/python3.12/site-packages/click/formatting.py new file mode 100644 index 0000000000..ddd2a2f825 --- /dev/null +++ b/venv/lib/python3.12/site-packages/click/formatting.py @@ -0,0 +1,301 @@ +import typing as t +from contextlib import contextmanager +from gettext import gettext as _ + +from ._compat import term_len +from .parser import split_opt + +# Can force a width. This is used by the test system +FORCED_WIDTH: t.Optional[int] = None + + +def measure_table(rows: t.Iterable[t.Tuple[str, str]]) -> t.Tuple[int, ...]: + widths: t.Dict[int, int] = {} + + for row in rows: + for idx, col in enumerate(row): + widths[idx] = max(widths.get(idx, 0), term_len(col)) + + return tuple(y for x, y in sorted(widths.items())) + + +def iter_rows( + rows: t.Iterable[t.Tuple[str, str]], col_count: int +) -> t.Iterator[t.Tuple[str, ...]]: + for row in rows: + yield row + ("",) * (col_count - len(row)) + + +def wrap_text( + text: str, + width: int = 78, + initial_indent: str = "", + subsequent_indent: str = "", + preserve_paragraphs: bool = False, +) -> str: + """A helper function that intelligently wraps text. By default, it + assumes that it operates on a single paragraph of text but if the + `preserve_paragraphs` parameter is provided it will intelligently + handle paragraphs (defined by two empty lines). + + If paragraphs are handled, a paragraph can be prefixed with an empty + line containing the ``\\b`` character (``\\x08``) to indicate that + no rewrapping should happen in that block. + + :param text: the text that should be rewrapped. + :param width: the maximum width for the text. + :param initial_indent: the initial indent that should be placed on the + first line as a string. + :param subsequent_indent: the indent string that should be placed on + each consecutive line. + :param preserve_paragraphs: if this flag is set then the wrapping will + intelligently handle paragraphs. + """ + from ._textwrap import TextWrapper + + text = text.expandtabs() + wrapper = TextWrapper( + width, + initial_indent=initial_indent, + subsequent_indent=subsequent_indent, + replace_whitespace=False, + ) + if not preserve_paragraphs: + return wrapper.fill(text) + + p: t.List[t.Tuple[int, bool, str]] = [] + buf: t.List[str] = [] + indent = None + + def _flush_par() -> None: + if not buf: + return + if buf[0].strip() == "\b": + p.append((indent or 0, True, "\n".join(buf[1:]))) + else: + p.append((indent or 0, False, " ".join(buf))) + del buf[:] + + for line in text.splitlines(): + if not line: + _flush_par() + indent = None + else: + if indent is None: + orig_len = term_len(line) + line = line.lstrip() + indent = orig_len - term_len(line) + buf.append(line) + _flush_par() + + rv = [] + for indent, raw, text in p: + with wrapper.extra_indent(" " * indent): + if raw: + rv.append(wrapper.indent_only(text)) + else: + rv.append(wrapper.fill(text)) + + return "\n\n".join(rv) + + +class HelpFormatter: + """This class helps with formatting text-based help pages. It's + usually just needed for very special internal cases, but it's also + exposed so that developers can write their own fancy outputs. + + At present, it always writes into memory. + + :param indent_increment: the additional increment for each level. + :param width: the width for the text. This defaults to the terminal + width clamped to a maximum of 78. + """ + + def __init__( + self, + indent_increment: int = 2, + width: t.Optional[int] = None, + max_width: t.Optional[int] = None, + ) -> None: + import shutil + + self.indent_increment = indent_increment + if max_width is None: + max_width = 80 + if width is None: + width = FORCED_WIDTH + if width is None: + width = max(min(shutil.get_terminal_size().columns, max_width) - 2, 50) + self.width = width + self.current_indent = 0 + self.buffer: t.List[str] = [] + + def write(self, string: str) -> None: + """Writes a unicode string into the internal buffer.""" + self.buffer.append(string) + + def indent(self) -> None: + """Increases the indentation.""" + self.current_indent += self.indent_increment + + def dedent(self) -> None: + """Decreases the indentation.""" + self.current_indent -= self.indent_increment + + def write_usage( + self, prog: str, args: str = "", prefix: t.Optional[str] = None + ) -> None: + """Writes a usage line into the buffer. + + :param prog: the program name. + :param args: whitespace separated list of arguments. + :param prefix: The prefix for the first line. Defaults to + ``"Usage: "``. + """ + if prefix is None: + prefix = f"{_('Usage:')} " + + usage_prefix = f"{prefix:>{self.current_indent}}{prog} " + text_width = self.width - self.current_indent + + if text_width >= (term_len(usage_prefix) + 20): + # The arguments will fit to the right of the prefix. + indent = " " * term_len(usage_prefix) + self.write( + wrap_text( + args, + text_width, + initial_indent=usage_prefix, + subsequent_indent=indent, + ) + ) + else: + # The prefix is too long, put the arguments on the next line. + self.write(usage_prefix) + self.write("\n") + indent = " " * (max(self.current_indent, term_len(prefix)) + 4) + self.write( + wrap_text( + args, text_width, initial_indent=indent, subsequent_indent=indent + ) + ) + + self.write("\n") + + def write_heading(self, heading: str) -> None: + """Writes a heading into the buffer.""" + self.write(f"{'':>{self.current_indent}}{heading}:\n") + + def write_paragraph(self) -> None: + """Writes a paragraph into the buffer.""" + if self.buffer: + self.write("\n") + + def write_text(self, text: str) -> None: + """Writes re-indented text into the buffer. This rewraps and + preserves paragraphs. + """ + indent = " " * self.current_indent + self.write( + wrap_text( + text, + self.width, + initial_indent=indent, + subsequent_indent=indent, + preserve_paragraphs=True, + ) + ) + self.write("\n") + + def write_dl( + self, + rows: t.Sequence[t.Tuple[str, str]], + col_max: int = 30, + col_spacing: int = 2, + ) -> None: + """Writes a definition list into the buffer. This is how options + and commands are usually formatted. + + :param rows: a list of two item tuples for the terms and values. + :param col_max: the maximum width of the first column. + :param col_spacing: the number of spaces between the first and + second column. + """ + rows = list(rows) + widths = measure_table(rows) + if len(widths) != 2: + raise TypeError("Expected two columns for definition list") + + first_col = min(widths[0], col_max) + col_spacing + + for first, second in iter_rows(rows, len(widths)): + self.write(f"{'':>{self.current_indent}}{first}") + if not second: + self.write("\n") + continue + if term_len(first) <= first_col - col_spacing: + self.write(" " * (first_col - term_len(first))) + else: + self.write("\n") + self.write(" " * (first_col + self.current_indent)) + + text_width = max(self.width - first_col - 2, 10) + wrapped_text = wrap_text(second, text_width, preserve_paragraphs=True) + lines = wrapped_text.splitlines() + + if lines: + self.write(f"{lines[0]}\n") + + for line in lines[1:]: + self.write(f"{'':>{first_col + self.current_indent}}{line}\n") + else: + self.write("\n") + + @contextmanager + def section(self, name: str) -> t.Iterator[None]: + """Helpful context manager that writes a paragraph, a heading, + and the indents. + + :param name: the section name that is written as heading. + """ + self.write_paragraph() + self.write_heading(name) + self.indent() + try: + yield + finally: + self.dedent() + + @contextmanager + def indentation(self) -> t.Iterator[None]: + """A context manager that increases the indentation.""" + self.indent() + try: + yield + finally: + self.dedent() + + def getvalue(self) -> str: + """Returns the buffer contents.""" + return "".join(self.buffer) + + +def join_options(options: t.Sequence[str]) -> t.Tuple[str, bool]: + """Given a list of option strings this joins them in the most appropriate + way and returns them in the form ``(formatted_string, + any_prefix_is_slash)`` where the second item in the tuple is a flag that + indicates if any of the option prefixes was a slash. + """ + rv = [] + any_prefix_is_slash = False + + for opt in options: + prefix = split_opt(opt)[0] + + if prefix == "/": + any_prefix_is_slash = True + + rv.append((len(prefix), opt)) + + rv.sort(key=lambda x: x[0]) + return ", ".join(x[1] for x in rv), any_prefix_is_slash diff --git a/venv/lib/python3.12/site-packages/click/globals.py b/venv/lib/python3.12/site-packages/click/globals.py new file mode 100644 index 0000000000..480058f10d --- /dev/null +++ b/venv/lib/python3.12/site-packages/click/globals.py @@ -0,0 +1,68 @@ +import typing as t +from threading import local + +if t.TYPE_CHECKING: + import typing_extensions as te + from .core import Context + +_local = local() + + +@t.overload +def get_current_context(silent: "te.Literal[False]" = False) -> "Context": + ... + + +@t.overload +def get_current_context(silent: bool = ...) -> t.Optional["Context"]: + ... + + +def get_current_context(silent: bool = False) -> t.Optional["Context"]: + """Returns the current click context. This can be used as a way to + access the current context object from anywhere. This is a more implicit + alternative to the :func:`pass_context` decorator. This function is + primarily useful for helpers such as :func:`echo` which might be + interested in changing its behavior based on the current context. + + To push the current context, :meth:`Context.scope` can be used. + + .. versionadded:: 5.0 + + :param silent: if set to `True` the return value is `None` if no context + is available. The default behavior is to raise a + :exc:`RuntimeError`. + """ + try: + return t.cast("Context", _local.stack[-1]) + except (AttributeError, IndexError) as e: + if not silent: + raise RuntimeError("There is no active click context.") from e + + return None + + +def push_context(ctx: "Context") -> None: + """Pushes a new context to the current stack.""" + _local.__dict__.setdefault("stack", []).append(ctx) + + +def pop_context() -> None: + """Removes the top level from the stack.""" + _local.stack.pop() + + +def resolve_color_default(color: t.Optional[bool] = None) -> t.Optional[bool]: + """Internal helper to get the default value of the color flag. If a + value is passed it's returned unchanged, otherwise it's looked up from + the current context. + """ + if color is not None: + return color + + ctx = get_current_context(silent=True) + + if ctx is not None: + return ctx.color + + return None diff --git a/venv/lib/python3.12/site-packages/click/parser.py b/venv/lib/python3.12/site-packages/click/parser.py new file mode 100644 index 0000000000..5fa7adfac8 --- /dev/null +++ b/venv/lib/python3.12/site-packages/click/parser.py @@ -0,0 +1,529 @@ +""" +This module started out as largely a copy paste from the stdlib's +optparse module with the features removed that we do not need from +optparse because we implement them in Click on a higher level (for +instance type handling, help formatting and a lot more). + +The plan is to remove more and more from here over time. + +The reason this is a different module and not optparse from the stdlib +is that there are differences in 2.x and 3.x about the error messages +generated and optparse in the stdlib uses gettext for no good reason +and might cause us issues. + +Click uses parts of optparse written by Gregory P. Ward and maintained +by the Python Software Foundation. This is limited to code in parser.py. + +Copyright 2001-2006 Gregory P. Ward. All rights reserved. +Copyright 2002-2006 Python Software Foundation. All rights reserved. +""" +# This code uses parts of optparse written by Gregory P. Ward and +# maintained by the Python Software Foundation. +# Copyright 2001-2006 Gregory P. Ward +# Copyright 2002-2006 Python Software Foundation +import typing as t +from collections import deque +from gettext import gettext as _ +from gettext import ngettext + +from .exceptions import BadArgumentUsage +from .exceptions import BadOptionUsage +from .exceptions import NoSuchOption +from .exceptions import UsageError + +if t.TYPE_CHECKING: + import typing_extensions as te + from .core import Argument as CoreArgument + from .core import Context + from .core import Option as CoreOption + from .core import Parameter as CoreParameter + +V = t.TypeVar("V") + +# Sentinel value that indicates an option was passed as a flag without a +# value but is not a flag option. Option.consume_value uses this to +# prompt or use the flag_value. +_flag_needs_value = object() + + +def _unpack_args( + args: t.Sequence[str], nargs_spec: t.Sequence[int] +) -> t.Tuple[t.Sequence[t.Union[str, t.Sequence[t.Optional[str]], None]], t.List[str]]: + """Given an iterable of arguments and an iterable of nargs specifications, + it returns a tuple with all the unpacked arguments at the first index + and all remaining arguments as the second. + + The nargs specification is the number of arguments that should be consumed + or `-1` to indicate that this position should eat up all the remainders. + + Missing items are filled with `None`. + """ + args = deque(args) + nargs_spec = deque(nargs_spec) + rv: t.List[t.Union[str, t.Tuple[t.Optional[str], ...], None]] = [] + spos: t.Optional[int] = None + + def _fetch(c: "te.Deque[V]") -> t.Optional[V]: + try: + if spos is None: + return c.popleft() + else: + return c.pop() + except IndexError: + return None + + while nargs_spec: + nargs = _fetch(nargs_spec) + + if nargs is None: + continue + + if nargs == 1: + rv.append(_fetch(args)) + elif nargs > 1: + x = [_fetch(args) for _ in range(nargs)] + + # If we're reversed, we're pulling in the arguments in reverse, + # so we need to turn them around. + if spos is not None: + x.reverse() + + rv.append(tuple(x)) + elif nargs < 0: + if spos is not None: + raise TypeError("Cannot have two nargs < 0") + + spos = len(rv) + rv.append(None) + + # spos is the position of the wildcard (star). If it's not `None`, + # we fill it with the remainder. + if spos is not None: + rv[spos] = tuple(args) + args = [] + rv[spos + 1 :] = reversed(rv[spos + 1 :]) + + return tuple(rv), list(args) + + +def split_opt(opt: str) -> t.Tuple[str, str]: + first = opt[:1] + if first.isalnum(): + return "", opt + if opt[1:2] == first: + return opt[:2], opt[2:] + return first, opt[1:] + + +def normalize_opt(opt: str, ctx: t.Optional["Context"]) -> str: + if ctx is None or ctx.token_normalize_func is None: + return opt + prefix, opt = split_opt(opt) + return f"{prefix}{ctx.token_normalize_func(opt)}" + + +def split_arg_string(string: str) -> t.List[str]: + """Split an argument string as with :func:`shlex.split`, but don't + fail if the string is incomplete. Ignores a missing closing quote or + incomplete escape sequence and uses the partial token as-is. + + .. code-block:: python + + split_arg_string("example 'my file") + ["example", "my file"] + + split_arg_string("example my\\") + ["example", "my"] + + :param string: String to split. + """ + import shlex + + lex = shlex.shlex(string, posix=True) + lex.whitespace_split = True + lex.commenters = "" + out = [] + + try: + for token in lex: + out.append(token) + except ValueError: + # Raised when end-of-string is reached in an invalid state. Use + # the partial token as-is. The quote or escape character is in + # lex.state, not lex.token. + out.append(lex.token) + + return out + + +class Option: + def __init__( + self, + obj: "CoreOption", + opts: t.Sequence[str], + dest: t.Optional[str], + action: t.Optional[str] = None, + nargs: int = 1, + const: t.Optional[t.Any] = None, + ): + self._short_opts = [] + self._long_opts = [] + self.prefixes: t.Set[str] = set() + + for opt in opts: + prefix, value = split_opt(opt) + if not prefix: + raise ValueError(f"Invalid start character for option ({opt})") + self.prefixes.add(prefix[0]) + if len(prefix) == 1 and len(value) == 1: + self._short_opts.append(opt) + else: + self._long_opts.append(opt) + self.prefixes.add(prefix) + + if action is None: + action = "store" + + self.dest = dest + self.action = action + self.nargs = nargs + self.const = const + self.obj = obj + + @property + def takes_value(self) -> bool: + return self.action in ("store", "append") + + def process(self, value: t.Any, state: "ParsingState") -> None: + if self.action == "store": + state.opts[self.dest] = value # type: ignore + elif self.action == "store_const": + state.opts[self.dest] = self.const # type: ignore + elif self.action == "append": + state.opts.setdefault(self.dest, []).append(value) # type: ignore + elif self.action == "append_const": + state.opts.setdefault(self.dest, []).append(self.const) # type: ignore + elif self.action == "count": + state.opts[self.dest] = state.opts.get(self.dest, 0) + 1 # type: ignore + else: + raise ValueError(f"unknown action '{self.action}'") + state.order.append(self.obj) + + +class Argument: + def __init__(self, obj: "CoreArgument", dest: t.Optional[str], nargs: int = 1): + self.dest = dest + self.nargs = nargs + self.obj = obj + + def process( + self, + value: t.Union[t.Optional[str], t.Sequence[t.Optional[str]]], + state: "ParsingState", + ) -> None: + if self.nargs > 1: + assert value is not None + holes = sum(1 for x in value if x is None) + if holes == len(value): + value = None + elif holes != 0: + raise BadArgumentUsage( + _("Argument {name!r} takes {nargs} values.").format( + name=self.dest, nargs=self.nargs + ) + ) + + if self.nargs == -1 and self.obj.envvar is not None and value == (): + # Replace empty tuple with None so that a value from the + # environment may be tried. + value = None + + state.opts[self.dest] = value # type: ignore + state.order.append(self.obj) + + +class ParsingState: + def __init__(self, rargs: t.List[str]) -> None: + self.opts: t.Dict[str, t.Any] = {} + self.largs: t.List[str] = [] + self.rargs = rargs + self.order: t.List["CoreParameter"] = [] + + +class OptionParser: + """The option parser is an internal class that is ultimately used to + parse options and arguments. It's modelled after optparse and brings + a similar but vastly simplified API. It should generally not be used + directly as the high level Click classes wrap it for you. + + It's not nearly as extensible as optparse or argparse as it does not + implement features that are implemented on a higher level (such as + types or defaults). + + :param ctx: optionally the :class:`~click.Context` where this parser + should go with. + """ + + def __init__(self, ctx: t.Optional["Context"] = None) -> None: + #: The :class:`~click.Context` for this parser. This might be + #: `None` for some advanced use cases. + self.ctx = ctx + #: This controls how the parser deals with interspersed arguments. + #: If this is set to `False`, the parser will stop on the first + #: non-option. Click uses this to implement nested subcommands + #: safely. + self.allow_interspersed_args: bool = True + #: This tells the parser how to deal with unknown options. By + #: default it will error out (which is sensible), but there is a + #: second mode where it will ignore it and continue processing + #: after shifting all the unknown options into the resulting args. + self.ignore_unknown_options: bool = False + + if ctx is not None: + self.allow_interspersed_args = ctx.allow_interspersed_args + self.ignore_unknown_options = ctx.ignore_unknown_options + + self._short_opt: t.Dict[str, Option] = {} + self._long_opt: t.Dict[str, Option] = {} + self._opt_prefixes = {"-", "--"} + self._args: t.List[Argument] = [] + + def add_option( + self, + obj: "CoreOption", + opts: t.Sequence[str], + dest: t.Optional[str], + action: t.Optional[str] = None, + nargs: int = 1, + const: t.Optional[t.Any] = None, + ) -> None: + """Adds a new option named `dest` to the parser. The destination + is not inferred (unlike with optparse) and needs to be explicitly + provided. Action can be any of ``store``, ``store_const``, + ``append``, ``append_const`` or ``count``. + + The `obj` can be used to identify the option in the order list + that is returned from the parser. + """ + opts = [normalize_opt(opt, self.ctx) for opt in opts] + option = Option(obj, opts, dest, action=action, nargs=nargs, const=const) + self._opt_prefixes.update(option.prefixes) + for opt in option._short_opts: + self._short_opt[opt] = option + for opt in option._long_opts: + self._long_opt[opt] = option + + def add_argument( + self, obj: "CoreArgument", dest: t.Optional[str], nargs: int = 1 + ) -> None: + """Adds a positional argument named `dest` to the parser. + + The `obj` can be used to identify the option in the order list + that is returned from the parser. + """ + self._args.append(Argument(obj, dest=dest, nargs=nargs)) + + def parse_args( + self, args: t.List[str] + ) -> t.Tuple[t.Dict[str, t.Any], t.List[str], t.List["CoreParameter"]]: + """Parses positional arguments and returns ``(values, args, order)`` + for the parsed options and arguments as well as the leftover + arguments if there are any. The order is a list of objects as they + appear on the command line. If arguments appear multiple times they + will be memorized multiple times as well. + """ + state = ParsingState(args) + try: + self._process_args_for_options(state) + self._process_args_for_args(state) + except UsageError: + if self.ctx is None or not self.ctx.resilient_parsing: + raise + return state.opts, state.largs, state.order + + def _process_args_for_args(self, state: ParsingState) -> None: + pargs, args = _unpack_args( + state.largs + state.rargs, [x.nargs for x in self._args] + ) + + for idx, arg in enumerate(self._args): + arg.process(pargs[idx], state) + + state.largs = args + state.rargs = [] + + def _process_args_for_options(self, state: ParsingState) -> None: + while state.rargs: + arg = state.rargs.pop(0) + arglen = len(arg) + # Double dashes always handled explicitly regardless of what + # prefixes are valid. + if arg == "--": + return + elif arg[:1] in self._opt_prefixes and arglen > 1: + self._process_opts(arg, state) + elif self.allow_interspersed_args: + state.largs.append(arg) + else: + state.rargs.insert(0, arg) + return + + # Say this is the original argument list: + # [arg0, arg1, ..., arg(i-1), arg(i), arg(i+1), ..., arg(N-1)] + # ^ + # (we are about to process arg(i)). + # + # Then rargs is [arg(i), ..., arg(N-1)] and largs is a *subset* of + # [arg0, ..., arg(i-1)] (any options and their arguments will have + # been removed from largs). + # + # The while loop will usually consume 1 or more arguments per pass. + # If it consumes 1 (eg. arg is an option that takes no arguments), + # then after _process_arg() is done the situation is: + # + # largs = subset of [arg0, ..., arg(i)] + # rargs = [arg(i+1), ..., arg(N-1)] + # + # If allow_interspersed_args is false, largs will always be + # *empty* -- still a subset of [arg0, ..., arg(i-1)], but + # not a very interesting subset! + + def _match_long_opt( + self, opt: str, explicit_value: t.Optional[str], state: ParsingState + ) -> None: + if opt not in self._long_opt: + from difflib import get_close_matches + + possibilities = get_close_matches(opt, self._long_opt) + raise NoSuchOption(opt, possibilities=possibilities, ctx=self.ctx) + + option = self._long_opt[opt] + if option.takes_value: + # At this point it's safe to modify rargs by injecting the + # explicit value, because no exception is raised in this + # branch. This means that the inserted value will be fully + # consumed. + if explicit_value is not None: + state.rargs.insert(0, explicit_value) + + value = self._get_value_from_state(opt, option, state) + + elif explicit_value is not None: + raise BadOptionUsage( + opt, _("Option {name!r} does not take a value.").format(name=opt) + ) + + else: + value = None + + option.process(value, state) + + def _match_short_opt(self, arg: str, state: ParsingState) -> None: + stop = False + i = 1 + prefix = arg[0] + unknown_options = [] + + for ch in arg[1:]: + opt = normalize_opt(f"{prefix}{ch}", self.ctx) + option = self._short_opt.get(opt) + i += 1 + + if not option: + if self.ignore_unknown_options: + unknown_options.append(ch) + continue + raise NoSuchOption(opt, ctx=self.ctx) + if option.takes_value: + # Any characters left in arg? Pretend they're the + # next arg, and stop consuming characters of arg. + if i < len(arg): + state.rargs.insert(0, arg[i:]) + stop = True + + value = self._get_value_from_state(opt, option, state) + + else: + value = None + + option.process(value, state) + + if stop: + break + + # If we got any unknown options we recombine the string of the + # remaining options and re-attach the prefix, then report that + # to the state as new larg. This way there is basic combinatorics + # that can be achieved while still ignoring unknown arguments. + if self.ignore_unknown_options and unknown_options: + state.largs.append(f"{prefix}{''.join(unknown_options)}") + + def _get_value_from_state( + self, option_name: str, option: Option, state: ParsingState + ) -> t.Any: + nargs = option.nargs + + if len(state.rargs) < nargs: + if option.obj._flag_needs_value: + # Option allows omitting the value. + value = _flag_needs_value + else: + raise BadOptionUsage( + option_name, + ngettext( + "Option {name!r} requires an argument.", + "Option {name!r} requires {nargs} arguments.", + nargs, + ).format(name=option_name, nargs=nargs), + ) + elif nargs == 1: + next_rarg = state.rargs[0] + + if ( + option.obj._flag_needs_value + and isinstance(next_rarg, str) + and next_rarg[:1] in self._opt_prefixes + and len(next_rarg) > 1 + ): + # The next arg looks like the start of an option, don't + # use it as the value if omitting the value is allowed. + value = _flag_needs_value + else: + value = state.rargs.pop(0) + else: + value = tuple(state.rargs[:nargs]) + del state.rargs[:nargs] + + return value + + def _process_opts(self, arg: str, state: ParsingState) -> None: + explicit_value = None + # Long option handling happens in two parts. The first part is + # supporting explicitly attached values. In any case, we will try + # to long match the option first. + if "=" in arg: + long_opt, explicit_value = arg.split("=", 1) + else: + long_opt = arg + norm_long_opt = normalize_opt(long_opt, self.ctx) + + # At this point we will match the (assumed) long option through + # the long option matching code. Note that this allows options + # like "-foo" to be matched as long options. + try: + self._match_long_opt(norm_long_opt, explicit_value, state) + except NoSuchOption: + # At this point the long option matching failed, and we need + # to try with short options. However there is a special rule + # which says, that if we have a two character options prefix + # (applies to "--foo" for instance), we do not dispatch to the + # short option code and will instead raise the no option + # error. + if arg[:2] not in self._opt_prefixes: + self._match_short_opt(arg, state) + return + + if not self.ignore_unknown_options: + raise + + state.largs.append(arg) diff --git a/venv/lib/python3.12/site-packages/click/py.typed b/venv/lib/python3.12/site-packages/click/py.typed new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/click/shell_completion.py b/venv/lib/python3.12/site-packages/click/shell_completion.py new file mode 100644 index 0000000000..dc9e00b9b0 --- /dev/null +++ b/venv/lib/python3.12/site-packages/click/shell_completion.py @@ -0,0 +1,596 @@ +import os +import re +import typing as t +from gettext import gettext as _ + +from .core import Argument +from .core import BaseCommand +from .core import Context +from .core import MultiCommand +from .core import Option +from .core import Parameter +from .core import ParameterSource +from .parser import split_arg_string +from .utils import echo + + +def shell_complete( + cli: BaseCommand, + ctx_args: t.MutableMapping[str, t.Any], + prog_name: str, + complete_var: str, + instruction: str, +) -> int: + """Perform shell completion for the given CLI program. + + :param cli: Command being called. + :param ctx_args: Extra arguments to pass to + ``cli.make_context``. + :param prog_name: Name of the executable in the shell. + :param complete_var: Name of the environment variable that holds + the completion instruction. + :param instruction: Value of ``complete_var`` with the completion + instruction and shell, in the form ``instruction_shell``. + :return: Status code to exit with. + """ + shell, _, instruction = instruction.partition("_") + comp_cls = get_completion_class(shell) + + if comp_cls is None: + return 1 + + comp = comp_cls(cli, ctx_args, prog_name, complete_var) + + if instruction == "source": + echo(comp.source()) + return 0 + + if instruction == "complete": + echo(comp.complete()) + return 0 + + return 1 + + +class CompletionItem: + """Represents a completion value and metadata about the value. The + default metadata is ``type`` to indicate special shell handling, + and ``help`` if a shell supports showing a help string next to the + value. + + Arbitrary parameters can be passed when creating the object, and + accessed using ``item.attr``. If an attribute wasn't passed, + accessing it returns ``None``. + + :param value: The completion suggestion. + :param type: Tells the shell script to provide special completion + support for the type. Click uses ``"dir"`` and ``"file"``. + :param help: String shown next to the value if supported. + :param kwargs: Arbitrary metadata. The built-in implementations + don't use this, but custom type completions paired with custom + shell support could use it. + """ + + __slots__ = ("value", "type", "help", "_info") + + def __init__( + self, + value: t.Any, + type: str = "plain", + help: t.Optional[str] = None, + **kwargs: t.Any, + ) -> None: + self.value: t.Any = value + self.type: str = type + self.help: t.Optional[str] = help + self._info = kwargs + + def __getattr__(self, name: str) -> t.Any: + return self._info.get(name) + + +# Only Bash >= 4.4 has the nosort option. +_SOURCE_BASH = """\ +%(complete_func)s() { + local IFS=$'\\n' + local response + + response=$(env COMP_WORDS="${COMP_WORDS[*]}" COMP_CWORD=$COMP_CWORD \ +%(complete_var)s=bash_complete $1) + + for completion in $response; do + IFS=',' read type value <<< "$completion" + + if [[ $type == 'dir' ]]; then + COMPREPLY=() + compopt -o dirnames + elif [[ $type == 'file' ]]; then + COMPREPLY=() + compopt -o default + elif [[ $type == 'plain' ]]; then + COMPREPLY+=($value) + fi + done + + return 0 +} + +%(complete_func)s_setup() { + complete -o nosort -F %(complete_func)s %(prog_name)s +} + +%(complete_func)s_setup; +""" + +_SOURCE_ZSH = """\ +#compdef %(prog_name)s + +%(complete_func)s() { + local -a completions + local -a completions_with_descriptions + local -a response + (( ! $+commands[%(prog_name)s] )) && return 1 + + response=("${(@f)$(env COMP_WORDS="${words[*]}" COMP_CWORD=$((CURRENT-1)) \ +%(complete_var)s=zsh_complete %(prog_name)s)}") + + for type key descr in ${response}; do + if [[ "$type" == "plain" ]]; then + if [[ "$descr" == "_" ]]; then + completions+=("$key") + else + completions_with_descriptions+=("$key":"$descr") + fi + elif [[ "$type" == "dir" ]]; then + _path_files -/ + elif [[ "$type" == "file" ]]; then + _path_files -f + fi + done + + if [ -n "$completions_with_descriptions" ]; then + _describe -V unsorted completions_with_descriptions -U + fi + + if [ -n "$completions" ]; then + compadd -U -V unsorted -a completions + fi +} + +if [[ $zsh_eval_context[-1] == loadautofunc ]]; then + # autoload from fpath, call function directly + %(complete_func)s "$@" +else + # eval/source/. command, register function for later + compdef %(complete_func)s %(prog_name)s +fi +""" + +_SOURCE_FISH = """\ +function %(complete_func)s; + set -l response (env %(complete_var)s=fish_complete COMP_WORDS=(commandline -cp) \ +COMP_CWORD=(commandline -t) %(prog_name)s); + + for completion in $response; + set -l metadata (string split "," $completion); + + if test $metadata[1] = "dir"; + __fish_complete_directories $metadata[2]; + else if test $metadata[1] = "file"; + __fish_complete_path $metadata[2]; + else if test $metadata[1] = "plain"; + echo $metadata[2]; + end; + end; +end; + +complete --no-files --command %(prog_name)s --arguments \ +"(%(complete_func)s)"; +""" + + +class ShellComplete: + """Base class for providing shell completion support. A subclass for + a given shell will override attributes and methods to implement the + completion instructions (``source`` and ``complete``). + + :param cli: Command being called. + :param prog_name: Name of the executable in the shell. + :param complete_var: Name of the environment variable that holds + the completion instruction. + + .. versionadded:: 8.0 + """ + + name: t.ClassVar[str] + """Name to register the shell as with :func:`add_completion_class`. + This is used in completion instructions (``{name}_source`` and + ``{name}_complete``). + """ + + source_template: t.ClassVar[str] + """Completion script template formatted by :meth:`source`. This must + be provided by subclasses. + """ + + def __init__( + self, + cli: BaseCommand, + ctx_args: t.MutableMapping[str, t.Any], + prog_name: str, + complete_var: str, + ) -> None: + self.cli = cli + self.ctx_args = ctx_args + self.prog_name = prog_name + self.complete_var = complete_var + + @property + def func_name(self) -> str: + """The name of the shell function defined by the completion + script. + """ + safe_name = re.sub(r"\W*", "", self.prog_name.replace("-", "_"), flags=re.ASCII) + return f"_{safe_name}_completion" + + def source_vars(self) -> t.Dict[str, t.Any]: + """Vars for formatting :attr:`source_template`. + + By default this provides ``complete_func``, ``complete_var``, + and ``prog_name``. + """ + return { + "complete_func": self.func_name, + "complete_var": self.complete_var, + "prog_name": self.prog_name, + } + + def source(self) -> str: + """Produce the shell script that defines the completion + function. By default this ``%``-style formats + :attr:`source_template` with the dict returned by + :meth:`source_vars`. + """ + return self.source_template % self.source_vars() + + def get_completion_args(self) -> t.Tuple[t.List[str], str]: + """Use the env vars defined by the shell script to return a + tuple of ``args, incomplete``. This must be implemented by + subclasses. + """ + raise NotImplementedError + + def get_completions( + self, args: t.List[str], incomplete: str + ) -> t.List[CompletionItem]: + """Determine the context and last complete command or parameter + from the complete args. Call that object's ``shell_complete`` + method to get the completions for the incomplete value. + + :param args: List of complete args before the incomplete value. + :param incomplete: Value being completed. May be empty. + """ + ctx = _resolve_context(self.cli, self.ctx_args, self.prog_name, args) + obj, incomplete = _resolve_incomplete(ctx, args, incomplete) + return obj.shell_complete(ctx, incomplete) + + def format_completion(self, item: CompletionItem) -> str: + """Format a completion item into the form recognized by the + shell script. This must be implemented by subclasses. + + :param item: Completion item to format. + """ + raise NotImplementedError + + def complete(self) -> str: + """Produce the completion data to send back to the shell. + + By default this calls :meth:`get_completion_args`, gets the + completions, then calls :meth:`format_completion` for each + completion. + """ + args, incomplete = self.get_completion_args() + completions = self.get_completions(args, incomplete) + out = [self.format_completion(item) for item in completions] + return "\n".join(out) + + +class BashComplete(ShellComplete): + """Shell completion for Bash.""" + + name = "bash" + source_template = _SOURCE_BASH + + @staticmethod + def _check_version() -> None: + import subprocess + + output = subprocess.run( + ["bash", "-c", 'echo "${BASH_VERSION}"'], stdout=subprocess.PIPE + ) + match = re.search(r"^(\d+)\.(\d+)\.\d+", output.stdout.decode()) + + if match is not None: + major, minor = match.groups() + + if major < "4" or major == "4" and minor < "4": + echo( + _( + "Shell completion is not supported for Bash" + " versions older than 4.4." + ), + err=True, + ) + else: + echo( + _("Couldn't detect Bash version, shell completion is not supported."), + err=True, + ) + + def source(self) -> str: + self._check_version() + return super().source() + + def get_completion_args(self) -> t.Tuple[t.List[str], str]: + cwords = split_arg_string(os.environ["COMP_WORDS"]) + cword = int(os.environ["COMP_CWORD"]) + args = cwords[1:cword] + + try: + incomplete = cwords[cword] + except IndexError: + incomplete = "" + + return args, incomplete + + def format_completion(self, item: CompletionItem) -> str: + return f"{item.type},{item.value}" + + +class ZshComplete(ShellComplete): + """Shell completion for Zsh.""" + + name = "zsh" + source_template = _SOURCE_ZSH + + def get_completion_args(self) -> t.Tuple[t.List[str], str]: + cwords = split_arg_string(os.environ["COMP_WORDS"]) + cword = int(os.environ["COMP_CWORD"]) + args = cwords[1:cword] + + try: + incomplete = cwords[cword] + except IndexError: + incomplete = "" + + return args, incomplete + + def format_completion(self, item: CompletionItem) -> str: + return f"{item.type}\n{item.value}\n{item.help if item.help else '_'}" + + +class FishComplete(ShellComplete): + """Shell completion for Fish.""" + + name = "fish" + source_template = _SOURCE_FISH + + def get_completion_args(self) -> t.Tuple[t.List[str], str]: + cwords = split_arg_string(os.environ["COMP_WORDS"]) + incomplete = os.environ["COMP_CWORD"] + args = cwords[1:] + + # Fish stores the partial word in both COMP_WORDS and + # COMP_CWORD, remove it from complete args. + if incomplete and args and args[-1] == incomplete: + args.pop() + + return args, incomplete + + def format_completion(self, item: CompletionItem) -> str: + if item.help: + return f"{item.type},{item.value}\t{item.help}" + + return f"{item.type},{item.value}" + + +ShellCompleteType = t.TypeVar("ShellCompleteType", bound=t.Type[ShellComplete]) + + +_available_shells: t.Dict[str, t.Type[ShellComplete]] = { + "bash": BashComplete, + "fish": FishComplete, + "zsh": ZshComplete, +} + + +def add_completion_class( + cls: ShellCompleteType, name: t.Optional[str] = None +) -> ShellCompleteType: + """Register a :class:`ShellComplete` subclass under the given name. + The name will be provided by the completion instruction environment + variable during completion. + + :param cls: The completion class that will handle completion for the + shell. + :param name: Name to register the class under. Defaults to the + class's ``name`` attribute. + """ + if name is None: + name = cls.name + + _available_shells[name] = cls + + return cls + + +def get_completion_class(shell: str) -> t.Optional[t.Type[ShellComplete]]: + """Look up a registered :class:`ShellComplete` subclass by the name + provided by the completion instruction environment variable. If the + name isn't registered, returns ``None``. + + :param shell: Name the class is registered under. + """ + return _available_shells.get(shell) + + +def _is_incomplete_argument(ctx: Context, param: Parameter) -> bool: + """Determine if the given parameter is an argument that can still + accept values. + + :param ctx: Invocation context for the command represented by the + parsed complete args. + :param param: Argument object being checked. + """ + if not isinstance(param, Argument): + return False + + assert param.name is not None + # Will be None if expose_value is False. + value = ctx.params.get(param.name) + return ( + param.nargs == -1 + or ctx.get_parameter_source(param.name) is not ParameterSource.COMMANDLINE + or ( + param.nargs > 1 + and isinstance(value, (tuple, list)) + and len(value) < param.nargs + ) + ) + + +def _start_of_option(ctx: Context, value: str) -> bool: + """Check if the value looks like the start of an option.""" + if not value: + return False + + c = value[0] + return c in ctx._opt_prefixes + + +def _is_incomplete_option(ctx: Context, args: t.List[str], param: Parameter) -> bool: + """Determine if the given parameter is an option that needs a value. + + :param args: List of complete args before the incomplete value. + :param param: Option object being checked. + """ + if not isinstance(param, Option): + return False + + if param.is_flag or param.count: + return False + + last_option = None + + for index, arg in enumerate(reversed(args)): + if index + 1 > param.nargs: + break + + if _start_of_option(ctx, arg): + last_option = arg + + return last_option is not None and last_option in param.opts + + +def _resolve_context( + cli: BaseCommand, + ctx_args: t.MutableMapping[str, t.Any], + prog_name: str, + args: t.List[str], +) -> Context: + """Produce the context hierarchy starting with the command and + traversing the complete arguments. This only follows the commands, + it doesn't trigger input prompts or callbacks. + + :param cli: Command being called. + :param prog_name: Name of the executable in the shell. + :param args: List of complete args before the incomplete value. + """ + ctx_args["resilient_parsing"] = True + ctx = cli.make_context(prog_name, args.copy(), **ctx_args) + args = ctx.protected_args + ctx.args + + while args: + command = ctx.command + + if isinstance(command, MultiCommand): + if not command.chain: + name, cmd, args = command.resolve_command(ctx, args) + + if cmd is None: + return ctx + + ctx = cmd.make_context(name, args, parent=ctx, resilient_parsing=True) + args = ctx.protected_args + ctx.args + else: + sub_ctx = ctx + + while args: + name, cmd, args = command.resolve_command(ctx, args) + + if cmd is None: + return ctx + + sub_ctx = cmd.make_context( + name, + args, + parent=ctx, + allow_extra_args=True, + allow_interspersed_args=False, + resilient_parsing=True, + ) + args = sub_ctx.args + + ctx = sub_ctx + args = [*sub_ctx.protected_args, *sub_ctx.args] + else: + break + + return ctx + + +def _resolve_incomplete( + ctx: Context, args: t.List[str], incomplete: str +) -> t.Tuple[t.Union[BaseCommand, Parameter], str]: + """Find the Click object that will handle the completion of the + incomplete value. Return the object and the incomplete value. + + :param ctx: Invocation context for the command represented by + the parsed complete args. + :param args: List of complete args before the incomplete value. + :param incomplete: Value being completed. May be empty. + """ + # Different shells treat an "=" between a long option name and + # value differently. Might keep the value joined, return the "=" + # as a separate item, or return the split name and value. Always + # split and discard the "=" to make completion easier. + if incomplete == "=": + incomplete = "" + elif "=" in incomplete and _start_of_option(ctx, incomplete): + name, _, incomplete = incomplete.partition("=") + args.append(name) + + # The "--" marker tells Click to stop treating values as options + # even if they start with the option character. If it hasn't been + # given and the incomplete arg looks like an option, the current + # command will provide option name completions. + if "--" not in args and _start_of_option(ctx, incomplete): + return ctx.command, incomplete + + params = ctx.command.get_params(ctx) + + # If the last complete arg is an option name with an incomplete + # value, the option will provide value completions. + for param in params: + if _is_incomplete_option(ctx, args, param): + return param, incomplete + + # It's not an option name or value. The first argument without a + # parsed value will provide value completions. + for param in params: + if _is_incomplete_argument(ctx, param): + return param, incomplete + + # There were no unparsed arguments, the command may be a group that + # will provide command name completions. + return ctx.command, incomplete diff --git a/venv/lib/python3.12/site-packages/click/termui.py b/venv/lib/python3.12/site-packages/click/termui.py new file mode 100644 index 0000000000..db7a4b2861 --- /dev/null +++ b/venv/lib/python3.12/site-packages/click/termui.py @@ -0,0 +1,784 @@ +import inspect +import io +import itertools +import sys +import typing as t +from gettext import gettext as _ + +from ._compat import isatty +from ._compat import strip_ansi +from .exceptions import Abort +from .exceptions import UsageError +from .globals import resolve_color_default +from .types import Choice +from .types import convert_type +from .types import ParamType +from .utils import echo +from .utils import LazyFile + +if t.TYPE_CHECKING: + from ._termui_impl import ProgressBar + +V = t.TypeVar("V") + +# The prompt functions to use. The doc tools currently override these +# functions to customize how they work. +visible_prompt_func: t.Callable[[str], str] = input + +_ansi_colors = { + "black": 30, + "red": 31, + "green": 32, + "yellow": 33, + "blue": 34, + "magenta": 35, + "cyan": 36, + "white": 37, + "reset": 39, + "bright_black": 90, + "bright_red": 91, + "bright_green": 92, + "bright_yellow": 93, + "bright_blue": 94, + "bright_magenta": 95, + "bright_cyan": 96, + "bright_white": 97, +} +_ansi_reset_all = "\033[0m" + + +def hidden_prompt_func(prompt: str) -> str: + import getpass + + return getpass.getpass(prompt) + + +def _build_prompt( + text: str, + suffix: str, + show_default: bool = False, + default: t.Optional[t.Any] = None, + show_choices: bool = True, + type: t.Optional[ParamType] = None, +) -> str: + prompt = text + if type is not None and show_choices and isinstance(type, Choice): + prompt += f" ({', '.join(map(str, type.choices))})" + if default is not None and show_default: + prompt = f"{prompt} [{_format_default(default)}]" + return f"{prompt}{suffix}" + + +def _format_default(default: t.Any) -> t.Any: + if isinstance(default, (io.IOBase, LazyFile)) and hasattr(default, "name"): + return default.name + + return default + + +def prompt( + text: str, + default: t.Optional[t.Any] = None, + hide_input: bool = False, + confirmation_prompt: t.Union[bool, str] = False, + type: t.Optional[t.Union[ParamType, t.Any]] = None, + value_proc: t.Optional[t.Callable[[str], t.Any]] = None, + prompt_suffix: str = ": ", + show_default: bool = True, + err: bool = False, + show_choices: bool = True, +) -> t.Any: + """Prompts a user for input. This is a convenience function that can + be used to prompt a user for input later. + + If the user aborts the input by sending an interrupt signal, this + function will catch it and raise a :exc:`Abort` exception. + + :param text: the text to show for the prompt. + :param default: the default value to use if no input happens. If this + is not given it will prompt until it's aborted. + :param hide_input: if this is set to true then the input value will + be hidden. + :param confirmation_prompt: Prompt a second time to confirm the + value. Can be set to a string instead of ``True`` to customize + the message. + :param type: the type to use to check the value against. + :param value_proc: if this parameter is provided it's a function that + is invoked instead of the type conversion to + convert a value. + :param prompt_suffix: a suffix that should be added to the prompt. + :param show_default: shows or hides the default value in the prompt. + :param err: if set to true the file defaults to ``stderr`` instead of + ``stdout``, the same as with echo. + :param show_choices: Show or hide choices if the passed type is a Choice. + For example if type is a Choice of either day or week, + show_choices is true and text is "Group by" then the + prompt will be "Group by (day, week): ". + + .. versionadded:: 8.0 + ``confirmation_prompt`` can be a custom string. + + .. versionadded:: 7.0 + Added the ``show_choices`` parameter. + + .. versionadded:: 6.0 + Added unicode support for cmd.exe on Windows. + + .. versionadded:: 4.0 + Added the `err` parameter. + + """ + + def prompt_func(text: str) -> str: + f = hidden_prompt_func if hide_input else visible_prompt_func + try: + # Write the prompt separately so that we get nice + # coloring through colorama on Windows + echo(text.rstrip(" "), nl=False, err=err) + # Echo a space to stdout to work around an issue where + # readline causes backspace to clear the whole line. + return f(" ") + except (KeyboardInterrupt, EOFError): + # getpass doesn't print a newline if the user aborts input with ^C. + # Allegedly this behavior is inherited from getpass(3). + # A doc bug has been filed at https://bugs.python.org/issue24711 + if hide_input: + echo(None, err=err) + raise Abort() from None + + if value_proc is None: + value_proc = convert_type(type, default) + + prompt = _build_prompt( + text, prompt_suffix, show_default, default, show_choices, type + ) + + if confirmation_prompt: + if confirmation_prompt is True: + confirmation_prompt = _("Repeat for confirmation") + + confirmation_prompt = _build_prompt(confirmation_prompt, prompt_suffix) + + while True: + while True: + value = prompt_func(prompt) + if value: + break + elif default is not None: + value = default + break + try: + result = value_proc(value) + except UsageError as e: + if hide_input: + echo(_("Error: The value you entered was invalid."), err=err) + else: + echo(_("Error: {e.message}").format(e=e), err=err) # noqa: B306 + continue + if not confirmation_prompt: + return result + while True: + value2 = prompt_func(confirmation_prompt) + is_empty = not value and not value2 + if value2 or is_empty: + break + if value == value2: + return result + echo(_("Error: The two entered values do not match."), err=err) + + +def confirm( + text: str, + default: t.Optional[bool] = False, + abort: bool = False, + prompt_suffix: str = ": ", + show_default: bool = True, + err: bool = False, +) -> bool: + """Prompts for confirmation (yes/no question). + + If the user aborts the input by sending a interrupt signal this + function will catch it and raise a :exc:`Abort` exception. + + :param text: the question to ask. + :param default: The default value to use when no input is given. If + ``None``, repeat until input is given. + :param abort: if this is set to `True` a negative answer aborts the + exception by raising :exc:`Abort`. + :param prompt_suffix: a suffix that should be added to the prompt. + :param show_default: shows or hides the default value in the prompt. + :param err: if set to true the file defaults to ``stderr`` instead of + ``stdout``, the same as with echo. + + .. versionchanged:: 8.0 + Repeat until input is given if ``default`` is ``None``. + + .. versionadded:: 4.0 + Added the ``err`` parameter. + """ + prompt = _build_prompt( + text, + prompt_suffix, + show_default, + "y/n" if default is None else ("Y/n" if default else "y/N"), + ) + + while True: + try: + # Write the prompt separately so that we get nice + # coloring through colorama on Windows + echo(prompt.rstrip(" "), nl=False, err=err) + # Echo a space to stdout to work around an issue where + # readline causes backspace to clear the whole line. + value = visible_prompt_func(" ").lower().strip() + except (KeyboardInterrupt, EOFError): + raise Abort() from None + if value in ("y", "yes"): + rv = True + elif value in ("n", "no"): + rv = False + elif default is not None and value == "": + rv = default + else: + echo(_("Error: invalid input"), err=err) + continue + break + if abort and not rv: + raise Abort() + return rv + + +def echo_via_pager( + text_or_generator: t.Union[t.Iterable[str], t.Callable[[], t.Iterable[str]], str], + color: t.Optional[bool] = None, +) -> None: + """This function takes a text and shows it via an environment specific + pager on stdout. + + .. versionchanged:: 3.0 + Added the `color` flag. + + :param text_or_generator: the text to page, or alternatively, a + generator emitting the text to page. + :param color: controls if the pager supports ANSI colors or not. The + default is autodetection. + """ + color = resolve_color_default(color) + + if inspect.isgeneratorfunction(text_or_generator): + i = t.cast(t.Callable[[], t.Iterable[str]], text_or_generator)() + elif isinstance(text_or_generator, str): + i = [text_or_generator] + else: + i = iter(t.cast(t.Iterable[str], text_or_generator)) + + # convert every element of i to a text type if necessary + text_generator = (el if isinstance(el, str) else str(el) for el in i) + + from ._termui_impl import pager + + return pager(itertools.chain(text_generator, "\n"), color) + + +def progressbar( + iterable: t.Optional[t.Iterable[V]] = None, + length: t.Optional[int] = None, + label: t.Optional[str] = None, + show_eta: bool = True, + show_percent: t.Optional[bool] = None, + show_pos: bool = False, + item_show_func: t.Optional[t.Callable[[t.Optional[V]], t.Optional[str]]] = None, + fill_char: str = "#", + empty_char: str = "-", + bar_template: str = "%(label)s [%(bar)s] %(info)s", + info_sep: str = " ", + width: int = 36, + file: t.Optional[t.TextIO] = None, + color: t.Optional[bool] = None, + update_min_steps: int = 1, +) -> "ProgressBar[V]": + """This function creates an iterable context manager that can be used + to iterate over something while showing a progress bar. It will + either iterate over the `iterable` or `length` items (that are counted + up). While iteration happens, this function will print a rendered + progress bar to the given `file` (defaults to stdout) and will attempt + to calculate remaining time and more. By default, this progress bar + will not be rendered if the file is not a terminal. + + The context manager creates the progress bar. When the context + manager is entered the progress bar is already created. With every + iteration over the progress bar, the iterable passed to the bar is + advanced and the bar is updated. When the context manager exits, + a newline is printed and the progress bar is finalized on screen. + + Note: The progress bar is currently designed for use cases where the + total progress can be expected to take at least several seconds. + Because of this, the ProgressBar class object won't display + progress that is considered too fast, and progress where the time + between steps is less than a second. + + No printing must happen or the progress bar will be unintentionally + destroyed. + + Example usage:: + + with progressbar(items) as bar: + for item in bar: + do_something_with(item) + + Alternatively, if no iterable is specified, one can manually update the + progress bar through the `update()` method instead of directly + iterating over the progress bar. The update method accepts the number + of steps to increment the bar with:: + + with progressbar(length=chunks.total_bytes) as bar: + for chunk in chunks: + process_chunk(chunk) + bar.update(chunks.bytes) + + The ``update()`` method also takes an optional value specifying the + ``current_item`` at the new position. This is useful when used + together with ``item_show_func`` to customize the output for each + manual step:: + + with click.progressbar( + length=total_size, + label='Unzipping archive', + item_show_func=lambda a: a.filename + ) as bar: + for archive in zip_file: + archive.extract() + bar.update(archive.size, archive) + + :param iterable: an iterable to iterate over. If not provided the length + is required. + :param length: the number of items to iterate over. By default the + progressbar will attempt to ask the iterator about its + length, which might or might not work. If an iterable is + also provided this parameter can be used to override the + length. If an iterable is not provided the progress bar + will iterate over a range of that length. + :param label: the label to show next to the progress bar. + :param show_eta: enables or disables the estimated time display. This is + automatically disabled if the length cannot be + determined. + :param show_percent: enables or disables the percentage display. The + default is `True` if the iterable has a length or + `False` if not. + :param show_pos: enables or disables the absolute position display. The + default is `False`. + :param item_show_func: A function called with the current item which + can return a string to show next to the progress bar. If the + function returns ``None`` nothing is shown. The current item can + be ``None``, such as when entering and exiting the bar. + :param fill_char: the character to use to show the filled part of the + progress bar. + :param empty_char: the character to use to show the non-filled part of + the progress bar. + :param bar_template: the format string to use as template for the bar. + The parameters in it are ``label`` for the label, + ``bar`` for the progress bar and ``info`` for the + info section. + :param info_sep: the separator between multiple info items (eta etc.) + :param width: the width of the progress bar in characters, 0 means full + terminal width + :param file: The file to write to. If this is not a terminal then + only the label is printed. + :param color: controls if the terminal supports ANSI colors or not. The + default is autodetection. This is only needed if ANSI + codes are included anywhere in the progress bar output + which is not the case by default. + :param update_min_steps: Render only when this many updates have + completed. This allows tuning for very fast iterators. + + .. versionchanged:: 8.0 + Output is shown even if execution time is less than 0.5 seconds. + + .. versionchanged:: 8.0 + ``item_show_func`` shows the current item, not the previous one. + + .. versionchanged:: 8.0 + Labels are echoed if the output is not a TTY. Reverts a change + in 7.0 that removed all output. + + .. versionadded:: 8.0 + Added the ``update_min_steps`` parameter. + + .. versionchanged:: 4.0 + Added the ``color`` parameter. Added the ``update`` method to + the object. + + .. versionadded:: 2.0 + """ + from ._termui_impl import ProgressBar + + color = resolve_color_default(color) + return ProgressBar( + iterable=iterable, + length=length, + show_eta=show_eta, + show_percent=show_percent, + show_pos=show_pos, + item_show_func=item_show_func, + fill_char=fill_char, + empty_char=empty_char, + bar_template=bar_template, + info_sep=info_sep, + file=file, + label=label, + width=width, + color=color, + update_min_steps=update_min_steps, + ) + + +def clear() -> None: + """Clears the terminal screen. This will have the effect of clearing + the whole visible space of the terminal and moving the cursor to the + top left. This does not do anything if not connected to a terminal. + + .. versionadded:: 2.0 + """ + if not isatty(sys.stdout): + return + + # ANSI escape \033[2J clears the screen, \033[1;1H moves the cursor + echo("\033[2J\033[1;1H", nl=False) + + +def _interpret_color( + color: t.Union[int, t.Tuple[int, int, int], str], offset: int = 0 +) -> str: + if isinstance(color, int): + return f"{38 + offset};5;{color:d}" + + if isinstance(color, (tuple, list)): + r, g, b = color + return f"{38 + offset};2;{r:d};{g:d};{b:d}" + + return str(_ansi_colors[color] + offset) + + +def style( + text: t.Any, + fg: t.Optional[t.Union[int, t.Tuple[int, int, int], str]] = None, + bg: t.Optional[t.Union[int, t.Tuple[int, int, int], str]] = None, + bold: t.Optional[bool] = None, + dim: t.Optional[bool] = None, + underline: t.Optional[bool] = None, + overline: t.Optional[bool] = None, + italic: t.Optional[bool] = None, + blink: t.Optional[bool] = None, + reverse: t.Optional[bool] = None, + strikethrough: t.Optional[bool] = None, + reset: bool = True, +) -> str: + """Styles a text with ANSI styles and returns the new string. By + default the styling is self contained which means that at the end + of the string a reset code is issued. This can be prevented by + passing ``reset=False``. + + Examples:: + + click.echo(click.style('Hello World!', fg='green')) + click.echo(click.style('ATTENTION!', blink=True)) + click.echo(click.style('Some things', reverse=True, fg='cyan')) + click.echo(click.style('More colors', fg=(255, 12, 128), bg=117)) + + Supported color names: + + * ``black`` (might be a gray) + * ``red`` + * ``green`` + * ``yellow`` (might be an orange) + * ``blue`` + * ``magenta`` + * ``cyan`` + * ``white`` (might be light gray) + * ``bright_black`` + * ``bright_red`` + * ``bright_green`` + * ``bright_yellow`` + * ``bright_blue`` + * ``bright_magenta`` + * ``bright_cyan`` + * ``bright_white`` + * ``reset`` (reset the color code only) + + If the terminal supports it, color may also be specified as: + + - An integer in the interval [0, 255]. The terminal must support + 8-bit/256-color mode. + - An RGB tuple of three integers in [0, 255]. The terminal must + support 24-bit/true-color mode. + + See https://en.wikipedia.org/wiki/ANSI_color and + https://gist.github.com/XVilka/8346728 for more information. + + :param text: the string to style with ansi codes. + :param fg: if provided this will become the foreground color. + :param bg: if provided this will become the background color. + :param bold: if provided this will enable or disable bold mode. + :param dim: if provided this will enable or disable dim mode. This is + badly supported. + :param underline: if provided this will enable or disable underline. + :param overline: if provided this will enable or disable overline. + :param italic: if provided this will enable or disable italic. + :param blink: if provided this will enable or disable blinking. + :param reverse: if provided this will enable or disable inverse + rendering (foreground becomes background and the + other way round). + :param strikethrough: if provided this will enable or disable + striking through text. + :param reset: by default a reset-all code is added at the end of the + string which means that styles do not carry over. This + can be disabled to compose styles. + + .. versionchanged:: 8.0 + A non-string ``message`` is converted to a string. + + .. versionchanged:: 8.0 + Added support for 256 and RGB color codes. + + .. versionchanged:: 8.0 + Added the ``strikethrough``, ``italic``, and ``overline`` + parameters. + + .. versionchanged:: 7.0 + Added support for bright colors. + + .. versionadded:: 2.0 + """ + if not isinstance(text, str): + text = str(text) + + bits = [] + + if fg: + try: + bits.append(f"\033[{_interpret_color(fg)}m") + except KeyError: + raise TypeError(f"Unknown color {fg!r}") from None + + if bg: + try: + bits.append(f"\033[{_interpret_color(bg, 10)}m") + except KeyError: + raise TypeError(f"Unknown color {bg!r}") from None + + if bold is not None: + bits.append(f"\033[{1 if bold else 22}m") + if dim is not None: + bits.append(f"\033[{2 if dim else 22}m") + if underline is not None: + bits.append(f"\033[{4 if underline else 24}m") + if overline is not None: + bits.append(f"\033[{53 if overline else 55}m") + if italic is not None: + bits.append(f"\033[{3 if italic else 23}m") + if blink is not None: + bits.append(f"\033[{5 if blink else 25}m") + if reverse is not None: + bits.append(f"\033[{7 if reverse else 27}m") + if strikethrough is not None: + bits.append(f"\033[{9 if strikethrough else 29}m") + bits.append(text) + if reset: + bits.append(_ansi_reset_all) + return "".join(bits) + + +def unstyle(text: str) -> str: + """Removes ANSI styling information from a string. Usually it's not + necessary to use this function as Click's echo function will + automatically remove styling if necessary. + + .. versionadded:: 2.0 + + :param text: the text to remove style information from. + """ + return strip_ansi(text) + + +def secho( + message: t.Optional[t.Any] = None, + file: t.Optional[t.IO[t.AnyStr]] = None, + nl: bool = True, + err: bool = False, + color: t.Optional[bool] = None, + **styles: t.Any, +) -> None: + """This function combines :func:`echo` and :func:`style` into one + call. As such the following two calls are the same:: + + click.secho('Hello World!', fg='green') + click.echo(click.style('Hello World!', fg='green')) + + All keyword arguments are forwarded to the underlying functions + depending on which one they go with. + + Non-string types will be converted to :class:`str`. However, + :class:`bytes` are passed directly to :meth:`echo` without applying + style. If you want to style bytes that represent text, call + :meth:`bytes.decode` first. + + .. versionchanged:: 8.0 + A non-string ``message`` is converted to a string. Bytes are + passed through without style applied. + + .. versionadded:: 2.0 + """ + if message is not None and not isinstance(message, (bytes, bytearray)): + message = style(message, **styles) + + return echo(message, file=file, nl=nl, err=err, color=color) + + +def edit( + text: t.Optional[t.AnyStr] = None, + editor: t.Optional[str] = None, + env: t.Optional[t.Mapping[str, str]] = None, + require_save: bool = True, + extension: str = ".txt", + filename: t.Optional[str] = None, +) -> t.Optional[t.AnyStr]: + r"""Edits the given text in the defined editor. If an editor is given + (should be the full path to the executable but the regular operating + system search path is used for finding the executable) it overrides + the detected editor. Optionally, some environment variables can be + used. If the editor is closed without changes, `None` is returned. In + case a file is edited directly the return value is always `None` and + `require_save` and `extension` are ignored. + + If the editor cannot be opened a :exc:`UsageError` is raised. + + Note for Windows: to simplify cross-platform usage, the newlines are + automatically converted from POSIX to Windows and vice versa. As such, + the message here will have ``\n`` as newline markers. + + :param text: the text to edit. + :param editor: optionally the editor to use. Defaults to automatic + detection. + :param env: environment variables to forward to the editor. + :param require_save: if this is true, then not saving in the editor + will make the return value become `None`. + :param extension: the extension to tell the editor about. This defaults + to `.txt` but changing this might change syntax + highlighting. + :param filename: if provided it will edit this file instead of the + provided text contents. It will not use a temporary + file as an indirection in that case. + """ + from ._termui_impl import Editor + + ed = Editor(editor=editor, env=env, require_save=require_save, extension=extension) + + if filename is None: + return ed.edit(text) + + ed.edit_file(filename) + return None + + +def launch(url: str, wait: bool = False, locate: bool = False) -> int: + """This function launches the given URL (or filename) in the default + viewer application for this file type. If this is an executable, it + might launch the executable in a new session. The return value is + the exit code of the launched application. Usually, ``0`` indicates + success. + + Examples:: + + click.launch('https://click.palletsprojects.com/') + click.launch('/my/downloaded/file', locate=True) + + .. versionadded:: 2.0 + + :param url: URL or filename of the thing to launch. + :param wait: Wait for the program to exit before returning. This + only works if the launched program blocks. In particular, + ``xdg-open`` on Linux does not block. + :param locate: if this is set to `True` then instead of launching the + application associated with the URL it will attempt to + launch a file manager with the file located. This + might have weird effects if the URL does not point to + the filesystem. + """ + from ._termui_impl import open_url + + return open_url(url, wait=wait, locate=locate) + + +# If this is provided, getchar() calls into this instead. This is used +# for unittesting purposes. +_getchar: t.Optional[t.Callable[[bool], str]] = None + + +def getchar(echo: bool = False) -> str: + """Fetches a single character from the terminal and returns it. This + will always return a unicode character and under certain rare + circumstances this might return more than one character. The + situations which more than one character is returned is when for + whatever reason multiple characters end up in the terminal buffer or + standard input was not actually a terminal. + + Note that this will always read from the terminal, even if something + is piped into the standard input. + + Note for Windows: in rare cases when typing non-ASCII characters, this + function might wait for a second character and then return both at once. + This is because certain Unicode characters look like special-key markers. + + .. versionadded:: 2.0 + + :param echo: if set to `True`, the character read will also show up on + the terminal. The default is to not show it. + """ + global _getchar + + if _getchar is None: + from ._termui_impl import getchar as f + + _getchar = f + + return _getchar(echo) + + +def raw_terminal() -> t.ContextManager[int]: + from ._termui_impl import raw_terminal as f + + return f() + + +def pause(info: t.Optional[str] = None, err: bool = False) -> None: + """This command stops execution and waits for the user to press any + key to continue. This is similar to the Windows batch "pause" + command. If the program is not run through a terminal, this command + will instead do nothing. + + .. versionadded:: 2.0 + + .. versionadded:: 4.0 + Added the `err` parameter. + + :param info: The message to print before pausing. Defaults to + ``"Press any key to continue..."``. + :param err: if set to message goes to ``stderr`` instead of + ``stdout``, the same as with echo. + """ + if not isatty(sys.stdin) or not isatty(sys.stdout): + return + + if info is None: + info = _("Press any key to continue...") + + try: + if info: + echo(info, nl=False, err=err) + try: + getchar() + except (KeyboardInterrupt, EOFError): + pass + finally: + if info: + echo(err=err) diff --git a/venv/lib/python3.12/site-packages/click/testing.py b/venv/lib/python3.12/site-packages/click/testing.py new file mode 100644 index 0000000000..e0df0d2a65 --- /dev/null +++ b/venv/lib/python3.12/site-packages/click/testing.py @@ -0,0 +1,479 @@ +import contextlib +import io +import os +import shlex +import shutil +import sys +import tempfile +import typing as t +from types import TracebackType + +from . import formatting +from . import termui +from . import utils +from ._compat import _find_binary_reader + +if t.TYPE_CHECKING: + from .core import BaseCommand + + +class EchoingStdin: + def __init__(self, input: t.BinaryIO, output: t.BinaryIO) -> None: + self._input = input + self._output = output + self._paused = False + + def __getattr__(self, x: str) -> t.Any: + return getattr(self._input, x) + + def _echo(self, rv: bytes) -> bytes: + if not self._paused: + self._output.write(rv) + + return rv + + def read(self, n: int = -1) -> bytes: + return self._echo(self._input.read(n)) + + def read1(self, n: int = -1) -> bytes: + return self._echo(self._input.read1(n)) # type: ignore + + def readline(self, n: int = -1) -> bytes: + return self._echo(self._input.readline(n)) + + def readlines(self) -> t.List[bytes]: + return [self._echo(x) for x in self._input.readlines()] + + def __iter__(self) -> t.Iterator[bytes]: + return iter(self._echo(x) for x in self._input) + + def __repr__(self) -> str: + return repr(self._input) + + +@contextlib.contextmanager +def _pause_echo(stream: t.Optional[EchoingStdin]) -> t.Iterator[None]: + if stream is None: + yield + else: + stream._paused = True + yield + stream._paused = False + + +class _NamedTextIOWrapper(io.TextIOWrapper): + def __init__( + self, buffer: t.BinaryIO, name: str, mode: str, **kwargs: t.Any + ) -> None: + super().__init__(buffer, **kwargs) + self._name = name + self._mode = mode + + @property + def name(self) -> str: + return self._name + + @property + def mode(self) -> str: + return self._mode + + +def make_input_stream( + input: t.Optional[t.Union[str, bytes, t.IO[t.Any]]], charset: str +) -> t.BinaryIO: + # Is already an input stream. + if hasattr(input, "read"): + rv = _find_binary_reader(t.cast(t.IO[t.Any], input)) + + if rv is not None: + return rv + + raise TypeError("Could not find binary reader for input stream.") + + if input is None: + input = b"" + elif isinstance(input, str): + input = input.encode(charset) + + return io.BytesIO(input) + + +class Result: + """Holds the captured result of an invoked CLI script.""" + + def __init__( + self, + runner: "CliRunner", + stdout_bytes: bytes, + stderr_bytes: t.Optional[bytes], + return_value: t.Any, + exit_code: int, + exception: t.Optional[BaseException], + exc_info: t.Optional[ + t.Tuple[t.Type[BaseException], BaseException, TracebackType] + ] = None, + ): + #: The runner that created the result + self.runner = runner + #: The standard output as bytes. + self.stdout_bytes = stdout_bytes + #: The standard error as bytes, or None if not available + self.stderr_bytes = stderr_bytes + #: The value returned from the invoked command. + #: + #: .. versionadded:: 8.0 + self.return_value = return_value + #: The exit code as integer. + self.exit_code = exit_code + #: The exception that happened if one did. + self.exception = exception + #: The traceback + self.exc_info = exc_info + + @property + def output(self) -> str: + """The (standard) output as unicode string.""" + return self.stdout + + @property + def stdout(self) -> str: + """The standard output as unicode string.""" + return self.stdout_bytes.decode(self.runner.charset, "replace").replace( + "\r\n", "\n" + ) + + @property + def stderr(self) -> str: + """The standard error as unicode string.""" + if self.stderr_bytes is None: + raise ValueError("stderr not separately captured") + return self.stderr_bytes.decode(self.runner.charset, "replace").replace( + "\r\n", "\n" + ) + + def __repr__(self) -> str: + exc_str = repr(self.exception) if self.exception else "okay" + return f"<{type(self).__name__} {exc_str}>" + + +class CliRunner: + """The CLI runner provides functionality to invoke a Click command line + script for unittesting purposes in a isolated environment. This only + works in single-threaded systems without any concurrency as it changes the + global interpreter state. + + :param charset: the character set for the input and output data. + :param env: a dictionary with environment variables for overriding. + :param echo_stdin: if this is set to `True`, then reading from stdin writes + to stdout. This is useful for showing examples in + some circumstances. Note that regular prompts + will automatically echo the input. + :param mix_stderr: if this is set to `False`, then stdout and stderr are + preserved as independent streams. This is useful for + Unix-philosophy apps that have predictable stdout and + noisy stderr, such that each may be measured + independently + """ + + def __init__( + self, + charset: str = "utf-8", + env: t.Optional[t.Mapping[str, t.Optional[str]]] = None, + echo_stdin: bool = False, + mix_stderr: bool = True, + ) -> None: + self.charset = charset + self.env: t.Mapping[str, t.Optional[str]] = env or {} + self.echo_stdin = echo_stdin + self.mix_stderr = mix_stderr + + def get_default_prog_name(self, cli: "BaseCommand") -> str: + """Given a command object it will return the default program name + for it. The default is the `name` attribute or ``"root"`` if not + set. + """ + return cli.name or "root" + + def make_env( + self, overrides: t.Optional[t.Mapping[str, t.Optional[str]]] = None + ) -> t.Mapping[str, t.Optional[str]]: + """Returns the environment overrides for invoking a script.""" + rv = dict(self.env) + if overrides: + rv.update(overrides) + return rv + + @contextlib.contextmanager + def isolation( + self, + input: t.Optional[t.Union[str, bytes, t.IO[t.Any]]] = None, + env: t.Optional[t.Mapping[str, t.Optional[str]]] = None, + color: bool = False, + ) -> t.Iterator[t.Tuple[io.BytesIO, t.Optional[io.BytesIO]]]: + """A context manager that sets up the isolation for invoking of a + command line tool. This sets up stdin with the given input data + and `os.environ` with the overrides from the given dictionary. + This also rebinds some internals in Click to be mocked (like the + prompt functionality). + + This is automatically done in the :meth:`invoke` method. + + :param input: the input stream to put into sys.stdin. + :param env: the environment overrides as dictionary. + :param color: whether the output should contain color codes. The + application can still override this explicitly. + + .. versionchanged:: 8.0 + ``stderr`` is opened with ``errors="backslashreplace"`` + instead of the default ``"strict"``. + + .. versionchanged:: 4.0 + Added the ``color`` parameter. + """ + bytes_input = make_input_stream(input, self.charset) + echo_input = None + + old_stdin = sys.stdin + old_stdout = sys.stdout + old_stderr = sys.stderr + old_forced_width = formatting.FORCED_WIDTH + formatting.FORCED_WIDTH = 80 + + env = self.make_env(env) + + bytes_output = io.BytesIO() + + if self.echo_stdin: + bytes_input = echo_input = t.cast( + t.BinaryIO, EchoingStdin(bytes_input, bytes_output) + ) + + sys.stdin = text_input = _NamedTextIOWrapper( + bytes_input, encoding=self.charset, name="", mode="r" + ) + + if self.echo_stdin: + # Force unbuffered reads, otherwise TextIOWrapper reads a + # large chunk which is echoed early. + text_input._CHUNK_SIZE = 1 # type: ignore + + sys.stdout = _NamedTextIOWrapper( + bytes_output, encoding=self.charset, name="", mode="w" + ) + + bytes_error = None + if self.mix_stderr: + sys.stderr = sys.stdout + else: + bytes_error = io.BytesIO() + sys.stderr = _NamedTextIOWrapper( + bytes_error, + encoding=self.charset, + name="", + mode="w", + errors="backslashreplace", + ) + + @_pause_echo(echo_input) # type: ignore + def visible_input(prompt: t.Optional[str] = None) -> str: + sys.stdout.write(prompt or "") + val = text_input.readline().rstrip("\r\n") + sys.stdout.write(f"{val}\n") + sys.stdout.flush() + return val + + @_pause_echo(echo_input) # type: ignore + def hidden_input(prompt: t.Optional[str] = None) -> str: + sys.stdout.write(f"{prompt or ''}\n") + sys.stdout.flush() + return text_input.readline().rstrip("\r\n") + + @_pause_echo(echo_input) # type: ignore + def _getchar(echo: bool) -> str: + char = sys.stdin.read(1) + + if echo: + sys.stdout.write(char) + + sys.stdout.flush() + return char + + default_color = color + + def should_strip_ansi( + stream: t.Optional[t.IO[t.Any]] = None, color: t.Optional[bool] = None + ) -> bool: + if color is None: + return not default_color + return not color + + old_visible_prompt_func = termui.visible_prompt_func + old_hidden_prompt_func = termui.hidden_prompt_func + old__getchar_func = termui._getchar + old_should_strip_ansi = utils.should_strip_ansi # type: ignore + termui.visible_prompt_func = visible_input + termui.hidden_prompt_func = hidden_input + termui._getchar = _getchar + utils.should_strip_ansi = should_strip_ansi # type: ignore + + old_env = {} + try: + for key, value in env.items(): + old_env[key] = os.environ.get(key) + if value is None: + try: + del os.environ[key] + except Exception: + pass + else: + os.environ[key] = value + yield (bytes_output, bytes_error) + finally: + for key, value in old_env.items(): + if value is None: + try: + del os.environ[key] + except Exception: + pass + else: + os.environ[key] = value + sys.stdout = old_stdout + sys.stderr = old_stderr + sys.stdin = old_stdin + termui.visible_prompt_func = old_visible_prompt_func + termui.hidden_prompt_func = old_hidden_prompt_func + termui._getchar = old__getchar_func + utils.should_strip_ansi = old_should_strip_ansi # type: ignore + formatting.FORCED_WIDTH = old_forced_width + + def invoke( + self, + cli: "BaseCommand", + args: t.Optional[t.Union[str, t.Sequence[str]]] = None, + input: t.Optional[t.Union[str, bytes, t.IO[t.Any]]] = None, + env: t.Optional[t.Mapping[str, t.Optional[str]]] = None, + catch_exceptions: bool = True, + color: bool = False, + **extra: t.Any, + ) -> Result: + """Invokes a command in an isolated environment. The arguments are + forwarded directly to the command line script, the `extra` keyword + arguments are passed to the :meth:`~clickpkg.Command.main` function of + the command. + + This returns a :class:`Result` object. + + :param cli: the command to invoke + :param args: the arguments to invoke. It may be given as an iterable + or a string. When given as string it will be interpreted + as a Unix shell command. More details at + :func:`shlex.split`. + :param input: the input data for `sys.stdin`. + :param env: the environment overrides. + :param catch_exceptions: Whether to catch any other exceptions than + ``SystemExit``. + :param extra: the keyword arguments to pass to :meth:`main`. + :param color: whether the output should contain color codes. The + application can still override this explicitly. + + .. versionchanged:: 8.0 + The result object has the ``return_value`` attribute with + the value returned from the invoked command. + + .. versionchanged:: 4.0 + Added the ``color`` parameter. + + .. versionchanged:: 3.0 + Added the ``catch_exceptions`` parameter. + + .. versionchanged:: 3.0 + The result object has the ``exc_info`` attribute with the + traceback if available. + """ + exc_info = None + with self.isolation(input=input, env=env, color=color) as outstreams: + return_value = None + exception: t.Optional[BaseException] = None + exit_code = 0 + + if isinstance(args, str): + args = shlex.split(args) + + try: + prog_name = extra.pop("prog_name") + except KeyError: + prog_name = self.get_default_prog_name(cli) + + try: + return_value = cli.main(args=args or (), prog_name=prog_name, **extra) + except SystemExit as e: + exc_info = sys.exc_info() + e_code = t.cast(t.Optional[t.Union[int, t.Any]], e.code) + + if e_code is None: + e_code = 0 + + if e_code != 0: + exception = e + + if not isinstance(e_code, int): + sys.stdout.write(str(e_code)) + sys.stdout.write("\n") + e_code = 1 + + exit_code = e_code + + except Exception as e: + if not catch_exceptions: + raise + exception = e + exit_code = 1 + exc_info = sys.exc_info() + finally: + sys.stdout.flush() + stdout = outstreams[0].getvalue() + if self.mix_stderr: + stderr = None + else: + stderr = outstreams[1].getvalue() # type: ignore + + return Result( + runner=self, + stdout_bytes=stdout, + stderr_bytes=stderr, + return_value=return_value, + exit_code=exit_code, + exception=exception, + exc_info=exc_info, # type: ignore + ) + + @contextlib.contextmanager + def isolated_filesystem( + self, temp_dir: t.Optional[t.Union[str, "os.PathLike[str]"]] = None + ) -> t.Iterator[str]: + """A context manager that creates a temporary directory and + changes the current working directory to it. This isolates tests + that affect the contents of the CWD to prevent them from + interfering with each other. + + :param temp_dir: Create the temporary directory under this + directory. If given, the created directory is not removed + when exiting. + + .. versionchanged:: 8.0 + Added the ``temp_dir`` parameter. + """ + cwd = os.getcwd() + dt = tempfile.mkdtemp(dir=temp_dir) + os.chdir(dt) + + try: + yield dt + finally: + os.chdir(cwd) + + if temp_dir is None: + try: + shutil.rmtree(dt) + except OSError: # noqa: B014 + pass diff --git a/venv/lib/python3.12/site-packages/click/types.py b/venv/lib/python3.12/site-packages/click/types.py new file mode 100644 index 0000000000..2b1d1797f2 --- /dev/null +++ b/venv/lib/python3.12/site-packages/click/types.py @@ -0,0 +1,1089 @@ +import os +import stat +import sys +import typing as t +from datetime import datetime +from gettext import gettext as _ +from gettext import ngettext + +from ._compat import _get_argv_encoding +from ._compat import open_stream +from .exceptions import BadParameter +from .utils import format_filename +from .utils import LazyFile +from .utils import safecall + +if t.TYPE_CHECKING: + import typing_extensions as te + from .core import Context + from .core import Parameter + from .shell_completion import CompletionItem + + +class ParamType: + """Represents the type of a parameter. Validates and converts values + from the command line or Python into the correct type. + + To implement a custom type, subclass and implement at least the + following: + + - The :attr:`name` class attribute must be set. + - Calling an instance of the type with ``None`` must return + ``None``. This is already implemented by default. + - :meth:`convert` must convert string values to the correct type. + - :meth:`convert` must accept values that are already the correct + type. + - It must be able to convert a value if the ``ctx`` and ``param`` + arguments are ``None``. This can occur when converting prompt + input. + """ + + is_composite: t.ClassVar[bool] = False + arity: t.ClassVar[int] = 1 + + #: the descriptive name of this type + name: str + + #: if a list of this type is expected and the value is pulled from a + #: string environment variable, this is what splits it up. `None` + #: means any whitespace. For all parameters the general rule is that + #: whitespace splits them up. The exception are paths and files which + #: are split by ``os.path.pathsep`` by default (":" on Unix and ";" on + #: Windows). + envvar_list_splitter: t.ClassVar[t.Optional[str]] = None + + def to_info_dict(self) -> t.Dict[str, t.Any]: + """Gather information that could be useful for a tool generating + user-facing documentation. + + Use :meth:`click.Context.to_info_dict` to traverse the entire + CLI structure. + + .. versionadded:: 8.0 + """ + # The class name without the "ParamType" suffix. + param_type = type(self).__name__.partition("ParamType")[0] + param_type = param_type.partition("ParameterType")[0] + + # Custom subclasses might not remember to set a name. + if hasattr(self, "name"): + name = self.name + else: + name = param_type + + return {"param_type": param_type, "name": name} + + def __call__( + self, + value: t.Any, + param: t.Optional["Parameter"] = None, + ctx: t.Optional["Context"] = None, + ) -> t.Any: + if value is not None: + return self.convert(value, param, ctx) + + def get_metavar(self, param: "Parameter") -> t.Optional[str]: + """Returns the metavar default for this param if it provides one.""" + + def get_missing_message(self, param: "Parameter") -> t.Optional[str]: + """Optionally might return extra information about a missing + parameter. + + .. versionadded:: 2.0 + """ + + def convert( + self, value: t.Any, param: t.Optional["Parameter"], ctx: t.Optional["Context"] + ) -> t.Any: + """Convert the value to the correct type. This is not called if + the value is ``None`` (the missing value). + + This must accept string values from the command line, as well as + values that are already the correct type. It may also convert + other compatible types. + + The ``param`` and ``ctx`` arguments may be ``None`` in certain + situations, such as when converting prompt input. + + If the value cannot be converted, call :meth:`fail` with a + descriptive message. + + :param value: The value to convert. + :param param: The parameter that is using this type to convert + its value. May be ``None``. + :param ctx: The current context that arrived at this value. May + be ``None``. + """ + return value + + def split_envvar_value(self, rv: str) -> t.Sequence[str]: + """Given a value from an environment variable this splits it up + into small chunks depending on the defined envvar list splitter. + + If the splitter is set to `None`, which means that whitespace splits, + then leading and trailing whitespace is ignored. Otherwise, leading + and trailing splitters usually lead to empty items being included. + """ + return (rv or "").split(self.envvar_list_splitter) + + def fail( + self, + message: str, + param: t.Optional["Parameter"] = None, + ctx: t.Optional["Context"] = None, + ) -> "t.NoReturn": + """Helper method to fail with an invalid value message.""" + raise BadParameter(message, ctx=ctx, param=param) + + def shell_complete( + self, ctx: "Context", param: "Parameter", incomplete: str + ) -> t.List["CompletionItem"]: + """Return a list of + :class:`~click.shell_completion.CompletionItem` objects for the + incomplete value. Most types do not provide completions, but + some do, and this allows custom types to provide custom + completions as well. + + :param ctx: Invocation context for this command. + :param param: The parameter that is requesting completion. + :param incomplete: Value being completed. May be empty. + + .. versionadded:: 8.0 + """ + return [] + + +class CompositeParamType(ParamType): + is_composite = True + + @property + def arity(self) -> int: # type: ignore + raise NotImplementedError() + + +class FuncParamType(ParamType): + def __init__(self, func: t.Callable[[t.Any], t.Any]) -> None: + self.name: str = func.__name__ + self.func = func + + def to_info_dict(self) -> t.Dict[str, t.Any]: + info_dict = super().to_info_dict() + info_dict["func"] = self.func + return info_dict + + def convert( + self, value: t.Any, param: t.Optional["Parameter"], ctx: t.Optional["Context"] + ) -> t.Any: + try: + return self.func(value) + except ValueError: + try: + value = str(value) + except UnicodeError: + value = value.decode("utf-8", "replace") + + self.fail(value, param, ctx) + + +class UnprocessedParamType(ParamType): + name = "text" + + def convert( + self, value: t.Any, param: t.Optional["Parameter"], ctx: t.Optional["Context"] + ) -> t.Any: + return value + + def __repr__(self) -> str: + return "UNPROCESSED" + + +class StringParamType(ParamType): + name = "text" + + def convert( + self, value: t.Any, param: t.Optional["Parameter"], ctx: t.Optional["Context"] + ) -> t.Any: + if isinstance(value, bytes): + enc = _get_argv_encoding() + try: + value = value.decode(enc) + except UnicodeError: + fs_enc = sys.getfilesystemencoding() + if fs_enc != enc: + try: + value = value.decode(fs_enc) + except UnicodeError: + value = value.decode("utf-8", "replace") + else: + value = value.decode("utf-8", "replace") + return value + return str(value) + + def __repr__(self) -> str: + return "STRING" + + +class Choice(ParamType): + """The choice type allows a value to be checked against a fixed set + of supported values. All of these values have to be strings. + + You should only pass a list or tuple of choices. Other iterables + (like generators) may lead to surprising results. + + The resulting value will always be one of the originally passed choices + regardless of ``case_sensitive`` or any ``ctx.token_normalize_func`` + being specified. + + See :ref:`choice-opts` for an example. + + :param case_sensitive: Set to false to make choices case + insensitive. Defaults to true. + """ + + name = "choice" + + def __init__(self, choices: t.Sequence[str], case_sensitive: bool = True) -> None: + self.choices = choices + self.case_sensitive = case_sensitive + + def to_info_dict(self) -> t.Dict[str, t.Any]: + info_dict = super().to_info_dict() + info_dict["choices"] = self.choices + info_dict["case_sensitive"] = self.case_sensitive + return info_dict + + def get_metavar(self, param: "Parameter") -> str: + choices_str = "|".join(self.choices) + + # Use curly braces to indicate a required argument. + if param.required and param.param_type_name == "argument": + return f"{{{choices_str}}}" + + # Use square braces to indicate an option or optional argument. + return f"[{choices_str}]" + + def get_missing_message(self, param: "Parameter") -> str: + return _("Choose from:\n\t{choices}").format(choices=",\n\t".join(self.choices)) + + def convert( + self, value: t.Any, param: t.Optional["Parameter"], ctx: t.Optional["Context"] + ) -> t.Any: + # Match through normalization and case sensitivity + # first do token_normalize_func, then lowercase + # preserve original `value` to produce an accurate message in + # `self.fail` + normed_value = value + normed_choices = {choice: choice for choice in self.choices} + + if ctx is not None and ctx.token_normalize_func is not None: + normed_value = ctx.token_normalize_func(value) + normed_choices = { + ctx.token_normalize_func(normed_choice): original + for normed_choice, original in normed_choices.items() + } + + if not self.case_sensitive: + normed_value = normed_value.casefold() + normed_choices = { + normed_choice.casefold(): original + for normed_choice, original in normed_choices.items() + } + + if normed_value in normed_choices: + return normed_choices[normed_value] + + choices_str = ", ".join(map(repr, self.choices)) + self.fail( + ngettext( + "{value!r} is not {choice}.", + "{value!r} is not one of {choices}.", + len(self.choices), + ).format(value=value, choice=choices_str, choices=choices_str), + param, + ctx, + ) + + def __repr__(self) -> str: + return f"Choice({list(self.choices)})" + + def shell_complete( + self, ctx: "Context", param: "Parameter", incomplete: str + ) -> t.List["CompletionItem"]: + """Complete choices that start with the incomplete value. + + :param ctx: Invocation context for this command. + :param param: The parameter that is requesting completion. + :param incomplete: Value being completed. May be empty. + + .. versionadded:: 8.0 + """ + from click.shell_completion import CompletionItem + + str_choices = map(str, self.choices) + + if self.case_sensitive: + matched = (c for c in str_choices if c.startswith(incomplete)) + else: + incomplete = incomplete.lower() + matched = (c for c in str_choices if c.lower().startswith(incomplete)) + + return [CompletionItem(c) for c in matched] + + +class DateTime(ParamType): + """The DateTime type converts date strings into `datetime` objects. + + The format strings which are checked are configurable, but default to some + common (non-timezone aware) ISO 8601 formats. + + When specifying *DateTime* formats, you should only pass a list or a tuple. + Other iterables, like generators, may lead to surprising results. + + The format strings are processed using ``datetime.strptime``, and this + consequently defines the format strings which are allowed. + + Parsing is tried using each format, in order, and the first format which + parses successfully is used. + + :param formats: A list or tuple of date format strings, in the order in + which they should be tried. Defaults to + ``'%Y-%m-%d'``, ``'%Y-%m-%dT%H:%M:%S'``, + ``'%Y-%m-%d %H:%M:%S'``. + """ + + name = "datetime" + + def __init__(self, formats: t.Optional[t.Sequence[str]] = None): + self.formats: t.Sequence[str] = formats or [ + "%Y-%m-%d", + "%Y-%m-%dT%H:%M:%S", + "%Y-%m-%d %H:%M:%S", + ] + + def to_info_dict(self) -> t.Dict[str, t.Any]: + info_dict = super().to_info_dict() + info_dict["formats"] = self.formats + return info_dict + + def get_metavar(self, param: "Parameter") -> str: + return f"[{'|'.join(self.formats)}]" + + def _try_to_convert_date(self, value: t.Any, format: str) -> t.Optional[datetime]: + try: + return datetime.strptime(value, format) + except ValueError: + return None + + def convert( + self, value: t.Any, param: t.Optional["Parameter"], ctx: t.Optional["Context"] + ) -> t.Any: + if isinstance(value, datetime): + return value + + for format in self.formats: + converted = self._try_to_convert_date(value, format) + + if converted is not None: + return converted + + formats_str = ", ".join(map(repr, self.formats)) + self.fail( + ngettext( + "{value!r} does not match the format {format}.", + "{value!r} does not match the formats {formats}.", + len(self.formats), + ).format(value=value, format=formats_str, formats=formats_str), + param, + ctx, + ) + + def __repr__(self) -> str: + return "DateTime" + + +class _NumberParamTypeBase(ParamType): + _number_class: t.ClassVar[t.Type[t.Any]] + + def convert( + self, value: t.Any, param: t.Optional["Parameter"], ctx: t.Optional["Context"] + ) -> t.Any: + try: + return self._number_class(value) + except ValueError: + self.fail( + _("{value!r} is not a valid {number_type}.").format( + value=value, number_type=self.name + ), + param, + ctx, + ) + + +class _NumberRangeBase(_NumberParamTypeBase): + def __init__( + self, + min: t.Optional[float] = None, + max: t.Optional[float] = None, + min_open: bool = False, + max_open: bool = False, + clamp: bool = False, + ) -> None: + self.min = min + self.max = max + self.min_open = min_open + self.max_open = max_open + self.clamp = clamp + + def to_info_dict(self) -> t.Dict[str, t.Any]: + info_dict = super().to_info_dict() + info_dict.update( + min=self.min, + max=self.max, + min_open=self.min_open, + max_open=self.max_open, + clamp=self.clamp, + ) + return info_dict + + def convert( + self, value: t.Any, param: t.Optional["Parameter"], ctx: t.Optional["Context"] + ) -> t.Any: + import operator + + rv = super().convert(value, param, ctx) + lt_min: bool = self.min is not None and ( + operator.le if self.min_open else operator.lt + )(rv, self.min) + gt_max: bool = self.max is not None and ( + operator.ge if self.max_open else operator.gt + )(rv, self.max) + + if self.clamp: + if lt_min: + return self._clamp(self.min, 1, self.min_open) # type: ignore + + if gt_max: + return self._clamp(self.max, -1, self.max_open) # type: ignore + + if lt_min or gt_max: + self.fail( + _("{value} is not in the range {range}.").format( + value=rv, range=self._describe_range() + ), + param, + ctx, + ) + + return rv + + def _clamp(self, bound: float, dir: "te.Literal[1, -1]", open: bool) -> float: + """Find the valid value to clamp to bound in the given + direction. + + :param bound: The boundary value. + :param dir: 1 or -1 indicating the direction to move. + :param open: If true, the range does not include the bound. + """ + raise NotImplementedError + + def _describe_range(self) -> str: + """Describe the range for use in help text.""" + if self.min is None: + op = "<" if self.max_open else "<=" + return f"x{op}{self.max}" + + if self.max is None: + op = ">" if self.min_open else ">=" + return f"x{op}{self.min}" + + lop = "<" if self.min_open else "<=" + rop = "<" if self.max_open else "<=" + return f"{self.min}{lop}x{rop}{self.max}" + + def __repr__(self) -> str: + clamp = " clamped" if self.clamp else "" + return f"<{type(self).__name__} {self._describe_range()}{clamp}>" + + +class IntParamType(_NumberParamTypeBase): + name = "integer" + _number_class = int + + def __repr__(self) -> str: + return "INT" + + +class IntRange(_NumberRangeBase, IntParamType): + """Restrict an :data:`click.INT` value to a range of accepted + values. See :ref:`ranges`. + + If ``min`` or ``max`` are not passed, any value is accepted in that + direction. If ``min_open`` or ``max_open`` are enabled, the + corresponding boundary is not included in the range. + + If ``clamp`` is enabled, a value outside the range is clamped to the + boundary instead of failing. + + .. versionchanged:: 8.0 + Added the ``min_open`` and ``max_open`` parameters. + """ + + name = "integer range" + + def _clamp( # type: ignore + self, bound: int, dir: "te.Literal[1, -1]", open: bool + ) -> int: + if not open: + return bound + + return bound + dir + + +class FloatParamType(_NumberParamTypeBase): + name = "float" + _number_class = float + + def __repr__(self) -> str: + return "FLOAT" + + +class FloatRange(_NumberRangeBase, FloatParamType): + """Restrict a :data:`click.FLOAT` value to a range of accepted + values. See :ref:`ranges`. + + If ``min`` or ``max`` are not passed, any value is accepted in that + direction. If ``min_open`` or ``max_open`` are enabled, the + corresponding boundary is not included in the range. + + If ``clamp`` is enabled, a value outside the range is clamped to the + boundary instead of failing. This is not supported if either + boundary is marked ``open``. + + .. versionchanged:: 8.0 + Added the ``min_open`` and ``max_open`` parameters. + """ + + name = "float range" + + def __init__( + self, + min: t.Optional[float] = None, + max: t.Optional[float] = None, + min_open: bool = False, + max_open: bool = False, + clamp: bool = False, + ) -> None: + super().__init__( + min=min, max=max, min_open=min_open, max_open=max_open, clamp=clamp + ) + + if (min_open or max_open) and clamp: + raise TypeError("Clamping is not supported for open bounds.") + + def _clamp(self, bound: float, dir: "te.Literal[1, -1]", open: bool) -> float: + if not open: + return bound + + # Could use Python 3.9's math.nextafter here, but clamping an + # open float range doesn't seem to be particularly useful. It's + # left up to the user to write a callback to do it if needed. + raise RuntimeError("Clamping is not supported for open bounds.") + + +class BoolParamType(ParamType): + name = "boolean" + + def convert( + self, value: t.Any, param: t.Optional["Parameter"], ctx: t.Optional["Context"] + ) -> t.Any: + if value in {False, True}: + return bool(value) + + norm = value.strip().lower() + + if norm in {"1", "true", "t", "yes", "y", "on"}: + return True + + if norm in {"0", "false", "f", "no", "n", "off"}: + return False + + self.fail( + _("{value!r} is not a valid boolean.").format(value=value), param, ctx + ) + + def __repr__(self) -> str: + return "BOOL" + + +class UUIDParameterType(ParamType): + name = "uuid" + + def convert( + self, value: t.Any, param: t.Optional["Parameter"], ctx: t.Optional["Context"] + ) -> t.Any: + import uuid + + if isinstance(value, uuid.UUID): + return value + + value = value.strip() + + try: + return uuid.UUID(value) + except ValueError: + self.fail( + _("{value!r} is not a valid UUID.").format(value=value), param, ctx + ) + + def __repr__(self) -> str: + return "UUID" + + +class File(ParamType): + """Declares a parameter to be a file for reading or writing. The file + is automatically closed once the context tears down (after the command + finished working). + + Files can be opened for reading or writing. The special value ``-`` + indicates stdin or stdout depending on the mode. + + By default, the file is opened for reading text data, but it can also be + opened in binary mode or for writing. The encoding parameter can be used + to force a specific encoding. + + The `lazy` flag controls if the file should be opened immediately or upon + first IO. The default is to be non-lazy for standard input and output + streams as well as files opened for reading, `lazy` otherwise. When opening a + file lazily for reading, it is still opened temporarily for validation, but + will not be held open until first IO. lazy is mainly useful when opening + for writing to avoid creating the file until it is needed. + + Starting with Click 2.0, files can also be opened atomically in which + case all writes go into a separate file in the same folder and upon + completion the file will be moved over to the original location. This + is useful if a file regularly read by other users is modified. + + See :ref:`file-args` for more information. + """ + + name = "filename" + envvar_list_splitter: t.ClassVar[str] = os.path.pathsep + + def __init__( + self, + mode: str = "r", + encoding: t.Optional[str] = None, + errors: t.Optional[str] = "strict", + lazy: t.Optional[bool] = None, + atomic: bool = False, + ) -> None: + self.mode = mode + self.encoding = encoding + self.errors = errors + self.lazy = lazy + self.atomic = atomic + + def to_info_dict(self) -> t.Dict[str, t.Any]: + info_dict = super().to_info_dict() + info_dict.update(mode=self.mode, encoding=self.encoding) + return info_dict + + def resolve_lazy_flag(self, value: "t.Union[str, os.PathLike[str]]") -> bool: + if self.lazy is not None: + return self.lazy + if os.fspath(value) == "-": + return False + elif "w" in self.mode: + return True + return False + + def convert( + self, + value: t.Union[str, "os.PathLike[str]", t.IO[t.Any]], + param: t.Optional["Parameter"], + ctx: t.Optional["Context"], + ) -> t.IO[t.Any]: + if _is_file_like(value): + return value + + value = t.cast("t.Union[str, os.PathLike[str]]", value) + + try: + lazy = self.resolve_lazy_flag(value) + + if lazy: + lf = LazyFile( + value, self.mode, self.encoding, self.errors, atomic=self.atomic + ) + + if ctx is not None: + ctx.call_on_close(lf.close_intelligently) + + return t.cast(t.IO[t.Any], lf) + + f, should_close = open_stream( + value, self.mode, self.encoding, self.errors, atomic=self.atomic + ) + + # If a context is provided, we automatically close the file + # at the end of the context execution (or flush out). If a + # context does not exist, it's the caller's responsibility to + # properly close the file. This for instance happens when the + # type is used with prompts. + if ctx is not None: + if should_close: + ctx.call_on_close(safecall(f.close)) + else: + ctx.call_on_close(safecall(f.flush)) + + return f + except OSError as e: # noqa: B014 + self.fail(f"'{format_filename(value)}': {e.strerror}", param, ctx) + + def shell_complete( + self, ctx: "Context", param: "Parameter", incomplete: str + ) -> t.List["CompletionItem"]: + """Return a special completion marker that tells the completion + system to use the shell to provide file path completions. + + :param ctx: Invocation context for this command. + :param param: The parameter that is requesting completion. + :param incomplete: Value being completed. May be empty. + + .. versionadded:: 8.0 + """ + from click.shell_completion import CompletionItem + + return [CompletionItem(incomplete, type="file")] + + +def _is_file_like(value: t.Any) -> "te.TypeGuard[t.IO[t.Any]]": + return hasattr(value, "read") or hasattr(value, "write") + + +class Path(ParamType): + """The ``Path`` type is similar to the :class:`File` type, but + returns the filename instead of an open file. Various checks can be + enabled to validate the type of file and permissions. + + :param exists: The file or directory needs to exist for the value to + be valid. If this is not set to ``True``, and the file does not + exist, then all further checks are silently skipped. + :param file_okay: Allow a file as a value. + :param dir_okay: Allow a directory as a value. + :param readable: if true, a readable check is performed. + :param writable: if true, a writable check is performed. + :param executable: if true, an executable check is performed. + :param resolve_path: Make the value absolute and resolve any + symlinks. A ``~`` is not expanded, as this is supposed to be + done by the shell only. + :param allow_dash: Allow a single dash as a value, which indicates + a standard stream (but does not open it). Use + :func:`~click.open_file` to handle opening this value. + :param path_type: Convert the incoming path value to this type. If + ``None``, keep Python's default, which is ``str``. Useful to + convert to :class:`pathlib.Path`. + + .. versionchanged:: 8.1 + Added the ``executable`` parameter. + + .. versionchanged:: 8.0 + Allow passing ``path_type=pathlib.Path``. + + .. versionchanged:: 6.0 + Added the ``allow_dash`` parameter. + """ + + envvar_list_splitter: t.ClassVar[str] = os.path.pathsep + + def __init__( + self, + exists: bool = False, + file_okay: bool = True, + dir_okay: bool = True, + writable: bool = False, + readable: bool = True, + resolve_path: bool = False, + allow_dash: bool = False, + path_type: t.Optional[t.Type[t.Any]] = None, + executable: bool = False, + ): + self.exists = exists + self.file_okay = file_okay + self.dir_okay = dir_okay + self.readable = readable + self.writable = writable + self.executable = executable + self.resolve_path = resolve_path + self.allow_dash = allow_dash + self.type = path_type + + if self.file_okay and not self.dir_okay: + self.name: str = _("file") + elif self.dir_okay and not self.file_okay: + self.name = _("directory") + else: + self.name = _("path") + + def to_info_dict(self) -> t.Dict[str, t.Any]: + info_dict = super().to_info_dict() + info_dict.update( + exists=self.exists, + file_okay=self.file_okay, + dir_okay=self.dir_okay, + writable=self.writable, + readable=self.readable, + allow_dash=self.allow_dash, + ) + return info_dict + + def coerce_path_result( + self, value: "t.Union[str, os.PathLike[str]]" + ) -> "t.Union[str, bytes, os.PathLike[str]]": + if self.type is not None and not isinstance(value, self.type): + if self.type is str: + return os.fsdecode(value) + elif self.type is bytes: + return os.fsencode(value) + else: + return t.cast("os.PathLike[str]", self.type(value)) + + return value + + def convert( + self, + value: "t.Union[str, os.PathLike[str]]", + param: t.Optional["Parameter"], + ctx: t.Optional["Context"], + ) -> "t.Union[str, bytes, os.PathLike[str]]": + rv = value + + is_dash = self.file_okay and self.allow_dash and rv in (b"-", "-") + + if not is_dash: + if self.resolve_path: + # os.path.realpath doesn't resolve symlinks on Windows + # until Python 3.8. Use pathlib for now. + import pathlib + + rv = os.fsdecode(pathlib.Path(rv).resolve()) + + try: + st = os.stat(rv) + except OSError: + if not self.exists: + return self.coerce_path_result(rv) + self.fail( + _("{name} {filename!r} does not exist.").format( + name=self.name.title(), filename=format_filename(value) + ), + param, + ctx, + ) + + if not self.file_okay and stat.S_ISREG(st.st_mode): + self.fail( + _("{name} {filename!r} is a file.").format( + name=self.name.title(), filename=format_filename(value) + ), + param, + ctx, + ) + if not self.dir_okay and stat.S_ISDIR(st.st_mode): + self.fail( + _("{name} '{filename}' is a directory.").format( + name=self.name.title(), filename=format_filename(value) + ), + param, + ctx, + ) + + if self.readable and not os.access(rv, os.R_OK): + self.fail( + _("{name} {filename!r} is not readable.").format( + name=self.name.title(), filename=format_filename(value) + ), + param, + ctx, + ) + + if self.writable and not os.access(rv, os.W_OK): + self.fail( + _("{name} {filename!r} is not writable.").format( + name=self.name.title(), filename=format_filename(value) + ), + param, + ctx, + ) + + if self.executable and not os.access(value, os.X_OK): + self.fail( + _("{name} {filename!r} is not executable.").format( + name=self.name.title(), filename=format_filename(value) + ), + param, + ctx, + ) + + return self.coerce_path_result(rv) + + def shell_complete( + self, ctx: "Context", param: "Parameter", incomplete: str + ) -> t.List["CompletionItem"]: + """Return a special completion marker that tells the completion + system to use the shell to provide path completions for only + directories or any paths. + + :param ctx: Invocation context for this command. + :param param: The parameter that is requesting completion. + :param incomplete: Value being completed. May be empty. + + .. versionadded:: 8.0 + """ + from click.shell_completion import CompletionItem + + type = "dir" if self.dir_okay and not self.file_okay else "file" + return [CompletionItem(incomplete, type=type)] + + +class Tuple(CompositeParamType): + """The default behavior of Click is to apply a type on a value directly. + This works well in most cases, except for when `nargs` is set to a fixed + count and different types should be used for different items. In this + case the :class:`Tuple` type can be used. This type can only be used + if `nargs` is set to a fixed number. + + For more information see :ref:`tuple-type`. + + This can be selected by using a Python tuple literal as a type. + + :param types: a list of types that should be used for the tuple items. + """ + + def __init__(self, types: t.Sequence[t.Union[t.Type[t.Any], ParamType]]) -> None: + self.types: t.Sequence[ParamType] = [convert_type(ty) for ty in types] + + def to_info_dict(self) -> t.Dict[str, t.Any]: + info_dict = super().to_info_dict() + info_dict["types"] = [t.to_info_dict() for t in self.types] + return info_dict + + @property + def name(self) -> str: # type: ignore + return f"<{' '.join(ty.name for ty in self.types)}>" + + @property + def arity(self) -> int: # type: ignore + return len(self.types) + + def convert( + self, value: t.Any, param: t.Optional["Parameter"], ctx: t.Optional["Context"] + ) -> t.Any: + len_type = len(self.types) + len_value = len(value) + + if len_value != len_type: + self.fail( + ngettext( + "{len_type} values are required, but {len_value} was given.", + "{len_type} values are required, but {len_value} were given.", + len_value, + ).format(len_type=len_type, len_value=len_value), + param=param, + ctx=ctx, + ) + + return tuple(ty(x, param, ctx) for ty, x in zip(self.types, value)) + + +def convert_type(ty: t.Optional[t.Any], default: t.Optional[t.Any] = None) -> ParamType: + """Find the most appropriate :class:`ParamType` for the given Python + type. If the type isn't provided, it can be inferred from a default + value. + """ + guessed_type = False + + if ty is None and default is not None: + if isinstance(default, (tuple, list)): + # If the default is empty, ty will remain None and will + # return STRING. + if default: + item = default[0] + + # A tuple of tuples needs to detect the inner types. + # Can't call convert recursively because that would + # incorrectly unwind the tuple to a single type. + if isinstance(item, (tuple, list)): + ty = tuple(map(type, item)) + else: + ty = type(item) + else: + ty = type(default) + + guessed_type = True + + if isinstance(ty, tuple): + return Tuple(ty) + + if isinstance(ty, ParamType): + return ty + + if ty is str or ty is None: + return STRING + + if ty is int: + return INT + + if ty is float: + return FLOAT + + if ty is bool: + return BOOL + + if guessed_type: + return STRING + + if __debug__: + try: + if issubclass(ty, ParamType): + raise AssertionError( + f"Attempted to use an uninstantiated parameter type ({ty})." + ) + except TypeError: + # ty is an instance (correct), so issubclass fails. + pass + + return FuncParamType(ty) + + +#: A dummy parameter type that just does nothing. From a user's +#: perspective this appears to just be the same as `STRING` but +#: internally no string conversion takes place if the input was bytes. +#: This is usually useful when working with file paths as they can +#: appear in bytes and unicode. +#: +#: For path related uses the :class:`Path` type is a better choice but +#: there are situations where an unprocessed type is useful which is why +#: it is is provided. +#: +#: .. versionadded:: 4.0 +UNPROCESSED = UnprocessedParamType() + +#: A unicode string parameter type which is the implicit default. This +#: can also be selected by using ``str`` as type. +STRING = StringParamType() + +#: An integer parameter. This can also be selected by using ``int`` as +#: type. +INT = IntParamType() + +#: A floating point value parameter. This can also be selected by using +#: ``float`` as type. +FLOAT = FloatParamType() + +#: A boolean parameter. This is the default for boolean flags. This can +#: also be selected by using ``bool`` as a type. +BOOL = BoolParamType() + +#: A UUID parameter. +UUID = UUIDParameterType() diff --git a/venv/lib/python3.12/site-packages/click/utils.py b/venv/lib/python3.12/site-packages/click/utils.py new file mode 100644 index 0000000000..d536434f0b --- /dev/null +++ b/venv/lib/python3.12/site-packages/click/utils.py @@ -0,0 +1,624 @@ +import os +import re +import sys +import typing as t +from functools import update_wrapper +from types import ModuleType +from types import TracebackType + +from ._compat import _default_text_stderr +from ._compat import _default_text_stdout +from ._compat import _find_binary_writer +from ._compat import auto_wrap_for_ansi +from ._compat import binary_streams +from ._compat import open_stream +from ._compat import should_strip_ansi +from ._compat import strip_ansi +from ._compat import text_streams +from ._compat import WIN +from .globals import resolve_color_default + +if t.TYPE_CHECKING: + import typing_extensions as te + + P = te.ParamSpec("P") + +R = t.TypeVar("R") + + +def _posixify(name: str) -> str: + return "-".join(name.split()).lower() + + +def safecall(func: "t.Callable[P, R]") -> "t.Callable[P, t.Optional[R]]": + """Wraps a function so that it swallows exceptions.""" + + def wrapper(*args: "P.args", **kwargs: "P.kwargs") -> t.Optional[R]: + try: + return func(*args, **kwargs) + except Exception: + pass + return None + + return update_wrapper(wrapper, func) + + +def make_str(value: t.Any) -> str: + """Converts a value into a valid string.""" + if isinstance(value, bytes): + try: + return value.decode(sys.getfilesystemencoding()) + except UnicodeError: + return value.decode("utf-8", "replace") + return str(value) + + +def make_default_short_help(help: str, max_length: int = 45) -> str: + """Returns a condensed version of help string.""" + # Consider only the first paragraph. + paragraph_end = help.find("\n\n") + + if paragraph_end != -1: + help = help[:paragraph_end] + + # Collapse newlines, tabs, and spaces. + words = help.split() + + if not words: + return "" + + # The first paragraph started with a "no rewrap" marker, ignore it. + if words[0] == "\b": + words = words[1:] + + total_length = 0 + last_index = len(words) - 1 + + for i, word in enumerate(words): + total_length += len(word) + (i > 0) + + if total_length > max_length: # too long, truncate + break + + if word[-1] == ".": # sentence end, truncate without "..." + return " ".join(words[: i + 1]) + + if total_length == max_length and i != last_index: + break # not at sentence end, truncate with "..." + else: + return " ".join(words) # no truncation needed + + # Account for the length of the suffix. + total_length += len("...") + + # remove words until the length is short enough + while i > 0: + total_length -= len(words[i]) + (i > 0) + + if total_length <= max_length: + break + + i -= 1 + + return " ".join(words[:i]) + "..." + + +class LazyFile: + """A lazy file works like a regular file but it does not fully open + the file but it does perform some basic checks early to see if the + filename parameter does make sense. This is useful for safely opening + files for writing. + """ + + def __init__( + self, + filename: t.Union[str, "os.PathLike[str]"], + mode: str = "r", + encoding: t.Optional[str] = None, + errors: t.Optional[str] = "strict", + atomic: bool = False, + ): + self.name: str = os.fspath(filename) + self.mode = mode + self.encoding = encoding + self.errors = errors + self.atomic = atomic + self._f: t.Optional[t.IO[t.Any]] + self.should_close: bool + + if self.name == "-": + self._f, self.should_close = open_stream(filename, mode, encoding, errors) + else: + if "r" in mode: + # Open and close the file in case we're opening it for + # reading so that we can catch at least some errors in + # some cases early. + open(filename, mode).close() + self._f = None + self.should_close = True + + def __getattr__(self, name: str) -> t.Any: + return getattr(self.open(), name) + + def __repr__(self) -> str: + if self._f is not None: + return repr(self._f) + return f"" + + def open(self) -> t.IO[t.Any]: + """Opens the file if it's not yet open. This call might fail with + a :exc:`FileError`. Not handling this error will produce an error + that Click shows. + """ + if self._f is not None: + return self._f + try: + rv, self.should_close = open_stream( + self.name, self.mode, self.encoding, self.errors, atomic=self.atomic + ) + except OSError as e: # noqa: E402 + from .exceptions import FileError + + raise FileError(self.name, hint=e.strerror) from e + self._f = rv + return rv + + def close(self) -> None: + """Closes the underlying file, no matter what.""" + if self._f is not None: + self._f.close() + + def close_intelligently(self) -> None: + """This function only closes the file if it was opened by the lazy + file wrapper. For instance this will never close stdin. + """ + if self.should_close: + self.close() + + def __enter__(self) -> "LazyFile": + return self + + def __exit__( + self, + exc_type: t.Optional[t.Type[BaseException]], + exc_value: t.Optional[BaseException], + tb: t.Optional[TracebackType], + ) -> None: + self.close_intelligently() + + def __iter__(self) -> t.Iterator[t.AnyStr]: + self.open() + return iter(self._f) # type: ignore + + +class KeepOpenFile: + def __init__(self, file: t.IO[t.Any]) -> None: + self._file: t.IO[t.Any] = file + + def __getattr__(self, name: str) -> t.Any: + return getattr(self._file, name) + + def __enter__(self) -> "KeepOpenFile": + return self + + def __exit__( + self, + exc_type: t.Optional[t.Type[BaseException]], + exc_value: t.Optional[BaseException], + tb: t.Optional[TracebackType], + ) -> None: + pass + + def __repr__(self) -> str: + return repr(self._file) + + def __iter__(self) -> t.Iterator[t.AnyStr]: + return iter(self._file) + + +def echo( + message: t.Optional[t.Any] = None, + file: t.Optional[t.IO[t.Any]] = None, + nl: bool = True, + err: bool = False, + color: t.Optional[bool] = None, +) -> None: + """Print a message and newline to stdout or a file. This should be + used instead of :func:`print` because it provides better support + for different data, files, and environments. + + Compared to :func:`print`, this does the following: + + - Ensures that the output encoding is not misconfigured on Linux. + - Supports Unicode in the Windows console. + - Supports writing to binary outputs, and supports writing bytes + to text outputs. + - Supports colors and styles on Windows. + - Removes ANSI color and style codes if the output does not look + like an interactive terminal. + - Always flushes the output. + + :param message: The string or bytes to output. Other objects are + converted to strings. + :param file: The file to write to. Defaults to ``stdout``. + :param err: Write to ``stderr`` instead of ``stdout``. + :param nl: Print a newline after the message. Enabled by default. + :param color: Force showing or hiding colors and other styles. By + default Click will remove color if the output does not look like + an interactive terminal. + + .. versionchanged:: 6.0 + Support Unicode output on the Windows console. Click does not + modify ``sys.stdout``, so ``sys.stdout.write()`` and ``print()`` + will still not support Unicode. + + .. versionchanged:: 4.0 + Added the ``color`` parameter. + + .. versionadded:: 3.0 + Added the ``err`` parameter. + + .. versionchanged:: 2.0 + Support colors on Windows if colorama is installed. + """ + if file is None: + if err: + file = _default_text_stderr() + else: + file = _default_text_stdout() + + # There are no standard streams attached to write to. For example, + # pythonw on Windows. + if file is None: + return + + # Convert non bytes/text into the native string type. + if message is not None and not isinstance(message, (str, bytes, bytearray)): + out: t.Optional[t.Union[str, bytes]] = str(message) + else: + out = message + + if nl: + out = out or "" + if isinstance(out, str): + out += "\n" + else: + out += b"\n" + + if not out: + file.flush() + return + + # If there is a message and the value looks like bytes, we manually + # need to find the binary stream and write the message in there. + # This is done separately so that most stream types will work as you + # would expect. Eg: you can write to StringIO for other cases. + if isinstance(out, (bytes, bytearray)): + binary_file = _find_binary_writer(file) + + if binary_file is not None: + file.flush() + binary_file.write(out) + binary_file.flush() + return + + # ANSI style code support. For no message or bytes, nothing happens. + # When outputting to a file instead of a terminal, strip codes. + else: + color = resolve_color_default(color) + + if should_strip_ansi(file, color): + out = strip_ansi(out) + elif WIN: + if auto_wrap_for_ansi is not None: + file = auto_wrap_for_ansi(file) # type: ignore + elif not color: + out = strip_ansi(out) + + file.write(out) # type: ignore + file.flush() + + +def get_binary_stream(name: "te.Literal['stdin', 'stdout', 'stderr']") -> t.BinaryIO: + """Returns a system stream for byte processing. + + :param name: the name of the stream to open. Valid names are ``'stdin'``, + ``'stdout'`` and ``'stderr'`` + """ + opener = binary_streams.get(name) + if opener is None: + raise TypeError(f"Unknown standard stream '{name}'") + return opener() + + +def get_text_stream( + name: "te.Literal['stdin', 'stdout', 'stderr']", + encoding: t.Optional[str] = None, + errors: t.Optional[str] = "strict", +) -> t.TextIO: + """Returns a system stream for text processing. This usually returns + a wrapped stream around a binary stream returned from + :func:`get_binary_stream` but it also can take shortcuts for already + correctly configured streams. + + :param name: the name of the stream to open. Valid names are ``'stdin'``, + ``'stdout'`` and ``'stderr'`` + :param encoding: overrides the detected default encoding. + :param errors: overrides the default error mode. + """ + opener = text_streams.get(name) + if opener is None: + raise TypeError(f"Unknown standard stream '{name}'") + return opener(encoding, errors) + + +def open_file( + filename: str, + mode: str = "r", + encoding: t.Optional[str] = None, + errors: t.Optional[str] = "strict", + lazy: bool = False, + atomic: bool = False, +) -> t.IO[t.Any]: + """Open a file, with extra behavior to handle ``'-'`` to indicate + a standard stream, lazy open on write, and atomic write. Similar to + the behavior of the :class:`~click.File` param type. + + If ``'-'`` is given to open ``stdout`` or ``stdin``, the stream is + wrapped so that using it in a context manager will not close it. + This makes it possible to use the function without accidentally + closing a standard stream: + + .. code-block:: python + + with open_file(filename) as f: + ... + + :param filename: The name of the file to open, or ``'-'`` for + ``stdin``/``stdout``. + :param mode: The mode in which to open the file. + :param encoding: The encoding to decode or encode a file opened in + text mode. + :param errors: The error handling mode. + :param lazy: Wait to open the file until it is accessed. For read + mode, the file is temporarily opened to raise access errors + early, then closed until it is read again. + :param atomic: Write to a temporary file and replace the given file + on close. + + .. versionadded:: 3.0 + """ + if lazy: + return t.cast( + t.IO[t.Any], LazyFile(filename, mode, encoding, errors, atomic=atomic) + ) + + f, should_close = open_stream(filename, mode, encoding, errors, atomic=atomic) + + if not should_close: + f = t.cast(t.IO[t.Any], KeepOpenFile(f)) + + return f + + +def format_filename( + filename: "t.Union[str, bytes, os.PathLike[str], os.PathLike[bytes]]", + shorten: bool = False, +) -> str: + """Format a filename as a string for display. Ensures the filename can be + displayed by replacing any invalid bytes or surrogate escapes in the name + with the replacement character ``�``. + + Invalid bytes or surrogate escapes will raise an error when written to a + stream with ``errors="strict". This will typically happen with ``stdout`` + when the locale is something like ``en_GB.UTF-8``. + + Many scenarios *are* safe to write surrogates though, due to PEP 538 and + PEP 540, including: + + - Writing to ``stderr``, which uses ``errors="backslashreplace"``. + - The system has ``LANG=C.UTF-8``, ``C``, or ``POSIX``. Python opens + stdout and stderr with ``errors="surrogateescape"``. + - None of ``LANG/LC_*`` are set. Python assumes ``LANG=C.UTF-8``. + - Python is started in UTF-8 mode with ``PYTHONUTF8=1`` or ``-X utf8``. + Python opens stdout and stderr with ``errors="surrogateescape"``. + + :param filename: formats a filename for UI display. This will also convert + the filename into unicode without failing. + :param shorten: this optionally shortens the filename to strip of the + path that leads up to it. + """ + if shorten: + filename = os.path.basename(filename) + else: + filename = os.fspath(filename) + + if isinstance(filename, bytes): + filename = filename.decode(sys.getfilesystemencoding(), "replace") + else: + filename = filename.encode("utf-8", "surrogateescape").decode( + "utf-8", "replace" + ) + + return filename + + +def get_app_dir(app_name: str, roaming: bool = True, force_posix: bool = False) -> str: + r"""Returns the config folder for the application. The default behavior + is to return whatever is most appropriate for the operating system. + + To give you an idea, for an app called ``"Foo Bar"``, something like + the following folders could be returned: + + Mac OS X: + ``~/Library/Application Support/Foo Bar`` + Mac OS X (POSIX): + ``~/.foo-bar`` + Unix: + ``~/.config/foo-bar`` + Unix (POSIX): + ``~/.foo-bar`` + Windows (roaming): + ``C:\Users\\AppData\Roaming\Foo Bar`` + Windows (not roaming): + ``C:\Users\\AppData\Local\Foo Bar`` + + .. versionadded:: 2.0 + + :param app_name: the application name. This should be properly capitalized + and can contain whitespace. + :param roaming: controls if the folder should be roaming or not on Windows. + Has no effect otherwise. + :param force_posix: if this is set to `True` then on any POSIX system the + folder will be stored in the home folder with a leading + dot instead of the XDG config home or darwin's + application support folder. + """ + if WIN: + key = "APPDATA" if roaming else "LOCALAPPDATA" + folder = os.environ.get(key) + if folder is None: + folder = os.path.expanduser("~") + return os.path.join(folder, app_name) + if force_posix: + return os.path.join(os.path.expanduser(f"~/.{_posixify(app_name)}")) + if sys.platform == "darwin": + return os.path.join( + os.path.expanduser("~/Library/Application Support"), app_name + ) + return os.path.join( + os.environ.get("XDG_CONFIG_HOME", os.path.expanduser("~/.config")), + _posixify(app_name), + ) + + +class PacifyFlushWrapper: + """This wrapper is used to catch and suppress BrokenPipeErrors resulting + from ``.flush()`` being called on broken pipe during the shutdown/final-GC + of the Python interpreter. Notably ``.flush()`` is always called on + ``sys.stdout`` and ``sys.stderr``. So as to have minimal impact on any + other cleanup code, and the case where the underlying file is not a broken + pipe, all calls and attributes are proxied. + """ + + def __init__(self, wrapped: t.IO[t.Any]) -> None: + self.wrapped = wrapped + + def flush(self) -> None: + try: + self.wrapped.flush() + except OSError as e: + import errno + + if e.errno != errno.EPIPE: + raise + + def __getattr__(self, attr: str) -> t.Any: + return getattr(self.wrapped, attr) + + +def _detect_program_name( + path: t.Optional[str] = None, _main: t.Optional[ModuleType] = None +) -> str: + """Determine the command used to run the program, for use in help + text. If a file or entry point was executed, the file name is + returned. If ``python -m`` was used to execute a module or package, + ``python -m name`` is returned. + + This doesn't try to be too precise, the goal is to give a concise + name for help text. Files are only shown as their name without the + path. ``python`` is only shown for modules, and the full path to + ``sys.executable`` is not shown. + + :param path: The Python file being executed. Python puts this in + ``sys.argv[0]``, which is used by default. + :param _main: The ``__main__`` module. This should only be passed + during internal testing. + + .. versionadded:: 8.0 + Based on command args detection in the Werkzeug reloader. + + :meta private: + """ + if _main is None: + _main = sys.modules["__main__"] + + if not path: + path = sys.argv[0] + + # The value of __package__ indicates how Python was called. It may + # not exist if a setuptools script is installed as an egg. It may be + # set incorrectly for entry points created with pip on Windows. + # It is set to "" inside a Shiv or PEX zipapp. + if getattr(_main, "__package__", None) in {None, ""} or ( + os.name == "nt" + and _main.__package__ == "" + and not os.path.exists(path) + and os.path.exists(f"{path}.exe") + ): + # Executed a file, like "python app.py". + return os.path.basename(path) + + # Executed a module, like "python -m example". + # Rewritten by Python from "-m script" to "/path/to/script.py". + # Need to look at main module to determine how it was executed. + py_module = t.cast(str, _main.__package__) + name = os.path.splitext(os.path.basename(path))[0] + + # A submodule like "example.cli". + if name != "__main__": + py_module = f"{py_module}.{name}" + + return f"python -m {py_module.lstrip('.')}" + + +def _expand_args( + args: t.Iterable[str], + *, + user: bool = True, + env: bool = True, + glob_recursive: bool = True, +) -> t.List[str]: + """Simulate Unix shell expansion with Python functions. + + See :func:`glob.glob`, :func:`os.path.expanduser`, and + :func:`os.path.expandvars`. + + This is intended for use on Windows, where the shell does not do any + expansion. It may not exactly match what a Unix shell would do. + + :param args: List of command line arguments to expand. + :param user: Expand user home directory. + :param env: Expand environment variables. + :param glob_recursive: ``**`` matches directories recursively. + + .. versionchanged:: 8.1 + Invalid glob patterns are treated as empty expansions rather + than raising an error. + + .. versionadded:: 8.0 + + :meta private: + """ + from glob import glob + + out = [] + + for arg in args: + if user: + arg = os.path.expanduser(arg) + + if env: + arg = os.path.expandvars(arg) + + try: + matches = glob(arg, recursive=glob_recursive) + except re.error: + matches = [] + + if not matches: + out.append(arg) + else: + out.extend(matches) + + return out diff --git a/venv/lib/python3.12/site-packages/django/__init__.py b/venv/lib/python3.12/site-packages/django/__init__.py new file mode 100644 index 0000000000..3d00b52913 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/__init__.py @@ -0,0 +1,24 @@ +from django.utils.version import get_version + +VERSION = (5, 1, 0, "final", 0) + +__version__ = get_version(VERSION) + + +def setup(set_prefix=True): + """ + Configure the settings (this happens as a side effect of accessing the + first setting), configure logging and populate the app registry. + Set the thread-local urlresolvers script prefix if `set_prefix` is True. + """ + from django.apps import apps + from django.conf import settings + from django.urls import set_script_prefix + from django.utils.log import configure_logging + + configure_logging(settings.LOGGING_CONFIG, settings.LOGGING) + if set_prefix: + set_script_prefix( + "/" if settings.FORCE_SCRIPT_NAME is None else settings.FORCE_SCRIPT_NAME + ) + apps.populate(settings.INSTALLED_APPS) diff --git a/venv/lib/python3.12/site-packages/django/__main__.py b/venv/lib/python3.12/site-packages/django/__main__.py new file mode 100644 index 0000000000..7415143848 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/__main__.py @@ -0,0 +1,10 @@ +""" +Invokes django-admin when the django module is run as a script. + +Example: python -m django check +""" + +from django.core import management + +if __name__ == "__main__": + management.execute_from_command_line() diff --git a/venv/lib/python3.12/site-packages/django/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2d801384d8b4fb1db6992713b70bcc3303f3848c GIT binary patch literal 1223 zcmZuxTWb?R6rR~jk|wtF;;kq;ilD1a78OBI)EZ+6v}tLo5A|WYW@nSFo84t*Q;f7w zK@i`3)1RRD2mA?wF9wz9Lcz<6eJfO7`sA5SQfu{)oSk#_eBb%zwr~6U(+JEcys?kU z2z?hp&mfL%a||BOkcBMlqB@?(7+KQ1Bq55a^a^*1=4DH@1P7Kfpm_Y)PW=ifD{2*_G<@iWH9( zSE;Kjay(YuL_N8pU?ibsWm#Gr1n@3{?C`D>gs+4cFpQQFBY>8nZf_^I)2~Wa(#!n+ zU2hqH11}!fiRz32b@1QpA5=4;r5=1s6R^DR*-o{=C<$wna2ke=SLNhXSaUe3nL$83 zPE7a_?pTyi+oqL}_%<;s70Njj3t&uTJB)`t3T=#3wy9meS{0S1XOX}U8m<|3`T;*- zwCeDXHFGgZnTD~Fu*RrqWnI5wx}?EeM!D~by(PTDoFF6tqqcLOI5t@T)kY^=AfS4V zHE4${-fTD+3iRRdO!ejm;~|0SaCN~VxvkmgYA$VIUF(lB)}rZE{hT0TDOlU>j6kry zof%NenKDU09hc{Tk!3`BU~+n5qF933Z*GkuAAOS;`jNa$KFk+D}5gUaHChp8u>T=z;8ZN!U pjzB0r3H&g)4H;v+hQ_|6kFF-a4vaoO`F`N|YUXER5TA+BzX2kFJ9Pj6 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/__pycache__/__main__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/__pycache__/__main__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..07bcef96f450cd450dcfe72e9433fa9e602076a7 GIT binary patch literal 472 zcmYLGu};G<5VaFmRDmvRWwON5BDEHP?2 z69@##gv7*Fgjkqx)JB|S-?Q(Y-#huC(eRKB-oHP4w)vwxRN*Yach7X#e?c2{D?IDQVYcL+?oEW&|mf7eb$#j*u$U^fCZVvjCR2 zR2eyrfQBhe#+r(h3Yz*!7-wD2>raG=BiN(yGz*NT9aXXX0Q`~nS!%X%;VGfTIVjLs zQRiHVP;-9Lt`#esOXG81tS&rseUm`qT2|Sog#ue^!UX(r2K+2Biu*>{*CdZZ4Y%mK zRQNq*flBGFoRBP8?CpLEgZ1Q zUN@fp*7q0FA0%s52HTZx*=_D(jK3U$$ IB;|+x0p}Wr9smFU literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/__pycache__/shortcuts.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/__pycache__/shortcuts.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..45819319484b26f82953969409ba8cc9da349bef GIT binary patch literal 7640 zcmeHMZ)_Y#6`#Gmf4)24`hRQJHH#A`xx~IpV#m$j20MvKMPj#c;v|-$%ldY0pL2J6 z%!L8KNRcyIRh z&ORq3DH5m>qr2JJ*|%?I-n{pFZ{GgCwA4eOgpYkR`2A-I`77R7#g=QVT!F@QB9ne1 zbFwYQ#clnzIN#65?fv$+qu;?{KOb|(UHvZBw#VG@lKzsor{BZw9Wig**YD#<36aZX z*Q;EAsqB_Z-sWV_tG0f>?0uE=3$hRDGPxA$a@h}cg)Bf_DVITAHSP>lO#I4odN`_y zaaB&m6fvU4VoF5U#9<|tRH!(ZN<{Rin$SckA&Zfiq-lyK>cf&QHfl*J(J01KF+G}u zS7XYk64N~Dpm?(HNKkw!A*%W?uozRRtTn?sil!9!g)Cmtgic}X2#$?S7#{{wQ^{B~ zG2|IkDfW*liKvo@C|fmAlP)Pi&)-mv0lVQkuItIRoo$8>8>bX433FA9=hxo7tkAfW zP!jqnMUGNfol&*+vDF*k3};N0WQ7K7hQC`q1?!=ja#GSG!-k8RcR=KNnX2)qrgTS~ zxy{52wt4ukbVGHW=p0;F8L_t9>VRvSOWV>U?Rby7VK=)cow~y!NITPf+I|DMLFpv{ z+r--*5y~k=PtgSIgt&J8;@GeXl11sk8b#R4!6*~rSX3WIv5QpEV3S1HnTQl)VnuH9 zh?E#ogSrw=#w1+{nrjbIB>^G`>uOljDQv;EfS6~L#O;?wi4LXWFqRf%(*l_|QW}s3 zc^pr+@$ke2P zL2(G2Ka|z8pZYnrIE~ z+8xrOy3&#aLTO0RLZ%=>+OSIXND5Y!95vN zaQ5cVM`srNy;EPl?R{p(HCsP7ddu6MvA3@PG3f%ilzO#I+>-5L2V#j5+s|0B zCRpvoAw>^M1DYC3=}I_7W7`53^I!l97K;HJrk;wN8_MD~8db(bRFh^gscKquAU1Al zWPY0a#f!jE1Jz{~i>xhRAIA3?nR@5Jet9>qLJZsyhKTB zK?}=CisleSjHwX`aWco{B~1f87bOw(T%{5nhjC5t5eLRaSs9eTA`gftTQRRAhfdQJ zOh^SAhSx>O6u+fGc@8mS@r3wuv2^Tbhk*GYVJZ||5L$kgqhYx}rv z{|D{ay8XAj2Qu~pv<6(b<5NI8;6MPy}`8@X#Q zNt@{SJ0>U#9mQ8t3LWoN0Pra6z)2|qR!&W!9Zf|piGVEtR$>&8l=-&(fT-i9Z_6nb zQ&&`@xB{3Vi`!to*%+wB>c9y2kg!U_;CBM%AQu60b%hqaA|iP#suhUi(V<~olvTzI zO>IOSFlT0zg>zaF2Ef1>2YACZENPOiQ!2ue4IaQ7vGx*rVGZqGG&im^i~|9((s51E z>1KG+27e2)%7|OIn#$B{TW|%IgsMfMDJwKB3W2N;xFzh!xOXgh%cf3j+&C0HL#bgH zYyHOE$f3?8ujkwpI5oboo!XbyVwRqFl=hgvYfxEfX%3RRDwXn3J5?QMdflt zNg@!5(Ln}nCNa}DSp`T+s5%gVPUet`DU%qN#u0zPS`fOMEu&#$6wHY!eo*WHur@Ie zK=e4dG&7lQZPK;|R~x!ju?d1{j2T&+3=54y1R|OX4U{tDq+bMGFg#I+nIOV}u-34% zc*h-P;ZQhil!Q%)hNh=ailvlel&X|&!S@`@ry9Pau$|qiehfF0q7@pBFyNJBc+G_~ zUhg{SCU``j!>S&M+-xd<6NZ=Vy*XyFFDTz24vLV{0e|i1P(dhEL&~0?IdeCKH+!HLd`C&ueJ2rWmu*~W z)6&-6cX_U~b%o~z&obdlJj-r}!?PqjclGkM^lRyv(;1<8wl6C*XWY#Xmb{hMUVQDv zMemlZcgsD(J3P1j)l0tSxy!%!`nz9W3?0dajx2_HvhefutnfBuX#ce;@3ANM!y;{0*2dmM4R|ZxGr3HBgiv z@YnfoIvn6TUm&mBpArIt>mbnapFtq3!nt-876`u20}#3+p*e#RWnxYShZkt5!S;e{ZI5@H=a#A) zr_Wu#@WzGNqnYZ~xvp$=>!Q$_akplK)=!H}kOO+K!5Mz$_&eQibuZTM%+~K*tUs8o zKbU#$Q07oyrsnJ||GA9&91I1t|I~2FS2}8s*tq%n>W;l+eizr#ZlB-HV|x#W{p}pK z_jb5C5Az=$=AmnyrREP#U7-1&w~$1~V2TwMnmi=zD1;`KWluWN4y{?QwBBSv2S)2f zW#lsj9cc#~8|@Phm}kUj!wO^91{@+ru$VkB-3p{~9v65pcIf2Uo8YD45TuX)j{}bU z(sD5e3kIBK@5JeiNPZc7$cKTc;?hv^m5o&R%G`h& zJRx!v`{lH=m*jkMjpdWq*+!7*?!+q_&4_ulb+k|Aj_C`qpl-SsYPt`qfUgiiKhm5Y zZAh+18xjwOL|=p<)+QLu^L1JAB4{VjeG6%CLiJFm{B*YTNT*D;?3q3Hv+$3@AIO=e zV>bu0O~)36t_7iMCh|Q#BXm8;3SFOmEObpBha1zxp1>i4C!gy1RKoz}N=HlQK5jl_ z>*Vb7yX+l@o#2T(4teI=d2H{qWB(xz+lM)5e@ONL{W_@04;-)J)TmE zN+Fr^m>}A#msqc+^XL3YvhJ;XMj@YPsDx3y)_aAkY_l9Jg+zQWd_yVZ5+E@TIo9|1 zLIQph(err($O6!zoM%ZYE3geXrIR2e<{QI8Jp9zjsj7Hi`;mxbdrrG!RqZ`$ir1<`2^vDzxQrX)Qj( zY6kw=n^1w1t;ggW%~UomxV9__<%>dNR%pB>Y|gkh-*J^sH@-Qv;A((FvA=w};yY)r z+MwyKfbPhGt8RwAGx^r!+=YcN9DrA^mMlBnj*8nt%`~00&-E<`Z5emlgWKNPd&KFe zxZ|yy?tJ~=lCS(PUjOvKYlmif=WK6Xfcpo_;8OilFD+LB*{X(qVZOe!V>_AO-q7je zKlE}?2khNY0@a2q9G2AxBp$rE4@AT8Va<$6?C|EAq_a@;14Lu kFX-XQ@72|Eo_l-!+70o8h%{x7Ms=1}0+86+VQ-M?m*UuZfpk*e#oZ7nv+dUw3iSr<5s0 z=^NTX8|@!RZnYqq<=U<}xf2z+VauoK+;Fl`%w(2S!c;`b1#xwmTXQixJ12!K#neHO zWuhSbu`9Np5K5(yC8aZ0?+2IK^0g9IehjzT?~4PVpAcibMaNro^f^9!jXy>w&wW3H F$Bptg6{aJmaZ|)RZicpD+`<~itvd7# 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 bR!LR-y2l(VU#{a^p4;0Ns)e^4Y(M@#nm9CR literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/apps/config.py b/venv/lib/python3.12/site-packages/django/apps/config.py new file mode 100644 index 0000000000..28e50e5225 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/apps/config.py @@ -0,0 +1,274 @@ +import inspect +import os +from importlib import import_module + +from django.core.exceptions import ImproperlyConfigured +from django.utils.functional import cached_property +from django.utils.module_loading import import_string, module_has_submodule + +APPS_MODULE_NAME = "apps" +MODELS_MODULE_NAME = "models" + + +class AppConfig: + """Class representing a Django application and its configuration.""" + + def __init__(self, app_name, app_module): + # Full Python path to the application e.g. 'django.contrib.admin'. + self.name = app_name + + # Root module for the application e.g. . + self.module = app_module + + # Reference to the Apps registry that holds this AppConfig. Set by the + # registry when it registers the AppConfig instance. + self.apps = None + + # The following attributes could be defined at the class level in a + # subclass, hence the test-and-set pattern. + + # Last component of the Python path to the application e.g. 'admin'. + # This value must be unique across a Django project. + if not hasattr(self, "label"): + self.label = app_name.rpartition(".")[2] + if not self.label.isidentifier(): + raise ImproperlyConfigured( + "The app label '%s' is not a valid Python identifier." % self.label + ) + + # Human-readable name for the application e.g. "Admin". + if not hasattr(self, "verbose_name"): + self.verbose_name = self.label.title() + + # Filesystem path to the application directory e.g. + # '/path/to/django/contrib/admin'. + if not hasattr(self, "path"): + self.path = self._path_from_module(app_module) + + # Module containing models e.g. . Set by import_models(). + # None if the application doesn't have a models module. + self.models_module = None + + # Mapping of lowercase model names to model classes. Initially set to + # None to prevent accidental access before import_models() runs. + self.models = None + + def __repr__(self): + return "<%s: %s>" % (self.__class__.__name__, self.label) + + @cached_property + def default_auto_field(self): + from django.conf import settings + + return settings.DEFAULT_AUTO_FIELD + + @property + def _is_default_auto_field_overridden(self): + return self.__class__.default_auto_field is not AppConfig.default_auto_field + + def _path_from_module(self, module): + """Attempt to determine app's filesystem path from its module.""" + # See #21874 for extended discussion of the behavior of this method in + # various cases. + # Convert to list because __path__ may not support indexing. + paths = list(getattr(module, "__path__", [])) + if len(paths) != 1: + filename = getattr(module, "__file__", None) + if filename is not None: + paths = [os.path.dirname(filename)] + else: + # For unknown reasons, sometimes the list returned by __path__ + # contains duplicates that must be removed (#25246). + paths = list(set(paths)) + if len(paths) > 1: + raise ImproperlyConfigured( + "The app module %r has multiple filesystem locations (%r); " + "you must configure this app with an AppConfig subclass " + "with a 'path' class attribute." % (module, paths) + ) + elif not paths: + raise ImproperlyConfigured( + "The app module %r has no filesystem location, " + "you must configure this app with an AppConfig subclass " + "with a 'path' class attribute." % module + ) + return paths[0] + + @classmethod + def create(cls, entry): + """ + Factory that creates an app config from an entry in INSTALLED_APPS. + """ + # create() eventually returns app_config_class(app_name, app_module). + app_config_class = None + app_name = None + app_module = None + + # If import_module succeeds, entry points to the app module. + try: + app_module = import_module(entry) + except Exception: + pass + else: + # If app_module has an apps submodule that defines a single + # AppConfig subclass, use it automatically. + # To prevent this, an AppConfig subclass can declare a class + # variable default = False. + # If the apps module defines more than one AppConfig subclass, + # the default one can declare default = True. + if module_has_submodule(app_module, APPS_MODULE_NAME): + mod_path = "%s.%s" % (entry, APPS_MODULE_NAME) + mod = import_module(mod_path) + # Check if there's exactly one AppConfig candidate, + # excluding those that explicitly define default = False. + app_configs = [ + (name, candidate) + for name, candidate in inspect.getmembers(mod, inspect.isclass) + if ( + issubclass(candidate, cls) + and candidate is not cls + and getattr(candidate, "default", True) + ) + ] + if len(app_configs) == 1: + app_config_class = app_configs[0][1] + else: + # Check if there's exactly one AppConfig subclass, + # among those that explicitly define default = True. + app_configs = [ + (name, candidate) + for name, candidate in app_configs + if getattr(candidate, "default", False) + ] + if len(app_configs) > 1: + candidates = [repr(name) for name, _ in app_configs] + raise RuntimeError( + "%r declares more than one default AppConfig: " + "%s." % (mod_path, ", ".join(candidates)) + ) + elif len(app_configs) == 1: + app_config_class = app_configs[0][1] + + # Use the default app config class if we didn't find anything. + if app_config_class is None: + app_config_class = cls + app_name = entry + + # If import_string succeeds, entry is an app config class. + if app_config_class is None: + try: + app_config_class = import_string(entry) + except Exception: + pass + # If both import_module and import_string failed, it means that entry + # doesn't have a valid value. + if app_module is None and app_config_class is None: + # If the last component of entry starts with an uppercase letter, + # then it was likely intended to be an app config class; if not, + # an app module. Provide a nice error message in both cases. + mod_path, _, cls_name = entry.rpartition(".") + if mod_path and cls_name[0].isupper(): + # We could simply re-trigger the string import exception, but + # we're going the extra mile and providing a better error + # message for typos in INSTALLED_APPS. + # This may raise ImportError, which is the best exception + # possible if the module at mod_path cannot be imported. + mod = import_module(mod_path) + candidates = [ + repr(name) + for name, candidate in inspect.getmembers(mod, inspect.isclass) + if issubclass(candidate, cls) and candidate is not cls + ] + msg = "Module '%s' does not contain a '%s' class." % ( + mod_path, + cls_name, + ) + if candidates: + msg += " Choices are: %s." % ", ".join(candidates) + raise ImportError(msg) + else: + # Re-trigger the module import exception. + import_module(entry) + + # Check for obvious errors. (This check prevents duck typing, but + # it could be removed if it became a problem in practice.) + if not issubclass(app_config_class, AppConfig): + raise ImproperlyConfigured("'%s' isn't a subclass of AppConfig." % entry) + + # Obtain app name here rather than in AppClass.__init__ to keep + # all error checking for entries in INSTALLED_APPS in one place. + if app_name is None: + try: + app_name = app_config_class.name + except AttributeError: + raise ImproperlyConfigured("'%s' must supply a name attribute." % entry) + + # Ensure app_name points to a valid module. + try: + app_module = import_module(app_name) + except ImportError: + raise ImproperlyConfigured( + "Cannot import '%s'. Check that '%s.%s.name' is correct." + % ( + app_name, + app_config_class.__module__, + app_config_class.__qualname__, + ) + ) + + # Entry is a path to an app config class. + return app_config_class(app_name, app_module) + + def get_model(self, model_name, require_ready=True): + """ + Return the model with the given case-insensitive model_name. + + Raise LookupError if no model exists with this name. + """ + if require_ready: + self.apps.check_models_ready() + else: + self.apps.check_apps_ready() + try: + return self.models[model_name.lower()] + except KeyError: + raise LookupError( + "App '%s' doesn't have a '%s' model." % (self.label, model_name) + ) + + def get_models(self, include_auto_created=False, include_swapped=False): + """ + Return an iterable of models. + + By default, the following models aren't included: + + - auto-created models for many-to-many relations without + an explicit intermediate table, + - models that have been swapped out. + + Set the corresponding keyword argument to True to include such models. + Keyword arguments aren't documented; they're a private API. + """ + self.apps.check_models_ready() + for model in self.models.values(): + if model._meta.auto_created and not include_auto_created: + continue + if model._meta.swapped and not include_swapped: + continue + yield model + + def import_models(self): + # Dictionary of models for this app, primarily maintained in the + # 'all_models' attribute of the Apps this AppConfig is attached to. + self.models = self.apps.all_models[self.label] + + if module_has_submodule(self.module, MODELS_MODULE_NAME): + models_module_name = "%s.%s" % (self.name, MODELS_MODULE_NAME) + self.models_module = import_module(models_module_name) + + def ready(self): + """ + Override this method in subclasses to run code when Django starts. + """ diff --git a/venv/lib/python3.12/site-packages/django/apps/registry.py b/venv/lib/python3.12/site-packages/django/apps/registry.py new file mode 100644 index 0000000000..92de6075fc --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/apps/registry.py @@ -0,0 +1,437 @@ +import functools +import sys +import threading +import warnings +from collections import Counter, defaultdict +from functools import partial + +from django.core.exceptions import AppRegistryNotReady, ImproperlyConfigured + +from .config import AppConfig + + +class Apps: + """ + A registry that stores the configuration of installed applications. + + It also keeps track of models, e.g. to provide reverse relations. + """ + + def __init__(self, installed_apps=()): + # installed_apps is set to None when creating the main registry + # because it cannot be populated at that point. Other registries must + # provide a list of installed apps and are populated immediately. + if installed_apps is None and hasattr(sys.modules[__name__], "apps"): + raise RuntimeError("You must supply an installed_apps argument.") + + # Mapping of app labels => model names => model classes. Every time a + # model is imported, ModelBase.__new__ calls apps.register_model which + # creates an entry in all_models. All imported models are registered, + # regardless of whether they're defined in an installed application + # and whether the registry has been populated. Since it isn't possible + # to reimport a module safely (it could reexecute initialization code) + # all_models is never overridden or reset. + self.all_models = defaultdict(dict) + + # Mapping of labels to AppConfig instances for installed apps. + self.app_configs = {} + + # Stack of app_configs. Used to store the current state in + # set_available_apps and set_installed_apps. + self.stored_app_configs = [] + + # Whether the registry is populated. + self.apps_ready = self.models_ready = self.ready = False + # For the autoreloader. + self.ready_event = threading.Event() + + # Lock for thread-safe population. + self._lock = threading.RLock() + self.loading = False + + # Maps ("app_label", "modelname") tuples to lists of functions to be + # called when the corresponding model is ready. Used by this class's + # `lazy_model_operation()` and `do_pending_operations()` methods. + self._pending_operations = defaultdict(list) + + # Populate apps and models, unless it's the main registry. + if installed_apps is not None: + self.populate(installed_apps) + + def populate(self, installed_apps=None): + """ + Load application configurations and models. + + Import each application module and then each model module. + + It is thread-safe and idempotent, but not reentrant. + """ + if self.ready: + return + + # populate() might be called by two threads in parallel on servers + # that create threads before initializing the WSGI callable. + with self._lock: + if self.ready: + return + + # An RLock prevents other threads from entering this section. The + # compare and set operation below is atomic. + if self.loading: + # Prevent reentrant calls to avoid running AppConfig.ready() + # methods twice. + raise RuntimeError("populate() isn't reentrant") + self.loading = True + + # Phase 1: initialize app configs and import app modules. + for entry in installed_apps: + if isinstance(entry, AppConfig): + app_config = entry + else: + app_config = AppConfig.create(entry) + if app_config.label in self.app_configs: + raise ImproperlyConfigured( + "Application labels aren't unique, " + "duplicates: %s" % app_config.label + ) + + self.app_configs[app_config.label] = app_config + app_config.apps = self + + # Check for duplicate app names. + counts = Counter( + app_config.name for app_config in self.app_configs.values() + ) + duplicates = [name for name, count in counts.most_common() if count > 1] + if duplicates: + raise ImproperlyConfigured( + "Application names aren't unique, " + "duplicates: %s" % ", ".join(duplicates) + ) + + self.apps_ready = True + + # Phase 2: import models modules. + for app_config in self.app_configs.values(): + app_config.import_models() + + self.clear_cache() + + self.models_ready = True + + # Phase 3: run ready() methods of app configs. + for app_config in self.get_app_configs(): + app_config.ready() + + self.ready = True + self.ready_event.set() + + def check_apps_ready(self): + """Raise an exception if all apps haven't been imported yet.""" + if not self.apps_ready: + from django.conf import settings + + # If "not ready" is due to unconfigured settings, accessing + # INSTALLED_APPS raises a more helpful ImproperlyConfigured + # exception. + settings.INSTALLED_APPS + raise AppRegistryNotReady("Apps aren't loaded yet.") + + def check_models_ready(self): + """Raise an exception if all models haven't been imported yet.""" + if not self.models_ready: + raise AppRegistryNotReady("Models aren't loaded yet.") + + def get_app_configs(self): + """Import applications and return an iterable of app configs.""" + self.check_apps_ready() + return self.app_configs.values() + + def get_app_config(self, app_label): + """ + Import applications and returns an app config for the given label. + + Raise LookupError if no application exists with this label. + """ + self.check_apps_ready() + try: + return self.app_configs[app_label] + except KeyError: + message = "No installed app with label '%s'." % app_label + for app_config in self.get_app_configs(): + if app_config.name == app_label: + message += " Did you mean '%s'?" % app_config.label + break + raise LookupError(message) + + # This method is performance-critical at least for Django's test suite. + @functools.cache + def get_models(self, include_auto_created=False, include_swapped=False): + """ + Return a list of all installed models. + + By default, the following models aren't included: + + - auto-created models for many-to-many relations without + an explicit intermediate table, + - models that have been swapped out. + + Set the corresponding keyword argument to True to include such models. + """ + self.check_models_ready() + + result = [] + for app_config in self.app_configs.values(): + result.extend(app_config.get_models(include_auto_created, include_swapped)) + return result + + def get_model(self, app_label, model_name=None, require_ready=True): + """ + Return the model matching the given app_label and model_name. + + As a shortcut, app_label may be in the form .. + + model_name is case-insensitive. + + Raise LookupError if no application exists with this label, or no + model exists with this name in the application. Raise ValueError if + called with a single argument that doesn't contain exactly one dot. + """ + if require_ready: + self.check_models_ready() + else: + self.check_apps_ready() + + if model_name is None: + app_label, model_name = app_label.split(".") + + app_config = self.get_app_config(app_label) + + if not require_ready and app_config.models is None: + app_config.import_models() + + return app_config.get_model(model_name, require_ready=require_ready) + + def register_model(self, app_label, model): + # Since this method is called when models are imported, it cannot + # perform imports because of the risk of import loops. It mustn't + # call get_app_config(). + model_name = model._meta.model_name + app_models = self.all_models[app_label] + if model_name in app_models: + if ( + model.__name__ == app_models[model_name].__name__ + and model.__module__ == app_models[model_name].__module__ + ): + warnings.warn( + "Model '%s.%s' was already registered. Reloading models is not " + "advised as it can lead to inconsistencies, most notably with " + "related models." % (app_label, model_name), + RuntimeWarning, + stacklevel=2, + ) + else: + raise RuntimeError( + "Conflicting '%s' models in application '%s': %s and %s." + % (model_name, app_label, app_models[model_name], model) + ) + app_models[model_name] = model + self.do_pending_operations(model) + self.clear_cache() + + def is_installed(self, app_name): + """ + Check whether an application with this name exists in the registry. + + app_name is the full name of the app e.g. 'django.contrib.admin'. + """ + self.check_apps_ready() + return any(ac.name == app_name for ac in self.app_configs.values()) + + def get_containing_app_config(self, object_name): + """ + Look for an app config containing a given object. + + object_name is the dotted Python path to the object. + + Return the app config for the inner application in case of nesting. + Return None if the object isn't in any registered app config. + """ + self.check_apps_ready() + candidates = [] + for app_config in self.app_configs.values(): + if object_name.startswith(app_config.name): + subpath = object_name.removeprefix(app_config.name) + if subpath == "" or subpath[0] == ".": + candidates.append(app_config) + if candidates: + return sorted(candidates, key=lambda ac: -len(ac.name))[0] + + def get_registered_model(self, app_label, model_name): + """ + Similar to get_model(), but doesn't require that an app exists with + the given app_label. + + It's safe to call this method at import time, even while the registry + is being populated. + """ + model = self.all_models[app_label].get(model_name.lower()) + if model is None: + raise LookupError("Model '%s.%s' not registered." % (app_label, model_name)) + return model + + @functools.cache + def get_swappable_settings_name(self, to_string): + """ + For a given model string (e.g. "auth.User"), return the name of the + corresponding settings name if it refers to a swappable model. If the + referred model is not swappable, return None. + + This method is decorated with @functools.cache because it's performance + critical when it comes to migrations. Since the swappable settings don't + change after Django has loaded the settings, there is no reason to get + the respective settings attribute over and over again. + """ + to_string = to_string.lower() + for model in self.get_models(include_swapped=True): + swapped = model._meta.swapped + # Is this model swapped out for the model given by to_string? + if swapped and swapped.lower() == to_string: + return model._meta.swappable + # Is this model swappable and the one given by to_string? + if model._meta.swappable and model._meta.label_lower == to_string: + return model._meta.swappable + return None + + def set_available_apps(self, available): + """ + Restrict the set of installed apps used by get_app_config[s]. + + available must be an iterable of application names. + + set_available_apps() must be balanced with unset_available_apps(). + + Primarily used for performance optimization in TransactionTestCase. + + This method is safe in the sense that it doesn't trigger any imports. + """ + available = set(available) + installed = {app_config.name for app_config in self.get_app_configs()} + if not available.issubset(installed): + raise ValueError( + "Available apps isn't a subset of installed apps, extra apps: %s" + % ", ".join(available - installed) + ) + + self.stored_app_configs.append(self.app_configs) + self.app_configs = { + label: app_config + for label, app_config in self.app_configs.items() + if app_config.name in available + } + self.clear_cache() + + def unset_available_apps(self): + """Cancel a previous call to set_available_apps().""" + self.app_configs = self.stored_app_configs.pop() + self.clear_cache() + + def set_installed_apps(self, installed): + """ + Enable a different set of installed apps for get_app_config[s]. + + installed must be an iterable in the same format as INSTALLED_APPS. + + set_installed_apps() must be balanced with unset_installed_apps(), + even if it exits with an exception. + + Primarily used as a receiver of the setting_changed signal in tests. + + This method may trigger new imports, which may add new models to the + registry of all imported models. They will stay in the registry even + after unset_installed_apps(). Since it isn't possible to replay + imports safely (e.g. that could lead to registering listeners twice), + models are registered when they're imported and never removed. + """ + if not self.ready: + raise AppRegistryNotReady("App registry isn't ready yet.") + self.stored_app_configs.append(self.app_configs) + self.app_configs = {} + self.apps_ready = self.models_ready = self.loading = self.ready = False + self.clear_cache() + self.populate(installed) + + def unset_installed_apps(self): + """Cancel a previous call to set_installed_apps().""" + self.app_configs = self.stored_app_configs.pop() + self.apps_ready = self.models_ready = self.ready = True + self.clear_cache() + + def clear_cache(self): + """ + Clear all internal caches, for methods that alter the app registry. + + This is mostly used in tests. + """ + self.get_swappable_settings_name.cache_clear() + # Call expire cache on each model. This will purge + # the relation tree and the fields cache. + self.get_models.cache_clear() + if self.ready: + # Circumvent self.get_models() to prevent that the cache is refilled. + # This particularly prevents that an empty value is cached while cloning. + for app_config in self.app_configs.values(): + for model in app_config.get_models(include_auto_created=True): + model._meta._expire_cache() + + def lazy_model_operation(self, function, *model_keys): + """ + Take a function and a number of ("app_label", "modelname") tuples, and + when all the corresponding models have been imported and registered, + call the function with the model classes as its arguments. + + The function passed to this method must accept exactly n models as + arguments, where n=len(model_keys). + """ + # Base case: no arguments, just execute the function. + if not model_keys: + function() + # Recursive case: take the head of model_keys, wait for the + # corresponding model class to be imported and registered, then apply + # that argument to the supplied function. Pass the resulting partial + # to lazy_model_operation() along with the remaining model args and + # repeat until all models are loaded and all arguments are applied. + else: + next_model, *more_models = model_keys + + # This will be executed after the class corresponding to next_model + # has been imported and registered. The `func` attribute provides + # duck-type compatibility with partials. + def apply_next_model(model): + next_function = partial(apply_next_model.func, model) + self.lazy_model_operation(next_function, *more_models) + + apply_next_model.func = function + + # If the model has already been imported and registered, partially + # apply it to the function now. If not, add it to the list of + # pending operations for the model, where it will be executed with + # the model class as its sole argument once the model is ready. + try: + model_class = self.get_registered_model(*next_model) + except LookupError: + self._pending_operations[next_model].append(apply_next_model) + else: + apply_next_model(model_class) + + def do_pending_operations(self, model): + """ + Take a newly-prepared model and pass it to each function waiting for + it. This is called at the very end of Apps.register_model(). + """ + key = model._meta.app_label, model._meta.model_name + for function in self._pending_operations.pop(key, []): + function(model) + + +apps = Apps(installed_apps=None) diff --git a/venv/lib/python3.12/site-packages/django/conf/__init__.py b/venv/lib/python3.12/site-packages/django/conf/__init__.py new file mode 100644 index 0000000000..5568d7cc83 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/__init__.py @@ -0,0 +1,272 @@ +""" +Settings and configuration for Django. + +Read values from the module specified by the DJANGO_SETTINGS_MODULE environment +variable, and then from django.conf.global_settings; see the global_settings.py +for a list of all possible variables. +""" + +import importlib +import os +import time +import traceback +import warnings +from pathlib import Path + +import django +from django.conf import global_settings +from django.core.exceptions import ImproperlyConfigured +from django.utils.deprecation import RemovedInDjango60Warning +from django.utils.functional import LazyObject, empty + +ENVIRONMENT_VARIABLE = "DJANGO_SETTINGS_MODULE" +DEFAULT_STORAGE_ALIAS = "default" +STATICFILES_STORAGE_ALIAS = "staticfiles" + +# RemovedInDjango60Warning. +FORMS_URLFIELD_ASSUME_HTTPS_DEPRECATED_MSG = ( + "The FORMS_URLFIELD_ASSUME_HTTPS transitional setting is deprecated." +) + + +class SettingsReference(str): + """ + String subclass which references a current settings value. It's treated as + the value in memory but serializes to a settings.NAME attribute reference. + """ + + def __new__(self, value, setting_name): + return str.__new__(self, value) + + def __init__(self, value, setting_name): + self.setting_name = setting_name + + +class LazySettings(LazyObject): + """ + A lazy proxy for either global Django settings or a custom settings object. + The user can manually configure settings prior to using them. Otherwise, + Django uses the settings module pointed to by DJANGO_SETTINGS_MODULE. + """ + + def _setup(self, name=None): + """ + Load the settings module pointed to by the environment variable. This + is used the first time settings are needed, if the user hasn't + configured settings manually. + """ + settings_module = os.environ.get(ENVIRONMENT_VARIABLE) + if not settings_module: + desc = ("setting %s" % name) if name else "settings" + raise ImproperlyConfigured( + "Requested %s, but settings are not configured. " + "You must either define the environment variable %s " + "or call settings.configure() before accessing settings." + % (desc, ENVIRONMENT_VARIABLE) + ) + + self._wrapped = Settings(settings_module) + + def __repr__(self): + # Hardcode the class name as otherwise it yields 'Settings'. + if self._wrapped is empty: + return "" + return '' % { + "settings_module": self._wrapped.SETTINGS_MODULE, + } + + def __getattr__(self, name): + """Return the value of a setting and cache it in self.__dict__.""" + if (_wrapped := self._wrapped) is empty: + self._setup(name) + _wrapped = self._wrapped + val = getattr(_wrapped, name) + + # Special case some settings which require further modification. + # This is done here for performance reasons so the modified value is cached. + if name in {"MEDIA_URL", "STATIC_URL"} and val is not None: + val = self._add_script_prefix(val) + elif name == "SECRET_KEY" and not val: + raise ImproperlyConfigured("The SECRET_KEY setting must not be empty.") + + self.__dict__[name] = val + return val + + def __setattr__(self, name, value): + """ + Set the value of setting. Clear all cached values if _wrapped changes + (@override_settings does this) or clear single values when set. + """ + if name == "_wrapped": + self.__dict__.clear() + else: + self.__dict__.pop(name, None) + super().__setattr__(name, value) + + def __delattr__(self, name): + """Delete a setting and clear it from cache if needed.""" + super().__delattr__(name) + self.__dict__.pop(name, None) + + def configure(self, default_settings=global_settings, **options): + """ + Called to manually configure the settings. The 'default_settings' + parameter sets where to retrieve any unspecified values from (its + argument must support attribute access (__getattr__)). + """ + if self._wrapped is not empty: + raise RuntimeError("Settings already configured.") + holder = UserSettingsHolder(default_settings) + for name, value in options.items(): + if not name.isupper(): + raise TypeError("Setting %r must be uppercase." % name) + setattr(holder, name, value) + self._wrapped = holder + + @staticmethod + def _add_script_prefix(value): + """ + Add SCRIPT_NAME prefix to relative paths. + + Useful when the app is being served at a subpath and manually prefixing + subpath to STATIC_URL and MEDIA_URL in settings is inconvenient. + """ + # Don't apply prefix to absolute paths and URLs. + if value.startswith(("http://", "https://", "/")): + return value + from django.urls import get_script_prefix + + return "%s%s" % (get_script_prefix(), value) + + @property + def configured(self): + """Return True if the settings have already been configured.""" + return self._wrapped is not empty + + def _show_deprecation_warning(self, message, category): + stack = traceback.extract_stack() + # Show a warning if the setting is used outside of Django. + # Stack index: -1 this line, -2 the property, -3 the + # LazyObject __getattribute__(), -4 the caller. + filename, _, _, _ = stack[-4] + if not filename.startswith(os.path.dirname(django.__file__)): + warnings.warn(message, category, stacklevel=2) + + +class Settings: + def __init__(self, settings_module): + # update this dict from global settings (but only for ALL_CAPS settings) + for setting in dir(global_settings): + if setting.isupper(): + setattr(self, setting, getattr(global_settings, setting)) + + # store the settings module in case someone later cares + self.SETTINGS_MODULE = settings_module + + mod = importlib.import_module(self.SETTINGS_MODULE) + + tuple_settings = ( + "ALLOWED_HOSTS", + "INSTALLED_APPS", + "TEMPLATE_DIRS", + "LOCALE_PATHS", + "SECRET_KEY_FALLBACKS", + ) + self._explicit_settings = set() + for setting in dir(mod): + if setting.isupper(): + setting_value = getattr(mod, setting) + + if setting in tuple_settings and not isinstance( + setting_value, (list, tuple) + ): + raise ImproperlyConfigured( + "The %s setting must be a list or a tuple." % setting + ) + setattr(self, setting, setting_value) + self._explicit_settings.add(setting) + + if self.is_overridden("FORMS_URLFIELD_ASSUME_HTTPS"): + warnings.warn( + FORMS_URLFIELD_ASSUME_HTTPS_DEPRECATED_MSG, + RemovedInDjango60Warning, + ) + + if hasattr(time, "tzset") and self.TIME_ZONE: + # When we can, attempt to validate the timezone. If we can't find + # this file, no check happens and it's harmless. + zoneinfo_root = Path("/usr/share/zoneinfo") + zone_info_file = zoneinfo_root.joinpath(*self.TIME_ZONE.split("/")) + if zoneinfo_root.exists() and not zone_info_file.exists(): + raise ValueError("Incorrect timezone setting: %s" % self.TIME_ZONE) + # Move the time zone info into os.environ. See ticket #2315 for why + # we don't do this unconditionally (breaks Windows). + os.environ["TZ"] = self.TIME_ZONE + time.tzset() + + def is_overridden(self, setting): + return setting in self._explicit_settings + + def __repr__(self): + return '<%(cls)s "%(settings_module)s">' % { + "cls": self.__class__.__name__, + "settings_module": self.SETTINGS_MODULE, + } + + +class UserSettingsHolder: + """Holder for user configured settings.""" + + # SETTINGS_MODULE doesn't make much sense in the manually configured + # (standalone) case. + SETTINGS_MODULE = None + + def __init__(self, default_settings): + """ + Requests for configuration variables not in this class are satisfied + from the module specified in default_settings (if possible). + """ + self.__dict__["_deleted"] = set() + self.default_settings = default_settings + + def __getattr__(self, name): + if not name.isupper() or name in self._deleted: + raise AttributeError + return getattr(self.default_settings, name) + + def __setattr__(self, name, value): + self._deleted.discard(name) + if name == "FORMS_URLFIELD_ASSUME_HTTPS": + warnings.warn( + FORMS_URLFIELD_ASSUME_HTTPS_DEPRECATED_MSG, + RemovedInDjango60Warning, + ) + super().__setattr__(name, value) + + def __delattr__(self, name): + self._deleted.add(name) + if hasattr(self, name): + super().__delattr__(name) + + def __dir__(self): + return sorted( + s + for s in [*self.__dict__, *dir(self.default_settings)] + if s not in self._deleted + ) + + def is_overridden(self, setting): + deleted = setting in self._deleted + set_locally = setting in self.__dict__ + set_on_default = getattr( + self.default_settings, "is_overridden", lambda s: False + )(setting) + return deleted or set_locally or set_on_default + + def __repr__(self): + return "<%(cls)s>" % { + "cls": self.__class__.__name__, + } + + +settings = LazySettings() diff --git a/venv/lib/python3.12/site-packages/django/conf/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..df0822cd53a358edf97e2e84ef6b922310f448bc GIT binary patch literal 13039 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 f&>q?yg&dYG3G 'fr' fallback logic. +""" + +LANG_INFO = { + "af": { + "bidi": False, + "code": "af", + "name": "Afrikaans", + "name_local": "Afrikaans", + }, + "ar": { + "bidi": True, + "code": "ar", + "name": "Arabic", + "name_local": "العربيّة", + }, + "ar-dz": { + "bidi": True, + "code": "ar-dz", + "name": "Algerian Arabic", + "name_local": "العربية الجزائرية", + }, + "ast": { + "bidi": False, + "code": "ast", + "name": "Asturian", + "name_local": "asturianu", + }, + "az": { + "bidi": True, + "code": "az", + "name": "Azerbaijani", + "name_local": "Azərbaycanca", + }, + "be": { + "bidi": False, + "code": "be", + "name": "Belarusian", + "name_local": "беларуская", + }, + "bg": { + "bidi": False, + "code": "bg", + "name": "Bulgarian", + "name_local": "български", + }, + "bn": { + "bidi": False, + "code": "bn", + "name": "Bengali", + "name_local": "বাংলা", + }, + "br": { + "bidi": False, + "code": "br", + "name": "Breton", + "name_local": "brezhoneg", + }, + "bs": { + "bidi": False, + "code": "bs", + "name": "Bosnian", + "name_local": "bosanski", + }, + "ca": { + "bidi": False, + "code": "ca", + "name": "Catalan", + "name_local": "català", + }, + "ckb": { + "bidi": True, + "code": "ckb", + "name": "Central Kurdish (Sorani)", + "name_local": "کوردی", + }, + "cs": { + "bidi": False, + "code": "cs", + "name": "Czech", + "name_local": "česky", + }, + "cy": { + "bidi": False, + "code": "cy", + "name": "Welsh", + "name_local": "Cymraeg", + }, + "da": { + "bidi": False, + "code": "da", + "name": "Danish", + "name_local": "dansk", + }, + "de": { + "bidi": False, + "code": "de", + "name": "German", + "name_local": "Deutsch", + }, + "dsb": { + "bidi": False, + "code": "dsb", + "name": "Lower Sorbian", + "name_local": "dolnoserbski", + }, + "el": { + "bidi": False, + "code": "el", + "name": "Greek", + "name_local": "Ελληνικά", + }, + "en": { + "bidi": False, + "code": "en", + "name": "English", + "name_local": "English", + }, + "en-au": { + "bidi": False, + "code": "en-au", + "name": "Australian English", + "name_local": "Australian English", + }, + "en-gb": { + "bidi": False, + "code": "en-gb", + "name": "British English", + "name_local": "British English", + }, + "eo": { + "bidi": False, + "code": "eo", + "name": "Esperanto", + "name_local": "Esperanto", + }, + "es": { + "bidi": False, + "code": "es", + "name": "Spanish", + "name_local": "español", + }, + "es-ar": { + "bidi": False, + "code": "es-ar", + "name": "Argentinian Spanish", + "name_local": "español de Argentina", + }, + "es-co": { + "bidi": False, + "code": "es-co", + "name": "Colombian Spanish", + "name_local": "español de Colombia", + }, + "es-mx": { + "bidi": False, + "code": "es-mx", + "name": "Mexican Spanish", + "name_local": "español de Mexico", + }, + "es-ni": { + "bidi": False, + "code": "es-ni", + "name": "Nicaraguan Spanish", + "name_local": "español de Nicaragua", + }, + "es-ve": { + "bidi": False, + "code": "es-ve", + "name": "Venezuelan Spanish", + "name_local": "español de Venezuela", + }, + "et": { + "bidi": False, + "code": "et", + "name": "Estonian", + "name_local": "eesti", + }, + "eu": { + "bidi": False, + "code": "eu", + "name": "Basque", + "name_local": "Basque", + }, + "fa": { + "bidi": True, + "code": "fa", + "name": "Persian", + "name_local": "فارسی", + }, + "fi": { + "bidi": False, + "code": "fi", + "name": "Finnish", + "name_local": "suomi", + }, + "fr": { + "bidi": False, + "code": "fr", + "name": "French", + "name_local": "français", + }, + "fy": { + "bidi": False, + "code": "fy", + "name": "Frisian", + "name_local": "frysk", + }, + "ga": { + "bidi": False, + "code": "ga", + "name": "Irish", + "name_local": "Gaeilge", + }, + "gd": { + "bidi": False, + "code": "gd", + "name": "Scottish Gaelic", + "name_local": "Gàidhlig", + }, + "gl": { + "bidi": False, + "code": "gl", + "name": "Galician", + "name_local": "galego", + }, + "he": { + "bidi": True, + "code": "he", + "name": "Hebrew", + "name_local": "עברית", + }, + "hi": { + "bidi": False, + "code": "hi", + "name": "Hindi", + "name_local": "हिंदी", + }, + "hr": { + "bidi": False, + "code": "hr", + "name": "Croatian", + "name_local": "Hrvatski", + }, + "hsb": { + "bidi": False, + "code": "hsb", + "name": "Upper Sorbian", + "name_local": "hornjoserbsce", + }, + "hu": { + "bidi": False, + "code": "hu", + "name": "Hungarian", + "name_local": "Magyar", + }, + "hy": { + "bidi": False, + "code": "hy", + "name": "Armenian", + "name_local": "հայերեն", + }, + "ia": { + "bidi": False, + "code": "ia", + "name": "Interlingua", + "name_local": "Interlingua", + }, + "io": { + "bidi": False, + "code": "io", + "name": "Ido", + "name_local": "ido", + }, + "id": { + "bidi": False, + "code": "id", + "name": "Indonesian", + "name_local": "Bahasa Indonesia", + }, + "ig": { + "bidi": False, + "code": "ig", + "name": "Igbo", + "name_local": "Asụsụ Ìgbò", + }, + "is": { + "bidi": False, + "code": "is", + "name": "Icelandic", + "name_local": "Íslenska", + }, + "it": { + "bidi": False, + "code": "it", + "name": "Italian", + "name_local": "italiano", + }, + "ja": { + "bidi": False, + "code": "ja", + "name": "Japanese", + "name_local": "日本語", + }, + "ka": { + "bidi": False, + "code": "ka", + "name": "Georgian", + "name_local": "ქართული", + }, + "kab": { + "bidi": False, + "code": "kab", + "name": "Kabyle", + "name_local": "taqbaylit", + }, + "kk": { + "bidi": False, + "code": "kk", + "name": "Kazakh", + "name_local": "Қазақ", + }, + "km": { + "bidi": False, + "code": "km", + "name": "Khmer", + "name_local": "Khmer", + }, + "kn": { + "bidi": False, + "code": "kn", + "name": "Kannada", + "name_local": "Kannada", + }, + "ko": { + "bidi": False, + "code": "ko", + "name": "Korean", + "name_local": "한국어", + }, + "ky": { + "bidi": False, + "code": "ky", + "name": "Kyrgyz", + "name_local": "Кыргызча", + }, + "lb": { + "bidi": False, + "code": "lb", + "name": "Luxembourgish", + "name_local": "Lëtzebuergesch", + }, + "lt": { + "bidi": False, + "code": "lt", + "name": "Lithuanian", + "name_local": "Lietuviškai", + }, + "lv": { + "bidi": False, + "code": "lv", + "name": "Latvian", + "name_local": "latviešu", + }, + "mk": { + "bidi": False, + "code": "mk", + "name": "Macedonian", + "name_local": "Македонски", + }, + "ml": { + "bidi": False, + "code": "ml", + "name": "Malayalam", + "name_local": "മലയാളം", + }, + "mn": { + "bidi": False, + "code": "mn", + "name": "Mongolian", + "name_local": "Mongolian", + }, + "mr": { + "bidi": False, + "code": "mr", + "name": "Marathi", + "name_local": "मराठी", + }, + "ms": { + "bidi": False, + "code": "ms", + "name": "Malay", + "name_local": "Bahasa Melayu", + }, + "my": { + "bidi": False, + "code": "my", + "name": "Burmese", + "name_local": "မြန်မာဘာသာ", + }, + "nb": { + "bidi": False, + "code": "nb", + "name": "Norwegian Bokmal", + "name_local": "norsk (bokmål)", + }, + "ne": { + "bidi": False, + "code": "ne", + "name": "Nepali", + "name_local": "नेपाली", + }, + "nl": { + "bidi": False, + "code": "nl", + "name": "Dutch", + "name_local": "Nederlands", + }, + "nn": { + "bidi": False, + "code": "nn", + "name": "Norwegian Nynorsk", + "name_local": "norsk (nynorsk)", + }, + "no": { + "bidi": False, + "code": "no", + "name": "Norwegian", + "name_local": "norsk", + }, + "os": { + "bidi": False, + "code": "os", + "name": "Ossetic", + "name_local": "Ирон", + }, + "pa": { + "bidi": False, + "code": "pa", + "name": "Punjabi", + "name_local": "Punjabi", + }, + "pl": { + "bidi": False, + "code": "pl", + "name": "Polish", + "name_local": "polski", + }, + "pt": { + "bidi": False, + "code": "pt", + "name": "Portuguese", + "name_local": "Português", + }, + "pt-br": { + "bidi": False, + "code": "pt-br", + "name": "Brazilian Portuguese", + "name_local": "Português Brasileiro", + }, + "ro": { + "bidi": False, + "code": "ro", + "name": "Romanian", + "name_local": "Română", + }, + "ru": { + "bidi": False, + "code": "ru", + "name": "Russian", + "name_local": "Русский", + }, + "sk": { + "bidi": False, + "code": "sk", + "name": "Slovak", + "name_local": "slovensky", + }, + "sl": { + "bidi": False, + "code": "sl", + "name": "Slovenian", + "name_local": "Slovenščina", + }, + "sq": { + "bidi": False, + "code": "sq", + "name": "Albanian", + "name_local": "shqip", + }, + "sr": { + "bidi": False, + "code": "sr", + "name": "Serbian", + "name_local": "српски", + }, + "sr-latn": { + "bidi": False, + "code": "sr-latn", + "name": "Serbian Latin", + "name_local": "srpski (latinica)", + }, + "sv": { + "bidi": False, + "code": "sv", + "name": "Swedish", + "name_local": "svenska", + }, + "sw": { + "bidi": False, + "code": "sw", + "name": "Swahili", + "name_local": "Kiswahili", + }, + "ta": { + "bidi": False, + "code": "ta", + "name": "Tamil", + "name_local": "தமிழ்", + }, + "te": { + "bidi": False, + "code": "te", + "name": "Telugu", + "name_local": "తెలుగు", + }, + "tg": { + "bidi": False, + "code": "tg", + "name": "Tajik", + "name_local": "тоҷикӣ", + }, + "th": { + "bidi": False, + "code": "th", + "name": "Thai", + "name_local": "ภาษาไทย", + }, + "tk": { + "bidi": False, + "code": "tk", + "name": "Turkmen", + "name_local": "Türkmençe", + }, + "tr": { + "bidi": False, + "code": "tr", + "name": "Turkish", + "name_local": "Türkçe", + }, + "tt": { + "bidi": False, + "code": "tt", + "name": "Tatar", + "name_local": "Татарча", + }, + "udm": { + "bidi": False, + "code": "udm", + "name": "Udmurt", + "name_local": "Удмурт", + }, + "ug": { + "bidi": True, + "code": "ug", + "name": "Uyghur", + "name_local": "ئۇيغۇرچە", + }, + "uk": { + "bidi": False, + "code": "uk", + "name": "Ukrainian", + "name_local": "Українська", + }, + "ur": { + "bidi": True, + "code": "ur", + "name": "Urdu", + "name_local": "اردو", + }, + "uz": { + "bidi": False, + "code": "uz", + "name": "Uzbek", + "name_local": "oʻzbek tili", + }, + "vi": { + "bidi": False, + "code": "vi", + "name": "Vietnamese", + "name_local": "Tiếng Việt", + }, + "zh-cn": { + "fallback": ["zh-hans"], + }, + "zh-hans": { + "bidi": False, + "code": "zh-hans", + "name": "Simplified Chinese", + "name_local": "简体中文", + }, + "zh-hant": { + "bidi": False, + "code": "zh-hant", + "name": "Traditional Chinese", + "name_local": "繁體中文", + }, + "zh-hk": { + "fallback": ["zh-hant"], + }, + "zh-mo": { + "fallback": ["zh-hant"], + }, + "zh-my": { + "fallback": ["zh-hans"], + }, + "zh-sg": { + "fallback": ["zh-hans"], + }, + "zh-tw": { + "fallback": ["zh-hant"], + }, +} diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..43378bf34a96754cce6196e6ad52e52f02f9e32b GIT binary patch literal 8566 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 M-WD}~fZq-O3mCSg&j0`b literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/af/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/conf/locale/af/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..8b37fdb3fb67343b1dba75f3c0afa947c22ef8d8 GIT binary patch literal 27068 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, 2019-2020,2022-2023 +# Stephen Cox , 2011-2012 +# unklphil , 2014,2019 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-09-18 11:41-0300\n" +"PO-Revision-Date: 2023-12-04 06:49+0000\n" +"Last-Translator: F Wolff , 2019-2020,2022-2023\n" +"Language-Team: Afrikaans (http://app.transifex.com/django/django/language/" +"af/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: af\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Afrikaans" +msgstr "Afrikaans" + +msgid "Arabic" +msgstr "Arabies" + +msgid "Algerian Arabic" +msgstr "Algeriese Arabies" + +msgid "Asturian" +msgstr "Asturies" + +msgid "Azerbaijani" +msgstr "Aserbeidjans" + +msgid "Bulgarian" +msgstr "Bulgaars" + +msgid "Belarusian" +msgstr "Wit-Russies" + +msgid "Bengali" +msgstr "Bengali" + +msgid "Breton" +msgstr "Bretons" + +msgid "Bosnian" +msgstr "Bosnies" + +msgid "Catalan" +msgstr "Katalaans" + +msgid "Central Kurdish (Sorani)" +msgstr "" + +msgid "Czech" +msgstr "Tsjeggies" + +msgid "Welsh" +msgstr "Wallies" + +msgid "Danish" +msgstr "Deens" + +msgid "German" +msgstr "Duits" + +msgid "Lower Sorbian" +msgstr "Neder-Sorbies" + +msgid "Greek" +msgstr "Grieks" + +msgid "English" +msgstr "Engels" + +msgid "Australian English" +msgstr "Australiese Engels" + +msgid "British English" +msgstr "Britse Engels" + +msgid "Esperanto" +msgstr "Esperanto" + +msgid "Spanish" +msgstr "Spaans" + +msgid "Argentinian Spanish" +msgstr "Argentynse Spaans" + +msgid "Colombian Spanish" +msgstr "Kolombiaanse Spaans" + +msgid "Mexican Spanish" +msgstr "Meksikaanse Spaans" + +msgid "Nicaraguan Spanish" +msgstr "Nicaraguaanse Spaans" + +msgid "Venezuelan Spanish" +msgstr "Venezolaanse Spaans" + +msgid "Estonian" +msgstr "Estnies" + +msgid "Basque" +msgstr "Baskies" + +msgid "Persian" +msgstr "Persies" + +msgid "Finnish" +msgstr "Fins" + +msgid "French" +msgstr "Fraans" + +msgid "Frisian" +msgstr "Fries" + +msgid "Irish" +msgstr "Iers" + +msgid "Scottish Gaelic" +msgstr "Skots-Gaelies" + +msgid "Galician" +msgstr "Galicies" + +msgid "Hebrew" +msgstr "Hebreeus" + +msgid "Hindi" +msgstr "Hindoe" + +msgid "Croatian" +msgstr "Kroaties" + +msgid "Upper Sorbian" +msgstr "Opper-Sorbies" + +msgid "Hungarian" +msgstr "Hongaars" + +msgid "Armenian" +msgstr "Armeens" + +msgid "Interlingua" +msgstr "Interlingua" + +msgid "Indonesian" +msgstr "Indonesies" + +msgid "Igbo" +msgstr "" + +msgid "Ido" +msgstr "Ido" + +msgid "Icelandic" +msgstr "Yslands" + +msgid "Italian" +msgstr "Italiaans" + +msgid "Japanese" +msgstr "Japannees" + +msgid "Georgian" +msgstr "Georgian" + +msgid "Kabyle" +msgstr "Kabilies" + +msgid "Kazakh" +msgstr "Kazakh" + +msgid "Khmer" +msgstr "Khmer" + +msgid "Kannada" +msgstr "Kannada" + +msgid "Korean" +msgstr "Koreaans" + +msgid "Kyrgyz" +msgstr "" + +msgid "Luxembourgish" +msgstr "Luxemburgs" + +msgid "Lithuanian" +msgstr "Litaus" + +msgid "Latvian" +msgstr "Lets" + +msgid "Macedonian" +msgstr "Macedonies" + +msgid "Malayalam" +msgstr "Malabaars" + +msgid "Mongolian" +msgstr "Mongools" + +msgid "Marathi" +msgstr "Marathi" + +msgid "Malay" +msgstr "Maleisies" + +msgid "Burmese" +msgstr "Birmaans" + +msgid "Norwegian Bokmål" +msgstr "Noorweegse Bokmål" + +msgid "Nepali" +msgstr "Nepalees" + +msgid "Dutch" +msgstr "Nederlands" + +msgid "Norwegian Nynorsk" +msgstr "Noorweegse Nynorsk" + +msgid "Ossetic" +msgstr "Osseties" + +msgid "Punjabi" +msgstr "Punjabi" + +msgid "Polish" +msgstr "Pools" + +msgid "Portuguese" +msgstr "Portugees" + +msgid "Brazilian Portuguese" +msgstr "Brasiliaanse Portugees" + +msgid "Romanian" +msgstr "Roemeens" + +msgid "Russian" +msgstr "Russiese" + +msgid "Slovak" +msgstr "Slowaaks" + +msgid "Slovenian" +msgstr "Sloweens" + +msgid "Albanian" +msgstr "Albanees" + +msgid "Serbian" +msgstr "Serwies" + +msgid "Serbian Latin" +msgstr "Serwies Latyns" + +msgid "Swedish" +msgstr "Sweeds" + +msgid "Swahili" +msgstr "Swahili" + +msgid "Tamil" +msgstr "Tamil" + +msgid "Telugu" +msgstr "Teloegoe" + +msgid "Tajik" +msgstr "" + +msgid "Thai" +msgstr "Thai" + +msgid "Turkmen" +msgstr "" + +msgid "Turkish" +msgstr "Turks" + +msgid "Tatar" +msgstr "Tataars" + +msgid "Udmurt" +msgstr "Oedmoerts" + +msgid "Uyghur" +msgstr "" + +msgid "Ukrainian" +msgstr "Oekraïens" + +msgid "Urdu" +msgstr "Oerdoe" + +msgid "Uzbek" +msgstr "Oesbekies " + +msgid "Vietnamese" +msgstr "Viëtnamees" + +msgid "Simplified Chinese" +msgstr "Vereenvoudigde Sjinees" + +msgid "Traditional Chinese" +msgstr "Tradisionele Sjinees" + +msgid "Messages" +msgstr "Boodskappe" + +msgid "Site Maps" +msgstr "Werfkaarte" + +msgid "Static Files" +msgstr "Statiese lêers" + +msgid "Syndication" +msgstr "Sindikasie" + +#. Translators: String used to replace omitted page numbers in elided page +#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10]. +msgid "…" +msgstr "…" + +msgid "That page number is not an integer" +msgstr "Daai bladsynommer is nie ’n heelgetal nie" + +msgid "That page number is less than 1" +msgstr "Daai bladsynommer is minder as 1" + +msgid "That page contains no results" +msgstr "Daai bladsy bevat geen resultate nie" + +msgid "Enter a valid value." +msgstr "Gee ’n geldige waarde." + +msgid "Enter a valid URL." +msgstr "Gee ’n geldige URL." + +msgid "Enter a valid integer." +msgstr "Gee ’n geldige heelgetal." + +msgid "Enter a valid email address." +msgstr "Gee ’n geldige e-posadres." + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" +"Gee ’n geldige “slak” wat bestaan ​​uit letters, syfers, onderstreep of " +"koppelteken." + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" +"Gee ’n geldige “slak” wat bestaan ​​uit Unicode-letters, syfers, onderstreep " +"of koppelteken." + +msgid "Enter a valid IPv4 address." +msgstr "Gee ’n geldige IPv4-adres." + +msgid "Enter a valid IPv6 address." +msgstr "Gee ’n geldige IPv6-adres." + +msgid "Enter a valid IPv4 or IPv6 address." +msgstr "Gee ’n geldige IPv4- of IPv6-adres." + +msgid "Enter only digits separated by commas." +msgstr "Gee slegs syfers wat deur kommas geskei is." + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "" +"Maak seker dat hierdie waarde %(limit_value)s is (dit is %(show_value)s)." + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "Maak seker dat hierdie waarde kleiner of gelyk is aan %(limit_value)s." + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "Maak seker dat hierdie waarde groter of gelyk is aan %(limit_value)s." + +#, python-format +msgid "Ensure this value is a multiple of step size %(limit_value)s." +msgstr "" +"Maak seker dat hierdie waarde ’n veelvoud is van stapgrootte %(limit_value)s." + +#, python-format +msgid "" +"Ensure this value is a multiple of step size %(limit_value)s, starting from " +"%(offset)s, e.g. %(offset)s, %(valid_value1)s, %(valid_value2)s, and so on." +msgstr "" + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Maak seker hierdie waarde het ten minste %(limit_value)d karakter (dit het " +"%(show_value)d)." +msgstr[1] "" +"Maak seker hierdie waarde het ten minste %(limit_value)d karakters (dit het " +"%(show_value)d)." + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Maak seker hierdie waarde het op die meeste %(limit_value)d karakter (dit " +"het %(show_value)d)." +msgstr[1] "" +"Maak seker hierdie waarde het op die meeste %(limit_value)d karakters (dit " +"het %(show_value)d)." + +msgid "Enter a number." +msgstr "Gee ’n getal." + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "Maak seker dat daar nie meer as %(max)s syfer in totaal is nie." +msgstr[1] "Maak seker dat daar nie meer as %(max)s syfers in totaal is nie." + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "Maak seker dat daar nie meer as %(max)s desimale plek is nie." +msgstr[1] "Maak seker dat daar nie meer as %(max)s desimale plekke is nie." + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "" +"Maak seker dat daar nie meer as %(max)s syfer voor die desimale punt is nie." +msgstr[1] "" +"Maak seker dat daar nie meer as %(max)s syfers voor die desimale punt is nie." + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" +"Lêeruitbreiding “%(extension)s” word nie toegelaat nie. Toegelate " +"uitbreidings is: %(allowed_extensions)s." + +msgid "Null characters are not allowed." +msgstr "Nul-karakters word nie toegelaat nie." + +msgid "and" +msgstr "en" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "%(model_name)s met hierdie %(field_labels)s bestaan alreeds." + +#, python-format +msgid "Constraint “%(name)s” is violated." +msgstr "Beperking “%(name)s” word verbreek." + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "Waarde %(value)r is nie ’n geldige keuse nie." + +msgid "This field cannot be null." +msgstr "Hierdie veld kan nie nil wees nie." + +msgid "This field cannot be blank." +msgstr "Hierdie veld kan nie leeg wees nie." + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "%(model_name)s met hierdie %(field_label)s bestaan ​​alreeds." + +#. Translators: The 'lookup_type' is one of 'date', 'year' or +#. 'month'. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" +"%(field_label)s moet uniek wees per %(date_field_label)s %(lookup_type)s." + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "Veld van tipe: %(field_type)s " + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "“%(value)s” waarde moet óf True óf False wees." + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "Die waarde “%(value)s” moet True, False of None wees." + +msgid "Boolean (Either True or False)" +msgstr "Boole (True of False)" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "String (hoogstens %(max_length)s karakters)" + +msgid "String (unlimited)" +msgstr "String (onbeperk)" + +msgid "Comma-separated integers" +msgstr "Heelgetalle geskei met kommas" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" +"Die waarde “%(value)s” het ’n ongeldige datumformaat. Dit moet in die " +"formaat JJJJ-MM-DD wees." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" +"Die waarde “%(value)s” het die korrekte formaat (JJJJ-MM-DD), maar dit is ’n " +"ongeldige datum." + +msgid "Date (without time)" +msgstr "Datum (sonder die tyd)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" +"Die waarde “%(value)s” se formaat is ongeldig. Dit moet in die formaat JJJJ-" +"MM-DD HH:MM[:ss[.uuuuuu]][TZ] wees." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" +"Die waarde “%(value)s” het die korrekte formaat (JJJJ-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ]) maar dit is ’n ongeldige datum/tyd." + +msgid "Date (with time)" +msgstr "Datum (met die tyd)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "“%(value)s”-waarde moet ’n desimale getal wees." + +msgid "Decimal number" +msgstr "Desimale getal" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" +"Die waarde “%(value)s” het ’n ongeldige formaat. Dit moet in die formaat " +"[DD] [HH:[MM:]]ss[.uuuuuu] wees." + +msgid "Duration" +msgstr "Duur" + +msgid "Email address" +msgstr "E-posadres" + +msgid "File path" +msgstr "Lêerpad" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "Die waarde “%(value)s” moet ’n dryfpuntgetal wees." + +msgid "Floating point number" +msgstr "Dryfpuntgetal" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "Die waarde “%(value)s” moet ’n heelgetal wees." + +msgid "Integer" +msgstr "Heelgetal" + +msgid "Big (8 byte) integer" +msgstr "Groot (8 greep) heelgetal" + +msgid "Small integer" +msgstr "Klein heelgetal" + +msgid "IPv4 address" +msgstr "IPv4-adres" + +msgid "IP address" +msgstr "IP-adres" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "“%(value)s”-waarde moet een wees uit None, True of False." + +msgid "Boolean (Either True, False or None)" +msgstr "Boole (True, False, of None)" + +msgid "Positive big integer" +msgstr "Positiewe groot heelgetal" + +msgid "Positive integer" +msgstr "Positiewe heelgetal" + +msgid "Positive small integer" +msgstr "Klein positiewe heelgetal" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "Slug (tot en met %(max_length)s karakters)" + +msgid "Text" +msgstr "Teks" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" +"“%(value)s”-waarde het ’n ongeldige formaat. Dit moet geformateer word as HH:" +"MM[:ss[.uuuuuu]]." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" +"Die waarde “%(value)s” het die regte formaat (HH:MM[:ss[.uuuuuu]]) maar is " +"nie ’n geldige tyd nie." + +msgid "Time" +msgstr "Tyd" + +msgid "URL" +msgstr "URL" + +msgid "Raw binary data" +msgstr "Rou binêre data" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "“%(value)s” is nie ’n geldige UUID nie." + +msgid "Universally unique identifier" +msgstr "Universeel unieke identifiseerder" + +msgid "File" +msgstr "Lêer" + +msgid "Image" +msgstr "Prent" + +msgid "A JSON object" +msgstr "’n JSON-objek" + +msgid "Value must be valid JSON." +msgstr "Waarde moet geldige JSON wees." + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "%(model)s-objek met %(field)s %(value)r bestaan nie." + +msgid "Foreign Key (type determined by related field)" +msgstr "Vreemde sleutel (tipe bepaal deur verwante veld)" + +msgid "One-to-one relationship" +msgstr "Een-tot-een-verhouding" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "%(from)s-%(to)s-verwantskap" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "%(from)s-%(to)s-verwantskappe" + +msgid "Many-to-many relationship" +msgstr "Baie-tot-baie-verwantskap" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr ":?.!" + +msgid "This field is required." +msgstr "Dié veld is verpligtend." + +msgid "Enter a whole number." +msgstr "Tik ’n heelgetal in." + +msgid "Enter a valid date." +msgstr "Tik ’n geldige datum in." + +msgid "Enter a valid time." +msgstr "Tik ’n geldige tyd in." + +msgid "Enter a valid date/time." +msgstr "Tik ’n geldige datum/tyd in." + +msgid "Enter a valid duration." +msgstr "Tik ’n geldige tydsduur in." + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "Die aantal dae moet tussen {min_days} en {max_days} wees." + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "" +"Geen lêer is ingedien nie. Maak seker die koderingtipe op die vorm is reg." + +msgid "No file was submitted." +msgstr "Geen lêer is ingedien nie." + +msgid "The submitted file is empty." +msgstr "Die ingediende lêer is leeg." + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" +"Maak seker hierdie lêernaam het hoogstens %(max)d karakter (dit het " +"%(length)d)." +msgstr[1] "" +"Maak seker hierdie lêernaam het hoogstens %(max)d karakters (dit het " +"%(length)d)." + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "Dien die lêer in óf merk die Maak skoon-boksie, nie altwee nie." + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" +"Laai ’n geldige prent. Die lêer wat jy opgelaai het, is nie ’n prent nie of " +"dit is ’n korrupte prent." + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "" +"Kies ’n geldige keuse. %(value)s is nie een van die beskikbare keuses nie." + +msgid "Enter a list of values." +msgstr "Tik ’n lys waardes in." + +msgid "Enter a complete value." +msgstr "Tik ’n volledige waarde in." + +msgid "Enter a valid UUID." +msgstr "Tik ’n geldig UUID in." + +msgid "Enter a valid JSON." +msgstr "Gee geldige JSON." + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr ":" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "(Versteekte veld %(name)s) %(error)s" + +#, python-format +msgid "" +"ManagementForm data is missing or has been tampered with. Missing fields: " +"%(field_names)s. You may need to file a bug report if the issue persists." +msgstr "" + +#, python-format +msgid "Please submit at most %(num)d form." +msgid_plural "Please submit at most %(num)d forms." +msgstr[0] "Dien asseblief hoogstens %(num)d vorm in." +msgstr[1] "Dien asseblief hoogstens %(num)d vorms in." + +#, python-format +msgid "Please submit at least %(num)d form." +msgid_plural "Please submit at least %(num)d forms." +msgstr[0] "Dien asseblief ten minste %(num)d vorm in." +msgstr[1] "Dien asseblief ten minste %(num)d vorms in." + +msgid "Order" +msgstr "Orde" + +msgid "Delete" +msgstr "Verwyder" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "Korrigeer die dubbele data vir %(field)s." + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "Korrigeer die dubbele data vir %(field)s, dit moet uniek wees." + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"Korrigeer die dubbele data vir %(field_name)s, dit moet uniek wees vir die " +"%(lookup)s in %(date_field)s." + +msgid "Please correct the duplicate values below." +msgstr "Korrigeer die dubbele waardes hieronder." + +msgid "The inline value did not match the parent instance." +msgstr "Die waarde inlyn pas nie by die ouerobjek nie." + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "" +"Kies ’n geldige keuse. Daardie keuse is nie een van die beskikbare keuses " +"nie." + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "“%(pk)s” is nie ’n geldige waarde nie." + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" +"%(datetime)s kon nie in die tydsone %(current_timezone)s vertolk word nie; " +"dit is dalk dubbelsinnig, of bestaan dalk nie." + +msgid "Clear" +msgstr "Maak skoon" + +msgid "Currently" +msgstr "Tans" + +msgid "Change" +msgstr "Verander" + +msgid "Unknown" +msgstr "Onbekend" + +msgid "Yes" +msgstr "Ja" + +msgid "No" +msgstr "Nee" + +#. Translators: Please do not add spaces around commas. +msgid "yes,no,maybe" +msgstr "ja,nee,miskien" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)d greep" +msgstr[1] "%(size)d grepe" + +#, python-format +msgid "%s KB" +msgstr "%s KB" + +#, python-format +msgid "%s MB" +msgstr "%s MB" + +#, python-format +msgid "%s GB" +msgstr "%s GB" + +#, python-format +msgid "%s TB" +msgstr "%s TB" + +#, python-format +msgid "%s PB" +msgstr "%s PB" + +msgid "p.m." +msgstr "nm." + +msgid "a.m." +msgstr "vm." + +msgid "PM" +msgstr "NM" + +msgid "AM" +msgstr "VM" + +msgid "midnight" +msgstr "middernag" + +msgid "noon" +msgstr "middag" + +msgid "Monday" +msgstr "Maandag" + +msgid "Tuesday" +msgstr "Dinsdag" + +msgid "Wednesday" +msgstr "Woensdag" + +msgid "Thursday" +msgstr "Donderdag" + +msgid "Friday" +msgstr "Vrydag" + +msgid "Saturday" +msgstr "Saterdag" + +msgid "Sunday" +msgstr "Sondag" + +msgid "Mon" +msgstr "Ma" + +msgid "Tue" +msgstr "Di" + +msgid "Wed" +msgstr "Wo" + +msgid "Thu" +msgstr "Do" + +msgid "Fri" +msgstr "Vr" + +msgid "Sat" +msgstr "Sa" + +msgid "Sun" +msgstr "So" + +msgid "January" +msgstr "Januarie" + +msgid "February" +msgstr "Februarie" + +msgid "March" +msgstr "Maart" + +msgid "April" +msgstr "April" + +msgid "May" +msgstr "Mei" + +msgid "June" +msgstr "Junie" + +msgid "July" +msgstr "Julie" + +msgid "August" +msgstr "Augustus" + +msgid "September" +msgstr "September" + +msgid "October" +msgstr "Oktober" + +msgid "November" +msgstr "November" + +msgid "December" +msgstr "Desember" + +msgid "jan" +msgstr "jan" + +msgid "feb" +msgstr "feb" + +msgid "mar" +msgstr "mrt" + +msgid "apr" +msgstr "apr" + +msgid "may" +msgstr "mei" + +msgid "jun" +msgstr "jun" + +msgid "jul" +msgstr "jul" + +msgid "aug" +msgstr "aug" + +msgid "sep" +msgstr "sept" + +msgid "oct" +msgstr "okt" + +msgid "nov" +msgstr "nov" + +msgid "dec" +msgstr "des" + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "Jan." + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "Feb." + +msgctxt "abbrev. month" +msgid "March" +msgstr "Maart" + +msgctxt "abbrev. month" +msgid "April" +msgstr "April" + +msgctxt "abbrev. month" +msgid "May" +msgstr "Mei" + +msgctxt "abbrev. month" +msgid "June" +msgstr "Junie" + +msgctxt "abbrev. month" +msgid "July" +msgstr "Julie" + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "Aug." + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "Sept." + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "Okt." + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "Nov." + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "Des." + +msgctxt "alt. month" +msgid "January" +msgstr "Januarie" + +msgctxt "alt. month" +msgid "February" +msgstr "Februarie" + +msgctxt "alt. month" +msgid "March" +msgstr "Maart" + +msgctxt "alt. month" +msgid "April" +msgstr "April" + +msgctxt "alt. month" +msgid "May" +msgstr "Mei" + +msgctxt "alt. month" +msgid "June" +msgstr "Junie" + +msgctxt "alt. month" +msgid "July" +msgstr "Julie" + +msgctxt "alt. month" +msgid "August" +msgstr "Augustus" + +msgctxt "alt. month" +msgid "September" +msgstr "September" + +msgctxt "alt. month" +msgid "October" +msgstr "Oktober" + +msgctxt "alt. month" +msgid "November" +msgstr "November" + +msgctxt "alt. month" +msgid "December" +msgstr "Desember" + +msgid "This is not a valid IPv6 address." +msgstr "Hierdie is nie ’n geldige IPv6-adres nie." + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "%(truncated_text)s…" + +msgid "or" +msgstr "of" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr ", " + +#, python-format +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "%(num)d jaar" +msgstr[1] "%(num)d jaar" + +#, python-format +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "%(num)d maand" +msgstr[1] "%(num)d maande" + +#, python-format +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "%(num)d week" +msgstr[1] "%(num)d weke" + +#, python-format +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "%(num)d dag" +msgstr[1] "%(num)d dae" + +#, python-format +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "%(num)d uur" +msgstr[1] "%(num)d uur" + +#, python-format +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "%(num)d minuut" +msgstr[1] "%(num)d minute" + +msgid "Forbidden" +msgstr "Verbode" + +msgid "CSRF verification failed. Request aborted." +msgstr "CSRF-verifikasie het misluk. Versoek is laat val." + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" +"U sien hierdie boodskap omdat dié HTTPS-werf vereis dat u webblaaier ’n " +"“Referer header” moet stuur, maar dit is nie gestuur nie. Hierdie header is " +"vir sekuriteitsredes nodig om te verseker dat u blaaier nie deur derde " +"partye gekaap is nie." + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" +"As “Referer headers” in u blaaier gedeaktiveer is, heraktiveer hulle asb. " +"ten minste vir dié werf, of vir HTTPS-verbindings, of vir “same-origin”-" +"versoeke." + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" +"Indien u die -etiket gebruik " +"of die “Referrer-Policy: no-referrer” header gebruik, verwyder hulle asb. " +"Die CSRF-beskerming vereis die “Referer” header om streng kontrole van die " +"verwysende bladsy te doen. Indien u besorg is oor privaatheid, gebruik " +"alternatiewe soos vir skakels na derdepartywebwerwe." + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" +"U sien hierdie boodskap omdat dié werf ’n CSRF-koekie benodig wanneer vorms " +"ingedien word. Dié koekie word vir sekuriteitsredes benodig om te te " +"verseker dat u blaaier nie deur derde partye gekaap word nie." + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" +"Indien koekies in u blaaier gedeaktiveer is, aktiveerder hulle asb. ten " +"minste vir dié werf, of vir “same-origin”-versoeke." + +msgid "More information is available with DEBUG=True." +msgstr "Meer inligting is beskikbaar met DEBUG=True." + +msgid "No year specified" +msgstr "Geen jaar gespesifiseer nie" + +msgid "Date out of range" +msgstr "Datum buite omvang" + +msgid "No month specified" +msgstr "Geen maand gespesifiseer nie" + +msgid "No day specified" +msgstr "Geen dag gespesifiseer nie" + +msgid "No week specified" +msgstr "Geen week gespesifiseer nie" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "Geen %(verbose_name_plural)s beskikbaar nie" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" +"Toekomstige %(verbose_name_plural)s is nie beskikbaar nie, omdat " +"%(class_name)s.allow_future vals is." + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "Ongeldige datumstring “%(datestr)s” gegewe die formaat “%(format)s”" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "Geen %(verbose_name)s gevind vir die soektog" + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "" +"Bladsy is nie “last” nie, en dit kan nie omgeskakel word na ’n heelgetal nie." + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "Ongeldige bladsy (%(page_number)s): %(message)s" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "Leë lys en “%(class_name)s.allow_empty” is vals." + +msgid "Directory indexes are not allowed here." +msgstr "Gidsindekse word nie hier toegelaat nie." + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "“%(path)s” bestaan nie." + +#, python-format +msgid "Index of %(directory)s" +msgstr "Indeks van %(directory)s" + +msgid "The install worked successfully! Congratulations!" +msgstr "Die installasie was suksesvol! Geluk!" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" +"Sien die vrystellingsnotas vir Django " +"%(version)s" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not " +"configured any URLs." +msgstr "" +"U sien dié bladsy omdat DEBUG=True in die settings-lêer is en geen URL’e " +"opgestel is nie." + +msgid "Django Documentation" +msgstr "Django-dokumentasie" + +msgid "Topics, references, & how-to’s" +msgstr "" + +msgid "Tutorial: A Polling App" +msgstr "" + +msgid "Get started with Django" +msgstr "Kom aan die gang met Django" + +msgid "Django Community" +msgstr "Django-gemeenskap" + +msgid "Connect, get help, or contribute" +msgstr "Kontak, kry hulp om dra by" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/ar/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/conf/locale/ar/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..f0a041294326d38405c3c8c54c3b93e682f91b7d GIT binary patch literal 35688 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/ar/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/conf/locale/ar/LC_MESSAGES/django.po new file mode 100644 index 0000000000..25a491b5a6 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/ar/LC_MESSAGES/django.po @@ -0,0 +1,1389 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Bashar Al-Abdulhadi, 2015-2016,2020-2021 +# Bashar Al-Abdulhadi, 2014 +# Eyad Toma , 2013-2014 +# Jannis Leidel , 2011 +# Mariusz Felisiak , 2021 +# Muaaz Alsaied, 2020 +# Omar Al-Ithawi , 2020 +# Ossama Khayat , 2011 +# Tony xD , 2020 +# صفا الفليج , 2020 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-09-21 10:22+0200\n" +"PO-Revision-Date: 2021-11-24 16:27+0000\n" +"Last-Translator: Mariusz Felisiak \n" +"Language-Team: Arabic (http://www.transifex.com/django/django/language/ar/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ar\n" +"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " +"&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" + +msgid "Afrikaans" +msgstr "الإفريقية" + +msgid "Arabic" +msgstr "العربيّة" + +msgid "Algerian Arabic" +msgstr "عربي جزائري" + +msgid "Asturian" +msgstr "الأسترية" + +msgid "Azerbaijani" +msgstr "الأذربيجانية" + +msgid "Bulgarian" +msgstr "البلغاريّة" + +msgid "Belarusian" +msgstr "البيلاروسية" + +msgid "Bengali" +msgstr "البنغاليّة" + +msgid "Breton" +msgstr "البريتونية" + +msgid "Bosnian" +msgstr "البوسنيّة" + +msgid "Catalan" +msgstr "الكتلانيّة" + +msgid "Czech" +msgstr "التشيكيّة" + +msgid "Welsh" +msgstr "الويلز" + +msgid "Danish" +msgstr "الدنماركيّة" + +msgid "German" +msgstr "الألمانيّة" + +msgid "Lower Sorbian" +msgstr "الصربية السفلى" + +msgid "Greek" +msgstr "اليونانيّة" + +msgid "English" +msgstr "الإنجليزيّة" + +msgid "Australian English" +msgstr "الإنجليزية الإسترالية" + +msgid "British English" +msgstr "الإنجليزيّة البريطانيّة" + +msgid "Esperanto" +msgstr "الاسبرانتو" + +msgid "Spanish" +msgstr "الإسبانيّة" + +msgid "Argentinian Spanish" +msgstr "الأسبانية الأرجنتينية" + +msgid "Colombian Spanish" +msgstr "الكولومبية الإسبانية" + +msgid "Mexican Spanish" +msgstr "الأسبانية المكسيكية" + +msgid "Nicaraguan Spanish" +msgstr "الإسبانية النيكاراغوية" + +msgid "Venezuelan Spanish" +msgstr "الإسبانية الفنزويلية" + +msgid "Estonian" +msgstr "الإستونيّة" + +msgid "Basque" +msgstr "الباسك" + +msgid "Persian" +msgstr "الفارسيّة" + +msgid "Finnish" +msgstr "الفنلنديّة" + +msgid "French" +msgstr "الفرنسيّة" + +msgid "Frisian" +msgstr "الفريزيّة" + +msgid "Irish" +msgstr "الإيرلنديّة" + +msgid "Scottish Gaelic" +msgstr "الغيلية الأسكتلندية" + +msgid "Galician" +msgstr "الجليقيّة" + +msgid "Hebrew" +msgstr "العبريّة" + +msgid "Hindi" +msgstr "الهندية" + +msgid "Croatian" +msgstr "الكرواتيّة" + +msgid "Upper Sorbian" +msgstr "الصربية العليا" + +msgid "Hungarian" +msgstr "الهنغاريّة" + +msgid "Armenian" +msgstr "الأرمنية" + +msgid "Interlingua" +msgstr "اللغة الوسيطة" + +msgid "Indonesian" +msgstr "الإندونيسيّة" + +msgid "Igbo" +msgstr "الإيبو" + +msgid "Ido" +msgstr "ايدو" + +msgid "Icelandic" +msgstr "الآيسلنديّة" + +msgid "Italian" +msgstr "الإيطاليّة" + +msgid "Japanese" +msgstr "اليابانيّة" + +msgid "Georgian" +msgstr "الجورجيّة" + +msgid "Kabyle" +msgstr "القبائل" + +msgid "Kazakh" +msgstr "الكازاخستانية" + +msgid "Khmer" +msgstr "الخمر" + +msgid "Kannada" +msgstr "الهنديّة (كنّادا)" + +msgid "Korean" +msgstr "الكوريّة" + +msgid "Kyrgyz" +msgstr "قيرغيز" + +msgid "Luxembourgish" +msgstr "اللوكسمبرجية" + +msgid "Lithuanian" +msgstr "اللتوانيّة" + +msgid "Latvian" +msgstr "اللاتفيّة" + +msgid "Macedonian" +msgstr "المقدونيّة" + +msgid "Malayalam" +msgstr "المايالام" + +msgid "Mongolian" +msgstr "المنغوليّة" + +msgid "Marathi" +msgstr "المهاراتية" + +msgid "Malay" +msgstr "" + +msgid "Burmese" +msgstr "البورمية" + +msgid "Norwegian Bokmål" +msgstr "النرويجية" + +msgid "Nepali" +msgstr "النيبالية" + +msgid "Dutch" +msgstr "الهولنديّة" + +msgid "Norwegian Nynorsk" +msgstr "النينورسك نرويجيّة" + +msgid "Ossetic" +msgstr "الأوسيتيكية" + +msgid "Punjabi" +msgstr "البنجابيّة" + +msgid "Polish" +msgstr "البولنديّة" + +msgid "Portuguese" +msgstr "البرتغاليّة" + +msgid "Brazilian Portuguese" +msgstr "البرتغاليّة البرازيليّة" + +msgid "Romanian" +msgstr "الرومانيّة" + +msgid "Russian" +msgstr "الروسيّة" + +msgid "Slovak" +msgstr "السلوفاكيّة" + +msgid "Slovenian" +msgstr "السلوفانيّة" + +msgid "Albanian" +msgstr "الألبانيّة" + +msgid "Serbian" +msgstr "الصربيّة" + +msgid "Serbian Latin" +msgstr "اللاتينيّة الصربيّة" + +msgid "Swedish" +msgstr "السويديّة" + +msgid "Swahili" +msgstr "السواحلية" + +msgid "Tamil" +msgstr "التاميل" + +msgid "Telugu" +msgstr "التيلوغو" + +msgid "Tajik" +msgstr "طاجيك" + +msgid "Thai" +msgstr "التايلنديّة" + +msgid "Turkmen" +msgstr "تركمان" + +msgid "Turkish" +msgstr "التركيّة" + +msgid "Tatar" +msgstr "التتاريية" + +msgid "Udmurt" +msgstr "الأدمرتية" + +msgid "Ukrainian" +msgstr "الأكرانيّة" + +msgid "Urdu" +msgstr "الأوردو" + +msgid "Uzbek" +msgstr "الأوزبكي" + +msgid "Vietnamese" +msgstr "الفيتناميّة" + +msgid "Simplified Chinese" +msgstr "الصينيّة المبسطة" + +msgid "Traditional Chinese" +msgstr "الصينيّة التقليدية" + +msgid "Messages" +msgstr "الرسائل" + +msgid "Site Maps" +msgstr "خرائط الموقع" + +msgid "Static Files" +msgstr "الملفات الثابتة" + +msgid "Syndication" +msgstr "توظيف النشر" + +#. Translators: String used to replace omitted page numbers in elided page +#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10]. +msgid "…" +msgstr "..." + +msgid "That page number is not an integer" +msgstr "رقم الصفحة هذا ليس عدداً طبيعياً" + +msgid "That page number is less than 1" +msgstr "رقم الصفحة أقل من 1" + +msgid "That page contains no results" +msgstr "هذه الصفحة لا تحتوي على نتائج" + +msgid "Enter a valid value." +msgstr "أدخِل قيمة صحيحة." + +msgid "Enter a valid URL." +msgstr "أدخِل رابطًا صحيحًا." + +msgid "Enter a valid integer." +msgstr "أدخِل عدداً طبيعياً." + +msgid "Enter a valid email address." +msgstr "أدخِل عنوان بريد إلكتروني صحيح." + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "أدخل اختصار 'slug' صحيح يتكوّن من أحرف، أرقام، شرطات سفلية وعاديّة." + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" +"أدخل اختصار 'slug' صحيح يتكون من أحرف Unicode أو أرقام أو شرطات سفلية أو " +"واصلات." + +msgid "Enter a valid IPv4 address." +msgstr "أدخِل عنوان IPv4 صحيح." + +msgid "Enter a valid IPv6 address." +msgstr "أدخِل عنوان IPv6 صحيح." + +msgid "Enter a valid IPv4 or IPv6 address." +msgstr "أدخِل عنوان IPv4 أو عنوان IPv6 صحيح." + +msgid "Enter only digits separated by commas." +msgstr "أدخِل فقط أرقامًا تفصلها الفواصل." + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "تحقق من أن هذه القيمة هي %(limit_value)s (إنها %(show_value)s)." + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "تحقق من أن تكون هذه القيمة أقل من %(limit_value)s أو مساوية لها." + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "تحقق من أن تكون هذه القيمة أكثر من %(limit_value)s أو مساوية لها." + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"تأكد أن هذه القيمة تحتوي على %(limit_value)d حرف أو رمز على الأقل (هي تحتوي " +"حالياً على %(show_value)d)." +msgstr[1] "" +"تأكد أن هذه القيمة تحتوي على حرف أو رمز %(limit_value)d على الأقل (هي تحتوي " +"حالياً على %(show_value)d)." +msgstr[2] "" +"تأكد أن هذه القيمة تحتوي على %(limit_value)d حرف و رمز على الأقل (هي تحتوي " +"حالياً على %(show_value)d)." +msgstr[3] "" +"تأكد أن هذه القيمة تحتوي على %(limit_value)d حرف أو رمز على الأقل (هي تحتوي " +"حالياً على %(show_value)d)." +msgstr[4] "" +"تأكد أن هذه القيمة تحتوي على %(limit_value)d حرف أو رمز على الأقل (هي تحتوي " +"حالياً على %(show_value)d)." +msgstr[5] "" +"تأكد أن هذه القيمة تحتوي على %(limit_value)d حرف أو رمز على الأقل (هي تحتوي " +"حالياً على %(show_value)d)." + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"تأكد أن هذه القيمة تحتوي على %(limit_value)d حرف أو رمز على الأكثر (هي تحتوي " +"حالياً على %(show_value)d)." +msgstr[1] "" +"تأكد أن هذه القيمة تحتوي على حرف أو رمز %(limit_value)d على الأكثر (هي تحتوي " +"حالياً على %(show_value)d)." +msgstr[2] "" +"تأكد أن هذه القيمة تحتوي على %(limit_value)d حرف و رمز على الأكثر (هي تحتوي " +"حالياً على %(show_value)d)." +msgstr[3] "" +"تأكد أن هذه القيمة تحتوي على %(limit_value)d حرف أو رمز على الأكثر (هي تحتوي " +"حالياً على %(show_value)d)." +msgstr[4] "" +"تأكد أن هذه القيمة تحتوي على %(limit_value)d حرف أو رمز على الأكثر (هي تحتوي " +"حالياً على %(show_value)d)." +msgstr[5] "" +"تأكد أن هذه القيمة تحتوي على %(limit_value)d حرف أو رمز على الأكثر (هي تحتوي " +"حالياً على %(show_value)d)." + +msgid "Enter a number." +msgstr "أدخل رقماً." + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "تحقق من أن تدخل %(max)s أرقام لا أكثر." +msgstr[1] "تحقق من أن تدخل رقم %(max)s لا أكثر." +msgstr[2] "تحقق من أن تدخل %(max)s رقمين لا أكثر." +msgstr[3] "تحقق من أن تدخل %(max)s أرقام لا أكثر." +msgstr[4] "تحقق من أن تدخل %(max)s أرقام لا أكثر." +msgstr[5] "تحقق من أن تدخل %(max)s أرقام لا أكثر." + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "تحقق من أن تدخل %(max)s خانات عشرية لا أكثر." +msgstr[1] "تحقق من أن تدخل خانة %(max)s عشرية لا أكثر." +msgstr[2] "تحقق من أن تدخل %(max)s خانتين عشريتين لا أكثر." +msgstr[3] "تحقق من أن تدخل %(max)s خانات عشرية لا أكثر." +msgstr[4] "تحقق من أن تدخل %(max)s خانات عشرية لا أكثر." +msgstr[5] "تحقق من أن تدخل %(max)s خانات عشرية لا أكثر." + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "تحقق من أن تدخل %(max)s أرقام قبل الفاصل العشري لا أكثر." +msgstr[1] "تحقق من أن تدخل رقم %(max)s قبل الفاصل العشري لا أكثر." +msgstr[2] "تحقق من أن تدخل %(max)s رقمين قبل الفاصل العشري لا أكثر." +msgstr[3] "تحقق من أن تدخل %(max)s أرقام قبل الفاصل العشري لا أكثر." +msgstr[4] "تحقق من أن تدخل %(max)s أرقام قبل الفاصل العشري لا أكثر." +msgstr[5] "تحقق من أن تدخل %(max)s أرقام قبل الفاصل العشري لا أكثر." + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" +"امتداد الملف “%(extension)s” غير مسموح به. الامتدادات المسموح بها هي:" +"%(allowed_extensions)s." + +msgid "Null characters are not allowed." +msgstr "الأحرف الخالية غير مسموح بها." + +msgid "and" +msgstr "و" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "%(model_name)s بهذا %(field_labels)s موجود سلفاً." + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "القيمة %(value)r ليست خيارا صحيحاً." + +msgid "This field cannot be null." +msgstr "لا يمكن تعيين null كقيمة لهذا الحقل." + +msgid "This field cannot be blank." +msgstr "لا يمكن ترك هذا الحقل فارغاً." + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "النموذج %(model_name)s والحقل %(field_label)s موجود مسبقاً." + +#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'. +#. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" +"%(field_label)s يجب أن يكون فريد لـ %(date_field_label)s %(lookup_type)s." + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "حقل نوع: %(field_type)s" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "قيمة '%(value)s' يجب أن تكون True أو False." + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "قيمة “%(value)s” يجب أن تكون True , False أو None." + +msgid "Boolean (Either True or False)" +msgstr "ثنائي (إما True أو False)" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "سلسلة نص (%(max_length)s كحد أقصى)" + +msgid "Comma-separated integers" +msgstr "أرقام صحيحة مفصولة بفواصل" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" +"قيمة '%(value)s' ليست من بُنية تاريخ صحيحة. القيمة يجب ان تكون من البُنية YYYY-" +"MM-DD." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "قيمة '%(value)s' من بُنية صحيحة (YYYY-MM-DD) لكنها تحوي تاريخ غير صحيح." + +msgid "Date (without time)" +msgstr "التاريخ (دون الوقت)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" +"قيمة '%(value)s' ليست من بُنية صحيحة. القيمة يجب ان تكون من البُنية YYYY-MM-DD " +"HH:MM[:ss[.uuuuuu]][TZ] ." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" +"قيمة '%(value)s' من بُنية صحيحة (YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ]) لكنها " +"تحوي وقت و تاريخ غير صحيحين." + +msgid "Date (with time)" +msgstr "التاريخ (مع الوقت)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "قيمة '%(value)s' يجب ان تكون عدد عشري." + +msgid "Decimal number" +msgstr "رقم عشري" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" +"قيمة '%(value)s' ليست بنسق صحيح. القيمة يجب ان تكون من التنسيق ([DD] " +"[[HH:]MM:]ss[.uuuuuu])" + +msgid "Duration" +msgstr "المدّة" + +msgid "Email address" +msgstr "عنوان بريد إلكتروني" + +msgid "File path" +msgstr "مسار الملف" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "قيمة '%(value)s' يجب ان تكون عدد تعويم." + +msgid "Floating point number" +msgstr "رقم فاصلة عائمة" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "قيمة '%(value)s' يجب ان تكون عدد طبيعي." + +msgid "Integer" +msgstr "عدد صحيح" + +msgid "Big (8 byte) integer" +msgstr "عدد صحيح كبير (8 بايت)" + +msgid "Small integer" +msgstr "عدد صحيح صغير" + +msgid "IPv4 address" +msgstr "عنوان IPv4" + +msgid "IP address" +msgstr "عنوان IP" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "قيمة '%(value)s' يجب ان تكون None أو True أو False." + +msgid "Boolean (Either True, False or None)" +msgstr "ثنائي (إما True أو False أو None)" + +msgid "Positive big integer" +msgstr "عدد صحيح موجب كبير" + +msgid "Positive integer" +msgstr "عدد صحيح موجب" + +msgid "Positive small integer" +msgstr "عدد صحيح صغير موجب" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "Slug (حتى %(max_length)s)" + +msgid "Text" +msgstr "نص" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" +"قيمة '%(value)s' ليست بنسق صحيح. القيمة يجب ان تكون من التنسيق\n" +"HH:MM[:ss[.uuuuuu]]" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" +"قيمة '%(value)s' من بُنية صحيحة (HH:MM[:ss[.uuuuuu]]) لكنها تحوي وقت غير صحيح." + +msgid "Time" +msgstr "وقت" + +msgid "URL" +msgstr "رابط" + +msgid "Raw binary data" +msgstr "البيانات الثنائية الخام" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "القيمة \"%(value)s\" ليست UUID صالح." + +msgid "Universally unique identifier" +msgstr "معرّف فريد عالمياً" + +msgid "File" +msgstr "ملف" + +msgid "Image" +msgstr "صورة" + +msgid "A JSON object" +msgstr "كائن JSON" + +msgid "Value must be valid JSON." +msgstr "يجب أن تكون قيمة JSON صالحة." + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "النموذج %(model)s ذو الحقل و القيمة %(field)s %(value)r غير موجود." + +msgid "Foreign Key (type determined by related field)" +msgstr "الحقل المرتبط (تم تحديد النوع وفقاً للحقل المرتبط)" + +msgid "One-to-one relationship" +msgstr "علاقة واحد إلى واحد" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "%(from)s-%(to)s علاقة" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "%(from)s-%(to)s علاقات" + +msgid "Many-to-many relationship" +msgstr "علاقة متعدد إلى متعدد" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr ":?.!" + +msgid "This field is required." +msgstr "هذا الحقل مطلوب." + +msgid "Enter a whole number." +msgstr "أدخل رقما صحيحا." + +msgid "Enter a valid date." +msgstr "أدخل تاريخاً صحيحاً." + +msgid "Enter a valid time." +msgstr "أدخل وقتاً صحيحاً." + +msgid "Enter a valid date/time." +msgstr "أدخل تاريخاً/وقتاً صحيحاً." + +msgid "Enter a valid duration." +msgstr "أدخل مدّة صحيحة" + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "يجب أن يكون عدد الأيام بين {min_days} و {max_days}." + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "لم يتم ارسال ملف، الرجاء التأكد من نوع ترميز الاستمارة." + +msgid "No file was submitted." +msgstr "لم يتم إرسال اي ملف." + +msgid "The submitted file is empty." +msgstr "الملف الذي قمت بإرساله فارغ." + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" +"تأكد أن إسم هذا الملف يحتوي على %(max)d حرف على الأكثر (هو يحتوي الآن على " +"%(length)d حرف)." +msgstr[1] "" +"تأكد أن إسم هذا الملف يحتوي على حرف %(max)d على الأكثر (هو يحتوي الآن على " +"%(length)d حرف)." +msgstr[2] "" +"تأكد أن إسم هذا الملف يحتوي على %(max)d حرفين على الأكثر (هو يحتوي الآن على " +"%(length)d حرف)." +msgstr[3] "" +"تأكد أن إسم هذا الملف يحتوي على %(max)d حرف على الأكثر (هو يحتوي الآن على " +"%(length)d حرف)." +msgstr[4] "" +"تأكد أن إسم هذا الملف يحتوي على %(max)d حرف على الأكثر (هو يحتوي الآن على " +"%(length)d حرف)." +msgstr[5] "" +"تأكد أن إسم هذا الملف يحتوي على %(max)d حرف على الأكثر (هو يحتوي الآن على " +"%(length)d حرف)." + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "رجاءً أرسل ملف أو صح علامة صح عند مربع اختيار \"فارغ\"، وليس كلاهما." + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" +"قم برفع صورة صحيحة، الملف الذي قمت برفعه إما أنه ليس ملفا لصورة أو أنه ملف " +"معطوب." + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "انتق خياراً صحيحاً. %(value)s ليس أحد الخيارات المتاحة." + +msgid "Enter a list of values." +msgstr "أدخل قائمة من القيم." + +msgid "Enter a complete value." +msgstr "إدخال قيمة كاملة." + +msgid "Enter a valid UUID." +msgstr "أدخل قيمة UUID صحيحة." + +msgid "Enter a valid JSON." +msgstr "أدخل مدخل JSON صالح." + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr ":" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "(الحقل الخفي %(name)s) %(error)s" + +#, python-format +msgid "" +"ManagementForm data is missing or has been tampered with. Missing fields: " +"%(field_names)s. You may need to file a bug report if the issue persists." +msgstr "" +"بيانات نموذج الإدارة مفقودة أو تم العبث بها. الحقول المفقودة: " +"%(field_names)s. قد تحتاج إلى تقديم تقرير خطأ إذا استمرت المشكلة." + +#, python-format +msgid "Please submit at most %d form." +msgid_plural "Please submit at most %d forms." +msgstr[0] "الرجاء إرسال %d إستمارة على الأكثر." +msgstr[1] "الرجاء إرسال %d إستمارة على الأكثر." +msgstr[2] "الرجاء إرسال %d إستمارة على الأكثر." +msgstr[3] "الرجاء إرسال %d إستمارة على الأكثر." +msgstr[4] "الرجاء إرسال %d إستمارة على الأكثر." +msgstr[5] "الرجاء إرسال %d إستمارة على الأكثر." + +#, python-format +msgid "Please submit at least %d form." +msgid_plural "Please submit at least %d forms." +msgstr[0] "الرجاء إرسال %d إستمارة على الأقل." +msgstr[1] "الرجاء إرسال %d إستمارة على الأقل." +msgstr[2] "الرجاء إرسال %d إستمارة على الأقل." +msgstr[3] "الرجاء إرسال %d إستمارة على الأقل." +msgstr[4] "الرجاء إرسال %d إستمارة على الأقل." +msgstr[5] "الرجاء إرسال %d إستمارة على الأقل." + +msgid "Order" +msgstr "الترتيب" + +msgid "Delete" +msgstr "احذف" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "رجاء صحّح بيانات %(field)s المتكررة." + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "رجاء صحّح بيانات %(field)s المتكررة والتي يجب أن تكون مُميّزة." + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"رجاء صحّح بيانات %(field_name)s المتكررة والتي يجب أن تكون مُميّزة لـ%(lookup)s " +"في %(date_field)s." + +msgid "Please correct the duplicate values below." +msgstr "رجاءً صحّح القيم المُكرّرة أدناه." + +msgid "The inline value did not match the parent instance." +msgstr "لا تتطابق القيمة المضمنة مع المثيل الأصلي." + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "انتق خياراً صحيحاً. اختيارك ليس أحد الخيارات المتاحة." + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "\"%(pk)s\" ليست قيمة صالحة." + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" +"%(datetime)s لا يمكن تفسيرها في المنطقة الزمنية %(current_timezone)s; قد " +"تكون غامضة أو أنها غير موجودة." + +msgid "Clear" +msgstr "تفريغ" + +msgid "Currently" +msgstr "حالياً" + +msgid "Change" +msgstr "عدّل" + +msgid "Unknown" +msgstr "مجهول" + +msgid "Yes" +msgstr "نعم" + +msgid "No" +msgstr "لا" + +#. Translators: Please do not add spaces around commas. +msgid "yes,no,maybe" +msgstr "نعم,لا,ربما" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)d بايت" +msgstr[1] "بايت واحد" +msgstr[2] "بايتان" +msgstr[3] "%(size)d بايتان" +msgstr[4] "%(size)d بايت" +msgstr[5] "%(size)d بايت" + +#, python-format +msgid "%s KB" +msgstr "%s ك.ب" + +#, python-format +msgid "%s MB" +msgstr "%s م.ب" + +#, python-format +msgid "%s GB" +msgstr "%s ج.ب" + +#, python-format +msgid "%s TB" +msgstr "%s ت.ب" + +#, python-format +msgid "%s PB" +msgstr "%s ب.ب" + +msgid "p.m." +msgstr "م" + +msgid "a.m." +msgstr "ص" + +msgid "PM" +msgstr "م" + +msgid "AM" +msgstr "ص" + +msgid "midnight" +msgstr "منتصف الليل" + +msgid "noon" +msgstr "ظهراً" + +msgid "Monday" +msgstr "الاثنين" + +msgid "Tuesday" +msgstr "الثلاثاء" + +msgid "Wednesday" +msgstr "الأربعاء" + +msgid "Thursday" +msgstr "الخميس" + +msgid "Friday" +msgstr "الجمعة" + +msgid "Saturday" +msgstr "السبت" + +msgid "Sunday" +msgstr "الأحد" + +msgid "Mon" +msgstr "إثنين" + +msgid "Tue" +msgstr "ثلاثاء" + +msgid "Wed" +msgstr "أربعاء" + +msgid "Thu" +msgstr "خميس" + +msgid "Fri" +msgstr "جمعة" + +msgid "Sat" +msgstr "سبت" + +msgid "Sun" +msgstr "أحد" + +msgid "January" +msgstr "يناير" + +msgid "February" +msgstr "فبراير" + +msgid "March" +msgstr "مارس" + +msgid "April" +msgstr "إبريل" + +msgid "May" +msgstr "مايو" + +msgid "June" +msgstr "يونيو" + +msgid "July" +msgstr "يوليو" + +msgid "August" +msgstr "أغسطس" + +msgid "September" +msgstr "سبتمبر" + +msgid "October" +msgstr "أكتوبر" + +msgid "November" +msgstr "نوفمبر" + +msgid "December" +msgstr "ديسمبر" + +msgid "jan" +msgstr "يناير" + +msgid "feb" +msgstr "فبراير" + +msgid "mar" +msgstr "مارس" + +msgid "apr" +msgstr "إبريل" + +msgid "may" +msgstr "مايو" + +msgid "jun" +msgstr "يونيو" + +msgid "jul" +msgstr "يوليو" + +msgid "aug" +msgstr "أغسطس" + +msgid "sep" +msgstr "سبتمبر" + +msgid "oct" +msgstr "أكتوبر" + +msgid "nov" +msgstr "نوفمبر" + +msgid "dec" +msgstr "ديسمبر" + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "يناير" + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "فبراير" + +msgctxt "abbrev. month" +msgid "March" +msgstr "مارس" + +msgctxt "abbrev. month" +msgid "April" +msgstr "إبريل" + +msgctxt "abbrev. month" +msgid "May" +msgstr "مايو" + +msgctxt "abbrev. month" +msgid "June" +msgstr "يونيو" + +msgctxt "abbrev. month" +msgid "July" +msgstr "يوليو" + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "أغسطس" + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "سبتمبر" + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "أكتوبر" + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "نوفمبر" + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "ديسمبر" + +msgctxt "alt. month" +msgid "January" +msgstr "يناير" + +msgctxt "alt. month" +msgid "February" +msgstr "فبراير" + +msgctxt "alt. month" +msgid "March" +msgstr "مارس" + +msgctxt "alt. month" +msgid "April" +msgstr "أبريل" + +msgctxt "alt. month" +msgid "May" +msgstr "مايو" + +msgctxt "alt. month" +msgid "June" +msgstr "يونيو" + +msgctxt "alt. month" +msgid "July" +msgstr "يوليو" + +msgctxt "alt. month" +msgid "August" +msgstr "أغسطس" + +msgctxt "alt. month" +msgid "September" +msgstr "سبتمبر" + +msgctxt "alt. month" +msgid "October" +msgstr "أكتوبر" + +msgctxt "alt. month" +msgid "November" +msgstr "نوفمبر" + +msgctxt "alt. month" +msgid "December" +msgstr "ديسمبر" + +msgid "This is not a valid IPv6 address." +msgstr "هذا ليس عنوان IPv6 صحيح." + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "%(truncated_text)s…" + +msgid "or" +msgstr "أو" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr "، " + +#, python-format +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "%(num)d سنة" +msgstr[1] "%(num)d سنة" +msgstr[2] "%(num)d سنتين" +msgstr[3] "%(num)d سنوات" +msgstr[4] "%(num)d سنوات" +msgstr[5] "%(num)d سنوات" + +#, python-format +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "%(num)d شهر" +msgstr[1] "%(num)d شهر" +msgstr[2] "%(num)d شهرين" +msgstr[3] "%(num)d أشهر" +msgstr[4] "%(num)d أشهر" +msgstr[5] "%(num)d أشهر" + +#, python-format +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "%(num)d أسبوع" +msgstr[1] "%(num)d أسبوع" +msgstr[2] "%(num)d أسبوعين" +msgstr[3] "%(num)d أسابيع" +msgstr[4] "%(num)d أسابيع" +msgstr[5] "%(num)d أسابيع" + +#, python-format +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "%(num)d يوم" +msgstr[1] "%(num)d يوم" +msgstr[2] "%(num)d يومين" +msgstr[3] "%(num)d أيام" +msgstr[4] "%(num)d يوم" +msgstr[5] "%(num)d أيام" + +#, python-format +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "%(num)d ساعة" +msgstr[1] "%(num)d ساعة" +msgstr[2] "%(num)d ساعتين" +msgstr[3] "%(num)d ساعات" +msgstr[4] "%(num)d ساعة" +msgstr[5] "%(num)d ساعات" + +#, python-format +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "%(num)d دقيقة" +msgstr[1] "%(num)d دقيقة" +msgstr[2] "%(num)d دقيقتين" +msgstr[3] "%(num)d دقائق" +msgstr[4] "%(num)d دقيقة" +msgstr[5] "%(num)d دقيقة" + +msgid "Forbidden" +msgstr "ممنوع" + +msgid "CSRF verification failed. Request aborted." +msgstr "تم الفشل للتحقق من CSRF. تم إنهاء الطلب." + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" +"أنت ترى هذه الرسالة لأن موقع HTTPS هذا يتطلب إرسال “Referer header” بواسطة " +"متصفح الويب الخاص بك، ولكن لم يتم إرسال أي منها. هذا مطلوب لأسباب أمنية، " +"لضمان عدم اختطاف متصفحك من قبل أطراف ثالثة." + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" +"إذا قمت بتكوين المستعرض لتعطيل رؤوس “Referer” ، فيرجى إعادة تمكينها ، على " +"الأقل لهذا الموقع ، أو لاتصالات HTTPS ، أو لطلبات “same-origin”." + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" +"إذا كنت تستخدم العلامة أو " +"تضمين رأس “Referrer-Policy: no-referrer”، يرجى إزالتها. تتطلب حماية CSRF أن " +"يقوم رأس “Referer” بإجراء فحص صارم للمراجع. إذا كنت قلقًا بشأن الخصوصية ، " +"فاستخدم بدائل مثل للروابط إلى مواقع الجهات الخارجية." + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" +"أنت ترى هذه الرسالة لأن هذا الموقع يتطلب كعكة CSRF عند تقديم النماذج. ملف " +"الكعكة هذا مطلوب لأسباب أمنية في تعريف الإرتباط، لضمان أنه لم يتم اختطاف " +"المتصفح من قبل أطراف أخرى." + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" +"إذا قمت بضبط المتصفح لتعطيل الكوكيز الرجاء إعادة تغعيلها، على الأقل بالنسبة " +"لهذا الموقع، أو للطلبات من “same-origin”." + +msgid "More information is available with DEBUG=True." +msgstr "يتوفر مزيد من المعلومات عند ضبط الخيار DEBUG=True." + +msgid "No year specified" +msgstr "لم تحدد السنة" + +msgid "Date out of range" +msgstr "التاريخ خارج النطاق" + +msgid "No month specified" +msgstr "لم تحدد الشهر" + +msgid "No day specified" +msgstr "لم تحدد اليوم" + +msgid "No week specified" +msgstr "لم تحدد الأسبوع" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "لا يوجد %(verbose_name_plural)s" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" +"التاريخ بالمستقبل %(verbose_name_plural)s غير متوفر لأن قيمة %(class_name)s." +"allow_future هي False." + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "نسق تاريخ غير صحيح \"%(datestr)s\" محدد بالشكل ''%(format)s\"" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "لم يعثر على أي %(verbose_name)s مطابقة لهذا الإستعلام" + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "الصفحة ليست \"الأخيرة\"، كما لا يمكن تحويل القيمة إلى رقم طبيعي." + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "صفحة خاطئة (%(page_number)s): %(message)s" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "" +"قائمة فارغة و\n" +"\"%(class_name)s.allow_empty\"\n" +"قيمته False." + +msgid "Directory indexes are not allowed here." +msgstr "لا يسمح لفهارس الدليل هنا." + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "”%(path)s“ غير موجود" + +#, python-format +msgid "Index of %(directory)s" +msgstr "فهرس لـ %(directory)s" + +msgid "The install worked successfully! Congratulations!" +msgstr "تمت عملية التنصيب بنجاح! تهانينا!" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" +"استعراض ملاحظات الإصدار لجانغو %(version)s" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not configured any " +"URLs." +msgstr "" +"تظهر لك هذه الصفحة لأن DEBUG=True في ملف settings خاصتك كما أنك لم تقم بإعداد الروابط URLs." + +msgid "Django Documentation" +msgstr "وثائق تعليمات جانغو" + +msgid "Topics, references, & how-to’s" +msgstr "المواضيع و المراجع و التعليمات" + +msgid "Tutorial: A Polling App" +msgstr "برنامج تعليمي: تطبيق تصويت" + +msgid "Get started with Django" +msgstr "إبدأ مع جانغو" + +msgid "Django Community" +msgstr "مجتمع جانغو" + +msgid "Connect, get help, or contribute" +msgstr "اتصل بنا أو احصل على مساعدة أو ساهم" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/ar/__init__.py b/venv/lib/python3.12/site-packages/django/conf/locale/ar/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/ar/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/ar/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..abd4d88b24f2c5441a72d81f022791e012e7c284 GIT binary patch literal 198 zcmX@j%ge<81o5sX(m?cM5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!O4ZNE&rQ|OP0Yy6 zFHO;RNiEZNN=(kybEFQ_cZ$j>v@Gc?jK&MZmQEdVM^ zOiwM=Pssu+OwP|s)6dCIPRvQwPb|`pkI&4@EQycTE2#X%VUwGmQks)$SHudml@W-G PL5z>gjEsy$%s>_Z#Vs^` literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/ar/__pycache__/formats.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/ar/__pycache__/formats.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..60ea969a1b229d8c5484dab0bc6f41ac480ebc3b GIT binary patch literal 438 zcmYjNy-vbV6uzY(gbGrG1h+bp2sh|vjLFrOKw_yWb!eBSaLb?lA(WE9!~>W(`V78- zk6_}0Tf=1Z1xVOBc~Mc%aPocM`OZ(yODdHFBy{1q^ArK#V?(w<{eU$`zyrWQ1DMh% z9MK|})@U5nqBy3-@Q$`KjTaMsoY)3jHMrx{S*&~7=g^F<5=;}(XGjsh&+nnVNoq(P zg;cpwj4v4;DS}>=WDzM#MyZRxgjEG3>!Q?9YTJ6|oAF59Dr~bR$%_7e2+IqXbrD_Z zP2n2JNRi}aR;fuhP1NB3v`4TeCxH;do@<-XHhQ+}W5}Bmcww|}OM-)8%QBp<3n!*C zfmXi-htqM-bxz8aW9aqAW@$)_M%VNp9()s3fv(G*3kl3=eeXM%Ko&b;Lg7Jv=*3k#45a)$)3vLH_w8{`YGAUoP6 FU7tAneiHxy literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/ar/formats.py b/venv/lib/python3.12/site-packages/django/conf/locale/ar/formats.py new file mode 100644 index 0000000000..8008ce6ec4 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/ar/formats.py @@ -0,0 +1,21 @@ +# This file is distributed under the same license as the Django package. +# +# The *_FORMAT strings use the Django date format syntax, +# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date +DATE_FORMAT = "j F، Y" +TIME_FORMAT = "g:i A" +# DATETIME_FORMAT = +YEAR_MONTH_FORMAT = "F Y" +MONTH_DAY_FORMAT = "j F" +SHORT_DATE_FORMAT = "d‏/m‏/Y" +# SHORT_DATETIME_FORMAT = +# FIRST_DAY_OF_WEEK = + +# The *_INPUT_FORMATS strings use the Python strftime format syntax, +# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior +# DATE_INPUT_FORMATS = +# TIME_INPUT_FORMATS = +# DATETIME_INPUT_FORMATS = +DECIMAL_SEPARATOR = "," +THOUSAND_SEPARATOR = "." +# NUMBER_GROUPING = diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/ar_DZ/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/conf/locale/ar_DZ/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..3c0e32405b1c971c6083a8e0dd3f46a0e74df7ac GIT binary patch literal 33960 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 E|AylNR{#J2 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/ar_DZ/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/conf/locale/ar_DZ/LC_MESSAGES/django.po new file mode 100644 index 0000000000..b32da34868 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/ar_DZ/LC_MESSAGES/django.po @@ -0,0 +1,1397 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Jihad Bahmaid Al-Halki, 2022 +# Riterix , 2019-2020 +# Riterix , 2019 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2022-05-17 05:23-0500\n" +"PO-Revision-Date: 2022-07-25 06:49+0000\n" +"Last-Translator: Jihad Bahmaid Al-Halki\n" +"Language-Team: Arabic (Algeria) (http://www.transifex.com/django/django/" +"language/ar_DZ/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ar_DZ\n" +"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " +"&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" + +msgid "Afrikaans" +msgstr "الإفريقية" + +msgid "Arabic" +msgstr "العربية" + +msgid "Algerian Arabic" +msgstr "العربية الجزائرية" + +msgid "Asturian" +msgstr "الأسترية" + +msgid "Azerbaijani" +msgstr "الأذربيجانية" + +msgid "Bulgarian" +msgstr "البلغارية" + +msgid "Belarusian" +msgstr "البيلاروسية" + +msgid "Bengali" +msgstr "البنغالية" + +msgid "Breton" +msgstr "البريتونية" + +msgid "Bosnian" +msgstr "البوسنية" + +msgid "Catalan" +msgstr "الكتلانية" + +msgid "Czech" +msgstr "التشيكية" + +msgid "Welsh" +msgstr "الويلز" + +msgid "Danish" +msgstr "الدنماركية" + +msgid "German" +msgstr "الألمانية" + +msgid "Lower Sorbian" +msgstr "الصربية السفلى" + +msgid "Greek" +msgstr "اليونانية" + +msgid "English" +msgstr "الإنجليزية" + +msgid "Australian English" +msgstr "الإنجليزية الإسترالية" + +msgid "British English" +msgstr "الإنجليزية البريطانية" + +msgid "Esperanto" +msgstr "الاسبرانتو" + +msgid "Spanish" +msgstr "الإسبانية" + +msgid "Argentinian Spanish" +msgstr "الأسبانية الأرجنتينية" + +msgid "Colombian Spanish" +msgstr "الكولومبية الإسبانية" + +msgid "Mexican Spanish" +msgstr "الأسبانية المكسيكية" + +msgid "Nicaraguan Spanish" +msgstr "الإسبانية النيكاراغوية" + +msgid "Venezuelan Spanish" +msgstr "الإسبانية الفنزويلية" + +msgid "Estonian" +msgstr "الإستونية" + +msgid "Basque" +msgstr "الباسك" + +msgid "Persian" +msgstr "الفارسية" + +msgid "Finnish" +msgstr "الفنلندية" + +msgid "French" +msgstr "الفرنسية" + +msgid "Frisian" +msgstr "الفريزية" + +msgid "Irish" +msgstr "الإيرلندية" + +msgid "Scottish Gaelic" +msgstr "الغيلية الأسكتلندية" + +msgid "Galician" +msgstr "الجليقية" + +msgid "Hebrew" +msgstr "العبرية" + +msgid "Hindi" +msgstr "الهندية" + +msgid "Croatian" +msgstr "الكرواتية" + +msgid "Upper Sorbian" +msgstr "الصربية العليا" + +msgid "Hungarian" +msgstr "الهنغارية" + +msgid "Armenian" +msgstr "الأرمنية" + +msgid "Interlingua" +msgstr "اللغة الوسيطة" + +msgid "Indonesian" +msgstr "الإندونيسية" + +msgid "Igbo" +msgstr "إيبو" + +msgid "Ido" +msgstr "ايدو" + +msgid "Icelandic" +msgstr "الآيسلندية" + +msgid "Italian" +msgstr "الإيطالية" + +msgid "Japanese" +msgstr "اليابانية" + +msgid "Georgian" +msgstr "الجورجية" + +msgid "Kabyle" +msgstr "القبائلية" + +msgid "Kazakh" +msgstr "الكازاخستانية" + +msgid "Khmer" +msgstr "الخمر" + +msgid "Kannada" +msgstr "الهندية (كنّادا)" + +msgid "Korean" +msgstr "الكورية" + +msgid "Kyrgyz" +msgstr "القيرغيزية" + +msgid "Luxembourgish" +msgstr "اللوكسمبرجية" + +msgid "Lithuanian" +msgstr "اللتوانية" + +msgid "Latvian" +msgstr "اللاتفية" + +msgid "Macedonian" +msgstr "المقدونية" + +msgid "Malayalam" +msgstr "المايالام" + +msgid "Mongolian" +msgstr "المنغولية" + +msgid "Marathi" +msgstr "المهاراتية" + +msgid "Malay" +msgstr "ملاي" + +msgid "Burmese" +msgstr "البورمية" + +msgid "Norwegian Bokmål" +msgstr "النرويجية" + +msgid "Nepali" +msgstr "النيبالية" + +msgid "Dutch" +msgstr "الهولندية" + +msgid "Norwegian Nynorsk" +msgstr "النينورسك نرويجية" + +msgid "Ossetic" +msgstr "الأوسيتيكية" + +msgid "Punjabi" +msgstr "البنجابية" + +msgid "Polish" +msgstr "البولندية" + +msgid "Portuguese" +msgstr "البرتغالية" + +msgid "Brazilian Portuguese" +msgstr "البرتغالية البرازيلية" + +msgid "Romanian" +msgstr "الرومانية" + +msgid "Russian" +msgstr "الروسية" + +msgid "Slovak" +msgstr "السلوفاكية" + +msgid "Slovenian" +msgstr "السلوفانية" + +msgid "Albanian" +msgstr "الألبانية" + +msgid "Serbian" +msgstr "الصربية" + +msgid "Serbian Latin" +msgstr "اللاتينية الصربية" + +msgid "Swedish" +msgstr "السويدية" + +msgid "Swahili" +msgstr "السواحلية" + +msgid "Tamil" +msgstr "التاميل" + +msgid "Telugu" +msgstr "التيلوغو" + +msgid "Tajik" +msgstr "الطاجيكية" + +msgid "Thai" +msgstr "التايلندية" + +msgid "Turkmen" +msgstr "" + +msgid "Turkish" +msgstr "التركية" + +msgid "Tatar" +msgstr "التتاريية" + +msgid "Udmurt" +msgstr "الأدمرتية" + +msgid "Ukrainian" +msgstr "الأكرانية" + +msgid "Urdu" +msgstr "الأوردو" + +msgid "Uzbek" +msgstr "الأوزبكية" + +msgid "Vietnamese" +msgstr "الفيتنامية" + +msgid "Simplified Chinese" +msgstr "الصينية المبسطة" + +msgid "Traditional Chinese" +msgstr "الصينية التقليدية" + +msgid "Messages" +msgstr "الرسائل" + +msgid "Site Maps" +msgstr "خرائط الموقع" + +msgid "Static Files" +msgstr "الملفات الثابتة" + +msgid "Syndication" +msgstr "توظيف النشر" + +#. Translators: String used to replace omitted page numbers in elided page +#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10]. +msgid "…" +msgstr "" + +msgid "That page number is not an integer" +msgstr "رقم الصفحة ليس عددًا صحيحًا" + +msgid "That page number is less than 1" +msgstr "رقم الصفحة أقل من 1" + +msgid "That page contains no results" +msgstr "هذه الصفحة لا تحتوي على نتائج" + +msgid "Enter a valid value." +msgstr "أدخل قيمة صحيحة." + +msgid "Enter a valid URL." +msgstr "أدخل رابطاً صحيحاً." + +msgid "Enter a valid integer." +msgstr "أدخل رقم صالح." + +msgid "Enter a valid email address." +msgstr "أدخل عنوان بريد إلكتروني صحيح." + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" +"أدخل “slug” صالحة تتكون من أحرف أو أرقام أو الشرطة السفلية أو الواصلات." + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" +"أدخل “slug” صالحة تتكون من أحرف Unicode أو الأرقام أو الشرطة السفلية أو " +"الواصلات." + +msgid "Enter a valid IPv4 address." +msgstr "أدخل عنوان IPv4 صحيح." + +msgid "Enter a valid IPv6 address." +msgstr "أدخل عنوان IPv6 صحيح." + +msgid "Enter a valid IPv4 or IPv6 address." +msgstr "أدخل عنوان IPv4 أو عنوان IPv6 صحيح." + +msgid "Enter only digits separated by commas." +msgstr "أدخل أرقاما فقط مفصول بينها بفواصل." + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "تحقق من أن هذه القيمة هي %(limit_value)s (إنها %(show_value)s)." + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "تحقق من أن تكون هذه القيمة أقل من %(limit_value)s أو مساوية لها." + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "تحقق من أن تكون هذه القيمة أكثر من %(limit_value)s أو مساوية لها." + +#, python-format +msgid "Ensure this value is a multiple of step size %(limit_value)s." +msgstr "" + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"تأكد أن هذه القيمة تحتوي على %(limit_value)d حرف أو رمز على الأقل (هي تحتوي " +"حالياً على %(show_value)d)." +msgstr[1] "" +"تأكد أن هذه القيمة تحتوي على %(limit_value)d حرف أو رمز على الأقل (هي تحتوي " +"حالياً على %(show_value)d)." +msgstr[2] "" +"تأكد أن هذه القيمة تحتوي على %(limit_value)d حرف أو رمز على الأقل (هي تحتوي " +"حالياً على %(show_value)d)." +msgstr[3] "" +"تأكد أن هذه القيمة تحتوي على %(limit_value)d حرف أو رمز على الأقل (هي تحتوي " +"حالياً على %(show_value)d)." +msgstr[4] "" +"تأكد أن هذه القيمة تحتوي على %(limit_value)d حرف أو رمز على الأقل (هي تحتوي " +"حالياً على %(show_value)d)." +msgstr[5] "" +"تأكد أن هذه القيمة تحتوي على %(limit_value)d حرف أو رمز على الأقل (هي تحتوي " +"حالياً على %(show_value)d)." + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"تأكد أن هذه القيمة تحتوي على %(limit_value)d حرف أو رمز على الأكثر (هي تحتوي " +"حالياً على %(show_value)d)." +msgstr[1] "" +"تأكد أن هذه القيمة تحتوي على %(limit_value)d حرف أو رمز على الأكثر (هي تحتوي " +"حالياً على %(show_value)d)." +msgstr[2] "" +"تأكد أن هذه القيمة تحتوي على %(limit_value)d حرف أو رمز على الأكثر (هي تحتوي " +"حالياً على %(show_value)d)." +msgstr[3] "" +"تأكد أن هذه القيمة تحتوي على %(limit_value)d حرف أو رمز على الأكثر (هي تحتوي " +"حالياً على %(show_value)d)." +msgstr[4] "" +"تأكد أن هذه القيمة تحتوي على %(limit_value)d حرف أو رمز على الأكثر (هي تحتوي " +"حالياً على %(show_value)d)." +msgstr[5] "" +"تأكد أن هذه القيمة تحتوي على %(limit_value)d حرف أو رمز على الأكثر (هي تحتوي " +"حالياً على %(show_value)d)." + +msgid "Enter a number." +msgstr "أدخل رقماً." + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "تحقق من أن تدخل %(max)s أرقام لا أكثر." +msgstr[1] "تحقق من أن تدخل رقم %(max)s لا أكثر." +msgstr[2] "تحقق من أن تدخل %(max)s رقمين لا أكثر." +msgstr[3] "تحقق من أن تدخل %(max)s أرقام لا أكثر." +msgstr[4] "تحقق من أن تدخل %(max)s أرقام لا أكثر." +msgstr[5] "تحقق من أن تدخل %(max)s أرقام لا أكثر." + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "تحقق من أن تدخل %(max)s خانات عشرية لا أكثر." +msgstr[1] "تحقق من أن تدخل %(max)s خانات عشرية لا أكثر." +msgstr[2] "تحقق من أن تدخل %(max)s خانات عشرية لا أكثر." +msgstr[3] "تحقق من أن تدخل %(max)s خانات عشرية لا أكثر." +msgstr[4] "تحقق من أن تدخل %(max)s خانات عشرية لا أكثر." +msgstr[5] "تحقق من أن تدخل %(max)s خانات عشرية لا أكثر." + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "تحقق من أن تدخل %(max)s أرقام قبل الفاصل العشري لا أكثر." +msgstr[1] "تحقق من أن تدخل %(max)s أرقام قبل الفاصل العشري لا أكثر." +msgstr[2] "تحقق من أن تدخل %(max)s أرقام قبل الفاصل العشري لا أكثر." +msgstr[3] "تحقق من أن تدخل %(max)s أرقام قبل الفاصل العشري لا أكثر." +msgstr[4] "تحقق من أن تدخل %(max)s أرقام قبل الفاصل العشري لا أكثر." +msgstr[5] "تحقق من أن تدخل %(max)s أرقام قبل الفاصل العشري لا أكثر." + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" +"امتداد الملف “%(extension)s” غير مسموح به. الامتدادات المسموح بها هي:" +"%(allowed_extensions)s." + +msgid "Null characters are not allowed." +msgstr "لا يُسمح بالأحرف الخالية." + +msgid "and" +msgstr "و" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "%(model_name)s بهذا %(field_labels)s موجود سلفاً." + +#, python-format +msgid "Constraint “%(name)s” is violated." +msgstr "" + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "القيمة %(value)r ليست خيارا صحيحاً." + +msgid "This field cannot be null." +msgstr "لا يمكن ترك هذا الحقل خالي." + +msgid "This field cannot be blank." +msgstr "لا يمكن ترك هذا الحقل فارغاً." + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "النموذج %(model_name)s والحقل %(field_label)s موجود مسبقاً." + +#. Translators: The 'lookup_type' is one of 'date', 'year' or +#. 'month'. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" +"%(field_label)s يجب أن يكون فريد لـ %(date_field_label)s %(lookup_type)s." + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "حقل نوع: %(field_type)s" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "يجب أن تكون القيمة “%(value)s” إما True أو False." + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "يجب أن تكون القيمة “%(value)s” إما True أو False أو None." + +msgid "Boolean (Either True or False)" +msgstr "ثنائي (إما True أو False)" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "سلسلة نص (%(max_length)s كحد أقصى)" + +msgid "Comma-separated integers" +msgstr "أرقام صحيحة مفصولة بفواصل" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" +"تحتوي القيمة “%(value)s” على تنسيق تاريخ غير صالح. يجب أن يكون بتنسيق YYYY-" +"MM-DD." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" +"تحتوي القيمة “%(value)s” على التنسيق الصحيح (YYYY-MM-DD) ولكنه تاريخ غير " +"صالح." + +msgid "Date (without time)" +msgstr "التاريخ (دون الوقت)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" +"تحتوي القيمة “%(value)s” على تنسيق غير صالح. يجب أن يكون بتنسيق YYYY-MM-DD " +"HH: MM [: ss [.uuuuuu]] [TZ]." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" +"تحتوي القيمة “%(value)s” على التنسيق الصحيح (YYYY-MM-DD HH: MM [: ss [." +"uuuuuu]] [TZ]) ولكنها تعد تاريخًا / وقتًا غير صالحين." + +msgid "Date (with time)" +msgstr "التاريخ (مع الوقت)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "يجب أن تكون القيمة “%(value)s” رقمًا عشريًا." + +msgid "Decimal number" +msgstr "رقم عشري" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" +"تحتوي القيمة “%(value)s” على تنسيق غير صالح. يجب أن يكون بتنسيق [DD] [[HH:] " +"MM:] ss [.uuuuuu]." + +msgid "Duration" +msgstr "المدّة" + +msgid "Email address" +msgstr "عنوان بريد إلكتروني" + +msgid "File path" +msgstr "مسار الملف" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "يجب أن تكون القيمة “%(value)s” قيمة عائمة." + +msgid "Floating point number" +msgstr "رقم فاصلة عائمة" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "يجب أن تكون القيمة “%(value)s” عددًا صحيحًا." + +msgid "Integer" +msgstr "عدد صحيح" + +msgid "Big (8 byte) integer" +msgstr "عدد صحيح كبير (8 بايت)" + +msgid "Small integer" +msgstr "عدد صحيح صغير" + +msgid "IPv4 address" +msgstr "عنوان IPv4" + +msgid "IP address" +msgstr "عنوان IP" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "يجب أن تكون القيمة “%(value)s” إما None أو True أو False." + +msgid "Boolean (Either True, False or None)" +msgstr "ثنائي (إما True أو False أو None)" + +msgid "Positive big integer" +msgstr "عدد صحيح كبير موجب" + +msgid "Positive integer" +msgstr "عدد صحيح موجب" + +msgid "Positive small integer" +msgstr "عدد صحيح صغير موجب" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "Slug (حتى %(max_length)s)" + +msgid "Text" +msgstr "نص" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" +"تحتوي القيمة “%(value)s” على تنسيق غير صالح. يجب أن يكون بتنسيق HH: MM [: ss " +"[.uuuuuu]]." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" +"تحتوي القيمة “%(value)s” على التنسيق الصحيح (HH: MM [: ss [.uuuuuu]]) ولكنه " +"وقت غير صالح." + +msgid "Time" +msgstr "وقت" + +msgid "URL" +msgstr "رابط" + +msgid "Raw binary data" +msgstr "البيانات الثنائية الخام" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "“%(value)s” ليس UUID صالحًا." + +msgid "Universally unique identifier" +msgstr "المعرف الفريد العالمي (UUID)" + +msgid "File" +msgstr "ملف" + +msgid "Image" +msgstr "صورة" + +msgid "A JSON object" +msgstr "كائن JSON" + +msgid "Value must be valid JSON." +msgstr "يجب أن تكون قيمة JSON صالحة." + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "النموذج %(model)s ذو الحقل و القيمة %(field)s %(value)r غير موجود." + +msgid "Foreign Key (type determined by related field)" +msgstr "الحقل المرتبط (تم تحديد النوع وفقاً للحقل المرتبط)" + +msgid "One-to-one relationship" +msgstr "علاقة واحد إلى واحد" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "%(from)s-%(to)s علاقة" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "%(from)s-%(to)s علاقات" + +msgid "Many-to-many relationship" +msgstr "علاقة متعدد إلى متعدد" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr ":?.!" + +msgid "This field is required." +msgstr "هذا الحقل مطلوب." + +msgid "Enter a whole number." +msgstr "أدخل رقما صحيحا." + +msgid "Enter a valid date." +msgstr "أدخل تاريخاً صحيحاً." + +msgid "Enter a valid time." +msgstr "أدخل وقتاً صحيحاً." + +msgid "Enter a valid date/time." +msgstr "أدخل تاريخاً/وقتاً صحيحاً." + +msgid "Enter a valid duration." +msgstr "أدخل مدّة صحيحة" + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "يجب أن يتراوح عدد الأيام بين {min_days} و {max_days}." + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "لم يتم ارسال ملف، الرجاء التأكد من نوع ترميز الاستمارة." + +msgid "No file was submitted." +msgstr "لم يتم إرسال اي ملف." + +msgid "The submitted file is empty." +msgstr "الملف الذي قمت بإرساله فارغ." + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" +"تأكد أن إسم هذا الملف يحتوي على %(max)d حرف على الأكثر (هو يحتوي الآن على " +"%(length)d حرف)." +msgstr[1] "" +"تأكد أن إسم هذا الملف يحتوي على %(max)d حرف على الأكثر (هو يحتوي الآن على " +"%(length)d حرف)." +msgstr[2] "" +"تأكد أن إسم هذا الملف يحتوي على %(max)d حرف على الأكثر (هو يحتوي الآن على " +"%(length)d حرف)." +msgstr[3] "" +"تأكد أن إسم هذا الملف يحتوي على %(max)d حرف على الأكثر (هو يحتوي الآن على " +"%(length)d حرف)." +msgstr[4] "" +"تأكد أن إسم هذا الملف يحتوي على %(max)d حرف على الأكثر (هو يحتوي الآن على " +"%(length)d حرف)." +msgstr[5] "" +"تأكد أن إسم هذا الملف يحتوي على %(max)d حرف على الأكثر (هو يحتوي الآن على " +"%(length)d حرف)." + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "" +"رجاءً أرسل ملف أو صح علامة صح عند مربع اختيار \\\"فارغ\\\"، وليس كلاهما." + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" +"قم برفع صورة صحيحة، الملف الذي قمت برفعه إما أنه ليس ملفا لصورة أو أنه ملف " +"معطوب." + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "انتق خياراً صحيحاً. %(value)s ليس أحد الخيارات المتاحة." + +msgid "Enter a list of values." +msgstr "أدخل قائمة من القيم." + +msgid "Enter a complete value." +msgstr "إدخال قيمة كاملة." + +msgid "Enter a valid UUID." +msgstr "أدخل قيمة UUID صحيحة." + +msgid "Enter a valid JSON." +msgstr "ادخل كائن JSON صالح." + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr ":" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "(الحقل الخفي %(name)s) %(error)s" + +#, python-format +msgid "" +"ManagementForm data is missing or has been tampered with. Missing fields: " +"%(field_names)s. You may need to file a bug report if the issue persists." +msgstr "" +"نموذج بيانات الإدارة مفقود أو تم العبث به. %(field_names)sمن الحقول مفقود. " +"قد تحتاج إلى رفع تقرير بالمشكلة إن استمرت الحالة." + +#, python-format +msgid "Please submit at most %(num)d form." +msgid_plural "Please submit at most %(num)d forms." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "" + +#, python-format +msgid "Please submit at least %(num)d form." +msgid_plural "Please submit at least %(num)d forms." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "" + +msgid "Order" +msgstr "الترتيب" + +msgid "Delete" +msgstr "احذف" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "رجاء صحّح بيانات %(field)s المتكررة." + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "رجاء صحّح بيانات %(field)s المتكررة والتي يجب أن تكون مُميّزة." + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"رجاء صحّح بيانات %(field_name)s المتكررة والتي يجب أن تكون مُميّزة لـ%(lookup)s " +"في %(date_field)s." + +msgid "Please correct the duplicate values below." +msgstr "رجاءً صحّح القيم المُكرّرة أدناه." + +msgid "The inline value did not match the parent instance." +msgstr "القيمة المضمنة لا تتطابق مع المثيل الأصلي." + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "انتق خياراً صحيحاً. اختيارك ليس أحد الخيارات المتاحة." + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "“%(pk)s” ليست قيمة صالحة." + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" +"لا يمكن تفسير٪ %(datetime)s في المنطقة الزمنية٪ %(current_timezone)s؛ قد " +"تكون غامضة أو غير موجودة." + +msgid "Clear" +msgstr "تفريغ" + +msgid "Currently" +msgstr "حالياً" + +msgid "Change" +msgstr "عدّل" + +msgid "Unknown" +msgstr "مجهول" + +msgid "Yes" +msgstr "نعم" + +msgid "No" +msgstr "لا" + +#. Translators: Please do not add spaces around commas. +msgid "yes,no,maybe" +msgstr "نعم,لا,ربما" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)d بايت" +msgstr[1] "%(size)d بايت واحد " +msgstr[2] "%(size)d بايتان" +msgstr[3] "%(size)d بايت" +msgstr[4] "%(size)d بايت" +msgstr[5] "%(size)d بايت" + +#, python-format +msgid "%s KB" +msgstr "%s ك.ب" + +#, python-format +msgid "%s MB" +msgstr "%s م.ب" + +#, python-format +msgid "%s GB" +msgstr "%s ج.ب" + +#, python-format +msgid "%s TB" +msgstr "%s ت.ب" + +#, python-format +msgid "%s PB" +msgstr "%s ب.ب" + +msgid "p.m." +msgstr "م" + +msgid "a.m." +msgstr "ص" + +msgid "PM" +msgstr "م" + +msgid "AM" +msgstr "ص" + +msgid "midnight" +msgstr "منتصف الليل" + +msgid "noon" +msgstr "ظهراً" + +msgid "Monday" +msgstr "الاثنين" + +msgid "Tuesday" +msgstr "الثلاثاء" + +msgid "Wednesday" +msgstr "الأربعاء" + +msgid "Thursday" +msgstr "الخميس" + +msgid "Friday" +msgstr "الجمعة" + +msgid "Saturday" +msgstr "السبت" + +msgid "Sunday" +msgstr "الأحد" + +msgid "Mon" +msgstr "إثنين" + +msgid "Tue" +msgstr "ثلاثاء" + +msgid "Wed" +msgstr "أربعاء" + +msgid "Thu" +msgstr "خميس" + +msgid "Fri" +msgstr "جمعة" + +msgid "Sat" +msgstr "سبت" + +msgid "Sun" +msgstr "أحد" + +msgid "January" +msgstr "جانفي" + +msgid "February" +msgstr "فيفري" + +msgid "March" +msgstr "مارس" + +msgid "April" +msgstr "أفريل" + +msgid "May" +msgstr "ماي" + +msgid "June" +msgstr "جوان" + +msgid "July" +msgstr "جويليه" + +msgid "August" +msgstr "أوت" + +msgid "September" +msgstr "سبتمبر" + +msgid "October" +msgstr "أكتوبر" + +msgid "November" +msgstr "نوفمبر" + +msgid "December" +msgstr "ديسمبر" + +msgid "jan" +msgstr "جانفي" + +msgid "feb" +msgstr "فيفري" + +msgid "mar" +msgstr "مارس" + +msgid "apr" +msgstr "أفريل" + +msgid "may" +msgstr "ماي" + +msgid "jun" +msgstr "جوان" + +msgid "jul" +msgstr "جويليه" + +msgid "aug" +msgstr "أوت" + +msgid "sep" +msgstr "سبتمبر" + +msgid "oct" +msgstr "أكتوبر" + +msgid "nov" +msgstr "نوفمبر" + +msgid "dec" +msgstr "ديسمبر" + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "جانفي" + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "فيفري" + +msgctxt "abbrev. month" +msgid "March" +msgstr "مارس" + +msgctxt "abbrev. month" +msgid "April" +msgstr "أفريل" + +msgctxt "abbrev. month" +msgid "May" +msgstr "ماي" + +msgctxt "abbrev. month" +msgid "June" +msgstr "جوان" + +msgctxt "abbrev. month" +msgid "July" +msgstr "جويليه" + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "أوت" + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "سبتمبر" + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "أكتوبر" + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "نوفمبر" + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "ديسمبر" + +msgctxt "alt. month" +msgid "January" +msgstr "جانفي" + +msgctxt "alt. month" +msgid "February" +msgstr "فيفري" + +msgctxt "alt. month" +msgid "March" +msgstr "مارس" + +msgctxt "alt. month" +msgid "April" +msgstr "أفريل" + +msgctxt "alt. month" +msgid "May" +msgstr "ماي" + +msgctxt "alt. month" +msgid "June" +msgstr "جوان" + +msgctxt "alt. month" +msgid "July" +msgstr "جويليه" + +msgctxt "alt. month" +msgid "August" +msgstr "أوت" + +msgctxt "alt. month" +msgid "September" +msgstr "سبتمبر" + +msgctxt "alt. month" +msgid "October" +msgstr "أكتوبر" + +msgctxt "alt. month" +msgid "November" +msgstr "نوفمبر" + +msgctxt "alt. month" +msgid "December" +msgstr "ديسمبر" + +msgid "This is not a valid IPv6 address." +msgstr "هذا ليس عنوان IPv6 صحيح." + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "%(truncated_text)s…" + +msgid "or" +msgstr "أو" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr "، " + +#, python-format +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "" + +#, python-format +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "" + +#, python-format +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "" + +#, python-format +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "" + +#, python-format +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "" + +#, python-format +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "" + +msgid "Forbidden" +msgstr "ممنوع" + +msgid "CSRF verification failed. Request aborted." +msgstr "تم الفشل للتحقق من CSRF. تم إنهاء الطلب." + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" +"أنت ترى هذه الرسالة لأن موقع HTTPS هذا يتطلب \"عنوان مرجعي\" ليتم إرساله " +"بواسطة متصفح الويب الخاص بك ، ولكن لم يتم إرسال أي شيء. هذا العنوان مطلوب " +"لأسباب أمنية ، لضمان عدم اختراق متصفحك من قبل أطراف أخرى." + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" +"إذا قمت بتكوين المستعرض الخاص بك لتعطيل رؤوس “Referer” ، فالرجاء إعادة " +"تمكينها ، على الأقل لهذا الموقع ، أو لاتصالات HTTPS ، أو لطلبات “same-" +"origin”." + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" +"إذا كنت تستخدم العلامة أو تتضمن رأس “Referrer-Policy: no-referrer” ، فيرجى إزالتها. تتطلب حماية " +"CSRF رأس “Referer” القيام بالتحقق من “strict referer”. إذا كنت مهتمًا " +"بالخصوصية ، فاستخدم بدائل مثل للروابط إلى مواقع " +"الجهات الخارجية." + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" +"تشاهد هذه الرسالة لأن هذا الموقع يتطلب ملف تعريف ارتباط CSRF Cookie عند " +"إرسال النماذج. ملف تعريف ارتباط Cookie هذا مطلوب لأسباب أمنية ، لضمان عدم " +"اختطاف متصفحك من قبل أطراف ثالثة." + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" +"إذا قمت بتكوين المستعرض الخاص بك لتعطيل ملفات تعريف الارتباط Cookies ، يرجى " +"إعادة تمكينها ، على الأقل لهذا الموقع ، أو لطلبات “same-origin”." + +msgid "More information is available with DEBUG=True." +msgstr "يتوفر مزيد من المعلومات عند ضبط الخيار DEBUG=True." + +msgid "No year specified" +msgstr "لم تحدد السنة" + +msgid "Date out of range" +msgstr "تاريخ خارج النطاق" + +msgid "No month specified" +msgstr "لم تحدد الشهر" + +msgid "No day specified" +msgstr "لم تحدد اليوم" + +msgid "No week specified" +msgstr "لم تحدد الأسبوع" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "لا يوجد %(verbose_name_plural)s" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" +"التاريخ بالمستقبل %(verbose_name_plural)s غير متوفر لأن قيمة %(class_name)s." +"allow_future هي False." + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "سلسلة تاريخ غير صالحة “%(datestr)s” شكل معين “%(format)s”" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "لم يعثر على أي %(verbose_name)s مطابقة لهذا الإستعلام" + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "الصفحة ليست \"الأخيرة\" ، ولا يمكن تحويلها إلى عدد صحيح." + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "صفحة خاطئة (%(page_number)s): %(message)s" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "القائمة فارغة و “%(class_name)s.allow_empty” هي False." + +msgid "Directory indexes are not allowed here." +msgstr "لا يسمح لفهارس الدليل هنا." + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "“%(path)s” غير موجود" + +#, python-format +msgid "Index of %(directory)s" +msgstr "فهرس لـ %(directory)s" + +msgid "The install worked successfully! Congratulations!" +msgstr "تمَّت عملية التثبيت بنجاح! تهانينا!" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" +"عرض ملاحظات الإصدار ل جانغو " +"%(version)s" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not configured any " +"URLs." +msgstr "" +"تشاهد هذه الصفحة لأن DEBUG = True موجود في ملف الإعدادات الخاص بك ولم تقم بتكوين أي " +"عناوين URL." + +msgid "Django Documentation" +msgstr "توثيق جانغو" + +msgid "Topics, references, & how-to’s" +msgstr "الموضوعات ، المراجع، & الكيفية" + +msgid "Tutorial: A Polling App" +msgstr "البرنامج التعليمي: تطبيق الاقتراع" + +msgid "Get started with Django" +msgstr "الخطوات الأولى مع جانغو" + +msgid "Django Community" +msgstr "مجتمع جانغو" + +msgid "Connect, get help, or contribute" +msgstr "الاتصال، الحصول على المساعدة أو المساهمة" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/ar_DZ/__init__.py b/venv/lib/python3.12/site-packages/django/conf/locale/ar_DZ/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/ar_DZ/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/ar_DZ/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6c9aa62c6a7f874d7f5bde026aa1b79a7cfdb91c GIT binary patch literal 201 zcmX@j%ge<81o5sX(m?cM5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!%Fxfq&rQ|OP0Yy6 zFHO;RNiEZNN=(kybEFQ_cZ$j>v@Gc?jK&MZmQEdVM^ zOiwM=Pssu+OwP|s)6dCIPRvQwPb`XeiPDdc&&S S5r~UHjE~HWjEqIhKo$UVP&Ix4 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/ar_DZ/__pycache__/formats.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/ar_DZ/__pycache__/formats.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..bdb4ba4778120f819d49204534e156f6e0d4f7bf GIT binary patch literal 746 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, 2014 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-09-27 22:40+0200\n" +"PO-Revision-Date: 2019-11-05 00:38+0000\n" +"Last-Translator: Ramiro Morales\n" +"Language-Team: Asturian (http://www.transifex.com/django/django/language/" +"ast/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ast\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Afrikaans" +msgstr "Afrikáans" + +msgid "Arabic" +msgstr "Árabe" + +msgid "Asturian" +msgstr "" + +msgid "Azerbaijani" +msgstr "Azerbaixanu" + +msgid "Bulgarian" +msgstr "Búlgaru" + +msgid "Belarusian" +msgstr "Bielorrusu" + +msgid "Bengali" +msgstr "Bengalí" + +msgid "Breton" +msgstr "Bretón" + +msgid "Bosnian" +msgstr "Bosniu" + +msgid "Catalan" +msgstr "Catalán" + +msgid "Czech" +msgstr "Checu" + +msgid "Welsh" +msgstr "Galés" + +msgid "Danish" +msgstr "Danés" + +msgid "German" +msgstr "Alemán" + +msgid "Lower Sorbian" +msgstr "" + +msgid "Greek" +msgstr "Griegu" + +msgid "English" +msgstr "Inglés" + +msgid "Australian English" +msgstr "" + +msgid "British English" +msgstr "Inglés británicu" + +msgid "Esperanto" +msgstr "Esperantu" + +msgid "Spanish" +msgstr "Castellán" + +msgid "Argentinian Spanish" +msgstr "Español arxentín" + +msgid "Colombian Spanish" +msgstr "" + +msgid "Mexican Spanish" +msgstr "Español mexicanu" + +msgid "Nicaraguan Spanish" +msgstr "Español nicaraguanu" + +msgid "Venezuelan Spanish" +msgstr "Español venezolanu" + +msgid "Estonian" +msgstr "Estoniu" + +msgid "Basque" +msgstr "Vascu" + +msgid "Persian" +msgstr "Persa" + +msgid "Finnish" +msgstr "Finés" + +msgid "French" +msgstr "Francés" + +msgid "Frisian" +msgstr "Frisón" + +msgid "Irish" +msgstr "Irlandés" + +msgid "Scottish Gaelic" +msgstr "" + +msgid "Galician" +msgstr "Gallegu" + +msgid "Hebrew" +msgstr "Hebréu" + +msgid "Hindi" +msgstr "Hindi" + +msgid "Croatian" +msgstr "Croata" + +msgid "Upper Sorbian" +msgstr "" + +msgid "Hungarian" +msgstr "Húngaru" + +msgid "Armenian" +msgstr "" + +msgid "Interlingua" +msgstr "Interlingua" + +msgid "Indonesian" +msgstr "Indonesiu" + +msgid "Ido" +msgstr "" + +msgid "Icelandic" +msgstr "Islandés" + +msgid "Italian" +msgstr "Italianu" + +msgid "Japanese" +msgstr "Xaponés" + +msgid "Georgian" +msgstr "Xeorxanu" + +msgid "Kabyle" +msgstr "" + +msgid "Kazakh" +msgstr "Kazakh" + +msgid "Khmer" +msgstr "Khmer" + +msgid "Kannada" +msgstr "Canarés" + +msgid "Korean" +msgstr "Coreanu" + +msgid "Luxembourgish" +msgstr "Luxemburgués" + +msgid "Lithuanian" +msgstr "Lituanu" + +msgid "Latvian" +msgstr "Letón" + +msgid "Macedonian" +msgstr "Macedoniu" + +msgid "Malayalam" +msgstr "Malayalam" + +msgid "Mongolian" +msgstr "Mongol" + +msgid "Marathi" +msgstr "" + +msgid "Burmese" +msgstr "Birmanu" + +msgid "Norwegian Bokmål" +msgstr "" + +msgid "Nepali" +msgstr "Nepalí" + +msgid "Dutch" +msgstr "Holandés" + +msgid "Norwegian Nynorsk" +msgstr "Nynorsk noruegu" + +msgid "Ossetic" +msgstr "Osetiu" + +msgid "Punjabi" +msgstr "Punjabi" + +msgid "Polish" +msgstr "Polacu" + +msgid "Portuguese" +msgstr "Portugués" + +msgid "Brazilian Portuguese" +msgstr "Portugués brasileñu" + +msgid "Romanian" +msgstr "Rumanu" + +msgid "Russian" +msgstr "Rusu" + +msgid "Slovak" +msgstr "Eslovacu" + +msgid "Slovenian" +msgstr "Eslovenu" + +msgid "Albanian" +msgstr "Albanu" + +msgid "Serbian" +msgstr "Serbiu" + +msgid "Serbian Latin" +msgstr "Serbiu llatín" + +msgid "Swedish" +msgstr "Suecu" + +msgid "Swahili" +msgstr "Suaḥili" + +msgid "Tamil" +msgstr "Tamil" + +msgid "Telugu" +msgstr "Telugu" + +msgid "Thai" +msgstr "Tailandés" + +msgid "Turkish" +msgstr "Turcu" + +msgid "Tatar" +msgstr "Tatar" + +msgid "Udmurt" +msgstr "Udmurtu" + +msgid "Ukrainian" +msgstr "Ucranianu" + +msgid "Urdu" +msgstr "Urdu" + +msgid "Uzbek" +msgstr "" + +msgid "Vietnamese" +msgstr "Vietnamita" + +msgid "Simplified Chinese" +msgstr "Chinu simplificáu" + +msgid "Traditional Chinese" +msgstr "Chinu tradicional" + +msgid "Messages" +msgstr "" + +msgid "Site Maps" +msgstr "" + +msgid "Static Files" +msgstr "" + +msgid "Syndication" +msgstr "" + +msgid "That page number is not an integer" +msgstr "" + +msgid "That page number is less than 1" +msgstr "" + +msgid "That page contains no results" +msgstr "" + +msgid "Enter a valid value." +msgstr "Introduz un valor válidu." + +msgid "Enter a valid URL." +msgstr "Introduz una URL válida." + +msgid "Enter a valid integer." +msgstr "" + +msgid "Enter a valid email address." +msgstr "Introduz una direición de corréu válida." + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" + +msgid "Enter a valid IPv4 address." +msgstr "Introduz una direición IPv4 válida." + +msgid "Enter a valid IPv6 address." +msgstr "Introduz una direición IPv6 válida." + +msgid "Enter a valid IPv4 or IPv6 address." +msgstr "Introduz una direición IPv4 o IPv6 válida." + +msgid "Enter only digits separated by commas." +msgstr "Introduz namái díxitos separtaos per comes." + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "Asegúrate qu'esti valor ye %(limit_value)s (ye %(show_value)s)." + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "Asegúrate qu'esti valor ye menor o igual a %(limit_value)s." + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "Asegúrate qu'esti valor ye mayor o igual a %(limit_value)s." + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Asegúrate qu'esti valor tien polo menos %(limit_value)d caráuter (tien " +"%(show_value)d)." +msgstr[1] "" +"Asegúrate qu'esti valor tien polo menos %(limit_value)d caráuteres (tien " +"%(show_value)d)." + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Asegúrate qu'esti valor tien como muncho %(limit_value)d caráuter (tien " +"%(show_value)d)." +msgstr[1] "" +"Asegúrate qu'esti valor tien como muncho %(limit_value)d caráuteres (tien " +"%(show_value)d)." + +msgid "Enter a number." +msgstr "Introduz un númberu." + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "Asegúrate que nun hai más de %(max)s díxitu en total." +msgstr[1] "Asegúrate que nun hai más de %(max)s díxitos en total." + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "Asegúrate que nun hai más de %(max)s allugamientu decimal." +msgstr[1] "Asegúrate que nun hai más de %(max)s allugamientos decimales." + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "" +"Asegúrate que nun hai más de %(max)s díxitu enantes del puntu decimal." +msgstr[1] "" +"Asegúrate que nun hai más de %(max)s díxitos enantes del puntu decimal." + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" + +msgid "Null characters are not allowed." +msgstr "" + +msgid "and" +msgstr "y" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "" + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "" + +msgid "This field cannot be null." +msgstr "Esti campu nun pue ser nulu." + +msgid "This field cannot be blank." +msgstr "Esti campu nun pue tar baleru." + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "%(model_name)s con esti %(field_label)s yá esiste." + +#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'. +#. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "Campu de la triba: %(field_type)s" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "" + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "" + +msgid "Boolean (Either True or False)" +msgstr "Boleanu (tamién True o False)" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "Cadena (fasta %(max_length)s)" + +msgid "Comma-separated integers" +msgstr "Enteros separtaos per coma" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" + +msgid "Date (without time)" +msgstr "Data (ensin hora)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" + +msgid "Date (with time)" +msgstr "Data (con hora)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "" + +msgid "Decimal number" +msgstr "Númberu decimal" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" + +msgid "Duration" +msgstr "" + +msgid "Email address" +msgstr "Direición de corréu" + +msgid "File path" +msgstr "Camín del ficheru" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "" + +msgid "Floating point number" +msgstr "Númberu de puntu flotante" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "" + +msgid "Integer" +msgstr "Enteru" + +msgid "Big (8 byte) integer" +msgstr "Enteru big (8 byte)" + +msgid "IPv4 address" +msgstr "Direición IPv4" + +msgid "IP address" +msgstr "Direición IP" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "" + +msgid "Boolean (Either True, False or None)" +msgstr "Boleanu (tamién True, False o None)" + +msgid "Positive integer" +msgstr "Enteru positivu" + +msgid "Positive small integer" +msgstr "Enteru pequeñu positivu" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "Slug (fasta %(max_length)s)" + +msgid "Small integer" +msgstr "Enteru pequeñu" + +msgid "Text" +msgstr "Testu" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" + +msgid "Time" +msgstr "Hora" + +msgid "URL" +msgstr "URL" + +msgid "Raw binary data" +msgstr "Datos binarios crudos" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "" + +msgid "Universally unique identifier" +msgstr "" + +msgid "File" +msgstr "Ficheru" + +msgid "Image" +msgstr "Imaxe" + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "" + +msgid "Foreign Key (type determined by related field)" +msgstr "Clave foriata (triba determinada pol campu rellacionáu)" + +msgid "One-to-one relationship" +msgstr "Rellación a ún" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "" + +msgid "Many-to-many relationship" +msgstr "Rellación a munchos" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr ":?.!" + +msgid "This field is required." +msgstr "Requierse esti campu." + +msgid "Enter a whole number." +msgstr "Introduz un númberu completu" + +msgid "Enter a valid date." +msgstr "Introduz una data válida." + +msgid "Enter a valid time." +msgstr "Introduz una hora válida." + +msgid "Enter a valid date/time." +msgstr "Introduz una data/hora válida." + +msgid "Enter a valid duration." +msgstr "" + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "" + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "Nun s'unvió'l ficheru. Comprueba la triba de cifráu nel formulariu." + +msgid "No file was submitted." +msgstr "No file was submitted." + +msgid "The submitted file is empty." +msgstr "El ficheru dunviáu ta baleru." + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" +"Asegúrate qu'esti nome de ficheru tien polo menos %(max)d caráuter (tien " +"%(length)d)." +msgstr[1] "" +"Asegúrate qu'esti nome de ficheru tien polo menos %(max)d caráuteres (tien " +"%(length)d)." + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "Por favor, dunvia un ficheru o conseña la caxella , non dambos." + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" +"Xubi una imaxe válida. El ficheru que xubiesti o nun yera una imaxe, o taba " +"toriada." + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "" +"Esbilla una escoyeta válida. %(value)s nun una ún de les escoyetes " +"disponibles." + +msgid "Enter a list of values." +msgstr "Introduz una llista valores." + +msgid "Enter a complete value." +msgstr "" + +msgid "Enter a valid UUID." +msgstr "" + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr ":" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "(Campu anubríu %(name)s) %(error)s" + +msgid "ManagementForm data is missing or has been tampered with" +msgstr "" + +#, python-format +msgid "Please submit %d or fewer forms." +msgid_plural "Please submit %d or fewer forms." +msgstr[0] "Por favor, dunvia %d o menos formularios." +msgstr[1] "Por favor, dunvia %d o menos formularios." + +#, python-format +msgid "Please submit %d or more forms." +msgid_plural "Please submit %d or more forms." +msgstr[0] "" +msgstr[1] "" + +msgid "Order" +msgstr "Orde" + +msgid "Delete" +msgstr "Desanciar" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "Por favor, igua'l datu duplicáu de %(field)s." + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "" +"Por favor, igua'l datu duplicáu pa %(field)s, el cual tien de ser únicu." + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"Por favor, igua'l datu duplicáu de %(field_name)s el cual tien de ser únicu " +"pal %(lookup)s en %(date_field)s." + +msgid "Please correct the duplicate values below." +msgstr "Por favor, igua los valores duplicaos embaxo" + +msgid "The inline value did not match the parent instance." +msgstr "" + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "" +"Esbilla una escoyeta válida. Esa escoyeta nun ye una de les escoyetes " +"disponibles." + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "" + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" + +msgid "Clear" +msgstr "Llimpiar" + +msgid "Currently" +msgstr "Anguaño" + +msgid "Change" +msgstr "Camudar" + +msgid "Unknown" +msgstr "Desconocíu" + +msgid "Yes" +msgstr "Sí" + +msgid "No" +msgstr "Non" + +msgid "Year" +msgstr "" + +msgid "Month" +msgstr "" + +msgid "Day" +msgstr "" + +msgid "yes,no,maybe" +msgstr "sí,non,quiciabes" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)d byte" +msgstr[1] "%(size)d bytes" + +#, python-format +msgid "%s KB" +msgstr "%s KB" + +#, python-format +msgid "%s MB" +msgstr "%s MB" + +#, python-format +msgid "%s GB" +msgstr "%s GB" + +#, python-format +msgid "%s TB" +msgstr "%s TB" + +#, python-format +msgid "%s PB" +msgstr "%s PB" + +msgid "p.m." +msgstr "p.m." + +msgid "a.m." +msgstr "a.m." + +msgid "PM" +msgstr "PM" + +msgid "AM" +msgstr "AM" + +msgid "midnight" +msgstr "Media nueche" + +msgid "noon" +msgstr "Meudía" + +msgid "Monday" +msgstr "Llunes" + +msgid "Tuesday" +msgstr "Martes" + +msgid "Wednesday" +msgstr "Miércoles" + +msgid "Thursday" +msgstr "Xueves" + +msgid "Friday" +msgstr "Vienres" + +msgid "Saturday" +msgstr "Sábadu" + +msgid "Sunday" +msgstr "Domingu" + +msgid "Mon" +msgstr "LLu" + +msgid "Tue" +msgstr "Mar" + +msgid "Wed" +msgstr "Mie" + +msgid "Thu" +msgstr "Xue" + +msgid "Fri" +msgstr "Vie" + +msgid "Sat" +msgstr "Sáb" + +msgid "Sun" +msgstr "Dom" + +msgid "January" +msgstr "Xineru" + +msgid "February" +msgstr "Febreru" + +msgid "March" +msgstr "Marzu" + +msgid "April" +msgstr "Abril" + +msgid "May" +msgstr "Mayu" + +msgid "June" +msgstr "Xunu" + +msgid "July" +msgstr "Xunetu" + +msgid "August" +msgstr "Agostu" + +msgid "September" +msgstr "Setiembre" + +msgid "October" +msgstr "Ochobre" + +msgid "November" +msgstr "Payares" + +msgid "December" +msgstr "Avientu" + +msgid "jan" +msgstr "xin" + +msgid "feb" +msgstr "feb" + +msgid "mar" +msgstr "mar" + +msgid "apr" +msgstr "abr" + +msgid "may" +msgstr "may" + +msgid "jun" +msgstr "xun" + +msgid "jul" +msgstr "xnt" + +msgid "aug" +msgstr "ago" + +msgid "sep" +msgstr "set" + +msgid "oct" +msgstr "och" + +msgid "nov" +msgstr "pay" + +msgid "dec" +msgstr "avi" + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "Xin." + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "Feb." + +msgctxt "abbrev. month" +msgid "March" +msgstr "Mar." + +msgctxt "abbrev. month" +msgid "April" +msgstr "Abr." + +msgctxt "abbrev. month" +msgid "May" +msgstr "May." + +msgctxt "abbrev. month" +msgid "June" +msgstr "Xun." + +msgctxt "abbrev. month" +msgid "July" +msgstr "Xnt." + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "Ago." + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "Set." + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "Och." + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "Pay." + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "Avi." + +msgctxt "alt. month" +msgid "January" +msgstr "Xineru" + +msgctxt "alt. month" +msgid "February" +msgstr "Febreru" + +msgctxt "alt. month" +msgid "March" +msgstr "Marzu" + +msgctxt "alt. month" +msgid "April" +msgstr "Abril" + +msgctxt "alt. month" +msgid "May" +msgstr "Mayu" + +msgctxt "alt. month" +msgid "June" +msgstr "Xunu" + +msgctxt "alt. month" +msgid "July" +msgstr "Xunetu" + +msgctxt "alt. month" +msgid "August" +msgstr "Agostu" + +msgctxt "alt. month" +msgid "September" +msgstr "Setiembre" + +msgctxt "alt. month" +msgid "October" +msgstr "Ochobre" + +msgctxt "alt. month" +msgid "November" +msgstr "Payares" + +msgctxt "alt. month" +msgid "December" +msgstr "Avientu" + +msgid "This is not a valid IPv6 address." +msgstr "" + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "" + +msgid "or" +msgstr "o" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr ", " + +#, python-format +msgid "%d year" +msgid_plural "%d years" +msgstr[0] "%d añu" +msgstr[1] "%d años" + +#, python-format +msgid "%d month" +msgid_plural "%d months" +msgstr[0] "%d mes" +msgstr[1] "%d meses" + +#, python-format +msgid "%d week" +msgid_plural "%d weeks" +msgstr[0] "%d selmana" +msgstr[1] "%d selmanes" + +#, python-format +msgid "%d day" +msgid_plural "%d days" +msgstr[0] "%d día" +msgstr[1] "%d díes" + +#, python-format +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "%d hora" +msgstr[1] "%d hores" + +#, python-format +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "%d minutu" +msgstr[1] "%d minutos" + +msgid "0 minutes" +msgstr "0 minutos" + +msgid "Forbidden" +msgstr "" + +msgid "CSRF verification failed. Request aborted." +msgstr "" + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your Web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" + +msgid "More information is available with DEBUG=True." +msgstr "" + +msgid "No year specified" +msgstr "Nun s'especificó l'añu" + +msgid "Date out of range" +msgstr "" + +msgid "No month specified" +msgstr "Nun s'especificó'l mes" + +msgid "No day specified" +msgstr "Nun s'especificó'l día" + +msgid "No week specified" +msgstr "Nun s'especificó la selmana" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "Ensin %(verbose_name_plural)s disponible" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" +"Nun ta disponible'l %(verbose_name_plural)s futuru porque %(class_name)s." +"allow_future ye False." + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "Nun s'alcontró %(verbose_name)s que concase cola gueta" + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "" + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "Páxina inválida (%(page_number)s): %(message)s" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "" + +msgid "Directory indexes are not allowed here." +msgstr "Nun tán almitíos equí los indexaos de direutoriu." + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "" + +#, python-format +msgid "Index of %(directory)s" +msgstr "Índiz de %(directory)s" + +msgid "Django: the Web framework for perfectionists with deadlines." +msgstr "" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" + +msgid "The install worked successfully! Congratulations!" +msgstr "" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not configured any " +"URLs." +msgstr "" + +msgid "Django Documentation" +msgstr "" + +msgid "Topics, references, & how-to’s" +msgstr "" + +msgid "Tutorial: A Polling App" +msgstr "" + +msgid "Get started with Django" +msgstr "" + +msgid "Django Community" +msgstr "" + +msgid "Connect, get help, or contribute" +msgstr "" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/az/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/conf/locale/az/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..441b0ca0c92a8ad34a1e54f8f912ecd42f5cabb5 GIT binary patch literal 28595 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/az/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/conf/locale/az/LC_MESSAGES/django.po new file mode 100644 index 0000000000..72734bb6fa --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/az/LC_MESSAGES/django.po @@ -0,0 +1,1347 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Emin Mastizada , 2018,2020 +# Emin Mastizada , 2015-2016 +# Metin Amiroff , 2011 +# Nicat Məmmədov , 2022 +# Nijat Mammadov, 2024 +# Sevdimali , 2024 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-05-22 11:46-0300\n" +"PO-Revision-Date: 2024-08-07 06:49+0000\n" +"Last-Translator: Sevdimali , 2024\n" +"Language-Team: Azerbaijani (http://app.transifex.com/django/django/language/" +"az/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: az\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Afrikaans" +msgstr "Afrikaans" + +msgid "Arabic" +msgstr "Ərəb" + +msgid "Algerian Arabic" +msgstr "Əlcəzair Ərəbcəsi" + +msgid "Asturian" +msgstr "Asturiya" + +msgid "Azerbaijani" +msgstr "Azərbaycan" + +msgid "Bulgarian" +msgstr "Bolqar" + +msgid "Belarusian" +msgstr "Belarus" + +msgid "Bengali" +msgstr "Benqal" + +msgid "Breton" +msgstr "Breton" + +msgid "Bosnian" +msgstr "Bosniya" + +msgid "Catalan" +msgstr "Katalon" + +msgid "Central Kurdish (Sorani)" +msgstr "Mərkəzi Kürd dili (Sorani)" + +msgid "Czech" +msgstr "Çex" + +msgid "Welsh" +msgstr "Uels" + +msgid "Danish" +msgstr "Danimarka" + +msgid "German" +msgstr "Alman" + +msgid "Lower Sorbian" +msgstr "Aşağı Sorb" + +msgid "Greek" +msgstr "Yunan" + +msgid "English" +msgstr "İngilis" + +msgid "Australian English" +msgstr "Avstraliya İngiliscəsi" + +msgid "British English" +msgstr "Britaniya İngiliscəsi" + +msgid "Esperanto" +msgstr "Esperanto" + +msgid "Spanish" +msgstr "İspan" + +msgid "Argentinian Spanish" +msgstr "Argentina İspancası" + +msgid "Colombian Spanish" +msgstr "Kolumbia İspancası" + +msgid "Mexican Spanish" +msgstr "Meksika İspancası" + +msgid "Nicaraguan Spanish" +msgstr "Nikaraqua İspancası" + +msgid "Venezuelan Spanish" +msgstr "Venesuela İspancası" + +msgid "Estonian" +msgstr "Eston" + +msgid "Basque" +msgstr "Bask" + +msgid "Persian" +msgstr "Fars" + +msgid "Finnish" +msgstr "Fin" + +msgid "French" +msgstr "Fransız" + +msgid "Frisian" +msgstr "Fris" + +msgid "Irish" +msgstr "İrland" + +msgid "Scottish Gaelic" +msgstr "Şotland Keltcəsi" + +msgid "Galician" +msgstr "Qalisiya" + +msgid "Hebrew" +msgstr "İvrit" + +msgid "Hindi" +msgstr "Hind" + +msgid "Croatian" +msgstr "Xorvat" + +msgid "Upper Sorbian" +msgstr "Yuxarı Sorb" + +msgid "Hungarian" +msgstr "Macar" + +msgid "Armenian" +msgstr "Erməni" + +msgid "Interlingua" +msgstr "İnterlinqua" + +msgid "Indonesian" +msgstr "İndoneziya dili" + +msgid "Igbo" +msgstr "İqbo" + +msgid "Ido" +msgstr "İdo" + +msgid "Icelandic" +msgstr "İsland" + +msgid "Italian" +msgstr "İtalyan" + +msgid "Japanese" +msgstr "Yapon" + +msgid "Georgian" +msgstr "Gürcü" + +msgid "Kabyle" +msgstr "Kabile" + +msgid "Kazakh" +msgstr "Qazax" + +msgid "Khmer" +msgstr "Xmer" + +msgid "Kannada" +msgstr "Kannada" + +msgid "Korean" +msgstr "Koreya" + +msgid "Kyrgyz" +msgstr "Qırğız" + +msgid "Luxembourgish" +msgstr "Lüksemburq" + +msgid "Lithuanian" +msgstr "Litva" + +msgid "Latvian" +msgstr "Latış" + +msgid "Macedonian" +msgstr "Makedon" + +msgid "Malayalam" +msgstr "Malayam" + +msgid "Mongolian" +msgstr "Monqol" + +msgid "Marathi" +msgstr "Marathi" + +msgid "Malay" +msgstr "Malay" + +msgid "Burmese" +msgstr "Birman" + +msgid "Norwegian Bokmål" +msgstr "Norveç Bukmolcası" + +msgid "Nepali" +msgstr "Nepal" + +msgid "Dutch" +msgstr "Niderland" + +msgid "Norwegian Nynorsk" +msgstr "Norveç Nyunorskcası" + +msgid "Ossetic" +msgstr "Osetin" + +msgid "Punjabi" +msgstr "Pəncab" + +msgid "Polish" +msgstr "Polyak" + +msgid "Portuguese" +msgstr "Portuqal" + +msgid "Brazilian Portuguese" +msgstr "Braziliya Portuqalcası" + +msgid "Romanian" +msgstr "Rumın" + +msgid "Russian" +msgstr "Rus" + +msgid "Slovak" +msgstr "Slovak" + +msgid "Slovenian" +msgstr "Sloven" + +msgid "Albanian" +msgstr "Alban" + +msgid "Serbian" +msgstr "Serb" + +msgid "Serbian Latin" +msgstr "Serb (Latın)" + +msgid "Swedish" +msgstr "İsveç" + +msgid "Swahili" +msgstr "Suahili" + +msgid "Tamil" +msgstr "Tamil" + +msgid "Telugu" +msgstr "Teluqu" + +msgid "Tajik" +msgstr "Tacik" + +msgid "Thai" +msgstr "Tay" + +msgid "Turkmen" +msgstr "Türkmən" + +msgid "Turkish" +msgstr "Türk" + +msgid "Tatar" +msgstr "Tatar" + +msgid "Udmurt" +msgstr "Udmurt" + +msgid "Uyghur" +msgstr "Uyğur" + +msgid "Ukrainian" +msgstr "Ukrayn" + +msgid "Urdu" +msgstr "Urdu" + +msgid "Uzbek" +msgstr "Özbək" + +msgid "Vietnamese" +msgstr "Vyetnam" + +msgid "Simplified Chinese" +msgstr "Sadələşdirilmiş Çin dili" + +msgid "Traditional Chinese" +msgstr "Ənənəvi Çin dili" + +msgid "Messages" +msgstr "Mesajlar" + +msgid "Site Maps" +msgstr "Sayt Xəritələri" + +msgid "Static Files" +msgstr "Statik Fayllar" + +msgid "Syndication" +msgstr "Sindikasiya" + +#. Translators: String used to replace omitted page numbers in elided page +#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10]. +msgid "…" +msgstr "…" + +msgid "That page number is not an integer" +msgstr "Səhifə nömrəsi rəqəm deyil" + +msgid "That page number is less than 1" +msgstr "Səhifə nömrəsi 1-dən balacadır" + +msgid "That page contains no results" +msgstr "O səhifədə nəticə yoxdur" + +msgid "Enter a valid value." +msgstr "Düzgün dəyər daxil edin." + +msgid "Enter a valid domain name." +msgstr "Düzgün domen adı daxil edin." + +msgid "Enter a valid URL." +msgstr "Düzgün URL daxil edin." + +msgid "Enter a valid integer." +msgstr "Düzgün rəqəm daxil edin." + +msgid "Enter a valid email address." +msgstr "Düzgün e-poçt ünvanı daxil edin." + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" +"Hərflərdən, rəqəmlərdən, alt-xətlərdən və ya defislərdən ibarət düzgün " +"qısaltma (“slug”) daxil edin." + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" +"Unicode hərflərdən, rəqəmlərdən, alt-xətlərdən və ya defislərdən ibarət " +"düzgün qısaltma (“slug”) daxil edin." + +#, python-format +msgid "Enter a valid %(protocol)s address." +msgstr "Düzgün %(protocol)s adres daxil edin." + +msgid "IPv4" +msgstr "IPv4" + +msgid "IPv6" +msgstr "IPv6" + +msgid "IPv4 or IPv6" +msgstr "IPv4 və ya IPv6" + +msgid "Enter only digits separated by commas." +msgstr "Vergüllə ayırmaqla yalnız rəqəmlər daxil edin." + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "" +"Əmin olun ki, bu dəyər %(limit_value)s-dir/dır (bu %(show_value)s-dir/dır)." + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "" +"Bu qiymətin %(limit_value)s-(y)a/ə bərabər və ya ondan kiçik olduğunu " +"yoxlayın." + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "" +"Bu qiymətin %(limit_value)s-(y)a/ə bərabər və ya ondan böyük olduğunu " +"yoxlayın." + +#, python-format +msgid "Ensure this value is a multiple of step size %(limit_value)s." +msgstr "" +"Bu dəyərin %(limit_value)s addım ölçüsünün mərtəbələri olduğundan əmin olun." + +#, python-format +msgid "" +"Ensure this value is a multiple of step size %(limit_value)s, starting from " +"%(offset)s, e.g. %(offset)s, %(valid_value1)s, %(valid_value2)s, and so on." +msgstr "" +"Bu dəyərin %(offset)s dəyərindən başlayaraq %(limit_value)s addım ölçüsü " +"mərtəbəsi olduğundan əmin olun. Məs: %(offset)s, %(valid_value1)s, " +"%(valid_value2)s və s." + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Bu dəyərin ən az %(limit_value)d simvol olduğuna əmin olun (%(show_value)d " +"simvol var)" +msgstr[1] "" +"Bu dəyərin ən az %(limit_value)d simvol olduğuna əmin olun (%(show_value)d " +"simvol var)" + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Bu dəyərin ən çox %(limit_value)d simvol olduğuna əmin olun (%(show_value)d " +"simvol var)" +msgstr[1] "" +"Bu dəyərin ən çox %(limit_value)d simvol olduğuna əmin olun (%(show_value)d " +"simvol var)" + +msgid "Enter a number." +msgstr "Ədəd daxil edin." + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "Toplamda %(max)s rəqəmdən çox olmadığına əmin olun." +msgstr[1] "Toplamda %(max)s rəqəmdən çox olmadığına əmin olun." + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "Onluq hissənin %(max)s rəqəmdən çox olmadığına əmin olun." +msgstr[1] "Onluq hissənin %(max)s rəqəmdən çox olmadığına əmin olun." + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "Onluq hissədən əvvəl %(max)s rəqəmdən çox olmadığına əmin olun." +msgstr[1] "Onluq hissədən əvvəl %(max)s rəqəmdən çox olmadığına əmin olun." + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" +"“%(extension)s” fayl uzantısına icazə verilmir. İcazə verilən fayl " +"uzantıları: %(allowed_extensions)s." + +msgid "Null characters are not allowed." +msgstr "Null simvollara icazə verilmir." + +msgid "and" +msgstr "və" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "%(field_labels)s ilə %(model_name)s artıq mövcuddur." + +#, python-format +msgid "Constraint “%(name)s” is violated." +msgstr "“%(name)s” məhdudiyyəti pozuldu." + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "%(value)r dəyəri doğru seçim deyil." + +msgid "This field cannot be null." +msgstr "Bu sahə boş qala bilməz." + +msgid "This field cannot be blank." +msgstr "Bu sahə ağ qala bilməz." + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "%(model_name)s bu %(field_label)s sahə ilə artıq mövcuddur." + +#. Translators: The 'lookup_type' is one of 'date', 'year' or +#. 'month'. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" +"%(field_label)s dəyəri %(date_field_label)s %(lookup_type)s üçün unikal " +"olmalıdır." + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "Sahənin tipi: %(field_type)s" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "“%(value)s” dəyəri ya True, ya da False olmalıdır." + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "“%(value)s” dəyəri True, False və ya None olmalıdır." + +msgid "Boolean (Either True or False)" +msgstr "Bul (ya Doğru, ya Yalan)" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "Sətir (%(max_length)s simvola kimi)" + +msgid "String (unlimited)" +msgstr "Sətir (limitsiz)" + +msgid "Comma-separated integers" +msgstr "Vergüllə ayrılmış tam ədədlər" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" +"“%(value)s” dəyəri səhv tarix formatındadır. Formatı YYYY-MM-DD olmalıdır." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" +"“%(value)s” dəyəri düzgün formatdadır (YYYY-MM-DD), amma bu tarix xətalıdır." + +msgid "Date (without time)" +msgstr "Tarix (saatsız)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" +"“%(value)s” dəyərinin formatı səhvdir. Formatı YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ] olmalıdır." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" +"“%(value)s” dəyərinin formatı düzgündür (YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ]) " +"amma bu tarix xətalıdır." + +msgid "Date (with time)" +msgstr "Tarix (vaxt ilə)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "“%(value)s” dəyəri onluq kəsrli (decimal) rəqəm olmalıdır." + +msgid "Decimal number" +msgstr "Rasional ədəd" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" +"“%(value)s” dəyərinin formatı səhvdir. Formatı [DD] [HH:[MM:]]ss[.uuuuuu] " +"olmalıdır." + +msgid "Duration" +msgstr "Müddət" + +msgid "Email address" +msgstr "E-poçt" + +msgid "File path" +msgstr "Faylın ünvanı" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "“%(value)s” dəyəri float olmalıdır." + +msgid "Floating point number" +msgstr "Sürüşən vergüllü ədəd" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "“%(value)s” dəyəri tam rəqəm olmalıdır." + +msgid "Integer" +msgstr "Tam ədəd" + +msgid "Big (8 byte) integer" +msgstr "Böyük (8 bayt) tam ədəd" + +msgid "Small integer" +msgstr "Kiçik tam ədəd" + +msgid "IPv4 address" +msgstr "IPv4 ünvanı" + +msgid "IP address" +msgstr "IP ünvan" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "“%(value)s” dəyəri None, True və ya False olmalıdır." + +msgid "Boolean (Either True, False or None)" +msgstr "Bul (Ya True, ya False, ya da None)" + +msgid "Positive big integer" +msgstr "Müsbət böyük rəqəm" + +msgid "Positive integer" +msgstr "Müsbət tam ədəd" + +msgid "Positive small integer" +msgstr "Müsbət tam kiçik ədəd" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "Əzmə (%(max_length)s simvola kimi)" + +msgid "Text" +msgstr "Mətn" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" +"“%(value)s” dəyərinin formatı səhvdir. Formatı HH:MM[:ss[.uuuuuu]] olmalıdır." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" +"“%(value)s” dəyəri düzgün formatdadır (HH:MM[:ss[.uuuuuu]]), amma vaxtı " +"xətalıdır." + +msgid "Time" +msgstr "Vaxt" + +msgid "URL" +msgstr "URL" + +msgid "Raw binary data" +msgstr "Düz ikili (binary) məlumat" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "“%(value)s” keçərli UUID deyil." + +msgid "Universally unique identifier" +msgstr "Universal təkrarolunmaz identifikator" + +msgid "File" +msgstr "Fayl" + +msgid "Image" +msgstr "Şəkil" + +msgid "A JSON object" +msgstr "JSON obyekti" + +msgid "Value must be valid JSON." +msgstr "Dəyər düzgün JSON olmalıdır." + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "%(field)s dəyəri %(value)r olan %(model)s mövcud deyil." + +msgid "Foreign Key (type determined by related field)" +msgstr "Xarici açar (bağlı olduğu sahəyə uyğun tipi alır)" + +msgid "One-to-one relationship" +msgstr "Birin-birə münasibət" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "%(from)s-%(to)s əlaqəsi" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "%(from)s-%(to)s əlaqələri" + +msgid "Many-to-many relationship" +msgstr "Çoxun-çoxa münasibət" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr ":?.!" + +msgid "This field is required." +msgstr "Bu sahə vacibdir." + +msgid "Enter a whole number." +msgstr "Tam ədəd daxil edin." + +msgid "Enter a valid date." +msgstr "Düzgün tarix daxil edin." + +msgid "Enter a valid time." +msgstr "Düzgün vaxt daxil edin." + +msgid "Enter a valid date/time." +msgstr "Düzgün tarix/vaxt daxil edin." + +msgid "Enter a valid duration." +msgstr "Keçərli müddət daxil edin." + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "Günlərin sayı {min_days} ilə {max_days} arasında olmalıdır." + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "Fayl göndərilməyib. Vərəqənin (\"form\") şifrələmə tipini yoxlayın." + +msgid "No file was submitted." +msgstr "Fayl göndərilməyib." + +msgid "The submitted file is empty." +msgstr "Göndərilən fayl boşdur." + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" +"Bu fayl adının ən çox %(max)d simvol olduğuna əmin olun (%(length)d var)." +msgstr[1] "" +"Bu fayl adının ən çox %(max)d simvol olduğuna əmin olun (%(length)d var)." + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "" +"Ya fayl göndərin, ya da xanaya quş qoymayın, hər ikisini də birdən etməyin." + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" +"Düzgün şəkil göndərin. Göndərdiyiniz fayl ya şəkil deyil, ya da şəkildə " +"problem var." + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "Düzgün seçim edin. %(value)s seçimlər arasında yoxdur." + +msgid "Enter a list of values." +msgstr "Qiymətlərin siyahısını daxil edin." + +msgid "Enter a complete value." +msgstr "Tam dəyər daxil edin." + +msgid "Enter a valid UUID." +msgstr "Keçərli UUID daxil et." + +msgid "Enter a valid JSON." +msgstr "Etibarlı bir JSON daxil edin." + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr ":" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "(Gizli %(name)s sahəsi) %(error)s" + +#, python-format +msgid "" +"ManagementForm data is missing or has been tampered with. Missing fields: " +"%(field_names)s. You may need to file a bug report if the issue persists." +msgstr "" +"ManagementForm datası ya əskikdir, ya da dəyişdirilib. Çatışmayan xanalar: " +"%(field_names)s. Problem davam edərsə, səhv hesabatı təqdim etməli ola " +"bilərsiniz." + +#, python-format +msgid "Please submit at most %(num)d form." +msgid_plural "Please submit at most %(num)d forms." +msgstr[0] "Zəhmət olmasa ən çox %(num)d forma təsdiqləyin." +msgstr[1] "Zəhmət olmasa ən çox %(num)d forma təsdiqləyin." + +#, python-format +msgid "Please submit at least %(num)d form." +msgid_plural "Please submit at least %(num)d forms." +msgstr[0] "Zəhmət olmasa ən az %(num)d forma təsdiqləyin." +msgstr[1] "Zəhmət olmasa ən az %(num)d forma təsdiqləyin." + +msgid "Order" +msgstr "Sırala" + +msgid "Delete" +msgstr "Sil" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "%(field)s sahəsinə görə təkrarlanan məlumatlara düzəliş edin." + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "" +"%(field)s sahəsinə görə təkrarlanan məlumatlara düzəliş edin, onların hamısı " +"fərqli olmalıdır." + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"%(field_name)s sahəsinə görə təkrarlanan məlumatlara düzəliş edin, onlar " +"%(date_field)s %(lookup)s-a görə fərqli olmalıdır." + +msgid "Please correct the duplicate values below." +msgstr "Aşağıda təkrarlanan qiymətlərə düzəliş edin." + +msgid "The inline value did not match the parent instance." +msgstr "Sətiriçi dəyər ana nüsxəyə uyğun deyil." + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "Düzgün seçim edin. Bu seçim mümkün deyil." + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "“%(pk)s” düzgün dəyər deyil." + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" +"%(datetime)s vaxtı %(current_timezone)s zaman qurşağında ifadə oluna bilmir; " +"ya qeyri-müəyyənlik, ya da mövcud olmaya bilər." + +msgid "Clear" +msgstr "Təmizlə" + +msgid "Currently" +msgstr "Hal-hazırda" + +msgid "Change" +msgstr "Dəyiş" + +msgid "Unknown" +msgstr "Məlum deyil" + +msgid "Yes" +msgstr "Hə" + +msgid "No" +msgstr "Yox" + +#. Translators: Please do not add spaces around commas. +msgid "yes,no,maybe" +msgstr "hə,yox,bəlkə" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)d bayt" +msgstr[1] "%(size)d bayt" + +#, python-format +msgid "%s KB" +msgstr "%s KB" + +#, python-format +msgid "%s MB" +msgstr "%s MB" + +#, python-format +msgid "%s GB" +msgstr "%s QB" + +#, python-format +msgid "%s TB" +msgstr "%s TB" + +#, python-format +msgid "%s PB" +msgstr "%s PB" + +msgid "p.m." +msgstr "g.s." + +msgid "a.m." +msgstr "g.ə." + +msgid "PM" +msgstr "GS" + +msgid "AM" +msgstr "GƏ" + +msgid "midnight" +msgstr "gecə yarısı" + +msgid "noon" +msgstr "günorta" + +msgid "Monday" +msgstr "Bazar ertəsi" + +msgid "Tuesday" +msgstr "Çərşənbə axşamı" + +msgid "Wednesday" +msgstr "Çərşənbə" + +msgid "Thursday" +msgstr "Cümə axşamı" + +msgid "Friday" +msgstr "Cümə" + +msgid "Saturday" +msgstr "Şənbə" + +msgid "Sunday" +msgstr "Bazar" + +msgid "Mon" +msgstr "B.e" + +msgid "Tue" +msgstr "Ç.a" + +msgid "Wed" +msgstr "Çrş" + +msgid "Thu" +msgstr "C.a" + +msgid "Fri" +msgstr "Cüm" + +msgid "Sat" +msgstr "Şnb" + +msgid "Sun" +msgstr "Bzr" + +msgid "January" +msgstr "Yanvar" + +msgid "February" +msgstr "Fevral" + +msgid "March" +msgstr "Mart" + +msgid "April" +msgstr "Aprel" + +msgid "May" +msgstr "May" + +msgid "June" +msgstr "İyun" + +msgid "July" +msgstr "İyul" + +msgid "August" +msgstr "Avqust" + +msgid "September" +msgstr "Sentyabr" + +msgid "October" +msgstr "Oktyabr" + +msgid "November" +msgstr "Noyabr" + +msgid "December" +msgstr "Dekabr" + +msgid "jan" +msgstr "ynv" + +msgid "feb" +msgstr "fvr" + +msgid "mar" +msgstr "mar" + +msgid "apr" +msgstr "apr" + +msgid "may" +msgstr "may" + +msgid "jun" +msgstr "iyn" + +msgid "jul" +msgstr "iyl" + +msgid "aug" +msgstr "avq" + +msgid "sep" +msgstr "snt" + +msgid "oct" +msgstr "okt" + +msgid "nov" +msgstr "noy" + +msgid "dec" +msgstr "dek" + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "Yan." + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "Fev." + +msgctxt "abbrev. month" +msgid "March" +msgstr "Mart" + +msgctxt "abbrev. month" +msgid "April" +msgstr "Aprel" + +msgctxt "abbrev. month" +msgid "May" +msgstr "May" + +msgctxt "abbrev. month" +msgid "June" +msgstr "İyun" + +msgctxt "abbrev. month" +msgid "July" +msgstr "İyul" + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "Avq." + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "Sen." + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "Okt." + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "Noy." + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "Dek." + +msgctxt "alt. month" +msgid "January" +msgstr "Yanvar" + +msgctxt "alt. month" +msgid "February" +msgstr "Fevral" + +msgctxt "alt. month" +msgid "March" +msgstr "Mart" + +msgctxt "alt. month" +msgid "April" +msgstr "Aprel" + +msgctxt "alt. month" +msgid "May" +msgstr "May" + +msgctxt "alt. month" +msgid "June" +msgstr "İyun" + +msgctxt "alt. month" +msgid "July" +msgstr "İyul" + +msgctxt "alt. month" +msgid "August" +msgstr "Avqust" + +msgctxt "alt. month" +msgid "September" +msgstr "Sentyabr" + +msgctxt "alt. month" +msgid "October" +msgstr "Oktyabr" + +msgctxt "alt. month" +msgid "November" +msgstr "Noyabr" + +msgctxt "alt. month" +msgid "December" +msgstr "Dekabr" + +msgid "This is not a valid IPv6 address." +msgstr "Bu doğru IPv6 ünvanı deyil." + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "%(truncated_text)s…" + +msgid "or" +msgstr "və ya" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr ", " + +#, python-format +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "%(num)d il" +msgstr[1] "%(num)d il" + +#, python-format +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "%(num)d ay" +msgstr[1] "%(num)d ay" + +#, python-format +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "%(num)d həftə" +msgstr[1] "%(num)d həftə" + +#, python-format +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "%(num)d gün" +msgstr[1] "%(num)d gün" + +#, python-format +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "%(num)d saat" +msgstr[1] "%(num)d saat" + +#, python-format +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "%(num)d dəqiqə" +msgstr[1] "%(num)d dəqiqə" + +msgid "Forbidden" +msgstr "Qadağan" + +msgid "CSRF verification failed. Request aborted." +msgstr "CSRF təsdiqləmə alınmadı. Sorğu ləğv edildi." + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" +"Bu mesajı ona görə görürsünüz ki, bu HTTPS saytı sizin səyyah tərəfindən " +"“Referer header”in göndərilməsini tələb etdiyi halda heç nə " +"göndərilməmişdir. Bu başlıq sizin veb-səyyahınızın kənar şəxlər tərəfindən " +"ələ keçirilmədiyindən əmin olmaq üçün tələb olunur." + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" +"Əgər səyyahınızın “Referer” başlığını göndərməsini söndürmüsünüzsə, lütfən " +"bu sayt üçün, HTTPS əlaqələr üçün və ya “same-origin” sorğular üçün aktiv " +"edin." + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" +"Əgər etiketini və ya " +"“Referrer-Policy: no-referrer” başlığını işlədirsinizsə, lütfən silin. CSRF " +"qoruma dəqiq yönləndirən yoxlaması üçün “Referer” başlığını tələb edir. Əgər " +"məxfilik üçün düşünürsünüzsə, üçüncü tərəf sayt keçidləri üçün kimi bir alternativ işlədin." + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" +"Bu sayt formaları göndərmək üçün CSRF çərəzini işlədir. Bu çərəz " +"səyyahınızın üçüncü biri tərəfindən hack-lənmədiyinə əmin olmaq üçün " +"istifadə edilir. " + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" +"Əgər səyyahınızda çərəzlər söndürülübsə, lütfən bu sayt və ya “same-origin” " +"sorğular üçün aktiv edin." + +msgid "More information is available with DEBUG=True." +msgstr "Daha ətraflı məlumat DEBUG=True ilə mövcuddur." + +msgid "No year specified" +msgstr "İl göstərilməyib" + +msgid "Date out of range" +msgstr "Tarix aralığın xaricindədir" + +msgid "No month specified" +msgstr "Ay göstərilməyib" + +msgid "No day specified" +msgstr "Gün göstərilməyib" + +msgid "No week specified" +msgstr "Həftə göstərilməyib" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "%(verbose_name_plural)s seçmək mümkün deyil" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" +"Gələcək %(verbose_name_plural)s seçmək mümkün deyil, çünki %(class_name)s." +"allow_future Yalan kimi qeyd olunub." + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "“%(format)s” formatına görə “%(datestr)s” tarixi düzgün deyil" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "Sorğuya uyğun %(verbose_name)s tapılmadı" + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "Səhifə həm “axırıncı” deyil, həm də tam ədədə çevrilə bilmir." + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "Yanlış səhifə (%(page_number)s): %(message)s" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "Siyahı boşdur və “%(class_name)s.allow_empty” dəyəri False-dur." + +msgid "Directory indexes are not allowed here." +msgstr "Ünvan indekslərinə icazə verilmir." + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "“%(path)s” mövcud deyil" + +#, python-format +msgid "Index of %(directory)s" +msgstr "%(directory)s-nin indeksi" + +msgid "The install worked successfully! Congratulations!" +msgstr "Quruluş uğurla tamamlandı! Təbriklər!" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" +"Django %(version)s üçün buraxılış " +"qeydlərinə baxın" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not " +"configured any URLs." +msgstr "" +"Tənzimləmə faylınızda DEBUG=True və heç bir URL qurmadığınız üçün bu səhifəni " +"görürsünüz." + +msgid "Django Documentation" +msgstr "Django Dokumentasiya" + +msgid "Topics, references, & how-to’s" +msgstr "Mövzular, istinadlar və nümunələr" + +msgid "Tutorial: A Polling App" +msgstr "Məşğələ: Səsvermə Tətbiqi" + +msgid "Get started with Django" +msgstr "Django ilə başla" + +msgid "Django Community" +msgstr "Django İcması" + +msgid "Connect, get help, or contribute" +msgstr "Qoşul, kömək al və dəstək ol" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/az/__init__.py b/venv/lib/python3.12/site-packages/django/conf/locale/az/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/az/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/az/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0e2b7da430028cc5e8363e61d39af40ac80842d4 GIT binary patch literal 198 zcmX@j%ge<81o5sX(m?cM5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!O4ZNE&rQ|OP0Yy6 zFHO;RNiEZNN=(kybEFQ_cZ$j>v@Gc?jK&MZmQEdVM^ zOiwM=Pssu+OwP|s)6dCIPRvQwPps09kI&4@EQycTE2#X%VUwGmQks)$SHudml@W-G PL5z>gjEsy$%s>_Z#-%id literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/az/__pycache__/formats.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/az/__pycache__/formats.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..31859905421b89a019d3629a26da6964a255b32b GIT binary patch literal 793 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 n, 2014-2015 +# znotdead , 2016-2017,2019-2021,2023-2024 +# Bobsans , 2016 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-05-22 11:46-0300\n" +"PO-Revision-Date: 2024-08-07 06:49+0000\n" +"Last-Translator: znotdead , " +"2016-2017,2019-2021,2023-2024\n" +"Language-Team: Belarusian (http://app.transifex.com/django/django/language/" +"be/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: be\n" +"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || " +"(n%100>=11 && n%100<=14)? 2 : 3);\n" + +msgid "Afrikaans" +msgstr "Афрыкаанс" + +msgid "Arabic" +msgstr "Арабская" + +msgid "Algerian Arabic" +msgstr "Алжырская арабская" + +msgid "Asturian" +msgstr "Астурыйская" + +msgid "Azerbaijani" +msgstr "Азэрбайджанская" + +msgid "Bulgarian" +msgstr "Баўгарская" + +msgid "Belarusian" +msgstr "Беларуская" + +msgid "Bengali" +msgstr "Бэнґальская" + +msgid "Breton" +msgstr "Брэтонская" + +msgid "Bosnian" +msgstr "Басьнійская" + +msgid "Catalan" +msgstr "Каталёнская" + +msgid "Central Kurdish (Sorani)" +msgstr "Цэнтральнакурдская (сарані)" + +msgid "Czech" +msgstr "Чэская" + +msgid "Welsh" +msgstr "Валійская" + +msgid "Danish" +msgstr "Дацкая" + +msgid "German" +msgstr "Нямецкая" + +msgid "Lower Sorbian" +msgstr "Ніжнелужыцкая" + +msgid "Greek" +msgstr "Грэцкая" + +msgid "English" +msgstr "Анґельская" + +msgid "Australian English" +msgstr "Анґельская (Аўстралія)" + +msgid "British English" +msgstr "Анґельская (Брытанская)" + +msgid "Esperanto" +msgstr "Эспэранта" + +msgid "Spanish" +msgstr "Гішпанская" + +msgid "Argentinian Spanish" +msgstr "Гішпанская (Арґентына)" + +msgid "Colombian Spanish" +msgstr "Гішпанская (Калумбія)" + +msgid "Mexican Spanish" +msgstr "Гішпанская (Мэксыка)" + +msgid "Nicaraguan Spanish" +msgstr "Гішпанская (Нікараґуа)" + +msgid "Venezuelan Spanish" +msgstr "Іспанская (Вэнэсуэла)" + +msgid "Estonian" +msgstr "Эстонская" + +msgid "Basque" +msgstr "Басконская" + +msgid "Persian" +msgstr "Фарсі" + +msgid "Finnish" +msgstr "Фінская" + +msgid "French" +msgstr "Француская" + +msgid "Frisian" +msgstr "Фрызкая" + +msgid "Irish" +msgstr "Ірляндзкая" + +msgid "Scottish Gaelic" +msgstr "Гэльская шатляндзкая" + +msgid "Galician" +msgstr "Ґальская" + +msgid "Hebrew" +msgstr "Габрэйская" + +msgid "Hindi" +msgstr "Гінды" + +msgid "Croatian" +msgstr "Харвацкая" + +msgid "Upper Sorbian" +msgstr "Верхнелужыцкая" + +msgid "Hungarian" +msgstr "Вугорская" + +msgid "Armenian" +msgstr "Армянскі" + +msgid "Interlingua" +msgstr "Інтэрлінгва" + +msgid "Indonesian" +msgstr "Інданэзійская" + +msgid "Igbo" +msgstr "Ігба" + +msgid "Ido" +msgstr "Іда" + +msgid "Icelandic" +msgstr "Ісьляндзкая" + +msgid "Italian" +msgstr "Італьянская" + +msgid "Japanese" +msgstr "Японская" + +msgid "Georgian" +msgstr "Грузінская" + +msgid "Kabyle" +msgstr "Кабільскі" + +msgid "Kazakh" +msgstr "Казаская" + +msgid "Khmer" +msgstr "Кхмерская" + +msgid "Kannada" +msgstr "Каннада" + +msgid "Korean" +msgstr "Карэйская" + +msgid "Kyrgyz" +msgstr "Кіргізская" + +msgid "Luxembourgish" +msgstr "Люксэмбургская" + +msgid "Lithuanian" +msgstr "Літоўская" + +msgid "Latvian" +msgstr "Латыская" + +msgid "Macedonian" +msgstr "Македонская" + +msgid "Malayalam" +msgstr "Малаялам" + +msgid "Mongolian" +msgstr "Манґольская" + +msgid "Marathi" +msgstr "Маратхі" + +msgid "Malay" +msgstr "Малайская" + +msgid "Burmese" +msgstr "Бірманская" + +msgid "Norwegian Bokmål" +msgstr "Нарвэская букмал" + +msgid "Nepali" +msgstr "Нэпальская" + +msgid "Dutch" +msgstr "Галяндзкая" + +msgid "Norwegian Nynorsk" +msgstr "Нарвэская нюнорск" + +msgid "Ossetic" +msgstr "Асяцінская" + +msgid "Punjabi" +msgstr "Панджабі" + +msgid "Polish" +msgstr "Польская" + +msgid "Portuguese" +msgstr "Партуґальская" + +msgid "Brazilian Portuguese" +msgstr "Партуґальская (Бразылія)" + +msgid "Romanian" +msgstr "Румынская" + +msgid "Russian" +msgstr "Расейская" + +msgid "Slovak" +msgstr "Славацкая" + +msgid "Slovenian" +msgstr "Славенская" + +msgid "Albanian" +msgstr "Альбанская" + +msgid "Serbian" +msgstr "Сэрбская" + +msgid "Serbian Latin" +msgstr "Сэрбская (лацінка)" + +msgid "Swedish" +msgstr "Швэдзкая" + +msgid "Swahili" +msgstr "Суахілі" + +msgid "Tamil" +msgstr "Тамільская" + +msgid "Telugu" +msgstr "Тэлуґу" + +msgid "Tajik" +msgstr "Таджыкскі" + +msgid "Thai" +msgstr "Тайская" + +msgid "Turkmen" +msgstr "Туркменская" + +msgid "Turkish" +msgstr "Турэцкая" + +msgid "Tatar" +msgstr "Татарская" + +msgid "Udmurt" +msgstr "Удмурцкая" + +msgid "Uyghur" +msgstr "Уйгурскі" + +msgid "Ukrainian" +msgstr "Украінская" + +msgid "Urdu" +msgstr "Урду" + +msgid "Uzbek" +msgstr "Узбецкі" + +msgid "Vietnamese" +msgstr "Віетнамская" + +msgid "Simplified Chinese" +msgstr "Кітайская (спрошчаная)" + +msgid "Traditional Chinese" +msgstr "Кітайская (звычайная)" + +msgid "Messages" +msgstr "Паведамленні" + +msgid "Site Maps" +msgstr "Мапы сайту" + +msgid "Static Files" +msgstr "Cтатычныя файлы" + +msgid "Syndication" +msgstr "Сындыкацыя" + +#. Translators: String used to replace omitted page numbers in elided page +#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10]. +msgid "…" +msgstr "..." + +msgid "That page number is not an integer" +msgstr "Лік гэтай старонкі не з'яўляецца цэлым лікам" + +msgid "That page number is less than 1" +msgstr "Лік старонкі менш чым 1" + +msgid "That page contains no results" +msgstr "Гэтая старонка не мае ніякіх вынікаў" + +msgid "Enter a valid value." +msgstr "Пазначце правільнае значэньне." + +msgid "Enter a valid domain name." +msgstr "Пазначце сапраўднае даменнае имя." + +msgid "Enter a valid URL." +msgstr "Пазначце чынную спасылку." + +msgid "Enter a valid integer." +msgstr "Увядзіце цэлы лік." + +msgid "Enter a valid email address." +msgstr "Увядзіце сапраўдны адрас электроннай пошты." + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" +"Значэнне павінна быць толькі з літараў, личбаў, знакаў падкрэслівання ці " +"злучкі." + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" +"Значэнне павінна быць толькі з літараў стандарту Unicode, личбаў, знакаў " +"падкрэслівання ці злучкі." + +#, python-format +msgid "Enter a valid %(protocol)s address." +msgstr "Пазначце сапраўдны %(protocol)s адрас." + +msgid "IPv4" +msgstr "IPv4" + +msgid "IPv6" +msgstr "IPv6" + +msgid "IPv4 or IPv6" +msgstr "IPv4 або IPv6" + +msgid "Enter only digits separated by commas." +msgstr "Набярыце лічбы, падзеленыя коскамі." + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "" +"Упэўніцеся, што гэтае значэньне — %(limit_value)s (зараз яно — " +"%(show_value)s)." + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "Значэньне мусіць быць меншым або роўным %(limit_value)s." + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "Значэньне мусіць быць большым або роўным %(limit_value)s." + +#, python-format +msgid "Ensure this value is a multiple of step size %(limit_value)s." +msgstr "Пераканайцеся, што гэта значэнне кратнае памеру кроку %(limit_value)s." + +#, python-format +msgid "" +"Ensure this value is a multiple of step size %(limit_value)s, starting from " +"%(offset)s, e.g. %(offset)s, %(valid_value1)s, %(valid_value2)s, and so on." +msgstr "" +"Пераканайцеся, што гэта значэнне кратнае памеру кроку %(limit_value)s, " +"пачынаючы з %(offset)s, напрыклад. %(offset)s, %(valid_value1)s, " +"%(valid_value2)s, і гэтак далей." + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Упэўніцеся, што гэтае значэнне мае не менш %(limit_value)d сімвал (зараз " +"%(show_value)d)." +msgstr[1] "" +"Упэўніцеся, што гэтае значэнне мае не менш %(limit_value)d сімвала (зараз " +"%(show_value)d)." +msgstr[2] "" +"Упэўніцеся, што гэтае значэнне мае не менш %(limit_value)d сімвалаў (зараз " +"%(show_value)d)." +msgstr[3] "" +"Упэўніцеся, што гэтае значэнне мае не менш %(limit_value)d сімвалаў (зараз " +"%(show_value)d)." + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Упэўніцеся, што гэтае значэнне мае не болей %(limit_value)d сімвал (зараз " +"%(show_value)d)." +msgstr[1] "" +"Упэўніцеся, што гэтае значэнне мае не болей %(limit_value)d сімвала (зараз " +"%(show_value)d)." +msgstr[2] "" +"Упэўніцеся, што гэтае значэнне мае не болей %(limit_value)d сімвалаў (зараз " +"%(show_value)d)." +msgstr[3] "" +"Упэўніцеся, што гэтае значэнне мае не болей %(limit_value)d сімвалаў (зараз " +"%(show_value)d)." + +msgid "Enter a number." +msgstr "Набярыце лік." + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "Упэўніцеся, што набралі ня болей за %(max)s лічбу." +msgstr[1] "Упэўніцеся, што набралі ня болей за %(max)s лічбы." +msgstr[2] "Упэўніцеся, што набралі ня болей за %(max)s лічбаў." +msgstr[3] "Упэўніцеся, што набралі ня болей за %(max)s лічбаў." + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "Упэўніцеся, што набралі ня болей за %(max)s лічбу пасьля коскі." +msgstr[1] "Упэўніцеся, што набралі ня болей за %(max)s лічбы пасьля коскі." +msgstr[2] "Упэўніцеся, што набралі ня болей за %(max)s лічбаў пасьля коскі." +msgstr[3] "Упэўніцеся, што набралі ня болей за %(max)s лічбаў пасьля коскі." + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "Упэўніцеся, што набралі ня болей за %(max)s лічбу да коскі." +msgstr[1] "Упэўніцеся, што набралі ня болей за %(max)s лічбы да коскі." +msgstr[2] "Упэўніцеся, што набралі ня болей за %(max)s лічбаў да коскі." +msgstr[3] "Упэўніцеся, што набралі ня болей за %(max)s лічбаў да коскі." + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" +"Пашырэнне файла “%(extension)s” не дапускаецца. Дапушчальныя пашырэння: " +"%(allowed_extensions)s." + +msgid "Null characters are not allowed." +msgstr "Null сімвалы не дапускаюцца." + +msgid "and" +msgstr "і" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "%(model_name)s з такім %(field_labels)s ужо існуе." + +#, python-format +msgid "Constraint “%(name)s” is violated." +msgstr "Абмежаванне \"%(name)s\" парушана." + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "Значэнне %(value)r не з'яўляецца правільным выбарам." + +msgid "This field cannot be null." +msgstr "Поле ня можа мець значэньне «null»." + +msgid "This field cannot be blank." +msgstr "Трэба запоўніць поле." + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "%(model_name)s з такім %(field_label)s ужо існуе." + +#. Translators: The 'lookup_type' is one of 'date', 'year' or +#. 'month'. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" +"%(field_label)s павінна быць унікальна для %(date_field_label)s " +"%(lookup_type)s." + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "Палі віду: %(field_type)s" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "Значэньне “%(value)s” павінна быць True альбо False." + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "Значэньне “%(value)s” павінна быць True, False альбо None." + +msgid "Boolean (Either True or False)" +msgstr "Ляґічнае («сапраўдна» або «не сапраўдна»)" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "Радок (ня болей за %(max_length)s)" + +msgid "String (unlimited)" +msgstr "Радок (неабмежаваны)" + +msgid "Comma-separated integers" +msgstr "Цэлыя лікі, падзеленыя коскаю" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" +"Значэнне “%(value)s” мае няправільны фармат. Яно павінна быць у фармаце ГГГГ-" +"ММ-ДД." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" +"Значэнне “%(value)s” мае правільны фармат(ГГГГ-ММ-ДД) але гэта несапраўдная " +"дата." + +msgid "Date (without time)" +msgstr "Дата (бяз часу)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" +"Значэнне “%(value)s” мае няправільны фармат. Яно павінна быць у фармаце ГГГГ-" +"ММ-ДД ГГ:ХХ[:сс[.мммммм]][ЧА], дзе ЧА — часавы абсяг." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" +"Значэнне “%(value)s” мае правільны фармат (ГГГГ-ММ-ДД ГГ:ХХ[:сс[.мммммм]]" +"[ЧА], дзе ЧА — часавы абсяг) але гэта несапраўдныя дата/час." + +msgid "Date (with time)" +msgstr "Дата (разам з часам)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "Значэньне “%(value)s” павінна быць дзесятковым лікам." + +msgid "Decimal number" +msgstr "Дзесятковы лік" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" +"Значэньне “%(value)s” мае няправільны фармат. Яно павінна быць у фармаце " +"[ДД] [ГГ:[ХХ:]]сс[.мммммм]." + +msgid "Duration" +msgstr "Працягласць" + +msgid "Email address" +msgstr "Адрас эл. пошты" + +msgid "File path" +msgstr "Шлях да файла" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "Значэньне “%(value)s” павінна быць дробным лікам." + +msgid "Floating point number" +msgstr "Лік зь пераноснай коскаю" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "Значэньне “%(value)s” павінна быць цэлым лікам." + +msgid "Integer" +msgstr "Цэлы лік" + +msgid "Big (8 byte) integer" +msgstr "Вялікі (8 байтаў) цэлы" + +msgid "Small integer" +msgstr "Малы цэлы лік" + +msgid "IPv4 address" +msgstr "Адрас IPv4" + +msgid "IP address" +msgstr "Адрас IP" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "Значэньне “%(value)s” павінна быць None, True альбо False." + +msgid "Boolean (Either True, False or None)" +msgstr "Ляґічнае («сапраўдна», «не сапраўдна» ці «нічога»)" + +msgid "Positive big integer" +msgstr "Дадатны вялікі цэлы лік" + +msgid "Positive integer" +msgstr "Дадатны цэлы лік" + +msgid "Positive small integer" +msgstr "Дадатны малы цэлы лік" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "Бірка (ня болей за %(max_length)s)" + +msgid "Text" +msgstr "Тэкст" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" +"Значэньне “%(value)s” мае няправільны фармат. Яно павінна быць у фармаце ГГ:" +"ХХ[:сс[.мммммм]]." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" +"Значэнне “%(value)s” мае правільны фармат (ГГ:ХХ[:сс[.мммммм]]) але гэта " +"несапраўдны час." + +msgid "Time" +msgstr "Час" + +msgid "URL" +msgstr "Сеціўная спасылка" + +msgid "Raw binary data" +msgstr "Неапрацаваныя бінарныя зьвесткі" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "“%(value)s” не з'яўляецца дапушчальным UUID." + +msgid "Universally unique identifier" +msgstr "Універсальны непаўторны ідэнтыфікатар" + +msgid "File" +msgstr "Файл" + +msgid "Image" +msgstr "Выява" + +msgid "A JSON object" +msgstr "Аб'ект JSON" + +msgid "Value must be valid JSON." +msgstr "Значэньне павінна быць сапраўдным JSON." + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "Экземпляр %(model)s з %(field)s %(value)r не iснуе." + +msgid "Foreign Key (type determined by related field)" +msgstr "Вонкавы ключ (від вызначаецца паводле зьвязанага поля)" + +msgid "One-to-one relationship" +msgstr "Сувязь «адзін да аднаго»" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "Сувязь %(from)s-%(to)s" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "Сувязi %(from)s-%(to)s" + +msgid "Many-to-many relationship" +msgstr "Сувязь «некалькі да некалькіх»" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr ":?.!" + +msgid "This field is required." +msgstr "Поле трэба запоўніць." + +msgid "Enter a whole number." +msgstr "Набярыце ўвесь лік." + +msgid "Enter a valid date." +msgstr "Пазначце чынную дату." + +msgid "Enter a valid time." +msgstr "Пазначце чынны час." + +msgid "Enter a valid date/time." +msgstr "Пазначце чынныя час і дату." + +msgid "Enter a valid duration." +msgstr "Увядзіце сапраўдны тэрмін." + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "Колькасць дзён павінна быць паміж {min_days} i {max_days}." + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "Файл не даслалі. Зірніце кадоўку блянку." + +msgid "No file was submitted." +msgstr "Файл не даслалі." + +msgid "The submitted file is empty." +msgstr "Дасланы файл — парожні." + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" +"Упэўніцеся, што гэтае імя файлу мае не болей %(max)d сімвал (зараз " +"%(length)d)." +msgstr[1] "" +"Упэўніцеся, што гэтае імя файлу мае не болей %(max)d сімвала (зараз " +"%(length)d)." +msgstr[2] "" +"Упэўніцеся, што гэтае імя файлу мае не болей %(max)d сімвалаў (зараз " +"%(length)d)." +msgstr[3] "" +"Упэўніцеся, што гэтае імя файлу мае не болей %(max)d сімвалаў (зараз " +"%(length)d)." + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "" +"Трэба або даслаць файл, або абраць «Ачысьціць», але нельга рабіць гэта " +"адначасова." + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" +"Запампаваць чынны малюнак. Запампавалі або не выяву, або пашкоджаную выяву." + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "Абярыце дазволенае. %(value)s няма ў даступных значэньнях." + +msgid "Enter a list of values." +msgstr "Упішыце сьпіс значэньняў." + +msgid "Enter a complete value." +msgstr "Калі ласка, увядзіце поўнае значэньне." + +msgid "Enter a valid UUID." +msgstr "Увядзіце сапраўдны UUID." + +msgid "Enter a valid JSON." +msgstr "Пазначце сапраўдны JSON." + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr ":" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "(Схаванае поле %(name)s) %(error)s" + +#, python-format +msgid "" +"ManagementForm data is missing or has been tampered with. Missing fields: " +"%(field_names)s. You may need to file a bug report if the issue persists." +msgstr "" +"Дадзеныя формы ManagementForm адсутнічаюць ці былі падменены. Адсутнічаюць " +"палі: %(field_names)s. Магчыма, вам спатрэбіцца падаць справаздачу пра " +"памылку, калі праблема захоўваецца." + +#, python-format +msgid "Please submit at most %(num)d form." +msgid_plural "Please submit at most %(num)d forms." +msgstr[0] "Калі ласка, адпраўце не болей чым %(num)d формаў." +msgstr[1] "Калі ласка, адпраўце не болей чым %(num)d формаў." +msgstr[2] "Калі ласка, адпраўце не болей чым %(num)d формаў." +msgstr[3] "Калі ласка, адпраўце не болей чым %(num)d формаў." + +#, python-format +msgid "Please submit at least %(num)d form." +msgid_plural "Please submit at least %(num)d forms." +msgstr[0] "Калі ласка, адпраўце не менш чым %(num)d формаў." +msgstr[1] "Калі ласка, адпраўце не менш чым %(num)d формаў." +msgstr[2] "Калі ласка, адпраўце не менш чым %(num)d формаў." +msgstr[3] "Калі ласка, адпраўце не менш чым %(num)d формаў." + +msgid "Order" +msgstr "Парадак" + +msgid "Delete" +msgstr "Выдаліць" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "У полі «%(field)s» выпраўце зьвесткі, якія паўтараюцца." + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "Выпраўце зьвесткі ў полі «%(field)s»: нельга, каб яны паўтараліся." + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"Выпраўце зьвесткі ў полі «%(field_name)s»: нельга каб зьвесткі ў " +"«%(date_field)s» для «%(lookup)s» паўтараліся." + +msgid "Please correct the duplicate values below." +msgstr "Выпраўце зьвесткі, якія паўтараюцца (гл. ніжэй)." + +msgid "The inline value did not match the parent instance." +msgstr "Убудаванае значэнне не супадае з бацькоўскім значэннем." + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "Абярыце дазволенае. Абранага няма ў даступных значэньнях." + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "“%(pk)s” не сапраўднае значэнне." + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" +"У часавым абсягу %(current_timezone)s нельга зразумець дату %(datetime)s: " +"яна можа быць неадназначнаю або яе можа не існаваць." + +msgid "Clear" +msgstr "Ачысьціць" + +msgid "Currently" +msgstr "Зараз" + +msgid "Change" +msgstr "Зьмяніць" + +msgid "Unknown" +msgstr "Невядома" + +msgid "Yes" +msgstr "Так" + +msgid "No" +msgstr "Не" + +#. Translators: Please do not add spaces around commas. +msgid "yes,no,maybe" +msgstr "так,не,магчыма" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)d байт" +msgstr[1] "%(size)d байты" +msgstr[2] "%(size)d байтаў" +msgstr[3] "%(size)d байтаў" + +#, python-format +msgid "%s KB" +msgstr "%s КБ" + +#, python-format +msgid "%s MB" +msgstr "%s МБ" + +#, python-format +msgid "%s GB" +msgstr "%s ҐБ" + +#, python-format +msgid "%s TB" +msgstr "%s ТБ" + +#, python-format +msgid "%s PB" +msgstr "%s ПБ" + +msgid "p.m." +msgstr "папаўдні" + +msgid "a.m." +msgstr "папоўначы" + +msgid "PM" +msgstr "папаўдні" + +msgid "AM" +msgstr "папоўначы" + +msgid "midnight" +msgstr "поўнач" + +msgid "noon" +msgstr "поўдзень" + +msgid "Monday" +msgstr "Панядзелак" + +msgid "Tuesday" +msgstr "Аўторак" + +msgid "Wednesday" +msgstr "Серада" + +msgid "Thursday" +msgstr "Чацьвер" + +msgid "Friday" +msgstr "Пятніца" + +msgid "Saturday" +msgstr "Субота" + +msgid "Sunday" +msgstr "Нядзеля" + +msgid "Mon" +msgstr "Пн" + +msgid "Tue" +msgstr "Аў" + +msgid "Wed" +msgstr "Ср" + +msgid "Thu" +msgstr "Чц" + +msgid "Fri" +msgstr "Пт" + +msgid "Sat" +msgstr "Сб" + +msgid "Sun" +msgstr "Нд" + +msgid "January" +msgstr "студзеня" + +msgid "February" +msgstr "лютага" + +msgid "March" +msgstr "сакавік" + +msgid "April" +msgstr "красавіка" + +msgid "May" +msgstr "траўня" + +msgid "June" +msgstr "чэрвеня" + +msgid "July" +msgstr "ліпеня" + +msgid "August" +msgstr "жніўня" + +msgid "September" +msgstr "верасьня" + +msgid "October" +msgstr "кастрычніка" + +msgid "November" +msgstr "лістапада" + +msgid "December" +msgstr "сьнежня" + +msgid "jan" +msgstr "сту" + +msgid "feb" +msgstr "лют" + +msgid "mar" +msgstr "сак" + +msgid "apr" +msgstr "кра" + +msgid "may" +msgstr "тра" + +msgid "jun" +msgstr "чэр" + +msgid "jul" +msgstr "ліп" + +msgid "aug" +msgstr "жні" + +msgid "sep" +msgstr "вер" + +msgid "oct" +msgstr "кас" + +msgid "nov" +msgstr "ліс" + +msgid "dec" +msgstr "сьн" + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "Сту." + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "Люты" + +msgctxt "abbrev. month" +msgid "March" +msgstr "сакавік" + +msgctxt "abbrev. month" +msgid "April" +msgstr "красавіка" + +msgctxt "abbrev. month" +msgid "May" +msgstr "траўня" + +msgctxt "abbrev. month" +msgid "June" +msgstr "чэрвеня" + +msgctxt "abbrev. month" +msgid "July" +msgstr "ліпеня" + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "Жні." + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "Вер." + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "Кас." + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "Ліс." + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "Сьн." + +msgctxt "alt. month" +msgid "January" +msgstr "студзеня" + +msgctxt "alt. month" +msgid "February" +msgstr "лютага" + +msgctxt "alt. month" +msgid "March" +msgstr "сакавік" + +msgctxt "alt. month" +msgid "April" +msgstr "красавіка" + +msgctxt "alt. month" +msgid "May" +msgstr "траўня" + +msgctxt "alt. month" +msgid "June" +msgstr "чэрвеня" + +msgctxt "alt. month" +msgid "July" +msgstr "ліпеня" + +msgctxt "alt. month" +msgid "August" +msgstr "жніўня" + +msgctxt "alt. month" +msgid "September" +msgstr "верасьня" + +msgctxt "alt. month" +msgid "October" +msgstr "кастрычніка" + +msgctxt "alt. month" +msgid "November" +msgstr "лістапада" + +msgctxt "alt. month" +msgid "December" +msgstr "сьнежня" + +msgid "This is not a valid IPv6 address." +msgstr "Гэта ня правільны адрас IPv6." + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "%(truncated_text)s…" + +msgid "or" +msgstr "або" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr ", " + +#, python-format +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "%(num)d год" +msgstr[1] "%(num)d гадоў" +msgstr[2] "%(num)d гадоў" +msgstr[3] "%(num)d гадоў" + +#, python-format +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "%(num)d месяц" +msgstr[1] "%(num)d месяцаў" +msgstr[2] "%(num)d месяцаў" +msgstr[3] "%(num)d месяцаў" + +#, python-format +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "%(num)d тыдзень" +msgstr[1] "%(num)d тыдняў" +msgstr[2] "%(num)d тыдняў" +msgstr[3] "%(num)d тыдняў" + +#, python-format +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "%(num)d дзень" +msgstr[1] "%(num)d дзён" +msgstr[2] "%(num)d дзён" +msgstr[3] "%(num)d дзён" + +#, python-format +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "%(num)d гадзіна" +msgstr[1] "%(num)d гадзін" +msgstr[2] "%(num)d гадзін" +msgstr[3] "%(num)d гадзін" + +#, python-format +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "%(num)d хвіліна" +msgstr[1] "%(num)d хвілін" +msgstr[2] "%(num)d хвілін" +msgstr[3] "%(num)d хвілін" + +msgid "Forbidden" +msgstr "Забаронена" + +msgid "CSRF verification failed. Request aborted." +msgstr "CSRF-праверка не атрымалася. Запыт спынены." + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" +"Вы бачыце гэта паведамленне, таму што гэты HTTPS-сайт патрабуе каб Referer " +"загаловак быў адасланы вашым аглядальнікам, але гэтага не адбылося. Гэты " +"загаловак неабходны для бяспекі, каб пераканацца, што ваш аглядальнік не " +"ўзаламаны трэцімі асобамі." + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" +"Калі вы сканфігуравалі ваш браўзэр так, каб ён не працаваў з “Referer” " +"загалоўкамі, калі ласка дазвольце іх хаця б для гэтага сайту, ці для HTTPS " +"злучэнняў, ці для 'same-origin' запытаў." + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" +"Калі вы выкарыстоўваеце тэг " +"ці дадалі загаловак “Referrer-Policy: no-referrer”, калі ласка выдаліце іх. " +"CSRF абароне неабходны “Referer” загаловак для строгай праверкі. Калі Вы " +"турбуецеся аб прыватнасці, выкарыстоўвайце альтэрнатывы, напрыклад , для спасылкі на сайты трэціх асоб." + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" +"Вы бачыце гэта паведамленне, таму што гэты сайт патрабуе CSRF кукі для " +"адсылкі формы. Гэтыя кукі неабходныя для бяспекі, каб пераканацца, што ваш " +"браўзэр не ўзламаны трэцімі асобамі." + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" +"Калі вы сканфігуравалі ваш браўзэр так, каб ён не працаваў з кукамі, калі " +"ласка дазвольце іх хаця б для гэтага сайту ці для “same-origin” запытаў." + +msgid "More information is available with DEBUG=True." +msgstr "Больш падрабязная інфармацыя даступная з DEBUG=True." + +msgid "No year specified" +msgstr "Не пазначылі год" + +msgid "Date out of range" +msgstr "Дата выходзіць за межы дыяпазону" + +msgid "No month specified" +msgstr "Не пазначылі месяц" + +msgid "No day specified" +msgstr "Не пазначылі дзень" + +msgid "No week specified" +msgstr "Не пазначылі тыдзень" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "Няма доступу да %(verbose_name_plural)s" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" +"Няма доступу да %(verbose_name_plural)s, якія будуць, бо «%(class_name)s." +"allow_future» мае значэньне «не сапраўдна»." + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "Радок даты “%(datestr)s” не адпавядае выгляду “%(format)s”" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "Па запыце не знайшлі ніводнага %(verbose_name)s" + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "" +"Нумар бачыны ня мае значэньня “last” і яго нельга ператварыць у цэлы лік." + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "Няправільная старонка (%(page_number)s): %(message)s" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "" +"Сьпіс парожні, але “%(class_name)s.allow_empty” мае значэньне «не " +"сапраўдна», што забараняе паказваць парожнія сьпісы." + +msgid "Directory indexes are not allowed here." +msgstr "Не дазваляецца глядзець сьпіс файлаў каталёґа." + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "“%(path)s” не існуе" + +#, python-format +msgid "Index of %(directory)s" +msgstr "Файлы каталёґа «%(directory)s»" + +msgid "The install worked successfully! Congratulations!" +msgstr "Усталяванне прайшло паспяхова! Віншаванні!" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" +"Паглядзець заўвагі да выпуску для Джангі " +"%(version)s" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not " +"configured any URLs." +msgstr "" +"Вы бачыце гэту старонку таму што DEBUG=True у вашым файле налад і вы не " +"сканфігурыравалі ніякіх URL." + +msgid "Django Documentation" +msgstr "Дакументацыя Джангі" + +msgid "Topics, references, & how-to’s" +msgstr "Тэмы, спасылкі, & як зрабіць" + +msgid "Tutorial: A Polling App" +msgstr "Падручнік: Дадатак для галасавання" + +msgid "Get started with Django" +msgstr "Пачніце з Джангаю" + +msgid "Django Community" +msgstr "Джанга супольнасць" + +msgid "Connect, get help, or contribute" +msgstr "Злучайцеся, атрымлівайце дапамогу, ці спрыяйце" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/bg/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/conf/locale/bg/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..f6bd12b04d17d7f6b113067b59921d13858bdc3d GIT binary patch literal 34729 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, 2022-2024 +# Boris Chervenkov , 2012 +# Claude Paroz , 2020 +# Jannis Leidel , 2011 +# Lyuboslav Petrov , 2014 +# Mariusz Felisiak , 2023 +# Todor Lubenov , 2013-2015 +# Venelin Stoykov , 2015-2017 +# vestimir , 2014 +# Alexander Atanasov , 2012 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-05-22 11:46-0300\n" +"PO-Revision-Date: 2024-08-07 06:49+0000\n" +"Last-Translator: arneatec , 2022-2024\n" +"Language-Team: Bulgarian (http://app.transifex.com/django/django/language/" +"bg/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: bg\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Afrikaans" +msgstr "африкаански" + +msgid "Arabic" +msgstr "арабски език" + +msgid "Algerian Arabic" +msgstr "алжирски арабски" + +msgid "Asturian" +msgstr "Астурийски" + +msgid "Azerbaijani" +msgstr "Азербайджански език" + +msgid "Bulgarian" +msgstr "български език" + +msgid "Belarusian" +msgstr "Беларуски" + +msgid "Bengali" +msgstr "бенгалски език" + +msgid "Breton" +msgstr "Бретон" + +msgid "Bosnian" +msgstr "босненски език" + +msgid "Catalan" +msgstr "каталански" + +msgid "Central Kurdish (Sorani)" +msgstr "Кюрдски, централен (Сорани)" + +msgid "Czech" +msgstr "чешки" + +msgid "Welsh" +msgstr "уелски" + +msgid "Danish" +msgstr "датски" + +msgid "German" +msgstr "немски" + +msgid "Lower Sorbian" +msgstr "долносорбски" + +msgid "Greek" +msgstr "гръцки" + +msgid "English" +msgstr "английски" + +msgid "Australian English" +msgstr "австралийски английски" + +msgid "British English" +msgstr "британски английски" + +msgid "Esperanto" +msgstr "есперанто" + +msgid "Spanish" +msgstr "испански" + +msgid "Argentinian Spanish" +msgstr "кастилски" + +msgid "Colombian Spanish" +msgstr "колумбийски испански" + +msgid "Mexican Spanish" +msgstr "мексикански испански" + +msgid "Nicaraguan Spanish" +msgstr "никарагуански испански" + +msgid "Venezuelan Spanish" +msgstr "венецуелски испански" + +msgid "Estonian" +msgstr "естонски" + +msgid "Basque" +msgstr "баски" + +msgid "Persian" +msgstr "персийски" + +msgid "Finnish" +msgstr "финландски" + +msgid "French" +msgstr "френски" + +msgid "Frisian" +msgstr "фризийски" + +msgid "Irish" +msgstr "ирландски" + +msgid "Scottish Gaelic" +msgstr "шотландски галски" + +msgid "Galician" +msgstr "галицейски" + +msgid "Hebrew" +msgstr "иврит" + +msgid "Hindi" +msgstr "хинди" + +msgid "Croatian" +msgstr "хърватски" + +msgid "Upper Sorbian" +msgstr "горносорбски" + +msgid "Hungarian" +msgstr "унгарски" + +msgid "Armenian" +msgstr "арменски" + +msgid "Interlingua" +msgstr "интерлингва" + +msgid "Indonesian" +msgstr "индонезийски" + +msgid "Igbo" +msgstr "игбо" + +msgid "Ido" +msgstr "идо" + +msgid "Icelandic" +msgstr "исландски" + +msgid "Italian" +msgstr "италиански" + +msgid "Japanese" +msgstr "японски" + +msgid "Georgian" +msgstr "грузински" + +msgid "Kabyle" +msgstr "кабилски" + +msgid "Kazakh" +msgstr "казахски" + +msgid "Khmer" +msgstr "кхмерски" + +msgid "Kannada" +msgstr "каннада" + +msgid "Korean" +msgstr "корейски" + +msgid "Kyrgyz" +msgstr "киргизки" + +msgid "Luxembourgish" +msgstr "люксембургски" + +msgid "Lithuanian" +msgstr "литовски" + +msgid "Latvian" +msgstr "латвийски" + +msgid "Macedonian" +msgstr "македонски" + +msgid "Malayalam" +msgstr "малаялам" + +msgid "Mongolian" +msgstr "монголски" + +msgid "Marathi" +msgstr "марати" + +msgid "Malay" +msgstr "малайски" + +msgid "Burmese" +msgstr "бирмански" + +msgid "Norwegian Bokmål" +msgstr "норвежки букмол" + +msgid "Nepali" +msgstr "непалски" + +msgid "Dutch" +msgstr "нидерландски" + +msgid "Norwegian Nynorsk" +msgstr "съвременен норвежки" + +msgid "Ossetic" +msgstr "осетски" + +msgid "Punjabi" +msgstr "панджабски" + +msgid "Polish" +msgstr "полски" + +msgid "Portuguese" +msgstr "португалски" + +msgid "Brazilian Portuguese" +msgstr "бразилски португалски" + +msgid "Romanian" +msgstr "румънски" + +msgid "Russian" +msgstr "руски" + +msgid "Slovak" +msgstr "словашки" + +msgid "Slovenian" +msgstr "словенски" + +msgid "Albanian" +msgstr "албански" + +msgid "Serbian" +msgstr "сръбски" + +msgid "Serbian Latin" +msgstr "сръбски - латиница" + +msgid "Swedish" +msgstr "шведски" + +msgid "Swahili" +msgstr "суахили" + +msgid "Tamil" +msgstr "тамилски" + +msgid "Telugu" +msgstr "телугу" + +msgid "Tajik" +msgstr "таджикски" + +msgid "Thai" +msgstr "тайландски" + +msgid "Turkmen" +msgstr "туркменски" + +msgid "Turkish" +msgstr "турски" + +msgid "Tatar" +msgstr "татарски" + +msgid "Udmurt" +msgstr "удмурт" + +msgid "Uyghur" +msgstr "Уйгурски" + +msgid "Ukrainian" +msgstr "украински" + +msgid "Urdu" +msgstr "урду" + +msgid "Uzbek" +msgstr "узбекски" + +msgid "Vietnamese" +msgstr "виетнамски" + +msgid "Simplified Chinese" +msgstr "китайски" + +msgid "Traditional Chinese" +msgstr "традиционен китайски" + +msgid "Messages" +msgstr "Съобщения" + +msgid "Site Maps" +msgstr "Карти на сайта" + +msgid "Static Files" +msgstr "Статични файлове" + +msgid "Syndication" +msgstr "Синдикация" + +#. Translators: String used to replace omitted page numbers in elided page +#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10]. +msgid "…" +msgstr "..." + +msgid "That page number is not an integer" +msgstr "Номерът на страницата не е цяло число" + +msgid "That page number is less than 1" +msgstr "Номерът на страницата е по-малък от 1" + +msgid "That page contains no results" +msgstr "В тази страница няма резултати" + +msgid "Enter a valid value." +msgstr "Въведете валидна стойност. " + +msgid "Enter a valid domain name." +msgstr "Въведете валидно име на домейн." + +msgid "Enter a valid URL." +msgstr "Въведете валиден URL адрес." + +msgid "Enter a valid integer." +msgstr "Въведете валидно целочислено число." + +msgid "Enter a valid email address." +msgstr "Въведете валиден имейл адрес." + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" +"Въведете валиден 'слъг', състоящ се от букви, цифри, тирета или долни тирета." + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" +"Въведете валиден 'слъг', състоящ се от Уникод букви, цифри, тирета или долни " +"тирета." + +#, python-format +msgid "Enter a valid %(protocol)s address." +msgstr "Въведете валиден %(protocol)s адрес." + +msgid "IPv4" +msgstr "IPv4" + +msgid "IPv6" +msgstr "IPv6" + +msgid "IPv4 or IPv6" +msgstr "IPv4 или IPv6" + +msgid "Enter only digits separated by commas." +msgstr "Въведете само еднозначни числа, разделени със запетая. " + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "Уверете се, че тази стойност е %(limit_value)s (тя е %(show_value)s)." + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "Уверете се, че тази стойност е по-малка или равна на %(limit_value)s ." + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "" +"Уверете се, че тази стойност е по-голяма или равна на %(limit_value)s ." + +#, python-format +msgid "Ensure this value is a multiple of step size %(limit_value)s." +msgstr "Уверете се, че стойността е кратна на стъпката %(limit_value)s." + +#, python-format +msgid "" +"Ensure this value is a multiple of step size %(limit_value)s, starting from " +"%(offset)s, e.g. %(offset)s, %(valid_value1)s, %(valid_value2)s, and so on." +msgstr "" +"Въведете стойност, кратна на стъпката %(limit_value)s, започвайки от " +"%(offset)s, например %(offset)s, %(valid_value1)s, %(valid_value2)s, и т.н." + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Уверете се, че тази стойност е най-малко %(limit_value)d знака (тя има " +"%(show_value)d )." +msgstr[1] "" +"Уверете се, че тази стойност е най-малко %(limit_value)d знака (тя има " +"%(show_value)d)." + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Уверете се, тази стойност има най-много %(limit_value)d знака (тя има " +"%(show_value)d)." +msgstr[1] "" +"Уверете се, че тази стойност има най-много %(limit_value)d знака (тя има " +"%(show_value)d)." + +msgid "Enter a number." +msgstr "Въведете число." + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "Уверете се, че има не повече от %(max)s цифри общо." +msgstr[1] "Уверете се, че има не повече от %(max)s цифри общо." + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "" +"Уверете се, че има не повече от%(max)s знак след десетичната запетая." +msgstr[1] "" +"Уверете се, че има не повече от %(max)s знака след десетичната запетая." + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "" +"Уверете се, че има не повече от %(max)s цифра преди десетичната запетая." +msgstr[1] "" +"Уверете се, че има не повече от %(max)s цифри преди десетичната запетая." + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" +"Не са разрешени файлове с раширение \"%(extension)s\". Позволените " +"разширения са: %(allowed_extensions)s." + +msgid "Null characters are not allowed." +msgstr "Празни знаци не са разрешени." + +msgid "and" +msgstr "и" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "%(model_name)s с този %(field_labels)s вече съществува." + +#, python-format +msgid "Constraint “%(name)s” is violated." +msgstr "Ограничението “%(name)s” е нарушено." + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "Стойността %(value)r не е валиден избор." + +msgid "This field cannot be null." +msgstr "Това поле не може да има празна стойност." + +msgid "This field cannot be blank." +msgstr "Това поле не може да е празно." + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "%(model_name)s с този %(field_label)s вече съществува." + +#. Translators: The 'lookup_type' is one of 'date', 'year' or +#. 'month'. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" +"%(field_label)s трябва да е уникално за %(date_field_label)s %(lookup_type)s." + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "Поле от тип: %(field_type)s" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "Стойността на \"%(value)s\" трябва да бъде или True, или False." + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "Стойност \"%(value)s\" трябва да бъде или True, или False или None." + +msgid "Boolean (Either True or False)" +msgstr "Булево (True или False)" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "Символен низ (до %(max_length)s символа)" + +msgid "String (unlimited)" +msgstr "Стринг (неограничен)" + +msgid "Comma-separated integers" +msgstr "Цели числа, разделени с запетая" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" +"Стойността \"%(value)s\" е с невалиден формат за дата. Тя трябва да бъде в " +"ГГГГ-ММ-ДД формат." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" +"Стойността \"%(value)s\" е в правилния формат (ГГГГ-ММ-ДД), но самата дата е " +"невалидна." + +msgid "Date (without time)" +msgstr "Дата (без час)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" +"Стойността '%(value)s' е с невалиден формат. Трябва да бъде във формат ГГГГ-" +"ММ-ДД ЧЧ:ММ[:сс[.uuuuuu]][TZ]" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" +"Стойността '%(value)s' е с правилен формат ( ГГГГ-ММ-ДД ЧЧ:ММ[:сс[.μμμμμμ]]" +"[TZ]), но датата/часът са невалидни" + +msgid "Date (with time)" +msgstr "Дата (и час)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "Стойността \"%(value)s\" трябва да е десетично число." + +msgid "Decimal number" +msgstr "Десетична дроб" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" +"Стойността “%(value)s” е с невалиден формат. Трябва да бъде във формат [ДД] " +"[[ЧЧ:]ММ:]сс[.uuuuuu] format." + +msgid "Duration" +msgstr "Продължителност" + +msgid "Email address" +msgstr "Имейл адрес" + +msgid "File path" +msgstr "Път към файл" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "Стойността '%(value)s' трябва да е число с плаваща запетая." + +msgid "Floating point number" +msgstr "Число с плаваща запетая" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "Стойността \"%(value)s\" трябва да е цяло число." + +msgid "Integer" +msgstr "Цяло число" + +msgid "Big (8 byte) integer" +msgstr "Голямо (8 байта) цяло число" + +msgid "Small integer" +msgstr "2 байта цяло число" + +msgid "IPv4 address" +msgstr "IPv4 адрес" + +msgid "IP address" +msgstr "IP адрес" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "Стойността '%(value)s' трябва да бъде None, True или False." + +msgid "Boolean (Either True, False or None)" +msgstr "булев (възможните стойности са True, False или None)" + +msgid "Positive big integer" +msgstr "Положително голямо цяло число." + +msgid "Positive integer" +msgstr "Положително цяло число" + +msgid "Positive small integer" +msgstr "Положително 2 байта цяло число" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "Слъг (до %(max_length)s )" + +msgid "Text" +msgstr "Текст" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" +"Стойността \"%(value)s\" е с невалиден формат. Тя трябва да бъде в ЧЧ:ММ [:" +"сс[.μμμμμμ]]" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" +"Стойността \"%(value)s\" е в правилния формат (ЧЧ:ММ [:сс[.μμμμμμ]]), но " +"часът е невалиден." + +msgid "Time" +msgstr "Време" + +msgid "URL" +msgstr "URL адрес" + +msgid "Raw binary data" +msgstr "сурови двоични данни" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "\"%(value)s\" не е валиден UUID." + +msgid "Universally unique identifier" +msgstr "Универсално уникален идентификатор" + +msgid "File" +msgstr "Файл" + +msgid "Image" +msgstr "Изображение" + +msgid "A JSON object" +msgstr "Обект във формат JSON" + +msgid "Value must be valid JSON." +msgstr "Стойността трябва да е валиден JSON." + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "Инстанция на %(model)s с %(field)s %(value)r не съществува." + +msgid "Foreign Key (type determined by related field)" +msgstr "Външен ключ (тип, определен от свързаното поле)" + +msgid "One-to-one relationship" +msgstr "едно-към-едно релация " + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "%(from)s-%(to)s релация" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "%(from)s-%(to)s релации" + +msgid "Many-to-many relationship" +msgstr "Много-към-много релация" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr ":?.!" + +msgid "This field is required." +msgstr "Това поле е задължително." + +msgid "Enter a whole number." +msgstr "Въведете цяло число. " + +msgid "Enter a valid date." +msgstr "Въведете валидна дата." + +msgid "Enter a valid time." +msgstr "Въведете валиден час." + +msgid "Enter a valid date/time." +msgstr "Въведете валидна дата/час. " + +msgid "Enter a valid duration." +msgstr "Въведете валидна продължителност." + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "Броят на дните трябва да е между {min_days} и {max_days}." + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "Няма изпратен файл. Проверете типа кодиране на формата. " + +msgid "No file was submitted." +msgstr "Няма изпратен файл." + +msgid "The submitted file is empty." +msgstr "Изпратеният файл е празен. " + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "Уверете се, това име е най-много %(max)d знака (то има %(length)d)." +msgstr[1] "" +"Уверете се, че това файлово име има най-много %(max)d знаци (има " +"%(length)d)." + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "" +"Моля, или пратете файл или маркирайте полето за изчистване, но не и двете." + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" +"Качете валидно изображение. Файлът, който сте качили или не е изображение, " +"или е повреден. " + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "Направете валиден избор. %(value)s не е един от възможните избори." + +msgid "Enter a list of values." +msgstr "Въведете списък от стойности" + +msgid "Enter a complete value." +msgstr "Въведете пълна стойност." + +msgid "Enter a valid UUID." +msgstr "Въведете валиден UUID." + +msgid "Enter a valid JSON." +msgstr "Въведете валиден JSON." + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr ":" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "(Скрито поле %(name)s) %(error)s" + +#, python-format +msgid "" +"ManagementForm data is missing or has been tampered with. Missing fields: " +"%(field_names)s. You may need to file a bug report if the issue persists." +msgstr "" +"ManagementForm данните липсват или са променяни неправомерно. Липсващи " +"полета: %(field_names)s. Трябва да изпратите уведомление за бъг, ако този " +"проблем продължава." + +#, python-format +msgid "Please submit at most %(num)d form." +msgid_plural "Please submit at most %(num)d forms." +msgstr[0] "Моля изпратете не повече от %(num)d формуляр." +msgstr[1] "Моля изпратете не повече от %(num)d формуляра." + +#, python-format +msgid "Please submit at least %(num)d form." +msgid_plural "Please submit at least %(num)d forms." +msgstr[0] "Моля изпратете поне %(num)d формуляр." +msgstr[1] "Моля изпратете поне %(num)d формуляра." + +msgid "Order" +msgstr "Ред" + +msgid "Delete" +msgstr "Изтрий" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "Моля, коригирайте дублираните данни за %(field)s." + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "" +"Моля, коригирайте дублираните данни за %(field)s, които трябва да са " +"уникални." + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"Моля, коригирайте дублиранитe данни за %(field_name)s , които трябва да са " +"уникални за %(lookup)s в %(date_field)s ." + +msgid "Please correct the duplicate values below." +msgstr "Моля, коригирайте повтарящите се стойности по-долу." + +msgid "The inline value did not match the parent instance." +msgstr "Стойността в реда не отговаря на родителската инстанция." + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "Направете валиден избор. Този не е един от възможните избори. " + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "“%(pk)s” не е валидна стойност." + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" +"%(datetime)s не може да се интерпретира в часова зона %(current_timezone)s; " +"вероятно стойността е нееднозначна или не съществува изобщо." + +msgid "Clear" +msgstr "Изчисти" + +msgid "Currently" +msgstr "Сега" + +msgid "Change" +msgstr "Промени" + +msgid "Unknown" +msgstr "Неизвестно" + +msgid "Yes" +msgstr "Да" + +msgid "No" +msgstr "Не" + +#. Translators: Please do not add spaces around commas. +msgid "yes,no,maybe" +msgstr "да,не,може би" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)d, байт" +msgstr[1] "%(size)d байта" + +#, python-format +msgid "%s KB" +msgstr "%s KБ" + +#, python-format +msgid "%s MB" +msgstr "%s МБ" + +#, python-format +msgid "%s GB" +msgstr "%s ГБ" + +#, python-format +msgid "%s TB" +msgstr "%s ТБ" + +#, python-format +msgid "%s PB" +msgstr "%s ПБ" + +msgid "p.m." +msgstr "след обяд" + +msgid "a.m." +msgstr "преди обяд" + +msgid "PM" +msgstr "след обяд" + +msgid "AM" +msgstr "преди обяд" + +msgid "midnight" +msgstr "полунощ" + +msgid "noon" +msgstr "обяд" + +msgid "Monday" +msgstr "понеделник" + +msgid "Tuesday" +msgstr "вторник" + +msgid "Wednesday" +msgstr "сряда" + +msgid "Thursday" +msgstr "четвъртък" + +msgid "Friday" +msgstr "петък" + +msgid "Saturday" +msgstr "събота" + +msgid "Sunday" +msgstr "неделя" + +msgid "Mon" +msgstr "Пон" + +msgid "Tue" +msgstr "Вт" + +msgid "Wed" +msgstr "Ср" + +msgid "Thu" +msgstr "Чет" + +msgid "Fri" +msgstr "Пет" + +msgid "Sat" +msgstr "Съб" + +msgid "Sun" +msgstr "Нед" + +msgid "January" +msgstr "Януари" + +msgid "February" +msgstr "Февруари" + +msgid "March" +msgstr "Март" + +msgid "April" +msgstr "Април" + +msgid "May" +msgstr "Май" + +msgid "June" +msgstr "Юни" + +msgid "July" +msgstr "Юли" + +msgid "August" +msgstr "Август" + +msgid "September" +msgstr "Септември" + +msgid "October" +msgstr "Октомври" + +msgid "November" +msgstr "Ноември" + +msgid "December" +msgstr "Декември" + +msgid "jan" +msgstr "ян" + +msgid "feb" +msgstr "фев" + +msgid "mar" +msgstr "мар" + +msgid "apr" +msgstr "апр" + +msgid "may" +msgstr "май" + +msgid "jun" +msgstr "юни" + +msgid "jul" +msgstr "юли" + +msgid "aug" +msgstr "авг" + +msgid "sep" +msgstr "сеп" + +msgid "oct" +msgstr "окт" + +msgid "nov" +msgstr "ноем" + +msgid "dec" +msgstr "дек" + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "Ян." + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "Фев." + +msgctxt "abbrev. month" +msgid "March" +msgstr "Март" + +msgctxt "abbrev. month" +msgid "April" +msgstr "Апр." + +msgctxt "abbrev. month" +msgid "May" +msgstr "Май" + +msgctxt "abbrev. month" +msgid "June" +msgstr "Юни" + +msgctxt "abbrev. month" +msgid "July" +msgstr "Юли" + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "Авг." + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "Септ." + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "Окт." + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "Ноем." + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "Дек." + +msgctxt "alt. month" +msgid "January" +msgstr "Януари" + +msgctxt "alt. month" +msgid "February" +msgstr "Февруари" + +msgctxt "alt. month" +msgid "March" +msgstr "Март" + +msgctxt "alt. month" +msgid "April" +msgstr "Април" + +msgctxt "alt. month" +msgid "May" +msgstr "Май" + +msgctxt "alt. month" +msgid "June" +msgstr "Юни" + +msgctxt "alt. month" +msgid "July" +msgstr "Юли" + +msgctxt "alt. month" +msgid "August" +msgstr "Август" + +msgctxt "alt. month" +msgid "September" +msgstr "Септември" + +msgctxt "alt. month" +msgid "October" +msgstr "Октомври" + +msgctxt "alt. month" +msgid "November" +msgstr "Ноември" + +msgctxt "alt. month" +msgid "December" +msgstr "Декември" + +msgid "This is not a valid IPv6 address." +msgstr "Въведете валиден IPv6 адрес." + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "%(truncated_text)s…" + +msgid "or" +msgstr "или" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr ", " + +#, python-format +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "%(num)d година" +msgstr[1] "%(num)d години" + +#, python-format +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "%(num)d месец" +msgstr[1] "%(num)d месеца" + +#, python-format +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "%(num)d седмица" +msgstr[1] "%(num)d седмици" + +#, python-format +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "%(num)d ден" +msgstr[1] "%(num)d дни" + +#, python-format +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "%(num)d час" +msgstr[1] "%(num)d часа" + +#, python-format +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "%(num)d минута" +msgstr[1] "%(num)d минути" + +msgid "Forbidden" +msgstr "Забранен" + +msgid "CSRF verification failed. Request aborted." +msgstr "CSRF проверката се провали. Заявката прекратена." + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" +"Вие виждате това съобщение, защото този HTTPS сайт изисква да бъде изпратен " +"'Referer header' от вашият уеб браузър, но такъв не бе изпратен. Този " +"header е задължителен от съображения за сигурност, за да се гарантира, че " +"вашият браузър не е компрометиран от трети страни." + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" +"Ако сте настроили вашия браузър да деактивира 'Referer' headers, моля да ги " +"активирате отново, поне за този сайт, или за HTTPS връзки, или за 'same-" +"origin' заявки." + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" +"Ако използвате таг или " +"включвате “Referrer-Policy: no-referrer” header, моля премахнете ги. CSRF " +"защитата изисква “Referer” header, за да извърши стриктна проверка на " +"изпращача. Ако сте притеснени за поверителността, използвайте алтернативи " +"като за връзки към сайтове на трети страни." + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" +"Вие виждате това съобщение, защото този сайт изисква CSRF бисквитка, когато " +"се подават формуляри. Тази бисквитка е задължителна от съображения за " +"сигурност, за да се гарантира, че вашият браузър не е компрометиран от трети " +"страни." + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" +"Ако сте конфигурирали браузъра си да забрани бисквитките, моля да ги " +"активирате отново, поне за този сайт, или за \"same-origin\" заявки." + +msgid "More information is available with DEBUG=True." +msgstr "Повече информация е на разположение с DEBUG=True." + +msgid "No year specified" +msgstr "Не е посочена година" + +msgid "Date out of range" +msgstr "Датата е в невалиден диапазон" + +msgid "No month specified" +msgstr "Не е посочен месец" + +msgid "No day specified" +msgstr "Не е посочен ден" + +msgid "No week specified" +msgstr "Не е посочена седмица" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "Няма достъпни %(verbose_name_plural)s" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" +"Бъдещo %(verbose_name_plural)s е недостъпно, тъй като %(class_name)s." +"allow_future е False." + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "" +"Невалидна текстова стойност на датата “%(datestr)s” при зададен формат " +"“%(format)s”" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "Няма %(verbose_name)s, съвпадащи със заявката" + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "" +"Страницата не е \"последна\", нито може да се преобразува в цяло число." + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "Невалидна страница (%(page_number)s): %(message)s" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "Празен списък и \"%(class_name)s.allow_empty\" e False." + +msgid "Directory indexes are not allowed here." +msgstr "Тук не е позволено индексиране на директория." + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "\"%(path)s\" не съществува" + +#, python-format +msgid "Index of %(directory)s" +msgstr "Индекс %(directory)s" + +msgid "The install worked successfully! Congratulations!" +msgstr "Инсталацията Ви заработи успешно! Поздравления!" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" +"Разгледайте release notes за Django %(version)s" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not " +"configured any URLs." +msgstr "" +"Вие виждате тази страница, защото DEBUG=True е във вашия файл с настройки и не сте " +"конфигурирали никакви URL-и." + +msgid "Django Documentation" +msgstr "Django документация" + +msgid "Topics, references, & how-to’s" +msgstr "Теми, наръчници, & друга документация" + +msgid "Tutorial: A Polling App" +msgstr "Урок: Приложение за анкета" + +msgid "Get started with Django" +msgstr "Започнете с Django" + +msgid "Django Community" +msgstr "Django общност" + +msgid "Connect, get help, or contribute" +msgstr "Свържете се, получете помощ или допринесете" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/bg/__init__.py b/venv/lib/python3.12/site-packages/django/conf/locale/bg/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/bg/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/bg/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7447319d08a3c21f7aa4164262a1affc26f93af9 GIT binary patch literal 198 zcmX@j%ge<81o5sX(m?cM5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!O4ZNE&rQ|OP0Yy6 zFHO;RNiEZNN=(kybEFQ_cZ$j>v@Gc?jK&MZmQEdVM^ zOiwM=Pssu+OwP|s)6dCIPRvQwPfFL1kI&4@EQycTE2#X%VUwGmQks)$SHudml@W-G PL5z>gjEsy$%s>_Z!&o$Q literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/bg/__pycache__/formats.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/bg/__pycache__/formats.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4613e72ae7e163f2e64c3bac2397b6a9eaa8eaf2 GIT binary patch literal 394 zcmX@j%ge<81o5sX(hf2)FgylvV1NiDF4% zjbg22(`2t=O;K=Dh^%7vu*$4r&Qfp#3h3qPMgC&c`3f|a;m`s zzK$WcxI;XB;T!>9f4>lqco)Y=n6zN9hksBAPz0ev(8bl+)7Q}_KG-$DF~~8*Kj@ZF zh=+e@u%n*~LTn|&XOO#prRZnm=celCCT8U3m!{~uq?YMBB_?OsOrRVFH zrRJ6C=VT`77gUyHF4ApC+4K;C#CDB zx5d0v-ASwZ*Z-`1>WDqLi2I>F+m0fRP literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/bg/formats.py b/venv/lib/python3.12/site-packages/django/conf/locale/bg/formats.py new file mode 100644 index 0000000000..ee90c5b08f --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/bg/formats.py @@ -0,0 +1,21 @@ +# This file is distributed under the same license as the Django package. +# +# The *_FORMAT strings use the Django date format syntax, +# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date +DATE_FORMAT = "d F Y" +TIME_FORMAT = "H:i" +# DATETIME_FORMAT = +# YEAR_MONTH_FORMAT = +MONTH_DAY_FORMAT = "j F" +SHORT_DATE_FORMAT = "d.m.Y" +# SHORT_DATETIME_FORMAT = +# FIRST_DAY_OF_WEEK = + +# The *_INPUT_FORMATS strings use the Python strftime format syntax, +# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior +# DATE_INPUT_FORMATS = +# TIME_INPUT_FORMATS = +# DATETIME_INPUT_FORMATS = +DECIMAL_SEPARATOR = "," +THOUSAND_SEPARATOR = " " # Non-breaking space +# NUMBER_GROUPING = diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/bn/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/conf/locale/bn/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..ef52f360610ae3430814fb9f455d19d42add9ce6 GIT binary patch literal 16660 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 Zc-6zMRdX$C3fpOx1_0f7%l{e~{2x*1K literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/bn/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/conf/locale/bn/LC_MESSAGES/django.po new file mode 100644 index 0000000000..b554f7a8f2 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/bn/LC_MESSAGES/django.po @@ -0,0 +1,1218 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Jannis Leidel , 2011 +# M Nasimul Haque , 2013 +# Tahmid Rafi , 2012-2013 +# Tahmid Rafi , 2013 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-09-27 22:40+0200\n" +"PO-Revision-Date: 2019-11-05 00:38+0000\n" +"Last-Translator: Ramiro Morales\n" +"Language-Team: Bengali (http://www.transifex.com/django/django/language/" +"bn/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: bn\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Afrikaans" +msgstr "আফ্রিকার অন্যতম সরকারি ভাষা" + +msgid "Arabic" +msgstr "আরবী" + +msgid "Asturian" +msgstr "" + +msgid "Azerbaijani" +msgstr "আজারবাইজানি" + +msgid "Bulgarian" +msgstr "বুলগেরিয়ান" + +msgid "Belarusian" +msgstr "বেলারুশীয়" + +msgid "Bengali" +msgstr "বাংলা" + +msgid "Breton" +msgstr "ব্রেটন" + +msgid "Bosnian" +msgstr "বসনিয়ান" + +msgid "Catalan" +msgstr "ক্যাটালান" + +msgid "Czech" +msgstr "চেক" + +msgid "Welsh" +msgstr "ওয়েল্স" + +msgid "Danish" +msgstr "ড্যানিশ" + +msgid "German" +msgstr "জার্মান" + +msgid "Lower Sorbian" +msgstr "" + +msgid "Greek" +msgstr "গ্রিক" + +msgid "English" +msgstr "ইংলিশ" + +msgid "Australian English" +msgstr "" + +msgid "British English" +msgstr "বৃটিশ ইংলিশ" + +msgid "Esperanto" +msgstr "আন্তর্জাতিক ভাষা" + +msgid "Spanish" +msgstr "স্প্যানিশ" + +msgid "Argentinian Spanish" +msgstr "আর্জেন্টিনিয়ান স্প্যানিশ" + +msgid "Colombian Spanish" +msgstr "" + +msgid "Mexican Spanish" +msgstr "মেক্সিকান স্প্যানিশ" + +msgid "Nicaraguan Spanish" +msgstr "নিকারাগুয়ান স্প্যানিশ" + +msgid "Venezuelan Spanish" +msgstr "ভেনেজুয়েলার স্প্যানিশ" + +msgid "Estonian" +msgstr "এস্তোনিয়ান" + +msgid "Basque" +msgstr "বাস্ক" + +msgid "Persian" +msgstr "ফারসি" + +msgid "Finnish" +msgstr "ফিনিশ" + +msgid "French" +msgstr "ফ্রেঞ্চ" + +msgid "Frisian" +msgstr "ফ্রিজ্ল্যানডের ভাষা" + +msgid "Irish" +msgstr "আইরিশ" + +msgid "Scottish Gaelic" +msgstr "" + +msgid "Galician" +msgstr "গ্যালিসিয়ান" + +msgid "Hebrew" +msgstr "হিব্রু" + +msgid "Hindi" +msgstr "হিন্দী" + +msgid "Croatian" +msgstr "ক্রোয়েশিয়ান" + +msgid "Upper Sorbian" +msgstr "" + +msgid "Hungarian" +msgstr "হাঙ্গেরিয়ান" + +msgid "Armenian" +msgstr "" + +msgid "Interlingua" +msgstr "" + +msgid "Indonesian" +msgstr "ইন্দোনেশিয়ান" + +msgid "Ido" +msgstr "" + +msgid "Icelandic" +msgstr "আইসল্যান্ডিক" + +msgid "Italian" +msgstr "ইটালিয়ান" + +msgid "Japanese" +msgstr "জাপানিজ" + +msgid "Georgian" +msgstr "জর্জিয়ান" + +msgid "Kabyle" +msgstr "" + +msgid "Kazakh" +msgstr "কাজাখ" + +msgid "Khmer" +msgstr "খমার" + +msgid "Kannada" +msgstr "কান্নাড়া" + +msgid "Korean" +msgstr "কোরিয়ান" + +msgid "Luxembourgish" +msgstr "লুক্সেমবার্গীয়" + +msgid "Lithuanian" +msgstr "লিথুয়ানিয়ান" + +msgid "Latvian" +msgstr "লাটভিয়ান" + +msgid "Macedonian" +msgstr "ম্যাসাডোনিয়ান" + +msgid "Malayalam" +msgstr "মালায়ালম" + +msgid "Mongolian" +msgstr "মঙ্গোলিয়ান" + +msgid "Marathi" +msgstr "" + +msgid "Burmese" +msgstr "বার্মিজ" + +msgid "Norwegian Bokmål" +msgstr "" + +msgid "Nepali" +msgstr "নেপালি" + +msgid "Dutch" +msgstr "ডাচ" + +msgid "Norwegian Nynorsk" +msgstr "নরওয়েজীয়ান নিনর্স্ক" + +msgid "Ossetic" +msgstr "অসেটিক" + +msgid "Punjabi" +msgstr "পাঞ্জাবী" + +msgid "Polish" +msgstr "পোলিশ" + +msgid "Portuguese" +msgstr "পর্তুগীজ" + +msgid "Brazilian Portuguese" +msgstr "ব্রাজিলিয়ান পর্তুগীজ" + +msgid "Romanian" +msgstr "রোমানিয়ান" + +msgid "Russian" +msgstr "রাশান" + +msgid "Slovak" +msgstr "স্লোভাক" + +msgid "Slovenian" +msgstr "স্লোভেনিয়ান" + +msgid "Albanian" +msgstr "আলবেনীয়ান" + +msgid "Serbian" +msgstr "সার্বিয়ান" + +msgid "Serbian Latin" +msgstr "সার্বিয়ান ল্যাটিন" + +msgid "Swedish" +msgstr "সুইডিশ" + +msgid "Swahili" +msgstr "সোয়াহিলি" + +msgid "Tamil" +msgstr "তামিল" + +msgid "Telugu" +msgstr "তেলেগু" + +msgid "Thai" +msgstr "থাই" + +msgid "Turkish" +msgstr "তুর্কি" + +msgid "Tatar" +msgstr "তাতারদেশীয়" + +msgid "Udmurt" +msgstr "" + +msgid "Ukrainian" +msgstr "ইউক্রেনিয়ান" + +msgid "Urdu" +msgstr "উর্দু" + +msgid "Uzbek" +msgstr "" + +msgid "Vietnamese" +msgstr "ভিয়েতনামিজ" + +msgid "Simplified Chinese" +msgstr "সরলীকৃত চাইনীজ" + +msgid "Traditional Chinese" +msgstr "প্রচলিত চাইনীজ" + +msgid "Messages" +msgstr "" + +msgid "Site Maps" +msgstr "" + +msgid "Static Files" +msgstr "" + +msgid "Syndication" +msgstr "" + +msgid "That page number is not an integer" +msgstr "" + +msgid "That page number is less than 1" +msgstr "" + +msgid "That page contains no results" +msgstr "" + +msgid "Enter a valid value." +msgstr "একটি বৈধ মান দিন।" + +msgid "Enter a valid URL." +msgstr "বৈধ URL দিন" + +msgid "Enter a valid integer." +msgstr "" + +msgid "Enter a valid email address." +msgstr "একটি বৈধ ইমেইল ঠিকানা লিখুন." + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" + +msgid "Enter a valid IPv4 address." +msgstr "একটি বৈধ IPv4 ঠিকানা দিন।" + +msgid "Enter a valid IPv6 address." +msgstr "একটি বৈধ IPv6 ঠিকানা টাইপ করুন।" + +msgid "Enter a valid IPv4 or IPv6 address." +msgstr "একটি বৈধ IPv4 অথবা IPv6 ঠিকানা টাইপ করুন।" + +msgid "Enter only digits separated by commas." +msgstr "শুধুমাত্র কমা দিয়ে সংখ্যা দিন।" + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "সংখ্যাটির মান %(limit_value)s হতে হবে (এটা এখন %(show_value)s আছে)।" + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "সংখ্যাটির মান %(limit_value)s এর চেয়ে ছোট বা সমান হতে হবে।" + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "সংখ্যাটির মান %(limit_value)s এর চেয়ে বড় বা সমান হতে হবে।" + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +msgstr[1] "" + +msgid "Enter a number." +msgstr "একটি সংখ্যা প্রবেশ করান।" + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" + +msgid "Null characters are not allowed." +msgstr "" + +msgid "and" +msgstr "এবং" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "" + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "" + +msgid "This field cannot be null." +msgstr "এর মান null হতে পারবে না।" + +msgid "This field cannot be blank." +msgstr "এই ফিল্ডের মান ফাঁকা হতে পারে না" + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "%(field_label)s সহ %(model_name)s আরেকটি রয়েছে।" + +#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'. +#. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "ফিল্ডের ধরণ: %(field_type)s" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "" + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "" + +msgid "Boolean (Either True or False)" +msgstr "বুলিয়ান (হয় True অথবা False)" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "স্ট্রিং (সর্বোচ্চ %(max_length)s)" + +msgid "Comma-separated integers" +msgstr "কমা দিয়ে আলাদা করা ইন্টিজার" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" + +msgid "Date (without time)" +msgstr "তারিখ (সময় বাদে)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" + +msgid "Date (with time)" +msgstr "তারিখ (সময় সহ)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "" + +msgid "Decimal number" +msgstr "দশমিক সংখ্যা" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" + +msgid "Duration" +msgstr "" + +msgid "Email address" +msgstr "ইমেইল ঠিকানা" + +msgid "File path" +msgstr "ফাইল পথ" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "" + +msgid "Floating point number" +msgstr "ফ্লোটিং পয়েন্ট সংখ্যা" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "" + +msgid "Integer" +msgstr "ইন্টিজার" + +msgid "Big (8 byte) integer" +msgstr "বিগ (৮ বাইট) ইন্টিজার" + +msgid "IPv4 address" +msgstr "IPv4 ঠিকানা" + +msgid "IP address" +msgstr "আইপি ঠিকানা" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "" + +msgid "Boolean (Either True, False or None)" +msgstr "বুলিয়ান (হয় True, False অথবা None)" + +msgid "Positive integer" +msgstr "পজিটিভ ইন্টিজার" + +msgid "Positive small integer" +msgstr "পজিটিভ স্মল ইন্টিজার" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "স্লাগ (সর্বোচ্চ %(max_length)s)" + +msgid "Small integer" +msgstr "স্মল ইন্টিজার" + +msgid "Text" +msgstr "টেক্সট" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" + +msgid "Time" +msgstr "সময়" + +msgid "URL" +msgstr "ইউআরএল (URL)" + +msgid "Raw binary data" +msgstr "র বাইনারি ডাটা" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "" + +msgid "Universally unique identifier" +msgstr "" + +msgid "File" +msgstr "ফাইল" + +msgid "Image" +msgstr "ইমেজ" + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "" + +msgid "Foreign Key (type determined by related field)" +msgstr "ফরেন কি (টাইপ রিলেটেড ফিল্ড দ্বারা নির্ণীত হবে)" + +msgid "One-to-one relationship" +msgstr "ওয়ান-টু-ওয়ান রিলেশানশিপ" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "" + +msgid "Many-to-many relationship" +msgstr "ম্যানি-টু-ম্যানি রিলেশানশিপ" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr "" + +msgid "This field is required." +msgstr "এটি আবশ্যক।" + +msgid "Enter a whole number." +msgstr "একটি পূর্ণসংখ্যা দিন" + +msgid "Enter a valid date." +msgstr "বৈধ তারিখ দিন।" + +msgid "Enter a valid time." +msgstr "বৈধ সময় দিন।" + +msgid "Enter a valid date/time." +msgstr "বৈধ তারিখ/সময় দিন।" + +msgid "Enter a valid duration." +msgstr "" + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "" + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "কোন ফাইল দেয়া হয়নি। ফর্মের এনকোডিং ঠিক আছে কিনা দেখুন।" + +msgid "No file was submitted." +msgstr "কোন ফাইল দেয়া হয়নি।" + +msgid "The submitted file is empty." +msgstr "ফাইলটি খালি।" + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" +msgstr[1] "" + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "" +"একটি ফাইল সাবমিট করুন অথবা ক্লিয়ার চেকবক্সটি চেক করে দিন, যে কোন একটি করুন।" + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" +"সঠিক ছবি আপলোড করুন। যে ফাইলটি আপলোড করা হয়েছে তা হয় ছবি নয় অথবা নষ্ট হয়ে " +"যাওয়া ছবি।" + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "%(value)s বৈধ নয়। অনুগ্রহ করে আরেকটি সিলেক্ট করুন।" + +msgid "Enter a list of values." +msgstr "কয়েকটি মানের তালিকা দিন।" + +msgid "Enter a complete value." +msgstr "" + +msgid "Enter a valid UUID." +msgstr "" + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr "" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "" + +msgid "ManagementForm data is missing or has been tampered with" +msgstr "" + +#, python-format +msgid "Please submit %d or fewer forms." +msgid_plural "Please submit %d or fewer forms." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "Please submit %d or more forms." +msgid_plural "Please submit %d or more forms." +msgstr[0] "" +msgstr[1] "" + +msgid "Order" +msgstr "ক্রম" + +msgid "Delete" +msgstr "মুছুন" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "" + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "" + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" + +msgid "Please correct the duplicate values below." +msgstr "" + +msgid "The inline value did not match the parent instance." +msgstr "" + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "এটি বৈধ নয়। অনুগ্রহ করে আরেকটি সিলেক্ট করুন।" + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "" + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" + +msgid "Clear" +msgstr "পরিষ্কার করুন" + +msgid "Currently" +msgstr "এই মুহুর্তে" + +msgid "Change" +msgstr "পরিবর্তন" + +msgid "Unknown" +msgstr "অজানা" + +msgid "Yes" +msgstr "হ্যাঁ" + +msgid "No" +msgstr "না" + +msgid "Year" +msgstr "" + +msgid "Month" +msgstr "" + +msgid "Day" +msgstr "" + +msgid "yes,no,maybe" +msgstr "হ্যাঁ,না,হয়তো" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)d বাইট" +msgstr[1] "%(size)d বাইট" + +#, python-format +msgid "%s KB" +msgstr "%s কিলোবাইট" + +#, python-format +msgid "%s MB" +msgstr "%s মেগাবাইট" + +#, python-format +msgid "%s GB" +msgstr "%s গিগাবাইট" + +#, python-format +msgid "%s TB" +msgstr "%s টেরাবাইট" + +#, python-format +msgid "%s PB" +msgstr "%s পেটাবাইট" + +msgid "p.m." +msgstr "অপরাহ্ন" + +msgid "a.m." +msgstr "পূর্বাহ্ন" + +msgid "PM" +msgstr "অপরাহ্ন" + +msgid "AM" +msgstr "পূর্বাহ্ন" + +msgid "midnight" +msgstr "মধ্যরাত" + +msgid "noon" +msgstr "দুপুর" + +msgid "Monday" +msgstr "সোমবার" + +msgid "Tuesday" +msgstr "মঙ্গলবার" + +msgid "Wednesday" +msgstr "বুধবার" + +msgid "Thursday" +msgstr "বৃহস্পতিবার" + +msgid "Friday" +msgstr "শুক্রবার" + +msgid "Saturday" +msgstr "শনিবার" + +msgid "Sunday" +msgstr "রবিবার" + +msgid "Mon" +msgstr "সোম" + +msgid "Tue" +msgstr "মঙ্গল" + +msgid "Wed" +msgstr "বুধ" + +msgid "Thu" +msgstr "বৃহঃ" + +msgid "Fri" +msgstr "শুক্র" + +msgid "Sat" +msgstr "শনি" + +msgid "Sun" +msgstr "রবি" + +msgid "January" +msgstr "জানুয়ারি" + +msgid "February" +msgstr "ফেব্রুয়ারি" + +msgid "March" +msgstr "মার্চ" + +msgid "April" +msgstr "এপ্রিল" + +msgid "May" +msgstr "মে" + +msgid "June" +msgstr "জুন" + +msgid "July" +msgstr "জুলাই" + +msgid "August" +msgstr "আগস্ট" + +msgid "September" +msgstr "সেপ্টেম্বর" + +msgid "October" +msgstr "অক্টোবর" + +msgid "November" +msgstr "নভেম্বর" + +msgid "December" +msgstr "ডিসেম্বর" + +msgid "jan" +msgstr "জান." + +msgid "feb" +msgstr "ফেব." + +msgid "mar" +msgstr "মার্চ" + +msgid "apr" +msgstr "এপ্রি." + +msgid "may" +msgstr "মে" + +msgid "jun" +msgstr "জুন" + +msgid "jul" +msgstr "জুল." + +msgid "aug" +msgstr "আগ." + +msgid "sep" +msgstr "সেপ্টে." + +msgid "oct" +msgstr "অক্টো." + +msgid "nov" +msgstr "নভে." + +msgid "dec" +msgstr "ডিসে." + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "জানু." + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "ফেব্রু." + +msgctxt "abbrev. month" +msgid "March" +msgstr "মার্চ" + +msgctxt "abbrev. month" +msgid "April" +msgstr "এপ্রিল" + +msgctxt "abbrev. month" +msgid "May" +msgstr "মে" + +msgctxt "abbrev. month" +msgid "June" +msgstr "জুন" + +msgctxt "abbrev. month" +msgid "July" +msgstr "জুলাই" + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "আগ." + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "সেপ্ট." + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "অক্টো." + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "নভে." + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "ডিসে." + +msgctxt "alt. month" +msgid "January" +msgstr "জানুয়ারি" + +msgctxt "alt. month" +msgid "February" +msgstr "ফেব্রুয়ারি" + +msgctxt "alt. month" +msgid "March" +msgstr "মার্চ" + +msgctxt "alt. month" +msgid "April" +msgstr "এপ্রিল" + +msgctxt "alt. month" +msgid "May" +msgstr "মে" + +msgctxt "alt. month" +msgid "June" +msgstr "জুন" + +msgctxt "alt. month" +msgid "July" +msgstr "জুলাই" + +msgctxt "alt. month" +msgid "August" +msgstr "আগস্ট" + +msgctxt "alt. month" +msgid "September" +msgstr "সেপ্টেম্বর" + +msgctxt "alt. month" +msgid "October" +msgstr "অক্টোবর" + +msgctxt "alt. month" +msgid "November" +msgstr "নভেম্বর" + +msgctxt "alt. month" +msgid "December" +msgstr "ডিসেম্বর" + +msgid "This is not a valid IPv6 address." +msgstr "" + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "" + +msgid "or" +msgstr "অথবা" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr "," + +#, python-format +msgid "%d year" +msgid_plural "%d years" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d month" +msgid_plural "%d months" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d week" +msgid_plural "%d weeks" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d day" +msgid_plural "%d days" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "" +msgstr[1] "" + +msgid "0 minutes" +msgstr "0 মিনিট" + +msgid "Forbidden" +msgstr "" + +msgid "CSRF verification failed. Request aborted." +msgstr "" + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your Web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" + +msgid "More information is available with DEBUG=True." +msgstr "" + +msgid "No year specified" +msgstr "কোন বছর উল্লেখ করা হয়নি" + +msgid "Date out of range" +msgstr "" + +msgid "No month specified" +msgstr "কোন মাস উল্লেখ করা হয়নি" + +msgid "No day specified" +msgstr "কোন দিন উল্লেখ করা হয়নি" + +msgid "No week specified" +msgstr "কোন সপ্তাহ উল্লেখ করা হয়নি" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "কোন %(verbose_name_plural)s নেই" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "কুয়েরি ম্যাচ করে এমন কোন %(verbose_name)s পাওয়া যায় নি" + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "" + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "" + +msgid "Directory indexes are not allowed here." +msgstr "ডিরেক্টরি ইনডেক্স অনুমোদিত নয়" + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "" + +#, python-format +msgid "Index of %(directory)s" +msgstr "%(directory)s এর ইনডেক্স" + +msgid "Django: the Web framework for perfectionists with deadlines." +msgstr "" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" + +msgid "The install worked successfully! Congratulations!" +msgstr "" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not configured any " +"URLs." +msgstr "" + +msgid "Django Documentation" +msgstr "" + +msgid "Topics, references, & how-to’s" +msgstr "" + +msgid "Tutorial: A Polling App" +msgstr "" + +msgid "Get started with Django" +msgstr "" + +msgid "Django Community" +msgstr "" + +msgid "Connect, get help, or contribute" +msgstr "" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/bn/__init__.py b/venv/lib/python3.12/site-packages/django/conf/locale/bn/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/bn/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/bn/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..81ad74d87e31a098537894902a8c3f9e63ba3100 GIT binary patch literal 198 zcmX@j%ge<81o5sX(m?cM5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!O4ZNE&rQ|OP0Yy6 zFHO;RNiEZNN=(kybEFQ_cZ$j>v@Gc?jK&MZmQEdVM^ zOiwM=Pssu+OwP|s)6dCIPRvQwPs-DekI&4@EQycTE2#X%VUwGmQks)$SHudml@W-G PL5z>gjEsy$%s>_Z#Gy2M literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/bn/__pycache__/formats.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/bn/__pycache__/formats.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e31924e1d609ea21ec8be5c875ff62c75e58f042 GIT binary patch literal 682 zcmZvZF>l&H7>3W-CXQW5On}m=1B(Zwz$xv9qDoFN0=34G?Wn?wWjJFnwshiboOg)=G8>uJV-TOZ8_uV(#_e_Qbc$w0-!B-N1pRw7k)T4Mf z$KnnkU;soI1WFkxL>eTb3<}W(?EsYiOc-f&fEXub9H2wQ;+sL7afqH7>@riy2I=c^ z^R(OzXs13Ziviihn#3#)WE}iT;~5nyU<3pO7Yg0ITE?m>xYaF7RLoj+L9Pp0Kqo5T zca7zJl6{IcL~TQyb}HPOYlymJHWgJC^);ur<-Os%lBk-p($QPH{CMjcVs}S)t)-~C z`R^lqv#n||>Y7T^{3uE9*SREbcP_8=$3|_POJ+S~#klT2oNq|)+Oqh;)TB#M6?H|$ z?Jea>6FZH+>@}Q?=5}?03oXZk{p?eqi> zCGeh^_=re?AR-nVJ-_9`Y~hx>&%am!K0GO{z;T#=h4p>DfY09yT}-V&F3JM>D5SWE fCbymibSb3r*uTViF=9Xg_wr$(^aJFkJf86fp}f5( literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/bn/formats.py b/venv/lib/python3.12/site-packages/django/conf/locale/bn/formats.py new file mode 100644 index 0000000000..9d1bb09d13 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/bn/formats.py @@ -0,0 +1,32 @@ +# This file is distributed under the same license as the Django package. +# +# The *_FORMAT strings use the Django date format syntax, +# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date +DATE_FORMAT = "j F, Y" +TIME_FORMAT = "g:i A" +# DATETIME_FORMAT = +YEAR_MONTH_FORMAT = "F Y" +MONTH_DAY_FORMAT = "j F" +SHORT_DATE_FORMAT = "j M, Y" +# SHORT_DATETIME_FORMAT = +FIRST_DAY_OF_WEEK = 6 # Saturday + +# The *_INPUT_FORMATS strings use the Python strftime format syntax, +# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior +DATE_INPUT_FORMATS = [ + "%d/%m/%Y", # 25/10/2016 + "%d/%m/%y", # 25/10/16 + "%d-%m-%Y", # 25-10-2016 + "%d-%m-%y", # 25-10-16 +] +TIME_INPUT_FORMATS = [ + "%H:%M:%S", # 14:30:59 + "%H:%M", # 14:30 +] +DATETIME_INPUT_FORMATS = [ + "%d/%m/%Y %H:%M:%S", # 25/10/2006 14:30:59 + "%d/%m/%Y %H:%M", # 25/10/2006 14:30 +] +DECIMAL_SEPARATOR = "." +THOUSAND_SEPARATOR = "," +# NUMBER_GROUPING = diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/br/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/conf/locale/br/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..d864abe918e931b806454370616ad09fb3aa1881 GIT binary patch literal 14009 zcmbuE37B0)mB+6H1%iMGiXh5GNYV}IPC7&g9RhZD7CNDmnC=7-Fy7a%`n{X?-o1~z zbf+IExB}|n!r&;P&ZvVjj3T(f;5Nn;6?efAaSVzMf-4H&I0OFvb?fz(gu!p#m(#yn z%dI+9b?Q{zlY5`J|1}=JN0DQZdk*lt4NvjB>kd<{=Y91^&szb%235Y_vpnyq@Hoc> zjwd_zIGzUgquwgV7r}!_55NQA5L7$c;M3p*@CZ2S$|qd@W$>BgUk(q3*Sh@c;e65` zhN$e_3Q^JfJbXU<0Xz{t?8=XRc2RyjRDY*J4RIBeUPDmroa?w9s$K<3&j=n4Gx!|% zdZ=-{7wY{FLDjnj>b+axGvMc-#`SHe`ag$D2;`sl1^#GVe+*H@dlaht zu%nClIsr0;-U_%7ZiE_d4mF-j9j}1TBmGvmKfDR5-p8TF@mZ*LzU=bvf!(CJW1-SM)O(BIOW_iz{@&ntHB`OppyvJkE`5Vbe-x_!PeR$r=i$@g*IoYIQ2p(O zdjEc?@jnPve;$*l{ttz+yJthydx6XEa9j$d*9xd{_c^Y0%9EN)Tr7rz)S6+eY zFNRw8mP=m&rT^8CDe~S8rO&6J+W8!m{$GOX|7%d||6P~A8>-*?q1t)Kr5}N^gU6uu z=iw~=Vt6Ffe(8g<+cBv5n1CzcRZ#EU0ksc);`m#~r?B|a;|M4{kAXnYKfok^(NY~!=kR|ZG45iO~ z5EJ$uhnoLmjxYLO1~o6ILbZ1m)IMMB%3lJd*9DGcmtTj{qX{)n6R!MK@I2C2LbZ1v z)O`I4YJL6!HSVXqpm=XS)cB5s%0C9`z2`&eaRSu)r#Y^7ywI`f_!`HzL%nwcls$gN z<$ud@w=4e>l${)OLQ(G+sP`5-z6h${5vcuBah!m9?{X-A{SK)2J_uF+cBu2_PB;(V z=lDy%OJQJ=X|I-WEb8!Df#X4+q-0FC~W8heUPoaJTYW-uV^&f`^z{{Z4^9rc)tDyY* zHShp`aY5i=foi`Os+~Tl_lBX?<3e~K zya=jZ3#$B8@BsKmcp$tQYTd4bbm83uRel%Ly#3UrAB58LVW{=}ZzwxBth31Xq4Zb? z)z1oe3ham4$Kz1-Uk%m%)o=v93--a^IW9Y?*q<4ce}5Cyd)Gtl>rX-Hd6!E+4mIB6 zPA=X%1!})E8FC&f5p!eE3|PzVurN4}#rL{jPu-|4X3O z^JP%;nnAUDF+32y8LoiuaOK~D^GM(A()T#t2e*;`091c{T}6L`Q0)x6^aW7mV^IA^ zt~`TJC;bYjefS2K|4yj>-sjTSL+N`H)OfxG)!w(@!SF7qao^|4e*-nHN1^IH?$QS^ zNz&_3sQja#^f}IPfh#{5>iy*|y%HWmdNox4TO2Qdn*TAV_AZ5b?{X;puY%I=ZBX|4 z9+!W!<0qi>xee<5FF>us9j^RdI7oUoWQx7TON#U0JSh7ZhXe3!F8xC&JNX0j;o(aQ zyITh3R|cT=?OG_kH@I{eO7GC6n=YNh^U1#iVxr#N@Re|0PjO#-HI$v)0HyzKsC9S% z%0B-Db)FrvtQhCXj>{caLCw=zsQ%Z(v*C;3T6itg{QS(7KL9oE-@`-UA*U4k_*kfV zJ&wKb1kwZW2v~tyw~OIn@O2QA@UDUCf0yG|pxXI5ls?~w8qbfR#&})A4Gkb^0V!|383w|3@x;FMI~+-7ft{D19Dre9YxP z^@W9g2SMp`BvifU!7@D2rLTlXkbVo)JbVDE-;Y4OcZ=igPrrPrN~--CMZ zZdZPf%fHX@SB?)k{sF4~BT()B#pOTdIPcVAJ`aTI=TMhE0!q)Lq4YSx@gyjHdtAB~ zs{KBw_SZnQb2e1HA(y`ms@{2y7di$|>uFrN<`_GsjuVa-L+N#?G5ut|2`;tz22oi0d@ZV8u=lj-x_4Ked2t9uW`@6hu0xB9^|#i)ySF1%%AM9{kxKf3FN!Tmys7B`h5iHw@;q;uTX2F`5r*-L@q;c zZFX+I0=p6Yb|SyEPsJbY@z1+-CmeLoUw1qUhRDAotB_j|?N|LigJ^GFtc3fW==d}E z4kST(kxLN$Mv+h3C(a=FJ>(^beE$uIe)1#weGoYZS&v+R==U!L?B9F%`yAw#$cvDh zkT)X#fwX`7@gTo?FY*Y|M6N=9fav#1qz`$Y67F{-EW77V!H3-Qq~kxqcOg4mx{XEd zVF;e&o}cD;sH1R#d%hl?i)=*x1k-D1U;}v&IU5;AK7edO-id5SeB?*S zmylDDUm+Wi!;v>5-hz%sTsHOXQP41*sXq~BRX?kSslT9OEHw4<_IgkZKqGgUIV^CSl#{OM+533MwYbLKXPKO)8{SuP@E=#MaC!d762B{7Hhks;r4Bbz7xn zl2Q=v;03QgNH5Bb*Kg`UlBasF-$WJad;MX>?^t1V@AShcGZm9~{c&73G}W<&Sulw| zlH|sZ6Mt<`Pfh1uix(G#syzF<%ZygN)x|unrn=uzEOyAkli$vW^UTkRJTqznU&3VZh z+;~uDx~=8a!$z2Gw;5PoN0=4aX*Hf`=XQ3}$X;HqV5J#rmoal%6?0LJ=2?tA&uVoa zuh-G;NxiE+0)I4aG&LE%)m3d4`B-A+$74k{o28v!%;0pI*TS+txOseedusMt#yF^R z>J!x2XW7;*=ge)g%mnQ%Z;6(DZh@J(ZgUIW#+jSFw|3@C&_tE3<_xO+dK}d!{c>0d zv(%rq>C&WTxe;g<)22y+D2sVwAIZMgno^Pn$)vYd&Pr3BO*T#Ml=o7qGo`d{>>s}w zWL2Ib>rU3zwN0Xm-;5bb+rHPvNhvIs4XwwC2`iDm!A$xcYRWIO*hwRdux=Dfa4gz) z)>C$RYuRd;`r0IvlmoO%LhE+c=J+jxR^vFQI5pPYZg19eoEH{uH_bR3Bq%W}B{Lf2 zscMhbgEV!nx!dll?PEntY!mC1y1jLn(5R+jor#l5@sKo>PK>E}XEQ-&!aJKi8hU5v zct7iC1~<2j$(w0?-ry)hqUxwOSdP8HMu7Jj)b`fYF6bz?_dIh-HXhFoZ_qhVF{v}5 zdEgB)^r|~)XI)7B8QEkTv&-^c7nLu{<9j4@2vp9t6@c?mCx`E~Cj+aIW! z(VFcOyNt_L0U2=|+03yxY1nrgam1-VtCtCEXLimcN6@UCWWvbY{Ed@QoTN3B7%z^C zO`HlkHa0~@tALRd8>PJno076h)6`_x+2$c{vq`KOZRVK6?nh(JtWi!OCaat`F>f7C zc&&ixOqk*W>Fhk(!Bx!L60?)E#kS8z?ie<8tyZAJ zj>BxU8i%8%TU$W~x@MqoaIypWXQpS$!d-2A`#xG3sRo&=^kmyO zSM3|>a7H(yz78DP%Mxw6eKnAy4(>s7I1yC2EkaY)VhvBq2h$QxXe4NGDIUT66K}+z zP!4ux9#a$QPsW*6(XNTIAdEEEY_~M8XX%X6;^LtxoW9}oP;RE(NMTgeFpXw5*-atO z)@FVDqK+u`Sc%i2wvVzXuh(Z4@qWVni!%csHBv?IYM!JT?+7;yZzKuI*kK%TL2IwY z2-kI_sFWu)O$JvOZ)>@cCz-dkmM})G>ei?h#S^f}8D5^UKJKX%j86lzdt@@seOw4t zIHu(_-A=M6ZsgnQx+dx>mn1p1!!6pj;cZRIxwp+krj_eVocadY7Me_7OIXgixMTz? z(xA>Yb+kQ?bq~66tU-yBcf8xT-gW=t(`HUyUYT2stM=S1t~hhEI8FD+(s??&d3(Cf z&MMBmxp{M6#FNi$9-lrpYuGfESI_1QaYjb*kv5|W!z(uDjJ&BU+>E^Tbzx?f9pH51 z#ptHfZfG+z7}s=i>Uf%w*FLFcWNB1R#i;BB&BP1xidQzH-k2$QJFvVRc^!$o2K%wW zvNytV6jrL47sc$>C?5CX(aehzuPH0wBI`|>ba50frgF)6yDz)m+nmHZ@R?nM<*scy z`{JnAFVl707PWU$%5vPgf8B zR`|<$dV5Ykc`3j7=LBii#m0(KZl-b4%Qq~~;TRXVes=H~XHrAgvx?~&F+ro(FFr~A zj%t=QdzUPkn3(A1i@JEFn~V37La#R12=?tIrDRFx{Gq|2HPa*L>0Ua2058P%X4i(LwPL!S`WiDy*BW<2>GfBX!fZ;*UcZ#g-)!&6UEIbS zX|Ep@*XDH93s?HZHR13@I zwlF8-v^nY1NuTBSOt)}~f5|1j^jWoP`Sj!IGn+lbM_XHqho%0Re$SlZ(_C>;dfJ@Q z(`S{QPU%_xGAW=DFVzHa=TOV~X;zl1#wmWUzr1thd}1K2MZRhICQtp*Mb$WHRqb=G zyVa~{P=${zzUs-g=Ri9a#Kn3S|Is!T0g7w5&HrEWiQ`4y5H}SL?>-wcicF;l8NoI9 z*dk&?f-|@h@m*Q*`w|9*@?jJdF(Xxt2^b9raf|o;J`y%?X~&A} zlR`y2^y#aHYg{Se{2*v#hpTW%#`E~+|<+ekABE~tzi1J$@;%lLRtGn#g@Ci6ylLPOTZV}|TARpW79 zwyj{yvjRbW2Yz*Gug89cvs?t-*DRkjSo^_h>fgVmqQsl$PwhY^J`&a_{l79pRLH@1X~6 z@9~P8sXg*%HB}5oD~@s3OyqN#+O0Ha3u*r_=hIOtZ6k%LWUGs+6J|W&t9KYZWJTC0 z8v>8qcC9W@wZ-6rQlT{&WK)- zoZk9_n`b4)mwSU;e5`*^{A##naycGsjOOq)dy8O63+LjAY0U^=P2j@{hwP$QR9t5w z22MCjVJwm{!5l;Lt*RL(U}$4mS>V+a%bFF+qOyWnLYNUa(nDTLxoRquMQSLhDUxNM z+JUUqxZg&T&nLegnzSp z6fNz`V(i;EOr4&5PfT|!D@X&`EbhW~GNZ5-aF;Chg)M5osKaEBGQaJ6QL5MvCaT3{ z?di7fFLu~oI&bXR_mpD%2UrzntP#vmZK}A$XXiMU;VQ%ltIu)Yj+d>@v2ToLdXe)e zh>Atl6Ca=~?Iy;_Dy{1tB9gI4S)i!^Srqs!8&PiA z!4mam7qj1I91?yRBlqJjb=m#o+kVnj+wro%=c-@BpxUZPBkO_7R(<}r#_CWkNuB?c zw6-=CN1Gc&v$LQ!8FB}|Uw8Fm)2W74; zlH@FN2ZObMR;l77;K2G!0DAr zBTcb&KXL*^XiW_fW0N=LL9sRV4v}WQJ7&bzSW*qIyK`?dJMFMAR+dyfr3BshzmBNz z_V)6q2Aq<6?SuFo-|>>v#@?imZmB?rO)V&M>9(OavS_{tzQs9Cjqn>6PR3*-aD~s{ zG7#fwea@I>u!BN(W9@TSF9J*@o6p%VoAt3zYbeEA6;`E(LlKWzk9Bs+sI9?TXD08a z+j4RE&N#kxi?e=~g?bWIwip6xYQD}=g>Lh-?*iT4c|k16`5NM;!nYHPT9p~_-!yd& zxm+TrG(u#KX;ENqQ(kUxg2_h}!8smQW8J|xHwQLBRk!Bi^THm*ZNu(syJ8(4hMKgi zuMzGw#?DFL$BOrxI`S==hl z3y9s=?@GQRxwplHp*Qf=GN2n2i(&AGtcWgvE&b6G2W{cEDN?24`_q0}7N0!!WqZ|g zR|Q&_bwzMfINefl;j(+J8mK{OGOdX8kQ&lLN?0BAZEKP!Zh19sx>#e_a(a19<5d)R W(oJqMSj>D8cw&88#_R6x_WlaFsDy<8 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/br/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/conf/locale/br/LC_MESSAGES/django.po new file mode 100644 index 0000000000..3b1a759bb7 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/br/LC_MESSAGES/django.po @@ -0,0 +1,1297 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Claude Paroz , 2020 +# Ewen , 2021 +# Fulup , 2012,2014 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-09-21 10:22+0200\n" +"PO-Revision-Date: 2021-11-18 21:19+0000\n" +"Last-Translator: Transifex Bot <>\n" +"Language-Team: Breton (http://www.transifex.com/django/django/language/br/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: br\n" +"Plural-Forms: nplurals=5; plural=((n%10 == 1) && (n%100 != 11) && (n%100 !" +"=71) && (n%100 !=91) ? 0 :(n%10 == 2) && (n%100 != 12) && (n%100 !=72) && (n" +"%100 !=92) ? 1 :(n%10 ==3 || n%10==4 || n%10==9) && (n%100 < 10 || n% 100 > " +"19) && (n%100 < 70 || n%100 > 79) && (n%100 < 90 || n%100 > 99) ? 2 :(n != 0 " +"&& n % 1000000 == 0) ? 3 : 4);\n" + +msgid "Afrikaans" +msgstr "Afrikaneg" + +msgid "Arabic" +msgstr "Arabeg" + +msgid "Algerian Arabic" +msgstr "" + +msgid "Asturian" +msgstr "Astureg" + +msgid "Azerbaijani" +msgstr "Azeri" + +msgid "Bulgarian" +msgstr "Bulgareg" + +msgid "Belarusian" +msgstr "Belaruseg" + +msgid "Bengali" +msgstr "Bengaleg" + +msgid "Breton" +msgstr "Brezhoneg" + +msgid "Bosnian" +msgstr "Bosneg" + +msgid "Catalan" +msgstr "Katalaneg" + +msgid "Czech" +msgstr "Tchekeg" + +msgid "Welsh" +msgstr "Kembraeg" + +msgid "Danish" +msgstr "Daneg" + +msgid "German" +msgstr "Alamaneg" + +msgid "Lower Sorbian" +msgstr "" + +msgid "Greek" +msgstr "Gresianeg" + +msgid "English" +msgstr "Saozneg" + +msgid "Australian English" +msgstr "Saozneg Aostralia" + +msgid "British English" +msgstr "Saozneg Breizh-Veur" + +msgid "Esperanto" +msgstr "Esperanteg" + +msgid "Spanish" +msgstr "Spagnoleg" + +msgid "Argentinian Spanish" +msgstr "Spagnoleg Arc'hantina" + +msgid "Colombian Spanish" +msgstr "Spagnoleg Kolombia" + +msgid "Mexican Spanish" +msgstr "Spagnoleg Mec'hiko" + +msgid "Nicaraguan Spanish" +msgstr "Spagnoleg Nicaragua" + +msgid "Venezuelan Spanish" +msgstr "Spagnoleg Venezuela" + +msgid "Estonian" +msgstr "Estoneg" + +msgid "Basque" +msgstr "Euskareg" + +msgid "Persian" +msgstr "Perseg" + +msgid "Finnish" +msgstr "Finneg" + +msgid "French" +msgstr "Galleg" + +msgid "Frisian" +msgstr "Frizeg" + +msgid "Irish" +msgstr "Iwerzhoneg" + +msgid "Scottish Gaelic" +msgstr "" + +msgid "Galician" +msgstr "Galizeg" + +msgid "Hebrew" +msgstr "Hebraeg" + +msgid "Hindi" +msgstr "Hindi" + +msgid "Croatian" +msgstr "Kroateg" + +msgid "Upper Sorbian" +msgstr "" + +msgid "Hungarian" +msgstr "Hungareg" + +msgid "Armenian" +msgstr "" + +msgid "Interlingua" +msgstr "Interlingua" + +msgid "Indonesian" +msgstr "Indonezeg" + +msgid "Igbo" +msgstr "" + +msgid "Ido" +msgstr "Ido" + +msgid "Icelandic" +msgstr "Islandeg" + +msgid "Italian" +msgstr "Italianeg" + +msgid "Japanese" +msgstr "Japaneg" + +msgid "Georgian" +msgstr "Jorjianeg" + +msgid "Kabyle" +msgstr "" + +msgid "Kazakh" +msgstr "kazak" + +msgid "Khmer" +msgstr "Khmer" + +msgid "Kannada" +msgstr "Kannata" + +msgid "Korean" +msgstr "Koreaneg" + +msgid "Kyrgyz" +msgstr "" + +msgid "Luxembourgish" +msgstr "Luksembourgeg" + +msgid "Lithuanian" +msgstr "Lituaneg" + +msgid "Latvian" +msgstr "Latveg" + +msgid "Macedonian" +msgstr "Makedoneg" + +msgid "Malayalam" +msgstr "Malayalam" + +msgid "Mongolian" +msgstr "Mongoleg" + +msgid "Marathi" +msgstr "Marathi" + +msgid "Malay" +msgstr "" + +msgid "Burmese" +msgstr "Burmeg" + +msgid "Norwegian Bokmål" +msgstr "" + +msgid "Nepali" +msgstr "nepaleg" + +msgid "Dutch" +msgstr "Nederlandeg" + +msgid "Norwegian Nynorsk" +msgstr "Norvegeg Nynorsk" + +msgid "Ossetic" +msgstr "Oseteg" + +msgid "Punjabi" +msgstr "Punjabeg" + +msgid "Polish" +msgstr "Poloneg" + +msgid "Portuguese" +msgstr "Portugaleg" + +msgid "Brazilian Portuguese" +msgstr "Portugaleg Brazil" + +msgid "Romanian" +msgstr "Roumaneg" + +msgid "Russian" +msgstr "Rusianeg" + +msgid "Slovak" +msgstr "Slovakeg" + +msgid "Slovenian" +msgstr "Sloveneg" + +msgid "Albanian" +msgstr "Albaneg" + +msgid "Serbian" +msgstr "Serbeg" + +msgid "Serbian Latin" +msgstr "Serbeg e lizherennoù latin" + +msgid "Swedish" +msgstr "Svedeg" + +msgid "Swahili" +msgstr "swahileg" + +msgid "Tamil" +msgstr "Tamileg" + +msgid "Telugu" +msgstr "Telougou" + +msgid "Tajik" +msgstr "" + +msgid "Thai" +msgstr "Thai" + +msgid "Turkmen" +msgstr "" + +msgid "Turkish" +msgstr "Turkeg" + +msgid "Tatar" +msgstr "tatar" + +msgid "Udmurt" +msgstr "Oudmourteg" + +msgid "Ukrainian" +msgstr "Ukraineg" + +msgid "Urdu" +msgstr "Ourdou" + +msgid "Uzbek" +msgstr "" + +msgid "Vietnamese" +msgstr "Vietnameg" + +msgid "Simplified Chinese" +msgstr "Sinaeg eeunaet" + +msgid "Traditional Chinese" +msgstr "Sinaeg hengounel" + +msgid "Messages" +msgstr "Kemennadenn" + +msgid "Site Maps" +msgstr "Tresoù al lec'hienn" + +msgid "Static Files" +msgstr "Restroù statek" + +msgid "Syndication" +msgstr "Sindikadur" + +#. Translators: String used to replace omitted page numbers in elided page +#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10]. +msgid "…" +msgstr "..." + +msgid "That page number is not an integer" +msgstr "" + +msgid "That page number is less than 1" +msgstr "An niver a bajenn mañ a zo bihanoc'h eget 1." + +msgid "That page contains no results" +msgstr "N'eus disoc'h er pajenn-mañ." + +msgid "Enter a valid value." +msgstr "Merkit un talvoud reizh" + +msgid "Enter a valid URL." +msgstr "Merkit un URL reizh" + +msgid "Enter a valid integer." +msgstr "Merkit un niver anterin reizh." + +msgid "Enter a valid email address." +msgstr "Merkit ur chomlec'h postel reizh" + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" + +msgid "Enter a valid IPv4 address." +msgstr "Merkit ur chomlec'h IPv4 reizh." + +msgid "Enter a valid IPv6 address." +msgstr "Merkit ur chomlec'h IPv6 reizh." + +msgid "Enter a valid IPv4 or IPv6 address." +msgstr "Merkit ur chomlec'h IPv4 pe IPv6 reizh." + +msgid "Enter only digits separated by commas." +msgstr "Merkañ hepken sifroù dispartiet dre skejoù." + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "" +"Bezit sur ez eo an talvoud-mañ %(limit_value)s (evit ar mare ez eo " +"%(show_value)s)." + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "Gwiriit mat emañ an talvoud-mañ a-is pe par da %(limit_value)s." + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "Gwiriit mat emañ an talvoud-mañ a-us pe par da %(limit_value)s." + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" + +msgid "Enter a number." +msgstr "Merkit un niver." + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" + +msgid "Null characters are not allowed." +msgstr "" + +msgid "and" +msgstr "ha" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "" + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "" + +msgid "This field cannot be null." +msgstr "N'hall ket ar vaezienn chom goullo" + +msgid "This field cannot be blank." +msgstr "N'hall ket ar vaezienn chom goullo" + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "Bez' ez eus c'hoazh eus ur %(model_name)s gant ar %(field_label)s-mañ." + +#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'. +#. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "Seurt maezienn : %(field_type)s" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "" + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "" + +msgid "Boolean (Either True or False)" +msgstr "Boulean (gwir pe gaou)" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "neudennad arouezennoù (betek %(max_length)s)" + +msgid "Comma-separated integers" +msgstr "Niveroù anterin dispartiet dre ur skej" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" + +msgid "Date (without time)" +msgstr "Deizad (hep eur)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" + +msgid "Date (with time)" +msgstr "Deizad (gant an eur)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "" + +msgid "Decimal number" +msgstr "Niver dekvedennel" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" + +msgid "Duration" +msgstr "" + +msgid "Email address" +msgstr "Chomlec'h postel" + +msgid "File path" +msgstr "Treug war-du ar restr" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "" + +msgid "Floating point number" +msgstr "Niver gant skej nij" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "" + +msgid "Integer" +msgstr "Anterin" + +msgid "Big (8 byte) integer" +msgstr "Anterin bras (8 okted)" + +msgid "Small integer" +msgstr "Niver anterin bihan" + +msgid "IPv4 address" +msgstr "Chomlec'h IPv4" + +msgid "IP address" +msgstr "Chomlec'h IP" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "" + +msgid "Boolean (Either True, False or None)" +msgstr "Boulean (gwir pe gaou pe netra)" + +msgid "Positive big integer" +msgstr "" + +msgid "Positive integer" +msgstr "Niver anterin pozitivel" + +msgid "Positive small integer" +msgstr "Niver anterin bihan pozitivel" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "Slug (betek %(max_length)s arouez.)" + +msgid "Text" +msgstr "Testenn" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" + +msgid "Time" +msgstr "Eur" + +msgid "URL" +msgstr "URL" + +msgid "Raw binary data" +msgstr "" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "" + +msgid "Universally unique identifier" +msgstr "" + +msgid "File" +msgstr "Restr" + +msgid "Image" +msgstr "Skeudenn" + +msgid "A JSON object" +msgstr "" + +msgid "Value must be valid JSON." +msgstr "" + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "" + +msgid "Foreign Key (type determined by related field)" +msgstr "Alc'hwez estren (seurt termenet dre ar vaezienn liammet)" + +msgid "One-to-one relationship" +msgstr "Darempred unan-ouzh-unan" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "" + +msgid "Many-to-many relationship" +msgstr "Darempred lies-ouzh-lies" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr "" + +msgid "This field is required." +msgstr "Rekis eo leuniañ ar vaezienn." + +msgid "Enter a whole number." +msgstr "Merkit un niver anterin." + +msgid "Enter a valid date." +msgstr "Merkit un deiziad reizh" + +msgid "Enter a valid time." +msgstr "Merkit un eur reizh" + +msgid "Enter a valid date/time." +msgstr "Merkit un eur/deiziad reizh" + +msgid "Enter a valid duration." +msgstr "" + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "" + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "N'eus ket kaset restr ebet. Gwiriit ar seurt enkodañ evit ar restr" + +msgid "No file was submitted." +msgstr "N'eus bet kaset restr ebet." + +msgid "The submitted file is empty." +msgstr "Goullo eo ar restr kaset." + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "Kasit ur restr pe askit al log riñsañ; an eil pe egile" + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" +"Enpozhiit ur skeudenn reizh. Ar seurt bet enporzhiet ganeoc'h a oa foeltret " +"pe ne oa ket ur skeudenn" + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "Dizuit un dibab reizh. %(value)s n'emañ ket e-touez an dibaboù posupl." + +msgid "Enter a list of values." +msgstr "Merkit ur roll talvoudoù" + +msgid "Enter a complete value." +msgstr "Merkañ un talvoud klok" + +msgid "Enter a valid UUID." +msgstr "" + +msgid "Enter a valid JSON." +msgstr "" + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr "" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "" + +#, python-format +msgid "" +"ManagementForm data is missing or has been tampered with. Missing fields: " +"%(field_names)s. You may need to file a bug report if the issue persists." +msgstr "" + +#, python-format +msgid "Please submit at most %d form." +msgid_plural "Please submit at most %d forms." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" + +#, python-format +msgid "Please submit at least %d form." +msgid_plural "Please submit at least %d forms." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" + +msgid "Order" +msgstr "Urzh" + +msgid "Delete" +msgstr "Diverkañ" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "Reizhit ar roadennoù e doubl e %(field)s." + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "" +"Reizhit ar roadennoù e doubl e %(field)s, na zle bezañ enni nemet talvoudoù " +"dzho o-unan." + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"Reizhit ar roadennoù e doubl e %(field_name)s a rank bezañ ennañ talvodoù en " +"o-unan evit lodenn %(lookup)s %(date_field)s." + +msgid "Please correct the duplicate values below." +msgstr "Reizhañ ar roadennoù e doubl zo a-is" + +msgid "The inline value did not match the parent instance." +msgstr "" + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "Diuzit un dibab reizh. N'emañ ket an dibab-mañ e-touez ar re bosupl." + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "" + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" + +msgid "Clear" +msgstr "Riñsañ" + +msgid "Currently" +msgstr "Evit ar mare" + +msgid "Change" +msgstr "Kemmañ" + +msgid "Unknown" +msgstr "Dianav" + +msgid "Yes" +msgstr "Ya" + +msgid "No" +msgstr "Ket" + +#. Translators: Please do not add spaces around commas. +msgid "yes,no,maybe" +msgstr "ya,ket,marteze" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)d okted" +msgstr[1] "%(size)d okted" +msgstr[2] "%(size)d okted" +msgstr[3] "%(size)d okted" +msgstr[4] "%(size)d okted" + +#, python-format +msgid "%s KB" +msgstr "%s KB" + +#, python-format +msgid "%s MB" +msgstr "%s MB" + +#, python-format +msgid "%s GB" +msgstr "%s GB" + +#, python-format +msgid "%s TB" +msgstr "%s TB" + +#, python-format +msgid "%s PB" +msgstr "%s PB" + +msgid "p.m." +msgstr "g.m." + +msgid "a.m." +msgstr "mintin" + +msgid "PM" +msgstr "G.M." + +msgid "AM" +msgstr "Mintin" + +msgid "midnight" +msgstr "hanternoz" + +msgid "noon" +msgstr "kreisteiz" + +msgid "Monday" +msgstr "Lun" + +msgid "Tuesday" +msgstr "Meurzh" + +msgid "Wednesday" +msgstr "Merc'her" + +msgid "Thursday" +msgstr "Yaou" + +msgid "Friday" +msgstr "Gwener" + +msgid "Saturday" +msgstr "Sadorn" + +msgid "Sunday" +msgstr "Sul" + +msgid "Mon" +msgstr "Lun" + +msgid "Tue" +msgstr "Meu" + +msgid "Wed" +msgstr "Mer" + +msgid "Thu" +msgstr "Yao" + +msgid "Fri" +msgstr "Gwe" + +msgid "Sat" +msgstr "Sad" + +msgid "Sun" +msgstr "Sul" + +msgid "January" +msgstr "Genver" + +msgid "February" +msgstr "C'hwevrer" + +msgid "March" +msgstr "Meurzh" + +msgid "April" +msgstr "Ebrel" + +msgid "May" +msgstr "Mae" + +msgid "June" +msgstr "Mezheven" + +msgid "July" +msgstr "Gouere" + +msgid "August" +msgstr "Eost" + +msgid "September" +msgstr "Gwengolo" + +msgid "October" +msgstr "Here" + +msgid "November" +msgstr "Du" + +msgid "December" +msgstr "Kerzu" + +msgid "jan" +msgstr "Gen" + +msgid "feb" +msgstr "C'hwe" + +msgid "mar" +msgstr "Meu" + +msgid "apr" +msgstr "Ebr" + +msgid "may" +msgstr "Mae" + +msgid "jun" +msgstr "Mez" + +msgid "jul" +msgstr "Gou" + +msgid "aug" +msgstr "Eos" + +msgid "sep" +msgstr "Gwe" + +msgid "oct" +msgstr "Her" + +msgid "nov" +msgstr "Du" + +msgid "dec" +msgstr "Kzu" + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "Gen." + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "C'hwe." + +msgctxt "abbrev. month" +msgid "March" +msgstr "Meu." + +msgctxt "abbrev. month" +msgid "April" +msgstr "Ebr." + +msgctxt "abbrev. month" +msgid "May" +msgstr "Mae" + +msgctxt "abbrev. month" +msgid "June" +msgstr "Mez." + +msgctxt "abbrev. month" +msgid "July" +msgstr "Gou." + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "Eos." + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "Gwe." + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "Her." + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "Du" + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "Kzu" + +msgctxt "alt. month" +msgid "January" +msgstr "Genver" + +msgctxt "alt. month" +msgid "February" +msgstr "C'hwevrer" + +msgctxt "alt. month" +msgid "March" +msgstr "Meurzh" + +msgctxt "alt. month" +msgid "April" +msgstr "Ebrel" + +msgctxt "alt. month" +msgid "May" +msgstr "Mae" + +msgctxt "alt. month" +msgid "June" +msgstr "Mezheven" + +msgctxt "alt. month" +msgid "July" +msgstr "Gouere" + +msgctxt "alt. month" +msgid "August" +msgstr "Eost" + +msgctxt "alt. month" +msgid "September" +msgstr "Gwengolo" + +msgctxt "alt. month" +msgid "October" +msgstr "Here" + +msgctxt "alt. month" +msgid "November" +msgstr "Du" + +msgctxt "alt. month" +msgid "December" +msgstr "Kerzu" + +msgid "This is not a valid IPv6 address." +msgstr "" + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "" + +msgid "or" +msgstr "pe" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr "," + +#, python-format +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" + +#, python-format +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" + +#, python-format +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" + +#, python-format +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" + +#, python-format +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" + +#, python-format +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" + +msgid "Forbidden" +msgstr "Difennet" + +msgid "CSRF verification failed. Request aborted." +msgstr "" + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" + +msgid "More information is available with DEBUG=True." +msgstr "" + +msgid "No year specified" +msgstr "N'eus bet resisaet bloavezh ebet" + +msgid "Date out of range" +msgstr "" + +msgid "No month specified" +msgstr "N'eus bet resisaet miz ebet" + +msgid "No day specified" +msgstr "N'eus bet resisaet deiz ebet" + +msgid "No week specified" +msgstr "N'eus bet resisaet sizhun ebet" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "N'eus %(verbose_name_plural)s ebet da gaout." + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" +"En dazont ne vo ket a %(verbose_name_plural)s rak faos eo %(class_name)s." +"allow_future." + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "" +"N'eus bet kavet traezenn %(verbose_name)s ebet o klotaén gant ar goulenn" + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "" + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "" + +msgid "Directory indexes are not allowed here." +msgstr "N'haller ket diskwel endalc'had ar c'havlec'h-mañ." + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "" + +#, python-format +msgid "Index of %(directory)s" +msgstr "Meneger %(directory)s" + +msgid "The install worked successfully! Congratulations!" +msgstr "" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not configured any " +"URLs." +msgstr "" + +msgid "Django Documentation" +msgstr "" + +msgid "Topics, references, & how-to’s" +msgstr "" + +msgid "Tutorial: A Polling App" +msgstr "" + +msgid "Get started with Django" +msgstr "" + +msgid "Django Community" +msgstr "" + +msgid "Connect, get help, or contribute" +msgstr "" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/bs/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/conf/locale/bs/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..064cc5d8e1e13fe22f215d03fbb7f564f47ff18c GIT binary patch literal 10824 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, 2011 +# Jannis Leidel , 2011 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-09-27 22:40+0200\n" +"PO-Revision-Date: 2019-11-05 00:38+0000\n" +"Last-Translator: Ramiro Morales\n" +"Language-Team: Bosnian (http://www.transifex.com/django/django/language/" +"bs/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: bs\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +msgid "Afrikaans" +msgstr "" + +msgid "Arabic" +msgstr "arapski" + +msgid "Asturian" +msgstr "" + +msgid "Azerbaijani" +msgstr "Azerbejdžanski" + +msgid "Bulgarian" +msgstr "bugarski" + +msgid "Belarusian" +msgstr "" + +msgid "Bengali" +msgstr "bengalski" + +msgid "Breton" +msgstr "" + +msgid "Bosnian" +msgstr "bosanski" + +msgid "Catalan" +msgstr "katalonski" + +msgid "Czech" +msgstr "češki" + +msgid "Welsh" +msgstr "velški" + +msgid "Danish" +msgstr "danski" + +msgid "German" +msgstr "njemački" + +msgid "Lower Sorbian" +msgstr "" + +msgid "Greek" +msgstr "grčki" + +msgid "English" +msgstr "engleski" + +msgid "Australian English" +msgstr "" + +msgid "British English" +msgstr "Britanski engleski" + +msgid "Esperanto" +msgstr "" + +msgid "Spanish" +msgstr "španski" + +msgid "Argentinian Spanish" +msgstr "Argentinski španski" + +msgid "Colombian Spanish" +msgstr "" + +msgid "Mexican Spanish" +msgstr "Meksički španski" + +msgid "Nicaraguan Spanish" +msgstr "Nikuaraganski španski" + +msgid "Venezuelan Spanish" +msgstr "" + +msgid "Estonian" +msgstr "estonski" + +msgid "Basque" +msgstr "baskijski" + +msgid "Persian" +msgstr "persijski" + +msgid "Finnish" +msgstr "finski" + +msgid "French" +msgstr "francuski" + +msgid "Frisian" +msgstr "frišanski" + +msgid "Irish" +msgstr "irski" + +msgid "Scottish Gaelic" +msgstr "" + +msgid "Galician" +msgstr "galski" + +msgid "Hebrew" +msgstr "hebrejski" + +msgid "Hindi" +msgstr "hindi" + +msgid "Croatian" +msgstr "hrvatski" + +msgid "Upper Sorbian" +msgstr "" + +msgid "Hungarian" +msgstr "mađarski" + +msgid "Armenian" +msgstr "" + +msgid "Interlingua" +msgstr "" + +msgid "Indonesian" +msgstr "Indonežanski" + +msgid "Ido" +msgstr "" + +msgid "Icelandic" +msgstr "islandski" + +msgid "Italian" +msgstr "italijanski" + +msgid "Japanese" +msgstr "japanski" + +msgid "Georgian" +msgstr "gruzijski" + +msgid "Kabyle" +msgstr "" + +msgid "Kazakh" +msgstr "" + +msgid "Khmer" +msgstr "kambođanski" + +msgid "Kannada" +msgstr "kanada" + +msgid "Korean" +msgstr "korejski" + +msgid "Luxembourgish" +msgstr "" + +msgid "Lithuanian" +msgstr "litvanski" + +msgid "Latvian" +msgstr "latvijski" + +msgid "Macedonian" +msgstr "makedonski" + +msgid "Malayalam" +msgstr "Malajalamski" + +msgid "Mongolian" +msgstr "Mongolski" + +msgid "Marathi" +msgstr "" + +msgid "Burmese" +msgstr "" + +msgid "Norwegian Bokmål" +msgstr "" + +msgid "Nepali" +msgstr "" + +msgid "Dutch" +msgstr "holandski" + +msgid "Norwegian Nynorsk" +msgstr "Norveški novi" + +msgid "Ossetic" +msgstr "" + +msgid "Punjabi" +msgstr "Pandžabi" + +msgid "Polish" +msgstr "poljski" + +msgid "Portuguese" +msgstr "portugalski" + +msgid "Brazilian Portuguese" +msgstr "brazilski portugalski" + +msgid "Romanian" +msgstr "rumunski" + +msgid "Russian" +msgstr "ruski" + +msgid "Slovak" +msgstr "slovački" + +msgid "Slovenian" +msgstr "slovenački" + +msgid "Albanian" +msgstr "albanski" + +msgid "Serbian" +msgstr "srpski" + +msgid "Serbian Latin" +msgstr "srpski latinski" + +msgid "Swedish" +msgstr "švedski" + +msgid "Swahili" +msgstr "" + +msgid "Tamil" +msgstr "tamilski" + +msgid "Telugu" +msgstr "telugu" + +msgid "Thai" +msgstr "tajlandski" + +msgid "Turkish" +msgstr "turski" + +msgid "Tatar" +msgstr "" + +msgid "Udmurt" +msgstr "" + +msgid "Ukrainian" +msgstr "ukrajinski" + +msgid "Urdu" +msgstr "Urdu" + +msgid "Uzbek" +msgstr "" + +msgid "Vietnamese" +msgstr "vijetnamežanski" + +msgid "Simplified Chinese" +msgstr "novokineski" + +msgid "Traditional Chinese" +msgstr "starokineski" + +msgid "Messages" +msgstr "" + +msgid "Site Maps" +msgstr "" + +msgid "Static Files" +msgstr "" + +msgid "Syndication" +msgstr "" + +msgid "That page number is not an integer" +msgstr "" + +msgid "That page number is less than 1" +msgstr "" + +msgid "That page contains no results" +msgstr "" + +msgid "Enter a valid value." +msgstr "Unesite ispravnu vrijednost." + +msgid "Enter a valid URL." +msgstr "Unesite ispravan URL." + +msgid "Enter a valid integer." +msgstr "" + +msgid "Enter a valid email address." +msgstr "" + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" + +msgid "Enter a valid IPv4 address." +msgstr "Unesite ispravnu IPv4 adresu." + +msgid "Enter a valid IPv6 address." +msgstr "" + +msgid "Enter a valid IPv4 or IPv6 address." +msgstr "" + +msgid "Enter only digits separated by commas." +msgstr "Unesite samo brojke razdvojene zapetama." + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "" +"Pobrinite se da je ova vrijednost %(limit_value)s (trenutno je " +"%(show_value)s)." + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "Ova vrijednost mora da bude manja ili jednaka %(limit_value)s." + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "Ova vrijednost mora biti veća ili jednaka %(limit_value)s." + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +msgid "Enter a number." +msgstr "Unesite broj." + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" + +msgid "Null characters are not allowed." +msgstr "" + +msgid "and" +msgstr "i" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "" + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "" + +msgid "This field cannot be null." +msgstr "Ovo polje ne može ostati prazno." + +msgid "This field cannot be blank." +msgstr "Ovo polje ne može biti prazno." + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "%(model_name)s sa ovom vrijednošću %(field_label)s već postoji." + +#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'. +#. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "Polje tipa: %(field_type)s" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "" + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "" + +msgid "Boolean (Either True or False)" +msgstr "Bulova vrijednost (True ili False)" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "String (najviše %(max_length)s znakova)" + +msgid "Comma-separated integers" +msgstr "Cijeli brojevi razdvojeni zapetama" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" + +msgid "Date (without time)" +msgstr "Datum (bez vremena)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" + +msgid "Date (with time)" +msgstr "Datum (sa vremenom)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "" + +msgid "Decimal number" +msgstr "Decimalni broj" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" + +msgid "Duration" +msgstr "" + +msgid "Email address" +msgstr "Email adresa" + +msgid "File path" +msgstr "Putanja fajla" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "" + +msgid "Floating point number" +msgstr "Broj sa pokrenom zapetom" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "" + +msgid "Integer" +msgstr "Cijeo broj" + +msgid "Big (8 byte) integer" +msgstr "Big (8 bajtni) integer" + +msgid "IPv4 address" +msgstr "" + +msgid "IP address" +msgstr "IP adresa" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "" + +msgid "Boolean (Either True, False or None)" +msgstr "Bulova vrijednost (True, False ili None)" + +msgid "Positive integer" +msgstr "" + +msgid "Positive small integer" +msgstr "" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "" + +msgid "Small integer" +msgstr "" + +msgid "Text" +msgstr "Tekst" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" + +msgid "Time" +msgstr "Vrijeme" + +msgid "URL" +msgstr "URL" + +msgid "Raw binary data" +msgstr "" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "" + +msgid "Universally unique identifier" +msgstr "" + +msgid "File" +msgstr "" + +msgid "Image" +msgstr "" + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "" + +msgid "Foreign Key (type determined by related field)" +msgstr "Strani ključ (tip određen povezanim poljem)" + +msgid "One-to-one relationship" +msgstr "Jedan-na-jedan odnos" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "" + +msgid "Many-to-many relationship" +msgstr "Više-na-više odsnos" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr "" + +msgid "This field is required." +msgstr "Ovo polje se mora popuniti." + +msgid "Enter a whole number." +msgstr "Unesite cijeo broj." + +msgid "Enter a valid date." +msgstr "Unesite ispravan datum." + +msgid "Enter a valid time." +msgstr "Unesite ispravno vrijeme" + +msgid "Enter a valid date/time." +msgstr "Unesite ispravan datum/vrijeme." + +msgid "Enter a valid duration." +msgstr "" + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "" + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "Fajl nije prebačen. Provjerite tip enkodiranja formulara." + +msgid "No file was submitted." +msgstr "Fajl nije prebačen." + +msgid "The submitted file is empty." +msgstr "Prebačen fajl je prazan." + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "" + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" +"Prebacite ispravan fajl. Fajl koji je prebačen ili nije slika, ili je " +"oštećen." + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "" +"%(value)s nije među ponuđenim vrijednostima. Odaberite jednu od ponuđenih." + +msgid "Enter a list of values." +msgstr "Unesite listu vrijednosti." + +msgid "Enter a complete value." +msgstr "" + +msgid "Enter a valid UUID." +msgstr "" + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr "" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "" + +msgid "ManagementForm data is missing or has been tampered with" +msgstr "" + +#, python-format +msgid "Please submit %d or fewer forms." +msgid_plural "Please submit %d or fewer forms." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#, python-format +msgid "Please submit %d or more forms." +msgid_plural "Please submit %d or more forms." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +msgid "Order" +msgstr "Redoslijed" + +msgid "Delete" +msgstr "Obriši" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "Ispravite dupli sadržaj za polja: %(field)s." + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "" +"Ispravite dupli sadržaj za polja: %(field)s, koji mora da bude jedinstven." + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"Ispravite dupli sadržaj za polja: %(field_name)s, koji mora da bude " +"jedinstven za %(lookup)s u %(date_field)s." + +msgid "Please correct the duplicate values below." +msgstr "Ispravite duple vrijednosti dole." + +msgid "The inline value did not match the parent instance." +msgstr "" + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "" +"Odabrana vrijednost nije među ponuđenima. Odaberite jednu od ponuđenih." + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "" + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" + +msgid "Clear" +msgstr "Očisti" + +msgid "Currently" +msgstr "Trenutno" + +msgid "Change" +msgstr "Izmjeni" + +msgid "Unknown" +msgstr "Nepoznato" + +msgid "Yes" +msgstr "Da" + +msgid "No" +msgstr "Ne" + +msgid "Year" +msgstr "" + +msgid "Month" +msgstr "" + +msgid "Day" +msgstr "" + +msgid "yes,no,maybe" +msgstr "da,ne,možda" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#, python-format +msgid "%s KB" +msgstr "%s KB" + +#, python-format +msgid "%s MB" +msgstr "%s MB" + +#, python-format +msgid "%s GB" +msgstr "%s GB" + +#, python-format +msgid "%s TB" +msgstr "%s TB" + +#, python-format +msgid "%s PB" +msgstr "%s PB" + +msgid "p.m." +msgstr "po p." + +msgid "a.m." +msgstr "prije p." + +msgid "PM" +msgstr "PM" + +msgid "AM" +msgstr "AM" + +msgid "midnight" +msgstr "ponoć" + +msgid "noon" +msgstr "podne" + +msgid "Monday" +msgstr "ponedjeljak" + +msgid "Tuesday" +msgstr "utorak" + +msgid "Wednesday" +msgstr "srijeda" + +msgid "Thursday" +msgstr "četvrtak" + +msgid "Friday" +msgstr "petak" + +msgid "Saturday" +msgstr "subota" + +msgid "Sunday" +msgstr "nedjelja" + +msgid "Mon" +msgstr "pon." + +msgid "Tue" +msgstr "uto." + +msgid "Wed" +msgstr "sri." + +msgid "Thu" +msgstr "čet." + +msgid "Fri" +msgstr "pet." + +msgid "Sat" +msgstr "sub." + +msgid "Sun" +msgstr "ned." + +msgid "January" +msgstr "januar" + +msgid "February" +msgstr "februar" + +msgid "March" +msgstr "mart" + +msgid "April" +msgstr "april" + +msgid "May" +msgstr "maj" + +msgid "June" +msgstr "juni" + +msgid "July" +msgstr "juli" + +msgid "August" +msgstr "august" + +msgid "September" +msgstr "septembar" + +msgid "October" +msgstr "oktobar" + +msgid "November" +msgstr "novembar" + +msgid "December" +msgstr "decembar" + +msgid "jan" +msgstr "jan." + +msgid "feb" +msgstr "feb." + +msgid "mar" +msgstr "mar." + +msgid "apr" +msgstr "apr." + +msgid "may" +msgstr "maj." + +msgid "jun" +msgstr "jun." + +msgid "jul" +msgstr "jul." + +msgid "aug" +msgstr "aug." + +msgid "sep" +msgstr "sep." + +msgid "oct" +msgstr "okt." + +msgid "nov" +msgstr "nov." + +msgid "dec" +msgstr "dec." + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "Jan." + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "Feb." + +msgctxt "abbrev. month" +msgid "March" +msgstr "Mart" + +msgctxt "abbrev. month" +msgid "April" +msgstr "April" + +msgctxt "abbrev. month" +msgid "May" +msgstr "Maj" + +msgctxt "abbrev. month" +msgid "June" +msgstr "Juni" + +msgctxt "abbrev. month" +msgid "July" +msgstr "juli" + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "august" + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "septembar" + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "oktobar" + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "novembar" + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "decembar" + +msgctxt "alt. month" +msgid "January" +msgstr "januar" + +msgctxt "alt. month" +msgid "February" +msgstr "februar" + +msgctxt "alt. month" +msgid "March" +msgstr "mart" + +msgctxt "alt. month" +msgid "April" +msgstr "april" + +msgctxt "alt. month" +msgid "May" +msgstr "maj" + +msgctxt "alt. month" +msgid "June" +msgstr "juni" + +msgctxt "alt. month" +msgid "July" +msgstr "juli" + +msgctxt "alt. month" +msgid "August" +msgstr "august" + +msgctxt "alt. month" +msgid "September" +msgstr "septembar" + +msgctxt "alt. month" +msgid "October" +msgstr "oktobar" + +msgctxt "alt. month" +msgid "November" +msgstr "Novembar" + +msgctxt "alt. month" +msgid "December" +msgstr "decembar" + +msgid "This is not a valid IPv6 address." +msgstr "" + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "" + +msgid "or" +msgstr "ili" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr ", " + +#, python-format +msgid "%d year" +msgid_plural "%d years" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#, python-format +msgid "%d month" +msgid_plural "%d months" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#, python-format +msgid "%d week" +msgid_plural "%d weeks" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#, python-format +msgid "%d day" +msgid_plural "%d days" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#, python-format +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#, python-format +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +msgid "0 minutes" +msgstr "" + +msgid "Forbidden" +msgstr "" + +msgid "CSRF verification failed. Request aborted." +msgstr "" + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your Web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" + +msgid "More information is available with DEBUG=True." +msgstr "" + +msgid "No year specified" +msgstr "Godina nije naznačena" + +msgid "Date out of range" +msgstr "" + +msgid "No month specified" +msgstr "Mjesec nije naznačen" + +msgid "No day specified" +msgstr "Dan nije naznačen" + +msgid "No week specified" +msgstr "Sedmica nije naznačena" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "" + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "" + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "" + +msgid "Directory indexes are not allowed here." +msgstr "" + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "" + +#, python-format +msgid "Index of %(directory)s" +msgstr "" + +msgid "Django: the Web framework for perfectionists with deadlines." +msgstr "" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" + +msgid "The install worked successfully! Congratulations!" +msgstr "" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not configured any " +"URLs." +msgstr "" + +msgid "Django Documentation" +msgstr "" + +msgid "Topics, references, & how-to’s" +msgstr "" + +msgid "Tutorial: A Polling App" +msgstr "" + +msgid "Get started with Django" +msgstr "" + +msgid "Django Community" +msgstr "" + +msgid "Connect, get help, or contribute" +msgstr "" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/bs/__init__.py b/venv/lib/python3.12/site-packages/django/conf/locale/bs/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/bs/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/bs/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..db3881f6d8a4e8fb94e906b973e24e68ae5eabcd GIT binary patch literal 198 zcmX@j%ge<81o5sX(m?cM5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!O4ZNE&rQ|OP0Yy6 zFHO;RNiEZNN=(kybEFQ_cZ$j>v@Gc?jK&MZmQEdVM^ zOiwM=Pssu+OwP|s)6dCIPRvQwPb$`rkI&4@EQycTE2#X%VUwGmQks)$SHudml@W-G PL5z>gjEsy$%s>_Z#f&t7 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/bs/__pycache__/formats.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/bs/__pycache__/formats.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3c5757d42b7dabd93d178ca0b0790daf76c40208 GIT binary patch literal 468 zcmYk2%TB^j5Qa~oT!e5bmjrdw7&j!+6E$&Rj7hacNGvs_F4|2~IOS$9gaQd&@fJRV zkKxY54elDYz5oe3R-URTvzYwfKQrfK<~@~402~_s)_Dy9@EO21h+nZj#^MVneQN2eLoJvC7t=nl(|9 zwcS@Kj=!x7?7i0HA6SW%MQNFnYvN;*ZE*kI3s?t>ZxHM`mH{ojXE_rDIb#ZM^!8JQ zw-Icay4`i))Uc<}?6=@>Htsq0Idggj-Tv693~{60HC%`W-;Hg@?m*LN>!tx)F6=lX zOCP(;aJGqGSq_?*#`P$JKMhXqUf{F}69lnJfJ|wg^wW8qa!2!wUpQC*%FpjFK-MoD TV!g_NVkz*7r4NuBrSRw%Z#9I8 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/bs/formats.py b/venv/lib/python3.12/site-packages/django/conf/locale/bs/formats.py new file mode 100644 index 0000000000..a15e7099e4 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/bs/formats.py @@ -0,0 +1,21 @@ +# This file is distributed under the same license as the Django package. +# +# The *_FORMAT strings use the Django date format syntax, +# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date +DATE_FORMAT = "j. N Y." +TIME_FORMAT = "G:i" +DATETIME_FORMAT = "j. N. Y. G:i T" +YEAR_MONTH_FORMAT = "F Y." +MONTH_DAY_FORMAT = "j. F" +SHORT_DATE_FORMAT = "Y M j" +# SHORT_DATETIME_FORMAT = +# FIRST_DAY_OF_WEEK = + +# The *_INPUT_FORMATS strings use the Python strftime format syntax, +# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior +# DATE_INPUT_FORMATS = +# TIME_INPUT_FORMATS = +# DATETIME_INPUT_FORMATS = +DECIMAL_SEPARATOR = "," +THOUSAND_SEPARATOR = "." +# NUMBER_GROUPING = diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/ca/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/conf/locale/ca/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..208f4a4e00552da13602bc4474dcc8fa068b8cdc GIT binary patch literal 27707 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≧Zu#LyP}g#zkl@v*K~WP^CZUXLOe)Q5$eF?y)VjS9GUp{u z6)@rU$@fXWbRZeKfM=W=jdC}ObE7=fs>~@aX=Z?keRnXj8AL7T-KfQ~q82~F;bz<` z8sA3g5+&So(Uk@g6zPQ8f)qVVx^X4};!d6SMzwTxkIQMi8%Me4u_(xwB@qf%1>@LgL|&t4=xzv~D;USDt#p_ji$Vf_5N{PT zPq?8sl~}!?M&*o|2;Jp}f@qEyl69^@Hr7;OJsl(N<#Bdw%nkPKrpu#F=b1bnbGh7Q zvO$CuG@{AdwOD>&JZtiXRTxPv!LJf7K`-P_mR){8joNnfs=~cUF(`0)sVX#!QG6~~ zA?zwp2*eBP!9C1O8pfwe&?8dAx{_rRlQDuI>P1v`bK;I$+=%ninp8D&Y&148F%cE* zW5(7DqmbUs@6Bu{=~8ZIuelQ|6^AL}-W*Q5*vT+&## zNgNF^F%so3;}6QdC!StlQjGr9-|jr$ZO0QoW z+<8)34ZU#!SYF-YMp=;?r6#n^{L%2L#H8A=sv?^XGgoXSjt@*P4OjYZJ6n0&_!&B* zL*Zff!WHdyW;ta5YA@7uvTUADjiy59XNk3j<11*US8%PhU9d-QZWo_0;uvlVyI>Kr zqZZa-*V@@G?1sP%C&ALO!5NTS+n23pru59JIMX*BlFk_up#y)_yl26$IEPHG6rFuW zGKna|8ekggG2R1pnLD_5tjmtmpqF|DV&SS1M@*9AG@ZP|d1C5}avQl48;eON_LN#D z!ki8m%;M&1o29Eks|b528Ae?5M3{j&dhOXKhK(;~5tW`*WHU)_Hpd2UmQy$E$_tgn z{Ay~7@f&fMBgLJjdsE}Sm2*bx*}K!|xV5@NwM;>)XPY2bhk{1nly zy+jCoLT=2fB~O?P8yPXdNg^rsT1k$uGz2R{fgKfVf8;D;(bzYI$$RO?N>RGbxt4P? zvyh8#8-i^WSN5=oIjXZonO0`!c8=%0Yi8ymQ<|w_PBq6u)8uPUGJbyt6RsL}&$>&R z5J6F9%iX%W*5%_o-lopez%QelR0_va{@eWr5aef zy=Ofu#>V0}j!0eBf+w9=VykO4JL0kvuI1{DogVr*nf$Her!D~ub-@>{ zm;qnVp zZiX^4-DdJ$*3m3=(CQ6Z&nLm;M+_%g>wG`+MzNVRx3##1aya55>h+0TRJdP2Vdn~+ z7sJ+BS`-poJR1z7xd60=;~*^CzJ^TN)r>OA| zH9Qp(L^IcQm+{Y&TwyPg#D*m*%WmTpAX8R8%**D1zR9+dygE3^y`)i^$HRy!vWsf{ zI?5~&)frPqV0XN@qw^hYD(+gdkm;MMKWZ~ge#FdnLvw8PG3Bt1w7wO28_30CSPY)5 z{4Ul~og$gp0itd;sZo~WnmDYH19XLDG<$u(Qi9fxa5h`VL{r9sWt>{M0Ao_5z^E`P zp;hFW7U?8=F)z*TiNK6fAK2SenIUkhFoKQ!$(@lrP?NHOy4?Fd$aWJ$`v}ouq7r;y z`Uu%+Z3Aq|zS+XFusGRruE?Uf?{xit>vswt(Jd!;2aZ#-?4%h7Q+qxbQqqN)m`7Fa zrp*j8&Ku9u-eIh&y~UW#Ako7(kgk?Rgx@IY4;n|m(HZ-tGa7GCO|s+5}5BdN_Y*yb=5(j#<#{h>!KHNj_av_#M- zM@6Z0)NGU+{$x&-bTpm3TV9pc@y6@Wk2mF1*87PMEJP?yWqbk0K}%y{uG>$RuHZ1v6H zO8DGV-0Y}7LmP6f%z2%S5wuKV`>bS^Cfol`F(4ySG-t$mSJK9Ha;|LiuAF5gYN1)) zD4*OB&*E0e2A}*`b7hSiS9asWc4>^Dbq!`~VE1#5!vk2kLT%ZXUvp-L}C= Thcz4novyp&L6Y;Zb$kB}Jy~|{ literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/ca/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/conf/locale/ca/LC_MESSAGES/django.po new file mode 100644 index 0000000000..01e4dda27a --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/ca/LC_MESSAGES/django.po @@ -0,0 +1,1340 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Antoni Aloy , 2012,2015-2017,2021-2022 +# Carles Barrobés , 2011-2012,2014,2020 +# duub qnnp, 2015 +# Emilio Carrion, 2022 +# Gil Obradors Via , 2019 +# Gil Obradors Via , 2019 +# Jannis Leidel , 2011 +# Manel Clos , 2020 +# Manuel Miranda , 2015 +# Mariusz Felisiak , 2021 +# Roger Pons , 2015 +# Santiago Lamora , 2020 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2022-05-17 05:23-0500\n" +"PO-Revision-Date: 2022-07-25 06:49+0000\n" +"Last-Translator: Emilio Carrion\n" +"Language-Team: Catalan (http://www.transifex.com/django/django/language/" +"ca/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ca\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Afrikaans" +msgstr "Afrikans" + +msgid "Arabic" +msgstr "àrab" + +msgid "Algerian Arabic" +msgstr "àrab argelià" + +msgid "Asturian" +msgstr "Asturià" + +msgid "Azerbaijani" +msgstr "azerbaijanès" + +msgid "Bulgarian" +msgstr "búlgar" + +msgid "Belarusian" +msgstr "Bielorús" + +msgid "Bengali" +msgstr "bengalí" + +msgid "Breton" +msgstr "Bretó" + +msgid "Bosnian" +msgstr "bosnià" + +msgid "Catalan" +msgstr "català" + +msgid "Czech" +msgstr "txec" + +msgid "Welsh" +msgstr "gal·lès" + +msgid "Danish" +msgstr "danès" + +msgid "German" +msgstr "alemany" + +msgid "Lower Sorbian" +msgstr "baix serbi" + +msgid "Greek" +msgstr "grec" + +msgid "English" +msgstr "anglès" + +msgid "Australian English" +msgstr "Anglès d'Austràlia" + +msgid "British English" +msgstr "anglès britànic" + +msgid "Esperanto" +msgstr "Esperanto" + +msgid "Spanish" +msgstr "castellà" + +msgid "Argentinian Spanish" +msgstr "castellà d'Argentina" + +msgid "Colombian Spanish" +msgstr "castellà de Colombia" + +msgid "Mexican Spanish" +msgstr "castellà de Mèxic" + +msgid "Nicaraguan Spanish" +msgstr "castellà de Nicaragua" + +msgid "Venezuelan Spanish" +msgstr "castellà de Veneçuela" + +msgid "Estonian" +msgstr "estonià" + +msgid "Basque" +msgstr "èuscar" + +msgid "Persian" +msgstr "persa" + +msgid "Finnish" +msgstr "finlandès" + +msgid "French" +msgstr "francès" + +msgid "Frisian" +msgstr "frisi" + +msgid "Irish" +msgstr "irlandès" + +msgid "Scottish Gaelic" +msgstr "Gaèlic escocès" + +msgid "Galician" +msgstr "gallec" + +msgid "Hebrew" +msgstr "hebreu" + +msgid "Hindi" +msgstr "hindi" + +msgid "Croatian" +msgstr "croat" + +msgid "Upper Sorbian" +msgstr "alt serbi" + +msgid "Hungarian" +msgstr "hongarès" + +msgid "Armenian" +msgstr "Armeni" + +msgid "Interlingua" +msgstr "Interlingua" + +msgid "Indonesian" +msgstr "indonesi" + +msgid "Igbo" +msgstr "lgbo" + +msgid "Ido" +msgstr "Ido" + +msgid "Icelandic" +msgstr "islandès" + +msgid "Italian" +msgstr "italià" + +msgid "Japanese" +msgstr "japonès" + +msgid "Georgian" +msgstr "georgià" + +msgid "Kabyle" +msgstr "Cabilenc" + +msgid "Kazakh" +msgstr "Kazakh" + +msgid "Khmer" +msgstr "khmer" + +msgid "Kannada" +msgstr "kannarès" + +msgid "Korean" +msgstr "coreà" + +msgid "Kyrgyz" +msgstr "Kyrgyz" + +msgid "Luxembourgish" +msgstr "Luxemburguès" + +msgid "Lithuanian" +msgstr "lituà" + +msgid "Latvian" +msgstr "letó" + +msgid "Macedonian" +msgstr "macedoni" + +msgid "Malayalam" +msgstr "malaiàlam " + +msgid "Mongolian" +msgstr "mongol" + +msgid "Marathi" +msgstr "Maratí" + +msgid "Malay" +msgstr "Malai" + +msgid "Burmese" +msgstr "Burmès" + +msgid "Norwegian Bokmål" +msgstr "Bokmål noruec" + +msgid "Nepali" +msgstr "nepalès" + +msgid "Dutch" +msgstr "holandès" + +msgid "Norwegian Nynorsk" +msgstr "noruec nynorsk" + +msgid "Ossetic" +msgstr "ossètic" + +msgid "Punjabi" +msgstr "panjabi" + +msgid "Polish" +msgstr "polonès" + +msgid "Portuguese" +msgstr "portuguès" + +msgid "Brazilian Portuguese" +msgstr "portuguès de brasil" + +msgid "Romanian" +msgstr "romanès" + +msgid "Russian" +msgstr "rus" + +msgid "Slovak" +msgstr "eslovac" + +msgid "Slovenian" +msgstr "eslovè" + +msgid "Albanian" +msgstr "albanès" + +msgid "Serbian" +msgstr "serbi" + +msgid "Serbian Latin" +msgstr "serbi llatí" + +msgid "Swedish" +msgstr "suec" + +msgid "Swahili" +msgstr "Swahili" + +msgid "Tamil" +msgstr "tàmil" + +msgid "Telugu" +msgstr "telugu" + +msgid "Tajik" +msgstr "Tajik" + +msgid "Thai" +msgstr "tailandès" + +msgid "Turkmen" +msgstr "Turkmen" + +msgid "Turkish" +msgstr "turc" + +msgid "Tatar" +msgstr "Tatar" + +msgid "Udmurt" +msgstr "Udmurt" + +msgid "Ukrainian" +msgstr "ucraïnès" + +msgid "Urdu" +msgstr "urdu" + +msgid "Uzbek" +msgstr "Uzbek" + +msgid "Vietnamese" +msgstr "vietnamita" + +msgid "Simplified Chinese" +msgstr "xinès simplificat" + +msgid "Traditional Chinese" +msgstr "xinès tradicional" + +msgid "Messages" +msgstr "Missatges" + +msgid "Site Maps" +msgstr "Mapes del lloc" + +msgid "Static Files" +msgstr "Arxius estàtics" + +msgid "Syndication" +msgstr "Sindicació" + +#. Translators: String used to replace omitted page numbers in elided page +#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10]. +msgid "…" +msgstr "..." + +msgid "That page number is not an integer" +msgstr "Aquest número de plana no és un enter" + +msgid "That page number is less than 1" +msgstr "El nombre de plana és inferior a 1" + +msgid "That page contains no results" +msgstr "La plana no conté cap resultat" + +msgid "Enter a valid value." +msgstr "Introduïu un valor vàlid." + +msgid "Enter a valid URL." +msgstr "Introduïu una URL vàlida." + +msgid "Enter a valid integer." +msgstr "Introduïu un enter vàlid." + +msgid "Enter a valid email address." +msgstr "Introdueix una adreça de correu electrònic vàlida" + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" +"Introduïu un 'slug' vàlid, consistent en lletres, números, guions o guions " +"baixos." + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" +"Introduïu un 'slug' vàlid format per lletres Unicode, números, guions o " +"guions baixos." + +msgid "Enter a valid IPv4 address." +msgstr "Introduïu una adreça IPv4 vàlida." + +msgid "Enter a valid IPv6 address." +msgstr "Entreu una adreça IPv6 vàlida." + +msgid "Enter a valid IPv4 or IPv6 address." +msgstr "Entreu una adreça IPv4 o IPv6 vàlida." + +msgid "Enter only digits separated by commas." +msgstr "Introduïu només dígits separats per comes." + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "" +"Assegureu-vos que aquest valor sigui %(limit_value)s (és %(show_value)s)." + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "" +"Assegureu-vos que aquest valor sigui menor o igual que %(limit_value)s." + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "" +"Assegureu-vos que aquest valor sigui més gran o igual que %(limit_value)s." + +#, python-format +msgid "Ensure this value is a multiple of step size %(limit_value)s." +msgstr "" +" \n" +"Asseguri's que aquest valor sigui un múltiple de %(limit_value)s." + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Assegureu-vos que aquest valor té almenys %(limit_value)d caràcter (en té " +"%(show_value)d)." +msgstr[1] "" +"Assegureu-vos que el valor tingui almenys %(limit_value)d caràcters (en té " +"%(show_value)d)." + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Assegureu-vos que aquest valor té com a molt %(limit_value)d caràcter (en té " +"%(show_value)d)." +msgstr[1] "" +"Assegureu-vos que aquest valor tingui com a molt %(limit_value)d caràcters " +"(en té %(show_value)d)." + +msgid "Enter a number." +msgstr "Introduïu un número." + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "Assegureu-vos que no hi ha més de %(max)s dígit en total." +msgstr[1] "Assegureu-vos que no hi hagi més de %(max)s dígits en total." + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "Assegureu-vos que no hi ha més de %(max)s decimal." +msgstr[1] "Assegureu-vos que no hi hagi més de %(max)s decimals." + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "" +"Assegureu-vos que no hi ha més de %(max)s dígit abans de la coma decimal." +msgstr[1] "" +"Assegureu-vos que no hi hagi més de %(max)s dígits abans de la coma decimal." + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" +"L'extensió d'arxiu “%(extension)s” no està permesa. Les extensions permeses " +"són: %(allowed_extensions)s." + +msgid "Null characters are not allowed." +msgstr "No es permeten caràcters nuls." + +msgid "and" +msgstr "i" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "Ja existeix %(model_name)s amb aquest %(field_labels)s." + +#, python-format +msgid "Constraint “%(name)s” is violated." +msgstr "La restricció %(name)s no es compleix." + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "El valor %(value)r no és una opció vàlida." + +msgid "This field cannot be null." +msgstr "Aquest camp no pot ser nul." + +msgid "This field cannot be blank." +msgstr "Aquest camp no pot estar en blanc." + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "Ja existeix %(model_name)s amb aquest %(field_label)s." + +#. Translators: The 'lookup_type' is one of 'date', 'year' or +#. 'month'. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" +"%(field_label)s ha de ser únic per a %(date_field_label)s i %(lookup_type)s." + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "Camp del tipus: %(field_type)s" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "El valor '%(value)s' ha de ser \"True\" o \"False\"." + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "El valor '%(value)s' ha de ser cert, fals o buid." + +msgid "Boolean (Either True or False)" +msgstr "Booleà (Cert o Fals)" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "Cadena (de fins a %(max_length)s)" + +msgid "Comma-separated integers" +msgstr "Enters separats per comes" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" +"El valor '%(value)s' no té un format de data vàlid. Ha de tenir el format " +"YYYY-MM-DD." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" +"El valor '%(value)s' té el format correcte (YYYY-MM-DD) però no és una data " +"vàlida." + +msgid "Date (without time)" +msgstr "Data (sense hora)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" +"El valor '%(value)s' no té un format vàlid. Ha de tenir el format YYYY-MM-DD " +"HH:MM[:ss[.uuuuuu]][TZ]." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" +"El valor '%(value)s' té el format correcte (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) però no és una data/hora vàlida." + +msgid "Date (with time)" +msgstr "Data (amb hora)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "El valor '%(value)s' ha de ser un nombre decimal." + +msgid "Decimal number" +msgstr "Número decimal" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" +"'El valor %(value)s' té un format invàlid. Ha d'estar en el format [DD] [HH:" +"[MM:]]ss[.uuuuuu] ." + +msgid "Duration" +msgstr "Durada" + +msgid "Email address" +msgstr "Adreça de correu electrònic" + +msgid "File path" +msgstr "Ruta del fitxer" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "El valor '%(value)s' ha de ser un número decimal." + +msgid "Floating point number" +msgstr "Número de coma flotant" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "El valor '%(value)s' ha de ser un nombre enter." + +msgid "Integer" +msgstr "Enter" + +msgid "Big (8 byte) integer" +msgstr "Enter gran (8 bytes)" + +msgid "Small integer" +msgstr "Enter petit" + +msgid "IPv4 address" +msgstr "Adreça IPv4" + +msgid "IP address" +msgstr "Adreça IP" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "El valor '%(value)s' ha de ser None, True o False." + +msgid "Boolean (Either True, False or None)" +msgstr "Booleà (Cert, Fals o Cap ('None'))" + +msgid "Positive big integer" +msgstr "Enter gran positiu" + +msgid "Positive integer" +msgstr "Enter positiu" + +msgid "Positive small integer" +msgstr "Enter petit positiu" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "Slug (fins a %(max_length)s)" + +msgid "Text" +msgstr "Text" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" +"El valor '%(value)s' no té un format vàlid. Ha de tenir el format HH:MM[:ss[." +"uuuuuu]]." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" +"El valor '%(value)s' té el format correcte (HH:MM[:ss[.uuuuuu]]) però no és " +"una hora vàlida." + +msgid "Time" +msgstr "Hora" + +msgid "URL" +msgstr "URL" + +msgid "Raw binary data" +msgstr "Dades binàries" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "'%(value)s' no és un UUID vàlid." + +msgid "Universally unique identifier" +msgstr "Identificador únic universal" + +msgid "File" +msgstr "Arxiu" + +msgid "Image" +msgstr "Imatge" + +msgid "A JSON object" +msgstr "Un objecte JSON" + +msgid "Value must be valid JSON." +msgstr "El valor ha de ser JSON vàlid." + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "La instància de %(model)s amb %(field)s %(value)r no existeix." + +msgid "Foreign Key (type determined by related field)" +msgstr "Clau forana (tipus determinat pel camp relacionat)" + +msgid "One-to-one relationship" +msgstr "Relació un-a-un" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "relació %(from)s-%(to)s " + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "relacions %(from)s-%(to)s " + +msgid "Many-to-many relationship" +msgstr "Relació molts-a-molts" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr ":?.!" + +msgid "This field is required." +msgstr "Aquest camp és obligatori." + +msgid "Enter a whole number." +msgstr "Introduïu un número enter." + +msgid "Enter a valid date." +msgstr "Introduïu una data vàlida." + +msgid "Enter a valid time." +msgstr "Introduïu una hora vàlida." + +msgid "Enter a valid date/time." +msgstr "Introduïu una data/hora vàlides." + +msgid "Enter a valid duration." +msgstr "Introduïu una durada vàlida." + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "El número de dies ha de ser entre {min_days} i {max_days}." + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "" +"No s'ha enviat cap fitxer. Comproveu el tipus de codificació del formulari." + +msgid "No file was submitted." +msgstr "No s'ha enviat cap fitxer." + +msgid "The submitted file is empty." +msgstr "El fitxer enviat està buit." + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" +"Aquest nom d'arxiu hauria de tenir com a molt %(max)d caràcter (en té " +"%(length)d)." +msgstr[1] "" +"Aquest nom d'arxiu hauria de tenir com a molt %(max)d caràcters (en té " +"%(length)d)." + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "" +"Si us plau, envieu un fitxer o marqueu la casella de selecció \"netejar\", " +"no ambdós." + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" +"Carregueu una imatge vàlida. El fitxer que heu carregat no era una imatge o " +"estava corrupte." + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "Esculliu una opció vàlida. %(value)s no és una de les opcions vàlides." + +msgid "Enter a list of values." +msgstr "Introduïu una llista de valors." + +msgid "Enter a complete value." +msgstr "Introduïu un valor complet." + +msgid "Enter a valid UUID." +msgstr "Intruduïu un UUID vàlid." + +msgid "Enter a valid JSON." +msgstr "Introduïu un JSON vàlid." + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr ":" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "(Camp ocult %(name)s) %(error)s" + +#, python-format +msgid "" +"ManagementForm data is missing or has been tampered with. Missing fields: " +"%(field_names)s. You may need to file a bug report if the issue persists." +msgstr "" +"Les dades de ManagementForm no hi són o han estat modificades. Camps que " +"falten: %(field_names)s. . Necessitaràs omplir una incidència si el problema " +"persisteix." + +#, python-format +msgid "Please submit at most %(num)d form." +msgid_plural "Please submit at most %(num)d forms." +msgstr[0] "Enviau com a màxim %(num)d formulari, si us plau." +msgstr[1] "Enviau com a màxim %(num)d formularis, si us plau." + +#, python-format +msgid "Please submit at least %(num)d form." +msgid_plural "Please submit at least %(num)d forms." +msgstr[0] "Enviau com a mínim %(num)d formulari, si us plau." +msgstr[1] "Enviau com a mínim %(num)d formularis, si us plau." + +msgid "Order" +msgstr "Ordre" + +msgid "Delete" +msgstr "Eliminar" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "Si us plau, corregiu la dada duplicada per a %(field)s." + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "" +"Si us plau, corregiu la dada duplicada per a %(field)s, la qual ha de ser " +"única." + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"Si us plau, corregiu la dada duplicada per a %(field_name)s, la qual ha de " +"ser única per a %(lookup)s en %(date_field)s." + +msgid "Please correct the duplicate values below." +msgstr "Si us plau, corregiu els valors duplicats a sota." + +msgid "The inline value did not match the parent instance." +msgstr "El valor en línia no coincideix amb la instància mare ." + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "" +"Esculliu una opció vàlida. La opció triada no és una de les opcions " +"disponibles." + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "\"%(pk)s\" no és un valor vàlid" + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" +"No s'ha pogut interpretar %(datetime)s a la zona horària " +"%(current_timezone)s; potser és ambigua o no existeix." + +msgid "Clear" +msgstr "Netejar" + +msgid "Currently" +msgstr "Actualment" + +msgid "Change" +msgstr "Modificar" + +msgid "Unknown" +msgstr "Desconegut" + +msgid "Yes" +msgstr "Sí" + +msgid "No" +msgstr "No" + +#. Translators: Please do not add spaces around commas. +msgid "yes,no,maybe" +msgstr "sí,no,potser" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)d byte" +msgstr[1] "%(size)d bytes" + +#, python-format +msgid "%s KB" +msgstr "%s KB" + +#, python-format +msgid "%s MB" +msgstr "%s MB" + +#, python-format +msgid "%s GB" +msgstr "%s GB" + +#, python-format +msgid "%s TB" +msgstr "%s TB" + +#, python-format +msgid "%s PB" +msgstr "%s PB" + +msgid "p.m." +msgstr "p.m." + +msgid "a.m." +msgstr "a.m." + +msgid "PM" +msgstr "PM" + +msgid "AM" +msgstr "AM" + +msgid "midnight" +msgstr "mitjanit" + +msgid "noon" +msgstr "migdia" + +msgid "Monday" +msgstr "Dilluns" + +msgid "Tuesday" +msgstr "Dimarts" + +msgid "Wednesday" +msgstr "Dimecres" + +msgid "Thursday" +msgstr "Dijous" + +msgid "Friday" +msgstr "Divendres" + +msgid "Saturday" +msgstr "Dissabte" + +msgid "Sunday" +msgstr "Diumenge" + +msgid "Mon" +msgstr "dl." + +msgid "Tue" +msgstr "dt." + +msgid "Wed" +msgstr "dc." + +msgid "Thu" +msgstr "dj." + +msgid "Fri" +msgstr "dv." + +msgid "Sat" +msgstr "ds." + +msgid "Sun" +msgstr "dg." + +msgid "January" +msgstr "gener" + +msgid "February" +msgstr "febrer" + +msgid "March" +msgstr "març" + +msgid "April" +msgstr "abril" + +msgid "May" +msgstr "maig" + +msgid "June" +msgstr "juny" + +msgid "July" +msgstr "juliol" + +msgid "August" +msgstr "agost" + +msgid "September" +msgstr "setembre" + +msgid "October" +msgstr "octubre" + +msgid "November" +msgstr "novembre" + +msgid "December" +msgstr "desembre" + +msgid "jan" +msgstr "gen." + +msgid "feb" +msgstr "feb." + +msgid "mar" +msgstr "març" + +msgid "apr" +msgstr "abr." + +msgid "may" +msgstr "maig" + +msgid "jun" +msgstr "juny" + +msgid "jul" +msgstr "jul." + +msgid "aug" +msgstr "ago." + +msgid "sep" +msgstr "set." + +msgid "oct" +msgstr "oct." + +msgid "nov" +msgstr "nov." + +msgid "dec" +msgstr "des." + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "Gen." + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "Feb." + +msgctxt "abbrev. month" +msgid "March" +msgstr "Març" + +msgctxt "abbrev. month" +msgid "April" +msgstr "Abr." + +msgctxt "abbrev. month" +msgid "May" +msgstr "Maig" + +msgctxt "abbrev. month" +msgid "June" +msgstr "Juny" + +msgctxt "abbrev. month" +msgid "July" +msgstr "Jul." + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "Ago." + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "Set." + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "Oct." + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "Nov." + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "Des." + +msgctxt "alt. month" +msgid "January" +msgstr "gener" + +msgctxt "alt. month" +msgid "February" +msgstr "febrer" + +msgctxt "alt. month" +msgid "March" +msgstr "març" + +msgctxt "alt. month" +msgid "April" +msgstr "abril" + +msgctxt "alt. month" +msgid "May" +msgstr "maig" + +msgctxt "alt. month" +msgid "June" +msgstr "juny" + +msgctxt "alt. month" +msgid "July" +msgstr "juliol" + +msgctxt "alt. month" +msgid "August" +msgstr "agost" + +msgctxt "alt. month" +msgid "September" +msgstr "setembre" + +msgctxt "alt. month" +msgid "October" +msgstr "octubre" + +msgctxt "alt. month" +msgid "November" +msgstr "novembre" + +msgctxt "alt. month" +msgid "December" +msgstr "desembre" + +msgid "This is not a valid IPv6 address." +msgstr "Aquesta no és una adreça IPv6 vàlida." + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "%(truncated_text)s…" + +msgid "or" +msgstr "o" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr ", " + +#, python-format +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "%(num)d any" +msgstr[1] "%(num)d anys" + +#, python-format +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "%(num)d mes" +msgstr[1] "%(num)d mesos" + +#, python-format +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "%(num)d setmana" +msgstr[1] "%(num)d setmanes" + +#, python-format +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "%(num)d dia" +msgstr[1] "%(num)d dies" + +#, python-format +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "%(num)d hora" +msgstr[1] "%(num)d hores" + +#, python-format +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "%(num)d minut" +msgstr[1] "%(num)d minuts" + +msgid "Forbidden" +msgstr "Prohibit" + +msgid "CSRF verification failed. Request aborted." +msgstr "La verificació de CSRF ha fallat. Petició abortada." + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" +"Esteu veient aquest missatge perquè aquest lloc HTTPS requereix que el " +"vostre navegador enviï una capçalera “Referer\", i no n'ha arribada cap. " +"Aquesta capçalera es requereix per motius de seguretat, per garantir que el " +"vostre navegador no està sent segrestat per tercers." + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" +"Si heu configurat el vostre navegador per deshabilitar capçaleres “Referer" +"\", sisplau torneu-les a habilitar, com a mínim per a aquest lloc, o per a " +"connexions HTTPs, o per a peticions amb el mateix orígen." + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" +"Si utilitzeu l'etiqueta o " +"incloeu la capçalera “Referer-Policy: no-referrer\" , si us plau elimineu-" +"la. La protecció CSRF requereix la capçalera “Referer\" per a fer una " +"comprovació estricta. Si esteu preocupats quant a la privacitat, utilitzeu " +"alternatives com per enllaços a aplicacions de " +"tercers." + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" +"Estàs veient aquest missatge perquè aquest lloc requereix una galeta CSRF " +"quan s'envien formularis. Aquesta galeta es requereix per motius de " +"seguretat, per garantir que el teu navegador no està sent infiltrat per " +"tercers." + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" +"Si has configurat el teu navegador per deshabilitar galetes, sisplau torna-" +"les a habilitar, com a mínim per a aquest lloc, o per a peticions amb el " +"mateix orígen." + +msgid "More information is available with DEBUG=True." +msgstr "Més informació disponible amb DEBUG=True." + +msgid "No year specified" +msgstr "No s'ha especificat any" + +msgid "Date out of range" +msgstr "Data fora de rang" + +msgid "No month specified" +msgstr "No s'ha especificat mes" + +msgid "No day specified" +msgstr "No s'ha especificat dia" + +msgid "No week specified" +msgstr "No s'ha especificat setmana" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "Cap %(verbose_name_plural)s disponible" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" +"Futurs %(verbose_name_plural)s no disponibles perquè %(class_name)s." +"allow_future és Fals." + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "Cadena invàlida de data '%(datestr)s' donat el format '%(format)s'" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "No s'ha trobat cap %(verbose_name)s que coincideixi amb la petició" + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "La pàgina no és 'last', ni es pot convertir en un enter" + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "Pàgina invàlida (%(page_number)s): %(message)s" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "Llista buida i '%(class_name)s.allow_empty' és Fals." + +msgid "Directory indexes are not allowed here." +msgstr "Aquí no es permeten índex de directori." + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "\"%(path)s\" no existeix" + +#, python-format +msgid "Index of %(directory)s" +msgstr "Índex de %(directory)s" + +msgid "The install worked successfully! Congratulations!" +msgstr "La instal·lació ha estat un èxit! Enhorabona!" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" +"Visualitza notes de llançament per Django " +"%(version)s" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not configured any " +"URLs." +msgstr "" +"Esteu veient aquesta pàgina perquè el paràmetre DEBUG=Trueconsta al fitxer de configuració i no teniu cap " +"URL configurada." + +msgid "Django Documentation" +msgstr "Documentació de Django" + +msgid "Topics, references, & how-to’s" +msgstr "Temes, referències, & Com es fa" + +msgid "Tutorial: A Polling App" +msgstr "Tutorial: Una aplicació enquesta" + +msgid "Get started with Django" +msgstr "Primers passos amb Django" + +msgid "Django Community" +msgstr "Comunitat Django" + +msgid "Connect, get help, or contribute" +msgstr "Connecta, obté ajuda, o col·labora" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/ca/__init__.py b/venv/lib/python3.12/site-packages/django/conf/locale/ca/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/ca/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/ca/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..422c64ebb2349030af18f8791d9bc8f834c85681 GIT binary patch literal 198 zcmX@j%ge<81o5sX(m?cM5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!O4ZNE&rQ|OP0Yy6 zFHO;RNiEZNN=(kybEFQ_cZ$j>v@Gc?jK&MZmQEdVM^ zOiwM=Pssu+OwP|s)6dCIPRvQwPfpa2kI&4@EQycTE2#X%VUwGmQks)$SHudml@W-G PL5z>gjEsy$%s>_Z!frHg literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/ca/__pycache__/formats.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/ca/__pycache__/formats.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..66f45fdb8e5874645ee211c04b9f36579c218cb2 GIT binary patch literal 815 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/ckb/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/conf/locale/ckb/LC_MESSAGES/django.po new file mode 100644 index 0000000000..1caebbc6b1 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/ckb/LC_MESSAGES/django.po @@ -0,0 +1,1332 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Bawar Jalal, 2021 +# Bawar Jalal, 2020-2021 +# Bawar Jalal, 2020 +# Kosar Tofiq Saeed , 2020-2021 +# Swara , 2022-2024 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-05-22 11:46-0300\n" +"PO-Revision-Date: 2024-08-07 06:49+0000\n" +"Last-Translator: Swara , 2022-2024\n" +"Language-Team: Central Kurdish (http://app.transifex.com/django/django/" +"language/ckb/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ckb\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Afrikaans" +msgstr "ئەفریقی" + +msgid "Arabic" +msgstr "عەرەبی" + +msgid "Algerian Arabic" +msgstr "عەرەبیی جەزائیری" + +msgid "Asturian" +msgstr "ئاستوری" + +msgid "Azerbaijani" +msgstr "ئازەربایجانی" + +msgid "Bulgarian" +msgstr "بولگاری" + +msgid "Belarusian" +msgstr "بیلاڕوسی" + +msgid "Bengali" +msgstr "بەنگالی" + +msgid "Breton" +msgstr "بریتۆنی" + +msgid "Bosnian" +msgstr "بۆسنێیی" + +msgid "Catalan" +msgstr "کاتالانی" + +msgid "Central Kurdish (Sorani)" +msgstr "کوردی" + +msgid "Czech" +msgstr "چیکی" + +msgid "Welsh" +msgstr "وێڵزی" + +msgid "Danish" +msgstr "دانیمارکی" + +msgid "German" +msgstr "ئەڵمانی" + +msgid "Lower Sorbian" +msgstr "سۆربیانی خواروو" + +msgid "Greek" +msgstr "یۆنانی" + +msgid "English" +msgstr "ئینگلیزی" + +msgid "Australian English" +msgstr "ئینگلیزی ئوستورالی" + +msgid "British English" +msgstr "ئینگلیزی بەریتانی" + +msgid "Esperanto" +msgstr "ئێسپەرانتەویی" + +msgid "Spanish" +msgstr "ئیسپانی" + +msgid "Argentinian Spanish" +msgstr "ئیسپانیی ئەرجەنتینی" + +msgid "Colombian Spanish" +msgstr "ئیسپانیی کۆڵۆمبی" + +msgid "Mexican Spanish" +msgstr "ئیسپانیی مەکسیکی" + +msgid "Nicaraguan Spanish" +msgstr "ئیسپانیی نیکاراگوایی" + +msgid "Venezuelan Spanish" +msgstr "ئیسپانیی فەنزوێلایی" + +msgid "Estonian" +msgstr "ئیستۆنی" + +msgid "Basque" +msgstr "باسکۆیی" + +msgid "Persian" +msgstr "فارسی" + +msgid "Finnish" +msgstr "فینلەندی" + +msgid "French" +msgstr "فەڕەنسی" + +msgid "Frisian" +msgstr "فریسی" + +msgid "Irish" +msgstr "ئیرلەندی" + +msgid "Scottish Gaelic" +msgstr "گالیکی سکۆتلەندی" + +msgid "Galician" +msgstr "گالیسیایی" + +msgid "Hebrew" +msgstr "ئیسرائیلی" + +msgid "Hindi" +msgstr "هیندی" + +msgid "Croatian" +msgstr "کڕواتی" + +msgid "Upper Sorbian" +msgstr "سڕبی سەروو" + +msgid "Hungarian" +msgstr "هەنگاری" + +msgid "Armenian" +msgstr "ئەرمەنی" + +msgid "Interlingua" +msgstr "ئینتەرلینگوایی" + +msgid "Indonesian" +msgstr "ئیندۆنیزی" + +msgid "Igbo" +msgstr "ئیگبۆیی" + +msgid "Ido" +msgstr "ئیدۆیی" + +msgid "Icelandic" +msgstr "ئایسلەندی" + +msgid "Italian" +msgstr "ئیتاڵی" + +msgid "Japanese" +msgstr "یابانی" + +msgid "Georgian" +msgstr "جۆرجی" + +msgid "Kabyle" +msgstr "کابایلی" + +msgid "Kazakh" +msgstr "کازاخی" + +msgid "Khmer" +msgstr "خەمیری" + +msgid "Kannada" +msgstr "کانێدایی" + +msgid "Korean" +msgstr "کۆری" + +msgid "Kyrgyz" +msgstr "کیرگزستانی" + +msgid "Luxembourgish" +msgstr "لۆکسەمبۆرگی" + +msgid "Lithuanian" +msgstr "لیتوانی" + +msgid "Latvian" +msgstr "لاتیڤی" + +msgid "Macedonian" +msgstr "مەسەدۆنی" + +msgid "Malayalam" +msgstr "مەلایالامی" + +msgid "Mongolian" +msgstr "مەنگۆلی" + +msgid "Marathi" +msgstr "ماراسی" + +msgid "Malay" +msgstr "مالایی" + +msgid "Burmese" +msgstr "بورمایی" + +msgid "Norwegian Bokmål" +msgstr "بۆکامۆلی نەرویجی" + +msgid "Nepali" +msgstr "نیپاڵی" + +msgid "Dutch" +msgstr "هۆڵەندی" + +msgid "Norwegian Nynorsk" +msgstr "نینۆرسکی نەرویجی" + +msgid "Ossetic" +msgstr "ئۆسیتی" + +msgid "Punjabi" +msgstr "پونجابی" + +msgid "Polish" +msgstr "پۆڵۆنی" + +msgid "Portuguese" +msgstr "پورتوگالی" + +msgid "Brazilian Portuguese" +msgstr "پورتوگالیی بەڕازیلی" + +msgid "Romanian" +msgstr "ڕۆمانیایی" + +msgid "Russian" +msgstr "ڕووسی" + +msgid "Slovak" +msgstr "سلۆڤاکی" + +msgid "Slovenian" +msgstr "سلۆڤینیایی" + +msgid "Albanian" +msgstr "ئەلبانی" + +msgid "Serbian" +msgstr "سڕبی" + +msgid "Serbian Latin" +msgstr "سڕبیی لاتین" + +msgid "Swedish" +msgstr "سویدی" + +msgid "Swahili" +msgstr "سواهیلی" + +msgid "Tamil" +msgstr "تامیلی" + +msgid "Telugu" +msgstr "تێلوگویی" + +msgid "Tajik" +msgstr "تاجیکی" + +msgid "Thai" +msgstr "تایلاندی" + +msgid "Turkmen" +msgstr "تورکمانی" + +msgid "Turkish" +msgstr "تورکی" + +msgid "Tatar" +msgstr "تاتاری" + +msgid "Udmurt" +msgstr "ئودمورتی" + +msgid "Uyghur" +msgstr "ئۆیغور" + +msgid "Ukrainian" +msgstr "ئۆکرانی" + +msgid "Urdu" +msgstr "ئوردویی" + +msgid "Uzbek" +msgstr "ئۆزبەکی" + +msgid "Vietnamese" +msgstr "ڤێتنامی" + +msgid "Simplified Chinese" +msgstr "چینی سادەکراو" + +msgid "Traditional Chinese" +msgstr "چینی کلاسیکی" + +msgid "Messages" +msgstr "پەیامەکان" + +msgid "Site Maps" +msgstr "نەخشەکانی پێگە" + +msgid "Static Files" +msgstr "فایلە نەگۆڕەکان" + +msgid "Syndication" +msgstr "هاوبەشکردن" + +#. Translators: String used to replace omitted page numbers in elided page +#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10]. +msgid "…" +msgstr "..." + +msgid "That page number is not an integer" +msgstr "ئەو ژمارەی پەڕەیە ژمارەی تەواو نییە" + +msgid "That page number is less than 1" +msgstr "ئەو ژمارەی پەڕەیە لە 1 کەمترە" + +msgid "That page contains no results" +msgstr "ئەو پەڕەیە هیچ ئەنجامێکی تێدا نییە" + +msgid "Enter a valid value." +msgstr "نرخێکی دروست لەناودابنێ." + +msgid "Enter a valid domain name." +msgstr "پاوەن/دۆمەینی دروست بنوسە." + +msgid "Enter a valid URL." +msgstr "URL ی دروست لەناودابنێ." + +msgid "Enter a valid integer." +msgstr "ژمارەیەکی تەواو لەناودابنێ" + +msgid "Enter a valid email address." +msgstr "ناونیشانێکی ئیمەیڵی دروست لەناودابنێ" + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "\"سلەگ\"ێکی دروست بنوسە کە پێکهاتووە لە پیت، ژمارە، ژێرهێڵ یان هێڵ." + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" +"\"سلەگ\"ێکی دروست بنوسە کە پێکهاتووە لە پیتی یونیکۆد، ژمارە، هێڵی ژێرەوە، " +"یان هێما." + +#, python-format +msgid "Enter a valid %(protocol)s address." +msgstr "ناونیشانی %(protocol)s دروست بنوسە." + +msgid "IPv4" +msgstr "IPv4" + +msgid "IPv6" +msgstr "IPv6" + +msgid "IPv4 or IPv6" +msgstr "IPv4 یان IPv6" + +msgid "Enter only digits separated by commas." +msgstr "تەنها ژمارە لەناودابنێ بە فاریزە جیاکرابێتەوە." + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "دڵنیاببە ئەم نرخە %(limit_value)sە (ئەوە %(show_value)sە). " + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "دڵنیاببە ئەم نرخە کەمترە یاخود یەکسانە بە %(limit_value)s." + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "دڵنیاببە ئەم نرخە گەورەترە یاخود یەکسانە بە %(limit_value)s." + +#, python-format +msgid "Ensure this value is a multiple of step size %(limit_value)s." +msgstr "دڵنیابە کە ئەم بەهایە چەندانێکە لە قەبارەی هەنگاوی%(limit_value)s." + +#, python-format +msgid "" +"Ensure this value is a multiple of step size %(limit_value)s, starting from " +"%(offset)s, e.g. %(offset)s, %(valid_value1)s, %(valid_value2)s, and so on." +msgstr "" +"دڵنیابە ئەم بەهایە چەند هێندەیەکی قەبارەی هەنگاوەکانە %(limit_value)s, " +"دەستپێدەکات لە %(offset)s، بۆ نموونە %(offset)s، %(valid_value1)s، " +"%(valid_value2)s، هتد." + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"دڵنیابە ئەم بەهایە لانیکەم %(limit_value)d نوسەی هەیە (%(show_value)d هەیە)." +msgstr[1] "" +"دڵنیابە ئەم بەهایە لانیکەم %(limit_value)d نوسەی هەیە (%(show_value)d هەیە)." + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"دڵنیابە ئەم بەهایە لانی زۆر %(limit_value)d نوسەی هەیە (%(show_value)d هەیە)." +msgstr[1] "" +"دڵنیابە ئەم بەهایە لانی زۆر %(limit_value)d نوسەی هەیە (%(show_value)d هەیە)." + +msgid "Enter a number." +msgstr "ژمارەیەک بنوسە." + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "دڵنیابە لەوەی بەگشتی زیاتر لە %(max)s ژمارە نیە." +msgstr[1] "دڵنیابە لەوەی بەگشتی زیاتر لە %(max)s ژمارە نیە." + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "دڵنیابە لەوەی بەگشتی زیاتر لە %(max)s ژمارەی دەیی نیە." +msgstr[1] "دڵنیابە لەوەی بەگشتی زیاتر لە %(max)s ژمارەی دەیی نیە." + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "دڵنیابە لەوەی زیاتر نیە لە %(max)s ژمارە پێش خاڵی ژمارەی دەیی." +msgstr[1] "دڵنیابە لەوەی زیاتر نیە لە %(max)s ژمارە پێش خاڵی ژمارەی دەیی." + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" +"پەڕگەپاشبەندی “%(extension)s” ڕێگەپێنەدراوە. پاشبنەدە ڕێگەپێدراوەکان: " +"%(allowed_extensions)s." + +msgid "Null characters are not allowed." +msgstr "نوسەی بەتاڵ ڕێگەپێنەدراوە." + +msgid "and" +msgstr "و" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "%(model_name)s لەگەڵ %(field_labels)s پێشتر تۆمارکراوە." + +#, python-format +msgid "Constraint “%(name)s” is violated." +msgstr "سنوردارکردنی “%(name)s” پێشێلکراوە." + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "بەهای %(value)r هەڵبژاردەیەکی دروست نیە." + +msgid "This field cannot be null." +msgstr "ئەم خانەیە نابێت پووچ بێت." + +msgid "This field cannot be blank." +msgstr "ئەم خانەیە نابێت بەتاڵ بێت." + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "%(model_name)s لەگەڵ %(field_label)s پێشتر تۆمارکراوە." + +#. Translators: The 'lookup_type' is one of 'date', 'year' or +#. 'month'. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" +"%(field_label)s دەبێت بێهاوتا بێت بۆ %(date_field_label)s %(lookup_type)s." + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "خانە لە جۆری: %(field_type)s" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "بەهای “%(value)s” دەبێت دروست یان چەوت بێت." + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "بەهای “%(value)s” دەبێت یان دروست، یان چەوت یان هیچ بێت." + +msgid "Boolean (Either True or False)" +msgstr "بولی (یان دروست یان چەوت)" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "ڕیزبەند (تا %(max_length)s)" + +msgid "String (unlimited)" +msgstr "ڕیز(بێسنوور)" + +msgid "Comma-separated integers" +msgstr "ژمارە تەواوەکان بە کۆما جیاکراونەتەوە" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" +"بەهای “%(value)s” شێوازی بەروارێکی نادروستی هەیە. دەبێت بەشێوازی YYYY-MM-DD " +"بێت." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" +"بەهای “%(value)s” شێوازێکی تەواوی هەیە (YYYY-MM-DD) بەڵام بەروارێکی هەڵەیە." + +msgid "Date (without time)" +msgstr "بەروار (بەبێ کات)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" +"بەهای “%(value)s” شێوازێکی نادروستی هەیە. دەبێت بەشێوەی YYYY-MM-DD HH:MM[:" +"ss[.uuuuuu]][TZ] بێت." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" +"بەهای “%(value)s” شێوازێکی دروستی هەیە (YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ]) " +"بەروار/کاتێکی نادروستە." + +msgid "Date (with time)" +msgstr "بەروار (لەگەڵ کات)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "بەهای “%(value)s” دەبێت ژمارەیەکی دەیی بێت." + +msgid "Decimal number" +msgstr "ژمارەی دەیی" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" +"بەهای “%(value)s” شێوازێکی هەڵەی هەیە. دەبێت بەشێوەی [DD] [[HH:]MM:]ss[." +"uuuuuu] format بێت." + +msgid "Duration" +msgstr "ماوە" + +msgid "Email address" +msgstr "ناونیشانی ئیمەیڵ" + +msgid "File path" +msgstr "ڕێڕەوی پەڕگە" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "بەهای “%(value)s” دەبێت ژمارەی کەرتی بێت." + +msgid "Floating point number" +msgstr "خاڵی ژمارەی کەرتی" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "بەهای “%(value)s” دەبێت ژمارەی تەواو بێت." + +msgid "Integer" +msgstr "ژمارەی تەواو" + +msgid "Big (8 byte) integer" +msgstr "(8بایت) ژمارەی تەواوی گەورە" + +msgid "Small integer" +msgstr "ژمارەی تەواوی بچوک" + +msgid "IPv4 address" +msgstr "ناونیشانی IPv4" + +msgid "IP address" +msgstr "ناونیشانی ئای پی" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "بەهای “%(value)s” دەبێت یان هیچ، یان دروست یان چەوت بێت." + +msgid "Boolean (Either True, False or None)" +msgstr "بولی (یان دروست یان چەوت یان هیچ)" + +msgid "Positive big integer" +msgstr "ژمارەی تەواوی گەورەی ئەرێنی" + +msgid "Positive integer" +msgstr "ژمارەی تەواوی ئەرێنی" + +msgid "Positive small integer" +msgstr "ژمارەی تەواوی بچوکی ئەرێنی" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "سلەگ (تا %(max_length)s)" + +msgid "Text" +msgstr "نوسین" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" +"بەهای “%(value)s” شێوازێکی هەڵەی هەیە. دەبێت بەشێوەی HH:MM[:ss[.uuuuuu]] بێت." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" +"“%(value)s” بەهاکە شێوازێکی دروستی هەیە (HH:MM[:ss[.uuuuuu]]) بەڵام کاتێکی " +"نادروستە." + +msgid "Time" +msgstr "کات" + +msgid "URL" +msgstr "URL" + +msgid "Raw binary data" +msgstr "داتای دووانەیی خاو" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "“%(value)s ” UUIDێکی دروستی نیە." + +msgid "Universally unique identifier" +msgstr "ناسێنەرێکی بێهاوتای گشتگیر" + +msgid "File" +msgstr "پەڕگە" + +msgid "Image" +msgstr "وێنە" + +msgid "A JSON object" +msgstr "ئۆبجێکتێکی JSON" + +msgid "Value must be valid JSON." +msgstr "بەها پێویستە JSONی دروست بێت." + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "%(model)s هاوشێوەیە لەگەڵ %(field)s %(value)r نیە." + +msgid "Foreign Key (type determined by related field)" +msgstr "کلیلی دەرەکی(جۆر بەپێی خانەی پەیوەندیدار دیاری دەکرێت)" + +msgid "One-to-one relationship" +msgstr "پەیوەندیی یەک-بۆ-یەک" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "%(from)s-%(to)s پەیوەندی" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "%(from)s-%(to)s پەیوەندییەکان" + +msgid "Many-to-many relationship" +msgstr "پەیوەندیی گشت-بۆ-گشت" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr ":؟.!" + +msgid "This field is required." +msgstr "ئەم خانەیە داواکراوە." + +msgid "Enter a whole number." +msgstr "ژمارەیەکی تەواو بنوسە." + +msgid "Enter a valid date." +msgstr "بەرواری دروست بنوسە." + +msgid "Enter a valid time." +msgstr "تکایە کاتێکی ڕاست بنووسە." + +msgid "Enter a valid date/time." +msgstr "بەروار/کاتی دروست بنوسە." + +msgid "Enter a valid duration." +msgstr "بەهای دروستی ماوە بنوسە." + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "ژمارەی ڕۆژەکان دەبێت لەنێوان {min_days} و {max_days} بێت." + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "هیچ پەڕگەیەک نەنێردراوە. جۆری کۆدکردنی پەڕگەکە لەسەر فۆرمەکە بپشکنە." + +msgid "No file was submitted." +msgstr "هیچ پەڕگەیەک نەنێردراوە." + +msgid "The submitted file is empty." +msgstr "پەڕگەی نێردراو بەتاڵە." + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "دڵنیابە کە ناوی پەڕگە زیاتر لە %(max)d نوسەی نیە (%(length)d هەیە)." +msgstr[1] "دڵنیابە کە ناوی پەڕگە زیاتر لە %(max)d نوسەی نیە (%(length)d هەیە)." + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "" +"تکایە یان پەڕگەیەک بنێرە یان چوارچێوەی پشکنین هەڵبژێرە، نەک هەردووکیان." + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" +"وێنەی دروست هەڵبژێرە. ئەو پەڕگەی بەرزتکردۆوە یان وێنە نیە یان وێنەیەکی خراپ " +"بووە." + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "" +"هەڵبژاردەیەکی دروست دیاری بکە. %(value)s یەکێک نیە لە هەڵبژاردە بەردەستەکان." + +msgid "Enter a list of values." +msgstr "لیستی بەهاکان بنوسە." + +msgid "Enter a complete value." +msgstr "تەواوی بەهایەک بنوسە." + +msgid "Enter a valid UUID." +msgstr "بەهای دروستی UUID بنوسە." + +msgid "Enter a valid JSON." +msgstr "JSONی دروست بنوسە." + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr ":" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "(خانەی شاراوە %(name)s) %(error)s" + +#, python-format +msgid "" +"ManagementForm data is missing or has been tampered with. Missing fields: " +"%(field_names)s. You may need to file a bug report if the issue persists." +msgstr "" +"داتاکانی فۆڕمی بەڕێوەبردن نەماوە یان دەستکاری کراون. خانە وونبووەکان: " +"%(field_names)s. لەوانەیە پێویستت بە تۆمارکردنی ڕاپۆرتی هەڵە بێت ئەگەر " +"کێشەکە بەردەوام بوو." + +#, python-format +msgid "Please submit at most %(num)d form." +msgid_plural "Please submit at most %(num)d forms." +msgstr[0] "تکایە لانی زۆر %(num)d فۆرم بنێرە." +msgstr[1] "تکایە لانی زۆر %(num)d فۆرم بنێرە." + +#, python-format +msgid "Please submit at least %(num)d form." +msgid_plural "Please submit at least %(num)d forms." +msgstr[0] "تکایە لانی کەم %(num)d فۆرم بنێرە." +msgstr[1] "تکایە لانی کەم %(num)d فۆرم بنێرە." + +msgid "Order" +msgstr "ڕیز" + +msgid "Delete" +msgstr "سڕینەوە" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "تکایە داتا دووبارەکراوەکان چاکبکەرەوە بۆ %(field)s." + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "" +"تکایە ئەو داتا دووبارەکراوەکانە چاکبکەرەوە بۆ %(field)s، کە دەبێت بێهاوتابن." + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"تکایە ئەو داتا دووبارەکراوەکان چاکبکەرەوە بۆ %(field_name)s کە دەبێت بێهاوتا " +"بن بۆ %(lookup)s لە%(date_field)s." + +msgid "Please correct the duplicate values below." +msgstr "تکایە بەها دووبارەکانی خوارەوە ڕاست بکەرەوە." + +msgid "The inline value did not match the parent instance." +msgstr "بەهای ناوهێڵ هاوشێوەی نمونەی باوانەکەی نیە." + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "هەڵبژاردەی دروست دیاری بکە. هەڵبژاردە لە هەڵبژاردە بەردەستەکان نیە." + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "“%(pk)s” بەهایەکی دروست نیە." + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" +"%(datetime)s نەتوانرا لە ناوچەی کاتدا لێکبدرێتەوە %(current_timezone)s؛ " +"لەوانەیە ناڕوون بێت یان لەوانەیە بوونی نەبێت." + +msgid "Clear" +msgstr "پاککردنەوە" + +msgid "Currently" +msgstr "ئێستا" + +msgid "Change" +msgstr "گۆڕین" + +msgid "Unknown" +msgstr "نەزانراو" + +msgid "Yes" +msgstr "بەڵێ" + +msgid "No" +msgstr "نەخێر" + +#. Translators: Please do not add spaces around commas. +msgid "yes,no,maybe" +msgstr "بەڵێ،نەخێر،لەوانەیە" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)dبایت" +msgstr[1] "%(size)d بایت" + +#, python-format +msgid "%s KB" +msgstr "%s کب" + +#, python-format +msgid "%s MB" +msgstr "%s مب" + +#, python-format +msgid "%s GB" +msgstr "%s گب" + +#, python-format +msgid "%s TB" +msgstr "%s تب" + +#, python-format +msgid "%s PB" +msgstr "%s پب" + +msgid "p.m." +msgstr "پ.ن" + +msgid "a.m." +msgstr "پ.ن" + +msgid "PM" +msgstr "د.ن" + +msgid "AM" +msgstr "پ.ن" + +msgid "midnight" +msgstr "نیوەشەو" + +msgid "noon" +msgstr "نیوەڕۆ" + +msgid "Monday" +msgstr "دووشەممە" + +msgid "Tuesday" +msgstr "سێشەممە" + +msgid "Wednesday" +msgstr "چوارشەممە" + +msgid "Thursday" +msgstr "پێنجشەممە" + +msgid "Friday" +msgstr "هەینی" + +msgid "Saturday" +msgstr "شەممە" + +msgid "Sunday" +msgstr "یەکشەممە" + +msgid "Mon" +msgstr "دوو" + +msgid "Tue" +msgstr "سێ" + +msgid "Wed" +msgstr "چوار" + +msgid "Thu" +msgstr "پێنج" + +msgid "Fri" +msgstr "هەین" + +msgid "Sat" +msgstr "شەم" + +msgid "Sun" +msgstr "یەک" + +msgid "January" +msgstr "ڕێبەندان" + +msgid "February" +msgstr "ڕەشەمە" + +msgid "March" +msgstr "نەورۆز" + +msgid "April" +msgstr "گوڵان" + +msgid "May" +msgstr "جۆزەردان" + +msgid "June" +msgstr "پوشپەڕ" + +msgid "July" +msgstr "گەلاوێژ" + +msgid "August" +msgstr "خەرمانان" + +msgid "September" +msgstr "ڕەزبەر" + +msgid "October" +msgstr "گەڵاڕێزان" + +msgid "November" +msgstr "سەرماوەرز" + +msgid "December" +msgstr "بەفرانبار" + +msgid "jan" +msgstr "‎ڕێبەندان" + +msgid "feb" +msgstr "ڕەشەمە" + +msgid "mar" +msgstr "نەورۆز" + +msgid "apr" +msgstr "گوڵان" + +msgid "may" +msgstr "‎جۆزەردان" + +msgid "jun" +msgstr "پوشپەڕ" + +msgid "jul" +msgstr "‎گەلاوێژ" + +msgid "aug" +msgstr "خەرمانان" + +msgid "sep" +msgstr "‎ڕەزبەر" + +msgid "oct" +msgstr "‎گەڵاڕێزان" + +msgid "nov" +msgstr "‎سەرماوەرز" + +msgid "dec" +msgstr "‎بەفرانبار" + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "‎ڕێبەندان" + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "ڕەشەمە" + +msgctxt "abbrev. month" +msgid "March" +msgstr "نەورۆز" + +msgctxt "abbrev. month" +msgid "April" +msgstr "گوڵان" + +msgctxt "abbrev. month" +msgid "May" +msgstr "جۆزەردان" + +msgctxt "abbrev. month" +msgid "June" +msgstr "پوشپەڕ" + +msgctxt "abbrev. month" +msgid "July" +msgstr "گەلاوێژ" + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "خەرمانان" + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "ڕەزبەر" + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "‎گەڵاڕێزان" + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "‎سەرماوەرز" + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "‎بەفرانبار" + +msgctxt "alt. month" +msgid "January" +msgstr "ڕێبەندان" + +msgctxt "alt. month" +msgid "February" +msgstr "ڕەشەمە" + +msgctxt "alt. month" +msgid "March" +msgstr "نەورۆز" + +msgctxt "alt. month" +msgid "April" +msgstr "گوڵان" + +msgctxt "alt. month" +msgid "May" +msgstr "جۆزەردان" + +msgctxt "alt. month" +msgid "June" +msgstr "پوشپەڕ" + +msgctxt "alt. month" +msgid "July" +msgstr "گەلاوێژ" + +msgctxt "alt. month" +msgid "August" +msgstr "خەرمانان" + +msgctxt "alt. month" +msgid "September" +msgstr "ڕەزبەر" + +msgctxt "alt. month" +msgid "October" +msgstr "گەڵاڕێزان" + +msgctxt "alt. month" +msgid "November" +msgstr "سەرماوەرز" + +msgctxt "alt. month" +msgid "December" +msgstr "بەفرانبار" + +msgid "This is not a valid IPv6 address." +msgstr "ئەمە ناونیشانی IPv6 دروست نیە." + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "%(truncated_text)s..." + +msgid "or" +msgstr "یان" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr "، " + +#, python-format +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "‫%(num)d ساڵ" +msgstr[1] "‫%(num)d ساڵ" + +#, python-format +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "‫%(num)d مانگ" +msgstr[1] "‫%(num)d مانگ" + +#, python-format +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "‫%(num)d هەفتە" +msgstr[1] "‫%(num)d هەفتە" + +#, python-format +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "‫%(num)d ڕۆژ" +msgstr[1] "‫%(num)d ڕۆژ" + +#, python-format +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "‫%(num)d کاتژمێر" +msgstr[1] "‫%(num)d کاتژمێر" + +#, python-format +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "‫%(num)d خولەک" +msgstr[1] "‫%(num)d خولەک" + +msgid "Forbidden" +msgstr "ڕێپێنەدراو" + +msgid "CSRF verification failed. Request aborted." +msgstr "پشتڕاستکردنەوەی CSRF شکستی هێنا. داواکاری هەڵوەشاوەتەوە." + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" +"تۆ ئەم پەیامە دەبینیت چونکە ئەم ماڵپەڕە HTTPS پێویستی بە \"سەردێڕی " +"ئاماژەدەر\" هەیە کە لەلایەن وێبگەڕەکەتەوە بنێردرێت، بەڵام هیچیان نەنێردراوە. " +"ئەم سەردێڕە بۆ هۆکاری ئاسایش پێویستە، بۆ دڵنیابوون لەوەی کە وێبگەڕەکەت " +"لەلایەن لایەنی سێیەمەوە دەستی بەسەردا ناگیرێت." + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" +"ئەگەر ڕێکخستنی شەکرۆکەی ئەم وێبگەڕەت بۆ “Referer” ناچالاککردووە، تکایە " +"چالاکی بکەرەوە، لانیکەم بۆ ئەم ماڵپەڕە، یان بۆ پەیوەندییەکانی HTTPS، یاخود " +"بۆ داواکانی \"Same-origin\"." + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" +"ئەگەر تۆ تاگی بەکاردەهێنێت " +"یان سەرپەڕەی “Referrer-Policy: no-referrer” لەخۆدەگرێت، تکایە بیانسڕەوە. " +"پاراستنی CSRFەکە پێویستی بە سەرپەڕەی “Referer”هەیە بۆ ئەنجامدانی پشکنینی " +"گەڕاندنەوەی توندوتۆڵ. ئەگەر خەمی تایبەتمەندیت هەیە، بەدیلەکانی وەکو بۆ بەستنەوەی ماڵپەڕەکانی لایەنی سێیەم." + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" +"تۆ ئەم پەیامە دەبینیت چونکە ئەم ماڵپەڕە پێویستی بە شەکرۆکەی CSRF هەیە لە " +"کاتی ناردنی فۆڕمەکاندا. ئەم شەکرۆکەیە بۆ هۆکاری ئاسایش پێویستە، بۆ دڵنیابوون " +"لەوەی کە وێبگەڕەکەت لەلایەن لایەنی سێیەمەوە دەستی بەسەردا ناگیرێت." + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" +"ئەگەر ڕێکخستنی شەکرۆکەی ئەم وێبگەڕەت ناچالاککردووە، تکایە چالاکی بکەرەوە، " +"لانیکەم بۆ ئەم ماڵپەڕە، یان بۆ داواکانی \"Same-origin\"" + +msgid "More information is available with DEBUG=True." +msgstr "زانیاریی زیاتر بەردەستە لەگەڵ DEBUG=True." + +msgid "No year specified" +msgstr "هیچ ساڵێک دیاری نەکراوە" + +msgid "Date out of range" +msgstr "بەروار لە دەرەوەی بواردایە" + +msgid "No month specified" +msgstr "هیچ مانگێک دیاری نەکراوە" + +msgid "No day specified" +msgstr "هیچ ڕۆژێک دیاری نەکراوە" + +msgid "No week specified" +msgstr "هیچ حەفتەیەک دیاری نەکراوە" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "هیچ %(verbose_name_plural)s بەردەست نییە" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" +"لەداهاتوودا %(verbose_name_plural)s بەردەست نیە چونکە %(class_name)s." +"allow_future چەوتە." + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "ڕیزبەندی بەروار نادروستە “%(datestr)s” شێوازی “%(format)s” پێ بدە" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "هیچ %(verbose_name)s هاوتای داواکارییەکە نیە" + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "لاپەڕە “کۆتا” نییە، هەروەها ناتوانرێت بگۆڕدرێت بۆ ژمارەی تەواو." + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "لاپەڕەی نادروستە (%(page_number)s): %(message)s" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "لیستی بەتاڵ و “%(class_name)s.allow_empty” چەوتە." + +msgid "Directory indexes are not allowed here." +msgstr "لێرەدا نوانەی بوخچەکان ڕێگەپێدراو نیە." + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "“%(path)s” بوونی نیە" + +#, python-format +msgid "Index of %(directory)s" +msgstr "نوانەی %(directory)s" + +msgid "The install worked successfully! Congratulations!" +msgstr "دامەزراندن بەسەرکەوتوویی کاریکرد! پیرۆزە!" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" +"سەیری تێبینیەکانی بڵاوکردنەوە بکە بۆ جانگۆی " +"%(version)s" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not " +"configured any URLs." +msgstr "" +"ئەم لاپەڕەیە دەبینیت چونکە DEBUG=True لەناو پەڕگەی ڕێکخستنەکانتە و بۆ هیچ URLێک " +"ڕێکنەخراوە." + +msgid "Django Documentation" +msgstr "بەڵگەنامەکردنی جانگۆ" + +msgid "Topics, references, & how-to’s" +msgstr "بابەتەکان, سەرچاوەکان, & چۆنێتی" + +msgid "Tutorial: A Polling App" +msgstr "فێرکاریی: ئاپێکی ڕاپرسی" + +msgid "Get started with Django" +msgstr "دەستپێبکە لەگەڵ جانگۆ" + +msgid "Django Community" +msgstr "کۆمەڵگەی جانگۆ" + +msgid "Connect, get help, or contribute" +msgstr "پەیوەندی بکە، یارمەتی وەربگرە، یان بەشداری بکە" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/ckb/__init__.py b/venv/lib/python3.12/site-packages/django/conf/locale/ckb/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/ckb/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/ckb/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..db7be11dfd8c850a46848f6e1833bf30d62cf9f2 GIT binary patch literal 199 zcmX@j%ge<81o5sX(m?cM5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!O4HBC&rQ|OP0Yy6 zFHO;RNiEZNN=(kybEFQ_cZ$j>v@Gc?jK&MZmQEdVM^ zOiwM=Pssu+OwP|s)6dCIPRvQwPtH!#kB`sH%PfhH*DI*}#bJ}1pHiBWYFESxw3ZQw Qi$RQ!%#4hTMa)1J004h9+yDRo literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/ckb/__pycache__/formats.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/ckb/__pycache__/formats.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d92cbf09ec553de88fd40569525feea72356d291 GIT binary patch literal 566 zcmY+By-(Xf7{<>r2_X?l9O5dJB_l|X6YYjjB~v?1L=z*&2>BMv$vI#6Bg&VQOj+0v z9ozq)qFet9B$jl$nhhqlNNkxn2g1huu#!(Vmqa~Rg$4P2^ k0ywgko`3{NZTLF9IRQLL@l;P^fTtaf@acab*-6kfkJiem#Q*>R literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/ckb/formats.py b/venv/lib/python3.12/site-packages/django/conf/locale/ckb/formats.py new file mode 100644 index 0000000000..162c840d33 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/ckb/formats.py @@ -0,0 +1,21 @@ +# This file is distributed under the same license as the Django package. +# +# The *_FORMAT strings use the Django date format syntax, +# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date +DATE_FORMAT = "j F Y" +TIME_FORMAT = "G:i" +DATETIME_FORMAT = "j F Y، کاتژمێر G:i" +YEAR_MONTH_FORMAT = "F Y" +MONTH_DAY_FORMAT = "j F" +SHORT_DATE_FORMAT = "Y/n/j" +SHORT_DATETIME_FORMAT = "Y/n/j،‏ G:i" +FIRST_DAY_OF_WEEK = 6 + +# The *_INPUT_FORMATS strings use the Python strftime format syntax, +# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior +# DATE_INPUT_FORMATS = +# TIME_INPUT_FORMATS = +# DATETIME_INPUT_FORMATS = +DECIMAL_SEPARATOR = "." +THOUSAND_SEPARATOR = "," +# NUMBER_GROUPING = diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/cs/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/conf/locale/cs/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..66e08fed436e1d7ef4089eb56a50c9fa2b22faed GIT binary patch literal 29060 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, 2020 +# Jannis Leidel , 2011 +# Jan Papež , 2012 +# trendspotter , 2022 +# Jirka Vejrazka , 2011 +# trendspotter , 2020 +# Tomáš Ehrlich , 2015 +# Vláďa Macek , 2012-2014 +# Vláďa Macek , 2015-2022 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2022-05-17 05:23-0500\n" +"PO-Revision-Date: 2022-07-25 06:49+0000\n" +"Last-Translator: trendspotter \n" +"Language-Team: Czech (http://www.transifex.com/django/django/language/cs/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: cs\n" +"Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n " +"<= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n" + +msgid "Afrikaans" +msgstr "afrikánsky" + +msgid "Arabic" +msgstr "arabsky" + +msgid "Algerian Arabic" +msgstr "alžírskou arabštinou" + +msgid "Asturian" +msgstr "asturštinou" + +msgid "Azerbaijani" +msgstr "ázerbájdžánsky" + +msgid "Bulgarian" +msgstr "bulharsky" + +msgid "Belarusian" +msgstr "bělorusky" + +msgid "Bengali" +msgstr "bengálsky" + +msgid "Breton" +msgstr "bretonsky" + +msgid "Bosnian" +msgstr "bosensky" + +msgid "Catalan" +msgstr "katalánsky" + +msgid "Czech" +msgstr "česky" + +msgid "Welsh" +msgstr "velšsky" + +msgid "Danish" +msgstr "dánsky" + +msgid "German" +msgstr "německy" + +msgid "Lower Sorbian" +msgstr "dolnolužickou srbštinou" + +msgid "Greek" +msgstr "řecky" + +msgid "English" +msgstr "anglicky" + +msgid "Australian English" +msgstr "australskou angličtinou" + +msgid "British English" +msgstr "britskou angličtinou" + +msgid "Esperanto" +msgstr "esperantsky" + +msgid "Spanish" +msgstr "španělsky" + +msgid "Argentinian Spanish" +msgstr "argentinskou španělštinou" + +msgid "Colombian Spanish" +msgstr "kolumbijskou španělštinou" + +msgid "Mexican Spanish" +msgstr "mexickou španělštinou" + +msgid "Nicaraguan Spanish" +msgstr "nikaragujskou španělštinou" + +msgid "Venezuelan Spanish" +msgstr "venezuelskou španělštinou" + +msgid "Estonian" +msgstr "estonsky" + +msgid "Basque" +msgstr "baskicky" + +msgid "Persian" +msgstr "persky" + +msgid "Finnish" +msgstr "finsky" + +msgid "French" +msgstr "francouzsky" + +msgid "Frisian" +msgstr "frísky" + +msgid "Irish" +msgstr "irsky" + +msgid "Scottish Gaelic" +msgstr "skotskou keltštinou" + +msgid "Galician" +msgstr "galicijsky" + +msgid "Hebrew" +msgstr "hebrejsky" + +msgid "Hindi" +msgstr "hindsky" + +msgid "Croatian" +msgstr "chorvatsky" + +msgid "Upper Sorbian" +msgstr "hornolužickou srbštinou" + +msgid "Hungarian" +msgstr "maďarsky" + +msgid "Armenian" +msgstr "arménštinou" + +msgid "Interlingua" +msgstr "interlingua" + +msgid "Indonesian" +msgstr "indonésky" + +msgid "Igbo" +msgstr "igboštinou" + +msgid "Ido" +msgstr "idem" + +msgid "Icelandic" +msgstr "islandsky" + +msgid "Italian" +msgstr "italsky" + +msgid "Japanese" +msgstr "japonsky" + +msgid "Georgian" +msgstr "gruzínštinou" + +msgid "Kabyle" +msgstr "kabylštinou" + +msgid "Kazakh" +msgstr "kazašsky" + +msgid "Khmer" +msgstr "khmersky" + +msgid "Kannada" +msgstr "kannadsky" + +msgid "Korean" +msgstr "korejsky" + +msgid "Kyrgyz" +msgstr "kyrgyzštinou" + +msgid "Luxembourgish" +msgstr "lucembursky" + +msgid "Lithuanian" +msgstr "litevsky" + +msgid "Latvian" +msgstr "lotyšsky" + +msgid "Macedonian" +msgstr "makedonsky" + +msgid "Malayalam" +msgstr "malajálamsky" + +msgid "Mongolian" +msgstr "mongolsky" + +msgid "Marathi" +msgstr "marathi" + +msgid "Malay" +msgstr "malajštinou" + +msgid "Burmese" +msgstr "barmštinou" + +msgid "Norwegian Bokmål" +msgstr "bokmål norštinou" + +msgid "Nepali" +msgstr "nepálsky" + +msgid "Dutch" +msgstr "nizozemsky" + +msgid "Norwegian Nynorsk" +msgstr "norsky (Nynorsk)" + +msgid "Ossetic" +msgstr "osetštinou" + +msgid "Punjabi" +msgstr "paňdžábsky" + +msgid "Polish" +msgstr "polsky" + +msgid "Portuguese" +msgstr "portugalsky" + +msgid "Brazilian Portuguese" +msgstr "brazilskou portugalštinou" + +msgid "Romanian" +msgstr "rumunsky" + +msgid "Russian" +msgstr "rusky" + +msgid "Slovak" +msgstr "slovensky" + +msgid "Slovenian" +msgstr "slovinsky" + +msgid "Albanian" +msgstr "albánsky" + +msgid "Serbian" +msgstr "srbsky" + +msgid "Serbian Latin" +msgstr "srbsky (latinkou)" + +msgid "Swedish" +msgstr "švédsky" + +msgid "Swahili" +msgstr "svahilsky" + +msgid "Tamil" +msgstr "tamilsky" + +msgid "Telugu" +msgstr "telužsky" + +msgid "Tajik" +msgstr "Tádžik" + +msgid "Thai" +msgstr "thajsky" + +msgid "Turkmen" +msgstr "turkmenštinou" + +msgid "Turkish" +msgstr "turecky" + +msgid "Tatar" +msgstr "tatarsky" + +msgid "Udmurt" +msgstr "udmurtsky" + +msgid "Ukrainian" +msgstr "ukrajinsky" + +msgid "Urdu" +msgstr "urdsky" + +msgid "Uzbek" +msgstr "uzbecky" + +msgid "Vietnamese" +msgstr "vietnamsky" + +msgid "Simplified Chinese" +msgstr "čínsky (zjednodušeně)" + +msgid "Traditional Chinese" +msgstr "čínsky (tradičně)" + +msgid "Messages" +msgstr "Zprávy" + +msgid "Site Maps" +msgstr "Mapy webu" + +msgid "Static Files" +msgstr "Statické soubory" + +msgid "Syndication" +msgstr "Syndikace" + +#. Translators: String used to replace omitted page numbers in elided page +#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10]. +msgid "…" +msgstr "…" + +msgid "That page number is not an integer" +msgstr "Číslo stránky není celé číslo." + +msgid "That page number is less than 1" +msgstr "Číslo stránky je menší než 1" + +msgid "That page contains no results" +msgstr "Stránka je bez výsledků" + +msgid "Enter a valid value." +msgstr "Zadejte platnou hodnotu." + +msgid "Enter a valid URL." +msgstr "Zadejte platnou adresu URL." + +msgid "Enter a valid integer." +msgstr "Zadejte platné celé číslo." + +msgid "Enter a valid email address." +msgstr "Zadejte platnou e-mailovou adresu." + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" +"Vložte platný identifikátor složený pouze z písmen, čísel, podtržítek a " +"pomlček." + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" +"Zadejte platný identifikátor složený pouze z písmen, čísel, podtržítek a " +"pomlček typu Unicode." + +msgid "Enter a valid IPv4 address." +msgstr "Zadejte platnou adresu typu IPv4." + +msgid "Enter a valid IPv6 address." +msgstr "Zadejte platnou adresu typu IPv6." + +msgid "Enter a valid IPv4 or IPv6 address." +msgstr "Zadejte platnou adresu typu IPv4 nebo IPv6." + +msgid "Enter only digits separated by commas." +msgstr "Zadejte pouze číslice oddělené čárkami." + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "Hodnota musí být %(limit_value)s (nyní je %(show_value)s)." + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "Hodnota musí být menší nebo rovna %(limit_value)s." + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "Hodnota musí být větší nebo rovna %(limit_value)s." + +#, python-format +msgid "Ensure this value is a multiple of step size %(limit_value)s." +msgstr "" +"Ujistěte se, že tato hodnota je násobkem velikosti kroku %(limit_value)s." + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Tato hodnota má mít nejméně %(limit_value)d znak (nyní má %(show_value)d)." +msgstr[1] "" +"Tato hodnota má mít nejméně %(limit_value)d znaky (nyní má %(show_value)d)." +msgstr[2] "" +"Tato hodnota má mít nejméně %(limit_value)d znaku (nyní má %(show_value)d)." +msgstr[3] "" +"Tato hodnota má mít nejméně %(limit_value)d znaků (nyní má %(show_value)d)." + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Tato hodnota má mít nejvýše %(limit_value)d znak (nyní má %(show_value)d)." +msgstr[1] "" +"Tato hodnota má mít nejvýše %(limit_value)d znaky (nyní má %(show_value)d)." +msgstr[2] "" +"Tato hodnota má mít nejvýše %(limit_value)d znaků (nyní má %(show_value)d)." +msgstr[3] "" +"Tato hodnota má mít nejvýše %(limit_value)d znaků (nyní má %(show_value)d)." + +msgid "Enter a number." +msgstr "Zadejte číslo." + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "Ujistěte se, že pole neobsahuje celkem více než %(max)s číslici." +msgstr[1] "Ujistěte se, že pole neobsahuje celkem více než %(max)s číslice." +msgstr[2] "Ujistěte se, že pole neobsahuje celkem více než %(max)s číslic." +msgstr[3] "Ujistěte se, že pole neobsahuje celkem více než %(max)s číslic." + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "Ujistěte se, že pole neobsahuje více než %(max)s desetinné místo." +msgstr[1] "Ujistěte se, že pole neobsahuje více než %(max)s desetinná místa." +msgstr[2] "Ujistěte se, že pole neobsahuje více než %(max)s desetinných míst." +msgstr[3] "Ujistěte se, že pole neobsahuje více než %(max)s desetinných míst." + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "" +"Ujistěte se, že hodnota neobsahuje více než %(max)s místo před desetinnou " +"čárkou (tečkou)." +msgstr[1] "" +"Ujistěte se, že hodnota neobsahuje více než %(max)s místa před desetinnou " +"čárkou (tečkou)." +msgstr[2] "" +"Ujistěte se, že hodnota neobsahuje více než %(max)s míst před desetinnou " +"čárkou (tečkou)." +msgstr[3] "" +"Ujistěte se, že hodnota neobsahuje více než %(max)s míst před desetinnou " +"čárkou (tečkou)." + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" +"Přípona souboru \"%(extension)s\" není povolena. Povolené jsou tyto: " +"%(allowed_extensions)s." + +msgid "Null characters are not allowed." +msgstr "Nulové znaky nejsou povoleny." + +msgid "and" +msgstr "a" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "" +"Položka %(model_name)s s touto kombinací hodnot v polích %(field_labels)s " +"již existuje." + +#, python-format +msgid "Constraint “%(name)s” is violated." +msgstr "Omezení \"%(name)s\" je porušeno." + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "Hodnota %(value)r není platná možnost." + +msgid "This field cannot be null." +msgstr "Pole nemůže být null." + +msgid "This field cannot be blank." +msgstr "Pole nemůže být prázdné." + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "" +"Položka %(model_name)s s touto hodnotou v poli %(field_label)s již existuje." + +#. Translators: The 'lookup_type' is one of 'date', 'year' or +#. 'month'. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" +"Pole %(field_label)s musí být unikátní testem %(lookup_type)s pro pole " +"%(date_field_label)s." + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "Pole typu: %(field_type)s" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "Hodnota \"%(value)s\" musí být buď True nebo False." + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "Hodnota \"%(value)s\" musí být buď True, False nebo None." + +msgid "Boolean (Either True or False)" +msgstr "Pravdivost (buď Ano (True), nebo Ne (False))" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "Řetězec (max. %(max_length)s znaků)" + +msgid "Comma-separated integers" +msgstr "Celá čísla oddělená čárkou" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "Hodnota \"%(value)s\" není platné datum. Musí být ve tvaru RRRR-MM-DD." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" +"Ačkoli hodnota \"%(value)s\" je ve správném tvaru (RRRR-MM-DD), jde o " +"neplatné datum." + +msgid "Date (without time)" +msgstr "Datum (bez času)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" +"Hodnota \"%(value)s\" je v neplatném tvaru, který má být RRRR-MM-DD HH:MM[:" +"SS[.uuuuuu]][TZ]." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" +"Ačkoli hodnota \"%(value)s\" je ve správném tvaru (RRRR-MM-DD HH:MM[:SS[." +"uuuuuu]][TZ]), jde o neplatné datum a čas." + +msgid "Date (with time)" +msgstr "Datum (s časem)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "Hodnota \"%(value)s\" musí být desítkové číslo." + +msgid "Decimal number" +msgstr "Desetinné číslo" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" +"Hodnota \"%(value)s\" je v neplatném tvaru, který má být [DD] [HH:[MM:]]ss[." +"uuuuuu]." + +msgid "Duration" +msgstr "Doba trvání" + +msgid "Email address" +msgstr "E-mailová adresa" + +msgid "File path" +msgstr "Cesta k souboru" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "Hodnota \"%(value)s\" musí být reálné číslo." + +msgid "Floating point number" +msgstr "Číslo s pohyblivou řádovou čárkou" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "Hodnota \"%(value)s\" musí být celé číslo." + +msgid "Integer" +msgstr "Celé číslo" + +msgid "Big (8 byte) integer" +msgstr "Velké číslo (8 bajtů)" + +msgid "Small integer" +msgstr "Malé celé číslo" + +msgid "IPv4 address" +msgstr "Adresa IPv4" + +msgid "IP address" +msgstr "Adresa IP" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "Hodnota \"%(value)s\" musí být buď None, True nebo False." + +msgid "Boolean (Either True, False or None)" +msgstr "Pravdivost (buď Ano (True), Ne (False) nebo Nic (None))" + +msgid "Positive big integer" +msgstr "Velké kladné celé číslo" + +msgid "Positive integer" +msgstr "Kladné celé číslo" + +msgid "Positive small integer" +msgstr "Kladné malé celé číslo" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "Identifikátor (nejvýše %(max_length)s znaků)" + +msgid "Text" +msgstr "Text" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" +"Hodnota \"%(value)s\" je v neplatném tvaru, který má být HH:MM[:ss[.uuuuuu]]." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" +"Ačkoli hodnota \"%(value)s\" je ve správném tvaru (HH:MM[:ss[.uuuuuu]]), jde " +"o neplatný čas." + +msgid "Time" +msgstr "Čas" + +msgid "URL" +msgstr "URL" + +msgid "Raw binary data" +msgstr "Přímá binární data" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "\"%(value)s\" není platná hodnota typu UUID." + +msgid "Universally unique identifier" +msgstr "Všeobecně jedinečný identifikátor" + +msgid "File" +msgstr "Soubor" + +msgid "Image" +msgstr "Obrázek" + +msgid "A JSON object" +msgstr "Objekt typu JSON" + +msgid "Value must be valid JSON." +msgstr "Hodnota musí být platná struktura typu JSON." + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "" +"Položka typu %(model)s s hodnotou %(field)s rovnou %(value)r neexistuje." + +msgid "Foreign Key (type determined by related field)" +msgstr "Cizí klíč (typ určen pomocí souvisejícího pole)" + +msgid "One-to-one relationship" +msgstr "Vazba jedna-jedna" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "Vazba z %(from)s do %(to)s" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "Vazby z %(from)s do %(to)s" + +msgid "Many-to-many relationship" +msgstr "Vazba mnoho-mnoho" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr ":?!" + +msgid "This field is required." +msgstr "Toto pole je třeba vyplnit." + +msgid "Enter a whole number." +msgstr "Zadejte celé číslo." + +msgid "Enter a valid date." +msgstr "Zadejte platné datum." + +msgid "Enter a valid time." +msgstr "Zadejte platný čas." + +msgid "Enter a valid date/time." +msgstr "Zadejte platné datum a čas." + +msgid "Enter a valid duration." +msgstr "Zadejte platnou délku trvání." + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "Počet dní musí být mezi {min_days} a {max_days}." + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "" +"Soubor nebyl odeslán. Zkontrolujte parametr \"encoding type\" formuláře." + +msgid "No file was submitted." +msgstr "Žádný soubor nebyl odeslán." + +msgid "The submitted file is empty." +msgstr "Odeslaný soubor je prázdný." + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" +"Tento název souboru má mít nejvýše %(max)d znak (nyní má %(length)d)." +msgstr[1] "" +"Tento název souboru má mít nejvýše %(max)d znaky (nyní má %(length)d)." +msgstr[2] "" +"Tento název souboru má mít nejvýše %(max)d znaku (nyní má %(length)d)." +msgstr[3] "" +"Tento název souboru má mít nejvýše %(max)d znaků (nyní má %(length)d)." + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "Musíte vybrat cestu k souboru nebo vymazat výběr, ne obojí." + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" +"Nahrajte platný obrázek. Odeslaný soubor buď nebyl obrázek nebo byl poškozen." + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "Vyberte platnou možnost, \"%(value)s\" není k dispozici." + +msgid "Enter a list of values." +msgstr "Zadejte seznam hodnot." + +msgid "Enter a complete value." +msgstr "Zadejte úplnou hodnotu." + +msgid "Enter a valid UUID." +msgstr "Zadejte platné UUID." + +msgid "Enter a valid JSON." +msgstr "Zadejte platnou strukturu typu JSON." + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr ":" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "(Skryté pole %(name)s) %(error)s" + +#, python-format +msgid "" +"ManagementForm data is missing or has been tampered with. Missing fields: " +"%(field_names)s. You may need to file a bug report if the issue persists." +msgstr "" +"Data objektu ManagementForm chybí nebo s nimi bylo nedovoleně manipulováno. " +"Chybějící pole: %(field_names)s. Pokud problém přetrvává, budete možná muset " +"problém ohlásit." + +#, python-format +msgid "Please submit at most %(num)d form." +msgid_plural "Please submit at most %(num)d forms." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#, python-format +msgid "Please submit at least %(num)d form." +msgid_plural "Please submit at least %(num)d forms." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +msgid "Order" +msgstr "Pořadí" + +msgid "Delete" +msgstr "Odstranit" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "Opravte duplicitní data v poli %(field)s." + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "Opravte duplicitní data v poli %(field)s, které musí být unikátní." + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"Opravte duplicitní data v poli %(field_name)s, které musí být unikátní " +"testem %(lookup)s pole %(date_field)s." + +msgid "Please correct the duplicate values below." +msgstr "Odstraňte duplicitní hodnoty níže." + +msgid "The inline value did not match the parent instance." +msgstr "Hodnota typu inline neodpovídá rodičovské položce." + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "Vyberte platnou možnost. Tato není k dispozici." + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "\"%(pk)s\" není platná hodnota." + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" +"Hodnotu %(datetime)s nelze interpretovat v časové zóně %(current_timezone)s; " +"může být nejednoznačná nebo nemusí existovat." + +msgid "Clear" +msgstr "Zrušit" + +msgid "Currently" +msgstr "Aktuálně" + +msgid "Change" +msgstr "Změnit" + +msgid "Unknown" +msgstr "Neznámé" + +msgid "Yes" +msgstr "Ano" + +msgid "No" +msgstr "Ne" + +#. Translators: Please do not add spaces around commas. +msgid "yes,no,maybe" +msgstr "ano,ne,možná" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)d bajt" +msgstr[1] "%(size)d bajty" +msgstr[2] "%(size)d bajtů" +msgstr[3] "%(size)d bajtů" + +#, python-format +msgid "%s KB" +msgstr "%s KB" + +#, python-format +msgid "%s MB" +msgstr "%s MB" + +#, python-format +msgid "%s GB" +msgstr "%s GB" + +#, python-format +msgid "%s TB" +msgstr "%s TB" + +#, python-format +msgid "%s PB" +msgstr "%s PB" + +msgid "p.m." +msgstr "odp." + +msgid "a.m." +msgstr "dop." + +msgid "PM" +msgstr "odp." + +msgid "AM" +msgstr "dop." + +msgid "midnight" +msgstr "půlnoc" + +msgid "noon" +msgstr "poledne" + +msgid "Monday" +msgstr "pondělí" + +msgid "Tuesday" +msgstr "úterý" + +msgid "Wednesday" +msgstr "středa" + +msgid "Thursday" +msgstr "čtvrtek" + +msgid "Friday" +msgstr "pátek" + +msgid "Saturday" +msgstr "sobota" + +msgid "Sunday" +msgstr "neděle" + +msgid "Mon" +msgstr "po" + +msgid "Tue" +msgstr "út" + +msgid "Wed" +msgstr "st" + +msgid "Thu" +msgstr "čt" + +msgid "Fri" +msgstr "pá" + +msgid "Sat" +msgstr "so" + +msgid "Sun" +msgstr "ne" + +msgid "January" +msgstr "leden" + +msgid "February" +msgstr "únor" + +msgid "March" +msgstr "březen" + +msgid "April" +msgstr "duben" + +msgid "May" +msgstr "květen" + +msgid "June" +msgstr "červen" + +msgid "July" +msgstr "červenec" + +msgid "August" +msgstr "srpen" + +msgid "September" +msgstr "září" + +msgid "October" +msgstr "říjen" + +msgid "November" +msgstr "listopad" + +msgid "December" +msgstr "prosinec" + +msgid "jan" +msgstr "led" + +msgid "feb" +msgstr "úno" + +msgid "mar" +msgstr "bře" + +msgid "apr" +msgstr "dub" + +msgid "may" +msgstr "kvě" + +msgid "jun" +msgstr "čen" + +msgid "jul" +msgstr "čec" + +msgid "aug" +msgstr "srp" + +msgid "sep" +msgstr "zář" + +msgid "oct" +msgstr "říj" + +msgid "nov" +msgstr "lis" + +msgid "dec" +msgstr "pro" + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "Led." + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "Úno." + +msgctxt "abbrev. month" +msgid "March" +msgstr "Bře." + +msgctxt "abbrev. month" +msgid "April" +msgstr "Dub." + +msgctxt "abbrev. month" +msgid "May" +msgstr "Kvě." + +msgctxt "abbrev. month" +msgid "June" +msgstr "Čer." + +msgctxt "abbrev. month" +msgid "July" +msgstr "Čec." + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "Srp." + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "Zář." + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "Říj." + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "Lis." + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "Pro." + +msgctxt "alt. month" +msgid "January" +msgstr "ledna" + +msgctxt "alt. month" +msgid "February" +msgstr "února" + +msgctxt "alt. month" +msgid "March" +msgstr "března" + +msgctxt "alt. month" +msgid "April" +msgstr "dubna" + +msgctxt "alt. month" +msgid "May" +msgstr "května" + +msgctxt "alt. month" +msgid "June" +msgstr "června" + +msgctxt "alt. month" +msgid "July" +msgstr "července" + +msgctxt "alt. month" +msgid "August" +msgstr "srpna" + +msgctxt "alt. month" +msgid "September" +msgstr "září" + +msgctxt "alt. month" +msgid "October" +msgstr "října" + +msgctxt "alt. month" +msgid "November" +msgstr "listopadu" + +msgctxt "alt. month" +msgid "December" +msgstr "prosince" + +msgid "This is not a valid IPv6 address." +msgstr "Toto není platná adresa typu IPv6." + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "%(truncated_text)s…" + +msgid "or" +msgstr "nebo" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr ", " + +#, python-format +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "%(num)d rok" +msgstr[1] "%(num)d roky" +msgstr[2] "%(num)d roku" +msgstr[3] "%(num)d let" + +#, python-format +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "%(num)d měsíc" +msgstr[1] "%(num)d měsíce" +msgstr[2] "%(num)d měsíců" +msgstr[3] "%(num)d měsíců" + +#, python-format +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "%(num)d týden" +msgstr[1] "%(num)d týdny" +msgstr[2] "%(num)d týdne" +msgstr[3] "%(num)d týdnů" + +#, python-format +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "%(num)d den" +msgstr[1] "%(num)d dny" +msgstr[2] "%(num)d dní" +msgstr[3] "%(num)d dní" + +#, python-format +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "%(num)d hodina" +msgstr[1] "%(num)d hodiny" +msgstr[2] "%(num)d hodiny" +msgstr[3] "%(num)d hodin" + +#, python-format +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "%(num)d minuta" +msgstr[1] "%(num)d minuty" +msgstr[2] "%(num)d minut" +msgstr[3] "%(num)d minut" + +msgid "Forbidden" +msgstr "Nepřístupné (Forbidden)" + +msgid "CSRF verification failed. Request aborted." +msgstr "Selhalo ověření typu CSRF. Požadavek byl zadržen." + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" +"Tuto zprávu vidíte, protože tento web na protokolu HTTPS vyžaduje, aby váš " +"prohlížeč zaslal v požadavku záhlaví \"Referer\", k čemuž nedošlo. Záhlaví " +"je požadováno z bezpečnostních důvodů pro kontrolu toho, že prohlížeče se " +"nezmocnila třetí strana." + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" +"Pokud má váš prohlížeč záhlaví \"Referer\" vypnuté, žádáme vás o jeho " +"zapnutí, alespoň pro tento web nebo pro spojení typu HTTPS nebo pro " +"požadavky typu \"stejný původ\" (same origin)." + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" +"Pokud používáte značku nebo " +"záhlaví \"Referrer-Policy: no-referrer\", odeberte je. Ochrana typu CSRF " +"vyžaduje, aby záhlaví zajišťovalo striktní hlídání refereru. Pokud je pro " +"vás soukromí důležité, použijte k odkazům na cizí weby alternativní možnosti " +"jako například ." + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" +"Tato zpráva se zobrazuje, protože tento web při odesílání formulářů požaduje " +"v souboru cookie údaj CSRF, a to z bezpečnostních důvodů, aby se zajistilo, " +"že se vašeho prohlížeče nezmocnil někdo další." + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" +"Pokud má váš prohlížeč soubory cookie vypnuté, žádáme vás o jejich zapnutí, " +"alespoň pro tento web nebo pro požadavky typu \"stejný původ\" (same origin)." + +msgid "More information is available with DEBUG=True." +msgstr "V případě zapnutí volby DEBUG=True bude k dispozici více informací." + +msgid "No year specified" +msgstr "Nebyl specifikován rok" + +msgid "Date out of range" +msgstr "Datum je mimo rozsah" + +msgid "No month specified" +msgstr "Nebyl specifikován měsíc" + +msgid "No day specified" +msgstr "Nebyl specifikován den" + +msgid "No week specified" +msgstr "Nebyl specifikován týden" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "%(verbose_name_plural)s nejsou k dispozici" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" +"%(verbose_name_plural)s s budoucím datem nejsou k dipozici protoze " +"%(class_name)s.allow_future je False" + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "Datum \"%(datestr)s\" neodpovídá formátu \"%(format)s\"" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "Nepodařilo se nalézt žádný objekt %(verbose_name)s" + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "" +"Požadavek na stránku nemohl být konvertován na celé číslo, ani není \"last\"." + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "Neplatná stránka (%(page_number)s): %(message)s" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "List je prázdný a \"%(class_name)s.allow_empty\" je nastaveno na False" + +msgid "Directory indexes are not allowed here." +msgstr "Indexy adresářů zde nejsou povoleny." + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "Cesta \"%(path)s\" neexistuje" + +#, python-format +msgid "Index of %(directory)s" +msgstr "Index adresáře %(directory)s" + +msgid "The install worked successfully! Congratulations!" +msgstr "Instalace proběhla úspěšně, gratulujeme!" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" +"Zobrazit poznámky k vydání frameworku Django " +"%(version)s" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not configured any " +"URLs." +msgstr "" +"Tuto zprávu vidíte, protože máte v nastavení Djanga zapnutý vývojový režim " +"DEBUG=True a zatím nemáte " +"nastavena žádná URL." + +msgid "Django Documentation" +msgstr "Dokumentace frameworku Django" + +msgid "Topics, references, & how-to’s" +msgstr "Témata, odkazy & how-to" + +msgid "Tutorial: A Polling App" +msgstr "Tutoriál: Hlasovací aplikace" + +msgid "Get started with Django" +msgstr "Začínáme s frameworkem Django" + +msgid "Django Community" +msgstr "Komunita kolem frameworku Django" + +msgid "Connect, get help, or contribute" +msgstr "Propojte se, získejte pomoc, podílejte se" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/cs/__init__.py b/venv/lib/python3.12/site-packages/django/conf/locale/cs/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/cs/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/cs/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..cba4bf2acc26cbffd3be15f437b472ff75b30469 GIT binary patch literal 198 zcmX@j%ge<81o5sX(m?cM5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!O4ZNE&rQ|OP0Yy6 zFHO;RNiEZNN=(kybEFQ_cZ$j>v@Gc?jK&MZmQEdVM^ zOiwM=Pssu+OwP|s)6dCIPRvQwPcGJvkI&4@EQycTE2#X%VUwGmQks)$SHudml@W-G PL5z>gjEsy$%s>_Z#k@3u literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/cs/__pycache__/formats.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/cs/__pycache__/formats.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..db3d3daa00a6e4eab94a321e6d3fafd1ed522f1b GIT binary patch literal 931 zcmZvay>Hq;7{<>S2$=9?K9aUlg;aS!3O=>nP*uq(CZN_hGDelXSPo|bDaKJCNO(&B zimp|+{u`YtbzwxTow7xVx@78mBz&p$aL@bx?s=a(+5Q!ea|j+w{@G!}2>qtb@(DZ^ zcQq)!Ac9Op7?U9ZGeB6AB|$StLS~4B%`n+9cTN$Bd}GWAXcROG%7JnuX2!^_xl7_^ ze3B?8{qUJskPC*-9+i7O_s|q*%~pX10aX1E5na*nqYI&%*9=^u81y3o5d~Kij8!%9 zIba2V1)%GCQe?qXD+@|lX!;?cCJG7_0L7@EUgi{5mh3-B6gqxlgVKb}9-{or`tWsB z{y&h0rM5VY+a@$HAs8jWEeQnTz;VwU{Gngs$Jc8Xq)|-FV--o4t*WXil0J{=b!F8g z>CPrd8?vNXirUa?%YoEGSCNb*NjGb%rdyk-xi#8~tJbw9bsCmhwLZ%7`#HZDt2d5Y z`eR;m&M#)RS$=i3ZJw^k@9K*5!D`CKk|yb@2IDog)sz~Q4VG-QltWpwjx@D(TyGqG zM|bcx&^^Ij&vmeCcU|w2;EFTGhj#l@Ngfb<(zgev9v(Y`G4A(H@cCra^#-rSm#^@! zH*!knV6;!2Atq-FW7`{aaNld&eFwLPxZ_>8_Gl=cPwpdcT#sD#owpZza47v1hZZb1 zEW* Yq0issQEs1lb1=cr_{`_zMGnsR3txNtl>h($ literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/cs/formats.py b/venv/lib/python3.12/site-packages/django/conf/locale/cs/formats.py new file mode 100644 index 0000000000..e4a7ab9946 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/cs/formats.py @@ -0,0 +1,43 @@ +# This file is distributed under the same license as the Django package. +# +# The *_FORMAT strings use the Django date format syntax, +# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date +DATE_FORMAT = "j. E Y" +TIME_FORMAT = "G:i" +DATETIME_FORMAT = "j. E Y G:i" +YEAR_MONTH_FORMAT = "F Y" +MONTH_DAY_FORMAT = "j. F" +SHORT_DATE_FORMAT = "d.m.Y" +SHORT_DATETIME_FORMAT = "d.m.Y G:i" +FIRST_DAY_OF_WEEK = 1 # Monday + +# The *_INPUT_FORMATS strings use the Python strftime format syntax, +# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior +DATE_INPUT_FORMATS = [ + "%d.%m.%Y", # '05.01.2006' + "%d.%m.%y", # '05.01.06' + "%d. %m. %Y", # '5. 1. 2006' + "%d. %m. %y", # '5. 1. 06' + # "%d. %B %Y", # '25. October 2006' + # "%d. %b. %Y", # '25. Oct. 2006' +] +# Kept ISO formats as one is in first position +TIME_INPUT_FORMATS = [ + "%H:%M:%S", # '04:30:59' + "%H.%M", # '04.30' + "%H:%M", # '04:30' +] +DATETIME_INPUT_FORMATS = [ + "%d.%m.%Y %H:%M:%S", # '05.01.2006 04:30:59' + "%d.%m.%Y %H:%M:%S.%f", # '05.01.2006 04:30:59.000200' + "%d.%m.%Y %H.%M", # '05.01.2006 04.30' + "%d.%m.%Y %H:%M", # '05.01.2006 04:30' + "%d. %m. %Y %H:%M:%S", # '05. 01. 2006 04:30:59' + "%d. %m. %Y %H:%M:%S.%f", # '05. 01. 2006 04:30:59.000200' + "%d. %m. %Y %H.%M", # '05. 01. 2006 04.30' + "%d. %m. %Y %H:%M", # '05. 01. 2006 04:30' + "%Y-%m-%d %H.%M", # '2006-01-05 04.30' +] +DECIMAL_SEPARATOR = "," +THOUSAND_SEPARATOR = "\xa0" # non-breaking space +NUMBER_GROUPING = 3 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/cy/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/conf/locale/cy/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..ea5b45cea0d92e995aae102e35533d6abbc38d00 GIT binary patch literal 18319 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 XDO8l=wzv|G!qu_AI;=6oNcevMYAEI_ literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/cy/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/conf/locale/cy/LC_MESSAGES/django.po new file mode 100644 index 0000000000..16383ce020 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/cy/LC_MESSAGES/django.po @@ -0,0 +1,1278 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Jannis Leidel , 2011 +# Maredudd ap Gwyndaf , 2012,2014 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-09-27 22:40+0200\n" +"PO-Revision-Date: 2019-11-05 00:38+0000\n" +"Last-Translator: Ramiro Morales\n" +"Language-Team: Welsh (http://www.transifex.com/django/django/language/cy/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: cy\n" +"Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != " +"11) ? 2 : 3;\n" + +msgid "Afrikaans" +msgstr "Affricaneg" + +msgid "Arabic" +msgstr "Arabeg" + +msgid "Asturian" +msgstr "Astwrieg" + +msgid "Azerbaijani" +msgstr "Azerbaijanaidd" + +msgid "Bulgarian" +msgstr "Bwlgareg" + +msgid "Belarusian" +msgstr "Belarwseg" + +msgid "Bengali" +msgstr "Bengaleg" + +msgid "Breton" +msgstr "Llydaweg" + +msgid "Bosnian" +msgstr "Bosnieg" + +msgid "Catalan" +msgstr "Catalaneg" + +msgid "Czech" +msgstr "Tsieceg" + +msgid "Welsh" +msgstr "Cymraeg" + +msgid "Danish" +msgstr "Daneg" + +msgid "German" +msgstr "Almaeneg" + +msgid "Lower Sorbian" +msgstr "" + +msgid "Greek" +msgstr "Groegedd" + +msgid "English" +msgstr "Saesneg" + +msgid "Australian English" +msgstr "Saesneg Awstralia" + +msgid "British English" +msgstr "Saesneg Prydain" + +msgid "Esperanto" +msgstr "Esperanto" + +msgid "Spanish" +msgstr "Sbaeneg" + +msgid "Argentinian Spanish" +msgstr "Sbaeneg Ariannin" + +msgid "Colombian Spanish" +msgstr "" + +msgid "Mexican Spanish" +msgstr "Sbaeneg Mecsico" + +msgid "Nicaraguan Spanish" +msgstr "Sbaeneg Nicaragwa" + +msgid "Venezuelan Spanish" +msgstr "Sbaeneg Feneswela" + +msgid "Estonian" +msgstr "Estoneg" + +msgid "Basque" +msgstr "Basgeg" + +msgid "Persian" +msgstr "Persieg" + +msgid "Finnish" +msgstr "Ffinneg" + +msgid "French" +msgstr "Ffrangeg" + +msgid "Frisian" +msgstr "Ffrisieg" + +msgid "Irish" +msgstr "Gwyddeleg" + +msgid "Scottish Gaelic" +msgstr "" + +msgid "Galician" +msgstr "Galisieg" + +msgid "Hebrew" +msgstr "Hebraeg" + +msgid "Hindi" +msgstr "Hindi" + +msgid "Croatian" +msgstr "Croasieg" + +msgid "Upper Sorbian" +msgstr "" + +msgid "Hungarian" +msgstr "Hwngareg" + +msgid "Armenian" +msgstr "" + +msgid "Interlingua" +msgstr "Interlingua" + +msgid "Indonesian" +msgstr "Indoneseg" + +msgid "Ido" +msgstr "Ido" + +msgid "Icelandic" +msgstr "Islandeg" + +msgid "Italian" +msgstr "Eidaleg" + +msgid "Japanese" +msgstr "Siapanëeg" + +msgid "Georgian" +msgstr "Georgeg" + +msgid "Kabyle" +msgstr "" + +msgid "Kazakh" +msgstr "Casacstanaidd" + +msgid "Khmer" +msgstr "Chmereg" + +msgid "Kannada" +msgstr "Canadeg" + +msgid "Korean" +msgstr "Corëeg" + +msgid "Luxembourgish" +msgstr "Lwcsembergeg" + +msgid "Lithuanian" +msgstr "Lithwaneg" + +msgid "Latvian" +msgstr "Latfieg" + +msgid "Macedonian" +msgstr "Macedoneg" + +msgid "Malayalam" +msgstr "Malaialam" + +msgid "Mongolian" +msgstr "Mongoleg" + +msgid "Marathi" +msgstr "Marathi" + +msgid "Burmese" +msgstr "Byrmaneg" + +msgid "Norwegian Bokmål" +msgstr "" + +msgid "Nepali" +msgstr "Nepaleg" + +msgid "Dutch" +msgstr "Iseldireg" + +msgid "Norwegian Nynorsk" +msgstr "Ninorsk Norwyeg" + +msgid "Ossetic" +msgstr "Osetieg" + +msgid "Punjabi" +msgstr "Pwnjabi" + +msgid "Polish" +msgstr "Pwyleg" + +msgid "Portuguese" +msgstr "Portiwgaleg" + +msgid "Brazilian Portuguese" +msgstr "Portiwgaleg Brasil" + +msgid "Romanian" +msgstr "Romaneg" + +msgid "Russian" +msgstr "Rwsieg" + +msgid "Slovak" +msgstr "Slofaceg" + +msgid "Slovenian" +msgstr "Slofeneg" + +msgid "Albanian" +msgstr "Albaneg" + +msgid "Serbian" +msgstr "Serbeg" + +msgid "Serbian Latin" +msgstr "Lladin Serbiaidd" + +msgid "Swedish" +msgstr "Swedeg" + +msgid "Swahili" +msgstr "Swahili" + +msgid "Tamil" +msgstr "Tamil" + +msgid "Telugu" +msgstr "Telwgw" + +msgid "Thai" +msgstr "Tai" + +msgid "Turkish" +msgstr "Twrceg" + +msgid "Tatar" +msgstr "Tatareg" + +msgid "Udmurt" +msgstr "Wdmwrteg" + +msgid "Ukrainian" +msgstr "Wcreineg" + +msgid "Urdu" +msgstr "Wrdw" + +msgid "Uzbek" +msgstr "" + +msgid "Vietnamese" +msgstr "Fietnameg" + +msgid "Simplified Chinese" +msgstr "Tsieinëeg Syml" + +msgid "Traditional Chinese" +msgstr "Tseinëeg Traddodiadol" + +msgid "Messages" +msgstr "" + +msgid "Site Maps" +msgstr "Mapiau Safle" + +msgid "Static Files" +msgstr "Ffeiliau Statig" + +msgid "Syndication" +msgstr "Syndicetiad" + +msgid "That page number is not an integer" +msgstr "" + +msgid "That page number is less than 1" +msgstr "" + +msgid "That page contains no results" +msgstr "" + +msgid "Enter a valid value." +msgstr "Rhowch werth dilys." + +msgid "Enter a valid URL." +msgstr "Rhowch URL dilys." + +msgid "Enter a valid integer." +msgstr "Rhowch gyfanrif dilys." + +msgid "Enter a valid email address." +msgstr "Rhowch gyfeiriad ebost dilys." + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" + +msgid "Enter a valid IPv4 address." +msgstr "Rhowch gyfeiriad IPv4 dilys." + +msgid "Enter a valid IPv6 address." +msgstr "Rhowch gyfeiriad IPv6 dilys." + +msgid "Enter a valid IPv4 or IPv6 address." +msgstr "Rhowch gyfeiriad IPv4 neu IPv6 dilys." + +msgid "Enter only digits separated by commas." +msgstr "Rhowch ddigidau wedi'i gwahanu gan gomas yn unig." + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "" +"Sicrhewch taw y gwerth yw %(limit_value)s (%(show_value)s yw ar hyn o bryd)." + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "Sicrhewch fod y gwerth hwn yn fwy neu'n llai na %(limit_value)s." + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "Sicrhewch fod y gwerth yn fwy na neu'n gyfartal â %(limit_value)s." + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Sicrhewch fod gan y gwerth hwn oleiaf %(limit_value)d nod (mae ganddo " +"%(show_value)d)." +msgstr[1] "" +"Sicrhewch fod gan y gwerth hwn oleiaf %(limit_value)d nod (mae ganddo " +"%(show_value)d)." +msgstr[2] "" +"Sicrhewch fod gan y gwerth hwn oleiaf %(limit_value)d nod (mae ganddo " +"%(show_value)d)." +msgstr[3] "" +"Sicrhewch fod gan y gwerth hwn oleiaf %(limit_value)d nod (mae ganddo " +"%(show_value)d)." + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Sicrhewch fod gan y gwerth hwn ddim mwy na %(limit_value)d nod (mae ganddo " +"%(show_value)d)." +msgstr[1] "" +"Sicrhewch fod gan y gwerth hwn ddim mwy na %(limit_value)d nod (mae ganddo " +"%(show_value)d)." +msgstr[2] "" +"Sicrhewch fod gan y gwerth hwn ddim mwy na %(limit_value)d nod (mae ganddo " +"%(show_value)d)." +msgstr[3] "" +"Sicrhewch fod gan y gwerth hwn ddim mwy na %(limit_value)d nod (mae ganddo " +"%(show_value)d)." + +msgid "Enter a number." +msgstr "Rhowch rif." + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "Sicrhewch nad oes mwy nag %(max)s digid i gyd." +msgstr[1] "Sicrhewch nad oes mwy na %(max)s ddigid i gyd." +msgstr[2] "Sicrhewch nad oes mwy na %(max)s digid i gyd." +msgstr[3] "Sicrhewch nad oes mwy na %(max)s digid i gyd." + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "Sicrhewch nad oes mwy nag %(max)s lle degol." +msgstr[1] "Sicrhewch nad oes mwy na %(max)s le degol." +msgstr[2] "Sicrhewch nad oes mwy na %(max)s lle degol." +msgstr[3] "Sicrhewch nad oes mwy na %(max)s lle degol." + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "Sicrhewch nad oes mwy nag %(max)s digid cyn y pwynt degol." +msgstr[1] "Sicrhewch nad oes mwy na %(max)s ddigid cyn y pwynt degol." +msgstr[2] "Sicrhewch nad oes mwy na %(max)s digid cyn y pwynt degol." +msgstr[3] "Sicrhewch nad oes mwy na %(max)s digid cyn y pwynt degol." + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" + +msgid "Null characters are not allowed." +msgstr "" + +msgid "and" +msgstr "a" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "Mae %(model_name)s gyda'r %(field_labels)s hyn yn bodoli'n barod." + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "Nid yw gwerth %(value)r yn ddewis dilys." + +msgid "This field cannot be null." +msgstr "Ni all y maes hwn fod yn 'null'." + +msgid "This field cannot be blank." +msgstr "Ni all y maes hwn fod yn wag." + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "Mae %(model_name)s gyda'r %(field_label)s hwn yn bodoli'n barod." + +#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'. +#. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "Maes o fath: %(field_type)s" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "" + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "" + +msgid "Boolean (Either True or False)" +msgstr "Boleaidd (Unai True neu False)" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "String (hyd at %(max_length)s)" + +msgid "Comma-separated integers" +msgstr "Cyfanrifau wedi'u gwahanu gan gomas" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" + +msgid "Date (without time)" +msgstr "Dyddiad (heb amser)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" + +msgid "Date (with time)" +msgstr "Dyddiad (gydag amser)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "" + +msgid "Decimal number" +msgstr "Rhif degol" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" + +msgid "Duration" +msgstr "" + +msgid "Email address" +msgstr "Cyfeiriad ebost" + +msgid "File path" +msgstr "Llwybr ffeil" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "" + +msgid "Floating point number" +msgstr "Rhif pwynt symudol" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "" + +msgid "Integer" +msgstr "cyfanrif" + +msgid "Big (8 byte) integer" +msgstr "Cyfanrif mawr (8 beit)" + +msgid "IPv4 address" +msgstr "Cyfeiriad IPv4" + +msgid "IP address" +msgstr "cyfeiriad IP" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "" + +msgid "Boolean (Either True, False or None)" +msgstr "Boleaidd (Naill ai True, False neu None)" + +msgid "Positive integer" +msgstr "Cyfanrif positif" + +msgid "Positive small integer" +msgstr "Cyfanrif bach positif" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "Malwen (hyd at %(max_length)s)" + +msgid "Small integer" +msgstr "Cyfanrif bach" + +msgid "Text" +msgstr "Testun" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" + +msgid "Time" +msgstr "Amser" + +msgid "URL" +msgstr "URL" + +msgid "Raw binary data" +msgstr "Data deuol crai" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "" + +msgid "Universally unique identifier" +msgstr "" + +msgid "File" +msgstr "Ffeil" + +msgid "Image" +msgstr "Delwedd" + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "" + +msgid "Foreign Key (type determined by related field)" +msgstr "Allwedd Estron (math yn ddibynol ar y maes cysylltiedig)" + +msgid "One-to-one relationship" +msgstr "Perthynas un-i-un" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "" + +msgid "Many-to-many relationship" +msgstr "Perthynas llawer-i-lawer" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr ":?.!" + +msgid "This field is required." +msgstr "Mae angen y maes hwn." + +msgid "Enter a whole number." +msgstr "Rhowch cyfanrif." + +msgid "Enter a valid date." +msgstr "Rhif ddyddiad dilys." + +msgid "Enter a valid time." +msgstr "Rhowch amser dilys." + +msgid "Enter a valid date/time." +msgstr "Rhowch ddyddiad/amser dilys." + +msgid "Enter a valid duration." +msgstr "" + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "" + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "Ni anfonwyd ffeil. Gwiriwch math yr amgodiad ar y ffurflen." + +msgid "No file was submitted." +msgstr "Ni anfonwyd ffeil." + +msgid "The submitted file is empty." +msgstr "Mae'r ffeil yn wag." + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" +"Sicrhewch fod gan enw'r ffeil ar y mwyaf %(max)d nod (mae ganddo %(length)d)." +msgstr[1] "" +"Sicrhewch fod gan enw'r ffeil ar y mwyaf %(max)d nod (mae ganddo %(length)d)." +msgstr[2] "" +"Sicrhewch fod gan enw'r ffeil ar y mwyaf %(max)d nod (mae ganddo %(length)d)." +msgstr[3] "" +"Sicrhewch fod gan enw'r ffeil ar y mwyaf %(max)d nod (mae ganddo %(length)d)." + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "" +"Nail ai cyflwynwych ffeil neu dewisiwch y blwch gwiriad, ond nid y ddau." + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" +"Llwythwch ddelwedd dilys. Doedd y ddelwedd a lwythwyd ddim yn ddelwedd " +"dilys, neu roedd yn ddelwedd llygredig." + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "" +"Dewiswch ddewisiad dilys. Nid yw %(value)s yn un o'r dewisiadau sydd ar gael." + +msgid "Enter a list of values." +msgstr "Rhowch restr o werthoedd." + +msgid "Enter a complete value." +msgstr "Rhowch werth cyflawn." + +msgid "Enter a valid UUID." +msgstr "" + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr ":" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "(Maes cudd %(name)s) %(error)s" + +msgid "ManagementForm data is missing or has been tampered with" +msgstr "Mae data ManagementForm ar goll neu mae rhywun wedi ymyrryd ynddo" + +#, python-format +msgid "Please submit %d or fewer forms." +msgid_plural "Please submit %d or fewer forms." +msgstr[0] "Cyflwynwch %d neu lai o ffurflenni." +msgstr[1] "Cyflwynwch %d neu lai o ffurflenni." +msgstr[2] "Cyflwynwch %d neu lai o ffurflenni." +msgstr[3] "Cyflwynwch %d neu lai o ffurflenni." + +#, python-format +msgid "Please submit %d or more forms." +msgid_plural "Please submit %d or more forms." +msgstr[0] "Cyflwynwch %d neu fwy o ffurflenni." +msgstr[1] "Cyflwynwch %d neu fwy o ffurflenni." +msgstr[2] "Cyflwynwch %d neu fwy o ffurflenni." +msgstr[3] "Cyflwynwch %d neu fwy o ffurflenni." + +msgid "Order" +msgstr "Trefn" + +msgid "Delete" +msgstr "Dileu" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "Cywirwch y data dyblyg ar gyfer %(field)s." + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "" +"Cywirwch y data dyblyg ar gyfer %(field)s, sydd yn gorfod bod yn unigryw." + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"Cywirwch y data dyblyg ar gyfer %(field_name)s sydd yn gorfod bod yn unigryw " +"ar gyfer %(lookup)s yn %(date_field)s." + +msgid "Please correct the duplicate values below." +msgstr "Cywirwch y gwerthoedd dyblyg isod." + +msgid "The inline value did not match the parent instance." +msgstr "" + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "" +"Dewiswch ddewisiad dilys. Nid yw'r dewisiad yn un o'r dewisiadau sydd ar " +"gael." + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "" + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" + +msgid "Clear" +msgstr "Clirio" + +msgid "Currently" +msgstr "Ar hyn o bryd" + +msgid "Change" +msgstr "Newid" + +msgid "Unknown" +msgstr "Anhysbys" + +msgid "Yes" +msgstr "Ie" + +msgid "No" +msgstr "Na" + +msgid "Year" +msgstr "" + +msgid "Month" +msgstr "" + +msgid "Day" +msgstr "" + +msgid "yes,no,maybe" +msgstr "ie,na,efallai" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)d beit" +msgstr[1] "%(size)d beit" +msgstr[2] "%(size)d beit" +msgstr[3] "%(size)d beit" + +#, python-format +msgid "%s KB" +msgstr "%s KB" + +#, python-format +msgid "%s MB" +msgstr "%s MB" + +#, python-format +msgid "%s GB" +msgstr "%s GB" + +#, python-format +msgid "%s TB" +msgstr "%s TB" + +#, python-format +msgid "%s PB" +msgstr "%s PB" + +msgid "p.m." +msgstr "y.h." + +msgid "a.m." +msgstr "y.b." + +msgid "PM" +msgstr "YH" + +msgid "AM" +msgstr "YB" + +msgid "midnight" +msgstr "canol nos" + +msgid "noon" +msgstr "canol dydd" + +msgid "Monday" +msgstr "Dydd Llun" + +msgid "Tuesday" +msgstr "Dydd Mawrth" + +msgid "Wednesday" +msgstr "Dydd Mercher" + +msgid "Thursday" +msgstr "Dydd Iau" + +msgid "Friday" +msgstr "Dydd Gwener" + +msgid "Saturday" +msgstr "Dydd Sadwrn" + +msgid "Sunday" +msgstr "Dydd Sul" + +msgid "Mon" +msgstr "Llu" + +msgid "Tue" +msgstr "Maw" + +msgid "Wed" +msgstr "Mer" + +msgid "Thu" +msgstr "Iau" + +msgid "Fri" +msgstr "Gwe" + +msgid "Sat" +msgstr "Sad" + +msgid "Sun" +msgstr "Sul" + +msgid "January" +msgstr "Ionawr" + +msgid "February" +msgstr "Chwefror" + +msgid "March" +msgstr "Mawrth" + +msgid "April" +msgstr "Ebrill" + +msgid "May" +msgstr "Mai" + +msgid "June" +msgstr "Mehefin" + +msgid "July" +msgstr "Gorffenaf" + +msgid "August" +msgstr "Awst" + +msgid "September" +msgstr "Medi" + +msgid "October" +msgstr "Hydref" + +msgid "November" +msgstr "Tachwedd" + +msgid "December" +msgstr "Rhagfyr" + +msgid "jan" +msgstr "ion" + +msgid "feb" +msgstr "chw" + +msgid "mar" +msgstr "maw" + +msgid "apr" +msgstr "ebr" + +msgid "may" +msgstr "mai" + +msgid "jun" +msgstr "meh" + +msgid "jul" +msgstr "gor" + +msgid "aug" +msgstr "aws" + +msgid "sep" +msgstr "med" + +msgid "oct" +msgstr "hyd" + +msgid "nov" +msgstr "tach" + +msgid "dec" +msgstr "rhag" + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "Ion." + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "Chwe." + +msgctxt "abbrev. month" +msgid "March" +msgstr "Mawrth" + +msgctxt "abbrev. month" +msgid "April" +msgstr "Ebrill" + +msgctxt "abbrev. month" +msgid "May" +msgstr "Mai" + +msgctxt "abbrev. month" +msgid "June" +msgstr "Meh." + +msgctxt "abbrev. month" +msgid "July" +msgstr "Gorff." + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "Awst" + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "Medi" + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "Hydr." + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "Tach." + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "Rhag." + +msgctxt "alt. month" +msgid "January" +msgstr "Ionawr" + +msgctxt "alt. month" +msgid "February" +msgstr "Chwefror" + +msgctxt "alt. month" +msgid "March" +msgstr "Mawrth" + +msgctxt "alt. month" +msgid "April" +msgstr "Ebrill" + +msgctxt "alt. month" +msgid "May" +msgstr "Mai" + +msgctxt "alt. month" +msgid "June" +msgstr "Mehefin" + +msgctxt "alt. month" +msgid "July" +msgstr "Gorffenaf" + +msgctxt "alt. month" +msgid "August" +msgstr "Awst" + +msgctxt "alt. month" +msgid "September" +msgstr "Medi" + +msgctxt "alt. month" +msgid "October" +msgstr "Hydref" + +msgctxt "alt. month" +msgid "November" +msgstr "Tachwedd" + +msgctxt "alt. month" +msgid "December" +msgstr "Rhagfyr" + +msgid "This is not a valid IPv6 address." +msgstr "Nid yw hwn yn gyfeiriad IPv6 dilys." + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "" + +msgid "or" +msgstr "neu" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr "," + +#, python-format +msgid "%d year" +msgid_plural "%d years" +msgstr[0] "%d blwyddyn" +msgstr[1] "%d flynedd" +msgstr[2] "%d blwyddyn" +msgstr[3] "%d blwyddyn" + +#, python-format +msgid "%d month" +msgid_plural "%d months" +msgstr[0] "%d mis" +msgstr[1] "%d fis" +msgstr[2] "%d mis" +msgstr[3] "%d mis" + +#, python-format +msgid "%d week" +msgid_plural "%d weeks" +msgstr[0] "%d wythnos" +msgstr[1] "%d wythnos" +msgstr[2] "%d wythnos" +msgstr[3] "%d wythnos" + +#, python-format +msgid "%d day" +msgid_plural "%d days" +msgstr[0] "%d diwrnod" +msgstr[1] "%d ddiwrnod" +msgstr[2] "%d diwrnod" +msgstr[3] "%d diwrnod" + +#, python-format +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "%d awr" +msgstr[1] "%d awr" +msgstr[2] "%d awr" +msgstr[3] "%d awr" + +#, python-format +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "%d munud" +msgstr[1] "%d funud" +msgstr[2] "%d munud" +msgstr[3] "%d munud" + +msgid "0 minutes" +msgstr "0 munud" + +msgid "Forbidden" +msgstr "Gwaharddedig" + +msgid "CSRF verification failed. Request aborted." +msgstr "Gwirio CSRF wedi methu. Ataliwyd y cais." + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your Web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" +"Dangosir y neges hwn oherwydd bod angen cwci CSRF ar y safle hwn pan yn " +"anfon ffurflenni. Mae angen y cwci ar gyfer diogelwch er mwyn sicrhau nad " +"oes trydydd parti yn herwgipio eich porwr." + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" + +msgid "More information is available with DEBUG=True." +msgstr "Mae mwy o wybodaeth ar gael gyda DEBUG=True" + +msgid "No year specified" +msgstr "Dim blwyddyn wedi’i bennu" + +msgid "Date out of range" +msgstr "" + +msgid "No month specified" +msgstr "Dim mis wedi’i bennu" + +msgid "No day specified" +msgstr "Dim diwrnod wedi’i bennu" + +msgid "No week specified" +msgstr "Dim wythnos wedi’i bennu" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "Dim %(verbose_name_plural)s ar gael" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" +"%(verbose_name_plural)s i'r dyfodol ddim ar gael oherwydd mae %(class_name)s." +"allow_future yn 'False'. " + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "Ni ganfuwyd %(verbose_name)s yn cydweddu â'r ymholiad" + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "" + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "Tudalen annilys (%(page_number)s): %(message)s" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "" + +msgid "Directory indexes are not allowed here." +msgstr "Ni ganiateir mynegai cyfeiriaduron yma." + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "" + +#, python-format +msgid "Index of %(directory)s" +msgstr "Mynegai %(directory)s" + +msgid "Django: the Web framework for perfectionists with deadlines." +msgstr "" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" + +msgid "The install worked successfully! Congratulations!" +msgstr "" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not configured any " +"URLs." +msgstr "" + +msgid "Django Documentation" +msgstr "" + +msgid "Topics, references, & how-to’s" +msgstr "" + +msgid "Tutorial: A Polling App" +msgstr "" + +msgid "Get started with Django" +msgstr "" + +msgid "Django Community" +msgstr "" + +msgid "Connect, get help, or contribute" +msgstr "" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/cy/__init__.py b/venv/lib/python3.12/site-packages/django/conf/locale/cy/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/cy/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/cy/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4f81c965ef7e68e0f124cf2ce65ccc9ab7fbb70f GIT binary patch literal 198 zcmX@j%ge<81o5sX(m?cM5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!O4ZNE&rQ|OP0Yy6 zFHO;RNiEZNN=(kybEFQ_cZ$j>v@Gc?jK&MZmQEdVM^ zOiwM=Pssu+OwP|s)6dCIPRvQwPp;IDkI&4@EQycTE2#X%VUwGmQks)$SHudml@W-G PL5z>gjEsy$%s>_Z#?~~4 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/cy/__pycache__/formats.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/cy/__pycache__/formats.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..eeac62c83f744a2d00c8412b9e5cc3da8f1dfd12 GIT binary patch literal 840 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

QBYgrFZW?K5-a`X&8COd!`oV} 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/da/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/conf/locale/da/LC_MESSAGES/django.po new file mode 100644 index 0000000000..eb89a01242 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/da/LC_MESSAGES/django.po @@ -0,0 +1,1341 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Christian Joergensen , 2012 +# Danni Randeris , 2014 +# Erik Ramsgaard Wognsen , 2020-2024 +# Erik Ramsgaard Wognsen , 2013-2019 +# Finn Gruwier Larsen, 2011 +# Jannis Leidel , 2011 +# jonaskoelker , 2012 +# Mads Chr. Olesen , 2013 +# valberg , 2015 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-05-22 11:46-0300\n" +"PO-Revision-Date: 2024-08-07 06:49+0000\n" +"Last-Translator: Erik Ramsgaard Wognsen , 2020-2024\n" +"Language-Team: Danish (http://app.transifex.com/django/django/language/da/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: da\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Afrikaans" +msgstr "afrikaans" + +msgid "Arabic" +msgstr "arabisk" + +msgid "Algerian Arabic" +msgstr "algerisk arabisk" + +msgid "Asturian" +msgstr "Asturisk" + +msgid "Azerbaijani" +msgstr "azerbaidjansk" + +msgid "Bulgarian" +msgstr "bulgarsk" + +msgid "Belarusian" +msgstr "hviderussisk" + +msgid "Bengali" +msgstr "bengalsk" + +msgid "Breton" +msgstr "bretonsk" + +msgid "Bosnian" +msgstr "bosnisk" + +msgid "Catalan" +msgstr "catalansk" + +msgid "Central Kurdish (Sorani)" +msgstr "Centralkurdisk (Sorani)" + +msgid "Czech" +msgstr "tjekkisk" + +msgid "Welsh" +msgstr "walisisk" + +msgid "Danish" +msgstr "dansk" + +msgid "German" +msgstr "tysk" + +msgid "Lower Sorbian" +msgstr "nedresorbisk" + +msgid "Greek" +msgstr "græsk" + +msgid "English" +msgstr "engelsk" + +msgid "Australian English" +msgstr "australsk engelsk" + +msgid "British English" +msgstr "britisk engelsk" + +msgid "Esperanto" +msgstr "esperanto" + +msgid "Spanish" +msgstr "spansk" + +msgid "Argentinian Spanish" +msgstr "argentinsk spansk" + +msgid "Colombian Spanish" +msgstr "colombiansk spansk" + +msgid "Mexican Spanish" +msgstr "mexikansk spansk" + +msgid "Nicaraguan Spanish" +msgstr "nicaraguansk spansk" + +msgid "Venezuelan Spanish" +msgstr "venezuelansk spansk" + +msgid "Estonian" +msgstr "estisk" + +msgid "Basque" +msgstr "baskisk" + +msgid "Persian" +msgstr "persisk" + +msgid "Finnish" +msgstr "finsk" + +msgid "French" +msgstr "fransk" + +msgid "Frisian" +msgstr "frisisk" + +msgid "Irish" +msgstr "irsk" + +msgid "Scottish Gaelic" +msgstr "skotsk gælisk" + +msgid "Galician" +msgstr "galicisk" + +msgid "Hebrew" +msgstr "hebraisk" + +msgid "Hindi" +msgstr "hindi" + +msgid "Croatian" +msgstr "kroatisk" + +msgid "Upper Sorbian" +msgstr "øvresorbisk" + +msgid "Hungarian" +msgstr "ungarsk" + +msgid "Armenian" +msgstr "armensk" + +msgid "Interlingua" +msgstr "interlingua" + +msgid "Indonesian" +msgstr "indonesisk" + +msgid "Igbo" +msgstr "igbo" + +msgid "Ido" +msgstr "Ido" + +msgid "Icelandic" +msgstr "islandsk" + +msgid "Italian" +msgstr "italiensk" + +msgid "Japanese" +msgstr "japansk" + +msgid "Georgian" +msgstr "georgisk" + +msgid "Kabyle" +msgstr "kabylsk" + +msgid "Kazakh" +msgstr "kasakhisk" + +msgid "Khmer" +msgstr "khmer" + +msgid "Kannada" +msgstr "kannada" + +msgid "Korean" +msgstr "koreansk" + +msgid "Kyrgyz" +msgstr "kirgisisk" + +msgid "Luxembourgish" +msgstr "luxembourgisk" + +msgid "Lithuanian" +msgstr "litauisk" + +msgid "Latvian" +msgstr "lettisk" + +msgid "Macedonian" +msgstr "makedonsk" + +msgid "Malayalam" +msgstr "malayalam" + +msgid "Mongolian" +msgstr "mongolsk" + +msgid "Marathi" +msgstr "marathi" + +msgid "Malay" +msgstr "malajisk" + +msgid "Burmese" +msgstr "burmesisk" + +msgid "Norwegian Bokmål" +msgstr "norsk bokmål" + +msgid "Nepali" +msgstr "nepalesisk" + +msgid "Dutch" +msgstr "hollandsk" + +msgid "Norwegian Nynorsk" +msgstr "norsk nynorsk" + +msgid "Ossetic" +msgstr "ossetisk" + +msgid "Punjabi" +msgstr "punjabi" + +msgid "Polish" +msgstr "polsk" + +msgid "Portuguese" +msgstr "portugisisk" + +msgid "Brazilian Portuguese" +msgstr "brasiliansk portugisisk" + +msgid "Romanian" +msgstr "rumænsk" + +msgid "Russian" +msgstr "russisk" + +msgid "Slovak" +msgstr "slovakisk" + +msgid "Slovenian" +msgstr "slovensk" + +msgid "Albanian" +msgstr "albansk" + +msgid "Serbian" +msgstr "serbisk" + +msgid "Serbian Latin" +msgstr "serbisk (latin)" + +msgid "Swedish" +msgstr "svensk" + +msgid "Swahili" +msgstr "swahili" + +msgid "Tamil" +msgstr "tamil" + +msgid "Telugu" +msgstr "telugu" + +msgid "Tajik" +msgstr "tadsjikisk" + +msgid "Thai" +msgstr "thai" + +msgid "Turkmen" +msgstr "turkmensk" + +msgid "Turkish" +msgstr "tyrkisk" + +msgid "Tatar" +msgstr "tatarisk" + +msgid "Udmurt" +msgstr "udmurtisk" + +msgid "Uyghur" +msgstr "uygurisk" + +msgid "Ukrainian" +msgstr "ukrainsk" + +msgid "Urdu" +msgstr "urdu" + +msgid "Uzbek" +msgstr "usbekisk" + +msgid "Vietnamese" +msgstr "vietnamesisk" + +msgid "Simplified Chinese" +msgstr "forenklet kinesisk" + +msgid "Traditional Chinese" +msgstr "traditionelt kinesisk" + +msgid "Messages" +msgstr "Meddelelser" + +msgid "Site Maps" +msgstr "Site Maps" + +msgid "Static Files" +msgstr "Static Files" + +msgid "Syndication" +msgstr "Syndication" + +#. Translators: String used to replace omitted page numbers in elided page +#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10]. +msgid "…" +msgstr "…" + +msgid "That page number is not an integer" +msgstr "Det sidetal er ikke et heltal" + +msgid "That page number is less than 1" +msgstr "Det sidetal er mindre end 1" + +msgid "That page contains no results" +msgstr "Den side indeholder ingen resultater" + +msgid "Enter a valid value." +msgstr "Indtast en gyldig værdi." + +msgid "Enter a valid domain name." +msgstr "Indtast et gyldigt domænenavn." + +msgid "Enter a valid URL." +msgstr "Indtast en gyldig URL." + +msgid "Enter a valid integer." +msgstr "Indtast et gyldigt heltal." + +msgid "Enter a valid email address." +msgstr "Indtast en gyldig e-mail-adresse." + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" +"Indtast en gyldig “slug” bestående af bogstaver, cifre, understreger eller " +"bindestreger." + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" +"Indtast en gyldig “slug” bestående af Unicode-bogstaver, cifre, understreger " +"eller bindestreger." + +#, python-format +msgid "Enter a valid %(protocol)s address." +msgstr "Indtast en gyldig %(protocol)s-adresse." + +msgid "IPv4" +msgstr "IPv4" + +msgid "IPv6" +msgstr "IPv6" + +msgid "IPv4 or IPv6" +msgstr "IPv4 eller IPv6" + +msgid "Enter only digits separated by commas." +msgstr "Indtast kun cifre adskilt af kommaer." + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "Denne værdi skal være %(limit_value)s (den er %(show_value)s)." + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "Denne værdi skal være mindre end eller lig %(limit_value)s." + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "Denne værdi skal være større end eller lig %(limit_value)s." + +#, python-format +msgid "Ensure this value is a multiple of step size %(limit_value)s." +msgstr "Denne værdi skal være et multiplum af trinstørrelse %(limit_value)s." + +#, python-format +msgid "" +"Ensure this value is a multiple of step size %(limit_value)s, starting from " +"%(offset)s, e.g. %(offset)s, %(valid_value1)s, %(valid_value2)s, and so on." +msgstr "" +"Denne værdi skal være et multiplum af trinstørrelse %(limit_value)s, " +"startende fra %(offset)s, fx %(offset)s, %(valid_value1)s, %(valid_value2)s, " +"osv." + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Denne værdi skal have mindst %(limit_value)d tegn (den har %(show_value)d)." +msgstr[1] "" +"Denne værdi skal have mindst %(limit_value)d tegn (den har %(show_value)d)." + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Denne værdi må højst have %(limit_value)d tegn (den har %(show_value)d)." +msgstr[1] "" +"Denne værdi må højst have %(limit_value)d tegn (den har %(show_value)d)." + +msgid "Enter a number." +msgstr "Indtast et tal." + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "Der må maksimalt være %(max)s ciffer i alt." +msgstr[1] "Der må maksimalt være %(max)s cifre i alt." + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "Der må maksimalt være %(max)s decimal." +msgstr[1] "Der må maksimalt være %(max)s decimaler." + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "Der må maksimalt være %(max)s ciffer før kommaet." +msgstr[1] "Der må maksimalt være %(max)s cifre før kommaet." + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" +"Filendelse “%(extension)s” er ikke tilladt. Tilladte filendelser er: " +"%(allowed_extensions)s." + +msgid "Null characters are not allowed." +msgstr "Null-tegn er ikke tilladte." + +msgid "and" +msgstr "og" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "%(model_name)s med dette %(field_labels)s eksisterer allerede." + +#, python-format +msgid "Constraint “%(name)s” is violated." +msgstr "Begrænsning “%(name)s” er overtrådt." + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "Værdien %(value)r er ikke et gyldigt valg." + +msgid "This field cannot be null." +msgstr "Dette felt kan ikke være null." + +msgid "This field cannot be blank." +msgstr "Dette felt kan ikke være tomt." + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "%(model_name)s med dette %(field_label)s eksisterer allerede." + +#. Translators: The 'lookup_type' is one of 'date', 'year' or +#. 'month'. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" +"%(field_label)s skal være unik for %(date_field_label)s %(lookup_type)s." + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "Felt af type: %(field_type)s" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "“%(value)s”-værdien skal være enten True eller False." + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "“%(value)s”-værdien skal være enten True, False eller None." + +msgid "Boolean (Either True or False)" +msgstr "Boolsk (enten True eller False)" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "Streng (op til %(max_length)s)" + +msgid "String (unlimited)" +msgstr "Streng (ubegrænset)" + +msgid "Comma-separated integers" +msgstr "Kommaseparerede heltal" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" +"“%(value)s”-værdien har et ugyldigt datoformat. Den skal være i formatet " +"ÅÅÅÅ-MM-DD." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" +"“%(value)s”-værdien har det korrekte format (ÅÅÅÅ-MM-DD) men er en ugyldig " +"dato." + +msgid "Date (without time)" +msgstr "Dato (uden tid)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" +"“%(value)s”-værdien har et ugyldigt format. Den skal være i formatet ÅÅÅÅ-MM-" +"DD TT:MM[:ss[.uuuuuu]][TZ]." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" +"“%(value)s”-værdien har det korrekte format (ÅÅÅÅ-MM-DD TT:MM[:ss[.uuuuuu]]" +"[TZ]) men er en ugyldig dato/tid." + +msgid "Date (with time)" +msgstr "Dato (med tid)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "“%(value)s”-værdien skal være et decimaltal." + +msgid "Decimal number" +msgstr "Decimaltal" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" +"“%(value)s”-værdien har et ugyldigt format. Den skal være i formatet [DD] " +"[[TT:]MM:]ss[.uuuuuu]." + +msgid "Duration" +msgstr "Varighed" + +msgid "Email address" +msgstr "E-mail-adresse" + +msgid "File path" +msgstr "Sti" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "“%(value)s”-værdien skal være et kommatal." + +msgid "Floating point number" +msgstr "Flydende-komma-tal" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "“%(value)s”-værdien skal være et heltal." + +msgid "Integer" +msgstr "Heltal" + +msgid "Big (8 byte) integer" +msgstr "Stort heltal (8 byte)" + +msgid "Small integer" +msgstr "Lille heltal" + +msgid "IPv4 address" +msgstr "IPv4-adresse" + +msgid "IP address" +msgstr "IP-adresse" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "“%(value)s”-værdien skal være enten None, True eller False." + +msgid "Boolean (Either True, False or None)" +msgstr "Boolsk (True, False eller None)" + +msgid "Positive big integer" +msgstr "Positivt stort heltal" + +msgid "Positive integer" +msgstr "Positivt heltal" + +msgid "Positive small integer" +msgstr "Positivt lille heltal" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "\"Slug\" (op til %(max_length)s)" + +msgid "Text" +msgstr "Tekst" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" +"“%(value)s”-værdien har et ugyldigt format. Den skal være i formatet TT:MM[:" +"ss[.uuuuuu]]." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" +"“%(value)s”-værdien har det korrekte format (TT:MM[:ss[.uuuuuu]]) men er et " +"ugyldigt tidspunkt." + +msgid "Time" +msgstr "Tid" + +msgid "URL" +msgstr "URL" + +msgid "Raw binary data" +msgstr "Rå binære data" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "“%(value)s” er ikke et gyldigt UUID." + +msgid "Universally unique identifier" +msgstr "Universelt unik identifikator" + +msgid "File" +msgstr "Fil" + +msgid "Image" +msgstr "Billede" + +msgid "A JSON object" +msgstr "Et JSON-objekt" + +msgid "Value must be valid JSON." +msgstr "Værdien skal være gyldig JSON." + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "%(model)s instans med %(field)s %(value)r findes ikke." + +msgid "Foreign Key (type determined by related field)" +msgstr "Fremmednøgle (type bestemt af relateret felt)" + +msgid "One-to-one relationship" +msgstr "En-til-en-relation" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "%(from)s-%(to)s-relation" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "%(from)s-%(to)s-relationer" + +msgid "Many-to-many relationship" +msgstr "Mange-til-mange-relation" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr ":?.!" + +msgid "This field is required." +msgstr "Dette felt er påkrævet." + +msgid "Enter a whole number." +msgstr "Indtast et heltal." + +msgid "Enter a valid date." +msgstr "Indtast en gyldig dato." + +msgid "Enter a valid time." +msgstr "Indtast en gyldig tid." + +msgid "Enter a valid date/time." +msgstr "Indtast gyldig dato/tid." + +msgid "Enter a valid duration." +msgstr "Indtast en gyldig varighed." + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "Antallet af dage skal være mellem {min_days} og {max_days}." + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "Ingen fil blev indsendt. Kontroller kodningstypen i formularen." + +msgid "No file was submitted." +msgstr "Ingen fil blev indsendt." + +msgid "The submitted file is empty." +msgstr "Den indsendte fil er tom." + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "Dette filnavn må højst have %(max)d tegn (det har %(length)d)." +msgstr[1] "Dette filnavn må højst have %(max)d tegn (det har %(length)d)." + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "" +"Du skal enten indsende en fil eller afmarkere afkrydsningsfeltet, ikke begge " +"dele." + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" +"Indsend en billedfil. Filen, du indsendte, var enten ikke et billede eller " +"en defekt billedfil." + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "" +"Marker en gyldig valgmulighed. %(value)s er ikke en af de tilgængelige " +"valgmuligheder." + +msgid "Enter a list of values." +msgstr "Indtast en liste af værdier." + +msgid "Enter a complete value." +msgstr "Indtast en komplet værdi." + +msgid "Enter a valid UUID." +msgstr "Indtast et gyldigt UUID." + +msgid "Enter a valid JSON." +msgstr "Indtast gyldig JSON." + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr ":" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "(Skjult felt %(name)s) %(error)s" + +#, python-format +msgid "" +"ManagementForm data is missing or has been tampered with. Missing fields: " +"%(field_names)s. You may need to file a bug report if the issue persists." +msgstr "" +"ManagementForm-data mangler eller er blevet pillet ved. Manglende felter: " +"%(field_names)s. Du kan få behov for at oprette en fejlrapport hvis " +"problemet varer ved." + +#, python-format +msgid "Please submit at most %(num)d form." +msgid_plural "Please submit at most %(num)d forms." +msgstr[0] "Indsend venligst højst %(num)d formular." +msgstr[1] "Indsend venligst højst %(num)d formularer." + +#, python-format +msgid "Please submit at least %(num)d form." +msgid_plural "Please submit at least %(num)d forms." +msgstr[0] "Indsend venligst mindst %(num)d formular." +msgstr[1] "Indsend venligst mindst %(num)d formularer." + +msgid "Order" +msgstr "Rækkefølge" + +msgid "Delete" +msgstr "Slet" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "Ret venligst duplikerede data for %(field)s." + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "Ret venligst de duplikerede data for %(field)s, som skal være unik." + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"Ret venligst de duplikerede data for %(field_name)s, som skal være unik for " +"%(lookup)s i %(date_field)s." + +msgid "Please correct the duplicate values below." +msgstr "Ret venligst de duplikerede data herunder." + +msgid "The inline value did not match the parent instance." +msgstr "Den indlejrede værdi passede ikke med forældreinstansen." + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "" +"Marker en gyldig valgmulighed. Det valg, du har foretaget, er ikke blandt de " +"tilgængelige valgmuligheder." + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "“%(pk)s” er ikke en gyldig værdi." + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" +"%(datetime)s kunne ikke fortolkes i tidszonen %(current_timezone)s; den kan " +"være tvetydig eller den eksisterer måske ikke." + +msgid "Clear" +msgstr "Afmarkér" + +msgid "Currently" +msgstr "Aktuelt" + +msgid "Change" +msgstr "Ret" + +msgid "Unknown" +msgstr "Ukendt" + +msgid "Yes" +msgstr "Ja" + +msgid "No" +msgstr "Nej" + +#. Translators: Please do not add spaces around commas. +msgid "yes,no,maybe" +msgstr "ja,nej,måske" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)d byte" +msgstr[1] "%(size)d bytes" + +#, python-format +msgid "%s KB" +msgstr "%s KB" + +#, python-format +msgid "%s MB" +msgstr "%s MB" + +#, python-format +msgid "%s GB" +msgstr "%s GB" + +#, python-format +msgid "%s TB" +msgstr "%s TB" + +#, python-format +msgid "%s PB" +msgstr "%s PB" + +msgid "p.m." +msgstr "p.m." + +msgid "a.m." +msgstr "a.m." + +msgid "PM" +msgstr "PM" + +msgid "AM" +msgstr "AM" + +msgid "midnight" +msgstr "midnat" + +msgid "noon" +msgstr "middag" + +msgid "Monday" +msgstr "mandag" + +msgid "Tuesday" +msgstr "tirsdag" + +msgid "Wednesday" +msgstr "onsdag" + +msgid "Thursday" +msgstr "torsdag" + +msgid "Friday" +msgstr "fredag" + +msgid "Saturday" +msgstr "lørdag" + +msgid "Sunday" +msgstr "søndag" + +msgid "Mon" +msgstr "man" + +msgid "Tue" +msgstr "tir" + +msgid "Wed" +msgstr "ons" + +msgid "Thu" +msgstr "tor" + +msgid "Fri" +msgstr "fre" + +msgid "Sat" +msgstr "lør" + +msgid "Sun" +msgstr "søn" + +msgid "January" +msgstr "januar" + +msgid "February" +msgstr "februar" + +msgid "March" +msgstr "marts" + +msgid "April" +msgstr "april" + +msgid "May" +msgstr "maj" + +msgid "June" +msgstr "juni" + +msgid "July" +msgstr "juli" + +msgid "August" +msgstr "august" + +msgid "September" +msgstr "september" + +msgid "October" +msgstr "oktober" + +msgid "November" +msgstr "november" + +msgid "December" +msgstr "december" + +msgid "jan" +msgstr "jan" + +msgid "feb" +msgstr "feb" + +msgid "mar" +msgstr "mar" + +msgid "apr" +msgstr "apr" + +msgid "may" +msgstr "maj" + +msgid "jun" +msgstr "jun" + +msgid "jul" +msgstr "jul" + +msgid "aug" +msgstr "aug" + +msgid "sep" +msgstr "sept" + +msgid "oct" +msgstr "okt" + +msgid "nov" +msgstr "nov" + +msgid "dec" +msgstr "dec" + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "jan." + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "feb." + +msgctxt "abbrev. month" +msgid "March" +msgstr "marts" + +msgctxt "abbrev. month" +msgid "April" +msgstr "april" + +msgctxt "abbrev. month" +msgid "May" +msgstr "maj" + +msgctxt "abbrev. month" +msgid "June" +msgstr "juni" + +msgctxt "abbrev. month" +msgid "July" +msgstr "juli" + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "aug." + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "sept." + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "okt." + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "nov." + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "dec." + +msgctxt "alt. month" +msgid "January" +msgstr "januar" + +msgctxt "alt. month" +msgid "February" +msgstr "februar" + +msgctxt "alt. month" +msgid "March" +msgstr "marts" + +msgctxt "alt. month" +msgid "April" +msgstr "april" + +msgctxt "alt. month" +msgid "May" +msgstr "maj" + +msgctxt "alt. month" +msgid "June" +msgstr "juni" + +msgctxt "alt. month" +msgid "July" +msgstr "juli" + +msgctxt "alt. month" +msgid "August" +msgstr "august" + +msgctxt "alt. month" +msgid "September" +msgstr "september" + +msgctxt "alt. month" +msgid "October" +msgstr "oktober" + +msgctxt "alt. month" +msgid "November" +msgstr "november" + +msgctxt "alt. month" +msgid "December" +msgstr "december" + +msgid "This is not a valid IPv6 address." +msgstr "Dette er ikke en gyldig IPv6-adresse." + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "%(truncated_text)s…" + +msgid "or" +msgstr "eller" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr ", " + +#, python-format +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "%(num)d år" +msgstr[1] "%(num)d år" + +#, python-format +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "%(num)d måned" +msgstr[1] "%(num)d måneder" + +#, python-format +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "%(num)d uge" +msgstr[1] "%(num)d uger" + +#, python-format +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "%(num)d dag" +msgstr[1] "%(num)d dage" + +#, python-format +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "%(num)d time" +msgstr[1] "%(num)d timer" + +#, python-format +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "%(num)d minut" +msgstr[1] "%(num)d minutter" + +msgid "Forbidden" +msgstr "Forbudt" + +msgid "CSRF verification failed. Request aborted." +msgstr "CSRF-verifikationen mislykkedes. Forespørgslen blev afbrudt." + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" +"Du ser denne besked fordi denne HTTPS-webside kræver at din browser sender " +"en “Referer header”, som ikke blev sendt. Denne header er påkrævet af " +"sikkerhedsmæssige grunde for at sikre at din browser ikke bliver kapret af " +"tredjepart." + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" +"Hvis du har opsat din browser til ikke at sende “Referer” headere, beder vi " +"dig slå dem til igen, i hvert fald for denne webside, eller for HTTPS-" +"forbindelser, eller for “same-origin”-forespørgsler." + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" +"Hvis du bruger tagget eller " +"inkluderer headeren “Referrer-Policy: no-referrer”, så fjern dem venligst. " +"CSRF-beskyttelsen afhænger af at “Referer”-headeren udfører stringent " +"referer-kontrol. Hvis du er bekymret om privatliv, så brug alternativer så " +"som for links til tredjepartswebsider." + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" +"Du ser denne besked fordi denne webside kræver en CSRF-cookie, når du sender " +"formularer. Denne cookie er påkrævet af sikkerhedsmæssige grunde for at " +"sikre at din browser ikke bliver kapret af tredjepart." + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" +"Hvis du har slået cookies fra i din browser, beder vi dig slå dem til igen, " +"i hvert fald for denne webside, eller for “same-origin”-forespørgsler." + +msgid "More information is available with DEBUG=True." +msgstr "Mere information er tilgængeligt med DEBUG=True." + +msgid "No year specified" +msgstr "Intet år specificeret" + +msgid "Date out of range" +msgstr "Dato uden for rækkevidde" + +msgid "No month specified" +msgstr "Ingen måned specificeret" + +msgid "No day specified" +msgstr "Ingen dag specificeret" + +msgid "No week specified" +msgstr "Ingen uge specificeret" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "Ingen %(verbose_name_plural)s til rådighed" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" +"Fremtidige %(verbose_name_plural)s ikke tilgængelige, fordi %(class_name)s ." +"allow_future er falsk." + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "Ugyldig datostreng “%(datestr)s” givet format “%(format)s”" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "Ingen %(verbose_name)s fundet matcher forespørgslen" + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "Side er ikke “sidste”, og kan heller ikke konverteres til en int." + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "Ugyldig side (%(page_number)s): %(message)s" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "Tom liste og “%(class_name)s.allow_empty” er falsk." + +msgid "Directory indexes are not allowed here." +msgstr "Mappeindekser er ikke tilladte her" + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "“%(path)s” eksisterer ikke" + +#, python-format +msgid "Index of %(directory)s" +msgstr "Indeks for %(directory)s" + +msgid "The install worked successfully! Congratulations!" +msgstr "Installationen virkede! Tillykke!" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" +"Vis udgivelsesnoter for Django %(version)s" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not " +"configured any URLs." +msgstr "" +"Du ser denne side fordi du har DEBUG=True i din settings-fil og ikke har opsat nogen " +"URL'er." + +msgid "Django Documentation" +msgstr "Django-dokumentation" + +msgid "Topics, references, & how-to’s" +msgstr "Emner, referencer & how-to’s" + +msgid "Tutorial: A Polling App" +msgstr "Gennemgang: En afstemnings-app" + +msgid "Get started with Django" +msgstr "Kom i gang med Django" + +msgid "Django Community" +msgstr "Django-fællesskabet" + +msgid "Connect, get help, or contribute" +msgstr "Forbind, få hjælp eller bidrag" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/da/__init__.py b/venv/lib/python3.12/site-packages/django/conf/locale/da/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/da/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/da/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3e71d8516ee2a7a1cd7d6bb52e8efd839e0a61b6 GIT binary patch literal 198 zcmX@j%ge<81o5sX(m?cM5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!O4ZNE&rQ|OP0Yy6 zFHO;RNiEZNN=(kybEFQ_cZ$j>v@Gc?jK&MZmQEdVM^ zOiwM=Pssu+OwP|s)6dCIPRvQwPf65|kI&4@EQycTE2#X%VUwGmQks)$SHudml@W-G PL5z>gjEsy$%s>_Z!k#p6 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/da/__pycache__/formats.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/da/__pycache__/formats.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0dc8c250c2f5d6abaa56d979accca634ae1d36a4 GIT binary patch literal 719 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 V7oX!uxYvTpzl&R;D, 2011 +# Daniel Roschka , 2016 +# Florian Apolloner , 2018,2020-2023 +# jnns, 2011,2013 +# Jannis Leidel , 2013-2018,2020 +# jnns, 2016 +# Markus Holtermann , 2023 +# Markus Holtermann , 2013,2015 +# Raphael Michel , 2021 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-09-18 11:41-0300\n" +"PO-Revision-Date: 2023-12-04 06:49+0000\n" +"Last-Translator: Markus Holtermann , 2023\n" +"Language-Team: German (http://app.transifex.com/django/django/language/de/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: de\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Afrikaans" +msgstr "Afrikaans" + +msgid "Arabic" +msgstr "Arabisch" + +msgid "Algerian Arabic" +msgstr "Algerisches Arabisch" + +msgid "Asturian" +msgstr "Asturisch" + +msgid "Azerbaijani" +msgstr "Aserbaidschanisch" + +msgid "Bulgarian" +msgstr "Bulgarisch" + +msgid "Belarusian" +msgstr "Weißrussisch" + +msgid "Bengali" +msgstr "Bengali" + +msgid "Breton" +msgstr "Bretonisch" + +msgid "Bosnian" +msgstr "Bosnisch" + +msgid "Catalan" +msgstr "Katalanisch" + +msgid "Central Kurdish (Sorani)" +msgstr "Zentralkurdisch (Sorani)" + +msgid "Czech" +msgstr "Tschechisch" + +msgid "Welsh" +msgstr "Walisisch" + +msgid "Danish" +msgstr "Dänisch" + +msgid "German" +msgstr "Deutsch" + +msgid "Lower Sorbian" +msgstr "Niedersorbisch" + +msgid "Greek" +msgstr "Griechisch" + +msgid "English" +msgstr "Englisch" + +msgid "Australian English" +msgstr "Australisches Englisch" + +msgid "British English" +msgstr "Britisches Englisch" + +msgid "Esperanto" +msgstr "Esperanto" + +msgid "Spanish" +msgstr "Spanisch" + +msgid "Argentinian Spanish" +msgstr "Argentinisches Spanisch" + +msgid "Colombian Spanish" +msgstr "Kolumbianisches Spanisch" + +msgid "Mexican Spanish" +msgstr "Mexikanisches Spanisch" + +msgid "Nicaraguan Spanish" +msgstr "Nicaraguanisches Spanisch" + +msgid "Venezuelan Spanish" +msgstr "Venezolanisches Spanisch" + +msgid "Estonian" +msgstr "Estnisch" + +msgid "Basque" +msgstr "Baskisch" + +msgid "Persian" +msgstr "Persisch" + +msgid "Finnish" +msgstr "Finnisch" + +msgid "French" +msgstr "Französisch" + +msgid "Frisian" +msgstr "Friesisch" + +msgid "Irish" +msgstr "Irisch" + +msgid "Scottish Gaelic" +msgstr "Schottisch-Gälisch" + +msgid "Galician" +msgstr "Galicisch" + +msgid "Hebrew" +msgstr "Hebräisch" + +msgid "Hindi" +msgstr "Hindi" + +msgid "Croatian" +msgstr "Kroatisch" + +msgid "Upper Sorbian" +msgstr "Obersorbisch" + +msgid "Hungarian" +msgstr "Ungarisch" + +msgid "Armenian" +msgstr "Armenisch" + +msgid "Interlingua" +msgstr "Interlingua" + +msgid "Indonesian" +msgstr "Indonesisch" + +msgid "Igbo" +msgstr "Igbo" + +msgid "Ido" +msgstr "Ido" + +msgid "Icelandic" +msgstr "Isländisch" + +msgid "Italian" +msgstr "Italienisch" + +msgid "Japanese" +msgstr "Japanisch" + +msgid "Georgian" +msgstr "Georgisch" + +msgid "Kabyle" +msgstr "Kabylisch" + +msgid "Kazakh" +msgstr "Kasachisch" + +msgid "Khmer" +msgstr "Khmer" + +msgid "Kannada" +msgstr "Kannada" + +msgid "Korean" +msgstr "Koreanisch" + +msgid "Kyrgyz" +msgstr "Kirgisisch" + +msgid "Luxembourgish" +msgstr "Luxemburgisch" + +msgid "Lithuanian" +msgstr "Litauisch" + +msgid "Latvian" +msgstr "Lettisch" + +msgid "Macedonian" +msgstr "Mazedonisch" + +msgid "Malayalam" +msgstr "Malayalam" + +msgid "Mongolian" +msgstr "Mongolisch" + +msgid "Marathi" +msgstr "Marathi" + +msgid "Malay" +msgstr "Malaiisch" + +msgid "Burmese" +msgstr "Birmanisch" + +msgid "Norwegian Bokmål" +msgstr "Norwegisch (Bokmål)" + +msgid "Nepali" +msgstr "Nepali" + +msgid "Dutch" +msgstr "Niederländisch" + +msgid "Norwegian Nynorsk" +msgstr "Norwegisch (Nynorsk)" + +msgid "Ossetic" +msgstr "Ossetisch" + +msgid "Punjabi" +msgstr "Panjabi" + +msgid "Polish" +msgstr "Polnisch" + +msgid "Portuguese" +msgstr "Portugiesisch" + +msgid "Brazilian Portuguese" +msgstr "Brasilianisches Portugiesisch" + +msgid "Romanian" +msgstr "Rumänisch" + +msgid "Russian" +msgstr "Russisch" + +msgid "Slovak" +msgstr "Slowakisch" + +msgid "Slovenian" +msgstr "Slowenisch" + +msgid "Albanian" +msgstr "Albanisch" + +msgid "Serbian" +msgstr "Serbisch" + +msgid "Serbian Latin" +msgstr "Serbisch (Latein)" + +msgid "Swedish" +msgstr "Schwedisch" + +msgid "Swahili" +msgstr "Swahili" + +msgid "Tamil" +msgstr "Tamilisch" + +msgid "Telugu" +msgstr "Telugisch" + +msgid "Tajik" +msgstr "Tadschikisch" + +msgid "Thai" +msgstr "Thailändisch" + +msgid "Turkmen" +msgstr "Turkmenisch" + +msgid "Turkish" +msgstr "Türkisch" + +msgid "Tatar" +msgstr "Tatarisch" + +msgid "Udmurt" +msgstr "Udmurtisch" + +msgid "Uyghur" +msgstr "Uigurisch" + +msgid "Ukrainian" +msgstr "Ukrainisch" + +msgid "Urdu" +msgstr "Urdu" + +msgid "Uzbek" +msgstr "Usbekisch" + +msgid "Vietnamese" +msgstr "Vietnamesisch" + +msgid "Simplified Chinese" +msgstr "Vereinfachtes Chinesisch" + +msgid "Traditional Chinese" +msgstr "Traditionelles Chinesisch" + +msgid "Messages" +msgstr "Mitteilungen" + +msgid "Site Maps" +msgstr "Sitemaps" + +msgid "Static Files" +msgstr "Statische Dateien" + +msgid "Syndication" +msgstr "Syndication" + +#. Translators: String used to replace omitted page numbers in elided page +#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10]. +msgid "…" +msgstr "…" + +msgid "That page number is not an integer" +msgstr "Diese Seitennummer ist keine Ganzzahl" + +msgid "That page number is less than 1" +msgstr "Diese Seitennummer ist kleiner als 1" + +msgid "That page contains no results" +msgstr "Diese Seite enthält keine Ergebnisse" + +msgid "Enter a valid value." +msgstr "Bitte einen gültigen Wert eingeben." + +msgid "Enter a valid URL." +msgstr "Bitte eine gültige Adresse eingeben." + +msgid "Enter a valid integer." +msgstr "Bitte eine gültige Ganzzahl eingeben." + +msgid "Enter a valid email address." +msgstr "Bitte gültige E-Mail-Adresse eingeben." + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" +"Bitte ein gültiges Kürzel, bestehend aus Buchstaben, Ziffern, Unterstrichen " +"und Bindestrichen, eingeben." + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" +"Bitte ein gültiges Kürzel eingeben, bestehend aus Buchstaben (Unicode), " +"Ziffern, Unter- und Bindestrichen." + +msgid "Enter a valid IPv4 address." +msgstr "Bitte eine gültige IPv4-Adresse eingeben." + +msgid "Enter a valid IPv6 address." +msgstr "Bitte eine gültige IPv6-Adresse eingeben." + +msgid "Enter a valid IPv4 or IPv6 address." +msgstr "Bitte eine gültige IPv4- oder IPv6-Adresse eingeben" + +msgid "Enter only digits separated by commas." +msgstr "Bitte nur durch Komma getrennte Ziffern eingeben." + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "" +"Bitte sicherstellen, dass der Wert %(limit_value)s ist. (Er ist " +"%(show_value)s.)" + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "Dieser Wert muss kleiner oder gleich %(limit_value)s sein." + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "Dieser Wert muss größer oder gleich %(limit_value)s sein." + +#, python-format +msgid "Ensure this value is a multiple of step size %(limit_value)s." +msgstr "Dieser Wert muss ein Vielfaches von %(limit_value)s sein." + +#, python-format +msgid "" +"Ensure this value is a multiple of step size %(limit_value)s, starting from " +"%(offset)s, e.g. %(offset)s, %(valid_value1)s, %(valid_value2)s, and so on." +msgstr "" +"Dieser Wert muss ein Vielfaches von %(limit_value)s sein und bei %(offset)s " +"beginnen, z.B. %(offset)s, %(valid_value1)s, %(valid_value2)s, und so weiter." + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Bitte sicherstellen, dass der Wert aus mindestens %(limit_value)d Zeichen " +"besteht. (Er besteht aus %(show_value)d Zeichen.)" +msgstr[1] "" +"Bitte sicherstellen, dass der Wert aus mindestens %(limit_value)d Zeichen " +"besteht. (Er besteht aus %(show_value)d Zeichen.)" + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Bitte sicherstellen, dass der Wert aus höchstens %(limit_value)d Zeichen " +"besteht. (Er besteht aus %(show_value)d Zeichen.)" +msgstr[1] "" +"Bitte sicherstellen, dass der Wert aus höchstens %(limit_value)d Zeichen " +"besteht. (Er besteht aus %(show_value)d Zeichen.)" + +msgid "Enter a number." +msgstr "Bitte eine Zahl eingeben." + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "" +"Bitte sicherstellen, dass der Wert höchstens %(max)s Ziffer enthält." +msgstr[1] "" +"Bitte sicherstellen, dass der Wert höchstens %(max)s Ziffern enthält." + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "" +"Bitte sicherstellen, dass der Wert höchstens %(max)s Dezimalstelle enthält." +msgstr[1] "" +"Bitte sicherstellen, dass der Wert höchstens %(max)s Dezimalstellen enthält." + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "" +"Bitte sicherstellen, dass der Wert höchstens %(max)s Ziffer vor dem Komma " +"enthält." +msgstr[1] "" +"Bitte sicherstellen, dass der Wert höchstens %(max)s Ziffern vor dem Komma " +"enthält." + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" +"Dateiendung „%(extension)s“ ist nicht erlaubt. Erlaubte Dateiendungen sind: " +"„%(allowed_extensions)s“." + +msgid "Null characters are not allowed." +msgstr "Nullzeichen sind nicht erlaubt." + +msgid "and" +msgstr "und" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "%(model_name)s mit diesem %(field_labels)s existiert bereits." + +#, python-format +msgid "Constraint “%(name)s” is violated." +msgstr "Bedingung „%(name)s“ ist nicht erfüllt." + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "Wert %(value)r ist keine gültige Option." + +msgid "This field cannot be null." +msgstr "Dieses Feld darf nicht null sein." + +msgid "This field cannot be blank." +msgstr "Dieses Feld darf nicht leer sein." + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "%(model_name)s mit diesem %(field_label)s existiert bereits." + +#. Translators: The 'lookup_type' is one of 'date', 'year' or +#. 'month'. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" +"%(field_label)s muss für %(date_field_label)s %(lookup_type)s eindeutig sein." + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "Feldtyp: %(field_type)s" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "Wert „%(value)s“ muss entweder True oder False sein." + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "Wert „%(value)s“ muss True, False oder None sein." + +msgid "Boolean (Either True or False)" +msgstr "Boolescher Wert (True oder False)" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "Zeichenkette (bis zu %(max_length)s Zeichen)" + +msgid "String (unlimited)" +msgstr "Zeichenkette (unlimitiert)" + +msgid "Comma-separated integers" +msgstr "Kommaseparierte Liste von Ganzzahlen" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" +"Wert „%(value)s“ hat ein ungültiges Datumsformat. Es muss YYYY-MM-DD " +"entsprechen." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" +"Wert „%(value)s“ hat das korrekte Format (YYYY-MM-DD) aber ein ungültiges " +"Datum." + +msgid "Date (without time)" +msgstr "Datum (ohne Uhrzeit)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" +"Wert „%(value)s“ hat ein ungültiges Format. Es muss YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] entsprechen." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" +"Wert „%(value)s“ hat das korrekte Format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) aber eine ungültige Zeit-/Datumsangabe." + +msgid "Date (with time)" +msgstr "Datum (mit Uhrzeit)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "Wert „%(value)s“ muss eine Dezimalzahl sein." + +msgid "Decimal number" +msgstr "Dezimalzahl" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" +"Wert „%(value)s“ hat ein ungültiges Format. Es muss der Form [DD] [HH:" +"[MM:]]ss[.uuuuuu] entsprechen." + +msgid "Duration" +msgstr "Zeitspanne" + +msgid "Email address" +msgstr "E-Mail-Adresse" + +msgid "File path" +msgstr "Dateipfad" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "Wert „%(value)s“ muss eine Fließkommazahl sein." + +msgid "Floating point number" +msgstr "Gleitkommazahl" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "Wert „%(value)s“ muss eine Ganzzahl sein." + +msgid "Integer" +msgstr "Ganzzahl" + +msgid "Big (8 byte) integer" +msgstr "Große Ganzzahl (8 Byte)" + +msgid "Small integer" +msgstr "Kleine Ganzzahl" + +msgid "IPv4 address" +msgstr "IPv4-Adresse" + +msgid "IP address" +msgstr "IP-Adresse" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "Wert „%(value)s“ muss entweder None, True oder False sein." + +msgid "Boolean (Either True, False or None)" +msgstr "Boolescher Wert (True, False oder None)" + +msgid "Positive big integer" +msgstr "Positive große Ganzzahl" + +msgid "Positive integer" +msgstr "Positive Ganzzahl" + +msgid "Positive small integer" +msgstr "Positive kleine Ganzzahl" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "Kürzel (bis zu %(max_length)s)" + +msgid "Text" +msgstr "Text" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" +"Wert „%(value)s“ hat ein ungültiges Format. Es muss HH:MM[:ss[.uuuuuu]] " +"entsprechen." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" +"Wert „%(value)s“ hat das korrekte Format (HH:MM[:ss[.uuuuuu]]), aber ist " +"eine ungültige Zeitangabe." + +msgid "Time" +msgstr "Zeit" + +msgid "URL" +msgstr "Adresse (URL)" + +msgid "Raw binary data" +msgstr "Binärdaten" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "Wert „%(value)s“ ist keine gültige UUID." + +msgid "Universally unique identifier" +msgstr "Universally Unique Identifier" + +msgid "File" +msgstr "Datei" + +msgid "Image" +msgstr "Bild" + +msgid "A JSON object" +msgstr "Ein JSON-Objekt" + +msgid "Value must be valid JSON." +msgstr "Wert muss gültiges JSON sein." + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "Objekt vom Typ %(model)s mit %(field)s %(value)r existiert nicht." + +msgid "Foreign Key (type determined by related field)" +msgstr "Fremdschlüssel (Typ definiert durch verknüpftes Feld)" + +msgid "One-to-one relationship" +msgstr "1:1-Beziehung" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "%(from)s-%(to)s-Beziehung" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "%(from)s-%(to)s-Beziehungen" + +msgid "Many-to-many relationship" +msgstr "n:m-Beziehung" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr ":?.!" + +msgid "This field is required." +msgstr "Dieses Feld ist zwingend erforderlich." + +msgid "Enter a whole number." +msgstr "Bitte eine ganze Zahl eingeben." + +msgid "Enter a valid date." +msgstr "Bitte ein gültiges Datum eingeben." + +msgid "Enter a valid time." +msgstr "Bitte eine gültige Uhrzeit eingeben." + +msgid "Enter a valid date/time." +msgstr "Bitte ein gültiges Datum und Uhrzeit eingeben." + +msgid "Enter a valid duration." +msgstr "Bitte eine gültige Zeitspanne eingeben." + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "Die Anzahl der Tage muss zwischen {min_days} und {max_days} sein." + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "" +"Es wurde keine Datei übertragen. Überprüfen Sie das Encoding des Formulars." + +msgid "No file was submitted." +msgstr "Es wurde keine Datei übertragen." + +msgid "The submitted file is empty." +msgstr "Die übertragene Datei ist leer." + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" +"Bitte sicherstellen, dass der Dateiname aus höchstens %(max)d Zeichen " +"besteht. (Er besteht aus %(length)d Zeichen.)" +msgstr[1] "" +"Bitte sicherstellen, dass der Dateiname aus höchstens %(max)d Zeichen " +"besteht. (Er besteht aus %(length)d Zeichen.)" + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "" +"Bitte wählen Sie entweder eine Datei aus oder wählen Sie „Löschen“, nicht " +"beides." + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" +"Bitte ein gültiges Bild hochladen. Die hochgeladene Datei ist kein Bild oder " +"ist defekt." + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "" +"Bitte eine gültige Auswahl treffen. %(value)s ist keine gültige Auswahl." + +msgid "Enter a list of values." +msgstr "Bitte eine Liste mit Werten eingeben." + +msgid "Enter a complete value." +msgstr "Bitte einen vollständigen Wert eingeben." + +msgid "Enter a valid UUID." +msgstr "Bitte eine gültige UUID eingeben." + +msgid "Enter a valid JSON." +msgstr "Bitte ein gültiges JSON-Objekt eingeben." + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr ":" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "(Verstecktes Feld %(name)s) %(error)s" + +#, python-format +msgid "" +"ManagementForm data is missing or has been tampered with. Missing fields: " +"%(field_names)s. You may need to file a bug report if the issue persists." +msgstr "" +"Daten für das Management-Formular fehlen oder wurden manipuliert. Fehlende " +"Felder: %(field_names)s. Bitte erstellen Sie einen Bug-Report falls der " +"Fehler dauerhaft besteht." + +#, python-format +msgid "Please submit at most %(num)d form." +msgid_plural "Please submit at most %(num)d forms." +msgstr[0] "Bitte höchstens %(num)d Forumlar abschicken." +msgstr[1] "Bitte höchstens %(num)d Formulare abschicken." + +#, python-format +msgid "Please submit at least %(num)d form." +msgid_plural "Please submit at least %(num)d forms." +msgstr[0] "Bitte mindestends %(num)d Formular abschicken." +msgstr[1] "Bitte mindestens %(num)d Formulare abschicken." + +msgid "Order" +msgstr "Reihenfolge" + +msgid "Delete" +msgstr "Löschen" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "Bitte die doppelten Daten für %(field)s korrigieren." + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "" +"Bitte die doppelten Daten für %(field)s korrigieren, das eindeutig sein muss." + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"Bitte die doppelten Daten für %(field_name)s korrigieren, da es für " +"%(lookup)s in %(date_field)s eindeutig sein muss." + +msgid "Please correct the duplicate values below." +msgstr "Bitte die unten aufgeführten doppelten Werte korrigieren." + +msgid "The inline value did not match the parent instance." +msgstr "Der Inline-Wert passt nicht zur übergeordneten Instanz." + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "Bitte eine gültige Auswahl treffen. Dies ist keine gültige Auswahl." + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "„%(pk)s“ ist kein gültiger Wert." + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" +"%(datetime)s konnte mit der Zeitzone %(current_timezone)s nicht eindeutig " +"interpretiert werden, da es doppeldeutig oder eventuell inkorrekt ist." + +msgid "Clear" +msgstr "Zurücksetzen" + +msgid "Currently" +msgstr "Derzeit" + +msgid "Change" +msgstr "Ändern" + +msgid "Unknown" +msgstr "Unbekannt" + +msgid "Yes" +msgstr "Ja" + +msgid "No" +msgstr "Nein" + +#. Translators: Please do not add spaces around commas. +msgid "yes,no,maybe" +msgstr "Ja,Nein,Vielleicht" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)d Byte" +msgstr[1] "%(size)d Bytes" + +#, python-format +msgid "%s KB" +msgstr "%s KB" + +#, python-format +msgid "%s MB" +msgstr "%s MB" + +#, python-format +msgid "%s GB" +msgstr "%s GB" + +#, python-format +msgid "%s TB" +msgstr "%s TB" + +#, python-format +msgid "%s PB" +msgstr "%s PB" + +msgid "p.m." +msgstr "nachm." + +msgid "a.m." +msgstr "vorm." + +msgid "PM" +msgstr "nachm." + +msgid "AM" +msgstr "vorm." + +msgid "midnight" +msgstr "Mitternacht" + +msgid "noon" +msgstr "Mittag" + +msgid "Monday" +msgstr "Montag" + +msgid "Tuesday" +msgstr "Dienstag" + +msgid "Wednesday" +msgstr "Mittwoch" + +msgid "Thursday" +msgstr "Donnerstag" + +msgid "Friday" +msgstr "Freitag" + +msgid "Saturday" +msgstr "Samstag" + +msgid "Sunday" +msgstr "Sonntag" + +msgid "Mon" +msgstr "Mo" + +msgid "Tue" +msgstr "Di" + +msgid "Wed" +msgstr "Mi" + +msgid "Thu" +msgstr "Do" + +msgid "Fri" +msgstr "Fr" + +msgid "Sat" +msgstr "Sa" + +msgid "Sun" +msgstr "So" + +msgid "January" +msgstr "Januar" + +msgid "February" +msgstr "Februar" + +msgid "March" +msgstr "März" + +msgid "April" +msgstr "April" + +msgid "May" +msgstr "Mai" + +msgid "June" +msgstr "Juni" + +msgid "July" +msgstr "Juli" + +msgid "August" +msgstr "August" + +msgid "September" +msgstr "September" + +msgid "October" +msgstr "Oktober" + +msgid "November" +msgstr "November" + +msgid "December" +msgstr "Dezember" + +msgid "jan" +msgstr "Jan" + +msgid "feb" +msgstr "Feb" + +msgid "mar" +msgstr "Mär" + +msgid "apr" +msgstr "Apr" + +msgid "may" +msgstr "Mai" + +msgid "jun" +msgstr "Jun" + +msgid "jul" +msgstr "Jul" + +msgid "aug" +msgstr "Aug" + +msgid "sep" +msgstr "Sep" + +msgid "oct" +msgstr "Okt" + +msgid "nov" +msgstr "Nov" + +msgid "dec" +msgstr "Dez" + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "Jan." + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "Feb." + +msgctxt "abbrev. month" +msgid "March" +msgstr "März" + +msgctxt "abbrev. month" +msgid "April" +msgstr "April" + +msgctxt "abbrev. month" +msgid "May" +msgstr "Mai" + +msgctxt "abbrev. month" +msgid "June" +msgstr "Juni" + +msgctxt "abbrev. month" +msgid "July" +msgstr "Juli" + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "Aug." + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "Sept." + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "Okt." + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "Nov." + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "Dez." + +msgctxt "alt. month" +msgid "January" +msgstr "Januar" + +msgctxt "alt. month" +msgid "February" +msgstr "Februar" + +msgctxt "alt. month" +msgid "March" +msgstr "März" + +msgctxt "alt. month" +msgid "April" +msgstr "April" + +msgctxt "alt. month" +msgid "May" +msgstr "Mai" + +msgctxt "alt. month" +msgid "June" +msgstr "Juni" + +msgctxt "alt. month" +msgid "July" +msgstr "Juli" + +msgctxt "alt. month" +msgid "August" +msgstr "August" + +msgctxt "alt. month" +msgid "September" +msgstr "September" + +msgctxt "alt. month" +msgid "October" +msgstr "Oktober" + +msgctxt "alt. month" +msgid "November" +msgstr "November" + +msgctxt "alt. month" +msgid "December" +msgstr "Dezember" + +msgid "This is not a valid IPv6 address." +msgstr "Dies ist keine gültige IPv6-Adresse." + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "%(truncated_text)s…" + +msgid "or" +msgstr "oder" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr ", " + +#, python-format +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "%(num)d Jahr" +msgstr[1] "%(num)d Jahre" + +#, python-format +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "%(num)d Monat" +msgstr[1] "%(num)d Monate" + +#, python-format +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "%(num)d Woche" +msgstr[1] "%(num)d Wochen" + +#, python-format +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "%(num)d Tag" +msgstr[1] "%(num)d Tage" + +#, python-format +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "%(num)d Stunde" +msgstr[1] "%(num)d Stunden" + +#, python-format +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "%(num)d Minute" +msgstr[1] "%(num)d Minuten" + +msgid "Forbidden" +msgstr "Verboten" + +msgid "CSRF verification failed. Request aborted." +msgstr "CSRF-Verifizierung fehlgeschlagen. Anfrage abgebrochen." + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" +"Sie sehen diese Fehlermeldung, da diese HTTPS-Seite einen „Referer“-Header " +"von Ihrem Webbrowser erwartet, aber keinen erhalten hat. Dieser Header ist " +"aus Sicherheitsgründen notwendig, um sicherzustellen, dass Ihr Webbrowser " +"nicht von Dritten missbraucht wird." + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" +"Falls Sie Ihren Webbrowser so konfiguriert haben, dass „Referer“-Header " +"nicht gesendet werden, müssen Sie diese Funktion mindestens für diese Seite, " +"für sichere HTTPS-Verbindungen oder für „Same-Origin“-Verbindungen " +"reaktivieren." + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" +"Wenn der Tag „“ oder der " +"„Referrer-Policy: no-referrer“-Header verwendet wird, entfernen Sie sie " +"bitte. Der „Referer“-Header wird zur korrekten CSRF-Verifizierung benötigt. " +"Falls es datenschutzrechtliche Gründe gibt, benutzen Sie bitte Alternativen " +"wie „“ für Links zu Drittseiten." + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" +"Sie sehen Diese Nachricht, da diese Seite einen CSRF-Cookie beim Verarbeiten " +"von Formulardaten benötigt. Dieses Cookie ist aus Sicherheitsgründen " +"notwendig, um sicherzustellen, dass Ihr Webbrowser nicht von Dritten " +"missbraucht wird." + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" +"Falls Sie Cookies in Ihren Webbrowser deaktiviert haben, müssen Sie sie " +"mindestens für diese Seite oder für „Same-Origin“-Verbindungen reaktivieren." + +msgid "More information is available with DEBUG=True." +msgstr "Mehr Information ist verfügbar mit DEBUG=True." + +msgid "No year specified" +msgstr "Kein Jahr angegeben" + +msgid "Date out of range" +msgstr "Datum außerhalb des zulässigen Bereichs" + +msgid "No month specified" +msgstr "Kein Monat angegeben" + +msgid "No day specified" +msgstr "Kein Tag angegeben" + +msgid "No week specified" +msgstr "Keine Woche angegeben" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "Keine %(verbose_name_plural)s verfügbar" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" +"In der Zukunft liegende %(verbose_name_plural)s sind nicht verfügbar, da " +"%(class_name)s.allow_future auf False gesetzt ist." + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "Ungültiges Datum „%(datestr)s“ für das Format „%(format)s“" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "Konnte keine %(verbose_name)s mit diesen Parametern finden." + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "" +"Weder ist dies die letzte Seite („last“) noch konnte sie in einen " +"ganzzahligen Wert umgewandelt werden." + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "Ungültige Seite (%(page_number)s): %(message)s" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "Leere Liste und „%(class_name)s.allow_empty“ ist False." + +msgid "Directory indexes are not allowed here." +msgstr "Dateilisten sind untersagt." + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "„%(path)s“ ist nicht vorhanden" + +#, python-format +msgid "Index of %(directory)s" +msgstr "Verzeichnis %(directory)s" + +msgid "The install worked successfully! Congratulations!" +msgstr "Die Installation war erfolgreich. Herzlichen Glückwunsch!" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" +"Versionshinweise für Django " +"%(version)s anzeigen" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not " +"configured any URLs." +msgstr "" +"Diese Seite ist sichtbar weil in der Settings-Datei DEBUG = True steht und die URLs noch nicht konfiguriert " +"sind." + +msgid "Django Documentation" +msgstr "Django-Dokumentation" + +msgid "Topics, references, & how-to’s" +msgstr "Themen, Referenz, & Kurzanleitungen" + +msgid "Tutorial: A Polling App" +msgstr "Tutorial: Eine Umfrage-App" + +msgid "Get started with Django" +msgstr "Los geht's mit Django" + +msgid "Django Community" +msgstr "Django-Community" + +msgid "Connect, get help, or contribute" +msgstr "Nimm Kontakt auf, erhalte Hilfe oder arbeite an Django mit" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/de/__init__.py b/venv/lib/python3.12/site-packages/django/conf/locale/de/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/de/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/de/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..77cee370d377cd7914de5df0bf7b6f0d2043eda4 GIT binary patch literal 198 zcmX@j%ge<81o5sX(m?cM5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!O4ZNE&rQ|OP0Yy6 zFHO;RNiEZNN=(kybEFQ_cZ$j>v@Gc?jK&MZmQEdVM^ zOiwM=Pssu+OwP|s)6dCIPRvQwPf68}kI&4@EQycTE2#X%VUwGmQks)$SHudml@W-G PL5z>gjEsy$%s>_Z!&)?S literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/de/__pycache__/formats.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/de/__pycache__/formats.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..cba68b02e21b5a25f1790fd3a1761f64e6380385 GIT binary patch literal 734 zcmZXRO^?z*7{{lS?(*KHytry&NK6kTZYS!E7-Lt;LbNSuOHAj|beZz9Qc8d&p{Mmz zc=zTvG4aB&;i{Lt5%P+j-Uvp5sjlLiW$Vcl^vDT~jaClyFPl3zTwtnXHP2WYttn7L8@nXvn*S4Nvw#)|5oel2yg1 zZwpTDv#MxrNmj3`nqlpCE&M|V?P?8851po^)~rvG^kKH0kM@yHQq9z)uw&aYu+R{a(y2n_hC7(;0b)l)PW<$C74(`ay!5YJ!=Q_}}d#-nl zVbz(zbG!ZdOd4W%Ik1Oa56+z73=aC2a5SIxyy0u%EFQ_cZ$j>v@Gc?jK&MZmQEdVM^ zOiwM=Pssu+OwP|s)6dCIPRvQwPf3k;_Rx=y&&S S5r~UHjE~HWjEqIhKo$UP;Wc3Z literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/de_CH/__pycache__/formats.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/de_CH/__pycache__/formats.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..de3f04cbb5e4cb24e454c3acd8cac8804866177d GIT binary patch literal 741 zcmZXRJ#X4j6o#)cPWW~(A5B}SLaICcVKTcFKktbz$l?2^7>job#UNzULfY`DZd21LT;}kG91C@GB@bC-flh z-VyN`V1NLo5QRf1glRyC>C1$B2 z>m6JPg-XHj=xV9w#qNtjpy_~y1K=@Oa0J7Pu2XP%OOfSXgvSE!2)waXvm))KH?+W4 zOMJb=YhLz0B=Bu7wNF>ni$B5RzJIx;Ns^1nMZ7HPl37vIx~MPWdab@K*x+Utqzy?_ z&AKA%)lI|EeN`5X4M}TNMb*vSskwh>Z(OCOYJt-*m5O;GN$(fjx~(QRn)<^$ZIR!8 z#y(G%rL$UH{9tNQLsUgwQ5T$ERhpV8mvxy%90&_0WJ5>asU7T literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/de_CH/formats.py b/venv/lib/python3.12/site-packages/django/conf/locale/de_CH/formats.py new file mode 100644 index 0000000000..f42dd48739 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/de_CH/formats.py @@ -0,0 +1,35 @@ +# This file is distributed under the same license as the Django package. +# +# The *_FORMAT strings use the Django date format syntax, +# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date +DATE_FORMAT = "j. F Y" +TIME_FORMAT = "H:i" +DATETIME_FORMAT = "j. F Y H:i" +YEAR_MONTH_FORMAT = "F Y" +MONTH_DAY_FORMAT = "j. F" +SHORT_DATE_FORMAT = "d.m.Y" +SHORT_DATETIME_FORMAT = "d.m.Y H:i" +FIRST_DAY_OF_WEEK = 1 # Monday + +# The *_INPUT_FORMATS strings use the Python strftime format syntax, +# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior +DATE_INPUT_FORMATS = [ + "%d.%m.%Y", # '25.10.2006' + "%d.%m.%y", # '25.10.06' + # "%d. %B %Y", # '25. October 2006' + # "%d. %b. %Y", # '25. Oct. 2006' +] +DATETIME_INPUT_FORMATS = [ + "%d.%m.%Y %H:%M:%S", # '25.10.2006 14:30:59' + "%d.%m.%Y %H:%M:%S.%f", # '25.10.2006 14:30:59.000200' + "%d.%m.%Y %H:%M", # '25.10.2006 14:30' +] + +# these are the separators for non-monetary numbers. For monetary numbers, +# the DECIMAL_SEPARATOR is a . (decimal point) and the THOUSAND_SEPARATOR is a +# ' (single quote). +# For details, please refer to the documentation and the following link: +# https://www.bk.admin.ch/bk/de/home/dokumentation/sprachen/hilfsmittel-textredaktion/schreibweisungen.html +DECIMAL_SEPARATOR = "," +THOUSAND_SEPARATOR = "\xa0" # non-breaking space +NUMBER_GROUPING = 3 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/dsb/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/conf/locale/dsb/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..645e6c7c446bde1a393cf719d01d18eeeac04abc GIT binary patch literal 30694 zcmd6v37lM2o$oK3Kv-lG0T(WTKsTg2VHFbsCh6?yq)m4S1ToyIy4`)dmRsCgm7*G4 z9#2Kk$1pf<6F_kkb!2oDeD3H-S{z5zadZ^*xuA@UIu4@_@_fVizQ1$Mt)m} zlheO@_U(WE=l}nobMpP;4t}%8@2Uel@A=?w=6K#$`Tp{A6zX}0y})0q|8?M*;Cn&!=PRJf z{}!lxKLSbV_M`8z<( z!`-0h;zOYN@y}ol{5S9|;OOa|w;g;MybY`|Snmc8ndf=$0{;@c1RSI@Zv}4wmwf{%kL?+F+FtaF$X{KtTrm&?F|z?IIw7F52Mf?L5WLDhS|!_R=q_XSY> zdl=NbJ?6rH?)<+3)sCmYIpBfwJ?}{HC{W?2fU5Tl@Z|@1UJrOP{+s$d@5A7+G*bO~ z5LEeJ1T}tN0ae~(pxXHacm((qxEwrqf#*@Bw;EKw8mM%W4sQh2pIbnc|0aiT1J$oP zL8X7U^WO`qoco;r6AnKID&0e%+VfRVbo(8LkGt?ELFGSSq3!pf;G6It3!V(V2UIzq z1(oh0P~-A2sCNE6_-ybyF8pVp+WAXRz$ZcV z>xc_&zn%}OUFU-uzr~>1z0QS?fEwqQx$tX1rHjB7U=v&geiqa?A9|53?^satd@^_( zcowMmMWEU>;QZ@A@sG`*(q9XzJ+A_f1aAVB|Ia|J1e`!RDj* z7dku_RK5Z5SnvuLKH=~cF8(%9^!;v7=|1YhA9DCzQ04wBC^|myGKFJ_8;EJ_X)?fam=O_zL_VUV#h+E?8;z`B#FX ztG9y6_hFE!_I?2}72esakiEbNqzLaFpyGcFD*iN>n!>LES$f{PK}gK|9w_=dX^q7f zIy}SS*$x+ir<3j?@IY`YNOQfbL5=%1Q2e3*ir%ZB=;L}&F)>C zug`&6U*B=~IQT65Pl8&nPlKYL=fI>@-r1nae-WsBtH2Y%&7kC<5;zyU8C3dv!IQvG zfTGW@gKE!@K;{3f3qNEXGBf@YK$ZV;@Kmq@9tPeD9uB@0RC#y1_)mfw|L=fjgU775 z^(+Pt#lIGu18xG30IvpBegtZLG(olJjiBmzmy7=ZsQNwyo(WEY>gO*&jmJTQcAQQE zwO&sJwGPh(VHw^s@JR4g;P1gVf~PZaZ-lu175`svgeLI6bI9{v4;}!~-vHh+46h*m z(9P_n;ChfC?_d^#@Cs1$elPe!@PI9LoP1FIc?qcT9|q@x+nxU}z~|xr0(c7esPjJ! zYTi!1!tVDMf%0zw&jM?p%DV$pzR!Z1m+yev!QX*p@Y*Zwy!-$>2me!`#_x=+b{zUa z&BtO;bhjK7om~y)zyhdodARJo6W&jtU*g&*=Vo9=i}`A>8Heo*bd1Qgw@bm5!8gYaJiR++B?_)+}d zggHG7zTxGzT~}_i?Rq&VdMSWvPZQKQ+ytuJKLHs+ZwI&l{0(Tv?HU{34{Dqify%!W zRDU-*+zhJSSAkkz{O=`#+$3W|~@F4tEP;^lP)!*wut;gHI z6g)Jt;8);j;6W31{N{n0uNQ%$ixprGxEbsP zUkR%H?*rAY2f)L?&x6YMccAKj1XTb32~;`1a^VLSZTz!A_2>DZ=;?Iu2(TAC1H2G? zKDZT}2R6Wq!8^e|@E^eo!GlY-UyDHH+X|{buL4Dncf0scfokt}LACb>&i^5nK|x|jzl-Pzz#;Q65Xu@pQTd?~2%ZUB!0U+wT#@J#%7fXe?MSOLEbiar-odf8`)FzB%1pn?nc~iaX-OL|E(m?PYFBTgP`U^zw>b7y-&!)@8h^$;#m^je=2~V*7O(57d8Zk zg5z-~;{H+|eotF4f6t$09Kx;u{|)ym+zasQH-OVTX|MPZ?!V*oyA3D$ z*(wje9^4AtCFDE6ci>jJ{6l>I3vMm`zXtVN z!8a__`;hTjo_>N$ub`80bMb4hS&LiF_q)J5aTnsA#Jv^w0PfFm`VEujbnyGQ_u!7f z{}6Z=?$@|maa(Xl6*uz0Sl~`-#@5euugEuk-yo+%-7; zj=+`77i-R?c^&><+(o!&ySRqK#V$>Vzk>T1u7LX{PQPDTFn|9yf8UKe$AztNdB2E% zjSKrR`1iQ;iF-S^0e3j=CY*jhvtV=(eSRLd1Gkm*Uj{dVtHC$o^gGIe`MZF)=iwwr z+~C4L39iIlPPl$=!Ch~@u;qY<;#T4A!5xV^45#1EaTk+kIe0(rDcoP-UQF0hQ0Gr` zz?b0kdlT*!+@*vcj2l!Sztwzi2j6FW_RpDwN!QYEA+Cq-vvL2(w-5d)cnJ7X@Fn1R zxXxX|5WE0)4&Qy?B5(`tKlt9= z?<+)(x&)^=`~pK;&Ajp5F~ z>Gx&}-six6((3mZZZ7U(+}m(V2|o+G4tEUh1Gul^QrxR?_u~E!?$2<)!M&99p9Q~! zn}_=#ZlNptIp8btKM!{)F2G%e%YFmIk2ueR4(|gGC;TtKkKi`qUV+Qw^!ql>*N6L^ zM%p8A$Kv!`2Oexcy%)N$_u?Pn`vTm}e7_bq#P>JAKf!$z=gsRW1hudhmBZfD&&Tyr zq4Maf-(K@`p&wOhVNy-PT3F!QR~mmZu7v))o_sw?!b)wM!W7h-F7~6EUk;ke7?g9- zSUs+%ew<{%mAK}I*F|ZqpDIVAuvFMq3UXnITFdp+)K{-W*VaRSluWi&+q%=u>nX)? zv0mL)YgVbz6qLl}-n4ICPc5dPBrFBBD6XXAQB}3f8krJXjti#tsFK!#Nrh?`prvyR8zKK{NSkzjb>GHIr%2B0W3tN%a+YudCP_D9a%JQ`%8(~;%#mUo-YKB3( zMtKyKMw21U%r#Ag9X=vcf7LSmU1$Cdn!iKl@5nN*XLVF4gcaWmpigVe*!J=jCP|$1 zrrvxXL2J=v{ik_L{k6jzH~4XGBFxvkrGwtm(IhGcK_&H;mU2NQ3Mzbzg$W=2(j>@5 zd2eYoiArAPNyZ@FND2MnDjCvoqROGonbzvc=`F2~L6|^VOM;TpuBeQaOxnpX$pz5_ zIlW~;3ekGYAiboXD&MlOGDdoDSv2PNTx`ao*Q_O4A%Jq2J#W(j%5+kfT@vyyZbHDABX!j2c7Xud62o72Y!( zCyYU_w|qRPj8P8Xr-aj7FdnxUO@T3%>(l%*yf=Z^=F4LfJd)Y=Is`1x@bN}kQv?_o@of~^m(QXB6r^mepi zuggjIT#(u9vevMUO>;_7IjU{5`{2yYO2^|ymS9@b_NBzm2JUT5Q<8*s9Iuk81>UySoO7;PA_ymQ9;5^Hs(v%Avzu%O~YDm zI^Pfb$NIYhj6f3=>};K@BwZorDMZXAjs3XNO=Wf}_r6`T>;5Dq{5PGceU! zJiS}9WG}%9_bRXI2-rr-j30d7v|eS}aKl9zRTFHOlnuAcy`7HusNk;|+I~UChG&eU zAEdcxH)&>#lNd9-%*~tD?-I0m&A{|93GFk5Es#XMON856riX`}d(8Amw@FVAo~it4 z18fJ5{W>kx$Fv)v*#|9#%T0 zXb&atw!|3=Y>Xq0xdvoCjVq<5U(j}x`fZsd*AzjO1GOfth6o6?m@i~4$sH@hTv88` zrngd>je02^Wf6pJH3F-#5L*h(A5?-GJ!8AKdwI*-o4V~=`i2uD`u(L&o@gaAqK1lh zNw&3Pq!_6lzZxLduZ${2yj@w6gv10?wVh^y%*r^)8M)izD~!e}{<^T~_o%h(zswHG z0%8n(H>wq%raQgfO0++Ol$A*&C#?i9((lST;3XJH+YxPo z98JuH`JkQ}g>qM6X4IAh*KwlEDi&m3qrEDOlQH{|l#Rb;86gccLY|elyj6+Rm(|Qo z*zi^(q($E9I>Nb;gVzjYOV;aLw_Qc~XZl#N`7qJkqXZxlqdjd8@=cZ~O$ka+Mg?-(PHm;A z$bbYQ5cRy(ahhZQKBR|U1s~L!Br%>$cA84a@Avai9*DZn6$n)VRd8X zxYG<8s?NT*WTpY$?{=*o85tT@|D_DcezA8g9?LnTU6S@znEki&B!V^IsrYyghe^!tM@ ziD8Xto9Bx^V9V+EuY`ffGFA!612s$bM?T5b$DqF|I<_CNU$AN^2x|akYqx|ZX;ZVW z7Wcv990wM0$hb8qO?o^M!iERc6FbZ)AJ?JKw+$PEsFXPIXkZLxquw)$up~Q^;vSOi zT5Q?!&=t!zuUaDeM8CHI)g6n*1`19BNT*%;hS=L6`K^=N!{$e0_HsInCY!N5Yzpj; zyCiOJ4Xyf>i01livw5r&VL<_A&>BoZTF;@B7`1=qV1Kz-ni)_wso3&d?PzpUqpVKT zr5K$HTUU22GI4c>$g0w2U@hCq& z%}7ge`&P_8W@y<~XQ{cF;$=Hsy)uC<)!P&_$X`L)HRR%Lis4V9tW9-z zB{&?^T_E)f^(sFeM;MvJL5#JXskGFswIDH?1>0f_ zE;U`7rIZm_w``GnTTZoR*Xl6hs%gAMpPeP5D-k-R;X!Z}WMQ_cVI&HFFsP>9a4Fs% z6b)F@@i6+1-&3z@*%@2THfOa-d%fYVvCOQ_!!rKmeaY*Thh)YU+*7X@%RyKmR~9sL znKqW%F#6V$3QJYnQ&O+UqAOt)wcub5M{Gz~*rot&-1m6Hb$SPr))X~@aqP%oD6_6N z+?4ohxR5szOhiTgma(3XuqP(oNJua1z;!i`@s9Kd0a1(zzEcZ0Phnlqq7(~8+7WA| z0?kWXkw16Fc%vj3wq*!(L|Y?c0!0`iK^!cYrDygRLm~*3?A)ZXXF2^8t33E1;6|Jj z;e}~EpJ$UCg(){r!x~!|V-Kx6ZhM-^;hG5DF)rh_Ru`7!FPQJ$+Z;B(t43k?&-6n{U zaVBWIo}`-I5iA1UNL-EbFmo&RBi!?SCUVST9|InH4`M%al>`O&LtMcslac!fhZ{Is zQave(Kt@0$B@pX(6qFYEOMRG)#7ci@wd!HR@HQ99^`z!)F3NhZg@xMBrj#-vO%#1| z(id^!Q`727h%Hv)2C1qjs%RaqTUg!4;0~HiGp5qT*sMsxC`%e}JUgQpC6~4(>rax@ zS=^j9m@+6C!Kx(}ZcYkyZ*y~uLGm_F=1>za7yoJTAr!Xm0d|baCCiR1EfceLoXf*X zI9ZqS*g90YJPK<@3=BO!8`6`;nSmv9$7{7}x@f_ILYz_Q4H(h{CARRDWFc;aAvnzDWZH9d2GM`56imOzf%)Qj56lsL%B?|(pfw=>Sjv~D+ zNL4sEnn+|zSYleQga=7h)hR|AhE{N67@P#(($YS~tcoc<~$3;x8R zaH<80CBf)+jWCz#ck>a1F-VBt8}W{0nsDm18n7lJqkXgWry-}$9HS5#q()hy0*ooG z;|)_oraii8%$e?tb7q$pFQ6UtA}PSPFrP{j-Rq7|@3PUutzv5VuVVumK5f=00H!xC z$$wpM42#YzF8fW1qYDs5wYj7VPA`P$FngrQftDg+2$BInS~GK$m1NhpY|jLvXCa_y zL9?A?1_3ERa24h$=tp=Da+q|s_ge}6V0*SZEv!B^JsF31(}OVEO%FmX-6cqhX?O8P zP3;b{s@U|f=^4=trWcPAFg<8EtSYR;N-#=F*2RthdpO;Zq;*)?5!NzGc7$bmcW034 zV7qYJySCqTtuugrwY@Ecrz0#=Z90O~D=Ta<)m~6dyr4ejaoXsOhB*%==uOm1xQbUs z&Ol@K%2A;bjg8m5N{kj;iMM+(C;oBbRYe6DXT2sHStXuN;#}w%Y~2$7M^!L*=3g<3;RaGpuEWMvSj)_k{J;h zgKD*(D={1%jfU45Y0Bnigq{8?O!+t&4;rm+G$Rxq!BLQ zrbkp+jONTOE~LxNBP;tZZl_aa92WGgaMrX%{>8bd)@m(-m*(aSnG>GAm6CWk%diJN z>5>Z;W2@KM&yt?XymJ>WT(aa`|1y7}PZH}r5AV5c@A>`>H)K&45Op3==l3q2<5}~L zR&6hW`9xR3{V%ew0D0`(Vqwk*yn;t z)sbsX?Z7hg;C)j&cJ3G>f7d0&Rz$Q*%o?lOs>? z7^qKTYnmP~(Z0{30j(_N!ehGxd8c-?^PA{)ZsYA}L3skrE8i~6csoin{#I!= zbw~DE({#L*-}pQG?gCmRFfZij8idl$9h^01BZsfE`HE~eM?O+!7cYZ}X+EXwh*Y;b zylVIEZ)pyr1~)ja@v9HsSCWxS+ARk?eC>KqQ)+RaZfO>4ULmf=Q#YDfU+QjaPTjrp zCQYrmv)T6O-ey`1&_aV;E3}$4?d{E0h`Yk6lv8(CgQ?fFW6Drk%V%zLwtNkHrL)25 z78fqb%dM)g)QUFuIwuNK4`9&D0=eK>Y0|nh&nz;#?kT_aEO+0tRfoCssiy1Xs6N(inl65}J8mz4PVb?;2AY*M*bFL&+L>3H zY+n`P8iR}qfw(Eove^W-7}529e?w56x;vPlxF^$t3!P8bnl`8X#&K`k4#k$Qf-S*m+G-xy{=107vQT&S1*o=LM!mCY?v`Ex9C z6BcAalZ~*#bkSr^-iv|moLXgx4_!WG@YKPeV~n;2)ku3E`&$8~ZKo?mgN_@V^s~EZ zaQeNiW84j6{#X`itr7dy9OMmfm)=}I&0`hG0uf&5toQl%ZHU+kCc|>prxlz+Mx2(g zFm)w0kQ6m(+LW4QY>Yp5@iKrjshMx3-l3sv-%4#SyR89JMkzaQV#h9Vr}^o~3j*XZ89XP@9e)?|+x_5CTJsRJ=r!2iqq`Q|96E+R)X%xo;^ zj8?nu>1j;|B#Azo7c*0IvB4Z`LgDrKMvUWhqNa4 zU}Rri;4b*A%Q9OO3x^xsY|R~ahj&>l`%x}$W&SAT!u|d@<-!j4w&1`=d_-L5_6I{( zLDZQjPauxLh`KNIP9J5WJ1+L>n)WP1z3(-+@%|&$;70zBS%aH{S*qw@{+1xSN2#00 zJMUFbpN5%d;SVpqMe{RF@*iG&i}e3U#kW?#Oy%3H*J*|IYys4@U3b$wm)K2MMUQUGvee(Kf262ov=@+BON=x7(3C*ar9Y zf;&P=4Y9fql){PG+TB|JS);jw817}8XDbtK(p4;48e?EY8yOuqzv5nE%0)^m>~s=1 zM;?1MzHlkY+xt)`DjY@>iN;nrtF)(Hb+)6qMIsTe6|E~X-SPRH5kJ~lstDIpJ0e63 z-L362BIE9p7_nTZ*n3XA`y@^CIK#p(R*NIQS+eTF@Li^Q zCs|;np6?e~tegcSkaIS}3XWNEQ5k!f&hNQcr?e;_<)|3Vx5^h6b0I2Zj|Ym8nNXvP zHHy*9o!{4LXR0jSV{NkzoavPnsau+)WNV{cA~<&4^KTmj+@YF>{nVI2g7%e9cg-K2 zFTlKIKt{i`J{oZanlZ*ql3o1Q3DX@;)yb5#X1_m>>1{3-2j_KFF!M!!S4H5nLeZR1 z8@ceGsch?|F8Vn%-3QPm;kKv==*K}ZnB+W_w~~`hzgVj0&4qt;h3hhCf>M;tD2Q2C zW2TU60@mQ8i~qcpjwiAzhGcKjpQ0WBOlF$BHw2}?yp_@1I+*DtfH5t=jH9#~Pjaz; z0xBw?lVUh{fLt>ulI}$S1laW=AZv_$7LfTiL@nKQD6xGo8xL>TGi7%bH{r)yZ8q-& zT0Jw*1+udAY9MaeN!AQm9>opn7IWhpn}4N{<0kPP<;uNd-Bo^TbE`N3^ z2ed8Iq)fx?oDo{-G?(du%w1hi5boIjRx{3K#+v?Fh9bh`tY@+VlD~X&%cpO$fgR2= z^j&*&R!4u%;zfsEC2Y}g2X6ypm0~IH`X-^ZOxzvRH9DYi&k{CFgxT)cv^>+E?plUP z1I%VDzS`1r`A(33b_A0}n}Z~wd%@#=MEh25Ug`%%{7lqkk*|h_c$UeU<37yRNn$Nd7V;Fs?mrOsH z&`jXMI=-=J-(Wx#mdH4+r6K08#|ka*{vvEy`|YH-lPqd?0|Q&PZ!xrCRw9LF2h=>d zBbF0riF@onyiRHzLvs?W3kVtU47m-as0V81=viyW98*J+@HBVk?9O~UiG{l!oW-;b znz>$V51RL_MB1}28Qd$4UD^SU#&D3m&1h%`Xq}Sln0POnnd%q{_5+8>#=xmD&2~d| zOqS8)&YL(?(1=O?hQSaekyb%P36@1od?v$Gbcg_x&?#gwU_0mbZ4(um#PB)U2ePrS zbBmKNZS?1s|iksc?q*BiK{G3 z^BBf0P#(eXpS)x(+0;5H9*%P!4!g29_0E_FF-zR#eu6=(zZwpxC{;VbjNBb+S57Hf}?+$UjBI;#=( zoo3(-OJNGo`ONvG^^&-KH9+PTXYcTPtkS6$9ql(egS*WA)H^$+zG1!Ik=f2LoY2d* z8a1aSkM=N0(nDIu%gx?d63*0wnIG?L;Qk9v5=_7=o`C;4DeLCcJ9)*EdCW_mVxR+F zZzL#igx|i(VBYj(3C+`fnJ`Ir`T%19_5=EaZc zuPSE`WbM+lDmIY2E5T|0D*NO|19BRVhGie&P72m>_Rl7bm1^1b%m+{Q$j5D|TU4bL zfFMXS^QNZ=u;?Sa&M{py!U{KJxawmT34XhpSI=4z5!~lrcLc4xgObZNkog7n+cQ>!yRb3*M1(95te-=)bdp# zgrt<_Abq!m1^$~Y_g<)|%avLH3^@Ot)`oz^)n)H&Y70jN#hhkLahZgI)j^grNz-JR zLj9MFU`NyDFf?OA8DN51`cA7z59&<1buRmuXoCN{pw)#*o)l%C7CCp_(d(MP7Q5`^ zsr{8vn}&E3W&hjC+2RwPU~EeC+M(qb(9<&Ea&1{$w6~ zAQ9SICsy^b@0u_@i3YjsGn`Dw#d_@DEGI37vldfAq>D#vi#4;Zkm{u689k<0?=TqJ z=-62-oDHT17iNjib@mbWqG+x&YPIZ~2!TE?lEkGYavE!qRe*FMg<~tXtyw}r(C$!> ze7jKD&CPZrwqsYSc4V=~Jg>qVzBE(*8!*?%#=6}@rvI{z+Wn_v>i3(j|KPVwj6uVi z8rhf3R)Ffq9q>TrUS{3u&4%Mlw><5Jt& zu|e`1%Bvnj>$T9*EWiHKN=mTWZ+2LbS*>O(%BIeA;kJkt*mpXOS>EZOr1DT_!qer> zN}M;S4VAY#4KL>2Czd16P*QgLQ;&8g;`x=GJLa3a)*i~S{@W1yXvZ9gblyL9(dN}o zc3P70!St%^?*7S%eOAMIvF5^ei z^alp|2M7E0BE&J`S<5yTNjeMfF0)~BeN7z$ z1IqGG!KD*PNNt&)v0um$LUfD!nsTWyr&x`0i(gyDPY3 z-`|B!MTXhUKc~X(kw%n9hB))8NB73`1Y!1eD|v@BzE{O(mzCY~9(m0X-Ck!lFMRed N+w=?5u1>x5`M)bu#zp`D literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/dsb/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/conf/locale/dsb/LC_MESSAGES/django.po new file mode 100644 index 0000000000..e7c0fb6ce5 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/dsb/LC_MESSAGES/django.po @@ -0,0 +1,1385 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Michael Wolf , 2016-2023 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-09-18 11:41-0300\n" +"PO-Revision-Date: 2023-12-04 06:49+0000\n" +"Last-Translator: Michael Wolf , 2016-2023\n" +"Language-Team: Lower Sorbian (http://app.transifex.com/django/django/" +"language/dsb/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: dsb\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || " +"n%100==4 ? 2 : 3);\n" + +msgid "Afrikaans" +msgstr "Afrikaanšćina" + +msgid "Arabic" +msgstr "Arabšćina" + +msgid "Algerian Arabic" +msgstr "Algeriska arabšćina" + +msgid "Asturian" +msgstr "Asturišćina" + +msgid "Azerbaijani" +msgstr "Azerbajdžanišćina" + +msgid "Bulgarian" +msgstr "Bulgaršćina" + +msgid "Belarusian" +msgstr "Běłorušćina" + +msgid "Bengali" +msgstr "Bengalšćina" + +msgid "Breton" +msgstr "Bretońšćina" + +msgid "Bosnian" +msgstr "Bosnišćina" + +msgid "Catalan" +msgstr "Katalańšćina" + +msgid "Central Kurdish (Sorani)" +msgstr "Centralna kurdišćina (Sorani)" + +msgid "Czech" +msgstr "Češćina" + +msgid "Welsh" +msgstr "Kymrišćina" + +msgid "Danish" +msgstr "Dańšćina" + +msgid "German" +msgstr "Nimšćina" + +msgid "Lower Sorbian" +msgstr "Dolnoserbšćina" + +msgid "Greek" +msgstr "Grichišćina" + +msgid "English" +msgstr "Engelšćina" + +msgid "Australian English" +msgstr "Awstralska engelšćina" + +msgid "British English" +msgstr "Britiska engelšćina" + +msgid "Esperanto" +msgstr "Esperanto" + +msgid "Spanish" +msgstr "Špańšćina" + +msgid "Argentinian Spanish" +msgstr "Argentinska špańšćina" + +msgid "Colombian Spanish" +msgstr "Kolumbiska špańšćina" + +msgid "Mexican Spanish" +msgstr "Mexikańska špańšćina" + +msgid "Nicaraguan Spanish" +msgstr "Nikaraguaska špańšćina" + +msgid "Venezuelan Spanish" +msgstr "Venezolaniska špańšćina" + +msgid "Estonian" +msgstr "Estnišćina" + +msgid "Basque" +msgstr "Baskišćina" + +msgid "Persian" +msgstr "Persišćina" + +msgid "Finnish" +msgstr "Finšćina" + +msgid "French" +msgstr "Francojšćina" + +msgid "Frisian" +msgstr "Frizišćina" + +msgid "Irish" +msgstr "Iršćina" + +msgid "Scottish Gaelic" +msgstr "Šotiska gelišćina" + +msgid "Galician" +msgstr "Galicišćina" + +msgid "Hebrew" +msgstr "Hebrejšćina" + +msgid "Hindi" +msgstr "Hindišćina" + +msgid "Croatian" +msgstr "Chorwatšćina" + +msgid "Upper Sorbian" +msgstr "Górnoserbšćina" + +msgid "Hungarian" +msgstr "Hungoršćina" + +msgid "Armenian" +msgstr "Armeńšćina" + +msgid "Interlingua" +msgstr "Interlingua" + +msgid "Indonesian" +msgstr "Indonešćina" + +msgid "Igbo" +msgstr "Igbo" + +msgid "Ido" +msgstr "Ido" + +msgid "Icelandic" +msgstr "Islandšćina" + +msgid "Italian" +msgstr "Italšćina" + +msgid "Japanese" +msgstr "Japańšćina" + +msgid "Georgian" +msgstr "Georgišćina" + +msgid "Kabyle" +msgstr "Kabylšćina" + +msgid "Kazakh" +msgstr "Kazachšćina" + +msgid "Khmer" +msgstr "Rěc Khmerow" + +msgid "Kannada" +msgstr "Kannadišćina" + +msgid "Korean" +msgstr "Korejańšćina" + +msgid "Kyrgyz" +msgstr "Kirgišćina" + +msgid "Luxembourgish" +msgstr "Luxemburgšćina" + +msgid "Lithuanian" +msgstr "Litawšćina" + +msgid "Latvian" +msgstr "Letišćina" + +msgid "Macedonian" +msgstr "Makedońšćina" + +msgid "Malayalam" +msgstr "Malajalam" + +msgid "Mongolian" +msgstr "Mongolšćina" + +msgid "Marathi" +msgstr "Marathi" + +msgid "Malay" +msgstr "Malayzišćina" + +msgid "Burmese" +msgstr "Myanmaršćina" + +msgid "Norwegian Bokmål" +msgstr "Norwegski Bokmål" + +msgid "Nepali" +msgstr "Nepalšćina" + +msgid "Dutch" +msgstr "¨Nižozemšćina" + +msgid "Norwegian Nynorsk" +msgstr "Norwegski Nynorsk" + +msgid "Ossetic" +msgstr "Osetšćina" + +msgid "Punjabi" +msgstr "Pundžabi" + +msgid "Polish" +msgstr "Pólšćina" + +msgid "Portuguese" +msgstr "Portugišćina" + +msgid "Brazilian Portuguese" +msgstr "Brazilska portugišćina" + +msgid "Romanian" +msgstr "Rumunšćina" + +msgid "Russian" +msgstr "Rušćina" + +msgid "Slovak" +msgstr "Słowakšćina" + +msgid "Slovenian" +msgstr "Słowjeńšćina" + +msgid "Albanian" +msgstr "Albanšćina" + +msgid "Serbian" +msgstr "Serbišćina" + +msgid "Serbian Latin" +msgstr "Serbišćina, łatyńska" + +msgid "Swedish" +msgstr "Šwedšćina" + +msgid "Swahili" +msgstr "Suahelšćina" + +msgid "Tamil" +msgstr "Tamilšćina" + +msgid "Telugu" +msgstr "Telugu" + +msgid "Tajik" +msgstr "Tadźikišćina" + +msgid "Thai" +msgstr "Thaišćina" + +msgid "Turkmen" +msgstr "Turkmeńšćina" + +msgid "Turkish" +msgstr "Turkojšćina" + +msgid "Tatar" +msgstr "Tataršćina" + +msgid "Udmurt" +msgstr "Udmurtšćina" + +msgid "Uyghur" +msgstr "Ujguršćina" + +msgid "Ukrainian" +msgstr "Ukrainšćina" + +msgid "Urdu" +msgstr "Urdu" + +msgid "Uzbek" +msgstr "Uzbekšćina" + +msgid "Vietnamese" +msgstr "Vietnamšćina" + +msgid "Simplified Chinese" +msgstr "Zjadnorjona chinšćina" + +msgid "Traditional Chinese" +msgstr "Tradicionelna chinšćina" + +msgid "Messages" +msgstr "Powěsći" + +msgid "Site Maps" +msgstr "Wopśimjeśowy pśeglěd sedła" + +msgid "Static Files" +msgstr "Statiske dataje" + +msgid "Syndication" +msgstr "Syndikacija" + +#. Translators: String used to replace omitted page numbers in elided page +#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10]. +msgid "…" +msgstr "…" + +msgid "That page number is not an integer" +msgstr "Toś ten numer boka njejo ceła licba" + +msgid "That page number is less than 1" +msgstr "Numer boka jo mjeńšy ako 1" + +msgid "That page contains no results" +msgstr "Toś ten bok njewopśimujo wuslědki" + +msgid "Enter a valid value." +msgstr "Zapódajśo płaśiwu gódnotu." + +msgid "Enter a valid URL." +msgstr "Zapódajśo płaśiwy URL." + +msgid "Enter a valid integer." +msgstr "Zapódajśo płaśiwu cełu licbu." + +msgid "Enter a valid email address." +msgstr "Zapódajśo płaśiwu e-mailowu adresu." + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" +"Zapódajśo płaśiwe „adresowe mě“, kótarež jano wopśimujo pismiki, licby, " +"pódsmužki abo wězawki." + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" +"Zapódajśo płaśiwe „adresowe mě“, kótarež jano wopśimujo unicodowe pismiki, " +"licby, pódmužki abo wězawki." + +msgid "Enter a valid IPv4 address." +msgstr "Zapódajśo płaśiwu IPv4-adresu." + +msgid "Enter a valid IPv6 address." +msgstr "Zapódajśo płaśiwu IPv6-adresu." + +msgid "Enter a valid IPv4 or IPv6 address." +msgstr "Zapódajśo płaśiwu IPv4- abo IPv6-adresu." + +msgid "Enter only digits separated by commas." +msgstr "Zapódajśo jano cyfry źělone pśez komy." + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "Zawěsććo toś tu gódnotu jo %(limit_value)s (jo %(show_value)s)." + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "" +"Zawěsććo, až toś ta gódnota jo mjeńša ako abo to samske ako %(limit_value)s." + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "" +"Zawěsććo, až toś ta gódnota jo wětša ako abo to samske ako %(limit_value)s." + +#, python-format +msgid "Ensure this value is a multiple of step size %(limit_value)s." +msgstr "" +"Zawěsććo, až toś gódnota jo wjelesere kšacoweje wjelikosći %(limit_value)s." + +#, python-format +msgid "" +"Ensure this value is a multiple of step size %(limit_value)s, starting from " +"%(offset)s, e.g. %(offset)s, %(valid_value1)s, %(valid_value2)s, and so on." +msgstr "" +"Zawěsććo, až toś ta gódnota jo wjele wót kšacoweje wjelikosći " +"%(limit_value)s, zachopinajucy z %(offset)s, na pś. %(offset)s, " +"%(valid_value1)s, %(valid_value2)s a tak dalej." + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Zawěsććo, až toś ta gódnota ma nanejmjenjej %(limit_value)d znamuško (ma " +"%(show_value)d)." +msgstr[1] "" +"Zawěsććo, až toś ta gódnota ma nanejmjenjej %(limit_value)d znamušce (ma " +"%(show_value)d)." +msgstr[2] "" +"Zawěsććo, až toś ta gódnota ma nanejmjenjej %(limit_value)d znamuška (ma " +"%(show_value)d)." +msgstr[3] "" +"Zawěsććo, až toś ta gódnota ma nanejmjenjej %(limit_value)d znamuškow (ma " +"%(show_value)d)." + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Zawěććo, až toś ta gódnota ma maksimalnje %(limit_value)d znamuško (ma " +"%(show_value)d)." +msgstr[1] "" +"Zawěććo, až toś ta gódnota ma maksimalnje %(limit_value)d znamušce (ma " +"%(show_value)d)." +msgstr[2] "" +"Zawěććo, až toś ta gódnota ma maksimalnje %(limit_value)d znamuška (ma " +"%(show_value)d)." +msgstr[3] "" +"Zawěććo, až toś ta gódnota ma maksimalnje %(limit_value)d znamuškow (ma " +"%(show_value)d)." + +msgid "Enter a number." +msgstr "Zapódajśo licbu." + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "Zawěsććo, až njejo wěcej ako %(max)s cyfry dogromady." +msgstr[1] "Zawěsććo, až njejo wěcej ako %(max)s cyfrowu dogromady." +msgstr[2] "Zawěsććo, až njejo wěcej ako %(max)s cyfrow dogromady." +msgstr[3] "Zawěsććo, až njejo wěcej ako %(max)s cyfrow dogromady." + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "Zawěsććo, až njejo wěcej ako %(max)s decimalnego městna." +msgstr[1] "Zawěsććo, až njejo wěcej ako %(max)s decimalneju městnowu." +msgstr[2] "Zawěsććo, až njejo wěcej ako %(max)s decimalnych městnow." +msgstr[3] "Zawěsććo, až njejo wěcej ako %(max)s decimalnych městnow." + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "Zawěsććo, až njejo wěcej ako %(max)s cyfry pśed decimalneju komu." +msgstr[1] "Zawěsććo, až njejo wěcej ako %(max)s cyfrowu pśed decimalneju komu." +msgstr[2] "Zawěsććo, až njejo wěcej ako %(max)s cyfrow pśed decimalneju komu." +msgstr[3] "Zawěsććo, až njejo wěcej ako %(max)s cyfrow pśed decimalneju komu." + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" +"Datajowy sufiks „%(extension)s“ njejo dowólony. Dowólone sufikse su: " +"%(allowed_extensions)s." + +msgid "Null characters are not allowed." +msgstr "Znamuška nul njejsu dowólone." + +msgid "and" +msgstr "a" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "%(model_name)s z toś tym %(field_labels)s južo eksistěrujo." + +#, python-format +msgid "Constraint “%(name)s” is violated." +msgstr "Wobranicowanje \"%(name)s\" jo pśestupjone." + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "Gódnota %(value)r njejo płaśiwa wóleńska móžnosć." + +msgid "This field cannot be null." +msgstr "Toś to pólo njamóžo nul byś." + +msgid "This field cannot be blank." +msgstr "Toś to pólo njamóžo prozne byś." + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "%(model_name)s z toś tym %(field_label)s južo eksistěrujo." + +#. Translators: The 'lookup_type' is one of 'date', 'year' or +#. 'month'. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" +"%(field_label)s musy za %(date_field_label)s %(lookup_type)s jadnorazowy byś." + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "Typ póla: %(field_type)s" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "Gódnota „%(value)s“ musy pak True pak False byś." + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "Gódnota „%(value)s“ musy pak True, False pak None byś." + +msgid "Boolean (Either True or False)" +msgstr "Boolean (pak True pak False)" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "Znamuškowy rjeśazk (až %(max_length)s)" + +msgid "String (unlimited)" +msgstr "Znamuškowy rjeśazk (njewobgranicowany)" + +msgid "Comma-separated integers" +msgstr "Pśez komu źělone cełe licby" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" +"Gódnota „%(value)s“ ma njepłaśiwy datumowy format. Musy we formaśe DD.MM." +"YYYY byś." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" +"Gódnota „%(value)s“ ma korektny format (DD.MM.YYYY), ale jo njepłaśiwy datum." + +msgid "Date (without time)" +msgstr "Datum (bźez casa)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" +"Gódnota „%(value)s“ ma njepłaśiwy format. Musy w formaśe DD.MM.YYYY HH:MM[:" +"ss[.uuuuuu]][TZ] byś." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" +"Gódnota „%(value)s“ ma korektny format (DD.MM.YYYY HH:MM[:ss[.uuuuuu]][TZ]), " +"ale jo njepłaśiwy datum/cas." + +msgid "Date (with time)" +msgstr "Datum (z casom)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "Gódnota „%(value)s“ musy decimalna licba byś." + +msgid "Decimal number" +msgstr "Decimalna licba" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" +"Gódnota „%(value)s“ ma njepłaśiwy format. Musy we formaśe [DD] " +"[[HH:]MM:]ss[.uuuuuu] byś." + +msgid "Duration" +msgstr "Traśe" + +msgid "Email address" +msgstr "E-mailowa adresa" + +msgid "File path" +msgstr "Datajowa sćažka" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "Gódnota „%(value)s“ musy typ float měś." + +msgid "Floating point number" +msgstr "Licba běžeceje komy" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "Gódnota „%(value)s“ musy ceła licba byś." + +msgid "Integer" +msgstr "Integer" + +msgid "Big (8 byte) integer" +msgstr "Big (8 bajtow) integer" + +msgid "Small integer" +msgstr "Mała ceła licba" + +msgid "IPv4 address" +msgstr "IPv4-adresa" + +msgid "IP address" +msgstr "IP-adresa" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "Gódnota „%(value)s“ musy pak None, True pak False byś." + +msgid "Boolean (Either True, False or None)" +msgstr "Boolean (pak True, False pak None)" + +msgid "Positive big integer" +msgstr "Pozitiwna wjelika ceła licba" + +msgid "Positive integer" +msgstr "Pozitiwna ceła licba" + +msgid "Positive small integer" +msgstr "Pozitiwna mała ceła licba" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "Adresowe mě (až %(max_length)s)" + +msgid "Text" +msgstr "Tekst" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" +"Gódnota „%(value)s“ ma njepłaśiwy format. Musy w formaśe HH:MM[:ss[." +"uuuuuu]] byś." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" +"Gódnota „%(value)s“ ma korektny format (HH:MM[:ss[.uuuuuu]]), ale jo " +"njepłaśiwy cas." + +msgid "Time" +msgstr "Cas" + +msgid "URL" +msgstr "URL" + +msgid "Raw binary data" +msgstr "Gropne binarne daty" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "„%(value)s“ njejo płaśiwy UUID." + +msgid "Universally unique identifier" +msgstr "Uniwerselnje jadnorazowy identifikator" + +msgid "File" +msgstr "Dataja" + +msgid "Image" +msgstr "Woraz" + +msgid "A JSON object" +msgstr "JSON-objekt" + +msgid "Value must be valid JSON." +msgstr "Gódnota musy płaśiwy JSON byś." + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "Instanca %(model)s z %(field)s %(value)r njeeksistěrujo." + +msgid "Foreign Key (type determined by related field)" +msgstr "Cuzy kluc (typ póstaja se pśez wótpowědne pólo)" + +msgid "One-to-one relationship" +msgstr "Póśěg jaden jaden" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "Póśěg %(from)s-%(to)s" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "Póśěgi %(from)s-%(to)s" + +msgid "Many-to-many relationship" +msgstr "Póśěg wjele wjele" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr ":?.!" + +msgid "This field is required." +msgstr "Toś to pólo jo trěbne." + +msgid "Enter a whole number." +msgstr "Zapódajśo cełu licbu." + +msgid "Enter a valid date." +msgstr "Zapódajśo płaśiwy datum." + +msgid "Enter a valid time." +msgstr "Zapódajśo płaśiwy cas." + +msgid "Enter a valid date/time." +msgstr "Zapódajśo płaśiwy datum/cas." + +msgid "Enter a valid duration." +msgstr "Zapódaśe płaśiwe traśe." + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "Licba dnjow musy mjazy {min_days} a {max_days} byś." + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "" +"Dataja njejo se wótpósłała. Pśeglědujśo koděrowański typ na formularje. " + +msgid "No file was submitted." +msgstr "Žedna dataja jo se wótpósłała." + +msgid "The submitted file is empty." +msgstr "Wótpósłana dataja jo prozna." + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" +"Zawěsććo, až toś to datajowe mě ma maksimalnje %(max)d znamuško (ma " +"%(length)d)." +msgstr[1] "" +"Zawěsććo, až toś to datajowe mě ma maksimalnje %(max)d znamušce (ma " +"%(length)d)." +msgstr[2] "" +"Zawěsććo, až toś to datajowe mě ma maksimalnje %(max)d znamuška (ma " +"%(length)d)." +msgstr[3] "" +"Zawěsććo, až toś to datajowe mě ma maksimalnje %(max)d znamuškow (ma " +"%(length)d)." + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "" +"Pšosym pak wótpósćelśo dataju pak stajśo kokulku do kontrolnego kašćika, " +"njecyńśo wobej." + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" +"Nagrajśo płaśiwy wobraz. Dataja, kótaruž sćo nagrał, pak njejo wobraz był " +"pak jo wobškóźony wobraz." + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "" +"Wubjeŕśo płaśiwu wóleńsku móžnosć. %(value)s njejo jadna z k dispoziciji " +"stojecych wóleńskich móžnosćow." + +msgid "Enter a list of values." +msgstr "Zapódajśo lisćinu gódnotow." + +msgid "Enter a complete value." +msgstr "Zapódajśo dopołnu gódnotu." + +msgid "Enter a valid UUID." +msgstr "Zapódajśo płaśiwy UUID." + +msgid "Enter a valid JSON." +msgstr "Zapódajśo płaśiwy JSON." + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr ":" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "(Schowane pólo %(name)s) %(error)s" + +#, python-format +msgid "" +"ManagementForm data is missing or has been tampered with. Missing fields: " +"%(field_names)s. You may need to file a bug report if the issue persists." +msgstr "" +"Daty ManagementForm feluju abo su wobškóźone. Felujuce póla: " +"%(field_names)s. Móžośo zmólkowu rozpšawu pisaś, jolic problem dalej " +"eksistěrujo." + +#, python-format +msgid "Please submit at most %(num)d form." +msgid_plural "Please submit at most %(num)d forms." +msgstr[0] "Pšosym wótposćelśo maksimalnje %(num)d formular." +msgstr[1] "Pšosym wótposćelśo maksimalnje %(num)d formulara." +msgstr[2] "Pšosym wótposćelśo maksimalnje %(num)d formulary." +msgstr[3] "Pšosym wótposćelśo maksimalnje %(num)d formularow." + +#, python-format +msgid "Please submit at least %(num)d form." +msgid_plural "Please submit at least %(num)d forms." +msgstr[0] "Pšosym wótposćelśo minimalnje %(num)d formular." +msgstr[1] "Pšosym wótposćelśo minimalnje %(num)d formulara." +msgstr[2] "Pšosym wótposćelśo minimalnje %(num)d formulary." +msgstr[3] "Pšosym wótposćelśo minimalnje %(num)d formularow." + +msgid "Order" +msgstr "Rěd" + +msgid "Delete" +msgstr "Lašowaś" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "Pšosym korigěrujśo dwójne daty za %(field)s." + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "" +"Pšosym korigěrujśo dwójne daty za %(field)s, kótarež muse jadnorazowe byś." + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"Pšosym korigěrujśo dwójne daty za %(field_name)s, kótarež muse za %(lookup)s " +"w %(date_field)s jadnorazowe byś." + +msgid "Please correct the duplicate values below." +msgstr "Pšosym korigěrujśo slědujuce dwójne gódnoty." + +msgid "The inline value did not match the parent instance." +msgstr "Gódnota inline nadrědowanej instance njewótpowědujo." + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "" +"Wubjeŕśo płaśiwu wóleńsku móžnosć. Toś ta wóleńska móžnosć njejo žedna z " +"wóleńskich móžnosćow." + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "„%(pk)s“ njejo płaśiwa gódnota." + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" +"%(datetime)s njedajo se w casowej conje %(current_timezone)s " +"interpretěrowaś; jo dwójozmysłowy abo snaź njeeksistěrujo." + +msgid "Clear" +msgstr "Lašowaś" + +msgid "Currently" +msgstr "Tuchylu" + +msgid "Change" +msgstr "Změniś" + +msgid "Unknown" +msgstr "Njeznaty" + +msgid "Yes" +msgstr "Jo" + +msgid "No" +msgstr "Ně" + +#. Translators: Please do not add spaces around commas. +msgid "yes,no,maybe" +msgstr "jo,ně,snaź" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)d bajt" +msgstr[1] "%(size)d bajta" +msgstr[2] "%(size)d bajty" +msgstr[3] "%(size)d bajtow" + +#, python-format +msgid "%s KB" +msgstr "%s KB" + +#, python-format +msgid "%s MB" +msgstr "%s MB" + +#, python-format +msgid "%s GB" +msgstr "%s GB" + +#, python-format +msgid "%s TB" +msgstr "%s TB" + +#, python-format +msgid "%s PB" +msgstr "%s PB" + +msgid "p.m." +msgstr "wótpołdnja" + +msgid "a.m." +msgstr "dopołdnja" + +msgid "PM" +msgstr "wótpołdnja" + +msgid "AM" +msgstr "dopołdnja" + +msgid "midnight" +msgstr "połnoc" + +msgid "noon" +msgstr "połdnjo" + +msgid "Monday" +msgstr "Pónjeźele" + +msgid "Tuesday" +msgstr "Wałtora" + +msgid "Wednesday" +msgstr "Srjoda" + +msgid "Thursday" +msgstr "Stwórtk" + +msgid "Friday" +msgstr "Pětk" + +msgid "Saturday" +msgstr "Sobota" + +msgid "Sunday" +msgstr "Njeźela" + +msgid "Mon" +msgstr "Pón" + +msgid "Tue" +msgstr "Wał" + +msgid "Wed" +msgstr "Srj" + +msgid "Thu" +msgstr "Stw" + +msgid "Fri" +msgstr "Pět" + +msgid "Sat" +msgstr "Sob" + +msgid "Sun" +msgstr "Nje" + +msgid "January" +msgstr "Januar" + +msgid "February" +msgstr "Februar" + +msgid "March" +msgstr "Měrc" + +msgid "April" +msgstr "Apryl" + +msgid "May" +msgstr "Maj" + +msgid "June" +msgstr "Junij" + +msgid "July" +msgstr "Julij" + +msgid "August" +msgstr "Awgust" + +msgid "September" +msgstr "September" + +msgid "October" +msgstr "Oktober" + +msgid "November" +msgstr "Nowember" + +msgid "December" +msgstr "December" + +msgid "jan" +msgstr "jan" + +msgid "feb" +msgstr "feb" + +msgid "mar" +msgstr "měr" + +msgid "apr" +msgstr "apr" + +msgid "may" +msgstr "maj" + +msgid "jun" +msgstr "jun" + +msgid "jul" +msgstr "jul" + +msgid "aug" +msgstr "awg" + +msgid "sep" +msgstr "sep" + +msgid "oct" +msgstr "okt" + +msgid "nov" +msgstr "now" + +msgid "dec" +msgstr "dec" + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "Jan." + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "Feb." + +msgctxt "abbrev. month" +msgid "March" +msgstr "Měrc" + +msgctxt "abbrev. month" +msgid "April" +msgstr "Apryl" + +msgctxt "abbrev. month" +msgid "May" +msgstr "Maj" + +msgctxt "abbrev. month" +msgid "June" +msgstr "Junij" + +msgctxt "abbrev. month" +msgid "July" +msgstr "Julij" + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "Awg." + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "Sept." + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "Okt." + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "Now." + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "Dec." + +msgctxt "alt. month" +msgid "January" +msgstr "Januar" + +msgctxt "alt. month" +msgid "February" +msgstr "Februar" + +msgctxt "alt. month" +msgid "March" +msgstr "Měrc" + +msgctxt "alt. month" +msgid "April" +msgstr "Apryl" + +msgctxt "alt. month" +msgid "May" +msgstr "Maj" + +msgctxt "alt. month" +msgid "June" +msgstr "Junij" + +msgctxt "alt. month" +msgid "July" +msgstr "Julij" + +msgctxt "alt. month" +msgid "August" +msgstr "Awgust" + +msgctxt "alt. month" +msgid "September" +msgstr "September" + +msgctxt "alt. month" +msgid "October" +msgstr "Oktober" + +msgctxt "alt. month" +msgid "November" +msgstr "Nowember" + +msgctxt "alt. month" +msgid "December" +msgstr "December" + +msgid "This is not a valid IPv6 address." +msgstr "To njejo płaśiwa IPv6-adresa." + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "%(truncated_text)s…" + +msgid "or" +msgstr "abo" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr ", " + +#, python-format +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "%(num)d lěto" +msgstr[1] "%(num)d lěśe" +msgstr[2] "%(num)d lěta" +msgstr[3] "%(num)d lět" + +#, python-format +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "%(num)d mjasec" +msgstr[1] "%(num)d mjaseca" +msgstr[2] "%(num)d mjasece" +msgstr[3] "%(num)dmjasecow" + +#, python-format +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "%(num)d tyźeń" +msgstr[1] "%(num)d tyźenja" +msgstr[2] "%(num)d tyźenje" +msgstr[3] "%(num)d tyźenjow" + +#, python-format +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "%(num)d źeń " +msgstr[1] "%(num)d dnja" +msgstr[2] "%(num)d dny" +msgstr[3] "%(num)d dnjow" + +#, python-format +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "%(num)d góźina" +msgstr[1] "%(num)d góźinje" +msgstr[2] "%(num)d góźiny" +msgstr[3] "%(num)d góźin" + +#, python-format +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "%(num)d minuta" +msgstr[1] "%(num)d minuśe" +msgstr[2] "%(num)d minuty" +msgstr[3] "%(num)d minutow" + +msgid "Forbidden" +msgstr "Zakazany" + +msgid "CSRF verification failed. Request aborted." +msgstr "CSRF-pśeglědanje njejo se raźiło. Napšašowanje jo se pśetergnuło." + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" +"Wiźiśo toś tu powěźeńku, dokulaž toś to HTTPS-sedło trjeba \"Referer " +"header\", aby se pśez waš webwobglědowak słało, ale žedna njejo se pósłała. " +"Toś ta głowa jo trěbna z pśicynow wěstoty, aby so zawěsćiło, až waš " +"wobglědowak njekaprujo se wót tśeśich." + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" +"Jolic sćo swój wobglědowak tak konfigurěrował, aby se głowy 'Referer' " +"znjemóžnili, zmóžniśo je pšosym zasej, nanejmjenjej za toś to sedło, za " +"HTTPS-zwiski abo za napšašowanja 'same-origin'." + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" +"Jolic woznamjenje wužywaśo " +"abo głowu „Referrer-Policy: no-referrer“ zapśimujośo, wótwónoźćo je. CSRF-" +"šćit pomina se głowu „Referer“, aby striktnu kontrolu referera pśewjasć. " +"Jolic se wó swóju priwatnosć staraśo, wužywajśo alternatiwy ako za wótkazy k sedłam tśeśich." + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" +"Wiźiśo toś tu powěźeńku, dokulaž toś to HTTPS-sedło trjeba CSRF-cookie, aby " +"formulary wótpósłało. Toś ten cookie jo trěbna z pśicynow wěstoty, aby so " +"zawěsćiło, až waš wobglědowak njekaprujo se wót tśeśich." + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" +"Jolic sćo swój wobglědowak tak konfigurěrował, aby cookieje znjemóžnili, " +"zmóžniśo je pšosym zasej, nanejmjenjej za toś to sedło abo za napšašowanja " +"„same-origin“." + +msgid "More information is available with DEBUG=True." +msgstr "Dalšne informacije su k dispoziciji z DEBUG=True." + +msgid "No year specified" +msgstr "Žedno lěto pódane" + +msgid "Date out of range" +msgstr "Datum zwenka wobcerka" + +msgid "No month specified" +msgstr "Žeden mjasec pódany" + +msgid "No day specified" +msgstr "Žeden źeń pódany" + +msgid "No week specified" +msgstr "Žeden tyźeń pódany" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "Žedne %(verbose_name_plural)s k dispoziciji" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" +"Pśichodne %(verbose_name_plural)s njejo k dispoziciji, dokulaž " +"%(class_name)s.allow_future jo False." + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "" +"Njepłaśiwy „%(format)s“ za datumowy znamuškowy rjeśazk „%(datestr)s“ pódany" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "Žedno %(verbose_name)s namakane, kótarež wótpowědujo napšašowanjeju." + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "Bok njejo „last“, ani njedajo se do „int“ konwertěrowaś." + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "Njepłaśiwy bok (%(page_number)s): %(message)s" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "Prozna lisćina a „%(class_name)s.allow_empty“ jo False." + +msgid "Directory indexes are not allowed here." +msgstr "Zapisowe indekse njejsu how dowólone." + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "„%(path)s“ njeeksistěrujo" + +#, python-format +msgid "Index of %(directory)s" +msgstr "Indeks %(directory)s" + +msgid "The install worked successfully! Congratulations!" +msgstr "Instalacija jo była wuspěšna! Gratulacija!" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" +"Wersijowe informacije za Django " +"%(version)s pokazaś" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not " +"configured any URLs." +msgstr "" +"Wiźiśo toś ten bok, dokulaž DEBUG=True jo w swójej dataji nastajenjow a njejsćo " +"konfigurěrował URL." + +msgid "Django Documentation" +msgstr "Dokumentacija Django" + +msgid "Topics, references, & how-to’s" +msgstr "Temy, reference a rozpokazanja" + +msgid "Tutorial: A Polling App" +msgstr "Rozpokazanje: Napšašowańske nałoženje" + +msgid "Get started with Django" +msgstr "Prědne kšace z Django" + +msgid "Django Community" +msgstr "Zgromaźeństwo Django" + +msgid "Connect, get help, or contribute" +msgstr "Zwězajśo, wobsarajśo se pomoc abo źěłajśo sobu" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/el/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/conf/locale/el/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..1b07550997aa8ca2f849671ac36c859422aedd0d GIT binary patch literal 33648 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�P$YjS^iosJo zQEfz@Nvv#mAaQ1^c;rpjQ&iK7PwvBZyeAt6nN)Soj3Pah&uogkc=Z#SN2*O-8@>}f zV{LO-epr;(d*^GL#T?W@++|-haWr3DmHb?>I?;+k=#}aSFNJ6!MnHu=F z^BBK3poxJ#r-eyMW4$_rk7t_Uy1%37phlX>ImRuCxthO+RdqSBQ=1NpmK1|L~qY*A~1x(5ly%NJ1v)Q19N!%*t;fE7k^9 zMlC`KgBO&auu81w)uBCsR8&nYPoBjB(c-iGCwU|0dP<%G!o`bEbS9QyO#AJt?OgA6 zrfzjknrg)xgpv;w916OLxnh5TqKP zDssDwF={7G+Oh>J6z{Gm&_V<%)2XP;g(*gk0t~%dCfh+(MHWw)vC-Q;+84#|s%FKG z&KkZ3);GZF#hkV+tP1*aG~@ns81HKmk?c&S)$gLDaB6jRLo!cqS;aTTYkUe>w~)?8 zhy!7<lJU;hhX-u5H3)=Phiuq8pf-L3IS!#HSTy&-;zGvwPj4kSMxF0VF1oqBi% zJwUmBp&O+jn)U);L8jOjU(FEQwx{+xjO#1Os=RURs@y{v?Nai3wQNd%7q6cfZ^hh_?6p1md#W;_JVqSv6MZ63s~EXqQohqxY)q zf$B8Co+hjU?68P2VGH~_1`1Fi#8zO;9+&Q|KNNzQ#X!V{#Z!wxmrtQN!HM;Mq!WdF zNUE)g5xY1);$L@mMb~auWFzl%nHk|9Q)qNZZ`oo5hK44t+CLVL-3gG1+R!@8iPv$z zrz9WT*|D{nPEDdY(uuKppBhWHH2LkesHJ%F^X>BLenFzB2?KrpH@}&h7z^{-px8_AsVwuvFh8|aCTNfjXde7)&ng<%ls7d{ zma1px?D|Rl2OQFzLj#Y?T6-|#&0EhOQ8!xpWynp_h>o=U>QqA^r}pUG_vyo^6MxXs z+}u1&EjcPBVOpc50W9kSjQ48VS zTSEWc10T4DHAhN5Y{O#&ErO{^F%wiSopw)vm|sp#+A zYoeUhtTrhX6lpezx8a?bKDgs(wvbR(^$jW50WV70bkYV^vTCA~xkq&4bkGJ*3wYY% z8vIy;aNQx^U`8w>b^z?-ew&Kt-Pv4q!V|`^`Y}*UPeK=JL_21Ug%xy~Xv7?;K@Cu~ zmCCC={T6c<)#-GNh#C>m0h#RGTu8zl}zx`l;)IeHDK;XgqSLmh`BoRbBDhZQZ zvsZ@%`j|Pksn$07!sZ&)Fd>MIO40FivQ?G!o|P=IIy-5mVd_hi;H%aQI~;Y#ah!O` z!856Ji<+#{dL&L}UJsDRIMh>E#3^UewEDktpw_EOvPil|RkK1g!hWV#uC3^cZS*pa z6w>Dw;(=--1=vJiPE?Z1eom!~vj!T4QOxqUqw*K$Vu6k|h-O5N7RkyVO`s{~fJ2%H zL;4ubUUR$}%j~s0{@H(8!AwN$W-)&N)BUxEcsHPiH4Ga!h%exnU;Ixe+^(d;0C63w zjtIF)OIpxUK2vD!?qUA%#%ZGFU4NA~*Gfy2whJVfYla4h=r&lq%&Z3Pu3axJZvds% zFM#$!5x7D!XlQO!;pr$`mjw@P@&PHzT3HSy}IwMpvrs#6TYQx zeEy^arM5#MiG`^5Byp>uNRWNDQ8+Nu4Y*Q9x7skYmR6}ggja9NA9YVec)xDlHt^lH z4eTrU!SpX_{+u760FHWwdg47h1;)+zf+Hg1rGd{?f<(qn8RM~M zaG;2YSMFj)2a=icmXW9=CpIG`QgU8o?CcvF_s1EA#Veq#Z0?K&2?_YfrklUdP%)O{0;x(%|!9FNyT(p0E=nq2+!1F$u^Yr_ zeq@x{qT_O1Vxk853mCSjvO!SM5o{|p-4g0TUcJht#h}`1<;C7ziQ3M{smknN%x`4j zXNA}~b+*j+qp!YZx!87>v{#LU@lcwU7 Z5E0zz$n1}Xya{bo{)h-|xj!QE{{R{?, 2013 +# Dimitris Glezos , 2011,2013,2017 +# Fotis Athineos , 2021 +# Giannis Meletakis , 2015 +# Jannis Leidel , 2011 +# Nick Mavrakis , 2017-2020 +# Nikolas Demiridis , 2014 +# Nick Mavrakis , 2016 +# Pãnoș , 2014 +# Pãnoș , 2016 +# Serafeim Papastefanos , 2016 +# Stavros Korokithakis , 2014,2016 +# Yorgos Pagles , 2011-2012 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-09-21 10:22+0200\n" +"PO-Revision-Date: 2021-11-18 21:19+0000\n" +"Last-Translator: Transifex Bot <>\n" +"Language-Team: Greek (http://www.transifex.com/django/django/language/el/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: el\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Afrikaans" +msgstr "Αφρικάνς" + +msgid "Arabic" +msgstr "Αραβικά" + +msgid "Algerian Arabic" +msgstr "Αραβικά Αλγερίας" + +msgid "Asturian" +msgstr "Αστούριας" + +msgid "Azerbaijani" +msgstr "Γλώσσα Αζερμπαϊτζάν" + +msgid "Bulgarian" +msgstr "Βουλγαρικά" + +msgid "Belarusian" +msgstr "Λευκορώσικα" + +msgid "Bengali" +msgstr "Μπενγκάλι" + +msgid "Breton" +msgstr "Βρετονικά" + +msgid "Bosnian" +msgstr "Βοσνιακά" + +msgid "Catalan" +msgstr "Καταλανικά" + +msgid "Czech" +msgstr "Τσέχικα" + +msgid "Welsh" +msgstr "Ουαλικά" + +msgid "Danish" +msgstr "Δανέζικα" + +msgid "German" +msgstr "Γερμανικά" + +msgid "Lower Sorbian" +msgstr "Κάτω Σορβικά" + +msgid "Greek" +msgstr "Ελληνικά" + +msgid "English" +msgstr "Αγγλικά" + +msgid "Australian English" +msgstr "Αγγλικά Αυστραλίας" + +msgid "British English" +msgstr "Αγγλικά Βρετανίας" + +msgid "Esperanto" +msgstr "Εσπεράντο" + +msgid "Spanish" +msgstr "Ισπανικά" + +msgid "Argentinian Spanish" +msgstr "Ισπανικά Αργεντινής" + +msgid "Colombian Spanish" +msgstr "Ισπανικά Κολομβίας" + +msgid "Mexican Spanish" +msgstr "Μεξικανική διάλεκτος Ισπανικών" + +msgid "Nicaraguan Spanish" +msgstr "Ισπανικά Νικαράγουας " + +msgid "Venezuelan Spanish" +msgstr "Ισπανικά Βενεζουέλας" + +msgid "Estonian" +msgstr "Εσθονικά" + +msgid "Basque" +msgstr "Βάσκικα" + +msgid "Persian" +msgstr "Περσικά" + +msgid "Finnish" +msgstr "Φινλανδικά" + +msgid "French" +msgstr "Γαλλικά" + +msgid "Frisian" +msgstr "Frisian" + +msgid "Irish" +msgstr "Ιρλανδικά" + +msgid "Scottish Gaelic" +msgstr "Σκωτσέζικα Γαελικά" + +msgid "Galician" +msgstr "Γαελικά" + +msgid "Hebrew" +msgstr "Εβραϊκά" + +msgid "Hindi" +msgstr "Ινδικά" + +msgid "Croatian" +msgstr "Κροατικά" + +msgid "Upper Sorbian" +msgstr "Άνω Σορβικά" + +msgid "Hungarian" +msgstr "Ουγγρικά" + +msgid "Armenian" +msgstr "Αρμενικά" + +msgid "Interlingua" +msgstr "Ιντερλίνγκουα" + +msgid "Indonesian" +msgstr "Ινδονησιακά" + +msgid "Igbo" +msgstr "Ίγκμπο" + +msgid "Ido" +msgstr "Ίντο" + +msgid "Icelandic" +msgstr "Ισλανδικά" + +msgid "Italian" +msgstr "Ιταλικά" + +msgid "Japanese" +msgstr "Γιαπωνέζικα" + +msgid "Georgian" +msgstr "Γεωργιανά" + +msgid "Kabyle" +msgstr "Kabyle" + +msgid "Kazakh" +msgstr "Καζακστά" + +msgid "Khmer" +msgstr "Χμερ" + +msgid "Kannada" +msgstr "Κανάντα" + +msgid "Korean" +msgstr "Κορεάτικα" + +msgid "Kyrgyz" +msgstr "Κιργιζικά" + +msgid "Luxembourgish" +msgstr "Λουξεμβουργιανά" + +msgid "Lithuanian" +msgstr "Λιθουανικά" + +msgid "Latvian" +msgstr "Λεττονικά" + +msgid "Macedonian" +msgstr "Μακεδονικά" + +msgid "Malayalam" +msgstr "Μαλαγιαλάμ" + +msgid "Mongolian" +msgstr "Μογγολικά" + +msgid "Marathi" +msgstr "Μαράθι" + +msgid "Malay" +msgstr "" + +msgid "Burmese" +msgstr "Βιρμανικά" + +msgid "Norwegian Bokmål" +msgstr "Νορβηγικά Μποκμάλ" + +msgid "Nepali" +msgstr "Νεπαλέζικα" + +msgid "Dutch" +msgstr "Ολλανδικά" + +msgid "Norwegian Nynorsk" +msgstr "Νορβηγική διάλεκτος Nynorsk - Νεονορβηγική" + +msgid "Ossetic" +msgstr "Οσσετικά" + +msgid "Punjabi" +msgstr "Πουντζάμπι" + +msgid "Polish" +msgstr "Πολωνικά" + +msgid "Portuguese" +msgstr "Πορτογαλικά" + +msgid "Brazilian Portuguese" +msgstr "Πορτογαλικά - διάλεκτος Βραζιλίας" + +msgid "Romanian" +msgstr "Ρουμανικά" + +msgid "Russian" +msgstr "Ρωσικά" + +msgid "Slovak" +msgstr "Σλοβακικά" + +msgid "Slovenian" +msgstr "Σλοβενικά" + +msgid "Albanian" +msgstr "Αλβανικά" + +msgid "Serbian" +msgstr "Σερβικά" + +msgid "Serbian Latin" +msgstr "Σέρβικα Λατινικά" + +msgid "Swedish" +msgstr "Σουηδικά" + +msgid "Swahili" +msgstr "Σουαχίλι" + +msgid "Tamil" +msgstr "Διάλεκτος Ταμίλ" + +msgid "Telugu" +msgstr "Τελούγκου" + +msgid "Tajik" +msgstr "Τατζικικά" + +msgid "Thai" +msgstr "Ταϊλάνδης" + +msgid "Turkmen" +msgstr "Τουρκμενικά" + +msgid "Turkish" +msgstr "Τουρκικά" + +msgid "Tatar" +msgstr "Ταταρικά" + +msgid "Udmurt" +msgstr "Ουντμουρτικά" + +msgid "Ukrainian" +msgstr "Ουκρανικά" + +msgid "Urdu" +msgstr "Urdu" + +msgid "Uzbek" +msgstr "Ουζμπεκικά" + +msgid "Vietnamese" +msgstr "Βιετναμέζικα" + +msgid "Simplified Chinese" +msgstr "Απλοποιημένα Κινέζικα" + +msgid "Traditional Chinese" +msgstr "Παραδοσιακά Κινέζικα" + +msgid "Messages" +msgstr "Μηνύματα" + +msgid "Site Maps" +msgstr "Χάρτες Ιστότοπου" + +msgid "Static Files" +msgstr "Στατικά Αρχεία" + +msgid "Syndication" +msgstr "Syndication" + +#. Translators: String used to replace omitted page numbers in elided page +#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10]. +msgid "…" +msgstr "" + +msgid "That page number is not an integer" +msgstr "Ο αριθμός αυτής της σελίδας δεν είναι ακέραιος" + +msgid "That page number is less than 1" +msgstr "Ο αριθμός αυτής της σελίδας είναι μικρότερος του 1" + +msgid "That page contains no results" +msgstr "Η σελίδα αυτή δεν περιέχει αποτελέσματα" + +msgid "Enter a valid value." +msgstr "Εισάγετε μια έγκυρη τιμή." + +msgid "Enter a valid URL." +msgstr "Εισάγετε ένα έγκυρο URL." + +msgid "Enter a valid integer." +msgstr "Εισάγετε έναν έγκυρο ακέραιο." + +msgid "Enter a valid email address." +msgstr "Εισάγετε μια έγκυρη διεύθυνση ηλ. ταχυδρομείου." + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" +"Εισάγετε ένα 'slug' που να αποτελείται από γράμματα, αριθμούς, παύλες ή κάτω " +"παύλες." + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" +"Εισάγετε ένα 'slug' που να αποτελείται από Unicode γράμματα, παύλες ή κάτω " +"παύλες." + +msgid "Enter a valid IPv4 address." +msgstr "Εισάγετε μια έγκυρη IPv4 διεύθυνση." + +msgid "Enter a valid IPv6 address." +msgstr "Εισάγετε μία έγκυρη IPv6 διεύθυνση" + +msgid "Enter a valid IPv4 or IPv6 address." +msgstr "Εισάγετε μία έγκυρη IPv4 ή IPv6 διεύθυνση" + +msgid "Enter only digits separated by commas." +msgstr "Εισάγετε μόνο ψηφία χωρισμένα με κόμματα." + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "" +"Βεβαιωθείτε ότι η τιμή είναι %(limit_value)s (η τιμή που καταχωρήσατε είναι " +"%(show_value)s)." + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "Βεβαιωθείτε ότι η τιμή είναι μικρότερη ή ίση από %(limit_value)s." + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "Βεβαιωθείτε ότι η τιμή είναι μεγαλύτερη ή ίση από %(limit_value)s." + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Βεβαιωθείται πως η τιμή αυτή έχει τουλάχιστον %(limit_value)d χαρακτήρες " +"(έχει %(show_value)d)." +msgstr[1] "" +"Βεβαιωθείτε πως η τιμή έχει τουλάχιστον %(limit_value)d χαρακτήρες (έχει " +"%(show_value)d)." + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Βεβαιωθείται πως η τιμή αυτή έχει τοπολύ %(limit_value)d χαρακτήρες (έχει " +"%(show_value)d)." +msgstr[1] "" +"Βεβαιωθείτε πως η τιμή έχει το πολύ %(limit_value)d χαρακτήρες (έχει " +"%(show_value)d)." + +msgid "Enter a number." +msgstr "Εισάγετε έναν αριθμό." + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "" +"Σιγουρευτείτε οτι τα σύνολο των ψηφίων δεν είναι παραπάνω από %(max)s" +msgstr[1] "" +"Σιγουρευτείτε οτι τα σύνολο των ψηφίων δεν είναι παραπάνω από %(max)s" + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "Σιγουρευτείτε ότι το δεκαδικό ψηφίο δεν είναι παραπάνω από %(max)s." +msgstr[1] "Σιγουρευτείτε ότι τα δεκαδικά ψηφία δεν είναι παραπάνω από %(max)s." + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "" +"Βεβαιωθείτε ότι δεν υπάρχουν πάνω από %(max)s ψηφία πριν την υποδιαστολή." +msgstr[1] "" +"Βεβαιωθείτε ότι δεν υπάρχουν πάνω από %(max)s ψηφία πριν την υποδιαστολή." + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" +"Η επέκταση '%(extension)s' του αρχείου δεν επιτρέπεται. Οι επιτρεπόμενες " +"επεκτάσεις είναι: '%(allowed_extensions)s'." + +msgid "Null characters are not allowed." +msgstr "Δεν επιτρέπονται null (μηδενικοί) χαρακτήρες" + +msgid "and" +msgstr "και" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "%(model_name)s με αυτή την %(field_labels)s υπάρχει ήδη." + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "Η τιμή %(value)r δεν είναι έγκυρη επιλογή." + +msgid "This field cannot be null." +msgstr "Το πεδίο αυτό δεν μπορεί να είναι μηδενικό (null)." + +msgid "This field cannot be blank." +msgstr "Το πεδίο αυτό δεν μπορεί να είναι κενό." + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "%(model_name)s με αυτό το %(field_label)s υπάρχει ήδη." + +#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'. +#. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" +"%(field_label)s πρέπει να είναι μοναδική για %(date_field_label)s " +"%(lookup_type)s." + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "Πεδίο τύπου: %(field_type)s" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "Η τιμή '%(value)s' πρέπει να είναι True ή False." + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "Η τιμή '%(value)s' πρέπει να είναι True, False, ή None." + +msgid "Boolean (Either True or False)" +msgstr "Boolean (Είτε Αληθές ή Ψευδές)" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "Συμβολοσειρά (μέχρι %(max_length)s)" + +msgid "Comma-separated integers" +msgstr "Ακέραιοι χωρισμένοι με κόμματα" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" +"Η τιμή του '%(value)s' έχει μια λανθασμένη μορφή ημερομηνίας. Η ημερομηνία " +"θα πρέπει να είναι στην μορφή YYYY-MM-DD." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" +"Η τιμή '%(value)s' είναι στην σωστή μορφή (YYYY-MM-DD) αλλά είναι μια " +"λανθασμένη ημερομηνία." + +msgid "Date (without time)" +msgstr "Ημερομηνία (χωρίς την ώρα)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" +"Η τιμή του '%(value)s' έχει μια λανθασμένη μορφή. Η ημερομηνία/ώρα θα πρέπει " +"να είναι στην μορφή YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ]." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" +"Η τιμή '%(value)s' έχει τη σωστή μορφή (YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ]) " +"αλλά δεν αντιστοιχεί σε σωστή ημερομηνία και ώρα." + +msgid "Date (with time)" +msgstr "Ημερομηνία (με ώρα)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "Η τιμή '%(value)s' πρέπει να είναι δεκαδικός αριθμός." + +msgid "Decimal number" +msgstr "Δεκαδικός αριθμός" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" +"Η τιμή '%(value)s' έχει εσφαλμένη μορφή. Πρέπει να είναι της μορφής [DD] " +"[[HH:]MM:]ss[.uuuuuu]." + +msgid "Duration" +msgstr "Διάρκεια" + +msgid "Email address" +msgstr "Ηλεκτρονική διεύθυνση" + +msgid "File path" +msgstr "Τοποθεσία αρχείου" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "Η '%(value)s' τιμή πρέπει να είναι δεκαδικός." + +msgid "Floating point number" +msgstr "Αριθμός κινητής υποδιαστολής" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "Η τιμή '%(value)s' πρέπει να είναι ακέραιος." + +msgid "Integer" +msgstr "Ακέραιος" + +msgid "Big (8 byte) integer" +msgstr "Μεγάλος ακέραιος - big integer (8 bytes)" + +msgid "Small integer" +msgstr "Μικρός ακέραιος" + +msgid "IPv4 address" +msgstr "Διεύθυνση IPv4" + +msgid "IP address" +msgstr "IP διεύθυνση" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "Η τιμή '%(value)s' πρέπει να είναι None, True ή False." + +msgid "Boolean (Either True, False or None)" +msgstr "Boolean (Αληθές, Ψευδές, ή τίποτα)" + +msgid "Positive big integer" +msgstr "Μεγάλος θετικός ακέραιος" + +msgid "Positive integer" +msgstr "Θετικός ακέραιος" + +msgid "Positive small integer" +msgstr "Θετικός μικρός ακέραιος" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "Slug (μέχρι %(max_length)s)" + +msgid "Text" +msgstr "Κείμενο" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" +"Η τιμή '%(value)s' έχει εσφαλμένη μορφή. Πρέπει να είναι της μορφής HH:MM[:" +"ss[.uuuuuu]]." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" +"Η τιμή '%(value)s' έχει τη σωστή μορφή (HH:MM[:ss[.uuuuuu]]) αλλά δεν " +"αντιστοιχή σε σωστή ώρα." + +msgid "Time" +msgstr "Ώρα" + +msgid "URL" +msgstr "URL" + +msgid "Raw binary data" +msgstr "Δυαδικά δεδομένα" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "'%(value)s' δεν είναι ένα έγκυρο UUID." + +msgid "Universally unique identifier" +msgstr "Καθολικά μοναδικό αναγνωριστικό" + +msgid "File" +msgstr "Αρχείο" + +msgid "Image" +msgstr "Εικόνα" + +msgid "A JSON object" +msgstr "Ένα αντικείμενο JSON" + +msgid "Value must be valid JSON." +msgstr "Η τιμή πρέπει να είναι έγκυρο JSON." + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "" +"Το μοντέλο %(model)s με την τιμή %(value)r του πεδίου %(field)s δεν υπάρχει." + +msgid "Foreign Key (type determined by related field)" +msgstr "Foreign Key (ο τύπος καθορίζεται από το πεδίο του συσχετισμού)" + +msgid "One-to-one relationship" +msgstr "Σχέση ένα-προς-ένα" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "σχέση %(from)s-%(to)s" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "σχέσεις %(from)s-%(to)s" + +msgid "Many-to-many relationship" +msgstr "Σχέση πολλά-προς-πολλά" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr ":?.!" + +msgid "This field is required." +msgstr "Αυτό το πεδίο είναι απαραίτητο." + +msgid "Enter a whole number." +msgstr "Εισάγετε έναν ακέραιο αριθμό." + +msgid "Enter a valid date." +msgstr "Εισάγετε μια έγκυρη ημερομηνία." + +msgid "Enter a valid time." +msgstr "Εισάγετε μια έγκυρη ώρα." + +msgid "Enter a valid date/time." +msgstr "Εισάγετε μια έγκυρη ημερομηνία/ώρα." + +msgid "Enter a valid duration." +msgstr "Εισάγετε μια έγκυρη διάρκεια." + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "Ο αριθμός των ημερών πρέπει να είναι μεταξύ {min_days} και {max_days}." + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "" +"Δεν έχει υποβληθεί κάποιο αρχείο. Ελέγξτε τον τύπο κωδικοποίησης στη φόρμα." + +msgid "No file was submitted." +msgstr "Δεν υποβλήθηκε κάποιο αρχείο." + +msgid "The submitted file is empty." +msgstr "Το αρχείο που υποβλήθηκε είναι κενό." + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" +"Βεβαιωθείται πως το όνομα του αρχείου έχει το πολύ %(max)d χαρακτήρα (το " +"παρόν έχει %(length)d)." +msgstr[1] "" +"Βεβαιωθείται πως το όνομα του αρχείου έχει το πολύ %(max)d χαρακτήρα (το " +"παρόν έχει %(length)d)." + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "" +"Βεβαιωθείτε ότι είτε έχετε επιλέξει ένα αρχείο για αποστολή είτε έχετε " +"επιλέξει την εκκαθάριση του πεδίου. Δεν είναι δυνατή η επιλογή και των δύο " +"ταυτοχρόνως." + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" +"Βεβαιωθείτε ότι το αρχείο που έχετε επιλέξει για αποστολή είναι αρχείο " +"εικόνας. Το τρέχον είτε δεν ήταν εικόνα είτε έχει υποστεί φθορά." + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "" +"Βεβαιωθείτε ότι έχετε επιλέξει μία έγκυρη επιλογή. Η τιμή %(value)s δεν " +"είναι διαθέσιμη προς επιλογή." + +msgid "Enter a list of values." +msgstr "Εισάγετε μια λίστα τιμών." + +msgid "Enter a complete value." +msgstr "Εισάγετε μια πλήρης τιμή" + +msgid "Enter a valid UUID." +msgstr "Εισάγετε μια έγκυρη UUID." + +msgid "Enter a valid JSON." +msgstr "Εισάγετε ένα έγκυρο JSON." + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr ":" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "(Κρυφό πεδίο %(name)s) %(error)s" + +#, python-format +msgid "" +"ManagementForm data is missing or has been tampered with. Missing fields: " +"%(field_names)s. You may need to file a bug report if the issue persists." +msgstr "" + +#, python-format +msgid "Please submit at most %d form." +msgid_plural "Please submit at most %d forms." +msgstr[0] "Παρακαλώ υποβάλλετε το πολύ %d φόρμα." +msgstr[1] "Παρακαλώ υποβάλλετε το πολύ %d φόρμες." + +#, python-format +msgid "Please submit at least %d form." +msgid_plural "Please submit at least %d forms." +msgstr[0] "Παρακαλώ υποβάλλετε τουλάχιστον %d φόρμα." +msgstr[1] "Παρακαλώ υποβάλλετε τουλάχιστον %d φόρμες." + +msgid "Order" +msgstr "Ταξινόμηση" + +msgid "Delete" +msgstr "Διαγραφή" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "Στο %(field)s έχετε ξαναεισάγει τα ίδια δεδομένα." + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "" +"Στο %(field)s έχετε ξαναεισάγει τα ίδια δεδομένα. Θα πρέπει να εμφανίζονται " +"μία φορά. " + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"Στο %(field_name)s έχετε ξαναεισάγει τα ίδια δεδομένα. Θα πρέπει να " +"εμφανίζονται μία φορά για το %(lookup)s στο %(date_field)s." + +msgid "Please correct the duplicate values below." +msgstr "Έχετε ξαναεισάγει την ίδια τιμη. Βεβαιωθείτε ότι είναι μοναδική." + +msgid "The inline value did not match the parent instance." +msgstr "Η τιμή δεν είναι ίση με την αντίστοιχη τιμή του γονικού object." + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "" +"Επιλέξτε μια έγκυρη επιλογή. Η επιλογή αυτή δεν είναι μία από τις διαθέσιμες " +"επιλογές." + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "\"%(pk)s\" δεν είναι έγκυρη τιμή." + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" +"Η ημερομηνία %(datetime)s δεν μπόρεσε να μετατραπεί στην ζώνη ώρας " +"%(current_timezone)s. Ίσως να είναι ασαφής ή να μην υπάρχει." + +msgid "Clear" +msgstr "Εκκαθάριση" + +msgid "Currently" +msgstr "Τώρα" + +msgid "Change" +msgstr "Επεξεργασία" + +msgid "Unknown" +msgstr "Άγνωστο" + +msgid "Yes" +msgstr "Ναι" + +msgid "No" +msgstr "Όχι" + +#. Translators: Please do not add spaces around commas. +msgid "yes,no,maybe" +msgstr "ναι,όχι,ίσως" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)d bytes" +msgstr[1] "%(size)d bytes" + +#, python-format +msgid "%s KB" +msgstr "%s KB" + +#, python-format +msgid "%s MB" +msgstr "%s MB" + +#, python-format +msgid "%s GB" +msgstr "%s GB" + +#, python-format +msgid "%s TB" +msgstr "%s TB" + +#, python-format +msgid "%s PB" +msgstr "%s PB" + +msgid "p.m." +msgstr "μμ." + +msgid "a.m." +msgstr "πμ." + +msgid "PM" +msgstr "ΜΜ" + +msgid "AM" +msgstr "ΠΜ" + +msgid "midnight" +msgstr "μεσάνυχτα" + +msgid "noon" +msgstr "μεσημέρι" + +msgid "Monday" +msgstr "Δευτέρα" + +msgid "Tuesday" +msgstr "Τρίτη" + +msgid "Wednesday" +msgstr "Τετάρτη" + +msgid "Thursday" +msgstr "Πέμπτη" + +msgid "Friday" +msgstr "Παρασκευή" + +msgid "Saturday" +msgstr "Σάββατο" + +msgid "Sunday" +msgstr "Κυριακή" + +msgid "Mon" +msgstr "Δευ" + +msgid "Tue" +msgstr "Τρί" + +msgid "Wed" +msgstr "Τετ" + +msgid "Thu" +msgstr "Πέμ" + +msgid "Fri" +msgstr "Παρ" + +msgid "Sat" +msgstr "Σαβ" + +msgid "Sun" +msgstr "Κυρ" + +msgid "January" +msgstr "Ιανουάριος" + +msgid "February" +msgstr "Φεβρουάριος" + +msgid "March" +msgstr "Μάρτιος" + +msgid "April" +msgstr "Απρίλιος" + +msgid "May" +msgstr "Μάιος" + +msgid "June" +msgstr "Ιούνιος" + +msgid "July" +msgstr "Ιούλιος" + +msgid "August" +msgstr "Αύγουστος" + +msgid "September" +msgstr "Σεπτέμβριος" + +msgid "October" +msgstr "Οκτώβριος" + +msgid "November" +msgstr "Νοέμβριος" + +msgid "December" +msgstr "Δεκέμβριος" + +msgid "jan" +msgstr "Ιαν" + +msgid "feb" +msgstr "Φεβ" + +msgid "mar" +msgstr "Μάρ" + +msgid "apr" +msgstr "Απρ" + +msgid "may" +msgstr "Μάι" + +msgid "jun" +msgstr "Ιούν" + +msgid "jul" +msgstr "Ιούλ" + +msgid "aug" +msgstr "Αύγ" + +msgid "sep" +msgstr "Σεπ" + +msgid "oct" +msgstr "Οκτ" + +msgid "nov" +msgstr "Νοέ" + +msgid "dec" +msgstr "Δεκ" + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "Ιαν." + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "Φεβ." + +msgctxt "abbrev. month" +msgid "March" +msgstr "Μάρτιος" + +msgctxt "abbrev. month" +msgid "April" +msgstr "Απρίλ." + +msgctxt "abbrev. month" +msgid "May" +msgstr "Μάιος" + +msgctxt "abbrev. month" +msgid "June" +msgstr "Ιούν." + +msgctxt "abbrev. month" +msgid "July" +msgstr "Ιούλ." + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "Αύγ." + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "Σεπτ." + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "Οκτ." + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "Νοέμ." + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "Δεκ." + +msgctxt "alt. month" +msgid "January" +msgstr "Ιανουαρίου" + +msgctxt "alt. month" +msgid "February" +msgstr "Φεβρουαρίου" + +msgctxt "alt. month" +msgid "March" +msgstr "Μαρτίου" + +msgctxt "alt. month" +msgid "April" +msgstr "Απριλίου" + +msgctxt "alt. month" +msgid "May" +msgstr "Μαΐου" + +msgctxt "alt. month" +msgid "June" +msgstr "Ιουνίου" + +msgctxt "alt. month" +msgid "July" +msgstr "Ιουλίου" + +msgctxt "alt. month" +msgid "August" +msgstr "Αυγούστου" + +msgctxt "alt. month" +msgid "September" +msgstr "Σεπτεμβρίου" + +msgctxt "alt. month" +msgid "October" +msgstr "Οκτωβρίου" + +msgctxt "alt. month" +msgid "November" +msgstr "Νοεμβρίου" + +msgctxt "alt. month" +msgid "December" +msgstr "Δεκεμβρίου" + +msgid "This is not a valid IPv6 address." +msgstr "Αυτή δεν είναι έγκυρη διεύθυνση IPv6." + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "%(truncated_text)s…" + +msgid "or" +msgstr "ή" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr ", " + +#, python-format +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "" +msgstr[1] "" + +msgid "Forbidden" +msgstr "Απαγορευμένο" + +msgid "CSRF verification failed. Request aborted." +msgstr "Η πιστοποίηση CSRF απέτυχε. Το αίτημα ματαιώθηκε." + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" +"Αν οι 'Referer' headers είναι απενεργοποιημένοι στον browser σας από εσάς, " +"παρακαλούμε να τους ξανά-ενεργοποιήσετε, τουλάχιστον για αυτό το site ή για " +"τις συνδέσεις HTTPS ή για τα 'same-origin' requests." + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" +"Αν χρησιμοποιείτε την ετικέτα ή συμπεριλαμβάνετε την κεφαλίδα (header) 'Referrer-Policy: no-referrer', " +"παρακαλούμε αφαιρέστε τα. Η προστασία CSRF απαιτεί την κεφαλίδα 'Referer' να " +"κάνει αυστηρό έλεγχο στον referer. Αν κύριο μέλημα σας είναι η ιδιωτικότητα, " +"σκεφτείτε να χρησιμοποιήσετε εναλλακτικές μεθόδους όπως για συνδέσμους από άλλες ιστοσελίδες." + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" +"Βλέπετε αυτό το μήνυμα επειδή αυτή η σελίδα απαιτεί ένα CSRF cookie, όταν " +"κατατίθενται φόρμες. Αυτό το cookie είναι απαραίτητο για λόγους ασφαλείας, " +"για να εξασφαλιστεί ότι ο browser δεν έχει γίνει hijacked από τρίτους." + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" +"Αν τα cookies είναι απενεργοποιημένα στον browser σας από εσάς, παρακαλούμε " +"να τα ξανά-ενεργοποιήσετε, τουλάχιστον για αυτό το site ή για τα 'same-" +"origin' requests." + +msgid "More information is available with DEBUG=True." +msgstr "Περισσότερες πληροφορίες είναι διαθέσιμες με DEBUG=True." + +msgid "No year specified" +msgstr "Δεν έχει οριστεί χρονιά" + +msgid "Date out of range" +msgstr "Ημερομηνία εκτός εύρους" + +msgid "No month specified" +msgstr "Δεν έχει οριστεί μήνας" + +msgid "No day specified" +msgstr "Δεν έχει οριστεί μέρα" + +msgid "No week specified" +msgstr "Δεν έχει οριστεί εβδομάδα" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "Δεν υπάρχουν διαθέσιμα %(verbose_name_plural)s" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" +"Μελλοντικά %(verbose_name_plural)s δεν είναι διαθέσιμα διότι δεν έχει τεθεί " +"το %(class_name)s.allow_future." + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "" +"Λανθασμένη μορφή ημερομηνίας '%(datestr)s' για την επιλεγμένη μορφή " +"'%(format)s'" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "Δεν βρέθηκαν %(verbose_name)s που να ικανοποιούν την αναζήτηση." + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "" +"Η σελίδα δεν έχει την τιμή 'last' υποδηλώνοντας την τελευταία σελίδα, ούτε " +"μπορεί να μετατραπεί σε ακέραιο." + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "Άκυρη σελίδα (%(page_number)s): %(message)s" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "Άδεια λίστα και το \"%(class_name)s.allow_empty\" είναι False." + +msgid "Directory indexes are not allowed here." +msgstr "Τα ευρετήρια καταλόγων δεν επιτρέπονται εδώ." + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "Το \"%(path)s\" δεν υπάρχει" + +#, python-format +msgid "Index of %(directory)s" +msgstr "Ευρετήριο του %(directory)s" + +msgid "The install worked successfully! Congratulations!" +msgstr "Η εγκατάσταση δούλεψε με επιτυχία! Συγχαρητήρια!" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" +"Δείτε τις σημειώσεις κυκλοφορίας για το " +"Django %(version)s" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not configured any " +"URLs." +msgstr "" +"Βλέπετε αυτό το μήνυμα επειδή έχετε DEBUG=True στο αρχείο settings και δεν έχετε ρυθμίσει κανένα URL στο " +"αρχείο urls.py. Στρωθείτε στην δουλειά!" + +msgid "Django Documentation" +msgstr "Εγχειρίδιο Django" + +msgid "Topics, references, & how-to’s" +msgstr "Θέματα, αναφορές & \"πως να...\"" + +msgid "Tutorial: A Polling App" +msgstr "Εγχειρίδιο: Ένα App Ψηφοφορίας" + +msgid "Get started with Django" +msgstr "Ξεκινήστε με το Django" + +msgid "Django Community" +msgstr "Κοινότητα Django" + +msgid "Connect, get help, or contribute" +msgstr "Συνδεθείτε, λάβετε βοήθεια, ή συνεισφέρετε" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/el/__init__.py b/venv/lib/python3.12/site-packages/django/conf/locale/el/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/el/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/el/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6560b00ee07787da16a3181486a98b3a65c0aac3 GIT binary patch literal 198 zcmX@j%ge<81o5sX(m?cM5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!O4ZNE&rQ|OP0Yy6 zFHO;RNiEZNN=(kybEFQ_cZ$j>v@Gc?jK&MZmQEdVM^ zOiwM=Pssu+OwP|s)6dCIPRvQwPtDPfkI&4@EQycTE2#X%VUwGmQks)$SHudml@W-G PL5z>gjEsy$%s>_Z#M3l< literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/el/__pycache__/formats.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/el/__pycache__/formats.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..aaea20fff0864831671bb083793ca26592d7434e GIT binary patch literal 827 zcmZXRF>l&X5XYY}1TZ1Q4$!n&=->e<@YH0Bs;W*g0kyV~Z4}vy$Ouhlx$3WCP1KhlJEZad-uPy<=^Qv1@JNWU+q6p0RD!>>O_{}@go-B z0RlQegifG{9zmo|qNpClEQaeH6w~7!fOdWmdIIM-&PkNeDU{Sxh|+f_sp75|L(qX* zKs3DgLKPYwSuJQDc~hv~hr5cTmtYZO9mr~HHNi?Nu}+Ca#iU2C?h9<~j1|sU#ml}x zWw!0@ZPT@J^3wQ>HjPV)jmzzu#{bciaf{B0<2g~jC-HZQ#dMIWa4K(9C0XFqAf?uY zb&&~gHUX{ioNNe^sMc17{imwJX)8i2HAz;D&8fL(v^B0;mzA(nGo-3<$@8BBW?`#~ zji$Psrv&-+Yix76!hfm@+!sUP8=TCkk{mEEfSlM71u_>JMvT-3x%|>0k_z51v zUphyy>pB*6%&z0!B3QA;@Z4;DE%7}BuWYl|apBnNjiG&g1^bgx*X^B_-<`nW^~fsq zaiiI>h7jE>8e49!4Q;n&+7`5I*mehwIU1JxlX>F3)0B0xB&q0w_}K)qVuH1Y-7m!Y=xZ< z2^P`11|GIHLglr{md_PT1DeDx%uGTp#!^i{Dn3G8Y9)tKNy#Ft@YD4@_nriqgPI7H z>q$P8WA>g*Oi%?wu{Ftu|M?=J`QReit+5CdzqBaHwl1#44bpwZfIi6?w_ylTR)bkViO(Y2`8CPYlPFV!Oyd#~T*9Rrk9`^J&gqIh#D8~gzx CN@0=! literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/en/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/conf/locale/en/LC_MESSAGES/django.po new file mode 100644 index 0000000000..b47726e67a --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/en/LC_MESSAGES/django.po @@ -0,0 +1,1614 @@ +# This file is distributed under the same license as the Django package. +# +msgid "" +msgstr "" +"Project-Id-Version: Django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-05-22 11:46-0300\n" +"PO-Revision-Date: 2010-05-13 15:35+0200\n" +"Last-Translator: Django team\n" +"Language-Team: English \n" +"Language: en\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: conf/global_settings.py:52 +msgid "Afrikaans" +msgstr "" + +#: conf/global_settings.py:53 +msgid "Arabic" +msgstr "" + +#: conf/global_settings.py:54 +msgid "Algerian Arabic" +msgstr "" + +#: conf/global_settings.py:55 +msgid "Asturian" +msgstr "" + +#: conf/global_settings.py:56 +msgid "Azerbaijani" +msgstr "" + +#: conf/global_settings.py:57 +msgid "Bulgarian" +msgstr "" + +#: conf/global_settings.py:58 +msgid "Belarusian" +msgstr "" + +#: conf/global_settings.py:59 +msgid "Bengali" +msgstr "" + +#: conf/global_settings.py:60 +msgid "Breton" +msgstr "" + +#: conf/global_settings.py:61 +msgid "Bosnian" +msgstr "" + +#: conf/global_settings.py:62 +msgid "Catalan" +msgstr "" + +#: conf/global_settings.py:63 +msgid "Central Kurdish (Sorani)" +msgstr "" + +#: conf/global_settings.py:64 +msgid "Czech" +msgstr "" + +#: conf/global_settings.py:65 +msgid "Welsh" +msgstr "" + +#: conf/global_settings.py:66 +msgid "Danish" +msgstr "" + +#: conf/global_settings.py:67 +msgid "German" +msgstr "" + +#: conf/global_settings.py:68 +msgid "Lower Sorbian" +msgstr "" + +#: conf/global_settings.py:69 +msgid "Greek" +msgstr "" + +#: conf/global_settings.py:70 +msgid "English" +msgstr "" + +#: conf/global_settings.py:71 +msgid "Australian English" +msgstr "" + +#: conf/global_settings.py:72 +msgid "British English" +msgstr "" + +#: conf/global_settings.py:73 +msgid "Esperanto" +msgstr "" + +#: conf/global_settings.py:74 +msgid "Spanish" +msgstr "" + +#: conf/global_settings.py:75 +msgid "Argentinian Spanish" +msgstr "" + +#: conf/global_settings.py:76 +msgid "Colombian Spanish" +msgstr "" + +#: conf/global_settings.py:77 +msgid "Mexican Spanish" +msgstr "" + +#: conf/global_settings.py:78 +msgid "Nicaraguan Spanish" +msgstr "" + +#: conf/global_settings.py:79 +msgid "Venezuelan Spanish" +msgstr "" + +#: conf/global_settings.py:80 +msgid "Estonian" +msgstr "" + +#: conf/global_settings.py:81 +msgid "Basque" +msgstr "" + +#: conf/global_settings.py:82 +msgid "Persian" +msgstr "" + +#: conf/global_settings.py:83 +msgid "Finnish" +msgstr "" + +#: conf/global_settings.py:84 +msgid "French" +msgstr "" + +#: conf/global_settings.py:85 +msgid "Frisian" +msgstr "" + +#: conf/global_settings.py:86 +msgid "Irish" +msgstr "" + +#: conf/global_settings.py:87 +msgid "Scottish Gaelic" +msgstr "" + +#: conf/global_settings.py:88 +msgid "Galician" +msgstr "" + +#: conf/global_settings.py:89 +msgid "Hebrew" +msgstr "" + +#: conf/global_settings.py:90 +msgid "Hindi" +msgstr "" + +#: conf/global_settings.py:91 +msgid "Croatian" +msgstr "" + +#: conf/global_settings.py:92 +msgid "Upper Sorbian" +msgstr "" + +#: conf/global_settings.py:93 +msgid "Hungarian" +msgstr "" + +#: conf/global_settings.py:94 +msgid "Armenian" +msgstr "" + +#: conf/global_settings.py:95 +msgid "Interlingua" +msgstr "" + +#: conf/global_settings.py:96 +msgid "Indonesian" +msgstr "" + +#: conf/global_settings.py:97 +msgid "Igbo" +msgstr "" + +#: conf/global_settings.py:98 +msgid "Ido" +msgstr "" + +#: conf/global_settings.py:99 +msgid "Icelandic" +msgstr "" + +#: conf/global_settings.py:100 +msgid "Italian" +msgstr "" + +#: conf/global_settings.py:101 +msgid "Japanese" +msgstr "" + +#: conf/global_settings.py:102 +msgid "Georgian" +msgstr "" + +#: conf/global_settings.py:103 +msgid "Kabyle" +msgstr "" + +#: conf/global_settings.py:104 +msgid "Kazakh" +msgstr "" + +#: conf/global_settings.py:105 +msgid "Khmer" +msgstr "" + +#: conf/global_settings.py:106 +msgid "Kannada" +msgstr "" + +#: conf/global_settings.py:107 +msgid "Korean" +msgstr "" + +#: conf/global_settings.py:108 +msgid "Kyrgyz" +msgstr "" + +#: conf/global_settings.py:109 +msgid "Luxembourgish" +msgstr "" + +#: conf/global_settings.py:110 +msgid "Lithuanian" +msgstr "" + +#: conf/global_settings.py:111 +msgid "Latvian" +msgstr "" + +#: conf/global_settings.py:112 +msgid "Macedonian" +msgstr "" + +#: conf/global_settings.py:113 +msgid "Malayalam" +msgstr "" + +#: conf/global_settings.py:114 +msgid "Mongolian" +msgstr "" + +#: conf/global_settings.py:115 +msgid "Marathi" +msgstr "" + +#: conf/global_settings.py:116 +msgid "Malay" +msgstr "" + +#: conf/global_settings.py:117 +msgid "Burmese" +msgstr "" + +#: conf/global_settings.py:118 +msgid "Norwegian Bokmål" +msgstr "" + +#: conf/global_settings.py:119 +msgid "Nepali" +msgstr "" + +#: conf/global_settings.py:120 +msgid "Dutch" +msgstr "" + +#: conf/global_settings.py:121 +msgid "Norwegian Nynorsk" +msgstr "" + +#: conf/global_settings.py:122 +msgid "Ossetic" +msgstr "" + +#: conf/global_settings.py:123 +msgid "Punjabi" +msgstr "" + +#: conf/global_settings.py:124 +msgid "Polish" +msgstr "" + +#: conf/global_settings.py:125 +msgid "Portuguese" +msgstr "" + +#: conf/global_settings.py:126 +msgid "Brazilian Portuguese" +msgstr "" + +#: conf/global_settings.py:127 +msgid "Romanian" +msgstr "" + +#: conf/global_settings.py:128 +msgid "Russian" +msgstr "" + +#: conf/global_settings.py:129 +msgid "Slovak" +msgstr "" + +#: conf/global_settings.py:130 +msgid "Slovenian" +msgstr "" + +#: conf/global_settings.py:131 +msgid "Albanian" +msgstr "" + +#: conf/global_settings.py:132 +msgid "Serbian" +msgstr "" + +#: conf/global_settings.py:133 +msgid "Serbian Latin" +msgstr "" + +#: conf/global_settings.py:134 +msgid "Swedish" +msgstr "" + +#: conf/global_settings.py:135 +msgid "Swahili" +msgstr "" + +#: conf/global_settings.py:136 +msgid "Tamil" +msgstr "" + +#: conf/global_settings.py:137 +msgid "Telugu" +msgstr "" + +#: conf/global_settings.py:138 +msgid "Tajik" +msgstr "" + +#: conf/global_settings.py:139 +msgid "Thai" +msgstr "" + +#: conf/global_settings.py:140 +msgid "Turkmen" +msgstr "" + +#: conf/global_settings.py:141 +msgid "Turkish" +msgstr "" + +#: conf/global_settings.py:142 +msgid "Tatar" +msgstr "" + +#: conf/global_settings.py:143 +msgid "Udmurt" +msgstr "" + +#: conf/global_settings.py:144 +msgid "Uyghur" +msgstr "" + +#: conf/global_settings.py:145 +msgid "Ukrainian" +msgstr "" + +#: conf/global_settings.py:146 +msgid "Urdu" +msgstr "" + +#: conf/global_settings.py:147 +msgid "Uzbek" +msgstr "" + +#: conf/global_settings.py:148 +msgid "Vietnamese" +msgstr "" + +#: conf/global_settings.py:149 +msgid "Simplified Chinese" +msgstr "" + +#: conf/global_settings.py:150 +msgid "Traditional Chinese" +msgstr "" + +#: contrib/messages/apps.py:15 +msgid "Messages" +msgstr "" + +#: contrib/sitemaps/apps.py:8 +msgid "Site Maps" +msgstr "" + +#: contrib/staticfiles/apps.py:9 +msgid "Static Files" +msgstr "" + +#: contrib/syndication/apps.py:7 +msgid "Syndication" +msgstr "" + +#. Translators: String used to replace omitted page numbers in elided page +#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10]. +#: core/paginator.py:30 +msgid "…" +msgstr "" + +#: core/paginator.py:32 +msgid "That page number is not an integer" +msgstr "" + +#: core/paginator.py:33 +msgid "That page number is less than 1" +msgstr "" + +#: core/paginator.py:34 +msgid "That page contains no results" +msgstr "" + +#: core/validators.py:22 +msgid "Enter a valid value." +msgstr "" + +#: core/validators.py:70 +msgid "Enter a valid domain name." +msgstr "" + +#: core/validators.py:104 forms/fields.py:759 +msgid "Enter a valid URL." +msgstr "" + +#: core/validators.py:165 +msgid "Enter a valid integer." +msgstr "" + +#: core/validators.py:176 +msgid "Enter a valid email address." +msgstr "" + +#. Translators: "letters" means latin letters: a-z and A-Z. +#: core/validators.py:259 +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" + +#: core/validators.py:267 +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" + +#: core/validators.py:327 core/validators.py:336 core/validators.py:350 +#: db/models/fields/__init__.py:2219 +#, python-format +msgid "Enter a valid %(protocol)s address." +msgstr "" + +#: core/validators.py:329 +msgid "IPv4" +msgstr "" + +#: core/validators.py:338 utils/ipv6.py:30 +msgid "IPv6" +msgstr "" + +#: core/validators.py:352 +msgid "IPv4 or IPv6" +msgstr "" + +#: core/validators.py:341 +msgid "Enter only digits separated by commas." +msgstr "" + +#: core/validators.py:347 +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "" + +#: core/validators.py:382 +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "" + +#: core/validators.py:391 +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "" + +#: core/validators.py:400 +#, python-format +msgid "Ensure this value is a multiple of step size %(limit_value)s." +msgstr "" + +#: core/validators.py:407 +#, python-format +msgid "" +"Ensure this value is a multiple of step size %(limit_value)s, starting from " +"%(offset)s, e.g. %(offset)s, %(valid_value1)s, %(valid_value2)s, and so on." +msgstr "" + +#: core/validators.py:439 +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +msgstr[1] "" + +#: core/validators.py:457 +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +msgstr[1] "" + +#: core/validators.py:480 forms/fields.py:354 forms/fields.py:393 +msgid "Enter a number." +msgstr "" + +#: core/validators.py:482 +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "" +msgstr[1] "" + +#: core/validators.py:487 +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "" +msgstr[1] "" + +#: core/validators.py:492 +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "" +msgstr[1] "" + +#: core/validators.py:563 +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" + +#: core/validators.py:624 +msgid "Null characters are not allowed." +msgstr "" + +#: db/models/base.py:1465 forms/models.py:902 +msgid "and" +msgstr "" + +#: db/models/base.py:1467 +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "" + +#: db/models/constraints.py:20 +#, python-format +msgid "Constraint “%(name)s” is violated." +msgstr "" + +#: db/models/fields/__init__.py:128 +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "" + +#: db/models/fields/__init__.py:129 +msgid "This field cannot be null." +msgstr "" + +#: db/models/fields/__init__.py:130 +msgid "This field cannot be blank." +msgstr "" + +#: db/models/fields/__init__.py:131 +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "" + +#. Translators: The 'lookup_type' is one of 'date', 'year' or +#. 'month'. Eg: "Title must be unique for pub_date year" +#: db/models/fields/__init__.py:135 +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" + +#: db/models/fields/__init__.py:174 +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "" + +#: db/models/fields/__init__.py:1157 +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "" + +#: db/models/fields/__init__.py:1158 +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "" + +#: db/models/fields/__init__.py:1160 +msgid "Boolean (Either True or False)" +msgstr "" + +#: db/models/fields/__init__.py:1210 +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "" + +#: db/models/fields/__init__.py:1212 +msgid "String (unlimited)" +msgstr "" + +#: db/models/fields/__init__.py:1316 +msgid "Comma-separated integers" +msgstr "" + +#: db/models/fields/__init__.py:1417 +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" + +#: db/models/fields/__init__.py:1421 db/models/fields/__init__.py:1556 +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" + +#: db/models/fields/__init__.py:1425 +msgid "Date (without time)" +msgstr "" + +#: db/models/fields/__init__.py:1552 +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" + +#: db/models/fields/__init__.py:1560 +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" + +#: db/models/fields/__init__.py:1565 +msgid "Date (with time)" +msgstr "" + +#: db/models/fields/__init__.py:1689 +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "" + +#: db/models/fields/__init__.py:1691 +msgid "Decimal number" +msgstr "" + +#: db/models/fields/__init__.py:1852 +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" + +#: db/models/fields/__init__.py:1856 +msgid "Duration" +msgstr "" + +#: db/models/fields/__init__.py:1908 +msgid "Email address" +msgstr "" + +#: db/models/fields/__init__.py:1933 +msgid "File path" +msgstr "" + +#: db/models/fields/__init__.py:2011 +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "" + +#: db/models/fields/__init__.py:2013 +msgid "Floating point number" +msgstr "" + +#: db/models/fields/__init__.py:2053 +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "" + +#: db/models/fields/__init__.py:2055 +msgid "Integer" +msgstr "" + +#: db/models/fields/__init__.py:2151 +msgid "Big (8 byte) integer" +msgstr "" + +#: db/models/fields/__init__.py:2168 +msgid "Small integer" +msgstr "" + +#: db/models/fields/__init__.py:2176 +msgid "IPv4 address" +msgstr "" + +#: db/models/fields/__init__.py:2207 +msgid "IP address" +msgstr "" + +#: db/models/fields/__init__.py:2300 db/models/fields/__init__.py:2301 +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "" + +#: db/models/fields/__init__.py:2303 +msgid "Boolean (Either True, False or None)" +msgstr "" + +#: db/models/fields/__init__.py:2354 +msgid "Positive big integer" +msgstr "" + +#: db/models/fields/__init__.py:2369 +msgid "Positive integer" +msgstr "" + +#: db/models/fields/__init__.py:2384 +msgid "Positive small integer" +msgstr "" + +#: db/models/fields/__init__.py:2400 +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "" + +#: db/models/fields/__init__.py:2436 +msgid "Text" +msgstr "" + +#: db/models/fields/__init__.py:2511 +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" + +#: db/models/fields/__init__.py:2515 +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" + +#: db/models/fields/__init__.py:2519 +msgid "Time" +msgstr "" + +#: db/models/fields/__init__.py:2627 +msgid "URL" +msgstr "" + +#: db/models/fields/__init__.py:2651 +msgid "Raw binary data" +msgstr "" + +#: db/models/fields/__init__.py:2716 +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "" + +#: db/models/fields/__init__.py:2718 +msgid "Universally unique identifier" +msgstr "" + +#: db/models/fields/files.py:232 +msgid "File" +msgstr "" + +#: db/models/fields/files.py:393 +msgid "Image" +msgstr "" + +#: db/models/fields/json.py:26 +msgid "A JSON object" +msgstr "" + +#: db/models/fields/json.py:28 +msgid "Value must be valid JSON." +msgstr "" + +#: db/models/fields/related.py:939 +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "" + +#: db/models/fields/related.py:941 +msgid "Foreign Key (type determined by related field)" +msgstr "" + +#: db/models/fields/related.py:1235 +msgid "One-to-one relationship" +msgstr "" + +#: db/models/fields/related.py:1292 +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "" + +#: db/models/fields/related.py:1294 +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "" + +#: db/models/fields/related.py:1342 +msgid "Many-to-many relationship" +msgstr "" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the label +#: forms/boundfield.py:185 +msgid ":?.!" +msgstr "" + +#: forms/fields.py:94 +msgid "This field is required." +msgstr "" + +#: forms/fields.py:303 +msgid "Enter a whole number." +msgstr "" + +#: forms/fields.py:474 forms/fields.py:1246 +msgid "Enter a valid date." +msgstr "" + +#: forms/fields.py:497 forms/fields.py:1247 +msgid "Enter a valid time." +msgstr "" + +#: forms/fields.py:524 +msgid "Enter a valid date/time." +msgstr "" + +#: forms/fields.py:558 +msgid "Enter a valid duration." +msgstr "" + +#: forms/fields.py:559 +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "" + +#: forms/fields.py:628 +msgid "No file was submitted. Check the encoding type on the form." +msgstr "" + +#: forms/fields.py:629 +msgid "No file was submitted." +msgstr "" + +#: forms/fields.py:630 +msgid "The submitted file is empty." +msgstr "" + +#: forms/fields.py:632 +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" +msgstr[1] "" + +#: forms/fields.py:637 +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "" + +#: forms/fields.py:701 +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" + +#: forms/fields.py:868 forms/fields.py:954 forms/models.py:1581 +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "" + +#: forms/fields.py:956 forms/fields.py:1075 forms/models.py:1579 +msgid "Enter a list of values." +msgstr "" + +#: forms/fields.py:1076 +msgid "Enter a complete value." +msgstr "" + +#: forms/fields.py:1315 +msgid "Enter a valid UUID." +msgstr "" + +#: forms/fields.py:1345 +msgid "Enter a valid JSON." +msgstr "" + +#. Translators: This is the default suffix added to form field labels +#: forms/forms.py:94 +msgid ":" +msgstr "" + +#: forms/forms.py:231 +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "" + +#: forms/formsets.py:61 +#, python-format +msgid "" +"ManagementForm data is missing or has been tampered with. Missing fields: " +"%(field_names)s. You may need to file a bug report if the issue persists." +msgstr "" + +#: forms/formsets.py:65 +#, python-format +msgid "Please submit at most %(num)d form." +msgid_plural "Please submit at most %(num)d forms." +msgstr[0] "" +msgstr[1] "" + +#: forms/formsets.py:70 +#, python-format +msgid "Please submit at least %(num)d form." +msgid_plural "Please submit at least %(num)d forms." +msgstr[0] "" +msgstr[1] "" + +#: forms/formsets.py:484 forms/formsets.py:491 +msgid "Order" +msgstr "" + +#: forms/formsets.py:499 +msgid "Delete" +msgstr "" + +#: forms/models.py:895 +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "" + +#: forms/models.py:900 +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "" + +#: forms/models.py:907 +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" + +#: forms/models.py:916 +msgid "Please correct the duplicate values below." +msgstr "" + +#: forms/models.py:1353 +msgid "The inline value did not match the parent instance." +msgstr "" + +#: forms/models.py:1444 +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "" + +#: forms/models.py:1583 +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "" + +#: forms/utils.py:227 +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" + +#: forms/widgets.py:457 +msgid "Clear" +msgstr "" + +#: forms/widgets.py:458 +msgid "Currently" +msgstr "" + +#: forms/widgets.py:459 +msgid "Change" +msgstr "" + +#: forms/widgets.py:796 +msgid "Unknown" +msgstr "" + +#: forms/widgets.py:797 +msgid "Yes" +msgstr "" + +#: forms/widgets.py:798 +msgid "No" +msgstr "" + +#. Translators: Please do not add spaces around commas. +#: template/defaultfilters.py:875 +msgid "yes,no,maybe" +msgstr "" + +#: template/defaultfilters.py:905 template/defaultfilters.py:922 +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "" +msgstr[1] "" + +#: template/defaultfilters.py:924 +#, python-format +msgid "%s KB" +msgstr "" + +#: template/defaultfilters.py:926 +#, python-format +msgid "%s MB" +msgstr "" + +#: template/defaultfilters.py:928 +#, python-format +msgid "%s GB" +msgstr "" + +#: template/defaultfilters.py:930 +#, python-format +msgid "%s TB" +msgstr "" + +#: template/defaultfilters.py:932 +#, python-format +msgid "%s PB" +msgstr "" + +#: utils/dateformat.py:73 +msgid "p.m." +msgstr "" + +#: utils/dateformat.py:74 +msgid "a.m." +msgstr "" + +#: utils/dateformat.py:79 +msgid "PM" +msgstr "" + +#: utils/dateformat.py:80 +msgid "AM" +msgstr "" + +#: utils/dateformat.py:152 +msgid "midnight" +msgstr "" + +#: utils/dateformat.py:154 +msgid "noon" +msgstr "" + +#: utils/dates.py:7 +msgid "Monday" +msgstr "" + +#: utils/dates.py:8 +msgid "Tuesday" +msgstr "" + +#: utils/dates.py:9 +msgid "Wednesday" +msgstr "" + +#: utils/dates.py:10 +msgid "Thursday" +msgstr "" + +#: utils/dates.py:11 +msgid "Friday" +msgstr "" + +#: utils/dates.py:12 +msgid "Saturday" +msgstr "" + +#: utils/dates.py:13 +msgid "Sunday" +msgstr "" + +#: utils/dates.py:16 +msgid "Mon" +msgstr "" + +#: utils/dates.py:17 +msgid "Tue" +msgstr "" + +#: utils/dates.py:18 +msgid "Wed" +msgstr "" + +#: utils/dates.py:19 +msgid "Thu" +msgstr "" + +#: utils/dates.py:20 +msgid "Fri" +msgstr "" + +#: utils/dates.py:21 +msgid "Sat" +msgstr "" + +#: utils/dates.py:22 +msgid "Sun" +msgstr "" + +#: utils/dates.py:25 +msgid "January" +msgstr "" + +#: utils/dates.py:26 +msgid "February" +msgstr "" + +#: utils/dates.py:27 +msgid "March" +msgstr "" + +#: utils/dates.py:28 +msgid "April" +msgstr "" + +#: utils/dates.py:29 +msgid "May" +msgstr "" + +#: utils/dates.py:30 +msgid "June" +msgstr "" + +#: utils/dates.py:31 +msgid "July" +msgstr "" + +#: utils/dates.py:32 +msgid "August" +msgstr "" + +#: utils/dates.py:33 +msgid "September" +msgstr "" + +#: utils/dates.py:34 +msgid "October" +msgstr "" + +#: utils/dates.py:35 +msgid "November" +msgstr "" + +#: utils/dates.py:36 +msgid "December" +msgstr "" + +#: utils/dates.py:39 +msgid "jan" +msgstr "" + +#: utils/dates.py:40 +msgid "feb" +msgstr "" + +#: utils/dates.py:41 +msgid "mar" +msgstr "" + +#: utils/dates.py:42 +msgid "apr" +msgstr "" + +#: utils/dates.py:43 +msgid "may" +msgstr "" + +#: utils/dates.py:44 +msgid "jun" +msgstr "" + +#: utils/dates.py:45 +msgid "jul" +msgstr "" + +#: utils/dates.py:46 +msgid "aug" +msgstr "" + +#: utils/dates.py:47 +msgid "sep" +msgstr "" + +#: utils/dates.py:48 +msgid "oct" +msgstr "" + +#: utils/dates.py:49 +msgid "nov" +msgstr "" + +#: utils/dates.py:50 +msgid "dec" +msgstr "" + +#: utils/dates.py:53 +msgctxt "abbrev. month" +msgid "Jan." +msgstr "" + +#: utils/dates.py:54 +msgctxt "abbrev. month" +msgid "Feb." +msgstr "" + +#: utils/dates.py:55 +msgctxt "abbrev. month" +msgid "March" +msgstr "" + +#: utils/dates.py:56 +msgctxt "abbrev. month" +msgid "April" +msgstr "" + +#: utils/dates.py:57 +msgctxt "abbrev. month" +msgid "May" +msgstr "" + +#: utils/dates.py:58 +msgctxt "abbrev. month" +msgid "June" +msgstr "" + +#: utils/dates.py:59 +msgctxt "abbrev. month" +msgid "July" +msgstr "" + +#: utils/dates.py:60 +msgctxt "abbrev. month" +msgid "Aug." +msgstr "" + +#: utils/dates.py:61 +msgctxt "abbrev. month" +msgid "Sept." +msgstr "" + +#: utils/dates.py:62 +msgctxt "abbrev. month" +msgid "Oct." +msgstr "" + +#: utils/dates.py:63 +msgctxt "abbrev. month" +msgid "Nov." +msgstr "" + +#: utils/dates.py:64 +msgctxt "abbrev. month" +msgid "Dec." +msgstr "" + +#: utils/dates.py:67 +msgctxt "alt. month" +msgid "January" +msgstr "" + +#: utils/dates.py:68 +msgctxt "alt. month" +msgid "February" +msgstr "" + +#: utils/dates.py:69 +msgctxt "alt. month" +msgid "March" +msgstr "" + +#: utils/dates.py:70 +msgctxt "alt. month" +msgid "April" +msgstr "" + +#: utils/dates.py:71 +msgctxt "alt. month" +msgid "May" +msgstr "" + +#: utils/dates.py:72 +msgctxt "alt. month" +msgid "June" +msgstr "" + +#: utils/dates.py:73 +msgctxt "alt. month" +msgid "July" +msgstr "" + +#: utils/dates.py:74 +msgctxt "alt. month" +msgid "August" +msgstr "" + +#: utils/dates.py:75 +msgctxt "alt. month" +msgid "September" +msgstr "" + +#: utils/dates.py:76 +msgctxt "alt. month" +msgid "October" +msgstr "" + +#: utils/dates.py:77 +msgctxt "alt. month" +msgid "November" +msgstr "" + +#: utils/dates.py:78 +msgctxt "alt. month" +msgid "December" +msgstr "" + +#: utils/ipv6.py:8 +msgid "This is not a valid IPv6 address." +msgstr "" + +#: utils/text.py:70 +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "" + +#: utils/text.py:255 +msgid "or" +msgstr "" + +#. Translators: This string is used as a separator between list elements +#: utils/text.py:274 utils/timesince.py:135 +msgid ", " +msgstr "" + +#: utils/timesince.py:8 +#, python-format +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:9 +#, python-format +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:10 +#, python-format +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:11 +#, python-format +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:12 +#, python-format +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:13 +#, python-format +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "" +msgstr[1] "" + +#: views/csrf.py:29 +msgid "Forbidden" +msgstr "" + +#: views/csrf.py:30 +msgid "CSRF verification failed. Request aborted." +msgstr "" + +#: views/csrf.py:34 +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" + +#: views/csrf.py:40 +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" + +#: views/csrf.py:45 +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" + +#: views/csrf.py:54 +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" + +#: views/csrf.py:60 +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" + +#: views/csrf.py:66 +msgid "More information is available with DEBUG=True." +msgstr "" + +#: views/generic/dates.py:44 +msgid "No year specified" +msgstr "" + +#: views/generic/dates.py:64 views/generic/dates.py:115 +#: views/generic/dates.py:214 +msgid "Date out of range" +msgstr "" + +#: views/generic/dates.py:94 +msgid "No month specified" +msgstr "" + +#: views/generic/dates.py:147 +msgid "No day specified" +msgstr "" + +#: views/generic/dates.py:194 +msgid "No week specified" +msgstr "" + +#: views/generic/dates.py:349 views/generic/dates.py:380 +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "" + +#: views/generic/dates.py:652 +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" + +#: views/generic/dates.py:692 +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "" + +#: views/generic/detail.py:56 +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "" + +#: views/generic/list.py:70 +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "" + +#: views/generic/list.py:77 +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "" + +#: views/generic/list.py:169 +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "" + +#: views/static.py:48 +msgid "Directory indexes are not allowed here." +msgstr "" + +#: views/static.py:50 +#, python-format +msgid "“%(path)s” does not exist" +msgstr "" + +#: views/static.py:67 views/templates/directory_index.html:8 +#: views/templates/directory_index.html:11 +#, python-format +msgid "Index of %(directory)s" +msgstr "" + +#: views/templates/default_urlconf.html:7 +#: views/templates/default_urlconf.html:220 +msgid "The install worked successfully! Congratulations!" +msgstr "" + +#: views/templates/default_urlconf.html:206 +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" + +#: views/templates/default_urlconf.html:221 +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not " +"configured any URLs." +msgstr "" + +#: views/templates/default_urlconf.html:229 +msgid "Django Documentation" +msgstr "" + +#: views/templates/default_urlconf.html:230 +msgid "Topics, references, & how-to’s" +msgstr "" + +#: views/templates/default_urlconf.html:238 +msgid "Tutorial: A Polling App" +msgstr "" + +#: views/templates/default_urlconf.html:239 +msgid "Get started with Django" +msgstr "" + +#: views/templates/default_urlconf.html:247 +msgid "Django Community" +msgstr "" + +#: views/templates/default_urlconf.html:248 +msgid "Connect, get help, or contribute" +msgstr "" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/en/__init__.py b/venv/lib/python3.12/site-packages/django/conf/locale/en/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/en/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/en/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..12b27d99dd430cb5c54fad69647d9d012a4cd4c8 GIT binary patch literal 198 zcmX@j%ge<81o5sX(m?cM5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!O4ZNE&rQ|OP0Yy6 zFHO;RNiEZNN=(kybEFQ_cZ$j>v@Gc?jK&MZmQEdVM^ zOiwM=Pssu+OwP|s)6dCIPRvQwPtDVhkI&4@EQycTE2#X%VUwGmQks)$SHudml@W-G PL5z>gjEsy$%s>_Z#W6H~ literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/en/__pycache__/formats.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/en/__pycache__/formats.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c26c73df5b9e574a5feed9539ca414ddb6212852 GIT binary patch literal 1002 zcmZXSJ#X4j6o#)M5WsxI1ZbM7k~?@n0rSdRolq@1ixg(VF1I?97b+)0?L=s}sb{DlblmtZ z1>m6hROQI$k}MYu*qQ8jaWYI=iq#+9pTgLdksQZ~Oz z(&tIivsLAKQ(Mk!Ofu^=c6rj9wad7Y^r>1CznBfFE~=uYsFS2tQJM`=E^V=d+^iKP z)jU;|X1yw({z6am*P0W2;n)_oTNk!-OK{1$!^KwnDlhd3KI^sm=MKKJ`ggc@d4>n0 zn+vD^zVP-P9$wy9`2jSx&aELPU9Yk2^gFocv|Bw3TYcPduI<*%urL_SLmzC1-1e-G z*GF(D1NX2E;nB}9%wrrSUfi?OI0qs5`aUsDy&NNMdU!NO2h-Fms*m1`QTj26(ix~` l@o2_3M#EKN-G`}fiR%oU^AA>S4C?>@ literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/en/formats.py b/venv/lib/python3.12/site-packages/django/conf/locale/en/formats.py new file mode 100644 index 0000000000..f9d143b717 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/en/formats.py @@ -0,0 +1,65 @@ +# This file is distributed under the same license as the Django package. +# +# The *_FORMAT strings use the Django date format syntax, +# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date + +# Formatting for date objects. +DATE_FORMAT = "N j, Y" +# Formatting for time objects. +TIME_FORMAT = "P" +# Formatting for datetime objects. +DATETIME_FORMAT = "N j, Y, P" +# Formatting for date objects when only the year and month are relevant. +YEAR_MONTH_FORMAT = "F Y" +# Formatting for date objects when only the month and day are relevant. +MONTH_DAY_FORMAT = "F j" +# Short formatting for date objects. +SHORT_DATE_FORMAT = "m/d/Y" +# Short formatting for datetime objects. +SHORT_DATETIME_FORMAT = "m/d/Y P" +# First day of week, to be used on calendars. +# 0 means Sunday, 1 means Monday... +FIRST_DAY_OF_WEEK = 0 + +# Formats to be used when parsing dates from input boxes, in order. +# The *_INPUT_FORMATS strings use the Python strftime format syntax, +# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior +# Note that these format strings are different from the ones to display dates. +# Kept ISO formats as they are in first position +DATE_INPUT_FORMATS = [ + "%Y-%m-%d", # '2006-10-25' + "%m/%d/%Y", # '10/25/2006' + "%m/%d/%y", # '10/25/06' + "%b %d %Y", # 'Oct 25 2006' + "%b %d, %Y", # 'Oct 25, 2006' + "%d %b %Y", # '25 Oct 2006' + "%d %b, %Y", # '25 Oct, 2006' + "%B %d %Y", # 'October 25 2006' + "%B %d, %Y", # 'October 25, 2006' + "%d %B %Y", # '25 October 2006' + "%d %B, %Y", # '25 October, 2006' +] +DATETIME_INPUT_FORMATS = [ + "%Y-%m-%d %H:%M:%S", # '2006-10-25 14:30:59' + "%Y-%m-%d %H:%M:%S.%f", # '2006-10-25 14:30:59.000200' + "%Y-%m-%d %H:%M", # '2006-10-25 14:30' + "%m/%d/%Y %H:%M:%S", # '10/25/2006 14:30:59' + "%m/%d/%Y %H:%M:%S.%f", # '10/25/2006 14:30:59.000200' + "%m/%d/%Y %H:%M", # '10/25/2006 14:30' + "%m/%d/%y %H:%M:%S", # '10/25/06 14:30:59' + "%m/%d/%y %H:%M:%S.%f", # '10/25/06 14:30:59.000200' + "%m/%d/%y %H:%M", # '10/25/06 14:30' +] +TIME_INPUT_FORMATS = [ + "%H:%M:%S", # '14:30:59' + "%H:%M:%S.%f", # '14:30:59.000200' + "%H:%M", # '14:30' +] + +# Decimal separator symbol. +DECIMAL_SEPARATOR = "." +# Thousand separator symbol. +THOUSAND_SEPARATOR = "," +# Number of digits that will be together, when splitting them by +# THOUSAND_SEPARATOR. 0 means no grouping, 3 means splitting by thousands. +NUMBER_GROUPING = 3 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/en_AU/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/conf/locale/en_AU/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..d31b977ad46257189b2c92d1d6888ef452938c25 GIT binary patch literal 25633 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/en_AU/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/conf/locale/en_AU/LC_MESSAGES/django.po new file mode 100644 index 0000000000..a0a3ed8ce4 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/en_AU/LC_MESSAGES/django.po @@ -0,0 +1,1299 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Tom Fifield , 2014 +# Tom Fifield , 2021 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-09-21 10:22+0200\n" +"PO-Revision-Date: 2021-11-18 21:19+0000\n" +"Last-Translator: Transifex Bot <>\n" +"Language-Team: English (Australia) (http://www.transifex.com/django/django/" +"language/en_AU/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: en_AU\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Afrikaans" +msgstr "Afrikaans" + +msgid "Arabic" +msgstr "Arabic" + +msgid "Algerian Arabic" +msgstr "Algerian Arabic" + +msgid "Asturian" +msgstr "Asturian" + +msgid "Azerbaijani" +msgstr "Azerbaijani" + +msgid "Bulgarian" +msgstr "Bulgarian" + +msgid "Belarusian" +msgstr "Belarusian" + +msgid "Bengali" +msgstr "Bengali" + +msgid "Breton" +msgstr "Breton" + +msgid "Bosnian" +msgstr "Bosnian" + +msgid "Catalan" +msgstr "Catalan" + +msgid "Czech" +msgstr "Czech" + +msgid "Welsh" +msgstr "Welsh" + +msgid "Danish" +msgstr "Danish" + +msgid "German" +msgstr "German" + +msgid "Lower Sorbian" +msgstr "Lower Sorbian" + +msgid "Greek" +msgstr "Greek" + +msgid "English" +msgstr "English" + +msgid "Australian English" +msgstr "Australian English" + +msgid "British English" +msgstr "British English" + +msgid "Esperanto" +msgstr "Esperanto" + +msgid "Spanish" +msgstr "Spanish" + +msgid "Argentinian Spanish" +msgstr "Argentinian Spanish" + +msgid "Colombian Spanish" +msgstr "Colombian Spanish" + +msgid "Mexican Spanish" +msgstr "Mexican Spanish" + +msgid "Nicaraguan Spanish" +msgstr "Nicaraguan Spanish" + +msgid "Venezuelan Spanish" +msgstr "Venezuelan Spanish" + +msgid "Estonian" +msgstr "Estonian" + +msgid "Basque" +msgstr "Basque" + +msgid "Persian" +msgstr "Persian" + +msgid "Finnish" +msgstr "Finnish" + +msgid "French" +msgstr "French" + +msgid "Frisian" +msgstr "Frisian" + +msgid "Irish" +msgstr "Irish" + +msgid "Scottish Gaelic" +msgstr "Scottish Gaelic" + +msgid "Galician" +msgstr "Galician" + +msgid "Hebrew" +msgstr "Hebrew" + +msgid "Hindi" +msgstr "Hindi" + +msgid "Croatian" +msgstr "Croatian" + +msgid "Upper Sorbian" +msgstr "Upper Sorbian" + +msgid "Hungarian" +msgstr "Hungarian" + +msgid "Armenian" +msgstr "Armenian" + +msgid "Interlingua" +msgstr "Interlingua" + +msgid "Indonesian" +msgstr "Indonesian" + +msgid "Igbo" +msgstr "Igbo" + +msgid "Ido" +msgstr "Ido" + +msgid "Icelandic" +msgstr "Icelandic" + +msgid "Italian" +msgstr "Italian" + +msgid "Japanese" +msgstr "Japanese" + +msgid "Georgian" +msgstr "Georgian" + +msgid "Kabyle" +msgstr "Kabyle" + +msgid "Kazakh" +msgstr "Kazakh" + +msgid "Khmer" +msgstr "Khmer" + +msgid "Kannada" +msgstr "Kannada" + +msgid "Korean" +msgstr "Korean" + +msgid "Kyrgyz" +msgstr "Kyrgyz" + +msgid "Luxembourgish" +msgstr "Luxembourgish" + +msgid "Lithuanian" +msgstr "Lithuanian" + +msgid "Latvian" +msgstr "Latvian" + +msgid "Macedonian" +msgstr "Macedonian" + +msgid "Malayalam" +msgstr "Malayalam" + +msgid "Mongolian" +msgstr "Mongolian" + +msgid "Marathi" +msgstr "Marathi" + +msgid "Malay" +msgstr "" + +msgid "Burmese" +msgstr "Burmese" + +msgid "Norwegian Bokmål" +msgstr "Norwegian Bokmål" + +msgid "Nepali" +msgstr "Nepali" + +msgid "Dutch" +msgstr "Dutch" + +msgid "Norwegian Nynorsk" +msgstr "Norwegian Nynorsk" + +msgid "Ossetic" +msgstr "Ossetic" + +msgid "Punjabi" +msgstr "Punjabi" + +msgid "Polish" +msgstr "Polish" + +msgid "Portuguese" +msgstr "Portuguese" + +msgid "Brazilian Portuguese" +msgstr "Brazilian Portuguese" + +msgid "Romanian" +msgstr "Romanian" + +msgid "Russian" +msgstr "Russian" + +msgid "Slovak" +msgstr "Slovak" + +msgid "Slovenian" +msgstr "Slovenian" + +msgid "Albanian" +msgstr "Albanian" + +msgid "Serbian" +msgstr "Serbian" + +msgid "Serbian Latin" +msgstr "Serbian Latin" + +msgid "Swedish" +msgstr "Swedish" + +msgid "Swahili" +msgstr "Swahili" + +msgid "Tamil" +msgstr "Tamil" + +msgid "Telugu" +msgstr "Telugu" + +msgid "Tajik" +msgstr "Tajik" + +msgid "Thai" +msgstr "Thai" + +msgid "Turkmen" +msgstr "Turkmen" + +msgid "Turkish" +msgstr "Turkish" + +msgid "Tatar" +msgstr "Tatar" + +msgid "Udmurt" +msgstr "Udmurt" + +msgid "Ukrainian" +msgstr "Ukrainian" + +msgid "Urdu" +msgstr "Urdu" + +msgid "Uzbek" +msgstr "Uzbek" + +msgid "Vietnamese" +msgstr "Vietnamese" + +msgid "Simplified Chinese" +msgstr "Simplified Chinese" + +msgid "Traditional Chinese" +msgstr "Traditional Chinese" + +msgid "Messages" +msgstr "Messages" + +msgid "Site Maps" +msgstr "Site Maps" + +msgid "Static Files" +msgstr "Static Files" + +msgid "Syndication" +msgstr "Syndication" + +#. Translators: String used to replace omitted page numbers in elided page +#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10]. +msgid "…" +msgstr "…" + +msgid "That page number is not an integer" +msgstr "That page number is not an integer" + +msgid "That page number is less than 1" +msgstr "That page number is less than 1" + +msgid "That page contains no results" +msgstr "That page contains no results" + +msgid "Enter a valid value." +msgstr "Enter a valid value." + +msgid "Enter a valid URL." +msgstr "Enter a valid URL." + +msgid "Enter a valid integer." +msgstr "Enter a valid integer." + +msgid "Enter a valid email address." +msgstr "Enter a valid email address." + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." + +msgid "Enter a valid IPv4 address." +msgstr "Enter a valid IPv4 address." + +msgid "Enter a valid IPv6 address." +msgstr "Enter a valid IPv6 address." + +msgid "Enter a valid IPv4 or IPv6 address." +msgstr "Enter a valid IPv4 or IPv6 address." + +msgid "Enter only digits separated by commas." +msgstr "Enter only digits separated by commas." + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "Ensure this value is %(limit_value)s (it is %(show_value)s)." + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "Ensure this value is less than or equal to %(limit_value)s." + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "Ensure this value is greater than or equal to %(limit_value)s." + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgstr[1] "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgstr[1] "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." + +msgid "Enter a number." +msgstr "Enter a number." + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "Ensure that there are no more than %(max)s digit in total." +msgstr[1] "Ensure that there are no more than %(max)s digits in total." + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "Ensure that there are no more than %(max)s decimal place." +msgstr[1] "Ensure that there are no more than %(max)s decimal places." + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgstr[1] "" +"Ensure that there are no more than %(max)s digits before the decimal point." + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." + +msgid "Null characters are not allowed." +msgstr "Null characters are not allowed." + +msgid "and" +msgstr "and" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "%(model_name)s with this %(field_labels)s already exists." + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "Value %(value)r is not a valid choice." + +msgid "This field cannot be null." +msgstr "This field cannot be null." + +msgid "This field cannot be blank." +msgstr "This field cannot be blank." + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "%(model_name)s with this %(field_label)s already exists." + +#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'. +#. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "Field of type: %(field_type)s" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "“%(value)s” value must be either True or False." + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "“%(value)s” value must be either True, False, or None." + +msgid "Boolean (Either True or False)" +msgstr "Boolean (Either True or False)" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "String (up to %(max_length)s)" + +msgid "Comma-separated integers" +msgstr "Comma-separated integers" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." + +msgid "Date (without time)" +msgstr "Date (without time)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." + +msgid "Date (with time)" +msgstr "Date (with time)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "“%(value)s” value must be a decimal number." + +msgid "Decimal number" +msgstr "Decimal number" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." + +msgid "Duration" +msgstr "Duration" + +msgid "Email address" +msgstr "Email address" + +msgid "File path" +msgstr "File path" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "“%(value)s” value must be a float." + +msgid "Floating point number" +msgstr "Floating point number" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "“%(value)s” value must be an integer." + +msgid "Integer" +msgstr "Integer" + +msgid "Big (8 byte) integer" +msgstr "Big (8 byte) integer" + +msgid "Small integer" +msgstr "Small integer" + +msgid "IPv4 address" +msgstr "IPv4 address" + +msgid "IP address" +msgstr "IP address" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "“%(value)s” value must be either None, True or False." + +msgid "Boolean (Either True, False or None)" +msgstr "Boolean (Either True, False or None)" + +msgid "Positive big integer" +msgstr "Positive big integer" + +msgid "Positive integer" +msgstr "Positive integer" + +msgid "Positive small integer" +msgstr "Positive small integer" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "Slug (up to %(max_length)s)" + +msgid "Text" +msgstr "Text" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." + +msgid "Time" +msgstr "Time" + +msgid "URL" +msgstr "URL" + +msgid "Raw binary data" +msgstr "Raw binary data" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "“%(value)s” is not a valid UUID." + +msgid "Universally unique identifier" +msgstr "Universally unique identifier" + +msgid "File" +msgstr "File" + +msgid "Image" +msgstr "Image" + +msgid "A JSON object" +msgstr "A JSON object" + +msgid "Value must be valid JSON." +msgstr "Value must be valid JSON." + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "%(model)s instance with %(field)s %(value)r does not exist." + +msgid "Foreign Key (type determined by related field)" +msgstr "Foreign Key (type determined by related field)" + +msgid "One-to-one relationship" +msgstr "One-to-one relationship" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "%(from)s-%(to)s relationship" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "%(from)s-%(to)s relationships" + +msgid "Many-to-many relationship" +msgstr "Many-to-many relationship" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr ":?.!" + +msgid "This field is required." +msgstr "This field is required." + +msgid "Enter a whole number." +msgstr "Enter a whole number." + +msgid "Enter a valid date." +msgstr "Enter a valid date." + +msgid "Enter a valid time." +msgstr "Enter a valid time." + +msgid "Enter a valid date/time." +msgstr "Enter a valid date/time." + +msgid "Enter a valid duration." +msgstr "Enter a valid duration." + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "The number of days must be between {min_days} and {max_days}." + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "No file was submitted. Check the encoding type on the form." + +msgid "No file was submitted." +msgstr "No file was submitted." + +msgid "The submitted file is empty." +msgstr "The submitted file is empty." + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" +"Ensure this filename has at most %(max)d character (it has %(length)d)." +msgstr[1] "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "Please either submit a file or check the clear checkbox, not both." + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "Select a valid choice. %(value)s is not one of the available choices." + +msgid "Enter a list of values." +msgstr "Enter a list of values." + +msgid "Enter a complete value." +msgstr "Enter a complete value." + +msgid "Enter a valid UUID." +msgstr "Enter a valid UUID." + +msgid "Enter a valid JSON." +msgstr "Enter a valid JSON." + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr ":" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "(Hidden field %(name)s) %(error)s" + +#, python-format +msgid "" +"ManagementForm data is missing or has been tampered with. Missing fields: " +"%(field_names)s. You may need to file a bug report if the issue persists." +msgstr "" +"ManagementForm data is missing or has been tampered with. Missing fields: " +"%(field_names)s. You may need to file a bug report if the issue persists." + +#, python-format +msgid "Please submit at most %d form." +msgid_plural "Please submit at most %d forms." +msgstr[0] "Please submit at most %d form." +msgstr[1] "Please submit at most %d forms." + +#, python-format +msgid "Please submit at least %d form." +msgid_plural "Please submit at least %d forms." +msgstr[0] "Please submit at least %d form." +msgstr[1] "Please submit at least %d forms." + +msgid "Order" +msgstr "Order" + +msgid "Delete" +msgstr "Delete" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "Please correct the duplicate data for %(field)s." + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "Please correct the duplicate data for %(field)s, which must be unique." + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." + +msgid "Please correct the duplicate values below." +msgstr "Please correct the duplicate values below." + +msgid "The inline value did not match the parent instance." +msgstr "The inline value did not match the parent instance." + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "" +"Select a valid choice. That choice is not one of the available choices." + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "“%(pk)s” is not a valid value." + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." + +msgid "Clear" +msgstr "Clear" + +msgid "Currently" +msgstr "Currently" + +msgid "Change" +msgstr "Change" + +msgid "Unknown" +msgstr "Unknown" + +msgid "Yes" +msgstr "Yes" + +msgid "No" +msgstr "No" + +#. Translators: Please do not add spaces around commas. +msgid "yes,no,maybe" +msgstr "yes,no,maybe" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)d byte" +msgstr[1] "%(size)d bytes" + +#, python-format +msgid "%s KB" +msgstr "%s KB" + +#, python-format +msgid "%s MB" +msgstr "%s MB" + +#, python-format +msgid "%s GB" +msgstr "%s GB" + +#, python-format +msgid "%s TB" +msgstr "%s TB" + +#, python-format +msgid "%s PB" +msgstr "%s PB" + +msgid "p.m." +msgstr "p.m." + +msgid "a.m." +msgstr "a.m." + +msgid "PM" +msgstr "PM" + +msgid "AM" +msgstr "AM" + +msgid "midnight" +msgstr "midnight" + +msgid "noon" +msgstr "noon" + +msgid "Monday" +msgstr "Monday" + +msgid "Tuesday" +msgstr "Tuesday" + +msgid "Wednesday" +msgstr "Wednesday" + +msgid "Thursday" +msgstr "Thursday" + +msgid "Friday" +msgstr "Friday" + +msgid "Saturday" +msgstr "Saturday" + +msgid "Sunday" +msgstr "Sunday" + +msgid "Mon" +msgstr "Mon" + +msgid "Tue" +msgstr "Tue" + +msgid "Wed" +msgstr "Wed" + +msgid "Thu" +msgstr "Thu" + +msgid "Fri" +msgstr "Fri" + +msgid "Sat" +msgstr "Sat" + +msgid "Sun" +msgstr "Sun" + +msgid "January" +msgstr "January" + +msgid "February" +msgstr "February" + +msgid "March" +msgstr "March" + +msgid "April" +msgstr "April" + +msgid "May" +msgstr "May" + +msgid "June" +msgstr "June" + +msgid "July" +msgstr "July" + +msgid "August" +msgstr "August" + +msgid "September" +msgstr "September" + +msgid "October" +msgstr "October" + +msgid "November" +msgstr "November" + +msgid "December" +msgstr "December" + +msgid "jan" +msgstr "jan" + +msgid "feb" +msgstr "feb" + +msgid "mar" +msgstr "mar" + +msgid "apr" +msgstr "apr" + +msgid "may" +msgstr "may" + +msgid "jun" +msgstr "jun" + +msgid "jul" +msgstr "jul" + +msgid "aug" +msgstr "aug" + +msgid "sep" +msgstr "sep" + +msgid "oct" +msgstr "oct" + +msgid "nov" +msgstr "nov" + +msgid "dec" +msgstr "dec" + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "Jan." + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "Feb." + +msgctxt "abbrev. month" +msgid "March" +msgstr "March" + +msgctxt "abbrev. month" +msgid "April" +msgstr "April" + +msgctxt "abbrev. month" +msgid "May" +msgstr "May" + +msgctxt "abbrev. month" +msgid "June" +msgstr "June" + +msgctxt "abbrev. month" +msgid "July" +msgstr "July" + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "Aug." + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "Sept." + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "Oct." + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "Nov." + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "Dec." + +msgctxt "alt. month" +msgid "January" +msgstr "January" + +msgctxt "alt. month" +msgid "February" +msgstr "February" + +msgctxt "alt. month" +msgid "March" +msgstr "March" + +msgctxt "alt. month" +msgid "April" +msgstr "April" + +msgctxt "alt. month" +msgid "May" +msgstr "May" + +msgctxt "alt. month" +msgid "June" +msgstr "June" + +msgctxt "alt. month" +msgid "July" +msgstr "July" + +msgctxt "alt. month" +msgid "August" +msgstr "August" + +msgctxt "alt. month" +msgid "September" +msgstr "September" + +msgctxt "alt. month" +msgid "October" +msgstr "October" + +msgctxt "alt. month" +msgid "November" +msgstr "November" + +msgctxt "alt. month" +msgid "December" +msgstr "December" + +msgid "This is not a valid IPv6 address." +msgstr "This is not a valid IPv6 address." + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "%(truncated_text)s…" + +msgid "or" +msgstr "or" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr ", " + +#, python-format +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "" +msgstr[1] "" + +msgid "Forbidden" +msgstr "Forbidden" + +msgid "CSRF verification failed. Request aborted." +msgstr "CSRF verification failed. Request aborted." + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." + +msgid "More information is available with DEBUG=True." +msgstr "More information is available with DEBUG=True." + +msgid "No year specified" +msgstr "No year specified" + +msgid "Date out of range" +msgstr "Date out of range" + +msgid "No month specified" +msgstr "No month specified" + +msgid "No day specified" +msgstr "No day specified" + +msgid "No week specified" +msgstr "No week specified" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "No %(verbose_name_plural)s available" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "Invalid date string “%(datestr)s” given format “%(format)s”" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "No %(verbose_name)s found matching the query" + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "Page is not “last”, nor can it be converted to an int." + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "Invalid page (%(page_number)s): %(message)s" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "Empty list and “%(class_name)s.allow_empty” is False." + +msgid "Directory indexes are not allowed here." +msgstr "Directory indexes are not allowed here." + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "“%(path)s” does not exist" + +#, python-format +msgid "Index of %(directory)s" +msgstr "Index of %(directory)s" + +msgid "The install worked successfully! Congratulations!" +msgstr "The install worked successfully! Congratulations!" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" +"View release notes for Django %(version)s" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not configured any " +"URLs." +msgstr "" +"You are seeing this page because DEBUG=True is in your settings file and you have not configured any " +"URLs." + +msgid "Django Documentation" +msgstr "Django Documentation" + +msgid "Topics, references, & how-to’s" +msgstr "Topics, references, & how-to’s" + +msgid "Tutorial: A Polling App" +msgstr "Tutorial: A Polling App" + +msgid "Get started with Django" +msgstr "Get started with Django" + +msgid "Django Community" +msgstr "Django Community" + +msgid "Connect, get help, or contribute" +msgstr "Connect, get help, or contribute" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/en_AU/__init__.py b/venv/lib/python3.12/site-packages/django/conf/locale/en_AU/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/en_AU/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/en_AU/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3ba34e28e85463f74749d125138fd5929d161100 GIT binary patch literal 201 zcmX@j%ge<81o5sX(m?cM5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!%Fxfq&rQ|OP0Yy6 zFHO;RNiEZNN=(kybEFQ_cZ$j>v@Gc?jK&MZmQEdVM^ zOiwM=Pssu+OwP|s)6dCIPRvQwPtA*W4Aqa1&&S S5r~UHjE~HWjEqIhKo$UT*)?_m literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/en_AU/__pycache__/formats.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/en_AU/__pycache__/formats.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2019202240dfc2e805c5ad2169ba588d0ac378c5 GIT binary patch literal 843 zcmZXRJ#X4T7{|}NzXTi;p!8*M2MUj*}>Xk5Ce)(9tYiq}_0z z6x literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/en_AU/formats.py b/venv/lib/python3.12/site-packages/django/conf/locale/en_AU/formats.py new file mode 100644 index 0000000000..caa6f7201c --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/en_AU/formats.py @@ -0,0 +1,41 @@ +# This file is distributed under the same license as the Django package. +# +# The *_FORMAT strings use the Django date format syntax, +# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date +DATE_FORMAT = "j M Y" # '25 Oct 2006' +TIME_FORMAT = "P" # '2:30 p.m.' +DATETIME_FORMAT = "j M Y, P" # '25 Oct 2006, 2:30 p.m.' +YEAR_MONTH_FORMAT = "F Y" # 'October 2006' +MONTH_DAY_FORMAT = "j F" # '25 October' +SHORT_DATE_FORMAT = "d/m/Y" # '25/10/2006' +SHORT_DATETIME_FORMAT = "d/m/Y P" # '25/10/2006 2:30 p.m.' +FIRST_DAY_OF_WEEK = 0 # Sunday + +# The *_INPUT_FORMATS strings use the Python strftime format syntax, +# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior +DATE_INPUT_FORMATS = [ + "%d/%m/%Y", # '25/10/2006' + "%d/%m/%y", # '25/10/06' + # "%b %d %Y", # 'Oct 25 2006' + # "%b %d, %Y", # 'Oct 25, 2006' + # "%d %b %Y", # '25 Oct 2006' + # "%d %b, %Y", # '25 Oct, 2006' + # "%B %d %Y", # 'October 25 2006' + # "%B %d, %Y", # 'October 25, 2006' + # "%d %B %Y", # '25 October 2006' + # "%d %B, %Y", # '25 October, 2006' +] +DATETIME_INPUT_FORMATS = [ + "%Y-%m-%d %H:%M:%S", # '2006-10-25 14:30:59' + "%Y-%m-%d %H:%M:%S.%f", # '2006-10-25 14:30:59.000200' + "%Y-%m-%d %H:%M", # '2006-10-25 14:30' + "%d/%m/%Y %H:%M:%S", # '25/10/2006 14:30:59' + "%d/%m/%Y %H:%M:%S.%f", # '25/10/2006 14:30:59.000200' + "%d/%m/%Y %H:%M", # '25/10/2006 14:30' + "%d/%m/%y %H:%M:%S", # '25/10/06 14:30:59' + "%d/%m/%y %H:%M:%S.%f", # '25/10/06 14:30:59.000200' + "%d/%m/%y %H:%M", # '25/10/06 14:30' +] +DECIMAL_SEPARATOR = "." +THOUSAND_SEPARATOR = "," +NUMBER_GROUPING = 3 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/en_CA/__init__.py b/venv/lib/python3.12/site-packages/django/conf/locale/en_CA/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/en_CA/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/en_CA/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ea4bbc87564a37490801c5ab5655f70a2f016478 GIT binary patch literal 201 zcmX@j%ge<81o5sX(m?cM5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!%Fxfq&rQ|OP0Yy6 zFHO;RNiEZNN=(kybEFQ_cZ$j>v@Gc?jK&MZmQEdVM^ zOiwM=Pssu+OwP|s)6dCIPRvQwPtA*WcGQoL&&S S5r~UHjE~HWjEqIhKo$UQjWuKd literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/en_CA/__pycache__/formats.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/en_CA/__pycache__/formats.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d4aa415fe0c526146adc7a46891957a603b31fdd GIT binary patch literal 790 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, 2011 +# jon_atkinson , 2011-2012 +# Ross Poulton , 2011-2012 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-09-27 22:40+0200\n" +"PO-Revision-Date: 2019-11-05 00:38+0000\n" +"Last-Translator: Ramiro Morales\n" +"Language-Team: English (United Kingdom) (http://www.transifex.com/django/" +"django/language/en_GB/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: en_GB\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Afrikaans" +msgstr "" + +msgid "Arabic" +msgstr "Arabic" + +msgid "Asturian" +msgstr "" + +msgid "Azerbaijani" +msgstr "Azerbaijani" + +msgid "Bulgarian" +msgstr "Bulgarian" + +msgid "Belarusian" +msgstr "" + +msgid "Bengali" +msgstr "Bengali" + +msgid "Breton" +msgstr "" + +msgid "Bosnian" +msgstr "Bosnian" + +msgid "Catalan" +msgstr "Catalan" + +msgid "Czech" +msgstr "Czech" + +msgid "Welsh" +msgstr "Welsh" + +msgid "Danish" +msgstr "Danish" + +msgid "German" +msgstr "German" + +msgid "Lower Sorbian" +msgstr "" + +msgid "Greek" +msgstr "Greek" + +msgid "English" +msgstr "English" + +msgid "Australian English" +msgstr "" + +msgid "British English" +msgstr "British English" + +msgid "Esperanto" +msgstr "Esperanto" + +msgid "Spanish" +msgstr "Spanish" + +msgid "Argentinian Spanish" +msgstr "Argentinian Spanish" + +msgid "Colombian Spanish" +msgstr "" + +msgid "Mexican Spanish" +msgstr "Mexican Spanish" + +msgid "Nicaraguan Spanish" +msgstr "Nicaraguan Spanish" + +msgid "Venezuelan Spanish" +msgstr "" + +msgid "Estonian" +msgstr "Estonian" + +msgid "Basque" +msgstr "Basque" + +msgid "Persian" +msgstr "Persian" + +msgid "Finnish" +msgstr "Finnish" + +msgid "French" +msgstr "French" + +msgid "Frisian" +msgstr "Frisian" + +msgid "Irish" +msgstr "Irish" + +msgid "Scottish Gaelic" +msgstr "" + +msgid "Galician" +msgstr "Galician" + +msgid "Hebrew" +msgstr "Hebrew" + +msgid "Hindi" +msgstr "Hindi" + +msgid "Croatian" +msgstr "Croatian" + +msgid "Upper Sorbian" +msgstr "" + +msgid "Hungarian" +msgstr "Hungarian" + +msgid "Armenian" +msgstr "" + +msgid "Interlingua" +msgstr "" + +msgid "Indonesian" +msgstr "Indonesian" + +msgid "Ido" +msgstr "" + +msgid "Icelandic" +msgstr "Icelandic" + +msgid "Italian" +msgstr "Italian" + +msgid "Japanese" +msgstr "Japanese" + +msgid "Georgian" +msgstr "Georgian" + +msgid "Kabyle" +msgstr "" + +msgid "Kazakh" +msgstr "Kazakh" + +msgid "Khmer" +msgstr "Khmer" + +msgid "Kannada" +msgstr "Kannada" + +msgid "Korean" +msgstr "Korean" + +msgid "Luxembourgish" +msgstr "" + +msgid "Lithuanian" +msgstr "Lithuanian" + +msgid "Latvian" +msgstr "Latvian" + +msgid "Macedonian" +msgstr "Macedonian" + +msgid "Malayalam" +msgstr "Malayalam" + +msgid "Mongolian" +msgstr "Mongolian" + +msgid "Marathi" +msgstr "" + +msgid "Burmese" +msgstr "" + +msgid "Norwegian Bokmål" +msgstr "" + +msgid "Nepali" +msgstr "Nepali" + +msgid "Dutch" +msgstr "Dutch" + +msgid "Norwegian Nynorsk" +msgstr "Norwegian Nynorsk" + +msgid "Ossetic" +msgstr "" + +msgid "Punjabi" +msgstr "Punjabi" + +msgid "Polish" +msgstr "Polish" + +msgid "Portuguese" +msgstr "Portuguese" + +msgid "Brazilian Portuguese" +msgstr "Brazilian Portuguese" + +msgid "Romanian" +msgstr "Romanian" + +msgid "Russian" +msgstr "Russian" + +msgid "Slovak" +msgstr "Slovak" + +msgid "Slovenian" +msgstr "Slovenian" + +msgid "Albanian" +msgstr "Albanian" + +msgid "Serbian" +msgstr "Serbian" + +msgid "Serbian Latin" +msgstr "Serbian Latin" + +msgid "Swedish" +msgstr "Swedish" + +msgid "Swahili" +msgstr "Swahili" + +msgid "Tamil" +msgstr "Tamil" + +msgid "Telugu" +msgstr "Telugu" + +msgid "Thai" +msgstr "Thai" + +msgid "Turkish" +msgstr "Turkish" + +msgid "Tatar" +msgstr "Tatar" + +msgid "Udmurt" +msgstr "" + +msgid "Ukrainian" +msgstr "Ukrainian" + +msgid "Urdu" +msgstr "Urdu" + +msgid "Uzbek" +msgstr "" + +msgid "Vietnamese" +msgstr "Vietnamese" + +msgid "Simplified Chinese" +msgstr "Simplified Chinese" + +msgid "Traditional Chinese" +msgstr "Traditional Chinese" + +msgid "Messages" +msgstr "" + +msgid "Site Maps" +msgstr "" + +msgid "Static Files" +msgstr "" + +msgid "Syndication" +msgstr "" + +msgid "That page number is not an integer" +msgstr "" + +msgid "That page number is less than 1" +msgstr "" + +msgid "That page contains no results" +msgstr "" + +msgid "Enter a valid value." +msgstr "Enter a valid value." + +msgid "Enter a valid URL." +msgstr "Enter a valid URL." + +msgid "Enter a valid integer." +msgstr "" + +msgid "Enter a valid email address." +msgstr "" + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" + +msgid "Enter a valid IPv4 address." +msgstr "Enter a valid IPv4 address." + +msgid "Enter a valid IPv6 address." +msgstr "Enter a valid IPv6 address." + +msgid "Enter a valid IPv4 or IPv6 address." +msgstr "Enter a valid IPv4 or IPv6 address." + +msgid "Enter only digits separated by commas." +msgstr "Enter only digits separated by commas." + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "Ensure this value is %(limit_value)s (it is %(show_value)s)." + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "Ensure this value is less than or equal to %(limit_value)s." + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "Ensure this value is greater than or equal to %(limit_value)s." + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +msgstr[1] "" + +msgid "Enter a number." +msgstr "Enter a number." + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" + +msgid "Null characters are not allowed." +msgstr "" + +msgid "and" +msgstr "and" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "" + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "" + +msgid "This field cannot be null." +msgstr "This field cannot be null." + +msgid "This field cannot be blank." +msgstr "This field cannot be blank." + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "%(model_name)s with this %(field_label)s already exists." + +#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'. +#. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "Field of type: %(field_type)s" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "" + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "" + +msgid "Boolean (Either True or False)" +msgstr "Boolean (Either True or False)" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "String (up to %(max_length)s)" + +msgid "Comma-separated integers" +msgstr "Comma-separated integers" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" + +msgid "Date (without time)" +msgstr "Date (without time)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" + +msgid "Date (with time)" +msgstr "Date (with time)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "" + +msgid "Decimal number" +msgstr "Decimal number" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" + +msgid "Duration" +msgstr "" + +msgid "Email address" +msgstr "Email address" + +msgid "File path" +msgstr "File path" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "" + +msgid "Floating point number" +msgstr "Floating point number" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "" + +msgid "Integer" +msgstr "Integer" + +msgid "Big (8 byte) integer" +msgstr "Big (8 byte) integer" + +msgid "IPv4 address" +msgstr "IPv4 address" + +msgid "IP address" +msgstr "IP address" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "" + +msgid "Boolean (Either True, False or None)" +msgstr "Boolean (Either True, False or None)" + +msgid "Positive integer" +msgstr "Positive integer" + +msgid "Positive small integer" +msgstr "Positive small integer" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "Slug (up to %(max_length)s)" + +msgid "Small integer" +msgstr "Small integer" + +msgid "Text" +msgstr "Text" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" + +msgid "Time" +msgstr "Time" + +msgid "URL" +msgstr "URL" + +msgid "Raw binary data" +msgstr "" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "" + +msgid "Universally unique identifier" +msgstr "" + +msgid "File" +msgstr "File" + +msgid "Image" +msgstr "Image" + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "" + +msgid "Foreign Key (type determined by related field)" +msgstr "Foreign Key (type determined by related field)" + +msgid "One-to-one relationship" +msgstr "One-to-one relationship" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "" + +msgid "Many-to-many relationship" +msgstr "Many-to-many relationship" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr "" + +msgid "This field is required." +msgstr "This field is required." + +msgid "Enter a whole number." +msgstr "Enter a whole number." + +msgid "Enter a valid date." +msgstr "Enter a valid date." + +msgid "Enter a valid time." +msgstr "Enter a valid time." + +msgid "Enter a valid date/time." +msgstr "Enter a valid date/time." + +msgid "Enter a valid duration." +msgstr "" + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "" + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "No file was submitted. Check the encoding type on the form." + +msgid "No file was submitted." +msgstr "No file was submitted." + +msgid "The submitted file is empty." +msgstr "The submitted file is empty." + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" +msgstr[1] "" + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "Please either submit a file or check the clear checkbox, not both." + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "Select a valid choice. %(value)s is not one of the available choices." + +msgid "Enter a list of values." +msgstr "Enter a list of values." + +msgid "Enter a complete value." +msgstr "" + +msgid "Enter a valid UUID." +msgstr "" + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr "" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "" + +msgid "ManagementForm data is missing or has been tampered with" +msgstr "" + +#, python-format +msgid "Please submit %d or fewer forms." +msgid_plural "Please submit %d or fewer forms." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "Please submit %d or more forms." +msgid_plural "Please submit %d or more forms." +msgstr[0] "" +msgstr[1] "" + +msgid "Order" +msgstr "Order" + +msgid "Delete" +msgstr "Delete" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "Please correct the duplicate data for %(field)s." + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "Please correct the duplicate data for %(field)s, which must be unique." + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." + +msgid "Please correct the duplicate values below." +msgstr "Please correct the duplicate values below." + +msgid "The inline value did not match the parent instance." +msgstr "" + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "" +"Select a valid choice. That choice is not one of the available choices." + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "" + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" + +msgid "Clear" +msgstr "Clear" + +msgid "Currently" +msgstr "Currently" + +msgid "Change" +msgstr "Change" + +msgid "Unknown" +msgstr "Unknown" + +msgid "Yes" +msgstr "Yes" + +msgid "No" +msgstr "No" + +msgid "Year" +msgstr "" + +msgid "Month" +msgstr "" + +msgid "Day" +msgstr "" + +msgid "yes,no,maybe" +msgstr "yes,no,maybe" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)d byte" +msgstr[1] "%(size)d bytes" + +#, python-format +msgid "%s KB" +msgstr "%s KB" + +#, python-format +msgid "%s MB" +msgstr "%s MB" + +#, python-format +msgid "%s GB" +msgstr "%s GB" + +#, python-format +msgid "%s TB" +msgstr "%s TB" + +#, python-format +msgid "%s PB" +msgstr "%s PB" + +msgid "p.m." +msgstr "p.m." + +msgid "a.m." +msgstr "a.m." + +msgid "PM" +msgstr "PM" + +msgid "AM" +msgstr "AM" + +msgid "midnight" +msgstr "midnight" + +msgid "noon" +msgstr "noon" + +msgid "Monday" +msgstr "Monday" + +msgid "Tuesday" +msgstr "Tuesday" + +msgid "Wednesday" +msgstr "Wednesday" + +msgid "Thursday" +msgstr "Thursday" + +msgid "Friday" +msgstr "Friday" + +msgid "Saturday" +msgstr "Saturday" + +msgid "Sunday" +msgstr "Sunday" + +msgid "Mon" +msgstr "Mon" + +msgid "Tue" +msgstr "Tue" + +msgid "Wed" +msgstr "Wed" + +msgid "Thu" +msgstr "Thu" + +msgid "Fri" +msgstr "Fri" + +msgid "Sat" +msgstr "Sat" + +msgid "Sun" +msgstr "Sun" + +msgid "January" +msgstr "January" + +msgid "February" +msgstr "February" + +msgid "March" +msgstr "March" + +msgid "April" +msgstr "April" + +msgid "May" +msgstr "May" + +msgid "June" +msgstr "June" + +msgid "July" +msgstr "July" + +msgid "August" +msgstr "August" + +msgid "September" +msgstr "September" + +msgid "October" +msgstr "October" + +msgid "November" +msgstr "November" + +msgid "December" +msgstr "December" + +msgid "jan" +msgstr "jan" + +msgid "feb" +msgstr "feb" + +msgid "mar" +msgstr "mar" + +msgid "apr" +msgstr "apr" + +msgid "may" +msgstr "may" + +msgid "jun" +msgstr "jun" + +msgid "jul" +msgstr "jul" + +msgid "aug" +msgstr "aug" + +msgid "sep" +msgstr "sep" + +msgid "oct" +msgstr "oct" + +msgid "nov" +msgstr "nov" + +msgid "dec" +msgstr "dec" + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "Jan." + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "Feb." + +msgctxt "abbrev. month" +msgid "March" +msgstr "March" + +msgctxt "abbrev. month" +msgid "April" +msgstr "April" + +msgctxt "abbrev. month" +msgid "May" +msgstr "May" + +msgctxt "abbrev. month" +msgid "June" +msgstr "June" + +msgctxt "abbrev. month" +msgid "July" +msgstr "July" + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "Aug." + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "Sept." + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "Oct." + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "Nov." + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "Dec." + +msgctxt "alt. month" +msgid "January" +msgstr "January" + +msgctxt "alt. month" +msgid "February" +msgstr "February" + +msgctxt "alt. month" +msgid "March" +msgstr "March" + +msgctxt "alt. month" +msgid "April" +msgstr "April" + +msgctxt "alt. month" +msgid "May" +msgstr "May" + +msgctxt "alt. month" +msgid "June" +msgstr "June" + +msgctxt "alt. month" +msgid "July" +msgstr "July" + +msgctxt "alt. month" +msgid "August" +msgstr "August" + +msgctxt "alt. month" +msgid "September" +msgstr "September" + +msgctxt "alt. month" +msgid "October" +msgstr "October" + +msgctxt "alt. month" +msgid "November" +msgstr "November" + +msgctxt "alt. month" +msgid "December" +msgstr "December" + +msgid "This is not a valid IPv6 address." +msgstr "" + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "" + +msgid "or" +msgstr "or" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr ", " + +#, python-format +msgid "%d year" +msgid_plural "%d years" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d month" +msgid_plural "%d months" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d week" +msgid_plural "%d weeks" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d day" +msgid_plural "%d days" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "" +msgstr[1] "" + +msgid "0 minutes" +msgstr "" + +msgid "Forbidden" +msgstr "" + +msgid "CSRF verification failed. Request aborted." +msgstr "" + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your Web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" + +msgid "More information is available with DEBUG=True." +msgstr "" + +msgid "No year specified" +msgstr "No year specified" + +msgid "Date out of range" +msgstr "" + +msgid "No month specified" +msgstr "No month specified" + +msgid "No day specified" +msgstr "No day specified" + +msgid "No week specified" +msgstr "No week specified" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "No %(verbose_name_plural)s available" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "No %(verbose_name)s found matching the query" + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "" + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "" + +msgid "Directory indexes are not allowed here." +msgstr "Directory indexes are not allowed here." + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "" + +#, python-format +msgid "Index of %(directory)s" +msgstr "Index of %(directory)s" + +msgid "Django: the Web framework for perfectionists with deadlines." +msgstr "" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" + +msgid "The install worked successfully! Congratulations!" +msgstr "" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not configured any " +"URLs." +msgstr "" + +msgid "Django Documentation" +msgstr "" + +msgid "Topics, references, & how-to’s" +msgstr "" + +msgid "Tutorial: A Polling App" +msgstr "" + +msgid "Get started with Django" +msgstr "" + +msgid "Django Community" +msgstr "" + +msgid "Connect, get help, or contribute" +msgstr "" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/en_GB/__init__.py b/venv/lib/python3.12/site-packages/django/conf/locale/en_GB/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/en_GB/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/en_GB/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b1e9a6823f59660992f304da8e6db4bf9acdf747 GIT binary patch literal 201 zcmX@j%ge<81o5sX(m?cM5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!%Fxfq&rQ|OP0Yy6 zFHO;RNiEZNN=(kybEFQ_cZ$j>v@Gc?jK&MZmQEdVM^ zOiwM=Pssu+OwP|s)6dCIPRvQwPtA*WchZlK&&S S5r~UHjE~HWjEqIhKo$URd^KqR literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/en_GB/__pycache__/formats.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/en_GB/__pycache__/formats.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b47654160042fc60daa5a68b39d466fb6716928c GIT binary patch literal 843 zcmZXSJ#X4T7{|}NzXTi;p!8*M2MPv?UW5Q8&l5&2sAf5_kVu({GaDey5EUJ43MP@zq;cP0Drt>w|rZ1|B;CA z00RUtg(&PpKI}(+96$jaL_r)vAsj|w9Kq3^4@G(a$9_;KisLATPf#2u(8)ZRr=8${ z6-wJz=x+B-P}j3)4kF3OTx+Zj$DvNEsj2-B>|imD%W%{-!`c9pu)^eQ!7 zuIQJ7@Ohcq*y>WFrEdE*m)ZR_jyY2nKGjA3i{2C(yuz!pvP`Kpxz*&Q@&TizmRJ%L zy{gEqMqR4@1o!0SVBLd#+ccor?wj@vhGk<0OYP3rf?#2IHEdfw8_o=C28Y*Ia5SIx zZR=g}&09FRo*IP_DQx$Q3B-d|eSqE<0LXK&+fk|81W>XvrX&liAk&vFZJ>ZV_MI`?`3GHyCUG${|# lZXme|#IEFQ_cZ$j>v@Gc?jK&MZmQEdVM^ zOiwM=Pssu+OwP|s)6dCIPRvQwPtA+>bk&cK&&S S5r~UHjE~HWjEqIhKo$USX*F&D literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/en_IE/__pycache__/formats.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/en_IE/__pycache__/formats.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..115793e53eb86522b6679e9084432aab2f1cd555 GIT binary patch literal 885 zcmZXSOK;jh5XaXL-r;2)N?WNys(e5KR%vgjs%nY}s5M5$D6%h>Va==9MnI78Dg6|^ z_ttMxsXcJCxb~DAN^YFGOMpPLhnfHUcK$P7$-l$lAiziEes%wN0QgIa{c-KY!$&N> z0|XR+D1|~U#f9988=Wa<$fJ0WSMegB;_CtA|3N8!oC7!qP*4e?kP<@Y%K0Lkjo6-H zhR?{hyILIB!L80^h;~;99cC)F2SEeMc3_*x-5rHjXT7$cL69*ZBOla)s0`E2U>4Y_ z9FbdCI=~Wv*?=8qlU_{O)=-yb6_BiBl_r$g|QaB-Qvs5hXXrATD#PsPaNxs_qT3$EwWAdlGL} z1yNFur>36J$+${QY?4k{6)NgA$9-PWTU)K(Xi2+y%~ksF8K*p6=04SU_KVu&8m!1l zg1Dlks?ch(_3{ym)?0ju6V)qGXf)WW4e6a*^CvmX^ vF(>(o=!-W?kaChKtndB4v}+0I`&jTL&gpd;q;O~4A(3|I#JA`qiD&-<*#q$} literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/en_IE/formats.py b/venv/lib/python3.12/site-packages/django/conf/locale/en_IE/formats.py new file mode 100644 index 0000000000..81b8324bbb --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/en_IE/formats.py @@ -0,0 +1,37 @@ +# This file is distributed under the same license as the Django package. +# +# The *_FORMAT strings use the Django date format syntax, +# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date +DATE_FORMAT = "j M Y" # '25 Oct 2006' +TIME_FORMAT = "H:i" # '14:30' +DATETIME_FORMAT = "j M Y, H:i" # '25 Oct 2006, 14:30' +YEAR_MONTH_FORMAT = "F Y" # 'October 2006' +MONTH_DAY_FORMAT = "j F" # '25 October' +SHORT_DATE_FORMAT = "d/m/Y" # '25/10/2006' +SHORT_DATETIME_FORMAT = "d/m/Y H:i" # '25/10/2006 14:30' +FIRST_DAY_OF_WEEK = 1 # Monday + +# The *_INPUT_FORMATS strings use the Python strftime format syntax, +# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior +DATE_INPUT_FORMATS = [ + "%d/%m/%Y", # '25/10/2006' + "%d/%m/%y", # '25/10/06' + "%d %b %Y", # '25 Oct 2006' + "%d %b, %Y", # '25 Oct, 2006' + "%d %B %Y", # '25 October 2006' + "%d %B, %Y", # '25 October, 2006' +] +DATETIME_INPUT_FORMATS = [ + "%Y-%m-%d %H:%M:%S", # '2006-10-25 14:30:59' + "%Y-%m-%d %H:%M:%S.%f", # '2006-10-25 14:30:59.000200' + "%Y-%m-%d %H:%M", # '2006-10-25 14:30' + "%d/%m/%Y %H:%M:%S", # '25/10/2006 14:30:59' + "%d/%m/%Y %H:%M:%S.%f", # '25/10/2006 14:30:59.000200' + "%d/%m/%Y %H:%M", # '25/10/2006 14:30' + "%d/%m/%y %H:%M:%S", # '25/10/06 14:30:59' + "%d/%m/%y %H:%M:%S.%f", # '25/10/06 14:30:59.000200' + "%d/%m/%y %H:%M", # '25/10/06 14:30' +] +DECIMAL_SEPARATOR = "." +THOUSAND_SEPARATOR = "," +NUMBER_GROUPING = 3 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/eo/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/conf/locale/eo/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..05260e5b049f420eec2387c91a681110388330ad GIT binary patch literal 27676 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, 2012-2013 +# Batist D 🐍 , 2013-2019 +# batisteo , 2011 +# Dinu Gherman , 2011 +# kristjan , 2011 +# Matthieu Desplantes , 2021 +# Meiyer , 2022 +# Nikolay Korotkiy , 2017-2018 +# Robin van der Vliet , 2019 +# Adamo Mesha , 2012 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2022-05-17 05:23-0500\n" +"PO-Revision-Date: 2022-05-25 06:49+0000\n" +"Last-Translator: Meiyer , 2022\n" +"Language-Team: Esperanto (http://www.transifex.com/django/django/language/" +"eo/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: eo\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Afrikaans" +msgstr "Afrikansa" + +msgid "Arabic" +msgstr "Araba" + +msgid "Algerian Arabic" +msgstr "Alĝeria araba" + +msgid "Asturian" +msgstr "Asturia" + +msgid "Azerbaijani" +msgstr "Azerbajĝana" + +msgid "Bulgarian" +msgstr "Bulgara" + +msgid "Belarusian" +msgstr "Belorusa" + +msgid "Bengali" +msgstr "Bengala" + +msgid "Breton" +msgstr "Bretona" + +msgid "Bosnian" +msgstr "Bosnia" + +msgid "Catalan" +msgstr "Kataluna" + +msgid "Czech" +msgstr "Ĉeĥa" + +msgid "Welsh" +msgstr "Kimra" + +msgid "Danish" +msgstr "Dana" + +msgid "German" +msgstr "Germana" + +msgid "Lower Sorbian" +msgstr "Malsuprasaroba" + +msgid "Greek" +msgstr "Greka" + +msgid "English" +msgstr "Angla" + +msgid "Australian English" +msgstr "Angla (Aŭstralia)" + +msgid "British English" +msgstr "Angla (Brita)" + +msgid "Esperanto" +msgstr "Esperanto" + +msgid "Spanish" +msgstr "Hispana" + +msgid "Argentinian Spanish" +msgstr "Hispana (Argentinio)" + +msgid "Colombian Spanish" +msgstr "Hispana (Kolombio)" + +msgid "Mexican Spanish" +msgstr "Hispana (Meksiko)" + +msgid "Nicaraguan Spanish" +msgstr "Hispana (Nikaragvo)" + +msgid "Venezuelan Spanish" +msgstr "Hispana (Venezuelo)" + +msgid "Estonian" +msgstr "Estona" + +msgid "Basque" +msgstr "Eŭska" + +msgid "Persian" +msgstr "Persa" + +msgid "Finnish" +msgstr "Finna" + +msgid "French" +msgstr "Franca" + +msgid "Frisian" +msgstr "Frisa" + +msgid "Irish" +msgstr "Irlanda" + +msgid "Scottish Gaelic" +msgstr "Skota gaela" + +msgid "Galician" +msgstr "Galega" + +msgid "Hebrew" +msgstr "Hebrea" + +msgid "Hindi" +msgstr "Hinda" + +msgid "Croatian" +msgstr "Kroata" + +msgid "Upper Sorbian" +msgstr "Suprasoraba" + +msgid "Hungarian" +msgstr "Hungara" + +msgid "Armenian" +msgstr "Armena" + +msgid "Interlingua" +msgstr "Interlingvaa" + +msgid "Indonesian" +msgstr "Indoneza" + +msgid "Igbo" +msgstr "Igba" + +msgid "Ido" +msgstr "Ido" + +msgid "Icelandic" +msgstr "Islanda" + +msgid "Italian" +msgstr "Itala" + +msgid "Japanese" +msgstr "Japana" + +msgid "Georgian" +msgstr "Kartvela" + +msgid "Kabyle" +msgstr "Kabila" + +msgid "Kazakh" +msgstr "Kazaĥa" + +msgid "Khmer" +msgstr "Kmera" + +msgid "Kannada" +msgstr "Kanara" + +msgid "Korean" +msgstr "Korea" + +msgid "Kyrgyz" +msgstr "Kirgiza" + +msgid "Luxembourgish" +msgstr "Luksemburga" + +msgid "Lithuanian" +msgstr "Litova" + +msgid "Latvian" +msgstr "Latva" + +msgid "Macedonian" +msgstr "Makedona" + +msgid "Malayalam" +msgstr "Malajala" + +msgid "Mongolian" +msgstr "Mongola" + +msgid "Marathi" +msgstr "Marata" + +msgid "Malay" +msgstr "Malaja" + +msgid "Burmese" +msgstr "Birma" + +msgid "Norwegian Bokmål" +msgstr "Norvega (bokmål)" + +msgid "Nepali" +msgstr "Nepala" + +msgid "Dutch" +msgstr "Nederlanda" + +msgid "Norwegian Nynorsk" +msgstr "Norvega (nynorsk)" + +msgid "Ossetic" +msgstr "Oseta" + +msgid "Punjabi" +msgstr "Panĝaba" + +msgid "Polish" +msgstr "Pola" + +msgid "Portuguese" +msgstr "Portugala" + +msgid "Brazilian Portuguese" +msgstr "Portugala (Brazilo)" + +msgid "Romanian" +msgstr "Rumana" + +msgid "Russian" +msgstr "Rusa" + +msgid "Slovak" +msgstr "Slovaka" + +msgid "Slovenian" +msgstr "Slovena" + +msgid "Albanian" +msgstr "Albana" + +msgid "Serbian" +msgstr "Serba" + +msgid "Serbian Latin" +msgstr "Serba (latina)" + +msgid "Swedish" +msgstr "Sveda" + +msgid "Swahili" +msgstr "Svahila" + +msgid "Tamil" +msgstr "Tamila" + +msgid "Telugu" +msgstr "Telugua" + +msgid "Tajik" +msgstr "Taĝika" + +msgid "Thai" +msgstr "Taja" + +msgid "Turkmen" +msgstr "Turkmena" + +msgid "Turkish" +msgstr "Turka" + +msgid "Tatar" +msgstr "Tatara" + +msgid "Udmurt" +msgstr "Udmurta" + +msgid "Ukrainian" +msgstr "Ukraina" + +msgid "Urdu" +msgstr "Urdua" + +msgid "Uzbek" +msgstr "Uzbeka" + +msgid "Vietnamese" +msgstr "Vjetnama" + +msgid "Simplified Chinese" +msgstr "Ĉina (simpligite)" + +msgid "Traditional Chinese" +msgstr "Ĉina (tradicie)" + +msgid "Messages" +msgstr "Mesaĝoj" + +msgid "Site Maps" +msgstr "Retejaj mapoj" + +msgid "Static Files" +msgstr "Statikaj dosieroj" + +msgid "Syndication" +msgstr "Abonrilato" + +#. Translators: String used to replace omitted page numbers in elided page +#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10]. +msgid "…" +msgstr "…" + +msgid "That page number is not an integer" +msgstr "Tia paĝnumero ne estas entjero" + +msgid "That page number is less than 1" +msgstr "La paĝnumero estas malpli ol 1" + +msgid "That page contains no results" +msgstr "Tiu paĝo ne enhavas rezultojn" + +msgid "Enter a valid value." +msgstr "Enigu ĝustan valoron." + +msgid "Enter a valid URL." +msgstr "Enigu ĝustan retadreson." + +msgid "Enter a valid integer." +msgstr "Enigu ĝustaforman entjeron." + +msgid "Enter a valid email address." +msgstr "Enigu ĝustaforman retpoŝtan adreson." + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" +"Enigu ĝustan “ĵetonvorton” konsistantan el latinaj literoj, ciferoj, " +"substrekoj, aŭ dividstrekoj." + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" +"Enigu ĝustan “ĵetonvorton” konsistantan el Unikodaj literoj, ciferoj, " +"substrekoj, aŭ dividstrekoj." + +msgid "Enter a valid IPv4 address." +msgstr "Enigu ĝustaforman IPv4-adreson." + +msgid "Enter a valid IPv6 address." +msgstr "Enigu ĝustaforman IPv6-adreson." + +msgid "Enter a valid IPv4 or IPv6 address." +msgstr "Enigu ĝustaforman IPv4- aŭ IPv6-adreson." + +msgid "Enter only digits separated by commas." +msgstr "Enigu nur ciferojn apartigitajn per komoj." + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "" +"Certigu ke ĉi tiu valoro estas %(limit_value)s (ĝi estas %(show_value)s). " + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "Certigu ke ĉi tiu valoro estas malpli ol aŭ egala al %(limit_value)s." + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "Certigu ke ĉi tiu valoro estas pli ol aŭ egala al %(limit_value)s." + +#, python-format +msgid "Ensure this value is a multiple of step size %(limit_value)s." +msgstr "Certigu ke ĉi tiu valoro estas oblo de paŝo-grando %(limit_value)s." + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Certigu, ke tiu valoro havas %(limit_value)d signon (ĝi havas " +"%(show_value)d)." +msgstr[1] "" +"Certigu ke ĉi tiu valoro enhavas almenaŭ %(limit_value)d signojn (ĝi havas " +"%(show_value)d)." + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Certigu, ke tio valuto maksimume havas %(limit_value)d karakterojn (ĝi havas " +"%(show_value)d)." +msgstr[1] "" +"Certigu ke ĉi tiu valoro maksimume enhavas %(limit_value)d signojn (ĝi havas " +"%(show_value)d)." + +msgid "Enter a number." +msgstr "Enigu nombron." + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "Certigu ke ne estas pli ol %(max)s cifero entute." +msgstr[1] "Certigu ke ne estas pli ol %(max)s ciferoj entute." + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "Certigu, ke ne estas pli ol %(max)s dekumaj lokoj." +msgstr[1] "Certigu, ke ne estas pli ol %(max)s dekumaj lokoj." + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "Certigu ke ne estas pli ol %(max)s ciferoj antaŭ la dekuma punkto." +msgstr[1] "Certigu ke ne estas pli ol %(max)s ciferoj antaŭ la dekuma punkto." + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" +"Sufikso “%(extension)s” de dosiernomo ne estas permesita. Eblaj sufiksoj " +"estas: %(allowed_extensions)s." + +msgid "Null characters are not allowed." +msgstr "Nulsignoj ne estas permesitaj." + +msgid "and" +msgstr "kaj" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "%(model_name)s kun tiuj %(field_labels)s jam ekzistas." + +#, python-format +msgid "Constraint “%(name)s” is violated." +msgstr "Limigo “%(name)s” estas malobservita." + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "Valoro %(value)r ne estas ebla elekto." + +msgid "This field cannot be null." +msgstr "Tiu ĉi kampo ne povas esti senvalora (null)." + +msgid "This field cannot be blank." +msgstr "Tiu ĉi kampo ne povas esti malplena." + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "%(model_name)s kun tiu %(field_label)s jam ekzistas." + +#. Translators: The 'lookup_type' is one of 'date', 'year' or +#. 'month'. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" +"%(field_label)s devas esti unika por %(date_field_label)s %(lookup_type)s." + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "Kampo de tipo: %(field_type)s" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "La valoro “%(value)s” devas esti aŭ Vera (True) aŭ Malvera (False)." + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "" +"La valoro “%(value)s” devas esti Vera (True), Malvera (False), aŭ Nenia " +"(None)." + +msgid "Boolean (Either True or False)" +msgstr "Bulea (Vera aŭ Malvera)" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "Ĉeno (ĝis %(max_length)s)" + +msgid "Comma-separated integers" +msgstr "Perkome disigitaj entjeroj" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" +"La valoro “%(value)s” havas malĝustan datformaton. Ĝi devas esti en la " +"formato JJJJ-MM-TT." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" +"La valoro “%(value)s” havas la ĝustan formaton (JJJJ-MM-TT), sed ĝi estas " +"neekzistanta dato." + +msgid "Date (without time)" +msgstr "Dato (sen horo)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" +"La valoro “%(value)s” havas malĝustan formaton. Ĝi devas esti en la formato " +"JJJJ-MM-TT HH:MM[:ss[.µµµµµµ]][TZ]." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" +"La valoro “%(value)s” havas la ĝustan formaton (JJJJ-MM-TT HH:MM[:ss[." +"µµµµµµ]][TZ]), sed ĝi estas neekzistanta dato/tempo." + +msgid "Date (with time)" +msgstr "Dato (kun horo)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "La valoro “%(value)s” devas esti dekuma frakcio." + +msgid "Decimal number" +msgstr "Dekuma nombro" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" +"La valoro “%(value)s” havas malĝustan formaton. Ĝi devas esti en la formato " +"[TT] [[HH:]MM:]ss[.µµµµµµ]." + +msgid "Duration" +msgstr "Daŭro" + +msgid "Email address" +msgstr "Retpoŝtadreso" + +msgid "File path" +msgstr "Dosierindiko" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "La valoro “%(value)s” devas esti glitpunkta nombro." + +msgid "Floating point number" +msgstr "Glitpunkta nombro" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "La valoro “%(value)s” devas esti entjero." + +msgid "Integer" +msgstr "Entjero" + +msgid "Big (8 byte) integer" +msgstr "Granda (8–bitoka) entjero" + +msgid "Small integer" +msgstr "Malgranda entjero" + +msgid "IPv4 address" +msgstr "IPv4-adreso" + +msgid "IP address" +msgstr "IP-adreso" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "" +"La valoro “%(value)s” devas esti Nenia (None), Vera (True), aŭ Malvera " +"(False)." + +msgid "Boolean (Either True, False or None)" +msgstr "Buleo (Vera, Malvera, aŭ Nenia)" + +msgid "Positive big integer" +msgstr "Pozitiva granda entjero" + +msgid "Positive integer" +msgstr "Pozitiva entjero" + +msgid "Positive small integer" +msgstr "Pozitiva malgranda entjero" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "Ĵetonvorto (ĝis %(max_length)s)" + +msgid "Text" +msgstr "Teksto" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" +"La valoro “%(value)s” havas malĝustan formaton. Ĝi devas esti en la formato " +"HH:MM[:ss[.µµµµµµ]]." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" +"La valoro “%(value)s” havas la (HH:MM[:ss[.µµµµµµ]]), sed tio estas " +"neekzistanta tempo." + +msgid "Time" +msgstr "Horo" + +msgid "URL" +msgstr "URL" + +msgid "Raw binary data" +msgstr "Kruda duuma datumo" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "“%(value)s” ne estas ĝustaforma UUID." + +msgid "Universally unique identifier" +msgstr "Universale unika identigilo" + +msgid "File" +msgstr "Dosiero" + +msgid "Image" +msgstr "Bildo" + +msgid "A JSON object" +msgstr "JSON-objekto" + +msgid "Value must be valid JSON." +msgstr "La valoro devas esti ĝustaforma JSON." + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "Ekzemplero de %(model)s kun %(field)s egala al %(value)r ne ekzistas." + +msgid "Foreign Key (type determined by related field)" +msgstr "Fremda ŝlosilo (tipo determinita per rilata kampo)" + +msgid "One-to-one relationship" +msgstr "Unu-al-unu rilato" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "%(from)s-%(to)s rilato" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "%(from)s-%(to)s rilatoj" + +msgid "Many-to-many relationship" +msgstr "Mult-al-multa rilato" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr ":?.!" + +msgid "This field is required." +msgstr "Ĉi tiu kampo estas deviga." + +msgid "Enter a whole number." +msgstr "Enigu plenan nombron." + +msgid "Enter a valid date." +msgstr "Enigu ĝustan daton." + +msgid "Enter a valid time." +msgstr "Enigu ĝustan horon." + +msgid "Enter a valid date/time." +msgstr "Enigu ĝustan daton/tempon." + +msgid "Enter a valid duration." +msgstr "Enigu ĝustan daŭron." + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "La nombro de tagoj devas esti inter {min_days} kaj {max_days}." + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "" +"Neniu dosiero estis alŝutita. Kontrolu la kodoprezentan tipon en la " +"formularo." + +msgid "No file was submitted." +msgstr "Neniu dosiero estis alŝutita." + +msgid "The submitted file is empty." +msgstr "La alŝutita dosiero estas malplena." + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" +"Certigu, ke tio dosiernomo maksimume havas %(max)d karakteron (ĝi havas " +"%(length)d)." +msgstr[1] "" +"Certigu ke la dosiernomo maksimume havas %(max)d signojn (ĝi havas " +"%(length)d)." + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "" +"Bonvolu aŭ alŝuti dosieron, aŭ elekti la vakigan markobutonon, sed ne ambaŭ." + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" +"Alŝutu ĝustaforman bildon. La alŝutita dosiero ne estas bildo aŭ estas " +"difektita bildo." + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "Elektu ekzistantan opcion. %(value)s ne estas el la eblaj elektoj." + +msgid "Enter a list of values." +msgstr "Enigu liston de valoroj." + +msgid "Enter a complete value." +msgstr "Enigu kompletan valoron." + +msgid "Enter a valid UUID." +msgstr "Enigu ĝustaforman UUID." + +msgid "Enter a valid JSON." +msgstr "Enigu ĝustaforman JSON." + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr ":" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "(Kaŝita kampo %(name)s) %(error)s" + +#, python-format +msgid "" +"ManagementForm data is missing or has been tampered with. Missing fields: " +"%(field_names)s. You may need to file a bug report if the issue persists." +msgstr "" +"La datumoj de la mastruma ManagementForm mankas aŭ estis malice modifitaj. " +"Mankas la kampoj: %(field_names)s. Se la problemo plu okazas, vi poveble " +"devintus raporti cimon." + +#, python-format +msgid "Please submit at most %(num)d form." +msgid_plural "Please submit at most %(num)d forms." +msgstr[0] "Bonvolu forsendi maksimume %(num)d formularon." +msgstr[1] "Bonvolu forsendi maksimume %(num)d formularojn." + +#, python-format +msgid "Please submit at least %(num)d form." +msgid_plural "Please submit at least %(num)d forms." +msgstr[0] "Bonvolu forsendi almenaŭ %(num)d formularon." +msgstr[1] "Bonvolu forsendi almenaŭ %(num)d formularojn." + +msgid "Order" +msgstr "Ordo" + +msgid "Delete" +msgstr "Forigi" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "Bonvolu ĝustigi la duoblan datumon por %(field)s." + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "" +"Bonvolu ĝustigi la duoblan datumon por %(field)s, kiu devas esti unika." + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"Bonvolu ĝustigi la duoblan datumon por %(field_name)s, kiu devas esti unika " +"por la %(lookup)s en %(date_field)s." + +msgid "Please correct the duplicate values below." +msgstr "Bonvolu ĝustigi la duoblan valoron sube." + +msgid "The inline value did not match the parent instance." +msgstr "La enteksta valoro ne egalas la patran ekzempleron." + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "Elektu ekzistantan opcion. Ĉi tiu opcio ne estas el la eblaj elektoj." + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "“%(pk)s” estas neakceptebla valoro." + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" +"Ne eblis interpreti %(datetime)s en la tempo-zono %(current_timezone)s. Ĝi " +"eble estas ambigua aŭ ne ekzistas en tiu tempo-zono." + +msgid "Clear" +msgstr "Vakigi" + +msgid "Currently" +msgstr "Nuntempe" + +msgid "Change" +msgstr "Ŝanĝi" + +msgid "Unknown" +msgstr "Nekonate" + +msgid "Yes" +msgstr "Jes" + +msgid "No" +msgstr "Ne" + +#. Translators: Please do not add spaces around commas. +msgid "yes,no,maybe" +msgstr "jes,ne,eble" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)d bitoko" +msgstr[1] "%(size)d bitokoj" + +#, python-format +msgid "%s KB" +msgstr "%s KB" + +#, python-format +msgid "%s MB" +msgstr "%s MB" + +#, python-format +msgid "%s GB" +msgstr "%s GB" + +#, python-format +msgid "%s TB" +msgstr "%s TB" + +#, python-format +msgid "%s PB" +msgstr "%s PB" + +msgid "p.m." +msgstr "ptm" + +msgid "a.m." +msgstr "atm" + +msgid "PM" +msgstr "PTM" + +msgid "AM" +msgstr "ATM" + +msgid "midnight" +msgstr "noktomezo" + +msgid "noon" +msgstr "tagmezo" + +msgid "Monday" +msgstr "lundo" + +msgid "Tuesday" +msgstr "mardo" + +msgid "Wednesday" +msgstr "merkredo" + +msgid "Thursday" +msgstr "ĵaŭdo" + +msgid "Friday" +msgstr "vendredo" + +msgid "Saturday" +msgstr "sabato" + +msgid "Sunday" +msgstr "dimanĉo" + +msgid "Mon" +msgstr "lun" + +msgid "Tue" +msgstr "mar" + +msgid "Wed" +msgstr "mer" + +msgid "Thu" +msgstr "ĵaŭ" + +msgid "Fri" +msgstr "ven" + +msgid "Sat" +msgstr "sab" + +msgid "Sun" +msgstr "dim" + +msgid "January" +msgstr "januaro" + +msgid "February" +msgstr "februaro" + +msgid "March" +msgstr "marto" + +msgid "April" +msgstr "aprilo" + +msgid "May" +msgstr "majo" + +msgid "June" +msgstr "junio" + +msgid "July" +msgstr "julio" + +msgid "August" +msgstr "aŭgusto" + +msgid "September" +msgstr "septembro" + +msgid "October" +msgstr "oktobro" + +msgid "November" +msgstr "novembro" + +msgid "December" +msgstr "decembro" + +msgid "jan" +msgstr "jan" + +msgid "feb" +msgstr "feb" + +msgid "mar" +msgstr "mar" + +msgid "apr" +msgstr "apr" + +msgid "may" +msgstr "maj" + +msgid "jun" +msgstr "jun" + +msgid "jul" +msgstr "jul" + +msgid "aug" +msgstr "aŭg" + +msgid "sep" +msgstr "sep" + +msgid "oct" +msgstr "okt" + +msgid "nov" +msgstr "nov" + +msgid "dec" +msgstr "dec" + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "jan." + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "feb." + +msgctxt "abbrev. month" +msgid "March" +msgstr "mar." + +msgctxt "abbrev. month" +msgid "April" +msgstr "apr." + +msgctxt "abbrev. month" +msgid "May" +msgstr "majo" + +msgctxt "abbrev. month" +msgid "June" +msgstr "jun." + +msgctxt "abbrev. month" +msgid "July" +msgstr "jul." + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "aŭg." + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "sept." + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "okt." + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "nov." + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "dec." + +msgctxt "alt. month" +msgid "January" +msgstr "Januaro" + +msgctxt "alt. month" +msgid "February" +msgstr "Februaro" + +msgctxt "alt. month" +msgid "March" +msgstr "Marto" + +msgctxt "alt. month" +msgid "April" +msgstr "Aprilo" + +msgctxt "alt. month" +msgid "May" +msgstr "Majo" + +msgctxt "alt. month" +msgid "June" +msgstr "Junio" + +msgctxt "alt. month" +msgid "July" +msgstr "Julio" + +msgctxt "alt. month" +msgid "August" +msgstr "Aŭgusto" + +msgctxt "alt. month" +msgid "September" +msgstr "Septembro" + +msgctxt "alt. month" +msgid "October" +msgstr "Oktobro" + +msgctxt "alt. month" +msgid "November" +msgstr "Novembro" + +msgctxt "alt. month" +msgid "December" +msgstr "Decembro" + +msgid "This is not a valid IPv6 address." +msgstr "Tio ne estas ĝustaforma IPv6-adreso." + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "%(truncated_text)s…" + +msgid "or" +msgstr "aŭ" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr ", " + +#, python-format +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "%(num)d jaro" +msgstr[1] "%(num)d jaroj" + +#, python-format +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "%(num)d monato" +msgstr[1] "%(num)d monatoj" + +#, python-format +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "%(num)d semajno" +msgstr[1] "%(num)d semajnoj" + +#, python-format +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "%(num)d tago" +msgstr[1] "%(num)d tagoj" + +#, python-format +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "%(num)d horo" +msgstr[1] "%(num)d horoj" + +#, python-format +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "%(num)d minuto" +msgstr[1] "%(num)d minutoj" + +msgid "Forbidden" +msgstr "Malpermesita" + +msgid "CSRF verification failed. Request aborted." +msgstr "Kontrolo de CSRF malsukcesis. Peto ĉesigita." + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" +"Vi vidas tiun ĉi mesaĝon ĉar ĉi-tiu HTTPS-retejo postulas ricevi la " +"kapinstrukcion “Referer” de via retumilo, sed neniu estis sendita. Tia " +"kapinstrukcio estas bezonata pro sekurecaj kialoj, por certigi ke via " +"retumilo ne agas laŭ nedezirataj instrukcioj de maliculoj." + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" +"Se la agordoj de via retumilo malebligas la kapinstrukciojn “Referer”, " +"bonvolu ebligi ilin por tiu ĉi retejo, aŭ por HTTPS-konektoj, aŭ por petoj " +"el sama fonto (“same-origin”)." + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" +"Se vi uzas la etikedon aŭ " +"sendas la kapinstrukcion “Referrer-Policy: no-referrer”, bonvolu forigi " +"ilin. La protekto kontraŭ CSRF postulas la ĉeeston de la kapinstrukcio " +"“Referer”, kaj strikte kontrolas la referencantan fonton. Se vi zorgas pri " +"privateco, uzu alternativojn kiajn por ligiloj al " +"eksteraj retejoj." + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" +"Vi vidas tiun ĉi mesaĝon ĉar ĉi-tiu retejo postulas ke CSRF-kuketo estu " +"sendita kune kun la formularoj. Tia kuketo estas bezonata pro sekurecaj " +"kialoj, por certigi ke via retumilo ne agas laŭ nedezirataj instrukcioj de " +"maliculoj." + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" +"Se la agordoj de via retumilo malebligas kuketojn, bonvolu ebligi ilin por " +"tiu ĉi retejo aŭ por petoj el sama fonto (“same-origin”)." + +msgid "More information is available with DEBUG=True." +msgstr "Pliaj informoj estas videblaj kun DEBUG=True." + +msgid "No year specified" +msgstr "Neniu jaro indikita" + +msgid "Date out of range" +msgstr "Dato ne en la intervalo" + +msgid "No month specified" +msgstr "Neniu monato indikita" + +msgid "No day specified" +msgstr "Neniu tago indikita" + +msgid "No week specified" +msgstr "Neniu semajno indikita" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "Neniuj %(verbose_name_plural)s estas disponeblaj" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" +"Estontaj %(verbose_name_plural)s ne disponeblas ĉar %(class_name)s." +"allow_future estas Malvera." + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "Erarforma dato-ĉeno “%(datestr)s” se uzi la formaton “%(format)s”" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "Neniu %(verbose_name)s trovita kongrua kun la informpeto" + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "Paĝo ne estas “lasta”, nek eblas konverti ĝin en entjeron." + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "Malĝusta paĝo (%(page_number)s): %(message)s" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "" +"La listo estas malplena dum “%(class_name)s.allow_empty” estas Malvera." + +msgid "Directory indexes are not allowed here." +msgstr "Dosierujaj indeksoj ne estas permesitaj ĉi tie." + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "“%(path)s” ne ekzistas" + +#, python-format +msgid "Index of %(directory)s" +msgstr "Indekso de %(directory)s" + +msgid "The install worked successfully! Congratulations!" +msgstr "La instalado sukcesis! Gratulojn!" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" +"Vidu eldonajn notojn por Dĵango %(version)s" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not " +"configured any URLs." +msgstr "" +"Vi vidas ĉi tiun paĝon ĉar DEBUG = " +"True estas en via agorda dosiero kaj vi ne agordis ajnan URL." + +msgid "Django Documentation" +msgstr "Dĵanga dokumentaro" + +msgid "Topics, references, & how-to’s" +msgstr "Temoj, referencoj, kaj instruiloj" + +msgid "Tutorial: A Polling App" +msgstr "Instruilo: apo pri enketoj" + +msgid "Get started with Django" +msgstr "Komencu kun Dĵango" + +msgid "Django Community" +msgstr "Dĵanga komunumo" + +msgid "Connect, get help, or contribute" +msgstr "Konektiĝu, ricevu helpon aŭ kontribuu" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/eo/__init__.py b/venv/lib/python3.12/site-packages/django/conf/locale/eo/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/eo/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/eo/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..959026e7acd254edbcd0ca486f55e1041479c2af GIT binary patch literal 198 zcmX@j%ge<81o5sX(m?cM5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!O4ZNE&rQ|OP0Yy6 zFHO;RNiEZNN=(kybEFQ_cZ$j>v@Gc?jK&MZmQEdVM^ zOiwM=Pssu+OwP|s)6dCIPRvQwPtDhlkI&4@EQycTE2#X%VUwGmQks)$SHudml@W-G PL5z>gjEsy$%s>_Z#b7jl literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/eo/__pycache__/formats.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/eo/__pycache__/formats.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..210bd96e2ad36b5f18d560020a8d83087a459210 GIT binary patch literal 1002 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 Ua=az}?^&wT4>9NEayjq+1Kta);{X5v literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/es/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/conf/locale/es/LC_MESSAGES/django.po new file mode 100644 index 0000000000..77ec5f4834 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/es/LC_MESSAGES/django.po @@ -0,0 +1,1412 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# 8cb2d5a716c3c9a99b6d20472609a4d5_6d03802 , 2011 +# Abe Estrada, 2013 +# Abe Estrada, 2013 +# albertoalcolea , 2014 +# albertoalcolea , 2014 +# Amanda Copete, 2017 +# Amanda Copete, 2017 +# Antoni Aloy , 2011-2014,2017,2019 +# Claude Paroz , 2020 +# Diego Andres Sanabria Martin , 2012 +# Diego Schulz , 2012 +# e4db27214f7e7544f2022c647b585925_bb0e321, 2014,2020 +# e4db27214f7e7544f2022c647b585925_bb0e321, 2015-2016 +# e4db27214f7e7544f2022c647b585925_bb0e321, 2014 +# e4db27214f7e7544f2022c647b585925_bb0e321, 2020 +# Ernesto Rico Schmidt , 2017 +# Ernesto Rico Schmidt , 2017 +# 8cb2d5a716c3c9a99b6d20472609a4d5_6d03802 , 2011 +# Ignacio José Lizarán Rus , 2019 +# Igor Támara , 2015 +# Jannis Leidel , 2011 +# Jorge Andres Bravo Meza, 2024 +# José Luis , 2016 +# José Luis , 2016 +# Josue Naaman Nistal Guerra , 2014 +# Leonardo J. Caballero G. , 2011,2013 +# Luigy, 2019 +# Luigy, 2019 +# Marc Garcia , 2011 +# Mariusz Felisiak , 2021 +# mpachas , 2022 +# monobotsoft , 2012 +# Natalia, 2024 +# ntrrgc , 2013 +# ntrrgc , 2013 +# Pablo, 2015 +# Pablo, 2015 +# Sebastián Magrí, 2013 +# Sebastián Magrí, 2013 +# Uriel Medina , 2020-2021,2023 +# Veronicabh , 2015 +# Veronicabh , 2015 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-05-22 11:46-0300\n" +"PO-Revision-Date: 2024-08-07 06:49+0000\n" +"Last-Translator: Jorge Andres Bravo Meza, 2024\n" +"Language-Team: Spanish (http://app.transifex.com/django/django/language/" +"es/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: es\n" +"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? " +"1 : 2;\n" + +msgid "Afrikaans" +msgstr "Africano" + +msgid "Arabic" +msgstr "Árabe" + +msgid "Algerian Arabic" +msgstr "Árabe argelino" + +msgid "Asturian" +msgstr "Asturiano" + +msgid "Azerbaijani" +msgstr "Azerbaiyán" + +msgid "Bulgarian" +msgstr "Búlgaro" + +msgid "Belarusian" +msgstr "Bielorruso" + +msgid "Bengali" +msgstr "Bengalí" + +msgid "Breton" +msgstr "Bretón" + +msgid "Bosnian" +msgstr "Bosnio" + +msgid "Catalan" +msgstr "Catalán" + +msgid "Central Kurdish (Sorani)" +msgstr "Kurdo central (Sorani)" + +msgid "Czech" +msgstr "Checo" + +msgid "Welsh" +msgstr "Galés" + +msgid "Danish" +msgstr "Danés" + +msgid "German" +msgstr "Alemán" + +msgid "Lower Sorbian" +msgstr "Bajo sorbio" + +msgid "Greek" +msgstr "Griego" + +msgid "English" +msgstr "Inglés" + +msgid "Australian English" +msgstr "Inglés australiano" + +msgid "British English" +msgstr "Inglés británico" + +msgid "Esperanto" +msgstr "Esperanto" + +msgid "Spanish" +msgstr "Español" + +msgid "Argentinian Spanish" +msgstr "Español de Argentina" + +msgid "Colombian Spanish" +msgstr "Español de Colombia" + +msgid "Mexican Spanish" +msgstr "Español de México" + +msgid "Nicaraguan Spanish" +msgstr "Español de Nicaragua" + +msgid "Venezuelan Spanish" +msgstr "Español de Venezuela" + +msgid "Estonian" +msgstr "Estonio" + +msgid "Basque" +msgstr "Vasco" + +msgid "Persian" +msgstr "Persa" + +msgid "Finnish" +msgstr "Finés" + +msgid "French" +msgstr "Francés" + +msgid "Frisian" +msgstr "Frisón" + +msgid "Irish" +msgstr "Irlandés" + +msgid "Scottish Gaelic" +msgstr "Gaélico Escocés" + +msgid "Galician" +msgstr "Gallego" + +msgid "Hebrew" +msgstr "Hebreo" + +msgid "Hindi" +msgstr "Hindi" + +msgid "Croatian" +msgstr "Croata" + +msgid "Upper Sorbian" +msgstr "Alto sorbio" + +msgid "Hungarian" +msgstr "Húngaro" + +msgid "Armenian" +msgstr "Armenio" + +msgid "Interlingua" +msgstr "Interlingua" + +msgid "Indonesian" +msgstr "Indonesio" + +msgid "Igbo" +msgstr "Igbo" + +msgid "Ido" +msgstr "Ido" + +msgid "Icelandic" +msgstr "Islandés" + +msgid "Italian" +msgstr "Italiano" + +msgid "Japanese" +msgstr "Japonés" + +msgid "Georgian" +msgstr "Georgiano" + +msgid "Kabyle" +msgstr "Cabilio" + +msgid "Kazakh" +msgstr "Kazajo" + +msgid "Khmer" +msgstr "Khmer" + +msgid "Kannada" +msgstr "Kannada" + +msgid "Korean" +msgstr "Coreano" + +msgid "Kyrgyz" +msgstr "Kirguís" + +msgid "Luxembourgish" +msgstr "Luxenburgués" + +msgid "Lithuanian" +msgstr "Lituano" + +msgid "Latvian" +msgstr "Letón" + +msgid "Macedonian" +msgstr "Macedonio" + +msgid "Malayalam" +msgstr "Malayalam" + +msgid "Mongolian" +msgstr "Mongol" + +msgid "Marathi" +msgstr "Maratí" + +msgid "Malay" +msgstr "Malayo" + +msgid "Burmese" +msgstr "Birmano" + +msgid "Norwegian Bokmål" +msgstr "Bokmål noruego" + +msgid "Nepali" +msgstr "Nepalí" + +msgid "Dutch" +msgstr "Holandés" + +msgid "Norwegian Nynorsk" +msgstr "Nynorsk" + +msgid "Ossetic" +msgstr "Osetio" + +msgid "Punjabi" +msgstr "Panyabí" + +msgid "Polish" +msgstr "Polaco" + +msgid "Portuguese" +msgstr "Portugués" + +msgid "Brazilian Portuguese" +msgstr "Portugués de Brasil" + +msgid "Romanian" +msgstr "Rumano" + +msgid "Russian" +msgstr "Ruso" + +msgid "Slovak" +msgstr "Eslovaco" + +msgid "Slovenian" +msgstr "Esloveno" + +msgid "Albanian" +msgstr "Albanés" + +msgid "Serbian" +msgstr "Serbio" + +msgid "Serbian Latin" +msgstr "Serbio latino" + +msgid "Swedish" +msgstr "Sueco" + +msgid "Swahili" +msgstr "Suajili" + +msgid "Tamil" +msgstr "Tamil" + +msgid "Telugu" +msgstr "Telugu" + +msgid "Tajik" +msgstr "Tayiko" + +msgid "Thai" +msgstr "Tailandés" + +msgid "Turkmen" +msgstr "Turcomanos" + +msgid "Turkish" +msgstr "Turco" + +msgid "Tatar" +msgstr "Tártaro" + +msgid "Udmurt" +msgstr "Udmurt" + +msgid "Uyghur" +msgstr "Uigur" + +msgid "Ukrainian" +msgstr "Ucraniano" + +msgid "Urdu" +msgstr "Urdu" + +msgid "Uzbek" +msgstr "Uzbeko" + +msgid "Vietnamese" +msgstr "Vietnamita" + +msgid "Simplified Chinese" +msgstr "Chino simplificado" + +msgid "Traditional Chinese" +msgstr "Chino tradicional" + +msgid "Messages" +msgstr "Mensajes" + +msgid "Site Maps" +msgstr "Mapas del sitio" + +msgid "Static Files" +msgstr "Archivos estáticos" + +msgid "Syndication" +msgstr "Sindicación" + +#. Translators: String used to replace omitted page numbers in elided page +#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10]. +msgid "…" +msgstr "..." + +msgid "That page number is not an integer" +msgstr "Este número de página no es un entero" + +msgid "That page number is less than 1" +msgstr "Este número de página es menor que 1" + +msgid "That page contains no results" +msgstr "Esa página no contiene resultados" + +msgid "Enter a valid value." +msgstr "Introduzca un valor válido." + +msgid "Enter a valid domain name." +msgstr "Ingrese un nombre de dominio válido." + +msgid "Enter a valid URL." +msgstr "Introduzca una URL válida." + +msgid "Enter a valid integer." +msgstr "Introduzca un número entero válido." + +msgid "Enter a valid email address." +msgstr "Introduzca una dirección de correo electrónico válida." + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" +"Introduzca un 'slug' válido, consistente en letras, números, guiones bajos o " +"medios." + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" +"Introduzca un 'slug' válido, consistente en letras, números, guiones bajos o " +"medios de Unicode." + +#, python-format +msgid "Enter a valid %(protocol)s address." +msgstr "Ingrese una dirección de %(protocol)s válida." + +msgid "IPv4" +msgstr "IPv4" + +msgid "IPv6" +msgstr "IPv6" + +msgid "IPv4 or IPv6" +msgstr "IPv4 o IPv6" + +msgid "Enter only digits separated by commas." +msgstr "Introduzca sólo dígitos separados por comas." + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "" +"Asegúrese de que este valor es %(limit_value)s (actualmente es " +"%(show_value)s)." + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "Asegúrese de que este valor es menor o igual a %(limit_value)s." + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "Asegúrese de que este valor es mayor o igual a %(limit_value)s." + +#, python-format +msgid "Ensure this value is a multiple of step size %(limit_value)s." +msgstr "Asegúrese de que este valor es múltiplo de %(limit_value)s." + +#, python-format +msgid "" +"Ensure this value is a multiple of step size %(limit_value)s, starting from " +"%(offset)s, e.g. %(offset)s, %(valid_value1)s, %(valid_value2)s, and so on." +msgstr "" +"Asegúrese de que este valor sea un múltiplo del tamaño del " +"paso%(limit_value)s, comenzando en%(offset)s, p.ej. %(offset)s, " +"%(valid_value1)s, %(valid_value2)s, etcétera." + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Asegúrese de que este valor tenga al menos %(limit_value)d caracter (tiene " +"%(show_value)d)." +msgstr[1] "" +"Asegúrese de que este valor tenga al menos %(limit_value)d carácter(es) " +"(tiene%(show_value)d)." +msgstr[2] "" +"Asegúrese de que este valor tenga al menos %(limit_value)d carácter(es) " +"(tiene%(show_value)d)." + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Asegúrese de que este valor tenga menos de %(limit_value)d caracter (tiene " +"%(show_value)d)." +msgstr[1] "" +"Asegúrese de que este valor tenga menos de %(limit_value)d caracteres (tiene " +"%(show_value)d)." +msgstr[2] "" +"Asegúrese de que este valor tenga menos de %(limit_value)d caracteres (tiene " +"%(show_value)d)." + +msgid "Enter a number." +msgstr "Introduzca un número." + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "Asegúrese de que no hay más de %(max)s dígito en total." +msgstr[1] "Asegúrese de que no haya más de %(max)s dígitos en total." +msgstr[2] "Asegúrese de que no haya más de %(max)s dígitos en total." + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "Asegúrese de que no haya más de %(max)s dígito decimal." +msgstr[1] "Asegúrese de que no haya más de %(max)s dígitos decimales." +msgstr[2] "Asegúrese de que no haya más de %(max)s dígitos decimales." + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "" +"Asegúrese de que no haya más de %(max)s dígito antes del punto decimal" +msgstr[1] "" +"Asegúrese de que no haya más de %(max)s dígitos antes del punto decimal." +msgstr[2] "" +"Asegúrese de que no haya más de %(max)s dígitos antes del punto decimal." + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" +"La extensión de archivo “%(extension)s” no esta permitida. Las extensiones " +"permitidas son: %(allowed_extensions)s." + +msgid "Null characters are not allowed." +msgstr "Los caracteres nulos no están permitidos." + +msgid "and" +msgstr "y" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "%(model_name)s con este %(field_labels)s ya existe." + +#, python-format +msgid "Constraint “%(name)s” is violated." +msgstr "No se cumple la restricción \"%(name)s\"." + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "Valor %(value)r no es una opción válida." + +msgid "This field cannot be null." +msgstr "Este campo no puede ser nulo." + +msgid "This field cannot be blank." +msgstr "Este campo no puede estar vacío." + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "Ya existe %(model_name)s con este %(field_label)s." + +#. Translators: The 'lookup_type' is one of 'date', 'year' or +#. 'month'. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" +"%(field_label)s debe ser único para %(date_field_label)s %(lookup_type)s." + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "Campo de tipo: %(field_type)s" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "“%(value)s”: el valor debe ser Verdadero o Falso." + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "“%(value)s”: el valor debe ser Verdadero, Falso o Nulo." + +msgid "Boolean (Either True or False)" +msgstr "Booleano (Verdadero o Falso)" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "Cadena (máximo %(max_length)s)" + +msgid "String (unlimited)" +msgstr "Cadena (ilimitado)" + +msgid "Comma-separated integers" +msgstr "Enteros separados por coma" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" +"“%(value)s” : el valor tiene un formato de fecha inválido. Debería estar en " +"el formato YYYY-MM-DD." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" +"“%(value)s” : el valor tiene el formato correcto (YYYY-MM-DD) pero es una " +"fecha inválida." + +msgid "Date (without time)" +msgstr "Fecha (sin hora)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" +"“%(value)s”: el valor tiene un formato inválido. Debería estar en el formato " +"YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ]." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" +"“%(value)s”: el valor tiene el formato correcto (YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ]) pero es una fecha inválida." + +msgid "Date (with time)" +msgstr "Fecha (con hora)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "“%(value)s”: el valor debe ser un número decimal." + +msgid "Decimal number" +msgstr "Número decimal" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" +"“%(value)s”: el valor tiene un formato inválido. Debería estar en el formato " +"[DD] [[HH:]MM:]ss[.uuuuuu]" + +msgid "Duration" +msgstr "Duración" + +msgid "Email address" +msgstr "Correo electrónico" + +msgid "File path" +msgstr "Ruta de fichero" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "“%(value)s”: el valor debería ser un número de coma flotante." + +msgid "Floating point number" +msgstr "Número en coma flotante" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "“%(value)s”: el valor debería ser un numero entero" + +msgid "Integer" +msgstr "Entero" + +msgid "Big (8 byte) integer" +msgstr "Entero grande (8 bytes)" + +msgid "Small integer" +msgstr "Entero corto" + +msgid "IPv4 address" +msgstr "Dirección IPv4" + +msgid "IP address" +msgstr "Dirección IP" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "“%(value)s”: el valor debería ser None, Verdadero o Falso." + +msgid "Boolean (Either True, False or None)" +msgstr "Booleano (Verdadero, Falso o Nulo)" + +msgid "Positive big integer" +msgstr "Entero grande positivo" + +msgid "Positive integer" +msgstr "Entero positivo" + +msgid "Positive small integer" +msgstr "Entero positivo corto" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "Slug (hasta %(max_length)s)" + +msgid "Text" +msgstr "Texto" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" +"“%(value)s”: el valor tiene un formato inválido. Debería estar en el formato " +"HH:MM[:ss[.uuuuuu]]." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" +"“%(value)s” : el valor tiene el formato correcto (HH:MM[:ss[.uuuuuu]]) pero " +"es un tiempo inválido." + +msgid "Time" +msgstr "Hora" + +msgid "URL" +msgstr "URL" + +msgid "Raw binary data" +msgstr "Datos binarios en bruto" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "“%(value)s” no es un UUID válido." + +msgid "Universally unique identifier" +msgstr "Identificador universal único" + +msgid "File" +msgstr "Archivo" + +msgid "Image" +msgstr "Imagen" + +msgid "A JSON object" +msgstr "Un objeto JSON" + +msgid "Value must be valid JSON." +msgstr "El valor debe ser un objeto JSON válido." + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "La instancia de %(model)s con %(field)s %(value)r no existe." + +msgid "Foreign Key (type determined by related field)" +msgstr "Clave foránea (tipo determinado por el campo relacionado)" + +msgid "One-to-one relationship" +msgstr "Relación uno-a-uno" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "relación %(from)s-%(to)s" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "relaciones %(from)s-%(to)s" + +msgid "Many-to-many relationship" +msgstr "Relación muchos-a-muchos" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr ":?.!" + +msgid "This field is required." +msgstr "Este campo es obligatorio." + +msgid "Enter a whole number." +msgstr "Introduzca un número entero." + +msgid "Enter a valid date." +msgstr "Introduzca una fecha válida." + +msgid "Enter a valid time." +msgstr "Introduzca una hora válida." + +msgid "Enter a valid date/time." +msgstr "Introduzca una fecha/hora válida." + +msgid "Enter a valid duration." +msgstr "Introduzca una duración válida." + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "El número de días debe estar entre {min_days} y {max_days}." + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "" +"No se ha enviado ningún fichero. Compruebe el tipo de codificación en el " +"formulario." + +msgid "No file was submitted." +msgstr "No se ha enviado ningún fichero" + +msgid "The submitted file is empty." +msgstr "El fichero enviado está vacío." + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" +"Asegúrese de que este nombre de archivo tenga como máximo %(max)d caracter " +"(tiene %(length)d)." +msgstr[1] "" +"Asegúrese de que este nombre de archivo tenga como máximo %(max)d " +"carácter(es) (tiene %(length)d)." +msgstr[2] "" +"Asegúrese de que este nombre de archivo tenga como máximo %(max)d " +"carácter(es) (tiene %(length)d)." + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "" +"Por favor envíe un fichero o marque la casilla de limpiar, pero no ambos." + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" +"Envíe una imagen válida. El fichero que ha enviado no era una imagen o se " +"trataba de una imagen corrupta." + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "" +"Escoja una opción válida. %(value)s no es una de las opciones disponibles." + +msgid "Enter a list of values." +msgstr "Introduzca una lista de valores." + +msgid "Enter a complete value." +msgstr "Introduzca un valor completo." + +msgid "Enter a valid UUID." +msgstr "Introduzca un UUID válido." + +msgid "Enter a valid JSON." +msgstr "Ingresa un JSON válido." + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr ":" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "(Campo oculto %(name)s) *%(error)s" + +#, python-format +msgid "" +"ManagementForm data is missing or has been tampered with. Missing fields: " +"%(field_names)s. You may need to file a bug report if the issue persists." +msgstr "" +"Los datos de ManagementForm faltan o han sido alterados. Campos que faltan: " +"%(field_names)s. Es posible que deba presentar un informe de error si el " +"problema persiste." + +#, python-format +msgid "Please submit at most %(num)d form." +msgid_plural "Please submit at most %(num)d forms." +msgstr[0] "Por favor, envíe %(num)d formulario como máximo." +msgstr[1] "Por favor, envíe %(num)d formularios como máximo." +msgstr[2] "Por favor, envíe %(num)d formularios como máximo." + +#, python-format +msgid "Please submit at least %(num)d form." +msgid_plural "Please submit at least %(num)d forms." +msgstr[0] "Por favor, envíe %(num)d formulario como mínimo." +msgstr[1] "Por favor, envíe %(num)d formularios como mínimo." +msgstr[2] "Por favor, envíe %(num)d formularios como mínimo." + +msgid "Order" +msgstr "Orden" + +msgid "Delete" +msgstr "Eliminar" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "Por favor, corrija el dato duplicado para %(field)s." + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "" +"Por favor corrija el dato duplicado para %(field)s, ya que debe ser único." + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"Por favor corrija los datos duplicados para %(field_name)s ya que debe ser " +"único para %(lookup)s en %(date_field)s." + +msgid "Please correct the duplicate values below." +msgstr "Por favor, corrija los valores duplicados abajo." + +msgid "The inline value did not match the parent instance." +msgstr "El valor en línea no coincide con la instancia padre." + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "Escoja una opción válida. Esa opción no está entre las disponibles." + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "“%(pk)s” no es un valor válido." + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" +"%(datetime)s no pudo ser interpretado en la zona horaria " +"%(current_timezone)s; podría ser ambiguo o no existir." + +msgid "Clear" +msgstr "Limpiar" + +msgid "Currently" +msgstr "Actualmente" + +msgid "Change" +msgstr "Modificar" + +msgid "Unknown" +msgstr "Desconocido" + +msgid "Yes" +msgstr "Sí" + +msgid "No" +msgstr "No" + +#. Translators: Please do not add spaces around commas. +msgid "yes,no,maybe" +msgstr "sí,no,quizás" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)d byte" +msgstr[1] "%(size)d bytes" +msgstr[2] "%(size)d bytes" + +#, python-format +msgid "%s KB" +msgstr "%s KB" + +#, python-format +msgid "%s MB" +msgstr "%s MB" + +#, python-format +msgid "%s GB" +msgstr "%s GB" + +#, python-format +msgid "%s TB" +msgstr "%s TB" + +#, python-format +msgid "%s PB" +msgstr "%s PB" + +msgid "p.m." +msgstr "p.m." + +msgid "a.m." +msgstr "a.m." + +msgid "PM" +msgstr "PM" + +msgid "AM" +msgstr "AM" + +msgid "midnight" +msgstr "medianoche" + +msgid "noon" +msgstr "mediodía" + +msgid "Monday" +msgstr "lunes" + +msgid "Tuesday" +msgstr "martes" + +msgid "Wednesday" +msgstr "miércoles" + +msgid "Thursday" +msgstr "jueves" + +msgid "Friday" +msgstr "viernes" + +msgid "Saturday" +msgstr "sábado" + +msgid "Sunday" +msgstr "domingo" + +msgid "Mon" +msgstr "lun" + +msgid "Tue" +msgstr "mar" + +msgid "Wed" +msgstr "mié" + +msgid "Thu" +msgstr "jue" + +msgid "Fri" +msgstr "vie" + +msgid "Sat" +msgstr "sáb" + +msgid "Sun" +msgstr "dom" + +msgid "January" +msgstr "enero" + +msgid "February" +msgstr "febrero" + +msgid "March" +msgstr "marzo" + +msgid "April" +msgstr "abril" + +msgid "May" +msgstr "mayo" + +msgid "June" +msgstr "junio" + +msgid "July" +msgstr "julio" + +msgid "August" +msgstr "agosto" + +msgid "September" +msgstr "septiembre" + +msgid "October" +msgstr "octubre" + +msgid "November" +msgstr "noviembre" + +msgid "December" +msgstr "diciembre" + +msgid "jan" +msgstr "ene" + +msgid "feb" +msgstr "feb" + +msgid "mar" +msgstr "mar" + +msgid "apr" +msgstr "abr" + +msgid "may" +msgstr "may" + +msgid "jun" +msgstr "jun" + +msgid "jul" +msgstr "jul" + +msgid "aug" +msgstr "ago" + +msgid "sep" +msgstr "sep" + +msgid "oct" +msgstr "oct" + +msgid "nov" +msgstr "nov" + +msgid "dec" +msgstr "dic" + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "Ene." + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "Feb." + +msgctxt "abbrev. month" +msgid "March" +msgstr "marzo" + +msgctxt "abbrev. month" +msgid "April" +msgstr "abril" + +msgctxt "abbrev. month" +msgid "May" +msgstr "mayo" + +msgctxt "abbrev. month" +msgid "June" +msgstr "junio" + +msgctxt "abbrev. month" +msgid "July" +msgstr "julio" + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "ago." + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "sept." + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "oct." + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "nov." + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "dic." + +msgctxt "alt. month" +msgid "January" +msgstr "enero" + +msgctxt "alt. month" +msgid "February" +msgstr "febrero" + +msgctxt "alt. month" +msgid "March" +msgstr "marzo" + +msgctxt "alt. month" +msgid "April" +msgstr "abril" + +msgctxt "alt. month" +msgid "May" +msgstr "mayo" + +msgctxt "alt. month" +msgid "June" +msgstr "junio" + +msgctxt "alt. month" +msgid "July" +msgstr "julio" + +msgctxt "alt. month" +msgid "August" +msgstr "agosto" + +msgctxt "alt. month" +msgid "September" +msgstr "septiembre" + +msgctxt "alt. month" +msgid "October" +msgstr "octubre" + +msgctxt "alt. month" +msgid "November" +msgstr "noviembre" + +msgctxt "alt. month" +msgid "December" +msgstr "diciembre" + +msgid "This is not a valid IPv6 address." +msgstr "No es una dirección IPv6 válida." + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "%(truncated_text)s…" + +msgid "or" +msgstr "o" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr ", " + +#, python-format +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "%(num)d año" +msgstr[1] "%(num)d años" +msgstr[2] "%(num)d años" + +#, python-format +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "%(num)d mes" +msgstr[1] "%(num)d meses" +msgstr[2] "%(num)d meses" + +#, python-format +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "%(num)d semana" +msgstr[1] "%(num)d semanas" +msgstr[2] "%(num)d semanas" + +#, python-format +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "%(num)d día" +msgstr[1] "%(num)d días" +msgstr[2] "%(num)d días" + +#, python-format +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "%(num)d hora" +msgstr[1] "%(num)d horas" +msgstr[2] "%(num)d horas" + +#, python-format +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "%(num)d minuto" +msgstr[1] "%(num)d minutos" +msgstr[2] "%(num)d minutos" + +msgid "Forbidden" +msgstr "Prohibido" + +msgid "CSRF verification failed. Request aborted." +msgstr "La verificación CSRF ha fallado. Solicitud abortada." + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" +"Estás viendo este mensaje porque este sitio HTTPS requiere que tu navegador " +"web envíe un \"encabezado de referencia\", pero no se envió ninguno. Este " +"encabezado es necesario por razones de seguridad, para garantizar que su " +"navegador no sea secuestrado por terceros." + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" +"Si ha configurado su navegador para deshabilitar los encabezados " +"\"Referer\", vuelva a habilitarlos, al menos para este sitio, o para " +"conexiones HTTPS, o para solicitudes del \"mismo origen\"." + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" +"Si esta utilizando la etiqueta o incluyendo el encabezado \"Referrer-Policy: no-referrer\", " +"elimínelos. La protección CSRF requiere que el encabezado \"Referer\" " +"realice una comprobación estricta del referente. Si le preocupa la " +"privacidad, utilice alternativas como para los " +"enlaces a sitios de terceros." + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" +"Estás viendo este mensaje porqué esta web requiere una cookie CSRF cuando se " +"envían formularios. Esta cookie se necesita por razones de seguridad, para " +"asegurar que tu navegador no ha sido comprometido por terceras partes." + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" +"Si ha configurado su navegador para deshabilitar las cookies, vuelva a " +"habilitarlas, al menos para este sitio o para solicitudes del \"mismo " +"origen\"." + +msgid "More information is available with DEBUG=True." +msgstr "Más información disponible si se establece DEBUG=True." + +msgid "No year specified" +msgstr "No se ha indicado el año" + +msgid "Date out of range" +msgstr "Fecha fuera de rango" + +msgid "No month specified" +msgstr "No se ha indicado el mes" + +msgid "No day specified" +msgstr "No se ha indicado el día" + +msgid "No week specified" +msgstr "No se ha indicado la semana" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "No %(verbose_name_plural)s disponibles" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" +"Los futuros %(verbose_name_plural)s no están disponibles porque " +"%(class_name)s.allow_future es Falso." + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "Cadena de fecha no valida “%(datestr)s” dado el formato “%(format)s”" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "No se encontró ningún %(verbose_name)s coincidente con la consulta" + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "La página no es la \"última\", ni se puede convertir a un entero." + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "Página inválida (%(page_number)s): %(message)s" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "Lista vacía y “%(class_name)s.allow_empty” es Falso" + +msgid "Directory indexes are not allowed here." +msgstr "Los índices de directorio no están permitidos." + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "“%(path)s” no existe" + +#, python-format +msgid "Index of %(directory)s" +msgstr "Índice de %(directory)s" + +msgid "The install worked successfully! Congratulations!" +msgstr "¡La instalación funcionó con éxito! ¡Felicitaciones!" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" +"Ve la notas de la versión de Django " +"%(version)s" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not " +"configured any URLs." +msgstr "" +"Estás viendo esta página porque DEBUG=True está en su archivo de configuración y no ha " +"configurado ninguna URL." + +msgid "Django Documentation" +msgstr "Documentación de Django" + +msgid "Topics, references, & how-to’s" +msgstr "Temas, referencias, & como hacer" + +msgid "Tutorial: A Polling App" +msgstr "Tutorial: Una aplicación de encuesta" + +msgid "Get started with Django" +msgstr "Comienza con Django" + +msgid "Django Community" +msgstr "Comunidad Django" + +msgid "Connect, get help, or contribute" +msgstr "Conéctate, obtén ayuda o contribuye" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/es/__init__.py b/venv/lib/python3.12/site-packages/django/conf/locale/es/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/es/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/es/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d9c1a3eef1fbf752efd9b01840f8eb6af791b4b1 GIT binary patch literal 198 zcmX@j%ge<81o5sX(m?cM5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!O4ZNE&rQ|OP0Yy6 zFHO;RNiEZNN=(kybEFQ_cZ$j>v@Gc?jK&MZmQEdVM^ zOiwM=Pssu+OwP|s)6dCIPRvQw2a3kWXXa&=#K-FuRQ}?y$<0qG%}KQ@Vg=gD2*kx8 O#z$sGM#ds$APWG-95jOf literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/es/__pycache__/formats.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/es/__pycache__/formats.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f372955101cf2e9f09d428746fd1680a7ac1b6ec GIT binary patch literal 832 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 L&lBCkx%2-&@W)Il literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/es_AR/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/conf/locale/es_AR/LC_MESSAGES/django.po new file mode 100644 index 0000000000..ada4c3170f --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/es_AR/LC_MESSAGES/django.po @@ -0,0 +1,1370 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Jannis Leidel , 2011 +# lardissone , 2014 +# Natalia (Django Fellow), 2023 +# poli , 2014 +# Ramiro Morales, 2013-2023 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-09-18 11:41-0300\n" +"PO-Revision-Date: 2023-12-04 06:49+0000\n" +"Last-Translator: Natalia (Django Fellow), 2023\n" +"Language-Team: Spanish (Argentina) (http://app.transifex.com/django/django/" +"language/es_AR/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: es_AR\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Afrikaans" +msgstr "afrikáans" + +msgid "Arabic" +msgstr "árabe" + +msgid "Algerian Arabic" +msgstr "Árabe de Argelia" + +msgid "Asturian" +msgstr "asturiano" + +msgid "Azerbaijani" +msgstr "azerbaiyán" + +msgid "Bulgarian" +msgstr "búlgaro" + +msgid "Belarusian" +msgstr "bielorruso" + +msgid "Bengali" +msgstr "bengalí" + +msgid "Breton" +msgstr "bretón" + +msgid "Bosnian" +msgstr "bosnio" + +msgid "Catalan" +msgstr "catalán" + +msgid "Central Kurdish (Sorani)" +msgstr "Kurdo central (Sorani)" + +msgid "Czech" +msgstr "checo" + +msgid "Welsh" +msgstr "galés" + +msgid "Danish" +msgstr "danés" + +msgid "German" +msgstr "alemán" + +msgid "Lower Sorbian" +msgstr "bajo sorabo" + +msgid "Greek" +msgstr "griego" + +msgid "English" +msgstr "inglés" + +msgid "Australian English" +msgstr "inglés australiano" + +msgid "British English" +msgstr "inglés británico" + +msgid "Esperanto" +msgstr "esperanto" + +msgid "Spanish" +msgstr "español" + +msgid "Argentinian Spanish" +msgstr "español (Argentina)" + +msgid "Colombian Spanish" +msgstr "español (Colombia)" + +msgid "Mexican Spanish" +msgstr "español (México)" + +msgid "Nicaraguan Spanish" +msgstr "español (Nicaragua)" + +msgid "Venezuelan Spanish" +msgstr "español (Venezuela)" + +msgid "Estonian" +msgstr "estonio" + +msgid "Basque" +msgstr "vasco" + +msgid "Persian" +msgstr "persa" + +msgid "Finnish" +msgstr "finlandés" + +msgid "French" +msgstr "francés" + +msgid "Frisian" +msgstr "frisón" + +msgid "Irish" +msgstr "irlandés" + +msgid "Scottish Gaelic" +msgstr "gaélico escocés" + +msgid "Galician" +msgstr "gallego" + +msgid "Hebrew" +msgstr "hebreo" + +msgid "Hindi" +msgstr "hindi" + +msgid "Croatian" +msgstr "croata" + +msgid "Upper Sorbian" +msgstr "alto sorabo" + +msgid "Hungarian" +msgstr "húngaro" + +msgid "Armenian" +msgstr "armenio" + +msgid "Interlingua" +msgstr "Interlingua" + +msgid "Indonesian" +msgstr "indonesio" + +msgid "Igbo" +msgstr "Igbo" + +msgid "Ido" +msgstr "ido" + +msgid "Icelandic" +msgstr "islandés" + +msgid "Italian" +msgstr "italiano" + +msgid "Japanese" +msgstr "japonés" + +msgid "Georgian" +msgstr "georgiano" + +msgid "Kabyle" +msgstr "cabilio" + +msgid "Kazakh" +msgstr "kazajo" + +msgid "Khmer" +msgstr "jémer" + +msgid "Kannada" +msgstr "canarés" + +msgid "Korean" +msgstr "coreano" + +msgid "Kyrgyz" +msgstr "kirguís" + +msgid "Luxembourgish" +msgstr "luxemburgués" + +msgid "Lithuanian" +msgstr "lituano" + +msgid "Latvian" +msgstr "letón" + +msgid "Macedonian" +msgstr "macedonio" + +msgid "Malayalam" +msgstr "malabar" + +msgid "Mongolian" +msgstr "mongol" + +msgid "Marathi" +msgstr "maratí" + +msgid "Malay" +msgstr "malayo" + +msgid "Burmese" +msgstr "burmés" + +msgid "Norwegian Bokmål" +msgstr "bokmål noruego" + +msgid "Nepali" +msgstr "nepalés" + +msgid "Dutch" +msgstr "holandés" + +msgid "Norwegian Nynorsk" +msgstr "nynorsk" + +msgid "Ossetic" +msgstr "osetio" + +msgid "Punjabi" +msgstr "panyabí" + +msgid "Polish" +msgstr "polaco" + +msgid "Portuguese" +msgstr "portugués" + +msgid "Brazilian Portuguese" +msgstr "portugués de Brasil" + +msgid "Romanian" +msgstr "rumano" + +msgid "Russian" +msgstr "ruso" + +msgid "Slovak" +msgstr "eslovaco" + +msgid "Slovenian" +msgstr "esloveno" + +msgid "Albanian" +msgstr "albanés" + +msgid "Serbian" +msgstr "serbio" + +msgid "Serbian Latin" +msgstr "latín de Serbia" + +msgid "Swedish" +msgstr "sueco" + +msgid "Swahili" +msgstr "suajili" + +msgid "Tamil" +msgstr "tamil" + +msgid "Telugu" +msgstr "telugu" + +msgid "Tajik" +msgstr "tayiko" + +msgid "Thai" +msgstr "tailandés" + +msgid "Turkmen" +msgstr "turcomano" + +msgid "Turkish" +msgstr "turco" + +msgid "Tatar" +msgstr "tártaro" + +msgid "Udmurt" +msgstr "udmurto" + +msgid "Uyghur" +msgstr "Uigur" + +msgid "Ukrainian" +msgstr "ucraniano" + +msgid "Urdu" +msgstr "urdu" + +msgid "Uzbek" +msgstr "uzbeko" + +msgid "Vietnamese" +msgstr "vietnamita" + +msgid "Simplified Chinese" +msgstr "chino simplificado" + +msgid "Traditional Chinese" +msgstr "chino tradicional" + +msgid "Messages" +msgstr "Mensajes" + +msgid "Site Maps" +msgstr "Mapas de sitio" + +msgid "Static Files" +msgstr "Archivos estáticos" + +msgid "Syndication" +msgstr "Sindicación" + +#. Translators: String used to replace omitted page numbers in elided page +#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10]. +msgid "…" +msgstr "…" + +msgid "That page number is not an integer" +msgstr "El número de página no es un entero" + +msgid "That page number is less than 1" +msgstr "El número de página es menor a 1" + +msgid "That page contains no results" +msgstr "Esa página no contiene resultados" + +msgid "Enter a valid value." +msgstr "Introduzca un valor válido." + +msgid "Enter a valid URL." +msgstr "Introduzca una URL válida." + +msgid "Enter a valid integer." +msgstr "Introduzca un valor numérico entero válido." + +msgid "Enter a valid email address." +msgstr "Introduzca una dirección de email válida." + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "Introduzca un “slug” válido compuesto por letras, números o guiones." + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" +"Introduzca un “slug” compuesto por letras Unicode, números, guiones bajos o " +"guiones." + +msgid "Enter a valid IPv4 address." +msgstr "Introduzca una dirección IPv4 válida." + +msgid "Enter a valid IPv6 address." +msgstr "Introduzca una dirección IPv6 válida." + +msgid "Enter a valid IPv4 or IPv6 address." +msgstr "Introduzca una dirección IPv4 o IPv6 válida." + +msgid "Enter only digits separated by commas." +msgstr "Introduzca sólo dígitos separados por comas." + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "" +"Asegúrese de que este valor sea %(limit_value)s (actualmente es " +"%(show_value)s)." + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "Asegúrese de que este valor sea menor o igual a %(limit_value)s." + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "Asegúrese de que este valor sea mayor o igual a %(limit_value)s." + +#, python-format +msgid "Ensure this value is a multiple of step size %(limit_value)s." +msgstr "Asegúrese de que este valor sea múltiplo de %(limit_value)s." + +#, python-format +msgid "" +"Ensure this value is a multiple of step size %(limit_value)s, starting from " +"%(offset)s, e.g. %(offset)s, %(valid_value1)s, %(valid_value2)s, and so on." +msgstr "" +"Confirme que este valor sea un múltiplo del tamaño del paso %(limit_value)s, " +"empezando por %(offset)s, por ejemplo %(offset)s, %(valid_value1)s, " +"%(valid_value2)s, y así sucesivamente." + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Asegúrese de que este valor tenga como mínimo %(limit_value)d caracter " +"(tiene %(show_value)d)." +msgstr[1] "" +"Asegúrese de que este valor tenga como mínimo %(limit_value)d caracteres " +"(tiene %(show_value)d)." +msgstr[2] "" +"Asegúrese de que este valor tenga como mínimo %(limit_value)d caracteres " +"(tiene %(show_value)d)." + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Asegúrese de que este valor tenga como máximo %(limit_value)d caracter " +"(tiene %(show_value)d)." +msgstr[1] "" +"Asegúrese de que este valor tenga como máximo %(limit_value)d caracteres " +"(tiene %(show_value)d)." +msgstr[2] "" +"Asegúrese de que este valor tenga como máximo %(limit_value)d caracteres " +"(tiene %(show_value)d)." + +msgid "Enter a number." +msgstr "Introduzca un número." + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "Asegúrese de que no exista en total mas de %(max)s dígito." +msgstr[1] "Asegúrese de que no existan en total mas de %(max)s dígitos." +msgstr[2] "Asegúrese de que no existan en total mas de %(max)s dígitos." + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "Asegúrese de que no exista mas de %(max)s lugar decimal." +msgstr[1] "Asegúrese de que no existan mas de %(max)s lugares decimales." +msgstr[2] "Asegúrese de que no existan mas de %(max)s lugares decimales." + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "" +"Asegúrese de que no exista mas de %(max)s dígito antes del punto decimal." +msgstr[1] "" +"Asegúrese de que no existan mas de %(max)s dígitos antes del punto decimal." +msgstr[2] "" +"Asegúrese de que no existan mas de %(max)s dígitos antes del punto decimal." + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" +"La extensión de archivo “%(extension)s” no está permitida. Las extensiones " +"aceptadas son: “%(allowed_extensions)s”." + +msgid "Null characters are not allowed." +msgstr "No se admiten caracteres nulos." + +msgid "and" +msgstr "y" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "Ya existe un/a %(model_name)s con este/a %(field_labels)s." + +#, python-format +msgid "Constraint “%(name)s” is violated." +msgstr "No se cumple la restricción “%(name)s”." + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "El valor %(value)r no es una opción válida." + +msgid "This field cannot be null." +msgstr "Este campo no puede ser nulo." + +msgid "This field cannot be blank." +msgstr "Este campo no puede estar en blanco." + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "Ya existe un/a %(model_name)s con este/a %(field_label)s." + +#. Translators: The 'lookup_type' is one of 'date', 'year' or +#. 'month'. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" +"%(field_label)s debe ser único/a para un %(lookup_type)s " +"%(date_field_label)s determinado." + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "Campo tipo: %(field_type)s" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "El valor de “%(value)s” debe ser Verdadero o Falso." + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "El valor de “%(value)s” debe ser Verdadero, Falso o None." + +msgid "Boolean (Either True or False)" +msgstr "Booleano (Verdadero o Falso)" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "Cadena (máximo %(max_length)s)" + +msgid "String (unlimited)" +msgstr "Cadena (ilimitado)" + +msgid "Comma-separated integers" +msgstr "Enteros separados por comas" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" +"El valor de “%(value)s” tiene un formato de fecha inválido. Debe usar el " +"formato AAAA-MM-DD." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" +"El valor de “%(value)s” tiene un formato de fecha correcto (AAAA-MM-DD) pero " +"representa una fecha inválida." + +msgid "Date (without time)" +msgstr "Fecha (sin hora)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" +"El valor de “%(value)s” tiene un formato inválido. Debe usar el formato AAAA-" +"MM-DD HH:MM[:ss[.uuuuuu]][TZ]." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" +"El valor de “%(value)s” tiene un formato correcto (AAAA-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ]) pero representa una fecha/hora inválida." + +msgid "Date (with time)" +msgstr "Fecha (con hora)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "El valor de “%(value)s” debe ser un número decimal." + +msgid "Decimal number" +msgstr "Número decimal" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" +"El valor de “%(value)s” tiene un formato inválido. Debe usar el formato [DD] " +"[[HH:]MM:]ss[.uuuuuu]." + +msgid "Duration" +msgstr "Duración" + +msgid "Email address" +msgstr "Dirección de correo electrónico" + +msgid "File path" +msgstr "Ruta de archivo" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "El valor de “%(value)s” debe ser un número de coma flotante." + +msgid "Floating point number" +msgstr "Número de coma flotante" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "El valor de “%(value)s” debe ser un número entero." + +msgid "Integer" +msgstr "Entero" + +msgid "Big (8 byte) integer" +msgstr "Entero grande (8 bytes)" + +msgid "Small integer" +msgstr "Entero pequeño" + +msgid "IPv4 address" +msgstr "Dirección IPv4" + +msgid "IP address" +msgstr "Dirección IP" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "El valor de “%(value)s” debe ser None, Verdadero o Falso." + +msgid "Boolean (Either True, False or None)" +msgstr "Booleano (Verdadero, Falso o Nulo)" + +msgid "Positive big integer" +msgstr "Entero grande positivo" + +msgid "Positive integer" +msgstr "Entero positivo" + +msgid "Positive small integer" +msgstr "Entero pequeño positivo" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "Slug (de hasta %(max_length)s caracteres)" + +msgid "Text" +msgstr "Texto" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" +"El valor de “%(value)s” tiene un formato inválido. Debe usar el formato HH:" +"MM[:ss[.uuuuuu]]." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" +"El valor de “%(value)s” tiene un formato correcto (HH:MM[:ss[.uuuuuu]]) pero " +"representa una hora inválida." + +msgid "Time" +msgstr "Hora" + +msgid "URL" +msgstr "URL" + +msgid "Raw binary data" +msgstr "Datos binarios crudos" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "“%(value)s” no es un UUID válido." + +msgid "Universally unique identifier" +msgstr "Identificador universalmente único" + +msgid "File" +msgstr "Archivo" + +msgid "Image" +msgstr "Imagen" + +msgid "A JSON object" +msgstr "Un objeto JSON" + +msgid "Value must be valid JSON." +msgstr "El valor debe ser JSON válido." + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "No existe una instancia de %(model)s con %(field)s %(value)r." + +msgid "Foreign Key (type determined by related field)" +msgstr "Clave foránea (el tipo está determinado por el campo relacionado)" + +msgid "One-to-one relationship" +msgstr "Relación uno-a-uno" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "relación %(from)s-%(to)s" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "relaciones %(from)s-%(to)s" + +msgid "Many-to-many relationship" +msgstr "Relación muchos-a-muchos" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr ":?.!" + +msgid "This field is required." +msgstr "Este campo es obligatorio." + +msgid "Enter a whole number." +msgstr "Introduzca un número entero." + +msgid "Enter a valid date." +msgstr "Introduzca una fecha válida." + +msgid "Enter a valid time." +msgstr "Introduzca un valor de hora válido." + +msgid "Enter a valid date/time." +msgstr "Introduzca un valor de fecha/hora válido." + +msgid "Enter a valid duration." +msgstr "Introduzca una duración válida." + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "La cantidad de días debe tener valores entre {min_days} y {max_days}." + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "" +"No se envió un archivo. Verifique el tipo de codificación en el formulario." + +msgid "No file was submitted." +msgstr "No se envió ningún archivo." + +msgid "The submitted file is empty." +msgstr "El archivo enviado está vacío." + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" +"Asegúrese de que este nombre de archivo tenga como máximo %(max)d caracter " +"(tiene %(length)d)." +msgstr[1] "" +"Asegúrese de que este nombre de archivo tenga como máximo %(max)d caracteres " +"(tiene %(length)d)." +msgstr[2] "" +"Asegúrese de que este nombre de archivo tenga como máximo %(max)d caracteres " +"(tiene %(length)d)." + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "Por favor envíe un archivo o active el checkbox, pero no ambas cosas." + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" +"Seleccione una imagen válida. El archivo que ha seleccionado no es una " +"imagen o es un archivo de imagen corrupto." + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "" +"Seleccione una opción válida. %(value)s no es una de las opciones " +"disponibles." + +msgid "Enter a list of values." +msgstr "Introduzca una lista de valores." + +msgid "Enter a complete value." +msgstr "Introduzca un valor completo." + +msgid "Enter a valid UUID." +msgstr "Introduzca un UUID válido." + +msgid "Enter a valid JSON." +msgstr "Introduzca JSON válido." + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr ":" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "(Campo oculto %(name)s) %(error)s" + +#, python-format +msgid "" +"ManagementForm data is missing or has been tampered with. Missing fields: " +"%(field_names)s. You may need to file a bug report if the issue persists." +msgstr "" +"Los datos de ManagementForm faltan o han sido alterados. Campos faltantes: " +"%(field_names)s. Si el problema persiste es posible que deba reportarlo como " +"un error." + +#, python-format +msgid "Please submit at most %(num)d form." +msgid_plural "Please submit at most %(num)d forms." +msgstr[0] "Por favor envíe un máximo de %(num)d formulario." +msgstr[1] "Por favor envíe un máximo de %(num)d formularios." +msgstr[2] "Por favor envíe un máximo de %(num)d formularios." + +#, python-format +msgid "Please submit at least %(num)d form." +msgid_plural "Please submit at least %(num)d forms." +msgstr[0] "Por favor envíe %(num)d o mas formularios." +msgstr[1] "Por favor envíe %(num)d o mas formularios." +msgstr[2] "Por favor envíe %(num)d o mas formularios." + +msgid "Order" +msgstr "Ordenar" + +msgid "Delete" +msgstr "Eliminar" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "Por favor, corrija la información duplicada en %(field)s." + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "" +"Por favor corrija la información duplicada en %(field)s, que debe ser única." + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"Por favor corrija la información duplicada en %(field_name)s que debe ser " +"única para el %(lookup)s en %(date_field)s." + +msgid "Please correct the duplicate values below." +msgstr "Por favor, corrija los valores duplicados detallados mas abajo." + +msgid "The inline value did not match the parent instance." +msgstr "El valor inline no coincide con el de la instancia padre." + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "" +"Seleccione una opción válida. La opción seleccionada no es una de las " +"disponibles." + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "“%(pk)s” no es un valor válido." + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" +"%(datetime)s no puede ser interpretado en la zona horaria " +"%(current_timezone)s; ya que podría ser ambiguo o podría no existir." + +msgid "Clear" +msgstr "Eliminar" + +msgid "Currently" +msgstr "Actualmente" + +msgid "Change" +msgstr "Modificar" + +msgid "Unknown" +msgstr "Desconocido" + +msgid "Yes" +msgstr "Sí" + +msgid "No" +msgstr "No" + +#. Translators: Please do not add spaces around commas. +msgid "yes,no,maybe" +msgstr "si,no,talvez" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)d byte" +msgstr[1] "%(size)d bytes" +msgstr[2] "%(size)d bytes" + +#, python-format +msgid "%s KB" +msgstr "%s KB" + +#, python-format +msgid "%s MB" +msgstr "%s MB" + +#, python-format +msgid "%s GB" +msgstr "%s GB" + +#, python-format +msgid "%s TB" +msgstr "%s TB" + +#, python-format +msgid "%s PB" +msgstr "%s PB" + +msgid "p.m." +msgstr "p.m." + +msgid "a.m." +msgstr "a.m." + +msgid "PM" +msgstr "PM" + +msgid "AM" +msgstr "AM" + +msgid "midnight" +msgstr "medianoche" + +msgid "noon" +msgstr "mediodía" + +msgid "Monday" +msgstr "lunes" + +msgid "Tuesday" +msgstr "martes" + +msgid "Wednesday" +msgstr "miércoles" + +msgid "Thursday" +msgstr "jueves" + +msgid "Friday" +msgstr "viernes" + +msgid "Saturday" +msgstr "sábado" + +msgid "Sunday" +msgstr "Domingo" + +msgid "Mon" +msgstr "Lun" + +msgid "Tue" +msgstr "Mar" + +msgid "Wed" +msgstr "Mie" + +msgid "Thu" +msgstr "Jue" + +msgid "Fri" +msgstr "Vie" + +msgid "Sat" +msgstr "Sab" + +msgid "Sun" +msgstr "Dom" + +msgid "January" +msgstr "enero" + +msgid "February" +msgstr "febrero" + +msgid "March" +msgstr "marzo" + +msgid "April" +msgstr "abril" + +msgid "May" +msgstr "mayo" + +msgid "June" +msgstr "junio" + +msgid "July" +msgstr "julio" + +msgid "August" +msgstr "agosto" + +msgid "September" +msgstr "setiembre" + +msgid "October" +msgstr "octubre" + +msgid "November" +msgstr "noviembre" + +msgid "December" +msgstr "diciembre" + +msgid "jan" +msgstr "ene" + +msgid "feb" +msgstr "feb" + +msgid "mar" +msgstr "mar" + +msgid "apr" +msgstr "abr" + +msgid "may" +msgstr "may" + +msgid "jun" +msgstr "jun" + +msgid "jul" +msgstr "jul" + +msgid "aug" +msgstr "ago" + +msgid "sep" +msgstr "set" + +msgid "oct" +msgstr "oct" + +msgid "nov" +msgstr "nov" + +msgid "dec" +msgstr "dic" + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "Enero" + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "Feb." + +msgctxt "abbrev. month" +msgid "March" +msgstr "Marzo" + +msgctxt "abbrev. month" +msgid "April" +msgstr "Abril" + +msgctxt "abbrev. month" +msgid "May" +msgstr "Mayo" + +msgctxt "abbrev. month" +msgid "June" +msgstr "Junio" + +msgctxt "abbrev. month" +msgid "July" +msgstr "Julio" + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "Ago." + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "Set." + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "Oct." + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "Nov." + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "Dic." + +msgctxt "alt. month" +msgid "January" +msgstr "enero" + +msgctxt "alt. month" +msgid "February" +msgstr "febrero" + +msgctxt "alt. month" +msgid "March" +msgstr "marzo" + +msgctxt "alt. month" +msgid "April" +msgstr "abril" + +msgctxt "alt. month" +msgid "May" +msgstr "mayo" + +msgctxt "alt. month" +msgid "June" +msgstr "junio" + +msgctxt "alt. month" +msgid "July" +msgstr "julio" + +msgctxt "alt. month" +msgid "August" +msgstr "agosto" + +msgctxt "alt. month" +msgid "September" +msgstr "setiembre" + +msgctxt "alt. month" +msgid "October" +msgstr "octubre" + +msgctxt "alt. month" +msgid "November" +msgstr "noviembre" + +msgctxt "alt. month" +msgid "December" +msgstr "diciembre" + +msgid "This is not a valid IPv6 address." +msgstr "Esta no es una dirección IPv6 válida." + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "%(truncated_text)s…" + +msgid "or" +msgstr "o" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr ", " + +#, python-format +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "%(num)d año" +msgstr[1] "%(num)d años" +msgstr[2] "%(num)d años" + +#, python-format +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "%(num)d mes" +msgstr[1] "%(num)d meses" +msgstr[2] "%(num)d meses" + +#, python-format +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "%(num)d semana" +msgstr[1] "%(num)d semanas" +msgstr[2] "%(num)d semanas" + +#, python-format +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "%(num)d día" +msgstr[1] "%(num)d días" +msgstr[2] "%(num)d días" + +#, python-format +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "%(num)d hora" +msgstr[1] "%(num)d horas" +msgstr[2] "%(num)d horas" + +#, python-format +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "%(num)d minuto" +msgstr[1] "%(num)d minutos" +msgstr[2] "%(num)d minutos" + +msgid "Forbidden" +msgstr "Prohibido" + +msgid "CSRF verification failed. Request aborted." +msgstr "Verificación CSRF fallida. Petición abortada." + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" +"Ud. está viendo este mensaje porque este sitio HTTPS tiene como " +"requerimiento que su navegador web envíe un encabezado “Referer” pero el " +"mismo no ha enviado uno. El hecho de que este encabezado sea obligatorio es " +"una medida de seguridad para comprobar que su navegador no está siendo " +"controlado por terceros." + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" +"Si ha configurado su browser para deshabilitar las cabeceras “Referer”, por " +"favor activelas al menos para este sitio, o para conexiones HTTPS o para " +"peticiones generadas desde el mismo origen." + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" +"Si está usando la etiqueta " +"o está incluyendo el encabezado “Referrer-Policy: no-referrer” por favor " +"quitelos. La protección CSRF necesita el encabezado “Referer” para realizar " +"una comprobación estricta de los referers. Si le preocupa la privacidad " +"tiene alternativas tales como usar en los enlaces a " +"sitios de terceros." + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" +"Ud. está viendo este mensaje porque este sitio tiene como requerimiento el " +"uso de una 'cookie' CSRF cuando se envíen formularios. El hecho de que esta " +"'cookie' sea obligatoria es una medida de seguridad para comprobar que su " +"browser no está siendo controlado por terceros." + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" +"Si ha configurado su browser para deshabilitar “cookies”, por favor " +"activelas al menos para este sitio o para peticiones generadas desde el " +"mismo origen." + +msgid "More information is available with DEBUG=True." +msgstr "Hay mas información disponible. Para ver la misma use DEBUG=True." + +msgid "No year specified" +msgstr "No se ha especificado el valor año" + +msgid "Date out of range" +msgstr "Fecha fuera de rango" + +msgid "No month specified" +msgstr "No se ha especificado el valor mes" + +msgid "No day specified" +msgstr "No se ha especificado el valor día" + +msgid "No week specified" +msgstr "No se ha especificado el valor semana" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "No hay %(verbose_name_plural)s disponibles" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" +"No hay %(verbose_name_plural)s futuros disponibles porque %(class_name)s." +"allow_future tiene el valor False." + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "Cadena de fecha inválida “%(datestr)s”, formato “%(format)s”" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "No se han encontrado %(verbose_name)s que coincidan con la consulta " + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "Página debe tener el valor “last” o un valor número entero." + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "Página inválida (%(page_number)s): %(message)s" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "Lista vacía y “%(class_name)s.allow_empty” tiene el valor False." + +msgid "Directory indexes are not allowed here." +msgstr "" +"No está habilitada la generación de listados de directorios en esta " +"ubicación." + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "“%(path)s” no existe" + +#, python-format +msgid "Index of %(directory)s" +msgstr "Listado de %(directory)s" + +msgid "The install worked successfully! Congratulations!" +msgstr "La instalación ha sido exitosa. ¡Felicitaciones!" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" +"Ver las release notes de Django %(version)s" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not " +"configured any URLs." +msgstr "" +"Está viendo esta página porque el archivo de configuración contiene DEBUG=True y no ha configurado " +"ninguna URL." + +msgid "Django Documentation" +msgstr "Documentación de Django" + +msgid "Topics, references, & how-to’s" +msgstr "Tópicos, referencia & how-to’s" + +msgid "Tutorial: A Polling App" +msgstr "Tutorial: Una app de encuesta" + +msgid "Get started with Django" +msgstr "Comience a aprender Django" + +msgid "Django Community" +msgstr "Comunidad Django" + +msgid "Connect, get help, or contribute" +msgstr "Conéctese, consiga ayuda o contribuya" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/es_AR/__init__.py b/venv/lib/python3.12/site-packages/django/conf/locale/es_AR/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/es_AR/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/es_AR/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e14fc755866518c3e88fddd9fb69660009dee284 GIT binary patch literal 201 zcmX@j%ge<81o5sX(m?cM5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!%Fxfq&rQ|OP0Yy6 zFHO;RNiEZNN=(kybEFQ_cZ$j>v@Gc?jK&MZmQEdVM^ zOiwM=Pssu+OwP|s)6dCIPRvQwPc4pj4APH}&&S S5r~UHjE~HWjEqIhKo$UUMm2Z< literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/es_AR/__pycache__/formats.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/es_AR/__pycache__/formats.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2e802d4845065d85c09930963f383becd987afc8 GIT binary patch literal 796 zcmZXRy>Hq;7{<>Shp&LaF*J&*h@l>k8cuCDR8@6~38=M=j8VlYlI3vbs~967NO(&B zitb&i{wI~XFj}mgvY}>U>X`xoP+4xj+05siZ=h#AD-BXopAD1^f}(hi_-8{p`73Po@XMe#9;;W#>;C339G z^s-8};nL+o*Nv=o)|YgNz;G{njjye2$z?FKVZ)8AH{WpYU&9Rx7z#ENh;^f8xg$5V zrCFg|5afbTbNMGIFSOjmA>9RMPlJzWKe(YQ>g9^c-;+-Tlw5ofD~h^glvGU?^+imt z$h(I1-|T}_LlQMZRu#Rx4J7|}MX|9ZsajdpbYp*N`Vk$BD^;|b?`#-q$@nZu9~ay@ zR#B>TeKW7N$n36h$Wuk>Lq!%p88xXYYND=c3r;Vq^_r*@_ZX|x%o6evG`%csBThJOCq6S;e$TlbA{BX7kzqK8F+qd40GUQx}JY$2D zB~4M(G78vdcQG%)lfs?fu^xXm2PyC5d=8Qx|J>K7FXkZa@oA!oongITV#&~%z#MRY a!=W>>XO>BjKJ~qRD?8%J8UFyk?cIR@ literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/es_AR/formats.py b/venv/lib/python3.12/site-packages/django/conf/locale/es_AR/formats.py new file mode 100644 index 0000000000..601b45843f --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/es_AR/formats.py @@ -0,0 +1,30 @@ +# This file is distributed under the same license as the Django package. +# +# The *_FORMAT strings use the Django date format syntax, +# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date +DATE_FORMAT = r"j N Y" +TIME_FORMAT = r"H:i" +DATETIME_FORMAT = r"j N Y H:i" +YEAR_MONTH_FORMAT = r"F Y" +MONTH_DAY_FORMAT = r"j \d\e F" +SHORT_DATE_FORMAT = r"d/m/Y" +SHORT_DATETIME_FORMAT = r"d/m/Y H:i" +FIRST_DAY_OF_WEEK = 0 # 0: Sunday, 1: Monday + +# The *_INPUT_FORMATS strings use the Python strftime format syntax, +# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior +DATE_INPUT_FORMATS = [ + "%d/%m/%Y", # '31/12/2009' + "%d/%m/%y", # '31/12/09' +] +DATETIME_INPUT_FORMATS = [ + "%d/%m/%Y %H:%M:%S", + "%d/%m/%Y %H:%M:%S.%f", + "%d/%m/%Y %H:%M", + "%d/%m/%y %H:%M:%S", + "%d/%m/%y %H:%M:%S.%f", + "%d/%m/%y %H:%M", +] +DECIMAL_SEPARATOR = "," +THOUSAND_SEPARATOR = "." +NUMBER_GROUPING = 3 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/es_CO/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/conf/locale/es_CO/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..678fdc715bd2c8520453f41bbc4e7a5328af9e8d GIT binary patch literal 18079 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/es_CO/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/conf/locale/es_CO/LC_MESSAGES/django.po new file mode 100644 index 0000000000..9f839fea54 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/es_CO/LC_MESSAGES/django.po @@ -0,0 +1,1258 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Carlos Muñoz , 2015 +# Claude Paroz , 2020 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-05-19 20:23+0200\n" +"PO-Revision-Date: 2020-07-14 21:42+0000\n" +"Last-Translator: Transifex Bot <>\n" +"Language-Team: Spanish (Colombia) (http://www.transifex.com/django/django/" +"language/es_CO/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: es_CO\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Afrikaans" +msgstr "Afrikáans" + +msgid "Arabic" +msgstr "Árabe" + +msgid "Algerian Arabic" +msgstr "" + +msgid "Asturian" +msgstr "Asturiano" + +msgid "Azerbaijani" +msgstr "Azerí" + +msgid "Bulgarian" +msgstr "Búlgaro" + +msgid "Belarusian" +msgstr "Bielorruso" + +msgid "Bengali" +msgstr "Bengalí" + +msgid "Breton" +msgstr "Bretón" + +msgid "Bosnian" +msgstr "Bosnio" + +msgid "Catalan" +msgstr "Catalán" + +msgid "Czech" +msgstr "Checo" + +msgid "Welsh" +msgstr "Galés" + +msgid "Danish" +msgstr "Danés" + +msgid "German" +msgstr "Alemán" + +msgid "Lower Sorbian" +msgstr "" + +msgid "Greek" +msgstr "Griego" + +msgid "English" +msgstr "Inglés" + +msgid "Australian English" +msgstr "Inglés Australiano" + +msgid "British English" +msgstr "Inglés Británico" + +msgid "Esperanto" +msgstr "Esperanto" + +msgid "Spanish" +msgstr "Español" + +msgid "Argentinian Spanish" +msgstr "Español de Argentina" + +msgid "Colombian Spanish" +msgstr "" + +msgid "Mexican Spanish" +msgstr "Español de México" + +msgid "Nicaraguan Spanish" +msgstr "Español de Nicaragua" + +msgid "Venezuelan Spanish" +msgstr "Español venezolano" + +msgid "Estonian" +msgstr "Estonio" + +msgid "Basque" +msgstr "Vasco" + +msgid "Persian" +msgstr "Persa" + +msgid "Finnish" +msgstr "Finés" + +msgid "French" +msgstr "Francés" + +msgid "Frisian" +msgstr "Frisón" + +msgid "Irish" +msgstr "Irlandés" + +msgid "Scottish Gaelic" +msgstr "" + +msgid "Galician" +msgstr "Gallego" + +msgid "Hebrew" +msgstr "Hebreo" + +msgid "Hindi" +msgstr "Hindi" + +msgid "Croatian" +msgstr "Croata" + +msgid "Upper Sorbian" +msgstr "" + +msgid "Hungarian" +msgstr "Húngaro" + +msgid "Armenian" +msgstr "" + +msgid "Interlingua" +msgstr "Interlingua" + +msgid "Indonesian" +msgstr "Indonesio" + +msgid "Igbo" +msgstr "" + +msgid "Ido" +msgstr "Ido" + +msgid "Icelandic" +msgstr "Islandés" + +msgid "Italian" +msgstr "Italiano" + +msgid "Japanese" +msgstr "Japonés" + +msgid "Georgian" +msgstr "Georgiano" + +msgid "Kabyle" +msgstr "" + +msgid "Kazakh" +msgstr "Kazajo" + +msgid "Khmer" +msgstr "Khmer" + +msgid "Kannada" +msgstr "Kannada" + +msgid "Korean" +msgstr "Koreano" + +msgid "Kyrgyz" +msgstr "" + +msgid "Luxembourgish" +msgstr "Luxenburgués" + +msgid "Lithuanian" +msgstr "Lituano" + +msgid "Latvian" +msgstr "Letón" + +msgid "Macedonian" +msgstr "Macedonio" + +msgid "Malayalam" +msgstr "Malayalam" + +msgid "Mongolian" +msgstr "Mongol" + +msgid "Marathi" +msgstr "Maratí" + +msgid "Burmese" +msgstr "Birmano" + +msgid "Norwegian Bokmål" +msgstr "" + +msgid "Nepali" +msgstr "Nepalí" + +msgid "Dutch" +msgstr "Holandés" + +msgid "Norwegian Nynorsk" +msgstr "Nynorsk" + +msgid "Ossetic" +msgstr "Osetio" + +msgid "Punjabi" +msgstr "Panyabí" + +msgid "Polish" +msgstr "Polaco" + +msgid "Portuguese" +msgstr "Portugués" + +msgid "Brazilian Portuguese" +msgstr "Portugués brasileño" + +msgid "Romanian" +msgstr "Rumano" + +msgid "Russian" +msgstr "Ruso" + +msgid "Slovak" +msgstr "Eslovaco" + +msgid "Slovenian" +msgstr "Esloveno" + +msgid "Albanian" +msgstr "Albanés" + +msgid "Serbian" +msgstr "Serbio" + +msgid "Serbian Latin" +msgstr "Serbio latino" + +msgid "Swedish" +msgstr "Sueco" + +msgid "Swahili" +msgstr "Suajili" + +msgid "Tamil" +msgstr "Tamil" + +msgid "Telugu" +msgstr "Telugu" + +msgid "Tajik" +msgstr "" + +msgid "Thai" +msgstr "Tailandés" + +msgid "Turkmen" +msgstr "" + +msgid "Turkish" +msgstr "Turco" + +msgid "Tatar" +msgstr "Tártaro" + +msgid "Udmurt" +msgstr "Udmurt" + +msgid "Ukrainian" +msgstr "Ucraniano" + +msgid "Urdu" +msgstr "Urdu" + +msgid "Uzbek" +msgstr "" + +msgid "Vietnamese" +msgstr "Vietnamita" + +msgid "Simplified Chinese" +msgstr "Chino simplificado" + +msgid "Traditional Chinese" +msgstr "Chino tradicional" + +msgid "Messages" +msgstr "Mensajes" + +msgid "Site Maps" +msgstr "Mapas del sitio" + +msgid "Static Files" +msgstr "Archivos estáticos" + +msgid "Syndication" +msgstr "Sindicación" + +msgid "That page number is not an integer" +msgstr "" + +msgid "That page number is less than 1" +msgstr "" + +msgid "That page contains no results" +msgstr "" + +msgid "Enter a valid value." +msgstr "Ingrese un valor válido." + +msgid "Enter a valid URL." +msgstr "Ingrese una URL válida." + +msgid "Enter a valid integer." +msgstr "Ingrese un entero válido." + +msgid "Enter a valid email address." +msgstr "Ingrese una dirección de correo electrónico válida." + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" + +msgid "Enter a valid IPv4 address." +msgstr "Ingrese una dirección IPv4 válida." + +msgid "Enter a valid IPv6 address." +msgstr "Ingrese una dirección IPv6 válida." + +msgid "Enter a valid IPv4 or IPv6 address." +msgstr "Ingrese una dirección IPv4 o IPv6 válida." + +msgid "Enter only digits separated by commas." +msgstr "Ingrese solo números separados por comas." + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "Asegúrese de que este valor es %(limit_value)s (es %(show_value)s )." + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "Asegúrese de que este valor sea menor o igual a %(limit_value)s." + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "Asegúrese de que este valor sea mayor o igual a %(limit_value)s." + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Asegúrese de que este valor tenga como mínimo %(limit_value)d carácter " +"(tiene %(show_value)d)." +msgstr[1] "" +"Asegúrese de que este valor tenga como mínimo %(limit_value)d caracteres " +"(tiene %(show_value)d)." + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Asegúrese de que este valor tenga como máximo %(limit_value)d carácter " +"(tiene %(show_value)d)." +msgstr[1] "" +"Asegúrese de que este valor tenga como máximo %(limit_value)d caracteres " +"(tiene %(show_value)d)." + +msgid "Enter a number." +msgstr "Ingrese un número." + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "Asegúrese de que no hayan mas de %(max)s dígito en total." +msgstr[1] "Asegúrese de que no hayan mas de %(max)s dígitos en total." + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "Asegúrese de que no hayan más de %(max)s decimal." +msgstr[1] "Asegúrese de que no hayan más de %(max)s decimales." + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "" +"Asegúrese de que no hayan más de %(max)s dígito antes del punto decimal." +msgstr[1] "" +"Asegúrese de que no hayan más de %(max)s dígitos antes del punto decimal" + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" + +msgid "Null characters are not allowed." +msgstr "" + +msgid "and" +msgstr "y" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "Ya existe un/a %(model_name)s con este/a %(field_labels)s." + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "Valor %(value)r no es una opción válida." + +msgid "This field cannot be null." +msgstr "Este campo no puede ser nulo." + +msgid "This field cannot be blank." +msgstr "Este campo no puede estar en blanco." + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "Ya existe un/a %(model_name)s con este/a %(field_label)s." + +#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'. +#. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" +"%(field_label)s debe ser único para %(date_field_label)s %(lookup_type)s." + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "Tipo de campo: %(field_type)s" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "" + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "" + +msgid "Boolean (Either True or False)" +msgstr "Booleano (Verdadero o Falso)" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "Cadena (máximo %(max_length)s)" + +msgid "Comma-separated integers" +msgstr "Enteros separados por comas" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" + +msgid "Date (without time)" +msgstr "Fecha (sin hora)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" + +msgid "Date (with time)" +msgstr "Fecha (con hora)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "" + +msgid "Decimal number" +msgstr "Número decimal" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" + +msgid "Duration" +msgstr "Duración" + +msgid "Email address" +msgstr "Dirección de correo electrónico" + +msgid "File path" +msgstr "Ruta de archivo" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "" + +msgid "Floating point number" +msgstr "Número de punto flotante" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "" + +msgid "Integer" +msgstr "Entero" + +msgid "Big (8 byte) integer" +msgstr "Entero grande (8 bytes)" + +msgid "IPv4 address" +msgstr "Dirección IPv4" + +msgid "IP address" +msgstr "Dirección IP" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "" + +msgid "Boolean (Either True, False or None)" +msgstr "Booleano (Verdadero, Falso o Nulo)" + +msgid "Positive big integer" +msgstr "" + +msgid "Positive integer" +msgstr "Entero positivo" + +msgid "Positive small integer" +msgstr "Entero positivo pequeño" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "Slug (hasta %(max_length)s)" + +msgid "Small integer" +msgstr "Entero pequeño" + +msgid "Text" +msgstr "Texto" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" + +msgid "Time" +msgstr "Hora" + +msgid "URL" +msgstr "URL" + +msgid "Raw binary data" +msgstr "Datos de binarios brutos" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "" + +msgid "Universally unique identifier" +msgstr "" + +msgid "File" +msgstr "Archivo" + +msgid "Image" +msgstr "Imagen" + +msgid "A JSON object" +msgstr "" + +msgid "Value must be valid JSON." +msgstr "" + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "La instancia del %(model)s con %(field)s %(value)r no existe." + +msgid "Foreign Key (type determined by related field)" +msgstr "Llave foránea (tipo determinado por el campo relacionado)" + +msgid "One-to-one relationship" +msgstr "Relación uno-a-uno" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "" + +msgid "Many-to-many relationship" +msgstr "Relación muchos-a-muchos" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr ":?.!" + +msgid "This field is required." +msgstr "Este campo es obligatorio." + +msgid "Enter a whole number." +msgstr "Ingrese un número entero." + +msgid "Enter a valid date." +msgstr "Ingrese una fecha válida." + +msgid "Enter a valid time." +msgstr "Ingrese una hora válida." + +msgid "Enter a valid date/time." +msgstr "Ingrese una fecha/hora válida." + +msgid "Enter a valid duration." +msgstr "Ingrese una duración válida." + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "" + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "" +"No se ha enviado ningún fichero. Compruebe el tipo de codificación en el " +"formulario." + +msgid "No file was submitted." +msgstr "No se ha enviado ningún fichero." + +msgid "The submitted file is empty." +msgstr "El fichero enviado está vacío." + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" +"Asegúrese de que este nombre de archivo tenga como máximo %(max)d carácter " +"(tiene %(length)d)." +msgstr[1] "" +"Asegúrese de que este nombre de archivo tenga como máximo %(max)d caracteres " +"(tiene %(length)d)." + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "" +"Por favor envíe un fichero o marque la casilla de limpiar, pero no ambos." + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" +"Envíe una imagen válida. El fichero que ha enviado no era una imagen o se " +"trataba de una imagen corrupta." + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "" +"Escoja una opción válida. %(value)s no es una de las opciones disponibles." + +msgid "Enter a list of values." +msgstr "Ingrese una lista de valores." + +msgid "Enter a complete value." +msgstr "Ingrese un valor completo." + +msgid "Enter a valid UUID." +msgstr "Ingrese un UUID válido." + +msgid "Enter a valid JSON." +msgstr "" + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr ":" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "(Campo oculto %(name)s) *%(error)s" + +msgid "ManagementForm data is missing or has been tampered with" +msgstr "Los datos de ManagementForm faltan o han sido manipulados" + +#, python-format +msgid "Please submit %d or fewer forms." +msgid_plural "Please submit %d or fewer forms." +msgstr[0] "Por favor, envíe %d o menos formularios." +msgstr[1] "Por favor, envíe %d o menos formularios." + +#, python-format +msgid "Please submit %d or more forms." +msgid_plural "Please submit %d or more forms." +msgstr[0] "Por favor, envíe %d o mas formularios." +msgstr[1] "Por favor, envíe %d o mas formularios." + +msgid "Order" +msgstr "Orden" + +msgid "Delete" +msgstr "Eliminar" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "Por favor, corrija el dato duplicado para %(field)s." + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "" +"Por favor corrija el dato duplicado para %(field)s, este debe ser único." + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"Por favor corrija los datos duplicados para %(field_name)s este debe ser " +"único para %(lookup)s en %(date_field)s." + +msgid "Please correct the duplicate values below." +msgstr "Por favor, corrija los valores duplicados abajo." + +msgid "The inline value did not match the parent instance." +msgstr "" + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "Escoja una opción válida. Esa opción no está entre las disponibles." + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "" + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" + +msgid "Clear" +msgstr "Limpiar" + +msgid "Currently" +msgstr "Actualmente" + +msgid "Change" +msgstr "Cambiar" + +msgid "Unknown" +msgstr "Desconocido" + +msgid "Yes" +msgstr "Sí" + +msgid "No" +msgstr "No" + +#. Translators: Please do not add spaces around commas. +msgid "yes,no,maybe" +msgstr "sí,no,quizás" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)d byte" +msgstr[1] "%(size)d bytes" + +#, python-format +msgid "%s KB" +msgstr "%s KB" + +#, python-format +msgid "%s MB" +msgstr "%s MB" + +#, python-format +msgid "%s GB" +msgstr "%s GB" + +#, python-format +msgid "%s TB" +msgstr "%s TB" + +#, python-format +msgid "%s PB" +msgstr "%s PB" + +msgid "p.m." +msgstr "p.m." + +msgid "a.m." +msgstr "a.m." + +msgid "PM" +msgstr "PM" + +msgid "AM" +msgstr "AM" + +msgid "midnight" +msgstr "medianoche" + +msgid "noon" +msgstr "mediodía" + +msgid "Monday" +msgstr "Lunes" + +msgid "Tuesday" +msgstr "Martes" + +msgid "Wednesday" +msgstr "Miércoles" + +msgid "Thursday" +msgstr "Jueves" + +msgid "Friday" +msgstr "Viernes" + +msgid "Saturday" +msgstr "Sábado" + +msgid "Sunday" +msgstr "Domingo" + +msgid "Mon" +msgstr "Lun" + +msgid "Tue" +msgstr "Mar" + +msgid "Wed" +msgstr "Mié" + +msgid "Thu" +msgstr "Jue" + +msgid "Fri" +msgstr "Vie" + +msgid "Sat" +msgstr "Sáb" + +msgid "Sun" +msgstr "Dom" + +msgid "January" +msgstr "Enero" + +msgid "February" +msgstr "Febrero" + +msgid "March" +msgstr "Marzo" + +msgid "April" +msgstr "Abril" + +msgid "May" +msgstr "Mayo" + +msgid "June" +msgstr "Junio" + +msgid "July" +msgstr "Julio" + +msgid "August" +msgstr "Agosto" + +msgid "September" +msgstr "Septiembre" + +msgid "October" +msgstr "Octubre" + +msgid "November" +msgstr "Noviembre" + +msgid "December" +msgstr "Diciembre" + +msgid "jan" +msgstr "ene" + +msgid "feb" +msgstr "feb" + +msgid "mar" +msgstr "mar" + +msgid "apr" +msgstr "abr" + +msgid "may" +msgstr "may" + +msgid "jun" +msgstr "jun" + +msgid "jul" +msgstr "jul" + +msgid "aug" +msgstr "ago" + +msgid "sep" +msgstr "sep" + +msgid "oct" +msgstr "oct" + +msgid "nov" +msgstr "nov" + +msgid "dec" +msgstr "dic" + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "Ene." + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "Feb." + +msgctxt "abbrev. month" +msgid "March" +msgstr "Marzo" + +msgctxt "abbrev. month" +msgid "April" +msgstr "Abril" + +msgctxt "abbrev. month" +msgid "May" +msgstr "Mayo" + +msgctxt "abbrev. month" +msgid "June" +msgstr "Junio" + +msgctxt "abbrev. month" +msgid "July" +msgstr "Julio" + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "Ago." + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "Sep." + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "Oct." + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "Nov." + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "Dic." + +msgctxt "alt. month" +msgid "January" +msgstr "Enero" + +msgctxt "alt. month" +msgid "February" +msgstr "Febrero" + +msgctxt "alt. month" +msgid "March" +msgstr "Marzo" + +msgctxt "alt. month" +msgid "April" +msgstr "Abril" + +msgctxt "alt. month" +msgid "May" +msgstr "Mayo" + +msgctxt "alt. month" +msgid "June" +msgstr "Junio" + +msgctxt "alt. month" +msgid "July" +msgstr "Julio" + +msgctxt "alt. month" +msgid "August" +msgstr "Agosto" + +msgctxt "alt. month" +msgid "September" +msgstr "Septiembre" + +msgctxt "alt. month" +msgid "October" +msgstr "Octubre" + +msgctxt "alt. month" +msgid "November" +msgstr "Noviembre" + +msgctxt "alt. month" +msgid "December" +msgstr "Diciembre" + +msgid "This is not a valid IPv6 address." +msgstr "Esta no es una dirección IPv6 válida." + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "" + +msgid "or" +msgstr "o" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr "," + +#, python-format +msgid "%d year" +msgid_plural "%d years" +msgstr[0] "%d año" +msgstr[1] "%d años" + +#, python-format +msgid "%d month" +msgid_plural "%d months" +msgstr[0] "%d mes" +msgstr[1] "%d meses" + +#, python-format +msgid "%d week" +msgid_plural "%d weeks" +msgstr[0] "%d semana" +msgstr[1] "%d semanas" + +#, python-format +msgid "%d day" +msgid_plural "%d days" +msgstr[0] "%d día" +msgstr[1] "%d días" + +#, python-format +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "%d hora" +msgstr[1] "%d horas" + +#, python-format +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "%d minuto" +msgstr[1] "%d minutos" + +msgid "Forbidden" +msgstr "Prohibido" + +msgid "CSRF verification failed. Request aborted." +msgstr "Verificación CSRF fallida. Solicitud abortada." + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your Web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" +"Estás viendo este mensaje porqué esta web requiere una cookie CSRF cuando se " +"envían formularios. Esta cookie se necesita por razones de seguridad, para " +"asegurar que tu navegador no ha sido comprometido por terceras partes." + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" + +msgid "More information is available with DEBUG=True." +msgstr "Se puede ver más información si se establece DEBUG=True." + +msgid "No year specified" +msgstr "No se ha indicado el año" + +msgid "Date out of range" +msgstr "" + +msgid "No month specified" +msgstr "No se ha indicado el mes" + +msgid "No day specified" +msgstr "No se ha indicado el día" + +msgid "No week specified" +msgstr "No se ha indicado la semana" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "No %(verbose_name_plural)s disponibles" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" +"Los futuros %(verbose_name_plural)s no están disponibles porque " +"%(class_name)s.allow_future es Falso." + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "No se encontró ningún %(verbose_name)s coincidente con la consulta" + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "" + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "Página inválida (%(page_number)s): %(message)s" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "" + +msgid "Directory indexes are not allowed here." +msgstr "Los índices de directorio no están permitidos." + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "" + +#, python-format +msgid "Index of %(directory)s" +msgstr "Índice de %(directory)s" + +msgid "Django: the Web framework for perfectionists with deadlines." +msgstr "" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" + +msgid "The install worked successfully! Congratulations!" +msgstr "" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not configured any " +"URLs." +msgstr "" + +msgid "Django Documentation" +msgstr "" + +msgid "Topics, references, & how-to’s" +msgstr "" + +msgid "Tutorial: A Polling App" +msgstr "" + +msgid "Get started with Django" +msgstr "" + +msgid "Django Community" +msgstr "" + +msgid "Connect, get help, or contribute" +msgstr "" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/es_CO/__init__.py b/venv/lib/python3.12/site-packages/django/conf/locale/es_CO/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/es_CO/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/es_CO/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6614e72efc21b1cb778fd64ffcdfdff585c5c597 GIT binary patch literal 201 zcmX@j%ge<81o5sX(m?cM5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!%Fxfq&rQ|OP0Yy6 zFHO;RNiEZNN=(kybEFQ_cZ$j>v@Gc?jK&MZmQEdVM^ zOiwM=Pssu+OwP|s)6dCIPRvQwPc4pj_ScV(&&S S5r~UHjE~HWjEqIhKo$UU88vqR literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/es_CO/__pycache__/formats.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/es_CO/__pycache__/formats.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b59d41b6f99ffeef6392aba048a72fc43c4ebe3f GIT binary patch literal 833 zcmZWnJ#X4j6n(~g7zmheMXlOWRUVKUo|$v-b z;X6P;1&B}yFD#G_#URL7 zkWseP%n33IV=<@@bdsBCo~f1?zQjmQ<_T3~I!=6_-5O_4jgQo>@qt|tZ&yU|hQ!C! z3$aDC%*vcr5k#Jq7g4#!ZyVa1>=H?ZV?~V@>T-2sNZfa2R@pE~sVa!Fw!1a^NbRkw z)I`ZsDwF>W!xSuuod#wrA|~$uf6Zh)CXM~PL077 zn*9qnoK1T6;C=DkF&y_N#?cT9^{z37=yEM=+k*}??Y3?j&=_l{0_@l$OP`F3!`X`Z zVA<%(G(L`U_+9Ux7@y;`Bng681_Ay0I_k#LIHiuSX*cs~4w7#A81bx literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/es_CO/formats.py b/venv/lib/python3.12/site-packages/django/conf/locale/es_CO/formats.py new file mode 100644 index 0000000000..056d0adaf7 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/es_CO/formats.py @@ -0,0 +1,26 @@ +# This file is distributed under the same license as the Django package. +# +DATE_FORMAT = r"j \d\e F \d\e Y" +TIME_FORMAT = "H:i" +DATETIME_FORMAT = r"j \d\e F \d\e Y \a \l\a\s H:i" +YEAR_MONTH_FORMAT = r"F \d\e Y" +MONTH_DAY_FORMAT = r"j \d\e F" +SHORT_DATE_FORMAT = "d/m/Y" +SHORT_DATETIME_FORMAT = "d/m/Y H:i" +FIRST_DAY_OF_WEEK = 1 +DATE_INPUT_FORMATS = [ + "%d/%m/%Y", # '25/10/2006' + "%d/%m/%y", # '25/10/06' + "%Y%m%d", # '20061025' +] +DATETIME_INPUT_FORMATS = [ + "%d/%m/%Y %H:%M:%S", + "%d/%m/%Y %H:%M:%S.%f", + "%d/%m/%Y %H:%M", + "%d/%m/%y %H:%M:%S", + "%d/%m/%y %H:%M:%S.%f", + "%d/%m/%y %H:%M", +] +DECIMAL_SEPARATOR = "," +THOUSAND_SEPARATOR = "." +NUMBER_GROUPING = 3 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/es_MX/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/conf/locale/es_MX/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..42f269181b678e521380dec5233b33f87a1d75ff GIT binary patch literal 18501 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 gSy#5#;&u%e(^SrYDYtj~OV{=Uv$kvJMALfz4K8, 2020 +# Gustavo López Hernández, 2022 +# Jesús Bautista , 2019-2020 +# Sergio Benitez , 2021 +# zodman , 2011 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2022-05-17 05:23-0500\n" +"PO-Revision-Date: 2022-07-25 06:49+0000\n" +"Last-Translator: Gustavo López Hernández\n" +"Language-Team: Spanish (Mexico) (http://www.transifex.com/django/django/" +"language/es_MX/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: es_MX\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Afrikaans" +msgstr "afrikáans" + +msgid "Arabic" +msgstr "Árabe" + +msgid "Algerian Arabic" +msgstr "Árabe argelino" + +msgid "Asturian" +msgstr "Asturiano" + +msgid "Azerbaijani" +msgstr "Azerbaijani" + +msgid "Bulgarian" +msgstr "Búlgaro" + +msgid "Belarusian" +msgstr "bielorruso" + +msgid "Bengali" +msgstr "Bengalí" + +msgid "Breton" +msgstr "bretón" + +msgid "Bosnian" +msgstr "Bosnio" + +msgid "Catalan" +msgstr "Catalán" + +msgid "Czech" +msgstr "Checo" + +msgid "Welsh" +msgstr "Galés" + +msgid "Danish" +msgstr "Danés" + +msgid "German" +msgstr "Alemán" + +msgid "Lower Sorbian" +msgstr "Bajo sorbio" + +msgid "Greek" +msgstr "Griego" + +msgid "English" +msgstr "Inglés" + +msgid "Australian English" +msgstr "Inglés australiano" + +msgid "British English" +msgstr "Inglés británico" + +msgid "Esperanto" +msgstr "Esperanto" + +msgid "Spanish" +msgstr "Español" + +msgid "Argentinian Spanish" +msgstr "Español de Argentina" + +msgid "Colombian Spanish" +msgstr "Español Colombiano" + +msgid "Mexican Spanish" +msgstr "Español de México" + +msgid "Nicaraguan Spanish" +msgstr "Español de nicaragua" + +msgid "Venezuelan Spanish" +msgstr "español de Venezuela" + +msgid "Estonian" +msgstr "Estonio" + +msgid "Basque" +msgstr "Vasco" + +msgid "Persian" +msgstr "Persa" + +msgid "Finnish" +msgstr "Finés" + +msgid "French" +msgstr "Francés" + +msgid "Frisian" +msgstr "Frisón" + +msgid "Irish" +msgstr "Irlandés" + +msgid "Scottish Gaelic" +msgstr "Gaélico escocés" + +msgid "Galician" +msgstr "Gallego" + +msgid "Hebrew" +msgstr "Hebreo" + +msgid "Hindi" +msgstr "Hindi" + +msgid "Croatian" +msgstr "Croata" + +msgid "Upper Sorbian" +msgstr "Alto sorbio" + +msgid "Hungarian" +msgstr "Húngaro" + +msgid "Armenian" +msgstr "Armenio" + +msgid "Interlingua" +msgstr "Interlingua" + +msgid "Indonesian" +msgstr "Indonesio" + +msgid "Igbo" +msgstr "Igbo" + +msgid "Ido" +msgstr "Ido" + +msgid "Icelandic" +msgstr "Islandés" + +msgid "Italian" +msgstr "Italiano" + +msgid "Japanese" +msgstr "Japonés" + +msgid "Georgian" +msgstr "Georgiano" + +msgid "Kabyle" +msgstr "Cabilio" + +msgid "Kazakh" +msgstr "Kazajstán" + +msgid "Khmer" +msgstr "Khmer" + +msgid "Kannada" +msgstr "Kannada" + +msgid "Korean" +msgstr "Coreano" + +msgid "Kyrgyz" +msgstr "" + +msgid "Luxembourgish" +msgstr "luxemburgués" + +msgid "Lithuanian" +msgstr "Lituano" + +msgid "Latvian" +msgstr "Letón" + +msgid "Macedonian" +msgstr "Macedonio" + +msgid "Malayalam" +msgstr "Malayalam" + +msgid "Mongolian" +msgstr "Mongol" + +msgid "Marathi" +msgstr "" + +msgid "Malay" +msgstr "" + +msgid "Burmese" +msgstr "burmés" + +msgid "Norwegian Bokmål" +msgstr "" + +msgid "Nepali" +msgstr "Nepal" + +msgid "Dutch" +msgstr "Holandés" + +msgid "Norwegian Nynorsk" +msgstr "Noruego Nynorsk" + +msgid "Ossetic" +msgstr "osetio" + +msgid "Punjabi" +msgstr "Punjabi" + +msgid "Polish" +msgstr "Polaco" + +msgid "Portuguese" +msgstr "Portugués" + +msgid "Brazilian Portuguese" +msgstr "Portugués de Brasil" + +msgid "Romanian" +msgstr "Rumano" + +msgid "Russian" +msgstr "Ruso" + +msgid "Slovak" +msgstr "Eslovaco" + +msgid "Slovenian" +msgstr "Esloveno" + +msgid "Albanian" +msgstr "Albanés" + +msgid "Serbian" +msgstr "Serbio" + +msgid "Serbian Latin" +msgstr "Latin Serbio" + +msgid "Swedish" +msgstr "Sueco" + +msgid "Swahili" +msgstr "Swahili" + +msgid "Tamil" +msgstr "Tamil" + +msgid "Telugu" +msgstr "Telugu" + +msgid "Tajik" +msgstr "" + +msgid "Thai" +msgstr "Tailandés" + +msgid "Turkmen" +msgstr "" + +msgid "Turkish" +msgstr "Turco" + +msgid "Tatar" +msgstr "Tatar" + +msgid "Udmurt" +msgstr "udmurto" + +msgid "Ukrainian" +msgstr "Ucraniano" + +msgid "Urdu" +msgstr "Urdu" + +msgid "Uzbek" +msgstr "" + +msgid "Vietnamese" +msgstr "Vietnamita" + +msgid "Simplified Chinese" +msgstr "Chino simplificado" + +msgid "Traditional Chinese" +msgstr "Chino tradicional" + +msgid "Messages" +msgstr "Mensajes" + +msgid "Site Maps" +msgstr "Mapas del sitio" + +msgid "Static Files" +msgstr "Archivos Estáticos" + +msgid "Syndication" +msgstr "Sindicación" + +#. Translators: String used to replace omitted page numbers in elided page +#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10]. +msgid "…" +msgstr "" + +msgid "That page number is not an integer" +msgstr "Ese número de página no es un número entero" + +msgid "That page number is less than 1" +msgstr "Ese número de página es menor que 1" + +msgid "That page contains no results" +msgstr "Esa página no contiene resultados" + +msgid "Enter a valid value." +msgstr "Introduzca un valor válido." + +msgid "Enter a valid URL." +msgstr "Ingrese una URL válida." + +msgid "Enter a valid integer." +msgstr "Ingrese un entero válido." + +msgid "Enter a valid email address." +msgstr "Introduzca una dirección de correo electrónico válida." + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" +"Introduzca un \"slug\" válido que conste de letras, números, guiones bajos o " +"guiones." + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" +"Introduzca un \"slug\" válido que conste de letras Unicode, números, guiones " +"bajos o guiones." + +msgid "Enter a valid IPv4 address." +msgstr "Introduzca una dirección IPv4 válida." + +msgid "Enter a valid IPv6 address." +msgstr "Introduzca una dirección IPv6 válida." + +msgid "Enter a valid IPv4 or IPv6 address." +msgstr "Introduzca una dirección IPv4 o IPv6 válida." + +msgid "Enter only digits separated by commas." +msgstr "Introduzca sólo números separados por comas." + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "Asegúrese de que este valor es %(limit_value)s (es %(show_value)s )." + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "Asegúrese de que este valor sea menor o igual a %(limit_value)s." + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "Asegúrese de que este valor sea mayor o igual a %(limit_value)s." + +#, python-format +msgid "Ensure this value is a multiple of step size %(limit_value)s." +msgstr "" + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Asegúrese de que este valor tenga como mínimo %(limit_value)d caracter " +"(tiene %(show_value)d)." +msgstr[1] "" +"Asegúrese de que este valor tenga como mínimo %(limit_value)d caracteres " +"(tiene %(show_value)d)." + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Asegúrese de que este valor tenga como máximo %(limit_value)d caracteres " +"(tiene %(show_value)d)." +msgstr[1] "" +"Asegúrese de que este valor tenga como máximo %(limit_value)d caracteres " +"(tiene %(show_value)d)." + +msgid "Enter a number." +msgstr "Introduzca un número." + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "Asegúrese de que no hay más de %(max)s dígito en total." +msgstr[1] "Asegúrese de que no hay más de %(max)s dígitos en total." + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" + +msgid "Null characters are not allowed." +msgstr "Caracteres nulos no están permitidos." + +msgid "and" +msgstr "y" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "" + +#, python-format +msgid "Constraint “%(name)s” is violated." +msgstr "" + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "El valor %(value)r no es una opción válida." + +msgid "This field cannot be null." +msgstr "Este campo no puede ser nulo." + +msgid "This field cannot be blank." +msgstr "Este campo no puede estar en blanco." + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "Ya existe un/a %(model_name)s con este/a %(field_label)s." + +#. Translators: The 'lookup_type' is one of 'date', 'year' or +#. 'month'. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "Campo tipo: %(field_type)s" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "El valor \"%(value)s\" debe ser Verdadero o Falso. " + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "" + +msgid "Boolean (Either True or False)" +msgstr "Boolean (Verdadero o Falso)" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "Cadena (máximo %(max_length)s)" + +msgid "Comma-separated integers" +msgstr "Enteros separados por comas" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" +"“%(value)s” : el valor tiene un formato de fecha inválido. Debería estar en " +"el formato YYYY-MM-DD." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" +"“%(value)s” : el valor tiene el formato correcto (YYYY-MM-DD) pero es una " +"fecha inválida." + +msgid "Date (without time)" +msgstr "Fecha (sin hora)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" +"'%(value)s' tiene un formato de fecha no válido. Este valor debe estar en el " +"formato AAAA-MM-DD HH:MM[:ss[.uuuuuu]][TZ]." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" + +msgid "Date (with time)" +msgstr "Fecha (con hora)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "" + +msgid "Decimal number" +msgstr "Número decimal" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" + +msgid "Duration" +msgstr "Duración" + +msgid "Email address" +msgstr "Dirección de correo electrónico" + +msgid "File path" +msgstr "Ruta de archivo" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "El valor \"%(value)s\" debe ser flotante." + +msgid "Floating point number" +msgstr "Número de punto flotante" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "" + +msgid "Integer" +msgstr "Entero" + +msgid "Big (8 byte) integer" +msgstr "Entero grande (8 bytes)" + +msgid "Small integer" +msgstr "Entero pequeño" + +msgid "IPv4 address" +msgstr "Dirección IPv4" + +msgid "IP address" +msgstr "Dirección IP" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "" + +msgid "Boolean (Either True, False or None)" +msgstr "Booleano (Verdadero, Falso o Nulo)" + +msgid "Positive big integer" +msgstr "" + +msgid "Positive integer" +msgstr "Entero positivo" + +msgid "Positive small integer" +msgstr "Entero positivo pequeño" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "Slug (hasta %(max_length)s)" + +msgid "Text" +msgstr "Texto" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" + +msgid "Time" +msgstr "Hora" + +msgid "URL" +msgstr "URL" + +msgid "Raw binary data" +msgstr "Los datos en bruto" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "" + +msgid "Universally unique identifier" +msgstr "" + +msgid "File" +msgstr "Archivo" + +msgid "Image" +msgstr "Imagen" + +msgid "A JSON object" +msgstr "Un objeto JSON" + +msgid "Value must be valid JSON." +msgstr "El valor debe ser JSON válido" + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "La instancia de %(model)s con %(field)s %(value)r no existe." + +msgid "Foreign Key (type determined by related field)" +msgstr "Clave foránea (el tipo está determinado por el campo relacionado)" + +msgid "One-to-one relationship" +msgstr "Relación uno-a-uno" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "Relación %(from)s - %(to)s " + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "Relaciones %(from)s - %(to)s" + +msgid "Many-to-many relationship" +msgstr "Relación muchos-a-muchos" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr ":?.!" + +msgid "This field is required." +msgstr "Este campo es obligatorio." + +msgid "Enter a whole number." +msgstr "Introduzca un número entero." + +msgid "Enter a valid date." +msgstr "Introduzca una fecha válida." + +msgid "Enter a valid time." +msgstr "Introduzca una hora válida." + +msgid "Enter a valid date/time." +msgstr "Introduzca una fecha/hora válida." + +msgid "Enter a valid duration." +msgstr "Introduzca una duración válida." + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "La cantidad de días debe tener valores entre {min_days} y {max_days}." + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "" +"No se envió un archivo. Verifique el tipo de codificación en el formulario." + +msgid "No file was submitted." +msgstr "No se envió ningún archivo." + +msgid "The submitted file is empty." +msgstr "El archivo enviado está vacío." + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" +msgstr[1] "" + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "Por favor envíe un archivo o marque la casilla, no ambos." + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" +"Seleccione una imagen válida. El archivo que ha seleccionado no es una " +"imagen o es un un archivo de imagen corrupto." + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "" +"Seleccione una opción válida. %(value)s no es una de las opciones " +"disponibles." + +msgid "Enter a list of values." +msgstr "Introduzca una lista de valores." + +msgid "Enter a complete value." +msgstr "Ingrese un valor completo." + +msgid "Enter a valid UUID." +msgstr "Ingrese un UUID válido." + +msgid "Enter a valid JSON." +msgstr "Ingresa un JSON válido." + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr ":" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "(Campo oculto %(name)s) %(error)s" + +#, python-format +msgid "" +"ManagementForm data is missing or has been tampered with. Missing fields: " +"%(field_names)s. You may need to file a bug report if the issue persists." +msgstr "" + +#, python-format +msgid "Please submit at most %(num)d form." +msgid_plural "Please submit at most %(num)d forms." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "Please submit at least %(num)d form." +msgid_plural "Please submit at least %(num)d forms." +msgstr[0] "" +msgstr[1] "" + +msgid "Order" +msgstr "Ordenar" + +msgid "Delete" +msgstr "Eliminar" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "Por favor, corrija la información duplicada en %(field)s." + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "" +"Por favor corrija la información duplicada en %(field)s, que debe ser única." + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"Por favor corrija la información duplicada en %(field_name)s que debe ser " +"única para el %(lookup)s en %(date_field)s." + +msgid "Please correct the duplicate values below." +msgstr "Por favor, corrija los valores duplicados detallados mas abajo." + +msgid "The inline value did not match the parent instance." +msgstr "" + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "" +"Seleccione una opción válida. La opción seleccionada no es una de las " +"disponibles." + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "" + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" + +msgid "Clear" +msgstr "Borrar" + +msgid "Currently" +msgstr "Actualmente" + +msgid "Change" +msgstr "Modificar" + +msgid "Unknown" +msgstr "Desconocido" + +msgid "Yes" +msgstr "Sí" + +msgid "No" +msgstr "No" + +#. Translators: Please do not add spaces around commas. +msgid "yes,no,maybe" +msgstr "sí,no,tal vez" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)d byte" +msgstr[1] "%(size)d bytes" + +#, python-format +msgid "%s KB" +msgstr "%s KB" + +#, python-format +msgid "%s MB" +msgstr "%s MB" + +#, python-format +msgid "%s GB" +msgstr "%s GB" + +#, python-format +msgid "%s TB" +msgstr "%s TB" + +#, python-format +msgid "%s PB" +msgstr "%s PB" + +msgid "p.m." +msgstr "p.m." + +msgid "a.m." +msgstr "a.m." + +msgid "PM" +msgstr "PM" + +msgid "AM" +msgstr "AM" + +msgid "midnight" +msgstr "medianoche" + +msgid "noon" +msgstr "mediodía" + +msgid "Monday" +msgstr "Lunes" + +msgid "Tuesday" +msgstr "Martes" + +msgid "Wednesday" +msgstr "Miércoles" + +msgid "Thursday" +msgstr "Jueves" + +msgid "Friday" +msgstr "Viernes" + +msgid "Saturday" +msgstr "Sábado" + +msgid "Sunday" +msgstr "Domingo" + +msgid "Mon" +msgstr "Lun" + +msgid "Tue" +msgstr "Mar" + +msgid "Wed" +msgstr "Mie" + +msgid "Thu" +msgstr "Jue" + +msgid "Fri" +msgstr "Vie" + +msgid "Sat" +msgstr "Sab" + +msgid "Sun" +msgstr "Dom" + +msgid "January" +msgstr "Enero" + +msgid "February" +msgstr "Febrero" + +msgid "March" +msgstr "Marzo" + +msgid "April" +msgstr "Abril" + +msgid "May" +msgstr "Mayo" + +msgid "June" +msgstr "Junio" + +msgid "July" +msgstr "Julio" + +msgid "August" +msgstr "Agosto" + +msgid "September" +msgstr "Septiembre" + +msgid "October" +msgstr "Octubre" + +msgid "November" +msgstr "Noviembre" + +msgid "December" +msgstr "Diciembre" + +msgid "jan" +msgstr "ene" + +msgid "feb" +msgstr "feb" + +msgid "mar" +msgstr "mar" + +msgid "apr" +msgstr "abr" + +msgid "may" +msgstr "may" + +msgid "jun" +msgstr "jun" + +msgid "jul" +msgstr "jul" + +msgid "aug" +msgstr "ago" + +msgid "sep" +msgstr "sep" + +msgid "oct" +msgstr "oct" + +msgid "nov" +msgstr "nov" + +msgid "dec" +msgstr "dic" + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "Ene." + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "Feb." + +msgctxt "abbrev. month" +msgid "March" +msgstr "Marzo" + +msgctxt "abbrev. month" +msgid "April" +msgstr "Abril" + +msgctxt "abbrev. month" +msgid "May" +msgstr "Mayo" + +msgctxt "abbrev. month" +msgid "June" +msgstr "Junio" + +msgctxt "abbrev. month" +msgid "July" +msgstr "Julio" + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "Ago." + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "Sep." + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "Oct." + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "Nov." + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "Dic." + +msgctxt "alt. month" +msgid "January" +msgstr "Enero" + +msgctxt "alt. month" +msgid "February" +msgstr "Febrero" + +msgctxt "alt. month" +msgid "March" +msgstr "Marzo" + +msgctxt "alt. month" +msgid "April" +msgstr "Abril" + +msgctxt "alt. month" +msgid "May" +msgstr "Mayo" + +msgctxt "alt. month" +msgid "June" +msgstr "Junio" + +msgctxt "alt. month" +msgid "July" +msgstr "Julio" + +msgctxt "alt. month" +msgid "August" +msgstr "Agosto" + +msgctxt "alt. month" +msgid "September" +msgstr "Septiembre" + +msgctxt "alt. month" +msgid "October" +msgstr "Octubre" + +msgctxt "alt. month" +msgid "November" +msgstr "Noviembre" + +msgctxt "alt. month" +msgid "December" +msgstr "Diciembre" + +msgid "This is not a valid IPv6 address." +msgstr "Esta no es una dirección IPv6 válida." + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "" + +msgid "or" +msgstr "o" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr "," + +#, python-format +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "%(num)d hora" +msgstr[1] "%(num)d horas" + +#, python-format +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "" +msgstr[1] "" + +msgid "Forbidden" +msgstr "Prohibido" + +msgid "CSRF verification failed. Request aborted." +msgstr "" + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" + +msgid "More information is available with DEBUG=True." +msgstr "" + +msgid "No year specified" +msgstr "No se ha especificado el valor año" + +msgid "Date out of range" +msgstr "Fecha fuera de rango" + +msgid "No month specified" +msgstr "No se ha especificado el valor mes" + +msgid "No day specified" +msgstr "No se ha especificado el valor dia" + +msgid "No week specified" +msgstr "No se ha especificado el valor semana" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "No hay %(verbose_name_plural)s disponibles" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" +"No hay %(verbose_name_plural)s futuros disponibles porque %(class_name)s." +"allow_future tiene el valor False." + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "No se han encontrado %(verbose_name)s que coincidan con la consulta" + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "La página no es \"last\", ni puede ser convertido a un int." + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "Página inválida (%(page_number)s): %(message)s" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "" + +msgid "Directory indexes are not allowed here." +msgstr "Los índices del directorio no están permitidos." + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "" + +#, python-format +msgid "Index of %(directory)s" +msgstr "Índice de %(directory)s" + +msgid "The install worked successfully! Congratulations!" +msgstr "¡La instalación funcionó con éxito! ¡Felicidades!" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not configured any " +"URLs." +msgstr "" + +msgid "Django Documentation" +msgstr "Documentación de Django" + +msgid "Topics, references, & how-to’s" +msgstr "" + +msgid "Tutorial: A Polling App" +msgstr "" + +msgid "Get started with Django" +msgstr "" + +msgid "Django Community" +msgstr "Comunidad de Django" + +msgid "Connect, get help, or contribute" +msgstr "" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/es_MX/__init__.py b/venv/lib/python3.12/site-packages/django/conf/locale/es_MX/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/es_MX/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/es_MX/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b3fbfac5ca90cb940ac8e25c3c435919c6ea7077 GIT binary patch literal 201 zcmX@j%ge<81o5sX(m?cM5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!%Fxfq&rQ|OP0Yy6 zFHO;RNiEZNN=(kybEFQ_cZ$j>v@Gc?jK&MZmQEdVM^ zOiwM=Pssu+OwP|s)6dCIPRvQwPc4r3jnI#e&&S S5r~UHjE~HWjEqIhKo$UXpf!pB literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/es_MX/__pycache__/formats.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/es_MX/__pycache__/formats.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..cee676e98b413f7408cb057920e1db0f9208760b GIT binary patch literal 833 zcmZWnJ#X4j6n(~g7zhE(hoV+(sUi+ zujt;b|D;kEM#S1F8%j2&J`*6&yy2d6&pqe*+47%QECTS+xZiC+0`S*sHpjOn_a8C& z0T56DB2)tTR39Q$68Tj>3a9}TRD&p_hB^RIKM9q>7{(Yz5jBFMY7`x)2a{O-(2ZZ^ zny6{y$`7EpWTn`1U;L-$ntHBjHua{H^TyQHO>K;B06_~XZg>Tr>z2Sb%#$v~Ajnvd zQMPR21{sC17?cmX$;~v!REi8=WF$BJL@F?C_i$g`1}9I0kJ4^%tuBeel6Z5AzbmNa zWAkWJ53lPnu`9*VxySCGJy|XTN9?S7$|57Q{I%SA>Sd)=E2C zyw>2)I8i$ng+{$vJO2gl@tcEX2X<}CfR^61>}v!|#u%RIt#2n>AHhpg?{{oCHu_^| z_AcRIGV0p>cZIj7(CLkglL0pB9m9d>YGrKM{Wdi1mTnr*a5VlaY}-RiA324=WJ$fZ zY;EFQ_cZ$j>v@Gc?jK&MZmQEdVM^ zOiwM=Pssu+OwP|s)6dCIPRvQwPc4r3^VE-z&&S S5r~UHjE~HWjEqIhKo$UV4>f!M literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/es_NI/__pycache__/formats.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/es_NI/__pycache__/formats.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..31d9510404256f32c290489fb7097dc08dde9866 GIT binary patch literal 833 zcmZWn%Wm3G5WVL82$;8`R&A*wFOV9pn(k0l)hQ-et!-qCB3qU$hie|GjS(hDc$I!d z_uchNTB#eBh;3Kdp=8IZ*CY^VW-({x%sF$%lK&(UF@Qs3es_NP0Ql=Qo51}#?mlAp z4iHcPA`}Ao6d&>{eiTpwD5wNcNC}~^67B*N`9UZVj8TkH6jNd-uEf!SaxhJlk}i2! zRFP^FYxf|#{(7bFzW9$Vs(Mj1Rb6$8-Z-*VM>aw?h@b^!H@XH-bwl6_OMW*(AxK$} zlDE~=4N)>>QK%Gh)0=6Ls#hqkLN(po6RJ#g+~hvHHBO%zAE{mA1G^&1E8@+KA0Nk; z5{r11mKd!jh#V~~;u6bk8`7KX5^0&CMU4}9slG9!?z<{2ZO!kY^VJ=W z?$C`T9COPiAq-oLrOh+^ZQ#&$BOQAT`fD_v*u=8OYCb kd0gN60tMd;WNu^OXBZ316v!WX8ZT$&nd~=ml*7CK0TdzWzW@LL literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/es_NI/formats.py b/venv/lib/python3.12/site-packages/django/conf/locale/es_NI/formats.py new file mode 100644 index 0000000000..0c8112a62c --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/es_NI/formats.py @@ -0,0 +1,26 @@ +# This file is distributed under the same license as the Django package. +# +DATE_FORMAT = r"j \d\e F \d\e Y" +TIME_FORMAT = "H:i" +DATETIME_FORMAT = r"j \d\e F \d\e Y \a \l\a\s H:i" +YEAR_MONTH_FORMAT = r"F \d\e Y" +MONTH_DAY_FORMAT = r"j \d\e F" +SHORT_DATE_FORMAT = "d/m/Y" +SHORT_DATETIME_FORMAT = "d/m/Y H:i" +FIRST_DAY_OF_WEEK = 1 # Monday: ISO 8601 +DATE_INPUT_FORMATS = [ + "%d/%m/%Y", # '25/10/2006' + "%d/%m/%y", # '25/10/06' + "%Y%m%d", # '20061025' +] +DATETIME_INPUT_FORMATS = [ + "%d/%m/%Y %H:%M:%S", + "%d/%m/%Y %H:%M:%S.%f", + "%d/%m/%Y %H:%M", + "%d/%m/%y %H:%M:%S", + "%d/%m/%y %H:%M:%S.%f", + "%d/%m/%y %H:%M", +] +DECIMAL_SEPARATOR = "." +THOUSAND_SEPARATOR = "," +NUMBER_GROUPING = 3 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/es_PR/__init__.py b/venv/lib/python3.12/site-packages/django/conf/locale/es_PR/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/es_PR/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/es_PR/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..88e08fed14cf6ef1f8bb4b095ab0d66bdc169ef9 GIT binary patch literal 201 zcmX@j%ge<81o5sX(m?cM5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!%Fxfq&rQ|OP0Yy6 zFHO;RNiEZNN=(kybEFQ_cZ$j>v@Gc?jK&MZmQEdVM^ zOiwM=Pssu+OwP|s)6dCIPRvQwPc4oQ2-1&_&&S S5r~UHjE~HWjEqIhKo$UX7Bzg>zwcUOo z;TymJ0ZbtZ`;ZU&ksk+800&VJhfoNIQ5e%W((@s@2XOQ|g(5hHqWA#Ca2y@X5_!g9 zE^}?%)^p{%pg8_Yao{}rkLKE1u5Glnww?2?>8+aH2%R8?CRCirI(VuZZ%>EjFyu_g zDcfw84>`#V&2g0?S1WQ&C;bQ&xUQ4fr`yKaiPI0R^nwr zEsIi(mlrX)TH6+kce4wUioi>1O{~k6O~c_`RpONmNj58@B&)kqGY@EQT)8SWJ*A?G zW%XPTJ}uaFTeaS3$@lY`i|lrdeV!}{AFDO~v)U9Iyu{0*v|#0m*lP0i(hg(lt=g#| zsb`YdYE=4dTc!?8t#4Xa7?$)YJk>g1j)ftH7lted=3uX^iwZCdNl_bH=Q9lkp~$! ikXQ!&S>GJ6f9dcO60=JdWR5(o=UJCcePzaJ^2R?073nSj literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/es_PR/formats.py b/venv/lib/python3.12/site-packages/django/conf/locale/es_PR/formats.py new file mode 100644 index 0000000000..d50fe5d657 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/es_PR/formats.py @@ -0,0 +1,27 @@ +# This file is distributed under the same license as the Django package. +# +DATE_FORMAT = r"j \d\e F \d\e Y" +TIME_FORMAT = "H:i" +DATETIME_FORMAT = r"j \d\e F \d\e Y \a \l\a\s H:i" +YEAR_MONTH_FORMAT = r"F \d\e Y" +MONTH_DAY_FORMAT = r"j \d\e F" +SHORT_DATE_FORMAT = "d/m/Y" +SHORT_DATETIME_FORMAT = "d/m/Y H:i" +FIRST_DAY_OF_WEEK = 0 # Sunday + +DATE_INPUT_FORMATS = [ + "%d/%m/%Y", # '31/12/2009' + "%d/%m/%y", # '31/12/09' +] +DATETIME_INPUT_FORMATS = [ + "%d/%m/%Y %H:%M:%S", + "%d/%m/%Y %H:%M:%S.%f", + "%d/%m/%Y %H:%M", + "%d/%m/%y %H:%M:%S", + "%d/%m/%y %H:%M:%S.%f", + "%d/%m/%y %H:%M", +] + +DECIMAL_SEPARATOR = "." +THOUSAND_SEPARATOR = "," +NUMBER_GROUPING = 3 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/es_VE/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/conf/locale/es_VE/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..f7efb3ef08bb8f5976b7b0dc0d30430310c1a43f GIT binary patch literal 18840 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/es_VE/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/conf/locale/es_VE/LC_MESSAGES/django.po new file mode 100644 index 0000000000..bd0a9048b1 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/es_VE/LC_MESSAGES/django.po @@ -0,0 +1,1260 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Claude Paroz , 2020 +# Eduardo , 2017 +# Leonardo J. Caballero G. , 2016 +# Sebastián Magrí, 2011 +# Yoel Acevedo, 2017 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-05-19 20:23+0200\n" +"PO-Revision-Date: 2020-07-14 21:42+0000\n" +"Last-Translator: Transifex Bot <>\n" +"Language-Team: Spanish (Venezuela) (http://www.transifex.com/django/django/" +"language/es_VE/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: es_VE\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Afrikaans" +msgstr "Afrikáans" + +msgid "Arabic" +msgstr "Árabe" + +msgid "Algerian Arabic" +msgstr "" + +msgid "Asturian" +msgstr "Asturiano" + +msgid "Azerbaijani" +msgstr "Azerí" + +msgid "Bulgarian" +msgstr "Búlgaro" + +msgid "Belarusian" +msgstr "Bielorruso" + +msgid "Bengali" +msgstr "Bengalí" + +msgid "Breton" +msgstr "Bretón" + +msgid "Bosnian" +msgstr "Bosnio" + +msgid "Catalan" +msgstr "Catalán" + +msgid "Czech" +msgstr "Checo" + +msgid "Welsh" +msgstr "Galés" + +msgid "Danish" +msgstr "Danés" + +msgid "German" +msgstr "Alemán" + +msgid "Lower Sorbian" +msgstr "Sorbio Inferior" + +msgid "Greek" +msgstr "Griego" + +msgid "English" +msgstr "Inglés" + +msgid "Australian English" +msgstr "Inglés Australiano" + +msgid "British English" +msgstr "Inglés Británico" + +msgid "Esperanto" +msgstr "Esperanto" + +msgid "Spanish" +msgstr "Español" + +msgid "Argentinian Spanish" +msgstr "Español de Argentina" + +msgid "Colombian Spanish" +msgstr "Español de Colombia" + +msgid "Mexican Spanish" +msgstr "Español de México" + +msgid "Nicaraguan Spanish" +msgstr "Español de Nicaragua" + +msgid "Venezuelan Spanish" +msgstr "Español de Venezuela" + +msgid "Estonian" +msgstr "Estonio" + +msgid "Basque" +msgstr "Vazco" + +msgid "Persian" +msgstr "Persa" + +msgid "Finnish" +msgstr "Finlandés" + +msgid "French" +msgstr "Francés" + +msgid "Frisian" +msgstr "Frisio" + +msgid "Irish" +msgstr "Irlandés" + +msgid "Scottish Gaelic" +msgstr "Gaélico Escocés" + +msgid "Galician" +msgstr "Galés" + +msgid "Hebrew" +msgstr "Hebreo" + +msgid "Hindi" +msgstr "Hindi" + +msgid "Croatian" +msgstr "Croata" + +msgid "Upper Sorbian" +msgstr "Sorbio Superior" + +msgid "Hungarian" +msgstr "Húngaro" + +msgid "Armenian" +msgstr "" + +msgid "Interlingua" +msgstr "Interlingua" + +msgid "Indonesian" +msgstr "Indonesio" + +msgid "Igbo" +msgstr "" + +msgid "Ido" +msgstr "Ido" + +msgid "Icelandic" +msgstr "Islandés" + +msgid "Italian" +msgstr "Italiano" + +msgid "Japanese" +msgstr "Japonés" + +msgid "Georgian" +msgstr "Georgiano" + +msgid "Kabyle" +msgstr "" + +msgid "Kazakh" +msgstr "Kazajo" + +msgid "Khmer" +msgstr "Khmer" + +msgid "Kannada" +msgstr "Canarés" + +msgid "Korean" +msgstr "Coreano" + +msgid "Kyrgyz" +msgstr "" + +msgid "Luxembourgish" +msgstr "Luxenburgués" + +msgid "Lithuanian" +msgstr "Lituano" + +msgid "Latvian" +msgstr "Latvio" + +msgid "Macedonian" +msgstr "Macedonio" + +msgid "Malayalam" +msgstr "Malayala" + +msgid "Mongolian" +msgstr "Mongol" + +msgid "Marathi" +msgstr "Maratí" + +msgid "Burmese" +msgstr "Birmano" + +msgid "Norwegian Bokmål" +msgstr "Noruego" + +msgid "Nepali" +msgstr "Nepalí" + +msgid "Dutch" +msgstr "Holandés" + +msgid "Norwegian Nynorsk" +msgstr "Nynorsk" + +msgid "Ossetic" +msgstr "Osetio" + +msgid "Punjabi" +msgstr "Punjabi" + +msgid "Polish" +msgstr "Polaco" + +msgid "Portuguese" +msgstr "Portugués" + +msgid "Brazilian Portuguese" +msgstr "Portugués de Brasil" + +msgid "Romanian" +msgstr "Ruman" + +msgid "Russian" +msgstr "Ruso" + +msgid "Slovak" +msgstr "Eslovaco" + +msgid "Slovenian" +msgstr "Eslovenio" + +msgid "Albanian" +msgstr "Albano" + +msgid "Serbian" +msgstr "Serbi" + +msgid "Serbian Latin" +msgstr "Latín Serbio" + +msgid "Swedish" +msgstr "Sueco" + +msgid "Swahili" +msgstr "Suajili" + +msgid "Tamil" +msgstr "Tamil" + +msgid "Telugu" +msgstr "Telugu" + +msgid "Tajik" +msgstr "" + +msgid "Thai" +msgstr "Tailandés" + +msgid "Turkmen" +msgstr "" + +msgid "Turkish" +msgstr "Turco" + +msgid "Tatar" +msgstr "Tártaro" + +msgid "Udmurt" +msgstr "Udmurt" + +msgid "Ukrainian" +msgstr "Ucranio" + +msgid "Urdu" +msgstr "Urdu" + +msgid "Uzbek" +msgstr "" + +msgid "Vietnamese" +msgstr "Vietnamita" + +msgid "Simplified Chinese" +msgstr "Chino simplificado" + +msgid "Traditional Chinese" +msgstr "Chino tradicional" + +msgid "Messages" +msgstr "Mensajes" + +msgid "Site Maps" +msgstr "Mapas del sitio" + +msgid "Static Files" +msgstr "Archivos estáticos" + +msgid "Syndication" +msgstr "Sindicación" + +msgid "That page number is not an integer" +msgstr "Ese número de página no es un número entero" + +msgid "That page number is less than 1" +msgstr "Ese número de página es menor que 1" + +msgid "That page contains no results" +msgstr "Esa página no contiene resultados" + +msgid "Enter a valid value." +msgstr "Introduzca un valor válido." + +msgid "Enter a valid URL." +msgstr "Introduzca una URL válida." + +msgid "Enter a valid integer." +msgstr "Ingrese un valor válido." + +msgid "Enter a valid email address." +msgstr "Ingrese una dirección de correo electrónico válida." + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" + +msgid "Enter a valid IPv4 address." +msgstr "Introduzca una dirección IPv4 válida." + +msgid "Enter a valid IPv6 address." +msgstr "Ingrese una dirección IPv6 válida." + +msgid "Enter a valid IPv4 or IPv6 address." +msgstr "Ingrese una dirección IPv4 o IPv6 válida." + +msgid "Enter only digits separated by commas." +msgstr "Introduzca solo dígitos separados por comas." + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "Asegúrese de que este valor %(limit_value)s (ahora es %(show_value)s)." + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "Asegúrese de que este valor es menor o igual que %(limit_value)s." + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "Asegúrese de que este valor es mayor o igual que %(limit_value)s." + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Asegúrese de que este valor tenga como mínimo %(limit_value)d carácter " +"(tiene %(show_value)d)." +msgstr[1] "" +"Asegúrese de que este valor tenga como mínimo %(limit_value)d caracteres " +"(tiene %(show_value)d)." + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Asegúrese de que este valor tenga como máximo %(limit_value)d carácter " +"(tiene %(show_value)d)." +msgstr[1] "" +"Asegúrese de que este valor tenga como máximo %(limit_value)d caracteres " +"(tiene %(show_value)d)." + +msgid "Enter a number." +msgstr "Introduzca un número." + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "Asegúrese de que no hayan más de %(max)s dígito en total." +msgstr[1] "Asegúrese de que no hayan más de %(max)s dígitos en total." + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "Asegúrese de que no hayan más de %(max)s decimal." +msgstr[1] "Asegúrese de que no hayan más de %(max)s decimales." + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "" +"Asegúrese de que no hayan más de %(max)s dígito antes del punto decimal." +msgstr[1] "" +"Asegúrese de que no hayan más de %(max)s dígitos antes del punto decimal." + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" + +msgid "Null characters are not allowed." +msgstr "" + +msgid "and" +msgstr "y" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "%(model_name)s con este %(field_labels)s ya existe." + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "Valor %(value)r no es una opción válida." + +msgid "This field cannot be null." +msgstr "Este campo no puede ser nulo." + +msgid "This field cannot be blank." +msgstr "Este campo no puede estar en blanco." + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "%(model_name)s con esta %(field_label)s ya existe." + +#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'. +#. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" +"%(field_label)s debe ser único para %(date_field_label)s %(lookup_type)s." + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "Tipo de campo: %(field_type)s" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "" + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "" + +msgid "Boolean (Either True or False)" +msgstr "Booleano (Verdadero o Falso)" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "Cadena (máximo %(max_length)s)" + +msgid "Comma-separated integers" +msgstr "Enteros separados por comas" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" + +msgid "Date (without time)" +msgstr "Fecha (sin hora)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" + +msgid "Date (with time)" +msgstr "Fecha (con hora)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "" + +msgid "Decimal number" +msgstr "Número decimal" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" + +msgid "Duration" +msgstr "Duración" + +msgid "Email address" +msgstr "Dirección de correo electrónico" + +msgid "File path" +msgstr "Ruta de archivo" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "" + +msgid "Floating point number" +msgstr "Número de punto flotante" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "" + +msgid "Integer" +msgstr "Entero" + +msgid "Big (8 byte) integer" +msgstr "Entero grande (8 bytes)" + +msgid "IPv4 address" +msgstr "Dirección IPv4" + +msgid "IP address" +msgstr "Dirección IP" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "" + +msgid "Boolean (Either True, False or None)" +msgstr "Booleano (Verdadero, Falso o Nulo)" + +msgid "Positive big integer" +msgstr "" + +msgid "Positive integer" +msgstr "Entero positivo" + +msgid "Positive small integer" +msgstr "Entero positivo pequeño" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "Slug (hasta %(max_length)s)" + +msgid "Small integer" +msgstr "Entero pequeño" + +msgid "Text" +msgstr "Texto" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" + +msgid "Time" +msgstr "Hora" + +msgid "URL" +msgstr "URL" + +msgid "Raw binary data" +msgstr "Datos de binarios brutos" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "" + +msgid "Universally unique identifier" +msgstr "" + +msgid "File" +msgstr "Archivo" + +msgid "Image" +msgstr "Imagen" + +msgid "A JSON object" +msgstr "" + +msgid "Value must be valid JSON." +msgstr "" + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "la instancia del %(model)s con %(field)s %(value)r no existe." + +msgid "Foreign Key (type determined by related field)" +msgstr "Clave foránea (tipo determinado por el campo relacionado)" + +msgid "One-to-one relationship" +msgstr "Relación uno a uno" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "Relación %(from)s - %(to)s " + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "Relaciones %(from)s - %(to)s" + +msgid "Many-to-many relationship" +msgstr "Relación muchos a muchos" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr ":?.!" + +msgid "This field is required." +msgstr "Este campo es obligatorio." + +msgid "Enter a whole number." +msgstr "Introduzca un número completo." + +msgid "Enter a valid date." +msgstr "Introduzca una fecha válida." + +msgid "Enter a valid time." +msgstr "Introduzca una hora válida." + +msgid "Enter a valid date/time." +msgstr "Introduzca una hora y fecha válida." + +msgid "Enter a valid duration." +msgstr "Ingrese una duración válida." + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "" + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "" +"No se envió archivo alguno. Revise el tipo de codificación del formulario." + +msgid "No file was submitted." +msgstr "No se envió ningún archivo." + +msgid "The submitted file is empty." +msgstr "El archivo enviado está vacío." + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" +"Asegúrese de que este nombre de archivo tenga como máximo %(max)d carácter " +"(tiene %(length)d)." +msgstr[1] "" +"Asegúrese de que este nombre de archivo tenga como máximo %(max)d caracteres " +"(tiene %(length)d)." + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "Por favor provea un archivo o active el selector de limpiar, no ambos." + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" +"Envíe una imagen válida. El fichero que ha enviado no era una imagen o se " +"trataba de una imagen corrupta." + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "" +"Escoja una opción válida. %(value)s no es una de las opciones disponibles." + +msgid "Enter a list of values." +msgstr "Ingrese una lista de valores." + +msgid "Enter a complete value." +msgstr "Ingrese un valor completo." + +msgid "Enter a valid UUID." +msgstr "Ingrese un UUID válido." + +msgid "Enter a valid JSON." +msgstr "" + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr ":" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "(Campo oculto %(name)s) %(error)s" + +msgid "ManagementForm data is missing or has been tampered with" +msgstr "Los datos de ManagementForm faltan o han sido manipulados" + +#, python-format +msgid "Please submit %d or fewer forms." +msgid_plural "Please submit %d or fewer forms." +msgstr[0] "Por favor, envíe %d o un menor número de formularios." +msgstr[1] "Por favor, envíe %d o un menor número de formularios." + +#, python-format +msgid "Please submit %d or more forms." +msgid_plural "Please submit %d or more forms." +msgstr[0] "Por favor, envíe %d o más formularios." +msgstr[1] "Por favor, envíe %d o más formularios." + +msgid "Order" +msgstr "Orden" + +msgid "Delete" +msgstr "Eliminar" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "Por favor, corrija el dato duplicado para %(field)s." + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "" +"Por favor, corrija el dato duplicado para %(field)s, este debe ser único." + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"Por favor, corrija los datos duplicados para %(field_name)s este debe ser " +"único para %(lookup)s en %(date_field)s." + +msgid "Please correct the duplicate values below." +msgstr "Por favor, corrija los valores duplicados abajo." + +msgid "The inline value did not match the parent instance." +msgstr "" + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "" +"Escoja una opción válida. Esa opción no está entre las opciones disponibles." + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "" + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" + +msgid "Clear" +msgstr "Limpiar" + +msgid "Currently" +msgstr "Actualmente" + +msgid "Change" +msgstr "Cambiar" + +msgid "Unknown" +msgstr "Desconocido" + +msgid "Yes" +msgstr "Sí" + +msgid "No" +msgstr "No" + +#. Translators: Please do not add spaces around commas. +msgid "yes,no,maybe" +msgstr "sí,no,quizás" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)d byte" +msgstr[1] "%(size)d bytes" + +#, python-format +msgid "%s KB" +msgstr "%s KB" + +#, python-format +msgid "%s MB" +msgstr "%s MB" + +#, python-format +msgid "%s GB" +msgstr "%s GB" + +#, python-format +msgid "%s TB" +msgstr "%s TB" + +#, python-format +msgid "%s PB" +msgstr "%s PB" + +msgid "p.m." +msgstr "p.m." + +msgid "a.m." +msgstr "a.m." + +msgid "PM" +msgstr "PM" + +msgid "AM" +msgstr "AM" + +msgid "midnight" +msgstr "medianoche" + +msgid "noon" +msgstr "mediodía" + +msgid "Monday" +msgstr "Lunes" + +msgid "Tuesday" +msgstr "Martes" + +msgid "Wednesday" +msgstr "Miércoles" + +msgid "Thursday" +msgstr "Jueves" + +msgid "Friday" +msgstr "Viernes" + +msgid "Saturday" +msgstr "Sábado" + +msgid "Sunday" +msgstr "Domingo" + +msgid "Mon" +msgstr "Lun" + +msgid "Tue" +msgstr "Mar" + +msgid "Wed" +msgstr "Mié" + +msgid "Thu" +msgstr "Jue" + +msgid "Fri" +msgstr "Vie" + +msgid "Sat" +msgstr "Sáb" + +msgid "Sun" +msgstr "Dom" + +msgid "January" +msgstr "Enero" + +msgid "February" +msgstr "Febrero" + +msgid "March" +msgstr "Marzo" + +msgid "April" +msgstr "Abril" + +msgid "May" +msgstr "Mayo" + +msgid "June" +msgstr "Junio" + +msgid "July" +msgstr "Julio" + +msgid "August" +msgstr "Agosto" + +msgid "September" +msgstr "Septiembre" + +msgid "October" +msgstr "Octubre" + +msgid "November" +msgstr "Noviembre" + +msgid "December" +msgstr "Diciembre" + +msgid "jan" +msgstr "ene" + +msgid "feb" +msgstr "feb" + +msgid "mar" +msgstr "mar" + +msgid "apr" +msgstr "abr" + +msgid "may" +msgstr "may" + +msgid "jun" +msgstr "jun" + +msgid "jul" +msgstr "jul" + +msgid "aug" +msgstr "ago" + +msgid "sep" +msgstr "sep" + +msgid "oct" +msgstr "oct" + +msgid "nov" +msgstr "nov" + +msgid "dec" +msgstr "dic" + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "Ene." + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "Feb." + +msgctxt "abbrev. month" +msgid "March" +msgstr "Marzo" + +msgctxt "abbrev. month" +msgid "April" +msgstr "Abril" + +msgctxt "abbrev. month" +msgid "May" +msgstr "Mayo" + +msgctxt "abbrev. month" +msgid "June" +msgstr "Junio" + +msgctxt "abbrev. month" +msgid "July" +msgstr "Julio" + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "Ago." + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "Sep." + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "Oct." + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "Nov." + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "Dic." + +msgctxt "alt. month" +msgid "January" +msgstr "Enero" + +msgctxt "alt. month" +msgid "February" +msgstr "Febrero" + +msgctxt "alt. month" +msgid "March" +msgstr "Marzo" + +msgctxt "alt. month" +msgid "April" +msgstr "Abril" + +msgctxt "alt. month" +msgid "May" +msgstr "Mayo" + +msgctxt "alt. month" +msgid "June" +msgstr "Junio" + +msgctxt "alt. month" +msgid "July" +msgstr "Julio" + +msgctxt "alt. month" +msgid "August" +msgstr "Agosto" + +msgctxt "alt. month" +msgid "September" +msgstr "Septiembre" + +msgctxt "alt. month" +msgid "October" +msgstr "Octubre" + +msgctxt "alt. month" +msgid "November" +msgstr "Noviembre" + +msgctxt "alt. month" +msgid "December" +msgstr "Diciembre" + +msgid "This is not a valid IPv6 address." +msgstr "Esta no es una dirección IPv6 válida." + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "" + +msgid "or" +msgstr "o" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr ", " + +#, python-format +msgid "%d year" +msgid_plural "%d years" +msgstr[0] "%d año" +msgstr[1] "%d años" + +#, python-format +msgid "%d month" +msgid_plural "%d months" +msgstr[0] "%d mes" +msgstr[1] "%d meses" + +#, python-format +msgid "%d week" +msgid_plural "%d weeks" +msgstr[0] "%d semana" +msgstr[1] "%d semanas" + +#, python-format +msgid "%d day" +msgid_plural "%d days" +msgstr[0] "%d día" +msgstr[1] "%d días" + +#, python-format +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "%d hora" +msgstr[1] "%d horas" + +#, python-format +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "%d minuto" +msgstr[1] "%d minutos" + +msgid "Forbidden" +msgstr "Prohibido" + +msgid "CSRF verification failed. Request aborted." +msgstr "Verificación CSRF fallida. Solicitud abortada." + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your Web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" +"Estás viendo este mensaje porqué esta web requiere una cookie CSRF cuando se " +"envían formularios. Esta cookie se necesita por razones de seguridad, para " +"asegurar que tu navegador no ha sido comprometido por terceras partes." + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" + +msgid "More information is available with DEBUG=True." +msgstr "Se puede ver más información si se establece DEBUG=True." + +msgid "No year specified" +msgstr "No se ha indicado el año" + +msgid "Date out of range" +msgstr "" + +msgid "No month specified" +msgstr "No se ha indicado el mes" + +msgid "No day specified" +msgstr "No se ha indicado el día" + +msgid "No week specified" +msgstr "No se ha indicado la semana" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "No %(verbose_name_plural)s disponibles" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" +"Los futuros %(verbose_name_plural)s no están disponibles porque " +"%(class_name)s.allow_future es Falso." + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "No se encontró ningún %(verbose_name)s coincidente con la consulta" + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "" + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "Página inválida (%(page_number)s): %(message)s" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "" + +msgid "Directory indexes are not allowed here." +msgstr "Los índices de directorio no están permitidos." + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "" + +#, python-format +msgid "Index of %(directory)s" +msgstr "Índice de %(directory)s" + +msgid "Django: the Web framework for perfectionists with deadlines." +msgstr "" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" + +msgid "The install worked successfully! Congratulations!" +msgstr "" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not configured any " +"URLs." +msgstr "" + +msgid "Django Documentation" +msgstr "" + +msgid "Topics, references, & how-to’s" +msgstr "" + +msgid "Tutorial: A Polling App" +msgstr "" + +msgid "Get started with Django" +msgstr "" + +msgid "Django Community" +msgstr "" + +msgid "Connect, get help, or contribute" +msgstr "" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/et/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/conf/locale/et/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..3556bb11e870c678c1899b98c659f1e124f37ecc GIT binary patch literal 27273 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, 2011 +# Erlend Eelmets , 2020 +# Jannis Leidel , 2011 +# Janno Liivak , 2013-2015 +# madisvain , 2011 +# Martin , 2014-2015,2021-2024 +# Martin , 2016-2017,2019-2020 +# Marti Raudsepp , 2014,2016 +# Ragnar Rebase , 2019 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-05-22 11:46-0300\n" +"PO-Revision-Date: 2024-08-07 06:49+0000\n" +"Last-Translator: Martin , 2014-2015,2021-2024\n" +"Language-Team: Estonian (http://app.transifex.com/django/django/language/" +"et/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: et\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Afrikaans" +msgstr "afrikaani" + +msgid "Arabic" +msgstr "araabia" + +msgid "Algerian Arabic" +msgstr "Alžeeria Araabia" + +msgid "Asturian" +msgstr "astuuria" + +msgid "Azerbaijani" +msgstr "aserbaidžaani" + +msgid "Bulgarian" +msgstr "bulgaaria" + +msgid "Belarusian" +msgstr "valgevene" + +msgid "Bengali" +msgstr "bengali" + +msgid "Breton" +msgstr "bretooni" + +msgid "Bosnian" +msgstr "bosnia" + +msgid "Catalan" +msgstr "katalaani" + +msgid "Central Kurdish (Sorani)" +msgstr "Keskkurdi keel (sorani)" + +msgid "Czech" +msgstr "tšehhi" + +msgid "Welsh" +msgstr "uelsi" + +msgid "Danish" +msgstr "taani" + +msgid "German" +msgstr "saksa" + +msgid "Lower Sorbian" +msgstr "alamsorbi" + +msgid "Greek" +msgstr "kreeka" + +msgid "English" +msgstr "inglise" + +msgid "Australian English" +msgstr "austraalia inglise" + +msgid "British English" +msgstr "briti inglise" + +msgid "Esperanto" +msgstr "esperanto" + +msgid "Spanish" +msgstr "hispaania" + +msgid "Argentinian Spanish" +msgstr "argentiina hispaani" + +msgid "Colombian Spanish" +msgstr "kolumbia hispaania" + +msgid "Mexican Spanish" +msgstr "mehhiko hispaania" + +msgid "Nicaraguan Spanish" +msgstr "nikaraagua hispaania" + +msgid "Venezuelan Spanish" +msgstr "venetsueela hispaania" + +msgid "Estonian" +msgstr "eesti" + +msgid "Basque" +msgstr "baski" + +msgid "Persian" +msgstr "pärsia" + +msgid "Finnish" +msgstr "soome" + +msgid "French" +msgstr "prantsuse" + +msgid "Frisian" +msgstr "friisi" + +msgid "Irish" +msgstr "iiri" + +msgid "Scottish Gaelic" +msgstr "šoti gaeli" + +msgid "Galician" +msgstr "galiitsia" + +msgid "Hebrew" +msgstr "heebrea" + +msgid "Hindi" +msgstr "hindi" + +msgid "Croatian" +msgstr "horvaatia" + +msgid "Upper Sorbian" +msgstr "ülemsorbi" + +msgid "Hungarian" +msgstr "ungari" + +msgid "Armenian" +msgstr "armeenia" + +msgid "Interlingua" +msgstr "interlingua" + +msgid "Indonesian" +msgstr "indoneesi" + +msgid "Igbo" +msgstr "ibo" + +msgid "Ido" +msgstr "ido" + +msgid "Icelandic" +msgstr "islandi" + +msgid "Italian" +msgstr "itaalia" + +msgid "Japanese" +msgstr "jaapani" + +msgid "Georgian" +msgstr "gruusia" + +msgid "Kabyle" +msgstr "Kabiili" + +msgid "Kazakh" +msgstr "kasahhi" + +msgid "Khmer" +msgstr "khmeri" + +msgid "Kannada" +msgstr "kannada" + +msgid "Korean" +msgstr "korea" + +msgid "Kyrgyz" +msgstr "kirgiisi" + +msgid "Luxembourgish" +msgstr "letseburgi" + +msgid "Lithuanian" +msgstr "leedu" + +msgid "Latvian" +msgstr "läti" + +msgid "Macedonian" +msgstr "makedoonia" + +msgid "Malayalam" +msgstr "malaia" + +msgid "Mongolian" +msgstr "mongoolia" + +msgid "Marathi" +msgstr "marathi" + +msgid "Malay" +msgstr "malai" + +msgid "Burmese" +msgstr "birma" + +msgid "Norwegian Bokmål" +msgstr "norra bokmål" + +msgid "Nepali" +msgstr "nepali" + +msgid "Dutch" +msgstr "hollandi" + +msgid "Norwegian Nynorsk" +msgstr "norra (nynorsk)" + +msgid "Ossetic" +msgstr "osseetia" + +msgid "Punjabi" +msgstr "pandžab" + +msgid "Polish" +msgstr "poola" + +msgid "Portuguese" +msgstr "portugali" + +msgid "Brazilian Portuguese" +msgstr "brasiilia portugali" + +msgid "Romanian" +msgstr "rumeenia" + +msgid "Russian" +msgstr "vene" + +msgid "Slovak" +msgstr "slovaki" + +msgid "Slovenian" +msgstr "sloveeni" + +msgid "Albanian" +msgstr "albaania" + +msgid "Serbian" +msgstr "serbia" + +msgid "Serbian Latin" +msgstr "serbia (ladina)" + +msgid "Swedish" +msgstr "rootsi" + +msgid "Swahili" +msgstr "suahiili" + +msgid "Tamil" +msgstr "tamiili" + +msgid "Telugu" +msgstr "telugu" + +msgid "Tajik" +msgstr "tadžiki" + +msgid "Thai" +msgstr "tai" + +msgid "Turkmen" +msgstr "türkmeeni" + +msgid "Turkish" +msgstr "türgi" + +msgid "Tatar" +msgstr "tatari" + +msgid "Udmurt" +msgstr "udmurdi" + +msgid "Uyghur" +msgstr "Uiguuri" + +msgid "Ukrainian" +msgstr "ukrania" + +msgid "Urdu" +msgstr "urdu" + +msgid "Uzbek" +msgstr "Usbeki" + +msgid "Vietnamese" +msgstr "vietnami" + +msgid "Simplified Chinese" +msgstr "lihtsustatud hiina" + +msgid "Traditional Chinese" +msgstr "traditsiooniline hiina" + +msgid "Messages" +msgstr "Sõnumid" + +msgid "Site Maps" +msgstr "Saidikaardid" + +msgid "Static Files" +msgstr "Staatilised failid" + +msgid "Syndication" +msgstr "Sündikeerimine" + +#. Translators: String used to replace omitted page numbers in elided page +#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10]. +msgid "…" +msgstr "…" + +msgid "That page number is not an integer" +msgstr "See lehe number ei ole täisarv" + +msgid "That page number is less than 1" +msgstr "See lehe number on väiksem kui 1" + +msgid "That page contains no results" +msgstr "See leht ei sisalda tulemusi" + +msgid "Enter a valid value." +msgstr "Sisestage korrektne väärtus." + +msgid "Enter a valid domain name." +msgstr "Sisestage korrektne domeeninimi." + +msgid "Enter a valid URL." +msgstr "Sisestage korrektne URL." + +msgid "Enter a valid integer." +msgstr "Sisestage korrektne täisarv." + +msgid "Enter a valid email address." +msgstr "Sisestage korrektne e-posti aadress." + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" +"Sisestage korrektne “nälk”, mis koosneb tähtedest, numbritest, " +"alakriipsudest või sidekriipsudest." + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" +"Sisestage korrektne “nälk”, mis koosneb Unicode tähtedest, numbritest, ala- " +"või sidekriipsudest." + +#, python-format +msgid "Enter a valid %(protocol)s address." +msgstr "Sisestage korrektne %(protocol)s aadress." + +msgid "IPv4" +msgstr "IPv4" + +msgid "IPv6" +msgstr "IPv6" + +msgid "IPv4 or IPv6" +msgstr "IPv4 või IPv6" + +msgid "Enter only digits separated by commas." +msgstr "Sisestage ainult komaga eraldatud numbreid." + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "Veendu, et see väärtus on %(limit_value)s (hetkel on %(show_value)s)." + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "Veendu, et see väärtus on väiksem või võrdne kui %(limit_value)s." + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "Veendu, et see väärtus on suurem või võrdne kui %(limit_value)s." + +#, python-format +msgid "Ensure this value is a multiple of step size %(limit_value)s." +msgstr "Veendu, et see väärtus on arvu %(limit_value)s kordne." + +#, python-format +msgid "" +"Ensure this value is a multiple of step size %(limit_value)s, starting from " +"%(offset)s, e.g. %(offset)s, %(valid_value1)s, %(valid_value2)s, and so on." +msgstr "" + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Väärtuses peab olema vähemalt %(limit_value)d tähemärk (praegu on " +"%(show_value)d)." +msgstr[1] "" +"Väärtuses peab olema vähemalt %(limit_value)d tähemärki (praegu on " +"%(show_value)d)." + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Väärtuses võib olla kõige rohkem %(limit_value)d tähemärk (praegu on " +"%(show_value)d)." +msgstr[1] "" +"Väärtuses võib olla kõige rohkem %(limit_value)d tähemärki (praegu on " +"%(show_value)d)." + +msgid "Enter a number." +msgstr "Sisestage arv." + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "Veenduge, et kogu numbrikohtade arv ei oleks suurem kui %(max)s." +msgstr[1] "Veenduge, et kogu numbrikohtade arv ei oleks suurem kui %(max)s." + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "Veenduge, et komakohtade arv ei oleks suurem kui %(max)s." +msgstr[1] "Veenduge, et komakohtade arv ei oleks suurem kui %(max)s." + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "" +"Veenduge, et komast vasakul olevaid numbreid ei oleks rohkem kui %(max)s." +msgstr[1] "" +"Veenduge, et komast vasakul olevaid numbreid ei oleks rohkem kui %(max)s." + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" +"Faililaiend “%(extension)s” pole lubatud. Lubatud laiendid on: " +"%(allowed_extensions)s." + +msgid "Null characters are not allowed." +msgstr "Tühjad tähemärgid ei ole lubatud." + +msgid "and" +msgstr "ja" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "%(model_name)s väljaga %(field_labels)s on juba olemas." + +#, python-format +msgid "Constraint “%(name)s” is violated." +msgstr "Kitsendust “%(name)s” on rikutud." + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "Väärtus %(value)r ei ole kehtiv valik." + +msgid "This field cannot be null." +msgstr "See lahter ei tohi olla tühi." + +msgid "This field cannot be blank." +msgstr "See väli ei saa olla tühi." + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "Sellise %(field_label)s-väljaga %(model_name)s on juba olemas." + +#. Translators: The 'lookup_type' is one of 'date', 'year' or +#. 'month'. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" +"%(field_label)s peab olema unikaalne %(date_field_label)s %(lookup_type)s " +"suhtes." + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "Lahter tüüpi: %(field_type)s" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "“%(value)s” väärtus peab olema Tõene või Väär." + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "“%(value)s” väärtus peab olema Tõene, Väär või Tühi." + +msgid "Boolean (Either True or False)" +msgstr "Tõeväärtus (Kas tõene või väär)" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "String (kuni %(max_length)s märki)" + +msgid "String (unlimited)" +msgstr "String (piiramatu)" + +msgid "Comma-separated integers" +msgstr "Komaga eraldatud täisarvud" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" +"“%(value)s” väärtusel on vale kuupäevaformaat. See peab olema kujul AAAA-KK-" +"PP." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" +"“%(value)s” väärtusel on õige formaat (AAAA-KK-PP), kuid kuupäev on vale." + +msgid "Date (without time)" +msgstr "Kuupäev (kellaajata)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" +"“%(value)s” väärtusel on vale formaat. Peab olema formaadis AAAA-KK-PP HH:" +"MM[:ss[.uuuuuu]][TZ]." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" +"“%(value)s” väärtusel on õige formaat (AAAA-KK-PP HH:MM[:ss[.uuuuuu]][TZ]), " +"kuid kuupäev/kellaaeg on vale." + +msgid "Date (with time)" +msgstr "Kuupäev (kellaajaga)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "“%(value)s” väärtus peab olema kümnendarv." + +msgid "Decimal number" +msgstr "Kümnendmurd" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" +"“%(value)s” väärtusel on vale formaat. Peab olema formaadis [DD] " +"[[HH:]MM:]ss[.uuuuuu]." + +msgid "Duration" +msgstr "Kestus" + +msgid "Email address" +msgstr "E-posti aadress" + +msgid "File path" +msgstr "Faili asukoht" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "“%(value)s” väärtus peab olema ujukomaarv." + +msgid "Floating point number" +msgstr "Ujukomaarv" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "“%(value)s” väärtus peab olema täisarv." + +msgid "Integer" +msgstr "Täisarv" + +msgid "Big (8 byte) integer" +msgstr "Suur (8 baiti) täisarv" + +msgid "Small integer" +msgstr "Väike täisarv" + +msgid "IPv4 address" +msgstr "IPv4 aadress" + +msgid "IP address" +msgstr "IP aadress" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "“%(value)s” väärtus peab olema kas Tühi, Tõene või Väär." + +msgid "Boolean (Either True, False or None)" +msgstr "Tõeväärtus (Kas tõene, väär või tühi)" + +msgid "Positive big integer" +msgstr "Positiivne suur täisarv" + +msgid "Positive integer" +msgstr "Positiivne täisarv" + +msgid "Positive small integer" +msgstr "Positiivne väikene täisarv" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "Nälk (kuni %(max_length)s märki)" + +msgid "Text" +msgstr "Tekst" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" +"“%(value)s” väärtusel on vale formaat. Peab olema formaadis HH:MM[:ss[." +"uuuuuu]]." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" +"“%(value)s” väärtusel on õige formaat (HH:MM[:ss[.uuuuuu]]), kuid kellaaeg " +"on vale." + +msgid "Time" +msgstr "Aeg" + +msgid "URL" +msgstr "URL" + +msgid "Raw binary data" +msgstr "Töötlemata binaarandmed" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "“%(value)s” ei ole korrektne UUID." + +msgid "Universally unique identifier" +msgstr "Universaalne unikaalne identifikaator" + +msgid "File" +msgstr "Fail" + +msgid "Image" +msgstr "Pilt" + +msgid "A JSON object" +msgstr "JSON objekt" + +msgid "Value must be valid JSON." +msgstr "Väärtus peab olema korrektne JSON." + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "%(model)s isendit %(field)s %(value)r ei leidu." + +msgid "Foreign Key (type determined by related field)" +msgstr "Välisvõti (tüübi määrab seotud väli) " + +msgid "One-to-one relationship" +msgstr "Üks-ühele seos" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "%(from)s-%(to)s seos" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "%(from)s-%(to)s seosed" + +msgid "Many-to-many relationship" +msgstr "Mitu-mitmele seos" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr ":?.!" + +msgid "This field is required." +msgstr "See lahter on nõutav." + +msgid "Enter a whole number." +msgstr "Sisestage täisarv." + +msgid "Enter a valid date." +msgstr "Sisestage korrektne kuupäev." + +msgid "Enter a valid time." +msgstr "Sisestage korrektne kellaaeg." + +msgid "Enter a valid date/time." +msgstr "Sisestage korrektne kuupäev ja kellaaeg." + +msgid "Enter a valid duration." +msgstr "Sisestage korrektne kestus." + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "Päevade arv peab jääma vahemikku {min_days} kuni {max_days}." + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "Ühtegi faili ei saadetud. Kontrollige vormi kodeeringutüüpi." + +msgid "No file was submitted." +msgstr "Ühtegi faili ei saadetud." + +msgid "The submitted file is empty." +msgstr "Saadetud fail on tühi." + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" +"Veenduge, et faili nimes poleks rohkem kui %(max)d märk (praegu on " +"%(length)d)." +msgstr[1] "" +"Veenduge, et faili nimes poleks rohkem kui %(max)d märki (praegu on " +"%(length)d)." + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "Palun laadige fail või märgistage 'tühjenda' kast, mitte mõlemat." + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" +"Laadige korrektne pilt. Fail, mille laadisite, ei olnud kas pilt või oli " +"fail vigane." + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "Valige korrektne väärtus. %(value)s ei ole valitav." + +msgid "Enter a list of values." +msgstr "Sisestage väärtuste nimekiri." + +msgid "Enter a complete value." +msgstr "Sisestage täielik väärtus." + +msgid "Enter a valid UUID." +msgstr "Sisestage korrektne UUID." + +msgid "Enter a valid JSON." +msgstr "Sisestage korrektne JSON." + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr ":" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "(Peidetud väli %(name)s) %(error)s" + +#, python-format +msgid "" +"ManagementForm data is missing or has been tampered with. Missing fields: " +"%(field_names)s. You may need to file a bug report if the issue persists." +msgstr "" + +#, python-format +msgid "Please submit at most %(num)d form." +msgid_plural "Please submit at most %(num)d forms." +msgstr[0] "Palun kinnitage kõige rohkem %(num)d vormi." +msgstr[1] "Palun kinnitage kõige rohkem %(num)d vormi." + +#, python-format +msgid "Please submit at least %(num)d form." +msgid_plural "Please submit at least %(num)d forms." +msgstr[0] "Palun kinnitage vähemalt %(num)d vormi." +msgstr[1] "Palun kinnitage vähemalt %(num)d vormi." + +msgid "Order" +msgstr "Järjestus" + +msgid "Delete" +msgstr "Kustuta" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "Palun parandage duplikaat-andmed lahtris %(field)s." + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "" +"Palun parandage duplikaat-andmed lahtris %(field)s, mis peab olema unikaalne." + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." + +msgid "Please correct the duplicate values below." +msgstr "Palun parandage allolevad duplikaat-väärtused" + +msgid "The inline value did not match the parent instance." +msgstr "Pesastatud väärtus ei sobi ülemobjektiga." + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "Valige korrektne väärtus. Valitud väärtus ei ole valitav." + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "“%(pk)s” ei ole korrektne väärtus." + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" +"%(datetime)s ei saanud tõlgendada ajavööndis %(current_timezone)s; see on " +"kas mitmetähenduslik või seda ei eksisteeri." + +msgid "Clear" +msgstr "Tühjenda" + +msgid "Currently" +msgstr "Hetkel" + +msgid "Change" +msgstr "Muuda" + +msgid "Unknown" +msgstr "Tundmatu" + +msgid "Yes" +msgstr "Jah" + +msgid "No" +msgstr "Ei" + +#. Translators: Please do not add spaces around commas. +msgid "yes,no,maybe" +msgstr "jah,ei,võib-olla" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)d bait" +msgstr[1] "%(size)d baiti" + +#, python-format +msgid "%s KB" +msgstr "%s kB" + +#, python-format +msgid "%s MB" +msgstr "%s MB" + +#, python-format +msgid "%s GB" +msgstr "%s GB" + +#, python-format +msgid "%s TB" +msgstr "%s TB" + +#, python-format +msgid "%s PB" +msgstr "%s PB" + +msgid "p.m." +msgstr "p.l." + +msgid "a.m." +msgstr "e.l." + +msgid "PM" +msgstr "PL" + +msgid "AM" +msgstr "EL" + +msgid "midnight" +msgstr "südaöö" + +msgid "noon" +msgstr "keskpäev" + +msgid "Monday" +msgstr "esmaspäev" + +msgid "Tuesday" +msgstr "teisipäev" + +msgid "Wednesday" +msgstr "kolmapäev" + +msgid "Thursday" +msgstr "neljapäev" + +msgid "Friday" +msgstr "reede" + +msgid "Saturday" +msgstr "laupäev" + +msgid "Sunday" +msgstr "pühapäev" + +msgid "Mon" +msgstr "esmasp." + +msgid "Tue" +msgstr "teisip." + +msgid "Wed" +msgstr "kolmap." + +msgid "Thu" +msgstr "neljap." + +msgid "Fri" +msgstr "reede" + +msgid "Sat" +msgstr "laup." + +msgid "Sun" +msgstr "pühap." + +msgid "January" +msgstr "jaanuar" + +msgid "February" +msgstr "veebruar" + +msgid "March" +msgstr "märts" + +msgid "April" +msgstr "aprill" + +msgid "May" +msgstr "mai" + +msgid "June" +msgstr "juuni" + +msgid "July" +msgstr "juuli" + +msgid "August" +msgstr "august" + +msgid "September" +msgstr "september" + +msgid "October" +msgstr "oktoober" + +msgid "November" +msgstr "november" + +msgid "December" +msgstr "detsember" + +msgid "jan" +msgstr "jaan" + +msgid "feb" +msgstr "veeb" + +msgid "mar" +msgstr "märts" + +msgid "apr" +msgstr "apr" + +msgid "may" +msgstr "mai" + +msgid "jun" +msgstr "jun" + +msgid "jul" +msgstr "jul" + +msgid "aug" +msgstr "aug" + +msgid "sep" +msgstr "sept" + +msgid "oct" +msgstr "okt" + +msgid "nov" +msgstr "nov" + +msgid "dec" +msgstr "dets" + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "jaan." + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "veeb." + +msgctxt "abbrev. month" +msgid "March" +msgstr "mär." + +msgctxt "abbrev. month" +msgid "April" +msgstr "apr." + +msgctxt "abbrev. month" +msgid "May" +msgstr "mai" + +msgctxt "abbrev. month" +msgid "June" +msgstr "juuni" + +msgctxt "abbrev. month" +msgid "July" +msgstr "juuli" + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "aug." + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "sept." + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "okt." + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "nov." + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "dets." + +msgctxt "alt. month" +msgid "January" +msgstr "jaanuar" + +msgctxt "alt. month" +msgid "February" +msgstr "veebruar" + +msgctxt "alt. month" +msgid "March" +msgstr "märts" + +msgctxt "alt. month" +msgid "April" +msgstr "aprill" + +msgctxt "alt. month" +msgid "May" +msgstr "mai" + +msgctxt "alt. month" +msgid "June" +msgstr "juuni" + +msgctxt "alt. month" +msgid "July" +msgstr "juuli" + +msgctxt "alt. month" +msgid "August" +msgstr "august" + +msgctxt "alt. month" +msgid "September" +msgstr "september" + +msgctxt "alt. month" +msgid "October" +msgstr "oktoober" + +msgctxt "alt. month" +msgid "November" +msgstr "november" + +msgctxt "alt. month" +msgid "December" +msgstr "detsember" + +msgid "This is not a valid IPv6 address." +msgstr "See ei ole korrektne IPv6 aadress." + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "%(truncated_text)s…" + +msgid "or" +msgstr "või" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr ", " + +#, python-format +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "%(num)d aasta" +msgstr[1] "%(num)d aastat" + +#, python-format +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "%(num)d kuu" +msgstr[1] "%(num)d kuud" + +#, python-format +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "%(num)d nädal" +msgstr[1] "%(num)d nädalat" + +#, python-format +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "%(num)d päev" +msgstr[1] "%(num)d päeva" + +#, python-format +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "%(num)d tund" +msgstr[1] "%(num)d tundi" + +#, python-format +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "%(num)d minut" +msgstr[1] "%(num)d minutit" + +msgid "Forbidden" +msgstr "Keelatud" + +msgid "CSRF verification failed. Request aborted." +msgstr "CSRF verifitseerimine ebaõnnestus. Päring katkestati." + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" +"Näete seda sõnumit, kuna käesolev HTTPS leht nõuab “Viitaja päise” saatmist " +"teie brauserile, kuid seda ei saadetud. Seda päist on vaja " +"turvakaalutlustel, kindlustamaks et teie brauserit ei ole kolmandate " +"osapoolte poolt üle võetud." + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" +"Kui olete oma brauseri seadistustes välja lülitanud “Viitaja” päised siis " +"lülitage need taas sisse vähemalt antud lehe jaoks või HTTPS üheduste jaoks " +"või “sama-allika” päringute jaoks." + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" +"Kui kasutate silti või " +"saadate päist “Referrer-Policy: no-referrer”, siis palun eemaldage need. " +"CSRF kaitse vajab range viitaja kontrolliks päist “Referer”. Kui privaatsus " +"on probleemiks, kasutage alternatiive nagu " +"linkidele, mis viivad kolmandate poolte lehtedele." + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" +"Näete seda teadet, kuna see leht vajab CSRF küpsist vormide postitamiseks. " +"Seda küpsist on vaja turvakaalutlustel, kindlustamaks et teie brauserit ei " +"ole kolmandate osapoolte poolt üle võetud." + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" +"Kui olete oma brauseris küpsised keelanud, siis palun lubage need vähemalt " +"selle lehe jaoks või “sama-allika” päringute jaoks." + +msgid "More information is available with DEBUG=True." +msgstr "Saadaval on rohkem infot kasutades DEBUG=True" + +msgid "No year specified" +msgstr "Aasta on valimata" + +msgid "Date out of range" +msgstr "Kuupäev vahemikust väljas" + +msgid "No month specified" +msgstr "Kuu on valimata" + +msgid "No day specified" +msgstr "Päev on valimata" + +msgid "No week specified" +msgstr "Nädal on valimata" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "Ei leitud %(verbose_name_plural)s" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" +"Tulevane %(verbose_name_plural)s pole saadaval, sest %(class_name)s." +"allow_future on False." + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "Vigane kuupäeva sõne “%(datestr)s” lähtudes formaadist “%(format)s”" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "Päringule vastavat %(verbose_name)s ei leitud" + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "Lehekülg pole “viimane” ja ei saa teda konvertida täisarvuks." + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "Vigane leht (%(page_number)s): %(message)s" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "Tühi list ja “%(class_name)s.allow_empty” on Väär." + +msgid "Directory indexes are not allowed here." +msgstr "Kausta sisuloendid ei ole siin lubatud." + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "“%(path)s” ei eksisteeri" + +#, python-format +msgid "Index of %(directory)s" +msgstr "%(directory)s sisuloend" + +msgid "The install worked successfully! Congratulations!" +msgstr "Paigaldamine õnnestus! Palju õnne!" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" +"Vaata release notes Djangole %(version)s" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not " +"configured any URLs." +msgstr "" +"Näete seda lehte, kuna teil on määratud DEBUG=True Django seadete failis ja te ei ole ühtki " +"URLi seadistanud." + +msgid "Django Documentation" +msgstr "Django dokumentatsioon" + +msgid "Topics, references, & how-to’s" +msgstr "Teemad, viited, & õpetused" + +msgid "Tutorial: A Polling App" +msgstr "Õpetus: Küsitlusrakendus" + +msgid "Get started with Django" +msgstr "Alusta Djangoga" + +msgid "Django Community" +msgstr "Django Kogukond" + +msgid "Connect, get help, or contribute" +msgstr "Suhelge, küsige abi või panustage" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/et/__init__.py b/venv/lib/python3.12/site-packages/django/conf/locale/et/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/et/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/et/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b30832b46442b9181236c89fbb95dc5f13767bcc GIT binary patch literal 198 zcmX@j%ge<81o5sX(m?cM5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!O4ZNE&rQ|OP0Yy6 zFHO;RNiEZNN=(kybEFQ_cZ$j>v@Gc?jK&MZmQEdVM^ zOiwM=Pssu+OwP|s)6dCIPRvQwPc6}pkI&4@EQycTE2#X%VUwGmQks)$SHudml@W-G PL5z>gjEsy$%s>_Z#!EDW literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/et/__pycache__/formats.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/et/__pycache__/formats.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e0c53fec5c25e2584d831037d7194cf9d6267559 GIT binary patch literal 396 zcmX@j%ge<81o5sX(hf5*FgylvV1NiDF4% zjbg22(`2t=%hFSDQ;4i$cDKr`VgYfgSX1U>U;$n%y4LdpC;QaZWqT8*LXMo zAYaFjTihX@zHp9!ufJc2N4$$;BurW`*uy_41So>gA?V`j?CI<16Cdmv;27i>;vaNN zD8$1*G}zJ41tGSQ;WNnPzf$xw@^e%5a}zUi^Gj3oT~f>Rof4C?bzSpP^pkQD^V0M6 z%Tn{o^m8(k^b0CWGV=3`^$d;li!)17bqjzB6Vp?R^;5FI3X}8m()4rklM{1N^;1jq z)AEaQ6HAKq3Mzkb*yQG?l;)(`74ZTs1%+9$E|B=Z%*e?2fs27(yn*`$pKt^B2Q~%~ gsS6AOH$vJ@9IO||9RD29y39o|} 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 Cy#*)$ literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/eu/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/conf/locale/eu/LC_MESSAGES/django.po new file mode 100644 index 0000000000..f3e91a8677 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/eu/LC_MESSAGES/django.po @@ -0,0 +1,1313 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Aitzol Naberan , 2013,2016 +# Ander Martinez , 2013-2014 +# Eneko Illarramendi , 2017-2019,2021-2022,2024 +# Jannis Leidel , 2011 +# jazpillaga , 2011 +# julen, 2011-2012 +# julen, 2013,2015 +# Mikel Maldonado , 2021 +# totorika93 , 2012 +# 67feb0cba3962a6c9f09eb0e43697461_528661a , 2013 +# Urtzi Odriozola , 2017 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-05-22 11:46-0300\n" +"PO-Revision-Date: 2024-08-07 06:49+0000\n" +"Last-Translator: Eneko Illarramendi , " +"2017-2019,2021-2022,2024\n" +"Language-Team: Basque (http://app.transifex.com/django/django/language/eu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: eu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Afrikaans" +msgstr "Afrikaans" + +msgid "Arabic" +msgstr "Arabiera" + +msgid "Algerian Arabic" +msgstr "Algeriar Arabiera" + +msgid "Asturian" +msgstr "Asturiera" + +msgid "Azerbaijani" +msgstr "Azerbaijanera" + +msgid "Bulgarian" +msgstr "Bulgariera" + +msgid "Belarusian" +msgstr "Bielorrusiera" + +msgid "Bengali" +msgstr "Bengalera" + +msgid "Breton" +msgstr "Bretoia" + +msgid "Bosnian" +msgstr "Bosniera" + +msgid "Catalan" +msgstr "Katalana" + +msgid "Central Kurdish (Sorani)" +msgstr "" + +msgid "Czech" +msgstr "Txekiera" + +msgid "Welsh" +msgstr "Galesa" + +msgid "Danish" +msgstr "Daniera" + +msgid "German" +msgstr "Alemana" + +msgid "Lower Sorbian" +msgstr "Behe-sorbiera" + +msgid "Greek" +msgstr "Greziera" + +msgid "English" +msgstr "Ingelesa" + +msgid "Australian English" +msgstr "Australiar ingelesa" + +msgid "British English" +msgstr "Ingelesa" + +msgid "Esperanto" +msgstr "Esperantoa" + +msgid "Spanish" +msgstr "Gaztelania" + +msgid "Argentinian Spanish" +msgstr "Gaztelania (Argentina)" + +msgid "Colombian Spanish" +msgstr "Gaztelania (Kolonbia)" + +msgid "Mexican Spanish" +msgstr "Gaztelania (Mexiko)" + +msgid "Nicaraguan Spanish" +msgstr "Gaztelania (Nikaragua)" + +msgid "Venezuelan Spanish" +msgstr "Gaztelania (Venezuela)" + +msgid "Estonian" +msgstr "Estoniera" + +msgid "Basque" +msgstr "Euskara" + +msgid "Persian" +msgstr "Persiera" + +msgid "Finnish" +msgstr "Finlandiera" + +msgid "French" +msgstr "Frantsesa" + +msgid "Frisian" +msgstr "Frisiera" + +msgid "Irish" +msgstr "Irlandako gaelikoa" + +msgid "Scottish Gaelic" +msgstr "Eskoziako gaelikoa" + +msgid "Galician" +msgstr "Galiziera" + +msgid "Hebrew" +msgstr "Hebreera" + +msgid "Hindi" +msgstr "Hindi" + +msgid "Croatian" +msgstr "Kroaziera" + +msgid "Upper Sorbian" +msgstr "Goi-sorbiera" + +msgid "Hungarian" +msgstr "Hungariera" + +msgid "Armenian" +msgstr "Armeniera" + +msgid "Interlingua" +msgstr "Interlingua" + +msgid "Indonesian" +msgstr "Indonesiera" + +msgid "Igbo" +msgstr "Igboera" + +msgid "Ido" +msgstr "Ido" + +msgid "Icelandic" +msgstr "Islandiera" + +msgid "Italian" +msgstr "Italiera" + +msgid "Japanese" +msgstr "Japoniera" + +msgid "Georgian" +msgstr "Georgiera" + +msgid "Kabyle" +msgstr "Kabylera" + +msgid "Kazakh" +msgstr "Kazakhera" + +msgid "Khmer" +msgstr "Khmerera" + +msgid "Kannada" +msgstr "Kannada" + +msgid "Korean" +msgstr "Koreera" + +msgid "Kyrgyz" +msgstr "" + +msgid "Luxembourgish" +msgstr "Luxenburgera" + +msgid "Lithuanian" +msgstr "Lituaniera" + +msgid "Latvian" +msgstr "Letoniera" + +msgid "Macedonian" +msgstr "Mazedoniera" + +msgid "Malayalam" +msgstr "Malabarera" + +msgid "Mongolian" +msgstr "Mongoliera" + +msgid "Marathi" +msgstr "Marathera" + +msgid "Malay" +msgstr "" + +msgid "Burmese" +msgstr "Birmaniera" + +msgid "Norwegian Bokmål" +msgstr "Bokmåla (Norvegia)" + +msgid "Nepali" +msgstr "Nepalera" + +msgid "Dutch" +msgstr "Nederlandera" + +msgid "Norwegian Nynorsk" +msgstr "Nynorsk (Norvegia)" + +msgid "Ossetic" +msgstr "Osetiera" + +msgid "Punjabi" +msgstr "Punjabera" + +msgid "Polish" +msgstr "Poloniera" + +msgid "Portuguese" +msgstr "Portugesa" + +msgid "Brazilian Portuguese" +msgstr "Portugesa (Brazil)" + +msgid "Romanian" +msgstr "Errumaniera" + +msgid "Russian" +msgstr "Errusiera" + +msgid "Slovak" +msgstr "Eslovakiera" + +msgid "Slovenian" +msgstr "Esloveniera" + +msgid "Albanian" +msgstr "Albaniera" + +msgid "Serbian" +msgstr "Serbiera" + +msgid "Serbian Latin" +msgstr "Serbiera" + +msgid "Swedish" +msgstr "Suediera" + +msgid "Swahili" +msgstr "Swahilia" + +msgid "Tamil" +msgstr "Tamilera" + +msgid "Telugu" +msgstr "Telugua" + +msgid "Tajik" +msgstr "" + +msgid "Thai" +msgstr "Thailandiera" + +msgid "Turkmen" +msgstr "" + +msgid "Turkish" +msgstr "Turkiera" + +msgid "Tatar" +msgstr "Tatarera" + +msgid "Udmurt" +msgstr "Udmurtera" + +msgid "Uyghur" +msgstr "" + +msgid "Ukrainian" +msgstr "Ukrainera" + +msgid "Urdu" +msgstr "Urdua" + +msgid "Uzbek" +msgstr "" + +msgid "Vietnamese" +msgstr "Vietnamera" + +msgid "Simplified Chinese" +msgstr "Txinera (sinpletua)" + +msgid "Traditional Chinese" +msgstr "Txinera (tradizionala)" + +msgid "Messages" +msgstr "Mezuak" + +msgid "Site Maps" +msgstr "Sitemap-ak" + +msgid "Static Files" +msgstr "Fitxategi estatikoak" + +msgid "Syndication" +msgstr "Sindikazioa" + +#. Translators: String used to replace omitted page numbers in elided page +#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10]. +msgid "…" +msgstr "..." + +msgid "That page number is not an integer" +msgstr "Orrialde hori ez da zenbaki bat" + +msgid "That page number is less than 1" +msgstr "Orrialde zenbaki hori 1 baino txikiagoa da" + +msgid "That page contains no results" +msgstr "Orrialde horrek ez du emaitzarik" + +msgid "Enter a valid value." +msgstr "Idatzi baleko balio bat." + +msgid "Enter a valid domain name." +msgstr "" + +msgid "Enter a valid URL." +msgstr "Idatzi baleko URL bat." + +msgid "Enter a valid integer." +msgstr "Idatzi baleko zenbaki bat." + +msgid "Enter a valid email address." +msgstr "Idatzi baleko helbide elektroniko bat." + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" + +#, python-format +msgid "Enter a valid %(protocol)s address." +msgstr "" + +msgid "IPv4" +msgstr "" + +msgid "IPv6" +msgstr "" + +msgid "IPv4 or IPv6" +msgstr "" + +msgid "Enter only digits separated by commas." +msgstr "Idatzi komaz bereizitako digitoak soilik." + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "" +"Ziurtatu balio hau gutxienez %(limit_value)s dela (orain %(show_value)s da)." + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "Ziurtatu balio hau %(limit_value)s baino txikiagoa edo berdina dela." + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "Ziurtatu balio hau %(limit_value)s baino handiagoa edo berdina dela." + +#, python-format +msgid "Ensure this value is a multiple of step size %(limit_value)s." +msgstr "" + +#, python-format +msgid "" +"Ensure this value is a multiple of step size %(limit_value)s, starting from " +"%(offset)s, e.g. %(offset)s, %(valid_value1)s, %(valid_value2)s, and so on." +msgstr "" + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Ziurtatu balio honek gutxienez karaktere %(limit_value)d duela " +"(%(show_value)d ditu)." +msgstr[1] "" +"Ziurtatu balio honek gutxienez %(limit_value)d karaktere dituela " +"(%(show_value)d ditu)." + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Ziurtatu balio honek gehienez karaktere %(limit_value)d duela " +"(%(show_value)d ditu)." +msgstr[1] "" +"Ziurtatu balio honek gehienez %(limit_value)d karaktere dituela " +"(%(show_value)d ditu)." + +msgid "Enter a number." +msgstr "Idatzi zenbaki bat." + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "Ziurtatu digitu %(max)s baino gehiago ez dagoela guztira." +msgstr[1] "Ziurtatu %(max)s digitu baino gehiago ez dagoela guztira." + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "Ziurtatu ez dagoela digitu %(max)s baino gehiago komaren atzetik." +msgstr[1] "Ziurtatu ez dagoela %(max)s digitu baino gehiago komaren atzetik." + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "Ziurtatu ez dagoela digitu %(max)s baino gehiago komaren aurretik." +msgstr[1] "Ziurtatu ez dagoela %(max)s digitu baino gehiago komaren aurretik." + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" + +msgid "Null characters are not allowed." +msgstr "Null karaktereak ez daude baimenduta." + +msgid "and" +msgstr "eta" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "%(field_labels)s hauek dauzkan %(model_name)s dagoeneko existitzen da." + +#, python-format +msgid "Constraint “%(name)s” is violated." +msgstr "" + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "%(value)r balioa ez da baleko aukera bat." + +msgid "This field cannot be null." +msgstr "Eremu hau ezin daiteke hutsa izan (null)." + +msgid "This field cannot be blank." +msgstr "Eremu honek ezin du hutsik egon." + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "%(field_label)s hori daukan %(model_name)s dagoeneko existitzen da." + +#. Translators: The 'lookup_type' is one of 'date', 'year' or +#. 'month'. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "Eremuaren mota: %(field_type)s" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "\"%(value)s\" blioa True edo False izan behar da." + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "\"%(value)s\" balioa, True, False edo None izan behar da." + +msgid "Boolean (Either True or False)" +msgstr "Boolearra (True edo False)" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "String-a (%(max_length)s gehienez)" + +msgid "String (unlimited)" +msgstr "" + +msgid "Comma-separated integers" +msgstr "Komaz bereiztutako zenbaki osoak" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" +"\"%(value)s\" balioa data formatu okerra dauka. UUUU-HH-EE formatua izan " +"behar da." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" +"\"%(value)s\" balioa formatu egokia dauka (UUUU-HH-EE), baina data okerra." + +msgid "Date (without time)" +msgstr "Data (ordurik gabe)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" + +msgid "Date (with time)" +msgstr "Data (orduarekin)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "\"%(value)s\" balioa zenbaki hamartarra izan behar da." + +msgid "Decimal number" +msgstr "Zenbaki hamartarra" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" +"\"%(value)s\" balioa formatu okerra dauka. [EE][[OO:]MM:]ss[.uuuuuu] " +"formatua izan behar du." + +msgid "Duration" +msgstr "Iraupena" + +msgid "Email address" +msgstr "Helbide elektronikoa" + +msgid "File path" +msgstr "Fitxategiaren bidea" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "\"%(value)s\" float izan behar da." + +msgid "Floating point number" +msgstr "Koma higikorreko zenbakia (float)" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "\"%(value)s\" zenbaki osoa izan behar da." + +msgid "Integer" +msgstr "Zenbaki osoa" + +msgid "Big (8 byte) integer" +msgstr "Zenbaki osoa (handia 8 byte)" + +msgid "Small integer" +msgstr "Osoko txikia" + +msgid "IPv4 address" +msgstr "IPv4 sare-helbidea" + +msgid "IP address" +msgstr "IP helbidea" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "\"%(value)s\" None, True edo False izan behar da." + +msgid "Boolean (Either True, False or None)" +msgstr "Boolearra (True, False edo None)" + +msgid "Positive big integer" +msgstr "Zenbaki positivo osoa-handia" + +msgid "Positive integer" +msgstr "Osoko positiboa" + +msgid "Positive small integer" +msgstr "Osoko positibo txikia" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "Slug (gehienez %(max_length)s)" + +msgid "Text" +msgstr "Testua" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" + +msgid "Time" +msgstr "Ordua" + +msgid "URL" +msgstr "URL" + +msgid "Raw binary data" +msgstr "Datu bitar gordinak" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "" + +msgid "Universally unique identifier" +msgstr "\"Universally unique identifier\"" + +msgid "File" +msgstr "Fitxategia" + +msgid "Image" +msgstr "Irudia" + +msgid "A JSON object" +msgstr "JSON objektu bat" + +msgid "Value must be valid JSON." +msgstr "Balioa baliozko JSON bat izan behar da." + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "" +"%(field)s %(value)r edukidun %(model)s modeloko instantziarik ez da " +"exiistitzen." + +msgid "Foreign Key (type determined by related field)" +msgstr "1-N (mota erlazionatutako eremuaren arabera)" + +msgid "One-to-one relationship" +msgstr "Bat-bat erlazioa" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "%(from)s-%(to)s erlazioa" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "%(from)s-%(to)s erlazioak" + +msgid "Many-to-many relationship" +msgstr "M:N erlazioa" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr ":?.!" + +msgid "This field is required." +msgstr "Eremu hau beharrezkoa da." + +msgid "Enter a whole number." +msgstr "Idatzi zenbaki oso bat." + +msgid "Enter a valid date." +msgstr "Idatzi baleko data bat." + +msgid "Enter a valid time." +msgstr "Idatzi baleko ordu bat." + +msgid "Enter a valid date/time." +msgstr "Idatzi baleko data/ordu bat." + +msgid "Enter a valid duration." +msgstr "Idatzi baleko iraupen bat." + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "Egun kopuruak {min_days} eta {max_days} artean egon behar du." + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "Ez da fitxategirik bidali. Egiaztatu formularioaren kodeketa-mota." + +msgid "No file was submitted." +msgstr "Ez da fitxategirik bidali." + +msgid "The submitted file is empty." +msgstr "Bidalitako fitxategia hutsik dago." + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" +"Ziurtatu fitxategi izen honek gehienez karaktere %(max)d duela (%(length)d " +"ditu)." +msgstr[1] "" +"Ziurtatu fitxategi izen honek gehienez %(max)d karaktere dituela (%(length)d " +"ditu)." + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "Mesedez, igo fitxategi bat edo egin klik garbitu botoian, ez biak." + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" +"Igo baleko irudi bat. Zuk igotako fitxategia ez da irudi bat edo akatsen bat " +"du." + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "Hautatu baleko aukera bat. %(value)s ez dago erabilgarri." + +msgid "Enter a list of values." +msgstr "Idatzi balio-zerrenda bat." + +msgid "Enter a complete value." +msgstr "Sartu balio osoa." + +msgid "Enter a valid UUID." +msgstr "Idatzi baleko UUID bat." + +msgid "Enter a valid JSON." +msgstr "Sartu baliozko JSON bat" + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr ":" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "(%(name)s eremu ezkutua) %(error)s" + +#, python-format +msgid "" +"ManagementForm data is missing or has been tampered with. Missing fields: " +"%(field_names)s. You may need to file a bug report if the issue persists." +msgstr "" + +#, python-format +msgid "Please submit at most %(num)d form." +msgid_plural "Please submit at most %(num)d forms." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "Please submit at least %(num)d form." +msgid_plural "Please submit at least %(num)d forms." +msgstr[0] "" +msgstr[1] "" + +msgid "Order" +msgstr "Ordena" + +msgid "Delete" +msgstr "Ezabatu" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "Zuzendu bikoiztketa %(field)s eremuan." + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "Zuzendu bikoizketa %(field)s eremuan. Bakarra izan behar da." + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"Zuzendu bakarra izan behar den%(field_name)s eremuarentzako bikoiztutako " +"data %(lookup)s egiteko %(date_field)s eremuan" + +msgid "Please correct the duplicate values below." +msgstr "Zuzendu hurrengo balio bikoiztuak." + +msgid "The inline value did not match the parent instance." +msgstr "Barneko balioa eta gurasoaren instantzia ez datoz bat." + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "Hautatu aukera zuzen bat. Hautatutakoa ez da zuzena." + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "" + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" + +msgid "Clear" +msgstr "Garbitu" + +msgid "Currently" +msgstr "Orain" + +msgid "Change" +msgstr "Aldatu" + +msgid "Unknown" +msgstr "Ezezaguna" + +msgid "Yes" +msgstr "Bai" + +msgid "No" +msgstr "Ez" + +#. Translators: Please do not add spaces around commas. +msgid "yes,no,maybe" +msgstr "bai,ez,agian" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "byte %(size)d " +msgstr[1] "%(size)d byte" + +#, python-format +msgid "%s KB" +msgstr "%s KB" + +#, python-format +msgid "%s MB" +msgstr "%s MB" + +#, python-format +msgid "%s GB" +msgstr "%s GB" + +#, python-format +msgid "%s TB" +msgstr "%s TB" + +#, python-format +msgid "%s PB" +msgstr "%s PB" + +msgid "p.m." +msgstr "p.m." + +msgid "a.m." +msgstr "a.m." + +msgid "PM" +msgstr "PM" + +msgid "AM" +msgstr "AM" + +msgid "midnight" +msgstr "gauerdia" + +msgid "noon" +msgstr "eguerdia" + +msgid "Monday" +msgstr "astelehena" + +msgid "Tuesday" +msgstr "asteartea" + +msgid "Wednesday" +msgstr "asteazkena" + +msgid "Thursday" +msgstr "osteguna" + +msgid "Friday" +msgstr "ostirala" + +msgid "Saturday" +msgstr "larunbata" + +msgid "Sunday" +msgstr "igandea" + +msgid "Mon" +msgstr "al" + +msgid "Tue" +msgstr "ar" + +msgid "Wed" +msgstr "az" + +msgid "Thu" +msgstr "og" + +msgid "Fri" +msgstr "ol" + +msgid "Sat" +msgstr "lr" + +msgid "Sun" +msgstr "ig" + +msgid "January" +msgstr "urtarrila" + +msgid "February" +msgstr "otsaila" + +msgid "March" +msgstr "martxoa" + +msgid "April" +msgstr "apirila" + +msgid "May" +msgstr "maiatza" + +msgid "June" +msgstr "ekaina" + +msgid "July" +msgstr "uztaila" + +msgid "August" +msgstr "abuztua" + +msgid "September" +msgstr "iraila" + +msgid "October" +msgstr "urria" + +msgid "November" +msgstr "azaroa" + +msgid "December" +msgstr "abendua" + +msgid "jan" +msgstr "urt" + +msgid "feb" +msgstr "ots" + +msgid "mar" +msgstr "mar" + +msgid "apr" +msgstr "api" + +msgid "may" +msgstr "mai" + +msgid "jun" +msgstr "eka" + +msgid "jul" +msgstr "uzt" + +msgid "aug" +msgstr "abu" + +msgid "sep" +msgstr "ira" + +msgid "oct" +msgstr "urr" + +msgid "nov" +msgstr "aza" + +msgid "dec" +msgstr "abe" + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "urt." + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "ots." + +msgctxt "abbrev. month" +msgid "March" +msgstr "mar." + +msgctxt "abbrev. month" +msgid "April" +msgstr "api." + +msgctxt "abbrev. month" +msgid "May" +msgstr "mai." + +msgctxt "abbrev. month" +msgid "June" +msgstr "eka." + +msgctxt "abbrev. month" +msgid "July" +msgstr "uzt." + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "abu." + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "ira." + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "urr." + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "aza." + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "abe." + +msgctxt "alt. month" +msgid "January" +msgstr "urtarrila" + +msgctxt "alt. month" +msgid "February" +msgstr "otsaila" + +msgctxt "alt. month" +msgid "March" +msgstr "martxoa" + +msgctxt "alt. month" +msgid "April" +msgstr "apirila" + +msgctxt "alt. month" +msgid "May" +msgstr "maiatza" + +msgctxt "alt. month" +msgid "June" +msgstr "ekaina" + +msgctxt "alt. month" +msgid "July" +msgstr "uztaila" + +msgctxt "alt. month" +msgid "August" +msgstr "abuztua" + +msgctxt "alt. month" +msgid "September" +msgstr "iraila" + +msgctxt "alt. month" +msgid "October" +msgstr "urria" + +msgctxt "alt. month" +msgid "November" +msgstr "azaroa" + +msgctxt "alt. month" +msgid "December" +msgstr "abendua" + +msgid "This is not a valid IPv6 address." +msgstr "Hau ez da baleko IPv6 helbide bat." + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "%(truncated_text)s…" + +msgid "or" +msgstr "edo" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr ", " + +#, python-format +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "urte %(num)d" +msgstr[1] "%(num)d urte" + +#, python-format +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "hilabete %(num)d" +msgstr[1] "%(num)d hilabete" + +#, python-format +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "aste %(num)d" +msgstr[1] "%(num)d aste" + +#, python-format +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "egun %(num)d" +msgstr[1] "%(num)d egun" + +#, python-format +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "ordu %(num)d" +msgstr[1] "%(num)d ordu" + +#, python-format +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "minutu %(num)d" +msgstr[1] "%(num)d minutu" + +msgid "Forbidden" +msgstr "Debekatuta" + +msgid "CSRF verification failed. Request aborted." +msgstr "CSRF egiaztapenak huts egin du. Eskaera abortatu da." + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" +"Formularioa bidaltzean gune honek CSRF cookie bat behar duelako ikusten duzu " +"mezu hau. Cookie hau beharrezkoa da segurtasun arrazoiengatik, zure " +"nabigatzailea beste batek ordezkatzen ez duela ziurtatzeko." + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" + +msgid "More information is available with DEBUG=True." +msgstr "Informazio gehiago erabilgarri dago DEBUG=True ezarrita." + +msgid "No year specified" +msgstr "Ez da urterik zehaztu" + +msgid "Date out of range" +msgstr "Data baliozko tartetik kanpo" + +msgid "No month specified" +msgstr "Ez da hilabeterik zehaztu" + +msgid "No day specified" +msgstr "Ez da egunik zehaztu" + +msgid "No week specified" +msgstr "Ez da asterik zehaztu" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "Ez dago %(verbose_name_plural)s" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" +"Etorkizuneko %(verbose_name_plural)s ez dago aukeran %(class_name)s." +"allow_future False delako" + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "Bilaketarekin bat datorren %(verbose_name)s-rik ez dago" + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "" + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "Orri baliogabea (%(page_number)s):%(message)s" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "" + +msgid "Directory indexes are not allowed here." +msgstr "Direktorio zerrendak ez daude baimenduak." + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "\"%(path)s\" ez da existitzen" + +#, python-format +msgid "Index of %(directory)s" +msgstr "%(directory)s zerrenda" + +msgid "The install worked successfully! Congratulations!" +msgstr "Instalazioak arrakastaz funtzionatu du! Zorionak!" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" +"Ikusi Django %(version)s-ren argitaratze " +"oharrak" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not " +"configured any URLs." +msgstr "" +"Zure settings fitxategian DEBUG=True jarrita eta URLrik konfiguratu gabe duzulako " +"ari zara ikusten orrialde hau." + +msgid "Django Documentation" +msgstr "Django dokumentazioa" + +msgid "Topics, references, & how-to’s" +msgstr "" + +msgid "Tutorial: A Polling App" +msgstr "Tutoriala: Galdetegi aplikazioa" + +msgid "Get started with Django" +msgstr "Hasi Djangorekin" + +msgid "Django Community" +msgstr "Django Komunitatea" + +msgid "Connect, get help, or contribute" +msgstr "Konektatu, lortu laguntza edo lagundu" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/eu/__init__.py b/venv/lib/python3.12/site-packages/django/conf/locale/eu/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/eu/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/eu/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c205930343bef14b3b1e6220fd88390cb1df8fb8 GIT binary patch literal 198 zcmX@j%ge<81o5sX(m?cM5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!O4ZNE&rQ|OP0Yy6 zFHO;RNiEZNN=(kybEFQ_cZ$j>v@Gc?jK&MZmQEdVM^ zOiwM=Pssu+OwP|s)6dCIPRvQwPc7AtkI&4@EQycTE2#X%VUwGmQks)$SHudml@W-G PL5z>gjEsy$%s>_Z#(Fe` literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/eu/__pycache__/formats.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/eu/__pycache__/formats.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..56f90a4f8daff03efe5987eb347eb61cdf7f6224 GIT binary patch literal 593 zcmY+A%WB&|6oyAu9ADH#wroS7w78Tm0YCZyHWZ#JNwl`4*ly~E>FiFe{6qhZQ(8uwIxR<6oNu!H zWm%Nuvz97;b=vZ|Xo#k6ECsWvciN&R?J!>JsHd{wGz`6S-qIRBz$0Dq8pD1RcrbAL zK{Uls@@DYV?Oxa95W@@K4KE`&^THYQ2N!TSpY)^fL;c-*I37&A+K?FCOK%ME)yCM3 z!XEUauIqcyo5Ef+3f#%KKAf+!pMnTaeed(AOdh2x9XCi?u?)kk@_>JF!zG6$l7u%m rd{Tb70L7&AY5@vK`8m}`uNR<_lq*E94ngIJGMa@%D1GNg0-5z2Dm$#W literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/eu/formats.py b/venv/lib/python3.12/site-packages/django/conf/locale/eu/formats.py new file mode 100644 index 0000000000..61b16fbc6f --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/eu/formats.py @@ -0,0 +1,21 @@ +# This file is distributed under the same license as the Django package. +# +# The *_FORMAT strings use the Django date format syntax, +# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date +DATE_FORMAT = r"Y\k\o N j\a" +TIME_FORMAT = "H:i" +DATETIME_FORMAT = r"Y\k\o N j\a, H:i" +YEAR_MONTH_FORMAT = r"Y\k\o F" +MONTH_DAY_FORMAT = r"F\r\e\n j\a" +SHORT_DATE_FORMAT = "Y-m-d" +SHORT_DATETIME_FORMAT = "Y-m-d H:i" +FIRST_DAY_OF_WEEK = 1 # Astelehena + +# The *_INPUT_FORMATS strings use the Python strftime format syntax, +# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior +# DATE_INPUT_FORMATS = +# TIME_INPUT_FORMATS = +# DATETIME_INPUT_FORMATS = +DECIMAL_SEPARATOR = "," +THOUSAND_SEPARATOR = "." +NUMBER_GROUPING = 3 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/fa/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/conf/locale/fa/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..c131325ee156387c61abb99ce6d23b34257b503c GIT binary patch literal 31655 zcmd6v37lM2mH!`z5Q2cL0t!4DL%Jc|9d>L8lBBZ{8bZ5%E>{% zf5G+qb1`@ecoDb_d>#06@C0z;DM4@&cp1ol!43SQ{>yy%hdgfaJ@YEnUjdtU}1Hm&v$PSvpgTPksaPT}|KMg#T{0wj$coldg_y$n(^??V2Iq(>; z465BbJigD@e-u2L^83KU!0o>Lvml}i{uMj~dC7|ZL z8Z>%9(b)%ToC0_zxXkB20jm8*P;_qtj{+YDCGRhT{1^Oye?QJ@_FgK2B>0 zf)dyS{ylgPxCA`^^dPts+yFiRPC-cbfzN@LfGZ~i!KL7np!Dp3GlJk%;1rJwLCLKj zd^PwMkfDN)`243q@mB@4Za?>VF{AQhLCLKV)VNbY>F0Ie@!%3r?cN27-+RI9z(>J( z;42%0K&Fxc89G=BO5XQ?Ux9Ov_|_SgWbT@xsJ&IS($ zFY$P}FMk85{@tMDkpbTi7Qqw2Lt5Q9r-5qM1WGQgpy)goJQBRbmtO&ju6dxwyB1`q zAmz*N1f`cB0uKb&gNQQN2x0=kE>QON7f|wiS(0 zgNMN>;CDdzsZ%a+d|V7_pS>2;x)wlOZ}3h~^lktp-$y{ryAzatJpmpAeh*Z;{{h9% zA3VP7LYF@b)VRlhYIhbW{#!xG^8!%xUk0lGn?U)=9#HcACs6Z#1(aN#0nY%dpzKP) zgXDb@D7|S0->qU$^L-xFJYNFU|7*VdS@3t{zYRVOR$j-L;Dacy=DUqW6Mri~jsFpk z8$5o-<9~Skfydv0>US8M&{5#2p!%Qfu^m+XwV?ERF{pNL_T}&Pcps>KkAl+QFLi1*t2=Moy#ygb7Rr`~{W5LOw_@Ci%j>isz@M;2H)oML!j3GL!j(pJt%v43e>uN6`TN8eEFY2 zt;?aa+&IUBqVr@>`ZE<&|7$?COL@$J8s}C}^12t4fB7sZx_%A58a!yW>mP#3p9N~1 zS)lZ}6U0>nY4CXPqoC&7;_E*Rik_#zbHQJN)4&NVhQ{dwMQ0g27;Yc|zS-wL0FEcW9y|lw4)R~{4gQh+O`ID9 zcYqgw9|WKD_=YQj;Jf7i8~i!=ZyoReK5?as-yXTj>Gd)59Nr9`Mg3Pn$@34O=x@F{ z2+jeo0CC;H+rY`-c2M;E7l^3@hhsz&!7IRKumnoJ_kp;$pz8BSFK~7;2h@B;Q0+es zt^uD0Zw0T%$j$}74qgV1U+CmJ7nB^|2#yCc;A_E>FaHR55BUedjhwd8aIcno+G zsD5t+At`u=um1)(j{HwO{svULKY@3FoP<%ZAYP`+9{`;Wp{}5aXTnIc*^59!PC?p6kR94%qidmQ2BOHa=qH)^&Y!H z$v+D&2Hy$Z488zrJ^OlHzonq;=QdFMeE`&YYy#EptDx5PTi_YsFF?_Ee4pdH6?`rE zX`uS|f}(FZC_B9u6rDRfJ_Tyre+MO}?|A&F#}`1gKOp1kj{w#FMDSp+(dS!1`H@S( zv%vy*KKKBreRmgl5qRNEZhsvBCzIa-o(Fyp)cT%)a6)h{cmbFNHQ)Unw}9iwe-@kq zei4-3j>|gxJPDNDoC&JkMc{aFDmWXw0+ii+5PSu=8PxbsfGyzDpyc~U@KNw^lt%mP zQ=rEC7O3%l2+Hn%1&aPjIj0vXP~*KFd;okOsPQgD8HKY!^}i03{L}1G;1!_8xgJ!%6sUP~pxO=k`nQ6jVj8Pxb`g>cro7NwOb?3BFGH zAJPKqE+C1IkCLYNwusv9Vzkfc?<@zwdXIt=sk;&UKcsJ}!2g}$aUAuiUhp%YKMuT- zvLT-r$WA^%x`Ff^QvCO-_yIhbB>$klDI~4czboVa*nWb4C1KXVk)B>(W$|15e5HRl z*|+&%Tmf$O&rQ_5j5MEgIcXXx{_Eg@rLna>gz_xU_meQg-~jRq!12EQ>%rswvvl$| zq_>c!leCulYbVVn$;S2fA=0ny$^COTz?KnAWSouQC7}G`Oz==px;vkA1bOM>I#T@C zN?H7O2G8FhGnI5(TnHXR`G0`&9p{4|CjEk>Kk2*vzD4?oJ-L5A4zPU$lj-v*@N`!k z>;hjy*-yY7q`&xb!TbEPY(jq*l5QuxmGpDcQKW!n_!+4ehXb|%EkE9n!$B>>OeT?+aq_2|Vzt{56PWvWb@Gy8i z=@HU}lt1LlL!OW4`AMITVI~jnB;7&ULTV(vi*zsP?W8A2C(-vflK!41eTKA^)Jj@K zI*+>5VEorezQwm!*|$jxePthb326@L|B|#1Tuqup`!|3Wfv+RAkq#yOlCon-`b&|P zknSS=1LHIbgRdt&PZ}h}e`|TTg7n{{t7&&8=_-=`&IkV< zyp;4K(rLb&NBg@kegF?6JxE&a%MSNA1H9Hh9|E30y3~*J1)l%Q*9l%tx|#Gj(gsre zH{G{ypx}4D@M4bzu!H);Nss%oSMxlFG>?3l^jXpg4!Vn&(h$!e#kf6i#UDE*A<>uCz#HDrzcT9A-*ke`-)2Q~h0;-g3TN z4D*G!IF~Pl(Jh%`sf8(fGEp|YD4Xhvvdr3FF4}zMT;}F-6!y@`QMG7zy9tfie136x zU{PssfEjI|LcYJL*gT=JlxLtqlueZ~`CPFtGoV>^TUn&GKcBYQGr3|ZmFteerI}J6 z6Wg2&HlcAzDqD`43Sl}Q6~kflTi->wlnKrHmHIO3GMwO4wh*P#gN|>bcV9XdnS6B5 zT)Dp~9i~%*ke)n?50~l7mkYx(wW|J1u3U&aZ;yDt!gkz z)n-&iRmIG*2r|0{ZNj=7mBnz@H2pi*{_U`T=h?rV(}Kp?nRGhJg(kodu1vN~JVk{< zzR*+*CWUNVZLe=REtnc!zTm1W!+h6GQFker+7V3cDP$I>Qn@0>kgilN!y#d6wl^y9 z5Kb+mx-#9t)PX`K8^oDHFUp%y!*Ia>9g2Na^+&E}u~b&iU~0J+#RQ6_LMp4aGjhFI zYr8Bebfq#k(KDEqDx$Q(G*qupE~?+ODA!B-U|Oa(Y`n;1(PXv+MZvUuJ{vJq;|#Pd zDukT{G#-VYnaUQUrZKB0xk|OVQl>_uqER}nkXn{8!sg`*C8&*x5Q4qtA)=5eL25$s zv~spLWo%6=!zm4?FPJ|wT!N5#GTml1VNWWPjnXaQ{0NRP$y67^QV>i}l~P$ao8Fho z_0kg#3c>VzHjkaxiEw(pzdzMnj0RE#T#9@~DT3!BO>;SxYEsx6mBPL#J1|Mibfap8 zOqX|ii`S=8MZw7bP=XS}e{8Jav5<#9p2Tr$t(%aqOcgasqCJ?f77 zyO25$nf_EZ#8zB3i&G2QGX<#17Y3m;9o-UPc7@0cJ(bPom%;%n6tx8HEOc)^6nnU+ z(qLTBp6@QBG$oT>&|ZdXoDUBrD4)@fG{aOnU5JWBas#Eo5amItxpes4Z6CvjW>dwY zcOoq|p}tS4|^hx8(Q>1f>Zfcr%vE5nl2Nze7R;yV6{V~UJcy=?qi zf6O%}Ux!D<{gm<}M;)#VPU3XW;xqQCujWYMN&5%n(Lx(QW4dzlH+VxUHgk66&JEVu zQJ+bNbLK5MFLqdC*1-pDF4#kx-PUQt9y#X1`B#i8S~#bDWSPR#vC3K%dycB`PIzQ_ zRPT*PR{DKvWbs(zj}WjE9NxT`E%(ZAv!@kt@|j$(cAcdl`9;BaS)X(mnzYPe9CRK9?N~({kL!u(oY?4N9TxRVrr0~Y7aEE6c|Fhmg5 zl`lrNl`k5|qJlcr7+XsS0#aR&*cElB%0)Xmjo$Wq+(;O{-}Gl;klm8@tSDdTbq|Gp z%a=lqD+lU>Dmpm34Z44M>gOp3l{&c0gjKE- zuy9;Yf2L?=uic1BtyCpgaO@qy)d^0}IdtfPtu5mhanC#04al;+r#EH4c z!z~=kO@40u$O& zmY`VfB7CYJc~UEu zexBP;h_ZCfH;JUn18hO^0;cu|h!u4^J+5eJU#7cn#C0UY?cXr_*&(?_9Aj?VRJ4%s z%_sWCakTz&R58#V3ABh+=FE*o(lm0HPfo!wP*XVxHqobUnD+Uu{4EkYhx>e~k0G!t z98BGn)4V);556kW_OCRce;i!UQKcQT$T{(9XH*~@L)KdEAh%9Ysg86xTfmU&T z8NUQB;8i-QT#$V)=+2kyerr}LVnKriQC3Tw(ou(_Om|;C!_|kZ)$VW+o6{ueokCV* zni!#PjUab3N~i8z+>rY^&Opi8#R5V@Bi><%7tg>-hVz=)I~Gjb$(FEy-8<|^4HSa~ z+5D2!Vgq*}xq!1p*jOHrirWptB7c`qYzh_(lVyCDxj^vK# z=@l1^J*KN=Hm(xOg&by~t)NiO>7G!5AtCrdT)DfFD7{Dp+9V$g7L?%*ho~i5n(E_r z5{w9H`ho?63N_8*gU-}VnZ^9u&z)>1`%fY0jNq~i+)@gVcSipZjL8XLn$KR7hww8sci_Epb@4dgkEV=bMxhklC*Mf2wE6c zeaNA}OY?=r_?=?8yPFNE2M0KK8h3=bUiPc9_iU$G4^JX`hg@o}JG!D0PB<6d%F$zy zYTjaZgST>t=dy0TWEXH&3Zr&Qs7jvAcgZ1|fntJ0^ow^>mxIP(RrL3_u zZ%4zA`<;C(P+z%F)be(6`VKnt1DS3drwg$Oqd22fq{Vgf?#2~zg#E<3l|sA2pJYf zY&L)*3o^)|+TI^!c#lw$brq;xoXanz)c}V=B7Dylcfq}Q2d$=gKAn5m7-*tUhn?5^ z$5><3Tqhgdv=j;kf@Ukj)`}SMOh}tbvr;Ujk@AP)Fh%!PW^K97DLfYE6u!a1T93Y^tQhiBVJ~5 zt50dFXeSaT;Km}kZMPZXBbr~vE@P*US3uoz0?+{$g)|PUP~zCuvhR$KWZ4e8?)2vz zueX1RPw^a4wsGT|{O!0g-yC0Syl74AX(i&*u2O70JsojS*sD&~qIFY91VBh+YZQ;< zj9TwmDCRIjWFkvuABj)hI%VKaSf^AA5pt@Fdy^$CE=)eiy(%10R_-0yjCV>Si?|yb zS;X0IRFO`9!-u!C;P4`M-WgdovLgZb$l-~!M;0xJ22_^C66_=pvshQ)-gVYBN#32+ zl_ht7b!GA4w!X+1tPSqCtK~gw^#$-%%OxF+^IW~+sE+ikPdHL^$dB1gdrS>h7AxNv7! zuCI9AVTAOTt;q=Lp+kw+9kb7CM zd%=%2`rd`Io5`dN{`JR;opBE%?@oVWol7OJcH{R*V-rzp-=iz}y$+j%=6h@DqceRB zF=_Y*6#Lk7*hd%p(Z_#@VRx3AU0ojx=DA3#c}}|d8r?kPb8VrE!N$+GORwgRVs9qh zJgwYYZ0^jrh2!U4)jU61!drxVuDPAHYzxnseD=A`lh12D=lpQ;1#RcO?ySlDjlY6R zk7mN>T#@rczR<>fbS5O$jruZ^=yJ}vw9x%#Z`9lwrTW`KfAbMGDj*~tObraQ@bL<- zUwWcjEEIHvwR#}9wC=4vsn(|P9dkNn)L1yXW%78AGrYWk27AS$V_qvC6=ZT3a~$S_ zA0o$voim#+sZvl}**vq*Y;M3)!{Rp=Z|+XOI3Ot+FPp zF0ZVutgEgFE9suH5y>>QG24N~mJEm6dIkhb!B|$~sE7 zRW^k*U#k||t1GC!BV_gsqCm|zS)27D#y6KvyeEDc7JuQUN`~2_R-5$*!Na~~BQK*K z@xj}(Yj%ASLYX}oT;0j-U`8gf58SA=oIZgIDx0gTU5l~nxj^vWy=hFf(QCXWz3z5< zP$6W1Vf<~bY-$O7zxcMwI*Sp6H;UP{l`WFIudF+3N}@j!@=_Es#=@TMW$o579+E(P%PFz8KF9|0It_o zS0wdG)_)u)=1~oiIjUsOU(8i+hxirJ!zZdk)m6-*wb1#H_YpkBAI??Q=)<|n$N6$j z3KdqiG2gxR4P8*#&iosL%6)LL+0>0uDqB^sLX?@YK;N@#0%W%%Ilte4`bCo77I*yDXt4>u6yJggTC?b=jb0lnC6 zs4+1IEWnC9S@%^Q5n)En2KCUmWGh>DebOFfwx%kuwN3-N{%W)ZiZP$QQwRr} zWT@LK8<`f-tgEipbYY_$kO=S&;c>>@(S)_H8Qny#2VXM02g|g2*HDvMD`O401?zs$`D)wUo|v z;o4e4qwwMCYKcn@kU^@e(GZzDzGtnxPj!W+PpB28Hp=Ee3yeb15W6%AM=d(;bpE%XO-iDBmPzoM%K{fw&IYNMOyN@@QpquxrTai_~LCR<0q`7!la`52FGiE#7um z$>CKZmc7L9O2eupGA#<6$~*E8;ualp4v2^OW5q)R5`$*mSb3y+dtmI?js$5MMx3!^ z@XSE6B#jy-d!4yn#Fp%IErA*^&Ccqo>IaavS=DNZ6)Nb?xX3Cg7ng8hZIdlFAiqLw zAq+sok}ST*6o=djktHFk+$84=S0g{HdbM61Hthbx#|ACE+ut_(Z(g0CU|^Uh5CPC= zYi_EwO%mOL&vPF@LdEjxN|o(&x*$E*W{#uQ9Ja5w{8dM(?T0HN8x45z1nu`wK5*J# zoAFKr00p~|*xso6Uk*jwBE>`zhpMZ!rqUl%nZ)wlq7vj$y_~jgP1ABRn4$cQv@BUg zY|_Srq1rc=T6r{^kMsU!6PjHr{8?@*?Fb&tTm2`7`^ID4*M~$vBl-OQbXpeeAr@`; zCzXEluNKM|%T_9 z>MDvbRPk?z2AKslQiN$gWcIWp`*o5dJ%-kpej47D!|`M_phh^f=(eHgg`mbdE6v1?Pq9!Hlc z5RNF4l7$fMX(zlLOO9hGl+i512h7SmT-iZ{X$E3yYXuzM?0RBYbYn`oTVfPZZ-W5l zmF2~g@9%uHAH5b~P+2EZ*qE`p#0BiddT|HK#T;5GFQE9%js=p?CeN84tfKRQ8V>U( z6zIsQ;~~~kT^*=E4+==-Z7gK2uHsROr2`1+Nt8^*&f3Rp{sZRvz$6|?Vm4CDS&fWb zEEd*mj69L!cl_ORQ*om7z(xLc9D%Bqy4IZ2svO@HAIHs5WSNeRej1L)Eo~ZftdF24 z26XdxTXi&v<00vxM$l=(A8eDLSVG|f%<&&c7tko?B3NhQ4Up65g(E=`!AP8>uqHnj ztnU!r?$S&)t9_AinjpY0##Ze}971Tu5v2CuE*+%K+##?g5XwT^d*v}csFqHcGFjC4 zh}l3aPHz)h&RWPd=1IeUYb}moMts>f*SaAbsyqe}=$%(MQy60tg;+FDHmbT&p1qKhP|E(j{W+ITT6^EVqMpYqM)b;B(tpi!_ZqbjjkRPi#OOi zdOoop>jUqGkb62u&7<(mo-fJhz97DzFfWIq?$DgoJ8<|4uB?w8fNAgM#%6T=%OI7< z+(+Tg&p^xwTJ({+^)V5!ewq-1MaMe11O_p?k`}PvD*)Mw;;$E{7JjG!q*_l|E{h7q z>ZDS~5IL%(FcjKtij%+GIbAkZ9^+pNZrrhnX^jjVz0)%e^^|Sb>_(#rm_GPpDblv* zZhLplH)t+g=q9@u!UXK<+ql^6H|Z6zN2lRzFaeh}PDz<%o$(AGT92ypL*AMR+R^;V zL+W3z6Ul-EUgID}1ap}tz0iFU(l#O0tZLM%Yh9%bM4H^Qg#L=;cC3O)&2D6f+F@$C z!9>~=kk&9oK_gtRm@+Q+k-wVh3|S`!d6{q+*IuI&QOUHE8?l;58tT5M=YM7!o0?nM zF}NSYLZp>WD(*I@Ml_|U5R;i@kKnmx52M*!a@Tx*=Wfwo?XXh*S{k8jV~%xnmyIMDM&{1mG=o9vWm{RtEMmk*A+;~3LL+7^x&^!D z?5b>FCSF~OYNc&JEu<5^#Kxr7p^nseQ6FX|40{#L^%82tZzR+TcFf7Ft1eeyFSX(= zBT7Y21TF()ahZLrF={`ZKz#8FMG>cQ;x6Wdk(Xxj(Ws3n9&P_Z>}sQhN^C+^az*g# zNl2PQ%l@@z0EpX(f>bu4FOO(wkwX})Ai?%SZ8I+5h_|YQWvPg`-vj+lHdX(M(eD>~ zZSUCIi~ssFL?a`A#HizDZs{3oQ;! z)oX9nRUn6<$y8;2%|y4>N~H7R&%Q0FY^?JwFM75;k4Eh<7a`vo(~sfW*8s^&ei1*$ za3dJ9U6sD>g9cvNOQeXoj>Gz|8}y5nI_6jy`CA<)>PRuUjWKmySA>bzV0pAH)|+u` zSY8=6k=JU=snxx#^!B(@dl3uDODZl@O>Zsy8d47wPOesy@+_Cd<|-S(FOcysY?G69 zqCG1KoH=IfzJdv@#VEytR=am)3T#Klgb&Bx^MKFN%R6~tl0qXps#jNHR5&#`57DNK zGoEC(h##~^%dJb{afpbU9XJV5tX$iiHb$F^G2=^64Gzb;8dz6TQh9p+`x+{?gtgwa zxOohR?e7$8t>J6$bJ<>8>mwHSV@BIuwSN9(s|7a_mwyPQ2Rf`(hjo(gxsy^nZKS2ew*SUPPR86D%EbDWpTb=mK+~|%ctbuzmq91+Ke%3S6A0=vG z18R4MJZV02jM$_+S!yVK6-&E5DZlGt<3=eI{>?Sx9a(*qY}Vel)sZsx?|jU}W4#)d zfq%Hy#}h6jQT9QLfwk2m2(|?I`n9@Y5@oh1aciTPIvl+;lOWTndceAIl(g1rt5Hn8 zWH`#kUS0~SX`ON~&M;qRBH@;Xv6!K1<`nmgB@8*ZBB|E1hKeu7?jhB}93 zstR88or7uwst)0Ty~rrEw@Xfp)s?3uE=gX3O_kXpm)Rhn`Raa(L~K_3B@%ZywDbX5 zT~H*4B#JD4QaIw{bH5BCtpy{nv6EXvajPZrM-9!MEL$?m-aEO^Y3c|Y)kPM~HNQw4 zMo8Vl#P1f|i<`vX)vY7W-?`#g+ec*M*C7FOY-T%RC-=@zHy7NlGCN^Rh&)*>=s@u7 ztE}-(YU8%`K8G$kF2L95gQ1> zgq*81!&XK9k)myXi{F<)I0|BXqa_cs9Cn&?zg(-`qjSV&`=x1Y52FgSZ@{r`I#{q3 zGMV^V+_|IV2p(!i30*qRF<2^qAYuiRq#a43i~A;v=Iznnm)TFa+>R`7fFyN$!K%26 zaeg1@etM>>@Y+}mYHrgx!mYgef&{r`e~ap=^)A061Jw!{sj&tjCzFC3$T?Qn)b$CQ zfTK|?*`6k8xHUHZAjMRqo+c45WeBBUc3HNX9?R{O#%LjoMK5K1A7K*qgt#BcF$;37 z|L|u>E&+#7C3fY1#8dzCxh6k3<1jtjpoqeCjqNZ4z zC}7)yEt75gx_y4~A);*#18z%A?th)6j0WO7^Qx<8-Kg&=o1XlXnUh}T`Dv2j>ejg? zQ@^5oY^YUsYp0D#DsU<^5idu8OO;Tw)8Jo5>bZY27RrmMw3`w!`)?8=QsT00M zOqiy-m9V`Caln(dE!?kXM&Osw2|vD}(a@p-hd0cUYSEXL!Hw>C!IlWd5Gte$H!h>o zt&_~@Z};;-r{&2hGI?Er5U>KrC#%I(m3A+0jG;DjUxzwy<;9N)WykRwM0p8hEmvZC zr%RCJOKV&E>WTpA+DFdyAAxdz>8kyeFiMO7@m&xg|BW|u_rukp0HIp!#RDxce%Y!& z-ni?Tb&8|q?zQ^9rtVwqzs3C83tt=wW8RC85P{TFGT&BN7x)XK-N{96AgHWssXWHo zjF6G-7nL;?yVV5IUFmAT8w2-qKyI93osb)`b=VYIJwFI+aNZwM;*B2R$AL`j%Uaah zpPqe(QJ?O3w?_zC8|ul2l5X-p=A`2{8qmUd)ixGFHPLAChveZ@QBKrO2b9Cn!(j!_ zV`eyfpt@hCsfGH#Spum2g_*WJL zT)Uq$LeCBQHDmqH8Fwp^5!!)_%>l(x%P?)J)0DA(=*S%G!*+B+liaB~`Dn_5MI9uh z&OU(hhX$Oz+qh7<5o%MvU=|=@APSW0L*AN`ZLHJ6-7Ja-WSQ5x)t8%ddR_OCno*iq zpW|nkF4uYy1PrsSeU@I0&`}agNMfrMt@|xAKKk)qVq%@O`ul3O4!JxDacmPA&5=|7 z(cc1bm1-APb`iQ)i%*Q#546$!l1jQj)hJ8d4H@=3ObA-*zrnFb{jl, 2020 +# alirezamastery , 2021 +# ali salehi, 2023 +# Ali Vakilzade , 2015 +# Arash Fazeli , 2012 +# Eric Hamiter , 2019 +# Eshagh , 2022 +# Farshad Asadpour, 2021 +# Jannis Leidel , 2011 +# Mariusz Felisiak , 2021 +# Mazdak Badakhshan , 2014 +# Milad Hazrati , 2019 +# MJafar Mashhadi , 2018 +# Mohammad Hossein Mojtahedi , 2013,2019 +# Pouya Abbassi, 2016 +# Pouya Abbassi, 2016 +# rahim agh , 2020-2021 +# Reza Mohammadi , 2013-2016 +# Saeed , 2011 +# Sina Cheraghi , 2011 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-09-18 11:41-0300\n" +"PO-Revision-Date: 2023-12-04 06:49+0000\n" +"Last-Translator: ali salehi, 2023\n" +"Language-Team: Persian (http://app.transifex.com/django/django/language/" +"fa/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: fa\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +msgid "Afrikaans" +msgstr "آفریکانس" + +msgid "Arabic" +msgstr "عربی" + +msgid "Algerian Arabic" +msgstr "عربی الجزایری" + +msgid "Asturian" +msgstr "آستوری" + +msgid "Azerbaijani" +msgstr "آذربایجانی" + +msgid "Bulgarian" +msgstr "بلغاری" + +msgid "Belarusian" +msgstr "بلاروس" + +msgid "Bengali" +msgstr "بنگالی" + +msgid "Breton" +msgstr "برتون" + +msgid "Bosnian" +msgstr "بوسنیایی" + +msgid "Catalan" +msgstr "کاتالونیایی" + +msgid "Central Kurdish (Sorani)" +msgstr "" + +msgid "Czech" +msgstr "چکی" + +msgid "Welsh" +msgstr "ویلزی" + +msgid "Danish" +msgstr "دانمارکی" + +msgid "German" +msgstr "آلمانی" + +msgid "Lower Sorbian" +msgstr "صربستانی پایین" + +msgid "Greek" +msgstr "یونانی" + +msgid "English" +msgstr "انگلیسی" + +msgid "Australian English" +msgstr "انگلیسی استرالیایی" + +msgid "British English" +msgstr "انگلیسی بریتیش" + +msgid "Esperanto" +msgstr "اسپرانتو" + +msgid "Spanish" +msgstr "اسپانیایی" + +msgid "Argentinian Spanish" +msgstr "اسپانیایی آرژانتینی" + +msgid "Colombian Spanish" +msgstr "اسپانیایی کلمبیایی" + +msgid "Mexican Spanish" +msgstr "اسپانیولی مکزیکی" + +msgid "Nicaraguan Spanish" +msgstr "نیکاراگوئه اسپانیایی" + +msgid "Venezuelan Spanish" +msgstr "ونزوئلا اسپانیایی" + +msgid "Estonian" +msgstr "استونی" + +msgid "Basque" +msgstr "باسکی" + +msgid "Persian" +msgstr "فارسی" + +msgid "Finnish" +msgstr "فنلاندی" + +msgid "French" +msgstr "فرانسوی" + +msgid "Frisian" +msgstr "فریزی" + +msgid "Irish" +msgstr "ایرلندی" + +msgid "Scottish Gaelic" +msgstr "گیلیک اسکاتلندی" + +msgid "Galician" +msgstr "گالیسیایی" + +msgid "Hebrew" +msgstr "عبری" + +msgid "Hindi" +msgstr "هندی" + +msgid "Croatian" +msgstr "کرواتی" + +msgid "Upper Sorbian" +msgstr "صربستانی بالا" + +msgid "Hungarian" +msgstr "مجاری" + +msgid "Armenian" +msgstr "ارمنی" + +msgid "Interlingua" +msgstr "اینترلینگوا" + +msgid "Indonesian" +msgstr "اندونزیایی" + +msgid "Igbo" +msgstr "ایگبو" + +msgid "Ido" +msgstr "ایدو" + +msgid "Icelandic" +msgstr "ایسلندی" + +msgid "Italian" +msgstr "ایتالیایی" + +msgid "Japanese" +msgstr "ژاپنی" + +msgid "Georgian" +msgstr "گرجی" + +msgid "Kabyle" +msgstr "قبایلی" + +msgid "Kazakh" +msgstr "قزاقستان" + +msgid "Khmer" +msgstr "خمری" + +msgid "Kannada" +msgstr "کناده‌ای" + +msgid "Korean" +msgstr "کره‌ای" + +msgid "Kyrgyz" +msgstr "قرقیزی" + +msgid "Luxembourgish" +msgstr "لوگزامبورگی" + +msgid "Lithuanian" +msgstr "لیتوانی" + +msgid "Latvian" +msgstr "لتونیایی" + +msgid "Macedonian" +msgstr "مقدونی" + +msgid "Malayalam" +msgstr "مالایایی" + +msgid "Mongolian" +msgstr "مغولی" + +msgid "Marathi" +msgstr "مِراتی" + +msgid "Malay" +msgstr "Malay" + +msgid "Burmese" +msgstr "برمه‌ای" + +msgid "Norwegian Bokmål" +msgstr "نروژی" + +msgid "Nepali" +msgstr "نپالی" + +msgid "Dutch" +msgstr "هلندی" + +msgid "Norwegian Nynorsk" +msgstr "نروژی Nynorsk" + +msgid "Ossetic" +msgstr "آسی" + +msgid "Punjabi" +msgstr "پنجابی" + +msgid "Polish" +msgstr "لهستانی" + +msgid "Portuguese" +msgstr "پرتغالی" + +msgid "Brazilian Portuguese" +msgstr "پرتغالیِ برزیل" + +msgid "Romanian" +msgstr "رومانی" + +msgid "Russian" +msgstr "روسی" + +msgid "Slovak" +msgstr "اسلواکی" + +msgid "Slovenian" +msgstr "اسلووِنی" + +msgid "Albanian" +msgstr "آلبانیایی" + +msgid "Serbian" +msgstr "صربی" + +msgid "Serbian Latin" +msgstr "صربی لاتین" + +msgid "Swedish" +msgstr "سوئدی" + +msgid "Swahili" +msgstr "سواحیلی" + +msgid "Tamil" +msgstr "تامیلی" + +msgid "Telugu" +msgstr "تلوگویی" + +msgid "Tajik" +msgstr "تاجیک" + +msgid "Thai" +msgstr "تایلندی" + +msgid "Turkmen" +msgstr "ترکمن" + +msgid "Turkish" +msgstr "ترکی" + +msgid "Tatar" +msgstr "تاتار" + +msgid "Udmurt" +msgstr "ادمورت" + +msgid "Uyghur" +msgstr "" + +msgid "Ukrainian" +msgstr "اکراینی" + +msgid "Urdu" +msgstr "اردو" + +msgid "Uzbek" +msgstr "ازبکی" + +msgid "Vietnamese" +msgstr "ویتنامی" + +msgid "Simplified Chinese" +msgstr "چینی ساده‌شده" + +msgid "Traditional Chinese" +msgstr "چینی سنتی" + +msgid "Messages" +msgstr "پیغام‌ها" + +msgid "Site Maps" +msgstr "نقشه‌های وب‌گاه" + +msgid "Static Files" +msgstr "پرونده‌های استاتیک" + +msgid "Syndication" +msgstr "پیوند" + +#. Translators: String used to replace omitted page numbers in elided page +#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10]. +msgid "…" +msgstr "…" + +msgid "That page number is not an integer" +msgstr "شمارهٔ صفحه یک عدد طبیعی نیست" + +msgid "That page number is less than 1" +msgstr "شمارهٔ صفحه کوچکتر از ۱ است" + +msgid "That page contains no results" +msgstr "این صفحه خالی از اطلاعات است" + +msgid "Enter a valid value." +msgstr "یک مقدار معتبر وارد کنید." + +msgid "Enter a valid URL." +msgstr "یک نشانی اینترنتی معتبر وارد کنید." + +msgid "Enter a valid integer." +msgstr "یک عدد معتبر وارد کنید." + +msgid "Enter a valid email address." +msgstr "یک ایمیل آدرس معتبر وارد کنید." + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" +"یک \"اسلاگ\" معتبر متشکل از حروف، اعداد، خط زیر یا خط فاصله، وارد کنید. " + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" +"یک \"اسلاگ\" معتبر وارد کنید که شامل حروف یونیکد، اعداد، خط زیر یا خط فاصله " +"باشد." + +msgid "Enter a valid IPv4 address." +msgstr "یک نشانی IPv4 معتبر وارد کنید." + +msgid "Enter a valid IPv6 address." +msgstr "یک آدرس معتبر IPv6 وارد کنید." + +msgid "Enter a valid IPv4 or IPv6 address." +msgstr "IPv4 یا IPv6 آدرس معتبر وارد کنید." + +msgid "Enter only digits separated by commas." +msgstr "فقط ارقام جدا شده با کاما وارد کنید." + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "مطمئن شوید مقدار %(limit_value)s است. (اکنون %(show_value)s می باشد)." + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "مطمئن شوید این مقدار کوچکتر و یا مساوی %(limit_value)s است." + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "مطمئن شوید این مقدار بزرگتر و یا مساوی %(limit_value)s است." + +#, python-format +msgid "Ensure this value is a multiple of step size %(limit_value)s." +msgstr "" + +#, python-format +msgid "" +"Ensure this value is a multiple of step size %(limit_value)s, starting from " +"%(offset)s, e.g. %(offset)s, %(valid_value1)s, %(valid_value2)s, and so on." +msgstr "" + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"طول این مقدار باید حداقل %(limit_value)d کاراکتر باشد (طولش %(show_value)d " +"است)." +msgstr[1] "" +"طول این مقدار باید حداقل %(limit_value)d کاراکتر باشد (طولش %(show_value)d " +"است)." + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"طول این مقدار باید حداکثر %(limit_value)d کاراکتر باشد (طولش %(show_value)d " +"است)." +msgstr[1] "" +"طول این مقدار باید حداکثر %(limit_value)d کاراکتر باشد (طولش %(show_value)d " +"است)." + +msgid "Enter a number." +msgstr "یک عدد وارد کنید." + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "نباید در مجموع بیش از %(max)s رقم داشته باشد." +msgstr[1] "نباید در مجموع بیش از %(max)s رقم داشته باشد." + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "نباید بیش از %(max)s رقم اعشار داشته باشد." +msgstr[1] "نباید بیش از %(max)s رقم اعشار داشته باشد." + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "نباید بیش از %(max)s رقم قبل ممیز داشته باشد." +msgstr[1] "نباید بیش از %(max)s رقم قبل ممیز داشته باشد." + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" +"استفاده از پرونده با پسوند '%(extension)s' مجاز نیست. پسوند‌های مجاز عبارتند " +"از: '%(allowed_extensions)s'" + +msgid "Null characters are not allowed." +msgstr "کاراکترهای تهی مجاز نیستند." + +msgid "and" +msgstr "و" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "‏%(model_name)s با این %(field_labels)s وجود دارد." + +#, python-format +msgid "Constraint “%(name)s” is violated." +msgstr "" + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "مقدار %(value)r انتخاب معتبری نیست. " + +msgid "This field cannot be null." +msgstr "این فیلد نمی تواند پوچ باشد." + +msgid "This field cannot be blank." +msgstr "این فیلد نمی تواند خالی باشد." + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "%(model_name)s با این %(field_label)s از قبل موجود است." + +#. Translators: The 'lookup_type' is one of 'date', 'year' or +#. 'month'. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" +"‏%(field_label)s باید برای %(lookup_type)s %(date_field_label)s یکتا باشد." + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "فیلد با نوع: %(field_type)s" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "مقدار «%(value)s» باید True یا False باشد." + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "مقدار «%(value)s» باید True یا False یا None باشد." + +msgid "Boolean (Either True or False)" +msgstr "بولی (درست یا غلط)" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "رشته (تا %(max_length)s)" + +msgid "String (unlimited)" +msgstr "رشته (بی نهایت)" + +msgid "Comma-separated integers" +msgstr "اعداد صحیح جدا-شده با ویلگول" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" +"مقدار «%(value)s» در قالب نادرستی وارد شده است. تاریخ باید در قالب YYYY-MM-" +"DD باشد." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" +"مقدار تاریخ «%(value)s» با اینکه در قالب درستی (YYYY-MM-DD) است ولی تاریخ " +"ناممکنی را نشان می‌دهد." + +msgid "Date (without time)" +msgstr "تاریخ (بدون زمان)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" +"مقدار \"%(value)s\" یک قالب نامعتبر دارد. باید در قالب YYYY-MM-DD HH:MM[:" +"ss[.uuuuuu]][TZ] باشد." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" +"مقدار \"%(value)s\" یک قالب معتبر دارد (YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ]) " +"اما یک تاریخ/زمان نامعتبر است." + +msgid "Date (with time)" +msgstr "تاریخ (با زمان)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "مقدار '%(value)s' باید عدد دسیمال باشد." + +msgid "Decimal number" +msgstr "عدد دهدهی" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" +"مقدار «%(value)s» در قالب نادرستی وارد شده است. باید در قالب ‎[DD] [HH:" +"[MM:]]ss[.uuuuuu]‎ باشد." + +msgid "Duration" +msgstr "بازهٔ زمانی" + +msgid "Email address" +msgstr "نشانی پست الکترونیکی" + +msgid "File path" +msgstr "مسیر پرونده" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "مقدار «%(value)s» باید عدد اعشاری فلوت باشد." + +msgid "Floating point number" +msgstr "عدد اعشاری" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "مقدار «%(value)s» باید عدد حقیقی باشد." + +msgid "Integer" +msgstr "عدد صحیح" + +msgid "Big (8 byte) integer" +msgstr "بزرگ (8 بایت) عدد صحیح" + +msgid "Small integer" +msgstr "عدد صحیح کوچک" + +msgid "IPv4 address" +msgstr "IPv4 آدرس" + +msgid "IP address" +msgstr "نشانی IP" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "مقدار «%(value)s» باید True یا False یا None باشد." + +msgid "Boolean (Either True, False or None)" +msgstr "‌بولی (درست، نادرست یا پوچ)" + +msgid "Positive big integer" +msgstr "عدد صحیح مثبت" + +msgid "Positive integer" +msgstr "عدد صحیح مثبت" + +msgid "Positive small integer" +msgstr "مثبت عدد صحیح کوچک" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "تیتر (حداکثر %(max_length)s)" + +msgid "Text" +msgstr "متن" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" +"مقدار «%(value)s» در قالب نادرستی وارد شده است. باید در قالب HH:MM[:ss[." +"uuuuuu]]‎ باشد." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" +"مقدار «%(value)s» با اینکه در قالب درستی (HH:MM[:ss[.uuuuuu]]‎) است ولی زمان " +"ناممکنی را نشان می‌دهد." + +msgid "Time" +msgstr "زمان" + +msgid "URL" +msgstr "نشانی اینترنتی" + +msgid "Raw binary data" +msgstr "دادهٔ دودویی خام" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "\"%(value)s\" یک UUID معتبر نیست." + +msgid "Universally unique identifier" +msgstr "شناسه منحصر به فرد سراسری" + +msgid "File" +msgstr "پرونده" + +msgid "Image" +msgstr "تصویر" + +msgid "A JSON object" +msgstr "یک شیء JSON" + +msgid "Value must be valid JSON." +msgstr "مقدار، باید یک JSON معتبر باشد." + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "%(model)s با %(field)s %(value)r وجود ندارد." + +msgid "Foreign Key (type determined by related field)" +msgstr "کلید خارجی ( نوع بر اساس فیلد رابط مشخص میشود )" + +msgid "One-to-one relationship" +msgstr "رابطه یک به یک " + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "رابطه %(from)s به %(to)s" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "روابط %(from)s به %(to)s" + +msgid "Many-to-many relationship" +msgstr "رابطه چند به چند" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr ":؟.!" + +msgid "This field is required." +msgstr "این فیلد لازم است." + +msgid "Enter a whole number." +msgstr "به طور کامل یک عدد وارد کنید." + +msgid "Enter a valid date." +msgstr "یک تاریخ معتبر وارد کنید." + +msgid "Enter a valid time." +msgstr "یک زمان معتبر وارد کنید." + +msgid "Enter a valid date/time." +msgstr "یک تاریخ/زمان معتبر وارد کنید." + +msgid "Enter a valid duration." +msgstr "یک بازهٔ زمانی معتبر وارد کنید." + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "عدد روز باید بین {min_days} و {max_days} باشد." + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "پرونده‌ای ارسال نشده است. نوع کدگذاری فرم را بررسی کنید." + +msgid "No file was submitted." +msgstr "پرونده‌ای ارسال نشده است." + +msgid "The submitted file is empty." +msgstr "پروندهٔ ارسال‌شده خالیست." + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" +"طول عنوان پرونده باید حداقل %(max)d کاراکتر باشد (طولش %(length)d است)." +msgstr[1] "" +"طول عنوان پرونده باید حداقل %(max)d کاراکتر باشد (طولش %(length)d است)." + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "لطفا یا فایل ارسال کنید یا دکمه پاک کردن را علامت بزنید، نه هردو." + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" +"یک تصویر معتبر بارگذاری کنید. پرونده‌ای که بارگذاری کردید یا تصویر نبوده و یا " +"تصویری مخدوش بوده است." + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "یک گزینهٔ معتبر انتخاب کنید. %(value)s از گزینه‌های موجود نیست." + +msgid "Enter a list of values." +msgstr "فهرستی از مقادیر وارد کنید." + +msgid "Enter a complete value." +msgstr "یک مقدار کامل وارد کنید." + +msgid "Enter a valid UUID." +msgstr "یک UUID معتبر وارد کنید." + +msgid "Enter a valid JSON." +msgstr "یک JSON معتبر وارد کنید" + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr ":" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "(فیلد پنهان %(name)s) %(error)s" + +#, python-format +msgid "" +"ManagementForm data is missing or has been tampered with. Missing fields: " +"%(field_names)s. You may need to file a bug report if the issue persists." +msgstr "" +"اطلاعات ManagementForm مفقود یا دستکاری شده است. ردیف های مفقود شده: " +"%(field_names)s. اگر این مشکل ادامه داشت، آن را گزارش کنید." + +#, python-format +msgid "Please submit at most %(num)d form." +msgid_plural "Please submit at most %(num)d forms." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "Please submit at least %(num)d form." +msgid_plural "Please submit at least %(num)d forms." +msgstr[0] "" +msgstr[1] "" + +msgid "Order" +msgstr "ترتیب:" + +msgid "Delete" +msgstr "حذف" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "لطفا محتوی تکراری برای %(field)s را اصلاح کنید." + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "لطفا محتوی تکراری برای %(field)s را که باید یکتا باشد اصلاح کنید." + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"لطفا اطلاعات تکراری %(field_name)s را اصلاح کنید که باید در %(lookup)s " +"یکتا باشد %(date_field)s." + +msgid "Please correct the duplicate values below." +msgstr "لطفا مقدار تکراری را اصلاح کنید." + +msgid "The inline value did not match the parent instance." +msgstr "مقدار درون خطی موجود با نمونه والد آن مطابقت ندارد." + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "یک گزینهٔ معتبر انتخاب کنید. آن گزینه از گزینه‌های موجود نیست." + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "\"%(pk)s\" یک مقدار معتبر نیست." + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" +"%(datetime)sدر محدوده زمانی %(current_timezone)s، قابل تفسیر نیست؛ ممکن است " +"نامشخص باشد یا اصلاً وجود نداشته باشد." + +msgid "Clear" +msgstr "پاک کردن" + +msgid "Currently" +msgstr "در حال حاضر" + +msgid "Change" +msgstr "تغییر" + +msgid "Unknown" +msgstr "ناشناخته" + +msgid "Yes" +msgstr "بله" + +msgid "No" +msgstr "خیر" + +#. Translators: Please do not add spaces around commas. +msgid "yes,no,maybe" +msgstr "بله،خیر،شاید" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)d بایت" +msgstr[1] "%(size)d بایت" + +#, python-format +msgid "%s KB" +msgstr "%s KB" + +#, python-format +msgid "%s MB" +msgstr "%s MB" + +#, python-format +msgid "%s GB" +msgstr "%s GB" + +#, python-format +msgid "%s TB" +msgstr "%s TB" + +#, python-format +msgid "%s PB" +msgstr "%s PB" + +msgid "p.m." +msgstr "ب.ظ." + +msgid "a.m." +msgstr "صبح" + +msgid "PM" +msgstr "بعد از ظهر" + +msgid "AM" +msgstr "صبح" + +msgid "midnight" +msgstr "نیمه شب" + +msgid "noon" +msgstr "ظهر" + +msgid "Monday" +msgstr "دوشنبه" + +msgid "Tuesday" +msgstr "سه شنبه" + +msgid "Wednesday" +msgstr "چهارشنبه" + +msgid "Thursday" +msgstr "پنجشنبه" + +msgid "Friday" +msgstr "جمعه" + +msgid "Saturday" +msgstr "شنبه" + +msgid "Sunday" +msgstr "یکشنبه" + +msgid "Mon" +msgstr "دوشنبه" + +msgid "Tue" +msgstr "سه‌شنبه" + +msgid "Wed" +msgstr "چهارشنبه" + +msgid "Thu" +msgstr "پنجشنبه" + +msgid "Fri" +msgstr "جمعه" + +msgid "Sat" +msgstr "شنبه" + +msgid "Sun" +msgstr "یکشنبه" + +msgid "January" +msgstr "ژانویه" + +msgid "February" +msgstr "فوریه" + +msgid "March" +msgstr "مارس" + +msgid "April" +msgstr "آوریل" + +msgid "May" +msgstr "مه" + +msgid "June" +msgstr "ژوئن" + +msgid "July" +msgstr "ژوئیه" + +msgid "August" +msgstr "اوت" + +msgid "September" +msgstr "سپتامبر" + +msgid "October" +msgstr "اکتبر" + +msgid "November" +msgstr "نوامبر" + +msgid "December" +msgstr "دسامبر" + +msgid "jan" +msgstr "ژانویه" + +msgid "feb" +msgstr "فوریه" + +msgid "mar" +msgstr "مارس" + +msgid "apr" +msgstr "آوریل" + +msgid "may" +msgstr "مه" + +msgid "jun" +msgstr "ژوئن" + +msgid "jul" +msgstr "ژوئیه" + +msgid "aug" +msgstr "اوت" + +msgid "sep" +msgstr "سپتامبر" + +msgid "oct" +msgstr "اکتبر" + +msgid "nov" +msgstr "نوامبر" + +msgid "dec" +msgstr "دسامبر" + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "ژانویه" + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "فوریه" + +msgctxt "abbrev. month" +msgid "March" +msgstr "مارس" + +msgctxt "abbrev. month" +msgid "April" +msgstr "آوریل" + +msgctxt "abbrev. month" +msgid "May" +msgstr "مه" + +msgctxt "abbrev. month" +msgid "June" +msgstr "ژوئن" + +msgctxt "abbrev. month" +msgid "July" +msgstr "جولای" + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "اوت" + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "سپتامبر" + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "اکتبر" + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "نوامبر" + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "دسامبر" + +msgctxt "alt. month" +msgid "January" +msgstr "ژانویه" + +msgctxt "alt. month" +msgid "February" +msgstr "فوریه" + +msgctxt "alt. month" +msgid "March" +msgstr "مارس" + +msgctxt "alt. month" +msgid "April" +msgstr "آوریل" + +msgctxt "alt. month" +msgid "May" +msgstr "مه" + +msgctxt "alt. month" +msgid "June" +msgstr "ژوئن" + +msgctxt "alt. month" +msgid "July" +msgstr "جولای" + +msgctxt "alt. month" +msgid "August" +msgstr "اوت" + +msgctxt "alt. month" +msgid "September" +msgstr "سپتامبر" + +msgctxt "alt. month" +msgid "October" +msgstr "اکتبر" + +msgctxt "alt. month" +msgid "November" +msgstr "نوامبر" + +msgctxt "alt. month" +msgid "December" +msgstr "دسامبر" + +msgid "This is not a valid IPv6 address." +msgstr "این مقدار آدرس IPv6 معتبری نیست." + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "%(truncated_text)s…" + +msgid "or" +msgstr "یا" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr "،" + +#, python-format +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "%(num)d سال" +msgstr[1] "%(num)d سال" + +#, python-format +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "%(num)d ماه" +msgstr[1] "%(num)d ماه" + +#, python-format +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "%(num)d هفته" +msgstr[1] "%(num)d هفته" + +#, python-format +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "%(num)d روز" +msgstr[1] "%(num)d روز" + +#, python-format +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "%(num)d ساعت" +msgstr[1] "%(num)d ساعت" + +#, python-format +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "%(num)d دقیقه" +msgstr[1] "%(num)d دقیقه" + +msgid "Forbidden" +msgstr "ممنوع" + +msgid "CSRF verification failed. Request aborted." +msgstr "‏CSRF تأیید نشد. درخواست لغو شد." + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" +"شما این پیغام را مشاهده میکنید برای اینکه این HTTPS site نیازمند یک " +"\"Referer header\" برای ارسال توسط مرورگر شما دارد،‌اما مقداری ارسال " +"نمیشود . این هدر الزامی میباشد برای امنیت ، در واقع برای اینکه مرورگر شما " +"مطمین شود hijack به عنوان نفر سوم (third parties) در میان نیست" + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" +"اگر در مرورگر خود سر تیتر \"Referer\" را غیرفعال کرده‌اید، لطفاً آن را فعال " +"کنید، یا حداقل برای این وب‌گاه یا برای ارتباطات HTTPS و یا برای درخواست‌های " +"\"Same-origin\" فعال کنید." + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" +"اگر شما از تگ استفاده " +"می‌کنید یا سر تیتر \"Referrer-Policy: no-referrer\" را اضافه کرده‌اید، لطفاً " +"آن را حذف کنید. محافظ CSRF به سرتیتر \"Referer\" نیاز دارد تا بتواند بررسی " +"سخت‌گیرانه ارجاع دهنده را انجام دهد. اگر ملاحظاتی در مورد حریم خصوصی دارید از " +"روش‎‌های جایگزین مانند برای ارجاع دادن به وب‌گاه‌های " +"شخص ثالث استفاده کنید." + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" +"شما این پیام را میبینید چون این سایت نیازمند کوکی «جعل درخواست میان وبگاهی " +"(CSRF)» است. این کوکی برای امنیت شما ضروری است. با این کوکی می‌توانیم از " +"اینکه شخص ثالثی کنترل مرورگرتان را به دست نگرفته است اطمینان پیدا کنیم." + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" +"اگر مرورگر خود را تنظیم کرده‌اید که کوکی غیرفعال باشد، لطفاً مجدداً آن را فعال " +"کنید؛ حداقل برای این وب‌گاه یا برای درخواست‌های \"same-origin\"." + +msgid "More information is available with DEBUG=True." +msgstr "اطلاعات بیشتر با DEBUG=True ارائه خواهد شد." + +msgid "No year specified" +msgstr "هیچ سالی مشخص نشده است" + +msgid "Date out of range" +msgstr "تاریخ غیرمجاز است" + +msgid "No month specified" +msgstr "هیچ ماهی مشخص نشده است" + +msgid "No day specified" +msgstr "هیچ روزی مشخص نشده است" + +msgid "No week specified" +msgstr "هیچ هفته‌ای مشخص نشده است" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "هیچ %(verbose_name_plural)s موجود نیست" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" +"آینده %(verbose_name_plural)s امکان پذیر نیست زیرا مقدار %(class_name)s." +"allow_future برابر False تنظیم شده است." + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "نوشته تاریخ \"%(datestr)s\" در قالب \"%(format)s\" نامعتبر است" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "هیچ %(verbose_name)s ای مطابق جستجو پیدا نشد." + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "صفحه \"آخرین\" نیست یا شماره صفحه قابل ترجمه به یک عدد صحیح نیست." + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "صفحه‌ی اشتباه (%(page_number)s): %(message)s" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "لیست خالی و \"%(class_name)s.allow_empty\" برابر False است." + +msgid "Directory indexes are not allowed here." +msgstr "شاخص دایرکتوری اینجا قابل قبول نیست." + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "\"%(path)s\" وجود ندارد " + +#, python-format +msgid "Index of %(directory)s" +msgstr "فهرست %(directory)s" + +msgid "The install worked successfully! Congratulations!" +msgstr "نصب درست کار کرد. تبریک می گویم!" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" +"نمایش release notes برای نسخه %(version)s " +"جنگو" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not " +"configured any URLs." +msgstr "" +"شما این صفحه را به این دلیل مشاهده می کنید که DEBUG=True در فایل تنظیمات شما وجود دارد و شما هیچ URL " +"تنظیم نکرده اید." + +msgid "Django Documentation" +msgstr "مستندات جنگو" + +msgid "Topics, references, & how-to’s" +msgstr "سرفصل‌ها، منابع و دستورالعمل‌ها" + +msgid "Tutorial: A Polling App" +msgstr "آموزش گام به گام: برنامکی برای رأی‌گیری" + +msgid "Get started with Django" +msgstr "شروع به کار با جنگو" + +msgid "Django Community" +msgstr "جامعهٔ جنگو" + +msgid "Connect, get help, or contribute" +msgstr "متصل شوید، کمک بگیرید یا مشارکت کنید" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/fa/__init__.py b/venv/lib/python3.12/site-packages/django/conf/locale/fa/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/fa/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/fa/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..55cd1824c944094ea1a46e8effa090b0274be7a7 GIT binary patch literal 198 zcmX@j%ge<81o5sX(m?cM5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!O4ZNE&rQ|OP0Yy6 zFHO;RNiEZNN=(kybEFQ_cZ$j>v@Gc?jK&MZmQEdVM^ zOiwM=Pssu+OwP|s)6dCIPRvQwPfOH~kI&4@EQycTE2#X%VUwGmQks)$SHudml@W-G PL5z>gjEsy$%s>_Z!u~XJ literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/fa/__pycache__/formats.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/fa/__pycache__/formats.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..efcdccb8d16a1c8409553d645d7fb42613eec95c GIT binary patch literal 559 zcmY*WJ5Rz;6uzZ`2oWe!gK=ThM7dEnV@#?oLKJFBjp<#Q$}Ix+L3kxF@dHd8{Ru`_ zC;x$o3p(8}>f}b^#^f!Ek29QnuX9dr?$i8y2+-1{$MTC0fH#j!i}?m0YZP1q3=qH! zVz3YSFpF3`gJ!TF`EdXR@GP3eK@`MuXs#Pt4fp)DR3@eM*n{nAJ3+@Mlw79BJ-Hzd zx9y^IptLN9C18eOFO->NGeC=O(nfCyd#!Pz5tQA&6!>}l*lAe*3yr2%lYA*jn zqMq|t;5124^t@b9v(tgt7ZU|-s&K`utf>0mt^BX_Z(Sy*6uqRT%NhMtk`9NQDDCI+ z!jWE-js-E%=~M0Ama*u5CiwsMu~BL(%NOJ)?B7E;$&US%!1& z!j9>5pjADC^=_-;I$P&9Lux!Ax+pvvRGhOeF zgFCj1+m^Z8h|{Cq4>tE`8?g+-j6xu~*bkG)0&Ve?ev~AZ27n_A$pMIw#IlEzD+9oj V1W)lO0(k0hgik($cq2yFd;&DVr62$R literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/fa/formats.py b/venv/lib/python3.12/site-packages/django/conf/locale/fa/formats.py new file mode 100644 index 0000000000..e7019bc7a6 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/fa/formats.py @@ -0,0 +1,21 @@ +# This file is distributed under the same license as the Django package. +# +# The *_FORMAT strings use the Django date format syntax, +# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date +DATE_FORMAT = "j F Y" +TIME_FORMAT = "G:i" +DATETIME_FORMAT = "j F Y، ساعت G:i" +YEAR_MONTH_FORMAT = "F Y" +MONTH_DAY_FORMAT = "j F" +SHORT_DATE_FORMAT = "Y/n/j" +SHORT_DATETIME_FORMAT = "Y/n/j،‏ G:i" +FIRST_DAY_OF_WEEK = 6 + +# The *_INPUT_FORMATS strings use the Python strftime format syntax, +# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior +# DATE_INPUT_FORMATS = +# TIME_INPUT_FORMATS = +# DATETIME_INPUT_FORMATS = +DECIMAL_SEPARATOR = "." +THOUSAND_SEPARATOR = "," +# NUMBER_GROUPING = diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/fi/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/conf/locale/fi/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..1a15cef9182e3b93a8f76140d4f6f603d5906316 GIT binary patch literal 27865 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/fi/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/conf/locale/fi/LC_MESSAGES/django.po new file mode 100644 index 0000000000..afea4268e4 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/fi/LC_MESSAGES/django.po @@ -0,0 +1,1332 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Aarni Koskela, 2015,2017-2018,2020-2022 +# Antti Kaihola , 2011 +# Jannis Leidel , 2011 +# Jiri Grönroos , 2021,2023 +# Lasse Liehu , 2015 +# Mika Mäkelä , 2018 +# Klaus Dahlén, 2011 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-09-18 11:41-0300\n" +"PO-Revision-Date: 2023-12-04 06:49+0000\n" +"Last-Translator: Jiri Grönroos , 2021,2023\n" +"Language-Team: Finnish (http://app.transifex.com/django/django/language/" +"fi/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: fi\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Afrikaans" +msgstr "afrikaans" + +msgid "Arabic" +msgstr "arabia" + +msgid "Algerian Arabic" +msgstr "Algerian arabia" + +msgid "Asturian" +msgstr "asturian kieli" + +msgid "Azerbaijani" +msgstr "azeri" + +msgid "Bulgarian" +msgstr "bulgaria" + +msgid "Belarusian" +msgstr "valkovenäjän kieli" + +msgid "Bengali" +msgstr "bengali" + +msgid "Breton" +msgstr "bretoni" + +msgid "Bosnian" +msgstr "bosnia" + +msgid "Catalan" +msgstr "katalaani" + +msgid "Central Kurdish (Sorani)" +msgstr "" + +msgid "Czech" +msgstr "tšekki" + +msgid "Welsh" +msgstr "wales" + +msgid "Danish" +msgstr "tanska" + +msgid "German" +msgstr "saksa" + +msgid "Lower Sorbian" +msgstr "Alasorbi" + +msgid "Greek" +msgstr "kreikka" + +msgid "English" +msgstr "englanti" + +msgid "Australian English" +msgstr "australianenglanti" + +msgid "British English" +msgstr "brittienglanti" + +msgid "Esperanto" +msgstr "esperanto" + +msgid "Spanish" +msgstr "espanja" + +msgid "Argentinian Spanish" +msgstr "Argentiinan espanja" + +msgid "Colombian Spanish" +msgstr "Kolumbian espanja" + +msgid "Mexican Spanish" +msgstr "Meksikon espanja" + +msgid "Nicaraguan Spanish" +msgstr "Nicaraguan espanja" + +msgid "Venezuelan Spanish" +msgstr "Venezuelan espanja" + +msgid "Estonian" +msgstr "viro" + +msgid "Basque" +msgstr "baski" + +msgid "Persian" +msgstr "persia" + +msgid "Finnish" +msgstr "suomi" + +msgid "French" +msgstr "ranska" + +msgid "Frisian" +msgstr "friisi" + +msgid "Irish" +msgstr "irlanti" + +msgid "Scottish Gaelic" +msgstr "skottilainen gaeli" + +msgid "Galician" +msgstr "galicia" + +msgid "Hebrew" +msgstr "heprea" + +msgid "Hindi" +msgstr "hindi" + +msgid "Croatian" +msgstr "kroatia" + +msgid "Upper Sorbian" +msgstr "Yläsorbi" + +msgid "Hungarian" +msgstr "unkari" + +msgid "Armenian" +msgstr "armenian kieli" + +msgid "Interlingua" +msgstr "interlingua" + +msgid "Indonesian" +msgstr "indonesia" + +msgid "Igbo" +msgstr "igbo" + +msgid "Ido" +msgstr "ido" + +msgid "Icelandic" +msgstr "islanti" + +msgid "Italian" +msgstr "italia" + +msgid "Japanese" +msgstr "japani" + +msgid "Georgian" +msgstr "georgia" + +msgid "Kabyle" +msgstr "Kabyle" + +msgid "Kazakh" +msgstr "kazakin kieli" + +msgid "Khmer" +msgstr "khmerin kieli" + +msgid "Kannada" +msgstr "kannada" + +msgid "Korean" +msgstr "korea" + +msgid "Kyrgyz" +msgstr "kirgiisi" + +msgid "Luxembourgish" +msgstr "luxemburgin kieli" + +msgid "Lithuanian" +msgstr "liettua" + +msgid "Latvian" +msgstr "latvia" + +msgid "Macedonian" +msgstr "makedonia" + +msgid "Malayalam" +msgstr "malajalam" + +msgid "Mongolian" +msgstr "mongolia" + +msgid "Marathi" +msgstr "marathi" + +msgid "Malay" +msgstr "malaiji" + +msgid "Burmese" +msgstr "burman kieli" + +msgid "Norwegian Bokmål" +msgstr "norja (bokmål)" + +msgid "Nepali" +msgstr "nepalin kieli" + +msgid "Dutch" +msgstr "hollanti" + +msgid "Norwegian Nynorsk" +msgstr "norja (uusnorja)" + +msgid "Ossetic" +msgstr "osseetin kieli" + +msgid "Punjabi" +msgstr "punjabin kieli" + +msgid "Polish" +msgstr "puola" + +msgid "Portuguese" +msgstr "portugali" + +msgid "Brazilian Portuguese" +msgstr "brasilian portugali" + +msgid "Romanian" +msgstr "romania" + +msgid "Russian" +msgstr "venäjä" + +msgid "Slovak" +msgstr "slovakia" + +msgid "Slovenian" +msgstr "slovenia" + +msgid "Albanian" +msgstr "albaani" + +msgid "Serbian" +msgstr "serbia" + +msgid "Serbian Latin" +msgstr "serbian latina" + +msgid "Swedish" +msgstr "ruotsi" + +msgid "Swahili" +msgstr "swahili" + +msgid "Tamil" +msgstr "tamili" + +msgid "Telugu" +msgstr "telugu" + +msgid "Tajik" +msgstr "tadžikki" + +msgid "Thai" +msgstr "thain kieli" + +msgid "Turkmen" +msgstr "turkmeeni" + +msgid "Turkish" +msgstr "turkki" + +msgid "Tatar" +msgstr "tataarin kieli" + +msgid "Udmurt" +msgstr "udmurtti" + +msgid "Uyghur" +msgstr "uiguuri" + +msgid "Ukrainian" +msgstr "ukraina" + +msgid "Urdu" +msgstr "urdu" + +msgid "Uzbek" +msgstr "uzbekki" + +msgid "Vietnamese" +msgstr "vietnam" + +msgid "Simplified Chinese" +msgstr "kiina (yksinkertaistettu)" + +msgid "Traditional Chinese" +msgstr "kiina (perinteinen)" + +msgid "Messages" +msgstr "Viestit" + +msgid "Site Maps" +msgstr "Sivukartat" + +msgid "Static Files" +msgstr "Staattiset tiedostot" + +msgid "Syndication" +msgstr "Syndikointi" + +#. Translators: String used to replace omitted page numbers in elided page +#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10]. +msgid "…" +msgstr "..." + +msgid "That page number is not an integer" +msgstr "Annettu sivunumero ei ole kokonaisluku" + +msgid "That page number is less than 1" +msgstr "Annettu sivunumero on alle 1" + +msgid "That page contains no results" +msgstr "Annetulla sivulla ei ole tuloksia" + +msgid "Enter a valid value." +msgstr "Syötä oikea arvo." + +msgid "Enter a valid URL." +msgstr "Syötä oikea URL-osoite." + +msgid "Enter a valid integer." +msgstr "Syötä kelvollinen kokonaisluku." + +msgid "Enter a valid email address." +msgstr "Syötä kelvollinen sähköpostiosoite." + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" +"Anna lyhytnimi joka koostuu vain kirjaimista, numeroista sekä ala- ja " +"tavuviivoista." + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" +"Anna lyhytnimi joka koostuu vain Unicode-kirjaimista, numeroista sekä ala- " +"ja tavuviivoista." + +msgid "Enter a valid IPv4 address." +msgstr "Syötä kelvollinen IPv4-osoite." + +msgid "Enter a valid IPv6 address." +msgstr "Syötä kelvollinen IPv6-osoite." + +msgid "Enter a valid IPv4 or IPv6 address." +msgstr "Syötä kelvollinen IPv4- tai IPv6-osoite." + +msgid "Enter only digits separated by commas." +msgstr "Vain pilkulla erotetut numeromerkit kelpaavat tässä." + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "Tämän arvon on oltava %(limit_value)s (nyt %(show_value)s)." + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "Tämän arvon on oltava enintään %(limit_value)s." + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "Tämän luvun on oltava vähintään %(limit_value)s." + +#, python-format +msgid "Ensure this value is a multiple of step size %(limit_value)s." +msgstr "Varmista, että arvo on askelkoon %(limit_value)smonikerta. " + +#, python-format +msgid "" +"Ensure this value is a multiple of step size %(limit_value)s, starting from " +"%(offset)s, e.g. %(offset)s, %(valid_value1)s, %(valid_value2)s, and so on." +msgstr "" + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Varmista, että tämä arvo on vähintään %(limit_value)d merkin pituinen (tällä " +"hetkellä %(show_value)d)." +msgstr[1] "" +"Varmista, että tämä arvo on vähintään %(limit_value)d merkkiä pitkä (tällä " +"hetkellä %(show_value)d)." + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Varmista, että tämä arvo on enintään %(limit_value)d merkin pituinen (tällä " +"hetkellä %(show_value)d)." +msgstr[1] "" +"Varmista, että tämä arvo on enintään %(limit_value)d merkkiä pitkä (tällä " +"hetkellä %(show_value)d)." + +msgid "Enter a number." +msgstr "Syötä luku." + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "Tässä luvussa voi olla yhteensä enintään %(max)s numero." +msgstr[1] "Tässä luvussa voi olla yhteensä enintään %(max)s numeroa." + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "Tässä luvussa saa olla enintään %(max)s desimaali." +msgstr[1] "Tässä luvussa saa olla enintään %(max)s desimaalia." + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "" +"Tässä luvussa saa olla enintään %(max)s numero ennen desimaalipilkkua." +msgstr[1] "" +"Tässä luvussa saa olla enintään %(max)s numeroa ennen desimaalipilkkua." + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" +"Pääte \"%(extension)s\" ei ole sallittu. Sallittuja päätteitä ovat " +"\"%(allowed_extensions)s\"." + +msgid "Null characters are not allowed." +msgstr "Tyhjiä merkkejä (null) ei sallita." + +msgid "and" +msgstr "ja" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "%(model_name)s jolla on nämä %(field_labels)s on jo olemassa." + +#, python-format +msgid "Constraint “%(name)s” is violated." +msgstr "Rajoitetta \"%(name)s\" loukataan." + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "Arvo %(value)r ei kelpaa." + +msgid "This field cannot be null." +msgstr "Tämän kentän arvo ei voi olla \"null\"." + +msgid "This field cannot be blank." +msgstr "Tämä kenttä ei voi olla tyhjä." + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "%(model_name)s jolla on tämä %(field_label)s, on jo olemassa." + +#. Translators: The 'lookup_type' is one of 'date', 'year' or +#. 'month'. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" +"\"%(field_label)s\"-kentän on oltava uniikki suhteessa: %(date_field_label)s " +"%(lookup_type)s." + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "Kenttä tyyppiä: %(field_type)s" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "%(value)s-arvo pitää olla joko tosi tai epätosi." + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "%(value)s-arvo pitää olla joko tosi, epätosi tai ei mitään." + +msgid "Boolean (Either True or False)" +msgstr "Totuusarvo: joko tosi (True) tai epätosi (False)" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "Merkkijono (enintään %(max_length)s merkkiä)" + +msgid "String (unlimited)" +msgstr "Merkkijono (rajoittamaton)" + +msgid "Comma-separated integers" +msgstr "Pilkulla erotetut kokonaisluvut" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" +"%(value)s-arvo on väärässä päivämäärämuodossa. Sen tulee olla VVVV-KK-PP -" +"muodossa." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" +"%(value)s-arvo on oikeassa päivämäärämuodossa (VVVV-KK-PP), muttei ole " +"kelvollinen päivämäärä." + +msgid "Date (without time)" +msgstr "Päivämäärä (ilman kellonaikaa)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" +"%(value)s-arvon muoto ei kelpaa. Se tulee olla VVVV-KK-PP TT:MM[:ss[.uuuuuu]]" +"[TZ] -muodossa." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" +"%(value)s-arvon muoto on oikea (VVVV-KK-PP TT:MM[:ss[.uuuuuu]][TZ]), mutta " +"päivämäärä/aika ei ole kelvollinen." + +msgid "Date (with time)" +msgstr "Päivämäärä ja kellonaika" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "%(value)s-arvo tulee olla desimaaliluku." + +msgid "Decimal number" +msgstr "Desimaaliluku" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "%(value)s-arvo pitää olla muodossa [PP] TT:MM[:ss[.uuuuuu]]." + +msgid "Duration" +msgstr "Kesto" + +msgid "Email address" +msgstr "Sähköpostiosoite" + +msgid "File path" +msgstr "Tiedostopolku" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "%(value)s-arvo tulee olla liukuluku." + +msgid "Floating point number" +msgstr "Liukuluku" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "%(value)s-arvo tulee olla kokonaisluku." + +msgid "Integer" +msgstr "Kokonaisluku" + +msgid "Big (8 byte) integer" +msgstr "Suuri (8-tavuinen) kokonaisluku" + +msgid "Small integer" +msgstr "Pieni kokonaisluku" + +msgid "IPv4 address" +msgstr "IPv4-osoite" + +msgid "IP address" +msgstr "IP-osoite" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "%(value)s-arvo tulee olla joko ei mitään, tosi tai epätosi." + +msgid "Boolean (Either True, False or None)" +msgstr "Totuusarvo: joko tosi (True), epätosi (False) tai ei mikään (None)" + +msgid "Positive big integer" +msgstr "Suuri positiivinen kokonaisluku" + +msgid "Positive integer" +msgstr "Positiivinen kokonaisluku" + +msgid "Positive small integer" +msgstr "Pieni positiivinen kokonaisluku" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "Lyhytnimi (enintään %(max_length)s merkkiä)" + +msgid "Text" +msgstr "Tekstiä" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "%(value)s-arvo pitää olla muodossa TT:MM[:ss[.uuuuuu]]." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" +"%(value)s-arvo on oikeassa muodossa (TT:MM[:ss[.uuuuuu]]), mutta kellonaika " +"ei kelpaa." + +msgid "Time" +msgstr "Kellonaika" + +msgid "URL" +msgstr "URL-osoite" + +msgid "Raw binary data" +msgstr "Raaka binaaridata" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "%(value)s ei ole kelvollinen UUID." + +msgid "Universally unique identifier" +msgstr "UUID-tunnus" + +msgid "File" +msgstr "Tiedosto" + +msgid "Image" +msgstr "Kuva" + +msgid "A JSON object" +msgstr "JSON-tietue" + +msgid "Value must be valid JSON." +msgstr "Arvon pitää olla kelvollista JSONia." + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "%(model)s-tietuetta %(field)s-kentällä %(value)r ei ole olemassa." + +msgid "Foreign Key (type determined by related field)" +msgstr "Vierasavain (tyyppi määräytyy liittyvän kentän mukaan)" + +msgid "One-to-one relationship" +msgstr "Yksi-yhteen -relaatio" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "%(from)s-%(to)s -suhde" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "%(from)s-%(to)s -suhteet" + +msgid "Many-to-many relationship" +msgstr "Moni-moneen -relaatio" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr ":?.!" + +msgid "This field is required." +msgstr "Tämä kenttä vaaditaan." + +msgid "Enter a whole number." +msgstr "Syötä kokonaisluku." + +msgid "Enter a valid date." +msgstr "Syötä oikea päivämäärä." + +msgid "Enter a valid time." +msgstr "Syötä oikea kellonaika." + +msgid "Enter a valid date/time." +msgstr "Syötä oikea pvm/kellonaika." + +msgid "Enter a valid duration." +msgstr "Syötä oikea kesto." + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "Päivien määrä täytyy olla välillä {min_days} ja {max_days}." + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "Tiedostoa ei lähetetty. Tarkista lomakkeen koodaus (encoding)." + +msgid "No file was submitted." +msgstr "Yhtään tiedostoa ei ole lähetetty." + +msgid "The submitted file is empty." +msgstr "Lähetetty tiedosto on tyhjä." + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" +"Varmista, että tämä tiedostonimi on enintään %(max)d merkin pituinen (tällä " +"hetkellä %(length)d)." +msgstr[1] "" +"Varmista, että tämä tiedostonimi on enintään %(max)d merkkiä pitkä (tällä " +"hetkellä %(length)d)." + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "Voit joko lähettää tai poistaa tiedoston, muttei kumpaakin samalla." + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" +"Kuva ei kelpaa. Lähettämäsi tiedosto ei ole kuva, tai tiedosto on vioittunut." + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "Valitse oikea vaihtoehto. %(value)s ei ole vaihtoehtojen joukossa." + +msgid "Enter a list of values." +msgstr "Syötä lista." + +msgid "Enter a complete value." +msgstr "Syötä kokonainen arvo." + +msgid "Enter a valid UUID." +msgstr "Syötä oikea UUID." + +msgid "Enter a valid JSON." +msgstr "Syötä oikea JSON-arvo." + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr ":" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "(Piilokenttä %(name)s) %(error)s" + +#, python-format +msgid "" +"ManagementForm data is missing or has been tampered with. Missing fields: " +"%(field_names)s. You may need to file a bug report if the issue persists." +msgstr "" +"ManagementForm-tiedot puuttuvat tai niitä on muutettu. Puuttuvat kentät ovat " +"%(field_names)s. Jos ongelma toistuu, voi olla että joudut raportoimaan " +"tämän bugina." + +#, python-format +msgid "Please submit at most %(num)d form." +msgid_plural "Please submit at most %(num)d forms." +msgstr[0] "Lähetä enintään%(num)d lomake." +msgstr[1] "Lähetä enintään %(num)d lomaketta." + +#, python-format +msgid "Please submit at least %(num)d form." +msgid_plural "Please submit at least %(num)d forms." +msgstr[0] "Lähetä vähintään %(num)d lomake." +msgstr[1] "Lähetä vähintään %(num)d lomaketta. " + +msgid "Order" +msgstr "Järjestys" + +msgid "Delete" +msgstr "Poista" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "Korjaa kaksoisarvo kentälle %(field)s." + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "Ole hyvä ja korjaa uniikin kentän %(field)s kaksoisarvo." + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." + +msgid "Please correct the duplicate values below." +msgstr "Korjaa alla olevat kaksoisarvot." + +msgid "The inline value did not match the parent instance." +msgstr "Liittyvä arvo ei vastannut vanhempaa instanssia." + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "Valitse oikea vaihtoehto. Valintasi ei löydy vaihtoehtojen joukosta." + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "\"%(pk)s\" ei ole kelvollinen arvo." + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" +"%(datetime)s -arvoa ei pystytty lukemaan aikavyöhykkeellä " +"%(current_timezone)s; se saattaa olla moniarvoinen tai määrittämätön." + +msgid "Clear" +msgstr "Poista" + +msgid "Currently" +msgstr "Tällä hetkellä" + +msgid "Change" +msgstr "Muokkaa" + +msgid "Unknown" +msgstr "Tuntematon" + +msgid "Yes" +msgstr "Kyllä" + +msgid "No" +msgstr "Ei" + +#. Translators: Please do not add spaces around commas. +msgid "yes,no,maybe" +msgstr "kyllä,ei,ehkä" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)d tavu" +msgstr[1] "%(size)d tavua" + +#, python-format +msgid "%s KB" +msgstr "%s KB" + +#, python-format +msgid "%s MB" +msgstr "%s MB" + +#, python-format +msgid "%s GB" +msgstr "%s GB" + +#, python-format +msgid "%s TB" +msgstr "%s TB" + +#, python-format +msgid "%s PB" +msgstr "%s PB" + +msgid "p.m." +msgstr "ip" + +msgid "a.m." +msgstr "ap" + +msgid "PM" +msgstr "IP" + +msgid "AM" +msgstr "AP" + +msgid "midnight" +msgstr "keskiyö" + +msgid "noon" +msgstr "keskipäivä" + +msgid "Monday" +msgstr "maanantai" + +msgid "Tuesday" +msgstr "tiistai" + +msgid "Wednesday" +msgstr "keskiviikko" + +msgid "Thursday" +msgstr "torstai" + +msgid "Friday" +msgstr "perjantai" + +msgid "Saturday" +msgstr "lauantai" + +msgid "Sunday" +msgstr "sunnuntai" + +msgid "Mon" +msgstr "ma" + +msgid "Tue" +msgstr "ti" + +msgid "Wed" +msgstr "ke" + +msgid "Thu" +msgstr "to" + +msgid "Fri" +msgstr "pe" + +msgid "Sat" +msgstr "la" + +msgid "Sun" +msgstr "su" + +msgid "January" +msgstr "tammikuu" + +msgid "February" +msgstr "helmikuu" + +msgid "March" +msgstr "maaliskuu" + +msgid "April" +msgstr "huhtikuu" + +msgid "May" +msgstr "toukokuu" + +msgid "June" +msgstr "kesäkuu" + +msgid "July" +msgstr "heinäkuu" + +msgid "August" +msgstr "elokuu" + +msgid "September" +msgstr "syyskuu" + +msgid "October" +msgstr "lokakuu" + +msgid "November" +msgstr "marraskuu" + +msgid "December" +msgstr "joulukuu" + +msgid "jan" +msgstr "tam" + +msgid "feb" +msgstr "hel" + +msgid "mar" +msgstr "maa" + +msgid "apr" +msgstr "huh" + +msgid "may" +msgstr "tou" + +msgid "jun" +msgstr "kes" + +msgid "jul" +msgstr "hei" + +msgid "aug" +msgstr "elo" + +msgid "sep" +msgstr "syy" + +msgid "oct" +msgstr "lok" + +msgid "nov" +msgstr "mar" + +msgid "dec" +msgstr "jou" + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "tammi" + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "helmi" + +msgctxt "abbrev. month" +msgid "March" +msgstr "maalis" + +msgctxt "abbrev. month" +msgid "April" +msgstr "huhti" + +msgctxt "abbrev. month" +msgid "May" +msgstr "touko" + +msgctxt "abbrev. month" +msgid "June" +msgstr "kesä" + +msgctxt "abbrev. month" +msgid "July" +msgstr "heinä" + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "elo" + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "syys" + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "loka" + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "marras" + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "joulu" + +msgctxt "alt. month" +msgid "January" +msgstr "tammikuuta" + +msgctxt "alt. month" +msgid "February" +msgstr "helmikuuta" + +msgctxt "alt. month" +msgid "March" +msgstr "maaliskuuta" + +msgctxt "alt. month" +msgid "April" +msgstr "huhtikuuta" + +msgctxt "alt. month" +msgid "May" +msgstr "toukokuuta" + +msgctxt "alt. month" +msgid "June" +msgstr "kesäkuuta" + +msgctxt "alt. month" +msgid "July" +msgstr "heinäkuuta" + +msgctxt "alt. month" +msgid "August" +msgstr "elokuuta" + +msgctxt "alt. month" +msgid "September" +msgstr "syyskuuta" + +msgctxt "alt. month" +msgid "October" +msgstr "lokakuuta" + +msgctxt "alt. month" +msgid "November" +msgstr "marraskuuta" + +msgctxt "alt. month" +msgid "December" +msgstr "joulukuuta" + +msgid "This is not a valid IPv6 address." +msgstr "Tämä ei ole kelvollinen IPv6-osoite." + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "%(truncated_text)s…" + +msgid "or" +msgstr "tai" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr ", " + +#, python-format +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "%(num)d vuosi" +msgstr[1] "%(num)d vuotta" + +#, python-format +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "%(num)d kuukausi" +msgstr[1] "%(num)d kuukautta " + +#, python-format +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "%(num)d viikko" +msgstr[1] "%(num)d viikkoa" + +#, python-format +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "%(num)d päivä" +msgstr[1] "%(num)d päivää" + +#, python-format +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "%(num)d tunti" +msgstr[1] "%(num)d tuntia" + +#, python-format +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "%(num)d minuutti" +msgstr[1] "%(num)d minuuttia" + +msgid "Forbidden" +msgstr "Kielletty" + +msgid "CSRF verification failed. Request aborted." +msgstr "CSRF-vahvistus epäonnistui. Pyyntö hylätty." + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" +"Näet tämän viestin, koska tämä HTTPS-sivusto vaatii selaintasi lähettämään " +"Referer-otsakkeen, mutta sitä ei vastaanotettu. Otsake vaaditaan " +"turvallisuussyistä, varmistamaan etteivät kolmannet osapuolet ole ottaneet " +"selaintasi haltuun." + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" +"Jos olet konfiguroinut selaimesi olemaan lähettämättä Referer-otsaketta, ole " +"hyvä ja kytke otsake takaisin päälle ainakin tälle sivulle, HTTPS-" +"yhteyksille tai saman lähteen (\"same-origin\") pyynnöille." + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" +"Jos käytät -tagia tai " +"\"Referrer-Policy: no-referrer\" -otsaketta, ole hyvä ja poista ne. CSRF-" +"suojaus vaatii Referer-otsakkeen tehdäkseen tarkan referer-tarkistuksen. Jos " +"vaadit yksityisyyttä, käytä vaihtoehtoja kuten linkittääksesi kolmannen osapuolen sivuille." + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" +"Näet tämän viestin, koska tämä sivusto vaatii CSRF-evästeen " +"vastaanottaessaan lomaketietoja. Eväste vaaditaan turvallisuussyistä, " +"varmistamaan etteivät kolmannet osapuolet ole ottaneet selaintasi haltuun." + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" +"Jos olet konfiguroinut selaimesi olemaan vastaanottamatta tai lähettämättä " +"evästeitä, ole hyvä ja kytke evästeet takaisin päälle ainakin tälle sivulle " +"tai saman lähteen (\"same-origin\") pyynnöille." + +msgid "More information is available with DEBUG=True." +msgstr "Lisätietoja `DEBUG=True`-konfiguraatioasetuksella." + +msgid "No year specified" +msgstr "Vuosi puuttuu" + +msgid "Date out of range" +msgstr "Päivämäärä ei alueella" + +msgid "No month specified" +msgstr "Kuukausi puuttuu" + +msgid "No day specified" +msgstr "Päivä puuttuu" + +msgid "No week specified" +msgstr "Viikko puuttuu" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "%(verbose_name_plural)s: yhtään kohdetta ei löydy" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" +"%(verbose_name_plural)s: tulevia kohteita ei löydy, koska %(class_name)s." +"allow_future:n arvo on False." + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "Päivämäärä '%(datestr)s' ei ole muotoa '%(format)s'" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "Hakua vastaavaa %(verbose_name)s -kohdetta ei löytynyt" + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "Sivunumero ei ole 'last' (viimeinen) eikä näytä luvulta." + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "Epäkelpo sivu (%(page_number)s): %(message)s" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "Lista on tyhjä, ja '%(class_name)s.allow_empty':n arvo on False." + +msgid "Directory indexes are not allowed here." +msgstr "Hakemistolistauksia ei sallita täällä." + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "\"%(path)s\" ei ole olemassa" + +#, python-format +msgid "Index of %(directory)s" +msgstr "Hakemistolistaus: %(directory)s" + +msgid "The install worked successfully! Congratulations!" +msgstr "Asennus toimi! Onneksi olkoon!" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" +"Katso Djangon version %(version)s julkaisutiedot" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not " +"configured any URLs." +msgstr "" +"Näet tämän viestin, koska asetuksissasi on DEBUG = True etkä ole konfiguroinut yhtään URL-" +"osoitetta." + +msgid "Django Documentation" +msgstr "Django-dokumentaatio" + +msgid "Topics, references, & how-to’s" +msgstr "Aiheet, viittaukset & how-tot" + +msgid "Tutorial: A Polling App" +msgstr "Tutoriaali: kyselyapplikaatio" + +msgid "Get started with Django" +msgstr "Miten päästä alkuun Djangolla" + +msgid "Django Community" +msgstr "Django-yhteisö" + +msgid "Connect, get help, or contribute" +msgstr "Verkostoidu, saa apua tai jatkokehitä" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/fi/__init__.py b/venv/lib/python3.12/site-packages/django/conf/locale/fi/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/fi/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/fi/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..313fd7a8a20ce03e00536e0b5a50c31d9b3098bf GIT binary patch literal 198 zcmX@j%ge<81o5sX(m?cM5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!O4ZNE&rQ|OP0Yy6 zFHO;RNiEZNN=(kybEFQ_cZ$j>v@Gc?jK&MZmQEdVM^ zOiwM=Pssu+OwP|s)6dCIPRvQwPs`MgkI&4@EQycTE2#X%VUwGmQks)$SHudml@W-G PL5z>gjEsy$%s>_Z#C9}# literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/fi/__pycache__/formats.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/fi/__pycache__/formats.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..21463a6476988f7af9fa78a65ef701b36f4001a1 GIT binary patch literal 874 zcmZWnJ8#-h6u!p1Uj~Co+Ac_y2cpJTZP%)jQ_MpxHZn#PS4bA&npXfLAV_#he?`}- zTYp5CPL;YaTCAP2p+sGndQE_UaxIa%ZeVWd*l46@liT7Zq*D;_U~4OcF1Y;Y{;5= z_0M_8U*B$NlH^Qu8On;9q~{d1Bx=i$RxIra<5UiXcuf*jy`;!mVP}Xvu&h|yDe+1{ zQ8oQ=D)%TIjms6)iql!sm7M-rl0Gikjjbq`tJ-#6WtrMv<5*`mvyQcRR{BsZiJ$a} zR2EfHQ`9A^6_jd4l(PpKBUeiolB(xbrCKh^`5)k(yarff*f9qN95gxu^BTjfF@qP4 z=GD10#PG7;7`9C~GlnzR?_R>ueA+RGZ-v)y;G{b>&PSxN(KaR!_co19bJ&7?v)Sky zu+@bvb3ABFC&FmH_P-mL__}YrAD@t=&hIm6ldz&GidqE$b8-{1qX`n&vm3@vK3jme zoggu0Cto=D^yLC@c9J8Qw0jua9bI|olxqRlJHPKa$*H@Td&5^@z@0iCjyPGHO?+X- H9NG0BnG^A5 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/fi/formats.py b/venv/lib/python3.12/site-packages/django/conf/locale/fi/formats.py new file mode 100644 index 0000000000..d9fb6d2f48 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/fi/formats.py @@ -0,0 +1,36 @@ +# This file is distributed under the same license as the Django package. +# +# The *_FORMAT strings use the Django date format syntax, +# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date +DATE_FORMAT = "j. E Y" +TIME_FORMAT = "G.i" +DATETIME_FORMAT = r"j. E Y \k\e\l\l\o G.i" +YEAR_MONTH_FORMAT = "F Y" +MONTH_DAY_FORMAT = "j. F" +SHORT_DATE_FORMAT = "j.n.Y" +SHORT_DATETIME_FORMAT = "j.n.Y G.i" +FIRST_DAY_OF_WEEK = 1 # Monday + +# The *_INPUT_FORMATS strings use the Python strftime format syntax, +# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior +DATE_INPUT_FORMATS = [ + "%d.%m.%Y", # '20.3.2014' + "%d.%m.%y", # '20.3.14' +] +DATETIME_INPUT_FORMATS = [ + "%d.%m.%Y %H.%M.%S", # '20.3.2014 14.30.59' + "%d.%m.%Y %H.%M.%S.%f", # '20.3.2014 14.30.59.000200' + "%d.%m.%Y %H.%M", # '20.3.2014 14.30' + "%d.%m.%y %H.%M.%S", # '20.3.14 14.30.59' + "%d.%m.%y %H.%M.%S.%f", # '20.3.14 14.30.59.000200' + "%d.%m.%y %H.%M", # '20.3.14 14.30' +] +TIME_INPUT_FORMATS = [ + "%H.%M.%S", # '14.30.59' + "%H.%M.%S.%f", # '14.30.59.000200' + "%H.%M", # '14.30' +] + +DECIMAL_SEPARATOR = "," +THOUSAND_SEPARATOR = "\xa0" # Non-breaking space +NUMBER_GROUPING = 3 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/fr/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/conf/locale/fr/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..3178ac8effe46287a1187120d135f7e15a79d53b GIT binary patch literal 30289 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/fr/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/conf/locale/fr/LC_MESSAGES/django.po new file mode 100644 index 0000000000..291e051703 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/fr/LC_MESSAGES/django.po @@ -0,0 +1,1394 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Bruno Brouard , 2021 +# Simon Charette , 2012 +# Claude Paroz , 2013-2024 +# Claude Paroz , 2011 +# Jannis Leidel , 2011 +# Jean-Baptiste Mora, 2014 +# Larlet David , 2011 +# Marie-Cécile Gohier , 2014 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-05-22 11:46-0300\n" +"PO-Revision-Date: 2024-08-07 06:49+0000\n" +"Last-Translator: Claude Paroz , 2013-2024\n" +"Language-Team: French (http://app.transifex.com/django/django/language/fr/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: fr\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +msgid "Afrikaans" +msgstr "Afrikaans" + +msgid "Arabic" +msgstr "Arabe" + +msgid "Algerian Arabic" +msgstr "Arabe algérien" + +msgid "Asturian" +msgstr "Asturien" + +msgid "Azerbaijani" +msgstr "Azéri" + +msgid "Bulgarian" +msgstr "Bulgare" + +msgid "Belarusian" +msgstr "Biélorusse" + +msgid "Bengali" +msgstr "Bengali" + +msgid "Breton" +msgstr "Breton" + +msgid "Bosnian" +msgstr "Bosniaque" + +msgid "Catalan" +msgstr "Catalan" + +msgid "Central Kurdish (Sorani)" +msgstr "Kurde central (sorani)" + +msgid "Czech" +msgstr "Tchèque" + +msgid "Welsh" +msgstr "Gallois" + +msgid "Danish" +msgstr "Danois" + +msgid "German" +msgstr "Allemand" + +msgid "Lower Sorbian" +msgstr "Bas-sorabe" + +msgid "Greek" +msgstr "Grec" + +msgid "English" +msgstr "Anglais" + +msgid "Australian English" +msgstr "Anglais australien" + +msgid "British English" +msgstr "Anglais britannique" + +msgid "Esperanto" +msgstr "Espéranto" + +msgid "Spanish" +msgstr "Espagnol" + +msgid "Argentinian Spanish" +msgstr "Espagnol argentin" + +msgid "Colombian Spanish" +msgstr "Espagnol colombien" + +msgid "Mexican Spanish" +msgstr "Espagnol mexicain" + +msgid "Nicaraguan Spanish" +msgstr "Espagnol nicaraguayen" + +msgid "Venezuelan Spanish" +msgstr "Espagnol vénézuélien" + +msgid "Estonian" +msgstr "Estonien" + +msgid "Basque" +msgstr "Basque" + +msgid "Persian" +msgstr "Perse" + +msgid "Finnish" +msgstr "Finlandais" + +msgid "French" +msgstr "Français" + +msgid "Frisian" +msgstr "Frison" + +msgid "Irish" +msgstr "Irlandais" + +msgid "Scottish Gaelic" +msgstr "Gaélique écossais" + +msgid "Galician" +msgstr "Galicien" + +msgid "Hebrew" +msgstr "Hébreu" + +msgid "Hindi" +msgstr "Hindi" + +msgid "Croatian" +msgstr "Croate" + +msgid "Upper Sorbian" +msgstr "Haut-sorabe" + +msgid "Hungarian" +msgstr "Hongrois" + +msgid "Armenian" +msgstr "Arménien" + +msgid "Interlingua" +msgstr "Interlingua" + +msgid "Indonesian" +msgstr "Indonésien" + +msgid "Igbo" +msgstr "Igbo" + +msgid "Ido" +msgstr "Ido" + +msgid "Icelandic" +msgstr "Islandais" + +msgid "Italian" +msgstr "Italien" + +msgid "Japanese" +msgstr "Japonais" + +msgid "Georgian" +msgstr "Géorgien" + +msgid "Kabyle" +msgstr "Kabyle" + +msgid "Kazakh" +msgstr "Kazakh" + +msgid "Khmer" +msgstr "Khmer" + +msgid "Kannada" +msgstr "Kannada" + +msgid "Korean" +msgstr "Coréen" + +msgid "Kyrgyz" +msgstr "Kirghiz" + +msgid "Luxembourgish" +msgstr "Luxembourgeois" + +msgid "Lithuanian" +msgstr "Lituanien" + +msgid "Latvian" +msgstr "Letton" + +msgid "Macedonian" +msgstr "Macédonien" + +msgid "Malayalam" +msgstr "Malayalam" + +msgid "Mongolian" +msgstr "Mongole" + +msgid "Marathi" +msgstr "Marathi" + +msgid "Malay" +msgstr "Malais" + +msgid "Burmese" +msgstr "Birman" + +msgid "Norwegian Bokmål" +msgstr "Norvégien bokmål" + +msgid "Nepali" +msgstr "Népalais" + +msgid "Dutch" +msgstr "Hollandais" + +msgid "Norwegian Nynorsk" +msgstr "Norvégien nynorsk" + +msgid "Ossetic" +msgstr "Ossète" + +msgid "Punjabi" +msgstr "Penjabi" + +msgid "Polish" +msgstr "Polonais" + +msgid "Portuguese" +msgstr "Portugais" + +msgid "Brazilian Portuguese" +msgstr "Portugais brésilien" + +msgid "Romanian" +msgstr "Roumain" + +msgid "Russian" +msgstr "Russe" + +msgid "Slovak" +msgstr "Slovaque" + +msgid "Slovenian" +msgstr "Slovène" + +msgid "Albanian" +msgstr "Albanais" + +msgid "Serbian" +msgstr "Serbe" + +msgid "Serbian Latin" +msgstr "Serbe latin" + +msgid "Swedish" +msgstr "Suédois" + +msgid "Swahili" +msgstr "Swahili" + +msgid "Tamil" +msgstr "Tamoul" + +msgid "Telugu" +msgstr "Télougou" + +msgid "Tajik" +msgstr "Tadjik" + +msgid "Thai" +msgstr "Thaï" + +msgid "Turkmen" +msgstr "Turkmène" + +msgid "Turkish" +msgstr "Turc" + +msgid "Tatar" +msgstr "Tatar" + +msgid "Udmurt" +msgstr "Oudmourte" + +msgid "Uyghur" +msgstr "Ouïghour" + +msgid "Ukrainian" +msgstr "Ukrainien" + +msgid "Urdu" +msgstr "Ourdou" + +msgid "Uzbek" +msgstr "Ouzbek" + +msgid "Vietnamese" +msgstr "Vietnamien" + +msgid "Simplified Chinese" +msgstr "Chinois simplifié" + +msgid "Traditional Chinese" +msgstr "Chinois traditionnel" + +msgid "Messages" +msgstr "Messages" + +msgid "Site Maps" +msgstr "Plans des sites" + +msgid "Static Files" +msgstr "Fichiers statiques" + +msgid "Syndication" +msgstr "Syndication" + +#. Translators: String used to replace omitted page numbers in elided page +#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10]. +msgid "…" +msgstr "…" + +msgid "That page number is not an integer" +msgstr "Ce numéro de page n’est pas un nombre entier" + +msgid "That page number is less than 1" +msgstr "Ce numéro de page est plus petit que 1" + +msgid "That page contains no results" +msgstr "Cette page ne contient aucun résultat" + +msgid "Enter a valid value." +msgstr "Saisissez une valeur valide." + +msgid "Enter a valid domain name." +msgstr "Saisissez un nom de domaine valide." + +msgid "Enter a valid URL." +msgstr "Saisissez une URL valide." + +msgid "Enter a valid integer." +msgstr "Saisissez un nombre entier valide." + +msgid "Enter a valid email address." +msgstr "Saisissez une adresse de courriel valide." + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" +"Ce champ ne doit contenir que des lettres, des nombres, des tirets bas (_) " +"et des traits d’union." + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" +"Ce champ ne doit contenir que des caractères Unicode, des nombres, des " +"tirets bas (_) et des traits d’union." + +#, python-format +msgid "Enter a valid %(protocol)s address." +msgstr "Saisissez une adresse %(protocol)s valide." + +msgid "IPv4" +msgstr "IPv4" + +msgid "IPv6" +msgstr "IPv6" + +msgid "IPv4 or IPv6" +msgstr "IPv4 ou IPv6" + +msgid "Enter only digits separated by commas." +msgstr "Saisissez uniquement des chiffres séparés par des virgules." + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "" +"Assurez-vous que cette valeur est %(limit_value)s (actuellement " +"%(show_value)s)." + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "" +"Assurez-vous que cette valeur est inférieure ou égale à %(limit_value)s." + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "" +"Assurez-vous que cette valeur est supérieure ou égale à %(limit_value)s." + +#, python-format +msgid "Ensure this value is a multiple of step size %(limit_value)s." +msgstr "" +"Assurez-vous que cette valeur est un multiple de la taille de pas " +"%(limit_value)s." + +#, python-format +msgid "" +"Ensure this value is a multiple of step size %(limit_value)s, starting from " +"%(offset)s, e.g. %(offset)s, %(valid_value1)s, %(valid_value2)s, and so on." +msgstr "" +"Assurez-vous que cette valeur est un multiple de la taille de pas " +"%(limit_value)s, débutant à %(offset)s, par ex. %(offset)s, " +"%(valid_value1)s, %(valid_value2)s, etc." + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Assurez-vous que cette valeur comporte au moins %(limit_value)d caractère " +"(actuellement %(show_value)d)." +msgstr[1] "" +"Assurez-vous que cette valeur comporte au moins %(limit_value)d caractères " +"(actuellement %(show_value)d)." +msgstr[2] "" +"Assurez-vous que cette valeur comporte au moins %(limit_value)d caractères " +"(actuellement %(show_value)d)." + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Assurez-vous que cette valeur comporte au plus %(limit_value)d caractère " +"(actuellement %(show_value)d)." +msgstr[1] "" +"Assurez-vous que cette valeur comporte au plus %(limit_value)d caractères " +"(actuellement %(show_value)d)." +msgstr[2] "" +"Assurez-vous que cette valeur comporte au plus %(limit_value)d caractères " +"(actuellement %(show_value)d)." + +msgid "Enter a number." +msgstr "Saisissez un nombre." + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "Assurez-vous qu'il n'y a pas plus de %(max)s chiffre au total." +msgstr[1] "Assurez-vous qu’il n’y a pas plus de %(max)s chiffres au total." +msgstr[2] "Assurez-vous qu’il n’y a pas plus de %(max)s chiffres au total." + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "" +"Assurez-vous qu'il n'y a pas plus de %(max)s chiffre après la virgule." +msgstr[1] "" +"Assurez-vous qu’il n’y a pas plus de %(max)s chiffres après la virgule." +msgstr[2] "" +"Assurez-vous qu’il n’y a pas plus de %(max)s chiffres après la virgule." + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "" +"Assurez-vous qu'il n'y a pas plus de %(max)s chiffre avant la virgule." +msgstr[1] "" +"Assurez-vous qu’il n’y a pas plus de %(max)s chiffres avant la virgule." +msgstr[2] "" +"Assurez-vous qu’il n’y a pas plus de %(max)s chiffres avant la virgule." + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" +"L'extension de fichier « %(extension)s » n’est pas autorisée. Les extensions " +"autorisées sont : %(allowed_extensions)s." + +msgid "Null characters are not allowed." +msgstr "Le caractère nul n’est pas autorisé." + +msgid "and" +msgstr "et" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "Un objet %(model_name)s avec ces champs %(field_labels)s existe déjà." + +#, python-format +msgid "Constraint “%(name)s” is violated." +msgstr "La contrainte « %(name)s » n’est pas respectée." + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "La valeur « %(value)r » n’est pas un choix valide." + +msgid "This field cannot be null." +msgstr "Ce champ ne peut pas contenir la valeur nulle." + +msgid "This field cannot be blank." +msgstr "Ce champ ne peut pas être vide." + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "Un objet %(model_name)s avec ce champ %(field_label)s existe déjà." + +#. Translators: The 'lookup_type' is one of 'date', 'year' or +#. 'month'. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" +"%(field_label)s doit être unique pour la partie %(lookup_type)s de " +"%(date_field_label)s." + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "Champ de type : %(field_type)s" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "La valeur « %(value)s » doit être soit True (vrai), soit False (faux)." + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "" +"La valeur « %(value)s » doit être True (vrai), False (faux) ou None (vide)." + +msgid "Boolean (Either True or False)" +msgstr "Booléen (soit True (vrai) ou False (faux))" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "Chaîne de caractères (jusqu'à %(max_length)s)" + +msgid "String (unlimited)" +msgstr "Chaîne de caractères (illimitée)" + +msgid "Comma-separated integers" +msgstr "Des entiers séparés par une virgule" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" +"Le format de date de la valeur « %(value)s » n’est pas valide. Le format " +"correct est AAAA-MM-JJ." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" +"Le format de date de la valeur « %(value)s » est correct (AAAA-MM-JJ), mais " +"la date n’est pas valide." + +msgid "Date (without time)" +msgstr "Date (sans l’heure)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" +"Le format de la valeur « %(value)s » n’est pas valide. Le format correct est " +"AAAA-MM-JJ HH:MM[:ss[.uuuuuu]][FH]." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" +"Le format de date de la valeur « %(value)s » est correct (AAAA-MM-JJ HH:MM[:" +"ss[.uuuuuu]][FH]), mais la date ou l’heure n’est pas valide." + +msgid "Date (with time)" +msgstr "Date (avec l’heure)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "La valeur « %(value)s » doit être un nombre décimal." + +msgid "Decimal number" +msgstr "Nombre décimal" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" +"Le format de la valeur « %(value)s » n’est pas valide. Le format correct est " +"[JJ] [[HH:]MM:]ss[.uuuuuu]." + +msgid "Duration" +msgstr "Durée" + +msgid "Email address" +msgstr "Adresse électronique" + +msgid "File path" +msgstr "Chemin vers le fichier" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "La valeur « %(value)s » doit être un nombre à virgule flottante." + +msgid "Floating point number" +msgstr "Nombre à virgule flottante" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "La valeur « %(value)s » doit être un nombre entier." + +msgid "Integer" +msgstr "Entier" + +msgid "Big (8 byte) integer" +msgstr "Grand entier (8 octets)" + +msgid "Small integer" +msgstr "Petit nombre entier" + +msgid "IPv4 address" +msgstr "Adresse IPv4" + +msgid "IP address" +msgstr "Adresse IP" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "" +"La valeur « %(value)s » doit être None (vide), True (vrai) ou False (faux)." + +msgid "Boolean (Either True, False or None)" +msgstr "Booléen (soit None (vide), True (vrai) ou False (faux))" + +msgid "Positive big integer" +msgstr "Grand nombre entier positif" + +msgid "Positive integer" +msgstr "Nombre entier positif" + +msgid "Positive small integer" +msgstr "Petit nombre entier positif" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "Slug (jusqu'à %(max_length)s car.)" + +msgid "Text" +msgstr "Texte" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" +"Le format de la valeur « %(value)s » n’est pas valide. Le format correct est " +"HH:MM[:ss[.uuuuuu]]." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" +"Le format de la valeur « %(value)s » est correct (HH:MM[:ss[.uuuuuu]]), mais " +"l’heure n’est pas valide." + +msgid "Time" +msgstr "Heure" + +msgid "URL" +msgstr "URL" + +msgid "Raw binary data" +msgstr "Données binaires brutes" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "La valeur « %(value)s » n’est pas un UUID valide." + +msgid "Universally unique identifier" +msgstr "Identifiant unique universel" + +msgid "File" +msgstr "Fichier" + +msgid "Image" +msgstr "Image" + +msgid "A JSON object" +msgstr "Un objet JSON" + +msgid "Value must be valid JSON." +msgstr "La valeur doit respecter la syntaxe JSON." + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "L’instance %(model)s avec %(value)r dans %(field)s n’existe pas." + +msgid "Foreign Key (type determined by related field)" +msgstr "Clé étrangère (type défini par le champ lié)" + +msgid "One-to-one relationship" +msgstr "Relation un à un" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "Relation %(from)s-%(to)s" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "Relations %(from)s-%(to)s" + +msgid "Many-to-many relationship" +msgstr "Relation plusieurs à plusieurs" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr ":?.!" + +msgid "This field is required." +msgstr "Ce champ est obligatoire." + +msgid "Enter a whole number." +msgstr "Saisissez un nombre entier." + +msgid "Enter a valid date." +msgstr "Saisissez une date valide." + +msgid "Enter a valid time." +msgstr "Saisissez une heure valide." + +msgid "Enter a valid date/time." +msgstr "Saisissez une date et une heure valides." + +msgid "Enter a valid duration." +msgstr "Saisissez une durée valide." + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "Le nombre de jours doit être entre {min_days} et {max_days}." + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "" +"Aucun fichier n’a été soumis. Vérifiez le type d’encodage du formulaire." + +msgid "No file was submitted." +msgstr "Aucun fichier n’a été soumis." + +msgid "The submitted file is empty." +msgstr "Le fichier soumis est vide." + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" +"Assurez-vous que ce nom de fichier comporte au plus %(max)d caractère " +"(actuellement %(length)d)." +msgstr[1] "" +"Assurez-vous que ce nom de fichier comporte au plus %(max)d caractères " +"(actuellement %(length)d)." +msgstr[2] "" +"Assurez-vous que ce nom de fichier comporte au plus %(max)d caractères " +"(actuellement %(length)d)." + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "Envoyez un fichier ou cochez la case d’effacement, mais pas les deux." + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" +"Téléversez une image valide. Le fichier que vous avez transféré n’est pas " +"une image ou bien est corrompu." + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "Sélectionnez un choix valide. %(value)s n’en fait pas partie." + +msgid "Enter a list of values." +msgstr "Saisissez une liste de valeurs." + +msgid "Enter a complete value." +msgstr "Saisissez une valeur complète." + +msgid "Enter a valid UUID." +msgstr "Saisissez un UUID valide." + +msgid "Enter a valid JSON." +msgstr "Saisissez du contenu JSON valide." + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr " :" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "(champ masqué %(name)s) %(error)s" + +#, python-format +msgid "" +"ManagementForm data is missing or has been tampered with. Missing fields: " +"%(field_names)s. You may need to file a bug report if the issue persists." +msgstr "" +"Des données du formulaire ManagementForm sont manquantes ou ont été " +"manipulées. Champs manquants : %(field_names)s. Vous pourriez créer un " +"rapport de bogue si le problème persiste." + +#, python-format +msgid "Please submit at most %(num)d form." +msgid_plural "Please submit at most %(num)d forms." +msgstr[0] "Veuillez soumettre au plus %(num)d formulaire." +msgstr[1] "Veuillez soumettre au plus %(num)d formulaires." +msgstr[2] "Veuillez soumettre au plus %(num)d formulaires." + +#, python-format +msgid "Please submit at least %(num)d form." +msgid_plural "Please submit at least %(num)d forms." +msgstr[0] "Veuillez soumettre au moins %(num)d formulaire." +msgstr[1] "Veuillez soumettre au moins %(num)d formulaires." +msgstr[2] "Veuillez soumettre au moins %(num)d formulaires." + +msgid "Order" +msgstr "Ordre" + +msgid "Delete" +msgstr "Supprimer" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "Corrigez les données en double dans %(field)s." + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "" +"Corrigez les données en double dans %(field)s qui doit contenir des valeurs " +"uniques." + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"Corrigez les données en double dans %(field_name)s qui doit contenir des " +"valeurs uniques pour la partie %(lookup)s de %(date_field)s." + +msgid "Please correct the duplicate values below." +msgstr "Corrigez les valeurs en double ci-dessous." + +msgid "The inline value did not match the parent instance." +msgstr "La valeur en ligne ne correspond pas à l’instance parente." + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "" +"Sélectionnez un choix valide. Ce choix ne fait pas partie de ceux " +"disponibles." + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "« %(pk)s » n’est pas une valeur correcte." + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" +"La valeur %(datetime)s n’a pas pu être interprétée dans le fuseau horaire " +"%(current_timezone)s ; elle est peut-être ambigüe ou elle n’existe pas." + +msgid "Clear" +msgstr "Effacer" + +msgid "Currently" +msgstr "Actuellement" + +msgid "Change" +msgstr "Modifier" + +msgid "Unknown" +msgstr "Inconnu" + +msgid "Yes" +msgstr "Oui" + +msgid "No" +msgstr "Non" + +#. Translators: Please do not add spaces around commas. +msgid "yes,no,maybe" +msgstr "oui,non,peut-être" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)d octet" +msgstr[1] "%(size)d octets" +msgstr[2] "%(size)d octets" + +#, python-format +msgid "%s KB" +msgstr "%s Kio" + +#, python-format +msgid "%s MB" +msgstr "%s Mio" + +#, python-format +msgid "%s GB" +msgstr "%s Gio" + +#, python-format +msgid "%s TB" +msgstr "%s Tio" + +#, python-format +msgid "%s PB" +msgstr "%s Pio" + +msgid "p.m." +msgstr "après-midi" + +msgid "a.m." +msgstr "matin" + +msgid "PM" +msgstr "Après-midi" + +msgid "AM" +msgstr "Matin" + +msgid "midnight" +msgstr "minuit" + +msgid "noon" +msgstr "midi" + +msgid "Monday" +msgstr "lundi" + +msgid "Tuesday" +msgstr "mardi" + +msgid "Wednesday" +msgstr "mercredi" + +msgid "Thursday" +msgstr "jeudi" + +msgid "Friday" +msgstr "vendredi" + +msgid "Saturday" +msgstr "samedi" + +msgid "Sunday" +msgstr "dimanche" + +msgid "Mon" +msgstr "lun" + +msgid "Tue" +msgstr "mar" + +msgid "Wed" +msgstr "mer" + +msgid "Thu" +msgstr "jeu" + +msgid "Fri" +msgstr "ven" + +msgid "Sat" +msgstr "sam" + +msgid "Sun" +msgstr "dim" + +msgid "January" +msgstr "janvier" + +msgid "February" +msgstr "février" + +msgid "March" +msgstr "mars" + +msgid "April" +msgstr "avril" + +msgid "May" +msgstr "mai" + +msgid "June" +msgstr "juin" + +msgid "July" +msgstr "juillet" + +msgid "August" +msgstr "août" + +msgid "September" +msgstr "septembre" + +msgid "October" +msgstr "octobre" + +msgid "November" +msgstr "novembre" + +msgid "December" +msgstr "décembre" + +msgid "jan" +msgstr "jan" + +msgid "feb" +msgstr "fév" + +msgid "mar" +msgstr "mar" + +msgid "apr" +msgstr "avr" + +msgid "may" +msgstr "mai" + +msgid "jun" +msgstr "jui" + +msgid "jul" +msgstr "jul" + +msgid "aug" +msgstr "aoû" + +msgid "sep" +msgstr "sep" + +msgid "oct" +msgstr "oct" + +msgid "nov" +msgstr "nov" + +msgid "dec" +msgstr "déc" + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "jan." + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "fév." + +msgctxt "abbrev. month" +msgid "March" +msgstr "mars" + +msgctxt "abbrev. month" +msgid "April" +msgstr "avr." + +msgctxt "abbrev. month" +msgid "May" +msgstr "mai" + +msgctxt "abbrev. month" +msgid "June" +msgstr "juin" + +msgctxt "abbrev. month" +msgid "July" +msgstr "juil." + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "août" + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "sept." + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "oct." + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "nov." + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "déc." + +msgctxt "alt. month" +msgid "January" +msgstr "Janvier" + +msgctxt "alt. month" +msgid "February" +msgstr "Février" + +msgctxt "alt. month" +msgid "March" +msgstr "Mars" + +msgctxt "alt. month" +msgid "April" +msgstr "Avril" + +msgctxt "alt. month" +msgid "May" +msgstr "Mai" + +msgctxt "alt. month" +msgid "June" +msgstr "Juin" + +msgctxt "alt. month" +msgid "July" +msgstr "Juillet" + +msgctxt "alt. month" +msgid "August" +msgstr "Août" + +msgctxt "alt. month" +msgid "September" +msgstr "Septembre" + +msgctxt "alt. month" +msgid "October" +msgstr "Octobre" + +msgctxt "alt. month" +msgid "November" +msgstr "Novembre" + +msgctxt "alt. month" +msgid "December" +msgstr "Décembre" + +msgid "This is not a valid IPv6 address." +msgstr "Ceci n’est pas une adresse IPv6 valide." + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "%(truncated_text)s…" + +msgid "or" +msgstr "ou" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr ", " + +#, python-format +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "%(num)d année" +msgstr[1] "%(num)d ans" +msgstr[2] "%(num)d ans" + +#, python-format +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "%(num)d mois" +msgstr[1] "%(num)d mois" +msgstr[2] "%(num)d mois" + +#, python-format +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "%(num)d semaine" +msgstr[1] "%(num)d semaines" +msgstr[2] "%(num)d semaines" + +#, python-format +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "%(num)d jour" +msgstr[1] "%(num)d jours" +msgstr[2] "%(num)d jours" + +#, python-format +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "%(num)d heure" +msgstr[1] "%(num)d heures" +msgstr[2] "%(num)d heures" + +#, python-format +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "%(num)d minute" +msgstr[1] "%(num)d minutes" +msgstr[2] "%(num)d minutes" + +msgid "Forbidden" +msgstr "Interdit" + +msgid "CSRF verification failed. Request aborted." +msgstr "La vérification CSRF a échoué. La requête a été interrompue." + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" +"Vous voyez ce message parce que ce site HTTPS exige que le navigateur web " +"envoie un en-tête « Referer », ce qu’il n'a pas fait. Cet en-tête est exigé " +"pour des raisons de sécurité, afin de s’assurer que le navigateur n’ait pas " +"été piraté par un intervenant externe." + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" +"Si vous avez désactivé l’envoi des en-têtes « Referer » par votre " +"navigateur, veuillez les réactiver, au moins pour ce site ou pour les " +"connexions HTTPS, ou encore pour les requêtes de même origine (« same-" +"origin »)." + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" +"Si vous utilisez la balise " +"ou que vous incluez l’en-tête « Referrer-Policy: no-referrer », il est " +"préférable de les enlever. La protection CSRF exige que l’en-tête " +"``Referer`` effectue un contrôle de référant strict. Si vous vous souciez de " +"la confidentialité, utilisez des alternatives comme " +"pour les liens vers des sites tiers." + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" +"Vous voyez ce message parce que ce site exige la présence d’un cookie CSRF " +"lors de l’envoi de formulaires. Ce cookie est nécessaire pour des raisons de " +"sécurité, afin de s’assurer que le navigateur n’ait pas été piraté par un " +"intervenant externe." + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" +"Si vous avez désactivé l’envoi des cookies par votre navigateur, veuillez " +"les réactiver au moins pour ce site ou pour les requêtes de même origine " +"(« same-origin »)." + +msgid "More information is available with DEBUG=True." +msgstr "" +"Des informations plus détaillées sont affichées lorsque la variable DEBUG " +"vaut True." + +msgid "No year specified" +msgstr "Aucune année indiquée" + +msgid "Date out of range" +msgstr "Date hors limites" + +msgid "No month specified" +msgstr "Aucun mois indiqué" + +msgid "No day specified" +msgstr "Aucun jour indiqué" + +msgid "No week specified" +msgstr "Aucune semaine indiquée" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "Pas de %(verbose_name_plural)s disponible" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" +"Pas de %(verbose_name_plural)s disponible dans le futur car %(class_name)s." +"allow_future est faux (False)." + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "" +"Le format « %(format)s » appliqué à la chaîne date « %(datestr)s » n’est pas " +"valide" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "Aucun objet %(verbose_name)s trouvé en réponse à la requête" + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "" +"La page n’est pas la « dernière », elle ne peut pas non plus être convertie " +"en nombre entier." + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "Page non valide (%(page_number)s) : %(message)s" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "Liste vide et « %(class_name)s.allow_empty » est faux (False)." + +msgid "Directory indexes are not allowed here." +msgstr "Il n’est pas autorisé d’afficher le contenu de ce répertoire." + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "« %(path)s » n’existe pas" + +#, python-format +msgid "Index of %(directory)s" +msgstr "Index de %(directory)s" + +msgid "The install worked successfully! Congratulations!" +msgstr "L’installation s’est déroulée avec succès. Félicitations !" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" +"Afficher les notes de publication de " +"Django %(version)s" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not " +"configured any URLs." +msgstr "" +"Vous voyez cette page parce que votre fichier de réglages contient DEBUG=True et que vous n’avez pas " +"encore configuré d’URL." + +msgid "Django Documentation" +msgstr "Documentation de Django" + +msgid "Topics, references, & how-to’s" +msgstr "Thématiques, références et guides pratiques" + +msgid "Tutorial: A Polling App" +msgstr "Tutoriel : une application de sondage" + +msgid "Get started with Django" +msgstr "Premiers pas avec Django" + +msgid "Django Community" +msgstr "Communauté Django" + +msgid "Connect, get help, or contribute" +msgstr "Se connecter, obtenir de l’aide ou contribuer" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/fr/__init__.py b/venv/lib/python3.12/site-packages/django/conf/locale/fr/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/fr/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/fr/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c0130c9af70b73a361c20f79ed7228edabe565b5 GIT binary patch literal 198 zcmX@j%ge<81o5sX(m?cM5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!O4ZNE&rQ|OP0Yy6 zFHO;RNiEZNN=(kybEFQ_cZ$j>v@Gc?jK&MZmQEdVM^ zOiwM=Pssu+OwP|s)6dCIPRvQwPb<=okI&4@EQycTE2#X%VUwGmQks)$SHudml@W-G PL5z>gjEsy$%s>_Z#vL?+ literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/fr/__pycache__/formats.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/fr/__pycache__/formats.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3515e95ec949fe91f9ec0e4710164cc6466c081c GIT binary patch literal 735 zcmZXR&yUhT6vwBO?($=y+wvo;#)QQ5K(fn3y%A&VN?C}uC2fi6T$(OZeyo%dU`gm{ z{VTj0Z~A9=GV#K(;p%B`#ElnDPH{nq@9^gPKJ$Le%lt^C5`dT`eQ$rI0r(jP8;jhF zyH`Yf1Q;NIDMaB2ieMViIEtc}K@2`X2lx;j;uwy1A}H1YIPsZ6ahya6e1wuXg^p(F zBI`3(g=)d{=~}tx$Je?LN_q`R>@yg;(DdW$BfPt%$YehzU?{jyFt=(}q6R=ElwxX;tcZqWRaH$EjYZO^%iDkrZ*~D^N}^`T zs$$eO1;>A*ifC>Kr`J@?uy(uV{-M2g)w-sKnWm*yt#^|2X2Gw^>Pn+&-1pNL`Rz0I zIaiTh*JbgorArM_6Ae{c@J3B->Y`HFVXV@W&n3;e(9~w5u3UTpcVu(0!m#VP4s`9V z>s@15ai;LxZoNN~1{hxU?Lo(bQ)e)R{oW-U&L&-N@VxZ&865W}&e@P8+8t*M@zpx9 zfCQI^d30|oxhM*si- literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/fr/formats.py b/venv/lib/python3.12/site-packages/django/conf/locale/fr/formats.py new file mode 100644 index 0000000000..338d8ad3ee --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/fr/formats.py @@ -0,0 +1,27 @@ +# This file is distributed under the same license as the Django package. +# +# The *_FORMAT strings use the Django date format syntax, +# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date +DATE_FORMAT = "j F Y" +TIME_FORMAT = "H:i" +DATETIME_FORMAT = "j F Y H:i" +YEAR_MONTH_FORMAT = "F Y" +MONTH_DAY_FORMAT = "j F" +SHORT_DATE_FORMAT = "d/m/Y" +SHORT_DATETIME_FORMAT = "d/m/Y H:i" +FIRST_DAY_OF_WEEK = 1 # Monday + +# The *_INPUT_FORMATS strings use the Python strftime format syntax, +# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior +DATE_INPUT_FORMATS = [ + "%d/%m/%Y", # '25/10/2006' + "%d/%m/%y", # '25/10/06' +] +DATETIME_INPUT_FORMATS = [ + "%d/%m/%Y %H:%M:%S", # '25/10/2006 14:30:59' + "%d/%m/%Y %H:%M:%S.%f", # '25/10/2006 14:30:59.000200' + "%d/%m/%Y %H:%M", # '25/10/2006 14:30' +] +DECIMAL_SEPARATOR = "," +THOUSAND_SEPARATOR = "\xa0" # non-breaking space +NUMBER_GROUPING = 3 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/fr_BE/__init__.py b/venv/lib/python3.12/site-packages/django/conf/locale/fr_BE/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/fr_BE/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/fr_BE/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6943c131cfd3516ab79312237969eb2c1560376e GIT binary patch literal 201 zcmX@j%ge<81o5sX(m?cM5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!%Fxfq&rQ|OP0Yy6 zFHO;RNiEZNN=(kybEFQ_cZ$j>v@Gc?jK&MZmQEdVM^ zOiwM=Pssu+OwP|s)6dCIPRvQwPb-Rda@CKI&&S S5r~UHjE~HWjEqIhKo$US6g6xB literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/fr_BE/__pycache__/formats.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/fr_BE/__pycache__/formats.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d7e642271d077f9a8aa8766de01ef1d11cfe1b1d GIT binary patch literal 809 zcmZXS&5zPR7{;f3e=blyvT967Ob;Zxov1frj77>ql$Nw5o6e_uMeLq64_iFAa$QW?LTs1EQ ztklk#XR1Y}USwn|^B-cFj&*WOo#1BNQScwM4Ia`pb@to&P~X4Yc}Wop@ny8kDZEw@ zr8=i9qe`v5ZxYVQAxNn_Cuwz2P^!B?a?_PLbw^TiRg@I%aBB81IvQ80NwVWqHL;>y z^8C9c?Z#?Cqp57?$;;gSF^+kv%)hPGx%ZmPH#mt?L}^JYRk0~^LivCtgl4_OOWK7b zHXAkJ;v0A%Zw}U7*fR|s8m*pT-e6ePXRy?2e>mrd7+wup!>$Qu`fvsZ{VO<{PkZL@ zCHwpZob;#q`G^=>U3~)awQFpf!wwvn?bbktov~KpVaFUBt?7gv&DWtjC}%o9hSK3jmSoyih?AM)os e3qaq;f{#hft&$*1oGCj?oU~1+KPJW*GW!osyWhEFQ_cZ$j>v@Gc?jK&MZmQEdVM^ zOiwM=Pssu+OwP|s)6dCIPRvQwPb-RdcGQoL&&S S5r~UHjE~HWjEqIhKo$URh&5>d literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/fr_CA/__pycache__/formats.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/fr_CA/__pycache__/formats.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..139001797a32051a97aec5f9538e76bbbdc050d0 GIT binary patch literal 817 zcmZXRy>Hq;7{<>S1A&0SF(_>o7FR+EoZ4ecbi@caY4E7-(_9H(I;De?I1)2Z{e^BTEhfok7q7V+F!$~B? z+RRNdm#mKbBrQLiwr11zC_?m_o+UTPrisU<3ACAN+Dzk7n0VG|Yq=u;*a4xM7RSDKs4YTTq4-#^?#?cVRV7i?i;Aq}w++#UDl1mEBv#HVs;2Lz#-Gq$T&|#& zU1wESa{6aU`ncfMZ3Veh(KdPIMdI-{_IWHTT^5SsC%r6{L{-!jb-`(QrBW8<><(k) zO7TKc^($4WlnV0IPjK(P$f^ljmT5q<)-tUThFN0_FKYEKX{n3hb*I*CT5xQ1$FS4B zhP}zKWp&?XUcZ5Z_RvW8h_Ti*1`yw@jdiQrfE}w|>lm=n*Dpobu=-|gILP!StH3+c z!lRDyzMmlHQsf)xWLnY`MJEFQ_cZ$j>v@Gc?jK&MZmQEdVM^ zOiwM=Pssu+OwP|s)6dCIPRvQwPb-Rd_Rx=y&&S S5r~UHjE~HWjEqIhKo$US(KT=Y literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/fr_CH/__pycache__/formats.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/fr_CH/__pycache__/formats.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a3058e997e5876279ec33b08c5fd8410bf47b800 GIT binary patch literal 809 zcmZXS&5zPR7{;f3e?$4osxcukJ&?Gas5fGa-KA`amXcDk>0FvFQ$AKo39uyewE9nY zHQxL;Jehdm*l_ip!)sk|rFRWUZ~HN8vZ@_k7x(OrA~zR(c8I|&W3r68S2I^Z#)KQTR^Jfth?`EU0_egAUjC8bu3FQR2m;kAk+ zi=48EDphgcB;AukK&w0_Yob(Bgk2!D>B^kCBXmQMWJNoin){26##O3v!*!~fRM9SZ z{@o(Ij#X>*rm~&aSmgJQam?v5e_j>2_gaImb26t$@*=GWQnSI;$_Ff2Yl>&QtX;@b zvtF%Td;<^U&B3YzyOwD{Q}3GA4Tfc73eWV`hf{ul;Z3svXN7}gn+t$d`Cu4RvTZLYm7QX2lZ$^1? zultXTFUhv_QWUj}fMotQ>LfB`OFz9$I@w2aKs%X}IY>F#C$2tuHU~K;ni1XgpMR|YdZm?;E?9>0|gQi1&0#_oW|Z+d+ga6XLdG@ zBP1$1I=GesItmIzM@NwO7ibPaO+!b^_w8=tB$ogytv{Zbw{O1h&71ez#fe)1o~Q6W zkN0Q1SMch)@Pp@fa1Q(fd)=K3WAF)Z2YeR%tQ>y@K8f-7An)-D z_%e7Kd>Wj%CkW=j%iz7>4R9I!2z(p-24r1-f|tMx6NQeKzz;E=2L-g<0%tM)8%}ut zSMCdfN5Dn!IdBVPof>34pO*7qf~@;HkoElpa-6?{*TBEP7r-m`2f+sT7Ko|fb8r>> zqU3Fm?Itf2Tmd;g3GRTOfSgj!9Y2tp@5leyA3vOjg;w-9}Of~lTXIhCDmZVMbZWDOD)?TIV|FDcdcs6Dl(s|M$T~z z#v;20pU3&@&q=>Pd?Lh?~~Ma0-&CIdgJ22C!BydbD842x=U z9<@HP1RE!JGUYfw+XHPybQGORLM&Sq2rOKKHMLl6Uwz4G$*7PGEjoTX^@wDzBbT8nRy(jaH;eQ+s&15ZfwVU#nOe#Wyv*YuBH5u+y=#?%BIc` zM7V+iOdDhd`7m9Wou}gO!jz#G7ieaBzH+)NBvRpq_&a(+3-K$7^FkTCgY#6TXa{UR zlmbPL`YadB!H)^|gK`*iJCJ!l2nDx;(<^y5IBAS-km2&2HR+W?$(>v|Ypzf=wzN9c z60(o06Iv@{RJ%)jelER6Xq$a#`{={MIW&y4Xcz;Y<$jTA#hKgSgce<+@5|2&m5J;Nce-=nU=&2h zC`@D;0{g0umMjUjPMV@~oa1Rp?eFJ?dGGj7Ppf_$_)#j58ZBkJi%f7JJ*6Y+bFSeo zU!dW^xBHx^qh)R~P$<$qrq=}82kgrT4}OSSBb_%?JE#)2Jj{7Cn)KAOWN}IOn7U#( bM7vh#P^{e0@lRu(Nc*@joNak*ts49T_}r7e literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/fy/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/conf/locale/fy/LC_MESSAGES/django.po new file mode 100644 index 0000000000..172f28356c --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/fy/LC_MESSAGES/django.po @@ -0,0 +1,1218 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Jannis Leidel , 2011 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-09-27 22:40+0200\n" +"PO-Revision-Date: 2019-11-05 00:38+0000\n" +"Last-Translator: Ramiro Morales\n" +"Language-Team: Western Frisian (http://www.transifex.com/django/django/" +"language/fy/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: fy\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Afrikaans" +msgstr "" + +msgid "Arabic" +msgstr "" + +msgid "Asturian" +msgstr "" + +msgid "Azerbaijani" +msgstr "" + +msgid "Bulgarian" +msgstr "" + +msgid "Belarusian" +msgstr "" + +msgid "Bengali" +msgstr "" + +msgid "Breton" +msgstr "" + +msgid "Bosnian" +msgstr "" + +msgid "Catalan" +msgstr "" + +msgid "Czech" +msgstr "" + +msgid "Welsh" +msgstr "" + +msgid "Danish" +msgstr "" + +msgid "German" +msgstr "" + +msgid "Lower Sorbian" +msgstr "" + +msgid "Greek" +msgstr "" + +msgid "English" +msgstr "" + +msgid "Australian English" +msgstr "" + +msgid "British English" +msgstr "" + +msgid "Esperanto" +msgstr "" + +msgid "Spanish" +msgstr "" + +msgid "Argentinian Spanish" +msgstr "" + +msgid "Colombian Spanish" +msgstr "" + +msgid "Mexican Spanish" +msgstr "" + +msgid "Nicaraguan Spanish" +msgstr "" + +msgid "Venezuelan Spanish" +msgstr "" + +msgid "Estonian" +msgstr "" + +msgid "Basque" +msgstr "" + +msgid "Persian" +msgstr "" + +msgid "Finnish" +msgstr "" + +msgid "French" +msgstr "" + +msgid "Frisian" +msgstr "" + +msgid "Irish" +msgstr "" + +msgid "Scottish Gaelic" +msgstr "" + +msgid "Galician" +msgstr "" + +msgid "Hebrew" +msgstr "" + +msgid "Hindi" +msgstr "" + +msgid "Croatian" +msgstr "" + +msgid "Upper Sorbian" +msgstr "" + +msgid "Hungarian" +msgstr "" + +msgid "Armenian" +msgstr "" + +msgid "Interlingua" +msgstr "" + +msgid "Indonesian" +msgstr "" + +msgid "Ido" +msgstr "" + +msgid "Icelandic" +msgstr "" + +msgid "Italian" +msgstr "" + +msgid "Japanese" +msgstr "" + +msgid "Georgian" +msgstr "" + +msgid "Kabyle" +msgstr "" + +msgid "Kazakh" +msgstr "" + +msgid "Khmer" +msgstr "" + +msgid "Kannada" +msgstr "" + +msgid "Korean" +msgstr "" + +msgid "Luxembourgish" +msgstr "" + +msgid "Lithuanian" +msgstr "" + +msgid "Latvian" +msgstr "" + +msgid "Macedonian" +msgstr "" + +msgid "Malayalam" +msgstr "" + +msgid "Mongolian" +msgstr "" + +msgid "Marathi" +msgstr "" + +msgid "Burmese" +msgstr "" + +msgid "Norwegian Bokmål" +msgstr "" + +msgid "Nepali" +msgstr "" + +msgid "Dutch" +msgstr "" + +msgid "Norwegian Nynorsk" +msgstr "" + +msgid "Ossetic" +msgstr "" + +msgid "Punjabi" +msgstr "" + +msgid "Polish" +msgstr "" + +msgid "Portuguese" +msgstr "" + +msgid "Brazilian Portuguese" +msgstr "" + +msgid "Romanian" +msgstr "" + +msgid "Russian" +msgstr "" + +msgid "Slovak" +msgstr "" + +msgid "Slovenian" +msgstr "" + +msgid "Albanian" +msgstr "" + +msgid "Serbian" +msgstr "" + +msgid "Serbian Latin" +msgstr "" + +msgid "Swedish" +msgstr "" + +msgid "Swahili" +msgstr "" + +msgid "Tamil" +msgstr "" + +msgid "Telugu" +msgstr "" + +msgid "Thai" +msgstr "" + +msgid "Turkish" +msgstr "" + +msgid "Tatar" +msgstr "" + +msgid "Udmurt" +msgstr "" + +msgid "Ukrainian" +msgstr "" + +msgid "Urdu" +msgstr "" + +msgid "Uzbek" +msgstr "" + +msgid "Vietnamese" +msgstr "" + +msgid "Simplified Chinese" +msgstr "" + +msgid "Traditional Chinese" +msgstr "" + +msgid "Messages" +msgstr "" + +msgid "Site Maps" +msgstr "" + +msgid "Static Files" +msgstr "" + +msgid "Syndication" +msgstr "" + +msgid "That page number is not an integer" +msgstr "" + +msgid "That page number is less than 1" +msgstr "" + +msgid "That page contains no results" +msgstr "" + +msgid "Enter a valid value." +msgstr "Jou in falide wearde." + +msgid "Enter a valid URL." +msgstr "Jou in falide URL." + +msgid "Enter a valid integer." +msgstr "" + +msgid "Enter a valid email address." +msgstr "" + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" + +msgid "Enter a valid IPv4 address." +msgstr "Jou in falide IPv4-adres." + +msgid "Enter a valid IPv6 address." +msgstr "" + +msgid "Enter a valid IPv4 or IPv6 address." +msgstr "" + +msgid "Enter only digits separated by commas." +msgstr "Jou allinnich sifers, skieden troch komma's." + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "" + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "" + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "" + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +msgstr[1] "" + +msgid "Enter a number." +msgstr "Jou in nûmer." + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" + +msgid "Null characters are not allowed." +msgstr "" + +msgid "and" +msgstr "" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "" + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "" + +msgid "This field cannot be null." +msgstr "Dit fjild kin net leech wêze." + +msgid "This field cannot be blank." +msgstr "" + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "%(model_name)s mei dit %(field_label)s bestiet al." + +#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'. +#. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "" + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "" + +msgid "Boolean (Either True or False)" +msgstr "" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "" + +msgid "Comma-separated integers" +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" + +msgid "Date (without time)" +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" + +msgid "Date (with time)" +msgstr "" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "" + +msgid "Decimal number" +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" + +msgid "Duration" +msgstr "" + +msgid "Email address" +msgstr "" + +msgid "File path" +msgstr "" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "" + +msgid "Floating point number" +msgstr "" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "" + +msgid "Integer" +msgstr "" + +msgid "Big (8 byte) integer" +msgstr "" + +msgid "IPv4 address" +msgstr "" + +msgid "IP address" +msgstr "" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "" + +msgid "Boolean (Either True, False or None)" +msgstr "" + +msgid "Positive integer" +msgstr "" + +msgid "Positive small integer" +msgstr "" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "" + +msgid "Small integer" +msgstr "" + +msgid "Text" +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" + +msgid "Time" +msgstr "" + +msgid "URL" +msgstr "" + +msgid "Raw binary data" +msgstr "" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "" + +msgid "Universally unique identifier" +msgstr "" + +msgid "File" +msgstr "" + +msgid "Image" +msgstr "" + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "" + +msgid "Foreign Key (type determined by related field)" +msgstr "" + +msgid "One-to-one relationship" +msgstr "" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "" + +msgid "Many-to-many relationship" +msgstr "" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr "" + +msgid "This field is required." +msgstr "Dit fjild is fereaske." + +msgid "Enter a whole number." +msgstr "Jou in folslein nûmer." + +msgid "Enter a valid date." +msgstr "Jou in falide datum." + +msgid "Enter a valid time." +msgstr "Jou in falide tiid." + +msgid "Enter a valid date/time." +msgstr "Jou in falide datum.tiid." + +msgid "Enter a valid duration." +msgstr "" + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "" + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "" +"Der is gjin bestân yntsjinne. Kontrolearje it kodearringstype op it " +"formulier." + +msgid "No file was submitted." +msgstr "Der is gjin bestân yntsjinne." + +msgid "The submitted file is empty." +msgstr "It yntsjinne bestân is leech." + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" +msgstr[1] "" + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "" + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" +"Laad in falide ôfbylding op. It bestân dy't jo opladen hawwe wie net in " +"ôfbylding of in skansearre ôfbylding." + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "" +"Selektearje in falide kar. %(value)s is net ien fan de beskikbere karren." + +msgid "Enter a list of values." +msgstr "Jou in list mei weardes." + +msgid "Enter a complete value." +msgstr "" + +msgid "Enter a valid UUID." +msgstr "" + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr "" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "" + +msgid "ManagementForm data is missing or has been tampered with" +msgstr "" + +#, python-format +msgid "Please submit %d or fewer forms." +msgid_plural "Please submit %d or fewer forms." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "Please submit %d or more forms." +msgid_plural "Please submit %d or more forms." +msgstr[0] "" +msgstr[1] "" + +msgid "Order" +msgstr "Oarder" + +msgid "Delete" +msgstr "" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "" + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "" + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" + +msgid "Please correct the duplicate values below." +msgstr "" + +msgid "The inline value did not match the parent instance." +msgstr "" + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "" +"Selektearje in falide kar. Dizze kar is net ien fan de beskikbere karren." + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "" + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" + +msgid "Clear" +msgstr "" + +msgid "Currently" +msgstr "" + +msgid "Change" +msgstr "" + +msgid "Unknown" +msgstr "" + +msgid "Yes" +msgstr "" + +msgid "No" +msgstr "" + +msgid "Year" +msgstr "" + +msgid "Month" +msgstr "" + +msgid "Day" +msgstr "" + +msgid "yes,no,maybe" +msgstr "" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%s KB" +msgstr "" + +#, python-format +msgid "%s MB" +msgstr "" + +#, python-format +msgid "%s GB" +msgstr "" + +#, python-format +msgid "%s TB" +msgstr "" + +#, python-format +msgid "%s PB" +msgstr "" + +msgid "p.m." +msgstr "" + +msgid "a.m." +msgstr "" + +msgid "PM" +msgstr "" + +msgid "AM" +msgstr "" + +msgid "midnight" +msgstr "" + +msgid "noon" +msgstr "" + +msgid "Monday" +msgstr "" + +msgid "Tuesday" +msgstr "" + +msgid "Wednesday" +msgstr "" + +msgid "Thursday" +msgstr "" + +msgid "Friday" +msgstr "" + +msgid "Saturday" +msgstr "" + +msgid "Sunday" +msgstr "" + +msgid "Mon" +msgstr "" + +msgid "Tue" +msgstr "" + +msgid "Wed" +msgstr "" + +msgid "Thu" +msgstr "" + +msgid "Fri" +msgstr "" + +msgid "Sat" +msgstr "" + +msgid "Sun" +msgstr "" + +msgid "January" +msgstr "" + +msgid "February" +msgstr "" + +msgid "March" +msgstr "" + +msgid "April" +msgstr "" + +msgid "May" +msgstr "" + +msgid "June" +msgstr "" + +msgid "July" +msgstr "" + +msgid "August" +msgstr "" + +msgid "September" +msgstr "" + +msgid "October" +msgstr "" + +msgid "November" +msgstr "" + +msgid "December" +msgstr "" + +msgid "jan" +msgstr "" + +msgid "feb" +msgstr "" + +msgid "mar" +msgstr "" + +msgid "apr" +msgstr "" + +msgid "may" +msgstr "" + +msgid "jun" +msgstr "" + +msgid "jul" +msgstr "" + +msgid "aug" +msgstr "" + +msgid "sep" +msgstr "" + +msgid "oct" +msgstr "" + +msgid "nov" +msgstr "" + +msgid "dec" +msgstr "" + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "" + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "" + +msgctxt "abbrev. month" +msgid "March" +msgstr "" + +msgctxt "abbrev. month" +msgid "April" +msgstr "" + +msgctxt "abbrev. month" +msgid "May" +msgstr "" + +msgctxt "abbrev. month" +msgid "June" +msgstr "" + +msgctxt "abbrev. month" +msgid "July" +msgstr "" + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "" + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "" + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "" + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "" + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "" + +msgctxt "alt. month" +msgid "January" +msgstr "" + +msgctxt "alt. month" +msgid "February" +msgstr "" + +msgctxt "alt. month" +msgid "March" +msgstr "" + +msgctxt "alt. month" +msgid "April" +msgstr "" + +msgctxt "alt. month" +msgid "May" +msgstr "" + +msgctxt "alt. month" +msgid "June" +msgstr "" + +msgctxt "alt. month" +msgid "July" +msgstr "" + +msgctxt "alt. month" +msgid "August" +msgstr "" + +msgctxt "alt. month" +msgid "September" +msgstr "" + +msgctxt "alt. month" +msgid "October" +msgstr "" + +msgctxt "alt. month" +msgid "November" +msgstr "" + +msgctxt "alt. month" +msgid "December" +msgstr "" + +msgid "This is not a valid IPv6 address." +msgstr "" + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "" + +msgid "or" +msgstr "" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr "" + +#, python-format +msgid "%d year" +msgid_plural "%d years" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d month" +msgid_plural "%d months" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d week" +msgid_plural "%d weeks" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d day" +msgid_plural "%d days" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "" +msgstr[1] "" + +msgid "0 minutes" +msgstr "" + +msgid "Forbidden" +msgstr "" + +msgid "CSRF verification failed. Request aborted." +msgstr "" + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your Web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" + +msgid "More information is available with DEBUG=True." +msgstr "" + +msgid "No year specified" +msgstr "" + +msgid "Date out of range" +msgstr "" + +msgid "No month specified" +msgstr "" + +msgid "No day specified" +msgstr "" + +msgid "No week specified" +msgstr "" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "" + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "" + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "" + +msgid "Directory indexes are not allowed here." +msgstr "" + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "" + +#, python-format +msgid "Index of %(directory)s" +msgstr "" + +msgid "Django: the Web framework for perfectionists with deadlines." +msgstr "" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" + +msgid "The install worked successfully! Congratulations!" +msgstr "" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not configured any " +"URLs." +msgstr "" + +msgid "Django Documentation" +msgstr "" + +msgid "Topics, references, & how-to’s" +msgstr "" + +msgid "Tutorial: A Polling App" +msgstr "" + +msgid "Get started with Django" +msgstr "" + +msgid "Django Community" +msgstr "" + +msgid "Connect, get help, or contribute" +msgstr "" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/fy/__init__.py b/venv/lib/python3.12/site-packages/django/conf/locale/fy/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/fy/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/fy/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..15e3906030e23f7180b62cb55ed7f8e64f1610ad GIT binary patch literal 198 zcmX@j%ge<81o5sX(m?cM5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!O4ZNE&rQ|OP0Yy6 zFHO;RNiEZNN=(kybEFQ_cZ$j>v@Gc?jK&MZmQEdVM^ zOiwM=Pssu+OwP|s)6dCIPRvQwPpj0AkI&4@EQycTE2#X%VUwGmQks)$SHudml@W-G PL5z>gjEsy$%s>_Z$7VE& literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/fy/__pycache__/formats.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/fy/__pycache__/formats.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..12a2eef3757185c9c9348ced37c50c8beee2a2a7 GIT binary patch literal 197 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

q{f?Td6G)U5w;j+B=IYFP#m!XYguiCZ8%a? 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 Q2jR5dF}i51R)kdZKb^%m;s5{u literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/ga/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/conf/locale/ga/LC_MESSAGES/django.po new file mode 100644 index 0000000000..2b1b5289e1 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/ga/LC_MESSAGES/django.po @@ -0,0 +1,1293 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Claude Paroz , 2020 +# Jannis Leidel , 2011 +# John Moylan , 2013 +# John Stafford , 2013 +# Seán de Búrca , 2011 +# Luke Blaney , 2019 +# Michael Thornhill , 2011-2012,2015 +# Séamus Ó Cúile , 2011 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-05-19 20:23+0200\n" +"PO-Revision-Date: 2020-07-14 21:42+0000\n" +"Last-Translator: Transifex Bot <>\n" +"Language-Team: Irish (http://www.transifex.com/django/django/language/ga/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ga\n" +"Plural-Forms: nplurals=5; plural=(n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : " +"4);\n" + +msgid "Afrikaans" +msgstr "Afracáinis" + +msgid "Arabic" +msgstr "Araibis" + +msgid "Algerian Arabic" +msgstr "" + +msgid "Asturian" +msgstr "Astúiris" + +msgid "Azerbaijani" +msgstr "Asarbaiseáinis" + +msgid "Bulgarian" +msgstr "Bulgáiris" + +msgid "Belarusian" +msgstr "Bealarúisis" + +msgid "Bengali" +msgstr "Beangáilis" + +msgid "Breton" +msgstr "Briotánach" + +msgid "Bosnian" +msgstr "Boisnis" + +msgid "Catalan" +msgstr "Catalóinis" + +msgid "Czech" +msgstr "Seicis" + +msgid "Welsh" +msgstr "Breatnais" + +msgid "Danish" +msgstr "Danmhairgis " + +msgid "German" +msgstr "Gearmáinis" + +msgid "Lower Sorbian" +msgstr "" + +msgid "Greek" +msgstr "Gréigis" + +msgid "English" +msgstr "Béarla" + +msgid "Australian English" +msgstr "Béarla Astrálach" + +msgid "British English" +msgstr "Béarla na Breataine" + +msgid "Esperanto" +msgstr "Esperanto" + +msgid "Spanish" +msgstr "Spáinnis" + +msgid "Argentinian Spanish" +msgstr "Spáinnis na hAirgintíne" + +msgid "Colombian Spanish" +msgstr "" + +msgid "Mexican Spanish" +msgstr "Spáinnis Mheicsiceo " + +msgid "Nicaraguan Spanish" +msgstr "Spáinnis Nicearagua" + +msgid "Venezuelan Spanish" +msgstr "Spáinnis Veiniséalach" + +msgid "Estonian" +msgstr "Eastóinis" + +msgid "Basque" +msgstr "Bascais" + +msgid "Persian" +msgstr "Peirsis" + +msgid "Finnish" +msgstr "Fionlainnis" + +msgid "French" +msgstr "Fraincis" + +msgid "Frisian" +msgstr "Freaslainnis" + +msgid "Irish" +msgstr "Gaeilge" + +msgid "Scottish Gaelic" +msgstr "Gaeilge na hAlban" + +msgid "Galician" +msgstr "Gailísis" + +msgid "Hebrew" +msgstr "Eabhrais" + +msgid "Hindi" +msgstr "Hiondúis" + +msgid "Croatian" +msgstr "Cróitis" + +msgid "Upper Sorbian" +msgstr "" + +msgid "Hungarian" +msgstr "Ungáiris" + +msgid "Armenian" +msgstr "" + +msgid "Interlingua" +msgstr "Interlingua" + +msgid "Indonesian" +msgstr "Indinéisis" + +msgid "Igbo" +msgstr "" + +msgid "Ido" +msgstr "Ido" + +msgid "Icelandic" +msgstr "Íoslainnis" + +msgid "Italian" +msgstr "Iodáilis" + +msgid "Japanese" +msgstr "Seapáinis" + +msgid "Georgian" +msgstr "Seoirsis" + +msgid "Kabyle" +msgstr "" + +msgid "Kazakh" +msgstr "Casaicis" + +msgid "Khmer" +msgstr "Ciméiris" + +msgid "Kannada" +msgstr "Cannadais" + +msgid "Korean" +msgstr "Cóiréis" + +msgid "Kyrgyz" +msgstr "" + +msgid "Luxembourgish" +msgstr "Lucsamburgach" + +msgid "Lithuanian" +msgstr "Liotuáinis" + +msgid "Latvian" +msgstr "Laitvis" + +msgid "Macedonian" +msgstr "Macadóinis" + +msgid "Malayalam" +msgstr "Mailéalaimis" + +msgid "Mongolian" +msgstr "Mongóilis" + +msgid "Marathi" +msgstr "Maraitis" + +msgid "Burmese" +msgstr "Burmais" + +msgid "Norwegian Bokmål" +msgstr "" + +msgid "Nepali" +msgstr "Neipeailis" + +msgid "Dutch" +msgstr "Ollainnis" + +msgid "Norwegian Nynorsk" +msgstr "Ioruais Nynorsk" + +msgid "Ossetic" +msgstr "Oiséitis" + +msgid "Punjabi" +msgstr "Puinseáibis" + +msgid "Polish" +msgstr "Polainnis" + +msgid "Portuguese" +msgstr "Portaingéilis" + +msgid "Brazilian Portuguese" +msgstr "Portaingéilis na Brasaíle" + +msgid "Romanian" +msgstr "Rómáinis" + +msgid "Russian" +msgstr "Rúisis" + +msgid "Slovak" +msgstr "Slóvaicis" + +msgid "Slovenian" +msgstr "Slóivéinis" + +msgid "Albanian" +msgstr "Albáinis" + +msgid "Serbian" +msgstr "Seirbis" + +msgid "Serbian Latin" +msgstr "Seirbis (Laidineach)" + +msgid "Swedish" +msgstr "Sualainnis" + +msgid "Swahili" +msgstr "" + +msgid "Tamil" +msgstr "Tamailis" + +msgid "Telugu" +msgstr "Teileagúis" + +msgid "Tajik" +msgstr "" + +msgid "Thai" +msgstr "Téalainnis" + +msgid "Turkmen" +msgstr "" + +msgid "Turkish" +msgstr "Tuircis" + +msgid "Tatar" +msgstr "" + +msgid "Udmurt" +msgstr "" + +msgid "Ukrainian" +msgstr "Úcráinis" + +msgid "Urdu" +msgstr "Urdais" + +msgid "Uzbek" +msgstr "" + +msgid "Vietnamese" +msgstr "Vítneamais" + +msgid "Simplified Chinese" +msgstr "Sínis Simplithe" + +msgid "Traditional Chinese" +msgstr "Sínis Traidisiúnta" + +msgid "Messages" +msgstr "Teachtaireachtaí" + +msgid "Site Maps" +msgstr "" + +msgid "Static Files" +msgstr "Comhaid Statach" + +msgid "Syndication" +msgstr "Sindeacáitiú" + +msgid "That page number is not an integer" +msgstr "" + +msgid "That page number is less than 1" +msgstr "" + +msgid "That page contains no results" +msgstr "" + +msgid "Enter a valid value." +msgstr "Iontráil luach bailí" + +msgid "Enter a valid URL." +msgstr "Iontráil URL bailí." + +msgid "Enter a valid integer." +msgstr "" + +msgid "Enter a valid email address." +msgstr "" + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" + +msgid "Enter a valid IPv4 address." +msgstr "Iontráil seoladh IPv4 bailí." + +msgid "Enter a valid IPv6 address." +msgstr "Cuir seoladh bailí IPv6 isteach." + +msgid "Enter a valid IPv4 or IPv6 address." +msgstr "Cuir seoladh bailí IPv4 nó IPv6 isteach." + +msgid "Enter only digits separated by commas." +msgstr "Ná hiontráil ach digití atá deighilte le camóga." + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "" +"Cinntigh go bhfuil an luach seo %(limit_value)s (tá sé %(show_value)s)." + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "" +"Cinntigh go bhfuil an luach seo níos lú ná nó cothrom le %(limit_value)s." + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "" +"Cinntigh go bhfuil an luach seo níos mó ná nó cothrom le %(limit_value)s." + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" + +msgid "Enter a number." +msgstr "Iontráil uimhir." + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" + +msgid "Null characters are not allowed." +msgstr "" + +msgid "and" +msgstr "agus" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "" + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "" + +msgid "This field cannot be null." +msgstr "Ní cheadaítear luach nialasach sa réimse seo." + +msgid "This field cannot be blank." +msgstr "Ní cheadaítear luach nialasach sa réimse seo." + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "Tá %(model_name)s leis an %(field_label)s seo ann cheana." + +#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'. +#. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "Réimse de Cineál: %(field_type)s" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "" + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "" + +msgid "Boolean (Either True or False)" +msgstr "Boole" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "Teaghrán (suas go %(max_length)s)" + +msgid "Comma-separated integers" +msgstr "Slánuimhireacha camóg-scartha" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" + +msgid "Date (without time)" +msgstr "Dáta (gan am)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" + +msgid "Date (with time)" +msgstr "Dáta (le am)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "" + +msgid "Decimal number" +msgstr "Uimhir deachúlach" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" + +msgid "Duration" +msgstr "Fad" + +msgid "Email address" +msgstr "R-phost" + +msgid "File path" +msgstr "Conair comhaid" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "" + +msgid "Floating point number" +msgstr "Snámhphointe" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "" + +msgid "Integer" +msgstr "Slánuimhir" + +msgid "Big (8 byte) integer" +msgstr "Mór (8 byte) slánuimhi" + +msgid "IPv4 address" +msgstr "Seoladh IPv4" + +msgid "IP address" +msgstr "Seoladh IP" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "" + +msgid "Boolean (Either True, False or None)" +msgstr "Boole (Fíor, Bréagach nó Dada)" + +msgid "Positive big integer" +msgstr "" + +msgid "Positive integer" +msgstr "Slánuimhir dearfach" + +msgid "Positive small integer" +msgstr "Slánuimhir beag dearfach" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "Slug (suas go %(max_length)s)" + +msgid "Small integer" +msgstr "Slánuimhir beag" + +msgid "Text" +msgstr "Téacs" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" + +msgid "Time" +msgstr "Am" + +msgid "URL" +msgstr "URL" + +msgid "Raw binary data" +msgstr "" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "" + +msgid "Universally unique identifier" +msgstr "" + +msgid "File" +msgstr "Comhaid" + +msgid "Image" +msgstr "Íomhá" + +msgid "A JSON object" +msgstr "" + +msgid "Value must be valid JSON." +msgstr "" + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "" + +msgid "Foreign Key (type determined by related field)" +msgstr "Eochair Eachtracha (cineál a chinnfear de réir réimse a bhaineann)" + +msgid "One-to-one relationship" +msgstr "Duine-le-duine caidreamh" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "" + +msgid "Many-to-many relationship" +msgstr "Go leor le go leor caidreamh" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr ":?.!" + +msgid "This field is required." +msgstr "Tá an réimse seo riachtanach." + +msgid "Enter a whole number." +msgstr "Iontráil slánuimhir." + +msgid "Enter a valid date." +msgstr "Iontráil dáta bailí." + +msgid "Enter a valid time." +msgstr "Iontráil am bailí." + +msgid "Enter a valid date/time." +msgstr "Iontráil dáta/am bailí." + +msgid "Enter a valid duration." +msgstr "" + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "" + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "Níor seoladh comhad. Deimhnigh cineál an ionchódaithe ar an bhfoirm." + +msgid "No file was submitted." +msgstr "Níor seoladh aon chomhad." + +msgid "The submitted file is empty." +msgstr "Tá an comhad a seoladh folamh." + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "" +"Cuir ceachtar isteach comhad nó an ticbhosca soiléir, ní féidir an dá " +"sheiceáil." + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" +"Uasluchtaigh íomhá bhailí. Níorbh íomhá é an comhad a d'uasluchtaigh tú, nó " +"b'íomhá thruaillithe é." + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "Déan rogha bhailí. Ní ceann de na roghanna é %(value)s." + +msgid "Enter a list of values." +msgstr "Cuir liosta de luachanna isteach." + +msgid "Enter a complete value." +msgstr "" + +msgid "Enter a valid UUID." +msgstr "" + +msgid "Enter a valid JSON." +msgstr "" + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr ":" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "" + +msgid "ManagementForm data is missing or has been tampered with" +msgstr "" + +#, python-format +msgid "Please submit %d or fewer forms." +msgid_plural "Please submit %d or fewer forms." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" + +#, python-format +msgid "Please submit %d or more forms." +msgid_plural "Please submit %d or more forms." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" + +msgid "Order" +msgstr "Ord" + +msgid "Delete" +msgstr "Scrios" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "Le do thoil ceartaigh an sonra dúbail le %(field)s." + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "" +"Ceart le do thoil na sonraí a dhúbailt le haghaidh %(field)s, chaithfidh a " +"bheith uathúil." + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"Ceart le do thoil na sonraí a dhúbailt le haghaidh %(field_name)s ní mór a " +"bheith uaithúil le haghaidh an %(lookup)s i %(date_field)s." + +msgid "Please correct the duplicate values below." +msgstr "Le do thoil ceartaigh na luachanna dúbail thíos." + +msgid "The inline value did not match the parent instance." +msgstr "" + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "Déan rogha bhailí. Ní ceann de na roghanna é do roghasa." + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "" + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" + +msgid "Clear" +msgstr "Glan" + +msgid "Currently" +msgstr "Faoi láthair" + +msgid "Change" +msgstr "Athraigh" + +msgid "Unknown" +msgstr "Anaithnid" + +msgid "Yes" +msgstr "Tá" + +msgid "No" +msgstr "Níl" + +#. Translators: Please do not add spaces around commas. +msgid "yes,no,maybe" +msgstr "tá,níl,b'fhéidir" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)d bheart" +msgstr[1] "%(size)d bheart" +msgstr[2] "%(size)d bheart" +msgstr[3] "%(size)d mbeart" +msgstr[4] "%(size)d beart" + +#, python-format +msgid "%s KB" +msgstr "%s KB" + +#, python-format +msgid "%s MB" +msgstr "%s MB" + +#, python-format +msgid "%s GB" +msgstr "%s GB" + +#, python-format +msgid "%s TB" +msgstr "%s TB" + +#, python-format +msgid "%s PB" +msgstr "%s PB" + +msgid "p.m." +msgstr "i.n." + +msgid "a.m." +msgstr "r.n." + +msgid "PM" +msgstr "IN" + +msgid "AM" +msgstr "RN" + +msgid "midnight" +msgstr "meán oíche" + +msgid "noon" +msgstr "nóin" + +msgid "Monday" +msgstr "Dé Luain" + +msgid "Tuesday" +msgstr "Dé Máirt" + +msgid "Wednesday" +msgstr "Dé Céadaoin" + +msgid "Thursday" +msgstr "Déardaoin" + +msgid "Friday" +msgstr "Dé hAoine" + +msgid "Saturday" +msgstr "Dé Sathairn" + +msgid "Sunday" +msgstr "Dé Domhnaigh" + +msgid "Mon" +msgstr "L" + +msgid "Tue" +msgstr "M" + +msgid "Wed" +msgstr "C" + +msgid "Thu" +msgstr "D" + +msgid "Fri" +msgstr "A" + +msgid "Sat" +msgstr "S" + +msgid "Sun" +msgstr "D" + +msgid "January" +msgstr "Eanáir" + +msgid "February" +msgstr "Feabhra" + +msgid "March" +msgstr "Márta" + +msgid "April" +msgstr "Aibreán" + +msgid "May" +msgstr "Bealtaine" + +msgid "June" +msgstr "Meitheamh" + +msgid "July" +msgstr "Iúil" + +msgid "August" +msgstr "Lúnasa" + +msgid "September" +msgstr "Meán Fómhair" + +msgid "October" +msgstr "Deireadh Fómhair" + +msgid "November" +msgstr "Samhain" + +msgid "December" +msgstr "Nollaig" + +msgid "jan" +msgstr "ean" + +msgid "feb" +msgstr "feabh" + +msgid "mar" +msgstr "márta" + +msgid "apr" +msgstr "aib" + +msgid "may" +msgstr "beal" + +msgid "jun" +msgstr "meith" + +msgid "jul" +msgstr "iúil" + +msgid "aug" +msgstr "lún" + +msgid "sep" +msgstr "mfómh" + +msgid "oct" +msgstr "dfómh" + +msgid "nov" +msgstr "samh" + +msgid "dec" +msgstr "noll" + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "Ean." + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "Feabh." + +msgctxt "abbrev. month" +msgid "March" +msgstr "Márta" + +msgctxt "abbrev. month" +msgid "April" +msgstr "Aib." + +msgctxt "abbrev. month" +msgid "May" +msgstr "Beal." + +msgctxt "abbrev. month" +msgid "June" +msgstr "Meith." + +msgctxt "abbrev. month" +msgid "July" +msgstr "Iúil" + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "Lún." + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "MFómh." + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "DFómh." + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "Samh." + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "Noll." + +msgctxt "alt. month" +msgid "January" +msgstr "Mí Eanáir" + +msgctxt "alt. month" +msgid "February" +msgstr "Mí Feabhra" + +msgctxt "alt. month" +msgid "March" +msgstr "Mí na Márta" + +msgctxt "alt. month" +msgid "April" +msgstr "Mí Aibreáin" + +msgctxt "alt. month" +msgid "May" +msgstr "Mí na Bealtaine" + +msgctxt "alt. month" +msgid "June" +msgstr "Mí an Mheithimh" + +msgctxt "alt. month" +msgid "July" +msgstr "Mí Iúil" + +msgctxt "alt. month" +msgid "August" +msgstr "Mí Lúnasa" + +msgctxt "alt. month" +msgid "September" +msgstr "Mí Mheán Fómhair" + +msgctxt "alt. month" +msgid "October" +msgstr "Mí Dheireadh Fómhair" + +msgctxt "alt. month" +msgid "November" +msgstr "Mí na Samhna" + +msgctxt "alt. month" +msgid "December" +msgstr "Mí na Nollag" + +msgid "This is not a valid IPv6 address." +msgstr "" + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "" + +msgid "or" +msgstr "nó" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr ", " + +#, python-format +msgid "%d year" +msgid_plural "%d years" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" + +#, python-format +msgid "%d month" +msgid_plural "%d months" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" + +#, python-format +msgid "%d week" +msgid_plural "%d weeks" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" + +#, python-format +msgid "%d day" +msgid_plural "%d days" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" + +#, python-format +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" + +#, python-format +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "%d nóiméad" +msgstr[1] "%d nóiméad" +msgstr[2] "%d nóiméad" +msgstr[3] "%d nóiméad" +msgstr[4] "%d nóiméad" + +msgid "Forbidden" +msgstr "Toirmiscthe" + +msgid "CSRF verification failed. Request aborted." +msgstr "" + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your Web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" + +msgid "More information is available with DEBUG=True." +msgstr "Tá tuilleadh eolais ar fáil le DEBUG=True." + +msgid "No year specified" +msgstr "Bliain gan sonrú" + +msgid "Date out of range" +msgstr "" + +msgid "No month specified" +msgstr "Mí gan sonrú" + +msgid "No day specified" +msgstr "Lá gan sonrú" + +msgid "No week specified" +msgstr "Seachtain gan sonrú" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "Gan %(verbose_name_plural)s ar fáil" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" +"Níl %(verbose_name_plural)s sa todhchaí ar fáil mar tá %(class_name)s." +"allow_future Bréagach." + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "Níl bhfuarthas %(verbose_name)s le hadhaigh an iarratas" + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "" + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "Leathanach neamhbhailí (%(page_number)s): %(message)s" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "" + +msgid "Directory indexes are not allowed here." +msgstr "Níl innéacsanna chomhadlann cheadaítear anseo." + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "" + +#, python-format +msgid "Index of %(directory)s" +msgstr "Innéacs de %(directory)s" + +msgid "Django: the Web framework for perfectionists with deadlines." +msgstr "" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" + +msgid "The install worked successfully! Congratulations!" +msgstr "" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not configured any " +"URLs." +msgstr "" + +msgid "Django Documentation" +msgstr "" + +msgid "Topics, references, & how-to’s" +msgstr "" + +msgid "Tutorial: A Polling App" +msgstr "" + +msgid "Get started with Django" +msgstr "Tosaigh le Django" + +msgid "Django Community" +msgstr "" + +msgid "Connect, get help, or contribute" +msgstr "" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/ga/__init__.py b/venv/lib/python3.12/site-packages/django/conf/locale/ga/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/ga/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/ga/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..125eaf65e22ba39f833e02a89c4da565765588d3 GIT binary patch literal 198 zcmX@j%ge<81o5sX(m?cM5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!O4ZNE&rQ|OP0Yy6 zFHO;RNiEZNN=(kybEFQ_cZ$j>v@Gc?jK&MZmQEdVM^ zOiwM=Pssu+OwP|s)6dCIPRvQwPfyg3kI&4@EQycTE2#X%VUwGmQks)$SHudml@W-G PL5z>gjEsy$%s>_Z!!9&) literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/ga/__pycache__/formats.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/ga/__pycache__/formats.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b5a810dd401b6bbd69de89c4e7cd5336b354f937 GIT binary patch literal 390 zcmX@j%ge<81o5sX(pE7sFgylvV1NiDF4% zjbg22(`2t=%~Ehvh^%7vu*$4r2C_i{z6z1Q81;TJ>iB80-Qsp}3~`Nj^AGZM47tS} z;^_AN@g?PlfI7Y&x1%o~OgF=8J2pxhhuFjsmjz00ht^tlgjv@X*w}e7G{6m8s z{ag@YD;Yk6-25v=KO;XkRX;Z|BR9V^Mc*a0Oy4OnIa}8?FGW8oCowNQU%xChuS`ED zGfBUovLquv&sfjUNWVC3XKQB!`CqFqcCsjW^Q9mueC^xaB zSg)Y+7l%!5eoARhs$CH;&{9xn73%_t56p~=j32ld_{AEyZ}15>aDQN95RtsVAaFxO Z`T~RC2O$Pg2_St#RN^9oP!Ts!2LO~ZZRh|1 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/ga/formats.py b/venv/lib/python3.12/site-packages/django/conf/locale/ga/formats.py new file mode 100644 index 0000000000..7cde1a5689 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/ga/formats.py @@ -0,0 +1,21 @@ +# This file is distributed under the same license as the Django package. +# +# The *_FORMAT strings use the Django date format syntax, +# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date +DATE_FORMAT = "j F Y" +TIME_FORMAT = "H:i" +# DATETIME_FORMAT = +# YEAR_MONTH_FORMAT = +MONTH_DAY_FORMAT = "j F" +SHORT_DATE_FORMAT = "j M Y" +# SHORT_DATETIME_FORMAT = +# FIRST_DAY_OF_WEEK = + +# The *_INPUT_FORMATS strings use the Python strftime format syntax, +# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior +# DATE_INPUT_FORMATS = +# TIME_INPUT_FORMATS = +# DATETIME_INPUT_FORMATS = +DECIMAL_SEPARATOR = "." +THOUSAND_SEPARATOR = "," +# NUMBER_GROUPING = diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/gd/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/conf/locale/gd/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..f177bbd99009c588c09490bfbdf2bcb06f4364dc GIT binary patch literal 30752 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 T 2 && n < 20) ? 2 : 3;\n" + +msgid "Afrikaans" +msgstr "Afraganais" + +msgid "Arabic" +msgstr "Arabais" + +msgid "Algerian Arabic" +msgstr "Arabais Aildireach" + +msgid "Asturian" +msgstr "Astùrais" + +msgid "Azerbaijani" +msgstr "Asarbaideànais" + +msgid "Bulgarian" +msgstr "Bulgarais" + +msgid "Belarusian" +msgstr "Bealaruisis" + +msgid "Bengali" +msgstr "Beangailis" + +msgid "Breton" +msgstr "Breatnais" + +msgid "Bosnian" +msgstr "Bosnais" + +msgid "Catalan" +msgstr "Catalanais" + +msgid "Czech" +msgstr "Seacais" + +msgid "Welsh" +msgstr "Cuimris" + +msgid "Danish" +msgstr "Danmhairgis" + +msgid "German" +msgstr "Gearmailtis" + +msgid "Lower Sorbian" +msgstr "Sòrbais Ìochdarach" + +msgid "Greek" +msgstr "Greugais" + +msgid "English" +msgstr "Beurla" + +msgid "Australian English" +msgstr "Beurla Astràilia" + +msgid "British English" +msgstr "Beurla Bhreatainn" + +msgid "Esperanto" +msgstr "Esperanto" + +msgid "Spanish" +msgstr "Spàinntis" + +msgid "Argentinian Spanish" +msgstr "Spàinntis na h-Argantaine" + +msgid "Colombian Spanish" +msgstr "Spàinntis Choloimbia" + +msgid "Mexican Spanish" +msgstr "Spàinntis Mheagsagach" + +msgid "Nicaraguan Spanish" +msgstr "Spàinntis Niocaragua" + +msgid "Venezuelan Spanish" +msgstr "Spàinntis na Bheiniseala" + +msgid "Estonian" +msgstr "Eastoinis" + +msgid "Basque" +msgstr "Basgais" + +msgid "Persian" +msgstr "Farsaidh" + +msgid "Finnish" +msgstr "Fionnlannais" + +msgid "French" +msgstr "Fraingis" + +msgid "Frisian" +msgstr "Frìsis" + +msgid "Irish" +msgstr "Gaeilge" + +msgid "Scottish Gaelic" +msgstr "Gàidhlig" + +msgid "Galician" +msgstr "Gailìsis" + +msgid "Hebrew" +msgstr "Eabhra" + +msgid "Hindi" +msgstr "Hindis" + +msgid "Croatian" +msgstr "Cròthaisis" + +msgid "Upper Sorbian" +msgstr "Sòrbais Uachdarach" + +msgid "Hungarian" +msgstr "Ungairis" + +msgid "Armenian" +msgstr "Airmeinis" + +msgid "Interlingua" +msgstr "Interlingua" + +msgid "Indonesian" +msgstr "Innd-Innsis" + +msgid "Igbo" +msgstr "Igbo" + +msgid "Ido" +msgstr "Ido" + +msgid "Icelandic" +msgstr "Innis Tìlis" + +msgid "Italian" +msgstr "Eadailtis" + +msgid "Japanese" +msgstr "Seapanais" + +msgid "Georgian" +msgstr "Cairtbheilis" + +msgid "Kabyle" +msgstr "Kabyle" + +msgid "Kazakh" +msgstr "Casachais" + +msgid "Khmer" +msgstr "Cmèar" + +msgid "Kannada" +msgstr "Kannada" + +msgid "Korean" +msgstr "Coirèanais" + +msgid "Kyrgyz" +msgstr "Cìorgasais" + +msgid "Luxembourgish" +msgstr "Lugsamburgais" + +msgid "Lithuanian" +msgstr "Liotuainis" + +msgid "Latvian" +msgstr "Laitbheis" + +msgid "Macedonian" +msgstr "Masadonais" + +msgid "Malayalam" +msgstr "Malayalam" + +msgid "Mongolian" +msgstr "Mongolais" + +msgid "Marathi" +msgstr "Marathi" + +msgid "Malay" +msgstr "Malaidhis" + +msgid "Burmese" +msgstr "Burmais" + +msgid "Norwegian Bokmål" +msgstr "Nirribhis (Bokmål)" + +msgid "Nepali" +msgstr "Neapàlais" + +msgid "Dutch" +msgstr "Duitsis" + +msgid "Norwegian Nynorsk" +msgstr "Nirribhis (Nynorsk)" + +msgid "Ossetic" +msgstr "Ossetic" + +msgid "Punjabi" +msgstr "Panjabi" + +msgid "Polish" +msgstr "Pòlainnis" + +msgid "Portuguese" +msgstr "Portagailis" + +msgid "Brazilian Portuguese" +msgstr "Portagailis Bhraisileach" + +msgid "Romanian" +msgstr "Romàinis" + +msgid "Russian" +msgstr "Ruisis" + +msgid "Slovak" +msgstr "Slòbhacais" + +msgid "Slovenian" +msgstr "Slòbhainis" + +msgid "Albanian" +msgstr "Albàinis" + +msgid "Serbian" +msgstr "Sèirbis" + +msgid "Serbian Latin" +msgstr "Sèirbis (Laideann)" + +msgid "Swedish" +msgstr "Suainis" + +msgid "Swahili" +msgstr "Kiswahili" + +msgid "Tamil" +msgstr "Taimilis" + +msgid "Telugu" +msgstr "Telugu" + +msgid "Tajik" +msgstr "Taidigis" + +msgid "Thai" +msgstr "Tàidh" + +msgid "Turkmen" +msgstr "Turcmanais" + +msgid "Turkish" +msgstr "Turcais" + +msgid "Tatar" +msgstr "Tatarais" + +msgid "Udmurt" +msgstr "Udmurt" + +msgid "Ukrainian" +msgstr "Ucràinis" + +msgid "Urdu" +msgstr "Ùrdu" + +msgid "Uzbek" +msgstr "Usbagais" + +msgid "Vietnamese" +msgstr "Bhiet-Namais" + +msgid "Simplified Chinese" +msgstr "Sìnis Shimplichte" + +msgid "Traditional Chinese" +msgstr "Sìnis Thradaiseanta" + +msgid "Messages" +msgstr "Teachdaireachdan" + +msgid "Site Maps" +msgstr "Mapaichean-làraich" + +msgid "Static Files" +msgstr "Faidhlichean stadastaireachd" + +msgid "Syndication" +msgstr "Siondacaideadh" + +#. Translators: String used to replace omitted page numbers in elided page +#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10]. +msgid "…" +msgstr "…" + +msgid "That page number is not an integer" +msgstr "Chan eil àireamh na duilleige seo 'na àireamh slàn" + +msgid "That page number is less than 1" +msgstr "Tha àireamh na duilleige seo nas lugha na 1" + +msgid "That page contains no results" +msgstr "Chan eil toradh aig an duilleag seo" + +msgid "Enter a valid value." +msgstr "Cuir a-steach luach dligheach." + +msgid "Enter a valid URL." +msgstr "Cuir a-steach URL dligheach." + +msgid "Enter a valid integer." +msgstr "Cuir a-steach àireamh slàin dhligheach." + +msgid "Enter a valid email address." +msgstr "Cuir a-steach seòladh puist-d dligheach." + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" +"Cuir a-steach “sluga” dligheach anns nach eil ach litrichean, àireamhan, fo-" +"loidhnichean is tàthanan." + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" +"Cuir a-steach “sluga” dligheach anns nach eil ach litrichean Unicode, " +"àireamhan, fo-loidhnichean is tàthanan." + +msgid "Enter a valid IPv4 address." +msgstr "Cuir a-steach seòladh IPv4 dligheach." + +msgid "Enter a valid IPv6 address." +msgstr "Cuir a-steach seòladh IPv6 dligheach." + +msgid "Enter a valid IPv4 or IPv6 address." +msgstr "Cuir a-steach seòladh IPv4 no IPv6 dligheach." + +msgid "Enter only digits separated by commas." +msgstr "Na cuir a-steach ach àireamhan ’gan sgaradh le cromagan." + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "" +"Dèan cinnteach gu bheil an luach seo %(limit_value)s (’s e %(show_value)s a " +"th’ ann)." + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "" +"Dèan cinnteach gu bheil an luach seo nas lugha na no co-ionnan ri " +"%(limit_value)s." + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "" +"Dèan cinnteach gu bheil an luach seo nas motha na no co-ionnan ri " +"%(limit_value)s." + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Dèan cinnteach gu bheil %(limit_value)d charactar aig an luach seo air a’ " +"char as lugha (tha %(show_value)d aige an-dràsta)." +msgstr[1] "" +"Dèan cinnteach gu bheil %(limit_value)d charactar aig an luach seo air a’ " +"char as lugha (tha %(show_value)d aige an-dràsta)." +msgstr[2] "" +"Dèan cinnteach gu bheil %(limit_value)d caractaran aig an luach seo air a’ " +"char as lugha (tha %(show_value)d aige an-dràsta)." +msgstr[3] "" +"Dèan cinnteach gu bheil %(limit_value)d caractar aig an luach seo air a’ " +"char as lugha (tha %(show_value)d aige an-dràsta)." + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Dèan cinnteach gu bheil %(limit_value)d charactar aig an luach seo air a’ " +"char as motha (tha %(show_value)d aige an-dràsta)." +msgstr[1] "" +"Dèan cinnteach gu bheil %(limit_value)d charactar aig an luach seo air a’ " +"char as motha (tha %(show_value)d aige an-dràsta)." +msgstr[2] "" +"Dèan cinnteach gu bheil %(limit_value)d caractaran aig an luach seo air a’ " +"char as motha (tha %(show_value)d aige an-dràsta)." +msgstr[3] "" +"Dèan cinnteach gu bheil %(limit_value)d caractar aig an luach seo air a’ " +"char as motha (tha %(show_value)d aige an-dràsta)." + +msgid "Enter a number." +msgstr "Cuir a-steach àireamh." + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "" +"Dèan cinnteach nach eil barrachd air %(max)s àireamh ann gu h-iomlan." +msgstr[1] "" +"Dèan cinnteach nach eil barrachd air %(max)s àireamh ann gu h-iomlan." +msgstr[2] "" +"Dèan cinnteach nach eil barrachd air %(max)s àireamhan ann gu h-iomlan." +msgstr[3] "" +"Dèan cinnteach nach eil barrachd air %(max)s àireamh ann gu h-iomlan." + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "Dèan cinnteach nach eil barrachd air %(max)s ionad deicheach ann." +msgstr[1] "Dèan cinnteach nach eil barrachd air %(max)s ionad deicheach ann." +msgstr[2] "Dèan cinnteach nach eil barrachd air %(max)s ionadan deicheach ann." +msgstr[3] "Dèan cinnteach nach eil barrachd air %(max)s ionad deicheach ann." + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "" +"Dèan cinnteach nach eil barrachd air %(max)s àireamh ann ron phuing " +"dheicheach." +msgstr[1] "" +"Dèan cinnteach nach eil barrachd air %(max)s àireamh ann ron phuing " +"dheicheach." +msgstr[2] "" +"Dèan cinnteach nach eil barrachd air %(max)s àireamhan ann ron phuing " +"dheicheach." +msgstr[3] "" +"Dèan cinnteach nach eil barrachd air %(max)s àireamh ann ron phuing " +"dheicheach." + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" +"Chan eil an leudachan faidhle “%(extension)s” ceadaichte. Seo na leudachain " +"a tha ceadaichte: %(allowed_extensions)s." + +msgid "Null characters are not allowed." +msgstr "Chan eil caractaran null ceadaichte." + +msgid "and" +msgstr "agus" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "Tha %(model_name)s lis a’ %(field_labels)s seo ann mar-thà." + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "Chan eil an luach %(value)r ’na roghainn dhligheach." + +msgid "This field cannot be null." +msgstr "Chan fhaod an raon seo a bhith ’na neoni." + +msgid "This field cannot be blank." +msgstr "Chan fhaod an raon seo a bhith bàn." + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "Tha %(model_name)s leis a’ %(field_label)s seo ann mar-thà." + +#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'. +#. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" +"Chan fhaod %(field_label)s a bhith ann ach aon turas airson " +"%(date_field_label)s %(lookup_type)s." + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "Raon dhen t-seòrsa: %(field_type)s" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "Feumaidh “%(value)s” a bhith True no False." + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "Feumaidh “%(value)s” a bhith True, False no None." + +msgid "Boolean (Either True or False)" +msgstr "Booleach (True no False)" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "Sreang (suas ri %(max_length)s)" + +msgid "Comma-separated integers" +msgstr "Àireamhan slàna sgaraichte le cromagan" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" +"Tha fòrmat cinn-là mì-dhligheach aig an luach “%(value)s”. Feumaidh e bhith " +"san fhòrmat BBBB-MM-LL." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" +"Tha fòrmat mar bu chòir (BBBB-MM-LL) aig an luach “%(value)s” ach tha an " +"ceann-là mì-dligheach." + +msgid "Date (without time)" +msgstr "Ceann-là (gun àm)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" +"Tha fòrmat mì-dhligheach aig an luach “%(value)s”. Feumaidh e bhith san " +"fhòrmat BBBB-MM-LL HH:MM[:dd[.uuuuuu]][TZ]." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" +"Tha fòrmat mar bu chòir (BBBB-MM-LL HH:MM[:dd[.uuuuuu]][TZ]) aig an luach " +"“%(value)s” ach tha an ceann-là/an t-àm mì-dligheach." + +msgid "Date (with time)" +msgstr "Ceann-là (le àm)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "Feumaidh “%(value)s” a bhith ’na àireamh dheicheach." + +msgid "Decimal number" +msgstr "Àireamh dheicheach" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" +"Tha fòrmat mì-dhligheach aig an luach “%(value)s”. Feumaidh e bhith san " +"fhòrmat [DD] [[HH:]MM:]ss[.uuuuuu]." + +msgid "Duration" +msgstr "Faid" + +msgid "Email address" +msgstr "Seòladh puist-d" + +msgid "File path" +msgstr "Slighe an fhaidhle" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "Feumaidh “%(value)s” a bhith ’na àireamh floda." + +msgid "Floating point number" +msgstr "Àireamh le puing floda" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "Feumaidh “%(value)s” a bhith ’na àireamh shlàn." + +msgid "Integer" +msgstr "Àireamh shlàn" + +msgid "Big (8 byte) integer" +msgstr "Mòr-àireamh shlàn (8 baidht)" + +msgid "Small integer" +msgstr "Beag-àireamh slàn" + +msgid "IPv4 address" +msgstr "Seòladh IPv4" + +msgid "IP address" +msgstr "Seòladh IP" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "Feumaidh “%(value)s” a bhith None, True no False." + +msgid "Boolean (Either True, False or None)" +msgstr "Booleach (True, False no None)" + +msgid "Positive big integer" +msgstr "Àireamh shlàn dhearbh" + +msgid "Positive integer" +msgstr "Àireamh shlàn dhearbh" + +msgid "Positive small integer" +msgstr "Beag-àireamh shlàn dhearbh" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "Sluga (suas ri %(max_length)s)" + +msgid "Text" +msgstr "Teacsa" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" +"Tha fòrmat mì-dhligheach aig an luach “%(value)s”. Feumaidh e bhith san " +"fhòrmat HH:MM[:dd[.uuuuuu]]." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" +"Tha fòrmat mar bu chòir (HH:MM[:dd[.uuuuuu]]) aig an luach “%(value)s” ach " +"tha an t-àm mì-dligheach." + +msgid "Time" +msgstr "Àm" + +msgid "URL" +msgstr "URL" + +msgid "Raw binary data" +msgstr "Dàta bìnearaidh amh" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "Chan eil “%(value)s” ’na UUID dligheach." + +msgid "Universally unique identifier" +msgstr "Aithnichear àraidh gu h-uile-choitcheann" + +msgid "File" +msgstr "Faidhle" + +msgid "Image" +msgstr "Dealbh" + +msgid "A JSON object" +msgstr "Oibseact JSON" + +msgid "Value must be valid JSON." +msgstr "Feumaidh an luach a bhith ’na JSON dligheach." + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "Chan eil ionstans dhe %(model)s le %(field)s %(value)r ann." + +msgid "Foreign Key (type determined by related field)" +msgstr "Iuchair chèin (thèid a sheòrsa a mhìneachadh leis an raon dàimheach)" + +msgid "One-to-one relationship" +msgstr "Dàimh aonan gu aonan" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "Dàimh %(from)s-%(to)s" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "Dàimhean %(from)s-%(to)s" + +msgid "Many-to-many relationship" +msgstr "Dàimh iomadh rud gu iomadh rud" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr ":?.!" + +msgid "This field is required." +msgstr "Tha an raon seo riatanach." + +msgid "Enter a whole number." +msgstr "Cuir a-steach àireamh shlàn." + +msgid "Enter a valid date." +msgstr "Cuir a-steach ceann-là dligheach." + +msgid "Enter a valid time." +msgstr "Cuir a-steach àm dligheach." + +msgid "Enter a valid date/time." +msgstr "Cuir a-steach ceann-là ’s àm dligheach." + +msgid "Enter a valid duration." +msgstr "Cuir a-steach faid dhligheach." + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "" +"Feumaidh an àireamh de làithean a bhith eadar {min_days} is {max_days}." + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "" +"Cha deach faidhle a chur a-null. Dearbhaich seòrsa a’ chòdachaidh air an " +"fhoirm." + +msgid "No file was submitted." +msgstr "Cha deach faidhle a chur a-null." + +msgid "The submitted file is empty." +msgstr "Tha am faidhle a chaidh a chur a-null falamh." + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" +"Dèan cinnteach nach eil barrachd air %(max)d charactar ann an ainm an " +"fhaidhle (tha %(length)d aige)." +msgstr[1] "" +"Dèan cinnteach nach eil barrachd air %(max)d charactar ann an ainm an " +"fhaidhle (tha %(length)d aige)." +msgstr[2] "" +"Dèan cinnteach nach eil barrachd air %(max)d caractaran ann an ainm an " +"fhaidhle (tha %(length)d aige)." +msgstr[3] "" +"Dèan cinnteach nach eil barrachd air %(max)d caractar ann an ainm an " +"fhaidhle (tha %(length)d aige)." + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "" +"Cuir a-null faidhle no cuir cromag sa bhogsa fhalamh, na dèan an dà chuidh " +"dhiubh." + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" +"Luchdaich suas dealbh dligheach. Cha robh am faidhle a luchdaich thu suas " +"’na dhealbh no bha an dealbh coirbte." + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "Tagh rud dligheach. Chan eil %(value)s ’na roghainn dhut." + +msgid "Enter a list of values." +msgstr "Cuir a-steach liosta de luachan." + +msgid "Enter a complete value." +msgstr "Cuir a-steach luach slàn." + +msgid "Enter a valid UUID." +msgstr "Cuir a-steach UUID dligheach." + +msgid "Enter a valid JSON." +msgstr "Cuir a-steach JSON dligheach." + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr ":" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "(Raon falaichte %(name)s) %(error)s" + +#, python-format +msgid "" +"ManagementForm data is missing or has been tampered with. Missing fields: " +"%(field_names)s. You may need to file a bug report if the issue persists." +msgstr "" +"Tha dàta an fhoirm stiùiridh a dhìth no chaidh beantainn ris. Seo na " +"raointean a tha a dhìth: %(field_names)s. Ma mhaireas an duilgheadas, saoil " +"an cuir thu aithris air buga thugainn?" + +#, python-format +msgid "Please submit at most %d form." +msgid_plural "Please submit at most %d forms." +msgstr[0] "Na cuir a-null barrachd air %d fhoirm." +msgstr[1] "Na cuir a-null barrachd air %d fhoirm." +msgstr[2] "Na cuir a-null barrachd air %d foirmean." +msgstr[3] "Na cuir a-null barrachd air %d foirm." + +#, python-format +msgid "Please submit at least %d form." +msgid_plural "Please submit at least %d forms." +msgstr[0] "Cuir a-null %d fhoirm air a char as lugha." +msgstr[1] "Cuir a-null %d fhoirm air a char as lugha." +msgstr[2] "Cuir a-null %d foirmichean air a char as lugha." +msgstr[3] "Cuir a-null %d foirm air a char as lugha." + +msgid "Order" +msgstr "Òrdugh" + +msgid "Delete" +msgstr "Sguab às" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "Ceartaich an dàta dùblaichte airson %(field)s." + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "" +"Ceartaich an dàta dùblaichte airson %(field)s, chan fhaod gach nì a bhith " +"ann ach aon turas." + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"Ceartaich an dàta dùblaichte airson %(field_name)s nach fhaod a bhith ann " +"ach aon turas airson %(lookup)s ann an %(date_field)s." + +msgid "Please correct the duplicate values below." +msgstr "Ceartaich na luachan dùblaichte gu h-ìosal." + +msgid "The inline value did not match the parent instance." +msgstr "" +"Chan eil an luach am broinn na loidhne a’ freagairt ris an ionstans-pàraint." + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "Tagh rud dligheach. Chan eil an rud seo ’na roghainn dhut." + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "Chan e luach dligheach a tha ann an “%(pk)s”." + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" +"Cha chiall dha %(datetime)s san roinn-tìde %(current_timezone)s; dh’fhaoidte " +"gu bheil e dà-sheaghach no nach eil e ann." + +msgid "Clear" +msgstr "Falamhaich" + +msgid "Currently" +msgstr "An-dràsta" + +msgid "Change" +msgstr "Atharraich" + +msgid "Unknown" +msgstr "Chan eil fhios" + +msgid "Yes" +msgstr "Tha" + +msgid "No" +msgstr "Chan eil" + +#. Translators: Please do not add spaces around commas. +msgid "yes,no,maybe" +msgstr "yes,no,maybe" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)d baidht" +msgstr[1] "%(size)d baidht" +msgstr[2] "%(size)d baidht" +msgstr[3] "%(size)d baidht" + +#, python-format +msgid "%s KB" +msgstr "%s KB" + +#, python-format +msgid "%s MB" +msgstr "%s MB" + +#, python-format +msgid "%s GB" +msgstr "%s GB" + +#, python-format +msgid "%s TB" +msgstr "%s TB" + +#, python-format +msgid "%s PB" +msgstr "%s PB" + +msgid "p.m." +msgstr "f" + +msgid "a.m." +msgstr "m" + +msgid "PM" +msgstr "f" + +msgid "AM" +msgstr "m" + +msgid "midnight" +msgstr "meadhan-oidhche" + +msgid "noon" +msgstr "meadhan-latha" + +msgid "Monday" +msgstr "DiLuain" + +msgid "Tuesday" +msgstr "DiMàirt" + +msgid "Wednesday" +msgstr "DiCiadain" + +msgid "Thursday" +msgstr "DiarDaoin" + +msgid "Friday" +msgstr "DihAoine" + +msgid "Saturday" +msgstr "DiSathairne" + +msgid "Sunday" +msgstr "DiDòmhnaich" + +msgid "Mon" +msgstr "DiL" + +msgid "Tue" +msgstr "DiM" + +msgid "Wed" +msgstr "DiC" + +msgid "Thu" +msgstr "Dia" + +msgid "Fri" +msgstr "Dih" + +msgid "Sat" +msgstr "DiS" + +msgid "Sun" +msgstr "DiD" + +msgid "January" +msgstr "Am Faoilleach" + +msgid "February" +msgstr "An Gearran" + +msgid "March" +msgstr "Am Màrt" + +msgid "April" +msgstr "An Giblean" + +msgid "May" +msgstr "An Cèitean" + +msgid "June" +msgstr "An t-Ògmhios" + +msgid "July" +msgstr "An t-Iuchar" + +msgid "August" +msgstr "An Lùnastal" + +msgid "September" +msgstr "An t-Sultain" + +msgid "October" +msgstr "An Dàmhair" + +msgid "November" +msgstr "An t-Samhain" + +msgid "December" +msgstr "An Dùbhlachd" + +msgid "jan" +msgstr "faoi" + +msgid "feb" +msgstr "gearr" + +msgid "mar" +msgstr "màrt" + +msgid "apr" +msgstr "gibl" + +msgid "may" +msgstr "cèit" + +msgid "jun" +msgstr "ògmh" + +msgid "jul" +msgstr "iuch" + +msgid "aug" +msgstr "lùna" + +msgid "sep" +msgstr "sult" + +msgid "oct" +msgstr "dàmh" + +msgid "nov" +msgstr "samh" + +msgid "dec" +msgstr "dùbh" + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "Faoi" + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "Gearr" + +msgctxt "abbrev. month" +msgid "March" +msgstr "Màrt" + +msgctxt "abbrev. month" +msgid "April" +msgstr "Gibl" + +msgctxt "abbrev. month" +msgid "May" +msgstr "Cèit" + +msgctxt "abbrev. month" +msgid "June" +msgstr "Ògmh" + +msgctxt "abbrev. month" +msgid "July" +msgstr "Iuch" + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "Lùna" + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "Sult" + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "Dàmh" + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "Samh" + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "Dùbh" + +msgctxt "alt. month" +msgid "January" +msgstr "Am Faoilleach" + +msgctxt "alt. month" +msgid "February" +msgstr "An Gearran" + +msgctxt "alt. month" +msgid "March" +msgstr "Am Màrt" + +msgctxt "alt. month" +msgid "April" +msgstr "An Giblean" + +msgctxt "alt. month" +msgid "May" +msgstr "An Cèitean" + +msgctxt "alt. month" +msgid "June" +msgstr "An t-Ògmhios" + +msgctxt "alt. month" +msgid "July" +msgstr "An t-Iuchar" + +msgctxt "alt. month" +msgid "August" +msgstr "An Lùnastal" + +msgctxt "alt. month" +msgid "September" +msgstr "An t-Sultain" + +msgctxt "alt. month" +msgid "October" +msgstr "An Dàmhair" + +msgctxt "alt. month" +msgid "November" +msgstr "An t-Samhain" + +msgctxt "alt. month" +msgid "December" +msgstr "An Dùbhlachd" + +msgid "This is not a valid IPv6 address." +msgstr "Chan eil seo ’na sheòladh IPv6 dligheach." + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "%(truncated_text)s…" + +msgid "or" +msgstr "no" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr ", " + +#, python-format +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "%(num)d bliadhna" +msgstr[1] "%(num)d bhliadhna" +msgstr[2] "%(num)d bliadhnaichean" +msgstr[3] "%(num)d bliadhna" + +#, python-format +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "%(num)d mhìos" +msgstr[1] "%(num)d mhìos" +msgstr[2] "%(num)d mìosan" +msgstr[3] "%(num)d mìos" + +#, python-format +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "%(num)d seachdain" +msgstr[1] "%(num)d sheachdain" +msgstr[2] "%(num)d seachdainean" +msgstr[3] "%(num)d seachdain" + +#, python-format +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "%(num)d latha" +msgstr[1] "%(num)d latha" +msgstr[2] "%(num)d làithean" +msgstr[3] "%(num)d latha" + +#, python-format +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "%(num)d uair a thìde" +msgstr[1] "%(num)d uair a thìde" +msgstr[2] "%(num)d uairean a thìde" +msgstr[3] "%(num)d uair a thìde" + +#, python-format +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "%(num)d mhionaid" +msgstr[1] "%(num)d mhionaid" +msgstr[2] "%(num)d mionaidean" +msgstr[3] "%(num)d mionaid" + +msgid "Forbidden" +msgstr "Toirmisgte" + +msgid "CSRF verification failed. Request aborted." +msgstr "Dh’fhàillig le dearbhadh CSRF. chaidh sgur dhen iarrtas." + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" +"Chì thu an teachdaireachd seo air sgàth ’s gu bheil an làrach-lìn HTTPS seo " +"ag iarraidh air a’ bhrabhsair-lìn agad gun cuir e bann-cinn “Referer” thuice " +"ach cha deach gin a chur a-null. Tha feum air a’ bhann-chinn seo a chum " +"tèarainteachd ach nach cleachd treas-phàrtaidh am brabhsair agad gu droch-" +"rùnach." + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" +"Ma rèitich thu am brabhsair agad ach an cuir e bannan-cinn “Referer” à " +"comas, cuir an comas iad a-rithist, co-dhiù airson na làraich seo no airson " +"ceanglaichean HTTPS no airson iarrtasan “same-origin”." + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" +"Ma tha thu a’ cleachdadh taga no a’ gabhail a-staigh bann-cinn “'Referrer-Policy: no-referrer” feuch " +"an doir thu air falbh iad. Iarraidh an dìon CSRF bann-cinn “Referer” gus na " +"referers a dhearbhadh gu teann. Ma tha thu iomagaineach a thaobh do " +"prìobhaideachd, cleachd roghainnean eile mar airson " +"ceangal gu làraichean-lìn threas-phàrtaidhean." + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" +"Chì thu an teachdaireachd seo air sgàth ’s gu bheil an làrach-lìn seo ag " +"iarraidh briosgaid CSRF nuair a chuireas tu foirm a-null. Tha feum air a’ " +"bhriosgaid seo a chum tèarainteachd ach nach cleachd treas-phàrtaidh am " +"brabhsair agad gu droch-rùnach." + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" +"Ma rèitich thu am brabhsair agad ach an cuir e briosgaidean à comas, cuir an " +"comas iad a-rithist, co-dhiù airson na làraich seo no airson iarrtasan “same-" +"origin”." + +msgid "More information is available with DEBUG=True." +msgstr "Gheibh thu barrachd fiosrachaidh le DEBUG=True." + +msgid "No year specified" +msgstr "Cha deach bliadhna a shònrachadh" + +msgid "Date out of range" +msgstr "Tha ceann-là taobh thar na rainse" + +msgid "No month specified" +msgstr "Cha deach mìos a shònrachadh" + +msgid "No day specified" +msgstr "Cha deach latha a shònrachadh" + +msgid "No week specified" +msgstr "Cha deach seachdain a shònrachadh" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "Chan eil %(verbose_name_plural)s ri fhaighinn" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" +"Chan eil %(verbose_name_plural)s san àm ri teachd ri fhaighinn air sgàth ’s " +"gun deach %(class_name)s.allow_future a shuidheachadh air False." + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "" +"Sreang cinn-là “%(datestr)s” mì-dhligheach airson an fhòrmait “%(format)s”" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "Cha deach %(verbose_name)s a lorg a fhreagras dhan cheist" + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "" +"Chan eil an duilleag ’na “last” is cha ghabh a h-iompachadh gu àireamh shlàn." + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "Duilleag mhì-dhligheach (%(page_number)s): %(message)s" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "" +"Tha liosta fhalamh ann agus chaidh “%(class_name)s.allow_empty” a " +"shuidheachadh air False." + +msgid "Directory indexes are not allowed here." +msgstr "Chan eil clàran-amais pasgain falamh ceadaichte an-seo." + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "Chan eil “%(path)s” ann" + +#, python-format +msgid "Index of %(directory)s" +msgstr "Clàr-amais dhe %(directory)s" + +msgid "The install worked successfully! Congratulations!" +msgstr "Chaidh a stàladh! Meal do naidheachd!" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" +"Seall na nòtaichean sgaoilidh airson Django " +"%(version)s" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not configured any " +"URLs." +msgstr "" +"Chì thu an duilleag seo on a tha DEBUG=True ann am faidhle nan roghainnean agad agus cha do rèitich " +"thu URL sam bith fhathast." + +msgid "Django Documentation" +msgstr "Docamaideadh Django" + +msgid "Topics, references, & how-to’s" +msgstr "Cuspairean, iomraidhean ⁊ treòraichean" + +msgid "Tutorial: A Polling App" +msgstr "Oideachadh: Aplacaid cunntais-bheachd" + +msgid "Get started with Django" +msgstr "Dèan toiseach-tòiseachaidh le Django" + +msgid "Django Community" +msgstr "Coimhearsnachd Django" + +msgid "Connect, get help, or contribute" +msgstr "Dèan ceangal, faigh taic no cuidich" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/gd/__init__.py b/venv/lib/python3.12/site-packages/django/conf/locale/gd/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/gd/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/gd/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d98483d2f70359ea777a6a8ba87751c9b2b82095 GIT binary patch literal 198 zcmX@j%ge<81o5sX(m?cM5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!O4ZNE&rQ|OP0Yy6 zFHO;RNiEZNN=(kybEFQ_cZ$j>v@Gc?jK&MZmQEdVM^ zOiwM=Pssu+OwP|s)6dCIPRvQwPfyX0kI&4@EQycTE2#X%VUwGmQks)$SHudml@W-G PL5z>gjEsy$%s>_Z!@D$g literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/gd/__pycache__/formats.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/gd/__pycache__/formats.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1d0a071b30506f8970f06adb3ac5ba97b2f1193b GIT binary patch literal 506 zcmYjNNo&GD6rQ**xWt+w6pDu)DpZHIw<3kKi70JMi7Caogy=-0%_44~C;vr%L;p#^ zi@gO;g`Rp7ym{(GYV{r7eA~PSZyt+904at4Xw5wUe7j^<)E`)%6YvHwKmb#S!XD(o zUgX6-Tpo#O*WyTY2%Th-S%m+)VlDR4e`3wSX2dhj^#c2M*FAb2MD2&nv@g3A9T zsQQO888aSGv;ck^ybOFflX*M%5O_H_%pk4+ zZv#b#Ujvi2GWJM4%GY-Q2Y2Q7k`_>4}n_W&w`@QZ-Hv>8BlaTzuWUp z0M7x{&K02MJq%tCmcb$L^PrBD?~^}4`A!HwV{;Pnm*pw7_*I1hXsSODJys{GTS z*6TS??HzEQO+N|jC4L5|{TK!h0IzrP8$s18fj58^Q2jpQ@G(&J9tSnQ?}OT}XI=X5 zT>QXAw!g!``Q#rDYMefJICz%BB`*C+P~#o|HJ%ONi}z!E;OmIr-$MYGF?hA}Gf@3L z18QBL1=Y_{eRljOgNG4c2(AEoL5Aj~pz8fOsCnM)@Lo{!d=OOopKF_6@$~_HgJpT_A9nU-8;xVAoeNgq!12yl(;O*ct@Fei7pxSu~RJo@? zt;?@Ljq^G1C~)3ln|>UqaXueZd#8geiP!DYH-nFG(3bM3b13VLaFZew05m4*- z51`J)FF@5hZ;3tES2!GUSa4VeHLllyKKQ4g#{W@Jbn*#M^LWgqe-qR=z6&k||JkLV za)IZqB7P>w6uk*B0q+FQ1rNW_^Ol1z1g{2nfNQ|N0X6?4FLLw-9!J~77YDt9}$5_})H8hi>g`*yKyZyBh4UI88hUIQw>1ZrHd zi#Na*5dULP<=+WvJokWygZG1~|5;Gy`)i=t2T@a3S~r$dY^C1R()${w0=gUIvPv?Ep28w}aw$4}d3v zkAhqk-VZ^I_Yj!3*7tBw{T>gB-cAOO1+N5EZUoePu5-B6VHs4r38-@a1JpcT4{Cki z3~Ky$f~x-zcs=+qsP#Ps;!?lof~waCYJDyS&jv38PXdde*8Sz6&gX65o4|L1>i1kW zLH+fDs(%Tn^eez;!R6prz-3%EkAsI^Zu@-_)I5I-s{Q|Pcodh9;tL&K8@v54_U$a}p>zUgYpHQ1#Y>M}jwk>aPN7T(^Ka zKevOL=La3$>+quvA9VN$ho5%%IfsAk@Cy#V42m8e1GO)YyY%lmd;%0-_@T>x%BBAt z)cJS@JQe&sC^|j$DoamSfy2Z@@LKQ_U@xcCBAsM=Z%8z1N*>dLD56k z3V0^C5rl-iDewaD0T5E~egqx>E*zkp{iq`(e#c6Cf6rfK>1hjiGU*Kv((rBr*MeUL zIm+G%t8MRb)VvO0QO*QU0nY*ZLA4iwqQ4AOKd%Kvm$!kc|2~&~FL)vG z2VMG8;0eT^0S^Ta<&x02j|J7<$>3RFAJ_$M0@d%$pvrv!6d%10)VMzhithdj)Ovgw z)H(Y{P~-VIsPXK#&gRbt6+ao&KA!=q-y1;9Hvu)S*E)PNsP()PTnYXqsQEq%ZUepb zp7&N@J6Hja7-THq4saS=y20Y_K!)NyywUSMta3w^9zP9={*JiD;#yF2bStQH^j=W& z_#CKn@O4mhdjN+?>v$R{{(BK9x*P;Wr)5y<_!@8lcrUmFd=yl>`;FN0r-PdJrQnOe zVQ>`u2&jJM5z#)J4r*Q2I2;DGjxPe$Ug+Yl0>_EJ0TloG6{vkXXp`;d2vGIT26bNh zT>K_b=QaaXemkgjz8NfnuW{)=0X2@NUH)_6vBVF!)}1#{^-p#2GePxtE_fJt0jTqJ zC8+yn02KWUyY#J~+Ao0`PYl*Mm??M%@gH5s-4EWf+2&t)z3q1esC8Tms(t|!Jyt;V z`$ynv@U@`!;W1F<4!FUN?+8%yJ;B9K14ZBGIP7ux7dTu7YMv`VwR5#gA9eU5mtS)6 z2~hLQK+XFWQ1#vfs+~JPt;@T?w}E$qCxOeh*l}$FHJ%$ml`Dc;*Kttm|58xvb*syN z9jJES1YQWf6;$~zg2#hj2UY$lQ0MAr;3Dt>i12jqB@S-^IWpdRK+*NTg5sM;acL;N z1Uv@320RWdf$C=p6y3iP)Vkgc9u3|LYW$xCHNI(3{P&CCCE!;;&GVoaLmS}Xpw8Vj z;1u`@unT+++zOt_KQ94a?eGVn+FeEBd~gsv9o!7+oKAwGliNV$-vgciJ_u^uUjjA0 zZ#aA$)cC&(YWzP0Ia1!UAf)IG2DaY&LG}A#Q0;#V)OtJ$9tl1Ps{LmiJ_l-l=M^lS zo(3wv7u0^f(BV4pG~!!9?c2?u_U$d8#&w6o_kdcr4}zkz4}%)dryM>Es{Oxp@xKFA z{&7(4eGgm+J_()$9#pjJya?3#ZvxK-Zw0Re?*$itKLu6q$dctli$SgDMo{gHfd_zZ z0M*}Z;5_hc;5pzsLCtp>RJm_~8uxcVm45=%xPJ_)zo$W!J2tfCP6U;I8mM(T2h{vm zfv^m31l0Ne5I7I~ICvoVDNy}<9_$6b0IL08gIed4#w>mGf$t!`6jc3hfI7F2g9m|6 zg8PF%0r%UFa|He)@n4jg3;5-6Tkr13_InSgc0S_pL5H7o_*w8k@~0jCt;4Un{J(ej zZHM1;_%ER9Jq2o9zW}u^|L*Yjpy=h0n{2t~IXuDPDWJx+5LCT$K$Sn=#V-Mwp4Sg* z{Z}|#?QosLjSfc~UI(h(EiV2Nhb3@6>Eqy`VCK?a?(h|$*7a6U^T=dNp_v_!$@fH&E-aD6#8O=leH=4->vjI75rY??V>MziMYa;XQ=A3FlMhc?7!j z?jq#BGx<1^^iP3*MR+GccZPnalb-*6%?Iqx`##}uf__U}{*j>8?I`dmlVktcpZNP# zjxfZx_WB!yDT010Nm~o91rGC&e-m6p&>4P`Fhn?p^zER2uO%F4zOX@p^U2!+p5xLU246!McJUm3 zz{hge*L=PQ_-=qN1i$18O@hmaU+v6oGzY{2XCE=e*_#)x?e4j$N zh;TJQzqb#f_>RGo!Ow%gCFu7C3*OBj z*Ms-JTwHwa?+BxmzXyDla6R9*gGIs{2}crMN9ZH{aKfns@mKwh;5)US-sOBB#rL-f z54yDf4Xz-pC-0A4+D+iw2|c9!1Nc6|w+M)v=6wP%_xVrt!S8n#yyw8pgv+R>-@)MZ zV9CUgcff^&b4g!BIM9{b1TH1Lhwv&wH{o7_ey0<*kiU-bbH2Yo(4C(D&T?&B;P9hl z{3)TA_@9ISLAZ*L{|@Ej0m7qsg2R`9|JQwA10L+Y1s^2*vMv5fzRQGT>Eo}#PZPdI zSWdW&@O;A02!BafNzm_j%Kjhw>3s|wB>oc@KOX!S_boVxa3T302Y*O-H{mmcPZGXI zcm?6Bg!>4W5;hSg2u~C4C-hS{|DD3e2M8NUTL+#^IFF#;pAkk0+Z5q<5@CRFB4z(x z31@Ycf_hkws$qBL7n4S%6hCpxJL-NR^rN^QrnNMzhb6v!mGO5Zap<4bRcxeb7}vKd zO-bF^GC!*O)nG~$gK8lvHCv`uZjIw$!U5-UzrL?sY6v7IdH{MI~dWISo49g$X6HHsVcu$gJ2ZP`g&A8+L< z*2>%-h7-*^MOs-?VbJPP5oKl3j*wv%rc8%zF)}lM^>Y2Y&ip%Q{v9&^jxP7Q)Xl%-zYx?$c7zpPzVGwCl zXQ<5~FK<-Jftl9w1~aALijm<}{x%kAEGn8)>R$--KY!fV7#>LH7f zQ8bR(!$p2Mto!3(rM5`3EJA~6R1ncpK&wv$|A|}f%*o=3Ti)e!+_pst=iLl2O_+j4 zX!%lQ%3HA`ERK5vc5??P=6BhHDo#gwo{%)^hO@aeMUyd~X)&LHuozYg>>3|Ym5FoK zY_tMX^ai4o!6)ey6Doz1A;&fi4WkGum1H{;WrxFFZva9mC%#qz7FVCj69$rE1EQ;& z)%OM(EDp?zk2)h?S!Fl;pj1l3EF)H{Px%lZyAqe|S`;fmmN_QWYkJ%os+e0HLs7k6 zPO~fHtikB&;{o&4xZGg*CBHb%K`C~TBU?i(_fT|OGlu^CP!sz&v#_8y#lSlM{8Jufh0XnWIQ`vCW} zNw;KwxH0a!!Mz$HJHwW>t)8uIlH2B&&AMci3J{7a^{7_iav1ZodRX&yna*r<5m`aX zO;+|L?2w&|jb&lIJ6q(3z2)AH1S8NyCA(XTRiq4uB4swUYmDVuJYd#fDz zQHi0|(xjdg6G^I$9nUNyab#xNrs4HFC2d+eFf&cU_iSl>lB{>iNVpVYUwmVyEO&d% zOb^?yk(rt99-f&zTh}wz(5?+va#m@Sb>VPlXWUMrM3#0_92F6-eU_iKg|6({^3mX? zOtT_Po(Lo`K2;kJwg?(v6e(EwQ99C7P)Q8ckLU zkpb!nUx-r@Emnnvv=O9J-YO|Cnx)i`r4Wb}`mItzZY4DTAobUo88^DUuA9;B%-zsZ zDV(Ix>-Rg6p;^pG6KdWS+1kpH?xTMET7c-jDvFH+yQ(4~hz+Re#>{1vRY_VfqP53Y z7?opxT{z`;X|!Ci><;<>k_vM-+7q8IB8`yXRfH#UL7WB*?y!|6R%rd z#{i8SXN4+nbt(;I4SN%A_tqeXMc$eQ^0yIn*AC?;)>}KY?LzZUM~VoBoQsviKShLi zS}1yJONqC3%%4gcMoL1iXIUkbTviS1fjNMeFHFNRbdxY$XarW|xXTyDNl!EN3cnt3 z7*K%YVx>{aTj0zLyNW$S3A3GA%8E6si8RJh8pCvv5BCaKxiqXM+l)+9?e#|)gpu6E zm5@F~UMYMOQB=G!6s?)|!?e|uSZpa_{nDsdr#Rz=Ll(!w;snF$_3czq``J|vaxqLr z5{Ul@!{|-hg5ne>m!Sj|2quQgw$WQ9nqWZ!(T!%_oH#@Hz!gS|uSD?#qe>W9l$LrB z{}E!ds2)PUZh6N8rbeG*7z|Q6Wyw>&kS5zR-4hHu$_yD5(flLvjOL>BAU}z~m~@qk zs}8e~&?4)BQO4DeVKGV(r-EztBq@g;1IN3}qM_vM{YYk8;C&v~n$gjr5zSv}kSrH_ zHsW#t`m6@1C~Kv8h#6rq$<+~*Ws*@9&1qe0l`WFkJ9ebp2>7;aR=1BK3&@*!S*r_V zVp&v~ZAK$cIDk(5vfn1R*+z|F_+4C+;8x4$yR&XFF4WA7L=6YdG48EJg4U6~I*1J; zy*fbmmMVI61BLDCMjU$Ug2EL1b6pU}K`8)t1QX-ly74MX*g8mz+Uus$^3)D*eNf+~ z#@3@pH_-C*iO!Y!=%i9Uz4eVrlsCw!tiA_PWmpnr45G_U*?;+}@)a{mDPpUbDkc_A zI2@@OW#-sJJ(9o+A!|_&s@w~X1@-!au8857S?em$1&tM_*S{VHBAZwoQU_|5)Q@CR zXq2J98rroVagA_lX$U(2ZR-++CK=OIPd({@^*P2Y;*eQuP&)K@B!oK;Y9@A>Gd?C! z?vyOSs~hG&*d~@~|dwZSGXKbz?O9S0RS$bNd#tON1pQm_^&p7G#YA z>WESJXHWK5h^3hY&(%f8G_}f_G*e2@wy<(__9Ej}XNqiE9VzMdP*;+_JejCY zzrR95dCG<<_+K_b$~J2-*wCm{T56oR%G(VCz1~I)2QnpWj6>}+hgE#k7y!&RZ%nxY zyp0*cJonMipf{vr#$M@m<*0I()?s5vR?w$5-6+rEBLu-t)1jYe1B&UUK(o>O1yLcg))Uso&Nb2LwCi1%ZJ(L?} zEzP+h?W#~~;H^?lBZaGCRGp)xoyw>o&N@u5%`7;Sa38|YeJt~$3fbStcZoYCWL2cj zR=Gxe6IN7jIM`187$Mk@i#LouVp!^M16~P*jRbWC%!BZpkz!IeHptaM2$A6$QW4n& zQoK;CisMOyc}X0^*xA`iOWisPlCC+hO~&9#GqpKd8I@hjHo2$m)av%Ejv&RF!CUmX zSt6zqp*s=9(HoqVNZUTIP*Zl5N3+0c$iKK@IY|8Z{j|W5wC(>@``pH`1|| zxxINrX1}5@F`o92%(#NP8nLk%ge7X_Nwc?UbLkCpZzGL4s=A)iMl4&dgjKYKc|42Q zl(4i_3A(sH;Egnx9ZXtVv^^Ndf((W-=z1el5`PUB@ z$-2jSNBRc=QH%+`QxAAa;ao7H4BJK4mTRQ~?Mq9AUp#BR(H#uiG6XuRtC2NFm)4V1A*^#T#Qw|BlC~=6<;FzvG7P0QYWuS%R&3XB4kl_WvC8Dz@KZ5q!!$U8 zXc-f8&HCD@?xMw)4RN3kJzqe(3)!pyDMk8scT z*~l@=d`x%TJ&676RT`Aw4@rzYCMWk%o;3)zrA9g-0vQF7ltAp>QBYax_xms#iIskT zt>$6%@HUmIjkNA>x$w9jDuOE zCHNMGQ)!}mJn@-RHhQ>KOfCO)Y(UGW%Nhm1%*GY@@0*Qb(YYaJpDA&y4`Ec7OV)Qr zDMW|aElmzI6$wL-ECAA)*`vHAd$whDCK){o0YwLz>m)Y_NCASYuunlR!h2A_(zC7C zO7QdStL}`nMtNp2p6_NRVa=PFgj%{&k`&X<=8c-#nPgS5nQ1dCq8rR?9wlIA(nwfS zT7{Efl$3mmZ3*^Sx~)j_nX)adX{~Ha%k}Q|Bs0NQ<92qfxSLvg0`qD`n+i``TCUo( zC23Yx*kY@_pq6?;qwMj{=#7O14<_i{)Tj_*uZo<3#_Uz2QXG}X>t39o#m31tFX62} zNxhn=0Gq8h#YGk;izr+OJ!8C(HPl)zIz2XA?u5;AY$3mAj9k%ci zA@gb9%p|iAMLaP!6&?S8JzUGnp7U;j^sndFGdS2YFktut1$OFp)+T3fZOxjcgM(X^ zX4#hBhWXui;~%2gwn5I)!7mTJ)_A|fBw+Mp5bsC?;c6qGr(Rh^_QH#_=2AEFYH-zk$?Wh zOE0|iyz}|ZUynVe2PrzvP%DyjslVCBC8(14mrY`7s3cdF^$;f!?}|kdtM%gl!ZXrXIB5h#JKR18h@7T=U%ArPJ%4cR;L6s- z7WbY%A6C`M+Us-y$<;nfkv%g~ka*g~G%G`gzil2$qO#q&VVN@qV?>R(cb>dkR3 z^~;s{L*}KYXO%=89xv>}Pj>l|Wf>@T?7U);THzGrPSI&$5Ts$+yfzt)I& zjgZa3co$+yZ%dn<*MLiBUCqo~(LG2pf!YJ*fN26~wy$hMY zFSkO~nSMwQlM?;Ze1|t7awJJQuAN?oz1}c_eKDGTK=~amg{>UD_IGCWTOBm!F^e-u zcJ6LS_e~2MUxwe~W7wPml)5>vvkB3bkOFX1G)4t||Tk-2Mk!xd)1aKNgdLgapBZSID>ZT^Ova8@Wx;#Oz; z4s(aY;`Ci8Ue@Dq`ku_2eg&R}A^wJwSi2Z%e?cCHHdXJ*!Sww}1?j+)koRHWd=4q< zTn_mv;|Ijs4vvPj>GN{R>6hJ}ESwIf??Vga^&Hq$59c=N4HKY-TRbVIbqOnOzX-!Jb& ze2Dd6Qj-;2N3hrWBGRHKCq$g;;BInBY`P*2V)mCuW9qHPf(Nvgo|jYSn&@qqeuyWf z1S^7FwA>A#L=x{ZNEcNo8t#c+9`F>4LXw4LURnKMvQY}SRvJpf3RfTz6@U5xEbv!3lxDpbqr@_wO#7rK zDBf7$&k!G@xsNd?@>&$ZsFpP-cum(uJI}TZE&!9}t-(1nE@?h1<@14?xNi)=DcdM= z=r`_+urYP)7lH}|shx%@&9d#vy>a@U++o0-6pl~`eX{swl;Zc|s2C~z>hxWanXs|T zc4LEVK!y48^zL;{vwCs|jo_5Cbvt{n@Y2Z$7J^fWTHq3D;9jy%!*ESWsGYkl*+e>) zf$?es^Hs>l164WqM9pOnYw6sySLxV0zeH;mEPX840ag20&o>u zPsgAvdRDOxXUCmacwd@l$-DNh11@IxfQD0pXyeEQ}ZeVc=y+%@Nz!CrMR zbNqYTMaRnj|Cqxbbnsu90|&ly?VI~)a@v+dE|t4naVkix;xdwdrE!emSzouaIh7a| zXLcp_&!4%#%{a9XMZ1?}truCXwz6vhdCItG7&@KmO%D?xOV>eN$zY4 zuEhknyl}VS)-+OZ8%4Xp%u$ykuOxe$|5V@IGBw!>%TYWVCWIQ*c*aKIb!c;Glc z+`$ww?m&62AKR;06$`u|0?; z;hvCPm3Kywe3KY-*YCdZy=~MDAzz1Pf7$c{e)IOUj-MS8-)xSb$f@!!L|R7nl$OO# zz&S7urP#{7s83=EDb#kEn-@Bt+ibjDzT;Rg5YjGF~h} zHH>#4+98qW%3N!sh*<_do=CHZ^MNRKvT*2ed?x0*#U>Z7YVOrF|f^Uo{hB}VLXq%yAQ`Wo{ z8LE|Grxa%6c&k(*G&kS$o4bxSm&)X8wE`Z)+vGbt2pL68??%ltX-x&x3`jf+rLN^o zx(@?mYWYq}5hS|My`L^@-_+(vDX=F4h4!(88Ln&IY3G{4LQF4J{La#7GF%9Mv<{_{ zp*Q_TqateEF^A3KQrglmo$joQy6IWkZ!b(%$Qsii9Q&Xmb&NCYZc=N4!?(}8lQ@mf zMoe*UX!@>6v{s|V<#l%JWZFEQ*3lFufq$tu^5&qH7|ysE_X?s7q&>K~h(w5XJbf3K z1?Z(Pc|5#ipIBiWP7`lklyZ~da%xQ*c%0$~i5Ww;n%oL-ly=^xIGY*`e$aWFCOBwf zZnYqL2W(gi#Ab5rnJBP|9)Qv0S)AbI?S% z$O8VFR{GK(0Qivhw^#95-4nAno`UkrLwc`Le9%DD=QPsmG5(TX@hWKF~Wr? zK@P04WZCuNI?(xmP|^sAHg9j1@o=)|$~MBcGqdiZg+SD8om_pKTpQR0j9Ah9^t)o~ z@!CyKa(UfJ>XGPRHG3ogoSMYEH}cmWD%moqL#omUJbAlfpTf$AS&_fz_G@j&A9{tI zAQ;HuRV!-V5JXyRCDaA;p%tDJ@OzY-k)BH8s|ipJt;q12S%jG4N5I9+5C{~G@xCUHyu<0_!#x{=k%ST zv^B1y_Q;Pmx3YU1_zP~P;jTiiXq(+M#@F<>^lV)-V6+!2FSYr|-d)Ht|>T2w;S8eQ2Z1$xdpPSGWsPW(g>Q|A$5M z=}jyXK^4uKUFH(971+o&fn7?_t{Pnl+s3 z^5PIw#t?Z?CwV*N=|ulO0i(!paakwaq9%{$tw@f)W0GXZAmxP1ZkZ3(7DE|1vuT0;EHJtxnzzWRY zs7dGf{Zkrr)@*#{t;;+j3j6&U**pt4^|MF{=HbCuG`rX)Ps zQM0$v8F7%qD$(@)RvL5HDcn~~*LdCX#u*0@b|;&_88W)=SQ4o<2?zCLfo>8crCL=Esxuct@~B?DYVh?h`{a0Zfbne)-@~hW^9|b z?+kMk(G#)mD#=9Brp$8!^;}zs$+CI0uah&*7$4lG=rhtQ23#gMGwlD>7;&9#3W zF?Oq|JGVrET={gax6(oL+g@i(&$Ld??)B+jWM<72MtK$A;HfmsB%Ep#{0~%i7$uZd zH_uAWC}5@bs2AkBVQ7P`+wJoaDp?QOlcicHKZ%hb*t z<%~0&eB;1t-6HUF;Qxyg7Wq4NIpU(H^G};@-llOHzgbj=UWpH|593zh{3M!>-c1v2 zQ{$hrF)M-Ox=2$b3GwqyJ>Cet+$|LwfH#R->Lk_z!-%U~!ZKhZyCD>q&%`Ky#yz!x zduk(hPpx}dgm-GZ2wuE{msigiL|P82hSK$aL(5%PopY+v?HxSB8gJ@5Va}*Q&4O}G zZ5jG={yDR}7$kSGXdD@kd)hHbu|?F0px2ib!QH2Ek-rd~3th?!^wIFbK{-1HZJw}=+=*pZ>zI!idCL02?o};SY5xD?8i?Sz HC+vR$p!k*c literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/gl/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/conf/locale/gl/LC_MESSAGES/django.po new file mode 100644 index 0000000000..7ebeab2075 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/gl/LC_MESSAGES/django.po @@ -0,0 +1,1356 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# fasouto , 2011-2012 +# fonso , 2011,2013 +# fonso , 2013 +# fasouto , 2017 +# Jannis Leidel , 2011 +# Leandro Regueiro , 2013 +# 948a55bc37dd6d642f1875bb84258fff_07a28cc , 2012 +# X Bello , 2023-2024 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-05-22 11:46-0300\n" +"PO-Revision-Date: 2024-08-07 06:49+0000\n" +"Last-Translator: X Bello , 2023-2024\n" +"Language-Team: Galician (http://app.transifex.com/django/django/language/" +"gl/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: gl\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Afrikaans" +msgstr "Africáner" + +msgid "Arabic" +msgstr "Árabe" + +msgid "Algerian Arabic" +msgstr "Árabe Arxelino" + +msgid "Asturian" +msgstr "Asturiano" + +msgid "Azerbaijani" +msgstr "Azerí" + +msgid "Bulgarian" +msgstr "Búlgaro" + +msgid "Belarusian" +msgstr "Bielorruso" + +msgid "Bengali" +msgstr "Bengalí" + +msgid "Breton" +msgstr "Bretón" + +msgid "Bosnian" +msgstr "Bosníaco" + +msgid "Catalan" +msgstr "Catalán" + +msgid "Central Kurdish (Sorani)" +msgstr "Kurdo Central (Sorani)" + +msgid "Czech" +msgstr "Checo" + +msgid "Welsh" +msgstr "Galés" + +msgid "Danish" +msgstr "Dinamarqués" + +msgid "German" +msgstr "Alemán" + +msgid "Lower Sorbian" +msgstr "Baixo Sorabo" + +msgid "Greek" +msgstr "Grego" + +msgid "English" +msgstr "Inglés" + +msgid "Australian English" +msgstr "Inglés australiano" + +msgid "British English" +msgstr "inglés británico" + +msgid "Esperanto" +msgstr "Esperanto" + +msgid "Spanish" +msgstr "Español" + +msgid "Argentinian Spanish" +msgstr "Español da Arxentina" + +msgid "Colombian Spanish" +msgstr "Español de Colombia" + +msgid "Mexican Spanish" +msgstr "Español de México" + +msgid "Nicaraguan Spanish" +msgstr "Español de Nicaragua" + +msgid "Venezuelan Spanish" +msgstr "Español de Venezuela" + +msgid "Estonian" +msgstr "Estoniano" + +msgid "Basque" +msgstr "Vasco" + +msgid "Persian" +msgstr "Persa" + +msgid "Finnish" +msgstr "Finés" + +msgid "French" +msgstr "Francés" + +msgid "Frisian" +msgstr "Frisón" + +msgid "Irish" +msgstr "Irlandés" + +msgid "Scottish Gaelic" +msgstr "Gaélico Escocés" + +msgid "Galician" +msgstr "Galego" + +msgid "Hebrew" +msgstr "Hebreo" + +msgid "Hindi" +msgstr "Hindi" + +msgid "Croatian" +msgstr "Croata" + +msgid "Upper Sorbian" +msgstr "Alto Sorabo" + +msgid "Hungarian" +msgstr "Húngaro" + +msgid "Armenian" +msgstr "Armenio" + +msgid "Interlingua" +msgstr "Interlingua" + +msgid "Indonesian" +msgstr "Indonesio" + +msgid "Igbo" +msgstr "Ibo" + +msgid "Ido" +msgstr "Ido" + +msgid "Icelandic" +msgstr "Islandés" + +msgid "Italian" +msgstr "Italiano" + +msgid "Japanese" +msgstr "Xaponés" + +msgid "Georgian" +msgstr "Xeorxiano" + +msgid "Kabyle" +msgstr "Cabilio" + +msgid "Kazakh" +msgstr "Casaco" + +msgid "Khmer" +msgstr "Camboxano" + +msgid "Kannada" +msgstr "Canará" + +msgid "Korean" +msgstr "Coreano" + +msgid "Kyrgyz" +msgstr "Kirguiz" + +msgid "Luxembourgish" +msgstr "Luxemburgués" + +msgid "Lithuanian" +msgstr "Lituano" + +msgid "Latvian" +msgstr "Letón" + +msgid "Macedonian" +msgstr "Macedonio" + +msgid "Malayalam" +msgstr "Mala" + +msgid "Mongolian" +msgstr "Mongol" + +msgid "Marathi" +msgstr "Marathi" + +msgid "Malay" +msgstr "Malaio" + +msgid "Burmese" +msgstr "Birmano" + +msgid "Norwegian Bokmål" +msgstr "Bokmål Noruegués" + +msgid "Nepali" +msgstr "Nepalés" + +msgid "Dutch" +msgstr "Holandés" + +msgid "Norwegian Nynorsk" +msgstr "Noruegués (nynorsk)" + +msgid "Ossetic" +msgstr "Osetio" + +msgid "Punjabi" +msgstr "Panxabiano" + +msgid "Polish" +msgstr "Polaco" + +msgid "Portuguese" +msgstr "Portugués" + +msgid "Brazilian Portuguese" +msgstr "Portugués do Brasil" + +msgid "Romanian" +msgstr "Romanés" + +msgid "Russian" +msgstr "Ruso" + +msgid "Slovak" +msgstr "Eslovaco" + +msgid "Slovenian" +msgstr "Esloveno" + +msgid "Albanian" +msgstr "Albanés" + +msgid "Serbian" +msgstr "Serbio" + +msgid "Serbian Latin" +msgstr "Serbio (alfabeto latino)" + +msgid "Swedish" +msgstr "Sueco" + +msgid "Swahili" +msgstr "Suahili" + +msgid "Tamil" +msgstr "Támil" + +msgid "Telugu" +msgstr "Telugu" + +msgid "Tajik" +msgstr "Taxico" + +msgid "Thai" +msgstr "Tai" + +msgid "Turkmen" +msgstr "Turcomá" + +msgid "Turkish" +msgstr "Turco" + +msgid "Tatar" +msgstr "Tártaro" + +msgid "Udmurt" +msgstr "Udmurt" + +msgid "Uyghur" +msgstr "Uigur" + +msgid "Ukrainian" +msgstr "Ucraíno" + +msgid "Urdu" +msgstr "Urdu" + +msgid "Uzbek" +msgstr "Uzbeco" + +msgid "Vietnamese" +msgstr "Vietnamita" + +msgid "Simplified Chinese" +msgstr "Chinés simplificado" + +msgid "Traditional Chinese" +msgstr "Chinés tradicional" + +msgid "Messages" +msgstr "Mensaxes" + +msgid "Site Maps" +msgstr "Mapas do sitio" + +msgid "Static Files" +msgstr "Arquivos Estáticos" + +msgid "Syndication" +msgstr "Sindicación" + +#. Translators: String used to replace omitted page numbers in elided page +#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10]. +msgid "…" +msgstr "…" + +msgid "That page number is not an integer" +msgstr "Ese número de páxina non é un enteiro" + +msgid "That page number is less than 1" +msgstr "Ese número de páxina é menor que 1" + +msgid "That page contains no results" +msgstr "Esa páxina non contén resultados" + +msgid "Enter a valid value." +msgstr "Insira un valor válido." + +msgid "Enter a valid domain name." +msgstr "Introduza un nome de dominio válido." + +msgid "Enter a valid URL." +msgstr "Insira un URL válido." + +msgid "Enter a valid integer." +msgstr "Introduza un enteiro válido." + +msgid "Enter a valid email address." +msgstr "Insira un enderezo de correo electrónico válido." + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" +"Insira un “slug” valido composto por letras, números, guións baixos ou " +"medios." + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" +"Insira un “slug” valido composto por letras Unicode, números, guións baixos " +"ou medios." + +#, python-format +msgid "Enter a valid %(protocol)s address." +msgstr "Introduza unha dirección %(protocol)s válida." + +msgid "IPv4" +msgstr "IPv4" + +msgid "IPv6" +msgstr "IPv6" + +msgid "IPv4 or IPv6" +msgstr "IPv4 ou IPv6" + +msgid "Enter only digits separated by commas." +msgstr "Insira só díxitos separados por comas." + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "" +"Asegúrese de que este valor é %(limit_value)s (agora é %(show_value)s)." + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "Asegure que este valor é menor ou igual a %(limit_value)s." + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "Asegure que este valor é maior ou igual a %(limit_value)s." + +#, python-format +msgid "Ensure this value is a multiple of step size %(limit_value)s." +msgstr "" +"Asegúrese de que este valor é un múltiplo do tamaño do paso %(limit_value)s." + +#, python-format +msgid "" +"Ensure this value is a multiple of step size %(limit_value)s, starting from " +"%(offset)s, e.g. %(offset)s, %(valid_value1)s, %(valid_value2)s, and so on." +msgstr "" +"Asegúrese de que este valor é un múltiplo do tamaño do paso %(limit_value)s, " +"comezando por %(offset)s, p. ex. %(offset)s, %(valid_value1)s, " +"%(valid_value2)s, e sucesivos." + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Asegúrese de que este valor ten polo menos %(limit_value)d caracter (agora " +"ten %(show_value)d)." +msgstr[1] "" +"Asegúrese de que este valor ten polo menos %(limit_value)d caracteres (agora " +"ten %(show_value)d)." + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Asegúrese de que este valor ten como moito %(limit_value)d caracter (agora " +"ten %(show_value)d)." +msgstr[1] "" +"Asegúrese de que este valor ten como moito %(limit_value)d caracteres (agora " +"ten %(show_value)d)." + +msgid "Enter a number." +msgstr "Insira un número." + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "Asegure que non hai mais de %(max)s díxito en total." +msgstr[1] "Asegure que non hai mais de %(max)s díxitos en total." + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "Asegúrese de que non hai máis de %(max)s lugar decimal." +msgstr[1] "Asegúrese de que non hai máis de %(max)s lugares decimais." + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "" +"Asegúrese de que no hai máis de %(max)s díxito antes do punto decimal." +msgstr[1] "" +"Asegúrese de que non hai máis de %(max)s díxitos antes do punto decimal." + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" +"Non se permite a extensión “%(extension)s”. As extensións permitidas son: " +"%(allowed_extensions)s." + +msgid "Null characters are not allowed." +msgstr "Non se permiten caracteres nulos." + +msgid "and" +msgstr "e" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "Xa existe un %(model_name)s con este %(field_labels)s." + +#, python-format +msgid "Constraint “%(name)s” is violated." +msgstr "Viólase a restricción “%(name)s”." + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "O valor %(value)r non é unha opción válida." + +msgid "This field cannot be null." +msgstr "Este campo non pode ser nulo." + +msgid "This field cannot be blank." +msgstr "Este campo non pode estar baleiro." + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "" +"Xa existe un modelo %(model_name)s coa etiqueta de campo %(field_label)s." + +#. Translators: The 'lookup_type' is one of 'date', 'year' or +#. 'month'. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" +"%(field_label)s ten que ser único para %(lookup_type)s en " +"%(date_field_label)s." + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "Campo de tipo: %(field_type)s" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "O valor “%(value)s” ten que ser ou True ou False." + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "O valor “%(value)s” ten que ser True, False ou None." + +msgid "Boolean (Either True or False)" +msgstr "Valor booleano (verdadeiro ou falso)" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "Cadea (máximo %(max_length)s)" + +msgid "String (unlimited)" +msgstr "Texto (sin límite)" + +msgid "Comma-separated integers" +msgstr "Números enteiros separados por comas" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" +"O valor “%(value)s” ten un formato inválido de data. Debe estar no formato " +"AAAA-MM-DD." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" +"O valor “%(value)s” ten o formato correcto (AAAA-MM-DD) pero non é unha data " +"válida." + +msgid "Date (without time)" +msgstr "Data (sen a hora)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" +"O valor “%(value)s” ten un formato non válido. Debe de ter o formato AAAA-MM-" +"DD HH:MM[:ss[.uuuuuu]][TZ]. " + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" +"O valor “%(value)s” ten o formato correcto (AAAA-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) pero non é unha data/hora válida." + +msgid "Date (with time)" +msgstr "Data (coa hora)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "“%(value)s” ten que ser un número en formato decimal." + +msgid "Decimal number" +msgstr "Número decimal" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" +"O valor “%(value)s” ten un formato non válido. Debe de ter o formato [DD] " +"[[HH:]MM:]ss[.uuuuuu]. " + +msgid "Duration" +msgstr "Duración" + +msgid "Email address" +msgstr "Enderezo electrónico" + +msgid "File path" +msgstr "Ruta de ficheiro" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "O valor “%(value)s” ten que ser un número en coma flotante." + +msgid "Floating point number" +msgstr "Número en coma flotante" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "O valor “%(value)s” ten que ser un número enteiro." + +msgid "Integer" +msgstr "Número enteiro" + +msgid "Big (8 byte) integer" +msgstr "Enteiro grande (8 bytes)" + +msgid "Small integer" +msgstr "Enteiro pequeno" + +msgid "IPv4 address" +msgstr "Enderezo IPv4" + +msgid "IP address" +msgstr "Enderezo IP" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "O valor “%(value)s” ten que ser None, True ou False." + +msgid "Boolean (Either True, False or None)" +msgstr "Booleano (verdadeiro, falso ou ningún)" + +msgid "Positive big integer" +msgstr "Número enteiro positivo grande" + +msgid "Positive integer" +msgstr "Numero enteiro positivo" + +msgid "Positive small integer" +msgstr "Enteiro pequeno positivo" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "Slug (ata %(max_length)s)" + +msgid "Text" +msgstr "Texto" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" +"O valor “%(value)s” ten un formato non válido. Ten que ter o formato HH:MM[:" +"ss[.uuuuuu]]." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" +"O valor “%(value)s” ten o formato correcto (HH:MM[:ss[.uuuuuu]]) pero non é " +"unha hora válida." + +msgid "Time" +msgstr "Hora" + +msgid "URL" +msgstr "URL" + +msgid "Raw binary data" +msgstr "Datos binarios en crú" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "“%(value)s” non é un UUID válido." + +msgid "Universally unique identifier" +msgstr "Identificador único universal" + +msgid "File" +msgstr "Ficheiro" + +msgid "Image" +msgstr "Imaxe" + +msgid "A JSON object" +msgstr "Un obxeto JSON" + +msgid "Value must be valid JSON." +msgstr "O valor ten que ser JSON válido." + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "A instancia de %(model)s co %(field)s %(value)r non existe." + +msgid "Foreign Key (type determined by related field)" +msgstr "Clave Foránea (tipo determinado por un campo relacionado)" + +msgid "One-to-one relationship" +msgstr "Relación un a un" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "Relación %(from)s-%(to)s" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "Relacións %(from)s-%(to)s" + +msgid "Many-to-many relationship" +msgstr "Relación moitos a moitos" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr ":?.!" + +msgid "This field is required." +msgstr "Requírese este campo." + +msgid "Enter a whole number." +msgstr "Insira un número enteiro." + +msgid "Enter a valid date." +msgstr "Insira unha data válida." + +msgid "Enter a valid time." +msgstr "Insira unha hora válida." + +msgid "Enter a valid date/time." +msgstr "Insira unha data/hora válida." + +msgid "Enter a valid duration." +msgstr "Introduza unha duración válida." + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "O número de días ten que estar entre {min_days} e {max_days}." + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "" +"Non se enviou ficheiro ningún. Comprobe o tipo de codificación do formulario." + +msgid "No file was submitted." +msgstr "Non se enviou ficheiro ningún." + +msgid "The submitted file is empty." +msgstr "O ficheiro enviado está baleiro." + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" +"Asegúrese de que este nome de arquivo ten como moito %(max)d caracter (agora " +"ten %(length)d)." +msgstr[1] "" +"Asegúrese de que este nome de arquivo ten como moito %(max)d caracteres " +"(agora ten %(length)d)." + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "" +"Ou ben envíe un ficheiro, ou ben marque a casilla de eliminar, pero non " +"ambas as dúas cousas." + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" +"Suba unha imaxe válida. O ficheiro subido non era unha imaxe ou esta estaba " +"corrupta." + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "" +"Escolla unha opción válida. %(value)s non se atopa entre as opcións " +"dispoñibles." + +msgid "Enter a list of values." +msgstr "Insira unha lista de valores." + +msgid "Enter a complete value." +msgstr "Introduza un valor completo." + +msgid "Enter a valid UUID." +msgstr "Insira un UUID válido." + +msgid "Enter a valid JSON." +msgstr "Introduza un JSON válido." + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr ":" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "(Campo oculto %(name)s) %(error)s." + +#, python-format +msgid "" +"ManagementForm data is missing or has been tampered with. Missing fields: " +"%(field_names)s. You may need to file a bug report if the issue persists." +msgstr "" +"Faltan datos ou foron manipulados de ManagementForm. Campos afectados: " +"%(field_names)s. Debería abrir un informe de bug si o problema é persistente." + +#, python-format +msgid "Please submit at most %(num)d form." +msgid_plural "Please submit at most %(num)d forms." +msgstr[0] "Por favor envíe como moito %(num)d formulario." +msgstr[1] "Por favor envíe como moito %(num)d formularios." + +#, python-format +msgid "Please submit at least %(num)d form." +msgid_plural "Please submit at least %(num)d forms." +msgstr[0] "Por favor envíe polo menos %(num)d formulario." +msgstr[1] "Pro favor envíe polo menos %(num)d formularios." + +msgid "Order" +msgstr "Orde" + +msgid "Delete" +msgstr "Eliminar" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "Corrixa os datos duplicados no campo %(field)s." + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "Corrixa os datos duplicados no campo %(field)s, que debe ser único." + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"Corrixa os datos duplicados no campo %(field_name)s, que debe ser único para " +"a busca %(lookup)s no campo %(date_field)s." + +msgid "Please correct the duplicate values below." +msgstr "Corrixa os valores duplicados de abaixo." + +msgid "The inline value did not match the parent instance." +msgstr "O valor na liña non coincide ca instancia nai." + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "" +"Escolla unha opción válida. Esta opción non se atopa entre as opcións " +"dispoñíbeis" + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "“%(pk)s” non é un valor válido." + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" +"%(datetime)s non se puido interpretar na zona hora horaria " +"%(current_timezone)s; pode ser ambiguo ou non existir." + +msgid "Clear" +msgstr "Limpar" + +msgid "Currently" +msgstr "Actualmente" + +msgid "Change" +msgstr "Modificar" + +msgid "Unknown" +msgstr "Descoñecido" + +msgid "Yes" +msgstr "Si" + +msgid "No" +msgstr "Non" + +#. Translators: Please do not add spaces around commas. +msgid "yes,no,maybe" +msgstr "si,non,quizais" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)d byte" +msgstr[1] "%(size)d bytes" + +#, python-format +msgid "%s KB" +msgstr "%s KB" + +#, python-format +msgid "%s MB" +msgstr "%s MB" + +#, python-format +msgid "%s GB" +msgstr "%s GB" + +#, python-format +msgid "%s TB" +msgstr "%s TB" + +#, python-format +msgid "%s PB" +msgstr "%s PB" + +msgid "p.m." +msgstr "p.m." + +msgid "a.m." +msgstr "a.m." + +msgid "PM" +msgstr "PM" + +msgid "AM" +msgstr "AM" + +msgid "midnight" +msgstr "medianoite" + +msgid "noon" +msgstr "mediodía" + +msgid "Monday" +msgstr "Luns" + +msgid "Tuesday" +msgstr "Martes" + +msgid "Wednesday" +msgstr "Mércores" + +msgid "Thursday" +msgstr "Xoves" + +msgid "Friday" +msgstr "Venres" + +msgid "Saturday" +msgstr "Sábado" + +msgid "Sunday" +msgstr "Domingo" + +msgid "Mon" +msgstr "lun" + +msgid "Tue" +msgstr "mar" + +msgid "Wed" +msgstr "mér" + +msgid "Thu" +msgstr "xov" + +msgid "Fri" +msgstr "ven" + +msgid "Sat" +msgstr "sáb" + +msgid "Sun" +msgstr "dom" + +msgid "January" +msgstr "Xaneiro" + +msgid "February" +msgstr "Febreiro" + +msgid "March" +msgstr "Marzo" + +msgid "April" +msgstr "Abril" + +msgid "May" +msgstr "Maio" + +msgid "June" +msgstr "Xuño" + +msgid "July" +msgstr "Xullo" + +msgid "August" +msgstr "Agosto" + +msgid "September" +msgstr "Setembro" + +msgid "October" +msgstr "Outubro" + +msgid "November" +msgstr "Novembro" + +msgid "December" +msgstr "Decembro" + +msgid "jan" +msgstr "xan" + +msgid "feb" +msgstr "feb" + +msgid "mar" +msgstr "mar" + +msgid "apr" +msgstr "abr" + +msgid "may" +msgstr "mai" + +msgid "jun" +msgstr "xuñ" + +msgid "jul" +msgstr "xul" + +msgid "aug" +msgstr "ago" + +msgid "sep" +msgstr "set" + +msgid "oct" +msgstr "out" + +msgid "nov" +msgstr "nov" + +msgid "dec" +msgstr "dec" + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "Xan." + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "Feb." + +msgctxt "abbrev. month" +msgid "March" +msgstr "Marzo" + +msgctxt "abbrev. month" +msgid "April" +msgstr "Abril" + +msgctxt "abbrev. month" +msgid "May" +msgstr "Maio" + +msgctxt "abbrev. month" +msgid "June" +msgstr "Xuño" + +msgctxt "abbrev. month" +msgid "July" +msgstr "Xullo" + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "Ago." + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "Set." + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "Out." + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "Nov." + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "Dec." + +msgctxt "alt. month" +msgid "January" +msgstr "Xaneiro" + +msgctxt "alt. month" +msgid "February" +msgstr "Febreiro" + +msgctxt "alt. month" +msgid "March" +msgstr "Marzo" + +msgctxt "alt. month" +msgid "April" +msgstr "Abril" + +msgctxt "alt. month" +msgid "May" +msgstr "Maio" + +msgctxt "alt. month" +msgid "June" +msgstr "Xuño" + +msgctxt "alt. month" +msgid "July" +msgstr "Xullo" + +msgctxt "alt. month" +msgid "August" +msgstr "Agosto" + +msgctxt "alt. month" +msgid "September" +msgstr "Setembro" + +msgctxt "alt. month" +msgid "October" +msgstr "Outubro" + +msgctxt "alt. month" +msgid "November" +msgstr "Novembro" + +msgctxt "alt. month" +msgid "December" +msgstr "Decembro" + +msgid "This is not a valid IPv6 address." +msgstr "Isto non é un enderezo IPv6 válido." + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "%(truncated_text)s…" + +msgid "or" +msgstr "ou" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr ", " + +#, python-format +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "%(num)d ano" +msgstr[1] "%(num)d anos" + +#, python-format +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "%(num)d mes" +msgstr[1] "%(num)d meses" + +#, python-format +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "%(num)d semana" +msgstr[1] "%(num)d semanas" + +#, python-format +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "%(num)d día" +msgstr[1] "%(num)d días" + +#, python-format +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "%(num)d hora" +msgstr[1] "%(num)d horas" + +#, python-format +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "%(num)d minuto" +msgstr[1] "%(num)d minutos" + +msgid "Forbidden" +msgstr "Denegado" + +msgid "CSRF verification failed. Request aborted." +msgstr "Fallóu a verificación CSRF. Abortouse a petición." + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" +"Está vendo esta mensaxe porque este sitio HTTPS require que o navegador " +"envíe un \"Referer header\", pero non envióu ningún. Este encabezamento é " +"necesario por razóns de seguridade, para asegurar que o navegador non está " +"sendo suplantado por terceiros." + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" +"Se ten o navegador configurado para deshabilitar os encabezamentos " +"\"Referer\", por favor habilíteos polo menos para este sitio, ou para " +"conexións HTTPS, ou para peticións de \"mesmo-orixe\"." + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" +"Si está usando a etiqueta " +"ou incluíndo o encabezado “Referrer-Policy: no-referrer”, por favor quíteos. " +"A protección CSRF require o encabezado “Referer” para facer a comprobación " +"estricta de referer. Si lle preocupa a privacidade, use alternativas como para enlazar con sitios de terceiros." + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" +"Está vendo esta mensaxe porque este sitio HTTPS require unha cookie CSRF ó " +"enviar formularios. Esta cookie é necesaria por razóns de seguridade, para " +"asegurar que o navegador non está sendo suplantado por terceiros." + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" +"Se ten o navegador configurado para deshabilitar as cookies, por favor " +"habilíteas, polo menos para este sitio, ou para peticións de “same-origin”." + +msgid "More information is available with DEBUG=True." +msgstr "Pode ver máis información se establece DEBUG=True." + +msgid "No year specified" +msgstr "Non se especificou ningún ano" + +msgid "Date out of range" +msgstr "Data fora de rango" + +msgid "No month specified" +msgstr "Non se especificou ningún mes" + +msgid "No day specified" +msgstr "Non se especificou ningún día" + +msgid "No week specified" +msgstr "Non se especificou ningunha semana" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "Non hai %(verbose_name_plural)s dispoñibles" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" +"Non hai dispoñibles %(verbose_name_plural)s futuros/as porque %(class_name)s." +"allow_futuro é False" + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "A data “%(datestr)s” non é válida para o formato “%(format)s”" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "Non se atopou ningún/ha %(verbose_name)s que coincidise coa consulta" + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "A páxina non é “last” nin se pode converter a int." + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "Páxina non válida (%(page_number)s): %(message)s" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "A lista está baleira pero “%(class_name)s.allow_empty” é False." + +msgid "Directory indexes are not allowed here." +msgstr "Os índices de directorio non están permitidos aquí." + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "“%(path)s” non existe" + +#, python-format +msgid "Index of %(directory)s" +msgstr "Índice de %(directory)s" + +msgid "The install worked successfully! Congratulations!" +msgstr "A instalación foi un éxito! Noraboa!" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" +"Ver as notas de publicación para Django " +"%(version)s" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not " +"configured any URLs." +msgstr "" +"Está vendo esta páxina porque no arquivo de axustes ten DEBUG=True e non hai ningunha URL " +"configurada." + +msgid "Django Documentation" +msgstr "Documentación de Django" + +msgid "Topics, references, & how-to’s" +msgstr "Temas, referencias, & guías de uso" + +msgid "Tutorial: A Polling App" +msgstr "Tutorial: aplicación de enquisas" + +msgid "Get started with Django" +msgstr "Comenzar con Django" + +msgid "Django Community" +msgstr "Comunidade de Django" + +msgid "Connect, get help, or contribute" +msgstr "Conectar, conseguir axuda, ou contribuir" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/gl/__init__.py b/venv/lib/python3.12/site-packages/django/conf/locale/gl/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/gl/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/gl/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b04c8e4041f2906848b57764bd5a9fea059a169f GIT binary patch literal 198 zcmX@j%ge<81o5sX(m?cM5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!O4ZNE&rQ|OP0Yy6 zFHO;RNiEZNN=(kybEFQ_cZ$j>v@Gc?jK&MZmQEdVM^ zOiwM=Pssu+OwP|s)6dCIPRvQwPtVbhkI&4@EQycTE2#X%VUwGmQks)$SHudml@W-G PL5z>gjEsy$%s>_Z#WOU1 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/gl/__pycache__/formats.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/gl/__pycache__/formats.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4c5d56b204569438c05676e3b887ebb2af937bc2 GIT binary patch literal 577 zcmX@j%ge<81o5sX(!Me=FgylvV1NiDF4% zjbcq;vaNND8$1*G}zJ41tGSQ;WH>?f2HVW$>Kp=qKeQ=B4NBm!;;F>E~o7=@(R%WaQ@=>lqs97iX5F z>J|VMCZ?wr>!)Oa6(;BBrRnG7Cnx5l>Zj-Er{x#rCYBWI6;%G>u*uC&Da}c>D-r@) z3JSbpCm`{GnURt40~Z6oVgvULK4Bmsq}RZILqz@pgWwHexeE*eH$!zATd#iiwr_V0zhK`b%3W8 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/gl/formats.py b/venv/lib/python3.12/site-packages/django/conf/locale/gl/formats.py new file mode 100644 index 0000000000..73729355ff --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/gl/formats.py @@ -0,0 +1,21 @@ +# This file is distributed under the same license as the Django package. +# +# The *_FORMAT strings use the Django date format syntax, +# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date +DATE_FORMAT = r"j \d\e F \d\e Y" +TIME_FORMAT = "H:i" +DATETIME_FORMAT = r"j \d\e F \d\e Y \á\s H:i" +YEAR_MONTH_FORMAT = r"F \d\e Y" +MONTH_DAY_FORMAT = r"j \d\e F" +SHORT_DATE_FORMAT = "d-m-Y" +SHORT_DATETIME_FORMAT = "d-m-Y, H:i" +FIRST_DAY_OF_WEEK = 1 # Monday + +# The *_INPUT_FORMATS strings use the Python strftime format syntax, +# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior +# DATE_INPUT_FORMATS = +# TIME_INPUT_FORMATS = +# DATETIME_INPUT_FORMATS = +DECIMAL_SEPARATOR = "," +THOUSAND_SEPARATOR = "." +# NUMBER_GROUPING = diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/he/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/conf/locale/he/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..e84ead52d11b388fc112fe4d58d5c581f1d6950d GIT binary patch literal 32301 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, 2011-2012 +# Jannis Leidel , 2011 +# Meir Kriheli , 2011-2015,2017,2019-2020,2023 +# Menachem G., 2021 +# Menachem G., 2021 +# אורי רודברג , 2021 +# Yaron Shahrabani , 2021 +# אורי רודברג , 2020,2022-2023 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-09-18 11:41-0300\n" +"PO-Revision-Date: 2023-12-04 06:49+0000\n" +"Last-Translator: Meir Kriheli , " +"2011-2015,2017,2019-2020,2023\n" +"Language-Team: Hebrew (http://app.transifex.com/django/django/language/he/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: he\n" +"Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % " +"1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;\n" + +msgid "Afrikaans" +msgstr "אפריקאנס" + +msgid "Arabic" +msgstr "ערבית" + +msgid "Algerian Arabic" +msgstr "ערבית אלג'ירית" + +msgid "Asturian" +msgstr "אסטורית" + +msgid "Azerbaijani" +msgstr "אזרית" + +msgid "Bulgarian" +msgstr "בולגרית" + +msgid "Belarusian" +msgstr "בֶּלָרוּסִית" + +msgid "Bengali" +msgstr "בנגאלית" + +msgid "Breton" +msgstr "בְּרֶטוֹנִית" + +msgid "Bosnian" +msgstr "בוסנית" + +msgid "Catalan" +msgstr "קאטלונית" + +msgid "Central Kurdish (Sorani)" +msgstr "כורדית מרכזית (סוראני)" + +msgid "Czech" +msgstr "צ'כית" + +msgid "Welsh" +msgstr "וולשית" + +msgid "Danish" +msgstr "דנית" + +msgid "German" +msgstr "גרמנית" + +msgid "Lower Sorbian" +msgstr "סורבית תחתונה" + +msgid "Greek" +msgstr "יוונית" + +msgid "English" +msgstr "אנגלית" + +msgid "Australian English" +msgstr "אנגלית אוסטרלית" + +msgid "British English" +msgstr "אנגלית בריטית" + +msgid "Esperanto" +msgstr "אספרנטו" + +msgid "Spanish" +msgstr "ספרדית" + +msgid "Argentinian Spanish" +msgstr "ספרדית ארגנטינית" + +msgid "Colombian Spanish" +msgstr "ספרדית קולומביאנית" + +msgid "Mexican Spanish" +msgstr "ספרדית מקסיקנית" + +msgid "Nicaraguan Spanish" +msgstr "ספרדית ניקרגואה" + +msgid "Venezuelan Spanish" +msgstr "ספרדית ונצואלית" + +msgid "Estonian" +msgstr "אסטונית" + +msgid "Basque" +msgstr "בסקית" + +msgid "Persian" +msgstr "פרסית" + +msgid "Finnish" +msgstr "פינית" + +msgid "French" +msgstr "צרפתית" + +msgid "Frisian" +msgstr "פריזית" + +msgid "Irish" +msgstr "אירית" + +msgid "Scottish Gaelic" +msgstr "גאלית סקוטית" + +msgid "Galician" +msgstr "גאליציאנית" + +msgid "Hebrew" +msgstr "עברית" + +msgid "Hindi" +msgstr "הינדי" + +msgid "Croatian" +msgstr "קרואטית" + +msgid "Upper Sorbian" +msgstr "סורבית עילית" + +msgid "Hungarian" +msgstr "הונגרית" + +msgid "Armenian" +msgstr "ארמנית" + +msgid "Interlingua" +msgstr "אינטרלינגואה" + +msgid "Indonesian" +msgstr "אינדונזית" + +msgid "Igbo" +msgstr "איגבו" + +msgid "Ido" +msgstr "אידו" + +msgid "Icelandic" +msgstr "איסלנדית" + +msgid "Italian" +msgstr "איטלקית" + +msgid "Japanese" +msgstr "יפנית" + +msgid "Georgian" +msgstr "גיאורגית" + +msgid "Kabyle" +msgstr "קבילה" + +msgid "Kazakh" +msgstr "קזחית" + +msgid "Khmer" +msgstr "חמר" + +msgid "Kannada" +msgstr "קאנאדה" + +msgid "Korean" +msgstr "קוריאנית" + +msgid "Kyrgyz" +msgstr "קירגיזית" + +msgid "Luxembourgish" +msgstr "לוקסמבורגית" + +msgid "Lithuanian" +msgstr "ליטאית" + +msgid "Latvian" +msgstr "לטבית" + +msgid "Macedonian" +msgstr "מקדונית" + +msgid "Malayalam" +msgstr "מלאיאלאם" + +msgid "Mongolian" +msgstr "מונגולי" + +msgid "Marathi" +msgstr "מראטהי" + +msgid "Malay" +msgstr "מלאית" + +msgid "Burmese" +msgstr "בּוּרְמֶזִית" + +msgid "Norwegian Bokmål" +msgstr "נורבגית ספרותית" + +msgid "Nepali" +msgstr "נפאלית" + +msgid "Dutch" +msgstr "הולנדית" + +msgid "Norwegian Nynorsk" +msgstr "נורבגית חדשה" + +msgid "Ossetic" +msgstr "אוסטית" + +msgid "Punjabi" +msgstr "פנג'אבי" + +msgid "Polish" +msgstr "פולנית" + +msgid "Portuguese" +msgstr "פורטוגזית" + +msgid "Brazilian Portuguese" +msgstr "פורטוגזית ברזילאית" + +msgid "Romanian" +msgstr "רומנית" + +msgid "Russian" +msgstr "רוסית" + +msgid "Slovak" +msgstr "סלובקית" + +msgid "Slovenian" +msgstr "סלובנית" + +msgid "Albanian" +msgstr "אלבנית" + +msgid "Serbian" +msgstr "סרבית" + +msgid "Serbian Latin" +msgstr "סרבית לטינית" + +msgid "Swedish" +msgstr "שוודית" + +msgid "Swahili" +msgstr "סווהילי" + +msgid "Tamil" +msgstr "טמילית" + +msgid "Telugu" +msgstr "טלגו" + +msgid "Tajik" +msgstr "טג'יקית" + +msgid "Thai" +msgstr "תאילנדית" + +msgid "Turkmen" +msgstr "טורקמנית" + +msgid "Turkish" +msgstr "טורקית" + +msgid "Tatar" +msgstr "טטרית" + +msgid "Udmurt" +msgstr "אודמורטית" + +msgid "Uyghur" +msgstr "אויגורית" + +msgid "Ukrainian" +msgstr "אוקראינית" + +msgid "Urdu" +msgstr "אורדו" + +msgid "Uzbek" +msgstr "אוזבקית" + +msgid "Vietnamese" +msgstr "וייטנאמית" + +msgid "Simplified Chinese" +msgstr "סינית פשוטה" + +msgid "Traditional Chinese" +msgstr "סינית מסורתית" + +msgid "Messages" +msgstr "הודעות" + +msgid "Site Maps" +msgstr "מפות אתר" + +msgid "Static Files" +msgstr "קבצים סטטיים" + +msgid "Syndication" +msgstr "הפצת תכנים" + +#. Translators: String used to replace omitted page numbers in elided page +#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10]. +msgid "…" +msgstr "..." + +msgid "That page number is not an integer" +msgstr "מספר העמוד אינו מספר שלם" + +msgid "That page number is less than 1" +msgstr "מספר העמוד קטן מ־1" + +msgid "That page contains no results" +msgstr "עמוד זה אינו מכיל תוצאות" + +msgid "Enter a valid value." +msgstr "יש להזין ערך חוקי." + +msgid "Enter a valid URL." +msgstr "יש להזין URL חוקי." + +msgid "Enter a valid integer." +msgstr "יש להזין מספר שלם חוקי." + +msgid "Enter a valid email address." +msgstr "נא להזין כתובת דוא\"ל חוקית" + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" +"יש להזין 'slug' חוקי המכיל אותיות לטיניות, ספרות, קווים תחתונים או מקפים." + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" +"יש להזין 'slug' חוקי המכיל אותיות יוניקוד, ספרות, קווים תחתונים או מקפים." + +msgid "Enter a valid IPv4 address." +msgstr "יש להזין כתובת IPv4 חוקית." + +msgid "Enter a valid IPv6 address." +msgstr "יש להזין כתובת IPv6 חוקית." + +msgid "Enter a valid IPv4 or IPv6 address." +msgstr "יש להזין כתובת IPv4 או IPv6 חוקית." + +msgid "Enter only digits separated by commas." +msgstr "יש להזין רק ספרות מופרדות בפסיקים." + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "יש לוודא שערך זה הינו %(limit_value)s (כרגע %(show_value)s)." + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "יש לוודא שערך זה פחות מ או שווה ל־%(limit_value)s." + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "יש לוודא שערך זה גדול מ או שווה ל־%(limit_value)s." + +#, python-format +msgid "Ensure this value is a multiple of step size %(limit_value)s." +msgstr "יש לוודא שערך זה מהווה מכפלה של %(limit_value)s." + +#, python-format +msgid "" +"Ensure this value is a multiple of step size %(limit_value)s, starting from " +"%(offset)s, e.g. %(offset)s, %(valid_value1)s, %(valid_value2)s, and so on." +msgstr "" +"יש לוודא שערך זה מהווה מכפלה של צעד בגודל %(limit_value)s, החל מ־%(offset)s, " +"לדוגמה: %(offset)s, %(valid_value1)s, %(valid_value2)s וכו'." + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"נא לוודא שערך זה מכיל תו %(limit_value)d לכל הפחות (מכיל %(show_value)d)." +msgstr[1] "" +"נא לוודא שערך זה מכיל %(limit_value)d תווים לכל הפחות (מכיל %(show_value)d)." +msgstr[2] "" +"נא לוודא שערך זה מכיל %(limit_value)d תווים לכל הפחות (מכיל %(show_value)d)." +msgstr[3] "" +"נא לוודא שערך זה מכיל %(limit_value)d תווים לכל הפחות (מכיל %(show_value)d)." + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"נא לוודא שערך זה מכיל תו %(limit_value)d לכל היותר (מכיל %(show_value)d)." +msgstr[1] "" +"נא לוודא שערך זה מכיל %(limit_value)d תווים לכל היותר (מכיל %(show_value)d)." +msgstr[2] "" +"נא לוודא שערך זה מכיל %(limit_value)d תווים לכל היותר (מכיל %(show_value)d)." +msgstr[3] "" +"נא לוודא שערך זה מכיל %(limit_value)d תווים לכל היותר (מכיל %(show_value)d)." + +msgid "Enter a number." +msgstr "נא להזין מספר." + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "נא לוודא שאין יותר מספרה %(max)s בסה\"כ." +msgstr[1] "נא לוודא שאין יותר מ־%(max)s ספרות בסה\"כ." +msgstr[2] "נא לוודא שאין יותר מ־%(max)s ספרות בסה\"כ." +msgstr[3] "נא לוודא שאין יותר מ־%(max)s ספרות בסה\"כ." + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "נא לוודא שאין יותר מספרה %(max)s אחרי הנקודה." +msgstr[1] "נא לוודא שאין יותר מ־%(max)s ספרות אחרי הנקודה." +msgstr[2] "נא לוודא שאין יותר מ־%(max)s ספרות אחרי הנקודה." +msgstr[3] "נא לוודא שאין יותר מ־%(max)s ספרות אחרי הנקודה." + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "נא לוודא שאין יותר מספרה %(max)s לפני הנקודה העשרונית" +msgstr[1] "נא לוודא שאין יותר מ־%(max)s ספרות לפני הנקודה העשרונית" +msgstr[2] "נא לוודא שאין יותר מ־%(max)s ספרות לפני הנקודה העשרונית" +msgstr[3] "נא לוודא שאין יותר מ־%(max)s ספרות לפני הנקודה העשרונית" + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" +"סיומת הקובץ \"%(extension)s\" אסורה. הסיומות המותרות הן: " +"%(allowed_extensions)s." + +msgid "Null characters are not allowed." +msgstr "תווי NULL אינם מותרים. " + +msgid "and" +msgstr "ו" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "%(model_name)s·עם·%(field_labels)s·אלו קיימים כבר." + +#, python-format +msgid "Constraint “%(name)s” is violated." +msgstr "המגבלה \"%(name)s\" הופרה." + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "ערך %(value)r אינו אפשרות חוקית." + +msgid "This field cannot be null." +msgstr "שדה זה אינו יכול להיות ריק." + +msgid "This field cannot be blank." +msgstr "שדה זה אינו יכול להיות ריק." + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "%(model_name)s·עם·%(field_label)s·זה קיימת כבר." + +#. Translators: The 'lookup_type' is one of 'date', 'year' or +#. 'month'. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" +"%(field_label)s חייב להיות ייחודי עבור %(date_field_label)s %(lookup_type)s." + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "שדה מסוג: %(field_type)s" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "הערך \"%(value)s\" חייב להיות True או False." + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "\"%(value)s\" חייב להיות אחד מ־True‏, False, או None." + +msgid "Boolean (Either True or False)" +msgstr "בוליאני (אמת או שקר)" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "מחרוזת (עד %(max_length)s תווים)" + +msgid "String (unlimited)" +msgstr "מחרוזת (ללא הגבלה)." + +msgid "Comma-separated integers" +msgstr "מספרים שלמים מופרדים בפסיקים" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" +"הערך \"%(value)s\" מכיל פורמט תאריך לא חוקי. חייב להיות בפורמט YYYY-MM-DD." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "הערך \"%(value)s\" בפורמט הנכון (YYYY-MM-DD), אך אינו תאריך חוקי." + +msgid "Date (without time)" +msgstr "תאריך (ללא שעה)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" +"הערך \"%(value)s\" מכיל פורמט לא חוקי. הוא חייב להיות בפורמטYYYY-MM-DD HH:" +"MM[:ss[.uuuuuu]][TZ]." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" +"הערך \"%(value)s\" בפורמט הנכון (YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ]) אך אינו " +"מהווה תאריך/שעה חוקיים." + +msgid "Date (with time)" +msgstr "תאריך (כולל שעה)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "הערך \"%(value)s\" חייב להיות מספר עשרוני." + +msgid "Decimal number" +msgstr "מספר עשרוני" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" +"הערך \"%(value)s\" מכיל פורמט לא חוקי. הוא חייב להיות בפורמט [DD] " +"[[HH:]MM:]ss[.uuuuuu]." + +msgid "Duration" +msgstr "משך" + +msgid "Email address" +msgstr "כתובת דוא\"ל" + +msgid "File path" +msgstr "נתיב קובץ" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "“%(value)s” חייב להיות מספר נקודה צפה." + +msgid "Floating point number" +msgstr "מספר עשרוני" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "הערך '%(value)s' חייב להיות מספר שלם." + +msgid "Integer" +msgstr "מספר שלם" + +msgid "Big (8 byte) integer" +msgstr "מספר שלם גדול (8 בתים)" + +msgid "Small integer" +msgstr "מספר שלם קטן" + +msgid "IPv4 address" +msgstr "כתובת IPv4" + +msgid "IP address" +msgstr "כתובת IP" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "\"%(value)s\" חייב להיות אחד מ־None‏, True, או False." + +msgid "Boolean (Either True, False or None)" +msgstr "בוליאני (אמת, שקר או כלום)" + +msgid "Positive big integer" +msgstr "מספר שלם גדול וחיובי" + +msgid "Positive integer" +msgstr "מספר שלם חיובי" + +msgid "Positive small integer" +msgstr "מספר שלם חיובי קטן" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "Slug (עד %(max_length)s תווים)" + +msgid "Text" +msgstr "טקסט" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" +"הערך “%(value)s” מכיל פורמט לא חוקי. הוא חייב להיות בפורמט HH:MM[:ss[." +"uuuuuu]]." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" +"הערך “%(value)s” בפורמט הנכון (HH:MM[:ss[.uuuuuu]]) אך אינו מהווה שעה חוקית." + +msgid "Time" +msgstr "זמן" + +msgid "URL" +msgstr "URL" + +msgid "Raw binary data" +msgstr "מידע בינארי גולמי" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "\"%(value)s\" אינו UUID חוקי." + +msgid "Universally unique identifier" +msgstr "מזהה ייחודי אוניברסלי" + +msgid "File" +msgstr "קובץ" + +msgid "Image" +msgstr "תמונה" + +msgid "A JSON object" +msgstr "אובייקט JSON" + +msgid "Value must be valid JSON." +msgstr "הערך חייב להיות JSON חוקי." + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "פריט %(model)s עם %(field)s %(value)r אינו קיים." + +msgid "Foreign Key (type determined by related field)" +msgstr "Foreign Key (הסוג נקבע לפי השדה המקושר)" + +msgid "One-to-one relationship" +msgstr "יחס של אחד לאחד" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "קשר %(from)s-%(to)s" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "קשרי %(from)s-%(to)s" + +msgid "Many-to-many relationship" +msgstr "יחס של רבים לרבים" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr ":?.!" + +msgid "This field is required." +msgstr "יש להזין תוכן בשדה זה." + +msgid "Enter a whole number." +msgstr "נא להזין מספר שלם." + +msgid "Enter a valid date." +msgstr "יש להזין תאריך חוקי." + +msgid "Enter a valid time." +msgstr "יש להזין שעה חוקית." + +msgid "Enter a valid date/time." +msgstr "יש להזין תאריך ושעה חוקיים." + +msgid "Enter a valid duration." +msgstr "יש להזין משך חוקי." + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "מספר הימים חייב להיות בין {min_days} ל־{max_days}." + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "לא נשלח שום קובץ. נא לבדוק את סוג הקידוד של הטופס." + +msgid "No file was submitted." +msgstr "לא נשלח שום קובץ" + +msgid "The submitted file is empty." +msgstr "הקובץ שנשלח ריק." + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "נא לוודא ששם קובץ זה מכיל תו %(max)d לכל היותר (מכיל %(length)d)." +msgstr[1] "" +"נא לוודא ששם קובץ זה מכיל %(max)d תווים לכל היותר (מכיל %(length)d)." +msgstr[2] "" +"נא לוודא ששם קובץ זה מכיל %(max)d תווים לכל היותר (מכיל %(length)d)." +msgstr[3] "" +"נא לוודא ששם קובץ זה מכיל %(max)d תווים לכל היותר (מכיל %(length)d)." + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "נא לשים קובץ או סימן את התיבה לניקוי, לא שניהם." + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "נא להעלות תמונה חוקית. הקובץ שהעלת אינו תמונה או מכיל תמונה מקולקלת." + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "יש לבחור אפשרות חוקית. %(value)s אינו בין האפשרויות הזמינות." + +msgid "Enter a list of values." +msgstr "יש להזין רשימת ערכים" + +msgid "Enter a complete value." +msgstr "יש להזין ערך שלם." + +msgid "Enter a valid UUID." +msgstr "יש להזין UUID חוקי." + +msgid "Enter a valid JSON." +msgstr "נא להזין JSON חוקי." + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr ":" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "(שדה מוסתר %(name)s) %(error)s" + +#, python-format +msgid "" +"ManagementForm data is missing or has been tampered with. Missing fields: " +"%(field_names)s. You may need to file a bug report if the issue persists." +msgstr "" +"המידע של ManagementForm חסר או שובש. שדות חסרים: %(field_names)s. יתכן " +"שתצטרך להגיש דיווח באג אם הבעיה נמשכת." + +#, python-format +msgid "Please submit at most %(num)d form." +msgid_plural "Please submit at most %(num)d forms." +msgstr[0] "נא לשלוח טופס %(num)d לכל היותר." +msgstr[1] "נא לשלוח %(num)d טפסים לכל היותר." +msgstr[2] "נא לשלוח %(num)d טפסים לכל היותר." +msgstr[3] "נא לשלוח %(num)d טפסים לכל היותר." + +#, python-format +msgid "Please submit at least %(num)d form." +msgid_plural "Please submit at least %(num)d forms." +msgstr[0] "נא לשלוח טופס %(num)dאו יותר." +msgstr[1] "נא לשלוח %(num)d טפסים או יותר." +msgstr[2] "נא לשלוח %(num)d טפסים או יותר." +msgstr[3] "נא לשלוח %(num)d טפסים או יותר." + +msgid "Order" +msgstr "מיון" + +msgid "Delete" +msgstr "מחיקה" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "נא לתקן את הערכים הכפולים ל%(field)s." + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "נא לתקן את הערכים הכפולים ל%(field)s, שערכים בו חייבים להיות ייחודיים." + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"נא לתקן את הערכים הכפולים %(field_name)s, שחייבים להיות ייחודיים ל%(lookup)s " +"של %(date_field)s." + +msgid "Please correct the duplicate values below." +msgstr "נא לתקן את הערכים הכפולים למטה." + +msgid "The inline value did not match the parent instance." +msgstr "הערך הפנימי אינו תואם לאב." + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "יש לבחור אפשרות חוקית; אפשרות זו אינה אחת מהזמינות." + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "\"%(pk)s\" אינו ערך חוקי." + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" +"לא ניתן לפרש את %(datetime)s באזור הזמן %(current_timezone)s; הוא עשוי להיות " +"דו־משמעי או לא קיים." + +msgid "Clear" +msgstr "לסלק" + +msgid "Currently" +msgstr "עכשיו" + +msgid "Change" +msgstr "שינוי" + +msgid "Unknown" +msgstr "לא ידוע" + +msgid "Yes" +msgstr "כן" + +msgid "No" +msgstr "לא" + +#. Translators: Please do not add spaces around commas. +msgid "yes,no,maybe" +msgstr "כן,לא,אולי" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "בית %(size)d " +msgstr[1] "%(size)d בתים" +msgstr[2] "%(size)d בתים" +msgstr[3] "%(size)d בתים" + +#, python-format +msgid "%s KB" +msgstr "%s ק\"ב" + +#, python-format +msgid "%s MB" +msgstr "%s מ\"ב" + +#, python-format +msgid "%s GB" +msgstr "%s ג\"ב" + +#, python-format +msgid "%s TB" +msgstr "%s ט\"ב" + +#, python-format +msgid "%s PB" +msgstr "%s פ\"ב" + +msgid "p.m." +msgstr "אחר הצהריים" + +msgid "a.m." +msgstr "בבוקר" + +msgid "PM" +msgstr "אחר הצהריים" + +msgid "AM" +msgstr "בבוקר" + +msgid "midnight" +msgstr "חצות" + +msgid "noon" +msgstr "12 בצהריים" + +msgid "Monday" +msgstr "שני" + +msgid "Tuesday" +msgstr "שלישי" + +msgid "Wednesday" +msgstr "רביעי" + +msgid "Thursday" +msgstr "חמישי" + +msgid "Friday" +msgstr "שישי" + +msgid "Saturday" +msgstr "שבת" + +msgid "Sunday" +msgstr "ראשון" + +msgid "Mon" +msgstr "שני" + +msgid "Tue" +msgstr "שלישי" + +msgid "Wed" +msgstr "רביעי" + +msgid "Thu" +msgstr "חמישי" + +msgid "Fri" +msgstr "שישי" + +msgid "Sat" +msgstr "שבת" + +msgid "Sun" +msgstr "ראשון" + +msgid "January" +msgstr "ינואר" + +msgid "February" +msgstr "פברואר" + +msgid "March" +msgstr "מרץ" + +msgid "April" +msgstr "אפריל" + +msgid "May" +msgstr "מאי" + +msgid "June" +msgstr "יוני" + +msgid "July" +msgstr "יולי" + +msgid "August" +msgstr "אוגוסט" + +msgid "September" +msgstr "ספטמבר" + +msgid "October" +msgstr "אוקטובר" + +msgid "November" +msgstr "נובמבר" + +msgid "December" +msgstr "דצמבר" + +msgid "jan" +msgstr "ינו" + +msgid "feb" +msgstr "פבר" + +msgid "mar" +msgstr "מרץ" + +msgid "apr" +msgstr "אפר" + +msgid "may" +msgstr "מאי" + +msgid "jun" +msgstr "יונ" + +msgid "jul" +msgstr "יול" + +msgid "aug" +msgstr "אוג" + +msgid "sep" +msgstr "ספט" + +msgid "oct" +msgstr "אוק" + +msgid "nov" +msgstr "נוב" + +msgid "dec" +msgstr "דצמ" + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "יאנ'" + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "פבר'" + +msgctxt "abbrev. month" +msgid "March" +msgstr "מרץ" + +msgctxt "abbrev. month" +msgid "April" +msgstr "אפריל" + +msgctxt "abbrev. month" +msgid "May" +msgstr "מאי" + +msgctxt "abbrev. month" +msgid "June" +msgstr "יוני" + +msgctxt "abbrev. month" +msgid "July" +msgstr "יולי" + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "אוג'" + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "ספט'" + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "אוק'" + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "נוב'" + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "דצמ'" + +msgctxt "alt. month" +msgid "January" +msgstr "ינואר" + +msgctxt "alt. month" +msgid "February" +msgstr "פברואר" + +msgctxt "alt. month" +msgid "March" +msgstr "מרץ" + +msgctxt "alt. month" +msgid "April" +msgstr "אפריל" + +msgctxt "alt. month" +msgid "May" +msgstr "מאי" + +msgctxt "alt. month" +msgid "June" +msgstr "יוני" + +msgctxt "alt. month" +msgid "July" +msgstr "יולי" + +msgctxt "alt. month" +msgid "August" +msgstr "אוגוסט" + +msgctxt "alt. month" +msgid "September" +msgstr "ספטמבר" + +msgctxt "alt. month" +msgid "October" +msgstr "אוקטובר" + +msgctxt "alt. month" +msgid "November" +msgstr "נובמבר" + +msgctxt "alt. month" +msgid "December" +msgstr "דצמבר" + +msgid "This is not a valid IPv6 address." +msgstr "זו אינה כתובת IPv6 חוקית." + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "%(truncated_text)s‮…" + +msgid "or" +msgstr "או" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr ", " + +#, python-format +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "שנה" +msgstr[1] "שנתיים" +msgstr[2] "%(num)d שנים" +msgstr[3] "%(num)d שנים" + +#, python-format +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "חודש" +msgstr[1] "חודשיים" +msgstr[2] "%(num)d חודשים" +msgstr[3] "%(num)d חודשים" + +#, python-format +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "שבוע" +msgstr[1] "שבועיים" +msgstr[2] "%(num)d שבועות" +msgstr[3] "%(num)d שבועות" + +#, python-format +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "יום" +msgstr[1] "יומיים" +msgstr[2] "%(num)d ימים" +msgstr[3] "%(num)d ימים" + +#, python-format +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "שעה" +msgstr[1] "שעתיים" +msgstr[2] "%(num)d שעות" +msgstr[3] "%(num)d שעות" + +#, python-format +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "דקה" +msgstr[1] "%(num)d דקות" +msgstr[2] "%(num)d דקות" +msgstr[3] "%(num)d דקות" + +msgid "Forbidden" +msgstr "אסור" + +msgid "CSRF verification failed. Request aborted." +msgstr "אימות CSRF נכשל. הבקשה בוטלה." + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" +"הודעה זו מופיעה מאחר ואתר ה־HTTPS הזה דורש מהדפדפן שלך לשלוח \"Referer " +"header\", אך הוא לא נשלח. זה נדרש מסיבות אבטחה, כדי להבטיח שהדפדפן שלך לא " +"נחטף ע\"י צד שלישי." + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" +"אם ביטלת \"Referer\" headers בדפדפן שלך, נא לאפשר אותם מחדש, לפחות עבור אתר " +"זה, חיבורי HTTPS או בקשות \"same-origin\"." + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" +"אם השתמשת בתגאו הוספת header " +"של “Referrer-Policy: no-referrer”, נא להסיר אותם. הגנת ה־CSRF דורשת " +"‎“Referer” header לבדיקת ה־referer. אם פרטיות מדאיגה אותך, ניתן להשתמש " +"בתחליפים כמו לקישור אל אתרי צד שלישי." + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" +"הודעה זו מופיעה מאחר ואתר זה דורש עוגיית CSRF כאשר שולחים טפסים. עוגיה זו " +"נדרשת מסיבות אבטחה, כדי לוודא שהדפדפן שלך לא נחטף על ידי אחרים." + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" +"אם ביטלת עוגיות בדפדפן שלך, נא לאפשר אותם מחדש לפחות עבור אתר זה או בקשות " +"“same-origin”." + +msgid "More information is available with DEBUG=True." +msgstr "מידע נוסף זמין עם " + +msgid "No year specified" +msgstr "לא צוינה שנה" + +msgid "Date out of range" +msgstr "תאריך מחוץ לטווח" + +msgid "No month specified" +msgstr "לא צוין חודש" + +msgid "No day specified" +msgstr "לא צוין יום" + +msgid "No week specified" +msgstr "לא צוין שבוע" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "לא נמצאו %(verbose_name_plural)s" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" +"לא נמצאו %(verbose_name_plural)s בזמן עתיד מאחר ש-%(class_name)s." +"allow_future מוגדר False." + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "מחרוזת תאריך %(datestr)s אינה חוקית בפורמט %(format)s." + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "לא נמצא/ה %(verbose_name)s התואם/ת לשאילתה" + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "העמוד אינו \"last\" או לא ניתן להמרה למספר שם." + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "עמוד לא חוקי (%(page_number)s): %(message)s" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "רשימה ריקה ו־“%(class_name)s.allow_empty” הוא False." + +msgid "Directory indexes are not allowed here." +msgstr "אינדקסים על תיקיה אסורים כאן." + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "\"%(path)s\" אינו קיים" + +#, python-format +msgid "Index of %(directory)s" +msgstr "אינדקס של %(directory)s" + +msgid "The install worked successfully! Congratulations!" +msgstr "ההתקנה עברה בהצלחה! מזל טוב!" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" +"ראו הערות השחרור עבור Django %(version)s" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not " +"configured any URLs." +msgstr "" +"עמוד זה מופיע בעקבות המצאות DEBUG=True בקובץ ההגדרות שלך ולא הגדרת שום URLs." + +msgid "Django Documentation" +msgstr "תיעוד Django" + +msgid "Topics, references, & how-to’s" +msgstr "נושאים, הפניות ומדריכים לביצוע" + +msgid "Tutorial: A Polling App" +msgstr "מדריך ללומד: יישום לסקרים." + +msgid "Get started with Django" +msgstr "התחילו לעבוד עם Django" + +msgid "Django Community" +msgstr "קהילת Django" + +msgid "Connect, get help, or contribute" +msgstr "יצירת קשר, קבלת עזרה או השתתפות" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/he/__init__.py b/venv/lib/python3.12/site-packages/django/conf/locale/he/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/he/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/he/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e9d85bf0ae2899b37f1fb0d5cfec5e468b499f94 GIT binary patch literal 198 zcmX@j%ge<81o5sX(m?cM5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!O4ZNE&rQ|OP0Yy6 zFHO;RNiEZNN=(kybEFQ_cZ$j>v@Gc?jK&MZmQEdVM^ zOiwM=Pssu+OwP|s)6dCIPRs$CnyMckpP83g5+AQuQ2C3)CO1E&G$+-rh!tonBM=vZ O7$2D#85xV1fh+*T8Z>wS literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/he/__pycache__/formats.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/he/__pycache__/formats.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b03607787949b9f5cf095182ace5c66af351c98b GIT binary patch literal 518 zcmY*W%TB^T6rEDugf}Fp3rXBaB23hsAtu$9KqAzXx?na8@aIud9W9Gu@CvMANi+&T+s9pdq4a6Qpz?gx_r|!Lwg}hxJ8qR>2XBMgP{f+ zR$zD7hAmatQWv#cU=?B+k&{ZiP-VnbNUT)8D}eWl7gNOkU!5g3sdRtd4pKh>EUyVu^phCBmoG3*+e0yVj-8779T zGJ$t;>p9Qq7&cW|?-+2R=o6^+ns6{3cMbizaCrqsy|I!X5To2tMiBRR#+ISCp=z{b zRe@avwvC}Ck4J^Ubn7o_1~ygYb{Hd<+TSxOlD4KPidqLjG&2h=BT3Q{r?coXb+iES fW%76dV$0NtjWcHpkY2|?I%BhR<^v>#5fbnX>t2*w literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/he/formats.py b/venv/lib/python3.12/site-packages/django/conf/locale/he/formats.py new file mode 100644 index 0000000000..2cf9286555 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/he/formats.py @@ -0,0 +1,21 @@ +# This file is distributed under the same license as the Django package. +# +# The *_FORMAT strings use the Django date format syntax, +# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date +DATE_FORMAT = "j בF Y" +TIME_FORMAT = "H:i" +DATETIME_FORMAT = "j בF Y H:i" +YEAR_MONTH_FORMAT = "F Y" +MONTH_DAY_FORMAT = "j בF" +SHORT_DATE_FORMAT = "d/m/Y" +SHORT_DATETIME_FORMAT = "d/m/Y H:i" +# FIRST_DAY_OF_WEEK = + +# The *_INPUT_FORMATS strings use the Python strftime format syntax, +# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior +# DATE_INPUT_FORMATS = +# TIME_INPUT_FORMATS = +# DATETIME_INPUT_FORMATS = +DECIMAL_SEPARATOR = "." +THOUSAND_SEPARATOR = "," +# NUMBER_GROUPING = diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/hi/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/conf/locale/hi/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..2d535fb054e618e3e646199bdbbd8734db480392 GIT binary patch literal 19712 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 JaqN3b@c-~O#9ROX literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/hi/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/conf/locale/hi/LC_MESSAGES/django.po new file mode 100644 index 0000000000..20da37666a --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/hi/LC_MESSAGES/django.po @@ -0,0 +1,1254 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# alkuma , 2013 +# Bharat Toge, 2022 +# Chandan kumar , 2012 +# Claude Paroz , 2020 +# Jannis Leidel , 2011 +# Pratik , 2013 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2022-05-17 05:23-0500\n" +"PO-Revision-Date: 2022-07-25 06:49+0000\n" +"Last-Translator: Bharat Toge\n" +"Language-Team: Hindi (http://www.transifex.com/django/django/language/hi/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hi\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Afrikaans" +msgstr "अफ़्रीकांस" + +msgid "Arabic" +msgstr "अरबी" + +msgid "Algerian Arabic" +msgstr "अल्जीरियाई अरब" + +msgid "Asturian" +msgstr "" + +msgid "Azerbaijani" +msgstr "आज़रबाइजानी" + +msgid "Bulgarian" +msgstr "बलगारियन" + +msgid "Belarusian" +msgstr "बेलारूसी" + +msgid "Bengali" +msgstr "बंगाली" + +msgid "Breton" +msgstr "ब्रेटन" + +msgid "Bosnian" +msgstr "बोस्नियन" + +msgid "Catalan" +msgstr "कटलान" + +msgid "Czech" +msgstr "च्चेक" + +msgid "Welsh" +msgstr "वेल्श" + +msgid "Danish" +msgstr "दानिश" + +msgid "German" +msgstr "जर्मन" + +msgid "Lower Sorbian" +msgstr "" + +msgid "Greek" +msgstr "ग्रीक" + +msgid "English" +msgstr "अंग्रेज़ी " + +msgid "Australian English" +msgstr "ऑस्ट्रेलियाई अंग्रेज़ी " + +msgid "British English" +msgstr "ब्रिटिश अंग्रेजी" + +msgid "Esperanto" +msgstr "एस्परेन्तो" + +msgid "Spanish" +msgstr "स्पानिश" + +msgid "Argentinian Spanish" +msgstr "अर्जेंटीना स्पैनिश " + +msgid "Colombian Spanish" +msgstr "कोलंबियाई स्पेनी" + +msgid "Mexican Spanish" +msgstr "मेक्सिकन स्पैनिश" + +msgid "Nicaraguan Spanish" +msgstr "निकारागुआ स्पैनिश" + +msgid "Venezuelan Spanish" +msgstr "वेनेज़ुएलाई स्पेनिश" + +msgid "Estonian" +msgstr "एस्टोनियन" + +msgid "Basque" +msgstr "बास्क" + +msgid "Persian" +msgstr "पारसी" + +msgid "Finnish" +msgstr "फ़िन्निश" + +msgid "French" +msgstr "फ्रेंच" + +msgid "Frisian" +msgstr "फ्रिसियन" + +msgid "Irish" +msgstr "आयरिश" + +msgid "Scottish Gaelic" +msgstr "" + +msgid "Galician" +msgstr "गलिशियन" + +msgid "Hebrew" +msgstr "हि‍ब्रू" + +msgid "Hindi" +msgstr "हिंदी" + +msgid "Croatian" +msgstr "क्रोयेशियन" + +msgid "Upper Sorbian" +msgstr "" + +msgid "Hungarian" +msgstr "हंगेरियन" + +msgid "Armenian" +msgstr "" + +msgid "Interlingua" +msgstr "इंतर्लिंगुआ" + +msgid "Indonesian" +msgstr "इन्डोनेशियन " + +msgid "Igbo" +msgstr "" + +msgid "Ido" +msgstr "" + +msgid "Icelandic" +msgstr "आयिस्लान्डिक" + +msgid "Italian" +msgstr "इटैलियन" + +msgid "Japanese" +msgstr "जपानी" + +msgid "Georgian" +msgstr "ज्योर्जियन" + +msgid "Kabyle" +msgstr "" + +msgid "Kazakh" +msgstr "कज़ाख" + +msgid "Khmer" +msgstr "ख्मेर" + +msgid "Kannada" +msgstr "कन्‍नड़" + +msgid "Korean" +msgstr "कोरियन" + +msgid "Kyrgyz" +msgstr "" + +msgid "Luxembourgish" +msgstr "लक्संबर्गी" + +msgid "Lithuanian" +msgstr "लिथुवेनियन" + +msgid "Latvian" +msgstr "लात्वियन" + +msgid "Macedonian" +msgstr "मेसिडोनियन" + +msgid "Malayalam" +msgstr "मलयालम" + +msgid "Mongolian" +msgstr "मंगोलियन" + +msgid "Marathi" +msgstr "मराठी" + +msgid "Malay" +msgstr "मलय भाषा" + +msgid "Burmese" +msgstr "बर्मीज़" + +msgid "Norwegian Bokmål" +msgstr "" + +msgid "Nepali" +msgstr "नेपाली" + +msgid "Dutch" +msgstr "डच" + +msgid "Norwegian Nynorsk" +msgstr "नार्वेजियन नायनॉर्स्क" + +msgid "Ossetic" +msgstr "ओस्सेटिक" + +msgid "Punjabi" +msgstr "पंजाबी" + +msgid "Polish" +msgstr "पोलिश" + +msgid "Portuguese" +msgstr "पुर्तगाली" + +msgid "Brazilian Portuguese" +msgstr "ब्रजिलियन पुर्तगाली" + +msgid "Romanian" +msgstr "रोमानियन" + +msgid "Russian" +msgstr "रूसी" + +msgid "Slovak" +msgstr "स्लोवाक" + +msgid "Slovenian" +msgstr "स्लोवेनियन" + +msgid "Albanian" +msgstr "अल्बेनियन्" + +msgid "Serbian" +msgstr "सर्बियन" + +msgid "Serbian Latin" +msgstr "सर्बियाई लैटिन" + +msgid "Swedish" +msgstr "स्वीडिश" + +msgid "Swahili" +msgstr "स्वाहिली" + +msgid "Tamil" +msgstr "तमिल" + +msgid "Telugu" +msgstr "तेलुगु" + +msgid "Tajik" +msgstr "" + +msgid "Thai" +msgstr "थाई" + +msgid "Turkmen" +msgstr "" + +msgid "Turkish" +msgstr "तुर्किश" + +msgid "Tatar" +msgstr "तातार" + +msgid "Udmurt" +msgstr "उद्मर्त" + +msgid "Ukrainian" +msgstr "यूक्रानियन" + +msgid "Urdu" +msgstr "उर्दू" + +msgid "Uzbek" +msgstr "उज़्बेक" + +msgid "Vietnamese" +msgstr "वियतनामी" + +msgid "Simplified Chinese" +msgstr "सरल चीनी" + +msgid "Traditional Chinese" +msgstr "पारम्परिक चीनी" + +msgid "Messages" +msgstr "संदेश" + +msgid "Site Maps" +msgstr "साइट मैप" + +msgid "Static Files" +msgstr "स्थिर फ़ाइलें" + +msgid "Syndication" +msgstr "सिंडिकेशन" + +#. Translators: String used to replace omitted page numbers in elided page +#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10]. +msgid "…" +msgstr "" + +msgid "That page number is not an integer" +msgstr "यह पृष्ठ संख्या पूर्णांक नहीं है" + +msgid "That page number is less than 1" +msgstr "यह पृष्ठ संख्या 1 से कम है " + +msgid "That page contains no results" +msgstr "उस पृष्ठ पर कोई परिणाम नहीं हैं" + +msgid "Enter a valid value." +msgstr "एक मान्य मूल्य दर्ज करें" + +msgid "Enter a valid URL." +msgstr "वैध यू.आर.एल भरें ।" + +msgid "Enter a valid integer." +msgstr "एक मान्य पूर्ण संख्या दर्ज करें" + +msgid "Enter a valid email address." +msgstr "वैध डाक पता प्रविष्ट करें।" + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" + +msgid "Enter a valid IPv4 address." +msgstr "वैध आइ.पि वी 4 पता भरें ।" + +msgid "Enter a valid IPv6 address." +msgstr "वैध IPv6 पता दर्ज करें." + +msgid "Enter a valid IPv4 or IPv6 address." +msgstr "वैध IPv4 या IPv6 पता दर्ज करें." + +msgid "Enter only digits separated by commas." +msgstr "अल्पविराम अंक मात्र ही भरें ।" + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "" +"सुनिश्चित करें कि यह मान %(limit_value)s (यह\n" +" %(show_value)s है) है ।" + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "सुनिश्चित करें कि यह मान %(limit_value)s से कम या बराबर है ।" + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "सुनिश्चित करें यह मान %(limit_value)s से बड़ा या बराबर है ।" + +#, python-format +msgid "Ensure this value is a multiple of step size %(limit_value)s." +msgstr "" + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +msgstr[1] "" + +msgid "Enter a number." +msgstr "एक संख्या दर्ज करें ।" + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" + +msgid "Null characters are not allowed." +msgstr "" + +msgid "and" +msgstr "और" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "" + +#, python-format +msgid "Constraint “%(name)s” is violated." +msgstr "" + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "" + +msgid "This field cannot be null." +msgstr "यह मूल्य खाली नहीं हो सकता ।" + +msgid "This field cannot be blank." +msgstr "इस फ़ील्ड रिक्त नहीं हो सकता है." + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "इस %(field_label)s के साथ एक %(model_name)s पहले से ही उपस्थित है ।" + +#. Translators: The 'lookup_type' is one of 'date', 'year' or +#. 'month'. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "फील्ड के प्रकार: %(field_type)s" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "" + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "" + +msgid "Boolean (Either True or False)" +msgstr "बूलियन (सही अथ‌वा गलत)" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "स्ट्रिंग (अधिकतम लम्बाई %(max_length)s)" + +msgid "Comma-separated integers" +msgstr "अल्पविराम सीमांकित संख्या" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" + +msgid "Date (without time)" +msgstr "तिथि (बिना समय)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" + +msgid "Date (with time)" +msgstr "तिथि (समय के साथ)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "" + +msgid "Decimal number" +msgstr "दशमलव संख्या" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" + +msgid "Duration" +msgstr "अवधि" + +msgid "Email address" +msgstr "ईमेल पता" + +msgid "File path" +msgstr "संचिका पथ" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "" + +msgid "Floating point number" +msgstr "चल बिन्दु संख्या" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "" + +msgid "Integer" +msgstr "पूर्णांक" + +msgid "Big (8 byte) integer" +msgstr "बड़ा (8 बाइट) पूर्णांक " + +msgid "Small integer" +msgstr "छोटा पूर्णांक" + +msgid "IPv4 address" +msgstr "IPv4 पता" + +msgid "IP address" +msgstr "आइ.पि पता" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "" + +msgid "Boolean (Either True, False or None)" +msgstr "बूलियन (सही, गलत या कुछ नहीं)" + +msgid "Positive big integer" +msgstr "" + +msgid "Positive integer" +msgstr "धनात्मक पूर्णांक" + +msgid "Positive small integer" +msgstr "धनात्मक छोटा पूर्णांक" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "स्लग (%(max_length)s तक)" + +msgid "Text" +msgstr "पाठ" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" + +msgid "Time" +msgstr "समय" + +msgid "URL" +msgstr "यू.आर.एल" + +msgid "Raw binary data" +msgstr "" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "" + +msgid "Universally unique identifier" +msgstr "" + +msgid "File" +msgstr "फाइल" + +msgid "Image" +msgstr "छवि" + +msgid "A JSON object" +msgstr "एक JSON डेटा object" + +msgid "Value must be valid JSON." +msgstr "दर्ज किया गया डेटा वैध JSON होना अनिवार्य है" + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "" + +msgid "Foreign Key (type determined by related field)" +msgstr "विदेशी कुंजी (संबंधित क्षेत्र के द्वारा प्रकार निर्धारित)" + +msgid "One-to-one relationship" +msgstr "एक-एक संबंध" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "" + +msgid "Many-to-many relationship" +msgstr "बहुत से कई संबंध" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr "" + +msgid "This field is required." +msgstr "यह क्षेत्र अपेक्षित हैं" + +msgid "Enter a whole number." +msgstr "एक पूर्ण संख्या दर्ज करें ।" + +msgid "Enter a valid date." +msgstr "वैध तिथि भरें ।" + +msgid "Enter a valid time." +msgstr "वैध समय भरें ।" + +msgid "Enter a valid date/time." +msgstr "वैध तिथि/समय भरें ।" + +msgid "Enter a valid duration." +msgstr "एक वैध अवधी दर्ज करें" + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "दिनों की संख्या {min_days} और {max_days} के बीच होना अनिवार्य है " + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "कोई संचिका निवेदित नहीं हुई । कृपया कूटलेखन की जाँच करें ।" + +msgid "No file was submitted." +msgstr "कोई संचिका निवेदित नहीं हुई ।" + +msgid "The submitted file is empty." +msgstr "निवेदित संचिका खाली है ।" + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" +msgstr[1] "" + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "कृपया या फ़ाइल प्रस्तुत करे या साफ जांचपेटी की जाँच करे,दोनों नहीं ." + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "वैध चित्र निवेदन करें । आप के द्वारा निवेदित संचिका अमान्य अथवा दूषित है ।" + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "मान्य इच्छा चयन करें । %(value)s लभ्य इच्छाओं में उप्लब्ध नहीं हैं ।" + +msgid "Enter a list of values." +msgstr "मूल्य सूची दर्ज करें ।" + +msgid "Enter a complete value." +msgstr "" + +msgid "Enter a valid UUID." +msgstr "एक वैध UUID भरें " + +msgid "Enter a valid JSON." +msgstr "एक वैध JSON भरें " + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr "" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "" + +#, python-format +msgid "" +"ManagementForm data is missing or has been tampered with. Missing fields: " +"%(field_names)s. You may need to file a bug report if the issue persists." +msgstr "" + +#, python-format +msgid "Please submit at most %(num)d form." +msgid_plural "Please submit at most %(num)d forms." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "Please submit at least %(num)d form." +msgid_plural "Please submit at least %(num)d forms." +msgstr[0] "" +msgstr[1] "" + +msgid "Order" +msgstr "छाटें" + +msgid "Delete" +msgstr "मिटाएँ" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "कृपया %(field)s के लिए डुप्लिकेट डेटा को सही करे." + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "कृपया %(field)s के डुप्लिकेट डेटा जो अद्वितीय होना चाहिए को सही करें." + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"कृपया %(field_name)s के लिए डुप्लिकेट डेटा को सही करे जो %(date_field)s में " +"%(lookup)s के लिए अद्वितीय होना चाहिए." + +msgid "Please correct the duplicate values below." +msgstr "कृपया डुप्लिकेट मानों को सही करें." + +msgid "The inline value did not match the parent instance." +msgstr "" + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "मान्य विकल्प चयन करें । यह विकल्प उपस्थित विकल्पों में नहीं है ।" + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "" + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" + +msgid "Clear" +msgstr "रिक्त करें" + +msgid "Currently" +msgstr "फिलहाल" + +msgid "Change" +msgstr "बदलें" + +msgid "Unknown" +msgstr "अनजान" + +msgid "Yes" +msgstr "हाँ" + +msgid "No" +msgstr "नहीं" + +#. Translators: Please do not add spaces around commas. +msgid "yes,no,maybe" +msgstr "हाँ,नहीं,शायद" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)d बाइट" +msgstr[1] "%(size)d बाइट" + +#, python-format +msgid "%s KB" +msgstr "%s केबी " + +#, python-format +msgid "%s MB" +msgstr "%s मेबी " + +#, python-format +msgid "%s GB" +msgstr "%s जीबी " + +#, python-format +msgid "%s TB" +msgstr "%s टीबी" + +#, python-format +msgid "%s PB" +msgstr "%s पीबी" + +msgid "p.m." +msgstr "बजे" + +msgid "a.m." +msgstr "बजे" + +msgid "PM" +msgstr "बजे" + +msgid "AM" +msgstr "बजे" + +msgid "midnight" +msgstr "मध्यरात्री" + +msgid "noon" +msgstr "दोपहर" + +msgid "Monday" +msgstr "सोम‌वार" + +msgid "Tuesday" +msgstr "मंगलवार" + +msgid "Wednesday" +msgstr "बुधवार" + +msgid "Thursday" +msgstr "गुरूवार" + +msgid "Friday" +msgstr "शुक्रवार" + +msgid "Saturday" +msgstr "शनिवार" + +msgid "Sunday" +msgstr "रविवार" + +msgid "Mon" +msgstr "सोम" + +msgid "Tue" +msgstr "मंगल" + +msgid "Wed" +msgstr "बुध" + +msgid "Thu" +msgstr "गुरू" + +msgid "Fri" +msgstr "शुक्र" + +msgid "Sat" +msgstr "शनि" + +msgid "Sun" +msgstr "रवि" + +msgid "January" +msgstr "जनवरी" + +msgid "February" +msgstr "फ़रवरी" + +msgid "March" +msgstr "मार्च" + +msgid "April" +msgstr "अप्रैल" + +msgid "May" +msgstr "मई" + +msgid "June" +msgstr "जून" + +msgid "July" +msgstr "जुलाई" + +msgid "August" +msgstr "अगस्त" + +msgid "September" +msgstr "सितमबर" + +msgid "October" +msgstr "अक्टूबर" + +msgid "November" +msgstr "नवमबर" + +msgid "December" +msgstr "दिसमबर" + +msgid "jan" +msgstr "जन" + +msgid "feb" +msgstr "फ़र" + +msgid "mar" +msgstr "मा" + +msgid "apr" +msgstr "अप्र" + +msgid "may" +msgstr "मई" + +msgid "jun" +msgstr "जून" + +msgid "jul" +msgstr "जुल" + +msgid "aug" +msgstr "अग" + +msgid "sep" +msgstr "सित" + +msgid "oct" +msgstr "अक्ट" + +msgid "nov" +msgstr "नव" + +msgid "dec" +msgstr "दिस्" + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "जनवरी." + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "फ़रवरी." + +msgctxt "abbrev. month" +msgid "March" +msgstr "मार्च" + +msgctxt "abbrev. month" +msgid "April" +msgstr "अप्रैल" + +msgctxt "abbrev. month" +msgid "May" +msgstr "मई" + +msgctxt "abbrev. month" +msgid "June" +msgstr "जून" + +msgctxt "abbrev. month" +msgid "July" +msgstr "जुलाई" + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "अग." + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "सितम्बर." + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "अक्टूबर" + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "नवम्बर." + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "दिसम्बर" + +msgctxt "alt. month" +msgid "January" +msgstr "जनवरी" + +msgctxt "alt. month" +msgid "February" +msgstr "फरवरी" + +msgctxt "alt. month" +msgid "March" +msgstr "मार्च" + +msgctxt "alt. month" +msgid "April" +msgstr "अप्रैल" + +msgctxt "alt. month" +msgid "May" +msgstr "मई" + +msgctxt "alt. month" +msgid "June" +msgstr "जून" + +msgctxt "alt. month" +msgid "July" +msgstr "जुलाई" + +msgctxt "alt. month" +msgid "August" +msgstr "अगस्त" + +msgctxt "alt. month" +msgid "September" +msgstr "सितंबर" + +msgctxt "alt. month" +msgid "October" +msgstr "अक्टूबर" + +msgctxt "alt. month" +msgid "November" +msgstr "नवंबर" + +msgctxt "alt. month" +msgid "December" +msgstr "दिसंबर" + +msgid "This is not a valid IPv6 address." +msgstr "" + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "" + +msgid "or" +msgstr "अथवा" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr ", " + +#, python-format +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "" +msgstr[1] "" + +msgid "Forbidden" +msgstr "" + +msgid "CSRF verification failed. Request aborted." +msgstr "CSRF सत्यापन असफल रहा. Request निरस्त की गई " + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" + +msgid "More information is available with DEBUG=True." +msgstr "" + +msgid "No year specified" +msgstr "कोई साल निर्दिष्ट नहीं किया गया " + +msgid "Date out of range" +msgstr "" + +msgid "No month specified" +msgstr "कोई महीने निर्दिष्ट नहीं किया गया " + +msgid "No day specified" +msgstr "कोई दिन निर्दिष्ट नहीं किया गया " + +msgid "No week specified" +msgstr "कोई सप्ताह निर्दिष्ट नहीं किया गया " + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "%(verbose_name_plural)s उपलब्ध नहीं है" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" +"भविष्य %(verbose_name_plural)s उपलब्ध नहीं है क्योंकि %(class_name)s.allow_future " +"गलत है." + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr " इस प्रश्न %(verbose_name)s से मेल नहीं खाते है" + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "" + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "अवैध पन्ना (%(page_number)s): %(message)s" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "" + +msgid "Directory indexes are not allowed here." +msgstr "निर्देशिका अनुक्रमित की अनुमति यहाँ नहीं है." + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "" + +#, python-format +msgid "Index of %(directory)s" +msgstr "%(directory)s का अनुक्रमणिका" + +msgid "The install worked successfully! Congratulations!" +msgstr "" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not configured any " +"URLs." +msgstr "" + +msgid "Django Documentation" +msgstr "" + +msgid "Topics, references, & how-to’s" +msgstr "" + +msgid "Tutorial: A Polling App" +msgstr "" + +msgid "Get started with Django" +msgstr "" + +msgid "Django Community" +msgstr "" + +msgid "Connect, get help, or contribute" +msgstr "" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/hi/__init__.py b/venv/lib/python3.12/site-packages/django/conf/locale/hi/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/hi/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/hi/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6019135786e0ef3d8b999637e7dbde6b985893bf GIT binary patch literal 198 zcmX@j%ge<81o5sX(m?cM5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!O4ZNE&rQ|OP0Yy6 zFHO;RNiEZNN=(kybEFQ_cZ$j>v@Gc?jK&MZmQEdVM^ zOiwM=Pssu+OwP|s)6dCIPRs$CnyDWjpP83g5+AQuQ2C3)CO1E&G$+-rh!tonBM=vZ O7$2D#85xV1fh+*T)--$o literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/hi/__pycache__/formats.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/hi/__pycache__/formats.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..68986c862b013378766306cdf44e4d8aec4de95b GIT binary patch literal 392 zcmX@j%ge<81o5sX($+9BFgylvV1NiDF4% zjbg22(`2t=%~Ehvh^%5wx5`v-tYQZ8s#sHWb9EzsG3xzd)bZ0~yT$F|7~&f5<{#wi z7;=j{#M2kf5%Bf*3-O3|ag2mX3kG}m2ZaDd5IO{1T%A3A9ev`1T>~7097FtrZV82W z_=g5N`ne#)Rx*4Bx%yX%enx(7s(x-_Ms9v-ioQ!~nZ8qEa<;B(UW$HFPGVkqzJ6J1 zUYUMQW|DqEWl2VUp0S>xk$!PzNvduEP+?+vYO#Jw7Fc0&eqNe>PJVJ?PO5%JrhZy} zQEp;Mv0g#tFAkgB{FKt1RJ$TxprxSjD%J%OAD9^#89#6_@QXEY-{2E%;QqkIAR>8z dLEwgn^aTdN4?+y05Y#^>0hCV*R6qzpYZWr3Di03%*oo)wYU-s%WKB#7cds{r=|6*}c2j zL_%plpa1#f+3%S-GjnFq^DY4B{Q z=Or8e3aENs4v&LZ+xTCCiwRfZF))H^*93eCyczx+yvsiSoPGW!sP{bqPl8WF)qBB< z@^VguFC~1Y4X=YrKLFJ)Lr|Y&C!~v=8dQC6fGX#WQ0d+dmG50p{k|8feIJHO|4FFt z@>!^KUxmxz*X{EY_;@PkOn3rZ0@co!!W6ECx54+rHoP2V_)Yi`_#jfL^N>0D!tDyR$4XJ|jT6jLZ!-hWz^&K9CYRC62k3|X84=;u)?;=Q* zoUQOoScgh~Bh>e~4W0q-g3I9jQ2q8eRKGlB`6DR(UT|KnN9RGMTMpF^y-?*`V&k{L z65(A?{rP%$6uiZT-v*WMUGQ3X2h{t1V!4pUD&I-a^t%l&vElQf-ro(ScNf6p;pH}d z3p|SO4ygRQpxVD1Dt#O3{Wn1A@f+aF;H^;U@3+rCW%*gC`h5{<9DU95>-PD#q3Zh- zRQ~_4;h);)3sHW(_e3cDIm>dnjej{*dtM1IhF3y{rgIZiJ>LUW?)%_T@GhwO+zq8C ze{AFb0;(PlL6!FfsPFI<8-M)LTyIW;M-smbu7KT;B+gE#@$t)0{dF^xe!dq<-yVS) zZ%(U%6!sIo9_jI-BA5`uZ{l%RJwhz4?YYx z!Lz&b{wzb4*MRztDOA7QXrJE-7ZUzm8@>~2{N4kV{voLRe-EXvk3x;B??Tn%1RAUS zr$D89p`{Dee_fU(sB{;?1@KbKS3;H72bo%&3S>w*H$lw&u@ae2)_xcAHEJ%?)Ts_ z_zYA(o`W(jhO43Ku@+$Ik&)<6Mi+k1l|VMz|TRt$~kUzu2+{pjl-*<^s)w}m#>Ag z3+}Y>`=P$?W0v2t{I2EqEq?^hC*2Vj;c0|#h9|_$zPu+&6AVbKx$%gNNrhV`P;`iD3&%-|^{15O*^y2LoInKukzvC5-^EJ4g zMe7{mFF+Z@VU%Gj@d=BE=IsY8kH+{>yEjACZxrf1H`w@Fpyq=Q+3>^g48l)A>CvLK zc|V*3)eo84ABPM@XFpVVPeYC4|Af-#Bd^Hg7r||WPleKpvW*Wd_drv=4Zi^@ z|J!W%w=LfbmH$IF{4uEaJqVTlQ&98$r=iC2lThh@VtMQi_f5 z=m}JP>XtE-eoaC>zX7WJH$vrmhvi<&yP*2}BT(P>ub|%ZC8+d|L57I)1k`srcU@lo zrIs5kw?Nfn7)lSWg=%jLs$D5mdA|lxLFbK7^?MMi+=rm%xoD8;D@=w6i;5|_F-)H${sP_LWJO%!{4KLb|zwczI@p%?hy?UY2ueI!hs^=gag4e*8 z!QY1od>F2Tn>Xfm&>lES_|M>Va9Lko-aDbnza6SSJ_x0+4?vCUuULKu>U}?gN5iB0 z^L{%HE+l*sRQu0_3@v9l5p; z$8OH&how;I`kj!d3n!R z{>1XgEqVVO1NFWWEKjw3fqlNjhR?HHZn?s;7pfi?!A0XIS!TY zI?G9@bT?SO3F`aZ3Xg#AhN|a#Ebp*8E z{3=xcJ_c34Z`%0pLd{=KL)AyuImo{uZ$-*TaXrJ$%aQ*;K98`JIRSDv^7lw_#r9?x zF0zF#fIA3ZZJ+%D{3`NYM0$A}qH8DeMst_XKlavq`+p>GC-Ukd60Sv#qHO7!`gsHL z3FHoB6EcA4`aj6Awl12VBIM18t}i2>HFvC|qD}V(Zr_XCgnS3lbqde)U5bltbAA^& zo%rv;b@st6maE_yJlhSwY2$(Wx5BvyHTo2ism%{Ur zKBOD@zsQS_cOfSs_aeWF{0UNAf5pw~Y@i43LcVXqkHDqKmB=TNr;zKB{fMsZ$U^G# zpC*+5`Au*k@@-@>@*3oHlzu2Ybwk>6H;>%&MLc?t3{L{}|` zb3a^(EJHqx{2lTDGKzc=8AF~xZb$YYZ$lc$2ap%?&IIZ@jr+6nTjxdGzlr^Hg-x0xlWTlU>746e(3cQlIKrCn7o z^>@!sx3sGfMfI$;JDqI#-APFW#Zj|6=~>#9MidnL4KEF%FsTKtLq1G++Kj5^?LnBN zURd$ni6E`Ku3tSRNbmKX<>r3D2o*qO++&YGi9v0`CT3v zg=x*i>BdA&_js^5qj6C8yfAUrHOgKXc%ied6$cGxUF?;E3K;Xl zG|&TgxJ81b=B!K7EH){#G4#h-$Di11C`n&9)-Xw?{J87|<79BwdkMPbtVcuQEK$Do zemF*YXMHf{c3o^bw%ZND)F1O>XMGeke2VJoLn-{&9f?s)^s?V;B!2h2k5}Xmm1=7g znna0d%KF%w3QWa@qBy0tenLfJKaHqF9Hdlry2|Ub#+YZCwLXiRO1NQod%xTE<6tzX z80B_Hy`bS&OYU}`7BOEYpP> z{YudE8g7``V8cfPHwLj^Nuzj@*H-;KKB^x3W^j3pMl?Zn=x)E{Y|N+}Lz$bD8uT@3 zwCh!?v7aPP@qzooBqMiP^LV@R*}~jrlt+i?UenvdfU4Tsv>IN8;-70y2Jzu!4aNe^ zY|Ln?r9V@P2t_;mqLSyaEc)L~BNXPjRAZjJOn;;3rN+El^Z2YOUjgmRKS0&3)KIrd z%2?{6Pn3e`oFSOjx~ttCb$Hh0BtN?#Gl3ViVKkWPG=gT3?#}1-`Ky)GqKP8GoT?p8 ziJcXEwnf@5d;aQp=mHO`ihLP9Sx4{XxlMFO`;vLPj8tPRhWh>t*HE)0(-+f28qFP|5@eLJ3O}%HCvi-TvLF`%;Q-ZQa2jSqs?&6fsJ$HWC+a{w^H-%0T1l7IXB+#oImG2w2R){==sW@ z)0q=BmPtFq7uln*G3iz{^Cj-gB2%8!7ioIx@ucO)UYJJQu?A|v>G#WV=EajvzYIft z9+`M+(2U%m$_+lAHhlBPZFyKO{Xu9V=3U)RKWiULPJbLoWLW`YGW2KI96q&TJuXLyZ!Eywtp=Sg zJ60y5*Jh#e%JfRvuXtIa)Rl&pB-UCinPqPGXkHR(Z7hnCvk7&ps4F)4Q9PF4#7%`` znPi*kAb-Ny%%T}Mn=>pIV^@Xrf5+YR;-Bfc1SW{I0E4|Qs z(kneIHd!)PW*8J#W})wF@xsundT`3C*PJc2CicP>z7pB4^3t}lUxne7VRz^jyC8Ol z^*t5J_F!OO*pBIKgDmGXKo15nekPG7cOf-uV#4t0n;6Hb=hD^9AW5Vqj9INeWglBL z^_plSA75sTGEVlSQ4bw&)uPx<49Zxl1*C}4jX{)RFmHFl%^pm%8OwAKs|AtbfU(H* z#-L1qAjA@A=2jf_nb8$vQ*G>9zhl!{S(+thE7lpd=~fDkJ-)+C>02XbtES9O6-4(& zqb$U@_b`^!L>U`chm5EL63^)C^!t^F>beZf3U;PnRfJY^cY=OOvN9{Cu`uV4b~n`g zO5MDZkrP!-1vJbe`j?8R(KIQ-AYh*{`z_jN%#P7cV^&N&;cGy+>!W(}!S^*NsEFA* z8AfqZC#Id-oZB!hWqWQ5eSJn0d-k4iTU^!CB=J+m#?YWMuV6=O`g z)vU#kl!a^bhepur`4o|?a3^X(r8Z~hT5=Avn8VC4z2Tha-DcOU&Mr2|=mb_;=RR6H z=0jG{Ozs*N7~<1O{d@zID*@}OQ49K_GX2df+Gph9a+3C}7reMjx|8$Hr?YO4xF>H5l`)-gHFLWNw~`&cbmvpU!q~!Yv0O zi<8jo{pxMxy;)pR-uqrg$+8n9T_!@^i>ZlP6LT4oQswj9AVp|s< zafFi(Bu|vZb@d|Fr?aEl%;MD9QIF{;sl$%29!3+eg-KPNR$KP*V`#0KZifG4l)21~ zB+XCm-QETmo;Td-ZqSJMUgLD`(RY;0~a zPGjaqVRX-p!e%=lN>N0hE>OF#g3Pa zIUGwlqkh>LXYh?@4J34$%xg`QxEWN#V62upVT45)Mr|jmq)rq&EolK;D`(PAR)oeb*SFKue!No6I#kKe<4o-TQSHgtj^(bEBZf6FLBNv<2 zWA@~^whCi@&xr3e*SN(oqT5wV)7F}mD<>uDfOvdel`xz}HxXCck1Zu0b!XZ59vonkvX?f9SrF)q@; z9cO9757B0xX+`5+)1C5W*>2OmlES<@s1Ky=PkDOLEXN3u@*2!>d3bK3w^*B&yWA*= zU5t?yXLr$fP%3g2wkJ74ukCZpA2f@+)0J!c`(F1Pa?0T`H*1H3gDP}{depi(VfjBo z;tynkaYi%_Cj z{U^iq7|RrUr4=>CwIt5tK`9(49=>(sKgq_kG>+!_P?9>fP>d}Zj?0VEQn+xVaPRKl z%dUJpYM6NAN*UMf7Q6-RXsYn0C?#jK402_k^5U{TUfq8mon4Vfr5>0}>&MwK;8h__ z?o=^%hjgnLe+ow30S*;CC_E{8Ubs^B@5LP7_h!AqxKnrqy(D)E9vKrWe@cEA;Lp?Z z>6-7*0SC)_khJKMFe{GrWEPejd0I?{PG3vitFR2aVZe9Dk`^uWO768@jqluMw7RX> zugj-a;t<1lUG!?E;3gSxHx1}bQ{2#@_&-cP&Fb?Fq@#Hl02COwQMJuY7%=W*e=2G^ zo8z{Zs>~5iqp~!NoP9U@`}Y!oGe+@D*jdx;$_DRK1)PDYavbd6i;3-3V?OVAzyTf&WU^N$MC~dq=BO>h6*|?HZidVZ zs29u2xX&rYR5ax`RjWRZPK=|5uJw$c#;DG=BpBn6Y}{<7nO>UInipauR^1GbE-F9A zQ4>aEu7+IdmDsNzc5d&#lR02xfB3J?cN76SO4X-AukN8FQXkfM)7iLyBA#-(a~KVp zDb@R*D3qqEs_g8Zr^@1}?C62RZEBv|w)DAWo@vnm`EkRxwTX{Xzs_WU5{BM*u7`z} zN}YjUiAS@%Q*%Dpvn)ux`oCG0-q)7ORYQ5+Yy+9wP{P@so2vQh9ERJ;#iV6fo$dIV z-Ri?F-L(GygBKJE(COKF{`%+Or9V&o^FRB7*=mEsZ~B88o$62+x&3A<3@PU5jEp=^ z;#v2M-NXzzr~IE?gtYl*6j7}9_1pu^zD!Ucm#RnaMIXg7e3(G;NlHaQ1UnTDD?l-9F$^ z=K3AWH9pFin0kYF?$WHV)@|6jl1}*OZHzKB!mH^W5tCgx;ANi6XhoZ_@ z&-Zr|%*!Tgnf5u>D090;=kqjnJJ)(;wwzc+(c$|V`RSRloQM1rZ$!!oE8fPb+_0YQ z<(YBZ7^}3(9B(YAaSo8oXgs)|vBSwo-jiZlC`t>f5Z#<)ntV8cC=i#!)U5nJ&sF~O^=C+wfn)xXwd17G$!^I4+kS{HfeLe zq;eV8r0Ex&lkBV%w=vQ#D%*dbF?*8OY_zV*>Ir8(S!_xh^f=7R_a+B*QMRHg8xAaE zeN}HfGm|9tcFXQ4%%)=SXL={M?Y}P@*CBm7;CFQ6@_S@;9}i_cQT=9b`-V7GLVS#S z#!THhEAvJ%Bsc`H{z?r_jz1YHM&r20T2wvTOtJ0(ZcCN06&=8FnRk-A|Mr>9=2jg< z%yC}!XgkH%9iuq2&7j#KN~aAG+aZqb+1cnwBx?mJWmBC(`!%>bOPd}fc`|!eq4NRl zn9Q)xH+3`st!3t#KiXxl)MjL9+qis|S97^J{*{kb^(bCo&kRP)(Lnx&h*@53n3d3T z?eRc|H?wUvc5dO#98NPGub`bA!L+>ULA{yVr7ftrUtPn}>znOjD?*iUvE$gZBWn;B z81ra8F{?SbV>4hd>6nKvjWKMFo2H$cbxwZt8#*cCoZ~5$$pN#Ael{hQ(5b_Ed2z~g zs0!qD&3_5Z!BK_+&<6WkVfi=@`OcZ8EKrw3cv)=vo%k`TQtbVEJ(dm~7qFUBw3H?v zkP+L1eQ!1=2~+&&as_Sz`Y_a3Pre$PaaJRA#0L@ieZNN0rf? z&wKb%o48x`61=MX9nQ)UexB&;zr7wwv)wT~s(QAq>fz$gKLYu~Ok*q>>vXD`^|5&5 z*1gD$TGW$%8JL>RT$}}&M;YEN4mwP#eDoR%Rp%3SreR-M6tbN;7Vo5;>zSIg61aBm zA3_<-{>y8da}t+hB69|U6P20Mu3@=1)vUJitKt}al9>Hyhd-5t!=BZ2 z&ZWkmiiu)=qF{EldAaizu~k3ou#^3?Pj&z8oaO4>#;Ka$;8!&_xK_>jHNxtVdsi|4 zy>YwNcgumxw`4u${fRj^nwhQj17{ggc@kgtiPT*OU2gB3XXb0oRwFYt7h})M&)Yao z;{$GM7pJ4VwHaX=g{`7Xrev6NhLs@{swU!ie~V*D3vprri( literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/hr/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/conf/locale/hr/LC_MESSAGES/django.po new file mode 100644 index 0000000000..574a7ab767 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/hr/LC_MESSAGES/django.po @@ -0,0 +1,1274 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# aljosa , 2011,2013 +# Berislav Lopac , 2013 +# Bojan Mihelač , 2012 +# Boni Đukić , 2017 +# Jannis Leidel , 2011 +# Mislav Cimperšak , 2015-2016 +# Nino , 2013 +# senko , 2012 +# Ylodi , 2011 +# zmasek , 2012 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-09-27 22:40+0200\n" +"PO-Revision-Date: 2019-11-05 00:38+0000\n" +"Last-Translator: Ramiro Morales\n" +"Language-Team: Croatian (http://www.transifex.com/django/django/language/" +"hr/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hr\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" + +msgid "Afrikaans" +msgstr "Afrikaans" + +msgid "Arabic" +msgstr "Arapski" + +msgid "Asturian" +msgstr "Asturijski" + +msgid "Azerbaijani" +msgstr "Azarbejdžanac" + +msgid "Bulgarian" +msgstr "Unesite ispravnu IPv4 adresu." + +msgid "Belarusian" +msgstr "Bjeloruski" + +msgid "Bengali" +msgstr "Bengalski" + +msgid "Breton" +msgstr "Bretonski" + +msgid "Bosnian" +msgstr "Bošnjački" + +msgid "Catalan" +msgstr "Katalanski" + +msgid "Czech" +msgstr "Češki" + +msgid "Welsh" +msgstr "Velški" + +msgid "Danish" +msgstr "Danski" + +msgid "German" +msgstr "Njemački" + +msgid "Lower Sorbian" +msgstr "Donjolužičkosrpski" + +msgid "Greek" +msgstr "Grčki" + +msgid "English" +msgstr "Engleski" + +msgid "Australian English" +msgstr "Australski engleski" + +msgid "British English" +msgstr "Britanski engleski" + +msgid "Esperanto" +msgstr "Esperanto" + +msgid "Spanish" +msgstr "Španjolski" + +msgid "Argentinian Spanish" +msgstr "Argentinski španjolski" + +msgid "Colombian Spanish" +msgstr "Kolumbijski španjolski" + +msgid "Mexican Spanish" +msgstr "Meksički španjolski" + +msgid "Nicaraguan Spanish" +msgstr "Nikaragvanski Španjolski" + +msgid "Venezuelan Spanish" +msgstr "Venezuelanski Španjolski" + +msgid "Estonian" +msgstr "Estonski" + +msgid "Basque" +msgstr "Baskijski" + +msgid "Persian" +msgstr "Perzijski" + +msgid "Finnish" +msgstr "Finski" + +msgid "French" +msgstr "Francuski" + +msgid "Frisian" +msgstr "Frizijski" + +msgid "Irish" +msgstr "Irski" + +msgid "Scottish Gaelic" +msgstr "Škotski gaelski" + +msgid "Galician" +msgstr "Galičanski" + +msgid "Hebrew" +msgstr "Hebrejski" + +msgid "Hindi" +msgstr "Hindi" + +msgid "Croatian" +msgstr "Hrvatski" + +msgid "Upper Sorbian" +msgstr "Gornjolužičkosrpski" + +msgid "Hungarian" +msgstr "Mađarski" + +msgid "Armenian" +msgstr "" + +msgid "Interlingua" +msgstr "Interlingua" + +msgid "Indonesian" +msgstr "Indonezijski" + +msgid "Ido" +msgstr "Ido" + +msgid "Icelandic" +msgstr "Islandski" + +msgid "Italian" +msgstr "Talijanski" + +msgid "Japanese" +msgstr "Japanski" + +msgid "Georgian" +msgstr "Gruzijski" + +msgid "Kabyle" +msgstr "" + +msgid "Kazakh" +msgstr "Kazaški" + +msgid "Khmer" +msgstr "Kambođanski" + +msgid "Kannada" +msgstr "Kannada" + +msgid "Korean" +msgstr "Koreanski" + +msgid "Luxembourgish" +msgstr "Luksemburški" + +msgid "Lithuanian" +msgstr "Litvanski" + +msgid "Latvian" +msgstr "Latvijski" + +msgid "Macedonian" +msgstr "Makedonski" + +msgid "Malayalam" +msgstr "Malayalam" + +msgid "Mongolian" +msgstr "Mongolski" + +msgid "Marathi" +msgstr "Marathi" + +msgid "Burmese" +msgstr "Burmanski" + +msgid "Norwegian Bokmål" +msgstr "Bokmål" + +msgid "Nepali" +msgstr "Nepalski" + +msgid "Dutch" +msgstr "Nizozemski" + +msgid "Norwegian Nynorsk" +msgstr "Norveški Nynorsk" + +msgid "Ossetic" +msgstr "Osetski" + +msgid "Punjabi" +msgstr "Pendžabljanin" + +msgid "Polish" +msgstr "Poljski" + +msgid "Portuguese" +msgstr "Portugalski" + +msgid "Brazilian Portuguese" +msgstr "Brazilski portugalski" + +msgid "Romanian" +msgstr "Rumunjski" + +msgid "Russian" +msgstr "Ruski" + +msgid "Slovak" +msgstr "Slovački" + +msgid "Slovenian" +msgstr "Slovenski" + +msgid "Albanian" +msgstr "Albanski" + +msgid "Serbian" +msgstr "Srpski" + +msgid "Serbian Latin" +msgstr "Latinski srpski" + +msgid "Swedish" +msgstr "Švedski" + +msgid "Swahili" +msgstr "Swahili" + +msgid "Tamil" +msgstr "Tamilski" + +msgid "Telugu" +msgstr "Teluški" + +msgid "Thai" +msgstr "Thai (tajlandski)" + +msgid "Turkish" +msgstr "Turski" + +msgid "Tatar" +msgstr "Tatarski" + +msgid "Udmurt" +msgstr "Udmurtski" + +msgid "Ukrainian" +msgstr "Ukrajinski" + +msgid "Urdu" +msgstr "Urdu" + +msgid "Uzbek" +msgstr "" + +msgid "Vietnamese" +msgstr "Vijetnamski" + +msgid "Simplified Chinese" +msgstr "Pojednostavljeni kineski" + +msgid "Traditional Chinese" +msgstr "Tradicionalni kineski" + +msgid "Messages" +msgstr "Poruke" + +msgid "Site Maps" +msgstr "Mape stranica" + +msgid "Static Files" +msgstr "Statične datoteke" + +msgid "Syndication" +msgstr "" + +msgid "That page number is not an integer" +msgstr "Broj stranice nije cijeli broj" + +msgid "That page number is less than 1" +msgstr "Broj stranice je manji od 1" + +msgid "That page contains no results" +msgstr "Stranica ne sadrži rezultate" + +msgid "Enter a valid value." +msgstr "Unesite ispravnu vrijednost." + +msgid "Enter a valid URL." +msgstr "Unesite ispravan URL." + +msgid "Enter a valid integer." +msgstr "Unesite vrijednost u obliku cijelog broja." + +msgid "Enter a valid email address." +msgstr "Unesite ispravnu e-mail adresu." + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" + +msgid "Enter a valid IPv4 address." +msgstr "Unesite ispravnu IPv4 adresu." + +msgid "Enter a valid IPv6 address." +msgstr "Unesite ispravnu IPv6 adresu." + +msgid "Enter a valid IPv4 or IPv6 address." +msgstr "Unesite ispravnu IPv4 ili IPv6 adresu." + +msgid "Enter only digits separated by commas." +msgstr "Unesite samo brojeve razdvojene zarezom." + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "" +"Osigurajte da ova vrijednost ima %(limit_value)s (trenutno je " +"%(show_value)s)." + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "Osigurajte da je ova vrijednost manja ili jednaka %(limit_value)s." + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "Osigurajte da je ova vrijednost veća ili jednaka %(limit_value)s." + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Osigurajte da ova vrijednost ima najmanje %(limit_value)d znak (trenutno ima " +"%(show_value)d)." +msgstr[1] "" +"Osigurajte da ova vrijednost ima najmanje %(limit_value)d znakova (trenutno " +"ima %(show_value)d)." +msgstr[2] "" +"Osigurajte da ova vrijednost ima najmanje %(limit_value)d znakova (trenutno " +"ima %(show_value)d)." + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Osigurajte da ova vrijednost ima najviše %(limit_value)d znak (trenutno ima " +"%(show_value)d)." +msgstr[1] "" +"Osigurajte da ova vrijednost ima najviše %(limit_value)d znakova (trenutno " +"ima %(show_value)d)." +msgstr[2] "" +"Osigurajte da ova vrijednost ima najviše %(limit_value)d znakova (trenutno " +"ima %(show_value)d)." + +msgid "Enter a number." +msgstr "Unesite broj." + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "Osigurajte da nema više od ukupno %(max)s numeričkog znaka." +msgstr[1] "Osigurajte da nema više od ukupno %(max)s numerička znaka." +msgstr[2] "Osigurajte da nema više od ukupno %(max)s numeričkih znakova." + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "Osigurajte da nema više od ukupno %(max)s decimalnog mjesta." +msgstr[1] "Osigurajte da nema više od ukupno %(max)s decimalna mjesta." +msgstr[2] "Osigurajte da nema više od ukupno %(max)s decimalnih mjesta." + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "" +"Osigurajte da nema više od ukupno %(max)s numberičkog znaka prije decimalne " +"točke." +msgstr[1] "" +"Osigurajte da nema više od ukupno %(max)s numberička znaka prije decimalne " +"točke." +msgstr[2] "" +"Osigurajte da nema više od ukupno %(max)s numberičkih znakova prije " +"decimalne točke." + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" + +msgid "Null characters are not allowed." +msgstr "" + +msgid "and" +msgstr "i" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "%(model_name)s sa navedenim %(field_labels)s već postoji." + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "Vrijednost %(value)r nije jedna od raspoloživih opcija." + +msgid "This field cannot be null." +msgstr "Ovo polje ne može biti null." + +msgid "This field cannot be blank." +msgstr "Ovo polje ne može biti prazno." + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "%(model_name)s sa navedenim %(field_label)s već postoji." + +#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'. +#. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" +"%(field_label)s mora biti jedinstven pojam za %(date_field_label)s " +"%(lookup_type)s." + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "Polje tipa: %(field_type)s" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "" + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "" + +msgid "Boolean (Either True or False)" +msgstr "Boolean (True ili False)" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "Slova (do %(max_length)s)" + +msgid "Comma-separated integers" +msgstr "Cijeli brojevi odvojeni zarezom" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" + +msgid "Date (without time)" +msgstr "Datum (bez vremena/sati)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" + +msgid "Date (with time)" +msgstr "Datum (sa vremenom/satima)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "" + +msgid "Decimal number" +msgstr "Decimalni broj" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" + +msgid "Duration" +msgstr "Trajanje" + +msgid "Email address" +msgstr "E-mail adresa" + +msgid "File path" +msgstr "Put do datoteke" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "" + +msgid "Floating point number" +msgstr "Broj s pomičnim zarezom (floating point number)" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "" + +msgid "Integer" +msgstr "Cijeli broj" + +msgid "Big (8 byte) integer" +msgstr "Big (8 byte) integer" + +msgid "IPv4 address" +msgstr "IPv4 adresa" + +msgid "IP address" +msgstr "IP adresa" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "" + +msgid "Boolean (Either True, False or None)" +msgstr "Boolean (True, False ili None)" + +msgid "Positive integer" +msgstr "Pozitivan cijeli broj" + +msgid "Positive small integer" +msgstr "Pozitivan mali cijeli broj" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "'Slug' (do %(max_length)s)" + +msgid "Small integer" +msgstr "Mali broj" + +msgid "Text" +msgstr "Tekst" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" + +msgid "Time" +msgstr "Vrijeme" + +msgid "URL" +msgstr "URL" + +msgid "Raw binary data" +msgstr "Binarni podaci" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "" + +msgid "Universally unique identifier" +msgstr "" + +msgid "File" +msgstr "Datoteka" + +msgid "Image" +msgstr "Slika" + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "%(model)s instanca sa %(field)s %(value)r ne postoji." + +msgid "Foreign Key (type determined by related field)" +msgstr "Foreign Key (type determined by related field)" + +msgid "One-to-one relationship" +msgstr "One-to-one relationship" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "%(from)s-%(to)s veza" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "%(from)s-%(to)s veze" + +msgid "Many-to-many relationship" +msgstr "Many-to-many relationship" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr ":?.!" + +msgid "This field is required." +msgstr "Unos za ovo polje je obavezan." + +msgid "Enter a whole number." +msgstr "Unesite cijeli broj." + +msgid "Enter a valid date." +msgstr "Unesite ispravan datum." + +msgid "Enter a valid time." +msgstr "Unesite ispravno vrijeme." + +msgid "Enter a valid date/time." +msgstr "Unesite ispravan datum/vrijeme." + +msgid "Enter a valid duration." +msgstr "Unesite ispravno trajanje." + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "" + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "Datoteka nije poslana. Provjerite 'encoding type' forme." + +msgid "No file was submitted." +msgstr "Datoteka nije poslana." + +msgid "The submitted file is empty." +msgstr "Poslana datoteka je prazna." + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" +"Osigurajte da naziv datoteke ima najviše %(max)d znak (ima %(length)d)." +msgstr[1] "" +"Osigurajte da naziv datoteke ima najviše %(max)d znakova (ima %(length)d)." +msgstr[2] "" +"Osigurajte da naziv datoteke ima najviše %(max)d znakova (ima %(length)d)." + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "Molimo Vas da pošaljete ili datoteku ili označite izbor, a ne oboje." + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" +"Upload-ajte ispravnu sliku. Datoteka koju ste upload-ali ili nije slika ili " +"je oštečena." + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "Odaberite iz ponuđenog. %(value)s nije ponuđen kao opcija." + +msgid "Enter a list of values." +msgstr "Unesite listu vrijednosti." + +msgid "Enter a complete value." +msgstr "Unesite kompletnu vrijednost." + +msgid "Enter a valid UUID." +msgstr "Unesite ispravan UUID." + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr ":" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "(Skriveno polje %(name)s) %(error)s" + +msgid "ManagementForm data is missing or has been tampered with" +msgstr "ManagementForm podaci nedostaju ili su promijenjeni" + +#, python-format +msgid "Please submit %d or fewer forms." +msgid_plural "Please submit %d or fewer forms." +msgstr[0] "Molimo unesite %d obrazac." +msgstr[1] "Molimo unesite %d ili manje obrazaca." +msgstr[2] "Molimo unesite %d ili manje obrazaca." + +#, python-format +msgid "Please submit %d or more forms." +msgid_plural "Please submit %d or more forms." +msgstr[0] "Molimo unesite %d ili više obrazaca." +msgstr[1] "Molimo unesite %d ili više obrazaca." +msgstr[2] "Molimo unesite %d ili više obrazaca." + +msgid "Order" +msgstr "Redoslijed:" + +msgid "Delete" +msgstr "Izbriši" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "Ispravite duplicirane podatke za %(field)s." + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "" +"Molimo ispravite duplicirane podatke za %(field)s, koji moraju biti " +"jedinstveni." + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"Molimo ispravite duplicirane podatke za %(field_name)s koji moraju biti " +"jedinstveni za %(lookup)s u %(date_field)s." + +msgid "Please correct the duplicate values below." +msgstr "Molimo ispravite duplicirane vrijednosti ispod." + +msgid "The inline value did not match the parent instance." +msgstr "" + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "Izaberite ispravnu opciju. Ta opcija nije jedna od dostupnih opcija." + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "" + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" + +msgid "Clear" +msgstr "Isprazni" + +msgid "Currently" +msgstr "Trenutno" + +msgid "Change" +msgstr "Promijeni" + +msgid "Unknown" +msgstr "Nepoznat pojam" + +msgid "Yes" +msgstr "Da" + +msgid "No" +msgstr "Ne" + +msgid "Year" +msgstr "" + +msgid "Month" +msgstr "" + +msgid "Day" +msgstr "" + +msgid "yes,no,maybe" +msgstr "da,ne,možda" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)d byte" +msgstr[1] "%(size)d byte-a" +msgstr[2] "%(size)d byte-a" + +#, python-format +msgid "%s KB" +msgstr "%s KB" + +#, python-format +msgid "%s MB" +msgstr "%s MB" + +#, python-format +msgid "%s GB" +msgstr "%s GB" + +#, python-format +msgid "%s TB" +msgstr "%s TB" + +#, python-format +msgid "%s PB" +msgstr "%s PB" + +msgid "p.m." +msgstr "popodne" + +msgid "a.m." +msgstr "ujutro" + +msgid "PM" +msgstr "popodne" + +msgid "AM" +msgstr "ujutro" + +msgid "midnight" +msgstr "ponoć" + +msgid "noon" +msgstr "podne" + +msgid "Monday" +msgstr "Ponedjeljak" + +msgid "Tuesday" +msgstr "Utorak" + +msgid "Wednesday" +msgstr "Srijeda" + +msgid "Thursday" +msgstr "Četvrtak" + +msgid "Friday" +msgstr "Petak" + +msgid "Saturday" +msgstr "Subota" + +msgid "Sunday" +msgstr "Nedjelja" + +msgid "Mon" +msgstr "Pon" + +msgid "Tue" +msgstr "Uto" + +msgid "Wed" +msgstr "Sri" + +msgid "Thu" +msgstr "Čet" + +msgid "Fri" +msgstr "Pet" + +msgid "Sat" +msgstr "Sub" + +msgid "Sun" +msgstr "Ned" + +msgid "January" +msgstr "Siječanj" + +msgid "February" +msgstr "Veljača" + +msgid "March" +msgstr "Ožujak" + +msgid "April" +msgstr "Travanj" + +msgid "May" +msgstr "Svibanj" + +msgid "June" +msgstr "Lipanj" + +msgid "July" +msgstr "Srpanj" + +msgid "August" +msgstr "Kolovoz" + +msgid "September" +msgstr "Rujan" + +msgid "October" +msgstr "Listopad" + +msgid "November" +msgstr "Studeni" + +msgid "December" +msgstr "Prosinac" + +msgid "jan" +msgstr "sij." + +msgid "feb" +msgstr "velj." + +msgid "mar" +msgstr "ožu." + +msgid "apr" +msgstr "tra." + +msgid "may" +msgstr "svi." + +msgid "jun" +msgstr "lip." + +msgid "jul" +msgstr "srp." + +msgid "aug" +msgstr "kol." + +msgid "sep" +msgstr "ruj." + +msgid "oct" +msgstr "lis." + +msgid "nov" +msgstr "stu." + +msgid "dec" +msgstr "pro." + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "Sij." + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "Velj." + +msgctxt "abbrev. month" +msgid "March" +msgstr "Ožu." + +msgctxt "abbrev. month" +msgid "April" +msgstr "Tra." + +msgctxt "abbrev. month" +msgid "May" +msgstr "Svi." + +msgctxt "abbrev. month" +msgid "June" +msgstr "Lip." + +msgctxt "abbrev. month" +msgid "July" +msgstr "Srp." + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "Kol." + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "Ruj." + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "Lis." + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "Stu." + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "Pro." + +msgctxt "alt. month" +msgid "January" +msgstr "siječnja" + +msgctxt "alt. month" +msgid "February" +msgstr "veljače" + +msgctxt "alt. month" +msgid "March" +msgstr "ožujka" + +msgctxt "alt. month" +msgid "April" +msgstr "travnja" + +msgctxt "alt. month" +msgid "May" +msgstr "svibnja" + +msgctxt "alt. month" +msgid "June" +msgstr "lipnja" + +msgctxt "alt. month" +msgid "July" +msgstr "srpnja" + +msgctxt "alt. month" +msgid "August" +msgstr "kolovoza" + +msgctxt "alt. month" +msgid "September" +msgstr "rujna" + +msgctxt "alt. month" +msgid "October" +msgstr "listopada" + +msgctxt "alt. month" +msgid "November" +msgstr "studenoga" + +msgctxt "alt. month" +msgid "December" +msgstr "prosinca" + +msgid "This is not a valid IPv6 address." +msgstr "To nije ispravna IPv6 adresa." + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "" + +msgid "or" +msgstr "ili" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr "," + +#, python-format +msgid "%d year" +msgid_plural "%d years" +msgstr[0] "%d godina" +msgstr[1] "%d godina" +msgstr[2] "%d godina" + +#, python-format +msgid "%d month" +msgid_plural "%d months" +msgstr[0] "%d mjesec" +msgstr[1] "%d mjeseci" +msgstr[2] "%d mjeseci" + +#, python-format +msgid "%d week" +msgid_plural "%d weeks" +msgstr[0] "%d tjedan" +msgstr[1] "%d tjedna" +msgstr[2] "%d tjedana" + +#, python-format +msgid "%d day" +msgid_plural "%d days" +msgstr[0] "%d dana" +msgstr[1] "%d dana" +msgstr[2] "%d dana" + +#, python-format +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "%d sat" +msgstr[1] "%d sati" +msgstr[2] "%d sati" + +#, python-format +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "%d minutu" +msgstr[1] "%d minute" +msgstr[2] "%d minuta" + +msgid "0 minutes" +msgstr "0 minuta" + +msgid "Forbidden" +msgstr "Zabranjeno" + +msgid "CSRF verification failed. Request aborted." +msgstr "CSRF verifikacija nije uspjela. Zahtjev je prekinut." + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your Web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" +"Ova poruka vam se prikazuje jer stranica na kojoj se nalazite zahtjeva CSRF " +"kolačić prilikom slanja forme. Navedeni kolačić je obavezan iz sigurnosnih " +"razloga, kako bi se osiguralo da vaš internetski preglednik ne bude otet od " +"strane trećih osoba." + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" + +msgid "More information is available with DEBUG=True." +msgstr "Dodatne informacije su dostupne sa postavkom DEBUG=True." + +msgid "No year specified" +msgstr "Nije navedena godina" + +msgid "Date out of range" +msgstr "" + +msgid "No month specified" +msgstr "Nije naveden mjesec" + +msgid "No day specified" +msgstr "Nije naveden dan" + +msgid "No week specified" +msgstr "Tjedan nije određen" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "Nije dostupno: %(verbose_name_plural)s" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" +"%(verbose_name_plural)s nije dostupno jer je %(class_name)s.allow_future " +"False." + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "%(verbose_name)s - pretragom nisu pronađeni rezultati za upit" + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "" + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "Nevažeća stranica (%(page_number)s):%(message)s" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "" + +msgid "Directory indexes are not allowed here." +msgstr "Sadržaji direktorija ovdje nisu dozvoljeni." + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "" + +#, python-format +msgid "Index of %(directory)s" +msgstr "Sadržaj direktorija %(directory)s" + +msgid "Django: the Web framework for perfectionists with deadlines." +msgstr "" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" + +msgid "The install worked successfully! Congratulations!" +msgstr "" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not configured any " +"URLs." +msgstr "" + +msgid "Django Documentation" +msgstr "" + +msgid "Topics, references, & how-to’s" +msgstr "" + +msgid "Tutorial: A Polling App" +msgstr "" + +msgid "Get started with Django" +msgstr "" + +msgid "Django Community" +msgstr "" + +msgid "Connect, get help, or contribute" +msgstr "" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/hr/__init__.py b/venv/lib/python3.12/site-packages/django/conf/locale/hr/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/hr/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/hr/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0a375bcb685847a8838873e399809770ac783d4d GIT binary patch literal 198 zcmX@j%ge<81o5sX(m?cM5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!O4ZNE&rQ|OP0Yy6 zFHO;RNiEZNN=(kybEFQ_cZ$j>v@Gc?jK&MZmQEdVM^ zOiwM=Pssu+OwP|s)6dCIPRs$CTBIKzpP83g5+AQuQ2C3)CO1E&G$+-rh!tonBM=vZ O7$2D#85xV1fh+*VeKdst literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/hr/__pycache__/formats.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/hr/__pycache__/formats.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..084c128b32fa617ab5fc8f329334e8733be18dcf GIT binary patch literal 1023 zcmZvaJ#X4T7{|}Ng98ThQW{k%Lp&fApW1Gys_GOIPzy%JD8h?HIP+GF5fCIirJtgE zw|<6xfl6H%5o@PxDA|~LmtZhWZ@A}qe$Vs&-<{>(;cy7xrHQ{fKYalFA%(qMyX5`@ zPQC#IRDdXzLN3*X+^QRSR1fm1UgT4K$gldl00q8NY5>O|jzJVsLx@&sbfTUt!r6%B zAMhD5)8s98Dc`r~U6mn)r%1R5qoU;-@CJ{o&|@V1TMFMG>$L)0GshV@4p~7C@tnbP zc+O52yhUT0!8k+sp;+))#){e63|Go?l{{Cs5>F7%b*#uSwb=bp2W9dpBU0ucyw@)9 zmF!b(t%EtWHpaI*Jm#Q&_CHGWu_q0OgKbJ)eQY#j;!{lTA%3 zYL}w;Y0W;!%GFv!+4;Cyo%j8n#AV6VCO~91ilC=_TGaZi=EdA;6?>=v5?+H}>TXvr3#UL2MO&z68-#;swdmXG@S=C6YM53;9y6 cC1CF&(Ni2#n=_D1lNqwJD>nX>nIy3HU-Y04umAu6 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/hr/formats.py b/venv/lib/python3.12/site-packages/django/conf/locale/hr/formats.py new file mode 100644 index 0000000000..a2dc45730d --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/hr/formats.py @@ -0,0 +1,44 @@ +# This file is distributed under the same license as the Django package. +# +# The *_FORMAT strings use the Django date format syntax, +# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date +DATE_FORMAT = "j. E Y." +TIME_FORMAT = "H:i" +DATETIME_FORMAT = "j. E Y. H:i" +YEAR_MONTH_FORMAT = "F Y." +MONTH_DAY_FORMAT = "j. F" +SHORT_DATE_FORMAT = "j.m.Y." +SHORT_DATETIME_FORMAT = "j.m.Y. H:i" +FIRST_DAY_OF_WEEK = 1 + +# The *_INPUT_FORMATS strings use the Python strftime format syntax, +# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior +# Kept ISO formats as they are in first position +DATE_INPUT_FORMATS = [ + "%Y-%m-%d", # '2006-10-25' + "%d.%m.%Y.", # '25.10.2006.' + "%d.%m.%y.", # '25.10.06.' + "%d. %m. %Y.", # '25. 10. 2006.' + "%d. %m. %y.", # '25. 10. 06.' +] +DATETIME_INPUT_FORMATS = [ + "%Y-%m-%d %H:%M:%S", # '2006-10-25 14:30:59' + "%Y-%m-%d %H:%M:%S.%f", # '2006-10-25 14:30:59.000200' + "%Y-%m-%d %H:%M", # '2006-10-25 14:30' + "%d.%m.%Y. %H:%M:%S", # '25.10.2006. 14:30:59' + "%d.%m.%Y. %H:%M:%S.%f", # '25.10.2006. 14:30:59.000200' + "%d.%m.%Y. %H:%M", # '25.10.2006. 14:30' + "%d.%m.%y. %H:%M:%S", # '25.10.06. 14:30:59' + "%d.%m.%y. %H:%M:%S.%f", # '25.10.06. 14:30:59.000200' + "%d.%m.%y. %H:%M", # '25.10.06. 14:30' + "%d. %m. %Y. %H:%M:%S", # '25. 10. 2006. 14:30:59' + "%d. %m. %Y. %H:%M:%S.%f", # '25. 10. 2006. 14:30:59.000200' + "%d. %m. %Y. %H:%M", # '25. 10. 2006. 14:30' + "%d. %m. %y. %H:%M:%S", # '25. 10. 06. 14:30:59' + "%d. %m. %y. %H:%M:%S.%f", # '25. 10. 06. 14:30:59.000200' + "%d. %m. %y. %H:%M", # '25. 10. 06. 14:30' +] + +DECIMAL_SEPARATOR = "," +THOUSAND_SEPARATOR = "." +NUMBER_GROUPING = 3 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/hsb/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/conf/locale/hsb/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..600b787b05fb1ff35a899e7b3ab1b184332799d8 GIT binary patch literal 30347 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

D?%p8N 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 Kud7whQT{h}dfW8? literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/hsb/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/conf/locale/hsb/LC_MESSAGES/django.po new file mode 100644 index 0000000000..a5fb97cfb5 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/hsb/LC_MESSAGES/django.po @@ -0,0 +1,1377 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Michael Wolf , 2016-2023 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-09-18 11:41-0300\n" +"PO-Revision-Date: 2023-12-04 06:49+0000\n" +"Last-Translator: Michael Wolf , 2016-2023\n" +"Language-Team: Upper Sorbian (http://app.transifex.com/django/django/" +"language/hsb/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hsb\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || " +"n%100==4 ? 2 : 3);\n" + +msgid "Afrikaans" +msgstr "Afrikaanšćina" + +msgid "Arabic" +msgstr "Arabšćina" + +msgid "Algerian Arabic" +msgstr "Algeriska arabšćina" + +msgid "Asturian" +msgstr "Asturišćina" + +msgid "Azerbaijani" +msgstr "Azerbajdźanšćina" + +msgid "Bulgarian" +msgstr "Bołharšćina" + +msgid "Belarusian" +msgstr "Běłorušćina" + +msgid "Bengali" +msgstr "Bengalšćina" + +msgid "Breton" +msgstr "Bretonšćina" + +msgid "Bosnian" +msgstr "Bosnišćina" + +msgid "Catalan" +msgstr "Katalanšćina" + +msgid "Central Kurdish (Sorani)" +msgstr "Centralna kurdišćina (Sorani)" + +msgid "Czech" +msgstr "Čěšćina" + +msgid "Welsh" +msgstr "Walizišćina" + +msgid "Danish" +msgstr "Danšćina" + +msgid "German" +msgstr "Němčina" + +msgid "Lower Sorbian" +msgstr "Delnjoserbšćina" + +msgid "Greek" +msgstr "Grjekšćina" + +msgid "English" +msgstr "Jendźelšćina" + +msgid "Australian English" +msgstr "Awstralska jendźelšćina" + +msgid "British English" +msgstr "Britiska jendźelšćina" + +msgid "Esperanto" +msgstr "Esperanto" + +msgid "Spanish" +msgstr "Španišćina" + +msgid "Argentinian Spanish" +msgstr "Argentinska španišćina" + +msgid "Colombian Spanish" +msgstr "Kolumbiska španišćina" + +msgid "Mexican Spanish" +msgstr "Mexiska španišćina" + +msgid "Nicaraguan Spanish" +msgstr "Nikaraguaska španišćina" + +msgid "Venezuelan Spanish" +msgstr "Venezuelska španišćina" + +msgid "Estonian" +msgstr "Estišćina" + +msgid "Basque" +msgstr "Baskišćina" + +msgid "Persian" +msgstr "Persišćina" + +msgid "Finnish" +msgstr "Finšćina" + +msgid "French" +msgstr "Francošćina" + +msgid "Frisian" +msgstr "Frizišćina" + +msgid "Irish" +msgstr "Irišćina" + +msgid "Scottish Gaelic" +msgstr "Šotiska gaelšćina" + +msgid "Galician" +msgstr "Galicišćina" + +msgid "Hebrew" +msgstr "Hebrejšćina" + +msgid "Hindi" +msgstr "Hindišćina" + +msgid "Croatian" +msgstr "Chorwatšćina" + +msgid "Upper Sorbian" +msgstr "Hornjoserbšćina" + +msgid "Hungarian" +msgstr "Madźaršćina" + +msgid "Armenian" +msgstr "Armenšćina" + +msgid "Interlingua" +msgstr "Interlingua" + +msgid "Indonesian" +msgstr "Indonezišćina" + +msgid "Igbo" +msgstr "Igbo" + +msgid "Ido" +msgstr "Ido" + +msgid "Icelandic" +msgstr "Islandšćina" + +msgid "Italian" +msgstr "Italšćina" + +msgid "Japanese" +msgstr "Japanšćina" + +msgid "Georgian" +msgstr "Georgišćina" + +msgid "Kabyle" +msgstr "Kabylšćina" + +msgid "Kazakh" +msgstr "Kazachšćina" + +msgid "Khmer" +msgstr "Khmeršćina" + +msgid "Kannada" +msgstr "Kannadšćina" + +msgid "Korean" +msgstr "Korejšćina" + +msgid "Kyrgyz" +msgstr "Kirgišćina" + +msgid "Luxembourgish" +msgstr "Luxemburgšćina" + +msgid "Lithuanian" +msgstr "Litawšćina" + +msgid "Latvian" +msgstr "Letišćina" + +msgid "Macedonian" +msgstr "Makedonšćina" + +msgid "Malayalam" +msgstr "Malajalam" + +msgid "Mongolian" +msgstr "Mongolšćina" + +msgid "Marathi" +msgstr "Marathišćina" + +msgid "Malay" +msgstr "Malajšćina" + +msgid "Burmese" +msgstr "Myanmaršćina" + +msgid "Norwegian Bokmål" +msgstr "Norwegski bokmål" + +msgid "Nepali" +msgstr "Nepalšćina" + +msgid "Dutch" +msgstr "Nižozemšćina" + +msgid "Norwegian Nynorsk" +msgstr "Norwegski nynorsk" + +msgid "Ossetic" +msgstr "Osetšćina" + +msgid "Punjabi" +msgstr "Pundźabišćina" + +msgid "Polish" +msgstr "Pólšćina" + +msgid "Portuguese" +msgstr "Portugalšćina" + +msgid "Brazilian Portuguese" +msgstr "Brazilska portugalšćina" + +msgid "Romanian" +msgstr "Rumunšćina" + +msgid "Russian" +msgstr "Rušćina" + +msgid "Slovak" +msgstr "Słowakšćina" + +msgid "Slovenian" +msgstr "Słowjenšćina" + +msgid "Albanian" +msgstr "Albanšćina" + +msgid "Serbian" +msgstr "Serbišćina" + +msgid "Serbian Latin" +msgstr "Serbšćina, łaćonska" + +msgid "Swedish" +msgstr "Šwedšćina" + +msgid "Swahili" +msgstr "Suahelšćina" + +msgid "Tamil" +msgstr "Tamilšćina" + +msgid "Telugu" +msgstr "Telugušćina" + +msgid "Tajik" +msgstr "Tadźikišćina" + +msgid "Thai" +msgstr "Thaišćina" + +msgid "Turkmen" +msgstr "Turkmenšćina" + +msgid "Turkish" +msgstr "Turkowšćina" + +msgid "Tatar" +msgstr "Tataršćina" + +msgid "Udmurt" +msgstr "Udmurtšćina" + +msgid "Uyghur" +msgstr "Ujguršćina" + +msgid "Ukrainian" +msgstr "Ukrainšćina" + +msgid "Urdu" +msgstr "Urdušćina" + +msgid "Uzbek" +msgstr "Uzbekšćina" + +msgid "Vietnamese" +msgstr "Vietnamšćina" + +msgid "Simplified Chinese" +msgstr "Zjednorjene chinšćina" + +msgid "Traditional Chinese" +msgstr "Tradicionalna chinšćina" + +msgid "Messages" +msgstr "Powěsće" + +msgid "Site Maps" +msgstr "Přehlady sydła" + +msgid "Static Files" +msgstr "Statiske dataje" + +msgid "Syndication" +msgstr "Syndikacija" + +#. Translators: String used to replace omitted page numbers in elided page +#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10]. +msgid "…" +msgstr "…" + +msgid "That page number is not an integer" +msgstr "Tute čisko strony cyła ličba njeje." + +msgid "That page number is less than 1" +msgstr "Tute čisło strony je mjeńše hač 1." + +msgid "That page contains no results" +msgstr "Tuta strona wuslědki njewobsahuje" + +msgid "Enter a valid value." +msgstr "Zapodajće płaćiwu hódnotu." + +msgid "Enter a valid URL." +msgstr "Zapodajće płaćiwy URL." + +msgid "Enter a valid integer." +msgstr "Zapodajće płaćiwu cyłu ličbu." + +msgid "Enter a valid email address." +msgstr "Zapodajće płaćiwu e-mejlowu adresu." + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" +"Zapodajće płaćiwe adresowe mjeno, kotrež jenož pismiki, ličby, podsmužki abo " +"wjazawki wobsahuje." + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" +"Zapodajće płaćiwe „adresowe mjeno“, kotrež jenož pismiki, ličby, podsmužki " +"abo wjazawki wobsahuje." + +msgid "Enter a valid IPv4 address." +msgstr "Zapodajće płaćiwu IPv4-adresu." + +msgid "Enter a valid IPv6 address." +msgstr "Zapodajće płaćiwu IPv6-adresu." + +msgid "Enter a valid IPv4 or IPv6 address." +msgstr "Zapodajće płaćiwu IPv4- abo IPv6-adresu." + +msgid "Enter only digits separated by commas." +msgstr "Zapodajće jenož přez komy dźělene cyfry," + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "Zawěsćće, zo tuta hódnota je %(limit_value)s (je %(show_value)s)." + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "Zawěsćće, zo hódnota je mjeńša hač abo runja %(limit_value)s." + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "Zawěsćće, zo tuta hódnota je wjetša hač abo runja %(limit_value)s." + +#, python-format +msgid "Ensure this value is a multiple of step size %(limit_value)s." +msgstr "" +"Zawěsćće, zo tuta hódnota je množina kročeloweje wulkosće %(limit_value)s." + +#, python-format +msgid "" +"Ensure this value is a multiple of step size %(limit_value)s, starting from " +"%(offset)s, e.g. %(offset)s, %(valid_value1)s, %(valid_value2)s, and so on." +msgstr "" +"Zawěsćće, zo tuta hódnota je mnoho króć kročeloweje wulkosće " +"%(limit_value)s, započinajo z %(offset)s, na př. %(offset)s, " +"%(valid_value1)s, %(valid_value2)s a tak dale." + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Zawěsćće, zo tuta hódnota ma znajmjeńša %(limit_value)d znamješko (ma " +"%(show_value)d)." +msgstr[1] "" +"Zawěsćće, zo tuta hódnota ma znajmjeńša %(limit_value)d znamješce (ma " +"%(show_value)d)." +msgstr[2] "" +"Zawěsćće, zo tuta hódnota ma znajmjeńša %(limit_value)d znamješka (ma " +"%(show_value)d)." +msgstr[3] "" +"Zawěsćće, zo tuta hódnota ma znajmjeńša %(limit_value)d znamješkow (ma " +"%(show_value)d)." + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Zawěsćće, zo tuta hódnota ma maksimalnje %(limit_value)d znamješko (ima " +"%(show_value)d)." +msgstr[1] "" +"Zawěsćće, zo tuta hódnota ma maksimalnje %(limit_value)d znamješce (ima " +"%(show_value)d)." +msgstr[2] "" +"Zawěsćće, zo tuta hódnota ma maksimalnje %(limit_value)d znamješka (ima " +"%(show_value)d)." +msgstr[3] "" +"Zawěsćće, zo tuta hódnota ma maksimalnje %(limit_value)d znamješkow (ima " +"%(show_value)d)." + +msgid "Enter a number." +msgstr "Zapodajće ličbu." + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "Zawěsćće, zo njeje wjace hač %(max)s cyfry dohromady." +msgstr[1] "Zawěsćće, zo njeje wjace hač %(max)s cyfrow dohromady." +msgstr[2] "Zawěsćće, zo njeje wjace hač %(max)s cyfrow dohromady." +msgstr[3] "Zawěsćće, zo njeje wjace hač %(max)s cyfrow dohromady." + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "Zawěsćće, zo njeje wjace hač %(max)s decimalneho městna." +msgstr[1] "Zawěsćće, zo njeje wjace hač %(max)s decimalneju městnow." +msgstr[2] "Zawěsćće, zo njeje wjace hač %(max)s decimalnych městnow." +msgstr[3] "Zawěsćće, zo njeje wjace hač %(max)s decimalnych městnow." + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "Zawěsćće, zo njeje wjace hač %(max)s cyfry před decimalnej komu." +msgstr[1] "Zawěsćće, zo njeje wjace hač %(max)s cyfrow před decimalnej komu." +msgstr[2] "Zawěsćće, zo njeje wjace hač %(max)s cyfrow před decimalnej komu." +msgstr[3] "Zawěsćće, zo njeje wjace hač %(max)s cyfrow před decimalnej komu." + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" +"Datajowy sufiks ' %(extension)s' dowoleny njeje. Dowolene sufiksy su: " +"%(allowed_extensions)s." + +msgid "Null characters are not allowed." +msgstr "Prózdne znamješka dowolene njejsu." + +msgid "and" +msgstr "a" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "%(model_name)s z tutym %(field_labels)s hižo eksistuje." + +#, python-format +msgid "Constraint “%(name)s” is violated." +msgstr "Wobmjezowanje \"%(name)s\" je překročene." + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "Hódnota %(value)r płaćiwa wólba njeje." + +msgid "This field cannot be null." +msgstr "Tute polo njesmě nul być." + +msgid "This field cannot be blank." +msgstr "Tute polo njesmě prózdne być." + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "%(model_name)s z tutym %(field_label)s hižo eksistuje." + +#. Translators: The 'lookup_type' is one of 'date', 'year' or +#. 'month'. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" +"%(field_label)s dyrbi za %(date_field_label)s %(lookup_type)s jónkróćne być." + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "Polo typa: %(field_type)s" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "Hódnota „%(value)s“ dyrbi pak True pak False być." + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "Hódnota „%(value)s“ dyrbi pak True, False pak None być." + +msgid "Boolean (Either True or False)" +msgstr "Boolean (pak True pak False)" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "Znamješkowy rjećazk (hač %(max_length)s)" + +msgid "String (unlimited)" +msgstr "Znamješkowy rjećazk (njewobmjezowany)" + +msgid "Comma-separated integers" +msgstr "Cyłe ličby dźělene přez komu" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" +"Hódnota „%(value)s“ ma njepłaćiwy datumowy format. Dyrbi we formaće DD.MM." +"YYYY być." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" +"Hódnota „%(value)s“ ma korektny format (DD.MM.YYYY), ale je njepłaćiwy datum." + +msgid "Date (without time)" +msgstr "Datum (bjez časa)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" +"Hódnota „%(value)s“ ma njepłaćiwy format. Dyrbi we formaće DD.MM.YYYY HH:MM[:" +"ss[.uuuuuu]][TZ] być." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" +"Hódnota „%(value)s“ ma korektny format (DD.MM.YYYY HH:MM[:ss[.uuuuuu]][TZ]), " +"ale je njepłaćiwy datum/čas." + +msgid "Date (with time)" +msgstr "Datum (z časom)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "Hódnota „%(value)s“ dyrbi decimalna ličba być." + +msgid "Decimal number" +msgstr "Decimalna ličba" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" +"Hódnota „%(value)s“ ma njepłaćiwy format. Dyrbi w formaće [DD] [HH:[MM:]]ss[." +"uuuuuu] być." + +msgid "Duration" +msgstr "Traće" + +msgid "Email address" +msgstr "E-mejlowa adresa" + +msgid "File path" +msgstr "Datajowa šćežka" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "Hódnota „%(value)s“ dyrbi decimalna ličba być." + +msgid "Floating point number" +msgstr "Komowa ličba typa float" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "Hódnota „%(value)s“ dyrbi integer być." + +msgid "Integer" +msgstr "Integer" + +msgid "Big (8 byte) integer" +msgstr "Big (8 byte) integer" + +msgid "Small integer" +msgstr "Mała cyła ličba" + +msgid "IPv4 address" +msgstr "IPv4-adresa" + +msgid "IP address" +msgstr "IP-adresa" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "Hódnota „%(value)s“ dyrbi pak None, True pak False być." + +msgid "Boolean (Either True, False or None)" +msgstr "Boolean (pak True, False pak None)" + +msgid "Positive big integer" +msgstr "Pozitiwna wulka cyła ličba" + +msgid "Positive integer" +msgstr "Pozitiwna cyła ličba" + +msgid "Positive small integer" +msgstr "Pozitiwna mała cyła ličba" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "Adresowe mjeno (hač %(max_length)s)" + +msgid "Text" +msgstr "Tekst" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" +"Hódnota „%(value)s“ ma njepłaćiwy format. Dyrbi we formaće HH:MM[:ss[." +"uuuuuu]] być." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" +"Hódnota „%(value)s“ ma korektny format (HH:MM[:ss[.uuuuuu]]), ale je " +"njepłaćiwy čas." + +msgid "Time" +msgstr "Čas" + +msgid "URL" +msgstr "URL" + +msgid "Raw binary data" +msgstr "Hrube binarne daty" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "„%(value)s“ płaćiwy UUID njeje." + +msgid "Universally unique identifier" +msgstr "Uniwerselnje jónkróćny identifikator" + +msgid "File" +msgstr "Dataja" + +msgid "Image" +msgstr "Wobraz" + +msgid "A JSON object" +msgstr "JSON-objekt" + +msgid "Value must be valid JSON." +msgstr "Hódnota dyrbi płaćiwy JSON być." + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "Instanca %(model)s z %(field)s %(value)r njeeksistuje." + +msgid "Foreign Key (type determined by related field)" +msgstr "Cuzy kluč (typ so přez wotpowědne polo postaja)" + +msgid "One-to-one relationship" +msgstr "Poćah jedyn jedyn" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "Poćah %(from)s-%(to)s" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "Poćahi %(from)s-%(to)s" + +msgid "Many-to-many relationship" +msgstr "Poćah wjele wjele" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr ":?.!" + +msgid "This field is required." +msgstr "Tute polo je trěbne." + +msgid "Enter a whole number." +msgstr "Zapodajće cyłu ličbu." + +msgid "Enter a valid date." +msgstr "Zapodajće płaćiwy datum." + +msgid "Enter a valid time." +msgstr "Zapodajće płaćiwy čas." + +msgid "Enter a valid date/time." +msgstr "Zapodajće płaćiwy datum/čas." + +msgid "Enter a valid duration." +msgstr "Zapodajće płaćiwe traće." + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "Ličba dnjow dyrbi mjez {min_days} a {max_days} być." + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "Žana dataja je so pósłała. Přepruwujće kodowanski typ we formularje." + +msgid "No file was submitted." +msgstr "Žana dataja je so pósłała." + +msgid "The submitted file is empty." +msgstr "Pósłana dataja je prózdna." + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" +"Zawěsćće, zo tute datajowe mjeno ma maksimalnje %(max)d znamješko (ma " +"%(length)d)." +msgstr[1] "" +"Zawěsćće, zo tute datajowe mjeno ma maksimalnje %(max)d znamješce (ma " +"%(length)d)." +msgstr[2] "" +"Zawěsćće, zo tute datajowe mjeno ma maksimalnje %(max)d znamješka (ma " +"%(length)d)." +msgstr[3] "" +"Zawěsćće, zo tute datajowe mjeno ma maksimalnje %(max)d znamješkow (ma " +"%(length)d)." + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "" +"Prošu zapodajće dataju abo stajće hóčku do kontrolneho kašćika, nic wobě." + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" +"Nahrajće płaćiwy wobraz. Dataja, kotruž sće nahrał, pak njebě wobraz pak bě " +"wobškodźeny wobraz. " + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "" +"Wubjerće płaćiwu wolensku móžnosć. %(value)s žana k dispoziciji stejacych " +"wolenskich móžnosćow njeje. " + +msgid "Enter a list of values." +msgstr "Zapodajće lisćinu hódnotow." + +msgid "Enter a complete value." +msgstr "Zapodajće dospołnu hódnotu." + +msgid "Enter a valid UUID." +msgstr "Zapodajće płaćiwy UUID." + +msgid "Enter a valid JSON." +msgstr "Zapodajće płaćiwy JSON." + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr ":" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "(Schowane polo field %(name)s) %(error)s" + +#, python-format +msgid "" +"ManagementForm data is missing or has been tampered with. Missing fields: " +"%(field_names)s. You may need to file a bug report if the issue persists." +msgstr "" +"Daty ManagementForm faluja abo su skepsane. Falowace pola: %(field_names)s. " +"Móžeće zmylkowu rozprawu spisać, jeli problem dale eksistuje." + +#, python-format +msgid "Please submit at most %(num)d form." +msgid_plural "Please submit at most %(num)d forms." +msgstr[0] "Prošu wotposćelće maksimalnje %(num)d formular." +msgstr[1] "Prošu wotposćelće maksimalnje %(num)d formularaj." +msgstr[2] "Prošu wotposćelće maksimalnje %(num)d formulary." +msgstr[3] "Prošu wotposćelće maksimalnje %(num)d formularow." + +#, python-format +msgid "Please submit at least %(num)d form." +msgid_plural "Please submit at least %(num)d forms." +msgstr[0] "Prošu zapodajće znajmjeńša %(num)d formu." +msgstr[1] "Prošu zapodajće znajmjeńša %(num)d formje." +msgstr[2] "Prošu zapodajće znajmjeńša %(num)d formy." +msgstr[3] "Prošu zapodajće znajmjeńša %(num)d formow." + +msgid "Order" +msgstr "Porjad" + +msgid "Delete" +msgstr "Zhašeć" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "Prošu porjedźće dwójne daty za %(field)s." + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "Prošu porjedźće dwójne daty za %(field)s, kotrež dyrbja jónkróćne być." + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"Prošu porjedźće dwójne daty za %(field_name)s, kotrež dyrbja za %(lookup)s w " +"%(date_field)s jónkróćne być." + +msgid "Please correct the duplicate values below." +msgstr "Prošu porjedźće slědowace dwójne hódnoty." + +msgid "The inline value did not match the parent instance." +msgstr "Hódnota inline nadrjadowanej instancy njewotpowěduje." + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "" +"Wubjerće płaćiwu wolensku móžnosć. Tuta wolenska móžnosć jedna z k " +"dispoziciji stejacych wolenskich móžnosćow njeje." + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "\"%(pk)s\" płaćiwa hódnota njeje." + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" +"%(datetime)s njeda so w časowym pasmje %(current_timezone)s interpretować; " +"je snano dwuzmyslny abo njeeksistuje." + +msgid "Clear" +msgstr "Zhašeć" + +msgid "Currently" +msgstr "Tuchwilu" + +msgid "Change" +msgstr "Změnić" + +msgid "Unknown" +msgstr "Njeznaty" + +msgid "Yes" +msgstr "Haj" + +msgid "No" +msgstr "Ně" + +#. Translators: Please do not add spaces around commas. +msgid "yes,no,maybe" +msgstr "haj,ně,snano" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)d bajt" +msgstr[1] "%(size)d bajtaj" +msgstr[2] "%(size)d bajty" +msgstr[3] "%(size)d bajtow" + +#, python-format +msgid "%s KB" +msgstr "%s KB" + +#, python-format +msgid "%s MB" +msgstr "%s MB" + +#, python-format +msgid "%s GB" +msgstr "%s GB" + +#, python-format +msgid "%s TB" +msgstr "%s TB" + +#, python-format +msgid "%s PB" +msgstr "%s PB" + +msgid "p.m." +msgstr "popołdnju" + +msgid "a.m." +msgstr "dopołdnja" + +msgid "PM" +msgstr "popołdnju" + +msgid "AM" +msgstr "dopołdnja" + +msgid "midnight" +msgstr "połnoc" + +msgid "noon" +msgstr "připołdnjo" + +msgid "Monday" +msgstr "Póndźela" + +msgid "Tuesday" +msgstr "Wutora" + +msgid "Wednesday" +msgstr "Srjeda" + +msgid "Thursday" +msgstr "Štwórtk" + +msgid "Friday" +msgstr "Pjatk" + +msgid "Saturday" +msgstr "Sobota" + +msgid "Sunday" +msgstr "Njedźela" + +msgid "Mon" +msgstr "Pón" + +msgid "Tue" +msgstr "Wut" + +msgid "Wed" +msgstr "Srj" + +msgid "Thu" +msgstr "Štw" + +msgid "Fri" +msgstr "Pja" + +msgid "Sat" +msgstr "Sob" + +msgid "Sun" +msgstr "Nje" + +msgid "January" +msgstr "Januar" + +msgid "February" +msgstr "Februar" + +msgid "March" +msgstr "Měrc" + +msgid "April" +msgstr "Apryl" + +msgid "May" +msgstr "Meja" + +msgid "June" +msgstr "Junij" + +msgid "July" +msgstr "Julij" + +msgid "August" +msgstr "Awgust" + +msgid "September" +msgstr "September" + +msgid "October" +msgstr "Oktober" + +msgid "November" +msgstr "Nowember" + +msgid "December" +msgstr "December" + +msgid "jan" +msgstr "jan." + +msgid "feb" +msgstr "feb." + +msgid "mar" +msgstr "měr." + +msgid "apr" +msgstr "apr." + +msgid "may" +msgstr "mej." + +msgid "jun" +msgstr "jun." + +msgid "jul" +msgstr "jul." + +msgid "aug" +msgstr "awg." + +msgid "sep" +msgstr "sep." + +msgid "oct" +msgstr "okt." + +msgid "nov" +msgstr "now." + +msgid "dec" +msgstr "dec." + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "Jan." + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "Feb." + +msgctxt "abbrev. month" +msgid "March" +msgstr "Měrc" + +msgctxt "abbrev. month" +msgid "April" +msgstr "Apryl" + +msgctxt "abbrev. month" +msgid "May" +msgstr "Meja" + +msgctxt "abbrev. month" +msgid "June" +msgstr "Junij" + +msgctxt "abbrev. month" +msgid "July" +msgstr "Julij" + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "Awg." + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "Sept." + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "Okt." + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "Now." + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "Dec." + +msgctxt "alt. month" +msgid "January" +msgstr "Januar" + +msgctxt "alt. month" +msgid "February" +msgstr "Februar" + +msgctxt "alt. month" +msgid "March" +msgstr "Měrc" + +msgctxt "alt. month" +msgid "April" +msgstr "Apryl" + +msgctxt "alt. month" +msgid "May" +msgstr "Meja" + +msgctxt "alt. month" +msgid "June" +msgstr "Junij" + +msgctxt "alt. month" +msgid "July" +msgstr "Julij" + +msgctxt "alt. month" +msgid "August" +msgstr "Awgust" + +msgctxt "alt. month" +msgid "September" +msgstr "September" + +msgctxt "alt. month" +msgid "October" +msgstr "Oktober" + +msgctxt "alt. month" +msgid "November" +msgstr "Nowember" + +msgctxt "alt. month" +msgid "December" +msgstr "December" + +msgid "This is not a valid IPv6 address." +msgstr "To płaćiwa IPv6-adresa njeje." + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "%(truncated_text)s…" + +msgid "or" +msgstr "abo" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr ", " + +#, python-format +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "%(num)d lěto" +msgstr[1] "%(num)dlěće" +msgstr[2] "%(num)d lěta" +msgstr[3] "%(num)d lět" + +#, python-format +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "%(num)d měsac" +msgstr[1] "%(num)d měsacaj" +msgstr[2] "%(num)d měsacy" +msgstr[3] "%(num)d měsacow" + +#, python-format +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "%(num)d tydźeń" +msgstr[1] "%(num)d njedźeli" +msgstr[2] "%(num)d njedźele" +msgstr[3] "%(num)d njedźel" + +#, python-format +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "%(num)d dźeń" +msgstr[1] "%(num)d dnjej" +msgstr[2] "%(num)d dny" +msgstr[3] "%(num)d dnjow" + +#, python-format +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "%(num)d hodźina" +msgstr[1] "%(num)d hodźinje" +msgstr[2] "%(num)d hodźiny" +msgstr[3] "%(num)d hodźin" + +#, python-format +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "%(num)d mjeńšina" +msgstr[1] "%(num)d mjeńšinje" +msgstr[2] "%(num)d mjeńšiny" +msgstr[3] "%(num)d mjeńšin" + +msgid "Forbidden" +msgstr "Zakazany" + +msgid "CSRF verification failed. Request aborted." +msgstr "CSRF-přepruwowanje je so nimokuliło. Naprašowanje je so přetorhnyło." + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" +"Widźiće tutu zdźělenku, dokelž tute HTTPS-sydło \"Referer header\" trjeba, " +"kotryž so ma na waš webwobhladowak pósłać, ale žadyn njeje so pósłał. Tutón " +"header je z wěstotnych přičinow trěbny, zo by so zawěsćiło, zo waš " +"wobhladowak so wot třećich njekapruje." + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" +"Jei sće swój wobhladowak tak konfigurował, zo su hłowy „Referer“ " +"znjemóžnjene, zmóžńće je, znajmjeńša za tute sydło abo za HTTPS-zwiski abo " +"za naprašowanja „sameorigin“." + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" +"Jeli značku wužiwaće abo hłowu „Referrer-Policy: no-referrer“ zapřijimaće, " +"wotstrońće je prošu. CSRF-škit trjeba hłowu „Referer“ , zo by striktnu " +"kontrolu referer přewjedźe. Jeli so wo priwatnosć staraće, wužiwajće " +"alternatiwy kaž za wotkazy k sydłam třećich." + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" +"Widźiće tutu zdźělenku, dokelž tute sydło CSRF-plack trjeba, hdyž so " +"formulary wotesyłaja. Tutón plack je z přičinow wěstoty trěbny, zo by so waš " +"wobhladowak wot třećich njekapruje." + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" +"Jeli sće swój wobhladowak tak konfigurował, zo su placki znjemóžnjene, " +"zmóžńće je zaso, znajmjeńša za tute sydło abo za naprašowanja „same-origin“." + +msgid "More information is available with DEBUG=True." +msgstr "Z DEBUG=True su dalše informacije k dispoziciji." + +msgid "No year specified" +msgstr "Žane lěto podate" + +msgid "Date out of range" +msgstr "Datum zwonka wobłuka" + +msgid "No month specified" +msgstr "Žadyn měsac podaty" + +msgid "No day specified" +msgstr "Žadyn dźeń podaty" + +msgid "No week specified" +msgstr "Žadyn tydźeń podaty" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "Žadyn %(verbose_name_plural)s k dispoziciji njeje" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" +"Přichodowe %(verbose_name_plural)s k dispoziciji njejsu, dokelž hódnota " +"%(class_name)s.allow_future je False." + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "" +"Njepłaćiwy „%(format)s“ za datumowy znamješkowy rjaćazk „%(datestr)s“ podaty" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "Žane %(verbose_name)s namakane, kotrež naprašowanju wotpowěduje" + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "Strona „last“ njeje, ani njeda so do int konwertować." + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "Njepłaćiwa strona (%(page_number)s): %(message)s" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "Prózdna lisćina a „%(class_name)s.allow_empty“ je False." + +msgid "Directory indexes are not allowed here." +msgstr "Zapisowe indeksy tu dowolone njejsu." + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "„%(path)s“ njeeksistuje" + +#, python-format +msgid "Index of %(directory)s" +msgstr "Indeks %(directory)s" + +msgid "The install worked successfully! Congratulations!" +msgstr "Instalacija bě wuspěšna! Zbožopřeće!" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" +"Čitajće wersijowe informacije za Django " +"%(version)s" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not " +"configured any URLs." +msgstr "" +"Widźiće tutu stronu, dokelž DEBUG=True je we wašej dataji nastajenjow a njejsće URL " +"skonfigurował." + +msgid "Django Documentation" +msgstr "Dokumentacija Django" + +msgid "Topics, references, & how-to’s" +msgstr "Temy, referency a nawody" + +msgid "Tutorial: A Polling App" +msgstr "Nawod: Naprašowanske nałoženje" + +msgid "Get started with Django" +msgstr "Prěnje kroki z Django" + +msgid "Django Community" +msgstr "Zhromadźenstwo Django" + +msgid "Connect, get help, or contribute" +msgstr "Zwjazać, pomoc wobstarać abo přinošować" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/hu/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/conf/locale/hu/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..f55eb626b48eba934ee472ff97e832190233b013 GIT binary patch literal 29197 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, 2018 +# András Veres-Szentkirályi, 2016-2021,2023 +# Attila Nagy <>, 2012 +# Balázs Meskó , 2024 +# Balázs R, 2023 +# Dóra Szendrei , 2017 +# Istvan Farkas , 2019 +# Jannis Leidel , 2011 +# János R, 2011-2012,2014 +# János R, 2022 +# Máté Őry , 2013 +# Szilveszter Farkas , 2011 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-09-18 11:41-0300\n" +"PO-Revision-Date: 2024-01-12 06:49+0000\n" +"Last-Translator: Balázs Meskó , 2024\n" +"Language-Team: Hungarian (http://app.transifex.com/django/django/language/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Afrikaans" +msgstr "Afrikaans" + +msgid "Arabic" +msgstr "Arab" + +msgid "Algerian Arabic" +msgstr "algériai arab" + +msgid "Asturian" +msgstr "Asztúriai" + +msgid "Azerbaijani" +msgstr "azerbajdzsáni" + +msgid "Bulgarian" +msgstr "Bolgár" + +msgid "Belarusian" +msgstr "Belarusz" + +msgid "Bengali" +msgstr "Bengáli" + +msgid "Breton" +msgstr "Breton" + +msgid "Bosnian" +msgstr "Bosnyák" + +msgid "Catalan" +msgstr "Katalán" + +msgid "Central Kurdish (Sorani)" +msgstr "Közép-kurd (szoráni)" + +msgid "Czech" +msgstr "Cseh" + +msgid "Welsh" +msgstr "Walesi" + +msgid "Danish" +msgstr "Dán" + +msgid "German" +msgstr "Német" + +msgid "Lower Sorbian" +msgstr "Alsószorb" + +msgid "Greek" +msgstr "Görög" + +msgid "English" +msgstr "Angol" + +msgid "Australian English" +msgstr "Ausztráliai angol" + +msgid "British English" +msgstr "Brit angol" + +msgid "Esperanto" +msgstr "Eszperantó" + +msgid "Spanish" +msgstr "Spanyol" + +msgid "Argentinian Spanish" +msgstr "Argentin spanyol" + +msgid "Colombian Spanish" +msgstr "Kolumbiai spanyol" + +msgid "Mexican Spanish" +msgstr "Mexikói spanyol" + +msgid "Nicaraguan Spanish" +msgstr "Nicaraguai spanyol" + +msgid "Venezuelan Spanish" +msgstr "Venezuelai spanyol" + +msgid "Estonian" +msgstr "Észt" + +msgid "Basque" +msgstr "Baszk " + +msgid "Persian" +msgstr "Perzsa" + +msgid "Finnish" +msgstr "Finn" + +msgid "French" +msgstr "Francia" + +msgid "Frisian" +msgstr "Fríz" + +msgid "Irish" +msgstr "Ír" + +msgid "Scottish Gaelic" +msgstr "Skót gael" + +msgid "Galician" +msgstr "Gall" + +msgid "Hebrew" +msgstr "Héber" + +msgid "Hindi" +msgstr "Hindi" + +msgid "Croatian" +msgstr "Horvát" + +msgid "Upper Sorbian" +msgstr "Felsőszorb" + +msgid "Hungarian" +msgstr "Magyar" + +msgid "Armenian" +msgstr "Örmény" + +msgid "Interlingua" +msgstr "Interlingua" + +msgid "Indonesian" +msgstr "Indonéz" + +msgid "Igbo" +msgstr "igbo" + +msgid "Ido" +msgstr "Ido" + +msgid "Icelandic" +msgstr "Izlandi" + +msgid "Italian" +msgstr "Olasz" + +msgid "Japanese" +msgstr "Japán" + +msgid "Georgian" +msgstr "Grúz" + +msgid "Kabyle" +msgstr "Kabil" + +msgid "Kazakh" +msgstr "Kazak" + +msgid "Khmer" +msgstr "Khmer" + +msgid "Kannada" +msgstr "Kannada" + +msgid "Korean" +msgstr "Koreai" + +msgid "Kyrgyz" +msgstr "kirgiz" + +msgid "Luxembourgish" +msgstr "Luxemburgi" + +msgid "Lithuanian" +msgstr "Litván" + +msgid "Latvian" +msgstr "Lett" + +msgid "Macedonian" +msgstr "Macedón" + +msgid "Malayalam" +msgstr "Malajálam" + +msgid "Mongolian" +msgstr "Mongol" + +msgid "Marathi" +msgstr "Maráthi" + +msgid "Malay" +msgstr "Maláj" + +msgid "Burmese" +msgstr "Burmai" + +msgid "Norwegian Bokmål" +msgstr "Bokmål norvég" + +msgid "Nepali" +msgstr "Nepáli" + +msgid "Dutch" +msgstr "Holland" + +msgid "Norwegian Nynorsk" +msgstr "Nynorsk norvég" + +msgid "Ossetic" +msgstr "Oszét" + +msgid "Punjabi" +msgstr "Punjabi" + +msgid "Polish" +msgstr "Lengyel" + +msgid "Portuguese" +msgstr "Portugál" + +msgid "Brazilian Portuguese" +msgstr "Brazíliai portugál" + +msgid "Romanian" +msgstr "Román" + +msgid "Russian" +msgstr "Orosz" + +msgid "Slovak" +msgstr "Szlovák" + +msgid "Slovenian" +msgstr "Szlovén" + +msgid "Albanian" +msgstr "Albán" + +msgid "Serbian" +msgstr "Szerb" + +msgid "Serbian Latin" +msgstr "Latin betűs szerb" + +msgid "Swedish" +msgstr "Svéd" + +msgid "Swahili" +msgstr "Szuahéli" + +msgid "Tamil" +msgstr "Tamil" + +msgid "Telugu" +msgstr "Telugu" + +msgid "Tajik" +msgstr "Tádzsik" + +msgid "Thai" +msgstr "Thai" + +msgid "Turkmen" +msgstr "Türkmén" + +msgid "Turkish" +msgstr "Török" + +msgid "Tatar" +msgstr "Tatár" + +msgid "Udmurt" +msgstr "Udmurt" + +msgid "Uyghur" +msgstr "Ujgur" + +msgid "Ukrainian" +msgstr "Ukrán" + +msgid "Urdu" +msgstr "urdu" + +msgid "Uzbek" +msgstr "Üzbég" + +msgid "Vietnamese" +msgstr "Vietnámi" + +msgid "Simplified Chinese" +msgstr "Egyszerű kínai" + +msgid "Traditional Chinese" +msgstr "Hagyományos kínai" + +msgid "Messages" +msgstr "Üzenetek" + +msgid "Site Maps" +msgstr "Oldaltérképek" + +msgid "Static Files" +msgstr "Statikus fájlok" + +msgid "Syndication" +msgstr "Szindikáció" + +#. Translators: String used to replace omitted page numbers in elided page +#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10]. +msgid "…" +msgstr "…" + +msgid "That page number is not an integer" +msgstr "Az oldalszám nem egész szám." + +msgid "That page number is less than 1" +msgstr "Az oldalszám kisebb, mint 1" + +msgid "That page contains no results" +msgstr "Az oldal nem tartalmaz találatokat" + +msgid "Enter a valid value." +msgstr "Adjon meg egy érvényes értéket." + +msgid "Enter a valid URL." +msgstr "Adjon meg egy érvényes URL-t." + +msgid "Enter a valid integer." +msgstr "Adjon meg egy érvényes számot." + +msgid "Enter a valid email address." +msgstr "Írjon be egy érvényes e-mail címet." + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" +"Kérjük adjon meg egy érvényes \"domain-darabkát\", amely csak ékezet nélküli " +"betűkből, számokból, aláhúzásból és kötőjelből áll." + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" +"Kérjük adjon meg egy érvényes \"domain-darabkát\", amely csak betűkből, " +"számokból, aláhúzásból és kötőjelből áll." + +msgid "Enter a valid IPv4 address." +msgstr "Írjon be egy érvényes IPv4 címet." + +msgid "Enter a valid IPv6 address." +msgstr "Írjon be egy érvényes IPv6 címet." + +msgid "Enter a valid IPv4 or IPv6 address." +msgstr "Írjon be egy érvényes IPv4 vagy IPv6 címet." + +msgid "Enter only digits separated by commas." +msgstr "Csak számokat adjon meg, vesszővel elválasztva." + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "" +"Bizonyosodjon meg arról, hogy az érték %(limit_value)s (jelenleg: " +"%(show_value)s)." + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "Bizonyosodjon meg arról, hogy az érték %(limit_value)s, vagy kisebb." + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "Bizonyosodjon meg arról, hogy az érték %(limit_value)s, vagy nagyobb." + +#, python-format +msgid "Ensure this value is a multiple of step size %(limit_value)s." +msgstr "Bizonyosodjon meg arról, hogy az érték %(limit_value)s többszöröse." + +#, python-format +msgid "" +"Ensure this value is a multiple of step size %(limit_value)s, starting from " +"%(offset)s, e.g. %(offset)s, %(valid_value1)s, %(valid_value2)s, and so on." +msgstr "" +"Az érték %(limit_value)s többszörösével kell hogy eltérjen %(offset)s-hoz " +"képest, pl. %(offset)s, %(valid_value1)s, %(valid_value2)s, és így tovább. " + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Bizonyosodjon meg arról, hogy ez az érték legalább %(limit_value)d karaktert " +"tartalmaz (jelenlegi hossza: %(show_value)d)." +msgstr[1] "" +"Bizonyosodjon meg arról, hogy ez az érték legalább %(limit_value)d karaktert " +"tartalmaz (jelenlegi hossza: %(show_value)d)." + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Bizonyosodjon meg arról, hogy ez az érték legfeljebb %(limit_value)d " +"karaktert tartalmaz (jelenlegi hossza: %(show_value)d)." +msgstr[1] "" +"Bizonyosodjon meg arról, hogy ez az érték legfeljebb %(limit_value)d " +"karaktert tartalmaz (jelenlegi hossza: %(show_value)d)." + +msgid "Enter a number." +msgstr "Adj meg egy számot." + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "Bizonyosodjon meg arról, hogy legfeljebb %(max)s számjegyből áll." +msgstr[1] "Bizonyosodjon meg arról, hogy legfeljebb %(max)s számjegyből áll." + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "" +"Bizonyosodjon meg arról, hogy legfeljebb %(max)s tizedesjegyből áll." +msgstr[1] "" +"Bizonyosodjon meg arról, hogy legfeljebb %(max)s tizedesjegyből áll." + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "" +"Bizonyosodjon meg arról, hogy legfeljebb %(max)s számjegy van a " +"tizedesvessző előtt." +msgstr[1] "" +"Bizonyosodjon meg arról, hogy legfeljebb %(max)s számjegy van a " +"tizedesvessző előtt." + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" +"A(z) \"%(extension)s\" kiterjesztés nincs engedélyezve. Az engedélyezett " +"fájltípusok: %(allowed_extensions)s." + +msgid "Null characters are not allowed." +msgstr "Null karakterek használata nem megengedett." + +msgid "and" +msgstr "és" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "Már létezik %(model_name)s ilyennel: %(field_labels)s." + +#, python-format +msgid "Constraint “%(name)s” is violated." +msgstr "„%(name)s” megszorítás megsértve." + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "%(value)r érték érvénytelen." + +msgid "This field cannot be null." +msgstr "Ez a mező nem lehet nulla." + +msgid "This field cannot be blank." +msgstr "Ez a mező nem lehet üres." + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "Már létezik %(model_name)s ilyennel: %(field_label)s." + +#. Translators: The 'lookup_type' is one of 'date', 'year' or +#. 'month'. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" +"%(field_label)s egyedi kell hogy legyen %(lookup_type)s alapján a(z) " +"%(date_field_label)s mezőn." + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "Mezőtípus: %(field_type)s" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "A(z) \"%(value)s\" értéke csak True vagy False lehet." + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "A(z) \"%(value)s\" értéke csak True, False vagy üres lehet." + +msgid "Boolean (Either True or False)" +msgstr "Logikai (True vagy False)" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "Karakterlánc (%(max_length)s hosszig)" + +msgid "String (unlimited)" +msgstr "Karakterlánc (korlátlan hosszúságú)" + +msgid "Comma-separated integers" +msgstr "Vesszővel elválasztott egészek" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" +"A(z) \"%(value)s\" érvénytelen dátumformátumot tartalmaz. A dátumnak ÉÉÉÉ-HH-" +"NN formában kell lennie." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" +"A(z) \"%(value)s\" értéke formára (ÉÉÉÉ-HH-NN) megfelel ugyan, de " +"érvénytelen dátumot tartalmaz." + +msgid "Date (without time)" +msgstr "Dátum (idő nélkül)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" +"A(z) \"%(value)s\" érvénytelen dátumformátumot tartalmaz. A dátumnak ÉÉÉÉ-HH-" +"NN ÓÓ:PP[:mm[.uuuuuu]][TZ] formában kell lennie." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" +"A(z) \"%(value)s\" értéke formára (ÉÉÉÉ-HH-NN ÓÓ:PP[:mm[:uuuuuu]][TZ]) " +"megfelel ugyan, de érvénytelen dátumot vagy időt tartalmaz." + +msgid "Date (with time)" +msgstr "Dátum (idővel)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "A(z) \"%(value)s\" értékének tizes számrendszerű számnak kell lennie." + +msgid "Decimal number" +msgstr "Tizes számrendszerű (decimális) szám" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" +"A(z) \"%(value)s\" érvénytelen idő formátumot tartalmaz. Az időnek ÓÓ:PP[:" +"mm[.uuuuuu]] formában kell lennie." + +msgid "Duration" +msgstr "Időtartam" + +msgid "Email address" +msgstr "E-mail cím" + +msgid "File path" +msgstr "Elérési út" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "A(z) \"%(value)s\" értékének lebegőpontos számnak kell lennie." + +msgid "Floating point number" +msgstr "Lebegőpontos szám" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "A(z) \"%(value)s\" értékének egész számnak kell lennie." + +msgid "Integer" +msgstr "Egész" + +msgid "Big (8 byte) integer" +msgstr "Nagy egész szám (8 bájtos)" + +msgid "Small integer" +msgstr "Kis egész" + +msgid "IPv4 address" +msgstr "IPv4 cím" + +msgid "IP address" +msgstr "IP cím" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "Az \"%(value)s\" értéke csak üres, True, vagy False lehet." + +msgid "Boolean (Either True, False or None)" +msgstr "Logikai (True, False vagy None)" + +msgid "Positive big integer" +msgstr "Pozitív nagy egész" + +msgid "Positive integer" +msgstr "Pozitív egész" + +msgid "Positive small integer" +msgstr "Pozitív kis egész" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "URL-barát cím (%(max_length)s hosszig)" + +msgid "Text" +msgstr "Szöveg" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" +"A(z) \"%(value)s\" érvénytelen idő formátumot tartalmaz. Az időnek ÓÓ:PP[:" +"mm[.uuuuuu]] formában kell lennie." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" +"A(z) \"%(value)s\" értéke formára (ÓÓ:PP[:mm[:uuuuuu]][TZ]) megfelel ugyan, " +"de érvénytelen időt tartalmaz." + +msgid "Time" +msgstr "Idő" + +msgid "URL" +msgstr "URL" + +msgid "Raw binary data" +msgstr "Nyers bináris adat" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "A(z) \"%(value)s\" értéke nem érvényes UUID érték." + +msgid "Universally unique identifier" +msgstr "Univerzálisan egyedi azonosító" + +msgid "File" +msgstr "Fájl" + +msgid "Image" +msgstr "Kép" + +msgid "A JSON object" +msgstr "Egy JSON objektum" + +msgid "Value must be valid JSON." +msgstr "Az érték érvényes JSON kell legyen." + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "%(model)s példány %(value)r %(field)s értékkel nem létezik." + +msgid "Foreign Key (type determined by related field)" +msgstr "Idegen kulcs (típusa a kapcsolódó mezőtől függ)" + +msgid "One-to-one relationship" +msgstr "Egy-egy kapcsolat" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "%(from)s-%(to)s kapcsolat" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "%(from)s-%(to)s kapcsolatok" + +msgid "Many-to-many relationship" +msgstr "Több-több kapcsolat" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr ":?.!" + +msgid "This field is required." +msgstr "Ennek a mezőnek a megadása kötelező." + +msgid "Enter a whole number." +msgstr "Adjon meg egy egész számot." + +msgid "Enter a valid date." +msgstr "Adjon meg egy érvényes dátumot." + +msgid "Enter a valid time." +msgstr "Adjon meg egy érvényes időt." + +msgid "Enter a valid date/time." +msgstr "Adjon meg egy érvényes dátumot/időt." + +msgid "Enter a valid duration." +msgstr "Adjon meg egy érvényes időtartamot." + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "A napok számának {min_days} és {max_days} közé kell esnie." + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "Nem küldött el fájlt. Ellenőrizze a kódolás típusát az űrlapon." + +msgid "No file was submitted." +msgstr "Semmilyen fájl sem került feltöltésre." + +msgid "The submitted file is empty." +msgstr "A küldött fájl üres." + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" +"Bizonyosodjon meg arról, hogy a fájlnév legfeljebb %(max)d karakterből áll " +"(jelenlegi hossza: %(length)d)." +msgstr[1] "" +"Bizonyosodjon meg arról, hogy a fájlnév legfeljebb %(max)d karakterből áll " +"(jelenlegi hossza: %(length)d)." + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "" +"Küldjön egy új fájlt, vagy jelölje be a törlés négyzetet, de ne mindkettőt " +"egyszerre." + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" +"Töltsön fel egy érvényes képfájlt. A feltöltött fájl nem kép volt, vagy " +"megsérült." + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "" +"Válasszon érvényes elemet. '%(value)s' nincs az elérhető lehetőségek között." + +msgid "Enter a list of values." +msgstr "Adja meg értékek egy listáját." + +msgid "Enter a complete value." +msgstr "Adjon meg egy teljes értéket." + +msgid "Enter a valid UUID." +msgstr "Adjon meg egy érvényes UUID-t." + +msgid "Enter a valid JSON." +msgstr "Adjon meg egy érvényes JSON-t." + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr ":" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "(Rejtett mező: %(name)s) %(error)s" + +#, python-format +msgid "" +"ManagementForm data is missing or has been tampered with. Missing fields: " +"%(field_names)s. You may need to file a bug report if the issue persists." +msgstr "" +"ManagementForm adatok hiányoznak vagy hamisításra kerültek. A hiányzó mezők: " +"%(field_names)s. Ha ez többször is előfordul, érdemes bejelenteni hibaként." + +#, python-format +msgid "Please submit at most %(num)d form." +msgid_plural "Please submit at most %(num)d forms." +msgstr[0] "Legfeljebb %(num)d űrlapot küldjön be." +msgstr[1] "Legfeljebb %(num)d űrlapot küldjön be." + +#, python-format +msgid "Please submit at least %(num)d form." +msgid_plural "Please submit at least %(num)d forms." +msgstr[0] "Legalább %(num)d űrlapot küldjön be." +msgstr[1] "Legalább %(num)d űrlapot küldjön be." + +msgid "Order" +msgstr "Sorrend" + +msgid "Delete" +msgstr "Törlés" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "Javítsa a mezőhöz tartozó duplikált adatokat: %(field)s." + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "" +"Javítsa a mezőhöz tartozó duplikált adatokat: %(field)s (egyedinek kell " +"lenniük)." + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"Javítsa a mezőhöz tartozó duplikált adatokat: %(field_name)s (egyedinek kell " +"lenniük %(lookup)s alapján a dátum mezőn: %(date_field)s)." + +msgid "Please correct the duplicate values below." +msgstr "Javítsa az alábbi duplikált értékeket." + +msgid "The inline value did not match the parent instance." +msgstr "A beágyazott érték nem egyezik meg a szülő példányéval." + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "" +"Válasszon érvényes elemet. Az Ön választása nincs az elérhető lehetőségek " +"között." + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "Érvénytelen érték: \"%(pk)s\"" + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" +"A(z) %(datetime)s nem értelmezhető a(z) %(current_timezone)s időzónában; " +"vagy bizonytalan, vagy nem létezik." + +msgid "Clear" +msgstr "Törlés" + +msgid "Currently" +msgstr "Jelenleg" + +msgid "Change" +msgstr "Módosítás" + +msgid "Unknown" +msgstr "Ismeretlen" + +msgid "Yes" +msgstr "Igen" + +msgid "No" +msgstr "Nem" + +#. Translators: Please do not add spaces around commas. +msgid "yes,no,maybe" +msgstr "igen,nem,talán" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)d bájt" +msgstr[1] "%(size)d bájt" + +#, python-format +msgid "%s KB" +msgstr "%s KB" + +#, python-format +msgid "%s MB" +msgstr "%s MB" + +#, python-format +msgid "%s GB" +msgstr "%s GB" + +#, python-format +msgid "%s TB" +msgstr "%s TB" + +#, python-format +msgid "%s PB" +msgstr "%s PB" + +msgid "p.m." +msgstr "du" + +msgid "a.m." +msgstr "de" + +msgid "PM" +msgstr "DU" + +msgid "AM" +msgstr "DE" + +msgid "midnight" +msgstr "éjfél" + +msgid "noon" +msgstr "dél" + +msgid "Monday" +msgstr "hétfő" + +msgid "Tuesday" +msgstr "kedd" + +msgid "Wednesday" +msgstr "szerda" + +msgid "Thursday" +msgstr "csütörtök" + +msgid "Friday" +msgstr "péntek" + +msgid "Saturday" +msgstr "szombat" + +msgid "Sunday" +msgstr "vasárnap" + +msgid "Mon" +msgstr "hét" + +msgid "Tue" +msgstr "kedd" + +msgid "Wed" +msgstr "sze" + +msgid "Thu" +msgstr "csüt" + +msgid "Fri" +msgstr "pén" + +msgid "Sat" +msgstr "szo" + +msgid "Sun" +msgstr "vas" + +msgid "January" +msgstr "január" + +msgid "February" +msgstr "február" + +msgid "March" +msgstr "március" + +msgid "April" +msgstr "április" + +msgid "May" +msgstr "május" + +msgid "June" +msgstr "június" + +msgid "July" +msgstr "július" + +msgid "August" +msgstr "augusztus" + +msgid "September" +msgstr "szeptember" + +msgid "October" +msgstr "október" + +msgid "November" +msgstr "november" + +msgid "December" +msgstr "december" + +msgid "jan" +msgstr "jan" + +msgid "feb" +msgstr "feb" + +msgid "mar" +msgstr "már" + +msgid "apr" +msgstr "ápr" + +msgid "may" +msgstr "máj" + +msgid "jun" +msgstr "jún" + +msgid "jul" +msgstr "júl" + +msgid "aug" +msgstr "aug" + +msgid "sep" +msgstr "sze" + +msgid "oct" +msgstr "okt" + +msgid "nov" +msgstr "nov" + +msgid "dec" +msgstr "dec" + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "jan." + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "febr." + +msgctxt "abbrev. month" +msgid "March" +msgstr "márc." + +msgctxt "abbrev. month" +msgid "April" +msgstr "ápr." + +msgctxt "abbrev. month" +msgid "May" +msgstr "máj." + +msgctxt "abbrev. month" +msgid "June" +msgstr "jún." + +msgctxt "abbrev. month" +msgid "July" +msgstr "júl." + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "aug." + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "szept." + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "okt." + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "nov." + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "dec." + +msgctxt "alt. month" +msgid "January" +msgstr "január" + +msgctxt "alt. month" +msgid "February" +msgstr "február" + +msgctxt "alt. month" +msgid "March" +msgstr "március" + +msgctxt "alt. month" +msgid "April" +msgstr "április" + +msgctxt "alt. month" +msgid "May" +msgstr "május" + +msgctxt "alt. month" +msgid "June" +msgstr "június" + +msgctxt "alt. month" +msgid "July" +msgstr "július" + +msgctxt "alt. month" +msgid "August" +msgstr "augusztus" + +msgctxt "alt. month" +msgid "September" +msgstr "szeptember" + +msgctxt "alt. month" +msgid "October" +msgstr "október" + +msgctxt "alt. month" +msgid "November" +msgstr "november" + +msgctxt "alt. month" +msgid "December" +msgstr "december" + +msgid "This is not a valid IPv6 address." +msgstr "Ez nem egy érvényes IPv6 cím." + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "%(truncated_text)s…" + +msgid "or" +msgstr "vagy" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr ", " + +#, python-format +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "%(num)d év" +msgstr[1] "%(num)d év" + +#, python-format +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "%(num)d hónap" +msgstr[1] "%(num)d hónap" + +#, python-format +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "%(num)d hét" +msgstr[1] "%(num)d hét" + +#, python-format +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "%(num)d nap" +msgstr[1] "%(num)d nap" + +#, python-format +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "%(num)d óra" +msgstr[1] "%(num)d óra" + +#, python-format +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "%(num)d perc" +msgstr[1] "%(num)d perc" + +msgid "Forbidden" +msgstr "Hozzáférés megtagadva" + +msgid "CSRF verification failed. Request aborted." +msgstr "CSRF ellenőrzés sikertelen. Kérés kiszolgálása megszakítva." + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" +"Ezt az üzenetet azért látja, mert ezen a HTTPS oldalon kötelező a \"Referer " +"header\", amelyet a böngészőnek kellene küldenie, de nem tette. Ez az adat " +"biztonsági okokból kötelező, ez biztosítja, hogy a böngészőt nem irányítja " +"át egy harmadik fél." + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" +"Ha a böngészője úgy van beállítva, hogy letilja a \"Referer\" adatokat, " +"kérjük engedélyezze őket ehhez az oldalhoz, vagy a HTTPS kapcsolatokhoz, " +"vagy a \"same-origin\" kérésekhez." + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" +"Ha a címkét használja, vagy " +"a “Referrer-Policy: no-referrer” fejlécet, kérjük távolítsa el ezeket. A " +"CSRF védelemnek szüksége van a \"Referer\" fejléc adatra a szigorú " +"ellenőrzéshez. Ha aggódik az adatainak biztonsága miatt, használjon " +"alternatívákat, mint például az , a külső oldalakra " +"mutató linkek esetén. " + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" +"Azért látja ezt az üzenetet, mert ez a weboldal elvárja a CSRF cookie " +"elküldését űrlapoknál. Erre a cookie-ra biztonsági okból van szükség annak " +"kiszűrésére, hogy harmadik fél eltérítse az ön böngészőjét." + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" +"Ha kikapcsolta a cookie-kat a böngészőjében, kérjük engedélyezze őket újra, " +"legalább erre az oldalra, vagy a \"same-origin\" típusú kérésekre." + +msgid "More information is available with DEBUG=True." +msgstr "További információ DEBUG=True beállítással érhető el." + +msgid "No year specified" +msgstr "Nincs év megadva" + +msgid "Date out of range" +msgstr "A dátum a megengedett tartományon kívül esik." + +msgid "No month specified" +msgstr "Nincs hónap megadva" + +msgid "No day specified" +msgstr "Nincs nap megadva" + +msgid "No week specified" +msgstr "Nincs hét megadva" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "Nincsenek elérhető %(verbose_name_plural)s" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" +"Jövőbeli %(verbose_name_plural)s nem elérhetők, mert %(class_name)s." +"allow_future értéke False." + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "" +"A megadott dátum \"%(datestr)s\" érvénytelen a következő formátumban: " +"\"%(format)s\"." + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "Nincs a keresési feltételeknek megfelelő %(verbose_name)s" + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "Az oldalszám nem \"utolsó\", vagy nem lehet számmá alakítani." + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "Érvénytelen oldal (%(page_number)s): %(message)s" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "Üres lista, de a \"%(class_name)s.allow_empty\" értéke hamis." + +msgid "Directory indexes are not allowed here." +msgstr "A könyvtárak listázása itt nincs engedélyezve." + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "A(z) \"%(path)s\" útvonal nem létezik" + +#, python-format +msgid "Index of %(directory)s" +msgstr "A %(directory)s könyvtár tartalma" + +msgid "The install worked successfully! Congratulations!" +msgstr "A telepítés sikeresen végződött! Gratulálunk!" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" +"A Django %(version)s kiadási megjegyzéseinek " +"megtekintése" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not " +"configured any URLs." +msgstr "" +"Azért látod ezt az oldalt, mert a DEBUG=True szerepel a settings fájlban, és még nem " +"került beállításra egy URL sem." + +msgid "Django Documentation" +msgstr "Django Dokumentáció" + +msgid "Topics, references, & how-to’s" +msgstr "Témák, hivatkozások, & leírások" + +msgid "Tutorial: A Polling App" +msgstr "Gyakorlat: egy szavazó app" + +msgid "Get started with Django" +msgstr "Első lépések a Djangóval" + +msgid "Django Community" +msgstr "Django Közösség" + +msgid "Connect, get help, or contribute" +msgstr "Lépj kapcsolatba, kérj segítséget, vagy járulj hozzá" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/hu/__init__.py b/venv/lib/python3.12/site-packages/django/conf/locale/hu/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/hu/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/hu/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..130c0a2cf7fad603004f5838e80cd6123276b4e5 GIT binary patch literal 198 zcmX@j%ge<81o5sX(m?cM5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!O4ZNE&rQ|OP0Yy6 zFHO;RNiEZNN=(kybEFQ_cZ$j>v@Gc?jK&MZmQEdVM^ zOiwM=Pssu+OwP|s)6dCIPRs$CTB;u(pP83g5+AQuQ2C3)CO1E&G$+-rh!tonBM=vZ O7$2D#85xV1fh+*W3N(lS literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/hu/__pycache__/formats.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/hu/__pycache__/formats.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..66011eb94c88d550f68d3b0d82c10ef0e1188c6c GIT binary patch literal 793 zcmZWmOOMh(9G_BH9$hFDinuY6gFTS!cB0;hG3iQKh(bvzF`Y}pGUc&SN_Zvow0;V& z#+zTmlZh9O4OdTlBW}EKa>@dN&SB>Nd;RD2BN~kWG7R~9`;G?Srw4Y!w=M3Ar1%6d zKmb#S!an4~G@`K|`EdXR@CiD>K@`NH4uwKEj3XT%3U>fzzECKFPZ5Ko=oH6Lbk64D zPEZ%K#q5pf(4~COVYVpi0lx{t+WfoA5cNkcTA#QQdG@2?8^V8j@lK=YTa|{hEg=%%ktYLw~3XjwT8Cs zS6_0Q%rTeVAMKb=6y!JMiuBH?%QZ=rG({!xlG3P4)xrVCRvVQ|Sv9UyrBN$aufBqN z@)}@`Vb``yXf?Z*J;ktK&fsOU_2EJuV0hhc4mviRnS&YZ_pae^KIz(nm*VpmaNL`i z7eiufcFZxvHydNi9<*WKZZ-QR>`r0Z9$C%FSRBsRp;wlTr+xGF=n>h}`|xp}Oe>nA zs8s~8nOnw_3&5>HAi%nQ fW)+|}_*ck(M)))_@fk13lO~+YB|owwo^1FB7wFvF literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/hu/formats.py b/venv/lib/python3.12/site-packages/django/conf/locale/hu/formats.py new file mode 100644 index 0000000000..c17f2c75f8 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/hu/formats.py @@ -0,0 +1,30 @@ +# This file is distributed under the same license as the Django package. +# +# The *_FORMAT strings use the Django date format syntax, +# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date +DATE_FORMAT = "Y. F j." +TIME_FORMAT = "H:i" +DATETIME_FORMAT = "Y. F j. H:i" +YEAR_MONTH_FORMAT = "Y. F" +MONTH_DAY_FORMAT = "F j." +SHORT_DATE_FORMAT = "Y.m.d." +SHORT_DATETIME_FORMAT = "Y.m.d. H:i" +FIRST_DAY_OF_WEEK = 1 # Monday + +# The *_INPUT_FORMATS strings use the Python strftime format syntax, +# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior +DATE_INPUT_FORMATS = [ + "%Y.%m.%d.", # '2006.10.25.' +] +TIME_INPUT_FORMATS = [ + "%H:%M:%S", # '14:30:59' + "%H:%M", # '14:30' +] +DATETIME_INPUT_FORMATS = [ + "%Y.%m.%d. %H:%M:%S", # '2006.10.25. 14:30:59' + "%Y.%m.%d. %H:%M:%S.%f", # '2006.10.25. 14:30:59.000200' + "%Y.%m.%d. %H:%M", # '2006.10.25. 14:30' +] +DECIMAL_SEPARATOR = "," +THOUSAND_SEPARATOR = " " # Non-breaking space +NUMBER_GROUPING = 3 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/hy/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/conf/locale/hy/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..9dcc4721318caa943895c55d9f9f0a1325d21ea0 GIT binary patch literal 22207 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/hy/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/conf/locale/hy/LC_MESSAGES/django.po new file mode 100644 index 0000000000..e4860e2d74 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/hy/LC_MESSAGES/django.po @@ -0,0 +1,1237 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Սմբատ Պետրոսյան , 2014 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-09-27 22:40+0200\n" +"PO-Revision-Date: 2019-11-05 00:38+0000\n" +"Last-Translator: Ramiro Morales\n" +"Language-Team: Armenian (http://www.transifex.com/django/django/language/" +"hy/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hy\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Afrikaans" +msgstr "Աֆրիկաանս" + +msgid "Arabic" +msgstr "Արաբերեն" + +msgid "Asturian" +msgstr "Աստուրերեն" + +msgid "Azerbaijani" +msgstr "Ադրբեջաներեն" + +msgid "Bulgarian" +msgstr "Բուլղարերեն" + +msgid "Belarusian" +msgstr "Բելոռուսերեն" + +msgid "Bengali" +msgstr "Բենգալերեն" + +msgid "Breton" +msgstr "Բրետոներեն" + +msgid "Bosnian" +msgstr "Բոսնիերեն" + +msgid "Catalan" +msgstr "Կատալաներեն" + +msgid "Czech" +msgstr "Չեխերեն" + +msgid "Welsh" +msgstr "Վալլիերեն" + +msgid "Danish" +msgstr "Դանիերեն" + +msgid "German" +msgstr "Գերմաներեն" + +msgid "Lower Sorbian" +msgstr "" + +msgid "Greek" +msgstr "Հունարեն" + +msgid "English" +msgstr "Անգլերեն" + +msgid "Australian English" +msgstr "Ավստրալական Անգլերեն" + +msgid "British English" +msgstr "Բրիտանական Անգլերեն" + +msgid "Esperanto" +msgstr "Էսպերանտո" + +msgid "Spanish" +msgstr "Իսպաներեն" + +msgid "Argentinian Spanish" +msgstr "Արգենտինական իսպաներեն" + +msgid "Colombian Spanish" +msgstr "Կոլումբիական իսպաներեն" + +msgid "Mexican Spanish" +msgstr "Մեքսիկական իսպաներեն" + +msgid "Nicaraguan Spanish" +msgstr "Նիկարագուական իսպաներեն" + +msgid "Venezuelan Spanish" +msgstr "Վենեսուելլական իսպաներեն" + +msgid "Estonian" +msgstr "Էստոներեն" + +msgid "Basque" +msgstr "Բասկերեն" + +msgid "Persian" +msgstr "Պարսկերեն" + +msgid "Finnish" +msgstr "Ֆիներեն" + +msgid "French" +msgstr "Ֆրանսերեն" + +msgid "Frisian" +msgstr "Ֆրիզերեն" + +msgid "Irish" +msgstr "Իռլանդերեն" + +msgid "Scottish Gaelic" +msgstr "Գելական շոտլանդերեն" + +msgid "Galician" +msgstr "Գալիսերեն" + +msgid "Hebrew" +msgstr "Եբրայերեն" + +msgid "Hindi" +msgstr "Հինդի" + +msgid "Croatian" +msgstr "Խորվաթերեն" + +msgid "Upper Sorbian" +msgstr "" + +msgid "Hungarian" +msgstr "Հունգարերեն" + +msgid "Armenian" +msgstr "" + +msgid "Interlingua" +msgstr "Ինտերլինգուա" + +msgid "Indonesian" +msgstr "Ինդոնեզերեն" + +msgid "Ido" +msgstr "Իդո" + +msgid "Icelandic" +msgstr "Իսլանդերեն" + +msgid "Italian" +msgstr "Իտալերեն" + +msgid "Japanese" +msgstr "Ճապոներեն" + +msgid "Georgian" +msgstr "Վրացերեն" + +msgid "Kabyle" +msgstr "" + +msgid "Kazakh" +msgstr "Ղազախերեն" + +msgid "Khmer" +msgstr "Քեմերերեն" + +msgid "Kannada" +msgstr "Կանադա" + +msgid "Korean" +msgstr "Կորեերեն" + +msgid "Luxembourgish" +msgstr "Լյուքսեմբուրգերեն" + +msgid "Lithuanian" +msgstr "Լիտվերեն" + +msgid "Latvian" +msgstr "Լատիշերեն" + +msgid "Macedonian" +msgstr "Մակեդոներեն" + +msgid "Malayalam" +msgstr "Մալայալամ" + +msgid "Mongolian" +msgstr "Մոնղոլերեն" + +msgid "Marathi" +msgstr "Մարատխի" + +msgid "Burmese" +msgstr "Բիրմաներեն" + +msgid "Norwegian Bokmål" +msgstr "" + +msgid "Nepali" +msgstr "Նեպալերեն" + +msgid "Dutch" +msgstr "Հոլանդերեն" + +msgid "Norwegian Nynorsk" +msgstr "Նորվեգերեն (Նյունորսկ)" + +msgid "Ossetic" +msgstr "Օսերեն" + +msgid "Punjabi" +msgstr "Փանջաբի" + +msgid "Polish" +msgstr "Լեհերեն" + +msgid "Portuguese" +msgstr "Պորտուգալերեն" + +msgid "Brazilian Portuguese" +msgstr "Բրազիլական պորտուգալերեն" + +msgid "Romanian" +msgstr "Ռումիներեն" + +msgid "Russian" +msgstr "Ռուսերեն" + +msgid "Slovak" +msgstr "Սլովակերեն" + +msgid "Slovenian" +msgstr "Սլովեներեն" + +msgid "Albanian" +msgstr "Ալբաներեն" + +msgid "Serbian" +msgstr "Սերբերեն" + +msgid "Serbian Latin" +msgstr "Սերբերեն (լատինատառ)" + +msgid "Swedish" +msgstr "Շվեդերեն" + +msgid "Swahili" +msgstr "Սվահիլի" + +msgid "Tamil" +msgstr "Թամիլերեն" + +msgid "Telugu" +msgstr "Թելուգու" + +msgid "Thai" +msgstr "Թայերեն" + +msgid "Turkish" +msgstr "Թուրքերեն" + +msgid "Tatar" +msgstr "Թաթարերեն" + +msgid "Udmurt" +msgstr "Ումուրտերեն" + +msgid "Ukrainian" +msgstr "Ուկրաիներեն" + +msgid "Urdu" +msgstr "Ուրդու" + +msgid "Uzbek" +msgstr "" + +msgid "Vietnamese" +msgstr "Վիետնամերեն" + +msgid "Simplified Chinese" +msgstr "Հեշտացված չինարեն" + +msgid "Traditional Chinese" +msgstr "Ավանդական չինարեն" + +msgid "Messages" +msgstr "Հաղորդագրություններ" + +msgid "Site Maps" +msgstr "Կայքի քարտեզ" + +msgid "Static Files" +msgstr "Ստատիկ ֆայլեր\t" + +msgid "Syndication" +msgstr "Նորություններ" + +msgid "That page number is not an integer" +msgstr "" + +msgid "That page number is less than 1" +msgstr "" + +msgid "That page contains no results" +msgstr "" + +msgid "Enter a valid value." +msgstr "Մուտքագրեք ճիշտ արժեք" + +msgid "Enter a valid URL." +msgstr "Մուտքագրեք ճիշտ URL" + +msgid "Enter a valid integer." +msgstr "Մուտքագրեք ամբողջ թիվ" + +msgid "Enter a valid email address." +msgstr "Մուտքագրեք ճիշտ էլեկտրոնային փոստի հասցե" + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" + +msgid "Enter a valid IPv4 address." +msgstr "Մուտքագրեք ճիշտ IPv4 հասցե" + +msgid "Enter a valid IPv6 address." +msgstr "Մուտքագրեք ճիշտ IPv6 հասցե" + +msgid "Enter a valid IPv4 or IPv6 address." +msgstr "Մուտքագրեք ճիշտ IPv4 կամ IPv6 հասցե" + +msgid "Enter only digits separated by commas." +msgstr "Մուտքագրեք միայն ստորակետով բաժանված թվեր" + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "Համոզվեք, որ այս արժեքը %(limit_value)s (հիմա այն — %(show_value)s)" + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "Համոզվեք, որ այս արժեքը փոքր է, կամ հավասար %(limit_value)s" + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "Համոզվեք, որ այս արժեքը մեծ է, համ հավասար %(limit_value)s" + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Համոզվեք, որ արժեքը պարունակում է ամենաքիչը %(limit_value)d նիշ (այն " +"պարունակում է %(show_value)d)." +msgstr[1] "" +"Համոզվեք, որ արժեքը պարունակում է ամենաքիչը %(limit_value)d նիշ (այն " +"պարունակում է %(show_value)d)." + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Համոզվեք, որ արժեքը պարունակում է ամենաքիչը %(limit_value)d նիշ (այն " +"պարունակում է %(show_value)d)." +msgstr[1] "" +"Համոզվեք, որ արժեքը պարունակում է ամենաքիչը %(limit_value)d նիշ (այն " +"պարունակում է %(show_value)d)." + +msgid "Enter a number." +msgstr "Մուտքագրեք թիվ" + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "Համոզվեք, որ թվերի քանակը մեծ չէ %(max)s -ից" +msgstr[1] "Համոզվեք, որ թվերի քանակը մեծ չէ %(max)s -ից" + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "Համոզվեք, որ ստորակետից հետո թվերի քանակը մեծ չէ %(max)s -ից" +msgstr[1] "Համոզվեք, որ ստորակետից հետո թվերի քանակը մեծ չէ %(max)s -ից" + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "Համոզվեք, որ ստորակետից առաջ թվերի քանակը մեծ չէ %(max)s -ից" +msgstr[1] "Համոզվեք, որ ստորակետից առաջ թվերի քանակը մեծ չէ %(max)s -ից" + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" + +msgid "Null characters are not allowed." +msgstr "" + +msgid "and" +msgstr "և" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "" +"%(field_labels)s դաշտերի այս արժեքով %(model_name)s արդեն գոյություն ունի" + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "%(value)r արժեքը չի մտնում թույլատրված տարբերակների մեջ" + +msgid "This field cannot be null." +msgstr "Այս դաշտը չի կարող ունենալ NULL արժեք " + +msgid "This field cannot be blank." +msgstr "Այս դաշտը չի կարող լինել դատարկ" + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "%(field_label)s դաշտի այս արժեքով %(model_name)s արդեն գոյություն ունի" + +#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'. +#. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" +"«%(field_label)s» դաշտի արժեքը պետք է լինի միակը %(date_field_label)s " +"%(lookup_type)s համար" + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "%(field_type)s տիպի դաշտ" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "" + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "" + +msgid "Boolean (Either True or False)" +msgstr "Տրամաբանական (True կամ False)" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "Տող (մինչև %(max_length)s երկարությամբ)" + +msgid "Comma-separated integers" +msgstr "Ստորակետով բաժանված ամբողջ թվեր" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" + +msgid "Date (without time)" +msgstr "Ամսաթիվ (առանց ժամանակի)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" + +msgid "Date (with time)" +msgstr "Ամսաթիվ (և ժամանակ)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "" + +msgid "Decimal number" +msgstr "Տասնորդական թիվ" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" + +msgid "Duration" +msgstr "Տևողություն" + +msgid "Email address" +msgstr "Email հասցե" + +msgid "File path" +msgstr "Ֆայլի ճանապարհ" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "" + +msgid "Floating point number" +msgstr "Floating point թիվ" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "" + +msgid "Integer" +msgstr "Ամբողջ" + +msgid "Big (8 byte) integer" +msgstr "Մեծ (8 բայթ) ամբողջ թիվ" + +msgid "IPv4 address" +msgstr "IPv4 հասցե" + +msgid "IP address" +msgstr "IP հասցե" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "" + +msgid "Boolean (Either True, False or None)" +msgstr "Տրամաբանական (Either True, False կամ None)" + +msgid "Positive integer" +msgstr "Դրական ամբողջ թիվ" + +msgid "Positive small integer" +msgstr "Դրայան փոքր ամբողջ թիվ" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "Slug (մինչև %(max_length)s նիշ)" + +msgid "Small integer" +msgstr "Փոքր ամբողջ թիվ" + +msgid "Text" +msgstr "Տեքստ" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" + +msgid "Time" +msgstr "Ժամանակ" + +msgid "URL" +msgstr "URL" + +msgid "Raw binary data" +msgstr "Երկուական տվյալներ" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "" + +msgid "Universally unique identifier" +msgstr "" + +msgid "File" +msgstr "Ֆայլ" + +msgid "Image" +msgstr "Պատկեր" + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "" +" %(field)s դաշտի %(value)r արժեք ունեցող %(model)s օրինակ գոյություն չունի" + +msgid "Foreign Key (type determined by related field)" +msgstr "Արտաքին բանալի (տեսակը որոշվում է հարակից դաշտից)" + +msgid "One-to-one relationship" +msgstr "Մեկը մեկին կապ" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "" + +msgid "Many-to-many relationship" +msgstr "Մի քանիսը մի քանիսին կապ" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr ":?.!" + +msgid "This field is required." +msgstr "Այս դաշտը պարտադիր է" + +msgid "Enter a whole number." +msgstr "Մուտքագրեք ամբողջ թիվ" + +msgid "Enter a valid date." +msgstr "Մուտքագրեք ճիշտ ամսաթիվ" + +msgid "Enter a valid time." +msgstr "Մուտքագրեք ճիշտ ժամանակ" + +msgid "Enter a valid date/time." +msgstr "Մուտքագրեք ճիշտ ամսաթիվ/ժամանակ" + +msgid "Enter a valid duration." +msgstr "Մուտքագրեք ճիշտ տևողություն" + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "" + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "Ոչ մի ֆայլ չի ուղարկվել։ Ստուգեք ձևաթղթի կոդավորում տեսակը" + +msgid "No file was submitted." +msgstr "Ոչ մի ֆայլ չի ուղարկվել" + +msgid "The submitted file is empty." +msgstr "Ուղարկված ֆայլը դատարկ է" + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" +"Համոզվեք, որ ֆայլի անունը պարունակում է ամենաշատը %(max)d նիշ (այն " +"պարունակում է %(length)d)" +msgstr[1] "" +"Համոզվեք, որ ֆայլի անունը պարունակում է ամենաշատը %(max)d նիշ (այն " +"պարունակում է %(length)d)" + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "" +"Ուղարկեք ֆայլ, կամ ակտիվացրեք մաքրելու նշման վանդակը, ոչ թե երկուսը միասին" + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "Ուղարկեք ճիշտ պատկեր․ Ուղարկված ֆայլը պատկեր չէ, կամ վնասված է" + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "Ընտրեք ճիշտ տարբերակ։ %(value)s արժեքը չի մտնում ճիշտ արժեքների մեջ" + +msgid "Enter a list of values." +msgstr "Մուտքագրեք արժեքների ցուցակ" + +msgid "Enter a complete value." +msgstr "Մուտքագրեք ամբողջական արժեք" + +msgid "Enter a valid UUID." +msgstr "Մուտքագրեք ճիշտ UUID" + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr ":" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "(Թաքցված դաշտ %(name)s) %(error)s" + +msgid "ManagementForm data is missing or has been tampered with" +msgstr "Կառավարման ձևաթղթի տվյալները բացակայում են, կամ վնասված են" + +#, python-format +msgid "Please submit %d or fewer forms." +msgid_plural "Please submit %d or fewer forms." +msgstr[0] "Ուղարկեք %d կամ քիչ ձևաթղթեր" +msgstr[1] "Ուղարկեք %d կամ քիչ ձևաթղթեր" + +#, python-format +msgid "Please submit %d or more forms." +msgid_plural "Please submit %d or more forms." +msgstr[0] "Ուղարկեք %d կամ շատ ձևաթղթեր" +msgstr[1] "Ուղարկեք %d կամ շատ ձևաթղթեր" + +msgid "Order" +msgstr "Հերթականություն" + +msgid "Delete" +msgstr "Հեռացնել" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "Ուղղեք %(field)s դաշտի կրկնվող տվյալները" + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "Ուղղեք %(field)s դաշտի կրկնվող տվյալները, որոնք պետք է լինեն եզակի" + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"Ուղղեք %(field_name)s դաշտի կրկնվող տվյալները, որոնք պետք է լինեն եզակի " +"%(date_field)s-ում %(lookup)s֊ի համար" + +msgid "Please correct the duplicate values below." +msgstr "Ուղղեք կրկնվող տվյալները" + +msgid "The inline value did not match the parent instance." +msgstr "" + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "Ընտրեք ճիշտ տարբերակ։ Այս արժեքը չի մտնում ճիշտ արժեքների մեջ" + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "" + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" + +msgid "Clear" +msgstr "Մաքրել" + +msgid "Currently" +msgstr "Տվյալ պահին" + +msgid "Change" +msgstr "Փոխել" + +msgid "Unknown" +msgstr "Անհայտ" + +msgid "Yes" +msgstr "Այո" + +msgid "No" +msgstr "Ոչ" + +msgid "Year" +msgstr "" + +msgid "Month" +msgstr "" + +msgid "Day" +msgstr "" + +msgid "yes,no,maybe" +msgstr "այո,ոչ,միգուցե" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)d բայթ" +msgstr[1] "%(size)d բայթ" + +#, python-format +msgid "%s KB" +msgstr "%s ԿԲ" + +#, python-format +msgid "%s MB" +msgstr "%s ՄԲ" + +#, python-format +msgid "%s GB" +msgstr "%s ԳԲ" + +#, python-format +msgid "%s TB" +msgstr "%s ՏԲ" + +#, python-format +msgid "%s PB" +msgstr "%s ՊԲ" + +msgid "p.m." +msgstr "p.m." + +msgid "a.m." +msgstr "a.m." + +msgid "PM" +msgstr "PM" + +msgid "AM" +msgstr "AM" + +msgid "midnight" +msgstr "կեսգիշեր" + +msgid "noon" +msgstr "կեսօր" + +msgid "Monday" +msgstr "Երկուշաբթի" + +msgid "Tuesday" +msgstr "Երեքշաբթի" + +msgid "Wednesday" +msgstr "Չորեքշաբթի" + +msgid "Thursday" +msgstr "Հինգշաբթի" + +msgid "Friday" +msgstr "Ուրբաթ" + +msgid "Saturday" +msgstr "Շաբաթ" + +msgid "Sunday" +msgstr "Կիրակի" + +msgid "Mon" +msgstr "Երկ" + +msgid "Tue" +msgstr "Երք" + +msgid "Wed" +msgstr "Չրք" + +msgid "Thu" +msgstr "Հնգ" + +msgid "Fri" +msgstr "Ուրբ" + +msgid "Sat" +msgstr "Շբթ" + +msgid "Sun" +msgstr "Կիր" + +msgid "January" +msgstr "Հունվար" + +msgid "February" +msgstr "Փետրվար" + +msgid "March" +msgstr "Մարտ" + +msgid "April" +msgstr "Ապրիլ" + +msgid "May" +msgstr "Մայիս" + +msgid "June" +msgstr "Հունիս" + +msgid "July" +msgstr "Հուլիս" + +msgid "August" +msgstr "Օգոստոս" + +msgid "September" +msgstr "Սեպտեմբեր" + +msgid "October" +msgstr "Հոկտեմբեր" + +msgid "November" +msgstr "Նոյեմբեր" + +msgid "December" +msgstr "Դեկտեմբեր" + +msgid "jan" +msgstr "հուն" + +msgid "feb" +msgstr "փետ" + +msgid "mar" +msgstr "մար" + +msgid "apr" +msgstr "ապր" + +msgid "may" +msgstr "մայ" + +msgid "jun" +msgstr "հուն" + +msgid "jul" +msgstr "հուլ" + +msgid "aug" +msgstr "օգտ" + +msgid "sep" +msgstr "սեպ" + +msgid "oct" +msgstr "հոկ" + +msgid "nov" +msgstr "նոյ" + +msgid "dec" +msgstr "դեկ" + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "Հուն․" + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "Փետ․" + +msgctxt "abbrev. month" +msgid "March" +msgstr "Մարտ" + +msgctxt "abbrev. month" +msgid "April" +msgstr "Մարտ" + +msgctxt "abbrev. month" +msgid "May" +msgstr "Մայիս" + +msgctxt "abbrev. month" +msgid "June" +msgstr "Հունիս" + +msgctxt "abbrev. month" +msgid "July" +msgstr "Հուլիս" + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "Օգոստ․" + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "Սեպտ․" + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "Հոկտ․" + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "Նոյ․" + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "Դեկ․" + +msgctxt "alt. month" +msgid "January" +msgstr "Հունվար" + +msgctxt "alt. month" +msgid "February" +msgstr "Փետրվար" + +msgctxt "alt. month" +msgid "March" +msgstr "Մարտ" + +msgctxt "alt. month" +msgid "April" +msgstr "Ապրիլ" + +msgctxt "alt. month" +msgid "May" +msgstr "Մայիս" + +msgctxt "alt. month" +msgid "June" +msgstr "Հունիս" + +msgctxt "alt. month" +msgid "July" +msgstr "Հուլիս" + +msgctxt "alt. month" +msgid "August" +msgstr "Օգոստոս" + +msgctxt "alt. month" +msgid "September" +msgstr "Սեպտեմբեր" + +msgctxt "alt. month" +msgid "October" +msgstr "Հոկտեմբեր" + +msgctxt "alt. month" +msgid "November" +msgstr "Նոյեմբեր" + +msgctxt "alt. month" +msgid "December" +msgstr "Դեկտեմբեր" + +msgid "This is not a valid IPv6 address." +msgstr "Սա ճիշտ IPv6 հասցե չէ" + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "" + +msgid "or" +msgstr "կամ" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr ", " + +#, python-format +msgid "%d year" +msgid_plural "%d years" +msgstr[0] "%d տարի" +msgstr[1] "%d տարի" + +#, python-format +msgid "%d month" +msgid_plural "%d months" +msgstr[0] "%d ամիս" +msgstr[1] "%d ամիս" + +#, python-format +msgid "%d week" +msgid_plural "%d weeks" +msgstr[0] "%d շաբաթ" +msgstr[1] "%d շաբաթ" + +#, python-format +msgid "%d day" +msgid_plural "%d days" +msgstr[0] "%d օր" +msgstr[1] "%d օր" + +#, python-format +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "%d ժամ" +msgstr[1] "%d ժամ" + +#, python-format +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "%d րոպե" +msgstr[1] "%d րոպե" + +msgid "0 minutes" +msgstr "0 րոպե" + +msgid "Forbidden" +msgstr "Արգելված" + +msgid "CSRF verification failed. Request aborted." +msgstr "CSRF ստուգման սխալ․ Հարցումն ընդհատված է" + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your Web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" +"Դուք տեսնում եք այս հաղորդագրությունը, քանի որ այս կայքը ձևաթերթերը " +"ուղարկելու համար պահանջում է CSRF cookie։ Այն անհրաժեշտ է անվտանգության " +"նկատառումներից ելնելով, համոզվելու համար, որ ձեր բրաուզերը չի գտնվում երրորդ " +"անձանց կառավարման տակ։" + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" + +msgid "More information is available with DEBUG=True." +msgstr "Ավելի մանրամասն տեղեկությունը հասանելի է DEBUG=True֊ի ժամանակ" + +msgid "No year specified" +msgstr "Տարին նշված չէ" + +msgid "Date out of range" +msgstr "" + +msgid "No month specified" +msgstr "Ամիսը նշված չէ" + +msgid "No day specified" +msgstr "Օրը նշված չէ" + +msgid "No week specified" +msgstr "Շաբաթը նշված չէ" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "Ոչ մի %(verbose_name_plural)s հասանելի չէ" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" +"Ապագա %(verbose_name_plural)s հասանելի չեն, քանի որ %(class_name)s." +"allow_future ունի False արժեք" + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "Հարցմանը համապատասխանող ոչ մի %(verbose_name)s չի գտնվել" + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "" + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "Սխալ էջ (%(page_number)s): %(message)s" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "" + +msgid "Directory indexes are not allowed here." +msgstr "Կատալոգների ինդեքսավորումը թույլատրված չէ այստեղ" + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "" + +#, python-format +msgid "Index of %(directory)s" +msgstr "%(directory)s֊ի ինդեքսը" + +msgid "Django: the Web framework for perfectionists with deadlines." +msgstr "" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" + +msgid "The install worked successfully! Congratulations!" +msgstr "" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not configured any " +"URLs." +msgstr "" + +msgid "Django Documentation" +msgstr "" + +msgid "Topics, references, & how-to’s" +msgstr "" + +msgid "Tutorial: A Polling App" +msgstr "" + +msgid "Get started with Django" +msgstr "" + +msgid "Django Community" +msgstr "" + +msgid "Connect, get help, or contribute" +msgstr "" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/ia/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/conf/locale/ia/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..e22136f196ce569e3a39dd3da3d867500112c700 GIT binary patch literal 21428 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/ia/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/conf/locale/ia/LC_MESSAGES/django.po new file mode 100644 index 0000000000..adb852fe9e --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/ia/LC_MESSAGES/django.po @@ -0,0 +1,1289 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Martijn Dekker , 2012,2014,2016,2021 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-09-21 10:22+0200\n" +"PO-Revision-Date: 2021-11-18 21:19+0000\n" +"Last-Translator: Transifex Bot <>\n" +"Language-Team: Interlingua (http://www.transifex.com/django/django/language/" +"ia/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ia\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Afrikaans" +msgstr "afrikaans" + +msgid "Arabic" +msgstr "arabe" + +msgid "Algerian Arabic" +msgstr "Arabe algerian" + +msgid "Asturian" +msgstr "asturiano" + +msgid "Azerbaijani" +msgstr "azeri" + +msgid "Bulgarian" +msgstr "bulgaro" + +msgid "Belarusian" +msgstr "bielorusso" + +msgid "Bengali" +msgstr "bengali" + +msgid "Breton" +msgstr "breton" + +msgid "Bosnian" +msgstr "bosniaco" + +msgid "Catalan" +msgstr "catalano" + +msgid "Czech" +msgstr "tcheco" + +msgid "Welsh" +msgstr "gallese" + +msgid "Danish" +msgstr "danese" + +msgid "German" +msgstr "germano" + +msgid "Lower Sorbian" +msgstr "sorabo inferior" + +msgid "Greek" +msgstr "greco" + +msgid "English" +msgstr "anglese" + +msgid "Australian English" +msgstr "anglese australian" + +msgid "British English" +msgstr "anglese britannic" + +msgid "Esperanto" +msgstr "esperanto" + +msgid "Spanish" +msgstr "espaniol" + +msgid "Argentinian Spanish" +msgstr "espaniol argentin" + +msgid "Colombian Spanish" +msgstr "espaniol colombian" + +msgid "Mexican Spanish" +msgstr "espaniol mexican" + +msgid "Nicaraguan Spanish" +msgstr "espaniol nicaraguan" + +msgid "Venezuelan Spanish" +msgstr "espaniol venzuelan" + +msgid "Estonian" +msgstr "estoniano" + +msgid "Basque" +msgstr "basco" + +msgid "Persian" +msgstr "persiano" + +msgid "Finnish" +msgstr "finnese" + +msgid "French" +msgstr "francese" + +msgid "Frisian" +msgstr "frison" + +msgid "Irish" +msgstr "irlandese" + +msgid "Scottish Gaelic" +msgstr "gaelico scotese" + +msgid "Galician" +msgstr "galiciano" + +msgid "Hebrew" +msgstr "hebreo" + +msgid "Hindi" +msgstr "hindi" + +msgid "Croatian" +msgstr "croato" + +msgid "Upper Sorbian" +msgstr "sorabo superior" + +msgid "Hungarian" +msgstr "hungaro" + +msgid "Armenian" +msgstr "Armenio" + +msgid "Interlingua" +msgstr "interlingua" + +msgid "Indonesian" +msgstr "indonesiano" + +msgid "Igbo" +msgstr "Igbo" + +msgid "Ido" +msgstr "ido" + +msgid "Icelandic" +msgstr "islandese" + +msgid "Italian" +msgstr "italiano" + +msgid "Japanese" +msgstr "japonese" + +msgid "Georgian" +msgstr "georgiano" + +msgid "Kabyle" +msgstr "Kabyle" + +msgid "Kazakh" +msgstr "kazakh" + +msgid "Khmer" +msgstr "khmer" + +msgid "Kannada" +msgstr "kannada" + +msgid "Korean" +msgstr "coreano" + +msgid "Kyrgyz" +msgstr "Kyrgyz" + +msgid "Luxembourgish" +msgstr "luxemburgese" + +msgid "Lithuanian" +msgstr "lituano" + +msgid "Latvian" +msgstr "letton" + +msgid "Macedonian" +msgstr "macedone" + +msgid "Malayalam" +msgstr "malayalam" + +msgid "Mongolian" +msgstr "mongolico" + +msgid "Marathi" +msgstr "marathi" + +msgid "Malay" +msgstr "" + +msgid "Burmese" +msgstr "burmese" + +msgid "Norwegian Bokmål" +msgstr "norvegianio bokmål" + +msgid "Nepali" +msgstr "nepali" + +msgid "Dutch" +msgstr "hollandese" + +msgid "Norwegian Nynorsk" +msgstr "norvegiano, nynorsk" + +msgid "Ossetic" +msgstr "ossetico" + +msgid "Punjabi" +msgstr "punjabi" + +msgid "Polish" +msgstr "polonese" + +msgid "Portuguese" +msgstr "portugese" + +msgid "Brazilian Portuguese" +msgstr "portugese brasilian" + +msgid "Romanian" +msgstr "romaniano" + +msgid "Russian" +msgstr "russo" + +msgid "Slovak" +msgstr "slovaco" + +msgid "Slovenian" +msgstr "sloveno" + +msgid "Albanian" +msgstr "albanese" + +msgid "Serbian" +msgstr "serbo" + +msgid "Serbian Latin" +msgstr "serbo latin" + +msgid "Swedish" +msgstr "svedese" + +msgid "Swahili" +msgstr "swahili" + +msgid "Tamil" +msgstr "tamil" + +msgid "Telugu" +msgstr "telugu" + +msgid "Tajik" +msgstr "Tadzhik" + +msgid "Thai" +msgstr "thailandese" + +msgid "Turkmen" +msgstr "Turkmen" + +msgid "Turkish" +msgstr "turco" + +msgid "Tatar" +msgstr "tartaro" + +msgid "Udmurt" +msgstr "udmurto" + +msgid "Ukrainian" +msgstr "ukrainiano" + +msgid "Urdu" +msgstr "urdu" + +msgid "Uzbek" +msgstr "Uzbek" + +msgid "Vietnamese" +msgstr "vietnamese" + +msgid "Simplified Chinese" +msgstr "chinese simplificate" + +msgid "Traditional Chinese" +msgstr "chinese traditional" + +msgid "Messages" +msgstr "Messages" + +msgid "Site Maps" +msgstr "Mappas de sito" + +msgid "Static Files" +msgstr "Files static" + +msgid "Syndication" +msgstr "Syndication" + +#. Translators: String used to replace omitted page numbers in elided page +#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10]. +msgid "…" +msgstr "…" + +msgid "That page number is not an integer" +msgstr "Le numero de pagina non es un numero integre" + +msgid "That page number is less than 1" +msgstr "Le numero de pagina es minus de 1" + +msgid "That page contains no results" +msgstr "Le pagina non contine resultatos" + +msgid "Enter a valid value." +msgstr "Specifica un valor valide." + +msgid "Enter a valid URL." +msgstr "Specifica un URL valide." + +msgid "Enter a valid integer." +msgstr "Specifica un numero integre valide." + +msgid "Enter a valid email address." +msgstr "Specifica un adresse de e-mail valide." + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" +"Scribe un denotation (\"slug\") valide, consistente de litteras, numeros, " +"tractos de sublineamento o tractos de union." + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" +"Scribe un denotation (\"slug\") valide, consistente de litteras Unicode, " +"numeros, tractos de sublineamento o tractos de union." + +msgid "Enter a valid IPv4 address." +msgstr "Specifica un adresse IPv4 valide." + +msgid "Enter a valid IPv6 address." +msgstr "Specifica un adresse IPv6 valide." + +msgid "Enter a valid IPv4 or IPv6 address." +msgstr "Specifica un adresse IPv4 o IPv6 valide." + +msgid "Enter only digits separated by commas." +msgstr "Scribe solmente digitos separate per commas." + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "" +"Assecura te que iste valor es %(limit_value)s (illo es %(show_value)s)." + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "Assecura te que iste valor es inferior o equal a %(limit_value)s." + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "Assecura te que iste valor es superior o equal a %(limit_value)s." + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Assecura te que iste valor ha al minus %(limit_value)d character (illo ha " +"%(show_value)d)." +msgstr[1] "" +"Assecura te que iste valor ha al minus %(limit_value)d characteres (illo ha " +"%(show_value)d)." + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Assecura te que iste valor ha al plus %(limit_value)d character (illo ha " +"%(show_value)d)." +msgstr[1] "" +"Assecura te que iste valor ha al plus %(limit_value)d characteres (illo ha " +"%(show_value)d)." + +msgid "Enter a number." +msgstr "Specifica un numero." + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "Assecura te que il non ha plus de %(max)s digito in total." +msgstr[1] "Assecura te que il non ha plus de %(max)s digitos in total." + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "" +"Assecura te que il non ha plus de %(max)s cifra post le comma decimal." +msgstr[1] "" +"Assecura te que il non ha plus de %(max)s cifras post le comma decimal." + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "" +"Assecura te que il non ha plus de %(max)s cifra ante le comma decimal." +msgstr[1] "" +"Assecura te que il non ha plus de %(max)s cifras ante le comma decimal." + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" +"Le extension de nomine de file “%(extension)s” non es permittite. Le " +"extensiones permittite es: %(allowed_extensions)s." + +msgid "Null characters are not allowed." +msgstr "Characteres nulle non es permittite." + +msgid "and" +msgstr "e" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "Jam existe %(model_name)s con iste %(field_labels)s." + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "Le valor %(value)r non es un option valide." + +msgid "This field cannot be null." +msgstr "Iste campo non pote esser nulle." + +msgid "This field cannot be blank." +msgstr "Iste campo non pote esser vacue." + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "%(model_name)s con iste %(field_label)s jam existe." + +#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'. +#. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" +"%(field_label)s debe esser unic pro %(lookup_type)s de %(date_field_label)s." + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "Campo de typo: %(field_type)s" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "Le valor “%(value)s” debe esser o True/Ver o False." + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "Le valor “%(value)s” debe esser True/Ver, False o None/Necun." + +msgid "Boolean (Either True or False)" +msgstr "Booleano (ver o false)" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "Catena (longitude maxime: %(max_length)s)" + +msgid "Comma-separated integers" +msgstr "Numeros integre separate per commas" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" +"Le valor “%(value)s” ha un formato de data invalide. Debe esser in formato " +"AAAA-MM-DD." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" +"Le valor “%(value)s” ha le formato correcte (AAAA-MM-DD) ma es un data " +"invalide." + +msgid "Date (without time)" +msgstr "Data (sin hora)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" +"Le valor “%(value)s” es in un formato invalide. Debe esser in formato AAAA-" +"MM-DD HH:MM[:ss[.uuuuuu]][FH]." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" +"Le valor “%(value)s” es in le formato correcte (YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][FH]) ma es un data/hora invalide." + +msgid "Date (with time)" +msgstr "Data (con hora)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "Le valor “%(value)s” debe esser un numero decimal." + +msgid "Decimal number" +msgstr "Numero decimal" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" +"Le valor “%(value)s” es in un formato invalide. Debe esser in formato [DD] " +"[HH:[MM:]]ss[.uuuuuu]." + +msgid "Duration" +msgstr "Duration" + +msgid "Email address" +msgstr "Adresse de e-mail" + +msgid "File path" +msgstr "Cammino de file" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "Le valor “%(value)s” debe esser un numero a comma flottante." + +msgid "Floating point number" +msgstr "Numero a comma flottante" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "Le valor “%(value)s” debe esser un numero integre." + +msgid "Integer" +msgstr "Numero integre" + +msgid "Big (8 byte) integer" +msgstr "Numero integre grande (8 bytes)" + +msgid "Small integer" +msgstr "Parve numero integre" + +msgid "IPv4 address" +msgstr "Adresse IPv4" + +msgid "IP address" +msgstr "Adresse IP" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "Le valor “%(value)s” debe esser None/Nulle, True/Ver o False." + +msgid "Boolean (Either True, False or None)" +msgstr "Booleano (ver, false o nulle)" + +msgid "Positive big integer" +msgstr "Grande numero integre positive" + +msgid "Positive integer" +msgstr "Numero integre positive" + +msgid "Positive small integer" +msgstr "Parve numero integre positive" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "Denotation (longitude maxime: %(max_length)s)" + +msgid "Text" +msgstr "Texto" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" +"Le valor “%(value)s” es in un formato invalide. Debe esser in formato HH:MM[:" +"ss[.uuuuuu]] ." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" +"Le valor “%(value)s” es in le formato correcte (HH:MM[:ss[.uuuuuu]]) ma es " +"un hora invalide." + +msgid "Time" +msgstr "Hora" + +msgid "URL" +msgstr "URL" + +msgid "Raw binary data" +msgstr "Datos binari crude" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "“%(value)s” non es un UUID valide." + +msgid "Universally unique identifier" +msgstr "" + +msgid "File" +msgstr "File" + +msgid "Image" +msgstr "Imagine" + +msgid "A JSON object" +msgstr "" + +msgid "Value must be valid JSON." +msgstr "" + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "Le instantia de %(model)s con %(field)s %(value)r non existe." + +msgid "Foreign Key (type determined by related field)" +msgstr "Clave estranier (typo determinate per le campo associate)" + +msgid "One-to-one relationship" +msgstr "Relation un a un" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "Relation %(from)s a %(to)s" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "Relationes %(from)s a %(to)s" + +msgid "Many-to-many relationship" +msgstr "Relation multes a multes" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr "" + +msgid "This field is required." +msgstr "Iste campo es obligatori." + +msgid "Enter a whole number." +msgstr "Specifica un numero integre." + +msgid "Enter a valid date." +msgstr "Specifica un data valide." + +msgid "Enter a valid time." +msgstr "Specifica un hora valide." + +msgid "Enter a valid date/time." +msgstr "Specifica un data e hora valide." + +msgid "Enter a valid duration." +msgstr "Specifica un duration valide." + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "" + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "" +"Nulle file esseva submittite. Verifica le typo de codification in le " +"formulario." + +msgid "No file was submitted." +msgstr "Nulle file esseva submittite." + +msgid "The submitted file is empty." +msgstr "Le file submittite es vacue." + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" +"Assecura te que iste valor ha al plus %(max)d character (illo ha %(length)d)." +msgstr[1] "" +"Assecura te que iste valor ha al plus %(max)d characteres (illo ha " +"%(length)d)." + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "Per favor o submitte un file o marca le quadrato \"rader\", non ambes." + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" +"Per favor incarga un imagine valide. Le file que tu incargava o non esseva " +"un imagine o esseva un imagine corrumpite." + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "" +"Selige un option valide. %(value)s non es inter le optiones disponibile." + +msgid "Enter a list of values." +msgstr "Scribe un lista de valores." + +msgid "Enter a complete value." +msgstr "Specifica un valor complete." + +msgid "Enter a valid UUID." +msgstr "Specifica un UUID valide." + +msgid "Enter a valid JSON." +msgstr "" + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr "" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "(Campo celate %(name)s) %(error)s" + +#, python-format +msgid "" +"ManagementForm data is missing or has been tampered with. Missing fields: " +"%(field_names)s. You may need to file a bug report if the issue persists." +msgstr "" + +#, python-format +msgid "Please submit at most %d form." +msgid_plural "Please submit at most %d forms." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "Please submit at least %d form." +msgid_plural "Please submit at least %d forms." +msgstr[0] "" +msgstr[1] "" + +msgid "Order" +msgstr "Ordine" + +msgid "Delete" +msgstr "Deler" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "Per favor corrige le datos duplicate pro %(field)s." + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "" +"Per favor corrige le datos duplicate pro %(field)s, que debe esser unic." + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"Per favor corrige le datos duplicate pro %(field_name)s, que debe esser unic " +"pro le %(lookup)s in %(date_field)s." + +msgid "Please correct the duplicate values below." +msgstr "Per favor corrige le sequente valores duplicate." + +msgid "The inline value did not match the parent instance." +msgstr "" + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "" +"Per favor selige un option valide. Iste option non es inter le optiones " +"disponibile." + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "" + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" + +msgid "Clear" +msgstr "Rader" + +msgid "Currently" +msgstr "Actualmente" + +msgid "Change" +msgstr "Cambiar" + +msgid "Unknown" +msgstr "Incognite" + +msgid "Yes" +msgstr "Si" + +msgid "No" +msgstr "No" + +#. Translators: Please do not add spaces around commas. +msgid "yes,no,maybe" +msgstr "si,no,forsan" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)d byte" +msgstr[1] "%(size)d bytes" + +#, python-format +msgid "%s KB" +msgstr "%s KB" + +#, python-format +msgid "%s MB" +msgstr "%s MB" + +#, python-format +msgid "%s GB" +msgstr "%s GB" + +#, python-format +msgid "%s TB" +msgstr "%s TB" + +#, python-format +msgid "%s PB" +msgstr "%s PB" + +msgid "p.m." +msgstr "pm." + +msgid "a.m." +msgstr "am." + +msgid "PM" +msgstr "PM" + +msgid "AM" +msgstr "AM" + +msgid "midnight" +msgstr "medienocte" + +msgid "noon" +msgstr "mediedie" + +msgid "Monday" +msgstr "lunedi" + +msgid "Tuesday" +msgstr "martedi" + +msgid "Wednesday" +msgstr "mercuridi" + +msgid "Thursday" +msgstr "jovedi" + +msgid "Friday" +msgstr "venerdi" + +msgid "Saturday" +msgstr "sabbato" + +msgid "Sunday" +msgstr "dominica" + +msgid "Mon" +msgstr "lun" + +msgid "Tue" +msgstr "mar" + +msgid "Wed" +msgstr "mer" + +msgid "Thu" +msgstr "jov" + +msgid "Fri" +msgstr "ven" + +msgid "Sat" +msgstr "sab" + +msgid "Sun" +msgstr "dom" + +msgid "January" +msgstr "januario" + +msgid "February" +msgstr "februario" + +msgid "March" +msgstr "martio" + +msgid "April" +msgstr "april" + +msgid "May" +msgstr "maio" + +msgid "June" +msgstr "junio" + +msgid "July" +msgstr "julio" + +msgid "August" +msgstr "augusto" + +msgid "September" +msgstr "septembre" + +msgid "October" +msgstr "octobre" + +msgid "November" +msgstr "novembre" + +msgid "December" +msgstr "decembre" + +msgid "jan" +msgstr "jan" + +msgid "feb" +msgstr "feb" + +msgid "mar" +msgstr "mar" + +msgid "apr" +msgstr "apr" + +msgid "may" +msgstr "mai" + +msgid "jun" +msgstr "jun" + +msgid "jul" +msgstr "jul" + +msgid "aug" +msgstr "aug" + +msgid "sep" +msgstr "sep" + +msgid "oct" +msgstr "oct" + +msgid "nov" +msgstr "nov" + +msgid "dec" +msgstr "dec" + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "Jan." + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "Feb." + +msgctxt "abbrev. month" +msgid "March" +msgstr "Mar." + +msgctxt "abbrev. month" +msgid "April" +msgstr "April" + +msgctxt "abbrev. month" +msgid "May" +msgstr "Maio" + +msgctxt "abbrev. month" +msgid "June" +msgstr "Junio" + +msgctxt "abbrev. month" +msgid "July" +msgstr "Julio" + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "Aug." + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "Sept." + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "Oct." + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "Nov." + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "Dec." + +msgctxt "alt. month" +msgid "January" +msgstr "Januario" + +msgctxt "alt. month" +msgid "February" +msgstr "Februario" + +msgctxt "alt. month" +msgid "March" +msgstr "Martio" + +msgctxt "alt. month" +msgid "April" +msgstr "April" + +msgctxt "alt. month" +msgid "May" +msgstr "Maio" + +msgctxt "alt. month" +msgid "June" +msgstr "Junio" + +msgctxt "alt. month" +msgid "July" +msgstr "Julio" + +msgctxt "alt. month" +msgid "August" +msgstr "Augusto" + +msgctxt "alt. month" +msgid "September" +msgstr "Septembre" + +msgctxt "alt. month" +msgid "October" +msgstr "Octobre" + +msgctxt "alt. month" +msgid "November" +msgstr "Novembre" + +msgctxt "alt. month" +msgid "December" +msgstr "Decembre" + +msgid "This is not a valid IPv6 address." +msgstr "Isto non es un adresse IPv6 valide." + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "" + +msgid "or" +msgstr "o" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr ", " + +#, python-format +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "" +msgstr[1] "" + +msgid "Forbidden" +msgstr "Prohibite" + +msgid "CSRF verification failed. Request aborted." +msgstr "Verification CSRF fallite. Requesta abortate." + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" +"Tu vide iste message perque iste sito require un cookie CSRF durante le " +"submission de formularios. Iste cookie es requirite pro motivos de " +"securitate, pro assecurar que tu navigator non es sequestrate per tertie " +"personas." + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" + +msgid "More information is available with DEBUG=True." +msgstr "Plus information es disponibile con DEBUG=True." + +msgid "No year specified" +msgstr "Nulle anno specificate" + +msgid "Date out of range" +msgstr "" + +msgid "No month specified" +msgstr "Nulle mense specificate" + +msgid "No day specified" +msgstr "Nulle die specificate" + +msgid "No week specified" +msgstr "Nulle septimana specificate" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "Il non ha %(verbose_name_plural)s disponibile" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" +"In le futuro, %(verbose_name_plural)s non essera disponibile perque " +"%(class_name)s.allow_future es False." + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "Nulle %(verbose_name)s trovate que corresponde al consulta" + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "" + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "Pagina invalide (%(page_number)s): %(message)s" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "" + +msgid "Directory indexes are not allowed here." +msgstr "Le indices de directorio non es permittite hic." + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "" + +#, python-format +msgid "Index of %(directory)s" +msgstr "Indice de %(directory)s" + +msgid "The install worked successfully! Congratulations!" +msgstr "" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not configured any " +"URLs." +msgstr "" + +msgid "Django Documentation" +msgstr "" + +msgid "Topics, references, & how-to’s" +msgstr "" + +msgid "Tutorial: A Polling App" +msgstr "" + +msgid "Get started with Django" +msgstr "" + +msgid "Django Community" +msgstr "" + +msgid "Connect, get help, or contribute" +msgstr "" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/id/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/conf/locale/id/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..b1815ce52d03f19ea62f39d09da7825d09332bc1 GIT binary patch literal 27405 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, 2017 +# Bayu Satiyo , 2024 +# Claude Paroz , 2018 +# Fery Setiawan , 2015-2019,2021-2023 +# Jannis Leidel , 2011 +# M Asep Indrayana , 2015 +# oon arfiandwi (OonID) , 2016,2020 +# rodin , 2011 +# rodin , 2013-2016 +# sag​e , 2018-2019 +# Sutrisno Efendi , 2015,2017 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-05-22 11:46-0300\n" +"PO-Revision-Date: 2013-04-25 06:49+0000\n" +"Last-Translator: Bayu Satiyo , 2024\n" +"Language-Team: Indonesian (http://app.transifex.com/django/django/language/" +"id/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: id\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +msgid "Afrikaans" +msgstr "Afrikaans" + +msgid "Arabic" +msgstr "Arab" + +msgid "Algerian Arabic" +msgstr "Arab Aljazair" + +msgid "Asturian" +msgstr "Asturia" + +msgid "Azerbaijani" +msgstr "Azerbaijani" + +msgid "Bulgarian" +msgstr "Bulgaria" + +msgid "Belarusian" +msgstr "Belarusia" + +msgid "Bengali" +msgstr "Bengali" + +msgid "Breton" +msgstr "Breton" + +msgid "Bosnian" +msgstr "Bosnia" + +msgid "Catalan" +msgstr "Catalan" + +msgid "Central Kurdish (Sorani)" +msgstr "Kurdi Tengah (Sorani)" + +msgid "Czech" +msgstr "Ceska" + +msgid "Welsh" +msgstr "Wales" + +msgid "Danish" +msgstr "Denmark" + +msgid "German" +msgstr "Jerman" + +msgid "Lower Sorbian" +msgstr "Sorbian Bawah" + +msgid "Greek" +msgstr "Yunani" + +msgid "English" +msgstr "Inggris" + +msgid "Australian English" +msgstr "Inggris Australia" + +msgid "British English" +msgstr "Inggris Britania" + +msgid "Esperanto" +msgstr "Esperanto" + +msgid "Spanish" +msgstr "Spanyol" + +msgid "Argentinian Spanish" +msgstr "Spanyol Argentina" + +msgid "Colombian Spanish" +msgstr "Spanyol Kolombia" + +msgid "Mexican Spanish" +msgstr "Spanyol Meksiko" + +msgid "Nicaraguan Spanish" +msgstr "Spanyol Nikaragua" + +msgid "Venezuelan Spanish" +msgstr "Spanyol Venezuela" + +msgid "Estonian" +msgstr "Estonia" + +msgid "Basque" +msgstr "Basque" + +msgid "Persian" +msgstr "Persia" + +msgid "Finnish" +msgstr "Finlandia" + +msgid "French" +msgstr "Perancis" + +msgid "Frisian" +msgstr "Frisia" + +msgid "Irish" +msgstr "Irlandia" + +msgid "Scottish Gaelic" +msgstr "Skolandia Gaelik" + +msgid "Galician" +msgstr "Galicia" + +msgid "Hebrew" +msgstr "Ibrani" + +msgid "Hindi" +msgstr "Hindi" + +msgid "Croatian" +msgstr "Kroasia" + +msgid "Upper Sorbian" +msgstr "Sorbian Atas" + +msgid "Hungarian" +msgstr "Hungaria" + +msgid "Armenian" +msgstr "Armenia" + +msgid "Interlingua" +msgstr "Interlingua" + +msgid "Indonesian" +msgstr "Indonesia" + +msgid "Igbo" +msgstr "Igbo" + +msgid "Ido" +msgstr "Ido" + +msgid "Icelandic" +msgstr "Islandia" + +msgid "Italian" +msgstr "Italia" + +msgid "Japanese" +msgstr "Jepang" + +msgid "Georgian" +msgstr "Georgia" + +msgid "Kabyle" +msgstr "Kabyle" + +msgid "Kazakh" +msgstr "Kazakhstan" + +msgid "Khmer" +msgstr "Khmer" + +msgid "Kannada" +msgstr "Kannada" + +msgid "Korean" +msgstr "Korea" + +msgid "Kyrgyz" +msgstr "Kirgis" + +msgid "Luxembourgish" +msgstr "Luksemburg" + +msgid "Lithuanian" +msgstr "Lithuania" + +msgid "Latvian" +msgstr "Latvia" + +msgid "Macedonian" +msgstr "Makedonia" + +msgid "Malayalam" +msgstr "Malayalam" + +msgid "Mongolian" +msgstr "Mongolia" + +msgid "Marathi" +msgstr "Marathi" + +msgid "Malay" +msgstr "Malaysia" + +msgid "Burmese" +msgstr "Burma" + +msgid "Norwegian Bokmål" +msgstr "Norwegia Bokmål" + +msgid "Nepali" +msgstr "Nepal" + +msgid "Dutch" +msgstr "Belanda" + +msgid "Norwegian Nynorsk" +msgstr "Norwegia Nynorsk" + +msgid "Ossetic" +msgstr "Ossetic" + +msgid "Punjabi" +msgstr "Punjabi" + +msgid "Polish" +msgstr "Polandia" + +msgid "Portuguese" +msgstr "Portugis" + +msgid "Brazilian Portuguese" +msgstr "Portugis Brazil" + +msgid "Romanian" +msgstr "Romania" + +msgid "Russian" +msgstr "Rusia" + +msgid "Slovak" +msgstr "Slovakia" + +msgid "Slovenian" +msgstr "Slovenia" + +msgid "Albanian" +msgstr "Albania" + +msgid "Serbian" +msgstr "Serbia" + +msgid "Serbian Latin" +msgstr "Serbia Latin" + +msgid "Swedish" +msgstr "Swedia" + +msgid "Swahili" +msgstr "Swahili" + +msgid "Tamil" +msgstr "Tamil" + +msgid "Telugu" +msgstr "Telugu" + +msgid "Tajik" +msgstr "Tajik" + +msgid "Thai" +msgstr "Thailand" + +msgid "Turkmen" +msgstr "Turkmenistan" + +msgid "Turkish" +msgstr "Turki" + +msgid "Tatar" +msgstr "Tatar" + +msgid "Udmurt" +msgstr "Udmurt" + +msgid "Uyghur" +msgstr "Uyghur" + +msgid "Ukrainian" +msgstr "Ukrainia" + +msgid "Urdu" +msgstr "Urdu" + +msgid "Uzbek" +msgstr "Uzbek" + +msgid "Vietnamese" +msgstr "Vietnam" + +msgid "Simplified Chinese" +msgstr "Tiongkok Sederhana" + +msgid "Traditional Chinese" +msgstr "Tiongkok Tradisionil" + +msgid "Messages" +msgstr "Pesan" + +msgid "Site Maps" +msgstr "Peta Situs" + +msgid "Static Files" +msgstr "Berkas Statis" + +msgid "Syndication" +msgstr "Sindikasi" + +#. Translators: String used to replace omitted page numbers in elided page +#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10]. +msgid "…" +msgstr "…" + +msgid "That page number is not an integer" +msgstr "Nomor halaman itu bukan sebuah integer" + +msgid "That page number is less than 1" +msgstr "Nomor halaman itu kurang dari 1" + +msgid "That page contains no results" +msgstr "Tidak ada hasil untuk halaman tersebut" + +msgid "Enter a valid value." +msgstr "Masukkan nilai yang valid." + +msgid "Enter a valid domain name." +msgstr "" + +msgid "Enter a valid URL." +msgstr "Masukkan URL yang valid." + +msgid "Enter a valid integer." +msgstr "Masukan sebuah bilangan bulat yang benar" + +msgid "Enter a valid email address." +msgstr "Masukkan alamat email yang valid." + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" +"Masukkan “slug” valid yang terdiri dari huruf, angka, garis bawah, atau " +"tanda hubung." + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" +"Masukkan sebuah “slug” valid yang terdiri dari huruf, angka, garis bawah, " +"atau penghubung Unicode." + +#, python-format +msgid "Enter a valid %(protocol)s address." +msgstr "" + +msgid "IPv4" +msgstr "" + +msgid "IPv6" +msgstr "" + +msgid "IPv4 or IPv6" +msgstr "" + +msgid "Enter only digits separated by commas." +msgstr "Hanya masukkan angka yang dipisahkan dengan koma." + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "Pastikan nilai ini %(limit_value)s (saat ini %(show_value)s)." + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "Pastikan nilai ini lebih kecil dari atau sama dengan %(limit_value)s." + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "Pastikan nilai ini lebih besar dari atau sama dengan %(limit_value)s." + +#, python-format +msgid "Ensure this value is a multiple of step size %(limit_value)s." +msgstr "" +"Pastikan nilai ini adalah kelipatan dari ukuran langkah %(limit_value)s." + +#, python-format +msgid "" +"Ensure this value is a multiple of step size %(limit_value)s, starting from " +"%(offset)s, e.g. %(offset)s, %(valid_value1)s, %(valid_value2)s, and so on." +msgstr "" +"Pastikan nilai ini merupakan kelipatan ukuran langkah %(limit_value)s, " +"dimulai dari %(offset)s, misalnya %(offset)s, %(valid_value1)s, " +"%(valid_value2)s, dan seterusnya." + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Pastikan nilai ini mengandung paling sedikit %(limit_value)d karakter " +"(sekarang %(show_value)d karakter)." + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Pastikan nilai ini mengandung paling banyak %(limit_value)d karakter " +"(sekarang %(show_value)d karakter)." + +msgid "Enter a number." +msgstr "Masukkan sebuah bilangan." + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "Pastikan jumlah angka pada bilangan tidak melebihi %(max)s angka." + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "Pastikan bilangan tidak memiliki lebih dari %(max)s angka desimal." + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "" +"Pastikan jumlah angka sebelum desimal pada bilangan tidak memiliki lebih " +"dari %(max)s angka." + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" +"Ekstensi berkas “%(extension)s” tidak diizinkan. Ekstensi diizinkan adalah: " +"%(allowed_extensions)s." + +msgid "Null characters are not allowed." +msgstr "Karakter null tidak diizinkan." + +msgid "and" +msgstr "dan" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "%(model_name)s dengan %(field_labels)s ini tidak ada." + +#, python-format +msgid "Constraint “%(name)s” is violated." +msgstr "Batasan “%(name)s” dilanggar." + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "Nilai %(value)r bukan pilihan yang valid." + +msgid "This field cannot be null." +msgstr "Field ini tidak boleh null." + +msgid "This field cannot be blank." +msgstr "Field ini tidak boleh kosong." + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "%(model_name)s dengan %(field_label)s telah ada." + +#. Translators: The 'lookup_type' is one of 'date', 'year' or +#. 'month'. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" +"%(field_label)s haruslah unik untuk %(date_field_label)s %(lookup_type)s." + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "Field dengan tipe: %(field_type)s" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "Nilai “%(value)s” harus berupa True atau False." + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "Nilai “%(value)s” harus berupa True, False, atau None." + +msgid "Boolean (Either True or False)" +msgstr "Nilai Boolean (Salah satu dari True atau False)" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "String (maksimum %(max_length)s)" + +msgid "String (unlimited)" +msgstr "String (tidak terbatas)" + +msgid "Comma-separated integers" +msgstr "Bilangan asli yang dipisahkan dengan koma" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" +"Nilai “%(value)s” mempunyai format tanggal yang tidak valid. Tanggal harus " +"dalam format YYYY-MM-DD." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" +"Nilai “%(value)s” memiliki format yang benar (YYYY-MM-DD), tetapi tanggalnya " +"tidak valid." + +msgid "Date (without time)" +msgstr "Tanggal (tanpa waktu)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" +"Nilai “%(value)s” memiliki format yang tidak valid. Tanggal dan waktu harus " +"dalam format YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ]." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" +"Nilai “%(value)s” memiliki format yang benar (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]), tetapi tanggal/waktunya tidak valid." + +msgid "Date (with time)" +msgstr "Tanggal (dengan waktu)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "Nilai “%(value)s” harus berupa bilangan desimal." + +msgid "Decimal number" +msgstr "Bilangan desimal" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" +"Nilai “%(value)s” mempunyai format yang tidak valid. Waktu harus dalam " +"format [DD] [[HH:]MM:]ss[.uuuuuu]." + +msgid "Duration" +msgstr "Durasi" + +msgid "Email address" +msgstr "Alamat email" + +msgid "File path" +msgstr "Lokasi berkas" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "Nilai “%(value)s” harus berupa bilangan real." + +msgid "Floating point number" +msgstr "Bilangan 'floating point'" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "Nilai “%(value)s” harus berupa integer." + +msgid "Integer" +msgstr "Bilangan Asli" + +msgid "Big (8 byte) integer" +msgstr "Bilangan asli raksasa (8 byte)" + +msgid "Small integer" +msgstr "Bilangan asli kecil" + +msgid "IPv4 address" +msgstr "Alamat IPv4" + +msgid "IP address" +msgstr "Alamat IP" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "Nilai “%(value)s” harus berupa None, True, atau False." + +msgid "Boolean (Either True, False or None)" +msgstr "Boolean (Salah satu dari True, False, atau None)" + +msgid "Positive big integer" +msgstr "Integer besar positif" + +msgid "Positive integer" +msgstr "Bilangan asli positif" + +msgid "Positive small integer" +msgstr "Bilangan asli kecil positif" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "Slug (hingga %(max_length)s karakter)" + +msgid "Text" +msgstr "Teks" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" +"Nilai “%(value)s” mempunyai format yang tidak valid. Waktu harus dalam " +"format HH:MM[:ss[.uuuuuu]]." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" +"Nilai “%(value)s” mempunyai format yang benar (HH:MM[:ss[.uuuuuu]]), tetapi " +"nilai waktunya tidak valid." + +msgid "Time" +msgstr "Waktu" + +msgid "URL" +msgstr "URL" + +msgid "Raw binary data" +msgstr "Data biner mentah" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "“%(value)s” bukan UUID yang valid." + +msgid "Universally unique identifier" +msgstr "Pengenal unik secara universal" + +msgid "File" +msgstr "Berkas" + +msgid "Image" +msgstr "Gambar" + +msgid "A JSON object" +msgstr "Objek JSON" + +msgid "Value must be valid JSON." +msgstr "Nilai harus JSON yang valid." + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "Salinan %(model)s dengan %(field)s %(value)r tidak ada." + +msgid "Foreign Key (type determined by related field)" +msgstr "Kunci Asing (tipe tergantung dari bidang yang berkaitan)" + +msgid "One-to-one relationship" +msgstr "Hubungan satu-ke-satu" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "Hubungan %(from)s-%(to)s" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "Hubungan %(from)s-%(to)s" + +msgid "Many-to-many relationship" +msgstr "Hubungan banyak-ke-banyak" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr ":?.!" + +msgid "This field is required." +msgstr "Bidang ini tidak boleh kosong." + +msgid "Enter a whole number." +msgstr "Masukkan keseluruhan angka bilangan." + +msgid "Enter a valid date." +msgstr "Masukkan tanggal yang valid." + +msgid "Enter a valid time." +msgstr "Masukkan waktu yang valid." + +msgid "Enter a valid date/time." +msgstr "Masukkan tanggal/waktu yang valid." + +msgid "Enter a valid duration." +msgstr "Masukan durasi waktu yang benar." + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "Jumlah hari harus di antara {min_days} dan {max_days}." + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "Tidak ada berkas yang dikirimkan. Periksa tipe pengaksaraan formulir." + +msgid "No file was submitted." +msgstr "Tidak ada berkas yang dikirimkan." + +msgid "The submitted file is empty." +msgstr "Berkas yang dikirimkan kosong." + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" +"Pastikan nama berkas ini mengandung paling banyak %(max)d karakter (sekarang " +"%(length)d karakter)." + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "" +"Pilih antara mengirimkan berkas atau menghapus tanda centang pada kotak " +"centang" + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" +"Unggah gambar yang valid. Berkas yang Anda unggah bukan merupakan berkas " +"gambar atau gambarnya rusak." + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "" +"Masukkan pilihan yang valid. %(value)s bukan salah satu dari pilihan yang " +"tersedia." + +msgid "Enter a list of values." +msgstr "Masukkan beberapa nilai." + +msgid "Enter a complete value." +msgstr "Masukkan nilai yang komplet." + +msgid "Enter a valid UUID." +msgstr "Masukan UUID yang benar." + +msgid "Enter a valid JSON." +msgstr "Masukkan JSON yang valid." + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr ":" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "(Bidang tersembunyi %(name)s) %(error)s" + +#, python-format +msgid "" +"ManagementForm data is missing or has been tampered with. Missing fields: " +"%(field_names)s. You may need to file a bug report if the issue persists." +msgstr "" +"Data ManagementForm telah hilang atau telah dirusak. Bidang yang hilang: " +"%(field_names)s. Anda mungkin butuh memberkaskan laporan kesalahan jika " +"masalah masih ada." + +#, python-format +msgid "Please submit at most %(num)d form." +msgid_plural "Please submit at most %(num)d forms." +msgstr[0] "Harap ajukan paling banyak %(num)d formulir." + +#, python-format +msgid "Please submit at least %(num)d form." +msgid_plural "Please submit at least %(num)d forms." +msgstr[0] "Harap ajukan setidaknya %(num)d formulir." + +msgid "Order" +msgstr "Urutan" + +msgid "Delete" +msgstr "Hapus" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "Perbaiki data ganda untuk %(field)s." + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "Perbaiki data ganda untuk %(field)s yang nilainya harus unik." + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"Perbaiki data ganda untuk %(field_name)s yang nilainya harus unik untuk " +"pencarian %(lookup)s pada %(date_field)s." + +msgid "Please correct the duplicate values below." +msgstr "Perbaiki nilai ganda di bawah ini." + +msgid "The inline value did not match the parent instance." +msgstr "Nilai sebaris tidak cocok dengan instance induk." + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "" +"Masukkan pilihan yang valid. Pilihan tersebut bukan salah satu dari pilihan " +"yang tersedia." + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "“%(pk)s” bukan nilai yang valid." + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" +"%(datetime)s tidak dapat diterjemahkan dalam zona waktu " +"%(current_timezone)s; mungkin nilainya ambigu atau tidak ada." + +msgid "Clear" +msgstr "Hapus" + +msgid "Currently" +msgstr "Saat ini" + +msgid "Change" +msgstr "Ubah" + +msgid "Unknown" +msgstr "Tidak diketahui" + +msgid "Yes" +msgstr "Ya" + +msgid "No" +msgstr "Tidak" + +#. Translators: Please do not add spaces around commas. +msgid "yes,no,maybe" +msgstr "ya,tidak,mungkin" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)d bita" + +#, python-format +msgid "%s KB" +msgstr "%s KB" + +#, python-format +msgid "%s MB" +msgstr "%s MB" + +#, python-format +msgid "%s GB" +msgstr "%s GB" + +#, python-format +msgid "%s TB" +msgstr "%s TB" + +#, python-format +msgid "%s PB" +msgstr "%s PB" + +msgid "p.m." +msgstr "p.m" + +msgid "a.m." +msgstr "a.m" + +msgid "PM" +msgstr "PM" + +msgid "AM" +msgstr "AM" + +msgid "midnight" +msgstr "tengah malam" + +msgid "noon" +msgstr "siang" + +msgid "Monday" +msgstr "Senin" + +msgid "Tuesday" +msgstr "Selasa" + +msgid "Wednesday" +msgstr "Rabu" + +msgid "Thursday" +msgstr "Kamis" + +msgid "Friday" +msgstr "Jumat" + +msgid "Saturday" +msgstr "Sabtu" + +msgid "Sunday" +msgstr "Minggu" + +msgid "Mon" +msgstr "Sen" + +msgid "Tue" +msgstr "Sel" + +msgid "Wed" +msgstr "Rab" + +msgid "Thu" +msgstr "Kam" + +msgid "Fri" +msgstr "Jum" + +msgid "Sat" +msgstr "Sab" + +msgid "Sun" +msgstr "Min" + +msgid "January" +msgstr "Januari" + +msgid "February" +msgstr "Februari" + +msgid "March" +msgstr "Maret" + +msgid "April" +msgstr "April" + +msgid "May" +msgstr "Mei" + +msgid "June" +msgstr "Juni" + +msgid "July" +msgstr "Juli" + +msgid "August" +msgstr "Agustus" + +msgid "September" +msgstr "September" + +msgid "October" +msgstr "Oktober" + +msgid "November" +msgstr "November" + +msgid "December" +msgstr "Desember" + +msgid "jan" +msgstr "jan" + +msgid "feb" +msgstr "feb" + +msgid "mar" +msgstr "mar" + +msgid "apr" +msgstr "apr" + +msgid "may" +msgstr "mei" + +msgid "jun" +msgstr "jun" + +msgid "jul" +msgstr "jul" + +msgid "aug" +msgstr "agu" + +msgid "sep" +msgstr "sep" + +msgid "oct" +msgstr "okt" + +msgid "nov" +msgstr "nov" + +msgid "dec" +msgstr "des" + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "Jan." + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "Feb." + +msgctxt "abbrev. month" +msgid "March" +msgstr "Maret" + +msgctxt "abbrev. month" +msgid "April" +msgstr "April" + +msgctxt "abbrev. month" +msgid "May" +msgstr "Mei" + +msgctxt "abbrev. month" +msgid "June" +msgstr "Juni" + +msgctxt "abbrev. month" +msgid "July" +msgstr "Juli" + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "Agu" + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "Sep." + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "Okt." + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "Nov." + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "Des." + +msgctxt "alt. month" +msgid "January" +msgstr "Januari" + +msgctxt "alt. month" +msgid "February" +msgstr "Februari" + +msgctxt "alt. month" +msgid "March" +msgstr "Maret" + +msgctxt "alt. month" +msgid "April" +msgstr "April" + +msgctxt "alt. month" +msgid "May" +msgstr "Mei" + +msgctxt "alt. month" +msgid "June" +msgstr "Juni" + +msgctxt "alt. month" +msgid "July" +msgstr "Juli" + +msgctxt "alt. month" +msgid "August" +msgstr "Agustus" + +msgctxt "alt. month" +msgid "September" +msgstr "September" + +msgctxt "alt. month" +msgid "October" +msgstr "Oktober" + +msgctxt "alt. month" +msgid "November" +msgstr "November" + +msgctxt "alt. month" +msgid "December" +msgstr "Desember" + +msgid "This is not a valid IPv6 address." +msgstr "Ini bukan alamat IPv6 yang valid." + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "%(truncated_text)s…" + +msgid "or" +msgstr "atau" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr ", " + +#, python-format +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "%(num)d tahun" + +#, python-format +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "%(num)d bulan" + +#, python-format +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "%(num)d minggu" + +#, python-format +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "%(num)d hari" + +#, python-format +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "%(num)d jam" + +#, python-format +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "%(num)d menit" + +msgid "Forbidden" +msgstr "Terlarang" + +msgid "CSRF verification failed. Request aborted." +msgstr "Verifikasi CSRF gagal, Permintaan dibatalkan." + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" +"Anda melihat pesan ini karena jaringan HTTPS ini membutuhkan “Referer " +"header” untuk dikirim oleh peramban jaringan anda, tetapi tidak ada yg " +"dikirim. Kepala ini diwajibkan untuk alasan keamanan, untuk memastikan bahwa " +"peramban anda tidak sedang dibajak oleh pihak ketiga." + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" +"Jika Anda menonaktifkan header 'Referrer' pada konfigurasi peramban Anda, " +"mohon aktfikan kembali, setidaknya untuk situs ini, untuk koneksi HTTPS, " +"atau untuk request 'same-origin'." + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" +"Jika Anda menggunakan tag " +"atau menyertakan bagian kepala 'Referrer-Policy: no-referrer', harap hapus " +"hal tersebut. Perlindungan CSRF membutuhkan bagian kepala 'Referrer' untuk " +"melakukan pemeriksaan pengarahan ketat. Jika Anda khawatir mengenai privasi, " +"gunakan cara lain seperti untuk tautan ke situs " +"pihak ketiga." + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" +"Anda melihat pesan ini karena situs ini membutuhkan sebuah kuki CSRF ketika " +"mengirimkan formulir. Kuki ini dibutuhkan untuk alasan keamanan, untuk " +"memastikan bahwa peramban Anda tidak sedang dibajak oleh pihak ketiga." + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" +"Jika Anda telah mengatur peramban Anda untuk menonaktifkan kuki, maka " +"aktifkanlah kembali, setidaknya untuk website ini, atau untuk request 'same-" +"origin'." + +msgid "More information is available with DEBUG=True." +msgstr "Informasi lebih lanjut tersedia dengan DEBUG=True" + +msgid "No year specified" +msgstr "Tidak ada tahun dipilih" + +msgid "Date out of range" +msgstr "Tanggal di luar kisaran" + +msgid "No month specified" +msgstr "Tidak ada bulan dipilih" + +msgid "No day specified" +msgstr "Tidak ada hari dipilih" + +msgid "No week specified" +msgstr "Tidak ada minggu dipilih" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "Tidak ada %(verbose_name_plural)s tersedia" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" +"%(verbose_name_plural)s di masa depan tidak tersedia karena %(class_name)s." +"allow_future bernilai False." + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "Nilai tanggal tidak valid “%(datestr)s” untuk format “%(format)s”" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "Tidak ada %(verbose_name)s yang cocok dengan kueri" + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "" +"Laman bukan yang “terakhir” dan juga tidak dapat dikonversikan ke sebuah " +"integer." + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "Laman tidak valid (%(page_number)s): %(message)s" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "Daftar kosong dan '%(class_name)s.allow_empty' bernilai False." + +msgid "Directory indexes are not allowed here." +msgstr "Indeks direktori tidak diizinkan di sini." + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "“%(path)s” tidak ada" + +#, python-format +msgid "Index of %(directory)s" +msgstr "Daftar isi %(directory)s" + +msgid "The install worked successfully! Congratulations!" +msgstr "Selamat! Instalasi berjalan lancar!" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" +"Lihat catatan rilis untuk Django %(version)s" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not " +"configured any URLs." +msgstr "" +"Anda sedang melihat halaman ini karena DEBUG=True berada di berkas pengaturan Anda dan Anda " +"belum mengonfigurasi URL apa pun." + +msgid "Django Documentation" +msgstr "Dokumentasi Django" + +msgid "Topics, references, & how-to’s" +msgstr "Topik, referensi, & cara pemakaian" + +msgid "Tutorial: A Polling App" +msgstr "Tutorial: Sebuah Aplikasi Jajak Pendapat" + +msgid "Get started with Django" +msgstr "Memulai dengan Django" + +msgid "Django Community" +msgstr "Komunitas Django" + +msgid "Connect, get help, or contribute" +msgstr "Terhubung, minta bantuan, atau berkontribusi" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/id/__init__.py b/venv/lib/python3.12/site-packages/django/conf/locale/id/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/id/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/id/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..71e13ed67a577f6ed4057e2439cebf4f0ff60fbe GIT binary patch literal 198 zcmX@j%ge<81o5sX(m?cM5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!O4ZNE&rQ|OP0Yy6 zFHO;RNiEZNN=(kybEFQ_cZ$j>v@Gc?jK&MZmQEdVM^ zOiwM=Pssu+OwP|s)6dCIPRvQw&rH#ekI&4@EQycTE2#X%VUwGmQks)$SHudml@W-G PL5z>gjEsy$%s>_Z#2Ykt literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/id/__pycache__/formats.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/id/__pycache__/formats.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7a0d214a464658bc3d1effa92b6e6112735f7ec4 GIT binary patch literal 1018 zcmZXSyKmY+9LLWXCp-e?-L#b=OO*$t;8WYRs^k>&P>UTIqsq5fz?oMuMnEFrDg7(D zck6#rsSBgU+9?}KHm07r0Qn5*cV~D4z+bP}eSvLwtdQ^n zV1NLo5QPIMfN4bIAPQmzG57?X;8S$k1vvDRLLnT+k!}EmNgXA11fQWOj-fLgN3l7Z zPdLnglR4dq_|qj<7WxkD4<$nB0atPuT(And6ZR*s;hrK_$cLN|j|;q2;B_xS-h!Lt zv-zI+iQ`+`W|iZwHi@(o$y?ndZd(a|bSQ4=nz~$5!aYs?shp25qeW4ZjFO_(L~Y4>g;uTY zLG-Xl>XN7$HAU7cJ0Y>DilV+F$$CXmHREvC>=QcLu2fa)UZ-v-CF83keO{(~ttwwP zwC#TNWy*JsS#E#NW1cKZpQ<(Si&2-ZMOD-kmFN|vQ5WUn0b}Jx?MhOOvZ^$$t8)1l zc=TTT8pED#nb2zXEc*t-qInCin(c1|X@p^G*c^3jcx#Ss;jrI=(B?w#y3OrKYIP16)(u8i e4DHtsk=QH3bE^xGC1%p~#*~{%e`hCIa@Id477@t+ literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/id/formats.py b/venv/lib/python3.12/site-packages/django/conf/locale/id/formats.py new file mode 100644 index 0000000000..91a25590fa --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/id/formats.py @@ -0,0 +1,49 @@ +# This file is distributed under the same license as the Django package. +# +# The *_FORMAT strings use the Django date format syntax, +# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date +DATE_FORMAT = "j N Y" +DATETIME_FORMAT = "j N Y, G.i" +TIME_FORMAT = "G.i" +YEAR_MONTH_FORMAT = "F Y" +MONTH_DAY_FORMAT = "j F" +SHORT_DATE_FORMAT = "d-m-Y" +SHORT_DATETIME_FORMAT = "d-m-Y G.i" +FIRST_DAY_OF_WEEK = 1 # Monday + +# The *_INPUT_FORMATS strings use the Python strftime format syntax, +# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior +DATE_INPUT_FORMATS = [ + "%d-%m-%Y", # '25-10-2009' + "%d/%m/%Y", # '25/10/2009' + "%d-%m-%y", # '25-10-09' + "%d/%m/%y", # '25/10/09' + "%d %b %Y", # '25 Oct 2006', + "%d %B %Y", # '25 October 2006' + "%m/%d/%y", # '10/25/06' + "%m/%d/%Y", # '10/25/2009' +] + +TIME_INPUT_FORMATS = [ + "%H.%M.%S", # '14.30.59' + "%H.%M", # '14.30' +] + +DATETIME_INPUT_FORMATS = [ + "%d-%m-%Y %H.%M.%S", # '25-10-2009 14.30.59' + "%d-%m-%Y %H.%M.%S.%f", # '25-10-2009 14.30.59.000200' + "%d-%m-%Y %H.%M", # '25-10-2009 14.30' + "%d-%m-%y %H.%M.%S", # '25-10-09' 14.30.59' + "%d-%m-%y %H.%M.%S.%f", # '25-10-09' 14.30.59.000200' + "%d-%m-%y %H.%M", # '25-10-09' 14.30' + "%m/%d/%y %H.%M.%S", # '10/25/06 14.30.59' + "%m/%d/%y %H.%M.%S.%f", # '10/25/06 14.30.59.000200' + "%m/%d/%y %H.%M", # '10/25/06 14.30' + "%m/%d/%Y %H.%M.%S", # '25/10/2009 14.30.59' + "%m/%d/%Y %H.%M.%S.%f", # '25/10/2009 14.30.59.000200' + "%m/%d/%Y %H.%M", # '25/10/2009 14.30' +] + +DECIMAL_SEPARATOR = "," +THOUSAND_SEPARATOR = "." +NUMBER_GROUPING = 3 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/ig/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/conf/locale/ig/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..8e689c80cf8f0947abfe09fbf7821d04a02ffa11 GIT binary patch literal 27188 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, 2020 +# Mariusz Felisiak , 2020 +# Okpala Olisa , 2020 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-05-19 20:23+0200\n" +"PO-Revision-Date: 2020-07-30 12:26+0000\n" +"Last-Translator: Mariusz Felisiak \n" +"Language-Team: Igbo (http://www.transifex.com/django/django/language/ig/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ig\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +msgid "Afrikaans" +msgstr "Afrikaans" + +msgid "Arabic" +msgstr "Arabici" + +msgid "Algerian Arabic" +msgstr "Arabici ndị Algeria " + +msgid "Asturian" +msgstr "Asturian" + +msgid "Azerbaijani" +msgstr "Azerbaijani" + +msgid "Bulgarian" +msgstr "Bulgaria" + +msgid "Belarusian" +msgstr "Belarusia" + +msgid "Bengali" +msgstr "Bengali" + +msgid "Breton" +msgstr "Breton" + +msgid "Bosnian" +msgstr "Bosnian" + +msgid "Catalan" +msgstr "Catalan" + +msgid "Czech" +msgstr "Czech" + +msgid "Welsh" +msgstr "Welsh" + +msgid "Danish" +msgstr "Danishi" + +msgid "German" +msgstr "Germani" + +msgid "Lower Sorbian" +msgstr "Sorbian nke Ala" + +msgid "Greek" +msgstr "Greeki" + +msgid "English" +msgstr "Bekee" + +msgid "Australian English" +msgstr "Bekee ndị Australia" + +msgid "British English" +msgstr "Bekee ndị Britain" + +msgid "Esperanto" +msgstr "Esperanto" + +msgid "Spanish" +msgstr "Spanishi" + +msgid "Argentinian Spanish" +msgstr "Spanishi ndị Argentina" + +msgid "Colombian Spanish" +msgstr "Spanishi ndị Colombia " + +msgid "Mexican Spanish" +msgstr "Spanishi ndị Mexico " + +msgid "Nicaraguan Spanish" +msgstr "Spanishi ndị Nicaraguan" + +msgid "Venezuelan Spanish" +msgstr "Spanishi ndị Venezuela " + +msgid "Estonian" +msgstr "Estonian" + +msgid "Basque" +msgstr "Basque" + +msgid "Persian" +msgstr "Persian" + +msgid "Finnish" +msgstr "Finnishi" + +msgid "French" +msgstr "Fụrenchị" + +msgid "Frisian" +msgstr "Frisian" + +msgid "Irish" +msgstr "Irishi" + +msgid "Scottish Gaelic" +msgstr "Scottish Gaelici" + +msgid "Galician" +msgstr "Galiciani" + +msgid "Hebrew" +msgstr "Hibru" + +msgid "Hindi" +msgstr "Hindi" + +msgid "Croatian" +msgstr "Croatian" + +msgid "Upper Sorbian" +msgstr "Sorbian nke Elu" + +msgid "Hungarian" +msgstr "Hungarian" + +msgid "Armenian" +msgstr "Armeniani" + +msgid "Interlingua" +msgstr "Interlingua" + +msgid "Indonesian" +msgstr "Indonesian" + +msgid "Igbo" +msgstr "ìgbò" + +msgid "Ido" +msgstr "Ido" + +msgid "Icelandic" +msgstr "Icelandici" + +msgid "Italian" +msgstr "Italian" + +msgid "Japanese" +msgstr "Japanisi " + +msgid "Georgian" +msgstr "Georgian" + +msgid "Kabyle" +msgstr "Kabyle" + +msgid "Kazakh" +msgstr "Kazakh" + +msgid "Khmer" +msgstr "Khmer" + +msgid "Kannada" +msgstr "Kannada" + +msgid "Korean" +msgstr "Korean" + +msgid "Kyrgyz" +msgstr "Kyrgyz" + +msgid "Luxembourgish" +msgstr "Luxembourgish" + +msgid "Lithuanian" +msgstr "Lithuanian" + +msgid "Latvian" +msgstr "Latvian" + +msgid "Macedonian" +msgstr "Macedonian" + +msgid "Malayalam" +msgstr "Malayalam" + +msgid "Mongolian" +msgstr "Mongolian" + +msgid "Marathi" +msgstr "Marathi" + +msgid "Burmese" +msgstr "Burmese" + +msgid "Norwegian Bokmål" +msgstr "Bokmål ndị Norway" + +msgid "Nepali" +msgstr "Nepali" + +msgid "Dutch" +msgstr "Dutch" + +msgid "Norwegian Nynorsk" +msgstr "Nynorsk ndị Norway " + +msgid "Ossetic" +msgstr "Ossetici" + +msgid "Punjabi" +msgstr "Punjabi" + +msgid "Polish" +msgstr "Polishi" + +msgid "Portuguese" +msgstr "Portuguisi" + +msgid "Brazilian Portuguese" +msgstr "Portuguese ndị Brazil" + +msgid "Romanian" +msgstr "Romaniani" + +msgid "Russian" +msgstr "Russiani" + +msgid "Slovak" +msgstr "Slovaki" + +msgid "Slovenian" +msgstr "Sloveniani" + +msgid "Albanian" +msgstr "Albaniani" + +msgid "Serbian" +msgstr "Serbiani" + +msgid "Serbian Latin" +msgstr "Serbian Latini" + +msgid "Swedish" +msgstr "Swedishi" + +msgid "Swahili" +msgstr "Swahili" + +msgid "Tamil" +msgstr "Tamil" + +msgid "Telugu" +msgstr "Telugu" + +msgid "Tajik" +msgstr "Tajik" + +msgid "Thai" +msgstr "Thai" + +msgid "Turkmen" +msgstr "Turkmen" + +msgid "Turkish" +msgstr "Turkishi" + +msgid "Tatar" +msgstr "Tatar" + +msgid "Udmurt" +msgstr "Udmurt" + +msgid "Ukrainian" +msgstr "Ukrainiani" + +msgid "Urdu" +msgstr "Urdu" + +msgid "Uzbek" +msgstr "Uzbeki" + +msgid "Vietnamese" +msgstr "Vietnamesi" + +msgid "Simplified Chinese" +msgstr "Chinisi Ndị Mfe" + +msgid "Traditional Chinese" +msgstr "Odịnala Chinisi" + +msgid "Messages" +msgstr "Ozi" + +msgid "Site Maps" +msgstr "Maapụ Saịtị" + +msgid "Static Files" +msgstr "Faịlụ Nkwụsiri ike" + +msgid "Syndication" +msgstr "Nyefee Njikwa" + +msgid "That page number is not an integer" +msgstr "Nọmba peeji ahụ abụghị onu ogugu" + +msgid "That page number is less than 1" +msgstr "Nọmba peeji ahụ erughị 1" + +msgid "That page contains no results" +msgstr "Peeji ahụ enweghị nsonaazụ ọ bụla" + +msgid "Enter a valid value." +msgstr "Tinye uru zuru oke." + +msgid "Enter a valid URL." +msgstr "Tinye URL zuru oke." + +msgid "Enter a valid integer." +msgstr "Tinye nọmba zuru oke." + +msgid "Enter a valid email address." +msgstr "Tinye adreesị ozi ịntanetị n'zuru oke." + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" +"Tinye “slug” zuru oke nke mejupụtara mkpụrụedemede, ọnụọgụ, underscores ma ọ " +"bụ hyphens." + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" +"Tinye “slug” zuru oke nke mejupụtara Unicode mkpụrụedemede, ọnụọgụ, " +"underscores ma ọ bụ hyphens." + +msgid "Enter a valid IPv4 address." +msgstr "Tinye adreesị IPv4 zuru oke." + +msgid "Enter a valid IPv6 address." +msgstr "Tinye adreesị IPv6 zuru oke." + +msgid "Enter a valid IPv4 or IPv6 address." +msgstr "Tinye adreesị IPv4 ma obu IPv6 zuru oke." + +msgid "Enter only digits separated by commas." +msgstr "Tinye naanị ọnụọgụ kewapụrụ site na comma." + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "Gbaa mbọ hụ na %(limit_value)s (ọ bụ %(show_value)s)." + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "Gbaa mbọ hụ na orughị ma ọ bụ hara nhata %(limit_value)s." + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "Gbaa mbọ hụ na okarịa ma ọ bụ hara nhata%(limit_value)s." + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Gbaa mbọ hụ na a nwere opekata mpe %(limit_value)d odide (o nwere " +"%(show_value)d)." + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Gbaa mbọ hụ na a nwere kacha %(limit_value)d odide (o nwere%(show_value)d)." + +msgid "Enter a number." +msgstr "Tinye nọmba." + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "Gbaa mbọ hụ na ọ dighi karịrị %(max)s nọmba na mkpokọta." + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "Gbaa mbọ hụ na ọ dighi karịrị %(max)s na ebe ntụpọ." + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "Gbaa mbọ hụ na ọ dighi karịrị %(max)s nọmba tupu akụkụ ebe ntụpọ." + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" +"Ndọtị Faịlị “%(extension)s”anaghị anabata. Ndọtị nke kwere n'nabata bu: " +"%(allowed_extensions)s." + +msgid "Null characters are not allowed." +msgstr "Anabataghị ihe odide n'enweghị isi." + +msgid "and" +msgstr "na" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "%(model_name)s ya na nke a %(field_labels)s dị adị." + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "Nọmba %(value)r abụghị ezigbo nhọrọ." + +msgid "This field cannot be null." +msgstr "Ebe a enweghị ike ịbụ ihe efu." + +msgid "This field cannot be blank." +msgstr "Ebe a enweghị ike ịbụ ohere efu." + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "%(model_name)s ya na nke a %(field_label)s dị adi." + +#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'. +#. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" +"%(field_label)s ga-abụ ihe pụrụ iche maka %(date_field_label)s " +"%(lookup_type)s." + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "Ebe a nke ụdị: %(field_type)s" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "“%(value)s” uru a ga-abụrịrị Eziokwu ma ọ bụ Ugha." + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "“%(value)s”uru a ga-abụrịrị Eziokwu, Ugha, ma ọ bụ Onweghị." + +msgid "Boolean (Either True or False)" +msgstr "Boolean (Eziokwu ma o bụ Ugha)" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "String (ruo %(max_length)s)" + +msgid "Comma-separated integers" +msgstr "Rikom-kewapụrụ nomba" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" +"“%(value)s” uru a nwere usoro nke n'adịghị adị. Ọ ga-abụrịrị n'ụdị YYYY-MM-" +"DD." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" +"“%(value)s”uru a nwere usoro ziri ezi (YYYY-MM-DD) mana ọ bụ ụbọchị n'abaghị " +"uru." + +msgid "Date (without time)" +msgstr "Ubọchị (na-enweghị oge)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" +"“%(value)s” uru a nwere usoro nke n'adịghị adị. Ọ ga-abụrịrị n'ụdị YYYY-MM-" +"DD HH:MM[:ss[.uuuuuu]][TZ] usoro. " + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" +"“%(value)s”uru a nwere usoro ziri ezi (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ])mana ọ bụ ụbọchị n'abaghị uru." + +msgid "Date (with time)" +msgstr "Ubọchị (na oge)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "“%(value)s” uru a ga-abụrịrị nọmba ntụpọ." + +msgid "Decimal number" +msgstr "Nọmba ntụpọ." + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" +"“%(value)s”uru a nwere usoro nke n'adịghị adị. Ọ ga-abụrịrị n'ụdị [DD] " +"[[HH:]MM:]ss[.uuuuuu]usoro." + +msgid "Duration" +msgstr "Oge ole" + +msgid "Email address" +msgstr "Adreesị ozi ịntanetị" + +msgid "File path" +msgstr "Uzọ Faịlụ di" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "“%(value)s”uru a ga-abụrịrị float." + +msgid "Floating point number" +msgstr "Nọmba ebe floating no " + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "“%(value)s” uru a ga-abụrịrị onu ogugu" + +msgid "Integer" +msgstr "Onu ogugu" + +msgid "Big (8 byte) integer" +msgstr "Onu ogugu (8 byte) nnukwu" + +msgid "IPv4 address" +msgstr "Adreesị IPv4" + +msgid "IP address" +msgstr "Adreesị IP" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "“%(value)s”uru a ga-abụrịrị na Odighị, Eziokwu ma ọ bụ.Ugha." + +msgid "Boolean (Either True, False or None)" +msgstr "Boolean (Ihe a ga abụriri eziokwu, ụgha ma ọ bu na onweghi)" + +msgid "Positive big integer" +msgstr "Nnukwu nomba nke oma" + +msgid "Positive integer" +msgstr "Nọmba nke oma" + +msgid "Positive small integer" +msgstr "Obere nọmba nke oma" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "Slug (ruo %(max_length)s)" + +msgid "Small integer" +msgstr "Onu ogugu nke obere" + +msgid "Text" +msgstr "Ederede" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" +"“%(value)s” uru a nwere usoro nke n'adịghị adị. Ọ ga-abụrịrị n'ụdị HH:MM[:" +"ss[.uuuuuu]]usoro." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" +"“%(value)s” uru a nwere usoro ziri ezi (HH:MM[:ss[.uuuuuu]]) mana ọ bu oge " +"n'abaghị uru." + +msgid "Time" +msgstr "Oge" + +msgid "URL" +msgstr "URL" + +msgid "Raw binary data" +msgstr "Raw binary data" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "“%(value)s”abụghị UUID n’kwesịrị ekwesị." + +msgid "Universally unique identifier" +msgstr "Universally unique identifier" + +msgid "File" +msgstr "Faịlụ" + +msgid "Image" +msgstr "Foto" + +msgid "A JSON object" +msgstr "Ihe JSON" + +msgid "Value must be valid JSON." +msgstr "Uru a ga-abụrịrị JSON n’kwesịrị ekwesị." + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "%(model)s dịka %(field)s %(value)r adịghị adị." + +msgid "Foreign Key (type determined by related field)" +msgstr "Foreign Key (ụdị kpebiri site na mpaghara metụtara)" + +msgid "One-to-one relationship" +msgstr "Mmekọrịta otu-na-otu" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "%(from)s-%(to)s mmekọrịta" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "%(from)s-%(to)s mmekọrịta" + +msgid "Many-to-many relationship" +msgstr "Mmekọrịta otutu-na-otutu" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr ":?.!" + +msgid "This field is required." +msgstr "Ebe a kwesiri ekwesi." + +msgid "Enter a whole number." +msgstr "Tinye nọmba onu ogugu." + +msgid "Enter a valid date." +msgstr "Tinye ụbọchị zuru oke." + +msgid "Enter a valid time." +msgstr "Tinye oge zuru oke." + +msgid "Enter a valid date/time." +msgstr "Tinye ụbọchị / oge zuru oke" + +msgid "Enter a valid duration." +msgstr "Tinye oge onuno zuru oke." + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "Onu ogugu ubochi a gha aburiri n’agbata {min_days} na {max_days}." + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "Onweghi faịlụ a debanyere. Lee ụdị encoding a ntinye na ederede." + +msgid "No file was submitted." +msgstr "E nweghị faịlụ e watara" + +msgid "The submitted file is empty." +msgstr "O nweghị ihe dị n'ime faịlụ e wetara" + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" +"Gbaa mbọ hụ na aha faịlụ a nwere kacha %(max)d odide (o nwere %(length)d)." + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "" +"Biko nyefee faịlụ a ma ọ bụ tinye akara na igbe akara, ọ bụghị ha abụọ." + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" +"Bugote foto n’zuru oke. Faịlụ a ị bugoro abụghị foto ma ọ bụ foto rụrụ arụ." + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "Họrọ ezigbo nhọrọ. %(value)sabụghị otu nhọrọ n'ime nke dịnụ." + +msgid "Enter a list of values." +msgstr "Tinye ndepụta nke ụkpụrụ." + +msgid "Enter a complete value." +msgstr "Tinye uru zuru okè" + +msgid "Enter a valid UUID." +msgstr "Tinye UUID kwesịrị ekwesị" + +msgid "Enter a valid JSON." +msgstr "Tinye JSON kwesịrị ekwesị" + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr ":" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "(Ebe ezoro ezo%(name)s) %(error)s" + +msgid "ManagementForm data is missing or has been tampered with" +msgstr "Data ManagementForm na-efu efu ma ọ bụ a kpara ya aka" + +#, python-format +msgid "Please submit %d or fewer forms." +msgid_plural "Please submit %d or fewer forms." +msgstr[0] "Biko nyefee %d ma ọ bụ fomụ di ole na ole." + +#, python-format +msgid "Please submit %d or more forms." +msgid_plural "Please submit %d or more forms." +msgstr[0] "Biko nyefee%d ma ọ bụ fomụ karịrị otu ahụ" + +msgid "Order" +msgstr "Usoro" + +msgid "Delete" +msgstr "Hichapụ" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "Biko dozie data oji abuo a maka %(field)s." + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "Biko dozie data oji abuo a maka %(field)s, nke gha diriri iche." + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"Biko dozie data oji abuo a maka %(field_name)s nke gha diriri iche maka " +"%(lookup)s n'ime %(date_field)s." + +msgid "Please correct the duplicate values below." +msgstr "Biko dozie uru oji abuo nke no n'okpuru." + +msgid "The inline value did not match the parent instance." +msgstr "Uru inline a adabaghị na parent instance." + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "Họrọ ezigbo nhọrọ. Nhọrọ a abụghị otu nhọrọ dịnụ." + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "%(pk)sabụghi uru kwesịrị ekwesị" + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" +"%(datetime)s enweghị ike ịkọwa na mpaghara oge %(current_timezone)s; onwere " +"ike iju anya ma obu ọ gaghị adị." + +msgid "Clear" +msgstr "Kpochapu" + +msgid "Currently" +msgstr "Ugbu a" + +msgid "Change" +msgstr "Gbanwee" + +msgid "Unknown" +msgstr "Ihe N’amaghi" + +msgid "Yes" +msgstr "Ee" + +msgid "No" +msgstr "Mba" + +#. Translators: Please do not add spaces around commas. +msgid "yes,no,maybe" +msgstr "ee, mba, nwere ike" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)d bytes" + +#, python-format +msgid "%s KB" +msgstr "%s KB" + +#, python-format +msgid "%s MB" +msgstr "%s MB" + +#, python-format +msgid "%s GB" +msgstr "%s GB" + +#, python-format +msgid "%s TB" +msgstr "%s TB" + +#, python-format +msgid "%s PB" +msgstr "%s PB" + +msgid "p.m." +msgstr "p.m." + +msgid "a.m." +msgstr "a.m." + +msgid "PM" +msgstr "PM" + +msgid "AM" +msgstr "AM" + +msgid "midnight" +msgstr "etiti Abalị" + +msgid "noon" +msgstr "Ehihie" + +msgid "Monday" +msgstr "Mọnde" + +msgid "Tuesday" +msgstr "Tiuzdee" + +msgid "Wednesday" +msgstr "Wenezdee" + +msgid "Thursday" +msgstr "Tọọzdee" + +msgid "Friday" +msgstr "Fraịdee" + +msgid "Saturday" +msgstr "Satọdee" + +msgid "Sunday" +msgstr "Mbọsi Uka" + +msgid "Mon" +msgstr "Mọnde" + +msgid "Tue" +msgstr "Tiu" + +msgid "Wed" +msgstr "Wen" + +msgid "Thu" +msgstr "Tọọ" + +msgid "Fri" +msgstr "Fraị" + +msgid "Sat" +msgstr "Sat" + +msgid "Sun" +msgstr "Ụka" + +msgid "January" +msgstr "Jenụwarị" + +msgid "February" +msgstr "Febrụwarị" + +msgid "March" +msgstr "Maachị" + +msgid "April" +msgstr "Eprel" + +msgid "May" +msgstr "Mee" + +msgid "June" +msgstr "Juun" + +msgid "July" +msgstr "Julaị" + +msgid "August" +msgstr "Ọgọọst" + +msgid "September" +msgstr "Septemba" + +msgid "October" +msgstr "Ọktoba" + +msgid "November" +msgstr "Novemba" + +msgid "December" +msgstr "Disemba" + +msgid "jan" +msgstr "jen" + +msgid "feb" +msgstr "feb" + +msgid "mar" +msgstr "maa" + +msgid "apr" +msgstr "epr" + +msgid "may" +msgstr "mee" + +msgid "jun" +msgstr "juu" + +msgid "jul" +msgstr "jul" + +msgid "aug" +msgstr "ọgọ" + +msgid "sep" +msgstr "sep" + +msgid "oct" +msgstr "ọkt" + +msgid "nov" +msgstr "nov" + +msgid "dec" +msgstr "dis" + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "Jenụwarị" + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "Feb." + +msgctxt "abbrev. month" +msgid "March" +msgstr "Maachị" + +msgctxt "abbrev. month" +msgid "April" +msgstr "Eprel" + +msgctxt "abbrev. month" +msgid "May" +msgstr "Mee" + +msgctxt "abbrev. month" +msgid "June" +msgstr "Juun" + +msgctxt "abbrev. month" +msgid "July" +msgstr "Julaị" + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "Ọgọ." + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "Sep." + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "Ọkt." + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "Nov." + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "Dis." + +msgctxt "alt. month" +msgid "January" +msgstr "Jenụwarị" + +msgctxt "alt. month" +msgid "February" +msgstr "Febrụwarị" + +msgctxt "alt. month" +msgid "March" +msgstr "Maachị" + +msgctxt "alt. month" +msgid "April" +msgstr "Eprel" + +msgctxt "alt. month" +msgid "May" +msgstr "Mee" + +msgctxt "alt. month" +msgid "June" +msgstr "Juun" + +msgctxt "alt. month" +msgid "July" +msgstr "Julaị" + +msgctxt "alt. month" +msgid "August" +msgstr "Ọgọọst" + +msgctxt "alt. month" +msgid "September" +msgstr "Septemba" + +msgctxt "alt. month" +msgid "October" +msgstr "Ọktoba" + +msgctxt "alt. month" +msgid "November" +msgstr "Novemba" + +msgctxt "alt. month" +msgid "December" +msgstr "Disemba" + +msgid "This is not a valid IPv6 address." +msgstr "Nke a abaghị adresị IPv6 zuru oke." + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "%(truncated_text)s…" + +msgid "or" +msgstr "ma obu" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr ", " + +#, python-format +msgid "%d year" +msgid_plural "%d years" +msgstr[0] "%d afọ" + +#, python-format +msgid "%d month" +msgid_plural "%d months" +msgstr[0] "%dọnwa" + +#, python-format +msgid "%d week" +msgid_plural "%d weeks" +msgstr[0] "%d izu" + +#, python-format +msgid "%d day" +msgid_plural "%d days" +msgstr[0] "%d ụbọchị" + +#, python-format +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "%d awa" + +#, python-format +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "%d nkeji" + +msgid "Forbidden" +msgstr "Amachibidoro" + +msgid "CSRF verification failed. Request aborted." +msgstr "Nyocha CSRF emeghị nke ọma. Ajuju atọrọ.." + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your Web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" +"I na-ahụ ozi a n'ihi na saịtị HTTPS a chọrọ “Onye isi okwu” ka ihe nchọgharị " +"weebụ gị zitere gị, mana onweghi nke zitere. Achọrọ isi ihe a maka ebumnuche " +"nchekwa, iji jide n’aka na ndị ọzọ anaghị egbochi ihe nchọgharị gị." + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" +"Ọ bụrụ na ihazila ihe nchọgharị gị iji gbanyụọ ndị na-eji “ndị nnọchianya”, " +"biko jisie iketiachi ya, ma ọ dịkarịa maka saịtị a, ma ọ bụ maka njikọ " +"HTTPS, ma ọ bụ maka a arịrịọ “otu ụdị”." + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" +"Ọ bụrụ na ị na-eji akara " +"mmado ma ọ bụ gụnyere isi nke \"Iwu-Onye na gba ama: neweghị onye na-gba ama" +"\", biko wepu ha. Nchedo CSRF chọrọ ka isi “onye na gba ama” wee mee nyocha " +"ike nlele nke gbara ama. Ọ bụrụ na ihe gbasara gị gbasara nzuzo, jiri ụzọ " +"ọzọ dị ka njikọ maka saịtị ndị ọzọ." + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" +"I na-ahụ ozi a n'ihi na saịtị a chọrọ CSRF cookie mgbe ị na-edobe akwụkwọ. " +"Achọrọ cookie a maka ebumnuche nchekwa, iji hụ na ndị ọzọ anaghị egbochi ihe " +"nchọgharị gị." + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" +"Ọ bụrụ na ịhazila ihe nchọgharị gị iji gbanyụọ kuki, biko tiachi ya ka o na " +"ruo oru, opekata mpe maka saịtị a, ma ọ bụ maka “otu ụdị\"." + +msgid "More information is available with DEBUG=True." +msgstr "Ihe omuma ndi ozo di na DEBUG = Eziokwu." + +msgid "No year specified" +msgstr "Ọ dịghị afọ akọwapụtara" + +msgid "Date out of range" +msgstr "Ubọchị a puru na usoro" + +msgid "No month specified" +msgstr "Onweghị ọnwa akọwapụtara" + +msgid "No day specified" +msgstr "Onweghi ụbọchị akọwapụtara" + +msgid "No week specified" +msgstr "Onweghi izu akọwapụtara" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr " %(verbose_name_plural)sadịghị" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" +"Ọdịnihu %(verbose_name_plural)s adịghị adị n'ihi %(class_name)s.allow_future " +"bu ugha." + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "String ụbọchị nabaghị uru “%(datestr)s” Ntọala enyere “%(format)s”" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "Mba %(verbose_name)s hụrụ ihe dabara na ajụjụ a" + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "Peeji a a-abụghị “nke ikpeazụ”, a pụghị ịgbanwe ya na int." + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "Peeji na-abaghị uru (%(page_number)s): %(message)s" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "Tọgbọ chakoo ndepụta na “%(class_name)s.allow_empty” bụ Ugha." + +msgid "Directory indexes are not allowed here." +msgstr "Anaghị anabata directory indexes ebe a." + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "“%(path)s” a dịghị" + +#, python-format +msgid "Index of %(directory)s" +msgstr "Index of %(directory)s" + +msgid "Django: the Web framework for perfectionists with deadlines." +msgstr "" +"Django: usoro Ntanetị maka ndị na-achọkarị izu okè ya na oge edetu imecha." + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" +"Lee akwukwo e bipụtara maka Django" +"%(version)s" + +msgid "The install worked successfully! Congratulations!" +msgstr "Nwụnye ahụ dabara nke ọma! Ị mere nke ọma!" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not configured any " +"URLs." +msgstr "" +"I na-ahụ peeji a n'ihi na DEBUG=True dị na faili setting gị mana ịhazibeghị URL ọ bụla." + +msgid "Django Documentation" +msgstr "Akwụkwọ Ederede Django" + +msgid "Topics, references, & how-to’s" +msgstr "Isiokwu, ntụaka, & otu esi-mee" + +msgid "Tutorial: A Polling App" +msgstr "Nkuzi: App Ntuli Aka" + +msgid "Get started with Django" +msgstr "Bido na Django" + +msgid "Django Community" +msgstr "Obodo Django" + +msgid "Connect, get help, or contribute" +msgstr "Jikọọ, nweta enyemaka, ma ọ bụ tinye aka." diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/ig/__init__.py b/venv/lib/python3.12/site-packages/django/conf/locale/ig/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/ig/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/ig/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..86f15598813fc4d956a30d0dda05aedea4023c84 GIT binary patch literal 198 zcmX@j%ge<81o5sX(m?cM5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!O4ZNE&rQ|OP0Yy6 zFHO;RNiEZNN=(kybEFQ_cZ$j>v@Gc?jK&MZmQEdVM^ zOiwM=Pssu+OwP|s)6dCIPRvQw&rH{kkI&4@EQycTE2#X%VUwGmQks)$SHudml@W-G PL5z>gjEsy$%s>_Z#HciT literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/ig/__pycache__/formats.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/ig/__pycache__/formats.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..19c1a13ae1b099a71460d465cfb9917e9da6a0a7 GIT binary patch literal 794 zcmZXSzi-+=6vxjP2Ll1e4$!1okSY&IiBD}eR8@6~38=+J#;Ecw7U9f~6k`Mg2~X)? z(Y;&$lS*9}Ew7!jp=M+1nF1lo4e!41bMO1!opirbsRSU)Qhs%;C;)%LWV<38@$i9& z?*Ib?Foh@_K@m(N8b?tSGl;Qv8 z#fF!8h9t4$rJvFoZ75iD!O&0Yt4F9z4{3r z$jiYB!=CHd&}sD?_ZGvFJ%g96_SXw#h~f31HSD@@W)Ej@(7%SG`LyQ_-%79Fz)62< zUyMj$t7}gnzF8Nx-C+j~+;(eV!+sZb+_BS|PNdO%#lCY~d^@n;k59?a@Iy>25|%VY zQOgA2a(78T&66OU-En^AbOCt(_+$Z&{LERXPhKrR*3V>#Cglw0N7GA&&P5hL_{+v$ Yl0CP~fGlzFei#K`IR3_sUyvF906Ns$g#Z8m literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/ig/formats.py b/venv/lib/python3.12/site-packages/django/conf/locale/ig/formats.py new file mode 100644 index 0000000000..cb0b4de5ee --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/ig/formats.py @@ -0,0 +1,32 @@ +# This file is distributed under the same license as the Django package. +# +# The *_FORMAT strings use the Django date format syntax, +# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date +DATE_FORMAT = "j F Y" +TIME_FORMAT = "P" +DATETIME_FORMAT = "j F Y P" +YEAR_MONTH_FORMAT = "F Y" +MONTH_DAY_FORMAT = "j F" +SHORT_DATE_FORMAT = "d.m.Y" +SHORT_DATETIME_FORMAT = "d.m.Y H:i" +FIRST_DAY_OF_WEEK = 1 # Monday + +# The *_INPUT_FORMATS strings use the Python strftime format syntax, +# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior +DATE_INPUT_FORMATS = [ + "%d.%m.%Y", # '25.10.2006' + "%d.%m.%y", # '25.10.06' +] +DATETIME_INPUT_FORMATS = [ + "%d.%m.%Y %H:%M:%S", # '25.10.2006 14:30:59' + "%d.%m.%Y %H:%M:%S.%f", # '25.10.2006 14:30:59.000200' + "%d.%m.%Y %H:%M", # '25.10.2006 14:30' + "%d.%m.%Y", # '25.10.2006' + "%d.%m.%y %H:%M:%S", # '25.10.06 14:30:59' + "%d.%m.%y %H:%M:%S.%f", # '25.10.06 14:30:59.000200' + "%d.%m.%y %H:%M", # '25.10.06 14:30' + "%d.%m.%y", # '25.10.06' +] +DECIMAL_SEPARATOR = "." +THOUSAND_SEPARATOR = "," +NUMBER_GROUPING = 3 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/io/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/conf/locale/io/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..79b81f4abc2a4678ca1e3c5ffb53e9ddfe671b58 GIT binary patch literal 14317 zcmcJU3w#yTnZQr0R;60oij{V&J5|6$Nq|-@f{*eF1PGxdVAZbd z-HKw1FY2QrVr>fuibxRzE1=@mK&{)#2J0$5syAI%t!u4q-9C2PU;F>goSWQ)0J^{K zz<2+1&YU^V?|k2xFE4-m$mNRbUF6fqBS$MW{R2vU`2@*T>YBkyje*xfdHy*32z&*8 z6uu4lul~Z%$Kl|UlKe9a$H1e=uQzNooMU*Ip$$JnxeWXuycQk{Z!qcGOnN0ehWxvr z)VmRW2tEK$ggZ?7DfnU1&zN)x4kGrQ8!x+I<>|p1lC2+-oNPEyH)A^y5!Z#(5Nj z77l{){s~a}cQTasPc`YG=J{Dr+WQ=o^}f)gXF%!q#gL^`Hk9|j0%d-#grcusGwJ0} z+F1$Zy;UZ?0m}MrfwJ#*!=dmAD0=x8lyUzVj)Q~QEK+_J{1{9b#)eCwjCUoJ@vVWP zXB(jO?{Sm=BPi{4ne8f@%+IY*@^6Qe;c7Sqz7A!6Mq-Sl{CQC3eLR$LH$rK@1xh&=qH-#P zQtn15?|mCGWojLi_Bx@w_k?-A*YH^=^YXIct5C|l2}MtSZTLHg3aS5v(%z8M^ww2p zLz&-3DD7mRj4KD_{RqmwZ8y)CLFwPkhAU0}YAEflgEFp-=K1&GC8T#jsc*>X$vm6_ zMK4D|X?Gly_b!4mo_dqt2<5#dDE;^nlzGe>USW8P;X1?ZhChb#-pf$*?KdX>$e~F+ zCqsFDCKNrm5K6g5lW!ZwP};o~ieB7lxDm>Gk3jKjPeG~gB`D?JfnwK=7?zB4h~cLV zEyJOPRfZ!BM;V@NIL7dNDC_hEcqFVh`7;e?!w-@_*F3+(s^%`BjG37=FX>R>M0Ws;5>#>DS{>`oG7d_d;3! zeNgIq5sE%_Lz&k%pxE=@oBZRel70?`N0WaVlzBcA%KBUcwO$)$pzNnBpsd%op_JbQ zrQJ>_?>z-&-F^n8-ggZD0HvI&PWn9virqZXq-&s*KNlVgFN89VsZi>jX?Qt2hO}qW zZ6>`GGBkA)lzp)sN5?%qt&vrs-|0O8< z{w>HBP{-6H=@C%YcPf!;sF8_2d>+dD zG(efJIZ)6q0HBlP{#QbJPtks<^66b`{rFJ`)<(a#2+3HWj)70dEN*oKnKeDuQz-gO8YOt z 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, 2014 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-09-27 22:40+0200\n" +"PO-Revision-Date: 2019-11-05 00:38+0000\n" +"Last-Translator: Ramiro Morales\n" +"Language-Team: Ido (http://www.transifex.com/django/django/language/io/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: io\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Afrikaans" +msgstr "Afrikaans" + +msgid "Arabic" +msgstr "العربية" + +msgid "Asturian" +msgstr "" + +msgid "Azerbaijani" +msgstr "Azərbaycanca" + +msgid "Bulgarian" +msgstr "български" + +msgid "Belarusian" +msgstr "беларуская" + +msgid "Bengali" +msgstr "বাংলা" + +msgid "Breton" +msgstr "Brezhoneg" + +msgid "Bosnian" +msgstr "босански" + +msgid "Catalan" +msgstr "Català" + +msgid "Czech" +msgstr "čeština" + +msgid "Welsh" +msgstr "Cymraeg" + +msgid "Danish" +msgstr "dansk" + +msgid "German" +msgstr "Deutsch" + +msgid "Lower Sorbian" +msgstr "" + +msgid "Greek" +msgstr "Ελληνικά" + +msgid "English" +msgstr "English" + +msgid "Australian English" +msgstr "" + +msgid "British English" +msgstr "British English" + +msgid "Esperanto" +msgstr "Esperanto" + +msgid "Spanish" +msgstr "Español" + +msgid "Argentinian Spanish" +msgstr "Español de Argentina" + +msgid "Colombian Spanish" +msgstr "" + +msgid "Mexican Spanish" +msgstr "Español de México" + +msgid "Nicaraguan Spanish" +msgstr "Español de Nicaragua" + +msgid "Venezuelan Spanish" +msgstr "Español de Venezuela" + +msgid "Estonian" +msgstr "Eesti" + +msgid "Basque" +msgstr "Euskara" + +msgid "Persian" +msgstr "فارسی" + +msgid "Finnish" +msgstr "Suomi" + +msgid "French" +msgstr "Français" + +msgid "Frisian" +msgstr "Frysk" + +msgid "Irish" +msgstr "Gaeilge" + +msgid "Scottish Gaelic" +msgstr "" + +msgid "Galician" +msgstr "Galego" + +msgid "Hebrew" +msgstr "עברית" + +msgid "Hindi" +msgstr "हिन्दी" + +msgid "Croatian" +msgstr "hrvatski" + +msgid "Upper Sorbian" +msgstr "" + +msgid "Hungarian" +msgstr "Magyar" + +msgid "Armenian" +msgstr "" + +msgid "Interlingua" +msgstr "Interlingua" + +msgid "Indonesian" +msgstr "Bahasa Indonesia" + +msgid "Ido" +msgstr "" + +msgid "Icelandic" +msgstr "Íslenska" + +msgid "Italian" +msgstr "Italiano" + +msgid "Japanese" +msgstr "日本語" + +msgid "Georgian" +msgstr "ქართული" + +msgid "Kabyle" +msgstr "" + +msgid "Kazakh" +msgstr "Қазақша" + +msgid "Khmer" +msgstr "Khmer" + +msgid "Kannada" +msgstr "Kannaḍa" + +msgid "Korean" +msgstr "한국어" + +msgid "Luxembourgish" +msgstr "Lëtzebuergesch" + +msgid "Lithuanian" +msgstr "Lietuvių" + +msgid "Latvian" +msgstr "Latviešu" + +msgid "Macedonian" +msgstr "Македонски" + +msgid "Malayalam" +msgstr "മലയാളം" + +msgid "Mongolian" +msgstr "Монгол" + +msgid "Marathi" +msgstr "" + +msgid "Burmese" +msgstr "Burmese" + +msgid "Norwegian Bokmål" +msgstr "" + +msgid "Nepali" +msgstr "नेपाली" + +msgid "Dutch" +msgstr "Nederlands" + +msgid "Norwegian Nynorsk" +msgstr "Norsk nynorsk" + +msgid "Ossetic" +msgstr "Ossetic" + +msgid "Punjabi" +msgstr "ਪੰਜਾਬੀ" + +msgid "Polish" +msgstr "Polski" + +msgid "Portuguese" +msgstr "Português" + +msgid "Brazilian Portuguese" +msgstr "Português do Brasil" + +msgid "Romanian" +msgstr "Română" + +msgid "Russian" +msgstr "Русский" + +msgid "Slovak" +msgstr "Slovenčina" + +msgid "Slovenian" +msgstr "Slovenščina" + +msgid "Albanian" +msgstr "Shqip" + +msgid "Serbian" +msgstr "Српски / srpski" + +msgid "Serbian Latin" +msgstr "Serbian Latin" + +msgid "Swedish" +msgstr "Svenska" + +msgid "Swahili" +msgstr "Kiswahili" + +msgid "Tamil" +msgstr "தமிழ்" + +msgid "Telugu" +msgstr "Telugu" + +msgid "Thai" +msgstr "ไทย" + +msgid "Turkish" +msgstr "Türkçe" + +msgid "Tatar" +msgstr "Tatar" + +msgid "Udmurt" +msgstr "Удмурт" + +msgid "Ukrainian" +msgstr "Українська" + +msgid "Urdu" +msgstr "اُردُو" + +msgid "Uzbek" +msgstr "" + +msgid "Vietnamese" +msgstr "Tiếng Việt" + +msgid "Simplified Chinese" +msgstr "简体中文" + +msgid "Traditional Chinese" +msgstr "繁體中文" + +msgid "Messages" +msgstr "" + +msgid "Site Maps" +msgstr "" + +msgid "Static Files" +msgstr "" + +msgid "Syndication" +msgstr "" + +msgid "That page number is not an integer" +msgstr "" + +msgid "That page number is less than 1" +msgstr "" + +msgid "That page contains no results" +msgstr "" + +msgid "Enter a valid value." +msgstr "Skribez valida datumo." + +msgid "Enter a valid URL." +msgstr "Skribez valida URL." + +msgid "Enter a valid integer." +msgstr "" + +msgid "Enter a valid email address." +msgstr "Skribez valida e-posto adreso." + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" + +msgid "Enter a valid IPv4 address." +msgstr "Skribez valida IPv4 adreso." + +msgid "Enter a valid IPv6 address." +msgstr "Skribez valida IPv6 adreso." + +msgid "Enter a valid IPv4 or IPv6 address." +msgstr "Skribez valida adreso IPv4 od IPv6." + +msgid "Enter only digits separated by commas." +msgstr "Skribez nur cifri separata per komi." + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "" +"Verifikez ke ica datumo esas %(limit_value)s (olu esas %(show_value)s)." + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "Verifikez ke ica datumo esas minora kam od egala a %(limit_value)s." + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "Verifikez ke ica datumo esas majora kam od egala a %(limit_value)s." + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Verifikez ke ica datumo havas %(limit_value)d litero adminime (olu havas " +"%(show_value)d)." +msgstr[1] "" +"Verifikez ke ica datumo havas %(limit_value)d literi adminime (olu havas " +"%(show_value)d)." + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Verifikez ke ica datumo havas %(limit_value)d litero admaxime (olu havas " +"%(show_value)d)." +msgstr[1] "" +"Verifikez ke ica datumo havas %(limit_value)d literi admaxime (olu havas " +"%(show_value)d)." + +msgid "Enter a number." +msgstr "Skribez numero." + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" + +msgid "Null characters are not allowed." +msgstr "" + +msgid "and" +msgstr "e" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "" + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "" + +msgid "This field cannot be null." +msgstr "Ica feldo ne povas esar nula." + +msgid "This field cannot be blank." +msgstr "Ica feldo ne povas esar vakua." + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "La %(model_name)s kun ica %(field_label)s ja existas." + +#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'. +#. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "Feldo de tipo: %(field_type)s" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "" + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "" + +msgid "Boolean (Either True or False)" +msgstr "Booleano (True o False)" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "String (til %(max_length)s)" + +msgid "Comma-separated integers" +msgstr "Integri separata per komi" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" + +msgid "Date (without time)" +msgstr "Dato (sen horo)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" + +msgid "Date (with time)" +msgstr "Dato (kun horo)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "" + +msgid "Decimal number" +msgstr "Decimala numero" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" + +msgid "Duration" +msgstr "" + +msgid "Email address" +msgstr "E-postala adreso" + +msgid "File path" +msgstr "Arkivo voyo" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "" + +msgid "Floating point number" +msgstr "Glitkomo numero" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "" + +msgid "Integer" +msgstr "Integro" + +msgid "Big (8 byte) integer" +msgstr "Granda (8 byte) integro" + +msgid "IPv4 address" +msgstr "IPv4 adreso" + +msgid "IP address" +msgstr "IP adreso" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "" + +msgid "Boolean (Either True, False or None)" +msgstr "Booleano (True, False o None)" + +msgid "Positive integer" +msgstr "Positiva integro" + +msgid "Positive small integer" +msgstr "Positiva mikra integro" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "Slug (til %(max_length)s)" + +msgid "Small integer" +msgstr "Mikra integro" + +msgid "Text" +msgstr "Texto" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" + +msgid "Time" +msgstr "Horo" + +msgid "URL" +msgstr "URL" + +msgid "Raw binary data" +msgstr "Kruda binara datumo" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "" + +msgid "Universally unique identifier" +msgstr "" + +msgid "File" +msgstr "Arkivo" + +msgid "Image" +msgstr "Imajo" + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "" + +msgid "Foreign Key (type determined by related field)" +msgstr "Exterklefo (la tipo esas determinata per la relatata feldo)" + +msgid "One-to-one relationship" +msgstr "Un-ad-un parenteso" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "" + +msgid "Many-to-many relationship" +msgstr "Multi-a-multi parenteso" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr "" + +msgid "This field is required." +msgstr "Ica feldo esas obligata." + +msgid "Enter a whole number." +msgstr "Skribez kompleta numero" + +msgid "Enter a valid date." +msgstr "Skribez valida dato." + +msgid "Enter a valid time." +msgstr "Skribez valida horo." + +msgid "Enter a valid date/time." +msgstr "Skribez valida dato/horo." + +msgid "Enter a valid duration." +msgstr "" + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "" + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "Nula arkivo sendesis. Verifikez la kodexigo tipo en la formulario." + +msgid "No file was submitted." +msgstr "Nula arkivo sendesis." + +msgid "The submitted file is empty." +msgstr "La sendita arkivo esas vakua." + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" +"Verifikez ke ica dosiero nomo havas %(max)d skribsigno admaxime (olu havas " +"%(length)d)." +msgstr[1] "" +"Verifikez ke ica arkivo nomo havas %(max)d skribsigni admaxime (olu havas " +"%(length)d)." + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "Sendez arkivo o markizez la vakua markbuxo, ne la du." + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" +"Kargez valida imajo. La arkivo qua vu kargis ne esis imajo od esis defektiva." + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "" +"Selektez valida selekto. %(value)s ne esas un de la disponebla selekti." + +msgid "Enter a list of values." +msgstr "Skribez listo de datumi." + +msgid "Enter a complete value." +msgstr "" + +msgid "Enter a valid UUID." +msgstr "" + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr "" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "(Okulta feldo %(name)s) %(error)s" + +msgid "ManagementForm data is missing or has been tampered with" +msgstr "" + +#, python-format +msgid "Please submit %d or fewer forms." +msgid_plural "Please submit %d or fewer forms." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "Please submit %d or more forms." +msgid_plural "Please submit %d or more forms." +msgstr[0] "" +msgstr[1] "" + +msgid "Order" +msgstr "Ordinar" + +msgid "Delete" +msgstr "Eliminar" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "Koretigez duopligata datumi por %(field)s." + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "Korektigez la duopligata datumi por %(field)s, qui mustas esar unika." + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"Korektigez la duopligata datumi por %(field_name)s qui mustas esar unika por " +"la %(lookup)s en %(date_field)s." + +msgid "Please correct the duplicate values below." +msgstr "Korektigez la duopligata datumi infre." + +msgid "The inline value did not match the parent instance." +msgstr "" + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "" +"Selektez valida selekto. Ita selekto ne esas un de la disponebla selekti." + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "" + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" + +msgid "Clear" +msgstr "Vakuigar" + +msgid "Currently" +msgstr "Aktuale" + +msgid "Change" +msgstr "Modifikar" + +msgid "Unknown" +msgstr "Nekonocata" + +msgid "Yes" +msgstr "Yes" + +msgid "No" +msgstr "No" + +msgid "Year" +msgstr "" + +msgid "Month" +msgstr "" + +msgid "Day" +msgstr "" + +msgid "yes,no,maybe" +msgstr "yes,no,forsan" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)d byte" +msgstr[1] "%(size)d bytes" + +#, python-format +msgid "%s KB" +msgstr "%s KB" + +#, python-format +msgid "%s MB" +msgstr "%s MB" + +#, python-format +msgid "%s GB" +msgstr "%s GB" + +#, python-format +msgid "%s TB" +msgstr "%s TB" + +#, python-format +msgid "%s PB" +msgstr "%s PB" + +msgid "p.m." +msgstr "p.m." + +msgid "a.m." +msgstr "a.m." + +msgid "PM" +msgstr "PM" + +msgid "AM" +msgstr "AM" + +msgid "midnight" +msgstr "noktomezo" + +msgid "noon" +msgstr "dimezo" + +msgid "Monday" +msgstr "Lundio" + +msgid "Tuesday" +msgstr "Mardio" + +msgid "Wednesday" +msgstr "Merkurdio" + +msgid "Thursday" +msgstr "Jovdio" + +msgid "Friday" +msgstr "Venerdio" + +msgid "Saturday" +msgstr "Saturdio" + +msgid "Sunday" +msgstr "Sundio" + +msgid "Mon" +msgstr "Lun" + +msgid "Tue" +msgstr "Mar" + +msgid "Wed" +msgstr "Mer" + +msgid "Thu" +msgstr "Jov" + +msgid "Fri" +msgstr "Ven" + +msgid "Sat" +msgstr "Sat" + +msgid "Sun" +msgstr "Sun" + +msgid "January" +msgstr "Januaro" + +msgid "February" +msgstr "Februaro" + +msgid "March" +msgstr "Marto" + +msgid "April" +msgstr "Aprilo" + +msgid "May" +msgstr "Mayo" + +msgid "June" +msgstr "Junio" + +msgid "July" +msgstr "Julio" + +msgid "August" +msgstr "Agosto" + +msgid "September" +msgstr "Septembro" + +msgid "October" +msgstr "Oktobro" + +msgid "November" +msgstr "Novembro" + +msgid "December" +msgstr "Decembro" + +msgid "jan" +msgstr "jan" + +msgid "feb" +msgstr "feb" + +msgid "mar" +msgstr "mar" + +msgid "apr" +msgstr "apr" + +msgid "may" +msgstr "may" + +msgid "jun" +msgstr "jun" + +msgid "jul" +msgstr "jul" + +msgid "aug" +msgstr "ago" + +msgid "sep" +msgstr "sep" + +msgid "oct" +msgstr "okt" + +msgid "nov" +msgstr "nov" + +msgid "dec" +msgstr "dec" + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "Jan." + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "Feb." + +msgctxt "abbrev. month" +msgid "March" +msgstr "Marto" + +msgctxt "abbrev. month" +msgid "April" +msgstr "Aprilo" + +msgctxt "abbrev. month" +msgid "May" +msgstr "Mayo" + +msgctxt "abbrev. month" +msgid "June" +msgstr "Junio" + +msgctxt "abbrev. month" +msgid "July" +msgstr "Julio" + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "Ago." + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "Sept." + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "Okt." + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "Nov." + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "Dec." + +msgctxt "alt. month" +msgid "January" +msgstr "Januaro" + +msgctxt "alt. month" +msgid "February" +msgstr "Februaro" + +msgctxt "alt. month" +msgid "March" +msgstr "Marto" + +msgctxt "alt. month" +msgid "April" +msgstr "Aprilo" + +msgctxt "alt. month" +msgid "May" +msgstr "Mayo" + +msgctxt "alt. month" +msgid "June" +msgstr "Junio" + +msgctxt "alt. month" +msgid "July" +msgstr "Julio" + +msgctxt "alt. month" +msgid "August" +msgstr "Agosto" + +msgctxt "alt. month" +msgid "September" +msgstr "Septembro" + +msgctxt "alt. month" +msgid "October" +msgstr "Oktobro" + +msgctxt "alt. month" +msgid "November" +msgstr "Novembro" + +msgctxt "alt. month" +msgid "December" +msgstr "Decembro" + +msgid "This is not a valid IPv6 address." +msgstr "" + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "" + +msgid "or" +msgstr "o" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr ", " + +#, python-format +msgid "%d year" +msgid_plural "%d years" +msgstr[0] "%d yaro" +msgstr[1] "%d yari" + +#, python-format +msgid "%d month" +msgid_plural "%d months" +msgstr[0] "%d monato" +msgstr[1] "%d monati" + +#, python-format +msgid "%d week" +msgid_plural "%d weeks" +msgstr[0] "%d semano" +msgstr[1] "%d semani" + +#, python-format +msgid "%d day" +msgid_plural "%d days" +msgstr[0] "%d dio" +msgstr[1] "%d dii" + +#, python-format +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "%d horo" +msgstr[1] "%d hori" + +#, python-format +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "%d minuto" +msgstr[1] "%d minuti" + +msgid "0 minutes" +msgstr "0 minuti" + +msgid "Forbidden" +msgstr "" + +msgid "CSRF verification failed. Request aborted." +msgstr "" + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your Web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" + +msgid "More information is available with DEBUG=True." +msgstr "" + +msgid "No year specified" +msgstr "La yaro ne specizigesis" + +msgid "Date out of range" +msgstr "" + +msgid "No month specified" +msgstr "La monato ne specizigesis" + +msgid "No day specified" +msgstr "La dio ne specizigesis" + +msgid "No week specified" +msgstr "La semano ne specizigesis" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "Ne esas %(verbose_name_plural)s disponebla" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" +"La futura %(verbose_name_plural)s ne esas disponebla pro ke %(class_name)s." +"allow_future esas False." + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "" + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "" + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "" + +msgid "Directory indexes are not allowed here." +msgstr "Onu ne permisas direktorio indexi hike." + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "" + +#, python-format +msgid "Index of %(directory)s" +msgstr "Indexi di %(directory)s" + +msgid "Django: the Web framework for perfectionists with deadlines." +msgstr "" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" + +msgid "The install worked successfully! Congratulations!" +msgstr "" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not configured any " +"URLs." +msgstr "" + +msgid "Django Documentation" +msgstr "" + +msgid "Topics, references, & how-to’s" +msgstr "" + +msgid "Tutorial: A Polling App" +msgstr "" + +msgid "Get started with Django" +msgstr "" + +msgid "Django Community" +msgstr "" + +msgid "Connect, get help, or contribute" +msgstr "" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/is/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/conf/locale/is/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..951078f610fa1906cbec309f983d85f217c0af9c GIT binary patch literal 24273 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, 2011 +# Hafsteinn Einarsson , 2011-2012 +# Jannis Leidel , 2011 +# Matt R, 2018 +# saevarom , 2011 +# saevarom , 2013,2015 +# Thordur Sigurdsson , 2016-2021 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-09-21 10:22+0200\n" +"PO-Revision-Date: 2021-11-18 21:19+0000\n" +"Last-Translator: Transifex Bot <>\n" +"Language-Team: Icelandic (http://www.transifex.com/django/django/language/" +"is/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: is\n" +"Plural-Forms: nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);\n" + +msgid "Afrikaans" +msgstr "Afríkanska" + +msgid "Arabic" +msgstr "Arabíska" + +msgid "Algerian Arabic" +msgstr "" + +msgid "Asturian" +msgstr "Astúríska" + +msgid "Azerbaijani" +msgstr "Aserbaídsjíska" + +msgid "Bulgarian" +msgstr "Búlgarska" + +msgid "Belarusian" +msgstr "Hvítrússneska" + +msgid "Bengali" +msgstr "Bengalska" + +msgid "Breton" +msgstr "Bretónska" + +msgid "Bosnian" +msgstr "Bosníska" + +msgid "Catalan" +msgstr "Katalónska" + +msgid "Czech" +msgstr "Tékkneska" + +msgid "Welsh" +msgstr "Velska" + +msgid "Danish" +msgstr "Danska" + +msgid "German" +msgstr "Þýska" + +msgid "Lower Sorbian" +msgstr "Neðri sorbíska" + +msgid "Greek" +msgstr "Gríska" + +msgid "English" +msgstr "Enska" + +msgid "Australian English" +msgstr "Áströlsk enska" + +msgid "British English" +msgstr "Bresk enska" + +msgid "Esperanto" +msgstr "Esperanto" + +msgid "Spanish" +msgstr "Spænska" + +msgid "Argentinian Spanish" +msgstr "Argentínsk spænska" + +msgid "Colombian Spanish" +msgstr "Kólumbísk spænska" + +msgid "Mexican Spanish" +msgstr "Mexíkósk spænska" + +msgid "Nicaraguan Spanish" +msgstr "Níkaragva spænska" + +msgid "Venezuelan Spanish" +msgstr "Venesúelsk spænska" + +msgid "Estonian" +msgstr "Eistneska" + +msgid "Basque" +msgstr "Baskneska" + +msgid "Persian" +msgstr "Persneska" + +msgid "Finnish" +msgstr "Finnska" + +msgid "French" +msgstr "Franska" + +msgid "Frisian" +msgstr "Frísneska" + +msgid "Irish" +msgstr "Írska" + +msgid "Scottish Gaelic" +msgstr "Skosk gelíska" + +msgid "Galician" +msgstr "Galíska" + +msgid "Hebrew" +msgstr "Hebreska" + +msgid "Hindi" +msgstr "Hindí" + +msgid "Croatian" +msgstr "Króatíska" + +msgid "Upper Sorbian" +msgstr "Efri sorbíska" + +msgid "Hungarian" +msgstr "Ungverska" + +msgid "Armenian" +msgstr "Armenska" + +msgid "Interlingua" +msgstr "Interlingua" + +msgid "Indonesian" +msgstr "Indónesíska" + +msgid "Igbo" +msgstr "" + +msgid "Ido" +msgstr "Ido" + +msgid "Icelandic" +msgstr "Íslenska" + +msgid "Italian" +msgstr "Ítalska" + +msgid "Japanese" +msgstr "Japanska" + +msgid "Georgian" +msgstr "Georgíska" + +msgid "Kabyle" +msgstr "" + +msgid "Kazakh" +msgstr "Kasakska" + +msgid "Khmer" +msgstr "Kmeríska" + +msgid "Kannada" +msgstr "Kannadanska" + +msgid "Korean" +msgstr "Kóreska" + +msgid "Kyrgyz" +msgstr "" + +msgid "Luxembourgish" +msgstr "Lúxemborgíska" + +msgid "Lithuanian" +msgstr "Litháenska" + +msgid "Latvian" +msgstr "Lettneska" + +msgid "Macedonian" +msgstr "Makedónska" + +msgid "Malayalam" +msgstr "Malajalamska" + +msgid "Mongolian" +msgstr "Mongólska" + +msgid "Marathi" +msgstr "Maratí" + +msgid "Malay" +msgstr "" + +msgid "Burmese" +msgstr "Búrmíska" + +msgid "Norwegian Bokmål" +msgstr "Norskt bókmál" + +msgid "Nepali" +msgstr "Nepalska" + +msgid "Dutch" +msgstr "Hollenska" + +msgid "Norwegian Nynorsk" +msgstr "Nýnorska" + +msgid "Ossetic" +msgstr "Ossetíska" + +msgid "Punjabi" +msgstr "Púndjabíska" + +msgid "Polish" +msgstr "Pólska" + +msgid "Portuguese" +msgstr "Portúgalska" + +msgid "Brazilian Portuguese" +msgstr "Brasilísk portúgalska" + +msgid "Romanian" +msgstr "Rúmenska" + +msgid "Russian" +msgstr "Rússneska" + +msgid "Slovak" +msgstr "Slóvakíska" + +msgid "Slovenian" +msgstr "Slóvenska" + +msgid "Albanian" +msgstr "Albanska" + +msgid "Serbian" +msgstr "Serbneska" + +msgid "Serbian Latin" +msgstr "Serbnesk latína" + +msgid "Swedish" +msgstr "Sænska" + +msgid "Swahili" +msgstr "Svahílí" + +msgid "Tamil" +msgstr "Tamílska" + +msgid "Telugu" +msgstr "Telúgúska" + +msgid "Tajik" +msgstr "" + +msgid "Thai" +msgstr "Tælenska" + +msgid "Turkmen" +msgstr "" + +msgid "Turkish" +msgstr "Tyrkneska" + +msgid "Tatar" +msgstr "Tataríska" + +msgid "Udmurt" +msgstr "Údmúrt" + +msgid "Ukrainian" +msgstr "Úkraínska" + +msgid "Urdu" +msgstr "Úrdú" + +msgid "Uzbek" +msgstr "" + +msgid "Vietnamese" +msgstr "Víetnamska" + +msgid "Simplified Chinese" +msgstr "Einfölduð kínverska " + +msgid "Traditional Chinese" +msgstr "Hefðbundin kínverska" + +msgid "Messages" +msgstr "Skilaboð" + +msgid "Site Maps" +msgstr "" + +msgid "Static Files" +msgstr "" + +msgid "Syndication" +msgstr "" + +#. Translators: String used to replace omitted page numbers in elided page +#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10]. +msgid "…" +msgstr "…" + +msgid "That page number is not an integer" +msgstr "Þetta síðunúmer er ekki heiltala" + +msgid "That page number is less than 1" +msgstr "Þetta síðunúmer er minna en 1" + +msgid "That page contains no results" +msgstr "Þessi síða hefur engar niðurstöður" + +msgid "Enter a valid value." +msgstr "Sláðu inn gilt gildi." + +msgid "Enter a valid URL." +msgstr "Sláðu inn gilt veffang (URL)." + +msgid "Enter a valid integer." +msgstr "Sláðu inn gilda heiltölu." + +msgid "Enter a valid email address." +msgstr "Sláðu inn gilt netfang." + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" +"Settu inn gildan vefslóðartitil sem samanstendur af latneskum bókstöfum, " +"númerin, undirstrikum og bandstrikum." + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" +"Settu inn gildan vefslóðartitil sem má innihalda unicode bókstafi, " +"tölustafi, undirstrik og bandstrik." + +msgid "Enter a valid IPv4 address." +msgstr "Sláðu inn gilda IPv4 tölu." + +msgid "Enter a valid IPv6 address." +msgstr "Sláðu inn gilt IPv6 vistfang." + +msgid "Enter a valid IPv4 or IPv6 address." +msgstr "Sláðu inn gilt IPv4 eða IPv6 vistfang." + +msgid "Enter only digits separated by commas." +msgstr "Skrifaðu einungis tölur aðskildar með kommum." + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "" +"Gakktu úr skugga um að gildi sé %(limit_value)s (það er %(show_value)s)." + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "" +"Gakktu úr skugga um að gildið sé minna en eða jafnt og %(limit_value)s." + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "" +"Gakktu úr skugga um að gildið sé stærra en eða jafnt og %(limit_value)s." + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Gildið má minnst vera %(limit_value)d stafur að lengd (það er %(show_value)d " +"nú)" +msgstr[1] "" +"Gildið má minnst vera %(limit_value)d stafir að lengd (það er %(show_value)d " +"nú)" + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Gildið má mest vera %(limit_value)d stafur að lengd (það er %(show_value)d " +"nú)" +msgstr[1] "" +"Gildið má mest vera %(limit_value)d stafir að lengd (það er %(show_value)d " +"nú)" + +msgid "Enter a number." +msgstr "Sláðu inn tölu." + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "Gildið má ekki hafa fleiri en %(max)s tölu." +msgstr[1] "Gildið má ekki hafa fleiri en %(max)s tölur." + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "Gildið má ekki hafa meira en %(max)s tugatölustaf (decimal places)." +msgstr[1] "" +"Gildið má ekki hafa meira en %(max)s tugatölustafi (decimal places)." + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "Gildið má ekki hafa fleiri en %(max)s tölu fyrir tugabrotskil." +msgstr[1] "Gildið má ekki hafa fleiri en %(max)s tölur fyrir tugabrotskil." + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" +"Skrár með endingunni „%(extension)s“ eru ekki leyfðar. Leyfilegar endingar " +"eru: „%(allowed_extensions)s“„." + +msgid "Null characters are not allowed." +msgstr "Núlltákn eru ekki leyfileg." + +msgid "and" +msgstr "og" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "%(model_name)s með þessi %(field_labels)s er nú þegar til." + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "Gildið %(value)r er ógilt." + +msgid "This field cannot be null." +msgstr "Þessi reitur getur ekki haft tómgildi (null)." + +msgid "This field cannot be blank." +msgstr "Þessi reitur má ekki vera tómur." + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "%(model_name)s með þetta %(field_label)s er nú þegar til." + +#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'. +#. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" +"%(field_label)s verður að vera einkvæmt fyrir %(date_field_label)s " +"%(lookup_type)s." + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "Reitur af gerð: %(field_type)s" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "„%(value)s“ verður að vera annaðhvort satt eða ósatt." + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "„%(value)s“ verður að vera eitt eftirtalinna: True, False eða None." + +msgid "Boolean (Either True or False)" +msgstr "Boole-gildi (True eða False)" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "Strengur (mest %(max_length)s)" + +msgid "Comma-separated integers" +msgstr "Heiltölur aðgreindar með kommum" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" +"„%(value)s“ er ógilt dagsetningarsnið. Það verður að vera á sniðinu YYYY-MM-" +"DD." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "„%(value)s“ hefur rétt snið (YYYY-MM-DD) en dagsetningin er ógild." + +msgid "Date (without time)" +msgstr "Dagsetning (án tíma)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" +"„%(value)s“ hefur ógilt snið. Það verður að vera á sniðinu: YYYY-MM-DD HH:" +"MM[:ss[.uuuuuu]][TZ]." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" +"„%(value)s“ hefur rétt snið (YYYY-MM-DD HH:MM [:ss[.uuuuuu]][TZ]) en það er " +"ógild dagsetning/tími." + +msgid "Date (with time)" +msgstr "Dagsetning (með tíma)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "„%(value)s“ verður að vera heiltala." + +msgid "Decimal number" +msgstr "Tugatala" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" +"„%(value)s“ er á ógildu sniði. Það verður að vera á sniðinu [DD] " +"[[HH:]MM:]ss[.uuuuuu]." + +msgid "Duration" +msgstr "Tímalengd" + +msgid "Email address" +msgstr "Netfang" + +msgid "File path" +msgstr "Skjalaslóð" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "„%(value)s“ verður að vera fleytitala." + +msgid "Floating point number" +msgstr "Fleytitala (floating point number)" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "Gildi „%(value)s“ verður að vera heiltala." + +msgid "Integer" +msgstr "Heiltala" + +msgid "Big (8 byte) integer" +msgstr "Stór (8 bæta) heiltala" + +msgid "Small integer" +msgstr "Lítil heiltala" + +msgid "IPv4 address" +msgstr "IPv4 vistfang" + +msgid "IP address" +msgstr "IP tala" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "„%(value)s“ verður að vera eitt eftirtalinna: None, True eða False." + +msgid "Boolean (Either True, False or None)" +msgstr "Boole-gildi (True, False eða None)" + +msgid "Positive big integer" +msgstr "Jákvæð stór heiltala" + +msgid "Positive integer" +msgstr "Jákvæð heiltala" + +msgid "Positive small integer" +msgstr "Jákvæð lítil heiltala" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "Slögg (allt að %(max_length)s)" + +msgid "Text" +msgstr "Texti" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" +"„%(value)s“ er á ógildu sniði. Það verður að vera á sniðinu HH:MM[:ss[." +"uuuuuu]]." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" +"„%(value)s“ er á réttu sniði (HH:MM[:ss[.uuuuuu]]), en það er ógild " +"dagsetning/tími." + +msgid "Time" +msgstr "Tími" + +msgid "URL" +msgstr "Veffang" + +msgid "Raw binary data" +msgstr "Hrá tvíundargögn (binary data)" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "„%(value)s“ er ekki gilt UUID." + +msgid "Universally unique identifier" +msgstr "" + +msgid "File" +msgstr "Skrá" + +msgid "Image" +msgstr "Mynd" + +msgid "A JSON object" +msgstr "JSON hlutur" + +msgid "Value must be valid JSON." +msgstr "Gildi verður að vera gilt JSON." + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "%(model)s hlutur með %(field)s %(value)r er ekki til." + +msgid "Foreign Key (type determined by related field)" +msgstr "Ytri lykill (Gerð ákveðin af skyldum reit)" + +msgid "One-to-one relationship" +msgstr "Einn-á-einn samband." + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "%(from)s-%(to)s samband" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "%(from)s-%(to)s sambönd" + +msgid "Many-to-many relationship" +msgstr "Margir-til-margra samband." + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr ":?.!" + +msgid "This field is required." +msgstr "Þennan reit þarf að fylla út." + +msgid "Enter a whole number." +msgstr "Sláðu inn heiltölu." + +msgid "Enter a valid date." +msgstr "Sláðu inn gilda dagsetningu." + +msgid "Enter a valid time." +msgstr "Sláðu inn gilda tímasetningu." + +msgid "Enter a valid date/time." +msgstr "Sláðu inn gilda dagsetningu ásamt tíma." + +msgid "Enter a valid duration." +msgstr "Sláðu inn gilt tímabil." + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "Fjöldi daga verður að vera á milli {min_days} og {max_days}." + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "Engin skrá var send. Athugaðu kótunartegund á forminu (encoding type)." + +msgid "No file was submitted." +msgstr "Engin skrá var send." + +msgid "The submitted file is empty." +msgstr "Innsend skrá er tóm." + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" +"Skráarnafnið má mest vera %(max)d stafur að lengd (það er %(length)d nú)" +msgstr[1] "" +"Skráarnafnið má mest vera %(max)d stafir að lengd (það er %(length)d nú)" + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "Vinsamlegast sendu annað hvort inn skrá eða merktu í boxið, ekki bæði." + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" +"Halaðu upp gildri myndskrá. Skráin sem þú halaðir upp var annað hvort gölluð " +"eða ekki mynd." + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "" +"Veldu gildan valmöguleika. %(value)s er ekki eitt af gildum valmöguleikum." + +msgid "Enter a list of values." +msgstr "Sláðu inn lista af gildum." + +msgid "Enter a complete value." +msgstr "Sláðu inn heilt gildi." + +msgid "Enter a valid UUID." +msgstr "Sláðu inn gilt UUID." + +msgid "Enter a valid JSON." +msgstr "Sláðu inn gilt JSON." + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr ":" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "(Falinn reitur %(name)s) %(error)s" + +#, python-format +msgid "" +"ManagementForm data is missing or has been tampered with. Missing fields: " +"%(field_names)s. You may need to file a bug report if the issue persists." +msgstr "" + +#, python-format +msgid "Please submit at most %d form." +msgid_plural "Please submit at most %d forms." +msgstr[0] "Vinsamlegast sendu ekki meira en %d form." +msgstr[1] "Vinsamlegast sendu ekki meira en %d form." + +#, python-format +msgid "Please submit at least %d form." +msgid_plural "Please submit at least %d forms." +msgstr[0] "Vinsamlegast sendu að minnsta kosta %d form." +msgstr[1] "Vinsamlegast sendu að minnsta kosta %d form." + +msgid "Order" +msgstr "Röð" + +msgid "Delete" +msgstr "Eyða" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "Vinsamlegast leiðréttu tvítekin gögn í reit %(field)s." + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "" +"Vinsamlegast lagfærðu gögn í reit %(field)s, sem verða að vera einstök." + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"Vinsamlegast leiðréttu tvítekin gögn í reit %(field_name)s sem verða að vera " +"einstök fyrir %(lookup)s í %(date_field)s." + +msgid "Please correct the duplicate values below." +msgstr "Vinsamlegast lagfærðu tvítöldu gögnin fyrir neðan." + +msgid "The inline value did not match the parent instance." +msgstr "Innra gildið passar ekki við eiganda." + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "" +"Veldu gildan valmöguleika. Valið virðist ekki vera eitt af gildum " +"valmöguleikum." + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "„%(pk)s“ er ekki gilt gildi." + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" +"%(datetime)s er ekki hægt að túlka í tímabelti %(current_timezone)s, það " +"getur verið óljóst eða að það er ekki til." + +msgid "Clear" +msgstr "Hreinsa" + +msgid "Currently" +msgstr "Eins og er:" + +msgid "Change" +msgstr "Breyta" + +msgid "Unknown" +msgstr "Óþekkt" + +msgid "Yes" +msgstr "Já" + +msgid "No" +msgstr "Nei" + +#. Translators: Please do not add spaces around commas. +msgid "yes,no,maybe" +msgstr "já,nei,kannski" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)d bæti" +msgstr[1] "%(size)d bæti" + +#, python-format +msgid "%s KB" +msgstr "%s KB" + +#, python-format +msgid "%s MB" +msgstr "%s MB" + +#, python-format +msgid "%s GB" +msgstr "%s GB" + +#, python-format +msgid "%s TB" +msgstr "%s TB" + +#, python-format +msgid "%s PB" +msgstr "%s PB" + +msgid "p.m." +msgstr "eftirmiðdegi" + +msgid "a.m." +msgstr "morgun" + +msgid "PM" +msgstr "Eftirmiðdegi" + +msgid "AM" +msgstr "Morgun" + +msgid "midnight" +msgstr "miðnætti" + +msgid "noon" +msgstr "hádegi" + +msgid "Monday" +msgstr "mánudagur" + +msgid "Tuesday" +msgstr "þriðjudagur" + +msgid "Wednesday" +msgstr "miðvikudagur" + +msgid "Thursday" +msgstr "fimmtudagur" + +msgid "Friday" +msgstr "föstudagur" + +msgid "Saturday" +msgstr "laugardagur" + +msgid "Sunday" +msgstr "sunnudagur" + +msgid "Mon" +msgstr "mán" + +msgid "Tue" +msgstr "þri" + +msgid "Wed" +msgstr "mið" + +msgid "Thu" +msgstr "fim" + +msgid "Fri" +msgstr "fös" + +msgid "Sat" +msgstr "lau" + +msgid "Sun" +msgstr "sun" + +msgid "January" +msgstr "janúar" + +msgid "February" +msgstr "febrúar" + +msgid "March" +msgstr "mars" + +msgid "April" +msgstr "apríl" + +msgid "May" +msgstr "maí" + +msgid "June" +msgstr "júní" + +msgid "July" +msgstr "júlí" + +msgid "August" +msgstr "ágúst" + +msgid "September" +msgstr "september" + +msgid "October" +msgstr "október" + +msgid "November" +msgstr "nóvember" + +msgid "December" +msgstr "desember" + +msgid "jan" +msgstr "jan" + +msgid "feb" +msgstr "feb" + +msgid "mar" +msgstr "mar" + +msgid "apr" +msgstr "apr" + +msgid "may" +msgstr "maí" + +msgid "jun" +msgstr "jún" + +msgid "jul" +msgstr "júl" + +msgid "aug" +msgstr "ágú" + +msgid "sep" +msgstr "sep" + +msgid "oct" +msgstr "okt" + +msgid "nov" +msgstr "nóv" + +msgid "dec" +msgstr "des" + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "jan." + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "feb." + +msgctxt "abbrev. month" +msgid "March" +msgstr "mars" + +msgctxt "abbrev. month" +msgid "April" +msgstr "apríl" + +msgctxt "abbrev. month" +msgid "May" +msgstr "maí" + +msgctxt "abbrev. month" +msgid "June" +msgstr "júní" + +msgctxt "abbrev. month" +msgid "July" +msgstr "júlí" + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "ág." + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "sept." + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "okt." + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "nóv." + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "des." + +msgctxt "alt. month" +msgid "January" +msgstr "janúar" + +msgctxt "alt. month" +msgid "February" +msgstr "febrúar" + +msgctxt "alt. month" +msgid "March" +msgstr "mars" + +msgctxt "alt. month" +msgid "April" +msgstr "apríl" + +msgctxt "alt. month" +msgid "May" +msgstr "maí" + +msgctxt "alt. month" +msgid "June" +msgstr "júní" + +msgctxt "alt. month" +msgid "July" +msgstr "júlí" + +msgctxt "alt. month" +msgid "August" +msgstr "ágúst" + +msgctxt "alt. month" +msgid "September" +msgstr "september" + +msgctxt "alt. month" +msgid "October" +msgstr "október" + +msgctxt "alt. month" +msgid "November" +msgstr "nóvember" + +msgctxt "alt. month" +msgid "December" +msgstr "desember" + +msgid "This is not a valid IPv6 address." +msgstr "Þetta er ekki gilt IPv6 vistfang." + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "%(truncated_text)s…" + +msgid "or" +msgstr "eða" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr ", " + +#, python-format +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "" +msgstr[1] "" + +msgid "Forbidden" +msgstr "" + +msgid "CSRF verification failed. Request aborted." +msgstr "CSRF auðkenning tókst ekki." + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" +"Ef þú hefur stillt vafrann þinn til að gera „Referer“ hausa óvirka þarftu að " +"virkja þá aftur. Að minnsta kosti fyrir þetta vefsvæði, eða HTTPS tengingar " +"eða „same-origin“ fyrirspurnir." + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" +"Þú ert að fá þessi skilaboð því þetta vefsvæði þarfnast að CSRF kaka (e. " +"cookie) sé send þegar form eru send. Þessi kaka er nauðsynleg af " +"öryggisástæðum til að ganga úr skugga um að utanaðkomandi aðili sé ekki að " +"senda fyrirspurnir úr vafranum þínum." + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" +"Ef þú hefur stillt vafrann þinn til að gera kökur óvirkar þarftu að virkja " +"þær aftur. Að minnsta kosti fyrir þetta vefsvæði eða „same-origin“ " +"fyrirspurnir." + +msgid "More information is available with DEBUG=True." +msgstr "Meiri upplýsingar fást með DEBUG=True." + +msgid "No year specified" +msgstr "Ekkert ár tilgreint" + +msgid "Date out of range" +msgstr "Dagsetning utan tímabils" + +msgid "No month specified" +msgstr "Enginn mánuður tilgreindur" + +msgid "No day specified" +msgstr "Enginn dagur tilgreindur" + +msgid "No week specified" +msgstr "Engin vika tilgreind" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "Ekkert %(verbose_name_plural)s í boði" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" +"Framtíðar %(verbose_name_plural)s ekki í boði því %(class_name)s." +"allow_future er Ósatt." + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "Ógilt snið dagsetningar „%(datestr)s“ gefið sniðið „%(format)s“" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "Ekkert %(verbose_name)s sem uppfyllir skilyrði" + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "Þetta er hvorki síðasta síða, né er hægt að breyta í heiltölu." + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "Ógild síða (%(page_number)s): %(message)s" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "Tómur listi og „%(class_name)s.allow_empty“ er Ósatt." + +msgid "Directory indexes are not allowed here." +msgstr "Möppulistar eru ekki leyfðir hér." + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "„%(path)s“ er ekki til" + +#, python-format +msgid "Index of %(directory)s" +msgstr "Innihald %(directory)s " + +msgid "The install worked successfully! Congratulations!" +msgstr "" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not configured any " +"URLs." +msgstr "" +"Þú sérð þessa síðu vegna þess að þú hefur DEBUG=True í stillingunum þínum og hefur ekki sett upp " +"neinar vefslóðir." + +msgid "Django Documentation" +msgstr "" + +msgid "Topics, references, & how-to’s" +msgstr "" + +msgid "Tutorial: A Polling App" +msgstr "" + +msgid "Get started with Django" +msgstr "" + +msgid "Django Community" +msgstr "" + +msgid "Connect, get help, or contribute" +msgstr "" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/is/__init__.py b/venv/lib/python3.12/site-packages/django/conf/locale/is/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/is/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/is/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5431b194f16c3ac89170eefb2955f32d4ba16844 GIT binary patch literal 198 zcmX@j%ge<81o5sX(m?cM5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!O4ZNE&rQ|OP0Yy6 zFHO;RNiEZNN=(kybEFQ_cZ$j>v@Gc?jK&MZmQEdVM^ zOiwM=Pssu+OwP|s)6dCIPRvQw&n(uDkI&4@EQycTE2#X%VUwGmQks)$SHudml@W-G PL5z>gjEsy$%s>_Z#@sZA literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/is/__pycache__/formats.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/is/__pycache__/formats.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d5a368027d09a247fd012fd416a783bc721d6f21 GIT binary patch literal 455 zcmYjNJ5Rz;7`>&uq~XzmQRBkkLL$9U69;2ViY<@CwxpDSE=}c@mwgZlBrxHx@He>m zGfZ3@8zvJcHxf1`Z&eK6aB|N1UirSaWHJG8=)!B~B?Q1{AhtpLk@X2CPXGZ8AVMQh zNDCoSBT-ljqlgwkQ7wvMT5J|C?9HPCHeb%S=4AD%KPLkg4xD*pz&dPeL!531_KU>x zq(Xd2@ti8?Wmyq9bxEl;@n6s_fm3u*melGtpZQfh*V;OCqbe(^zB`2Gh1;6Q-RTXX z&MBNKD@#VL%FPBR@jG5xYKkR6(JPAFtkFbwh3*cXS)*wd2C zI0)WbhSPQ7)O4oM>fgiRY}|953-;_Bdi}9k9O6QwYkCk3ehS;J(}9-THY^kNJ=k$a zwlVhD;cOGXwp}!_%$rdLFAcuzU1C^~1VOA4Abqf){8V;9edLbb0qtioX8hbS<|_v5 R9|m54jL&2r)1wq_{RS%2fq4J` literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/is/formats.py b/venv/lib/python3.12/site-packages/django/conf/locale/is/formats.py new file mode 100644 index 0000000000..d0f71cff70 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/is/formats.py @@ -0,0 +1,21 @@ +# This file is distributed under the same license as the Django package. +# +# The *_FORMAT strings use the Django date format syntax, +# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date +DATE_FORMAT = "j. F Y" +TIME_FORMAT = "H:i" +# DATETIME_FORMAT = +YEAR_MONTH_FORMAT = "F Y" +MONTH_DAY_FORMAT = "j. F" +SHORT_DATE_FORMAT = "j.n.Y" +# SHORT_DATETIME_FORMAT = +# FIRST_DAY_OF_WEEK = + +# The *_INPUT_FORMATS strings use the Python strftime format syntax, +# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior +# DATE_INPUT_FORMATS = +# TIME_INPUT_FORMATS = +# DATETIME_INPUT_FORMATS = +DECIMAL_SEPARATOR = "," +THOUSAND_SEPARATOR = "." +NUMBER_GROUPING = 3 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/it/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/conf/locale/it/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..8b46b261949b5ba59776189768025fb1ae45845e GIT binary patch literal 28587 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 aqjR-mosQ=yG>wAVM>o@P&Fksu@%|I29VjvY literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/it/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/conf/locale/it/LC_MESSAGES/django.po new file mode 100644 index 0000000000..ac26c5d0a8 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/it/LC_MESSAGES/django.po @@ -0,0 +1,1367 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# 0d21a39e384d88c2313b89b5042c04cb, 2017 +# Carlo Miron , 2011 +# Carlo Miron , 2014 +# Carlo Miron , 2018-2019 +# Davide Targa , 2021 +# Denis Darii , 2011 +# Emanuele Di Giacomo, 2021 +# Flavio Curella , 2013,2016 +# Jannis Leidel , 2011 +# Themis Savvidis , 2013 +# Luciano De Falco Alfano, 2016 +# Marco Bonetti, 2014 +# Mirco Grillo , 2018,2020 +# Nicola Larosa , 2013 +# palmux , 2014-2015,2017,2021 +# Paolo Melchiorre , 2022-2023 +# Mattia Procopio , 2015 +# Riccardo Magliocchetti , 2017 +# Stefano Brentegani , 2014-2017 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-01-17 02:13-0600\n" +"PO-Revision-Date: 2023-04-25 06:49+0000\n" +"Last-Translator: Paolo Melchiorre , 2022-2023\n" +"Language-Team: Italian (http://www.transifex.com/django/django/language/" +"it/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: it\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Afrikaans" +msgstr "Afrikaans" + +msgid "Arabic" +msgstr "Arabo" + +msgid "Algerian Arabic" +msgstr "Arabo Algerino" + +msgid "Asturian" +msgstr "Asturiano" + +msgid "Azerbaijani" +msgstr "Azero" + +msgid "Bulgarian" +msgstr "Bulgaro" + +msgid "Belarusian" +msgstr "Bielorusso" + +msgid "Bengali" +msgstr "Bengalese" + +msgid "Breton" +msgstr "Bretone" + +msgid "Bosnian" +msgstr "Bosniaco" + +msgid "Catalan" +msgstr "Catalano" + +msgid "Central Kurdish (Sorani)" +msgstr "Curdo centrale (Sorani)" + +msgid "Czech" +msgstr "Ceco" + +msgid "Welsh" +msgstr "Gallese" + +msgid "Danish" +msgstr "Danese" + +msgid "German" +msgstr "Tedesco" + +msgid "Lower Sorbian" +msgstr "Sorabo inferiore" + +msgid "Greek" +msgstr "Greco" + +msgid "English" +msgstr "Inglese" + +msgid "Australian English" +msgstr "Inglese Australiano" + +msgid "British English" +msgstr "Inglese britannico" + +msgid "Esperanto" +msgstr "Esperanto" + +msgid "Spanish" +msgstr "Spagnolo" + +msgid "Argentinian Spanish" +msgstr "Spagnolo Argentino" + +msgid "Colombian Spanish" +msgstr "Spagnolo Colombiano" + +msgid "Mexican Spanish" +msgstr "Spagnolo Messicano" + +msgid "Nicaraguan Spanish" +msgstr "Spagnolo Nicaraguense" + +msgid "Venezuelan Spanish" +msgstr "Spagnolo venezuelano" + +msgid "Estonian" +msgstr "Estone" + +msgid "Basque" +msgstr "Basco" + +msgid "Persian" +msgstr "Persiano" + +msgid "Finnish" +msgstr "Finlandese" + +msgid "French" +msgstr "Francese" + +msgid "Frisian" +msgstr "Frisone" + +msgid "Irish" +msgstr "Irlandese" + +msgid "Scottish Gaelic" +msgstr "Gaelico Scozzese" + +msgid "Galician" +msgstr "Galiziano" + +msgid "Hebrew" +msgstr "Ebraico" + +msgid "Hindi" +msgstr "Hindi" + +msgid "Croatian" +msgstr "Croato" + +msgid "Upper Sorbian" +msgstr "Sorabo superiore" + +msgid "Hungarian" +msgstr "Ungherese" + +msgid "Armenian" +msgstr "Armeno" + +msgid "Interlingua" +msgstr "Interlingua" + +msgid "Indonesian" +msgstr "Indonesiano" + +msgid "Igbo" +msgstr "Igbo" + +msgid "Ido" +msgstr "Ido" + +msgid "Icelandic" +msgstr "Islandese" + +msgid "Italian" +msgstr "Italiano" + +msgid "Japanese" +msgstr "Giapponese" + +msgid "Georgian" +msgstr "Georgiano" + +msgid "Kabyle" +msgstr "Cabilo" + +msgid "Kazakh" +msgstr "Kazako" + +msgid "Khmer" +msgstr "Khmer" + +msgid "Kannada" +msgstr "Kannada" + +msgid "Korean" +msgstr "Coreano" + +msgid "Kyrgyz" +msgstr "Kirghiso" + +msgid "Luxembourgish" +msgstr "Lussemburghese" + +msgid "Lithuanian" +msgstr "Lituano" + +msgid "Latvian" +msgstr "Lettone" + +msgid "Macedonian" +msgstr "Macedone" + +msgid "Malayalam" +msgstr "Malayalam" + +msgid "Mongolian" +msgstr "Mongolo" + +msgid "Marathi" +msgstr "Marathi" + +msgid "Malay" +msgstr "Malese" + +msgid "Burmese" +msgstr "Birmano" + +msgid "Norwegian Bokmål" +msgstr "Norvegese Bokmål" + +msgid "Nepali" +msgstr "Nepali" + +msgid "Dutch" +msgstr "Olandese" + +msgid "Norwegian Nynorsk" +msgstr "Norvegese Nynorsk" + +msgid "Ossetic" +msgstr "Ossetico" + +msgid "Punjabi" +msgstr "Punjabi" + +msgid "Polish" +msgstr "Polacco" + +msgid "Portuguese" +msgstr "Portoghese" + +msgid "Brazilian Portuguese" +msgstr "Brasiliano Portoghese" + +msgid "Romanian" +msgstr "Rumeno" + +msgid "Russian" +msgstr "Russo" + +msgid "Slovak" +msgstr "Slovacco" + +msgid "Slovenian" +msgstr "Sloveno" + +msgid "Albanian" +msgstr "Albanese" + +msgid "Serbian" +msgstr "Serbo" + +msgid "Serbian Latin" +msgstr "Serbo Latino" + +msgid "Swedish" +msgstr "Svedese" + +msgid "Swahili" +msgstr "Swahili" + +msgid "Tamil" +msgstr "Tamil" + +msgid "Telugu" +msgstr "Telugu" + +msgid "Tajik" +msgstr "Tajik" + +msgid "Thai" +msgstr "Tailandese" + +msgid "Turkmen" +msgstr "Turkmeno" + +msgid "Turkish" +msgstr "Turco" + +msgid "Tatar" +msgstr "Tatar" + +msgid "Udmurt" +msgstr "Udmurt" + +msgid "Ukrainian" +msgstr "Ucraino" + +msgid "Urdu" +msgstr "Urdu" + +msgid "Uzbek" +msgstr "Uzbeko" + +msgid "Vietnamese" +msgstr "Vietnamita" + +msgid "Simplified Chinese" +msgstr "Cinese semplificato" + +msgid "Traditional Chinese" +msgstr "Cinese tradizionale" + +msgid "Messages" +msgstr "Messaggi" + +msgid "Site Maps" +msgstr "Mappa del sito" + +msgid "Static Files" +msgstr "File statici" + +msgid "Syndication" +msgstr "Aggregazione" + +#. Translators: String used to replace omitted page numbers in elided page +#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10]. +msgid "…" +msgstr "..." + +msgid "That page number is not an integer" +msgstr "Quel numero di pagina non è un integer" + +msgid "That page number is less than 1" +msgstr "Quel numero di pagina è minore di 1" + +msgid "That page contains no results" +msgstr "Quella pagina non presenta alcun risultato" + +msgid "Enter a valid value." +msgstr "Inserisci un valore valido." + +msgid "Enter a valid URL." +msgstr "Inserisci un URL valido." + +msgid "Enter a valid integer." +msgstr "Inserire un numero intero valido." + +msgid "Enter a valid email address." +msgstr "Inserisci un indirizzo email valido." + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" +"Inserisci uno \"slug\" valido contenente lettere, cifre, sottolineati o " +"trattini." + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" +"Inserisci uno 'slug' valido contenente lettere, cifre, sottolineati o " +"trattini." + +msgid "Enter a valid IPv4 address." +msgstr "Inserisci un indirizzo IPv4 valido." + +msgid "Enter a valid IPv6 address." +msgstr "Inserisci un indirizzo IPv6 valido." + +msgid "Enter a valid IPv4 or IPv6 address." +msgstr "Inserisci un indirizzo IPv4 o IPv6 valido." + +msgid "Enter only digits separated by commas." +msgstr "Inserisci solo cifre separate da virgole." + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "" +"Assicurati che questo valore sia %(limit_value)s (ora è %(show_value)s)." + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "Assicurati che questo valore sia minore o uguale a %(limit_value)s." + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "Assicurati che questo valore sia maggiore o uguale a %(limit_value)s." + +#, python-format +msgid "Ensure this value is a multiple of step size %(limit_value)s." +msgstr "" +"Assicurarsi che questo valore sia un multiplo della dimensione di passo " +"%(limit_value)s." + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Assicurati che questo valore contenga almeno %(limit_value)d carattere (ne " +"ha %(show_value)d)." +msgstr[1] "" +"Assicurati che questo valore contenga almeno %(limit_value)d caratteri (ne " +"ha %(show_value)d)." +msgstr[2] "" +"Assicurati che questo valore contenga almeno %(limit_value)d caratteri (ne " +"ha %(show_value)d)." + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Assicurati che questo valore non contenga più di %(limit_value)d carattere " +"(ne ha %(show_value)d)." +msgstr[1] "" +"Assicurati che questo valore non contenga più di %(limit_value)d caratteri " +"(ne ha %(show_value)d)." +msgstr[2] "" +"Assicurati che questo valore non contenga più di %(limit_value)d caratteri " +"(ne ha %(show_value)d)." + +msgid "Enter a number." +msgstr "Inserisci un numero." + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "Assicurati che non vi sia più di %(max)s cifra in totale." +msgstr[1] "Assicurati che non vi siano più di %(max)s cifre in totale." +msgstr[2] "Assicurati che non vi siano più di %(max)s cifre in totale." + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "Assicurati che non vi sia più di %(max)s cifra decimale." +msgstr[1] "Assicurati che non vi siano più di %(max)s cifre decimali." +msgstr[2] "Assicurati che non vi siano più di %(max)s cifre decimali." + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "Assicurati che non vi sia più di %(max)s cifra prima della virgola." +msgstr[1] "" +"Assicurati che non vi siano più di %(max)s cifre prima della virgola." +msgstr[2] "" +"Assicurati che non vi siano più di %(max)s cifre prima della virgola." + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" +"Il file con estensione \"%(extension)s\" non e' permesso. Le estensioni " +"permesse sono: %(allowed_extensions)s." + +msgid "Null characters are not allowed." +msgstr "I caratteri null non sono ammessi." + +msgid "and" +msgstr "e" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "%(model_name)s con questa %(field_labels)s esiste già." + +#, python-format +msgid "Constraint “%(name)s” is violated." +msgstr "Il vincolo “%(name)s” è stato violato." + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "Il valore %(value)r non è una scelta valida." + +msgid "This field cannot be null." +msgstr "Questo campo non può essere nullo." + +msgid "This field cannot be blank." +msgstr "Questo campo non può essere vuoto." + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "%(model_name)s con questo %(field_label)s esiste già." + +#. Translators: The 'lookup_type' is one of 'date', 'year' or +#. 'month'. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" +"%(field_label)s deve essere unico per %(date_field_label)s %(lookup_type)s." + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "Campo di tipo: %(field_type)s" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "Il valore \"%(value)s\" deve essere True oppure False." + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "Il valore di \"%(value)s\" deve essere True, False o None" + +msgid "Boolean (Either True or False)" +msgstr "Booleano (Vero o Falso)" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "Stringa (fino a %(max_length)s)" + +msgid "String (unlimited)" +msgstr "Stringa (illimitata)" + +msgid "Comma-separated integers" +msgstr "Interi separati da virgole" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" +"Il valore \"%(value)s\" ha un formato di data non valido. Deve essere nel " +"formato AAAA-MM-GG." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" +"Il valore di \"%(value)s\" ha il corretto formato (AAAA-MM-GG) ma non è una " +"data valida." + +msgid "Date (without time)" +msgstr "Data (senza ora)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" +"Il valore \"%(value)s\" ha un formato non valido. Deve essere nel formato " +"AAAA-MM-GG HH:MM[:ss[.uuuuuu]][TZ]." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" +"Il valore di \"%(value)s\" ha il formato corretto (AAAA-MM-GG HH:MM[:ss[." +"uuuuuu]][TZ]) ma non è una data/ora valida." + +msgid "Date (with time)" +msgstr "Data (con ora)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "Il valore \"%(value)s\" deve essere un numero decimale." + +msgid "Decimal number" +msgstr "Numero decimale" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" +"Il valore \"%(value)s\" ha un formato non valido. Deve essere nel formato " +"[GG] [[HH:]MM:]ss[.uuuuuu]." + +msgid "Duration" +msgstr "Durata" + +msgid "Email address" +msgstr "Indirizzo email" + +msgid "File path" +msgstr "Percorso file" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "Il valore di \"%(value)s\" deve essere un numero a virgola mobile." + +msgid "Floating point number" +msgstr "Numero in virgola mobile" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "Il valore \"%(value)s\" deve essere un intero." + +msgid "Integer" +msgstr "Intero" + +msgid "Big (8 byte) integer" +msgstr "Intero grande (8 byte)" + +msgid "Small integer" +msgstr "Piccolo intero" + +msgid "IPv4 address" +msgstr "Indirizzo IPv4" + +msgid "IP address" +msgstr "Indirizzo IP" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "Il valore \"%(value)s\" deve essere None, True oppure False." + +msgid "Boolean (Either True, False or None)" +msgstr "Booleano (True, False o None)" + +msgid "Positive big integer" +msgstr "Intero positivo" + +msgid "Positive integer" +msgstr "Intero positivo" + +msgid "Positive small integer" +msgstr "Piccolo intero positivo" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "Slug (fino a %(max_length)s)" + +msgid "Text" +msgstr "Testo" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" +"Il valore di \"%(value)s\" ha un formato non valido. Deve essere nel formato " +"HH:MM[:ss[.uuuuuu]]." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" +"Il valore di \"%(value)s\" ha il corretto formato (HH:MM[:ss[.uuuuuu]]) ma " +"non è un orario valido." + +msgid "Time" +msgstr "Ora" + +msgid "URL" +msgstr "URL" + +msgid "Raw binary data" +msgstr "Dati binari grezzi" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "\"%(value)s\" non è uno UUID valido." + +msgid "Universally unique identifier" +msgstr "Identificatore univoco universale" + +msgid "File" +msgstr "File" + +msgid "Image" +msgstr "Immagine" + +msgid "A JSON object" +msgstr "Un oggetto JSON" + +msgid "Value must be valid JSON." +msgstr "Il valore deve essere un JSON valido." + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "L'istanza del modello %(model)s con %(field)s %(value)r non esiste." + +msgid "Foreign Key (type determined by related field)" +msgstr "Foreign Key (tipo determinato dal campo collegato)" + +msgid "One-to-one relationship" +msgstr "Relazione uno a uno" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "relazione %(from)s-%(to)s" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "relazioni %(from)s-%(to)s" + +msgid "Many-to-many relationship" +msgstr "Relazione molti a molti" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr ":?.!" + +msgid "This field is required." +msgstr "Questo campo è obbligatorio." + +msgid "Enter a whole number." +msgstr "Inserisci un numero intero." + +msgid "Enter a valid date." +msgstr "Inserisci una data valida." + +msgid "Enter a valid time." +msgstr "Inserisci un'ora valida." + +msgid "Enter a valid date/time." +msgstr "Inserisci una data/ora valida." + +msgid "Enter a valid duration." +msgstr "Inserisci una durata valida." + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "Il numero di giorni deve essere compreso tra {min_days} e {max_days}" + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "Non è stato inviato alcun file. Verifica il tipo di codifica sul form." + +msgid "No file was submitted." +msgstr "Nessun file è stato inviato." + +msgid "The submitted file is empty." +msgstr "Il file inviato è vuoto." + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" +"Assicurati che questo nome di file non contenga più di %(max)d carattere (ne " +"ha %(length)d)." +msgstr[1] "" +"Assicurati che questo nome di file non contenga più di %(max)d caratteri (ne " +"ha %(length)d)." +msgstr[2] "" +"Assicurati che questo nome di file non contenga più di %(max)d caratteri (ne " +"ha %(length)d)." + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "" +"È possibile inviare un file o selezionare la casella \"svuota\", ma non " +"entrambi." + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" +"Carica un'immagine valida. Il file caricato non è un'immagine o è " +"un'immagine danneggiata." + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "Scegli un'opzione valida. %(value)s non è tra quelle disponibili." + +msgid "Enter a list of values." +msgstr "Inserisci una lista di valori." + +msgid "Enter a complete value." +msgstr "Inserisci un valore completo." + +msgid "Enter a valid UUID." +msgstr "Inserire un UUID valido." + +msgid "Enter a valid JSON." +msgstr "Inserisci un JSON valido." + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr ":" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "(Campo nascosto %(name)s) %(error)s" + +#, python-format +msgid "" +"ManagementForm data is missing or has been tampered with. Missing fields: " +"%(field_names)s. You may need to file a bug report if the issue persists." +msgstr "" +"Mancano i dati ManagementForm o sono stati manomessi. Campi mancanti: " +"%(field_names)s. Potrebbe essere necessario inviare una segnalazione di " +"errore se il problema persiste." + +#, python-format +msgid "Please submit at most %(num)d form." +msgid_plural "Please submit at most %(num)d forms." +msgstr[0] "Si prega di inviare al massimo %(num)d form." +msgstr[1] "Si prega di inviare al massimo %(num)d form." +msgstr[2] "Si prega di inviare al massimo %(num)d form." + +#, python-format +msgid "Please submit at least %(num)d form." +msgid_plural "Please submit at least %(num)d forms." +msgstr[0] "Si prega di inviare almeno %(num)d form." +msgstr[1] "Si prega di inviare almeno %(num)d form." +msgstr[2] "Si prega di inviare almeno %(num)d form." + +msgid "Order" +msgstr "Ordine" + +msgid "Delete" +msgstr "Cancella" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "Si prega di correggere i dati duplicati di %(field)s." + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "" +"Si prega di correggere i dati duplicati di %(field)s, che deve essere unico." + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"Si prega di correggere i dati duplicati di %(field_name)s che deve essere " +"unico/a per %(lookup)s in %(date_field)s." + +msgid "Please correct the duplicate values below." +msgstr "Si prega di correggere i dati duplicati qui sotto." + +msgid "The inline value did not match the parent instance." +msgstr "Il valore inline non corrisponde all'istanza padre." + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "" +"Scegli un'opzione valida. La scelta effettuata non compare tra quelle " +"disponibili." + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "\"%(pk)s\" non è un valore valido." + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" +" %(datetime)s non può essere interpretato nel fuso orario " +"%(current_timezone)s: potrebbe essere ambiguo o non esistere." + +msgid "Clear" +msgstr "Svuota" + +msgid "Currently" +msgstr "Attualmente" + +msgid "Change" +msgstr "Cambia" + +msgid "Unknown" +msgstr "Sconosciuto" + +msgid "Yes" +msgstr "Sì" + +msgid "No" +msgstr "No" + +#. Translators: Please do not add spaces around commas. +msgid "yes,no,maybe" +msgstr "sì,no,forse" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)d byte" +msgstr[1] "%(size)d bytes" +msgstr[2] "%(size)d bytes" + +#, python-format +msgid "%s KB" +msgstr "%s KB" + +#, python-format +msgid "%s MB" +msgstr "%s MB" + +#, python-format +msgid "%s GB" +msgstr "%s GB" + +#, python-format +msgid "%s TB" +msgstr "%s TB" + +#, python-format +msgid "%s PB" +msgstr "%s PB" + +msgid "p.m." +msgstr "p.m." + +msgid "a.m." +msgstr "a.m." + +msgid "PM" +msgstr "PM" + +msgid "AM" +msgstr "AM" + +msgid "midnight" +msgstr "mezzanotte" + +msgid "noon" +msgstr "mezzogiorno" + +msgid "Monday" +msgstr "Lunedì" + +msgid "Tuesday" +msgstr "Martedì" + +msgid "Wednesday" +msgstr "Mercoledì" + +msgid "Thursday" +msgstr "Giovedì" + +msgid "Friday" +msgstr "Venerdì" + +msgid "Saturday" +msgstr "Sabato" + +msgid "Sunday" +msgstr "Domenica" + +msgid "Mon" +msgstr "Lun" + +msgid "Tue" +msgstr "Mar" + +msgid "Wed" +msgstr "Mer" + +msgid "Thu" +msgstr "Gio" + +msgid "Fri" +msgstr "Ven" + +msgid "Sat" +msgstr "Sab" + +msgid "Sun" +msgstr "Dom" + +msgid "January" +msgstr "Gennaio" + +msgid "February" +msgstr "Febbraio" + +msgid "March" +msgstr "Marzo" + +msgid "April" +msgstr "Aprile" + +msgid "May" +msgstr "Maggio" + +msgid "June" +msgstr "Giugno" + +msgid "July" +msgstr "Luglio" + +msgid "August" +msgstr "Agosto" + +msgid "September" +msgstr "Settembre" + +msgid "October" +msgstr "Ottobre" + +msgid "November" +msgstr "Novembre" + +msgid "December" +msgstr "Dicembre" + +msgid "jan" +msgstr "gen" + +msgid "feb" +msgstr "feb" + +msgid "mar" +msgstr "mar" + +msgid "apr" +msgstr "apr" + +msgid "may" +msgstr "mag" + +msgid "jun" +msgstr "giu" + +msgid "jul" +msgstr "lug" + +msgid "aug" +msgstr "ago" + +msgid "sep" +msgstr "set" + +msgid "oct" +msgstr "ott" + +msgid "nov" +msgstr "nov" + +msgid "dec" +msgstr "dic" + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "Gen." + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "Feb." + +msgctxt "abbrev. month" +msgid "March" +msgstr "Marzo" + +msgctxt "abbrev. month" +msgid "April" +msgstr "Aprile" + +msgctxt "abbrev. month" +msgid "May" +msgstr "Maggio" + +msgctxt "abbrev. month" +msgid "June" +msgstr "Giugno" + +msgctxt "abbrev. month" +msgid "July" +msgstr "Luglio" + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "Ago." + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "Set." + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "Ott." + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "Nov." + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "Dic." + +msgctxt "alt. month" +msgid "January" +msgstr "Gennaio" + +msgctxt "alt. month" +msgid "February" +msgstr "Febbraio" + +msgctxt "alt. month" +msgid "March" +msgstr "Marzo" + +msgctxt "alt. month" +msgid "April" +msgstr "Aprile" + +msgctxt "alt. month" +msgid "May" +msgstr "Maggio" + +msgctxt "alt. month" +msgid "June" +msgstr "Giugno" + +msgctxt "alt. month" +msgid "July" +msgstr "Luglio" + +msgctxt "alt. month" +msgid "August" +msgstr "Agosto" + +msgctxt "alt. month" +msgid "September" +msgstr "Settembre" + +msgctxt "alt. month" +msgid "October" +msgstr "Ottobre" + +msgctxt "alt. month" +msgid "November" +msgstr "Novembre" + +msgctxt "alt. month" +msgid "December" +msgstr "Dicembre" + +msgid "This is not a valid IPv6 address." +msgstr "Questo non è un indirizzo IPv6 valido." + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "%(truncated_text)s…" + +msgid "or" +msgstr "o" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr ", " + +#, python-format +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "%(num)d anno" +msgstr[1] "%(num)d anni" +msgstr[2] "%(num)d anni" + +#, python-format +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "%(num)d mese" +msgstr[1] "%(num)d mesi" +msgstr[2] "%(num)d mesi" + +#, python-format +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "%(num)d settimana" +msgstr[1] "%(num)d settimane" +msgstr[2] "%(num)d settimane" + +#, python-format +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "%(num)d giorno" +msgstr[1] "%(num)d giorni" +msgstr[2] "%(num)d giorni" + +#, python-format +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "%(num)d ora" +msgstr[1] "%(num)d ore" +msgstr[2] "%(num)d ore" + +#, python-format +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "%(num)d minuto" +msgstr[1] "%(num)d minuti" +msgstr[2] "%(num)d minuti" + +msgid "Forbidden" +msgstr "Proibito" + +msgid "CSRF verification failed. Request aborted." +msgstr "Verifica CSRF fallita. Richiesta interrotta." + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" +"Vedi questo messaggio perchè questo sito HTTPS richiede l'invio da parte del " +"tuo browser del “Referer header”, che non è invece stato inviato. Questo " +"header è richiesto per motivi di sicurezza, per assicurare che il tuo " +"browser non sia stato sabotato da terzi." + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" +"Se hai configurato il tuo browser web per disattivare l'invio delle " +"intestazioni \"Referer\", riattiva questo invio, almeno per questo sito, o " +"per le connessioni HTTPS, o per le connessioni \"same-origin\"." + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" +"Se usi il tag o includi " +"header 'Referrer-Policy: no-referrer', per favore rimuovili. Per la " +"protezione CSRF è necessario eseguire un controllo rigoroso sull'header " +"'Referer'. Se ti preoccupano le ricadute sulla privacy, puoi ricorrere ad " +"alternative come per i link a siti di terze parti." + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" +"Stai vedendo questo messaggio perché questo sito richiede un cookie CSRF " +"quando invii dei form. Questo cookie è necessario per ragioni di sicurezza, " +"per assicurare che il tuo browser non sia stato dirottato da terze parti." + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" +"Se hai configurato il tuo browser web per disattivare l'invio dei cookies, " +"riattivalo almeno per questo sito, o per connessioni \"same-origin\"" + +msgid "More information is available with DEBUG=True." +msgstr "Maggiorni informazioni sono disponibili con DEBUG=True" + +msgid "No year specified" +msgstr "Anno non specificato" + +msgid "Date out of range" +msgstr "Data al di fuori dell'intervallo" + +msgid "No month specified" +msgstr "Mese non specificato" + +msgid "No day specified" +msgstr "Giorno non specificato" + +msgid "No week specified" +msgstr "Settimana non specificata" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "Nessun %(verbose_name_plural)s disponibile" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" +"%(verbose_name_plural)s futuri/e non disponibili/e poichè %(class_name)s." +"allow_future è False." + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "Data non valida \"%(datestr)s\" con il formato \"%(format)s\"" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "Trovato nessun %(verbose_name)s corrispondente alla query" + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "La pagina non è \"last\", né può essere convertita in un int." + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "Pagina non valida (%(page_number)s): %(message)s" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "Lista vuota e \"%(class_name)s.allow_empty\" è False." + +msgid "Directory indexes are not allowed here." +msgstr "Indici di directory non sono consentiti qui." + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "\"%(path)s\" non esiste" + +#, python-format +msgid "Index of %(directory)s" +msgstr "Indice di %(directory)s" + +msgid "The install worked successfully! Congratulations!" +msgstr "Installazione completata con successo! Congratulazioni!" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" +"Leggi le note di rilascio per Django " +"%(version)s" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not " +"configured any URLs." +msgstr "" +"Stai vedendo questa pagina perché hai impostato DEBUG=True nel tuo file di configurazione e non hai " +"configurato nessun URL." + +msgid "Django Documentation" +msgstr "Documentazione di Django" + +msgid "Topics, references, & how-to’s" +msgstr "Temi, riferimenti, & guide" + +msgid "Tutorial: A Polling App" +msgstr "Tutorial: un'app per sondaggi" + +msgid "Get started with Django" +msgstr "Iniziare con Django" + +msgid "Django Community" +msgstr "La Community di Django" + +msgid "Connect, get help, or contribute" +msgstr "Connettiti, chiedi aiuto, o contribuisci." diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/it/__init__.py b/venv/lib/python3.12/site-packages/django/conf/locale/it/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/it/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/it/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..07c82770afe9832ebc959b44321bfe54d405194e GIT binary patch literal 198 zcmX@j%ge<81o5sX(m?cM5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!O4ZNE&rQ|OP0Yy6 zFHO;RNiEZNN=(kybEFQ_cZ$j>v@Gc?jK&MZmQEdVM^ zOiwM=Pssu+OwP|s)6dCIPRvQw&n(f8kI&4@EQycTE2#X%VUwGmQks)$SHudml@W-G PL5z>gjEsy$%s>_Z#|t!w literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/it/__pycache__/formats.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/it/__pycache__/formats.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..473b907886c49cd75ea854ef0506081aa9314d0e GIT binary patch literal 995 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 Aw*UYD literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/ja/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/conf/locale/ja/LC_MESSAGES/django.po new file mode 100644 index 0000000000..ca8a726ffb --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/ja/LC_MESSAGES/django.po @@ -0,0 +1,1331 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# xiu1 , 2016 +# tadasu , 2020 +# Goto Hayato , 2021 +# Goto Hayato , 2019 +# Hiroki Sawano, 2022 +# Jannis Leidel , 2011 +# Kamiyama Satoshi, 2021 +# Kentaro Matsuzaki , 2015 +# Masashi SHIBATA , 2017 +# Nikita K , 2019 +# Shinichi Katsumata , 2019 +# Shinya Okano , 2012-2019,2021,2023-2024 +# TANIGUCHI Taichi, 2022 +# Takuro Onoue , 2020 +# Takuya N , 2020 +# Tetsuya Morimoto , 2011 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-05-22 11:46-0300\n" +"PO-Revision-Date: 2024-08-07 06:49+0000\n" +"Last-Translator: Shinya Okano , " +"2012-2019,2021,2023-2024\n" +"Language-Team: Japanese (http://app.transifex.com/django/django/language/" +"ja/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ja\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +msgid "Afrikaans" +msgstr "アフリカーンス語" + +msgid "Arabic" +msgstr "アラビア語" + +msgid "Algerian Arabic" +msgstr "アラビア語(アルジェリア)" + +msgid "Asturian" +msgstr "アストゥリアス語" + +msgid "Azerbaijani" +msgstr "アゼルバイジャン語" + +msgid "Bulgarian" +msgstr "ブルガリア語" + +msgid "Belarusian" +msgstr "ベラルーシ語" + +msgid "Bengali" +msgstr "ベンガル語" + +msgid "Breton" +msgstr "ブルトン語" + +msgid "Bosnian" +msgstr "ボスニア語" + +msgid "Catalan" +msgstr "カタロニア語" + +msgid "Central Kurdish (Sorani)" +msgstr "中央クルド語 (ソラニー語)" + +msgid "Czech" +msgstr "チェコ語" + +msgid "Welsh" +msgstr "ウェールズ語" + +msgid "Danish" +msgstr "デンマーク語" + +msgid "German" +msgstr "ドイツ語" + +msgid "Lower Sorbian" +msgstr "低地ソルブ語" + +msgid "Greek" +msgstr "ギリシャ語" + +msgid "English" +msgstr "英語(米国)" + +msgid "Australian English" +msgstr "英語(オーストラリア)" + +msgid "British English" +msgstr "英語(英国)" + +msgid "Esperanto" +msgstr "エスペラント語" + +msgid "Spanish" +msgstr "スペイン語" + +msgid "Argentinian Spanish" +msgstr "アルゼンチンスペイン語" + +msgid "Colombian Spanish" +msgstr "コロンビアスペイン語" + +msgid "Mexican Spanish" +msgstr "メキシコスペイン語" + +msgid "Nicaraguan Spanish" +msgstr "ニカラグアスペイン語" + +msgid "Venezuelan Spanish" +msgstr "ベネズエラスペイン語" + +msgid "Estonian" +msgstr "エストニア語" + +msgid "Basque" +msgstr "バスク語" + +msgid "Persian" +msgstr "ペルシア語" + +msgid "Finnish" +msgstr "フィンランド語" + +msgid "French" +msgstr "フランス語" + +msgid "Frisian" +msgstr "フリジア語" + +msgid "Irish" +msgstr "アイルランド語" + +msgid "Scottish Gaelic" +msgstr "ゲール語(スコットランド)" + +msgid "Galician" +msgstr "ガリシア語" + +msgid "Hebrew" +msgstr "ヘブライ語" + +msgid "Hindi" +msgstr "ヒンディー語" + +msgid "Croatian" +msgstr "クロアチア語" + +msgid "Upper Sorbian" +msgstr "高地ソルブ語" + +msgid "Hungarian" +msgstr "ハンガリー語" + +msgid "Armenian" +msgstr "アルメニア" + +msgid "Interlingua" +msgstr "インターリングア" + +msgid "Indonesian" +msgstr "インドネシア語" + +msgid "Igbo" +msgstr "イグボ語" + +msgid "Ido" +msgstr "イド語" + +msgid "Icelandic" +msgstr "アイスランド語" + +msgid "Italian" +msgstr "イタリア語" + +msgid "Japanese" +msgstr "日本語" + +msgid "Georgian" +msgstr "グルジア語" + +msgid "Kabyle" +msgstr "カビル語" + +msgid "Kazakh" +msgstr "カザフ語" + +msgid "Khmer" +msgstr "クメール語" + +msgid "Kannada" +msgstr "カンナダ語" + +msgid "Korean" +msgstr "韓国語" + +msgid "Kyrgyz" +msgstr "キルギス語" + +msgid "Luxembourgish" +msgstr "ルクセンブルグ語" + +msgid "Lithuanian" +msgstr "リトアニア語" + +msgid "Latvian" +msgstr "ラトビア語" + +msgid "Macedonian" +msgstr "マケドニア語" + +msgid "Malayalam" +msgstr "マラヤーラム語" + +msgid "Mongolian" +msgstr "モンゴル語" + +msgid "Marathi" +msgstr "マラーティー語" + +msgid "Malay" +msgstr "マレー語" + +msgid "Burmese" +msgstr "ビルマ語" + +msgid "Norwegian Bokmål" +msgstr "ノルウェーのブークモール" + +msgid "Nepali" +msgstr "ネパール語" + +msgid "Dutch" +msgstr "オランダ語" + +msgid "Norwegian Nynorsk" +msgstr "ノルウェーのニーノシュク" + +msgid "Ossetic" +msgstr "オセット語" + +msgid "Punjabi" +msgstr "パンジャブ語" + +msgid "Polish" +msgstr "ポーランド語" + +msgid "Portuguese" +msgstr "ポルトガル語" + +msgid "Brazilian Portuguese" +msgstr "ブラジルポルトガル語" + +msgid "Romanian" +msgstr "ルーマニア語" + +msgid "Russian" +msgstr "ロシア語" + +msgid "Slovak" +msgstr "スロバキア語" + +msgid "Slovenian" +msgstr "スロヴェニア語" + +msgid "Albanian" +msgstr "アルバニア語" + +msgid "Serbian" +msgstr "セルビア語" + +msgid "Serbian Latin" +msgstr "セルビア語ラテン文字" + +msgid "Swedish" +msgstr "スウェーデン語" + +msgid "Swahili" +msgstr "スワヒリ語" + +msgid "Tamil" +msgstr "タミル語" + +msgid "Telugu" +msgstr "テルグ語" + +msgid "Tajik" +msgstr "タジク語" + +msgid "Thai" +msgstr "タイ語" + +msgid "Turkmen" +msgstr "トルクメン語" + +msgid "Turkish" +msgstr "トルコ語" + +msgid "Tatar" +msgstr "タタール語" + +msgid "Udmurt" +msgstr "ウドムルト語" + +msgid "Uyghur" +msgstr "ウイグル語" + +msgid "Ukrainian" +msgstr "ウクライナ語" + +msgid "Urdu" +msgstr "ウルドゥー語" + +msgid "Uzbek" +msgstr "ウズベク語" + +msgid "Vietnamese" +msgstr "ベトナム語" + +msgid "Simplified Chinese" +msgstr "簡体字中国語" + +msgid "Traditional Chinese" +msgstr "繁体字中国語" + +msgid "Messages" +msgstr "メッセージ" + +msgid "Site Maps" +msgstr "サイトマップ" + +msgid "Static Files" +msgstr "静的ファイル" + +msgid "Syndication" +msgstr "シンジケーション" + +#. Translators: String used to replace omitted page numbers in elided page +#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10]. +msgid "…" +msgstr "…" + +msgid "That page number is not an integer" +msgstr "このページ番号は整数ではありません。" + +msgid "That page number is less than 1" +msgstr "ページ番号が 1 よりも小さいです。" + +msgid "That page contains no results" +msgstr "このページには結果が含まれていません。" + +msgid "Enter a valid value." +msgstr "値を正しく入力してください。" + +msgid "Enter a valid domain name." +msgstr "有効なドメイン名を入力してください。" + +msgid "Enter a valid URL." +msgstr "URLを正しく入力してください。" + +msgid "Enter a valid integer." +msgstr "整数を正しく入力してください。" + +msgid "Enter a valid email address." +msgstr "有効なメールアドレスを入力してください。" + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" +"“slug” には半角の英数字、アンダースコア、ハイフン以外は使用できません。" + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" +"ユニコード文字、数字、アンダースコアまたはハイフンで構成された、有効なスラグ" +"を入力してください。" + +#, python-format +msgid "Enter a valid %(protocol)s address." +msgstr "有効な%(protocol)sアドレスを入力してください。" + +msgid "IPv4" +msgstr "IPv4" + +msgid "IPv6" +msgstr "IPv6" + +msgid "IPv4 or IPv6" +msgstr "IPv4またはIPv6" + +msgid "Enter only digits separated by commas." +msgstr "カンマ区切りの数字だけを入力してください。" + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "" +"この値は %(limit_value)s でなければなりません(実際には %(show_value)s でし" +"た) 。" + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "この値は %(limit_value)s 以下でなければなりません。" + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "この値は %(limit_value)s 以上でなければなりません。" + +#, python-format +msgid "Ensure this value is a multiple of step size %(limit_value)s." +msgstr "この値は %(limit_value)s の倍数でなければなりません。" + +#, python-format +msgid "" +"Ensure this value is a multiple of step size %(limit_value)s, starting from " +"%(offset)s, e.g. %(offset)s, %(valid_value1)s, %(valid_value2)s, and so on." +msgstr "" +"この値は%(offset)s から始まる %(limit_value)s の倍数でなければなりません。" +"例. %(offset)s%(valid_value1)s%(valid_value2)s など。" + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"この値が少なくとも %(limit_value)d 文字以上であることを確認してください " +"(%(show_value)d 文字になっています)。" + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"この値は %(limit_value)d 文字以下でなければなりません( %(show_value)d 文字に" +"なっています)。" + +msgid "Enter a number." +msgstr "数値を入力してください。" + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "この値は合計 %(max)s 桁以内でなければなりません。" + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "この値は小数点以下が合計 %(max)s 桁以内でなければなりません。" + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "この値は小数点より前が合計 %(max)s 桁以内でなければなりません。" + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" +"ファイル拡張子 “%(extension)s” は許可されていません。許可されている拡張子は " +"%(allowed_extensions)s です。" + +msgid "Null characters are not allowed." +msgstr "何か文字を入力してください。" + +msgid "and" +msgstr "と" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "この %(field_labels)s を持った %(model_name)s が既に存在します。" + +#, python-format +msgid "Constraint “%(name)s” is violated." +msgstr "制約 “%(name)s” に違反しています。" + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "%(value)r は有効な選択肢ではありません。" + +msgid "This field cannot be null." +msgstr "このフィールドには NULL を指定できません。" + +msgid "This field cannot be blank." +msgstr "このフィールドは空ではいけません。" + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "この %(field_label)s を持った %(model_name)s が既に存在します。" + +#. Translators: The 'lookup_type' is one of 'date', 'year' or +#. 'month'. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" +"%(date_field_label)s %(lookup_type)s では %(field_label)s がユニークである必" +"要があります。" + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "タイプが %(field_type)s のフィールド" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "“%(value)s” は True または False にしなければなりません。" + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "“%(value)s” は True 、 False または None の値でなければなりません。" + +msgid "Boolean (Either True or False)" +msgstr "ブール値 (真: True または偽: False)" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "文字列 ( %(max_length)s 字まで )" + +msgid "String (unlimited)" +msgstr "文字列 (無制限)" + +msgid "Comma-separated integers" +msgstr "カンマ区切りの整数" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" +"“%(value)s” は無効な日付形式です。YYYY-MM-DD 形式にしなければなりません。" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "“%(value)s” は有効な日付形式(YYYY-MM-DD)ですが、不正な日付です。" + +msgid "Date (without time)" +msgstr "日付" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" +"“%(value)s” は無効な形式の値です。 YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ] 形式で" +"なければなりません。" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" +"“%(value)s” は正しい形式 (YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ]) の値ですが、無" +"効な日時です。" + +msgid "Date (with time)" +msgstr "日時" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "“%(value)s” は10進浮動小数値にしなければなりません。" + +msgid "Decimal number" +msgstr "10 進数 (小数可)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" +"“%(value)s” は無効な形式の値です。 [DD] [HH:[MM:]]ss[.uuuuuu] 形式でなければ" +"なりません。" + +msgid "Duration" +msgstr "時間差分" + +msgid "Email address" +msgstr "メールアドレス" + +msgid "File path" +msgstr "ファイルの場所" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "“%(value)s” は小数値にしなければなりません。" + +msgid "Floating point number" +msgstr "浮動小数点" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "“%(value)s” は整数値にしなければなりません。" + +msgid "Integer" +msgstr "整数" + +msgid "Big (8 byte) integer" +msgstr "大きな(8バイト)整数" + +msgid "Small integer" +msgstr "小さな整数" + +msgid "IPv4 address" +msgstr "IPv4アドレス" + +msgid "IP address" +msgstr "IP アドレス" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "“%(value)s” は None、True または False の値でなければなりません。" + +msgid "Boolean (Either True, False or None)" +msgstr "ブール値 (真: True 、偽: False または None)" + +msgid "Positive big integer" +msgstr "正の多倍長整数" + +msgid "Positive integer" +msgstr "正の整数" + +msgid "Positive small integer" +msgstr "小さな正の整数" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "スラグ(%(max_length)s文字以内)" + +msgid "Text" +msgstr "テキスト" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" +"“%(value)s” は無効な形式の値です。 HH:MM[:ss[.uuuuuu]] 形式でなければなりませ" +"ん。" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "“%(value)s” は正しい形式(HH:MM[:ss[.uuuuuu]])ですが、無効な時刻です。" + +msgid "Time" +msgstr "時刻" + +msgid "URL" +msgstr "URL" + +msgid "Raw binary data" +msgstr "生のバイナリデータ" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "“%(value)s” は有効なUUIDではありません。" + +msgid "Universally unique identifier" +msgstr "汎用一意識別子" + +msgid "File" +msgstr "ファイル" + +msgid "Image" +msgstr "画像" + +msgid "A JSON object" +msgstr "JSONオブジェクト" + +msgid "Value must be valid JSON." +msgstr "JSONとして正しい値にしてください。" + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "%(field)s が %(value)r である %(model)s のインスタンスは存在しません。" + +msgid "Foreign Key (type determined by related field)" +msgstr "外部キー(型は関連フィールドによって決まります)" + +msgid "One-to-one relationship" +msgstr "1対1の関連" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "%(from)s-%(to)s の関連" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "%(from)s-%(to)s の関連" + +msgid "Many-to-many relationship" +msgstr "多対多の関連" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr ":?.!" + +msgid "This field is required." +msgstr "このフィールドは必須です。" + +msgid "Enter a whole number." +msgstr "整数を入力してください。" + +msgid "Enter a valid date." +msgstr "日付を正しく入力してください。" + +msgid "Enter a valid time." +msgstr "時間を正しく入力してください。" + +msgid "Enter a valid date/time." +msgstr "日時を正しく入力してください。" + +msgid "Enter a valid duration." +msgstr "時間差分を正しく入力してください。" + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "日数は{min_days}から{max_days}の間でなければなりません。" + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "" +"ファイルが取得できませんでした。フォームのencoding typeを確認してください。" + +msgid "No file was submitted." +msgstr "ファイルが送信されていません。" + +msgid "The submitted file is empty." +msgstr "入力されたファイルは空です。" + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" +"このファイル名は %(max)d 文字以下でなければなりません( %(length)d 文字になっ" +"ています)。" + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "" +"ファイルを投稿するか、クリアチェックボックスをチェックするかどちらかを選択し" +"てください。両方とも行ってはいけません。" + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" +"画像をアップロードしてください。アップロードしたファイルは画像でないか、また" +"は壊れています。" + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "正しく選択してください。 %(value)s は候補にありません。" + +msgid "Enter a list of values." +msgstr "リストを入力してください。" + +msgid "Enter a complete value." +msgstr "すべての値を入力してください。" + +msgid "Enter a valid UUID." +msgstr "UUIDを正しく入力してください。" + +msgid "Enter a valid JSON." +msgstr "JSONを正しく入力してください。" + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr ":" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "(隠しフィールド %(name)s) %(error)s" + +#, python-format +msgid "" +"ManagementForm data is missing or has been tampered with. Missing fields: " +"%(field_names)s. You may need to file a bug report if the issue persists." +msgstr "" +"ManagementForm のデータが不足しているか改竄されています。不足するフィールドの" +"数: %(field_names)s 。問題が続くようならバグレポートを出す必要があるかもしれ" +"ません。" + +#, python-format +msgid "Please submit at most %(num)d form." +msgid_plural "Please submit at most %(num)d forms." +msgstr[0] "最大で %(num)d 個のフォームを送信してください。" + +#, python-format +msgid "Please submit at least %(num)d form." +msgid_plural "Please submit at least %(num)d forms." +msgstr[0] "少なくとも %(num)d 個のフォームを送信してください。" + +msgid "Order" +msgstr "並び変え" + +msgid "Delete" +msgstr "削除" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "%(field)s の重複したデータを修正してください。" + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "" +"%(field)s の重複したデータを修正してください。このフィールドはユニークである" +"必要があります。" + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"%(field_name)s の重複したデータを修正してください。%(date_field)s %(lookup)s " +"では %(field_name)s がユニークである必要があります。" + +msgid "Please correct the duplicate values below." +msgstr "下記の重複したデータを修正してください。" + +msgid "The inline value did not match the parent instance." +msgstr "インライン値が親のインスタンスに一致しません。" + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "正しく選択してください。選択したものは候補にありません。" + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "“%(pk)s” は無効な値です。" + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" +"%(datetime)s は %(current_timezone)s のタイムゾーンでは解釈できませんでした。" +"それは曖昧であるか、存在しない可能性があります。" + +msgid "Clear" +msgstr "クリア" + +msgid "Currently" +msgstr "現在" + +msgid "Change" +msgstr "変更" + +msgid "Unknown" +msgstr "不明" + +msgid "Yes" +msgstr "はい" + +msgid "No" +msgstr "いいえ" + +#. Translators: Please do not add spaces around commas. +msgid "yes,no,maybe" +msgstr "はい,いいえ,たぶん" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)d バイト" + +#, python-format +msgid "%s KB" +msgstr "%s KB" + +#, python-format +msgid "%s MB" +msgstr "%s MB" + +#, python-format +msgid "%s GB" +msgstr "%s GB" + +#, python-format +msgid "%s TB" +msgstr "%s TB" + +#, python-format +msgid "%s PB" +msgstr "%s PB" + +msgid "p.m." +msgstr "p.m." + +msgid "a.m." +msgstr "a.m." + +msgid "PM" +msgstr "PM" + +msgid "AM" +msgstr "AM" + +msgid "midnight" +msgstr "0時" + +msgid "noon" +msgstr "12時" + +msgid "Monday" +msgstr "月曜日" + +msgid "Tuesday" +msgstr "火曜日" + +msgid "Wednesday" +msgstr "水曜日" + +msgid "Thursday" +msgstr "木曜日" + +msgid "Friday" +msgstr "金曜日" + +msgid "Saturday" +msgstr "土曜日" + +msgid "Sunday" +msgstr "日曜日" + +msgid "Mon" +msgstr "月" + +msgid "Tue" +msgstr "火" + +msgid "Wed" +msgstr "水" + +msgid "Thu" +msgstr "木" + +msgid "Fri" +msgstr "金" + +msgid "Sat" +msgstr "土" + +msgid "Sun" +msgstr "日" + +msgid "January" +msgstr "1月" + +msgid "February" +msgstr "2月" + +msgid "March" +msgstr "3月" + +msgid "April" +msgstr "4月" + +msgid "May" +msgstr "5月" + +msgid "June" +msgstr "6月" + +msgid "July" +msgstr "7月" + +msgid "August" +msgstr "8月" + +msgid "September" +msgstr "9月" + +msgid "October" +msgstr "10月" + +msgid "November" +msgstr "11月" + +msgid "December" +msgstr "12月" + +msgid "jan" +msgstr "1月" + +msgid "feb" +msgstr "2月" + +msgid "mar" +msgstr "3月" + +msgid "apr" +msgstr "4月" + +msgid "may" +msgstr "5月" + +msgid "jun" +msgstr "6月" + +msgid "jul" +msgstr "7月" + +msgid "aug" +msgstr "8月" + +msgid "sep" +msgstr "9月" + +msgid "oct" +msgstr "10月" + +msgid "nov" +msgstr "11月" + +msgid "dec" +msgstr "12月" + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "1月" + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "2月" + +msgctxt "abbrev. month" +msgid "March" +msgstr "3月" + +msgctxt "abbrev. month" +msgid "April" +msgstr "4月" + +msgctxt "abbrev. month" +msgid "May" +msgstr "5月" + +msgctxt "abbrev. month" +msgid "June" +msgstr "6月" + +msgctxt "abbrev. month" +msgid "July" +msgstr "7月" + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "8月" + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "9月" + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "10月" + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "11月" + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "12月" + +msgctxt "alt. month" +msgid "January" +msgstr "1月" + +msgctxt "alt. month" +msgid "February" +msgstr "2月" + +msgctxt "alt. month" +msgid "March" +msgstr "3月" + +msgctxt "alt. month" +msgid "April" +msgstr "4月" + +msgctxt "alt. month" +msgid "May" +msgstr "5月" + +msgctxt "alt. month" +msgid "June" +msgstr "6月" + +msgctxt "alt. month" +msgid "July" +msgstr "7月" + +msgctxt "alt. month" +msgid "August" +msgstr "8月" + +msgctxt "alt. month" +msgid "September" +msgstr "9月" + +msgctxt "alt. month" +msgid "October" +msgstr "10月" + +msgctxt "alt. month" +msgid "November" +msgstr "11月" + +msgctxt "alt. month" +msgid "December" +msgstr "12月" + +msgid "This is not a valid IPv6 address." +msgstr "これは有効なIPv6アドレスではありません。" + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "%(truncated_text)s…" + +msgid "or" +msgstr "または" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr ", " + +#, python-format +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "%(num)d年" + +#, python-format +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "%(num)dヶ月" + +#, python-format +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "%(num)d週間" + +#, python-format +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "%(num)d日" + +#, python-format +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "%(num)d時間" + +#, python-format +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "%(num)d分" + +msgid "Forbidden" +msgstr "アクセス禁止" + +msgid "CSRF verification failed. Request aborted." +msgstr "CSRF検証に失敗したため、リクエストは中断されました。" + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" +"このメッセージが表示されている理由は、このHTTPSのサイトはウェブブラウザからリ" +"ファラーヘッダが送信されることを必須としていますが、送信されなかったためで" +"す。このヘッダはセキュリティ上の理由(使用中のブラウザが第三者によってハイ" +"ジャックされていないことを確認するため)で必要です。" + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" +"もしブラウザのリファラーヘッダを無効に設定しているならば、HTTPS接続やsame-" +"originリクエストのために、少なくともこのサイトでは再度有効にしてください。" + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" +"もし タグを使用しているか " +"“Referrer-Policy: no-referrer” ヘッダを含んでいる場合は削除してください。" +"CSRF プロテクションは、厳密に “Referer” ヘッダが必要です。プライバシーが気に" +"なる場合は などの代替で第三者サイトと接続してくださ" +"い。" + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" +"このメッセージが表示されている理由は、このサイトはフォーム送信時にCSRFクッ" +"キーを必須としているためです。このクッキーはセキュリティ上の理由(使用中のブラ" +"ウザが第三者によってハイジャックされていないことを確認するため)で必要です。" + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" +"もしブラウザのクッキーを無効に設定しているならば、same-originリクエストのため" +"に少なくともこのサイトでは再度有効にしてください。" + +msgid "More information is available with DEBUG=True." +msgstr "詳細な情報は DEBUG=True を設定すると利用できます。" + +msgid "No year specified" +msgstr "年が未指定です" + +msgid "Date out of range" +msgstr "日付が有効範囲外です" + +msgid "No month specified" +msgstr "月が未指定です" + +msgid "No day specified" +msgstr "日が未指定です" + +msgid "No week specified" +msgstr "週が未指定です" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "%(verbose_name_plural)s は利用できません" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" +"%(class_name)s.allow_futureがFalseであるため、未来の%(verbose_name_plural)sは" +"利用できません。" + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "指定された形式 “%(format)s” では “%(datestr)s” は無効な日付文字列です" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "クエリーに一致する %(verbose_name)s は見つかりませんでした" + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "ページが 「最後」ではないか、数値に変換できる値ではありません。" + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "無効なページです (%(page_number)s): %(message)s" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "空の一覧かつ “%(class_name)s.allow_empty” が False です。" + +msgid "Directory indexes are not allowed here." +msgstr "ここではディレクトリインデックスが許可されていません。" + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "“%(path)s” が存在しません" + +#, python-format +msgid "Index of %(directory)s" +msgstr "%(directory)sのディレクトリインデックス" + +msgid "The install worked successfully! Congratulations!" +msgstr "インストールは成功しました!おめでとうございます!" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" +"Django%(version)sのリリースノートを見る。" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not " +"configured any URLs." +msgstr "" +"このページは、設定ファイルでDEBUG=Trueが指定され、何もURLが設定されていない時に表示" +"されます。" + +msgid "Django Documentation" +msgstr "Django ドキュメント" + +msgid "Topics, references, & how-to’s" +msgstr "トピック、リファレンス、ハウツー" + +msgid "Tutorial: A Polling App" +msgstr "チュートリアル: 投票アプリケーション" + +msgid "Get started with Django" +msgstr "Djangoを始めよう" + +msgid "Django Community" +msgstr "Djangoのコミュニティ" + +msgid "Connect, get help, or contribute" +msgstr "つながり、助け合い、貢献しよう" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/ja/__init__.py b/venv/lib/python3.12/site-packages/django/conf/locale/ja/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/ja/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/ja/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..cb56fff02b3514e42b2d654f4887546af57398ee GIT binary patch literal 198 zcmX@j%ge<81o5sX(m?cM5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!O4ZNE&rQ|OP0Yy6 zFHO;RNiEZNN=(kybEFQ_cZ$j>v@Gc?jK&MZmQEdVM^ zOiwM=Pssu+OwP|s)6dCIPRvQw&q~yfkI&4@EQycTE2#X%VUwGmQks)$SHudml@W-G PL5z>gjEsy$%s>_Z!@e|j literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/ja/__pycache__/formats.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/ja/__pycache__/formats.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..15bec6dbfb1837e538b5ff2d20600bfb92da4e73 GIT binary patch literal 569 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/ka/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/conf/locale/ka/LC_MESSAGES/django.po new file mode 100644 index 0000000000..1f342b9b49 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/ka/LC_MESSAGES/django.po @@ -0,0 +1,1239 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# André Bouatchidzé , 2013-2015 +# David A. , 2019 +# David A. , 2011 +# Jannis Leidel , 2011 +# Tornike Beradze , 2018 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-09-27 22:40+0200\n" +"PO-Revision-Date: 2019-11-05 00:38+0000\n" +"Last-Translator: Ramiro Morales\n" +"Language-Team: Georgian (http://www.transifex.com/django/django/language/" +"ka/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ka\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" + +msgid "Afrikaans" +msgstr "აფრიკაანსი" + +msgid "Arabic" +msgstr "არაბული" + +msgid "Asturian" +msgstr "ასტურიული" + +msgid "Azerbaijani" +msgstr "აზერბაიჯანული" + +msgid "Bulgarian" +msgstr "ბულგარული" + +msgid "Belarusian" +msgstr "ბელარუსული" + +msgid "Bengali" +msgstr "ბენგალიური" + +msgid "Breton" +msgstr "ბრეტონული" + +msgid "Bosnian" +msgstr "ბოსნიური" + +msgid "Catalan" +msgstr "კატალანური" + +msgid "Czech" +msgstr "ჩეხური" + +msgid "Welsh" +msgstr "უელსური" + +msgid "Danish" +msgstr "დანიური" + +msgid "German" +msgstr "გერმანული" + +msgid "Lower Sorbian" +msgstr "ქვემო სორბული" + +msgid "Greek" +msgstr "ბერძნული" + +msgid "English" +msgstr "ინგლისური" + +msgid "Australian English" +msgstr "ავსტრალიური ინგლისური" + +msgid "British English" +msgstr "ბრიტანეთის ინგლისური" + +msgid "Esperanto" +msgstr "ესპერანტო" + +msgid "Spanish" +msgstr "ესპანური" + +msgid "Argentinian Spanish" +msgstr "არგენტინის ესპანური" + +msgid "Colombian Spanish" +msgstr "კოლუმბიური ესპანური" + +msgid "Mexican Spanish" +msgstr "მექსიკური ესპანური" + +msgid "Nicaraguan Spanish" +msgstr "ნიკარაგუული ესპანური" + +msgid "Venezuelan Spanish" +msgstr "ვენესუელის ესპანური" + +msgid "Estonian" +msgstr "ესტონური" + +msgid "Basque" +msgstr "ბასკური" + +msgid "Persian" +msgstr "სპარსული" + +msgid "Finnish" +msgstr "ფინური" + +msgid "French" +msgstr "ფრანგული" + +msgid "Frisian" +msgstr "ფრისიული" + +msgid "Irish" +msgstr "ირლანდიური" + +msgid "Scottish Gaelic" +msgstr "შოტლანდიური-გელური" + +msgid "Galician" +msgstr "გალიციური" + +msgid "Hebrew" +msgstr "ებრაული" + +msgid "Hindi" +msgstr "ჰინდი" + +msgid "Croatian" +msgstr "ხორვატიული" + +msgid "Upper Sorbian" +msgstr "ზემო სორბიული" + +msgid "Hungarian" +msgstr "უნგრული" + +msgid "Armenian" +msgstr "სომხური" + +msgid "Interlingua" +msgstr "ინტერლინგუა" + +msgid "Indonesian" +msgstr "ინდონეზიური" + +msgid "Ido" +msgstr "იდო" + +msgid "Icelandic" +msgstr "ისლანდიური" + +msgid "Italian" +msgstr "იტალიური" + +msgid "Japanese" +msgstr "იაპონური" + +msgid "Georgian" +msgstr "ქართული" + +msgid "Kabyle" +msgstr "კაბილური" + +msgid "Kazakh" +msgstr "ყაზახური" + +msgid "Khmer" +msgstr "ხმერული" + +msgid "Kannada" +msgstr "კანნადა" + +msgid "Korean" +msgstr "კორეული" + +msgid "Luxembourgish" +msgstr "ლუქსემბურგული" + +msgid "Lithuanian" +msgstr "ლიტვური" + +msgid "Latvian" +msgstr "ლატვიური" + +msgid "Macedonian" +msgstr "მაკედონიური" + +msgid "Malayalam" +msgstr "მალაიზიური" + +msgid "Mongolian" +msgstr "მონღოლური" + +msgid "Marathi" +msgstr "მარათული" + +msgid "Burmese" +msgstr "ბირმული" + +msgid "Norwegian Bokmål" +msgstr "ნორვეგიული Bokmål" + +msgid "Nepali" +msgstr "ნეპალური" + +msgid "Dutch" +msgstr "ჰოლანდიური" + +msgid "Norwegian Nynorsk" +msgstr "ნორვეგიული-ნინორსკი" + +msgid "Ossetic" +msgstr "ოსური" + +msgid "Punjabi" +msgstr "პუნჯაბი" + +msgid "Polish" +msgstr "პოლონური" + +msgid "Portuguese" +msgstr "პორტუგალიური" + +msgid "Brazilian Portuguese" +msgstr "ბრაზილიური პორტუგალიური" + +msgid "Romanian" +msgstr "რუმინული" + +msgid "Russian" +msgstr "რუსული" + +msgid "Slovak" +msgstr "სლოვაკური" + +msgid "Slovenian" +msgstr "სლოვენიური" + +msgid "Albanian" +msgstr "ალბანური" + +msgid "Serbian" +msgstr "სერბული" + +msgid "Serbian Latin" +msgstr "სერბული (ლათინური)" + +msgid "Swedish" +msgstr "შვედური" + +msgid "Swahili" +msgstr "სუაჰილი" + +msgid "Tamil" +msgstr "თამილური" + +msgid "Telugu" +msgstr "ტელუგუ" + +msgid "Thai" +msgstr "ტაი" + +msgid "Turkish" +msgstr "თურქული" + +msgid "Tatar" +msgstr "თათრული" + +msgid "Udmurt" +msgstr "უდმურტული" + +msgid "Ukrainian" +msgstr "უკრაინული" + +msgid "Urdu" +msgstr "ურდუ" + +msgid "Uzbek" +msgstr "" + +msgid "Vietnamese" +msgstr "ვიეტნამური" + +msgid "Simplified Chinese" +msgstr "გამარტივებული ჩინური" + +msgid "Traditional Chinese" +msgstr "ტრადიციული ჩინური" + +msgid "Messages" +msgstr "შეტყობინებები" + +msgid "Site Maps" +msgstr "საიტის რუკები" + +msgid "Static Files" +msgstr "სტატიკური ფაილები" + +msgid "Syndication" +msgstr "სინდიკაცია" + +msgid "That page number is not an integer" +msgstr "გვერდის ნომერი არ არის მთელი რიცხვი" + +msgid "That page number is less than 1" +msgstr "გვერდის ნომერი ნაკლებია 1-ზე" + +msgid "That page contains no results" +msgstr "გვერდი არ შეიცავს მონაცემებს" + +msgid "Enter a valid value." +msgstr "შეიყვანეთ სწორი მნიშვნელობა." + +msgid "Enter a valid URL." +msgstr "შეიყვანეთ სწორი URL." + +msgid "Enter a valid integer." +msgstr "შეიყვანეთ სწორი მთელი რიცხვი." + +msgid "Enter a valid email address." +msgstr "შეიყვანეთ მართებული ელფოსტის მისამართი." + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" + +msgid "Enter a valid IPv4 address." +msgstr "შეიყვანეთ სწორი IPv4 მისამართი." + +msgid "Enter a valid IPv6 address." +msgstr "შეიყვანეთ მართებული IPv6 მისამართი." + +msgid "Enter a valid IPv4 or IPv6 address." +msgstr "შეიყვანეთ მართებული IPv4 ან IPv6 მისამართი." + +msgid "Enter only digits separated by commas." +msgstr "შეიყვანეთ მხოლოდ მძიმეებით გამოყოფილი ციფრები." + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "მნიშვნელობა უნდა იყოს %(limit_value)s (იგი არის %(show_value)s)." + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "მნიშვნელობა უნდა იყოს %(limit_value)s-ზე ნაკლები ან ტოლი." + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "მნიშვნელობა უნდა იყოს %(limit_value)s-ზე მეტი ან ტოლი." + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"მნიშვნელობას უნდა ჰქონდეს სულ ცოტა %(limit_value)d სიმბოლო (მას აქვს " +"%(show_value)d)." +msgstr[1] "" +"მნიშვნელობას უნდა ჰქონდეს სულ ცოტა %(limit_value)d სიმბოლო (მას აქვს " +"%(show_value)d)." + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"მნიშვნელობას უნდა ჰქონდეს არაუმეტეს %(limit_value)d სიმბოლოსი (მას აქვს " +"%(show_value)d)." +msgstr[1] "" +"მნიშვნელობას უნდა ჰქონდეს არაუმეტეს %(limit_value)d სიმბოლოსი (მას აქვს " +"%(show_value)d)." + +msgid "Enter a number." +msgstr "შეიყვანეთ რიცხვი." + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "ციფრების სრული რაოდენობა %(max)s-ს არ უნდა აღემატებოდეს." +msgstr[1] "ციფრების სრული რაოდენობა %(max)s-ს არ უნდა აღემატებოდეს." + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "" +"ათობითი გამყოფის შემდეგ ციფრების რაოდენობა %(max)s-ს არ უნდა აღემატებოდეს." +msgstr[1] "" +"ათობითი გამყოფის შემდეგ ციფრების რაოდენობა %(max)s-ს არ უნდა აღემატებოდეს." + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "" +"ათობითი გამყოფის შემდეგ ციფრების რაოდენობა %(max)s-ს არ უნდა აღემატებოდეს." +msgstr[1] "" +"ათობითი გამყოფის წინ ციფრების რაოდენობა %(max)s-ს არ უნდა აღემატებოდეს." + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" + +msgid "Null characters are not allowed." +msgstr "Null მნიშვნელობები დაუშვებელია." + +msgid "and" +msgstr "და" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "%(model_name)s ამ %(field_labels)s-ით უკვე არსებობს." + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "მნიშვნელობა %(value)r არ არის დასაშვები." + +msgid "This field cannot be null." +msgstr "ეს ველი არ შეიძლება იყოს null." + +msgid "This field cannot be blank." +msgstr "ეს ველი არ შეიძლება იყოს ცარიელი." + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "%(model_name)s მოცემული %(field_label)s-ით უკვე არსებობს." + +#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'. +#. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" +"%(field_label)s უნდა იყოს უნიკალური %(date_field_label)s %(lookup_type)s-" +"სთვის." + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "ველის ტიპი: %(field_type)s" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "" + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "" + +msgid "Boolean (Either True or False)" +msgstr "ლოგიკური (True ან False)" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "სტრიქონი (%(max_length)s სიმბოლომდე)" + +msgid "Comma-separated integers" +msgstr "მძიმით გამოყოფილი მთელი რიცხვები" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" + +msgid "Date (without time)" +msgstr "თარიღი (დროის გარეშე)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" + +msgid "Date (with time)" +msgstr "თარიღი (დროსთან ერთად)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "" + +msgid "Decimal number" +msgstr "ათობითი რიცხვი" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" + +msgid "Duration" +msgstr "ხანგრზლივობა" + +msgid "Email address" +msgstr "ელ. ფოსტის მისამართი" + +msgid "File path" +msgstr "გზა ფაილისაკენ" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "" + +msgid "Floating point number" +msgstr "რიცხვი მცოცავი წერტილით" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "" + +msgid "Integer" +msgstr "მთელი" + +msgid "Big (8 byte) integer" +msgstr "დიდი მთელი (8-ბაიტიანი)" + +msgid "IPv4 address" +msgstr "IPv4 მისამართი" + +msgid "IP address" +msgstr "IP-მისამართი" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "" + +msgid "Boolean (Either True, False or None)" +msgstr "ლოგიკური (True, False ან None)" + +msgid "Positive integer" +msgstr "დადებითი მთელი რიცხვი" + +msgid "Positive small integer" +msgstr "დადებითი პატარა მთელი რიცხვი" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "სლაგი (%(max_length)s-მდე)" + +msgid "Small integer" +msgstr "პატარა მთელი რიცხვი" + +msgid "Text" +msgstr "ტექსტი" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" + +msgid "Time" +msgstr "დრო" + +msgid "URL" +msgstr "URL" + +msgid "Raw binary data" +msgstr "დაუმუშავებელი ორობითი მონაცემები" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "" + +msgid "Universally unique identifier" +msgstr "უნივერსალური უნიკალური იდენტიფიკატორი." + +msgid "File" +msgstr "ფაილი" + +msgid "Image" +msgstr "გამოსახულება" + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "" + +msgid "Foreign Key (type determined by related field)" +msgstr "გარე გასაღები (ტიპი განისაზღვრება დაკავშირებული ველის ტიპით)" + +msgid "One-to-one relationship" +msgstr "კავშირი ერთი-ერთტან" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "" + +msgid "Many-to-many relationship" +msgstr "კავშირი მრავალი-მრავალთან" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr "" + +msgid "This field is required." +msgstr "ეს ველი აუცილებელია." + +msgid "Enter a whole number." +msgstr "შეიყვანეთ მთელი რიცხვი" + +msgid "Enter a valid date." +msgstr "შეიყვანეთ სწორი თარიღი." + +msgid "Enter a valid time." +msgstr "შეიყვანეთ სწორი დრო." + +msgid "Enter a valid date/time." +msgstr "შეიყვანეთ სწორი თარიღი და დრო." + +msgid "Enter a valid duration." +msgstr "შეიყვანეთ სწორი დროის პერიოდი." + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "" + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "" +"ფაილი არ იყო გამოგზავნილი. შეამოწმეთ კოდირების ტიპი მოცემული ფორმისათვის." + +msgid "No file was submitted." +msgstr "ფაილი არ იყო გამოგზავნილი." + +msgid "The submitted file is empty." +msgstr "გამოგზავნილი ფაილი ცარიელია." + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" +msgstr[1] "" + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "ან გამოგზავნეთ ფაილი, ან მონიშნეთ \"წაშლის\" დროშა." + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" +"ატვირთეთ დასაშვები გამოსახულება. თქვენს მიერ გამოგზავნილი ფაილი ან არ არის " +"გამოსახულება, ან დაზიანებულია." + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "აირჩიეთ დასაშვები მნიშვნელობა. %(value)s დასაშვები არ არის." + +msgid "Enter a list of values." +msgstr "შეიყვანეთ მნიშვნელობების სია." + +msgid "Enter a complete value." +msgstr "შეიყვანეთ სრული მნიშვნელობა." + +msgid "Enter a valid UUID." +msgstr "" + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr "" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "(დამალული ველი %(name)s) %(error)s" + +msgid "ManagementForm data is missing or has been tampered with" +msgstr "" + +#, python-format +msgid "Please submit %d or fewer forms." +msgid_plural "Please submit %d or fewer forms." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "Please submit %d or more forms." +msgid_plural "Please submit %d or more forms." +msgstr[0] "" +msgstr[1] "" + +msgid "Order" +msgstr "დალაგება" + +msgid "Delete" +msgstr "წავშალოთ" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "გთხოვთ, შეასწოროთ დუბლირებული მონაცემები %(field)s-თვის." + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "" +"გთხოვთ, შეასწოროთ დუბლირებული მნიშვნელობა %(field)s ველისთვის, რომელიც უნდა " +"იყოს უნიკალური." + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"გთხოვთ, შეასწოროთ დუბლირებული მნიშვნელობა %(field_name)s ველისთვის, რომელიც " +"უნდა იყოს უნიკალური %(lookup)s-ზე, %(date_field)s-თვის." + +msgid "Please correct the duplicate values below." +msgstr "გთხოვთ, შეასწოროთ დუბლირებული მნიშვნელობები." + +msgid "The inline value did not match the parent instance." +msgstr "" + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "აირჩიეთ დასაშვები მნიშვნელობა. ეს არჩევანი დასაშვები არ არის." + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "" + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" + +msgid "Clear" +msgstr "წაშლა" + +msgid "Currently" +msgstr "ამჟამად" + +msgid "Change" +msgstr "შეცვლა" + +msgid "Unknown" +msgstr "გაურკვეველი" + +msgid "Yes" +msgstr "კი" + +msgid "No" +msgstr "არა" + +msgid "Year" +msgstr "" + +msgid "Month" +msgstr "" + +msgid "Day" +msgstr "" + +msgid "yes,no,maybe" +msgstr "კი,არა,შესაძლოა" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)d ბაიტი" +msgstr[1] "%(size)d ბაიტი" + +#, python-format +msgid "%s KB" +msgstr "%s კბ" + +#, python-format +msgid "%s MB" +msgstr "%s მბ" + +#, python-format +msgid "%s GB" +msgstr "%s გბ" + +#, python-format +msgid "%s TB" +msgstr "%s ტბ" + +#, python-format +msgid "%s PB" +msgstr "%s პბ" + +msgid "p.m." +msgstr "p.m." + +msgid "a.m." +msgstr "a.m." + +msgid "PM" +msgstr "PM" + +msgid "AM" +msgstr "AM" + +msgid "midnight" +msgstr "შუაღამე" + +msgid "noon" +msgstr "შუადღე" + +msgid "Monday" +msgstr "ორშაბათი" + +msgid "Tuesday" +msgstr "სამშაბათი" + +msgid "Wednesday" +msgstr "ოთხშაბათი" + +msgid "Thursday" +msgstr "ხუთშაბათი" + +msgid "Friday" +msgstr "პარასკევი" + +msgid "Saturday" +msgstr "შაბათი" + +msgid "Sunday" +msgstr "კვირა" + +msgid "Mon" +msgstr "ორშ" + +msgid "Tue" +msgstr "სამ" + +msgid "Wed" +msgstr "ოთხ" + +msgid "Thu" +msgstr "ხუთ" + +msgid "Fri" +msgstr "პარ" + +msgid "Sat" +msgstr "შაბ" + +msgid "Sun" +msgstr "კვრ" + +msgid "January" +msgstr "იანვარი" + +msgid "February" +msgstr "თებერვალი" + +msgid "March" +msgstr "მარტი" + +msgid "April" +msgstr "აპრილი" + +msgid "May" +msgstr "მაისი" + +msgid "June" +msgstr "ივნისი" + +msgid "July" +msgstr "ივლისი" + +msgid "August" +msgstr "აგვისტო" + +msgid "September" +msgstr "სექტემბერი" + +msgid "October" +msgstr "ოქტომბერი" + +msgid "November" +msgstr "ნოემბერი" + +msgid "December" +msgstr "დეკემბერი" + +msgid "jan" +msgstr "იან" + +msgid "feb" +msgstr "თებ" + +msgid "mar" +msgstr "მარ" + +msgid "apr" +msgstr "აპრ" + +msgid "may" +msgstr "მაი" + +msgid "jun" +msgstr "ივნ" + +msgid "jul" +msgstr "ივლ" + +msgid "aug" +msgstr "აგვ" + +msgid "sep" +msgstr "სექ" + +msgid "oct" +msgstr "ოქტ" + +msgid "nov" +msgstr "ნოე" + +msgid "dec" +msgstr "დეკ" + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "იან." + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "თებ." + +msgctxt "abbrev. month" +msgid "March" +msgstr "მარ." + +msgctxt "abbrev. month" +msgid "April" +msgstr "აპრ." + +msgctxt "abbrev. month" +msgid "May" +msgstr "მაი" + +msgctxt "abbrev. month" +msgid "June" +msgstr "ივნ." + +msgctxt "abbrev. month" +msgid "July" +msgstr "ივლ." + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "აგვ." + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "სექტ." + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "ოქტ." + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "ნოემ." + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "დეკ." + +msgctxt "alt. month" +msgid "January" +msgstr "იანვარი" + +msgctxt "alt. month" +msgid "February" +msgstr "თებერვალი" + +msgctxt "alt. month" +msgid "March" +msgstr "მარტი" + +msgctxt "alt. month" +msgid "April" +msgstr "აპრილი" + +msgctxt "alt. month" +msgid "May" +msgstr "მაისი" + +msgctxt "alt. month" +msgid "June" +msgstr "ივნისი" + +msgctxt "alt. month" +msgid "July" +msgstr "ივლისი" + +msgctxt "alt. month" +msgid "August" +msgstr "აგვისტო" + +msgctxt "alt. month" +msgid "September" +msgstr "სექტემბერი" + +msgctxt "alt. month" +msgid "October" +msgstr "ოქტომბერი" + +msgctxt "alt. month" +msgid "November" +msgstr "ნოემბერი" + +msgctxt "alt. month" +msgid "December" +msgstr "დეკემბერი" + +msgid "This is not a valid IPv6 address." +msgstr "ეს არ არის სწორი IPv6 მისამართი." + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "" + +msgid "or" +msgstr "ან" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr ", " + +#, python-format +msgid "%d year" +msgid_plural "%d years" +msgstr[0] "%d წელი" +msgstr[1] "%d წელი" + +#, python-format +msgid "%d month" +msgid_plural "%d months" +msgstr[0] "%d თვე" +msgstr[1] "%d თვე" + +#, python-format +msgid "%d week" +msgid_plural "%d weeks" +msgstr[0] "%d კვირა" +msgstr[1] "%d კვირა" + +#, python-format +msgid "%d day" +msgid_plural "%d days" +msgstr[0] "%d დღე" +msgstr[1] "%d დღე" + +#, python-format +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "%d საათი" +msgstr[1] "%d საათი" + +#, python-format +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "%d წუთი" +msgstr[1] "%d წუთი" + +msgid "0 minutes" +msgstr "0 წუთი" + +msgid "Forbidden" +msgstr "აკრძალული" + +msgid "CSRF verification failed. Request aborted." +msgstr "" + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your Web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" + +msgid "More information is available with DEBUG=True." +msgstr "მეტი ინფორმაცია მისაწვდომია DEBUG=True-ს მეშვეობით." + +msgid "No year specified" +msgstr "არ არის მითითებული წელი" + +msgid "Date out of range" +msgstr "" + +msgid "No month specified" +msgstr "არ არის მითითებული თვე" + +msgid "No day specified" +msgstr "არ არის მითითებული დღე" + +msgid "No week specified" +msgstr "არ არის მითითებული კვირა" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "%(verbose_name_plural)s არ არსებობს" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" +"მომავალი %(verbose_name_plural)s არ არსებობს იმიტომ, რომ %(class_name)s." +"allow_future არის False." + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "არ მოიძებნა არცერთი მოთხოვნის თანმხვედრი %(verbose_name)s" + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "" + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "" + +msgid "Directory indexes are not allowed here." +msgstr "" + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "" + +#, python-format +msgid "Index of %(directory)s" +msgstr "%(directory)s-ის იდექსი" + +msgid "Django: the Web framework for perfectionists with deadlines." +msgstr "" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" + +msgid "The install worked successfully! Congratulations!" +msgstr "" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not configured any " +"URLs." +msgstr "" + +msgid "Django Documentation" +msgstr "" + +msgid "Topics, references, & how-to’s" +msgstr "" + +msgid "Tutorial: A Polling App" +msgstr "" + +msgid "Get started with Django" +msgstr "" + +msgid "Django Community" +msgstr "" + +msgid "Connect, get help, or contribute" +msgstr "" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/ka/__init__.py b/venv/lib/python3.12/site-packages/django/conf/locale/ka/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/ka/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/ka/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6f1623c089bfb71a1de1d63e25cf94103ed3cb98 GIT binary patch literal 198 zcmX@j%ge<81o5sX(m?cM5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!O4ZNE&rQ|OP0Yy6 zFHO;RNiEZNN=(kybEFQ_cZ$j>v@Gc?jK&MZmQEdVM^ zOiwM=Pssu+OwP|s)6dCIPRvQw&rZ~jkI&4@EQycTE2#X%VUwGmQks)$SHudml@W-G PL5z>gjEsy$%s>_Z!|pV9 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/ka/__pycache__/formats.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/ka/__pycache__/formats.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..aebe326f2bfee6df4276fc8e1e7ae717681b5666 GIT binary patch literal 993 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/kab/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/conf/locale/kab/LC_MESSAGES/django.po new file mode 100644 index 0000000000..b0f6fa2887 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/kab/LC_MESSAGES/django.po @@ -0,0 +1,1211 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-09-27 22:40+0200\n" +"PO-Revision-Date: 2019-11-05 00:38+0000\n" +"Last-Translator: Ramiro Morales\n" +"Language-Team: Kabyle (http://www.transifex.com/django/django/language/" +"kab/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: kab\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Afrikaans" +msgstr "Tafrikanst" + +msgid "Arabic" +msgstr "Taɛṛabt" + +msgid "Asturian" +msgstr "Tasturyant" + +msgid "Azerbaijani" +msgstr "Tazeṛbayǧant" + +msgid "Bulgarian" +msgstr "Tabulgarit" + +msgid "Belarusian" +msgstr "Tabilurusit" + +msgid "Bengali" +msgstr "Tabelgalit" + +msgid "Breton" +msgstr "Tabrutunt" + +msgid "Bosnian" +msgstr "Tabusnit" + +msgid "Catalan" +msgstr "Takaṭalant" + +msgid "Czech" +msgstr "Tačikit" + +msgid "Welsh" +msgstr "Takusit" + +msgid "Danish" +msgstr "Tadanit" + +msgid "German" +msgstr "Talmanit" + +msgid "Lower Sorbian" +msgstr "Tasiṛbit n wadda" + +msgid "Greek" +msgstr "Tagrigit" + +msgid "English" +msgstr "Taglizit" + +msgid "Australian English" +msgstr "Taglizit n Ustralya" + +msgid "British English" +msgstr "Taglizit (UK)" + +msgid "Esperanto" +msgstr "Taspirantit" + +msgid "Spanish" +msgstr "Taspanit" + +msgid "Argentinian Spanish" +msgstr "Taspanit n Arjuntin" + +msgid "Colombian Spanish" +msgstr "Taspanit n Kulumbya" + +msgid "Mexican Spanish" +msgstr "Taspanit n Miksik" + +msgid "Nicaraguan Spanish" +msgstr "Taspanit n Nikaragwa" + +msgid "Venezuelan Spanish" +msgstr "Taspanit n Vinizwila" + +msgid "Estonian" +msgstr "Tastunit" + +msgid "Basque" +msgstr "Tabaskit" + +msgid "Persian" +msgstr "Tafarsit" + +msgid "Finnish" +msgstr "Tafinit" + +msgid "French" +msgstr "Tafṛansist" + +msgid "Frisian" +msgstr "" + +msgid "Irish" +msgstr "" + +msgid "Scottish Gaelic" +msgstr "" + +msgid "Galician" +msgstr "" + +msgid "Hebrew" +msgstr "" + +msgid "Hindi" +msgstr "Tahendit" + +msgid "Croatian" +msgstr "Takarwasit" + +msgid "Upper Sorbian" +msgstr "" + +msgid "Hungarian" +msgstr "Tahungarit" + +msgid "Armenian" +msgstr "" + +msgid "Interlingua" +msgstr "" + +msgid "Indonesian" +msgstr "Tandunizit" + +msgid "Ido" +msgstr "" + +msgid "Icelandic" +msgstr "Taslandit" + +msgid "Italian" +msgstr "Taṭelyanit" + +msgid "Japanese" +msgstr "" + +msgid "Georgian" +msgstr "Tajyuṛjit" + +msgid "Kabyle" +msgstr "" + +msgid "Kazakh" +msgstr "Takazaxt" + +msgid "Khmer" +msgstr "" + +msgid "Kannada" +msgstr "Takannadat" + +msgid "Korean" +msgstr "Takurit" + +msgid "Luxembourgish" +msgstr "" + +msgid "Lithuanian" +msgstr "Talitwanit" + +msgid "Latvian" +msgstr "Talitunit" + +msgid "Macedonian" +msgstr "Tamasidunit" + +msgid "Malayalam" +msgstr "Tamayalamt" + +msgid "Mongolian" +msgstr "" + +msgid "Marathi" +msgstr "" + +msgid "Burmese" +msgstr "Tabirmanit" + +msgid "Norwegian Bokmål" +msgstr "" + +msgid "Nepali" +msgstr "Tanipalit" + +msgid "Dutch" +msgstr "Tahulandit" + +msgid "Norwegian Nynorsk" +msgstr "" + +msgid "Ossetic" +msgstr "" + +msgid "Punjabi" +msgstr "Tabenjabit" + +msgid "Polish" +msgstr "Tapulandit" + +msgid "Portuguese" +msgstr "Tapurtugit" + +msgid "Brazilian Portuguese" +msgstr "" + +msgid "Romanian" +msgstr "Tarumanit" + +msgid "Russian" +msgstr "Tarusit" + +msgid "Slovak" +msgstr "Tasluvakt" + +msgid "Slovenian" +msgstr "" + +msgid "Albanian" +msgstr "Talbanit" + +msgid "Serbian" +msgstr "Tasiṛbit" + +msgid "Serbian Latin" +msgstr "" + +msgid "Swedish" +msgstr "Taswidit" + +msgid "Swahili" +msgstr "Taswahilit" + +msgid "Tamil" +msgstr "Taṭamult" + +msgid "Telugu" +msgstr "" + +msgid "Thai" +msgstr "" + +msgid "Turkish" +msgstr "Taṭurkit" + +msgid "Tatar" +msgstr "" + +msgid "Udmurt" +msgstr "" + +msgid "Ukrainian" +msgstr "" + +msgid "Urdu" +msgstr "" + +msgid "Uzbek" +msgstr "" + +msgid "Vietnamese" +msgstr "" + +msgid "Simplified Chinese" +msgstr "" + +msgid "Traditional Chinese" +msgstr "" + +msgid "Messages" +msgstr "Iznan" + +msgid "Site Maps" +msgstr "" + +msgid "Static Files" +msgstr "" + +msgid "Syndication" +msgstr "" + +msgid "That page number is not an integer" +msgstr "" + +msgid "That page number is less than 1" +msgstr "" + +msgid "That page contains no results" +msgstr "" + +msgid "Enter a valid value." +msgstr "Sekcem azal ameɣtu." + +msgid "Enter a valid URL." +msgstr "" + +msgid "Enter a valid integer." +msgstr "" + +msgid "Enter a valid email address." +msgstr "Sekcem tansa imayl tameɣtut." + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" + +msgid "Enter a valid IPv4 address." +msgstr "Sekcem tansa IPv4 tameɣtut." + +msgid "Enter a valid IPv6 address." +msgstr "" + +msgid "Enter a valid IPv4 or IPv6 address." +msgstr "" + +msgid "Enter only digits separated by commas." +msgstr "" + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "" + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "" + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "" + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +msgstr[1] "" + +msgid "Enter a number." +msgstr "Sekcem amḍan." + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" + +msgid "Null characters are not allowed." +msgstr "" + +msgid "and" +msgstr "akked" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "" + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "" + +msgid "This field cannot be null." +msgstr "" + +msgid "This field cannot be blank." +msgstr "" + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "" + +#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'. +#. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "" + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "" + +msgid "Boolean (Either True or False)" +msgstr "" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "" + +msgid "Comma-separated integers" +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" + +msgid "Date (without time)" +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" + +msgid "Date (with time)" +msgstr "Azemz (s wakud)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "" + +msgid "Decimal number" +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" + +msgid "Duration" +msgstr "Tanzagt" + +msgid "Email address" +msgstr "Tansa email" + +msgid "File path" +msgstr "Abrid n ufaylu" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "" + +msgid "Floating point number" +msgstr "" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "" + +msgid "Integer" +msgstr "Ummid" + +msgid "Big (8 byte) integer" +msgstr "" + +msgid "IPv4 address" +msgstr "" + +msgid "IP address" +msgstr "Tansa IP" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "" + +msgid "Boolean (Either True, False or None)" +msgstr "" + +msgid "Positive integer" +msgstr "" + +msgid "Positive small integer" +msgstr "" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "" + +msgid "Small integer" +msgstr "" + +msgid "Text" +msgstr "Aḍris" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" + +msgid "Time" +msgstr "Akud" + +msgid "URL" +msgstr "URL" + +msgid "Raw binary data" +msgstr "" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "" + +msgid "Universally unique identifier" +msgstr "" + +msgid "File" +msgstr "Afaylu" + +msgid "Image" +msgstr "Tugna" + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "" + +msgid "Foreign Key (type determined by related field)" +msgstr "" + +msgid "One-to-one relationship" +msgstr "" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "" + +msgid "Many-to-many relationship" +msgstr "" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr ":?.!" + +msgid "This field is required." +msgstr "" + +msgid "Enter a whole number." +msgstr "Sekcem amḍan ummid." + +msgid "Enter a valid date." +msgstr "" + +msgid "Enter a valid time." +msgstr "" + +msgid "Enter a valid date/time." +msgstr "" + +msgid "Enter a valid duration." +msgstr "" + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "" + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "" + +msgid "No file was submitted." +msgstr "Afaylu ur yettwazen ara." + +msgid "The submitted file is empty." +msgstr "" + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" +msgstr[1] "" + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "" + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "" + +msgid "Enter a list of values." +msgstr "" + +msgid "Enter a complete value." +msgstr "Sekcem azal ummid." + +msgid "Enter a valid UUID." +msgstr "" + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr ":" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "" + +msgid "ManagementForm data is missing or has been tampered with" +msgstr "" + +#, python-format +msgid "Please submit %d or fewer forms." +msgid_plural "Please submit %d or fewer forms." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "Please submit %d or more forms." +msgid_plural "Please submit %d or more forms." +msgstr[0] "" +msgstr[1] "" + +msgid "Order" +msgstr "Amizwer" + +msgid "Delete" +msgstr "KKES" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "" + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "" + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" + +msgid "Please correct the duplicate values below." +msgstr "" + +msgid "The inline value did not match the parent instance." +msgstr "" + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "" + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "" + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" + +msgid "Clear" +msgstr "Sfeḍ" + +msgid "Currently" +msgstr "Tura" + +msgid "Change" +msgstr "Beddel" + +msgid "Unknown" +msgstr "Arussin" + +msgid "Yes" +msgstr "Ih" + +msgid "No" +msgstr "Uhu" + +msgid "Year" +msgstr "" + +msgid "Month" +msgstr "" + +msgid "Day" +msgstr "" + +msgid "yes,no,maybe" +msgstr "" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%s KB" +msgstr "%s KAṬ" + +#, python-format +msgid "%s MB" +msgstr "%s MAṬ" + +#, python-format +msgid "%s GB" +msgstr "%s GAṬ" + +#, python-format +msgid "%s TB" +msgstr "%s TAṬ" + +#, python-format +msgid "%s PB" +msgstr "%s PAṬ" + +msgid "p.m." +msgstr "m.d." + +msgid "a.m." +msgstr "f.t." + +msgid "PM" +msgstr "MD" + +msgid "AM" +msgstr "FT" + +msgid "midnight" +msgstr "ttnaṣfa n yiḍ" + +msgid "noon" +msgstr "ttnaṣfa n uzal" + +msgid "Monday" +msgstr "Arim" + +msgid "Tuesday" +msgstr "Aram" + +msgid "Wednesday" +msgstr "Ahad" + +msgid "Thursday" +msgstr "Amhad" + +msgid "Friday" +msgstr "Sem" + +msgid "Saturday" +msgstr "Sed" + +msgid "Sunday" +msgstr "Acer" + +msgid "Mon" +msgstr "Ari" + +msgid "Tue" +msgstr "Ara" + +msgid "Wed" +msgstr "Aha" + +msgid "Thu" +msgstr "Amh" + +msgid "Fri" +msgstr "Sem" + +msgid "Sat" +msgstr "Sed" + +msgid "Sun" +msgstr "Ace" + +msgid "January" +msgstr "Yennayer" + +msgid "February" +msgstr "Fuṛaṛ" + +msgid "March" +msgstr "Meɣres" + +msgid "April" +msgstr "Yebrir" + +msgid "May" +msgstr "Mayyu" + +msgid "June" +msgstr "Yunyu" + +msgid "July" +msgstr "Yulyu" + +msgid "August" +msgstr "Ɣuct" + +msgid "September" +msgstr "Ctamber" + +msgid "October" +msgstr "Tuber" + +msgid "November" +msgstr "Wamber" + +msgid "December" +msgstr "Dujamber" + +msgid "jan" +msgstr "yen" + +msgid "feb" +msgstr "fuṛ" + +msgid "mar" +msgstr "meɣ" + +msgid "apr" +msgstr "yeb" + +msgid "may" +msgstr "may" + +msgid "jun" +msgstr "yun" + +msgid "jul" +msgstr "yul" + +msgid "aug" +msgstr "ɣuc" + +msgid "sep" +msgstr "cte" + +msgid "oct" +msgstr "tub" + +msgid "nov" +msgstr "wam" + +msgid "dec" +msgstr "duj" + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "Yen." + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "Fuṛ." + +msgctxt "abbrev. month" +msgid "March" +msgstr "Meɣres" + +msgctxt "abbrev. month" +msgid "April" +msgstr "Yebrir" + +msgctxt "abbrev. month" +msgid "May" +msgstr "Mayyu" + +msgctxt "abbrev. month" +msgid "June" +msgstr "Yunyu" + +msgctxt "abbrev. month" +msgid "July" +msgstr "Yulyu" + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "Ɣuc." + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "" + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "Tub." + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "Wam." + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "Duj." + +msgctxt "alt. month" +msgid "January" +msgstr "Yennayer" + +msgctxt "alt. month" +msgid "February" +msgstr "Fuṛaṛ" + +msgctxt "alt. month" +msgid "March" +msgstr "Meɣres" + +msgctxt "alt. month" +msgid "April" +msgstr "Yebrir" + +msgctxt "alt. month" +msgid "May" +msgstr "Mayyu" + +msgctxt "alt. month" +msgid "June" +msgstr "Yunyu" + +msgctxt "alt. month" +msgid "July" +msgstr "Yulyu" + +msgctxt "alt. month" +msgid "August" +msgstr "Ɣuct" + +msgctxt "alt. month" +msgid "September" +msgstr "Ctamber" + +msgctxt "alt. month" +msgid "October" +msgstr "Tuber" + +msgctxt "alt. month" +msgid "November" +msgstr "Wamber" + +msgctxt "alt. month" +msgid "December" +msgstr "Dujamber" + +msgid "This is not a valid IPv6 address." +msgstr "" + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "" + +msgid "or" +msgstr "neɣ" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr ", " + +#, python-format +msgid "%d year" +msgid_plural "%d years" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d month" +msgid_plural "%d months" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d week" +msgid_plural "%d weeks" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d day" +msgid_plural "%d days" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "" +msgstr[1] "" + +msgid "0 minutes" +msgstr "0 n tisdatin" + +msgid "Forbidden" +msgstr "Yegdel" + +msgid "CSRF verification failed. Request aborted." +msgstr "" + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your Web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" + +msgid "More information is available with DEBUG=True." +msgstr "" + +msgid "No year specified" +msgstr "" + +msgid "Date out of range" +msgstr "" + +msgid "No month specified" +msgstr "" + +msgid "No day specified" +msgstr "" + +msgid "No week specified" +msgstr "" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "" + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "" + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "" + +msgid "Directory indexes are not allowed here." +msgstr "" + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "" + +#, python-format +msgid "Index of %(directory)s" +msgstr "" + +msgid "Django: the Web framework for perfectionists with deadlines." +msgstr "" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" + +msgid "The install worked successfully! Congratulations!" +msgstr "" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not configured any " +"URLs." +msgstr "" + +msgid "Django Documentation" +msgstr "" + +msgid "Topics, references, & how-to’s" +msgstr "" + +msgid "Tutorial: A Polling App" +msgstr "" + +msgid "Get started with Django" +msgstr "Bdu s Django" + +msgid "Django Community" +msgstr "" + +msgid "Connect, get help, or contribute" +msgstr "" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/kk/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/conf/locale/kk/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..38300b20556650b790c71c214193519f0a85b772 GIT binary patch literal 13148 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/kk/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/conf/locale/kk/LC_MESSAGES/django.po new file mode 100644 index 0000000000..2858be0633 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/kk/LC_MESSAGES/django.po @@ -0,0 +1,1223 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Baurzhan Muftakhidinov , 2015 +# Zharzhan Kulmyrza , 2011 +# Leo Trubach , 2017 +# Nurlan Rakhimzhanov , 2011 +# yun_man_ger , 2011 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-09-27 22:40+0200\n" +"PO-Revision-Date: 2019-11-05 00:38+0000\n" +"Last-Translator: Ramiro Morales\n" +"Language-Team: Kazakh (http://www.transifex.com/django/django/language/kk/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: kk\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" + +msgid "Afrikaans" +msgstr "" + +msgid "Arabic" +msgstr "Араб" + +msgid "Asturian" +msgstr "" + +msgid "Azerbaijani" +msgstr "Әзірбайжан" + +msgid "Bulgarian" +msgstr "Болгар" + +msgid "Belarusian" +msgstr "" + +msgid "Bengali" +msgstr "Бенгал" + +msgid "Breton" +msgstr "" + +msgid "Bosnian" +msgstr "Босния" + +msgid "Catalan" +msgstr "Каталан" + +msgid "Czech" +msgstr "Чех" + +msgid "Welsh" +msgstr "Валлий" + +msgid "Danish" +msgstr "Дания" + +msgid "German" +msgstr "Неміс" + +msgid "Lower Sorbian" +msgstr "" + +msgid "Greek" +msgstr "Грек" + +msgid "English" +msgstr "Ағылшын" + +msgid "Australian English" +msgstr "" + +msgid "British English" +msgstr "Британдық ағылшын" + +msgid "Esperanto" +msgstr "" + +msgid "Spanish" +msgstr "Испан" + +msgid "Argentinian Spanish" +msgstr "Аргентиналық испан" + +msgid "Colombian Spanish" +msgstr "" + +msgid "Mexican Spanish" +msgstr "Мексикалық испан" + +msgid "Nicaraguan Spanish" +msgstr "Никарагуа испан" + +msgid "Venezuelan Spanish" +msgstr "" + +msgid "Estonian" +msgstr "Эстон" + +msgid "Basque" +msgstr "Баск" + +msgid "Persian" +msgstr "Парсы" + +msgid "Finnish" +msgstr "Фин" + +msgid "French" +msgstr "Француз" + +msgid "Frisian" +msgstr "Фриз" + +msgid "Irish" +msgstr "Ирландия" + +msgid "Scottish Gaelic" +msgstr "" + +msgid "Galician" +msgstr "Галиц" + +msgid "Hebrew" +msgstr "Иврит" + +msgid "Hindi" +msgstr "Хинди" + +msgid "Croatian" +msgstr "Кроат" + +msgid "Upper Sorbian" +msgstr "" + +msgid "Hungarian" +msgstr "Венгрия" + +msgid "Armenian" +msgstr "" + +msgid "Interlingua" +msgstr "" + +msgid "Indonesian" +msgstr "Индонезия" + +msgid "Ido" +msgstr "" + +msgid "Icelandic" +msgstr "Исладия" + +msgid "Italian" +msgstr "Итальян" + +msgid "Japanese" +msgstr "Жапон" + +msgid "Georgian" +msgstr "Грузин" + +msgid "Kabyle" +msgstr "" + +msgid "Kazakh" +msgstr "Қазақша" + +msgid "Khmer" +msgstr "Кхмер" + +msgid "Kannada" +msgstr "Канада" + +msgid "Korean" +msgstr "Корей" + +msgid "Luxembourgish" +msgstr "" + +msgid "Lithuanian" +msgstr "Литва" + +msgid "Latvian" +msgstr "Латвия" + +msgid "Macedonian" +msgstr "Македон" + +msgid "Malayalam" +msgstr "Малаялам" + +msgid "Mongolian" +msgstr "Монғол" + +msgid "Marathi" +msgstr "" + +msgid "Burmese" +msgstr "" + +msgid "Norwegian Bokmål" +msgstr "" + +msgid "Nepali" +msgstr "" + +msgid "Dutch" +msgstr "Голланд" + +msgid "Norwegian Nynorsk" +msgstr "Норвегиялық нюнор" + +msgid "Ossetic" +msgstr "" + +msgid "Punjabi" +msgstr "Пенджаб" + +msgid "Polish" +msgstr "Поляк" + +msgid "Portuguese" +msgstr "Португал" + +msgid "Brazilian Portuguese" +msgstr "Бразилиялық португал" + +msgid "Romanian" +msgstr "Роман" + +msgid "Russian" +msgstr "Орыс" + +msgid "Slovak" +msgstr "Словак" + +msgid "Slovenian" +msgstr "Словениялық" + +msgid "Albanian" +msgstr "Албан" + +msgid "Serbian" +msgstr "Серб" + +msgid "Serbian Latin" +msgstr "Сербиялық латын" + +msgid "Swedish" +msgstr "Швед" + +msgid "Swahili" +msgstr "" + +msgid "Tamil" +msgstr "Тамиль" + +msgid "Telugu" +msgstr "Телугу" + +msgid "Thai" +msgstr "Тай" + +msgid "Turkish" +msgstr "Түрік" + +msgid "Tatar" +msgstr "" + +msgid "Udmurt" +msgstr "" + +msgid "Ukrainian" +msgstr "Украин" + +msgid "Urdu" +msgstr "Урду" + +msgid "Uzbek" +msgstr "" + +msgid "Vietnamese" +msgstr "Вьетнам" + +msgid "Simplified Chinese" +msgstr "Жеңілдетілген қытай" + +msgid "Traditional Chinese" +msgstr "Дәстүрлі қытай" + +msgid "Messages" +msgstr "" + +msgid "Site Maps" +msgstr "" + +msgid "Static Files" +msgstr "" + +msgid "Syndication" +msgstr "" + +msgid "That page number is not an integer" +msgstr "" + +msgid "That page number is less than 1" +msgstr "" + +msgid "That page contains no results" +msgstr "" + +msgid "Enter a valid value." +msgstr "Тура мәнін енгізіңіз." + +msgid "Enter a valid URL." +msgstr "Тура URL-ді енгізіңіз." + +msgid "Enter a valid integer." +msgstr "" + +msgid "Enter a valid email address." +msgstr "" + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" + +msgid "Enter a valid IPv4 address." +msgstr "Тура IPv4 адресті енгізіңіз." + +msgid "Enter a valid IPv6 address." +msgstr "" + +msgid "Enter a valid IPv4 or IPv6 address." +msgstr "" + +msgid "Enter only digits separated by commas." +msgstr "Тек үтірлермен бөлінген цифрлерді енгізіңіз." + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "" +"Бұл мәннің %(limit_value)s екендігін тексеріңіз (қазір ол %(show_value)s)." + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "" +"Бұл мәннің мынадан %(limit_value)s кіші немесе тең екендігін тексеріңіз." + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "" +"Бұл мәннің мынадан %(limit_value)s үлкен немесе тең екендігін тексеріңіз." + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +msgstr[1] "" + +msgid "Enter a number." +msgstr "Сан енгізіңіз." + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" + +msgid "Null characters are not allowed." +msgstr "" + +msgid "and" +msgstr "және" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "" + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "" + +msgid "This field cannot be null." +msgstr "Бұл жолақ null болмау керек." + +msgid "This field cannot be blank." +msgstr "Бұл жолақ бос болмау керек." + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "%(model_name)s %(field_label)s жолақпен бұрыннан бар." + +#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'. +#. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "Жолақтын түрі: %(field_type)s" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "" + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "" + +msgid "Boolean (Either True or False)" +msgstr "Boolean (True немесе False)" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "Жол (%(max_length)s символға дейін)" + +msgid "Comma-separated integers" +msgstr "Үтірмен бөлінген бүтін сандар" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" + +msgid "Date (without time)" +msgstr "Дата (уақытсыз)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" + +msgid "Date (with time)" +msgstr "Дата (уақытпен)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "" + +msgid "Decimal number" +msgstr "Ондық сан" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" + +msgid "Duration" +msgstr "" + +msgid "Email address" +msgstr "Email адрес" + +msgid "File path" +msgstr "Файл жолы" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "" + +msgid "Floating point number" +msgstr "Реал сан" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "" + +msgid "Integer" +msgstr "Бүтін сан" + +msgid "Big (8 byte) integer" +msgstr "Ұзын (8 байт) бүтін сан" + +msgid "IPv4 address" +msgstr "" + +msgid "IP address" +msgstr "IP мекенжайы" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "" + +msgid "Boolean (Either True, False or None)" +msgstr "Булеан (True, False немесе None)" + +msgid "Positive integer" +msgstr "" + +msgid "Positive small integer" +msgstr "" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "" + +msgid "Small integer" +msgstr "" + +msgid "Text" +msgstr "Мәтін" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" + +msgid "Time" +msgstr "Уақыт" + +msgid "URL" +msgstr "URL" + +msgid "Raw binary data" +msgstr "" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "" + +msgid "Universally unique identifier" +msgstr "" + +msgid "File" +msgstr "" + +msgid "Image" +msgstr "" + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "" + +msgid "Foreign Key (type determined by related field)" +msgstr "Foreign Key (тип related field арқылы анықталады)" + +msgid "One-to-one relationship" +msgstr "One-to-one қатынас" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "" + +msgid "Many-to-many relationship" +msgstr "Many-to-many қатынас" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr "" + +msgid "This field is required." +msgstr "Бұл өрісті толтыру міндетті." + +msgid "Enter a whole number." +msgstr "Толық санды енгізіңіз." + +msgid "Enter a valid date." +msgstr "Дұрыс күнді енгізіңіз." + +msgid "Enter a valid time." +msgstr "Дұрыс уақытты енгізіңіз." + +msgid "Enter a valid date/time." +msgstr "Дұрыс күнді/уақытты енгізіңіз." + +msgid "Enter a valid duration." +msgstr "" + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "" + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "Ешқандай файл жіберілмеді. Форманың кодтау түрін тексеріңіз." + +msgid "No file was submitted." +msgstr "Ешқандай файл жіберілмеді." + +msgid "The submitted file is empty." +msgstr "Бос файл жіберілді." + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" +msgstr[1] "" + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "Файлды жіберіңіз немесе тазалауды белгіленіз, екеуін бірге емес." + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" +"Дұрыс сүретті жүктеңіз. Сіз жүктеген файл - сүрет емес немесе бұзылған сүрет." + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "Дұрыс тандау жасаңыз. %(value)s дұрыс тандау емес." + +msgid "Enter a list of values." +msgstr "Мәндер тізімін енгізіңіз." + +msgid "Enter a complete value." +msgstr "" + +msgid "Enter a valid UUID." +msgstr "" + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr "" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "" + +msgid "ManagementForm data is missing or has been tampered with" +msgstr "" + +#, python-format +msgid "Please submit %d or fewer forms." +msgid_plural "Please submit %d or fewer forms." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "Please submit %d or more forms." +msgid_plural "Please submit %d or more forms." +msgstr[0] "" +msgstr[1] "" + +msgid "Order" +msgstr "Сұрыптау" + +msgid "Delete" +msgstr "Жою" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "%(field)s жолақтағы қайталанған мәнді түзетіңіз." + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "%(field)s жолақтағы мәнді түзетіңіз, ол бірегей болу керек." + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"%(field_name)s жолақтағы мәнді түзетіңіз. Ол %(date_field)s жолақтың ішінде " +"%(lookup)s үшін бірегей болу керек." + +msgid "Please correct the duplicate values below." +msgstr "Қайталанатын мәндерді түзетіңіз." + +msgid "The inline value did not match the parent instance." +msgstr "" + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "Дұрыс нұсқаны таңдаңыз. Бұл нұсқа дұрыс таңдаулардың арасында жоқ." + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "" + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" + +msgid "Clear" +msgstr "Тазалау" + +msgid "Currently" +msgstr "Ағымдағы" + +msgid "Change" +msgstr "Түзету" + +msgid "Unknown" +msgstr "Белгісіз" + +msgid "Yes" +msgstr "Иә" + +msgid "No" +msgstr "Жоқ" + +msgid "Year" +msgstr "" + +msgid "Month" +msgstr "" + +msgid "Day" +msgstr "" + +msgid "yes,no,maybe" +msgstr "иә,жоқ,мүмкін" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)d байт" +msgstr[1] "%(size)d байт" + +#, python-format +msgid "%s KB" +msgstr "%s КБ" + +#, python-format +msgid "%s MB" +msgstr "%s МБ" + +#, python-format +msgid "%s GB" +msgstr "%s ГБ" + +#, python-format +msgid "%s TB" +msgstr "%s ТБ" + +#, python-format +msgid "%s PB" +msgstr "%s ПБ" + +msgid "p.m." +msgstr "Т.Қ." + +msgid "a.m." +msgstr "Т.Ж." + +msgid "PM" +msgstr "ТҚ" + +msgid "AM" +msgstr "ТЖ" + +msgid "midnight" +msgstr "түнжарым" + +msgid "noon" +msgstr "түсқайта" + +msgid "Monday" +msgstr "Дүйсенбі" + +msgid "Tuesday" +msgstr "Сейсенбі" + +msgid "Wednesday" +msgstr "Сәрсенбі" + +msgid "Thursday" +msgstr "Бейсенбі" + +msgid "Friday" +msgstr "Жума" + +msgid "Saturday" +msgstr "Сенбі" + +msgid "Sunday" +msgstr "Жексенбі" + +msgid "Mon" +msgstr "Дб" + +msgid "Tue" +msgstr "Сб" + +msgid "Wed" +msgstr "Ср" + +msgid "Thu" +msgstr "Бс" + +msgid "Fri" +msgstr "Жм" + +msgid "Sat" +msgstr "Сн" + +msgid "Sun" +msgstr "Жк" + +msgid "January" +msgstr "Қаңтар" + +msgid "February" +msgstr "Ақпан" + +msgid "March" +msgstr "Наурыз" + +msgid "April" +msgstr "Сәуір" + +msgid "May" +msgstr "Мамыр" + +msgid "June" +msgstr "Маусым" + +msgid "July" +msgstr "Шілде" + +msgid "August" +msgstr "Тамыз" + +msgid "September" +msgstr "Қыркүйек" + +msgid "October" +msgstr "Қазан" + +msgid "November" +msgstr "Қараша" + +msgid "December" +msgstr "Желтоқсан" + +msgid "jan" +msgstr "қан" + +msgid "feb" +msgstr "ақп" + +msgid "mar" +msgstr "нау" + +msgid "apr" +msgstr "сәу" + +msgid "may" +msgstr "мам" + +msgid "jun" +msgstr "мау" + +msgid "jul" +msgstr "шіл" + +msgid "aug" +msgstr "там" + +msgid "sep" +msgstr "қыр" + +msgid "oct" +msgstr "қаз" + +msgid "nov" +msgstr "қар" + +msgid "dec" +msgstr "жел" + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "Қаң." + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "Ақп." + +msgctxt "abbrev. month" +msgid "March" +msgstr "Наурыз" + +msgctxt "abbrev. month" +msgid "April" +msgstr "Сәуір" + +msgctxt "abbrev. month" +msgid "May" +msgstr "Мамыр" + +msgctxt "abbrev. month" +msgid "June" +msgstr "Маусым" + +msgctxt "abbrev. month" +msgid "July" +msgstr "Шілде" + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "Там." + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "Қыр." + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "Қаз." + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "Қар." + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "Жел." + +msgctxt "alt. month" +msgid "January" +msgstr "Қаңтар" + +msgctxt "alt. month" +msgid "February" +msgstr "Ақпан" + +msgctxt "alt. month" +msgid "March" +msgstr "Наурыз" + +msgctxt "alt. month" +msgid "April" +msgstr "Сәуір" + +msgctxt "alt. month" +msgid "May" +msgstr "Мамыр" + +msgctxt "alt. month" +msgid "June" +msgstr "Маусым" + +msgctxt "alt. month" +msgid "July" +msgstr "Шілде" + +msgctxt "alt. month" +msgid "August" +msgstr "Тамыз" + +msgctxt "alt. month" +msgid "September" +msgstr "Қыркүйек" + +msgctxt "alt. month" +msgid "October" +msgstr "Қазан" + +msgctxt "alt. month" +msgid "November" +msgstr "Қараша" + +msgctxt "alt. month" +msgid "December" +msgstr "Желтоқсан" + +msgid "This is not a valid IPv6 address." +msgstr "" + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "" + +msgid "or" +msgstr "немесе" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr ", " + +#, python-format +msgid "%d year" +msgid_plural "%d years" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d month" +msgid_plural "%d months" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d week" +msgid_plural "%d weeks" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d day" +msgid_plural "%d days" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "" +msgstr[1] "" + +msgid "0 minutes" +msgstr "" + +msgid "Forbidden" +msgstr "" + +msgid "CSRF verification failed. Request aborted." +msgstr "" + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your Web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" + +msgid "More information is available with DEBUG=True." +msgstr "" + +msgid "No year specified" +msgstr "Жыл таңдалмаған" + +msgid "Date out of range" +msgstr "" + +msgid "No month specified" +msgstr "Ай таңдалмаған" + +msgid "No day specified" +msgstr "Күн таңдалмаған" + +msgid "No week specified" +msgstr "Апта таңдалмаған" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "%(verbose_name_plural)s қол жеткізгісіз" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" +"Болашақ %(verbose_name_plural)s қол жеткізгісіз, себебі %(class_name)s." +"allow_future False." + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "%(verbose_name)s табылған жоқ" + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "" + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "" + +msgid "Directory indexes are not allowed here." +msgstr "" + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "" + +#, python-format +msgid "Index of %(directory)s" +msgstr "" + +msgid "Django: the Web framework for perfectionists with deadlines." +msgstr "" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" + +msgid "The install worked successfully! Congratulations!" +msgstr "" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not configured any " +"URLs." +msgstr "" + +msgid "Django Documentation" +msgstr "" + +msgid "Topics, references, & how-to’s" +msgstr "" + +msgid "Tutorial: A Polling App" +msgstr "" + +msgid "Get started with Django" +msgstr "" + +msgid "Django Community" +msgstr "" + +msgid "Connect, get help, or contribute" +msgstr "" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/km/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/conf/locale/km/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..3de6c806d2fd44ee29deac961a4654d2526361cc GIT binary patch literal 7223 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 W8^=krlvAykkMo`rA}Y;gto{jnaGKQs literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/km/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/conf/locale/km/LC_MESSAGES/django.po new file mode 100644 index 0000000000..c706129c92 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/km/LC_MESSAGES/django.po @@ -0,0 +1,1196 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Jannis Leidel , 2011 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-09-27 22:40+0200\n" +"PO-Revision-Date: 2019-11-05 00:38+0000\n" +"Last-Translator: Ramiro Morales\n" +"Language-Team: Khmer (http://www.transifex.com/django/django/language/km/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: km\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +msgid "Afrikaans" +msgstr "" + +msgid "Arabic" +msgstr "ភាសាអារ៉ាប់" + +msgid "Asturian" +msgstr "" + +msgid "Azerbaijani" +msgstr "" + +msgid "Bulgarian" +msgstr "" + +msgid "Belarusian" +msgstr "" + +msgid "Bengali" +msgstr "ភាសាបេឡារុស្ស" + +msgid "Breton" +msgstr "" + +msgid "Bosnian" +msgstr "" + +msgid "Catalan" +msgstr "" + +msgid "Czech" +msgstr "ភាសាឆេក" + +msgid "Welsh" +msgstr "ភាសាអ៊ុយក្រែន" + +msgid "Danish" +msgstr "ភាសាដាណឺម៉ាក" + +msgid "German" +msgstr "ភាសាអាល្លឺម៉ង់" + +msgid "Lower Sorbian" +msgstr "" + +msgid "Greek" +msgstr "ភាសាហ្កែលិគ" + +msgid "English" +msgstr "ភាសាអង់គ្លេស" + +msgid "Australian English" +msgstr "" + +msgid "British English" +msgstr "" + +msgid "Esperanto" +msgstr "" + +msgid "Spanish" +msgstr "ភាសាអេស្ប៉ាញ" + +msgid "Argentinian Spanish" +msgstr "" + +msgid "Colombian Spanish" +msgstr "" + +msgid "Mexican Spanish" +msgstr "" + +msgid "Nicaraguan Spanish" +msgstr "" + +msgid "Venezuelan Spanish" +msgstr "" + +msgid "Estonian" +msgstr "" + +msgid "Basque" +msgstr "" + +msgid "Persian" +msgstr "" + +msgid "Finnish" +msgstr "ភាសាហ្វាំងឡង់" + +msgid "French" +msgstr "ភាសាបារាំង" + +msgid "Frisian" +msgstr "" + +msgid "Irish" +msgstr "" + +msgid "Scottish Gaelic" +msgstr "" + +msgid "Galician" +msgstr "ភាសាហ្កែលិគ" + +msgid "Hebrew" +msgstr "ភាសាហេប្រិ" + +msgid "Hindi" +msgstr "" + +msgid "Croatian" +msgstr "" + +msgid "Upper Sorbian" +msgstr "" + +msgid "Hungarian" +msgstr "ភាសាហុងគ្រី" + +msgid "Armenian" +msgstr "" + +msgid "Interlingua" +msgstr "" + +msgid "Indonesian" +msgstr "" + +msgid "Ido" +msgstr "" + +msgid "Icelandic" +msgstr "ភាសាអ៉ីស្លង់" + +msgid "Italian" +msgstr "ភាសាអ៊ីតាលី" + +msgid "Japanese" +msgstr "ភាសាជប៉ុន" + +msgid "Georgian" +msgstr "" + +msgid "Kabyle" +msgstr "" + +msgid "Kazakh" +msgstr "" + +msgid "Khmer" +msgstr "" + +msgid "Kannada" +msgstr "" + +msgid "Korean" +msgstr "" + +msgid "Luxembourgish" +msgstr "" + +msgid "Lithuanian" +msgstr "" + +msgid "Latvian" +msgstr "" + +msgid "Macedonian" +msgstr "" + +msgid "Malayalam" +msgstr "" + +msgid "Mongolian" +msgstr "" + +msgid "Marathi" +msgstr "" + +msgid "Burmese" +msgstr "" + +msgid "Norwegian Bokmål" +msgstr "" + +msgid "Nepali" +msgstr "" + +msgid "Dutch" +msgstr "ភាសាហ្វាំងឡង់" + +msgid "Norwegian Nynorsk" +msgstr "" + +msgid "Ossetic" +msgstr "" + +msgid "Punjabi" +msgstr "" + +msgid "Polish" +msgstr "" + +msgid "Portuguese" +msgstr "" + +msgid "Brazilian Portuguese" +msgstr "" + +msgid "Romanian" +msgstr "ភាសារូម៉ានី" + +msgid "Russian" +msgstr "ភាសាรัរូស្ស៉ី" + +msgid "Slovak" +msgstr "ភាសាស្លូវ៉ាគី" + +msgid "Slovenian" +msgstr "ភាសាស្លូវ៉ានី" + +msgid "Albanian" +msgstr "" + +msgid "Serbian" +msgstr "" + +msgid "Serbian Latin" +msgstr "" + +msgid "Swedish" +msgstr "ភាសាស៊ុយអែដ" + +msgid "Swahili" +msgstr "" + +msgid "Tamil" +msgstr "ភាសាតាមីល" + +msgid "Telugu" +msgstr "" + +msgid "Thai" +msgstr "" + +msgid "Turkish" +msgstr "ភាសាទួរគី" + +msgid "Tatar" +msgstr "" + +msgid "Udmurt" +msgstr "" + +msgid "Ukrainian" +msgstr "ភាសាអ៊ុយក្រែន" + +msgid "Urdu" +msgstr "" + +msgid "Uzbek" +msgstr "" + +msgid "Vietnamese" +msgstr "" + +msgid "Simplified Chinese" +msgstr "ភាសាចិនសាមញ្ញ" + +msgid "Traditional Chinese" +msgstr "ភាសាចិនបុរាណ" + +msgid "Messages" +msgstr "" + +msgid "Site Maps" +msgstr "" + +msgid "Static Files" +msgstr "" + +msgid "Syndication" +msgstr "" + +msgid "That page number is not an integer" +msgstr "" + +msgid "That page number is less than 1" +msgstr "" + +msgid "That page contains no results" +msgstr "" + +msgid "Enter a valid value." +msgstr "" + +msgid "Enter a valid URL." +msgstr "" + +msgid "Enter a valid integer." +msgstr "" + +msgid "Enter a valid email address." +msgstr "" + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" + +msgid "Enter a valid IPv4 address." +msgstr "" + +msgid "Enter a valid IPv6 address." +msgstr "" + +msgid "Enter a valid IPv4 or IPv6 address." +msgstr "" + +msgid "Enter only digits separated by commas." +msgstr "បំពេញតែលេខហើយផ្តាច់ចេញពីគ្នាដោយសញ្ញាក្បៀស។" + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "" + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "" + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "" + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" + +msgid "Enter a number." +msgstr "" + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "" + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "" + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "" + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" + +msgid "Null characters are not allowed." +msgstr "" + +msgid "and" +msgstr "និង" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "" + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "" + +msgid "This field cannot be null." +msgstr "ចាំបាច់បំពេញទិន្នន័យកន្លែងនេះ។" + +msgid "This field cannot be blank." +msgstr "" + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "" + +#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'. +#. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "" + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "" + +msgid "Boolean (Either True or False)" +msgstr "Boolean (អាច​ជា True រឺ False)" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "" + +msgid "Comma-separated integers" +msgstr "ចំនួនពិត(Integer) ដែលផ្តាច់ចេញពីគ្នាដោយ​ក្បៀស" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" + +msgid "Date (without time)" +msgstr "កាល​បរិច្ឆេទ (Date) (មិនមានសរសេរម៉ោង)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" + +msgid "Date (with time)" +msgstr "កាល​បរិច្ឆេទ (Date) (មានសរសេរម៉ោង)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "" + +msgid "Decimal number" +msgstr "ចំនួនទសភាគ (Decimal)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" + +msgid "Duration" +msgstr "" + +msgid "Email address" +msgstr "" + +msgid "File path" +msgstr "ផ្លូវទៅកាន់ឯកសារ" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "" + +msgid "Floating point number" +msgstr "" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "" + +msgid "Integer" +msgstr "ចំនួនពិត(Integer)" + +msgid "Big (8 byte) integer" +msgstr "" + +msgid "IPv4 address" +msgstr "" + +msgid "IP address" +msgstr "លេខ IP" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "" + +msgid "Boolean (Either True, False or None)" +msgstr "Boolean (អាចជា True​ រឺ False រឺ None)" + +msgid "Positive integer" +msgstr "" + +msgid "Positive small integer" +msgstr "" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "" + +msgid "Small integer" +msgstr "" + +msgid "Text" +msgstr "អត្ថបទ" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" + +msgid "Time" +msgstr "ពេលវេលា" + +msgid "URL" +msgstr "អាស័យដ្ឋានគេហទំព័រ(URL)" + +msgid "Raw binary data" +msgstr "" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "" + +msgid "Universally unique identifier" +msgstr "" + +msgid "File" +msgstr "" + +msgid "Image" +msgstr "" + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "" + +msgid "Foreign Key (type determined by related field)" +msgstr "" + +msgid "One-to-one relationship" +msgstr "" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "" + +msgid "Many-to-many relationship" +msgstr "" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr "" + +msgid "This field is required." +msgstr "ចាំបាច់បំពេញទិន្នន័យកន្លែងនេះ។" + +msgid "Enter a whole number." +msgstr "បំពេញចំនួនទាំងអស់។" + +msgid "Enter a valid date." +msgstr "" + +msgid "Enter a valid time." +msgstr "" + +msgid "Enter a valid date/time." +msgstr "" + +msgid "Enter a valid duration." +msgstr "" + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "" + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "មិនមានឯកសារត្រូវបានជ្រើសរើស។ សូមពិនិត្យប្រភេទឯកសារម្តងទៀត។" + +msgid "No file was submitted." +msgstr "" + +msgid "The submitted file is empty." +msgstr "ពុំមានឯកសារ។​" + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "" + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "រូបភាពដែលទាញយកមិនត្រឹមត្រូវ ប្រហែលជាមិនមែនជារូបភាព ឬក៏ជា រូបភាពខូច។" + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "" + +msgid "Enter a list of values." +msgstr "" + +msgid "Enter a complete value." +msgstr "" + +msgid "Enter a valid UUID." +msgstr "" + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr "" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "" + +msgid "ManagementForm data is missing or has been tampered with" +msgstr "" + +#, python-format +msgid "Please submit %d or fewer forms." +msgid_plural "Please submit %d or fewer forms." +msgstr[0] "" + +#, python-format +msgid "Please submit %d or more forms." +msgid_plural "Please submit %d or more forms." +msgstr[0] "" + +msgid "Order" +msgstr "" + +msgid "Delete" +msgstr "លប់" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "" + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "" + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" + +msgid "Please correct the duplicate values below." +msgstr "" + +msgid "The inline value did not match the parent instance." +msgstr "" + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "" + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "" + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" + +msgid "Clear" +msgstr "" + +msgid "Currently" +msgstr "" + +msgid "Change" +msgstr "ផ្លាស់ប្តូរ" + +msgid "Unknown" +msgstr "មិន​ដឹង" + +msgid "Yes" +msgstr "យល់ព្រម" + +msgid "No" +msgstr "មិនយល់ព្រម" + +msgid "Year" +msgstr "" + +msgid "Month" +msgstr "" + +msgid "Day" +msgstr "" + +msgid "yes,no,maybe" +msgstr "យល់ព្រម មិនយល់ព្រម​ ប្រហែល" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "" + +#, python-format +msgid "%s KB" +msgstr "" + +#, python-format +msgid "%s MB" +msgstr "" + +#, python-format +msgid "%s GB" +msgstr "" + +#, python-format +msgid "%s TB" +msgstr "" + +#, python-format +msgid "%s PB" +msgstr "" + +msgid "p.m." +msgstr "" + +msgid "a.m." +msgstr "" + +msgid "PM" +msgstr "" + +msgid "AM" +msgstr "" + +msgid "midnight" +msgstr "" + +msgid "noon" +msgstr "" + +msgid "Monday" +msgstr "ច័ន្ទ" + +msgid "Tuesday" +msgstr "អង្គារ" + +msgid "Wednesday" +msgstr "ពុធ" + +msgid "Thursday" +msgstr "ព្រហស្បតិ៍" + +msgid "Friday" +msgstr "សុក្រ" + +msgid "Saturday" +msgstr "សៅរ៍" + +msgid "Sunday" +msgstr "អាទិត្យ" + +msgid "Mon" +msgstr "" + +msgid "Tue" +msgstr "" + +msgid "Wed" +msgstr "" + +msgid "Thu" +msgstr "" + +msgid "Fri" +msgstr "" + +msgid "Sat" +msgstr "" + +msgid "Sun" +msgstr "" + +msgid "January" +msgstr "មករា" + +msgid "February" +msgstr "កុម្ភៈ" + +msgid "March" +msgstr "មិនា" + +msgid "April" +msgstr "មេសា" + +msgid "May" +msgstr "ឧសភា" + +msgid "June" +msgstr "មិថុនា" + +msgid "July" +msgstr "កក្កដា" + +msgid "August" +msgstr "សីហា" + +msgid "September" +msgstr "កញ្ញា" + +msgid "October" +msgstr "តុលា" + +msgid "November" +msgstr "វិច្ឆិកា" + +msgid "December" +msgstr "ធ្នូ" + +msgid "jan" +msgstr "មករា" + +msgid "feb" +msgstr "កុម្ភះ" + +msgid "mar" +msgstr "មិនា" + +msgid "apr" +msgstr "មេសា" + +msgid "may" +msgstr "ឧសភា" + +msgid "jun" +msgstr "មិថុនា" + +msgid "jul" +msgstr "កក្កដា" + +msgid "aug" +msgstr "សីហា" + +msgid "sep" +msgstr "កញ្ញា" + +msgid "oct" +msgstr "តុលា" + +msgid "nov" +msgstr "វិច្ឆិកា" + +msgid "dec" +msgstr "ធ្នូ" + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "" + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "" + +msgctxt "abbrev. month" +msgid "March" +msgstr "មិនា" + +msgctxt "abbrev. month" +msgid "April" +msgstr "មេសា" + +msgctxt "abbrev. month" +msgid "May" +msgstr "ឧសភា" + +msgctxt "abbrev. month" +msgid "June" +msgstr "មិថុនា" + +msgctxt "abbrev. month" +msgid "July" +msgstr "កក្កដា" + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "" + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "" + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "" + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "" + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "" + +msgctxt "alt. month" +msgid "January" +msgstr "មករា" + +msgctxt "alt. month" +msgid "February" +msgstr "កុម្ភៈ" + +msgctxt "alt. month" +msgid "March" +msgstr "មិនា" + +msgctxt "alt. month" +msgid "April" +msgstr "មេសា" + +msgctxt "alt. month" +msgid "May" +msgstr "ឧសភា" + +msgctxt "alt. month" +msgid "June" +msgstr "មិថុនា" + +msgctxt "alt. month" +msgid "July" +msgstr "កក្កដា" + +msgctxt "alt. month" +msgid "August" +msgstr "សីហា" + +msgctxt "alt. month" +msgid "September" +msgstr "កញ្ញា" + +msgctxt "alt. month" +msgid "October" +msgstr "តុលា" + +msgctxt "alt. month" +msgid "November" +msgstr "វិច្ឆិកា" + +msgctxt "alt. month" +msgid "December" +msgstr "ធ្នូ" + +msgid "This is not a valid IPv6 address." +msgstr "" + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "" + +msgid "or" +msgstr "" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr "" + +#, python-format +msgid "%d year" +msgid_plural "%d years" +msgstr[0] "" + +#, python-format +msgid "%d month" +msgid_plural "%d months" +msgstr[0] "" + +#, python-format +msgid "%d week" +msgid_plural "%d weeks" +msgstr[0] "" + +#, python-format +msgid "%d day" +msgid_plural "%d days" +msgstr[0] "" + +#, python-format +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "" + +#, python-format +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "" + +msgid "0 minutes" +msgstr "" + +msgid "Forbidden" +msgstr "" + +msgid "CSRF verification failed. Request aborted." +msgstr "" + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your Web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" + +msgid "More information is available with DEBUG=True." +msgstr "" + +msgid "No year specified" +msgstr "" + +msgid "Date out of range" +msgstr "" + +msgid "No month specified" +msgstr "" + +msgid "No day specified" +msgstr "" + +msgid "No week specified" +msgstr "" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "" + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "" + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "" + +msgid "Directory indexes are not allowed here." +msgstr "" + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "" + +#, python-format +msgid "Index of %(directory)s" +msgstr "" + +msgid "Django: the Web framework for perfectionists with deadlines." +msgstr "" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" + +msgid "The install worked successfully! Congratulations!" +msgstr "" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not configured any " +"URLs." +msgstr "" + +msgid "Django Documentation" +msgstr "" + +msgid "Topics, references, & how-to’s" +msgstr "" + +msgid "Tutorial: A Polling App" +msgstr "" + +msgid "Get started with Django" +msgstr "" + +msgid "Django Community" +msgstr "" + +msgid "Connect, get help, or contribute" +msgstr "" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/km/__init__.py b/venv/lib/python3.12/site-packages/django/conf/locale/km/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/km/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/km/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3b76b5586ce7343e0cf0efc294476152eddf8ec9 GIT binary patch literal 198 zcmX@j%ge<81o5sX(m?cM5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!O4ZNE&rQ|OP0Yy6 zFHO;RNiEZNN=(kybEFQ_cZ$j>v@Gc?jK&MZmQEdVM^ zOiwM=Pssu+OwP|s)6dCIPRvQw&(774kI&4@EQycTE2#X%VUwGmQks)$SHudml@W-G PL5z>gjEsy$%s>_Z#v(L> literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/km/__pycache__/formats.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/km/__pycache__/formats.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6a4d39b82f0c249f4e184c672acccf0ae4b1694f GIT binary patch literal 523 zcmX@j%ge<81o5sX(%vyKFgylvV1NiDF4% zjbcqT>csQ@|;ru2AHz1?!;rvMt=S_Y%Z`;H9Z3>Z9%un>aff*N z!a4jP8Ds$gUw^+4k9ZfyNSJ!TU=RPG5TFRc2vLL(vR*+KS7%RON1ym$*8s;L#}NOZ zTS6fo{-ME+el7^Hl?3XKQB!`CqFqcCsjW? zS3fPkC^xaBSg)Y+7l%!5eoARhs$CI3&{9xL6`KKx56p~=j32ld_;nk&Z}15N2_e%4 p{s+Pm7Z?O?h)7>x5WFFwa)Ckgg8+jlP)zWKsKiAEp(0+ORsh9uqrLzD literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/km/formats.py b/venv/lib/python3.12/site-packages/django/conf/locale/km/formats.py new file mode 100644 index 0000000000..5923437476 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/km/formats.py @@ -0,0 +1,21 @@ +# This file is distributed under the same license as the Django package. +# +# The *_FORMAT strings use the Django date format syntax, +# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date +DATE_FORMAT = "j ខែ F ឆ្នាំ Y" +TIME_FORMAT = "G:i" +DATETIME_FORMAT = "j ខែ F ឆ្នាំ Y, G:i" +# YEAR_MONTH_FORMAT = +MONTH_DAY_FORMAT = "j F" +SHORT_DATE_FORMAT = "j M Y" +SHORT_DATETIME_FORMAT = "j M Y, G:i" +# FIRST_DAY_OF_WEEK = + +# The *_INPUT_FORMATS strings use the Python strftime format syntax, +# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior +# DATE_INPUT_FORMATS = +# TIME_INPUT_FORMATS = +# DATETIME_INPUT_FORMATS = +DECIMAL_SEPARATOR = "," +THOUSAND_SEPARATOR = "." +# NUMBER_GROUPING = diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/kn/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/conf/locale/kn/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..c926f57dad06da2e027d0de75e6b98a94d39ac1c GIT binary patch literal 17515 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/kn/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/conf/locale/kn/LC_MESSAGES/django.po new file mode 100644 index 0000000000..f2ba2aa826 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/kn/LC_MESSAGES/django.po @@ -0,0 +1,1232 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Jannis Leidel , 2011 +# karthikbgl , 2011-2012 +# Ramakrishna Yekulla , 2011 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-09-27 22:40+0200\n" +"PO-Revision-Date: 2019-11-05 00:38+0000\n" +"Last-Translator: Ramiro Morales\n" +"Language-Team: Kannada (http://www.transifex.com/django/django/language/" +"kn/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: kn\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +msgid "Afrikaans" +msgstr "" + +msgid "Arabic" +msgstr "ಅರೇಬಿಕ್" + +msgid "Asturian" +msgstr "" + +msgid "Azerbaijani" +msgstr "ಆಜೆರ್ಬೈಜನಿ" + +msgid "Bulgarian" +msgstr "ಬಲ್ಗೇರಿಯನ್" + +msgid "Belarusian" +msgstr "" + +msgid "Bengali" +msgstr "ಬೆಂಗಾಲಿ" + +msgid "Breton" +msgstr "" + +msgid "Bosnian" +msgstr "ಬೋಸ್ನಿಯನ್" + +msgid "Catalan" +msgstr "ಕೆಟಲಾನ್" + +msgid "Czech" +msgstr "ಝೆಕ್" + +msgid "Welsh" +msgstr "ವೆಲ್ಷ್" + +msgid "Danish" +msgstr "ಡ್ಯಾನಿಷ್" + +msgid "German" +msgstr "ಜರ್ಮನ್" + +msgid "Lower Sorbian" +msgstr "" + +msgid "Greek" +msgstr "ಗ್ರೀಕ್" + +msgid "English" +msgstr "ಇಂಗ್ಲಿಷ್" + +msgid "Australian English" +msgstr "" + +msgid "British English" +msgstr "ಬ್ರಿಟೀಶ್ ಇಂಗ್ಲಿಷ್" + +msgid "Esperanto" +msgstr "" + +msgid "Spanish" +msgstr "ಸ್ಪ್ಯಾನಿಷ್" + +msgid "Argentinian Spanish" +msgstr "ಅರ್ಜೆಂಟಿನಿಯನ್ ಸ್ಪಾನಿಷ್" + +msgid "Colombian Spanish" +msgstr "" + +msgid "Mexican Spanish" +msgstr "ಮೆಕ್ಸಿಕನ್ ಸ್ಪಾನಿಷ್" + +msgid "Nicaraguan Spanish" +msgstr "nicarguan ಸ್ಪಾನಿಷ್" + +msgid "Venezuelan Spanish" +msgstr "" + +msgid "Estonian" +msgstr "ಎಷ್ಟೋನಿಯನ್" + +msgid "Basque" +msgstr "ಬಾಸ್ಕ್‍" + +msgid "Persian" +msgstr "ಪರ್ಶಿಯನ್" + +msgid "Finnish" +msgstr "ಫಿನ್ನಿಶ್" + +msgid "French" +msgstr "ಫ್ರೆಂಚ್" + +msgid "Frisian" +msgstr "ಫ್ರಿಸಿಯನ್" + +msgid "Irish" +msgstr "ಐರಿಶ್" + +msgid "Scottish Gaelic" +msgstr "" + +msgid "Galician" +msgstr "ಗೆಲಿಶಿಯನ್" + +msgid "Hebrew" +msgstr "ಹೀಬ್ರೂ" + +msgid "Hindi" +msgstr "ಹಿಂದಿ" + +msgid "Croatian" +msgstr "ಕ್ರೊಯೇಶಿಯನ್" + +msgid "Upper Sorbian" +msgstr "" + +msgid "Hungarian" +msgstr "ಹಂಗೇರಿಯನ್" + +msgid "Armenian" +msgstr "" + +msgid "Interlingua" +msgstr "" + +msgid "Indonesian" +msgstr "ಇಂಡೋನಿಶಿಯನ್" + +msgid "Ido" +msgstr "" + +msgid "Icelandic" +msgstr "ಐಸ್‌ಲ್ಯಾಂಡಿಕ್" + +msgid "Italian" +msgstr "ಇಟಾಲಿಯನ್" + +msgid "Japanese" +msgstr "ಜಾಪನೀಸ್" + +msgid "Georgian" +msgstr "ಜಾರ್ಜೆಯನ್ " + +msgid "Kabyle" +msgstr "" + +msgid "Kazakh" +msgstr "" + +msgid "Khmer" +msgstr "ಖಮೇರ್" + +msgid "Kannada" +msgstr "ಕನ್ನಡ" + +msgid "Korean" +msgstr "ಕೊರಿಯನ್" + +msgid "Luxembourgish" +msgstr "" + +msgid "Lithuanian" +msgstr "ಲಿತುವಾನಿಯನ್ " + +msgid "Latvian" +msgstr "ಲಾಟ್ವಿಯನ್" + +msgid "Macedonian" +msgstr "ಮೆಸಡೊನಿಯನ್" + +msgid "Malayalam" +msgstr "ಮಲಯಾಳಂ" + +msgid "Mongolian" +msgstr "ಮಂಗೊಲಿಯನ್" + +msgid "Marathi" +msgstr "" + +msgid "Burmese" +msgstr "" + +msgid "Norwegian Bokmål" +msgstr "" + +msgid "Nepali" +msgstr "" + +msgid "Dutch" +msgstr "ಡಚ್" + +msgid "Norwegian Nynorsk" +msgstr "ನಾರ್ವೇಜಿಯನ್ ನಿನೋರ್ಕ್" + +msgid "Ossetic" +msgstr "" + +msgid "Punjabi" +msgstr "ಪಂಜಾಬಿ" + +msgid "Polish" +msgstr "ಪೋಲಿಷ್" + +msgid "Portuguese" +msgstr "ಪೋರ್ಚುಗೀಸ್" + +msgid "Brazilian Portuguese" +msgstr "ಬ್ರಜೀಲಿಯನ್ ಪೋರ್ಚುಗೀಸ್" + +msgid "Romanian" +msgstr "ರೋಮೇನಿಯನ್" + +msgid "Russian" +msgstr "ರಶಿಯನ್" + +msgid "Slovak" +msgstr "ಸ್ಲೋವಾಕ್" + +msgid "Slovenian" +msgstr "ಸ್ಲೋವೇನಿಯನ್" + +msgid "Albanian" +msgstr "ಅಲ್ಬೆನಿಯನ್ " + +msgid "Serbian" +msgstr "ಸರ್ಬಿಯನ್" + +msgid "Serbian Latin" +msgstr "ಸರ್ಬಿಯನ್ ಲ್ಯಾಟಿನ್" + +msgid "Swedish" +msgstr "ಸ್ವೀಡಿಷ್" + +msgid "Swahili" +msgstr "" + +msgid "Tamil" +msgstr "ತಮಿಳು" + +msgid "Telugu" +msgstr "ತೆಲುಗು" + +msgid "Thai" +msgstr "ಥಾಯ್" + +msgid "Turkish" +msgstr "ಟರ್ಕಿಶ್" + +msgid "Tatar" +msgstr "" + +msgid "Udmurt" +msgstr "" + +msgid "Ukrainian" +msgstr "ಉಕ್ರೇನಿಯನ್" + +msgid "Urdu" +msgstr "ಉರ್ದು" + +msgid "Uzbek" +msgstr "" + +msgid "Vietnamese" +msgstr "ವಿಯೆತ್ನಾಮೀಸ್" + +msgid "Simplified Chinese" +msgstr "ಸರಳೀಕೃತ ಚೈನೀಸ್" + +msgid "Traditional Chinese" +msgstr "ಸಂಪ್ರದಾಯಿಕ ಚೈನೀಸ್ " + +msgid "Messages" +msgstr "" + +msgid "Site Maps" +msgstr "" + +msgid "Static Files" +msgstr "" + +msgid "Syndication" +msgstr "" + +msgid "That page number is not an integer" +msgstr "" + +msgid "That page number is less than 1" +msgstr "" + +msgid "That page contains no results" +msgstr "" + +msgid "Enter a valid value." +msgstr "ಸಿಂಧುವಾದ ಮೌಲ್ಯವನ್ನು ನಮೂದಿಸಿ." + +msgid "Enter a valid URL." +msgstr "ಸರಿಯಾದ ಒಂದು URL ಅನ್ನು ನಮೂದಿಸಿ." + +msgid "Enter a valid integer." +msgstr "" + +msgid "Enter a valid email address." +msgstr "" + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" + +msgid "Enter a valid IPv4 address." +msgstr "ಒಂದು ಸರಿಯಾದ IPv4 ವಿಳಾಸವನ್ನು ನಮೂದಿಸಿ." + +msgid "Enter a valid IPv6 address." +msgstr "ಮಾನ್ಯವಾದ IPv6 ವಿಳಾಸ ದಾಖಲಿಸಿ" + +msgid "Enter a valid IPv4 or IPv6 address." +msgstr "ಮಾನ್ಯವಾದ IPv4 ಅಥವಾ IPv6 ವಿಳಾಸ ದಾಖಲಿಸಿ" + +msgid "Enter only digits separated by commas." +msgstr "ಅಲ್ಪವಿರಾಮ(,)ಗಳಿಂದ ಬೇರ್ಪಟ್ಟ ಅಂಕೆಗಳನ್ನು ಮಾತ್ರ ಬರೆಯಿರಿ." + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "" +"ಈ ಮೌಲ್ಯವು %(limit_value)s ಆಗಿದೆ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ (ಇದು %(show_value)s ಆಗಿದೆ)." + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "" +"ಈ ಮೌಲ್ಯವು %(limit_value)s ಕ್ಕಿಂತ ಕಡಿಮೆಯ ಅಥವ ಸಮನಾದ ಮೌಲ್ಯವಾಗಿದೆ ಎಂದು ಖಾತ್ರಿ " +"ಮಾಡಿಕೊಳ್ಳಿ." + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "" +"ಈ ಮೌಲ್ಯವು %(limit_value)s ಕ್ಕಿಂತ ಹೆಚ್ಚಿನ ಅಥವ ಸಮನಾದ ಮೌಲ್ಯವಾಗಿದೆ ಎಂದು ಖಾತ್ರಿ " +"ಮಾಡಿಕೊಳ್ಳಿ." + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +msgstr[1] "" + +msgid "Enter a number." +msgstr "ಒಂದು ಸಂಖ್ಯೆಯನ್ನು ನಮೂದಿಸಿ." + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" + +msgid "Null characters are not allowed." +msgstr "" + +msgid "and" +msgstr "ಮತ್ತು" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "" + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "" + +msgid "This field cannot be null." +msgstr "ಈ ಅಂಶವನ್ನು ಖಾಲಿ ಬಿಡುವಂತಿಲ್ಲ." + +msgid "This field cannot be blank." +msgstr "ಈ ಸ್ಥಳವು ಖಾಲಿ ಇರುವಂತಿಲ್ಲ." + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "" +"ಈ %(field_label)s ಅನ್ನು ಹೊಂದಿರುವ ಒಂದು %(model_name)s ಈಗಾಗಲೆ ಅಸ್ತಿತ್ವದಲ್ಲಿದೆ." + +#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'. +#. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "ಕ್ಷೇತ್ರದ ಬಗೆ: %(field_type)s" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "" + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "" + +msgid "Boolean (Either True or False)" +msgstr "ಬೂಲಿಯನ್ (ಹೌದು ಅಥವ ಅಲ್ಲ)" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "ಪದಪುಂಜ (%(max_length)s ವರೆಗೆ)" + +msgid "Comma-separated integers" +msgstr "ಅಲ್ಪವಿರಾಮ(,) ದಿಂದ ಬೇರ್ಪಟ್ಟ ಪೂರ್ಣಸಂಖ್ಯೆಗಳು" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" + +msgid "Date (without time)" +msgstr "ದಿನಾಂಕ (ಸಮಯವಿಲ್ಲದೆ)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" + +msgid "Date (with time)" +msgstr "ದಿನಾಂಕ (ಸಮಯದೊಂದಿಗೆ)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "" + +msgid "Decimal number" +msgstr "ದಶಮಾನ ಸಂಖ್ಯೆ" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" + +msgid "Duration" +msgstr "" + +msgid "Email address" +msgstr "" + +msgid "File path" +msgstr "ಕಡತದ ಸ್ಥಾನಪಥ" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "" + +msgid "Floating point number" +msgstr "ತೇಲುವ-ಬಿಂದು ಸಂಖ್ಯೆ" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "" + +msgid "Integer" +msgstr "ಪೂರ್ಣಾಂಕ" + +msgid "Big (8 byte) integer" +msgstr "ಬೃಹತ್ (೮ ಬೈಟ್) ಪೂರ್ಣ ಸಂಖ್ಯೆ" + +msgid "IPv4 address" +msgstr "IPv4 ವಿಳಾಸ" + +msgid "IP address" +msgstr "IP ವಿಳಾಸ" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "" + +msgid "Boolean (Either True, False or None)" +msgstr "ಬೂಲಿಯನ್ (ನಿಜ, ಸುಳ್ಳು ಅಥವ ಯಾವುದೂ ಅಲ್ಲ ಇವುಗಳಲ್ಲಿ ಒಂದು)" + +msgid "Positive integer" +msgstr "" + +msgid "Positive small integer" +msgstr "" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "" + +msgid "Small integer" +msgstr "" + +msgid "Text" +msgstr "ಪಠ್ಯ" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" + +msgid "Time" +msgstr "ಸಮಯ" + +msgid "URL" +msgstr "URL" + +msgid "Raw binary data" +msgstr "" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "" + +msgid "Universally unique identifier" +msgstr "" + +msgid "File" +msgstr "" + +msgid "Image" +msgstr "" + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "" + +msgid "Foreign Key (type determined by related field)" +msgstr "ಬಾಹ್ಯ ಕೀಲಿ (ಸಂಬಂಧಿತ ಸ್ಥಳದಿಂದ ಪ್ರಕಾರವನ್ನು ನಿರ್ಧರಿಸಲಾಗುತ್ತದೆ)" + +msgid "One-to-one relationship" +msgstr "ಒನ್-ಟು-ಒನ್ (ಪರಸ್ಪರ) ಸಂಬಂಧ" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "" + +msgid "Many-to-many relationship" +msgstr "ಮೆನಿ-ಟು-ಮೆನಿ (ಸಾರ್ವಜನಿಕ) ಸಂಬಂಧ" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr "" + +msgid "This field is required." +msgstr "ಈ ಸ್ಥಳವು ಅಗತ್ಯವಿರುತ್ತದೆ." + +msgid "Enter a whole number." +msgstr "ಪೂರ್ಣಾಂಕವೊಂದನ್ನು ನಮೂದಿಸಿ." + +msgid "Enter a valid date." +msgstr "ಸರಿಯಾದ ದಿನಾಂಕವನ್ನು ನಮೂದಿಸಿ." + +msgid "Enter a valid time." +msgstr "ಸರಿಯಾದ ಸಮಯವನ್ನು ನಮೂದಿಸಿ." + +msgid "Enter a valid date/time." +msgstr "ಸರಿಯಾದ ದಿನಾಂಕ/ಸಮಯವನ್ನು ನಮೂದಿಸಿ." + +msgid "Enter a valid duration." +msgstr "" + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "" + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "" +"ಯಾವದೇ ಕಡತವನ್ನೂ ಸಲ್ಲಿಸಲಾಗಿಲ್ಲ. ನಮೂನೆಯ ಮೇಲಿನ ಸಂಕೇತೀಕರಣ (ಎನ್ಕೋಡಿಂಗ್) ಬಗೆಯನ್ನು " +"ಪರೀಕ್ಷಿಸಿ." + +msgid "No file was submitted." +msgstr "ಯಾವದೇ ಕಡತವನ್ನೂ ಸಲ್ಲಿಸಲಾಗಿಲ್ಲ." + +msgid "The submitted file is empty." +msgstr "ಸಲ್ಲಿಸಲಾದ ಕಡತ ಖಾಲಿ ಇದೆ." + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" +msgstr[1] "" + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "" +"ದಯವಿಟ್ಟು ಕಡತವನ್ನು ಸಲ್ಲಿಸಿ ಅಥವ ಅಳಿಸುವ ಗುರುತುಚೌಕವನ್ನು ಗುರುತು ಹಾಕಿ, ಎರಡನ್ನೂ ಒಟ್ಟಿಗೆ " +"ಮಾಡಬೇಡಿ." + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" +"ಸರಿಯಾದ ಚಿತ್ರವನ್ನು ಸೇರಿಸಿ. ನೀವು ಸೇರಿಸಿದ ಕಡತವು ಚಿತ್ರವೇ ಅಲ್ಲ ಅಥವಾ ಅದು ಒಂದು ಹಾಳಾದ " +"ಚಿತ್ರವಾಗಿದೆ. " + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "ಸರಿಯಾದ ಒಂದು ಆಯ್ಕೆಯನ್ನು ಆರಿಸಿ. %(value)s ಎನ್ನುವುದು ಲಭ್ಯವಿರುವ ಆಯ್ಕೆಗಳಲ್ಲಿ ಇಲ್ಲ." + +msgid "Enter a list of values." +msgstr "ಮೌಲ್ಯಗಳ ಒಂದು ಪಟ್ಟಿಯನ್ನು ನಮೂದಿಸಿ." + +msgid "Enter a complete value." +msgstr "" + +msgid "Enter a valid UUID." +msgstr "" + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr "" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "" + +msgid "ManagementForm data is missing or has been tampered with" +msgstr "" + +#, python-format +msgid "Please submit %d or fewer forms." +msgid_plural "Please submit %d or fewer forms." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "Please submit %d or more forms." +msgid_plural "Please submit %d or more forms." +msgstr[0] "" +msgstr[1] "" + +msgid "Order" +msgstr "ಕ್ರಮ" + +msgid "Delete" +msgstr "ಅಳಿಸಿಹಾಕಿ" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "%(field)s ಗಾಗಿ ಎರಡು ಬಾರಿ ನಮೂದಿಸಲಾದ ಮಾಹಿತಿಯನ್ನು ಸರಿಪಡಿಸಿ." + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "" +"%(field)s ಗಾಗಿ ಎರಡು ಬಾರಿ ನಮೂದಿಸಲಾದ ಮಾಹಿತಿಯನ್ನು ಸರಿಪಡಿಸಿ, ಇದರ ಮೌಲ್ಯವು " +"ವಿಶಿಷ್ಟವಾಗಿರಬೇಕು." + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"%(field_name)s ಗಾಗಿ ಎರಡು ಬಾರಿ ನಮೂದಿಸಲಾದ ಮಾಹಿತಿಯನ್ನು ಸರಿಪಡಿಸಿ, %(date_field)s " +"ನಲ್ಲಿನ %(lookup)s ಗಾಗಿ ಇದರ ಮೌಲ್ಯವು ವಿಶಿಷ್ಟವಾಗಿರಬೇಕು." + +msgid "Please correct the duplicate values below." +msgstr "ದಯವಿಟ್ಟು ಈ ಕೆಳಗೆ ಎರಡು ಬಾರಿ ನಮೂದಿಸಲಾದ ಮೌಲ್ಯವನ್ನು ಸರಿಪಡಿಸಿ." + +msgid "The inline value did not match the parent instance." +msgstr "" + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "ಸರಿಯಾದ ಒಂದು ಆಯ್ಕೆಯನ್ನು ಆರಿಸಿ. ಆ ಆಯ್ಕೆಯು ಲಭ್ಯವಿರುವ ಆಯ್ಕೆಗಳಲ್ಲಿ ಇಲ್ಲ." + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "" + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" + +msgid "Clear" +msgstr "ಮುಕ್ತಗೊಳಿಸು" + +msgid "Currently" +msgstr "ಪ್ರಸಕ್ತ" + +msgid "Change" +msgstr "ಬದಲಾವಣೆ" + +msgid "Unknown" +msgstr "ಗೊತ್ತಿರದ" + +msgid "Yes" +msgstr "ಹೌದು" + +msgid "No" +msgstr "ಇಲ್ಲ" + +msgid "Year" +msgstr "" + +msgid "Month" +msgstr "" + +msgid "Day" +msgstr "" + +msgid "yes,no,maybe" +msgstr "ಹೌದು,ಇಲ್ಲ,ಇರಬಹುದು" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)d ಬೈಟ್‌ಗಳು" +msgstr[1] "%(size)d ಬೈಟ್‌ಗಳು" + +#, python-format +msgid "%s KB" +msgstr "%s KB" + +#, python-format +msgid "%s MB" +msgstr "%s MB" + +#, python-format +msgid "%s GB" +msgstr "%s GB" + +#, python-format +msgid "%s TB" +msgstr "%s TB" + +#, python-format +msgid "%s PB" +msgstr "%s PB" + +msgid "p.m." +msgstr "ಅಪರಾಹ್ನ" + +msgid "a.m." +msgstr "ಪೂರ್ವಾಹ್ನ" + +msgid "PM" +msgstr "ಅಪರಾಹ್ನ" + +msgid "AM" +msgstr "ಪೂರ್ವಾಹ್ನ" + +msgid "midnight" +msgstr "ಮಧ್ಯರಾತ್ರಿ" + +msgid "noon" +msgstr "ಮಧ್ಯಾಹ್ನ" + +msgid "Monday" +msgstr "ಸೋಮವಾರ" + +msgid "Tuesday" +msgstr "ಮಂಗಳವಾರ" + +msgid "Wednesday" +msgstr "ಬುಧವಾರ" + +msgid "Thursday" +msgstr "ಗುರುವಾರ" + +msgid "Friday" +msgstr "ಶುಕ್ರವಾರ" + +msgid "Saturday" +msgstr "ಶನಿವಾರ" + +msgid "Sunday" +msgstr "ರವಿವಾರ" + +msgid "Mon" +msgstr "ಸೋಮ" + +msgid "Tue" +msgstr "ಮಂಗಳ" + +msgid "Wed" +msgstr "ಬುಧ" + +msgid "Thu" +msgstr "ಗುರು" + +msgid "Fri" +msgstr "ಶುಕ್ರ" + +msgid "Sat" +msgstr "ಶನಿ" + +msgid "Sun" +msgstr "ರವಿ" + +msgid "January" +msgstr "ಜನವರಿ" + +msgid "February" +msgstr "ಫೆಬ್ರುವರಿ" + +msgid "March" +msgstr "ಮಾರ್ಚ್" + +msgid "April" +msgstr "ಎಪ್ರಿಲ್" + +msgid "May" +msgstr "ಮೇ" + +msgid "June" +msgstr "ಜೂನ್" + +msgid "July" +msgstr "ಜುಲೈ" + +msgid "August" +msgstr "ಆಗಸ್ಟ್" + +msgid "September" +msgstr "ಸೆಪ್ಟೆಂಬರ್" + +msgid "October" +msgstr "ಅಕ್ಟೋಬರ್" + +msgid "November" +msgstr "ನವೆಂಬರ್" + +msgid "December" +msgstr "ಡಿಸೆಂಬರ್" + +msgid "jan" +msgstr "ಜನವರಿ" + +msgid "feb" +msgstr "ಫೆಬ್ರವರಿ" + +msgid "mar" +msgstr "ಮಾರ್ಚ್" + +msgid "apr" +msgstr "ಏಪ್ರಿಲ್" + +msgid "may" +msgstr "ಮೇ" + +msgid "jun" +msgstr "ಜೂನ್" + +msgid "jul" +msgstr "ಜುಲೈ" + +msgid "aug" +msgstr "ಆಗಸ್ಟ್‍" + +msgid "sep" +msgstr "ಸೆಪ್ಟೆಂಬರ್" + +msgid "oct" +msgstr "ಅಕ್ಟೋಬರ್" + +msgid "nov" +msgstr "ನವೆಂಬರ್" + +msgid "dec" +msgstr "ಡಿಸೆಂಬರ್" + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "ಜನ." + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "ಫೆಬ್ರ." + +msgctxt "abbrev. month" +msgid "March" +msgstr "ಮಾರ್ಚ್" + +msgctxt "abbrev. month" +msgid "April" +msgstr "ಏಪ್ರಿಲ್" + +msgctxt "abbrev. month" +msgid "May" +msgstr "ಮೇ" + +msgctxt "abbrev. month" +msgid "June" +msgstr "ಜೂನ್" + +msgctxt "abbrev. month" +msgid "July" +msgstr "ಜುಲೈ" + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "ಆಗ." + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "ಸೆಪ್ಟೆ." + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "ಅಕ್ಟೋ." + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "ನವೆಂ." + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "ಡಿಸೆಂ." + +msgctxt "alt. month" +msgid "January" +msgstr "ಜನವರಿ" + +msgctxt "alt. month" +msgid "February" +msgstr "ಫೆಬ್ರವರಿ" + +msgctxt "alt. month" +msgid "March" +msgstr "ಮಾರ್ಚ್" + +msgctxt "alt. month" +msgid "April" +msgstr "ಏಪ್ರಿಲ್" + +msgctxt "alt. month" +msgid "May" +msgstr "ಮೇ" + +msgctxt "alt. month" +msgid "June" +msgstr "ಜೂನ್" + +msgctxt "alt. month" +msgid "July" +msgstr "ಜುಲೈ" + +msgctxt "alt. month" +msgid "August" +msgstr "ಆಗಸ್ಟ್‍" + +msgctxt "alt. month" +msgid "September" +msgstr "ಸಪ್ಟೆಂಬರ್" + +msgctxt "alt. month" +msgid "October" +msgstr "ಅಕ್ಟೋಬರ್" + +msgctxt "alt. month" +msgid "November" +msgstr "ನವೆಂಬರ್" + +msgctxt "alt. month" +msgid "December" +msgstr "ಡಿಸೆಂಬರ್" + +msgid "This is not a valid IPv6 address." +msgstr "" + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "" + +msgid "or" +msgstr "ಅಥವ" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr ", " + +#, python-format +msgid "%d year" +msgid_plural "%d years" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d month" +msgid_plural "%d months" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d week" +msgid_plural "%d weeks" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d day" +msgid_plural "%d days" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "" +msgstr[1] "" + +msgid "0 minutes" +msgstr "" + +msgid "Forbidden" +msgstr "" + +msgid "CSRF verification failed. Request aborted." +msgstr "" + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your Web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" + +msgid "More information is available with DEBUG=True." +msgstr "" + +msgid "No year specified" +msgstr "ಯಾವುದೆ ವರ್ಷವನ್ನು ಸೂಚಿಲಾಗಿಲ್ಲ" + +msgid "Date out of range" +msgstr "" + +msgid "No month specified" +msgstr "ಯಾವುದೆ ತಿಂಗಳನ್ನು ಸೂಚಿಸಲಾಗಿಲ್ಲ" + +msgid "No day specified" +msgstr "ಯಾವುದೆ ದಿನವನ್ನು ಸೂಚಿಸಲಾಗಿಲ್ಲ" + +msgid "No week specified" +msgstr "ಯಾವುದೆ ವಾರವನ್ನು ಸೂಚಿಸಲಾಗಿಲ್ಲ" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "ಯಾವುದೆ %(verbose_name_plural)s ಲಭ್ಯವಿಲ್ಲ" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" +"ಭವಿಷ್ಯದ %(verbose_name_plural)s ಲಭ್ಯವಿಲ್ಲ ಏಕೆಂದರೆ %(class_name)s.allow_future " +"ಎನ್ನುವುದು ಅಸತ್ಯವಾಗಿದೆ (ಫಾಲ್ಸ್‍) ಆಗಿದೆ." + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "ಮನವಿಗೆ ತಾಳೆಯಾಗುವ ಯಾವುದೆ %(verbose_name)s ಕಂಡುಬಂದಿಲ್ಲ" + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "" + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "" + +msgid "Directory indexes are not allowed here." +msgstr "" + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "" + +#, python-format +msgid "Index of %(directory)s" +msgstr "" + +msgid "Django: the Web framework for perfectionists with deadlines." +msgstr "" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" + +msgid "The install worked successfully! Congratulations!" +msgstr "" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not configured any " +"URLs." +msgstr "" + +msgid "Django Documentation" +msgstr "" + +msgid "Topics, references, & how-to’s" +msgstr "" + +msgid "Tutorial: A Polling App" +msgstr "" + +msgid "Get started with Django" +msgstr "" + +msgid "Django Community" +msgstr "" + +msgid "Connect, get help, or contribute" +msgstr "" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/kn/__init__.py b/venv/lib/python3.12/site-packages/django/conf/locale/kn/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/kn/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/kn/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..30326ffbc95d9aad3ed29f9c5dd6b8f20b1f33f8 GIT binary patch literal 198 zcmX@j%ge<81o5sX(m?cM5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!O4ZNE&rQ|OP0Yy6 zFHO;RNiEZNN=(kybEFQ_cZ$j>v@Gc?jK&MZmQEdVM^ zOiwM=Pssu+OwP|s)6dCIPRvQw&(712kI&4@EQycTE2#X%VUwGmQks)$SHudml@W-G PL5z>gjEsy$%s>_Z#!)nc literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/kn/__pycache__/formats.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/kn/__pycache__/formats.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1f613713c5fcfc5331f20bc7b5ddd3cc8f882604 GIT binary patch literal 325 zcmX@j%ge<81o5sX(pE4rFgylvV1Nk$##ix42y#LtNwC{DXWQLvC@0c>2OQ0>1u!As+EA zj*&2F!C(*npb(%4T*pd=&mafEFQ_cZ$j>v@Gc?jK&MZmQEdVM^OiwM=Pssu+OwP|s)6dCIPRvQw z&(70N%P-1JEGgD2sQkrYlbfGXnv-f*#0j(%~CAn}2jk&*EO7X!ao1NRL+(FX1h WYz!ij7Z?O?h)7>#5G-N`ssR9A@>(|l literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/kn/formats.py b/venv/lib/python3.12/site-packages/django/conf/locale/kn/formats.py new file mode 100644 index 0000000000..d212fd52d1 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/kn/formats.py @@ -0,0 +1,21 @@ +# This file is distributed under the same license as the Django package. +# +# The *_FORMAT strings use the Django date format syntax, +# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date +DATE_FORMAT = "j F Y" +TIME_FORMAT = "h:i A" +# DATETIME_FORMAT = +# YEAR_MONTH_FORMAT = +MONTH_DAY_FORMAT = "j F" +SHORT_DATE_FORMAT = "j M Y" +# SHORT_DATETIME_FORMAT = +# FIRST_DAY_OF_WEEK = + +# The *_INPUT_FORMATS strings use the Python strftime format syntax, +# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior +# DATE_INPUT_FORMATS = +# TIME_INPUT_FORMATS = +# DATETIME_INPUT_FORMATS = +# DECIMAL_SEPARATOR = +# THOUSAND_SEPARATOR = +# NUMBER_GROUPING = diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/ko/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/conf/locale/ko/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..02c61beb19c05a98faefd868c7216daddce49a1a GIT binary patch literal 29175 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 ZsxB7}rzi$?R=l+>5|7kbb#=A(e*u(g_*(z~ literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/ko/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/conf/locale/ko/LC_MESSAGES/django.po new file mode 100644 index 0000000000..ef36cf19d9 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/ko/LC_MESSAGES/django.po @@ -0,0 +1,1333 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# BJ Jang , 2014 +# JunGu Kang , 2017 +# Jiyoon, Ha , 2016 +# darjeeling , 2024 +# DONGHO JEONG , 2020 +# Park Hyunwoo , 2017 +# Geonho Kim / Leo Kim , 2019 +# hoseung2 , 2017 +# Ian Y. Choi , 2015 +# Jaehong Kim , 2011 +# Jannis Leidel , 2011 +# Jay Oh , 2020 +# Le Tartuffe , 2014,2016 +# Jonghwa Seo , 2019 +# Jubeen Lee , 2020 +# JuneHyeon Bae , 2014 +# JunGu Kang , 2015 +# JunGu Kang , 2019 +# Kagami Sascha Rosylight , 2017 +# Mariusz Felisiak , 2021 +# Seho Noh , 2018 +# Seoeun(Sun☀️) Hong, 2023 +# 최소영, 2024 +# Subin Choi , 2016 +# Taesik Yoon , 2015 +# 정훈 이, 2021 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-05-22 11:46-0300\n" +"PO-Revision-Date: 2024-08-07 06:49+0000\n" +"Last-Translator: darjeeling , 2024\n" +"Language-Team: Korean (http://app.transifex.com/django/django/language/ko/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ko\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +msgid "Afrikaans" +msgstr "아프리칸스어" + +msgid "Arabic" +msgstr "아랍어" + +msgid "Algerian Arabic" +msgstr "알제리 아랍어" + +msgid "Asturian" +msgstr "호주어" + +msgid "Azerbaijani" +msgstr "아제르바이잔어" + +msgid "Bulgarian" +msgstr "불가리어" + +msgid "Belarusian" +msgstr "벨라루스어" + +msgid "Bengali" +msgstr "방글라데시어" + +msgid "Breton" +msgstr "브르타뉴어" + +msgid "Bosnian" +msgstr "보스니아어" + +msgid "Catalan" +msgstr "카탈로니아어" + +msgid "Central Kurdish (Sorani)" +msgstr "중부 쿠르드어 (소라니어)" + +msgid "Czech" +msgstr "체코어" + +msgid "Welsh" +msgstr "웨일즈어" + +msgid "Danish" +msgstr "덴마크어" + +msgid "German" +msgstr "독일어" + +msgid "Lower Sorbian" +msgstr "저지 소르브어" + +msgid "Greek" +msgstr "그리스어" + +msgid "English" +msgstr "영어" + +msgid "Australian English" +msgstr "영어(호주)" + +msgid "British English" +msgstr "영어 (영국)" + +msgid "Esperanto" +msgstr "에스페란토어" + +msgid "Spanish" +msgstr "스페인어" + +msgid "Argentinian Spanish" +msgstr "아르헨티나 스페인어" + +msgid "Colombian Spanish" +msgstr "콜롬비아 스페인어" + +msgid "Mexican Spanish" +msgstr "멕시컨 스페인어" + +msgid "Nicaraguan Spanish" +msgstr "니카과라 스페인어" + +msgid "Venezuelan Spanish" +msgstr "베네수엘라 스페인어" + +msgid "Estonian" +msgstr "에스토니아어" + +msgid "Basque" +msgstr "바스크어" + +msgid "Persian" +msgstr "페르시아어" + +msgid "Finnish" +msgstr "핀란드어" + +msgid "French" +msgstr "프랑스어" + +msgid "Frisian" +msgstr "프리슬란트어" + +msgid "Irish" +msgstr "아일랜드어" + +msgid "Scottish Gaelic" +msgstr "스코틀랜드 게일어" + +msgid "Galician" +msgstr "갈리시아어" + +msgid "Hebrew" +msgstr "히브리어" + +msgid "Hindi" +msgstr "힌두어" + +msgid "Croatian" +msgstr "크로아티아어" + +msgid "Upper Sorbian" +msgstr "고지 소르브어" + +msgid "Hungarian" +msgstr "헝가리어" + +msgid "Armenian" +msgstr "아르메니아어" + +msgid "Interlingua" +msgstr "인테르링구아어" + +msgid "Indonesian" +msgstr "인도네시아어" + +msgid "Igbo" +msgstr "이그보어" + +msgid "Ido" +msgstr "이도어" + +msgid "Icelandic" +msgstr "아이슬란드어" + +msgid "Italian" +msgstr "이탈리아어" + +msgid "Japanese" +msgstr "일본어" + +msgid "Georgian" +msgstr "조지아어" + +msgid "Kabyle" +msgstr "커바일어" + +msgid "Kazakh" +msgstr "카자흐어" + +msgid "Khmer" +msgstr "크메르어" + +msgid "Kannada" +msgstr "칸나다어" + +msgid "Korean" +msgstr "한국어" + +msgid "Kyrgyz" +msgstr "키르키즈 공화국어" + +msgid "Luxembourgish" +msgstr "룩셈부르크" + +msgid "Lithuanian" +msgstr "리투아니아어" + +msgid "Latvian" +msgstr "라트비아어" + +msgid "Macedonian" +msgstr "마케도니아어" + +msgid "Malayalam" +msgstr "말라얄람어" + +msgid "Mongolian" +msgstr "몽고어" + +msgid "Marathi" +msgstr "마라티어" + +msgid "Malay" +msgstr "말레이시아어" + +msgid "Burmese" +msgstr "룩셈부르크어" + +msgid "Norwegian Bokmål" +msgstr "노르웨이어(보크몰)" + +msgid "Nepali" +msgstr "네팔어" + +msgid "Dutch" +msgstr "네덜란드어" + +msgid "Norwegian Nynorsk" +msgstr "노르웨이어 (뉘노르스크)" + +msgid "Ossetic" +msgstr "오세티아어" + +msgid "Punjabi" +msgstr "펀자브어" + +msgid "Polish" +msgstr "폴란드어" + +msgid "Portuguese" +msgstr "포르투갈어" + +msgid "Brazilian Portuguese" +msgstr "브라질 포르투갈어" + +msgid "Romanian" +msgstr "루마니아어" + +msgid "Russian" +msgstr "러시아어" + +msgid "Slovak" +msgstr "슬로바키아어" + +msgid "Slovenian" +msgstr "슬로베니아어" + +msgid "Albanian" +msgstr "알바니아어" + +msgid "Serbian" +msgstr "세르비아어" + +msgid "Serbian Latin" +msgstr "세르비아어" + +msgid "Swedish" +msgstr "스웨덴어" + +msgid "Swahili" +msgstr "스와힐리어" + +msgid "Tamil" +msgstr "타밀어" + +msgid "Telugu" +msgstr "텔루구어" + +msgid "Tajik" +msgstr "타지크어" + +msgid "Thai" +msgstr "태국어" + +msgid "Turkmen" +msgstr "튀르크멘어" + +msgid "Turkish" +msgstr "터키어" + +msgid "Tatar" +msgstr "타타르" + +msgid "Udmurt" +msgstr "이제프스크" + +msgid "Uyghur" +msgstr "위구르" + +msgid "Ukrainian" +msgstr "우크라이나어" + +msgid "Urdu" +msgstr "우르드어" + +msgid "Uzbek" +msgstr "우즈베크어" + +msgid "Vietnamese" +msgstr "베트남어" + +msgid "Simplified Chinese" +msgstr "중국어 간체" + +msgid "Traditional Chinese" +msgstr "중국어 번체" + +msgid "Messages" +msgstr "메시지" + +msgid "Site Maps" +msgstr "사이트 맵" + +msgid "Static Files" +msgstr "정적 파일" + +msgid "Syndication" +msgstr "신디케이션" + +#. Translators: String used to replace omitted page numbers in elided page +#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10]. +msgid "…" +msgstr "..." + +msgid "That page number is not an integer" +msgstr "페이지 번호가 정수가 아닙니다." + +msgid "That page number is less than 1" +msgstr "페이지 번호가 1보다 작습니다." + +msgid "That page contains no results" +msgstr "해당 페이지에 결과가 없습니다." + +msgid "Enter a valid value." +msgstr "올바른 값을 입력하세요." + +msgid "Enter a valid domain name." +msgstr "유효한 도메인 이름을 입력하세요." + +msgid "Enter a valid URL." +msgstr "올바른 URL을 입력하세요." + +msgid "Enter a valid integer." +msgstr "올바른 정수를 입력하세요." + +msgid "Enter a valid email address." +msgstr "올바른 이메일 주소를 입력하세요." + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "문자, 숫자, '_', '-'만 가능합니다." + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" +"유니코드 문자, 숫자, 언더스코어 또는 하이픈으로 구성된 올바른 내용을 입력하세" +"요." + +#, python-format +msgid "Enter a valid %(protocol)s address." +msgstr "유효한 %(protocol)s의 주소를 입력하세요." + +msgid "IPv4" +msgstr "IPv4" + +msgid "IPv6" +msgstr "IPv6" + +msgid "IPv4 or IPv6" +msgstr "IPv4 혹은 IPv6" + +msgid "Enter only digits separated by commas." +msgstr "콤마로 구분된 숫자만 입력하세요." + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "" +"%(limit_value)s 안의 값을 입력해 주세요. (입력하신 값은 %(show_value)s입니" +"다.)" + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "%(limit_value)s 이하의 값을 입력해 주세요." + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "%(limit_value)s 이상의 값을 입력해 주세요." + +#, python-format +msgid "Ensure this value is a multiple of step size %(limit_value)s." +msgstr "단계 크기 %(limit_value)s의 배수를 입력해 주세요." + +#, python-format +msgid "" +"Ensure this value is a multiple of step size %(limit_value)s, starting from " +"%(offset)s, e.g. %(offset)s, %(valid_value1)s, %(valid_value2)s, and so on." +msgstr "" +"예를 들어 %(offset)s, %(valid_value1)s, %(valid_value2)s 등, %(offset)s에서 " +"시작하는 %(limit_value)s의 배수를 입력해 주세요." + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"이 값이 최소 %(limit_value)d 개의 글자인지 확인하세요(입력값 %(show_value)d " +"자)." + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"이 값이 최대 %(limit_value)d 개의 글자인지 확인하세요(입력값 %(show_value)d " +"자)." + +msgid "Enter a number." +msgstr "숫자를 입력하세요." + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "전체 자릿수가 %(max)s 개를 넘지 않도록 해주세요." + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "전체 유효자리 개수가 %(max)s 개를 넘지 않도록 해주세요." + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "전체 유효자리 개수가 %(max)s 개를 넘지 않도록 해주세요." + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" +"파일 확장자 '%(extension)s'는 허용되지 않습니다. 허용된 확장자: " +"'%(allowed_extensions)s'." + +msgid "Null characters are not allowed." +msgstr "null 문자는 사용할 수 없습니다. " + +msgid "and" +msgstr "또한" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "%(model_name)s의 %(field_labels)s 은/는 이미 존재합니다." + +#, python-format +msgid "Constraint “%(name)s” is violated." +msgstr "%(name)s을(를) 위반하였습니다." + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "%(value)r 은/는 올바른 선택사항이 아닙니다." + +msgid "This field cannot be null." +msgstr "이 필드는 null 값을 사용할 수 없습니다. " + +msgid "This field cannot be blank." +msgstr "이 필드는 빈 칸으로 둘 수 없습니다." + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "%(model_name)s의 %(field_label)s은/는 이미 존재합니다." + +#. Translators: The 'lookup_type' is one of 'date', 'year' or +#. 'month'. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" +"%(field_label)s은/는 반드시 %(date_field_label)s %(lookup_type)s에 대해 유일" +"해야 합니다." + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "%(field_type)s 형식 필드" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "'%(value)s' 값은 반드시 True 또는 False 중 하나여야만 합니다." + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "'%(value)s'값은 반드시 True, False, None 중 하나여야만 합니다." + +msgid "Boolean (Either True or False)" +msgstr "boolean(True 또는 False)" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "문자열(%(max_length)s 글자까지)" + +msgid "String (unlimited)" +msgstr "문자열 (무제한의)" + +msgid "Comma-separated integers" +msgstr "정수(콤마로 구분)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "'%(value)s' 값은 날짜 형식이 아닙니다. YYYY-MM-DD 형식이어야 합니다." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" +"'%(value)s' 값은 올바른 형식(YYYY-MM-DD)이지만 유효하지 않은 날짜입니다." + +msgid "Date (without time)" +msgstr "날짜(시간 제외)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" +"'%(value)s' 값은 올바르지 않은 형식입니다. YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ] 형식이어야 합니다." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" +"'%(value)s' 값은 올바른 형식이지만 (YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ]) 유효" +"하지 않은 날짜/시간입니다." + +msgid "Date (with time)" +msgstr "날짜(시간 포함)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "'%(value)s' 값은 10진수를 입력하여야 합니다." + +msgid "Decimal number" +msgstr "10진수" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" +"'%(value)s' 값은 올바르지 않은 형식입니다. [DD] [HH:[MM:]]ss[.uuuuuu] 형식이" +"어야 합니다." + +msgid "Duration" +msgstr "지속시간" + +msgid "Email address" +msgstr "이메일 주소" + +msgid "File path" +msgstr "파일 경로" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "\"%(value)s\" 값은 실수를 입력하여야 합니다." + +msgid "Floating point number" +msgstr "부동소수점 숫자" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "\"%(value)s\" 값은 정수를 입력하여야 합니다." + +msgid "Integer" +msgstr "정수" + +msgid "Big (8 byte) integer" +msgstr "큰 정수 (8 byte)" + +msgid "Small integer" +msgstr "작은 정수" + +msgid "IPv4 address" +msgstr "IPv4 주소" + +msgid "IP address" +msgstr "IP 주소" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "\"%(value)s\" 값은 반드시 None, True 또는 False이어야 합니다." + +msgid "Boolean (Either True, False or None)" +msgstr "boolean (True, False 또는 None)" + +msgid "Positive big integer" +msgstr "큰 양의 정수" + +msgid "Positive integer" +msgstr "양의 정수" + +msgid "Positive small integer" +msgstr "작은 양의 정수" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "슬러그(%(max_length)s 까지)" + +msgid "Text" +msgstr "텍스트" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" +"\"%(value)s\" 값의 형식이 올바르지 않습니다. HH:MM[:ss[.uuuuuu]] 형식이어야 " +"합니다." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" +"\"%(value)s\" 값이 올바른 형식(HH:MM[:ss[.uuuuuu]])이나, 유효하지 않은 시간 " +"값입니다." + +msgid "Time" +msgstr "시각" + +msgid "URL" +msgstr "URL" + +msgid "Raw binary data" +msgstr "Raw binary data" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "\"%(value)s\"은 유효하지 않은 UUID입니다." + +msgid "Universally unique identifier" +msgstr "범용 고유 식별 수단(UUID)" + +msgid "File" +msgstr "파일" + +msgid "Image" +msgstr "이미지" + +msgid "A JSON object" +msgstr "JSON 객체" + +msgid "Value must be valid JSON." +msgstr "올바른 JSON 형식이여야 합니다." + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "%(field)s %(value)r 를 가지는 %(model)s 인스턴스가 존재하지 않습니다." + +msgid "Foreign Key (type determined by related field)" +msgstr "외래 키 (연관 필드에 의해 형식 결정)" + +msgid "One-to-one relationship" +msgstr "일대일 관계" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "%(from)s-%(to)s 관계" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "%(from)s-%(to)s 관계들" + +msgid "Many-to-many relationship" +msgstr "다대다 관계" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr ":?.!" + +msgid "This field is required." +msgstr "필수 항목입니다." + +msgid "Enter a whole number." +msgstr "정수를 입력하세요." + +msgid "Enter a valid date." +msgstr "올바른 날짜를 입력하세요." + +msgid "Enter a valid time." +msgstr "올바른 시각을 입력하세요." + +msgid "Enter a valid date/time." +msgstr "올바른 날짜/시각을 입력하세요." + +msgid "Enter a valid duration." +msgstr "올바른 기간을 입력하세요." + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "날짜는 {min_days}와 {max_days} 사이여야 합니다." + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "등록된 파일이 없습니다. 인코딩 형식을 확인하세요." + +msgid "No file was submitted." +msgstr "파일이 전송되지 않았습니다." + +msgid "The submitted file is empty." +msgstr "입력하신 파일은 빈 파일입니다." + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "파일이름의 길이가 최대 %(max)d 자인지 확인하세요(%(length)d 자)." + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "" +"파일 업로드 또는 삭제 체크박스를 선택하세요. 동시에 둘 다 할 수는 없습니다." + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" +"올바른 이미지를 업로드하세요. 업로드하신 파일은 이미지 파일이 아니거나 파일" +"이 깨져 있습니다." + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "올바르게 선택해 주세요. %(value)s 이/가 선택가능항목에 없습니다." + +msgid "Enter a list of values." +msgstr "리스트를 입력하세요." + +msgid "Enter a complete value." +msgstr "완전한 값을 입력하세요." + +msgid "Enter a valid UUID." +msgstr "올바른 UUID를 입력하세요." + +msgid "Enter a valid JSON." +msgstr "올바른 JSON을 입력하세요." + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr ":" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "(%(name)s hidden 필드) %(error)s" + +#, python-format +msgid "" +"ManagementForm data is missing or has been tampered with. Missing fields: " +"%(field_names)s. You may need to file a bug report if the issue persists." +msgstr "" +"ManagementForm 데이터가 없거나 변경되었습니다. 현재 없는 필드: " +"%(field_names)s. 이런 이슈가 지속된다면 버그 리포트를 제출해주시기 바랍니다." + +#, python-format +msgid "Please submit at most %(num)d form." +msgid_plural "Please submit at most %(num)d forms." +msgstr[0] "최대 %(num)d개의 양식을 제출하세요." + +#, python-format +msgid "Please submit at least %(num)d form." +msgid_plural "Please submit at least %(num)d forms." +msgstr[0] "최소 %(num)d개의 양식을 제출하세요." + +msgid "Order" +msgstr "순서:" + +msgid "Delete" +msgstr "삭제" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "%(field)s의 중복된 데이터를 고쳐주세요." + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "%(field)s의 중복된 데이터를 고쳐주세요. 유일한 값이어야 합니다." + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"%(field_name)s의 값은 %(date_field)s의 %(lookup)s에 대해 유일해야 합니다. 중" +"복된 데이터를 고쳐주세요." + +msgid "Please correct the duplicate values below." +msgstr "아래의 중복된 값들을 고쳐주세요." + +msgid "The inline value did not match the parent instance." +msgstr "Inline 값이 부모 인스턴스와 일치하지 않습니다." + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "올바르게 선택해 주세요. 선택하신 것이 선택가능항목에 없습니다." + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "\"%(pk)s\" 은/는 유효한 값이 아닙니다." + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" +"%(datetime)s 은/는 %(current_timezone)s 시간대에서 해석될 수 없습니다; 정보" +"가 모호하거나 존재하지 않을 수 있습니다." + +msgid "Clear" +msgstr "취소" + +msgid "Currently" +msgstr "현재" + +msgid "Change" +msgstr "변경" + +msgid "Unknown" +msgstr "알 수 없습니다." + +msgid "Yes" +msgstr "예" + +msgid "No" +msgstr "아니오" + +#. Translators: Please do not add spaces around commas. +msgid "yes,no,maybe" +msgstr "예,아니오,아마도" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)d 바이트" + +#, python-format +msgid "%s KB" +msgstr "%s KB" + +#, python-format +msgid "%s MB" +msgstr "%s MB" + +#, python-format +msgid "%s GB" +msgstr "%s GB" + +#, python-format +msgid "%s TB" +msgstr "%s TB" + +#, python-format +msgid "%s PB" +msgstr "%s PB" + +msgid "p.m." +msgstr "오후" + +msgid "a.m." +msgstr "오전" + +msgid "PM" +msgstr "오후" + +msgid "AM" +msgstr "오전" + +msgid "midnight" +msgstr "자정" + +msgid "noon" +msgstr "정오" + +msgid "Monday" +msgstr "월요일" + +msgid "Tuesday" +msgstr "화요일" + +msgid "Wednesday" +msgstr "수요일" + +msgid "Thursday" +msgstr "목요일" + +msgid "Friday" +msgstr "금요일" + +msgid "Saturday" +msgstr "토요일" + +msgid "Sunday" +msgstr "일요일" + +msgid "Mon" +msgstr "월요일" + +msgid "Tue" +msgstr "화요일" + +msgid "Wed" +msgstr "수요일" + +msgid "Thu" +msgstr "목요일" + +msgid "Fri" +msgstr "금요일" + +msgid "Sat" +msgstr "토요일" + +msgid "Sun" +msgstr "일요일" + +msgid "January" +msgstr "1월" + +msgid "February" +msgstr "2월" + +msgid "March" +msgstr "3월" + +msgid "April" +msgstr "4월" + +msgid "May" +msgstr "5월" + +msgid "June" +msgstr "6월" + +msgid "July" +msgstr "7월" + +msgid "August" +msgstr "8월" + +msgid "September" +msgstr "9월" + +msgid "October" +msgstr "10월" + +msgid "November" +msgstr "11월" + +msgid "December" +msgstr "12월" + +msgid "jan" +msgstr "1월" + +msgid "feb" +msgstr "2월" + +msgid "mar" +msgstr "3월" + +msgid "apr" +msgstr "4월" + +msgid "may" +msgstr "5월" + +msgid "jun" +msgstr "6월" + +msgid "jul" +msgstr "7월" + +msgid "aug" +msgstr "8월" + +msgid "sep" +msgstr "9월" + +msgid "oct" +msgstr "10월" + +msgid "nov" +msgstr "11월" + +msgid "dec" +msgstr "12월" + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "1월" + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "2월" + +msgctxt "abbrev. month" +msgid "March" +msgstr "3월" + +msgctxt "abbrev. month" +msgid "April" +msgstr "4월" + +msgctxt "abbrev. month" +msgid "May" +msgstr "5월" + +msgctxt "abbrev. month" +msgid "June" +msgstr "6월" + +msgctxt "abbrev. month" +msgid "July" +msgstr "7월" + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "8월" + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "9월" + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "10월" + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "11월" + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "12월" + +msgctxt "alt. month" +msgid "January" +msgstr "1월" + +msgctxt "alt. month" +msgid "February" +msgstr "2월" + +msgctxt "alt. month" +msgid "March" +msgstr "3월" + +msgctxt "alt. month" +msgid "April" +msgstr "4월" + +msgctxt "alt. month" +msgid "May" +msgstr "5월" + +msgctxt "alt. month" +msgid "June" +msgstr "6월" + +msgctxt "alt. month" +msgid "July" +msgstr "7월" + +msgctxt "alt. month" +msgid "August" +msgstr "8월" + +msgctxt "alt. month" +msgid "September" +msgstr "9월" + +msgctxt "alt. month" +msgid "October" +msgstr "10월" + +msgctxt "alt. month" +msgid "November" +msgstr "11월" + +msgctxt "alt. month" +msgid "December" +msgstr "12월" + +msgid "This is not a valid IPv6 address." +msgstr "올바른 IPv6 주소가 아닙니다." + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "%(truncated_text)s…" + +msgid "or" +msgstr "또는" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr ", " + +#, python-format +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "%(num)d년" + +#, python-format +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "%(num)d개월" + +#, python-format +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "%(num)d주" + +#, python-format +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "%(num)d일" + +#, python-format +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "%(num)d시간" + +#, python-format +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "%(num)d분" + +msgid "Forbidden" +msgstr "Forbidden" + +msgid "CSRF verification failed. Request aborted." +msgstr "CSRF 검증에 실패했습니다. 요청을 중단하였습니다." + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" +"이 메세지가 보이는 이유는 이 HTTPS 사이트가 당신의 웹 브라우저로부터 \"참조 " +"헤더\"를 요구하지만, 아무것도 받기 못하였기 때문입니다. 이 헤더는 보안상의 이" +"유로 필요하며, 당신의 웹 브라우저가 제3자에 의해 해킹당하고 있지 않다는 것을 " +"보장하기 위함입니다." + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" +"만약 브라우저 설정에서 '참조' 헤더를 비활성화 시켰을 경우, 적어도 이 사이트" +"나 HTTPS 연결, '동일-출처' 요청에 대해서는 이를 다시 활성화 시키십시오. " + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" +"태그나 'Referrer-Policy: no-" +"referrer' 헤더를 포함하고 있다면, 제거해주시기 바랍니다. CSRF 방지를 위한 리" +"퍼러 검사를 위해 'Referer' 헤더가 필요합니다. 개인 정보에 대해 우려가 있는 경" +"우, 서드 파티 사이트에 대한 링크에 와 같은 대안을 사" +"용할 수 있습니다." + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" +"이 메세지가 보이는 이유는 사이트가 폼을 제출할 때 CSRF 쿠키를 필요로 하기 때" +"문입니다. 이 쿠키는 보안상의 이유로 필요하며, 제3자에 의해 당신의 브라우저가 " +"해킹당하고 있지 않다는 것을 보장합니다." + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" +"만약 브라우저 설정에서 쿠키를 비활성화 시켰을 경우, 적어도 이 사이트나 '동일-" +"출처' 요청에 대해서는 활성화 시키십시오." + +msgid "More information is available with DEBUG=True." +msgstr "DEBUG=True 로 더 많은 정보를 확인할 수 있습니다." + +msgid "No year specified" +msgstr "년도가 없습니다." + +msgid "Date out of range" +msgstr "유효 범위 밖의 날짜" + +msgid "No month specified" +msgstr "월이 없습니다." + +msgid "No day specified" +msgstr "날짜가 없습니다." + +msgid "No week specified" +msgstr "주가 없습니다." + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr " %(verbose_name_plural)s를 사용할 수 없습니다." + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" +"Future 모듈 %(verbose_name_plural)s을 사용할 수 없습니다. %(class_name)s." +"allow_future가 False 입니다." + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "날짜 문자열 '%(datestr)s'이 표준 형식 '%(format)s'과 다릅니다." + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "쿼리 결과에 %(verbose_name)s가 없습니다." + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "'마지막' 페이지가 아니거나, 정수형으로 변환할 수 없습니다." + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "Invalid page (%(page_number)s): %(message)s" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "빈 리스트이고 '%(class_name)s.allow_empty'가 False입니다." + +msgid "Directory indexes are not allowed here." +msgstr "디렉토리 인덱스는 이곳에 사용할 수 없습니다." + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "\"%(path)s\" 이/가 존재하지 않습니다." + +#, python-format +msgid "Index of %(directory)s" +msgstr "Index of %(directory)s" + +msgid "The install worked successfully! Congratulations!" +msgstr "성공적으로 설치되었습니다! 축하합니다!" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" +"Django %(version)s릴리스 노트 보기" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not " +"configured any URLs." +msgstr "" +"이 페이지는 어떤 URL도 지정되지 않았고, settings 파일에 DEBUG=True가 설정되어 있을 때 표시됩니" +"다." + +msgid "Django Documentation" +msgstr "Django 문서" + +msgid "Topics, references, & how-to’s" +msgstr "주제, 레퍼런스, & 입문참조하다" + +msgid "Tutorial: A Polling App" +msgstr "튜토리얼: 폴링 애플리케이션" + +msgid "Get started with Django" +msgstr "Django와 함께 시작하기" + +msgid "Django Community" +msgstr "Django 커뮤니티" + +msgid "Connect, get help, or contribute" +msgstr "연결하고, 도움을 받거나 기여하기" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/ko/__init__.py b/venv/lib/python3.12/site-packages/django/conf/locale/ko/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/ko/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/ko/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2232147350f3438b48380a0fab17718b1d2b1a88 GIT binary patch literal 198 zcmX@j%ge<81o5sX(m?cM5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!O4ZNE&rQ|OP0Yy6 zFHO;RNiEZNN=(kybEFQ_cZ$j>v@Gc?jK&MZmQEdVM^ zOiwM=Pssu+OwP|s)6dCIPRvQw&(7D6kI&4@EQycTE2#X%VUwGmQks)$SHudml@W-G PL5z>gjEsy$%s>_Z#(*@1 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/ko/__pycache__/formats.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/ko/__pycache__/formats.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5d3d82220c737f8e2ecb54895173cc0c19ccd826 GIT binary patch literal 1064 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 Bc&PvY literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/ky/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/conf/locale/ky/LC_MESSAGES/django.po new file mode 100644 index 0000000000..391196f711 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/ky/LC_MESSAGES/django.po @@ -0,0 +1,1279 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Mariusz Felisiak , 2021 +# Soyuzbek Orozbek uulu , 2020-2021 +# Soyuzbek Orozbek uulu , 2020 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-09-21 10:22+0200\n" +"PO-Revision-Date: 2021-11-27 14:11+0000\n" +"Last-Translator: Soyuzbek Orozbek uulu \n" +"Language-Team: Kyrgyz (http://www.transifex.com/django/django/language/ky/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ky\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +msgid "Afrikaans" +msgstr "Африканча" + +msgid "Arabic" +msgstr "Арабча" + +msgid "Algerian Arabic" +msgstr "Алжир арабчасы" + +msgid "Asturian" +msgstr "Австрийче" + +msgid "Azerbaijani" +msgstr "Азерче" + +msgid "Bulgarian" +msgstr "Болгарча" + +msgid "Belarusian" +msgstr "Белорусча" + +msgid "Bengali" +msgstr "Бенгалча" + +msgid "Breton" +msgstr "Бретончо" + +msgid "Bosnian" +msgstr "Босния" + +msgid "Catalan" +msgstr "Каталан" + +msgid "Czech" +msgstr "Чехче" + +msgid "Welsh" +msgstr "Валлий" + +msgid "Danish" +msgstr "Данчийче" + +msgid "German" +msgstr "Немисче" + +msgid "Lower Sorbian" +msgstr "Сорб" + +msgid "Greek" +msgstr "Грекче" + +msgid "English" +msgstr "Англисче" + +msgid "Australian English" +msgstr "Авс. Англисчеси" + +msgid "British English" +msgstr "Бр. Англ." + +msgid "Esperanto" +msgstr "Есперанто" + +msgid "Spanish" +msgstr "Испанча" + +msgid "Argentinian Spanish" +msgstr "Арг. исп" + +msgid "Colombian Spanish" +msgstr "Колумб Испанчасы" + +msgid "Mexican Spanish" +msgstr "Мекс. исп" + +msgid "Nicaraguan Spanish" +msgstr "Никарагуа испанчасы" + +msgid "Venezuelan Spanish" +msgstr "Венесуела Испанчасы" + +msgid "Estonian" +msgstr "Эстон" + +msgid "Basque" +msgstr "Баск" + +msgid "Persian" +msgstr "Персче" + +msgid "Finnish" +msgstr "Финче" + +msgid "French" +msgstr "Французча" + +msgid "Frisian" +msgstr "Фризче" + +msgid "Irish" +msgstr "Ирланча" + +msgid "Scottish Gaelic" +msgstr "Шотланча" + +msgid "Galician" +msgstr "Галицианча" + +msgid "Hebrew" +msgstr "Жөөтчө" + +msgid "Hindi" +msgstr "Хиндче" + +msgid "Croatian" +msgstr "Хорватча" + +msgid "Upper Sorbian" +msgstr "Жогорку Сорбчо" + +msgid "Hungarian" +msgstr "Венгрче" + +msgid "Armenian" +msgstr "Арменче" + +msgid "Interlingua" +msgstr "Эл аралык" + +msgid "Indonesian" +msgstr "Индонезче" + +msgid "Igbo" +msgstr "Игбо" + +msgid "Ido" +msgstr "идо" + +msgid "Icelandic" +msgstr "Исландча" + +msgid "Italian" +msgstr "Итальянча" + +msgid "Japanese" +msgstr "Жапончо" + +msgid "Georgian" +msgstr "Грузинче" + +msgid "Kabyle" +msgstr "Кабилче" + +msgid "Kazakh" +msgstr "Казакча" + +msgid "Khmer" +msgstr "Кхмер" + +msgid "Kannada" +msgstr "Канадча" + +msgid "Korean" +msgstr "Корейче" + +msgid "Kyrgyz" +msgstr "Кыргызча" + +msgid "Luxembourgish" +msgstr "Люкцембургча" + +msgid "Lithuanian" +msgstr "Литвача" + +msgid "Latvian" +msgstr "Латвияча" + +msgid "Macedonian" +msgstr "Македончо" + +msgid "Malayalam" +msgstr "Малаяламча" + +msgid "Mongolian" +msgstr "Монголчо" + +msgid "Marathi" +msgstr "Марати" + +msgid "Malay" +msgstr "Малай" + +msgid "Burmese" +msgstr "Бурмача" + +msgid "Norwegian Bokmål" +msgstr "Норвег Бокмолчо" + +msgid "Nepali" +msgstr "Непалча" + +msgid "Dutch" +msgstr "Голландча" + +msgid "Norwegian Nynorsk" +msgstr "Норвегиялык нюнор" + +msgid "Ossetic" +msgstr "Оссетче" + +msgid "Punjabi" +msgstr "Пенжабча" + +msgid "Polish" +msgstr "Полякча" + +msgid "Portuguese" +msgstr "Португалча" + +msgid "Brazilian Portuguese" +msgstr "Бразилиялык португалчасы" + +msgid "Romanian" +msgstr "Румынча" + +msgid "Russian" +msgstr "Орусча" + +msgid "Slovak" +msgstr "Словакча" + +msgid "Slovenian" +msgstr "Словенияча" + +msgid "Albanian" +msgstr "Албанча" + +msgid "Serbian" +msgstr "Сербче" + +msgid "Serbian Latin" +msgstr "Серб латынчасы" + +msgid "Swedish" +msgstr "Шведче" + +msgid "Swahili" +msgstr "Свахилче" + +msgid "Tamil" +msgstr "Тамиль" + +msgid "Telugu" +msgstr "Телугу" + +msgid "Tajik" +msgstr "Тажикче" + +msgid "Thai" +msgstr "Тайча" + +msgid "Turkmen" +msgstr "Түркмөнчө" + +msgid "Turkish" +msgstr "Түркчө" + +msgid "Tatar" +msgstr "Татарча" + +msgid "Udmurt" +msgstr "Удмурча" + +msgid "Ukrainian" +msgstr "Украинче" + +msgid "Urdu" +msgstr "Урду" + +msgid "Uzbek" +msgstr "Өзбекче" + +msgid "Vietnamese" +msgstr "Вьетнамча" + +msgid "Simplified Chinese" +msgstr "Жеңилдетилген кытайча" + +msgid "Traditional Chinese" +msgstr "салттык кытайча" + +msgid "Messages" +msgstr "Билдирүүлөр" + +msgid "Site Maps" +msgstr "сайт картасы" + +msgid "Static Files" +msgstr "Туруктуу файлдар" + +msgid "Syndication" +msgstr "Синдикат" + +#. Translators: String used to replace omitted page numbers in elided page +#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10]. +msgid "…" +msgstr "..." + +msgid "That page number is not an integer" +msgstr "Бул барактын номуру сан эмес" + +msgid "That page number is less than 1" +msgstr "Бул барактын номуру 1 ден кичине" + +msgid "That page contains no results" +msgstr "Бул баракта жыйынтык жок" + +msgid "Enter a valid value." +msgstr "Туура маани киргиз" + +msgid "Enter a valid URL." +msgstr "Туура URL киргиз" + +msgid "Enter a valid integer." +msgstr "Туура натурал сан тер." + +msgid "Enter a valid email address." +msgstr "Туура эдарек тер." + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" +"ариптер, цифралар, дефис же астыңкы сызык камтыган туура слаг киргизиңиз." + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" +"Юникод символдор, цифралар, астыңкы сызыктар же дефис камтыган туурга слаг " +"киргизиңиз." + +msgid "Enter a valid IPv4 address." +msgstr "Туура IPv4 тер." + +msgid "Enter a valid IPv6 address." +msgstr "Туура IPv6 тер." + +msgid "Enter a valid IPv4 or IPv6 address." +msgstr "Туура IPv4 же IPv6 тер." + +msgid "Enter only digits separated by commas." +msgstr "Жалаң үтүр менен бөлүнгөн сан тер." + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "Бул маани %(limit_value)s ашпоосун текшериңиз (азыр %(show_value)s)" + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "%(limit_value)s карата кичине же барабар маани болгонун текшериңиз" + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "%(limit_value)s карата чоң же барабар маани болгонун текшериңиз" + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Бул маани жок дегенде %(limit_value)dсимвол камтыганын текшериңиз (азыркысы " +"%(show_value)d)." + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Бул маани эң көп %(limit_value)dсимвол камтыганын текшериңиз (азыркысы " +"%(show_value)d)." + +msgid "Enter a number." +msgstr "Сан киргизиңиз." + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "Жалпысынан %(max)sорундан ашпоосун текшериңиз." + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "Жалпысынан ондук сандын%(max)s ашпоосун текшериңиз." + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "Жалпысынан үтүргө чейин%(max)s ашпоосун текшериңиз." + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" +"%(extension)sфайл кеңейтүүсү кабыл алынбайт. Кабыл алынгандар: " +"%(allowed_extensions)s." + +msgid "Null characters are not allowed." +msgstr "Боштук кабыл алынбайт" + +msgid "and" +msgstr "жана" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "%(model_name)s бул %(field_labels)s менен мурдатан эле бар" + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "%(value)r мааниси туура эмес тандоо." + +msgid "This field cannot be null." +msgstr "Бул аймак жок маани албашы керек" + +msgid "This field cannot be blank." +msgstr "Бул аймак бош калбашы керек" + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "%(model_name)s бул %(field_label)s менен мурдатан эле бар" + +#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'. +#. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" +"%(field_label)s %(date_field_label)s %(lookup_type)s үчүн уникал болуусу " +"керек." + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "аймактын түрү: %(field_type)s" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "“%(value)s” мааниси же True же False болуусу керек." + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "“%(value)s” мааниси же True же False же None болуусу керек." + +msgid "Boolean (Either True or False)" +msgstr "Булен (Туура же Ката)" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "Сап (%(max_length)s чейин)" + +msgid "Comma-separated integers" +msgstr "үтүр менен бөлүнгөн сан" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" +"“%(value)s” мааниси туура эмес форматта. Ал ЖЖЖЖ-АА-КК форматта болуусу " +"керек." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "%(value)sмааниси туура (ЖЖЖЖ-АА-КК) форматта бирок ал күн туура эмес." + +msgid "Date (without time)" +msgstr "Күн (убакытсыз)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" +"“%(value)s” мааниси туура эмес форматта. Ал ЖЖЖЖ-АА-КК СС:ММ[сс[.дддддд]]" +"[УЗ] форматта болуусу керек." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" +"“%(value)s” мааниси туура форматта (ЖЖЖЖ-АА-КК СС:ММ[сс[.дддддд]][УЗ] ) " +"бирок ал күн/убакыт туура эмес." + +msgid "Date (with time)" +msgstr "Күн(убакыттуу)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "“%(value)s” мааниси ондук сан болушу керек." + +msgid "Decimal number" +msgstr "ондук сан" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" +"“%(value)s” мааниси туура эмес форматта. Ал [КК][[CC:]MM:]cc[.дддддд] " +"форматта болуусу керек." + +msgid "Duration" +msgstr "Мөөнөт" + +msgid "Email address" +msgstr "электрондук дарек" + +msgid "File path" +msgstr "файл жайгашуусу" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "“%(value)s” мааниси калкыган чекиттүү болуусу керек." + +msgid "Floating point number" +msgstr "калкыган чекит саны" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "“%(value)s” мааниси натуралдык сан болуусу керек." + +msgid "Integer" +msgstr "Натурал сан" + +msgid "Big (8 byte) integer" +msgstr "Чоң ( 8 байт) натурал сан" + +msgid "Small integer" +msgstr "кичине натурал сан" + +msgid "IPv4 address" +msgstr "IPv4 дареги" + +msgid "IP address" +msgstr "IP дареги" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "“%(value)s” мааниси же None же True же False болуусу керек." + +msgid "Boolean (Either True, False or None)" +msgstr "Булен(Туура же Жалган же Куру)" + +msgid "Positive big integer" +msgstr "Оң чоң натуралдык сан." + +msgid "Positive integer" +msgstr "оң сан" + +msgid "Positive small integer" +msgstr "кичине оң сан" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "слаг ( %(max_length)s чейин)" + +msgid "Text" +msgstr "сап" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" +"“%(value)s” мааниси туура эмес форматта. Ал СС:ММ[:сс[.ддддддд]] форматта " +"болуусу керек." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" +"“%(value)s” мааниси туура форматта (СС:ММ[:cc[.дддддд]]) бирок ал убакыт " +"туура эмес." + +msgid "Time" +msgstr "Убакыт" + +msgid "URL" +msgstr "URL" + +msgid "Raw binary data" +msgstr "жалаң экилик берилиш" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "“%(value)s” туура эмес UUID." + +msgid "Universally unique identifier" +msgstr "универсал уникал көрсөтүүчү" + +msgid "File" +msgstr "Файл" + +msgid "Image" +msgstr "Сүрөт" + +msgid "A JSON object" +msgstr "JSON обектиси" + +msgid "Value must be valid JSON." +msgstr "Маани туура JSON болушу керек." + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "%(model)s нерсеси %(field)s аймагы %(value)r маани менен табылбады." + +msgid "Foreign Key (type determined by related field)" +msgstr "Бөтөн Ачкыч (байланышкан аймак менен аныкталат)" + +msgid "One-to-one relationship" +msgstr "Бирге-бир байланышы" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "%(from)s-%(to)s байланышы" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "%(from)s-%(to)s байланыштары" + +msgid "Many-to-many relationship" +msgstr "көпкө-көп байланышы" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr ":?.!" + +msgid "This field is required." +msgstr "Бул талаа керектүү." + +msgid "Enter a whole number." +msgstr "Толук сан киргиз." + +msgid "Enter a valid date." +msgstr "туура күн киргиз." + +msgid "Enter a valid time." +msgstr "Туура убакыт киргиз." + +msgid "Enter a valid date/time." +msgstr "Туура күн/убакыт киргиз." + +msgid "Enter a valid duration." +msgstr "Туура мөөнөт киргиз." + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "Күндөрдүн саны {min_days} жана {max_days} арасында болуусу керек." + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "Файл жиберилген жок. Формдун бекитүү түрүн текшер." + +msgid "No file was submitted." +msgstr "Файл жиберилген жок." + +msgid "The submitted file is empty." +msgstr "Жиберилген файл бош." + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" +"Бул файлдын аты эң көп %(max)dсимвол ала алат. (азыркысы %(length)d)." + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "Сураныч же файл жибериңиз же тандоону бош калтырыңыз. Экөөн тең эмес." + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "Туура сүрөт жөнөтүңүз. Сиз жүктөгөн же сүрөт эмес же бузулган сүрөт." + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "Туура тандоону танда. %(value)s мүмкүн болгон тандоо эмес." + +msgid "Enter a list of values." +msgstr "Туура маанилер тизмесин киргиз." + +msgid "Enter a complete value." +msgstr "Толук маани киргиз." + +msgid "Enter a valid UUID." +msgstr "Туура UUID киргиз." + +msgid "Enter a valid JSON." +msgstr "Туура JSON киргиз." + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr ":" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "(жашырылган аймак %(name)s) %(error)s" + +#, python-format +msgid "" +"ManagementForm data is missing or has been tampered with. Missing fields: " +"%(field_names)s. You may need to file a bug report if the issue persists." +msgstr "" +"ManagementForm берилиши жетишпей атат же жасалма болуп атат. Жетишпеген " +"талаалар: %(field_names)s. Эгер көйгөй чечилбей атса сиз баг билдирүү " +"жөнөтсөңүз болот." + +#, python-format +msgid "Please submit at most %d form." +msgid_plural "Please submit at most %d forms." +msgstr[0] "Сураныч, эң көп %d форм жөнөтүңүз." + +#, python-format +msgid "Please submit at least %d form." +msgid_plural "Please submit at least %d forms." +msgstr[0] "Сураныч, эң аз %dформ жөнөтүңүз." + +msgid "Order" +msgstr "Тартип" + +msgid "Delete" +msgstr "Өчүрүү" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "%(field)s үчүн кайталанган маанилерди оңдоңуз." + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "" +"%(field)s үчүн кайталанган маанилерди оңдоңуз алар уникал болуусу керек." + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"%(field_name)s %(date_field)s да %(lookup)s үчүн уникал болусу керек. " +"Берилиштерди оңдоңуз." + +msgid "Please correct the duplicate values below." +msgstr "Төмөндө кайталанган маанилерди оңдоңуз." + +msgid "The inline value did not match the parent instance." +msgstr "Катардагы маани энелик нерсеге туура келбей жатат." + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "Туура тандоо кылыңыз. Ал тандоо мүмкүнчүлүктөн сырткары." + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr " “%(pk)s”туура эмес маани." + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" +"%(datetime)sкүнү %(current_timezone)sубактысы боюнча чечмелене албай атат. " +"Ал экианжы же жок болушу мүмкүн." + +msgid "Clear" +msgstr "Тазалоо" + +msgid "Currently" +msgstr "Азыркы" + +msgid "Change" +msgstr "өзгөртүү" + +msgid "Unknown" +msgstr "Белгисиз" + +msgid "Yes" +msgstr "Ооба" + +msgid "No" +msgstr "Жок" + +#. Translators: Please do not add spaces around commas. +msgid "yes,no,maybe" +msgstr "ооба, жок, балким" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)dбит" + +#, python-format +msgid "%s KB" +msgstr "%s КБ" + +#, python-format +msgid "%s MB" +msgstr "%s мегабайт" + +#, python-format +msgid "%s GB" +msgstr "%s гигабайт" + +#, python-format +msgid "%s TB" +msgstr "%s терабайт" + +#, python-format +msgid "%s PB" +msgstr "%s пикабайт" + +msgid "p.m." +msgstr "түштөн кийин" + +msgid "a.m." +msgstr "түшкө чейин" + +msgid "PM" +msgstr "Түштөн кийин" + +msgid "AM" +msgstr "Түшкө чейин" + +msgid "midnight" +msgstr "Түнүчү" + +msgid "noon" +msgstr "ай" + +msgid "Monday" +msgstr "Дүйшөмбү" + +msgid "Tuesday" +msgstr "Шейшемби" + +msgid "Wednesday" +msgstr "Шаршемби" + +msgid "Thursday" +msgstr "Бейшемби" + +msgid "Friday" +msgstr "Жума" + +msgid "Saturday" +msgstr "Ишемби" + +msgid "Sunday" +msgstr "Жекшемби" + +msgid "Mon" +msgstr "Дүйш" + +msgid "Tue" +msgstr "Шей" + +msgid "Wed" +msgstr "Шар" + +msgid "Thu" +msgstr "Бей" + +msgid "Fri" +msgstr "Жума" + +msgid "Sat" +msgstr "Ише" + +msgid "Sun" +msgstr "Жек" + +msgid "January" +msgstr "Январь" + +msgid "February" +msgstr "Февраль" + +msgid "March" +msgstr "Март" + +msgid "April" +msgstr "Апрель" + +msgid "May" +msgstr "Май" + +msgid "June" +msgstr "Июнь" + +msgid "July" +msgstr "Июль" + +msgid "August" +msgstr "Август" + +msgid "September" +msgstr "Сентябрь" + +msgid "October" +msgstr "Октябрь" + +msgid "November" +msgstr "Ноябрь" + +msgid "December" +msgstr "Декабрь" + +msgid "jan" +msgstr "янв" + +msgid "feb" +msgstr "фев" + +msgid "mar" +msgstr "мар" + +msgid "apr" +msgstr "апр" + +msgid "may" +msgstr "май" + +msgid "jun" +msgstr "июн" + +msgid "jul" +msgstr "июл" + +msgid "aug" +msgstr "авг" + +msgid "sep" +msgstr "сен" + +msgid "oct" +msgstr "окт" + +msgid "nov" +msgstr "ноя" + +msgid "dec" +msgstr "дек" + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "Янв." + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "Фев." + +msgctxt "abbrev. month" +msgid "March" +msgstr "Март" + +msgctxt "abbrev. month" +msgid "April" +msgstr "Апрель" + +msgctxt "abbrev. month" +msgid "May" +msgstr "Май" + +msgctxt "abbrev. month" +msgid "June" +msgstr "Июнь" + +msgctxt "abbrev. month" +msgid "July" +msgstr "Июль" + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "Авг." + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "Сен." + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "Окт." + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "Ноя." + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "Дек." + +msgctxt "alt. month" +msgid "January" +msgstr "Январь" + +msgctxt "alt. month" +msgid "February" +msgstr "Февраль" + +msgctxt "alt. month" +msgid "March" +msgstr "Март" + +msgctxt "alt. month" +msgid "April" +msgstr "Апрель" + +msgctxt "alt. month" +msgid "May" +msgstr "Май" + +msgctxt "alt. month" +msgid "June" +msgstr "Июнь" + +msgctxt "alt. month" +msgid "July" +msgstr "Июль" + +msgctxt "alt. month" +msgid "August" +msgstr "Август" + +msgctxt "alt. month" +msgid "September" +msgstr "Сентябрь" + +msgctxt "alt. month" +msgid "October" +msgstr "Октябрь" + +msgctxt "alt. month" +msgid "November" +msgstr "Ноябрь" + +msgctxt "alt. month" +msgid "December" +msgstr "Декабрь" + +msgid "This is not a valid IPv6 address." +msgstr "Бул туура эмес IPv6 дареги" + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "%(truncated_text)s…" + +msgid "or" +msgstr "же" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr "," + +#, python-format +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "%(num)d жыл" + +#, python-format +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "%(num)d ай" + +#, python-format +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "%(num)d апта" + +#, python-format +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "%(num)d күн" + +#, python-format +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "%(num)d саат" + +#, python-format +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "%(num)d мүнөт" + +msgid "Forbidden" +msgstr "Тыйылган" + +msgid "CSRF verification failed. Request aborted." +msgstr "CSRF текшерүү кыйрады. Суроо четке кагылды." + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" +"Браузер тараптан \"Referer header\" HTTPS сайтына жиберилбей калгандыгы үчүн " +"бул билдирүүнү көрүп турасыз. Бул хэдэр сиздин браузер үчүнчү жактан " +"чабуулга учурабаганын текшерүүгө коопсуздук үчүн керек." + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" +"Эгер сиз броузерден “Referer” хэдерин өчүрүп салсаңыз, аны күйгүзүп коюңуз. " +"Жок дегенде ушул сайт үчүн же жок дегенде HTTPS байланышуу үчүн. Же болбосо " +"“same-origin” суроолору үчүн." + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" +"Эгер сиз тегин же “Referrer-" +"Policy: no-referrer” хэдерин колдонуп жатсаңыз, аларды өчүрүп салыңыз. CSRF " +"коргоосу “Referer” хэдерин талап кылат. Эгер сиз коопсуздук жөнүндө " +"кабатырланып атсаңыз үчүнчү жактар үчүн шилтемесин " +"колдонуңуз." + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" +"Сиз бул билдирүүнү бул сайт форм жиберүүдө CSRF кукини талап кылгандыгы үчүн " +"көрүп жатасыз. Бул куки коопсуздуктан улам сиздин сайтыңыз үчүнчү жактан " +"чабуулга кабылбаганын текшерүү үчүн талап кылынат. " + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" +"Эгер сиз броузерде кукиледи өчүрүп койсоңуз, аларды кайра күйгүзүп коюңуз. " +"Жок дегенде ушул сайтка же “same-origin” суроолоруна." + +msgid "More information is available with DEBUG=True." +msgstr "Сиз бул маалыматты DEBUG=True болгону үчүн көрүп жатасыз." + +msgid "No year specified" +msgstr "Жыл көрсөтүлгөн эмес" + +msgid "Date out of range" +msgstr "Күн чектен сырткары" + +msgid "No month specified" +msgstr "Ай көрсөтүлгөн эмес" + +msgid "No day specified" +msgstr "Апта күнү көрсөтүлгөн эмес" + +msgid "No week specified" +msgstr "Апта көрсөтүлгө эмес" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "%(verbose_name_plural)s жок" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" +"%(verbose_name_plural)s future си тейленбейт. Себеби %(class_name)s." +"allow_future си False маани алган." + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "Туура эмес күн сабы “%(datestr)s” берилген формат болсо “%(format)s”." + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "суроого эч бир %(verbose_name)s табылбады" + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "Барак акыркы эмес. Же натуралдык санга өткөрүлө албай атат." + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "Туура эмес (%(page_number)s) барак: %(message)s" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "Бош тизме жана “%(class_name)s.allow_empty” = False болуп калган." + +msgid "Directory indexes are not allowed here." +msgstr "Папка индекстери бул жерде иштей албайт." + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "“%(path)s” жашабайт" + +#, python-format +msgid "Index of %(directory)s" +msgstr "%(directory)s индексттери" + +msgid "The install worked successfully! Congratulations!" +msgstr "Орнотуу ийгиликтүү аяктады! Куттуу болсун!" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" +"Жанго %(version)s үчүн чыгарылыш " +"эскертмелерин кара." + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not configured any " +"URLs." +msgstr "" +"Сиз бул бетти сиздин тууралоо файлыңызда DEBUG=True жана эчбир урл тууралабагандыгыңыз үчүн көрүп " +"жататсыз." + +msgid "Django Documentation" +msgstr "Жанго Түшүндүрмөсү" + +msgid "Topics, references, & how-to’s" +msgstr "Темалар, Сурамжылар, & кантип.. тер" + +msgid "Tutorial: A Polling App" +msgstr "Колдонмо:" + +msgid "Get started with Django" +msgstr "Жангону башта" + +msgid "Django Community" +msgstr "Жанго жамааты" + +msgid "Connect, get help, or contribute" +msgstr "Туташ, жардам ал, же салым кош" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/ky/__init__.py b/venv/lib/python3.12/site-packages/django/conf/locale/ky/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/ky/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/ky/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..43d4b47b4b83c5c0972060a63c93192f9ce1f55f GIT binary patch literal 198 zcmX@j%ge<81o5sX(m?cM5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!O4ZNE&rQ|OP0Yy6 zFHO;RNiEZNN=(kybEFQ_cZ$j>v@Gc?jK&MZmQEdVM^ zOiwM=Pssu+OwP|s)6dCIPRvQw&#u&ukI&4@EQycTE2#X%VUwGmQks)$SHudml@W-G PL5z>gjEsy$%s>_Z$W}Cu literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/ky/__pycache__/formats.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/ky/__pycache__/formats.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..bb3eb05b9086a75a8b7f305d63e5eec84ae52c53 GIT binary patch literal 823 zcmZXSyN=pG7=_1N76S`ju0k6{aum6sSdTX8P!z=*%tZ+{GDZ>8SYF257GuOs!qw&} zBBhGbRSi@ex}eAtit_ynEc0199l2iqP*w*d})rBD!uQ3#)+Fpi+p zc{IyRgCwTMifn^jeCKU%G1r|&4iW2;03n5)q{kL)KjuxoVFx!0Tgr9sC?Z+Y9OgNb z=NkKJo~7;Bj&hZVs#|{;zvuKfc_# zVNy1-4Ce(^)C#gv5!7W^Em!spKvuSy8pa)YJny ziYt_rnyYMRazXnbitm>3jjb$I>*_YIwoLCoH5|?-9c%ECzkC75-HCBABtpGyj3MrAgiUMEf_XR`)oUiFu zriG_{JSR>QQOHtG+1eo*NuoF#?DgNx1agt9LAm$`83vlKnpSX4A`2wVz sWQx>8?q?idbmjM^Jqr;3LkG{vnqDPAia26Uia6ppF literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/ky/formats.py b/venv/lib/python3.12/site-packages/django/conf/locale/ky/formats.py new file mode 100644 index 0000000000..25a092872a --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/ky/formats.py @@ -0,0 +1,32 @@ +# This file is distributed under the same license as the Django package. +# +# The *_FORMAT strings use the Django date format syntax, +# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date +DATE_FORMAT = "j E Y ж." +TIME_FORMAT = "G:i" +DATETIME_FORMAT = "j E Y ж. G:i" +YEAR_MONTH_FORMAT = "F Y ж." +MONTH_DAY_FORMAT = "j F" +SHORT_DATE_FORMAT = "d.m.Y" +SHORT_DATETIME_FORMAT = "d.m.Y H:i" +FIRST_DAY_OF_WEEK = 1 # Дүйшөмбү, Monday + +# The *_INPUT_FORMATS strings use the Python strftime format syntax, +# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior +DATE_INPUT_FORMATS = [ + "%d.%m.%Y", # '25.10.2006' + "%d.%m.%y", # '25.10.06' +] +DATETIME_INPUT_FORMATS = [ + "%d.%m.%Y %H:%M:%S", # '25.10.2006 14:30:59' + "%d.%m.%Y %H:%M:%S.%f", # '25.10.2006 14:30:59.000200' + "%d.%m.%Y %H:%M", # '25.10.2006 14:30' + "%d.%m.%Y", # '25.10.2006' + "%d.%m.%y %H:%M:%S", # '25.10.06 14:30:59' + "%d.%m.%y %H:%M:%S.%f", # '25.10.06 14:30:59.000200' + "%d.%m.%y %H:%M", # '25.10.06 14:30' + "%d.%m.%y", # '25.10.06' +] +DECIMAL_SEPARATOR = "." +THOUSAND_SEPARATOR = "\xa0" # non-breaking space +NUMBER_GROUPING = 3 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/lb/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/conf/locale/lb/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..2cf2c8bd2b79469b1cb6a5b17960994485588e50 GIT binary patch literal 8008 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/lb/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/conf/locale/lb/LC_MESSAGES/django.po new file mode 100644 index 0000000000..b0d4755440 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/lb/LC_MESSAGES/django.po @@ -0,0 +1,1213 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# sim0n , 2011,2013 +# sim0n , 2013 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-09-27 22:40+0200\n" +"PO-Revision-Date: 2019-11-05 00:38+0000\n" +"Last-Translator: Ramiro Morales\n" +"Language-Team: Luxembourgish (http://www.transifex.com/django/django/" +"language/lb/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: lb\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Afrikaans" +msgstr "Afrikaans" + +msgid "Arabic" +msgstr "Arabesch" + +msgid "Asturian" +msgstr "" + +msgid "Azerbaijani" +msgstr "" + +msgid "Bulgarian" +msgstr "Bulgaresch" + +msgid "Belarusian" +msgstr "Wäissrussesch" + +msgid "Bengali" +msgstr "Bengalesch" + +msgid "Breton" +msgstr "" + +msgid "Bosnian" +msgstr "Bosnesch" + +msgid "Catalan" +msgstr "Katalanesch" + +msgid "Czech" +msgstr "Tschechesch" + +msgid "Welsh" +msgstr "Walisesch" + +msgid "Danish" +msgstr "Dänesch" + +msgid "German" +msgstr "Däitsch" + +msgid "Lower Sorbian" +msgstr "" + +msgid "Greek" +msgstr "Griichesch" + +msgid "English" +msgstr "Englesch" + +msgid "Australian English" +msgstr "" + +msgid "British English" +msgstr "Britesch Englesch" + +msgid "Esperanto" +msgstr "" + +msgid "Spanish" +msgstr "Spuenesch" + +msgid "Argentinian Spanish" +msgstr "Argentinesch Spuenesch" + +msgid "Colombian Spanish" +msgstr "" + +msgid "Mexican Spanish" +msgstr "Mexikanesch Spuenesch" + +msgid "Nicaraguan Spanish" +msgstr "" + +msgid "Venezuelan Spanish" +msgstr "" + +msgid "Estonian" +msgstr "Estonesch" + +msgid "Basque" +msgstr "Baskesch" + +msgid "Persian" +msgstr "Persesch" + +msgid "Finnish" +msgstr "Finnesch" + +msgid "French" +msgstr "Franséisch" + +msgid "Frisian" +msgstr "Frisesch" + +msgid "Irish" +msgstr "Iresch" + +msgid "Scottish Gaelic" +msgstr "" + +msgid "Galician" +msgstr "Galesch" + +msgid "Hebrew" +msgstr "Hebräesch" + +msgid "Hindi" +msgstr "Hindi" + +msgid "Croatian" +msgstr "Kroatesch" + +msgid "Upper Sorbian" +msgstr "" + +msgid "Hungarian" +msgstr "Ungaresch" + +msgid "Armenian" +msgstr "" + +msgid "Interlingua" +msgstr "" + +msgid "Indonesian" +msgstr "Indonesesch" + +msgid "Ido" +msgstr "" + +msgid "Icelandic" +msgstr "Islännesch" + +msgid "Italian" +msgstr "Italienesch" + +msgid "Japanese" +msgstr "Japanesch" + +msgid "Georgian" +msgstr "Georgesch" + +msgid "Kabyle" +msgstr "" + +msgid "Kazakh" +msgstr "" + +msgid "Khmer" +msgstr "Khmer" + +msgid "Kannada" +msgstr "Kanadesch" + +msgid "Korean" +msgstr "Koreanesch" + +msgid "Luxembourgish" +msgstr "Lëtzebuergesch" + +msgid "Lithuanian" +msgstr "Lithuanesesch" + +msgid "Latvian" +msgstr "Lättesch" + +msgid "Macedonian" +msgstr "Macedonesch" + +msgid "Malayalam" +msgstr "Malayalam" + +msgid "Mongolian" +msgstr "Mongolesch" + +msgid "Marathi" +msgstr "" + +msgid "Burmese" +msgstr "" + +msgid "Norwegian Bokmål" +msgstr "" + +msgid "Nepali" +msgstr "" + +msgid "Dutch" +msgstr "Hollännesch" + +msgid "Norwegian Nynorsk" +msgstr "Norwegesch Nynorsk" + +msgid "Ossetic" +msgstr "" + +msgid "Punjabi" +msgstr "Punjabi" + +msgid "Polish" +msgstr "Polnesch" + +msgid "Portuguese" +msgstr "Portugisesch" + +msgid "Brazilian Portuguese" +msgstr "Brasilianesch Portugisesch" + +msgid "Romanian" +msgstr "Rumänesch" + +msgid "Russian" +msgstr "Russesch" + +msgid "Slovak" +msgstr "Slowakesch" + +msgid "Slovenian" +msgstr "Slowenesch" + +msgid "Albanian" +msgstr "Albanesch" + +msgid "Serbian" +msgstr "Serbesch" + +msgid "Serbian Latin" +msgstr "Serbesch Latäinesch" + +msgid "Swedish" +msgstr "Schwedesch" + +msgid "Swahili" +msgstr "" + +msgid "Tamil" +msgstr "Tamil" + +msgid "Telugu" +msgstr "Telugu" + +msgid "Thai" +msgstr "Thai" + +msgid "Turkish" +msgstr "Tierkesch" + +msgid "Tatar" +msgstr "" + +msgid "Udmurt" +msgstr "" + +msgid "Ukrainian" +msgstr "Ukrainesch" + +msgid "Urdu" +msgstr "" + +msgid "Uzbek" +msgstr "" + +msgid "Vietnamese" +msgstr "Vietnamesesch" + +msgid "Simplified Chinese" +msgstr "Einfach d'Chinesesch" + +msgid "Traditional Chinese" +msgstr "Traditionell d'Chinesesch" + +msgid "Messages" +msgstr "" + +msgid "Site Maps" +msgstr "" + +msgid "Static Files" +msgstr "" + +msgid "Syndication" +msgstr "" + +msgid "That page number is not an integer" +msgstr "" + +msgid "That page number is less than 1" +msgstr "" + +msgid "That page contains no results" +msgstr "" + +msgid "Enter a valid value." +msgstr "Gëff en validen Wärt an." + +msgid "Enter a valid URL." +msgstr "Gëff eng valid URL an." + +msgid "Enter a valid integer." +msgstr "" + +msgid "Enter a valid email address." +msgstr "Gëff eng valid e-mail Adress an." + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" + +msgid "Enter a valid IPv4 address." +msgstr "Gëff eng valid IPv4 Adress an." + +msgid "Enter a valid IPv6 address." +msgstr "Gëff eng valid IPv6 Adress an." + +msgid "Enter a valid IPv4 or IPv6 address." +msgstr "Gëff eng valid IPv4 oder IPv6 Adress an." + +msgid "Enter only digits separated by commas." +msgstr "" + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "" + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "" + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "" + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +msgstr[1] "" + +msgid "Enter a number." +msgstr "" + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" + +msgid "Null characters are not allowed." +msgstr "" + +msgid "and" +msgstr "an" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "" + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "" + +msgid "This field cannot be null." +msgstr "" + +msgid "This field cannot be blank." +msgstr "" + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "" + +#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'. +#. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "" + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "" + +msgid "Boolean (Either True or False)" +msgstr "" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "" + +msgid "Comma-separated integers" +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" + +msgid "Date (without time)" +msgstr "Datum (ouni Zäit)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" + +msgid "Date (with time)" +msgstr "Datum (mat Zäit)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "" + +msgid "Decimal number" +msgstr "Dezimalzuel" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" + +msgid "Duration" +msgstr "" + +msgid "Email address" +msgstr "E-mail Adress" + +msgid "File path" +msgstr "" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "" + +msgid "Floating point number" +msgstr "Kommazuel" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "" + +msgid "Integer" +msgstr "Zuel" + +msgid "Big (8 byte) integer" +msgstr "Grouss (8 byte) Zuel" + +msgid "IPv4 address" +msgstr "IPv4 Adress" + +msgid "IP address" +msgstr "IP Adress" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "" + +msgid "Boolean (Either True, False or None)" +msgstr "" + +msgid "Positive integer" +msgstr "Positiv Zuel" + +msgid "Positive small integer" +msgstr "Kleng positiv Zuel" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "" + +msgid "Small integer" +msgstr "Kleng Zuel" + +msgid "Text" +msgstr "Text" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" + +msgid "Time" +msgstr "Zäit" + +msgid "URL" +msgstr "URL" + +msgid "Raw binary data" +msgstr "Rei Binär Daten" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "" + +msgid "Universally unique identifier" +msgstr "" + +msgid "File" +msgstr "Fichier" + +msgid "Image" +msgstr "Bild" + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "" + +msgid "Foreign Key (type determined by related field)" +msgstr "" + +msgid "One-to-one relationship" +msgstr "" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "" + +msgid "Many-to-many relationship" +msgstr "" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr ":?.!" + +msgid "This field is required." +msgstr "" + +msgid "Enter a whole number." +msgstr "" + +msgid "Enter a valid date." +msgstr "" + +msgid "Enter a valid time." +msgstr "" + +msgid "Enter a valid date/time." +msgstr "" + +msgid "Enter a valid duration." +msgstr "" + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "" + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "" + +msgid "No file was submitted." +msgstr "Et ass keng Datei geschéckt ginn." + +msgid "The submitted file is empty." +msgstr "" + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" +msgstr[1] "" + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "" + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "" + +msgid "Enter a list of values." +msgstr "Gëff eng Lescht vun Wäerter an." + +msgid "Enter a complete value." +msgstr "" + +msgid "Enter a valid UUID." +msgstr "" + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr ":" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "" + +msgid "ManagementForm data is missing or has been tampered with" +msgstr "" + +#, python-format +msgid "Please submit %d or fewer forms." +msgid_plural "Please submit %d or fewer forms." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "Please submit %d or more forms." +msgid_plural "Please submit %d or more forms." +msgstr[0] "" +msgstr[1] "" + +msgid "Order" +msgstr "Sortéier" + +msgid "Delete" +msgstr "Läsch" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "" + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "" + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" + +msgid "Please correct the duplicate values below." +msgstr "" + +msgid "The inline value did not match the parent instance." +msgstr "" + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "" + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "" + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" + +msgid "Clear" +msgstr "Maach eidel" + +msgid "Currently" +msgstr "Momentan" + +msgid "Change" +msgstr "Änner" + +msgid "Unknown" +msgstr "Onbekannt" + +msgid "Yes" +msgstr "Jo" + +msgid "No" +msgstr "Nee" + +msgid "Year" +msgstr "" + +msgid "Month" +msgstr "" + +msgid "Day" +msgstr "" + +msgid "yes,no,maybe" +msgstr "jo,nee,vläit" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%s KB" +msgstr "%s KB" + +#, python-format +msgid "%s MB" +msgstr "%s MB" + +#, python-format +msgid "%s GB" +msgstr "%s GB" + +#, python-format +msgid "%s TB" +msgstr "%s TB" + +#, python-format +msgid "%s PB" +msgstr "%s PB" + +msgid "p.m." +msgstr "p.m." + +msgid "a.m." +msgstr "a.m." + +msgid "PM" +msgstr "PM" + +msgid "AM" +msgstr "AM" + +msgid "midnight" +msgstr "" + +msgid "noon" +msgstr "" + +msgid "Monday" +msgstr "Méindeg" + +msgid "Tuesday" +msgstr "Dënschdeg" + +msgid "Wednesday" +msgstr "Mëttwoch" + +msgid "Thursday" +msgstr "Donneschdes" + +msgid "Friday" +msgstr "Freides" + +msgid "Saturday" +msgstr "Samschdes" + +msgid "Sunday" +msgstr "Sonndes" + +msgid "Mon" +msgstr "Mei" + +msgid "Tue" +msgstr "Dën" + +msgid "Wed" +msgstr "Mett" + +msgid "Thu" +msgstr "Don" + +msgid "Fri" +msgstr "Fre" + +msgid "Sat" +msgstr "Sam" + +msgid "Sun" +msgstr "Son" + +msgid "January" +msgstr "Januar" + +msgid "February" +msgstr "Februar" + +msgid "March" +msgstr "März" + +msgid "April" +msgstr "Abrell" + +msgid "May" +msgstr "" + +msgid "June" +msgstr "Juni" + +msgid "July" +msgstr "Juli" + +msgid "August" +msgstr "August" + +msgid "September" +msgstr "September" + +msgid "October" +msgstr "Oktober" + +msgid "November" +msgstr "November" + +msgid "December" +msgstr "Dezember" + +msgid "jan" +msgstr "jan" + +msgid "feb" +msgstr "feb" + +msgid "mar" +msgstr "mär" + +msgid "apr" +msgstr "abr" + +msgid "may" +msgstr "" + +msgid "jun" +msgstr "jun" + +msgid "jul" +msgstr "jul" + +msgid "aug" +msgstr "aug" + +msgid "sep" +msgstr "sep" + +msgid "oct" +msgstr "okt" + +msgid "nov" +msgstr "nov" + +msgid "dec" +msgstr "dec" + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "Jan." + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "Feb." + +msgctxt "abbrev. month" +msgid "March" +msgstr "März" + +msgctxt "abbrev. month" +msgid "April" +msgstr "Abrell" + +msgctxt "abbrev. month" +msgid "May" +msgstr "" + +msgctxt "abbrev. month" +msgid "June" +msgstr "Juni" + +msgctxt "abbrev. month" +msgid "July" +msgstr "Juli" + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "Aug." + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "Sept." + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "Okt." + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "Nov." + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "Dec." + +msgctxt "alt. month" +msgid "January" +msgstr "Januar" + +msgctxt "alt. month" +msgid "February" +msgstr "Februar" + +msgctxt "alt. month" +msgid "March" +msgstr "März" + +msgctxt "alt. month" +msgid "April" +msgstr "Abrell" + +msgctxt "alt. month" +msgid "May" +msgstr "" + +msgctxt "alt. month" +msgid "June" +msgstr "Juni" + +msgctxt "alt. month" +msgid "July" +msgstr "Juli" + +msgctxt "alt. month" +msgid "August" +msgstr "August" + +msgctxt "alt. month" +msgid "September" +msgstr "September" + +msgctxt "alt. month" +msgid "October" +msgstr "Oktober" + +msgctxt "alt. month" +msgid "November" +msgstr "November" + +msgctxt "alt. month" +msgid "December" +msgstr "December" + +msgid "This is not a valid IPv6 address." +msgstr "" + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "" + +msgid "or" +msgstr "oder" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr ", " + +#, python-format +msgid "%d year" +msgid_plural "%d years" +msgstr[0] "%d Joer" +msgstr[1] "%d Joren" + +#, python-format +msgid "%d month" +msgid_plural "%d months" +msgstr[0] "%d Mount" +msgstr[1] "%d Meint" + +#, python-format +msgid "%d week" +msgid_plural "%d weeks" +msgstr[0] "%d Woch" +msgstr[1] "%d Wochen" + +#, python-format +msgid "%d day" +msgid_plural "%d days" +msgstr[0] "%d Dag" +msgstr[1] "%d Deeg" + +#, python-format +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "%d Stonn" +msgstr[1] "%d Stonnen" + +#, python-format +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "%d Minutt" +msgstr[1] "%d Minutten" + +msgid "0 minutes" +msgstr "0 Minutten" + +msgid "Forbidden" +msgstr "" + +msgid "CSRF verification failed. Request aborted." +msgstr "" + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your Web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" + +msgid "More information is available with DEBUG=True." +msgstr "" + +msgid "No year specified" +msgstr "" + +msgid "Date out of range" +msgstr "" + +msgid "No month specified" +msgstr "" + +msgid "No day specified" +msgstr "" + +msgid "No week specified" +msgstr "" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "" + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "" + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "" + +msgid "Directory indexes are not allowed here." +msgstr "" + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "" + +#, python-format +msgid "Index of %(directory)s" +msgstr "" + +msgid "Django: the Web framework for perfectionists with deadlines." +msgstr "" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" + +msgid "The install worked successfully! Congratulations!" +msgstr "" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not configured any " +"URLs." +msgstr "" + +msgid "Django Documentation" +msgstr "" + +msgid "Topics, references, & how-to’s" +msgstr "" + +msgid "Tutorial: A Polling App" +msgstr "" + +msgid "Get started with Django" +msgstr "" + +msgid "Django Community" +msgstr "" + +msgid "Connect, get help, or contribute" +msgstr "" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/lt/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/conf/locale/lt/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..ee14fecb9b7a91b3cb1a49177599227d3261f3a9 GIT binary patch literal 21421 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, 2011 +# Kostas , 2011 +# lauris , 2011 +# Mariusz Felisiak , 2021 +# Matas Dailyda , 2015-2019 +# naktinis , 2012 +# Nikolajus Krauklis , 2013 +# Povilas Balzaravičius , 2011-2012 +# Simonas Kazlauskas , 2012-2014 +# Vytautas Astrauskas , 2011 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-09-21 10:22+0200\n" +"PO-Revision-Date: 2021-11-24 16:28+0000\n" +"Last-Translator: Mariusz Felisiak \n" +"Language-Team: Lithuanian (http://www.transifex.com/django/django/language/" +"lt/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: lt\n" +"Plural-Forms: nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < " +"11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? " +"1 : n % 1 != 0 ? 2: 3);\n" + +msgid "Afrikaans" +msgstr "Afrikiečių" + +msgid "Arabic" +msgstr "Arabų" + +msgid "Algerian Arabic" +msgstr "" + +msgid "Asturian" +msgstr "Austrų" + +msgid "Azerbaijani" +msgstr "Azerbaidžaniečių" + +msgid "Bulgarian" +msgstr "Bulgarų" + +msgid "Belarusian" +msgstr "Gudų" + +msgid "Bengali" +msgstr "Bengalų" + +msgid "Breton" +msgstr "Bretonų" + +msgid "Bosnian" +msgstr "Bosnių" + +msgid "Catalan" +msgstr "Katalonų" + +msgid "Czech" +msgstr "Čekų" + +msgid "Welsh" +msgstr "Velso" + +msgid "Danish" +msgstr "Danų" + +msgid "German" +msgstr "Vokiečių" + +msgid "Lower Sorbian" +msgstr "Žemutinė Sorbų" + +msgid "Greek" +msgstr "Graikų" + +msgid "English" +msgstr "Anglų" + +msgid "Australian English" +msgstr "Australų Anlgų" + +msgid "British English" +msgstr "Britų Anglų" + +msgid "Esperanto" +msgstr "Esperanto" + +msgid "Spanish" +msgstr "Ispanų" + +msgid "Argentinian Spanish" +msgstr "Argentiniečių Ispanų" + +msgid "Colombian Spanish" +msgstr "Kolumbų Ispanų" + +msgid "Mexican Spanish" +msgstr "Meksikiečių Ispanų" + +msgid "Nicaraguan Spanish" +msgstr "Nikaragvos Ispanijos" + +msgid "Venezuelan Spanish" +msgstr "Venesuelos Ispanų" + +msgid "Estonian" +msgstr "Estų" + +msgid "Basque" +msgstr "Baskų" + +msgid "Persian" +msgstr "Persų" + +msgid "Finnish" +msgstr "Suomių" + +msgid "French" +msgstr "Prancūzų" + +msgid "Frisian" +msgstr "Fryzų" + +msgid "Irish" +msgstr "Airių" + +msgid "Scottish Gaelic" +msgstr "Škotų Gėlų" + +msgid "Galician" +msgstr "Galų" + +msgid "Hebrew" +msgstr "Hebrajų" + +msgid "Hindi" +msgstr "Hindi" + +msgid "Croatian" +msgstr "Kroatų" + +msgid "Upper Sorbian" +msgstr "Aukštutinė Sorbų" + +msgid "Hungarian" +msgstr "Vengrų" + +msgid "Armenian" +msgstr "Armėnų" + +msgid "Interlingua" +msgstr "Interlingua" + +msgid "Indonesian" +msgstr "Indoneziečių" + +msgid "Igbo" +msgstr "" + +msgid "Ido" +msgstr "Ido" + +msgid "Icelandic" +msgstr "Islandų" + +msgid "Italian" +msgstr "Italų" + +msgid "Japanese" +msgstr "Japonų" + +msgid "Georgian" +msgstr "Gruzinų" + +msgid "Kabyle" +msgstr "Kabilų" + +msgid "Kazakh" +msgstr "Kazachų" + +msgid "Khmer" +msgstr "Khmerų" + +msgid "Kannada" +msgstr "Dravidų" + +msgid "Korean" +msgstr "Korėjiečių" + +msgid "Kyrgyz" +msgstr "" + +msgid "Luxembourgish" +msgstr "Liuksemburgų" + +msgid "Lithuanian" +msgstr "Lietuvių" + +msgid "Latvian" +msgstr "Latvių" + +msgid "Macedonian" +msgstr "Makedonų" + +msgid "Malayalam" +msgstr "Malajalių" + +msgid "Mongolian" +msgstr "Mongolų" + +msgid "Marathi" +msgstr "Marati" + +msgid "Malay" +msgstr "" + +msgid "Burmese" +msgstr "Mjanmų" + +msgid "Norwegian Bokmål" +msgstr "Norvegų Bokmal" + +msgid "Nepali" +msgstr "Nepalų" + +msgid "Dutch" +msgstr "Olandų" + +msgid "Norwegian Nynorsk" +msgstr "Norvegų Nynorsk" + +msgid "Ossetic" +msgstr "Osetinų" + +msgid "Punjabi" +msgstr "Pandžabi" + +msgid "Polish" +msgstr "Lenkų" + +msgid "Portuguese" +msgstr "Protugalų" + +msgid "Brazilian Portuguese" +msgstr "Brazilijos Portugalų" + +msgid "Romanian" +msgstr "Rumunų" + +msgid "Russian" +msgstr "Rusų" + +msgid "Slovak" +msgstr "Slovakų" + +msgid "Slovenian" +msgstr "Slovėnų" + +msgid "Albanian" +msgstr "Albanų" + +msgid "Serbian" +msgstr "Serbų" + +msgid "Serbian Latin" +msgstr "Serbų Lotynų" + +msgid "Swedish" +msgstr "Švedų" + +msgid "Swahili" +msgstr "Svahili" + +msgid "Tamil" +msgstr "Tamilų" + +msgid "Telugu" +msgstr "Telugų" + +msgid "Tajik" +msgstr "" + +msgid "Thai" +msgstr "Tailando" + +msgid "Turkmen" +msgstr "" + +msgid "Turkish" +msgstr "Turkų" + +msgid "Tatar" +msgstr "Totorių" + +msgid "Udmurt" +msgstr "Udmurtų" + +msgid "Ukrainian" +msgstr "Ukrainiečių" + +msgid "Urdu" +msgstr "Urdu" + +msgid "Uzbek" +msgstr "" + +msgid "Vietnamese" +msgstr "Vietnamiečių" + +msgid "Simplified Chinese" +msgstr "Supaprastinta kinų" + +msgid "Traditional Chinese" +msgstr "Tradicinė kinų" + +msgid "Messages" +msgstr "Žinutės" + +msgid "Site Maps" +msgstr "Tinklalapio struktūros" + +msgid "Static Files" +msgstr "Statiniai failai" + +msgid "Syndication" +msgstr "Sindikacija" + +#. Translators: String used to replace omitted page numbers in elided page +#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10]. +msgid "…" +msgstr "" + +msgid "That page number is not an integer" +msgstr "To puslapio numeris nėra sveikasis skaičius." + +msgid "That page number is less than 1" +msgstr "To numerio puslapis yra mažesnis už 1" + +msgid "That page contains no results" +msgstr "Tas puslapis neturi jokių rezultatų" + +msgid "Enter a valid value." +msgstr "Įveskite tinkamą reikšmę." + +msgid "Enter a valid URL." +msgstr "Įveskite tinkamą URL adresą." + +msgid "Enter a valid integer." +msgstr "Įveskite tinkamą sveikąjį skaičių." + +msgid "Enter a valid email address." +msgstr "Įveskite teisingą el. pašto adresą." + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" + +msgid "Enter a valid IPv4 address." +msgstr "Įveskite validų IPv4 adresą." + +msgid "Enter a valid IPv6 address." +msgstr "Įveskite validų IPv6 adresą." + +msgid "Enter a valid IPv4 or IPv6 address." +msgstr "Įveskite validų IPv4 arba IPv6 adresą." + +msgid "Enter only digits separated by commas." +msgstr "Įveskite skaitmenis atskirtus kableliais." + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "" +"Įsitikinkite, kad reikšmę sudaro %(limit_value)s simbolių (dabar yra " +"%(show_value)s)." + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "Įsitikinkite, kad reikšmė yra mažesnė arba lygi %(limit_value)s." + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "Įsitikinkite, kad reikšmė yra didesnė arba lygi %(limit_value)s." + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Įsitikinkite, kad reikšmė sudaryta iš nemažiau kaip %(limit_value)d ženklo " +"(dabartinis ilgis %(show_value)d)." +msgstr[1] "" +"Įsitikinkite, kad reikšmė sudaryta iš nemažiau kaip %(limit_value)d ženklų " +"(dabartinis ilgis %(show_value)d)." +msgstr[2] "" +"Įsitikinkite, kad reikšmė sudaryta iš nemažiau kaip %(limit_value)d ženklų " +"(dabartinis ilgis %(show_value)d)." +msgstr[3] "" +"Įsitikinkite, kad reikšmė sudaryta iš nemažiau kaip %(limit_value)d ženklų " +"(dabartinis ilgis %(show_value)d)." + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Įsitikinkite, kad reikšmė sudaryta iš nedaugiau kaip %(limit_value)d ženklo " +"(dabartinis ilgis %(show_value)d)." +msgstr[1] "" +"Įsitikinkite, kad reikšmė sudaryta iš nedaugiau kaip %(limit_value)d ženklų " +"(dabartinis ilgis %(show_value)d)." +msgstr[2] "" +"Įsitikinkite, kad reikšmė sudaryta iš nedaugiau kaip %(limit_value)d ženklų " +"(dabartinis ilgis %(show_value)d)." +msgstr[3] "" +"Įsitikinkite, kad reikšmė sudaryta iš nedaugiau kaip %(limit_value)d ženklų " +"(dabartinis ilgis %(show_value)d)." + +msgid "Enter a number." +msgstr "Įveskite skaičių." + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "Įsitikinkite, kad yra nedaugiau nei %(max)s skaitmuo." +msgstr[1] "Įsitikinkite, kad yra nedaugiau nei %(max)s skaitmenys." +msgstr[2] "Įsitikinkite, kad yra nedaugiau nei %(max)s skaitmenų." +msgstr[3] "Įsitikinkite, kad yra nedaugiau nei %(max)s skaitmenų." + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "Įsitikinkite, kad yra nedaugiau nei %(max)s skaitmuo po kablelio." +msgstr[1] "Įsitikinkite, kad yra nedaugiau nei %(max)s skaitmenys po kablelio." +msgstr[2] "Įsitikinkite, kad yra nedaugiau nei %(max)s skaitmenų po kablelio." +msgstr[3] "Įsitikinkite, kad yra nedaugiau nei %(max)s skaitmenų po kablelio." + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "Įsitikinkite, kad yra nedaugiau nei %(max)s skaitmuo prieš kablelį." +msgstr[1] "" +"Įsitikinkite, kad yra nedaugiau nei %(max)s skaitmenys prieš kablelį." +msgstr[2] "" +"Įsitikinkite, kad yra nedaugiau nei %(max)s skaitmenų prieš kablelį." +msgstr[3] "" +"Įsitikinkite, kad yra nedaugiau nei %(max)s skaitmenų prieš kablelį." + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" + +msgid "Null characters are not allowed." +msgstr "Nuliniai simboliai neleidžiami." + +msgid "and" +msgstr "ir" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "%(model_name)s su šiais %(field_labels)s jau egzistuoja." + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "Reikšmės %(value)r rinktis negalima." + +msgid "This field cannot be null." +msgstr "Šis laukas negali būti null." + +msgid "This field cannot be blank." +msgstr "Lauką privaloma užpildyti." + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "%(model_name)s su šiuo %(field_label)s jau egzistuoja." + +#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'. +#. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" +"%(field_label)s privalo būti unikalus %(date_field_label)s %(lookup_type)s." + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "Lauko tipas: %(field_type)s " + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "" + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "" + +msgid "Boolean (Either True or False)" +msgstr "Loginė reikšmė (Tiesa arba Netiesa)" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "Eilutė (ilgis iki %(max_length)s)" + +msgid "Comma-separated integers" +msgstr "Kableliais atskirti sveikieji skaičiai" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" + +msgid "Date (without time)" +msgstr "Data (be laiko)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" + +msgid "Date (with time)" +msgstr "Data (su laiku)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "" + +msgid "Decimal number" +msgstr "Dešimtainis skaičius" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" + +msgid "Duration" +msgstr "Trukmė" + +msgid "Email address" +msgstr "El. pašto adresas" + +msgid "File path" +msgstr "Kelias iki failo" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "" + +msgid "Floating point number" +msgstr "Realus skaičius" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "" + +msgid "Integer" +msgstr "Sveikas skaičius" + +msgid "Big (8 byte) integer" +msgstr "Didelis (8 baitų) sveikas skaičius" + +msgid "Small integer" +msgstr "Nedidelis sveikasis skaičius" + +msgid "IPv4 address" +msgstr "IPv4 adresas" + +msgid "IP address" +msgstr "IP adresas" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "" + +msgid "Boolean (Either True, False or None)" +msgstr "Loginė reikšmė (Tiesa, Netiesa arba Nieko)" + +msgid "Positive big integer" +msgstr "" + +msgid "Positive integer" +msgstr "Teigiamas sveikasis skaičius" + +msgid "Positive small integer" +msgstr "Nedidelis teigiamas sveikasis skaičius" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "Unikalus adresas (iki %(max_length)s ženklų)" + +msgid "Text" +msgstr "Tekstas" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" + +msgid "Time" +msgstr "Laikas" + +msgid "URL" +msgstr "URL" + +msgid "Raw binary data" +msgstr "Neapdorota informacija" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "" + +msgid "Universally unique identifier" +msgstr "Universaliai unikalus identifikatorius" + +msgid "File" +msgstr "Failas" + +msgid "Image" +msgstr "Paveiksliukas" + +msgid "A JSON object" +msgstr "" + +msgid "Value must be valid JSON." +msgstr "" + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "%(model)s objektas su %(field)s %(value)r neegzistuoja." + +msgid "Foreign Key (type determined by related field)" +msgstr "Išorinis raktas (tipas nustatomas susijusiame lauke)" + +msgid "One-to-one relationship" +msgstr "Sąryšis vienas su vienu" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "%(from)s-%(to)s sąryšis" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "%(from)s-%(to)s sąryšiai" + +msgid "Many-to-many relationship" +msgstr "Sąryšis daug su daug" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr ":?.!" + +msgid "This field is required." +msgstr "Šis laukas yra privalomas." + +msgid "Enter a whole number." +msgstr "Įveskite pilną skaičių." + +msgid "Enter a valid date." +msgstr "Įveskite tinkamą datą." + +msgid "Enter a valid time." +msgstr "Įveskite tinkamą laiką." + +msgid "Enter a valid date/time." +msgstr "Įveskite tinkamą datą/laiką." + +msgid "Enter a valid duration." +msgstr "Įveskite tinkamą trukmę." + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "Dienų skaičius turi būti tarp {min_days} ir {max_days}." + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "Nebuvo nurodytas failas. Patikrinkite formos koduotę." + +msgid "No file was submitted." +msgstr "Failas nebuvo nurodytas." + +msgid "The submitted file is empty." +msgstr "Nurodytas failas yra tuščias." + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" +"Įsitikinkite, kad failo pavadinimas sudarytas iš nedaugiau kaip %(max)d " +"ženklo (dabartinis ilgis %(length)d)." +msgstr[1] "" +"Įsitikinkite, kad failo pavadinimas sudarytas iš nedaugiau kaip %(max)d " +"ženklų (dabartinis ilgis %(length)d)." +msgstr[2] "" +"Įsitikinkite, kad failo pavadinimas sudarytas iš nedaugiau kaip %(max)d " +"ženklų (dabartinis ilgis %(length)d)." +msgstr[3] "" +"Įsitikinkite, kad failo pavadinimas sudarytas iš nedaugiau kaip %(max)d " +"ženklų (dabartinis ilgis %(length)d)." + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "Nurodykite failą arba pažymėkite išvalyti. Abu pasirinkimai negalimi." + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" +"Atsiųskite tinkamą paveiksliuką. Failas, kurį siuntėte nebuvo paveiksliukas, " +"arba buvo sugadintas." + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "Nurodykite tinkamą reikšmę. %(value)s nėra galimas pasirinkimas." + +msgid "Enter a list of values." +msgstr "Įveskite reikšmių sarašą." + +msgid "Enter a complete value." +msgstr "Įveskite pilną reikšmę." + +msgid "Enter a valid UUID." +msgstr "Įveskite tinkamą UUID." + +msgid "Enter a valid JSON." +msgstr "" + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr ":" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "(Paslėptas laukelis %(name)s) %(error)s" + +#, python-format +msgid "" +"ManagementForm data is missing or has been tampered with. Missing fields: " +"%(field_names)s. You may need to file a bug report if the issue persists." +msgstr "" + +#, python-format +msgid "Please submit at most %d form." +msgid_plural "Please submit at most %d forms." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#, python-format +msgid "Please submit at least %d form." +msgid_plural "Please submit at least %d forms." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +msgid "Order" +msgstr "Nurodyti" + +msgid "Delete" +msgstr "Ištrinti" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "Pataisykite pasikartojančius duomenis laukui %(field)s." + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "" +"Pataisykite pasikartojančius duomenis laukui %(field)s. Duomenys privalo " +"būti unikalūs." + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"Pataisykite pasikartojančius duomenis laukui %(field_name)s. Duomenys " +"privalo būti unikalūs %(lookup)s peržiūroms per %(date_field)s." + +msgid "Please correct the duplicate values below." +msgstr "Pataisykite žemiau esančias pasikartojančias reikšmes." + +msgid "The inline value did not match the parent instance." +msgstr "Reikšmė nesutapo su pirminiu objektu." + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "Pasirinkite tinkamą reikšmę. Parinkta reikšmė nėra galima." + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "" + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" + +msgid "Clear" +msgstr "Išvalyti" + +msgid "Currently" +msgstr "Šiuo metu" + +msgid "Change" +msgstr "Pakeisti" + +msgid "Unknown" +msgstr "Nežinomas" + +msgid "Yes" +msgstr "Taip" + +msgid "No" +msgstr "Ne" + +#. Translators: Please do not add spaces around commas. +msgid "yes,no,maybe" +msgstr "taip,ne,galbūt" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)d baitas" +msgstr[1] "%(size)d baitai" +msgstr[2] "%(size)d baitai" +msgstr[3] "%(size)d baitai" + +#, python-format +msgid "%s KB" +msgstr "%s KB" + +#, python-format +msgid "%s MB" +msgstr "%s MB" + +#, python-format +msgid "%s GB" +msgstr "%s GB" + +#, python-format +msgid "%s TB" +msgstr "%s TB" + +#, python-format +msgid "%s PB" +msgstr "%s PB" + +msgid "p.m." +msgstr "p.m." + +msgid "a.m." +msgstr "a.m." + +msgid "PM" +msgstr "PM" + +msgid "AM" +msgstr "AM" + +msgid "midnight" +msgstr "vidurnaktis" + +msgid "noon" +msgstr "vidurdienis" + +msgid "Monday" +msgstr "Pirmadienis" + +msgid "Tuesday" +msgstr "Antradienis" + +msgid "Wednesday" +msgstr "Trečiadienis" + +msgid "Thursday" +msgstr "Ketvirtadienis" + +msgid "Friday" +msgstr "Penktadienis" + +msgid "Saturday" +msgstr "Šeštadienis" + +msgid "Sunday" +msgstr "Sekmadienis" + +msgid "Mon" +msgstr "Pr" + +msgid "Tue" +msgstr "A" + +msgid "Wed" +msgstr "T" + +msgid "Thu" +msgstr "K" + +msgid "Fri" +msgstr "P" + +msgid "Sat" +msgstr "Š" + +msgid "Sun" +msgstr "S" + +msgid "January" +msgstr "sausis" + +msgid "February" +msgstr "vasaris" + +msgid "March" +msgstr "kovas" + +msgid "April" +msgstr "balandis" + +msgid "May" +msgstr "gegužė" + +msgid "June" +msgstr "birželis" + +msgid "July" +msgstr "liepa" + +msgid "August" +msgstr "rugpjūtis" + +msgid "September" +msgstr "rugsėjis" + +msgid "October" +msgstr "spalis" + +msgid "November" +msgstr "lapkritis" + +msgid "December" +msgstr "gruodis" + +msgid "jan" +msgstr "sau" + +msgid "feb" +msgstr "vas" + +msgid "mar" +msgstr "kov" + +msgid "apr" +msgstr "bal" + +msgid "may" +msgstr "geg" + +msgid "jun" +msgstr "bir" + +msgid "jul" +msgstr "lie" + +msgid "aug" +msgstr "rugp" + +msgid "sep" +msgstr "rugs" + +msgid "oct" +msgstr "spa" + +msgid "nov" +msgstr "lap" + +msgid "dec" +msgstr "grd" + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "saus." + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "vas." + +msgctxt "abbrev. month" +msgid "March" +msgstr "kov." + +msgctxt "abbrev. month" +msgid "April" +msgstr "bal." + +msgctxt "abbrev. month" +msgid "May" +msgstr "geg." + +msgctxt "abbrev. month" +msgid "June" +msgstr "birž." + +msgctxt "abbrev. month" +msgid "July" +msgstr "liep." + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "rugpj." + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "rugs." + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "spal." + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "lapkr." + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "gruod." + +msgctxt "alt. month" +msgid "January" +msgstr "sausio" + +msgctxt "alt. month" +msgid "February" +msgstr "vasario" + +msgctxt "alt. month" +msgid "March" +msgstr "kovo" + +msgctxt "alt. month" +msgid "April" +msgstr "balandžio" + +msgctxt "alt. month" +msgid "May" +msgstr "gegužės" + +msgctxt "alt. month" +msgid "June" +msgstr "birželio" + +msgctxt "alt. month" +msgid "July" +msgstr "liepos" + +msgctxt "alt. month" +msgid "August" +msgstr "rugpjūčio" + +msgctxt "alt. month" +msgid "September" +msgstr "rugsėjo" + +msgctxt "alt. month" +msgid "October" +msgstr "spalio" + +msgctxt "alt. month" +msgid "November" +msgstr "lapkričio" + +msgctxt "alt. month" +msgid "December" +msgstr "gruodžio" + +msgid "This is not a valid IPv6 address." +msgstr "Tai nėra teisingas IPv6 adresas." + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "%(truncated_text)s…" + +msgid "or" +msgstr "arba" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr "," + +#, python-format +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#, python-format +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#, python-format +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#, python-format +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#, python-format +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#, python-format +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +msgid "Forbidden" +msgstr "Uždrausta" + +msgid "CSRF verification failed. Request aborted." +msgstr "Nepavyko CSRF patvirtinimas. Užklausa nutraukta." + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" +"Jūs matote šią žinutę nes šis puslapis reikalauja CSRF slapuko, kai " +"pateikiama forma. Slapukas reikalaujamas saugumo sumetimais, kad užtikrinti " +"jog jūsų naršyklė nėra užgrobiama trečiųjų asmenų." + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" + +msgid "More information is available with DEBUG=True." +msgstr "Gauti daugiau informacijos galima su DEBUG=True nustatymu." + +msgid "No year specified" +msgstr "Nenurodyti metai" + +msgid "Date out of range" +msgstr "Data išeina iš ribų" + +msgid "No month specified" +msgstr "Nenurodytas mėnuo" + +msgid "No day specified" +msgstr "Nenurodyta diena" + +msgid "No week specified" +msgstr "Nenurodyta savaitė" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "Nėra %(verbose_name_plural)s" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" +"Ateities %(verbose_name_plural)s nėra prieinami, nes %(class_name)s." +"allow_future yra False." + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "Atitinkantis užklausą %(verbose_name)s nerastas" + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "" + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "Neegzistuojantis puslapis (%(page_number)s): %(message)s" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "" + +msgid "Directory indexes are not allowed here." +msgstr "Aplankų indeksai čia neleidžiami." + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "" + +#, python-format +msgid "Index of %(directory)s" +msgstr "%(directory)s indeksas" + +msgid "The install worked successfully! Congratulations!" +msgstr "Diegimas pavyko! Sveikiname!" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" +"Žiūrėti Django %(version)s išleidimo " +"pastabas" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not configured any " +"URLs." +msgstr "" +"Jūs matote šią žinutę dėl to kad Django nustatymų faile įvesta DEBUG = True ir Jūs nenustatėte jokių URL'ų." + +msgid "Django Documentation" +msgstr "Django dokumentacija" + +msgid "Topics, references, & how-to’s" +msgstr "" + +msgid "Tutorial: A Polling App" +msgstr "Pamoka: Apklausos aplikacija" + +msgid "Get started with Django" +msgstr "Pradėti su Django" + +msgid "Django Community" +msgstr "Django Bendrija" + +msgid "Connect, get help, or contribute" +msgstr "Prisijunk, gauk pagalbą arba prisidėk" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/lt/__init__.py b/venv/lib/python3.12/site-packages/django/conf/locale/lt/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/lt/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/lt/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..481d51d1572893cd2ae6ef3c247fb811857099a3 GIT binary patch literal 198 zcmX@j%ge<81o5sX(m?cM5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!O4ZNE&rQ|OP0Yy6 zFHO;RNiEZNN=(kybEFQ_cZ$j>v@Gc?jK&MZmQEdVM^ zOiwM=Pssu+OwP|s)6dCIPRvQw&neN5kI&4@EQycTE2#X%VUwGmQks)$SHudml@W-G PL5z>gjEsy$%s>_Z$D1^Z literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/lt/__pycache__/formats.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/lt/__pycache__/formats.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1921112851776b7c48ac33a2f8817ee385338f6f GIT binary patch literal 1029 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, 2011 +# Edgars Voroboks , 2023-2024 +# Edgars Voroboks , 2017,2022 +# Edgars Voroboks , 2017-2018 +# Jannis Leidel , 2011 +# krikulis , 2014 +# Māris Nartišs , 2016 +# Mariusz Felisiak , 2021 +# Mārtiņš Šulcs , 2018 +# Edgars Voroboks , 2018-2021 +# peterisb , 2016-2017 +# Pēteris Caune, 2023 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-05-22 11:46-0300\n" +"PO-Revision-Date: 2024-08-07 06:49+0000\n" +"Last-Translator: Edgars Voroboks , 2023-2024\n" +"Language-Team: Latvian (http://app.transifex.com/django/django/language/" +"lv/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: lv\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : " +"2);\n" + +msgid "Afrikaans" +msgstr "afrikāņu" + +msgid "Arabic" +msgstr "arābu" + +msgid "Algerian Arabic" +msgstr "Alžīrijas arābu" + +msgid "Asturian" +msgstr "asturiešu" + +msgid "Azerbaijani" +msgstr "azerbaidžāņu" + +msgid "Bulgarian" +msgstr "bulgāru" + +msgid "Belarusian" +msgstr "baltkrievu" + +msgid "Bengali" +msgstr "bengāļu" + +msgid "Breton" +msgstr "bretoņu" + +msgid "Bosnian" +msgstr "bosniešu" + +msgid "Catalan" +msgstr "katalāņu" + +msgid "Central Kurdish (Sorani)" +msgstr "centrālā kurdu (sorani)" + +msgid "Czech" +msgstr "čehu" + +msgid "Welsh" +msgstr "velsiešu" + +msgid "Danish" +msgstr "dāņu" + +msgid "German" +msgstr "vācu" + +msgid "Lower Sorbian" +msgstr "apakšsorbu" + +msgid "Greek" +msgstr "grieķu" + +msgid "English" +msgstr "angļu" + +msgid "Australian English" +msgstr "Austrālijas angļu" + +msgid "British English" +msgstr "Lielbritānijas angļu" + +msgid "Esperanto" +msgstr "esperanto" + +msgid "Spanish" +msgstr "spāņu" + +msgid "Argentinian Spanish" +msgstr "Argentīnas spāņu" + +msgid "Colombian Spanish" +msgstr "Kolumbijas spāņu" + +msgid "Mexican Spanish" +msgstr "Meksikas spāņu" + +msgid "Nicaraguan Spanish" +msgstr "Nikaragvas spāņu" + +msgid "Venezuelan Spanish" +msgstr "Venecuēlas spāņu" + +msgid "Estonian" +msgstr "igauņu" + +msgid "Basque" +msgstr "basku" + +msgid "Persian" +msgstr "persiešu" + +msgid "Finnish" +msgstr "somu" + +msgid "French" +msgstr "franču" + +msgid "Frisian" +msgstr "frīzu" + +msgid "Irish" +msgstr "īru" + +msgid "Scottish Gaelic" +msgstr "skotu gēlu" + +msgid "Galician" +msgstr "galīciešu" + +msgid "Hebrew" +msgstr "ebreju" + +msgid "Hindi" +msgstr "hindu" + +msgid "Croatian" +msgstr "horvātu" + +msgid "Upper Sorbian" +msgstr "augšsorbu" + +msgid "Hungarian" +msgstr "ungāru" + +msgid "Armenian" +msgstr "armēņu" + +msgid "Interlingua" +msgstr "modernā latīņu" + +msgid "Indonesian" +msgstr "indonēziešu" + +msgid "Igbo" +msgstr "igbo" + +msgid "Ido" +msgstr "ido" + +msgid "Icelandic" +msgstr "islandiešu" + +msgid "Italian" +msgstr "itāļu" + +msgid "Japanese" +msgstr "japāņu" + +msgid "Georgian" +msgstr "gruzīnu" + +msgid "Kabyle" +msgstr "kabiliešu" + +msgid "Kazakh" +msgstr "kazahu" + +msgid "Khmer" +msgstr "khmeru" + +msgid "Kannada" +msgstr "kannādiešu" + +msgid "Korean" +msgstr "korejiešu" + +msgid "Kyrgyz" +msgstr "kirgīzu" + +msgid "Luxembourgish" +msgstr "luksemburgiešu" + +msgid "Lithuanian" +msgstr "lietuviešu" + +msgid "Latvian" +msgstr "latviešu" + +msgid "Macedonian" +msgstr "maķedoniešu" + +msgid "Malayalam" +msgstr "malajalu" + +msgid "Mongolian" +msgstr "mongoļu" + +msgid "Marathi" +msgstr "maratiešu" + +msgid "Malay" +msgstr "malajiešu" + +msgid "Burmese" +msgstr "birmiešu" + +msgid "Norwegian Bokmål" +msgstr "norvēģu bokmål" + +msgid "Nepali" +msgstr "nepāliešu" + +msgid "Dutch" +msgstr "holandiešu" + +msgid "Norwegian Nynorsk" +msgstr "norvēģu nynorsk" + +msgid "Ossetic" +msgstr "osetiešu" + +msgid "Punjabi" +msgstr "pandžabu" + +msgid "Polish" +msgstr "poļu" + +msgid "Portuguese" +msgstr "portugāļu" + +msgid "Brazilian Portuguese" +msgstr "Brazīlijas portugāļu" + +msgid "Romanian" +msgstr "rumāņu" + +msgid "Russian" +msgstr "krievu" + +msgid "Slovak" +msgstr "slovāku" + +msgid "Slovenian" +msgstr "slovēņu" + +msgid "Albanian" +msgstr "albāņu" + +msgid "Serbian" +msgstr "serbu" + +msgid "Serbian Latin" +msgstr "serbu latīņu" + +msgid "Swedish" +msgstr "zviedru" + +msgid "Swahili" +msgstr "svahili" + +msgid "Tamil" +msgstr "tamilu" + +msgid "Telugu" +msgstr "telugu" + +msgid "Tajik" +msgstr "tadžiku" + +msgid "Thai" +msgstr "taizemiešu" + +msgid "Turkmen" +msgstr "turkmēņu" + +msgid "Turkish" +msgstr "turku" + +msgid "Tatar" +msgstr "tatāru" + +msgid "Udmurt" +msgstr "udmurtu" + +msgid "Uyghur" +msgstr "uiguru" + +msgid "Ukrainian" +msgstr "ukraiņu" + +msgid "Urdu" +msgstr "urdu" + +msgid "Uzbek" +msgstr "Uzbeku" + +msgid "Vietnamese" +msgstr "vjetnamiešu" + +msgid "Simplified Chinese" +msgstr "vienkāršā ķīniešu" + +msgid "Traditional Chinese" +msgstr "tradicionālā ķīniešu" + +msgid "Messages" +msgstr "Ziņojumi" + +msgid "Site Maps" +msgstr "Lapas kartes" + +msgid "Static Files" +msgstr "Statiski faili" + +msgid "Syndication" +msgstr "Sindikācija" + +#. Translators: String used to replace omitted page numbers in elided page +#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10]. +msgid "…" +msgstr "…" + +msgid "That page number is not an integer" +msgstr "Lapas numurs nav cipars" + +msgid "That page number is less than 1" +msgstr "Lapas numurs ir mazāks par 1" + +msgid "That page contains no results" +msgstr "Lapa nesatur rezultātu" + +msgid "Enter a valid value." +msgstr "Ievadiet korektu vērtību." + +msgid "Enter a valid domain name." +msgstr "Ievadiet derīgu domēna vārdu." + +msgid "Enter a valid URL." +msgstr "Ievadiet korektu URL adresi." + +msgid "Enter a valid integer." +msgstr "Ievadiet veselu skaitli." + +msgid "Enter a valid email address." +msgstr "Ievadiet korektu e-pasta adresi" + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" +"Ievadiet korektu \"identifikatora\" vērtību, kas satur tikai burtus, " +"ciparus, apakšsvītras vai defises." + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" +"Ievadiet korektu \"identifikatora\" vērtību, kas satur tikai Unikoda burtus, " +"ciparus, apakšsvītras vai defises." + +#, python-format +msgid "Enter a valid %(protocol)s address." +msgstr "Ievadiet derīgu %(protocol)s adresi." + +msgid "IPv4" +msgstr "IPv4" + +msgid "IPv6" +msgstr "IPv6" + +msgid "IPv4 or IPv6" +msgstr "IPv4 vai IPv6" + +msgid "Enter only digits separated by commas." +msgstr "Ievadiet tikai numurus, atdalītus ar komatiem." + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "Nodrošiniet, ka vērtība ir %(limit_value)s (tā satur %(show_value)s)." + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "Šai vērtībai jabūt mazākai vai vienādai ar %(limit_value)s." + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "Vērtībai jābūt lielākai vai vienādai ar %(limit_value)s." + +#, python-format +msgid "Ensure this value is a multiple of step size %(limit_value)s." +msgstr "Vērtībai jābūt reizinājumam no %(limit_value)s." + +#, python-format +msgid "" +"Ensure this value is a multiple of step size %(limit_value)s, starting from " +"%(offset)s, e.g. %(offset)s, %(valid_value1)s, %(valid_value2)s, and so on." +msgstr "" +"Pārliecinieties, ka šī vērtība ir soļa lieluma %(limit_value)s reizinājums, " +"sākot no %(offset)s, piem. %(offset)s, %(valid_value1)s, %(valid_value2)s, " +"un tā tālāk." + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Vērtībai jābūt vismaz %(limit_value)d zīmēm (tai ir %(show_value)d)." +msgstr[1] "" +"Vērtībai jābūt vismaz %(limit_value)d zīmei (tai ir %(show_value)d)." +msgstr[2] "" +"Vērtībai jābūt vismaz %(limit_value)d zīmēm (tai ir %(show_value)d)." + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Vērtībai jābūt ne vairāk kā %(limit_value)d zīmēm (tai ir %(show_value)d)." +msgstr[1] "" +"Vērtībai jābūt ne vairāk kā %(limit_value)d zīmei (tai ir %(show_value)d)." +msgstr[2] "" +"Vērtībai jābūt ne vairāk kā %(limit_value)d zīmēm (tai ir %(show_value)d)." + +msgid "Enter a number." +msgstr "Ievadiet skaitli." + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "Pārliecinieties, ka kopā nav vairāk par %(max)s ciparu." +msgstr[1] "Pārliecinieties, ka kopā nav vairāk par %(max)s cipariem." +msgstr[2] "Pārliecinieties, ka kopā nav vairāk par %(max)s cipariem." + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "" +"Pārliecinieties, ka aiz decimālās zīmes nav vairāk par %(max)s ciparu." +msgstr[1] "" +"Pārliecinieties, ka aiz decimālās zīmes nav vairāk par %(max)s cipariem." +msgstr[2] "" +"Pārliecinieties, ka aiz decimālās zīmes nav vairāk par %(max)s cipariem." + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "" +"Pārliecinieties, ka pirms decimālās zīmes nav vairāk par %(max)s ciparu." +msgstr[1] "" +"Pārliecinieties, ka pirms decimālās zīmes nav vairāk par %(max)s cipariem." +msgstr[2] "" +"Pārliecinieties, ka pirms decimālās zīmes nav vairāk par %(max)s cipariem." + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" +"Faila paplašinājums “%(extension)s” nav atļauts. Atļautie paplašinājumi ir: " +"%(allowed_extensions)s." + +msgid "Null characters are not allowed." +msgstr "Nulles rakstzīmes nav atļautas." + +msgid "and" +msgstr "un" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "%(model_name)s ar šādu lauka %(field_labels)s vērtību jau eksistē." + +#, python-format +msgid "Constraint “%(name)s” is violated." +msgstr "Ierobežojums “%(name)s” ir pārkāpts." + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "Vērtība %(value)r ir nederīga izvēle." + +msgid "This field cannot be null." +msgstr "Šis lauks nevar būt tukšs, null." + +msgid "This field cannot be blank." +msgstr "Šis lauks nevar būt tukšs" + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "%(model_name)s ar šādu lauka %(field_label)s vērtību jau eksistē." + +#. Translators: The 'lookup_type' is one of 'date', 'year' or +#. 'month'. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "%(field_label)s jābūt unikālam %(date_field_label)s %(lookup_type)s." + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "Lauks ar tipu: %(field_type)s" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "“%(value)s” vērtībai ir jābūt vai nu True, vai False." + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "“%(value)s” vērtībai ir jābūt True, False vai None." + +msgid "Boolean (Either True or False)" +msgstr "Boolean (vai nu True, vai False)" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "Simbolu virkne (līdz pat %(max_length)s)" + +msgid "String (unlimited)" +msgstr "Simbolu virkne (neierobežota)" + +msgid "Comma-separated integers" +msgstr "Ar komatu atdalīti veselie skaitļi" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" +"“%(value)s” vērtība ir nepareizā formātā. Tai ir jābūt YYYY-MM-DD formātā." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" +"“%(value)s” vērtība ir pareizā formātā (YYYY-MM-DD), bet tas nav derīgs " +"datums." + +msgid "Date (without time)" +msgstr "Datums (bez laika)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" +"“%(value)s” vērtība ir nepareizā formātā. Tai ir jābūt YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] formātā." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" +"“%(value)s” vērtība ir pareizā formātā (YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ]), " +"bet tas nav derīgs datums/laiks." + +msgid "Date (with time)" +msgstr "Datums (ar laiku)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "“%(value)s” vērtībai ir jābūt decimālam skaitlim." + +msgid "Decimal number" +msgstr "Decimāls skaitlis" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" +"“%(value)s” vērtība ir nepareizā formātā. Tai ir jābūt [DD] [[HH:]MM:]ss[." +"uuuuuu] formātā." + +msgid "Duration" +msgstr "Ilgums" + +msgid "Email address" +msgstr "E-pasta adrese" + +msgid "File path" +msgstr "Faila ceļš" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "“%(value)s” vērtībai ir jābūt daļskaitlim." + +msgid "Floating point number" +msgstr "Peldošā komata skaitlis" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "“%(value)s” vērtībai ir jābūt veselam skaitlim." + +msgid "Integer" +msgstr "Vesels skaitlis" + +msgid "Big (8 byte) integer" +msgstr "Liels (8 baitu) vesels skaitlis" + +msgid "Small integer" +msgstr "Mazs vesels skaitlis" + +msgid "IPv4 address" +msgstr "IPv4 adrese" + +msgid "IP address" +msgstr "IP adrese" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "“%(value)s” vērtībai ir jābūt None, True vai False." + +msgid "Boolean (Either True, False or None)" +msgstr "Boolean (vai nu True, False, vai None)" + +msgid "Positive big integer" +msgstr "Liels pozitīvs vesels skaitlis" + +msgid "Positive integer" +msgstr "Naturāls skaitlis" + +msgid "Positive small integer" +msgstr "Mazs pozitīvs vesels skaitlis" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "Identifikators (līdz %(max_length)s)" + +msgid "Text" +msgstr "Teksts" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" +"“%(value)s” vērtība ir nepareizā formātā. Tai ir jābūt HH:MM[:ss[.uuuuuu]] " +"formātā." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" +"“%(value)s” vērtība ir pareizā formātā (HH:MM[:ss[.uuuuuu]]), bet tas nav " +"derīgs laiks." + +msgid "Time" +msgstr "Laiks" + +msgid "URL" +msgstr "URL" + +msgid "Raw binary data" +msgstr "Bināri dati" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "“%(value)s” nav derīgs UUID." + +msgid "Universally unique identifier" +msgstr "Universāli unikāls identifikators" + +msgid "File" +msgstr "Fails" + +msgid "Image" +msgstr "Attēls" + +msgid "A JSON object" +msgstr "JSON objekts" + +msgid "Value must be valid JSON." +msgstr "Vērtībai ir jābūt derīgam JSON." + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "%(model)s instance ar %(field)s %(value)r neeksistē." + +msgid "Foreign Key (type determined by related field)" +msgstr "Ārējā atslēga (tipu nosaka lauks uz kuru attiecas)" + +msgid "One-to-one relationship" +msgstr "Attiecība viens pret vienu" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "%(from)s-%(to)s attiecība" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "%(from)s-%(to)s attiecības" + +msgid "Many-to-many relationship" +msgstr "Attiecība daudzi pret daudziem" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr ":?.!" + +msgid "This field is required." +msgstr "Šis lauks ir obligāts." + +msgid "Enter a whole number." +msgstr "Ievadiet veselu skaitli." + +msgid "Enter a valid date." +msgstr "Ievadiet korektu datumu." + +msgid "Enter a valid time." +msgstr "Ievadiet korektu laiku." + +msgid "Enter a valid date/time." +msgstr "Ievadiet korektu datumu/laiku." + +msgid "Enter a valid duration." +msgstr "Ievadiet korektu ilgumu." + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "Dienu skaitam jābūt no {min_days} līdz {max_days}." + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "Nav nosūtīts fails. Pārbaudiet formas kodējuma tipu." + +msgid "No file was submitted." +msgstr "Netika nosūtīts fails." + +msgid "The submitted file is empty." +msgstr "Jūsu nosūtītais fails ir tukšs." + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" +"Faila nosaukuma garumam jābūt ne vairāk kā %(max)d zīmēm (tas ir %(length)d)." +msgstr[1] "" +"Faila nosaukuma garumam jābūt ne vairāk kā %(max)d zīmei (tas ir %(length)d)." +msgstr[2] "" +"Faila nosaukuma garumam jābūt ne vairāk kā %(max)d zīmēm (tas ir %(length)d)." + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "" +"Vai nu iesniedziet failu, vai atzīmējiet tukšo izvēles rūtiņu, bet ne abus." + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" +"Augšupielādējiet korektu attēlu. Fails, ko augšupielādējāt, vai nu nav " +"attēls, vai arī ir bojāts." + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "Izvēlieties korektu izvēli. %(value)s nav pieejamo izvēļu sarakstā." + +msgid "Enter a list of values." +msgstr "Ievadiet sarakstu ar vērtībām." + +msgid "Enter a complete value." +msgstr "Ievadiet pilnu vērtību." + +msgid "Enter a valid UUID." +msgstr "Ievadiet derīgu UUID." + +msgid "Enter a valid JSON." +msgstr "Ievadiet korektu JSON." + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr ":" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "(Slēpts lauks %(name)s) %(error)s" + +#, python-format +msgid "" +"ManagementForm data is missing or has been tampered with. Missing fields: " +"%(field_names)s. You may need to file a bug report if the issue persists." +msgstr "" +"ManagementForm trūkst datu vai tie ir mainīti. Trūkstošie lauki: " +"%(field_names)s. Paziņojiet par kļūdu, ja problēma atkārtojas." + +#, python-format +msgid "Please submit at most %(num)d form." +msgid_plural "Please submit at most %(num)d forms." +msgstr[0] "Lūdzu iesniedziet ne vairāk par %(num)d formām." +msgstr[1] "Lūdzu iesniedziet ne vairāk par %(num)d formu." +msgstr[2] "Lūdzu iesniedziet ne vairāk par %(num)d formām." + +#, python-format +msgid "Please submit at least %(num)d form." +msgid_plural "Please submit at least %(num)d forms." +msgstr[0] "Lūdzu iesniedziet vismaz %(num)d formas." +msgstr[1] "Lūdzu iesniedziet vismaz %(num)d formu." +msgstr[2] "Lūdzu iesniedziet vismaz %(num)d formas." + +msgid "Order" +msgstr "Kārtība" + +msgid "Delete" +msgstr "Dzēst" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "Lūdzu izlabojiet dublicētos datus priekš %(field)s." + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "" +"Lūdzu izlabojiet dublicētos datus laukam %(field)s, kam jābūt unikālam." + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"Lūdzu izlabojiet dublicētos datus laukam %(field_name)s, kam jābūt unikālam " +"priekš %(lookup)s iekš %(date_field)s." + +msgid "Please correct the duplicate values below." +msgstr "Lūdzu izlabojiet dublicētās vērtības zemāk." + +msgid "The inline value did not match the parent instance." +msgstr "Iekļautā vērtība nesakrita ar vecāka instanci." + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "Izvēlieties pareizu izvēli. Jūsu izvēle neietilpst pieejamo sarakstā." + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "“%(pk)s” nav derīga vērtība." + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" +"%(datetime)s vērtība nevar tikt attēlota %(current_timezone)s laika zonā; tā " +"var būt neskaidra vai neeksistē." + +msgid "Clear" +msgstr "Notīrīt" + +msgid "Currently" +msgstr "Pašlaik" + +msgid "Change" +msgstr "Mainīt" + +msgid "Unknown" +msgstr "Nezināms" + +msgid "Yes" +msgstr "Jā" + +msgid "No" +msgstr "Nē" + +#. Translators: Please do not add spaces around commas. +msgid "yes,no,maybe" +msgstr "jā,nē,varbūt" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)d baits" +msgstr[1] "%(size)d baiti" +msgstr[2] "%(size)d baitu" + +#, python-format +msgid "%s KB" +msgstr "%s KB" + +#, python-format +msgid "%s MB" +msgstr "%s MB" + +#, python-format +msgid "%s GB" +msgstr "%s GB" + +#, python-format +msgid "%s TB" +msgstr "%s TB" + +#, python-format +msgid "%s PB" +msgstr "%s PB" + +msgid "p.m." +msgstr "p.m." + +msgid "a.m." +msgstr "a.m." + +msgid "PM" +msgstr "PM" + +msgid "AM" +msgstr "AM" + +msgid "midnight" +msgstr "pusnakts" + +msgid "noon" +msgstr "dienasvidus" + +msgid "Monday" +msgstr "pirmdiena" + +msgid "Tuesday" +msgstr "otrdiena" + +msgid "Wednesday" +msgstr "trešdiena" + +msgid "Thursday" +msgstr "ceturtdiena" + +msgid "Friday" +msgstr "piektdiena" + +msgid "Saturday" +msgstr "sestdiena" + +msgid "Sunday" +msgstr "svētdiena" + +msgid "Mon" +msgstr "pr" + +msgid "Tue" +msgstr "ot" + +msgid "Wed" +msgstr "tr" + +msgid "Thu" +msgstr "ce" + +msgid "Fri" +msgstr "pk" + +msgid "Sat" +msgstr "se" + +msgid "Sun" +msgstr "sv" + +msgid "January" +msgstr "janvāris" + +msgid "February" +msgstr "februāris" + +msgid "March" +msgstr "marts" + +msgid "April" +msgstr "aprīlis" + +msgid "May" +msgstr "maijs" + +msgid "June" +msgstr "jūnijs" + +msgid "July" +msgstr "jūlijs" + +msgid "August" +msgstr "augusts" + +msgid "September" +msgstr "septembris" + +msgid "October" +msgstr "oktobris" + +msgid "November" +msgstr "novembris" + +msgid "December" +msgstr "decembris" + +msgid "jan" +msgstr "jan" + +msgid "feb" +msgstr "feb" + +msgid "mar" +msgstr "mar" + +msgid "apr" +msgstr "apr" + +msgid "may" +msgstr "mai" + +msgid "jun" +msgstr "jūn" + +msgid "jul" +msgstr "jūl" + +msgid "aug" +msgstr "aug" + +msgid "sep" +msgstr "sep" + +msgid "oct" +msgstr "okt" + +msgid "nov" +msgstr "nov" + +msgid "dec" +msgstr "dec" + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "jan." + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "feb." + +msgctxt "abbrev. month" +msgid "March" +msgstr "marts" + +msgctxt "abbrev. month" +msgid "April" +msgstr "aprīlis" + +msgctxt "abbrev. month" +msgid "May" +msgstr "maijs" + +msgctxt "abbrev. month" +msgid "June" +msgstr "jūnijs" + +msgctxt "abbrev. month" +msgid "July" +msgstr "jūlijs" + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "aug." + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "sept." + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "okt." + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "nov." + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "dec." + +msgctxt "alt. month" +msgid "January" +msgstr "janvāris" + +msgctxt "alt. month" +msgid "February" +msgstr "februāris" + +msgctxt "alt. month" +msgid "March" +msgstr "marts" + +msgctxt "alt. month" +msgid "April" +msgstr "aprīlis" + +msgctxt "alt. month" +msgid "May" +msgstr "maijs" + +msgctxt "alt. month" +msgid "June" +msgstr "jūnijs" + +msgctxt "alt. month" +msgid "July" +msgstr "jūlijs" + +msgctxt "alt. month" +msgid "August" +msgstr "augusts" + +msgctxt "alt. month" +msgid "September" +msgstr "septembris" + +msgctxt "alt. month" +msgid "October" +msgstr "oktobris" + +msgctxt "alt. month" +msgid "November" +msgstr "novembris" + +msgctxt "alt. month" +msgid "December" +msgstr "decembris" + +msgid "This is not a valid IPv6 address." +msgstr "Šī nav derīga IPv6 adrese." + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "%(truncated_text)s…" + +msgid "or" +msgstr "vai" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr ", " + +#, python-format +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "%(num)d gadi" +msgstr[1] "%(num)d gads" +msgstr[2] "%(num)d gadi" + +#, python-format +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "%(num)d mēneši" +msgstr[1] "%(num)d mēnesis" +msgstr[2] "%(num)d mēneši" + +#, python-format +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "%(num)d nedēļas" +msgstr[1] "%(num)d nedēļa" +msgstr[2] "%(num)d nedēļas" + +#, python-format +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "%(num)d dienas" +msgstr[1] "%(num)d diena" +msgstr[2] "%(num)d dienas" + +#, python-format +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "%(num)d stundas" +msgstr[1] "%(num)d stunda" +msgstr[2] "%(num)d stubdas" + +#, python-format +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "%(num)d minūtes" +msgstr[1] "%(num)d minūte" +msgstr[2] "%(num)d minūtes" + +msgid "Forbidden" +msgstr "Aizliegts" + +msgid "CSRF verification failed. Request aborted." +msgstr "CSRF pārbaude neizdevās. Pieprasījums pārtrauks." + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" +"Jūs redzat šo paziņojumu, jo jūsu pārlūkprogrammai ir jānosūta “Referer " +"header” šai HTTPS vietnei, taču tā netika nosūtīta. Šī galvene ir " +"nepieciešama drošības apsvērumu dēļ, lai pārliecinātos, ka jūsu " +"pārlūkprogrammas komunikācijas datus nepārtver trešās puses." + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" +"Ja esat konfigurējis savu pārlūkprogrammu, lai atspējotu “Referer” headerus, " +"lūdzu, atkārtoti iespējojiet tos vismaz šai vietnei, HTTPS savienojumiem vai " +"“same-origin” pieprasījumiem." + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" +"Ja jūs izmantojat tagu vai " +"iekļaujat “Referrer-Policy: no-referrer” headeri, lūdzu noņemiet tos. CSRF " +"aizsardzībai ir nepieciešams, lai “Referer” headerī tiktu veikta strikta " +"pārvirzītāja pārbaude. Ja jūs domājat par privātumu, tad izmantojiet tādas " +"alternatīvas kā priekš saitēm uz trešo pušu vietnēm." + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" +"Jūs redzat šo ziņojumu, jo, iesniedzot veidlapas, šai vietnei ir " +"nepieciešams CSRF sīkfails. Šis sīkfails ir vajadzīgs drošības apsvērumu " +"dēļ, lai pārliecinātos, ka trešās personas nepārņems kontroli pār jūsu " +"pārlūkprogrammu." + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" +"Ja esat konfigurējis pārlūkprogrammu, lai atspējotu sīkdatnes, lūdzu, " +"atkārtoti iespējojiet tās vismaz šai vietnei vai “same-origin” " +"pieprasījumiem." + +msgid "More information is available with DEBUG=True." +msgstr "Vairāk informācijas ir pieejams ar DEBUG=True" + +msgid "No year specified" +msgstr "Nav norādīts gads" + +msgid "Date out of range" +msgstr "Datums ir ārpus diapazona" + +msgid "No month specified" +msgstr "Nav norādīts mēnesis" + +msgid "No day specified" +msgstr "Nav norādīta diena" + +msgid "No week specified" +msgstr "Nav norādīta nedēļa" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "%(verbose_name_plural)s nav pieejami" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" +"Nākotne %(verbose_name_plural)s nav pieejama, jo %(class_name)s.allow_future " +"ir False." + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "Nepareiza datuma rinda “%(datestr)s” norādītajā formātā “%(format)s”" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "Neviens %(verbose_name)s netika atrasts" + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "Lapa nav “pēdējā”, kā arī tā nevar tikt konvertēta par ciparu." + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "Nepareiza lapa (%(page_number)s): %(message)s" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "Tukšs saraksts un \"%(class_name)s.allow_empty\" ir False." + +msgid "Directory indexes are not allowed here." +msgstr "Direktoriju indeksi nav atļauti." + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "\"%(path)s\" neeksistē" + +#, python-format +msgid "Index of %(directory)s" +msgstr "%(directory)s saturs" + +msgid "The install worked successfully! Congratulations!" +msgstr "Instalācija veiksmīga! Apsveicam!" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" +"Apskatīt laidiena piezīmes Django %(version)s" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not " +"configured any URLs." +msgstr "" +"Jūs redziet šo lapu, jo DEBUG=True ir iestatījumu failā un Jūs neesiet " +"konfigurējis nevienu saiti." + +msgid "Django Documentation" +msgstr "Django Dokumentācija" + +msgid "Topics, references, & how-to’s" +msgstr "Tēmas, atsauces, & how-to" + +msgid "Tutorial: A Polling App" +msgstr "Apmācība: Balsošanas aplikācija" + +msgid "Get started with Django" +msgstr "Sāciet ar Django" + +msgid "Django Community" +msgstr "Django Komūna" + +msgid "Connect, get help, or contribute" +msgstr "Sazinieties, saņemiet palīdzību vai sniedziet ieguldījumu" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/lv/__init__.py b/venv/lib/python3.12/site-packages/django/conf/locale/lv/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/lv/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/lv/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ac42ba36220a9aa4621f26e41d9e73975ffd4a9b GIT binary patch literal 198 zcmX@j%ge<81o5sX(m?cM5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!O4ZNE&rQ|OP0Yy6 zFHO;RNiEZNN=(kybEFQ_cZ$j>v@Gc?jK&MZmQEdVM^ zOiwM=Pssu+OwP|s)6dCIPRvQw&neT7kI&4@EQycTE2#X%VUwGmQks)$SHudml@W-G PL5z>gjEsy$%s>_Z$N4mk literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/lv/__pycache__/formats.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/lv/__pycache__/formats.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8d89b3ec358a6cb1be91b45cc614812b813219b7 GIT binary patch literal 1037 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 DWi!LY literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/mk/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/conf/locale/mk/LC_MESSAGES/django.po new file mode 100644 index 0000000000..ecd62ceb3a --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/mk/LC_MESSAGES/django.po @@ -0,0 +1,1273 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Bojan Drangovski , 2021 +# Claude Paroz , 2020 +# dekomote , 2015 +# Jannis Leidel , 2011 +# Vasil Vangelovski , 2016-2017 +# Vasil Vangelovski , 2013-2015 +# Vasil Vangelovski , 2011-2013 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-01-15 09:00+0100\n" +"PO-Revision-Date: 2021-05-12 22:47+0000\n" +"Last-Translator: Bojan Drangovski \n" +"Language-Team: Macedonian (http://www.transifex.com/django/django/language/" +"mk/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: mk\n" +"Plural-Forms: nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;\n" + +msgid "Afrikaans" +msgstr "Африканс" + +msgid "Arabic" +msgstr "Арапски" + +msgid "Algerian Arabic" +msgstr "" + +msgid "Asturian" +msgstr "Астуриски" + +msgid "Azerbaijani" +msgstr "Азербејџански" + +msgid "Bulgarian" +msgstr "Бугарски" + +msgid "Belarusian" +msgstr "Белоруски" + +msgid "Bengali" +msgstr "Бенгалски" + +msgid "Breton" +msgstr "Бретонски" + +msgid "Bosnian" +msgstr "Босански" + +msgid "Catalan" +msgstr "Каталански" + +msgid "Czech" +msgstr "Чешки" + +msgid "Welsh" +msgstr "Велшки" + +msgid "Danish" +msgstr "Дански" + +msgid "German" +msgstr "Германски" + +msgid "Lower Sorbian" +msgstr "Долно Лужичко-Српски" + +msgid "Greek" +msgstr "Грчки" + +msgid "English" +msgstr "Англиски" + +msgid "Australian English" +msgstr "Австралиски англиски" + +msgid "British English" +msgstr "Британски англиски" + +msgid "Esperanto" +msgstr "Есперанто" + +msgid "Spanish" +msgstr "Шпански" + +msgid "Argentinian Spanish" +msgstr "Аргентински шпански" + +msgid "Colombian Spanish" +msgstr "Колумбиски Шпански" + +msgid "Mexican Spanish" +msgstr "Мексикански шпански" + +msgid "Nicaraguan Spanish" +msgstr "Никарагва шпански" + +msgid "Venezuelan Spanish" +msgstr "Венецуела шпански" + +msgid "Estonian" +msgstr "Естонски" + +msgid "Basque" +msgstr "Баскиски" + +msgid "Persian" +msgstr "Персиски" + +msgid "Finnish" +msgstr "Фински" + +msgid "French" +msgstr "Француски" + +msgid "Frisian" +msgstr "Фризиски" + +msgid "Irish" +msgstr "Ирски" + +msgid "Scottish Gaelic" +msgstr "Шкотски Галски" + +msgid "Galician" +msgstr "Галски" + +msgid "Hebrew" +msgstr "Еврејски" + +msgid "Hindi" +msgstr "Хинди" + +msgid "Croatian" +msgstr "Хрватски" + +msgid "Upper Sorbian" +msgstr "Горно Лужичко-Српски" + +msgid "Hungarian" +msgstr "Унгарски" + +msgid "Armenian" +msgstr "Ерменски" + +msgid "Interlingua" +msgstr "Интерлингва" + +msgid "Indonesian" +msgstr "Индонезиски" + +msgid "Igbo" +msgstr "" + +msgid "Ido" +msgstr "Идо" + +msgid "Icelandic" +msgstr "Исландски" + +msgid "Italian" +msgstr "Италијански" + +msgid "Japanese" +msgstr "Јапонски" + +msgid "Georgian" +msgstr "Грузиски" + +msgid "Kabyle" +msgstr "" + +msgid "Kazakh" +msgstr "Казахстански" + +msgid "Khmer" +msgstr "Кмер" + +msgid "Kannada" +msgstr "Канада" + +msgid "Korean" +msgstr "Корејски" + +msgid "Kyrgyz" +msgstr "" + +msgid "Luxembourgish" +msgstr "Луксембуршки" + +msgid "Lithuanian" +msgstr "Литвански" + +msgid "Latvian" +msgstr "Латвиски" + +msgid "Macedonian" +msgstr "Македонски" + +msgid "Malayalam" +msgstr "Малајалам" + +msgid "Mongolian" +msgstr "Монголски" + +msgid "Marathi" +msgstr "Марати" + +msgid "Burmese" +msgstr "Бурмански" + +msgid "Norwegian Bokmål" +msgstr "Норвешки Бокмел" + +msgid "Nepali" +msgstr "Непалски" + +msgid "Dutch" +msgstr "Холандски" + +msgid "Norwegian Nynorsk" +msgstr "Нинорск норвешки" + +msgid "Ossetic" +msgstr "Осетски" + +msgid "Punjabi" +msgstr "Пунџаби" + +msgid "Polish" +msgstr "Полски" + +msgid "Portuguese" +msgstr "Португалкски" + +msgid "Brazilian Portuguese" +msgstr "Бразилско португалски" + +msgid "Romanian" +msgstr "Романски" + +msgid "Russian" +msgstr "Руски" + +msgid "Slovak" +msgstr "Словачки" + +msgid "Slovenian" +msgstr "Словенечки" + +msgid "Albanian" +msgstr "Албански" + +msgid "Serbian" +msgstr "Српски" + +msgid "Serbian Latin" +msgstr "Српски Латиница" + +msgid "Swedish" +msgstr "Шведски" + +msgid "Swahili" +msgstr "Свахили" + +msgid "Tamil" +msgstr "Тамил" + +msgid "Telugu" +msgstr "Телугу" + +msgid "Tajik" +msgstr "" + +msgid "Thai" +msgstr "Тајландски" + +msgid "Turkmen" +msgstr "" + +msgid "Turkish" +msgstr "Турски" + +msgid "Tatar" +msgstr "Татарски" + +msgid "Udmurt" +msgstr "Удмурт" + +msgid "Ukrainian" +msgstr "Украински" + +msgid "Urdu" +msgstr "Урду" + +msgid "Uzbek" +msgstr "" + +msgid "Vietnamese" +msgstr "Виетнамски" + +msgid "Simplified Chinese" +msgstr "Поедноставен кинески" + +msgid "Traditional Chinese" +msgstr "Традиционален кинески" + +msgid "Messages" +msgstr "Пораки" + +msgid "Site Maps" +msgstr "Сајт мапи" + +msgid "Static Files" +msgstr "Статички датотеки" + +msgid "Syndication" +msgstr "Синдикација" + +#. Translators: String used to replace omitted page numbers in elided page +#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10]. +msgid "…" +msgstr "" + +msgid "That page number is not an integer" +msgstr "Тој број на страна не е цел број" + +msgid "That page number is less than 1" +msgstr "Тој број на страна е помал од 1" + +msgid "That page contains no results" +msgstr "Таа страна не содржи резултати" + +msgid "Enter a valid value." +msgstr "Внесете правилна вредност." + +msgid "Enter a valid URL." +msgstr "Внесете правилна веб адреса." + +msgid "Enter a valid integer." +msgstr "Внесете валиден цел број." + +msgid "Enter a valid email address." +msgstr "Внесете валидна email адреса." + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" + +msgid "Enter a valid IPv4 address." +msgstr "Внесeте правилна IPv4 адреса." + +msgid "Enter a valid IPv6 address." +msgstr "Внесете валидна IPv6 адреса." + +msgid "Enter a valid IPv4 or IPv6 address." +msgstr "Внесете валидна IPv4 или IPv6 адреса." + +msgid "Enter only digits separated by commas." +msgstr "Внесете само цифри одделени со запирки." + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "" +"Осигурајте се дека оваа вредност е %(limit_value)s (моментално е " +"%(show_value)s)." + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "" +"Осигурајте се дека оваа вредност е помала или еднаква со %(limit_value)s." + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "" +"Осигурајте се дека оваа вредност е поголема или еднаква со %(limit_value)s." + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Осигурајте се дека оваа вредност има најмалку %(limit_value)d карактер (има " +"%(show_value)d)." +msgstr[1] "" +"Осигурајте се дека оваа вредност има најмалку %(limit_value)d карактери (има " +"%(show_value)d)." + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Осигурајте се дека оваа вредност има најмногу %(limit_value)d карактер (има " +"%(show_value)d)." +msgstr[1] "" +"Осигурајте се дека оваа вредност има најмногу %(limit_value)d карактери (има " +"%(show_value)d)." + +msgid "Enter a number." +msgstr "Внесете број." + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "Осигурајте се дека вкупно нема повеќе од %(max)s цифра." +msgstr[1] "Осигурајте се дека вкупно нема повеќе од %(max)s цифри." + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "Осигурајте се дека нема повеќе од %(max)s децимално место." +msgstr[1] "Осигурајте се дека нема повеќе од %(max)s децимални места." + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "" +"Осигурајте се дека нема повеќе одs %(max)s цифра пред децималната запирка." +msgstr[1] "" +"Осигурајте се дека нема повеќе од %(max)s цифри пред децималната запирка." + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" + +msgid "Null characters are not allowed." +msgstr "Null карактери не се дозволени." + +msgid "and" +msgstr "и" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "%(model_name)s со ова %(field_labels)s веќе постојат." + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "Вредноста %(value)r не е валиден избор." + +msgid "This field cannot be null." +msgstr "Оваа вредност неможе да биде null." + +msgid "This field cannot be blank." +msgstr "Ова поле не може да биде празно" + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "%(model_name)s со %(field_label)s веќе постои." + +#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'. +#. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" +"%(field_label)s мора да биде уникатно за %(date_field_label)s " +"%(lookup_type)s." + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "Поле од тип: %(field_type)s" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "Вредноста '%(value)s' мора да биде точно или неточно." + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "" + +msgid "Boolean (Either True or False)" +msgstr "Логичка (или точно или неточно)" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "Нишка од знаци (текст) (до %(max_length)s карактери)" + +msgid "Comma-separated integers" +msgstr "Целобројни вредности одделени со запирка" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" + +msgid "Date (without time)" +msgstr "Датум (без време)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" + +msgid "Date (with time)" +msgstr "Датум (со време)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "" + +msgid "Decimal number" +msgstr "Децимален број" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" + +msgid "Duration" +msgstr "Траење" + +msgid "Email address" +msgstr "Адреса за е-пошта (email)" + +msgid "File path" +msgstr "Патека на датотека" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "" + +msgid "Floating point number" +msgstr "Децимален број подвижна запирка" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "" + +msgid "Integer" +msgstr "Цел број" + +msgid "Big (8 byte) integer" +msgstr "Голем (8 бајти) цел број" + +msgid "Small integer" +msgstr "Мал цел број" + +msgid "IPv4 address" +msgstr "IPv4 адреса" + +msgid "IP address" +msgstr "IP адреса" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "" + +msgid "Boolean (Either True, False or None)" +msgstr "Логичка вредност (точно,неточно или ништо)" + +msgid "Positive big integer" +msgstr "" + +msgid "Positive integer" +msgstr "Позитивен цел број" + +msgid "Positive small integer" +msgstr "Позитивен мал цел број" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "Скратено име (до %(max_length)s знаци)" + +msgid "Text" +msgstr "Текст" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" + +msgid "Time" +msgstr "Време" + +msgid "URL" +msgstr "URL (веб адреса)" + +msgid "Raw binary data" +msgstr "Сурови бинарни податоци" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "" + +msgid "Universally unique identifier" +msgstr "" + +msgid "File" +msgstr "Датотека" + +msgid "Image" +msgstr "Слика" + +msgid "A JSON object" +msgstr "" + +msgid "Value must be valid JSON." +msgstr "" + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "%(model)s инстанца со %(field)s %(value)r не постои." + +msgid "Foreign Key (type determined by related field)" +msgstr "Надворешен клуч (типот е одреден според поврзаното поле)" + +msgid "One-to-one relationship" +msgstr "Еден-према-еден релација" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "%(from)s-%(to)s релација" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "%(from)s-%(to)s релации" + +msgid "Many-to-many relationship" +msgstr "Повеќе-према-повеќе релација" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr ":?.!" + +msgid "This field is required." +msgstr "Ова поле е задолжително." + +msgid "Enter a whole number." +msgstr "Внесете цел број." + +msgid "Enter a valid date." +msgstr "Внесете правилен датум." + +msgid "Enter a valid time." +msgstr "Внесете правилно време." + +msgid "Enter a valid date/time." +msgstr "Внесете правилен датум со време." + +msgid "Enter a valid duration." +msgstr "Внесете валидно времетрање." + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "" + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "Не беше пратена датотека. Проверете го типот на енкодирање на формата." + +msgid "No file was submitted." +msgstr "Не беше пратена датотека." + +msgid "The submitted file is empty." +msgstr "Пратената датотека е празна." + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" +"Осигурајте се дека ова име на датотека има најмногу %(max)d карактер (има " +"%(length)d)." +msgstr[1] "" +"Осигурајте се дека ова име на датотека има најмногу %(max)d карактери (има " +"%(length)d)." + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "" +"Или прикачете датотека или штиклирајте го полето за чистење, не двете од " +"еднаш." + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" +"Качете валидна слика. Датотеката која ја качивте или не беше слика или беше " +"расипана датотеката." + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "Внесете валиден избор. %(value)s не е еден од можните избори." + +msgid "Enter a list of values." +msgstr "Внесете листа на вредности." + +msgid "Enter a complete value." +msgstr "Внесете целосна вредност." + +msgid "Enter a valid UUID." +msgstr "Внесете валиден UUID (единствен идентификатор)." + +msgid "Enter a valid JSON." +msgstr "" + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr ":" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "(Скриено поле %(name)s) %(error)s" + +#, python-format +msgid "" +"ManagementForm data is missing or has been tampered with. Missing fields: " +"%(field_names)s. You may need to file a bug report if the issue persists." +msgstr "" + +#, python-format +msgid "Please submit at most %d form." +msgid_plural "Please submit at most %d forms." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "Please submit at least %d form." +msgid_plural "Please submit at least %d forms." +msgstr[0] "" +msgstr[1] "" + +msgid "Order" +msgstr "Редослед" + +msgid "Delete" +msgstr "Избриши" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "Ве молам поправете ја дуплираната вредност за %(field)s." + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "" +"Ве молам поправете ја дуплираната вредност за %(field)s, која мора да биде " +"уникатна." + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"Ве молам поправете ја дуплираната вредност за %(field_name)s која мора да " +"биде уникатна за %(lookup)s во %(date_field)s." + +msgid "Please correct the duplicate values below." +msgstr "Ве молам поправете ги дуплираните вредности подолу." + +msgid "The inline value did not match the parent instance." +msgstr "" + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "Изберете правилно. Тоа не е еден од можните избори." + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "" + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" + +msgid "Clear" +msgstr "Исчисти" + +msgid "Currently" +msgstr "Моментално" + +msgid "Change" +msgstr "Измени" + +msgid "Unknown" +msgstr "Непознато" + +msgid "Yes" +msgstr "Да" + +msgid "No" +msgstr "Не" + +#. Translators: Please do not add spaces around commas. +msgid "yes,no,maybe" +msgstr "да,не,можеби" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)d бајт" +msgstr[1] "%(size)d бајти" + +#, python-format +msgid "%s KB" +msgstr "%s KB" + +#, python-format +msgid "%s MB" +msgstr "%s MB" + +#, python-format +msgid "%s GB" +msgstr "%s GB" + +#, python-format +msgid "%s TB" +msgstr "%s TB" + +#, python-format +msgid "%s PB" +msgstr "%s PB" + +msgid "p.m." +msgstr "попладне" + +msgid "a.m." +msgstr "наутро" + +msgid "PM" +msgstr "попладне" + +msgid "AM" +msgstr "наутро" + +msgid "midnight" +msgstr "полноќ" + +msgid "noon" +msgstr "пладне" + +msgid "Monday" +msgstr "Понеделник" + +msgid "Tuesday" +msgstr "Вторник" + +msgid "Wednesday" +msgstr "Среда" + +msgid "Thursday" +msgstr "Четврток" + +msgid "Friday" +msgstr "Петок" + +msgid "Saturday" +msgstr "Сабота" + +msgid "Sunday" +msgstr "Недела" + +msgid "Mon" +msgstr "Пон" + +msgid "Tue" +msgstr "Вто" + +msgid "Wed" +msgstr "Сре" + +msgid "Thu" +msgstr "Чет" + +msgid "Fri" +msgstr "Пет" + +msgid "Sat" +msgstr "Саб" + +msgid "Sun" +msgstr "Нед" + +msgid "January" +msgstr "Јануари" + +msgid "February" +msgstr "Февруари" + +msgid "March" +msgstr "Март" + +msgid "April" +msgstr "Април" + +msgid "May" +msgstr "Мај" + +msgid "June" +msgstr "Јуни" + +msgid "July" +msgstr "Јули" + +msgid "August" +msgstr "август" + +msgid "September" +msgstr "Септември" + +msgid "October" +msgstr "Октомври" + +msgid "November" +msgstr "Ноември" + +msgid "December" +msgstr "Декември" + +msgid "jan" +msgstr "јан" + +msgid "feb" +msgstr "фев" + +msgid "mar" +msgstr "мар" + +msgid "apr" +msgstr "апр" + +msgid "may" +msgstr "мај" + +msgid "jun" +msgstr "јун" + +msgid "jul" +msgstr "јул" + +msgid "aug" +msgstr "авг" + +msgid "sep" +msgstr "сеп" + +msgid "oct" +msgstr "окт" + +msgid "nov" +msgstr "ное" + +msgid "dec" +msgstr "дек" + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "Јан." + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "Фев." + +msgctxt "abbrev. month" +msgid "March" +msgstr "Март" + +msgctxt "abbrev. month" +msgid "April" +msgstr "Април" + +msgctxt "abbrev. month" +msgid "May" +msgstr "Мај" + +msgctxt "abbrev. month" +msgid "June" +msgstr "Јуни" + +msgctxt "abbrev. month" +msgid "July" +msgstr "Јули" + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "Авг." + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "Септ." + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "Окт." + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "Ное." + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "Дек." + +msgctxt "alt. month" +msgid "January" +msgstr "Јануари" + +msgctxt "alt. month" +msgid "February" +msgstr "Февруари" + +msgctxt "alt. month" +msgid "March" +msgstr "Март" + +msgctxt "alt. month" +msgid "April" +msgstr "Април" + +msgctxt "alt. month" +msgid "May" +msgstr "Мај" + +msgctxt "alt. month" +msgid "June" +msgstr "Јуни" + +msgctxt "alt. month" +msgid "July" +msgstr "Јули" + +msgctxt "alt. month" +msgid "August" +msgstr "Август" + +msgctxt "alt. month" +msgid "September" +msgstr "Септември" + +msgctxt "alt. month" +msgid "October" +msgstr "Октомври" + +msgctxt "alt. month" +msgid "November" +msgstr "Ноември" + +msgctxt "alt. month" +msgid "December" +msgstr "Декември" + +msgid "This is not a valid IPv6 address." +msgstr "Ова не е валидна IPv6 адреса." + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "" + +msgid "or" +msgstr "или" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr "," + +#, python-format +msgid "%d year" +msgid_plural "%d years" +msgstr[0] "%d година" +msgstr[1] "%d години" + +#, python-format +msgid "%d month" +msgid_plural "%d months" +msgstr[0] "%d месец" +msgstr[1] "%d месеци" + +#, python-format +msgid "%d week" +msgid_plural "%d weeks" +msgstr[0] "%d недела" +msgstr[1] "%d недели" + +#, python-format +msgid "%d day" +msgid_plural "%d days" +msgstr[0] "%d ден" +msgstr[1] "%d дена" + +#, python-format +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "%d час" +msgstr[1] "%d часови" + +#, python-format +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "%d минута" +msgstr[1] "%d минути" + +msgid "Forbidden" +msgstr "Забрането" + +msgid "CSRF verification failed. Request aborted." +msgstr "CSRF верификацијата не успеа. Барањето е прекинато." + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your Web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" +"Ја гледате оваа порака бидејќи овој сајт бара CSRF колаче (cookie) за да се " +"поднесуваат форми. Ова колаче е потребно од безбедносни причини, за да се " +"осигураме дека вашиот веб прелистувач не е грабнат и контролиран од трети " +"страни." + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" + +msgid "More information is available with DEBUG=True." +msgstr "Повеќе информации се достапни со DEBUG = True." + +msgid "No year specified" +msgstr "Не е дадена година" + +msgid "Date out of range" +msgstr "" + +msgid "No month specified" +msgstr "Не е даден месец" + +msgid "No day specified" +msgstr "Не е даден ден" + +msgid "No week specified" +msgstr "Не е дадена недела" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "Нема достапни %(verbose_name_plural)s" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" +"Идни %(verbose_name_plural)s не се достапни бидејќи %(class_name)s." +"allow_future е False." + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "Нема %(verbose_name)s што се совпаѓа со пребарувањето" + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "" + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "Невалидна страна (%(page_number)s): %(message)s" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "" + +msgid "Directory indexes are not allowed here." +msgstr "Индекси на директориуми не се дозволени тука." + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "" + +#, python-format +msgid "Index of %(directory)s" +msgstr "Индекс на %(directory)s" + +msgid "The install worked successfully! Congratulations!" +msgstr "" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not configured any " +"URLs." +msgstr "" + +msgid "Django Documentation" +msgstr "" + +msgid "Topics, references, & how-to’s" +msgstr "" + +msgid "Tutorial: A Polling App" +msgstr "" + +msgid "Get started with Django" +msgstr "" + +msgid "Django Community" +msgstr "" + +msgid "Connect, get help, or contribute" +msgstr "" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/mk/__init__.py b/venv/lib/python3.12/site-packages/django/conf/locale/mk/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/mk/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/mk/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..bb22772c7adb2d1b84139b42c4342e2cd72caa1e GIT binary patch literal 198 zcmX@j%ge<81o5sX(m?cM5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!O4ZNE&rQ|OP0Yy6 zFHO;RNiEZNN=(kybEFQ_cZ$j>v@Gc?jK&MZmQEdVM^ zOiwM=Pssu+OwP|s)6dCIPRs!sn5`clpP83g5+AQuQ2C3)CO1E&G$+-rh!tonBM=vZ O7$2D#85xV1fh+*VBs7Bn literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/mk/__pycache__/formats.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/mk/__pycache__/formats.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4efae579e44ae78859608e556a6ec61eee10cf19 GIT binary patch literal 934 zcmZva%Wm306o$uK67ClRR@zDtQso6wW2@~BRaKp00&0yTV-$Hd7GbysV*~`rvr3<$ z`|hf~NTqIABDP&+hmswu&QQS6bQb6Q=bQ7NnX&vU8Vv!mO!;T)haZ67wAe1sMm&BX z;wwM^0>nTDd7uY*p%?j}5BZ@V9l;}X43FCY1->ybKyr}eAPT_{3d1mpz=#vg#jqb` zi&+DEOZhGi^#odEsrFLpqX7GRf+ZL@xK4EQo*`%Fd^o@(fwu(S*eM5x2+IUQ%mSsZ!Wu@k&iOmo@W3Q)`#y%Efo^NL~(BNbJ~FQ?%+G%f3Zop*a=L>y4W; zd4R<0etpok#c6Xe75m+5ap+7s_Ta7X`i(g5PMT*!(pYad$0F*j8yohZCHCz`y-x<- zh%I|$)hA)1oreUK2JZJf#f_z vVq%_tLG{VY8OY4j8KNHoe$F!k>_aU2oMdi!3Nk0OhemeJroO~SX)^l{mqq)t literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/mk/formats.py b/venv/lib/python3.12/site-packages/django/conf/locale/mk/formats.py new file mode 100644 index 0000000000..fbb577f772 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/mk/formats.py @@ -0,0 +1,40 @@ +# This file is distributed under the same license as the Django package. +# +# The *_FORMAT strings use the Django date format syntax, +# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date +DATE_FORMAT = "d F Y" +TIME_FORMAT = "H:i" +DATETIME_FORMAT = "j. F Y H:i" +YEAR_MONTH_FORMAT = "F Y" +MONTH_DAY_FORMAT = "j. F" +SHORT_DATE_FORMAT = "j.m.Y" +SHORT_DATETIME_FORMAT = "j.m.Y H:i" +FIRST_DAY_OF_WEEK = 1 + +# The *_INPUT_FORMATS strings use the Python strftime format syntax, +# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior +DATE_INPUT_FORMATS = [ + "%d.%m.%Y", # '25.10.2006' + "%d.%m.%y", # '25.10.06' + "%d. %m. %Y", # '25. 10. 2006' + "%d. %m. %y", # '25. 10. 06' +] + +DATETIME_INPUT_FORMATS = [ + "%d.%m.%Y %H:%M:%S", # '25.10.2006 14:30:59' + "%d.%m.%Y %H:%M:%S.%f", # '25.10.2006 14:30:59.000200' + "%d.%m.%Y %H:%M", # '25.10.2006 14:30' + "%d.%m.%y %H:%M:%S", # '25.10.06 14:30:59' + "%d.%m.%y %H:%M:%S.%f", # '25.10.06 14:30:59.000200' + "%d.%m.%y %H:%M", # '25.10.06 14:30' + "%d. %m. %Y %H:%M:%S", # '25. 10. 2006 14:30:59' + "%d. %m. %Y %H:%M:%S.%f", # '25. 10. 2006 14:30:59.000200' + "%d. %m. %Y %H:%M", # '25. 10. 2006 14:30' + "%d. %m. %y %H:%M:%S", # '25. 10. 06 14:30:59' + "%d. %m. %y %H:%M:%S.%f", # '25. 10. 06 14:30:59.000200' + "%d. %m. %y %H:%M", # '25. 10. 06 14:30' +] + +DECIMAL_SEPARATOR = "," +THOUSAND_SEPARATOR = "." +NUMBER_GROUPING = 3 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/ml/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/conf/locale/ml/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..17d15c64abd6271a117227b557c9b5220a5c1517 GIT binary patch literal 30808 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 F{{sVJievx) literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/ml/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/conf/locale/ml/LC_MESSAGES/django.po new file mode 100644 index 0000000000..7e1945dfe0 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/ml/LC_MESSAGES/django.po @@ -0,0 +1,1274 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# c1007a0b890405f1fbddfacebc4c6ef7, 2013 +# Claude Paroz , 2020 +# Hrishikesh , 2019-2020 +# Jannis Leidel , 2011 +# Jaseem KM , 2019 +# Jeffy , 2012 +# Jibin Mathew , 2019 +# Mariusz Felisiak , 2021 +# Rag sagar , 2016 +# Rajeesh Nair , 2011-2012 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-09-21 10:22+0200\n" +"PO-Revision-Date: 2021-11-24 16:29+0000\n" +"Last-Translator: Mariusz Felisiak \n" +"Language-Team: Malayalam (http://www.transifex.com/django/django/language/" +"ml/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ml\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Afrikaans" +msgstr "ആഫ്രിക്കാന്‍സ്" + +msgid "Arabic" +msgstr "അറബിൿ" + +msgid "Algerian Arabic" +msgstr "അൾഗേരിയൻ അറബിൿ" + +msgid "Asturian" +msgstr "ആസ്ടൂറിയൻ" + +msgid "Azerbaijani" +msgstr "അസര്‍ബൈജാനി" + +msgid "Bulgarian" +msgstr "ബള്‍ഗേറിയന്‍" + +msgid "Belarusian" +msgstr "ബെലറൂഷ്യന്‍" + +msgid "Bengali" +msgstr "ബംഗാളി" + +msgid "Breton" +msgstr "ബ്രെട്ടണ്‍" + +msgid "Bosnian" +msgstr "ബോസ്നിയന്‍" + +msgid "Catalan" +msgstr "കാറ്റലന്‍" + +msgid "Czech" +msgstr "ചെൿ" + +msgid "Welsh" +msgstr "വെല്‍ഷ്" + +msgid "Danish" +msgstr "ഡാനിഷ്" + +msgid "German" +msgstr "ജര്‍മന്‍" + +msgid "Lower Sorbian" +msgstr "ലോവർ സോർബിയൻ " + +msgid "Greek" +msgstr "ഗ്രീക്ക്" + +msgid "English" +msgstr "ഇംഗ്ലീഷ്" + +msgid "Australian English" +msgstr "ആസ്ട്രേലിയൻ ഇംഗ്ലീഷ്" + +msgid "British English" +msgstr "ബ്രിട്ടീഷ് ഇംഗ്ലീഷ്" + +msgid "Esperanto" +msgstr "എസ്പെരാന്റോ" + +msgid "Spanish" +msgstr "സ്പാനിഷ്" + +msgid "Argentinian Spanish" +msgstr "അര്‍ജന്റീനിയന്‍ സ്പാനിഷ്" + +msgid "Colombian Spanish" +msgstr "കൊളംബിയൻ സ്പാനിഷ്" + +msgid "Mexican Spanish" +msgstr "മെക്സിക്കന്‍ സ്പാനിഷ്" + +msgid "Nicaraguan Spanish" +msgstr "നിക്കരാഗ്വന്‍ സ്പാനിഷ്" + +msgid "Venezuelan Spanish" +msgstr "വെനിസ്വലന്‍ സ്പാനിഷ്" + +msgid "Estonian" +msgstr "എസ്ടോണിയന്‍ സ്പാനിഷ്" + +msgid "Basque" +msgstr "ബാസ്ക്യു" + +msgid "Persian" +msgstr "പേര്‍ഷ്യന്‍" + +msgid "Finnish" +msgstr "ഫിന്നിഷ്" + +msgid "French" +msgstr "ഫ്രെഞ്ച്" + +msgid "Frisian" +msgstr "ഫ്രിസിയന്‍" + +msgid "Irish" +msgstr "ഐറിഷ്" + +msgid "Scottish Gaelic" +msgstr "സ്കോട്ടിഷ് ഗൈലിൿ" + +msgid "Galician" +msgstr "ഗലിഷ്യന്‍" + +msgid "Hebrew" +msgstr "ഹീബ്രു" + +msgid "Hindi" +msgstr "ഹിന്ദി" + +msgid "Croatian" +msgstr "ക്രൊയേഷ്യന്‍" + +msgid "Upper Sorbian" +msgstr "അപ്പർ സോർബിയൻ " + +msgid "Hungarian" +msgstr "ഹംഗേറിയന്‍" + +msgid "Armenian" +msgstr "അർമേനിയൻ" + +msgid "Interlingua" +msgstr "ഇന്റര്‍ലിംഗ്വാ" + +msgid "Indonesian" +msgstr "ഇന്തൊനേഷ്യന്‍" + +msgid "Igbo" +msgstr "" + +msgid "Ido" +msgstr "ഈടോ" + +msgid "Icelandic" +msgstr "ഐസ്ലാന്‍ഡിൿ" + +msgid "Italian" +msgstr "ഇറ്റാലിയന്‍" + +msgid "Japanese" +msgstr "ജാപ്പനീസ്" + +msgid "Georgian" +msgstr "ജോര്‍ജിയന്‍" + +msgid "Kabyle" +msgstr "കാബയെൽ " + +msgid "Kazakh" +msgstr "കസാഖ്" + +msgid "Khmer" +msgstr "ഖ്മേര്‍" + +msgid "Kannada" +msgstr "കന്നഡ" + +msgid "Korean" +msgstr "കൊറിയന്‍" + +msgid "Kyrgyz" +msgstr "" + +msgid "Luxembourgish" +msgstr "ലക്സംബര്‍ഗിഷ് " + +msgid "Lithuanian" +msgstr "ലിത്വാനിയന്‍" + +msgid "Latvian" +msgstr "ലാറ്റ്വിയന്‍" + +msgid "Macedonian" +msgstr "മാസിഡോണിയന്‍" + +msgid "Malayalam" +msgstr "മലയാളം" + +msgid "Mongolian" +msgstr "മംഗോളിയന്‍" + +msgid "Marathi" +msgstr "മറാത്തി" + +msgid "Malay" +msgstr "" + +msgid "Burmese" +msgstr "ബര്‍മീസ്" + +msgid "Norwegian Bokmål" +msgstr "നോർവേജിയൻ ബുക്ക്മൊൾ" + +msgid "Nepali" +msgstr "നേപ്പാളി" + +msgid "Dutch" +msgstr "ഡച്ച്" + +msgid "Norwegian Nynorsk" +msgstr "നോര്‍വീജിയന്‍ നിനോഷ്ക്" + +msgid "Ossetic" +msgstr "ഒസ്സെറ്റിക്" + +msgid "Punjabi" +msgstr "പഞ്ചാബി" + +msgid "Polish" +msgstr "പോളിഷ്" + +msgid "Portuguese" +msgstr "പോര്‍ചുഗീസ്" + +msgid "Brazilian Portuguese" +msgstr "ബ്രസീലിയന്‍ പോര്‍ച്ചുഗീസ്" + +msgid "Romanian" +msgstr "റൊമാനിയന്‍" + +msgid "Russian" +msgstr "റഷ്യന്‍" + +msgid "Slovak" +msgstr "സ്ലൊവാൿ" + +msgid "Slovenian" +msgstr "സ്ളൊവേനിയന്‍" + +msgid "Albanian" +msgstr "അല്‍ബേനിയന്‍" + +msgid "Serbian" +msgstr "സെര്‍ബിയന്‍" + +msgid "Serbian Latin" +msgstr "സെര്‍ബിയന്‍ ലാറ്റിന്‍" + +msgid "Swedish" +msgstr "സ്വീഡിഷ്" + +msgid "Swahili" +msgstr "സ്വാഹിലി" + +msgid "Tamil" +msgstr "തമിഴ്" + +msgid "Telugu" +msgstr "തെലുങ്ക്" + +msgid "Tajik" +msgstr "" + +msgid "Thai" +msgstr "തായ്" + +msgid "Turkmen" +msgstr "" + +msgid "Turkish" +msgstr "ടര്‍ക്കിഷ്" + +msgid "Tatar" +msgstr "തൊതാര്‍" + +msgid "Udmurt" +msgstr "ഉദ്മര്‍ത്" + +msgid "Ukrainian" +msgstr "യുക്രേനിയന്‍" + +msgid "Urdu" +msgstr "ഉര്‍ദു" + +msgid "Uzbek" +msgstr "ഉസ്ബെൿ" + +msgid "Vietnamese" +msgstr "വിയറ്റ്നാമീസ്" + +msgid "Simplified Chinese" +msgstr "സിമ്പ്ലിഫൈഡ് ചൈനീസ്" + +msgid "Traditional Chinese" +msgstr "പരമ്പരാഗത ചൈനീസ്" + +msgid "Messages" +msgstr "സന്ദേശങ്ങൾ" + +msgid "Site Maps" +msgstr "സൈറ്റ് മാപ്പുകൾ" + +msgid "Static Files" +msgstr " സ്റ്റാറ്റിൿ ഫയലുകൾ" + +msgid "Syndication" +msgstr "വിതരണം " + +#. Translators: String used to replace omitted page numbers in elided page +#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10]. +msgid "…" +msgstr "" + +msgid "That page number is not an integer" +msgstr "ആ പേജ് നമ്പർ ഒരു ഇന്റിജറല്ല" + +msgid "That page number is less than 1" +msgstr "ആ പേജ് നമ്പർ 1 നെ കാൾ ചെറുതാണ് " + +msgid "That page contains no results" +msgstr "ആ പേജിൽ റിസൾട്ടുകൾ ഒന്നും ഇല്ല " + +msgid "Enter a valid value." +msgstr "ശരിയായ വാല്യു നൽകുക." + +msgid "Enter a valid URL." +msgstr "ശരിയായ URL നല്‍കുക" + +msgid "Enter a valid integer." +msgstr "ശരിയായ ഇന്റിജർ നൽകുക." + +msgid "Enter a valid email address." +msgstr "ശരിയായ ഇമെയില്‍ വിലാസം നല്‍കുക." + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" +"അക്ഷരങ്ങള്‍, അക്കങ്ങള്‍, അണ്ടര്‍സ്കോര്‍, ഹൈഫന്‍ എന്നിവ മാത്രം അടങ്ങിയ ശരിയായ ഒരു 'സ്ലഗ്ഗ്' നൽകുക. " + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" +"യൂണികോഡ് അക്ഷരങ്ങൾ, അക്കങ്ങൾ, ഹൈഫണുകൾ, അണ്ടർസ്കോറുക‌‌ൾ എന്നിവമാത്രം അടങ്ങിയ ശെരിയായ ‌ഒരു " +"“സ്ലഗ്” എഴുതുക ." + +msgid "Enter a valid IPv4 address." +msgstr "ശരിയായ IPv4 വിലാസം നൽകുക." + +msgid "Enter a valid IPv6 address." +msgstr "ശരിയായ ഒരു IPv6 വിലാസം നൽകുക." + +msgid "Enter a valid IPv4 or IPv6 address." +msgstr "ശരിയായ ഒരു IPv4 വിലാസമോ IPv6 വിലാസമോ നൽകുക." + +msgid "Enter only digits separated by commas." +msgstr "കോമകൾ ഉപയോഗിച്ച് വേർതിരിച്ച രീതിയിലുള്ള അക്കങ്ങൾ മാത്രം നൽകുക." + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "ഇത് %(limit_value)s ആവണം. (ഇപ്പോള്‍ %(show_value)s)." + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "ഇത് %(limit_value)s-ഓ അതില്‍ കുറവോ ആവണം" + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "ഇത് %(limit_value)s-ഓ അതില്‍ കൂടുതലോ ആവണം" + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"ഈ വാല്യൂയിൽ %(limit_value)d ക്യാരക്ടർ എങ്കിലും ഉണ്ടെന്നു ഉറപ്പു വരുത്തുക(ഇതിൽ " +"%(show_value)d ഉണ്ട് )" +msgstr[1] "" +"ഈ വാല്യൂയിൽ %(limit_value)dക്യാരക്ടേർസ് എങ്കിലും ഉണ്ടെന്നു ഉറപ്പു വരുത്തുക(ഇതിൽ " +"%(show_value)d ഉണ്ട് )" + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"ഈ വാല്യൂയിൽ %(limit_value)d ക്യാരക്ടർ 1 ഇൽ കൂടുതൽ ഇല്ലെന്നു ഉറപ്പു വരുത്തുക(ഇതിൽ 2 " +"%(show_value)d ഉണ്ട് )" +msgstr[1] "" +"ഈ വാല്യൂയിൽ %(limit_value)d ക്യാരക്ടർസ് 1 ഇൽ കൂടുതൽ ഇല്ലെന്നു ഉറപ്പു വരുത്തുക(ഇതിൽ 2 " +"%(show_value)d ഉണ്ട് )" + +msgid "Enter a number." +msgstr "ഒരു സംഖ്യ നല്കുക." + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "%(max)s ഡിജിറ്റിൽ കൂടുതൽ ഇല്ല എന്ന് ഉറപ്പു വരുത്തുക ." +msgstr[1] "%(max)sഡിജിറ്റ്സിൽ കൂടുതൽ ഇല്ല എന്ന് ഉറപ്പു വരുത്തുക. " + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "%(max)sകൂടുതൽ ഡെസിമൽ പോയന്റില്ല എന്ന് ഉറപ്പു വരുത്തുക. " +msgstr[1] "%(max)sകൂടുതൽ ഡെസിമൽ പോയിന്റുകളില്ല എന്ന് ഉറപ്പു വരുത്തുക. " + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "%(max)sഡിജിറ്റ് ഡെസിമൽ പോയിന്റിനു മുൻപ് ഇല്ല എന്ന് ഉറപ്പു വരുത്തുക." +msgstr[1] "%(max)sഡിജിറ്റ്സ് ഡെസിമൽ പോയിന്റിനു മുൻപ് ഇല്ല എന്ന് ഉറപ്പു വരുത്തുക. " + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" +"“%(extension)s” എന്ന ഫയൽ എക്സ്റ്റൻഷൻ അനുവദനീയമല്ല. അനുവദനീയമായ എക്സ്റ്റൻഷനുകൾ ഇവയാണ്: " +"%(allowed_extensions)s" + +msgid "Null characters are not allowed." +msgstr "Null ക്യാരക്ടറുകൾ അനുവദനീയമല്ല." + +msgid "and" +msgstr "പിന്നെ" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "%(field_labels)sഉള്ള %(model_name)sനിലവിലുണ്ട്." + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "%(value)r എന്ന വാല്യൂ ശെരിയായ ചോയ്സ് അല്ല. " + +msgid "This field cannot be null." +msgstr "ഈ കളം (ഫീല്‍ഡ്) ഒഴിച്ചിടരുത്." + +msgid "This field cannot be blank." +msgstr "ഈ കളം (ഫീല്‍ഡ്) ഒഴിച്ചിടരുത്." + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "%(field_label)s-ഓടു കൂടിയ %(model_name)s നിലവിലുണ്ട്." + +#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'. +#. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" +"%(date_field_label)s %(lookup_type)s-നു %(field_label)s ആവര്‍ത്തിക്കാന്‍ പാടില്ല." + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "%(field_type)s എന്ന തരത്തിലുള്ള കളം (ഫീല്‍ഡ്)" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "“%(value)s” മൂല്യം ഒന്നുകിൽ True, False എന്നിവയിലേതെങ്കിലുമേ ആവാൻ പാടുള്ളൂ." + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "" +"“%(value)s” മൂല്യം ഒന്നുകിൽ True, False അല്ലെങ്കിൽ None എന്നിവയിലേതെങ്കിലുമേ ആവാൻ " +"പാടുള്ളൂ." + +msgid "Boolean (Either True or False)" +msgstr "ശരിയോ തെറ്റോ (True അഥവാ False)" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "സ്ട്രിങ്ങ് (%(max_length)s വരെ നീളമുള്ളത്)" + +msgid "Comma-separated integers" +msgstr "കോമയിട്ട് വേര്‍തിരിച്ച സംഖ്യകള്‍" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" + +msgid "Date (without time)" +msgstr "തീയതി (സമയം വേണ്ട)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" + +msgid "Date (with time)" +msgstr "തീയതി (സമയത്തോടൊപ്പം)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "" + +msgid "Decimal number" +msgstr "ദശാംശസംഖ്യ" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" + +msgid "Duration" +msgstr "കാലയളവ്" + +msgid "Email address" +msgstr "ഇ-മെയില്‍ വിലാസം" + +msgid "File path" +msgstr "ഫയല്‍ സ്ഥാനം" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "" + +msgid "Floating point number" +msgstr "ദശാംശസംഖ്യ" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "" + +msgid "Integer" +msgstr "പൂര്‍ണ്ണസംഖ്യ" + +msgid "Big (8 byte) integer" +msgstr "8 ബൈറ്റ് പൂര്‍ണസംഖ്യ." + +msgid "Small integer" +msgstr "ഹ്രസ്വ പൂര്‍ണസംഖ്യ" + +msgid "IPv4 address" +msgstr "IPv4 വിലാസം" + +msgid "IP address" +msgstr "IP വിലാസം" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "" + +msgid "Boolean (Either True, False or None)" +msgstr "ശരിയോ തെറ്റോ എന്നു മാത്രം (True, False, None എന്നിവയില്‍ ഏതെങ്കിലും ഒന്ന്)" + +msgid "Positive big integer" +msgstr "" + +msgid "Positive integer" +msgstr "ധന പൂര്‍ണസംഖ്യ" + +msgid "Positive small integer" +msgstr "ധന ഹ്രസ്വ പൂര്‍ണസംഖ്യ" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "സ്ലഗ് (%(max_length)s വരെ)" + +msgid "Text" +msgstr "ടെക്സ്റ്റ്" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" + +msgid "Time" +msgstr "സമയം" + +msgid "URL" +msgstr "URL(വെബ്-വിലാസം)" + +msgid "Raw binary data" +msgstr "റോ ബൈനറി ഡാറ്റ" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "" + +msgid "Universally unique identifier" +msgstr "എല്ലായിടത്തും യുണീക്കായ ഐഡന്റിഫൈയർ." + +msgid "File" +msgstr "ഫയല്‍" + +msgid "Image" +msgstr "ചിത്രം" + +msgid "A JSON object" +msgstr "" + +msgid "Value must be valid JSON." +msgstr "" + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "%(field)s%(value)r ഉള്ള%(model)s ഇൻസ്റ്റൻസ് നിലവിൽ ഇല്ല." + +msgid "Foreign Key (type determined by related field)" +msgstr "ഫോറിന്‍ കീ (ടൈപ്പ് ബന്ധപ്പെട്ട ഫീല്‍ഡില്‍ നിന്നും നിര്‍ണ്ണയിക്കുന്നതാണ്)" + +msgid "One-to-one relationship" +msgstr "വണ്‍-ടു-വണ്‍ ബന്ധം" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "%(from)s-%(to)s റിലേഷൻഷിപ്‌." + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "%(from)s-%(to)sറിലേഷൻഷിപ്‌സ്. " + +msgid "Many-to-many relationship" +msgstr "മെനി-ടു-മെനി ബന്ധം" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr ":?.!" + +msgid "This field is required." +msgstr "ഈ കള്ളി(ഫീല്‍ഡ്) നിര്‍ബന്ധമാണ്." + +msgid "Enter a whole number." +msgstr "ഒരു പൂര്‍ണസംഖ്യ നല്കുക." + +msgid "Enter a valid date." +msgstr "ശരിയായ തീയതി നല്കുക." + +msgid "Enter a valid time." +msgstr "ശരിയായ സമയം നല്കുക." + +msgid "Enter a valid date/time." +msgstr "ശരിയായ തീയതിയും സമയവും നല്കുക." + +msgid "Enter a valid duration." +msgstr "സാധുതയുള്ള കാലയളവ് നല്കുക." + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "ദിവസങ്ങളുടെ എണ്ണം {min_days}, {max_days} എന്നിവയുടെ ഇടയിലായിരിക്കണം." + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "ഫയലൊന്നും ലഭിച്ചിട്ടില്ല. ഫോമിലെ എന്‍-കോഡിംഗ് പരിശോധിക്കുക." + +msgid "No file was submitted." +msgstr "ഫയലൊന്നും ലഭിച്ചിട്ടില്ല." + +msgid "The submitted file is empty." +msgstr "ലഭിച്ച ഫയല്‍ ശൂന്യമാണ്." + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" +"ഈ ഫയൽ നെയ്മിൽ%(max)dക്യാരക്ടറിൽ കൂടുതലില്ല എന്ന് ഉറപ്പു വരുത്തുക (അതിൽ %(length)dഉണ്ട്) . " +msgstr[1] "" +"ഈ ഫയൽ നെയ്മിൽ%(max)dക്യാരക്ടേഴ്‌സിൽ കൂടുതലില്ല എന്ന് ഉറപ്പു വരുത്തുക (അതിൽ %(length)dഉണ്ട്)." + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "" +"ഒന്നുകില്‍ ഫയല്‍ സമര്‍പ്പിക്കണം, അല്ലെങ്കില്‍ ക്ളിയര്‍ എന്ന ചെക്ബോക്സ് ടിക് ചെയ്യണം. ദയവായി രണ്ടും " +"കൂടി ചെയ്യരുത്." + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" +"ശരിയായ ചിത്രം അപ് ലോഡ് ചെയ്യുക. നിങ്ങള്‍ നല്കിയ ഫയല്‍ ഒന്നുകില്‍ ഒരു ചിത്രമല്ല, അല്ലെങ്കില്‍ " +"വികലമാണ്." + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "യോഗ്യമായത് തെരഞ്ഞെടുക്കുക. %(value)s ലഭ്യമായവയില്‍ ഉള്‍പ്പെടുന്നില്ല." + +msgid "Enter a list of values." +msgstr "മൂല്യങ്ങളുടെ പട്ടിക(ലിസ്റ്റ്) നല്കുക." + +msgid "Enter a complete value." +msgstr "പൂർണ്ണമായ വാല്യൂ നല്കുക." + +msgid "Enter a valid UUID." +msgstr "സാധുവായ യു യു ഐ ഡി നല്കുക." + +msgid "Enter a valid JSON." +msgstr "" + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr ":" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "(ഹിഡൻ ഫീൽഡ് %(name)s)%(error)s" + +#, python-format +msgid "" +"ManagementForm data is missing or has been tampered with. Missing fields: " +"%(field_names)s. You may need to file a bug report if the issue persists." +msgstr "" + +#, python-format +msgid "Please submit at most %d form." +msgid_plural "Please submit at most %d forms." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "Please submit at least %d form." +msgid_plural "Please submit at least %d forms." +msgstr[0] "" +msgstr[1] "" + +msgid "Order" +msgstr "ക്രമം" + +msgid "Delete" +msgstr "ഡിലീറ്റ്" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "%(field)s-നായി നല്കുന്ന വിവരം ആവര്‍ത്തിച്ചത് ദയവായി തിരുത്തുക." + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "%(field)s-നായി നല്കുന്ന വിവരം ആവര്‍ത്തിക്കാന്‍ പാടില്ല. ദയവായി തിരുത്തുക." + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"%(date_field)s ലെ %(lookup)s നു വേണ്ടി %(field_name)s നു നല്കുന്ന വിവരം ആവര്‍ത്തിക്കാന്‍ " +"പാടില്ല. ദയവായി തിരുത്തുക." + +msgid "Please correct the duplicate values below." +msgstr "താഴെ കൊടുത്തവയില്‍ ആവര്‍ത്തനം ഒഴിവാക്കുക." + +msgid "The inline value did not match the parent instance." +msgstr "ഇൻലൈൻ വാല്യൂ, പാരെന്റ് ഇൻസ്റ്റൻസുമായി ചേരുന്നില്ല." + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "യോഗ്യമായത് തെരഞ്ഞെടുക്കുക. നിങ്ങള്‍ നല്കിയത് ലഭ്യമായവയില്‍ ഉള്‍പ്പെടുന്നില്ല." + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "" + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" + +msgid "Clear" +msgstr "കാലിയാക്കുക" + +msgid "Currently" +msgstr "നിലവിലുള്ളത്" + +msgid "Change" +msgstr "മാറ്റുക" + +msgid "Unknown" +msgstr "അജ്ഞാതം" + +msgid "Yes" +msgstr "അതെ" + +msgid "No" +msgstr "അല്ല" + +#. Translators: Please do not add spaces around commas. +msgid "yes,no,maybe" +msgstr "ഉണ്ട്,ഇല്ല,ഉണ്ടായേക്കാം" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)d ബൈറ്റ്" +msgstr[1] "%(size)d ബൈറ്റുകള്‍" + +#, python-format +msgid "%s KB" +msgstr "%s കെ.ബി" + +#, python-format +msgid "%s MB" +msgstr "%s എം.ബി" + +#, python-format +msgid "%s GB" +msgstr "%s ജി.ബി" + +#, python-format +msgid "%s TB" +msgstr "%s ടി.ബി" + +#, python-format +msgid "%s PB" +msgstr "%s പി.ബി" + +msgid "p.m." +msgstr "പി. എം (ഉച്ചയ്ക്കു ശേഷം) " + +msgid "a.m." +msgstr "എ. എം (ഉച്ചയ്ക്കു മുമ്പ്)" + +msgid "PM" +msgstr "പി. എം (ഉച്ചയ്ക്കു ശേഷം) " + +msgid "AM" +msgstr "എ. എം (ഉച്ചയ്ക്കു മുമ്പ്)" + +msgid "midnight" +msgstr "അര്‍ധരാത്രി" + +msgid "noon" +msgstr "ഉച്ച" + +msgid "Monday" +msgstr "തിങ്കളാഴ്ച" + +msgid "Tuesday" +msgstr "ചൊവ്വാഴ്ച" + +msgid "Wednesday" +msgstr "ബുധനാഴ്ച" + +msgid "Thursday" +msgstr "വ്യാഴാഴ്ച" + +msgid "Friday" +msgstr "വെള്ളിയാഴ്ച" + +msgid "Saturday" +msgstr "ശനിയാഴ്ച" + +msgid "Sunday" +msgstr "ഞായറാഴ്ച" + +msgid "Mon" +msgstr "തിങ്കള്‍" + +msgid "Tue" +msgstr "ചൊവ്വ" + +msgid "Wed" +msgstr "ബുധന്‍" + +msgid "Thu" +msgstr "വ്യാഴം" + +msgid "Fri" +msgstr "വെള്ളി" + +msgid "Sat" +msgstr "ശനി" + +msgid "Sun" +msgstr "ഞായര്‍" + +msgid "January" +msgstr "ജനുവരി" + +msgid "February" +msgstr "ഫെബ്രുവരി" + +msgid "March" +msgstr "മാര്‍ച്ച്" + +msgid "April" +msgstr "ഏപ്രില്‍" + +msgid "May" +msgstr "മേയ്" + +msgid "June" +msgstr "ജൂണ്‍" + +msgid "July" +msgstr "ജൂലൈ" + +msgid "August" +msgstr "ആഗസ്ത്" + +msgid "September" +msgstr "സെപ്തംബര്‍" + +msgid "October" +msgstr "ഒക്ടോബര്‍" + +msgid "November" +msgstr "നവംബര്‍" + +msgid "December" +msgstr "ഡിസംബര്‍" + +msgid "jan" +msgstr "ജനു." + +msgid "feb" +msgstr "ഫെബ്രു." + +msgid "mar" +msgstr "മാര്‍ച്ച്" + +msgid "apr" +msgstr "ഏപ്രില്‍" + +msgid "may" +msgstr "മേയ്" + +msgid "jun" +msgstr "ജൂണ്‍" + +msgid "jul" +msgstr "ജൂലൈ" + +msgid "aug" +msgstr "ആഗസ്ത്" + +msgid "sep" +msgstr "സെപ്ടം." + +msgid "oct" +msgstr "ഒക്ടോ." + +msgid "nov" +msgstr "നവം." + +msgid "dec" +msgstr "ഡിസം." + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "ജനു." + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "ഫെബ്രു." + +msgctxt "abbrev. month" +msgid "March" +msgstr "മാര്‍ച്ച്" + +msgctxt "abbrev. month" +msgid "April" +msgstr "ഏപ്രില്‍" + +msgctxt "abbrev. month" +msgid "May" +msgstr "മേയ്" + +msgctxt "abbrev. month" +msgid "June" +msgstr "ജൂണ്‍" + +msgctxt "abbrev. month" +msgid "July" +msgstr "ജൂലൈ" + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "ആഗ." + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "സെപ്തം." + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "ഒക്ടോ." + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "നവം." + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "ഡിസം." + +msgctxt "alt. month" +msgid "January" +msgstr "ജനുവരി" + +msgctxt "alt. month" +msgid "February" +msgstr "ഫെബ്രുവരി" + +msgctxt "alt. month" +msgid "March" +msgstr "മാര്‍ച്ച്" + +msgctxt "alt. month" +msgid "April" +msgstr "ഏപ്രില്‍" + +msgctxt "alt. month" +msgid "May" +msgstr "മേയ്" + +msgctxt "alt. month" +msgid "June" +msgstr "ജൂണ്‍" + +msgctxt "alt. month" +msgid "July" +msgstr "ജൂലൈ" + +msgctxt "alt. month" +msgid "August" +msgstr "ആഗസ്ത്" + +msgctxt "alt. month" +msgid "September" +msgstr "സെപ്തംബര്‍" + +msgctxt "alt. month" +msgid "October" +msgstr "ഒക്ടോബര്‍" + +msgctxt "alt. month" +msgid "November" +msgstr "നവംബര്‍" + +msgctxt "alt. month" +msgid "December" +msgstr "ഡിസംബര്‍" + +msgid "This is not a valid IPv6 address." +msgstr "ഇതു സാധുവായ IPv6 വിലാസമല്ല." + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "%(truncated_text)s…" + +msgid "or" +msgstr "അഥവാ" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr ", " + +#, python-format +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "" +msgstr[1] "" + +msgid "Forbidden" +msgstr "വിലക്കപ്പെട്ടത്" + +msgid "CSRF verification failed. Request aborted." +msgstr "സി എസ് ആർ എഫ് പരിശോധന പരാജയപ്പെട്ടു. റിക്വെസ്റ്റ് റദ്ദാക്കി." + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" +"ഫോം സമർപ്പിക്കുമ്പോൾ ഒരു CSRF കുക്കി ഈ സൈറ്റിൽ ആവശ്യമാണ് എന്നതിനാലാണ് നിങ്ങൾ ഈ സന്ദേശം " +"കാണുന്നത്. മറ്റുള്ളവരാരെങ്കിലും നിങ്ങളുടെ ബ്രൗസറിനെ നിയന്ത്രിക്കുന്നില്ല എന്ന് ഉറപ്പുവരുത്താനായി ഈ " +"കുക്കി ആവശ്യമാണ്. " + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" + +msgid "More information is available with DEBUG=True." +msgstr "Debug=True എന്നു കൊടുത്താൽ കൂടുതൽ കാര്യങ്ങൾ അറിയാൻ കഴിയും." + +msgid "No year specified" +msgstr "വര്‍ഷം പരാമര്‍ശിച്ചിട്ടില്ല" + +msgid "Date out of range" +msgstr "ഡാറ്റ പരിധിയുടെ പുറത്താണ്" + +msgid "No month specified" +msgstr "മാസം പരാമര്‍ശിച്ചിട്ടില്ല" + +msgid "No day specified" +msgstr "ദിവസം പരാമര്‍ശിച്ചിട്ടില്ല" + +msgid "No week specified" +msgstr "ആഴ്ച പരാമര്‍ശിച്ചിട്ടില്ല" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "%(verbose_name_plural)s ഒന്നും ലഭ്യമല്ല" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" +"%(class_name)s.allow_future ന് False എന്നു നല്കിയിട്ടുള്ളതിനാല്‍ Future " +"%(verbose_name_plural)s ഒന്നും ലഭ്യമല്ല." + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "ചോദ്യത്തിനു ചേരുന്ന് %(verbose_name)s ഇല്ല" + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "" + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "" + +msgid "Directory indexes are not allowed here." +msgstr "ഡയറക്ടറി സൂചികകള്‍ ഇവിടെ അനുവദനീയമല്ല." + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "" + +#, python-format +msgid "Index of %(directory)s" +msgstr "%(directory)s യുടെ സൂചിക" + +msgid "The install worked successfully! Congratulations!" +msgstr "ഇൻസ്ടാൾ ഭംഗിയായി നടന്നു! അഭിനന്ദനങ്ങൾ !" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not configured any " +"URLs." +msgstr "" + +msgid "Django Documentation" +msgstr "ജാംഗോ ഡോക്യുമെന്റേഷൻ" + +msgid "Topics, references, & how-to’s" +msgstr "" + +msgid "Tutorial: A Polling App" +msgstr "പരിശീലനം: ഒരു പോളിങ്ങ് ആപ്പ്" + +msgid "Get started with Django" +msgstr "ജാംഗോയുമായി പരിചയത്തിലാവുക" + +msgid "Django Community" +msgstr "ജാംഗോ കമ്യൂണിറ്റി" + +msgid "Connect, get help, or contribute" +msgstr "കൂട്ടുകൂടൂ, സഹായം തേടൂ, അല്ലെങ്കിൽ സഹകരിക്കൂ" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/ml/__init__.py b/venv/lib/python3.12/site-packages/django/conf/locale/ml/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/ml/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/ml/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ef50f531103b1e54853803ac37402066f118cc1a GIT binary patch literal 198 zcmX@j%ge<81o5sX(m?cM5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!O4ZNE&rQ|OP0Yy6 zFHO;RNiEZNN=(kybEFQ_cZ$j>v@Gc?jK&MZmQEdVM^ zOiwM=Pssu+OwP|s)6dCIPRs!sn4=#bpP83g5+AQuQ2C3)CO1E&G$+-rh!tonBM=vZ O7$2D#85xV1fh+*VQ#6DC literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/ml/__pycache__/formats.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/ml/__pycache__/formats.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..82a49e88a9bc6c127445ab90ab5c89a6969317e9 GIT binary patch literal 846 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

f=ae6G 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 K6mg6^68sm(6ElPW literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/mn/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/conf/locale/mn/LC_MESSAGES/django.po new file mode 100644 index 0000000000..47479f8f69 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/mn/LC_MESSAGES/django.po @@ -0,0 +1,1345 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Ankhbayar , 2013 +# Bayarkhuu Bataa, 2014,2017-2018 +# Baskhuu Lodoikhuu , 2011 +# Jannis Leidel , 2011 +# jargalan , 2011 +# Tsolmon , 2011 +# Turmunkh Batkhuyag, 2023 +# Zorig, 2013-2014,2016,2018 +# Zorig, 2019 +# Анхбаяр Анхаа , 2013-2016,2018-2019 +# Баясгалан Цэвлээ , 2011,2015,2017 +# Ганзориг БП , 2011 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-09-18 11:41-0300\n" +"PO-Revision-Date: 2023-12-25 06:49+0000\n" +"Last-Translator: Turmunkh Batkhuyag, 2023\n" +"Language-Team: Mongolian (http://app.transifex.com/django/django/language/" +"mn/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: mn\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Afrikaans" +msgstr "Африк" + +msgid "Arabic" +msgstr "Араб" + +msgid "Algerian Arabic" +msgstr "Алжир Араб" + +msgid "Asturian" +msgstr "Астури" + +msgid "Azerbaijani" +msgstr "Азербажан" + +msgid "Bulgarian" +msgstr "Болгар" + +msgid "Belarusian" +msgstr "Беларус" + +msgid "Bengali" +msgstr "Бенгал" + +msgid "Breton" +msgstr "Бэрэйтон " + +msgid "Bosnian" +msgstr "Босни" + +msgid "Catalan" +msgstr "Каталан" + +msgid "Central Kurdish (Sorani)" +msgstr "Төв Курд (Сорани)" + +msgid "Czech" +msgstr "Чех" + +msgid "Welsh" +msgstr "Уэльс" + +msgid "Danish" +msgstr "Дани" + +msgid "German" +msgstr "Герман" + +msgid "Lower Sorbian" +msgstr "Доод Сорбин" + +msgid "Greek" +msgstr "Грек" + +msgid "English" +msgstr "Англи" + +msgid "Australian English" +msgstr "Австрали Англи" + +msgid "British English" +msgstr "Британи Англи" + +msgid "Esperanto" +msgstr "Эсперанто" + +msgid "Spanish" +msgstr "Испани" + +msgid "Argentinian Spanish" +msgstr "Аргентинийн Испани" + +msgid "Colombian Spanish" +msgstr "Колумбийн Испаниар" + +msgid "Mexican Spanish" +msgstr "Мексикийн Испани" + +msgid "Nicaraguan Spanish" +msgstr "Никрагуан Испани" + +msgid "Venezuelan Spanish" +msgstr "Венесуэлийн Спани" + +msgid "Estonian" +msgstr "Эстони" + +msgid "Basque" +msgstr "Баск" + +msgid "Persian" +msgstr "Перс" + +msgid "Finnish" +msgstr "Финлянд" + +msgid "French" +msgstr "Франц" + +msgid "Frisian" +msgstr "Фриз" + +msgid "Irish" +msgstr "Ирланд" + +msgid "Scottish Gaelic" +msgstr "Шотландийн Гаелик" + +msgid "Galician" +msgstr "Галици" + +msgid "Hebrew" +msgstr "Еврэй" + +msgid "Hindi" +msgstr "Хинди" + +msgid "Croatian" +msgstr "Хорват" + +msgid "Upper Sorbian" +msgstr "Дээд Сорбин" + +msgid "Hungarian" +msgstr "Унгар" + +msgid "Armenian" +msgstr "Армен" + +msgid "Interlingua" +msgstr "Interlingua" + +msgid "Indonesian" +msgstr "Индонези" + +msgid "Igbo" +msgstr "Игбо" + +msgid "Ido" +msgstr "Идо" + +msgid "Icelandic" +msgstr "Исланд" + +msgid "Italian" +msgstr "Итали" + +msgid "Japanese" +msgstr "Япон" + +msgid "Georgian" +msgstr "Гүрж" + +msgid "Kabyle" +msgstr "Кабилэ" + +msgid "Kazakh" +msgstr "Казак" + +msgid "Khmer" +msgstr "Кхмер" + +msgid "Kannada" +msgstr "Канад" + +msgid "Korean" +msgstr "Солонгос" + +msgid "Kyrgyz" +msgstr "Киргиз" + +msgid "Luxembourgish" +msgstr "Лүксенбүргиш" + +msgid "Lithuanian" +msgstr "Литва" + +msgid "Latvian" +msgstr "Латви" + +msgid "Macedonian" +msgstr "Македон" + +msgid "Malayalam" +msgstr "Малайз" + +msgid "Mongolian" +msgstr "Монгол" + +msgid "Marathi" +msgstr "маратхи" + +msgid "Malay" +msgstr "Малай" + +msgid "Burmese" +msgstr "Бирм" + +msgid "Norwegian Bokmål" +msgstr "Норвеги Бокмал" + +msgid "Nepali" +msgstr "Непал" + +msgid "Dutch" +msgstr "Голланд" + +msgid "Norwegian Nynorsk" +msgstr "Норвегийн нюнорск" + +msgid "Ossetic" +msgstr "Оссетик" + +msgid "Punjabi" +msgstr "Панжаби" + +msgid "Polish" +msgstr "Польш" + +msgid "Portuguese" +msgstr "Португал" + +msgid "Brazilian Portuguese" +msgstr "Бразилийн Португали" + +msgid "Romanian" +msgstr "Румын" + +msgid "Russian" +msgstr "Орос" + +msgid "Slovak" +msgstr "Словак" + +msgid "Slovenian" +msgstr "Словен" + +msgid "Albanian" +msgstr "Альбани" + +msgid "Serbian" +msgstr "Серби" + +msgid "Serbian Latin" +msgstr "Серби латин" + +msgid "Swedish" +msgstr "Щвед" + +msgid "Swahili" +msgstr "Савахил" + +msgid "Tamil" +msgstr "Тамил" + +msgid "Telugu" +msgstr "Тэлүгү" + +msgid "Tajik" +msgstr "Тажик" + +msgid "Thai" +msgstr "Тайланд" + +msgid "Turkmen" +msgstr "Турк хүн" + +msgid "Turkish" +msgstr "Турк" + +msgid "Tatar" +msgstr "Татар" + +msgid "Udmurt" +msgstr "Удмурт" + +msgid "Uyghur" +msgstr "Уйгур" + +msgid "Ukrainian" +msgstr "Украйн" + +msgid "Urdu" +msgstr "Урду" + +msgid "Uzbek" +msgstr "Узбек" + +msgid "Vietnamese" +msgstr "Вьетнам" + +msgid "Simplified Chinese" +msgstr "Хятад (хялбаршуулсан) " + +msgid "Traditional Chinese" +msgstr "Хятад (уламжлалт)" + +msgid "Messages" +msgstr "Мэдээллүүд" + +msgid "Site Maps" +msgstr "Сайтын бүтэц" + +msgid "Static Files" +msgstr "Статик файлууд" + +msgid "Syndication" +msgstr "Нэгтгэл" + +#. Translators: String used to replace omitted page numbers in elided page +#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10]. +msgid "…" +msgstr "…" + +msgid "That page number is not an integer" +msgstr "Хуудасны дугаар бүхэл тоо / Integer / биш байна" + +msgid "That page number is less than 1" +msgstr "Хуудасны дугаар 1-ээс байга байна" + +msgid "That page contains no results" +msgstr "Хуудас үр дүн агуулаагүй байна" + +msgid "Enter a valid value." +msgstr "Зөв утга оруулна уу." + +msgid "Enter a valid URL." +msgstr "Зөв, хүчинтэй хаяг (URL) оруулна уу." + +msgid "Enter a valid integer." +msgstr "Бүхэл тоо оруулна уу" + +msgid "Enter a valid email address." +msgstr "Зөв имэйл хаяг оруулна уу" + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" +"Үсэг, тоо, доогуур зураас эсвэл зурааснаас бүрдсэн хүчинтэй \"slug\" оруулна " +"уу." + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" +"Юникод үсэг, тоо, доогуур зураас, зурааснаас бүрдсэн хүчинтэй \"slug\" " +"оруулна уу." + +msgid "Enter a valid IPv4 address." +msgstr "Зөв IPv4 хаяг оруулна уу. " + +msgid "Enter a valid IPv6 address." +msgstr "Зөв IPv6 хаяг оруулна уу." + +msgid "Enter a valid IPv4 or IPv6 address." +msgstr "Зөв IPv4 эсвэл IPv6 хаяг оруулна уу." + +msgid "Enter only digits separated by commas." +msgstr "Зөвхөн таслалаар тусгаарлагдсан цифр оруулна уу." + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "" +"Энэ утга хамгийн ихдээ %(limit_value)s байх ёстой. (одоо %(show_value)s " +"байна)" + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "Энэ утга %(limit_value)s -с бага эсвэл тэнцүү байх ёстой." + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "Энэ утга %(limit_value)s -с их эсвэл тэнцүү байх нөхцлийг хангана уу." + +#, python-format +msgid "Ensure this value is a multiple of step size %(limit_value)s." +msgstr "" +"Утга нь алхамын хэмжээнд %(limit_value)s-ээс олон байхыг " +"баталгаажуулна уу." + +#, python-format +msgid "" +"Ensure this value is a multiple of step size %(limit_value)s, starting from " +"%(offset)s, e.g. %(offset)s, %(valid_value1)s, %(valid_value2)s, and so on." +msgstr "" +"Энэ утга нь алхмын хэмжээнд %(limit_value)s, %(offset)s-с эхлэн %(offset)s, " +"%(valid_value1)s, %(valid_value2)s гэх мэт утга байхыг баталгаажуулна уу." + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Хамгийн ихдээ %(limit_value)d тэмдэгт байх нөхцлийг хангана уу. " +"(%(show_value)d-ийн дагуу)" +msgstr[1] "" +"Хамгийн ихдээ %(limit_value)d тэмдэгт байх нөхцлийг хангана уу. " +"(%(show_value)d-ийн дагуу)" + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[1] "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." + +msgid "Enter a number." +msgstr "Тоон утга оруулна уу." + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "%(max)s -ээс ихгүй утга оруулна уу " +msgstr[1] "%(max)s -ээс ихгүй утга оруулна уу " + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "Энд %(max)s -аас олонгүй бутархайн орон байх ёстой. " +msgstr[1] "Энд %(max)s -аас олонгүй бутархайн орон байх ёстой. " + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "Энд бутархайн таслалаас өмнө %(max)s-аас олонгүй цифр байх ёстой." +msgstr[1] "Энд бутархайн таслалаас өмнө %(max)s-аас олонгүй цифр байх ёстой." + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" +"Файлын өргөтгөл “%(extension)s” зөвшөөрөгдөөгүй байна. Боломжит өргөтгөлүүд: " +"%(allowed_extensions)s." + +msgid "Null characters are not allowed." +msgstr "Хоосон тэмдэгт зөвшөөрөгдөхгүй." + +msgid "and" +msgstr "ба" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "%(field_labels)s талбар бүхий %(model_name)s аль хэдийн орсон байна." + +#, python-format +msgid "Constraint “%(name)s” is violated." +msgstr "“%(name)s” хязгаарлалтыг зөрчсөн." + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "%(value)r буруу сонголт байна." + +msgid "This field cannot be null." +msgstr "Энэ хэсгийг хоосон орхиж болохгүй." + +msgid "This field cannot be blank." +msgstr "Энэ хэсэг хоосон байж болохгүй." + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "%(field_label)s-тэй %(model_name)s-ийг аль хэдийнэ оруулсан байна." + +#. Translators: The 'lookup_type' is one of 'date', 'year' or +#. 'month'. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" +"%(field_label)s талбарт давхардахгүй байх хэрэгтэй %(date_field_label)s " +"%(lookup_type)s оруулна." + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "Талбарийн төрөл нь : %(field_type)s" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "\"“%(value)s” утга True эсвэл False байх ёстой.\"" + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "“%(value)s” утга True, False, эсвэл None байх ёстой." + +msgid "Boolean (Either True or False)" +msgstr "Boolean (Үнэн худлын аль нэг нь)" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "Бичвэр (%(max_length)s хүртэл)" + +msgid "String (unlimited)" +msgstr "Тэмдэг мөр (хязгааргүй)" + +msgid "Comma-separated integers" +msgstr "Таслалаар тусгаарлагдсан бүхэл тоо" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" +"“%(value)s” утга нь буруу огнооны форматтай байна. Энэ нь YYYY-MM-DD " +"форматтай байх ёстой." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" +"“%(value)s” утга зөв (YYYY-MM-DD) форматтай байна, гэхдээ буруу огноо байна." + +msgid "Date (without time)" +msgstr "Огноо (цаггүй)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" +"“%(value)s” утга буруу форматтай байна. Энэ нь YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ] форматтай байх ёстой." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" +"“%(value)s” утгын формат зөв байна (YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ]) " +"гэхдээ буруу огноо/цаг байна." + +msgid "Date (with time)" +msgstr "Огноо (цагтай)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "“%(value)s” утга нь бодит тоо байх ёстой." + +msgid "Decimal number" +msgstr "Аравтын бутархайт тоо" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" +"“%(value)s” утга буруу форматтай байна. Энэ нь [DD] [[HH:]MM:]ss[.uuuuuu] " +"форматтай байх ёстой." + +msgid "Duration" +msgstr "Үргэлжлэх хугацаа" + +msgid "Email address" +msgstr "Имэйл хаяг" + +msgid "File path" +msgstr "Файлын зам " + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "“%(value)s” бутархай тоон утга байх ёстой." + +msgid "Floating point number" +msgstr "Хөвөгч таслалтай тоо" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "“%(value)s” утга нь бүхэл тоо байх ёстой." + +msgid "Integer" +msgstr "Бүхэл тоо" + +msgid "Big (8 byte) integer" +msgstr "Том (8 байт) бүхэл тоо" + +msgid "Small integer" +msgstr "Бага тоон утна" + +msgid "IPv4 address" +msgstr "IPv4 хаяг" + +msgid "IP address" +msgstr "IP хаяг" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "\"“%(value)s” утга нь None, True эсвэл False байх ёстой.\"" + +msgid "Boolean (Either True, False or None)" +msgstr "Boolean (Үнэн, худал, эсвэл юу ч биш)" + +msgid "Positive big integer" +msgstr "Эерэг том бүхэл тоо" + +msgid "Positive integer" +msgstr "Бүхэл тоох утга" + +msgid "Positive small integer" +msgstr "Бага бүхэл тоон утга" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "Слаг (ихдээ %(max_length)s )" + +msgid "Text" +msgstr "Текст" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" +"“%(value)s” утга буруу форматтай байна. Энэ нь HH:MM[:ss[.uuuuuu]] форматтай " +"байх ёстой." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" +"“%(value)s” утга зөв форматтай байна (HH:MM[:ss[.uuuuuu]]) гэхдээ буруу цаг " +"байна." + +msgid "Time" +msgstr "Цаг" + +msgid "URL" +msgstr "URL" + +msgid "Raw binary data" +msgstr "Бинари өгөгдөл" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "“%(value)s” нь хүчинтэй UUID биш." + +msgid "Universally unique identifier" +msgstr "UUID" + +msgid "File" +msgstr "Файл" + +msgid "Image" +msgstr "Зураг" + +msgid "A JSON object" +msgstr "JSON объект " + +msgid "Value must be valid JSON." +msgstr "JSON утга байх боломжтой." + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "%(field)s %(value)r утгатай %(model)s байхгүй байна." + +msgid "Foreign Key (type determined by related field)" +msgstr "Гадаад түлхүүр (тодорхой төрлийн холбоос талбар)" + +msgid "One-to-one relationship" +msgstr "Нэг-нэг холбоос" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "%(from)s-%(to)s холбоос" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "%(from)s-%(to)s холбоосууд" + +msgid "Many-to-many relationship" +msgstr "Олон-олон холбоос" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr ":?.!" + +msgid "This field is required." +msgstr "Энэ талбарыг бөглөх шаардлагатай." + +msgid "Enter a whole number." +msgstr "Бүхэл тоон утга оруулна уу." + +msgid "Enter a valid date." +msgstr "Зөв огноо оруулна уу." + +msgid "Enter a valid time." +msgstr "Зөв цаг оруулна уу." + +msgid "Enter a valid date/time." +msgstr "Огноо/цаг-ыг зөв оруулна уу." + +msgid "Enter a valid duration." +msgstr "Үргэлжилэх хугацааг зөв оруулна уу." + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "Өдөрийн утга {min_days} ээс {max_days} ийн хооронд байх ёстой." + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "Файл оруулаагүй байна. Маягтаас кодлох төрлийг чагтал. " + +msgid "No file was submitted." +msgstr "Файл оруулаагүй байна." + +msgid "The submitted file is empty." +msgstr "Оруулсан файл хоосон байна. " + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[1] "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "" +"Нэг бол сонголтын чягтыг авах эсвэл файл оруулна уу. Зэрэг хэрэгжих " +"боломжгүй." + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" +"Зөв зураг оруулна уу. Таны оруулсан файл нэг бол зургийн файл биш эсвэл " +"гэмтсэн зураг байна." + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "Зөв сонголт хийнэ үү. %(value)s гэсэн сонголт байхгүй байна." + +msgid "Enter a list of values." +msgstr "Өгөгдхүүний жагсаалтаа оруулна уу." + +msgid "Enter a complete value." +msgstr "Бүрэн утга оруулна уу." + +msgid "Enter a valid UUID." +msgstr "Зөв UUID оруулна уу." + +msgid "Enter a valid JSON." +msgstr "JSON-ийн бүтцээр оруулна уу." + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr ":" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "(Нууц талбар%(name)s) %(error)s" + +#, python-format +msgid "" +"ManagementForm data is missing or has been tampered with. Missing fields: " +"%(field_names)s. You may need to file a bug report if the issue persists." +msgstr "" +"ManagementForm-ын өгөгдөл дутуу эсвэл өөрчилсөн байна. Дутуу талбарууд: " +"%(field_names)s. Хэрэв асуудал хэвээр байвал та алдааны тайлан гаргах " +"шаардлагатай байж магадгүй." + +#, python-format +msgid "Please submit at most %(num)d form." +msgid_plural "Please submit at most %(num)d forms." +msgstr[0] "Та хамгийн ихдээ %(num)d форм илгээнэ үү." +msgstr[1] "Та хамгийн ихдээ %(num)d форм илгээнэ үү." + +#, python-format +msgid "Please submit at least %(num)d form." +msgid_plural "Please submit at least %(num)d forms." +msgstr[0] "Та хамгийн багадаа %(num)d форм илгээнэ үү." +msgstr[1] "Та хамгийн багадаа %(num)d форм илгээнэ үү." + +msgid "Order" +msgstr "Эрэмбэлэх" + +msgid "Delete" +msgstr "Устгах" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "%(field)s хэсэг дэх давхардсан утгыг засварлана уу. " + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "" +"%(field)s хэсэг дэх давхардсан утгыг засварлана уу. Түүний утгууд " +"давхардахгүй байх ёстой." + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"%(field_name)s хэсэг дэх давхардсан утгыг засварлана уу. %(date_field)s-н " +"%(lookup)s хувьд давхардахгүй байх ёстой." + +msgid "Please correct the duplicate values below." +msgstr "Доорх давхардсан утгуудыг засна уу." + +msgid "The inline value did not match the parent instance." +msgstr "Inline утга эцэг обекттой таарахгүй байна." + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "Зөв сонголт хийнэ үү. Энэ утга сонголтонд алга." + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "“%(pk)s” нь шаардлага хангаагүй утга байна." + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" +"%(datetime)s нь %(current_timezone)s цагийн бүсэд хөрвүүлэх боломжгүй байна; " +"энэ нь хоёрдмол утгатай эсвэл байхгүй байж болно." + +msgid "Clear" +msgstr "Цэвэрлэх" + +msgid "Currently" +msgstr "Одоогийн" + +msgid "Change" +msgstr "Засах" + +msgid "Unknown" +msgstr "Тодорхойгүй" + +msgid "Yes" +msgstr "Тийм" + +msgid "No" +msgstr "Үгүй" + +#. Translators: Please do not add spaces around commas. +msgid "yes,no,maybe" +msgstr "тийм,үгүй,магадгүй" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)d байт" +msgstr[1] "%(size)d байт" + +#, python-format +msgid "%s KB" +msgstr "%s KB" + +#, python-format +msgid "%s MB" +msgstr "%s MB" + +#, python-format +msgid "%s GB" +msgstr "%s GB" + +#, python-format +msgid "%s TB" +msgstr "%s TB" + +#, python-format +msgid "%s PB" +msgstr "%s PB" + +msgid "p.m." +msgstr "p.m." + +msgid "a.m." +msgstr "a.m." + +msgid "PM" +msgstr "PM" + +msgid "AM" +msgstr "AM" + +msgid "midnight" +msgstr "шөнө дунд" + +msgid "noon" +msgstr "үд дунд" + +msgid "Monday" +msgstr "Даваа гариг" + +msgid "Tuesday" +msgstr "Мягмар гариг" + +msgid "Wednesday" +msgstr "Лхагва гариг" + +msgid "Thursday" +msgstr "Пүрэв гариг" + +msgid "Friday" +msgstr "Баасан гариг" + +msgid "Saturday" +msgstr "Бямба гариг" + +msgid "Sunday" +msgstr "Ням гариг" + +msgid "Mon" +msgstr "Дав" + +msgid "Tue" +msgstr "Мяг" + +msgid "Wed" +msgstr "Лха" + +msgid "Thu" +msgstr "Пүр" + +msgid "Fri" +msgstr "Баа" + +msgid "Sat" +msgstr "Бям" + +msgid "Sun" +msgstr "Ням" + +msgid "January" +msgstr "1-р сар" + +msgid "February" +msgstr "2-р сар" + +msgid "March" +msgstr "3-р сар" + +msgid "April" +msgstr "4-р сар" + +msgid "May" +msgstr "5-р сар" + +msgid "June" +msgstr "6-р сар" + +msgid "July" +msgstr "7-р сар" + +msgid "August" +msgstr "8-р сар" + +msgid "September" +msgstr "9-р сар" + +msgid "October" +msgstr "10-р сар" + +msgid "November" +msgstr "11-р сар" + +msgid "December" +msgstr "12-р сар" + +msgid "jan" +msgstr "1-р сар" + +msgid "feb" +msgstr "2-р сар" + +msgid "mar" +msgstr "3-р сар" + +msgid "apr" +msgstr "4-р сар" + +msgid "may" +msgstr "5-р сар" + +msgid "jun" +msgstr "6-р сар" + +msgid "jul" +msgstr "7-р сар" + +msgid "aug" +msgstr "8-р сар " + +msgid "sep" +msgstr "9-р сар" + +msgid "oct" +msgstr "10-р сар" + +msgid "nov" +msgstr "11-р сар" + +msgid "dec" +msgstr "12-р сар" + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "1-р сар." + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "2-р сар." + +msgctxt "abbrev. month" +msgid "March" +msgstr "3-р сар." + +msgctxt "abbrev. month" +msgid "April" +msgstr "4-р сар." + +msgctxt "abbrev. month" +msgid "May" +msgstr "5-р сар." + +msgctxt "abbrev. month" +msgid "June" +msgstr "6-р сар." + +msgctxt "abbrev. month" +msgid "July" +msgstr "7-р сар." + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "8-р сар." + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "9-р сар." + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "10-р сар." + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "11-р сар." + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "12-р сар." + +msgctxt "alt. month" +msgid "January" +msgstr "Хулгана" + +msgctxt "alt. month" +msgid "February" +msgstr "Үхэр" + +msgctxt "alt. month" +msgid "March" +msgstr "Бар" + +msgctxt "alt. month" +msgid "April" +msgstr "Туулай" + +msgctxt "alt. month" +msgid "May" +msgstr "Луу" + +msgctxt "alt. month" +msgid "June" +msgstr "Могой" + +msgctxt "alt. month" +msgid "July" +msgstr "Морь" + +msgctxt "alt. month" +msgid "August" +msgstr "Хонь" + +msgctxt "alt. month" +msgid "September" +msgstr "Бич" + +msgctxt "alt. month" +msgid "October" +msgstr "Тахиа" + +msgctxt "alt. month" +msgid "November" +msgstr "Нохой" + +msgctxt "alt. month" +msgid "December" +msgstr "Гахай" + +msgid "This is not a valid IPv6 address." +msgstr "Энэ буруу IPv6 хаяг байна." + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "%(truncated_text)s…" + +msgid "or" +msgstr "буюу" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr ", " + +#, python-format +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "%(num)d жил" +msgstr[1] "%(num)d жил" + +#, python-format +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "%(num)d сар" +msgstr[1] "%(num)d сар" + +#, python-format +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "%(num)d долоо хоног" +msgstr[1] "%(num)d долоо хоног" + +#, python-format +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "%(num)d өдөр" +msgstr[1] "%(num)d өдөр" + +#, python-format +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "%(num)d цаг" +msgstr[1] "%(num)d цаг" + +#, python-format +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "%(num)d минут" +msgstr[1] "%(num)d минут" + +msgid "Forbidden" +msgstr "Хориотой" + +msgid "CSRF verification failed. Request aborted." +msgstr "CSRF дээр уналаа. Хүсэлт таслагдсан." + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" +"Та энэ мэдэгдлийг харж байгаа нь таны веб хөтөчөөс 'Referer header'-ийг " +"HTTPS хуудасд илгээх шаардлагатай байгаатай холбоотой. Энэ нь гуравдагч " +"этгээдээс хамгаалахын тулд шаардлагатай." + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" +"Хэрвээ та веб хөтөчөө 'Referer' толгойг идэвхигүй болгосон бол энэ хуудас, " +"HTTPS холболт эсвэл 'same-origin' хүсэлтэнд зориулж идэвхижүүлнэ үү." + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" +"Хэрвээ та таг ашиглаж " +"байгаа бол эсвэл 'Referrer-Policy: no-referrer' толгойг нэмсэн бол, " +"эдгээрийг устгана уу. CSRF хамгаалалт 'Referer' толгойг чанд шалгалт хийхийг " +"шаарддаг. Хэрвээ та аюулгүй байдлыг чухалчилж байгаа бол гуравдагч сайтыг " +"холбохдоо ашиглана уу." + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" +"Энэ хуудсанд форм илгээхийн тулд CSRF күүки шаардлагатай учир Та энэ " +"мэдэгдлийг харж байна. Энэ күүки нь гуравдагч этгээдээс хамгаалахын тулд " +"шаардлагатай." + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" +"Хэрвээ та веб хөтөчийн \"cookies\"-г хаасан бол энэ хуудас эсвэл 'same-" +"origin' хүсэлтэнд зориулж идэвхижүүлнэ үү." + +msgid "More information is available with DEBUG=True." +msgstr "DEBUG=True үед дэлгэрэнгүй мэдээлэл харах боломжтой." + +msgid "No year specified" +msgstr "Он тодорхойлоогүй байна" + +msgid "Date out of range" +msgstr "Хугацааны хязгаар хэтэрсэн байна" + +msgid "No month specified" +msgstr "Сар тодорхойлоогүй байна" + +msgid "No day specified" +msgstr "Өдөр тодорхойлоогүй байна" + +msgid "No week specified" +msgstr "Долоо хоног тодорхойлоогүй байна" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "%(verbose_name_plural)s боломжгүй" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" +"%(class_name)s.allow_future нь худлаа учраас %(verbose_name_plural)s нь " +"боломжгүй." + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "" +"Буруу огноо. '%(datestr)s' огноо '%(format)s' хэлбэрт тохирохгүй байна." + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "Шүүлтүүрт таарах %(verbose_name)s олдсонгүй " + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "Хуудас \"сүүлчийн\" биш бөгөөд үүнийг int болгон хувиргах боломжгүй." + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "Буруу хуудас (%(page_number)s): %(message)s" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "Хоосон жагсаалт ба “%(class_name)s.allow_empty” нь False байна." + +msgid "Directory indexes are not allowed here." +msgstr "Файлын жагсаалтыг энд зөвшөөрөөгүй." + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "“%(path)s” хуудас байхгүй байна." + +#, python-format +msgid "Index of %(directory)s" +msgstr "%(directory)s ийн жагсаалт" + +msgid "The install worked successfully! Congratulations!" +msgstr "Амжилттай суулгалаа! Баяр хүргэе!" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" +"Джанго %(version)s хувирбарын тэмдэглэл харах " + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not " +"configured any URLs." +msgstr "" +"Таний тохиргооны файл дээр DEBUG=TRUE гэж тохируулсан мөн URLs дээр тохиргоо " +"хийгээгүй учраас энэ хуудасыг харж байна." + +msgid "Django Documentation" +msgstr "Джанго баримтжуулалт" + +msgid "Topics, references, & how-to’s" +msgstr "Сэдэв, лавлахууд болон зааврууд" + +msgid "Tutorial: A Polling App" +msgstr "Хичээл: Санал асуулга App" + +msgid "Get started with Django" +msgstr "Джанготой ажиллаж эхлэх" + +msgid "Django Community" +msgstr "Django Бүлгэм" + +msgid "Connect, get help, or contribute" +msgstr "Холбогдох, тусламж авах эсвэл хувь нэмрээ оруулах" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/mn/__init__.py b/venv/lib/python3.12/site-packages/django/conf/locale/mn/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/mn/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/mn/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0fc6cdd205e172e1d269d025ed2de2a8165fa990 GIT binary patch literal 198 zcmX@j%ge<81o5sX(m?cM5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!O4ZNE&rQ|OP0Yy6 zFHO;RNiEZNN=(kybEFQ_cZ$j>v@Gc?jK&MZmQEdVM^ zOiwM=Pssu+OwP|s)6dCIPRs!sn5Q2fpP83g5+AQuQ2C3)CO1E&G$+-rh!tonBM=vZ O7$2D#85xV1fh+*Vu{4GN literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/mn/__pycache__/formats.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/mn/__pycache__/formats.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..bbc25d2dfe6b236f8f64f95243c5a91da3e3bc8c GIT binary patch literal 292 zcmX@j%ge<81o5sX(v~nWFgylvV1N*GA7tRq3_V5o1iAR!O$?zFu z%dZsujQreG{oKTi-2BoMeV5cSeW%3aY+cv96#b-}#Ju!;{j$`&GX0#)B>jTQl8pR3 zV?9G7{o>4$RNVrg!o>8{V*QjXu)^g0yfpos{N%(Opn-Y%Y57IDi6zB)1(m-zY;yBc wN^?@}ia3Clg8Wx32_!x+Gcq!M;9}qxYv8`YC)&XMfrCL*<|2b&5gSkz0LrFNSO5S3 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/mn/formats.py b/venv/lib/python3.12/site-packages/django/conf/locale/mn/formats.py new file mode 100644 index 0000000000..589c24cf66 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/mn/formats.py @@ -0,0 +1,21 @@ +# This file is distributed under the same license as the Django package. +# +# The *_FORMAT strings use the Django date format syntax, +# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date +DATE_FORMAT = "d F Y" +TIME_FORMAT = "g:i A" +# DATETIME_FORMAT = +# YEAR_MONTH_FORMAT = +# MONTH_DAY_FORMAT = +SHORT_DATE_FORMAT = "j M Y" +# SHORT_DATETIME_FORMAT = +# FIRST_DAY_OF_WEEK = + +# The *_INPUT_FORMATS strings use the Python strftime format syntax, +# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior +# DATE_INPUT_FORMATS = +# TIME_INPUT_FORMATS = +# DATETIME_INPUT_FORMATS = +# DECIMAL_SEPARATOR = +# THOUSAND_SEPARATOR = +# NUMBER_GROUPING = diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/mr/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/conf/locale/mr/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..8cf9a708eacb3eb997ddab3c01825a262d3adfa3 GIT binary patch literal 27608 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 F{vXubaRC4T literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/mr/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/conf/locale/mr/LC_MESSAGES/django.po new file mode 100644 index 0000000000..fe4c6ebb2b --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/mr/LC_MESSAGES/django.po @@ -0,0 +1,1280 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Omkar Parab, 2024 +# Suraj Kawade, 2013 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-09-18 11:41-0300\n" +"PO-Revision-Date: 2024-01-20 06:49+0000\n" +"Last-Translator: Omkar Parab, 2024\n" +"Language-Team: Marathi (http://app.transifex.com/django/django/language/" +"mr/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: mr\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Afrikaans" +msgstr "अफ्रिकान्स" + +msgid "Arabic" +msgstr "अरेबिक" + +msgid "Algerian Arabic" +msgstr "अल्जेरियन अरेबिक" + +msgid "Asturian" +msgstr "अस्टूरियन" + +msgid "Azerbaijani" +msgstr "अझरबैजानी" + +msgid "Bulgarian" +msgstr "बल्गेरियन" + +msgid "Belarusian" +msgstr "बेलारशियन" + +msgid "Bengali" +msgstr "बंगाली" + +msgid "Breton" +msgstr "ब्रेटन" + +msgid "Bosnian" +msgstr "बोस्नियन" + +msgid "Catalan" +msgstr "कॅटलान" + +msgid "Central Kurdish (Sorani)" +msgstr "मध्य कुर्दिश (सोरानी)" + +msgid "Czech" +msgstr "झेक" + +msgid "Welsh" +msgstr "वेल्श" + +msgid "Danish" +msgstr "डॅनिश" + +msgid "German" +msgstr "जर्मन" + +msgid "Lower Sorbian" +msgstr "लोअर सोर्बियन" + +msgid "Greek" +msgstr "ग्रीक" + +msgid "English" +msgstr "इंग्रजी" + +msgid "Australian English" +msgstr "ऑस्ट्रेलियन इंग्रजी" + +msgid "British English" +msgstr "ब्रिटिश इंग्रजी" + +msgid "Esperanto" +msgstr "एस्पेरॅन्टो" + +msgid "Spanish" +msgstr "स्पॅनिश " + +msgid "Argentinian Spanish" +msgstr "अर्जेन्टिनाची स्पॅनिश" + +msgid "Colombian Spanish" +msgstr "कोलंबियन स्पॅनिश" + +msgid "Mexican Spanish" +msgstr "मेक्सिकन स्पॅनिश" + +msgid "Nicaraguan Spanish" +msgstr "निकारागुआन स्पॅनिश" + +msgid "Venezuelan Spanish" +msgstr "व्हेनेझुएलन स्पॅनिश" + +msgid "Estonian" +msgstr "एस्टोनियन" + +msgid "Basque" +msgstr "बास्क" + +msgid "Persian" +msgstr "पर्शियन" + +msgid "Finnish" +msgstr "फिनिश" + +msgid "French" +msgstr "फ्रेंच" + +msgid "Frisian" +msgstr "फ्रिसियन" + +msgid "Irish" +msgstr "आयरिश" + +msgid "Scottish Gaelic" +msgstr "स्कॉटिश गेलिक" + +msgid "Galician" +msgstr "गॅलिशियन" + +msgid "Hebrew" +msgstr "हिब्रू" + +msgid "Hindi" +msgstr "हिंदी" + +msgid "Croatian" +msgstr "क्रोएशियन" + +msgid "Upper Sorbian" +msgstr "अप्पर सोर्बियन" + +msgid "Hungarian" +msgstr "हंगेरियन" + +msgid "Armenian" +msgstr "अर्मेनियन" + +msgid "Interlingua" +msgstr "इंटरलिंगुआ" + +msgid "Indonesian" +msgstr "इंडोनेशियन" + +msgid "Igbo" +msgstr "इग्बो" + +msgid "Ido" +msgstr "इदो" + +msgid "Icelandic" +msgstr "आयलँडिक" + +msgid "Italian" +msgstr "इटालियन" + +msgid "Japanese" +msgstr "जपानी" + +msgid "Georgian" +msgstr "जॉर्जियन" + +msgid "Kabyle" +msgstr "कबायल" + +msgid "Kazakh" +msgstr "कझाक" + +msgid "Khmer" +msgstr "ख्मेर" + +msgid "Kannada" +msgstr "कन्नड" + +msgid "Korean" +msgstr "कोरियन" + +msgid "Kyrgyz" +msgstr "किर्गिझ" + +msgid "Luxembourgish" +msgstr "लक्झेंबर्गिश" + +msgid "Lithuanian" +msgstr "लिथुआनियन" + +msgid "Latvian" +msgstr "लाटव्हिअन" + +msgid "Macedonian" +msgstr "मॅसेडोनिअन" + +msgid "Malayalam" +msgstr "मल्याळम" + +msgid "Mongolian" +msgstr "मंगोलियन" + +msgid "Marathi" +msgstr "मराठी" + +msgid "Malay" +msgstr "मलय" + +msgid "Burmese" +msgstr "बर्मीस" + +msgid "Norwegian Bokmål" +msgstr "नॉर्वेजियन बोकमाल" + +msgid "Nepali" +msgstr "नेपाळी" + +msgid "Dutch" +msgstr "डच" + +msgid "Norwegian Nynorsk" +msgstr "नॉर्वेजिअन निनॉर्स्क " + +msgid "Ossetic" +msgstr "ओस्सेटिक" + +msgid "Punjabi" +msgstr "पंजाबी" + +msgid "Polish" +msgstr "पॉलिश" + +msgid "Portuguese" +msgstr "पोर्तुगीज" + +msgid "Brazilian Portuguese" +msgstr "ब्रझिलियन पोर्तुगीज" + +msgid "Romanian" +msgstr "रोमेनियन" + +msgid "Russian" +msgstr "रशियन" + +msgid "Slovak" +msgstr "स्लोवाक" + +msgid "Slovenian" +msgstr "स्लोवेनियन" + +msgid "Albanian" +msgstr "अल्बेनियन" + +msgid "Serbian" +msgstr "सर्बियन" + +msgid "Serbian Latin" +msgstr "सर्बियन लॅटिन" + +msgid "Swedish" +msgstr "स्वीडिश" + +msgid "Swahili" +msgstr "स्वाहिली" + +msgid "Tamil" +msgstr "तमिळ" + +msgid "Telugu" +msgstr "तेलुगु" + +msgid "Tajik" +msgstr "ताजिक" + +msgid "Thai" +msgstr "थाई" + +msgid "Turkmen" +msgstr "तुर्कमेन" + +msgid "Turkish" +msgstr "तुर्की" + +msgid "Tatar" +msgstr "टाटर" + +msgid "Udmurt" +msgstr "उदमर्त" + +msgid "Uyghur" +msgstr "उईघुर" + +msgid "Ukrainian" +msgstr "युक्रेनियन" + +msgid "Urdu" +msgstr "उर्दू" + +msgid "Uzbek" +msgstr "उझबेक" + +msgid "Vietnamese" +msgstr "व्हिएतनामी" + +msgid "Simplified Chinese" +msgstr "सोपी चायनिज" + +msgid "Traditional Chinese" +msgstr "पारंपारिक चायनिज" + +msgid "Messages" +msgstr "संदेश" + +msgid "Site Maps" +msgstr "संकेतस्थळ नकाशे" + +msgid "Static Files" +msgstr "स्थिर फाइल्स" + +msgid "Syndication" +msgstr "सिंडिकेशन" + +#. Translators: String used to replace omitted page numbers in elided page +#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10]. +msgid "…" +msgstr "..." + +msgid "That page number is not an integer" +msgstr "तो पान क्रमांक पूर्णांक नाही." + +msgid "That page number is less than 1" +msgstr "तो पान क्रमांक 1 पेक्षा कमी आहे" + +msgid "That page contains no results" +msgstr "त्या पानावर कोणतेही परिणाम नाहीत." + +msgid "Enter a valid value." +msgstr "वैध मूल्य टाका." + +msgid "Enter a valid URL." +msgstr "एक योग्य युआरएल टाका करा." + +msgid "Enter a valid integer." +msgstr "योग्य पूर्णांक टाका." + +msgid "Enter a valid email address." +msgstr "योग्य विपत्र पत्ता टाका." + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "अक्षरे, संख्या, अंडरस्कोर किंवा हायफनसह असलेला योग्य \"स्लग\" टाका." + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "योग्य \"स्लग\" टाका ज्यामध्ये यूनिकोड अक्षरे, अंक, अंडरस्कोर किंवा हायफन असतात." + +msgid "Enter a valid IPv4 address." +msgstr "योग्य IPv4 पत्ता टाका." + +msgid "Enter a valid IPv6 address." +msgstr "योग्य IPv6 पत्ता टाका." + +msgid "Enter a valid IPv4 or IPv6 address." +msgstr "योग्य IPv4 किंवा IPv6 पत्ता नमूद करा." + +msgid "Enter only digits separated by commas." +msgstr "स्वल्पविरामाने वेगळे केलेले अंकच फक्त नमूद करा." + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "हे मूल्य%(limit_value)s(%(show_value)s) आहे याची खात्री करा." + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "हे मूल्य %(limit_value)sया मर्यादेइतके किंवा त्यापेक्षा कमी आहे याची काळजी घ्या." + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "हे मूल्य %(limit_value)sया मर्यादेइतके किंवा त्यापेक्षा जास्त आहे याची काळजी घ्या." + +#, python-format +msgid "Ensure this value is a multiple of step size %(limit_value)s." +msgstr "हे मूल्य पायरी आकार %(limit_value)s चा गुणाकार असल्याची खात्री करा." + +#, python-format +msgid "" +"Ensure this value is a multiple of step size %(limit_value)s, starting from " +"%(offset)s, e.g. %(offset)s, %(valid_value1)s, %(valid_value2)s, and so on." +msgstr "" + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +msgstr[1] "" + +msgid "Enter a number." +msgstr "अंक टाका." + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" + +msgid "Null characters are not allowed." +msgstr "शून्य वर्णांना परवानगी नाही." + +msgid "and" +msgstr "आणि" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "%(model_name)s सह %(field_labels)s हे अगोदरच अस्तित्वात आहे." + +#, python-format +msgid "Constraint “%(name)s” is violated." +msgstr "\"%(name)s\" च्या मर्यादेचं उल्लंघन आहे." + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "Value %(value)r हा योग्य पर्याय नाही." + +msgid "This field cannot be null." +msgstr "हे क्षेत्र रिक्त असू शकत नाही." + +msgid "This field cannot be blank." +msgstr "हे क्षेत्र रिक्त असू शकत नाही." + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "%(model_name)s %(field_label)s ने अगोदरच अस्तित्वात आहे." + +#. Translators: The 'lookup_type' is one of 'date', 'year' or +#. 'month'. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "क्षेत्राचा प्रकार: %(field_type)s" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "“%(value)s” मूल्य सत्य किंवा असत्य असावा." + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "“%(value)s” मूल्य सत्य, असत्य किंवा कोणतेही नसावेत." + +msgid "Boolean (Either True or False)" +msgstr "बूलियन (सत्य किंवा असत्य)" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "" + +msgid "String (unlimited)" +msgstr "" + +msgid "Comma-separated integers" +msgstr "स्वल्पविरामाने वेगळे केलेले पूर्णांक" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" + +msgid "Date (without time)" +msgstr "दिनांक (वेळेशिवाय)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" + +msgid "Date (with time)" +msgstr "दिनांक (वेळेसह)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "" + +msgid "Decimal number" +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" + +msgid "Duration" +msgstr "कालावधी" + +msgid "Email address" +msgstr "विपत्र पत्ता" + +msgid "File path" +msgstr "दस्तऐवज मार्ग" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "" + +msgid "Floating point number" +msgstr "" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "" + +msgid "Integer" +msgstr "पूर्णांक" + +msgid "Big (8 byte) integer" +msgstr "" + +msgid "Small integer" +msgstr "लहान पूर्णांक" + +msgid "IPv4 address" +msgstr "IPv4 पत्ता" + +msgid "IP address" +msgstr "IP पत्ता" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "" + +msgid "Boolean (Either True, False or None)" +msgstr "बुलियन (एकतर खरे, असत्य किंवा काहीही नाही)" + +msgid "Positive big integer" +msgstr "सकारात्मक मोठा पूर्णांक" + +msgid "Positive integer" +msgstr "सकारात्मक पूर्णांक" + +msgid "Positive small integer" +msgstr "सकारात्मक लहान पूर्णांक" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "" + +msgid "Text" +msgstr "मजकूर" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" + +msgid "Time" +msgstr "वेळ" + +msgid "URL" +msgstr "" + +msgid "Raw binary data" +msgstr "कच्चा बायनरी डेटा" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "" + +msgid "Universally unique identifier" +msgstr "सार्वत्रिक अद्वितीय ओळखकर्ता" + +msgid "File" +msgstr "फाइल" + +msgid "Image" +msgstr "चित्र " + +msgid "A JSON object" +msgstr "" + +msgid "Value must be valid JSON." +msgstr "मूल्य योग्य JSON असणे आवश्यक." + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "" + +msgid "Foreign Key (type determined by related field)" +msgstr "" + +msgid "One-to-one relationship" +msgstr "" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "" + +msgid "Many-to-many relationship" +msgstr "" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr ":?.!" + +msgid "This field is required." +msgstr "हे क्षेत्र आवश्यक आहे." + +msgid "Enter a whole number." +msgstr "पूर्ण संख्या प्रविष्ट करा." + +msgid "Enter a valid date." +msgstr "योग्य दिनांक नमूद करा." + +msgid "Enter a valid time." +msgstr "योग्य वेळ नमूद करा." + +msgid "Enter a valid date/time." +msgstr "योग्य दिनांक/वेळ नमूद करा." + +msgid "Enter a valid duration." +msgstr "योग्य कालावधी नमूद करा." + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "दिवसांची संख्या {min_days} आणि {max_days} च्या मधे असावी." + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "कोणताही दस्तऐवज सुपूर्त केलेला नाही. अर्जावरील एन्कोडिंग प्रकार तपासा." + +msgid "No file was submitted." +msgstr "कोणताही दस्तऐवज सुपूर्त केलेला नाही." + +msgid "The submitted file is empty." +msgstr "सुपूर्त केलेला दस्तऐवज रिकामी आहे." + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" +msgstr[1] "" + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "कृपया एकतर फाइल सबमिट करा किंवा स्पष्ट चेकबॉक्स चेक करा, दोन्ही नाही." + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "एक वैध प्रतिमा अपलोड करा. तुम्ही अपलोड केलेली फाइल चित्र किंवा दूषित चित्र नव्हते." + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "" + +msgid "Enter a list of values." +msgstr "मूल्यांची यादी नमूद करा." + +msgid "Enter a complete value." +msgstr "पूर्ण मूल्य नमूद करा." + +msgid "Enter a valid UUID." +msgstr "योग्य UUID नमूद करा." + +msgid "Enter a valid JSON." +msgstr "योग्य JSON नमूद करा." + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr ":" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "" + +#, python-format +msgid "" +"ManagementForm data is missing or has been tampered with. Missing fields: " +"%(field_names)s. You may need to file a bug report if the issue persists." +msgstr "" + +#, python-format +msgid "Please submit at most %(num)d form." +msgid_plural "Please submit at most %(num)d forms." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "Please submit at least %(num)d form." +msgid_plural "Please submit at least %(num)d forms." +msgstr[0] "" +msgstr[1] "" + +msgid "Order" +msgstr "क्रम" + +msgid "Delete" +msgstr "घालवा" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "कृपया %(field)s साठी दुय्यम माहिती प्रत सुधारा." + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "" + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" + +msgid "Please correct the duplicate values below." +msgstr "कृपया खालील नकली मूल्ये सुधारा." + +msgid "The inline value did not match the parent instance." +msgstr "इनलाइन मूल्य मूळ उदाहरणाशी जुळत नाही." + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "तो पर्याय उपलब्ध पर्यायांपैकी एक नाही. योग्य पर्याय निवडा. " + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "“%(pk)s” हे वैध मूल्य नाही." + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" + +msgid "Clear" +msgstr "साफ करा" + +msgid "Currently" +msgstr "सध्या" + +msgid "Change" +msgstr "बदला" + +msgid "Unknown" +msgstr "अज्ञात" + +msgid "Yes" +msgstr "होय" + +msgid "No" +msgstr "नाही" + +#. Translators: Please do not add spaces around commas. +msgid "yes,no,maybe" +msgstr "होय,नाही,कदाचित" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%s KB" +msgstr "%s केबी" + +#, python-format +msgid "%s MB" +msgstr "%s एमबी" + +#, python-format +msgid "%s GB" +msgstr "%s जीबी" + +#, python-format +msgid "%s TB" +msgstr "%s टिबी" + +#, python-format +msgid "%s PB" +msgstr "%s पीबी" + +msgid "p.m." +msgstr "म.उ." + +msgid "a.m." +msgstr "म.पू." + +msgid "PM" +msgstr "मउ" + +msgid "AM" +msgstr "मपू" + +msgid "midnight" +msgstr "मध्यरात्री" + +msgid "noon" +msgstr "दुपारी" + +msgid "Monday" +msgstr "सोमवार" + +msgid "Tuesday" +msgstr "मंगळवार" + +msgid "Wednesday" +msgstr "बुधवार" + +msgid "Thursday" +msgstr "गुरुवार" + +msgid "Friday" +msgstr "शुक्रवार" + +msgid "Saturday" +msgstr "शनिवार" + +msgid "Sunday" +msgstr "रविवार" + +msgid "Mon" +msgstr "सोम" + +msgid "Tue" +msgstr "मंगळ" + +msgid "Wed" +msgstr "बुध" + +msgid "Thu" +msgstr "गुरु" + +msgid "Fri" +msgstr "शुक्र" + +msgid "Sat" +msgstr "शनि" + +msgid "Sun" +msgstr "रवि" + +msgid "January" +msgstr "जानेवारी" + +msgid "February" +msgstr "फेब्रुवारी" + +msgid "March" +msgstr "मार्च" + +msgid "April" +msgstr "एप्रिल" + +msgid "May" +msgstr "मे" + +msgid "June" +msgstr "जून" + +msgid "July" +msgstr "जुलै" + +msgid "August" +msgstr "ऑगस्ट" + +msgid "September" +msgstr "सप्टेंबर" + +msgid "October" +msgstr "ऑक्टोबर" + +msgid "November" +msgstr "नोव्हेंबर" + +msgid "December" +msgstr "डिसेंबर" + +msgid "jan" +msgstr "जान" + +msgid "feb" +msgstr "फेब" + +msgid "mar" +msgstr "मार" + +msgid "apr" +msgstr "एप्रि" + +msgid "may" +msgstr "मे" + +msgid "jun" +msgstr "जून" + +msgid "jul" +msgstr "जुल" + +msgid "aug" +msgstr "ऑग" + +msgid "sep" +msgstr "सप" + +msgid "oct" +msgstr "ऑक्ट" + +msgid "nov" +msgstr "नोव्ह" + +msgid "dec" +msgstr "डिस" + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "जान." + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "फेब." + +msgctxt "abbrev. month" +msgid "March" +msgstr "मार्च" + +msgctxt "abbrev. month" +msgid "April" +msgstr "एप्रिल" + +msgctxt "abbrev. month" +msgid "May" +msgstr "मे" + +msgctxt "abbrev. month" +msgid "June" +msgstr "जून" + +msgctxt "abbrev. month" +msgid "July" +msgstr "जुलै" + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "ऑग." + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "सप्ट." + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "ऑक्ट." + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "नोव्ह." + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "डिस." + +msgctxt "alt. month" +msgid "January" +msgstr "जानेवारी" + +msgctxt "alt. month" +msgid "February" +msgstr "फेब्रुवारी" + +msgctxt "alt. month" +msgid "March" +msgstr "मार्च" + +msgctxt "alt. month" +msgid "April" +msgstr "एप्रिल" + +msgctxt "alt. month" +msgid "May" +msgstr "मे" + +msgctxt "alt. month" +msgid "June" +msgstr "जून" + +msgctxt "alt. month" +msgid "July" +msgstr "जुलै" + +msgctxt "alt. month" +msgid "August" +msgstr "ऑगस्ट" + +msgctxt "alt. month" +msgid "September" +msgstr "सप्टेंबर" + +msgctxt "alt. month" +msgid "October" +msgstr "ऑक्टोबर" + +msgctxt "alt. month" +msgid "November" +msgstr "नोव्हेंबर" + +msgctxt "alt. month" +msgid "December" +msgstr "डिसेंबर" + +msgid "This is not a valid IPv6 address." +msgstr "हा योग्य IPv6 पत्ता नाही." + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "" + +msgid "or" +msgstr "किंवा" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr "," + +#, python-format +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "" +msgstr[1] "" + +msgid "Forbidden" +msgstr "निषिद्ध" + +msgid "CSRF verification failed. Request aborted." +msgstr "CSRF चाचणी अयशस्वी झाली. विनंती रद्द केली." + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" +"तुम्हाला हा सनदेश दिसत आहे कारण या HTTPS संकेतस्थळाला तुमच्या वेब ब्राउझरद्वारे \"रेफरर " +"हेडर\" पाठवण्याची आवश्यकता आहे, परंतु कोणतेही पाठवले नाही. तुमचा ब्राउझर तृतीय पक्षांकडून " +"हायजॅक केला जात नाही याची खात्री करण्यासाठी सुरक्षिततेच्या दृष्टीने हे शीर्षलेख आवश्यक आहे." + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" +"किमान या साइटसाठी किंवा HTTPS कनेक्शनसाठी किंवा “समान-मूळ” विनंत्यांसाठी, तुम्ही तुमचे " +"ब्राउझर “रेफरर” हेडर अक्षम केले असल्यास, कृपया ते पुन्हा-सक्षम करा." + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" +"तुम्ही जोडणी वापरत असल्यास किंवा \"रेफरर-पॉलिसी: नो-रेफरर\" हेडर समाविष्ट करत " +"असल्यास, कृपया ते काढून टाका. CSRF संरक्षणासाठी \"रेफरर\" हेडर कठोर रेफरर तपासणी करणे " +"आवश्यक आहे. तुम्हाला गोपनीयतेबद्दल काळजी वाटत असल्यास, तृतीय-पक्ष स्थळाच्या दुव्यासाठी सारखे पर्याय वापरा." + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" +"तुम्हाला हा संदेश दिसत आहे कारण अर्ज सुपूर्त करताना या स्थळाला CSRF कुकी आवश्यक आहे. तुमचा " +"ब्राउझर तृतीय पक्षांकडून हायजॅक केला जात नाही याची खात्री करण्यासाठी ही कुकी " +"सुरक्षिततेच्या कारणांसाठी आवश्यक आहे." + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" +"किमान या साइटसाठी किंवा \"समान-मूळ\" विनंत्यांसाठी, कृपया अक्षम केलेल्या ब्राउझर कुकीज " +"पुन्हा सक्षम करा." + +msgid "More information is available with DEBUG=True." +msgstr "अधिक माहिती DEBUG=True सह उपलब्ध आहे." + +msgid "No year specified" +msgstr "कोणतेही वर्ष नमूद केलेले नाही" + +msgid "Date out of range" +msgstr "पल्ल्याच्या बाहेरची दिनांक" + +msgid "No month specified" +msgstr "कोणताही महिना निर्दिष्ट केलेला नाही" + +msgid "No day specified" +msgstr "कोणताही दिवस निर्दिष्ट केलेला नाही" + +msgid "No week specified" +msgstr "कोणताही आठवडा निर्दिष्ट केलेला नाही" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "कोणतेही %(verbose_name_plural)s उपलब्ध नाहीत" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "क्वेरीसह जुळणारे कोणतेही %(verbose_name)s सापडले नाही" + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "" + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "अवैध पान (%(page_number)s): %(message)s" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "" + +msgid "Directory indexes are not allowed here." +msgstr "डिरेक्टरी निर्देशकांना येथे परवानगी नाही." + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "“%(path)s” अस्तित्वात नाही" + +#, python-format +msgid "Index of %(directory)s" +msgstr "%(directory)s चे निर्देशांक" + +msgid "The install worked successfully! Congratulations!" +msgstr "इंस्टॉलेशनने यशस्वीरित्या कार्य केले! अभिनंदन!" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" +"डिजांगो %(version)s साठी प्रदर्शित संदेश पहा" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not " +"configured any URLs." +msgstr "" +"तुम्ही हे पान पाहत आहात कारण तुमच्या सेटिंग्ज फाइलमध्ये DEBUG=True आहे आणि तुम्ही कोणतीही URL कॉन्फिगर केलेली नाही." + +msgid "Django Documentation" +msgstr "जांगो दस्तऐवजीकरण" + +msgid "Topics, references, & how-to’s" +msgstr "विषय, संदर्भ, आणि कसे करावे" + +msgid "Tutorial: A Polling App" +msgstr "शिकवणी: मतदान अ‍ॅप" + +msgid "Get started with Django" +msgstr "जॅंगो सोबत सुरवात करा" + +msgid "Django Community" +msgstr "जॅंगो समुदाय" + +msgid "Connect, get help, or contribute" +msgstr "जोडा, मदत मिळवा किंवा हातभार लावा" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/ms/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/conf/locale/ms/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..90813401bb76a582b78ae78661a26c9bfddb1f1a GIT binary patch literal 27066 zcmc(n37B0~mG2M8WJH28tH7ZkP$j9V1dt&lKvgP3C8?xHRe}&Oo_p`9dr$6gF6Z2v zO2q-x25F^LoN#;&ZL6p_(~j7UICnd=^K+mTXKeL7+xcnRzyIF*oO`QMMG`*V*Y{)R zfA&1Bz4lsbuj0PP9`-Vi-?l?M?+M^17J1%h`L3OyRL^@6i3xZcxE?(0R9kKggRbb{VfhZ?$W;t9!~zB9D1kQ_z@0| zcKBHE49cAh9ty4i8Me0yJPf=Xd^9-X^0$JIB)$zi3fu`U1}mWY+XEf}J`+3+ya`mf zS2}#7%YQrgSkm7MJ_`J#OaC{JrSrZC9tr*cJRbZx$W%Pf_q?-!(?R8rfXd$ls^0)K z;{i3!J)p`x8+;=8JQu$URQbC>jr$YeW5CaWTJP_G{OA3ae>DCRStPZ0I;iq}pz05T z$ATAvn(sPL?d$+muMQpq?gmx-|pfDDZ<0?*Tay-six>z@LHz@E4%UkN4Six&~Bx1yJdG zzya{t;1S?^z(;@|bn%aZM-smmyaxOi@F?(Xh(&KwV{fEQffSSjjL9N^2EQW9qsCg|0RsKX5KMhnnOI-Y1hv$JR zcL}KR41tdZH#xk zIG+lty)sBs-t{j1^`PkTE#RTxhe4LoyBp*Pcn^R&Z;O}N_4GlVgNs1bOF^C6n;pKw z;oBU36x6uB0Q%rJK&`_cK+%J@+|J`^g^_+KWN$^E9aSy2<6g0@S{|(Z%lo#XsH$s{9v0)&DN2 zbMPZj=l9p3*8kWi+3{=w)y_Dm@>e`RS5vX!+1vQU%fTHjBfg1napz41c6uIhpvwKx zr9X;IQvK6G^?N=jx?SsVJE(e7;4$DdsPZ?1D*r0*c<@e8^ZdBOPdWUY!!J1evcs=C z{FcM}9NzEn$Druo0Z{AnpDz6m4*v{_59kmp{}G`2KMK@&I2t?^JOvbeUId;6UIT6g zZveN0Uj{?4?{a7re4)c%fY%e>cm=!wyc-+@A3J2}VHoTq9)WDB_Y&}Y@bjSf(jmik zJS)NY5O@waP5Qf6TRzo0V(<0X;Vq!f%^N_Dg!dH?lJpj>vGW-QbzZlCqSGA?BT)M_ z?c&dM_%iTt(*NG!9S+~+@GgfR0nen|Js`vMe&p~c;9EeF`MGyZ4iXIlP zwe)ZrcsTL%K#lWa@Dy+aRJo@(tb=Oz=`R0Spy=_{pz7TTs{DsQ&FeGZiQqRuAN&=l z{XBM^U5E2QU|7lR?;#P;R2ah8Deo*7N8&rQ^14TFA1~tCJN9{Q}0o43^ z!6U&7K&|^q5K{NnfhvC!C^~r=$WnNp1~so^HXs{jS`--2wFw|%3PXI=wB zTHg1-CxA;f+3^j7T9<1;&A$rvg3ojD_ko(nmqD%f11^5ZnBC`7K-D|n;Z}#&gW~ru z0#*O*pw{_bQ0MJCpw8Ed&9>baf`i203~D@I2af@N0v-ka4%9vJS5W)$_$|n4pbu*O zo)0btZwF5R-vX-M-5@O5`xLks{3|Gav3T6x566LzCjL0^8n72szt3^_Vwe90Q0>0U z#XsrrE8x+je;-u6UxJSW{{m`UN3uCeKMq_3_JHCG{oozMUkg+E47hH>mOqw7(fpnO zioVVOj|DFTMIY-x@!u^VTkI9UW#FBl`neC(czyw@{GVL>&~26u7lWGr382cK;;Gy$Z_lF=?nD=W?;~Tunw!0Ek{q3Om@U@`sf!o33!Mi~9 z|2a_S>WAP7V9%3ne;0#_Zvj<4bn(5Q=;%e@>EJ6tt?P$e{yi@K4N&X(@1Vx41O;Gip396sxfEwou!Lz`(gJ*(Y0xt!B1D*{odkVZ3yb63Acq^#&ehaAj zUj((TKX>_u?6l*30(b=JKB#`r0ex^OcoH}UYF;6zauKNUH$koAGeGrs8>n*c05y+y zgPQ-xK(+IEQ0x065K{Gi3u?c{o@(b=0Cip)pvHZp!?%K`5dRXW_8tIl1OEuBzvl;b z+%E(*u9t#`f^Pu-1ilIUH2As#X9O%4ZTU?lOE*`7n)g)>uLad^;Nl@D`r75vn+{tJ z_kf3y|8$4X0#*KIhqt=)7lS%?w>x}2cqH*VK$U+FsD3}-@FNcY2~@p%L6!ekP;~TF zmw%tb`yKw+;R6nT>G0PMf9LQ|4*$#Hp`l&BBS5u(9H{Y}>hKKkFyc$V!@(!I^kty< z=LMk7!5Z*1@LEuG_cV|r;@u8Hdfsoq8aOd!@ArQO6+fqpEDOFAWUIX6E0*6(gQDxZ zz<%%n@Ivt9$lkA8K*etWHQs*&4*`Ef_)o%52|pzKnV{d(3BEq~{RiQ{%olX1O75ro z=V^p*68=D#B<~`^-|+ov!ey>(i|@ZBobBS`gZjPAg8BDx1Vs|N0OiN z{R4$X+3y^_?;|oqxG_rvk0<@B;0555z*i9d4?(}vEqLDpU+KODuOmRl-g4@E z1U!?V-**V7lJ;}(14`gK`@PtGywKrA;IjzNB>a*f-gr3WcY&7>zCk$O)fZpY&nJGj z{q(Nj`%8T5EO8{feR{r(r>uLPYh-NAahxC>lI z*iO*z6Bf+BOZaywWpqvlz$*#*y~%?2RPfV;vt0V;`97cUSmMJj?L2S;Y2PLs$9Drf z0sJxeXjkTFzL)U5o^S@=r-NI-J%pqAK7?>4LBEd@eor`#@HN6~2%jYU8zK9h#m5@T z_ql|3g4YnKlDralIpO~jW(e8uEqrVu{ED!Za_17p z3Hn_Kz8t)a@H0Y>OXt)4-k5!Wk0QL8@NAd%XoqXStK9dI;K_u`T|586_fK4&;PHg( z3HK7-LCAh1u6z#(e{_kLI!wUL2&WK#Aj=0|;=aEQzMpV` ziwj06JL%#>e1F${p9X%&eG5(|?;pV{2wx!RcLSkGcq!pL!ZhKZ3IC6LB0e2{P(;mZVXNpC4=g{`O__N9I?Zr4hU z`)_<@%P)j})M$lCGYMN^iEm$J{Jn7_^q2G&+es2OT051dq`vf0KWh2)U`7>#dLb&e z<96!DNtWD*TYk7FN?QYTITeMq(#~2?2y66OZ>Ofeb|bpJ9r{yLvZLBLyWEoAS{zr~ z&7G~8COw*llDOWN_Alve#Wa+JwV)NnjkFRq)ysmJDY^ByWO|PpX)9@f9XXob;vM zQlE=!#pMHMctie%i7lJ`xUefMw!EP+Z)hrsszK05y`fqmXhcDSk8+ss;SVK2Au4)9 z%_ORMStKb#ypam}6HO|l6|(A~t(msks_6~2%Md1zwvwQxvTGXUnkl8ZRs8J|2BOOkHy^$H%c$~BtZJ06;&TGsdlBmT{^C1tnYvsU9Yq-r!DY$xK z>so&|i!>D#&8hLHf~Xdj2K=odGvY`F1)3$nTOG858Z%p62^wW;GK0ih9oJ&cdDjxI zj_dWHKMk8f0!tCkXobuOsxttk`G`rsj=A z38RXW8Ae(P_krL6PA<)S57?gQ*&oxc~|w+*_jz zJEMr9gM)7>eHhy^w^s}eKa^qU=9^QO-I?O3h)4OA0J7oci`iPc0VTg!;RF=9JpEqQ zL?yVo;0mouU#YKa3AXuusWKP8_MhY05U+!y!hTxu+*W53gI#f| z*WeikR9AfjaMF5H9L+Zks7;%0_zm39B%9-G(=8k9lp{YX`J>~zFUT0yym`!nG8aBb znFaH7Vb5)I+g6-GvZ2}`Y}+3nH}l0Emya7=h^df3g4=VrQlYHsp;?ax_Y zJ8HOjT5FfZx4F|&n0(YI>lWJ9h>A#=Y-fvwPnWv;hmSTFPLdYkl|)$A%1pBoHoCTG zKP^9Ki}N-(T|w}01IT6?H)=C}NsK%7JJ)t$Mg&z4G@7&-a+S7XzK|+(L$3`BNjpep zytR_yHA_k3D*dkD)LnFvtlfn>;19W*H!o%`Wi{`L z?Cj)71yDbJGeCk}8#Rm|x3(r(f(>Zu;>oW3wQ*7~5~jyj7?m6T#&E{()o8h?*d4@T zE_~*0ln6e}bo#ut=s8^HYm-Pp@;6}QytQovMJYoFQH3}S%~ig$S%Ug(B? zaN1jsI1_p6+lZk?;u{^$j;z;x#=X%ZLMug!-e@WIMyLFlxNW2gv!KOQr!nH4NeUQIMm zK}iaer9M0?V2P5j9`80XM18=YWDrJDZ6u90`g{F*2(~xSYA|So6$gHPFl-m+i#Pbx6x!6e(#cA;ZA## z_N9H|P^eWYi5dqu^|4H$rb?P?&*HZVVcYpcH_6 zgKEXwSgE75Y=p$9y>TWf&+PR!1+Cp`Y!iB88?8v6=qQOlA9hQ~A$yUZycdr)0FD*PDA7ePE4D8psCnP9_d**)Jr*P+L z$op3zhU;_97SY3bWF)~X+B92`whM^wMgyNe*pwhH#7laU$HxbrEVu4gGRH_zfHcxtA+x0_njY3!14nQHys6RRh)_I)QHE_qLll zV#dO;)7di8K5t^yT4uJ?37N!-zGQRSLki=%U8n(@OVijb+ew2nsCy@AH)NEQ6pFlm z81{Xe5|(x^QI&t|7=S0a>=JJ> zWJ+ydPs?L*BmINqCyoO{X$3q9K=6zxZP!|9SFXM8wFw;!efhlkM*27W$WY^??z{%l zh||%L^GfDSnTx~F1JWW_GNtTu!~o5z4l$^8I!>xExwKs@a{EoeZD-EFAlWE$Ikp`e zJ;T&+Lxjj!m(JTtA#B0%8~)SKb9O4{8O9L#G%SWTYWvHt9Lo}zs4+<@lW)T)#eEGo z;Jl$eR2Rr=FveL~)OUhA7G={MDQ216p_y%4n5?itm3ES9dnZx#y~(&472(oWo=0lu z`)mZ1OMPruTq?-(>{Sw!U)(owp9}-LZ=9Qp4%p6LuSz6&0|%>qeV+cDIvGoh^HylL<2>gaMQx@ zT!s~BHw~MWlEp1V5jIrUyko{0#i+Q{D4BJVq|Hgjl5X0dWhACt;MWmVQPvpsBtd)rb6^9PabQP?tqUFh*SEzPIG(y!{Nv|7z{ z#o%BmE~Wz|V;e^~(_72{c7wsNF=&J&sr-HEAh*1p!f|*W*_okwl0OMd5NePCPw9pX; z4t(Nsr))H9t7=-t>(0NHPq#TDy_t#%!afB9h~q&4BhBssE0Z5)-zDdy zwaash@qjfq2}9i6BoxhklB8`ajM|Y+ zu`9totacU2AL_c&azkTRTBb>NCz%O$8n?6S#NE`o6PQ;gnyWBfX_>Opm84l&k&3PM zf@b0c?Xt&9n>Q5}JeZ)jt6d{BygC8~I zSRsmBVyq-O{sDV9%G;Ln&w%u==GQ+q);}_0_yYy@>37~H=WlKO`W0hiJ65FWj)AuM zU3cBX(QMZs=jma`7poiav+eyR{o+UnUmb%lTU0|Dr6=nW(|NwLH`wAEf1l=qIDOAb&^B90E3^luG!^JEb>`bXHy75;h4&RgEU{Jj2U7y8RCT5-Yo z=Pu*7XcHEee#GZSiarr1E6@g$sGaWh*P`K~0ayK%Q|@a39;d7;%6e9l)OQ)xWoa#k z{gYu(S7nTjey?OjM8)ap=>eQ*cm|pZ_ZTVBj(N}la;K?0SWgH07LARLt?A5e`M|P8 zXgWM1F+B6sBn@y7=Z2_pDQYo}M+lYMCfD{~+$pENu=@9}ab~d<{>6o;l@D@-Ur!f} zo0ppYwUTpqldumr>8jGrNR3R3o*mix$IyN{%F zRQadXuF}2^=Keh7*0&3K29nKamNy))Lknb};XB7TG#gh_FMUiuvu5z%U=|`D>MXCe z+0}9VT< zX+7|Va(}ff!Md&G`S`5y5^6lyoab6rkesX(A_<~pT*Jl9y0ZmYj`L;9qt>I%+ft6x zENzr^!1pWlbN99^XDD}W%TjQ0tLER<&#e=s9U08^+CqaUODT3kxxKNJUH)tnPv-@} z6!~h9M*epB#+3tRHsE7ThH6^47jot?PPHh4nC(Wjn#t7k&VnVOisZL3My)GTA}f&Z z(#E)k_ZbDVr7A^D9{UXYaA&59%@G@8T}N{%4>I)1I&$2DhF<*O5h+c;E3?KoTE97O zBP5@tS;sjyypga0myz`g56Oz(>pBvL>dO;xe{I5-y3wrg!1T(H%bIDdMYu8{XUSdlvSn>*4(y?p(>9 z*WKb|lmAh8L!=#VZ~;7qUF!Qm=N)B)P=|(SZjq*b6&pU_xci?t>_K4-h6=cK!*Y7yL$&+iI zVVZr1yppIX?qtuPRzJVxx)(&R6B%K2R@5%v!89@!r0uHc(Ka%}CSY*ZfoSTf)Ma9n zGH1XP>Pl~zQ`(gv!32rL_|?%cn60_M=IM8#4!d?|_KNn%9jqts#eTrx5T{D8 z_Q=Ps-Ok;^^tdLzihDFuPjg-mTZZIdya>8q2+F7Wx6gc{K+aX;Chf>h8=e?$6=kKlnm)|y)11#)1wh5!T>&M=mkQGj3h>LoL@4D&W zZ~@%2%teTkKbzrgrnXY0)fVzaI=p=59a2!x`4Z!-B7P?H+Uk=YK#^bNFK93Xs)1jMVqk~xEN9AYxf0t zed~>uM{!A;2&)l|LW+iJb%M(DX>MwK%?`>r&2Tm@w~Tu_1AUJ(`OoK@*0U7nt(x3d z3}?Y)5EyZg+e*inEim?T8pYAb?EIWYdz`KY%L%Hc08bq=j6pN7&sd2ikt%L>7~AGd zSlj@;5V~Rj)-w$WNoxVGa0`Kr(z>Wk!77l+&=ME)Q7Z)So@UUdIbU}|!*50vG+KI( z${gc4-M1Jv?hw4rw1TFF+$3QJvC!;>RYNo3gBKhgsjz9uZOyG)CBof;dfGtP7^FnT zzCwi=l^qV^j1zS2P&=Y`5Bfpo&erpgMykEHQr_HMI`H8#k%dRg2%S!C-j@z+BJPBY zS`W8yS0+WH-gmjTWu-DNw@in~4-1!9=IaK_lx4tpwVC&g{5CDYHuZ;6VjVJMaA|3G z%Tbj_EN6wJw*7+J;`#vH%__bhzqf3ha_xbOW>NXUIWM@JL2L+Nsq%yi$l}YDH4bqd zuC&oP#^t&4kJAHrr#y_h)Kx)Fb9tt5o$D^X$#~Ia`MED$mf(Ep_zNh`SS3q!o^?sC zc8vw8b*{@wjOk#sxuSJGAY~6jTi}n)cC^dxE>wml!nR>Z_K1}*rbX2O-x?ImJ%%>} zYu~vea~HcI2?d!AiSu5=;{a#DX$@J0PHpbi{ND+gXS zbL3l~*W7Gt|Ara5)DeJJK(HN4uH5-%&(SCu{Z`fJOce?UaCvft-QhR1XxWNxXswW0 z#wvflR+X!QQt%*X2mJ(lD_3F71HSFkH8al@y#%iVN1kSMuB4@sj*jeim2>2VPfgcN zkXh}r`^%XNo5ojfDo>poui_nBjo$XK40#9W}M?VkyVh2_&4JcQtiZ4oFkuI#aSibq}&Gxhu%WfO*#!mt<20X zPL&ZrrpUWS+0^{8*$vXV@nu8i665_~cG_xO7yaIm2p(6Lm7T5b!x5JAu_=%spEYEh z`#RU9oc-kGhr6Gg{L)ZP%w;iAIfixo{4$%R*@?U{XMpzBN>!VX(;t3=&fRapruOya z^9Ke7yrBvPz6$@lrEH|mqc4w!m|UP!{Q7j*vtrh{&lR#hetCooF)x;R{P73uS&I?( zbk3U0#%NPuJ^VEe7h|Ra^4CsA2-4ooHRUXyuaKb-F&k%6z?odewQRQwR>{v~FvIC! zWmdu3#|dy;8jBqO+;sIYmJGo(YRM{`9PW=AO_5d_^Hf4ow4JN%h# zn{{_Ndn(2T^R&^iE@tc*`?ay;TD$8)<*e^trwxn-PD5g!VR_aVbzztF(%4TnLIMQ- z5CNe9yRRJn;9ChVVvsY=eiFU|)Qm>ZFZcXxCk^cz$3H!C2C@#Dpf)mMklSB(1XjUc z93-6wtfl94lWo1jh>e+>tOFhjSzJ zHo;L_|Nor`@x2P9r!pQE!#HgjvA|j`#K-NcIe(`=L-KT@RTd;^Usgx(91&?IuZnLD`wXJuIi4tO?Z(;lXIb=2l2qKaUo2*3fZ-(xz6b4?zn#V@GIGzuJnatXosK_<#T|{uvw<$vn!g1z z>YMT3Lyors2CUfpKT*u9aQ?*SyzV;cdPhU=YQ{bXW-38PTw&zKH!d#69*=$V`^KS2 zV$v!bT@>nd5pG56Bv);D;&vXY3z@0>@ckuyH9c$+*b%IHqQ0 zW^=z8mS!FtsOluStZo;(>&}Gs+>4pBjC8+C*n?zwxbc(I%?qdGigs+W<8C$J?*9jE z+>CPnty?{H5eZc$U zI_qq$zrZr}b#Zkra!F?Uyj?vU{V&+h0Zma3MYFDU_Xafg5q$pL*r&Fw275DaB?nl^ uiO36=cA`+n{mz+H-5<(ZF=h7A(#Tvj<9lahrvopad!Lwk*7HsZ%6|ho_V(QX literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/ms/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/conf/locale/ms/LC_MESSAGES/django.po new file mode 100644 index 0000000000..58847456cc --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/ms/LC_MESSAGES/django.po @@ -0,0 +1,1286 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Jafry Hisham, 2021 +# Mariusz Felisiak , 2021 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-09-21 10:22+0200\n" +"PO-Revision-Date: 2021-12-06 07:43+0000\n" +"Last-Translator: Mariusz Felisiak \n" +"Language-Team: Malay (http://www.transifex.com/django/django/language/ms/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ms\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +msgid "Afrikaans" +msgstr "Bahasa Afrikaans" + +msgid "Arabic" +msgstr "Bahasa Arab" + +msgid "Algerian Arabic" +msgstr "Bahasa Arab Algeria" + +msgid "Asturian" +msgstr "Bahasa Asturia" + +msgid "Azerbaijani" +msgstr "Bahasa Azerbaijan" + +msgid "Bulgarian" +msgstr "Bahasa Bulgaria" + +msgid "Belarusian" +msgstr "Bahasa Belarus" + +msgid "Bengali" +msgstr "Bahasa Benggali" + +msgid "Breton" +msgstr "Bahasa Breton" + +msgid "Bosnian" +msgstr "Bahasa Bosnia" + +msgid "Catalan" +msgstr "Bahasa Catalonia" + +msgid "Czech" +msgstr "Bahasa Czech" + +msgid "Welsh" +msgstr "Bahasa Wales" + +msgid "Danish" +msgstr "Bahasa Denmark" + +msgid "German" +msgstr "Bahasa Jerman" + +msgid "Lower Sorbian" +msgstr "Bahasa Sorbian Rendah" + +msgid "Greek" +msgstr "Bahasa Yunani" + +msgid "English" +msgstr "Bahasa Inggeris" + +msgid "Australian English" +msgstr "Bahasa Inggeris Australia" + +msgid "British English" +msgstr "Bahasa Inggeris British" + +msgid "Esperanto" +msgstr "Bahasa Esperanto" + +msgid "Spanish" +msgstr "Bahasa Sepanyol" + +msgid "Argentinian Spanish" +msgstr "Bahasa Sepanyol Argentina" + +msgid "Colombian Spanish" +msgstr "Bahasa Sepanyol Kolumbia" + +msgid "Mexican Spanish" +msgstr "Bahasa Sepanyol Mexico" + +msgid "Nicaraguan Spanish" +msgstr "Bahasa Sepanyol Nicaragua" + +msgid "Venezuelan Spanish" +msgstr "Bahasa Sepanyol Venezuela" + +msgid "Estonian" +msgstr "Bahasa Estonia" + +msgid "Basque" +msgstr "Bahasa Bask" + +msgid "Persian" +msgstr "Bahasa Farsi" + +msgid "Finnish" +msgstr "Bahassa Finland" + +msgid "French" +msgstr "Bahasa Perancis" + +msgid "Frisian" +msgstr "Bahasa Frisia" + +msgid "Irish" +msgstr "Bahasa Ireland" + +msgid "Scottish Gaelic" +msgstr "Bahasa Gael Scotland" + +msgid "Galician" +msgstr "Bahasa Galisia" + +msgid "Hebrew" +msgstr "Bahasa Ibrani" + +msgid "Hindi" +msgstr "Bahasa Hindi" + +msgid "Croatian" +msgstr "Bahasa Kroatia" + +msgid "Upper Sorbian" +msgstr "Bahasa Sorbia Atasan" + +msgid "Hungarian" +msgstr "Bahasa Hungary" + +msgid "Armenian" +msgstr "Bahasa Armenia" + +msgid "Interlingua" +msgstr "Bahasa Interlingua" + +msgid "Indonesian" +msgstr "Bahasa Indonesia" + +msgid "Igbo" +msgstr "Bahasa Igbo" + +msgid "Ido" +msgstr "Bahasa Ido" + +msgid "Icelandic" +msgstr "Bahasa Iceland" + +msgid "Italian" +msgstr "Bahasa Itali" + +msgid "Japanese" +msgstr "Bahasa Jepun" + +msgid "Georgian" +msgstr "Bahasa Georgia" + +msgid "Kabyle" +msgstr "Bahasa Kabylia" + +msgid "Kazakh" +msgstr "Bahasa Kazakhstan" + +msgid "Khmer" +msgstr "Bahasa Kambodia" + +msgid "Kannada" +msgstr "Bahasa Kannada" + +msgid "Korean" +msgstr "Bahasa Korea" + +msgid "Kyrgyz" +msgstr "Bahasa Kyrgyzstan" + +msgid "Luxembourgish" +msgstr "Bahasa Luxemborg" + +msgid "Lithuanian" +msgstr "Bahasa Lithuania" + +msgid "Latvian" +msgstr "Bahasa Latvia" + +msgid "Macedonian" +msgstr "Bahasa Masedonia" + +msgid "Malayalam" +msgstr "Malayalam" + +msgid "Mongolian" +msgstr "Bahasa Mongol" + +msgid "Marathi" +msgstr "Marathi" + +msgid "Malay" +msgstr "Bahasa Melayu" + +msgid "Burmese" +msgstr "Bahasa Burma" + +msgid "Norwegian Bokmål" +msgstr "Bahasa Bokmal Norway" + +msgid "Nepali" +msgstr "Bahasa Nepal" + +msgid "Dutch" +msgstr "Belanda" + +msgid "Norwegian Nynorsk" +msgstr "Bahasa Nynorsk Norway" + +msgid "Ossetic" +msgstr "Bahasa Ossetic" + +msgid "Punjabi" +msgstr "Bahasa Punjab" + +msgid "Polish" +msgstr "Bahasa Poland" + +msgid "Portuguese" +msgstr "Bahasa Portugal" + +msgid "Brazilian Portuguese" +msgstr "Bahasa Portugal Brazil" + +msgid "Romanian" +msgstr "Bahasa Romania" + +msgid "Russian" +msgstr "Bahasa Rusia" + +msgid "Slovak" +msgstr "Bahasa Slovakia" + +msgid "Slovenian" +msgstr "Bahasa Slovenia" + +msgid "Albanian" +msgstr "Bahasa Albania" + +msgid "Serbian" +msgstr "Bahasa Serbia" + +msgid "Serbian Latin" +msgstr "Bahasa Latin Serbia" + +msgid "Swedish" +msgstr "Bahasa Sweden" + +msgid "Swahili" +msgstr "Bahasa Swahili" + +msgid "Tamil" +msgstr "Bahasa Tamil" + +msgid "Telugu" +msgstr "Bahasa Telugu" + +msgid "Tajik" +msgstr "Bahasa Tajik" + +msgid "Thai" +msgstr "Bahasa Siam" + +msgid "Turkmen" +msgstr "Bahasa Turkmenistan" + +msgid "Turkish" +msgstr "Bahasa Turki" + +msgid "Tatar" +msgstr "Bahasa Tatar" + +msgid "Udmurt" +msgstr "Bahasa Udmurt" + +msgid "Ukrainian" +msgstr "Bahasa Ukraine" + +msgid "Urdu" +msgstr "Bahasa Urdu" + +msgid "Uzbek" +msgstr "Bahasa Uzbekistan" + +msgid "Vietnamese" +msgstr "Bahasa Vietnam" + +msgid "Simplified Chinese" +msgstr "Bahasa Cina (Dipermudahkan)" + +msgid "Traditional Chinese" +msgstr "Bahasa Cina Tradisional" + +msgid "Messages" +msgstr "Mesej" + +msgid "Site Maps" +msgstr "Peta Laman" + +msgid "Static Files" +msgstr "Fail Statik" + +msgid "Syndication" +msgstr "Sindikasi" + +#. Translators: String used to replace omitted page numbers in elided page +#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10]. +msgid "…" +msgstr "..." + +msgid "That page number is not an integer" +msgstr "Nombor ruangan itu bukanlah integer" + +msgid "That page number is less than 1" +msgstr "Nombor ruangan itu kurang daripada 1" + +msgid "That page contains no results" +msgstr "Ruangan itu tiada keputusan" + +msgid "Enter a valid value." +msgstr "Masukkan nilai yang sah." + +msgid "Enter a valid URL." +msgstr "Masukkan URL yang sah." + +msgid "Enter a valid integer." +msgstr "Masukkan integer yang sah." + +msgid "Enter a valid email address." +msgstr "Masukkan alamat emel yang sah." + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" +"Masukkan \"slug\" yang sah yang mengandungi huruf, nombor, garisan atau " +"tanda sempang." + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" +"Masukkan \"slug\" yang sah yang mengandungi huruf Unicode, nombor, garisan, " +"atau tanda sempang." + +msgid "Enter a valid IPv4 address." +msgstr "Masukkan alamat IPv4 yang sah." + +msgid "Enter a valid IPv6 address." +msgstr "Masukkan alamat IPv6 yang sah." + +msgid "Enter a valid IPv4 or IPv6 address." +msgstr "Masukkan alamat IPv4 atau IPv6 yang sah." + +msgid "Enter only digits separated by commas." +msgstr "Hanya masukkan digit yang dipisahkan oleh koma." + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "Pastikan nilai ini adalah %(limit_value)s (ia adalah %(show_value)s)." + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "Pastikan nilai ini kurang daripada atau sama dengan %(limit_value)s." + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "Pastikan nilai ini lebih daripada atau sama dengan %(limit_value)s." + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Pastikan nilai ini mempunyai sekurang-kurangnya %(limit_value)d karater (ia " +"mempunyai %(show_value)d)." + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Pastikan nilai ini mempunyai sepalingnya %(limit_value)d karakter (ia " +"mempunyai %(show_value)d)." + +msgid "Enter a number." +msgstr "Masukkan nombor." + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "Pastikan jumlah tidak melebihi %(max)s digit." + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "Pastikan titik perpuluhan tidak melebihi %(max)s." + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "" +"Pastikan jumlah digit tidak melebihi %(max)s sebelum titik perpuluhan." + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" +"Sambungan fail \"%(extension)s\" tidak dibenarkan. Sambungan yang dibenarkan " +"adalah: %(allowed_extensions)s." + +msgid "Null characters are not allowed." +msgstr "Karakter Null tidak dibenarkan." + +msgid "and" +msgstr "dan" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "%(model_name)s dengan %(field_labels)s ini sudah wujud." + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "Nilai %(value)r bukan pilihan yang sah." + +msgid "This field cannot be null." +msgstr "Medan ini tidak boleh null." + +msgid "This field cannot be blank." +msgstr "Medan ini tidak boleh dibiarkan kosong." + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "%(model_name)s dengan %(field_label)s ini sudah wujud." + +#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'. +#. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "%(field_label)s mesti unik untuk %(date_field_label)s %(lookup_type)s." + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "Jenis medan: %(field_type)s" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "Nilai \"%(value)s\" mesti samada True atau False." + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "Nilai \"%(value)s\" mesti samada True, False, atau None." + +msgid "Boolean (Either True or False)" +msgstr "Boolean (Samada True atau False)" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "String (sehingga %(max_length)s)" + +msgid "Comma-separated integers" +msgstr "Integer dipisahkan dengan koma" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" +"Nilai \"%(value)s\" mempunyai format tarikh yang tidak sah. Format harus " +"berbentuk YYYY-MM-DD." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" +"Nilai \"%(value)s\" mempunyai format yang betul (YYYY-MM-DD) tetapi ia " +"adalah tarikh yang tidak sah." + +msgid "Date (without time)" +msgstr "Tarikh (tanpa masa)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" +"Nilai \"%(value)s\" mempunyai format yang tidak sah. Format harus berbentuk " +"YYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ]." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" +"Nilai \"%(value)s\" mempunyai format yang betul (YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ]) tetapi ia adalah tarikh/masa yang tidak sah." + +msgid "Date (with time)" +msgstr "Tarikh (dengan masa)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "Nilai \"%(value)s\" mesti dalam bentuk nombor titik perpuluhan." + +msgid "Decimal number" +msgstr "Nombor titik perpuluhan" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" +"Nilai \"%(value)s\" mempunyai format yang tidak sah. Format harus berbentuk " +"[DD] [[HH:]MM:]ss[.uuuuuu]." + +msgid "Duration" +msgstr "Jangka-masa" + +msgid "Email address" +msgstr "Alama emel" + +msgid "File path" +msgstr "Laluan fail" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "Nilai \"%(value)s\" mesti dalam bentuk titik terapung." + +msgid "Floating point number" +msgstr "Nombor titik terapung" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "Nilai \"%(value)s\" mesti dalam bentuk integer." + +msgid "Integer" +msgstr "Integer" + +msgid "Big (8 byte) integer" +msgstr "Integer besar (8 bait)" + +msgid "Small integer" +msgstr "Integer kecil" + +msgid "IPv4 address" +msgstr "Alamat IPv4" + +msgid "IP address" +msgstr "Alamat IP" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "Nilai \"%(value)s\" mesti samada None, True, atau False." + +msgid "Boolean (Either True, False or None)" +msgstr "Boolean (samada True, False, None)" + +msgid "Positive big integer" +msgstr "Integer besar positif" + +msgid "Positive integer" +msgstr "Integer positif" + +msgid "Positive small integer" +msgstr "Integer kecil positif" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "Slug (sehingga %(max_length)s)" + +msgid "Text" +msgstr "Teks" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" +"Nilai \"%(value)s\" mempunyai format yang tidak sah. Format harus berbentuk " +"HH:MM[:ss[.uuuuuu]]." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" +"Nilai \"%(value)s\" mempunyai format yang betul (HH:MM[:ss[.uuuuuu]]) tetapi " +"ia mempunyai masa yang tidak sah." + +msgid "Time" +msgstr "Masa" + +msgid "URL" +msgstr "URL" + +msgid "Raw binary data" +msgstr "Data binari mentah" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "UUID \"%(value)s\" tidak sah." + +msgid "Universally unique identifier" +msgstr "Pengecam unik universal" + +msgid "File" +msgstr "Fail" + +msgid "Image" +msgstr "Imej" + +msgid "A JSON object" +msgstr "Objek JSON" + +msgid "Value must be valid JSON." +msgstr "Nilai harus dalam bentuk JSON yang sah." + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "%(model)s dengan %(field)s %(value)r tidak wujud." + +msgid "Foreign Key (type determined by related field)" +msgstr "Kunci Asing (jenis ditentukan oleh medan yang berkaitan)" + +msgid "One-to-one relationship" +msgstr "Hubungan satu-ke-satu" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "Hubungan %(from)s-%(to)s" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "Hubungan %(from)s-%(to)s" + +msgid "Many-to-many relationship" +msgstr "Hubungan banyak-ke-banyak" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr ":?.!" + +msgid "This field is required." +msgstr "Medan ini diperlukan." + +msgid "Enter a whole number." +msgstr "Masukkan nombor bulat." + +msgid "Enter a valid date." +msgstr "Masukkan tarikh yang sah." + +msgid "Enter a valid time." +msgstr "Masukkan masa yang sah." + +msgid "Enter a valid date/time." +msgstr "Masukkan tarikh/masa yang sah." + +msgid "Enter a valid duration." +msgstr "Masukkan jangka-masa yang sah." + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "Jumlah hari mesti diantara {min_days} ke {max_days}." + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "Tiada fail yang dihantar. Periksa jenis encoding pada borang." + +msgid "No file was submitted." +msgstr "Tiada fail yang dihantar." + +msgid "The submitted file is empty." +msgstr "Fail yang dihantar kosong." + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" +"Pastikan nama fial ini tidak melebihi %(max)d karakter (ia mempunyai " +"%(length)d)." + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "Sila hantar fail atau tandakan pada kotak, bukan kedua-duanya sekali. " + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" +"Muatnaik imej yang sah. Fail yang anda muatnaik samada bukan imej atau imej " +"yang rosak." + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "Pilih pilihan yang sah. %(value)s bukan pilihan yang tersedia." + +msgid "Enter a list of values." +msgstr "Masukkan senarai nilai." + +msgid "Enter a complete value." +msgstr "Masukkan nilai yang lengkap." + +msgid "Enter a valid UUID." +msgstr "Masukkan UUID yang sah." + +msgid "Enter a valid JSON." +msgstr "Masukkan JSON yang sah." + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr ":" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "%(error)s (Medan tersorok %(name)s)" + +#, python-format +msgid "" +"ManagementForm data is missing or has been tampered with. Missing fields: " +"%(field_names)s. You may need to file a bug report if the issue persists." +msgstr "" +"Data ManagementForm tidak dijumpai atau telah diusik. Medan yang hilang: " +"%(field_names)s. Anda mungkin perlu menghantar laporan pepijat sekiranya " +"masalah masih berterusan." + +#, python-format +msgid "Please submit at most %d form." +msgid_plural "Please submit at most %d forms." +msgstr[0] "Sila hantar tidak lebih dari %d borang." + +#, python-format +msgid "Please submit at least %d form." +msgid_plural "Please submit at least %d forms." +msgstr[0] "Sila hantar sekurang-kurangnya %d borang." + +msgid "Order" +msgstr "Susunan" + +msgid "Delete" +msgstr "Padam" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "Sila betulkan data duplikasi bagi %(field)s" + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "Sila betulkan data duplikasi bagi %(field)s, yang mana mestilah unik." + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"Sila betulkan data duplikasi bagi %(field_name)s yang mana mestilah unik " +"untuk %(lookup)s didalam %(date_field)s." + +msgid "Please correct the duplicate values below." +msgstr "Sila betulkan nilai-nilai duplikasi dibawah." + +msgid "The inline value did not match the parent instance." +msgstr "Nilai didalam barisan tidak sepadan dengan parent instance." + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "Pilih pilihan yang sah. Pilihan itu tidak ada didalam senarai pilihan." + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "\"%(pk)s\" bukan nilai yang sah." + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" +"%(datetime)s tidak dapat diterjemahkan ke dalam zon masa " +"%(current_timezone)s; ia mungkin samar-samar atau tidak wujud." + +msgid "Clear" +msgstr "Kosongkan" + +msgid "Currently" +msgstr "Kini" + +msgid "Change" +msgstr "Tukar" + +msgid "Unknown" +msgstr "Tidak diketahui" + +msgid "Yes" +msgstr "Ya" + +msgid "No" +msgstr "Tidak" + +#. Translators: Please do not add spaces around commas. +msgid "yes,no,maybe" +msgstr "ya,tidak,mungkin" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)d bait" + +#, python-format +msgid "%s KB" +msgstr "%s KB" + +#, python-format +msgid "%s MB" +msgstr "%s MB" + +#, python-format +msgid "%s GB" +msgstr "%s GB" + +#, python-format +msgid "%s TB" +msgstr "%s TB" + +#, python-format +msgid "%s PB" +msgstr "%s PB" + +msgid "p.m." +msgstr "malam" + +msgid "a.m." +msgstr "pagi" + +msgid "PM" +msgstr "MALAM" + +msgid "AM" +msgstr "PAGI" + +msgid "midnight" +msgstr "tengah malam" + +msgid "noon" +msgstr "tengahari" + +msgid "Monday" +msgstr "Isnin" + +msgid "Tuesday" +msgstr "Selasa" + +msgid "Wednesday" +msgstr "Rabu" + +msgid "Thursday" +msgstr "Khamis" + +msgid "Friday" +msgstr "Jumaat" + +msgid "Saturday" +msgstr "Sabtu" + +msgid "Sunday" +msgstr "Ahad" + +msgid "Mon" +msgstr "Isn" + +msgid "Tue" +msgstr "Sel" + +msgid "Wed" +msgstr "Rab" + +msgid "Thu" +msgstr "Kha" + +msgid "Fri" +msgstr "Jum" + +msgid "Sat" +msgstr "Sab" + +msgid "Sun" +msgstr "Aha" + +msgid "January" +msgstr "Januari" + +msgid "February" +msgstr "Februari" + +msgid "March" +msgstr "Mac" + +msgid "April" +msgstr "April" + +msgid "May" +msgstr "Mei" + +msgid "June" +msgstr "Jun" + +msgid "July" +msgstr "Julai" + +msgid "August" +msgstr "Ogos" + +msgid "September" +msgstr "September" + +msgid "October" +msgstr "Oktober" + +msgid "November" +msgstr "November" + +msgid "December" +msgstr "Disember" + +msgid "jan" +msgstr "jan" + +msgid "feb" +msgstr "feb" + +msgid "mar" +msgstr "mar" + +msgid "apr" +msgstr "apr" + +msgid "may" +msgstr "mei" + +msgid "jun" +msgstr "jun" + +msgid "jul" +msgstr "jul" + +msgid "aug" +msgstr "ogo" + +msgid "sep" +msgstr "sep" + +msgid "oct" +msgstr "okt" + +msgid "nov" +msgstr "nov" + +msgid "dec" +msgstr "dis" + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "Jan." + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "Feb" + +msgctxt "abbrev. month" +msgid "March" +msgstr "Mac" + +msgctxt "abbrev. month" +msgid "April" +msgstr "April" + +msgctxt "abbrev. month" +msgid "May" +msgstr "Mei" + +msgctxt "abbrev. month" +msgid "June" +msgstr "Jun" + +msgctxt "abbrev. month" +msgid "July" +msgstr "Julai" + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "Ogo." + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "Sept." + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "Okt." + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "Nov." + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "Dis." + +msgctxt "alt. month" +msgid "January" +msgstr "Januari" + +msgctxt "alt. month" +msgid "February" +msgstr "Februari" + +msgctxt "alt. month" +msgid "March" +msgstr "Mac" + +msgctxt "alt. month" +msgid "April" +msgstr "April" + +msgctxt "alt. month" +msgid "May" +msgstr "Mei" + +msgctxt "alt. month" +msgid "June" +msgstr "Jun" + +msgctxt "alt. month" +msgid "July" +msgstr "Julai" + +msgctxt "alt. month" +msgid "August" +msgstr "Ogos" + +msgctxt "alt. month" +msgid "September" +msgstr "September" + +msgctxt "alt. month" +msgid "October" +msgstr "Oktober" + +msgctxt "alt. month" +msgid "November" +msgstr "November" + +msgctxt "alt. month" +msgid "December" +msgstr "Disember" + +msgid "This is not a valid IPv6 address." +msgstr "Alamat IPv6 ini tidak sah." + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "%(truncated_text)s ..." + +msgid "or" +msgstr "atau" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr "," + +#, python-format +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "%(num)d tahun" + +#, python-format +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "%(num)d bulan" + +#, python-format +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "%(num)d minggu " + +#, python-format +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "%(num)d hari" + +#, python-format +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "%(num)d jam" + +#, python-format +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "%(num)d minit" + +msgid "Forbidden" +msgstr "Dilarang" + +msgid "CSRF verification failed. Request aborted." +msgstr "Verifikasi VSRF gagal. Permintaan dihentikan." + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" +"Anda melihat mesej ini kerana laman HTTPS ini memerlukan \"Referer header\" " +"dihantar ke pelayar sesawang anda, tetapi ia tidak dihantar. Header ini " +"diperlukan bagi tujuan keselamatan, agar dapat memastikan pelayar anda tidak " +"dirampas oleh pihak ketiga." + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" +"Sekiranya anda telah menetapkan pelayar anda untuk mematikan header \"Referer" +"\", sila hidupkannya semula, sekurang-kurangya bagi laman ini, atau bagi " +"sambungan HTTPS, atau bagi permintaan \"same-origin\"." + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" +"Sekiranya anda menggunakan tag atau memasukkan header \"Referer-Policy: no-referrer\", sila buangkan " +"ia. Perlindungan CSRF memerlukan header \"Referer\" untuk melakukan " +"penyemakan referer yang ketat. Sekiranya anda risau tentang privasi anda, " +"gunakan alternatif seperti bagi pautan laman pihak " +"ketiga." + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" +"Anda melihat mesej ini kerana laman ini memerlukan cookie CSRF apabila " +"menghantar borang. Cookie ini diperlukan bagi tujuan keselamatan, bagi " +"memastikan pelayar anda tidak dirampas oleh pihak ketiga." + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" +"Sekiranya anda telah menetapkan pelayar anda untuk tidak menerima cookie, " +"sila hidupkannya semula, sekurang-kurangnya bagi laman ini, atau bagi " +"permintaan \"same-origin\"." + +msgid "More information is available with DEBUG=True." +msgstr "Maklumat lanjut boleh didapati dengan menetapkan DEBUG=True." + +msgid "No year specified" +msgstr "Tiada tahun diberikan" + +msgid "Date out of range" +msgstr "Tarikh diluar julat" + +msgid "No month specified" +msgstr "Tiada bulan diberikan" + +msgid "No day specified" +msgstr "Tiada hari diberikan" + +msgid "No week specified" +msgstr "Tiada minggu diberikan" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "%(verbose_name_plural)s tiada" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" +"%(verbose_name_plural)s masa depan tiada kerana %(class_name)s.allow_future " +"adalah False. " + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "" +"\"%(datestr)s\" tarikh yang diberikan tidak sah mengikut format \"%(format)s" +"\"" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "Tiada %(verbose_name)s mengikut pertanyaan yang dimasukkan" + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "Ruangan ini bukan \"last\", dan tidak boleh ditukar kepada int." + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "Ruangan tidak sah (%(page_number)s): %(message)s" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "Senarai kosong dan \"%(class_name)s.allow_empty\" adalah False." + +msgid "Directory indexes are not allowed here." +msgstr "Indeks Direktori tidak dibenarkan disini." + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "\"%(path)s\" tidak wujud" + +#, python-format +msgid "Index of %(directory)s" +msgstr "Indeks %(directory)s" + +msgid "The install worked successfully! Congratulations!" +msgstr "Pemasangan berjaya dilakukan! Tahniah!" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" +"Lihat nota pelepasan bagi Django %(version)s" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not configured any " +"URLs." +msgstr "" +"Anda melihat ruangan ini kerana DEBUG=True terdapat didalam fail tetapan anda dan anda tidak " +"menetapkan sebarang URL." + +msgid "Django Documentation" +msgstr "Dokumentasi Django" + +msgid "Topics, references, & how-to’s" +msgstr "Topik, rujukan, & bagaimana-cara" + +msgid "Tutorial: A Polling App" +msgstr "Tutorial: App Soal-Selidik" + +msgid "Get started with Django" +msgstr "Mulakan dengan Django" + +msgid "Django Community" +msgstr "Komuniti Django" + +msgid "Connect, get help, or contribute" +msgstr "Sambung, minta bantuan, atau sumbang" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/ms/__init__.py b/venv/lib/python3.12/site-packages/django/conf/locale/ms/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/ms/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/ms/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..da0cbe2b19b0b6dd56161f68ef2880edc8556125 GIT binary patch literal 198 zcmX@j%ge<81o5sX(m?cM5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!O4ZNE&rQ|OP0Yy6 zFHO;RNiEZNN=(kybEFQ_cZ$j>v@Gc?jK&MZmQEdVM^ zOiwM=Pssu+OwP|s)6dCIPRs!sSgao(pP83g5+AQuQ2C3)CO1E&G$+-rh!tonBM=vZ O7$2D#85xV1fh+*WoHUC7 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/ms/__pycache__/formats.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/ms/__pycache__/formats.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..673ebe303bc19b2220b17fafb4cf29a6ea76a29f GIT binary patch literal 886 zcmZXRJ#X4j6o#*H2nGVg4$$;ta0d@az*X8Us;Zh|0%~m|V-(qo1zZE67$YD^cuIdo z_ip_smAWumtevtUvN84A0RqjHe9n8Gd){*_`%f$u0r(ig@AfJPz+bP}p1?*te8S=f zKtKnG&QKJQvQ>vHv6@5n*pd@O(1My1@)KLV_m*cu4#jCX&dPBJD+DO;peEn;9JM*6{f3^J0@^{NCP+b3lcfhM~Df}BQga2Bp zB}(1Pd^r@m)ll}=K*_TnieJ(4C3rXUSD@JKg#1*ELG1QI@p~N>;4r)kzG2tjgyMGu ziv4>~bbe^}kJ@}T8$_yp@SmY1QN;~HEImmyB-=D-JF5lXy1xB-qr@t?B$vrzmmLGjP* z`ZXwbz5=n2!X7Ab_rR5~0p(r}!RO!+ScKDd{ZA-)u39d|So}Mn=-LRye}`QkwA4`c z$1UHr>nEY;JZm{?*DpfRciHkE$WN`}k}0QJMSq+wxur?$hv=eB-t)tBc{g$MD0FZA}g{I*d|F(RC+X+LQFB>5s_7HmR@F?jHJsc1^H? zE^kWC+iv&s!P79UgOReDbIKceR#rRK#{MC_uI}ucO!UH8tU6+6ds)UEW~`X8YQ|bw zZKROSZ_sE$RUU6PyhwJodWqK* z9@0Z2YMU3x_BP$r$mnf(e$(;l^+?CDYWw#2O|7=;sD;<|Nb6D6U!61RuO4`De$w(9 zTJ;BsZsWM+7?qp> zujNOfQwbxlsblto#yE#_Yuam-obq_o(y?~djwH!gsjF*ZVxlt>LVPUAe3_ zD7bO&YE5>nD^&U`z4Hg??kpCzhSV%T!Q>bc6ROiS*7W?K#~B*&qF5)J2Wx%qrg=Nb zHLN4IHy8@*e$Xg6oA&w1oXnEbnk-bCe zF^-xT@0-Mn1Ym;{pDnU&1b>vrS6O<}m>e^z`1 zYa&pHbM1o@f#k>MLVcX2Gv=_UBF7h|V6!H79`gHkNOtGboiVF~CnGu*ghVGlk`fXr zR`X#KSvHXNfk`GiCIThJRyN3hHdZ+`H)qW$1Q|$$VV;w?7%^H^=6KTt!1SiNiHSLn zLoBf60?EPaAgoo%6301}2bwoF!jQ0d!vEV*)zjHw(k$Y@5x+wPDbj^iU}Gjr-!YdZ z@+b+a=1xN>q_RQ<&asW?DRUZII_BIPCWIx9dGscnxM0u2Cj(mTQJG`Ig, 2013,2015 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-09-27 22:40+0200\n" +"PO-Revision-Date: 2019-11-05 00:38+0000\n" +"Last-Translator: Ramiro Morales\n" +"Language-Team: Burmese (http://www.transifex.com/django/django/language/" +"my/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: my\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +msgid "Afrikaans" +msgstr "အာဖရိကန်" + +msgid "Arabic" +msgstr "အာရပ်" + +msgid "Asturian" +msgstr "" + +msgid "Azerbaijani" +msgstr "" + +msgid "Bulgarian" +msgstr "ဘူဂေးရီယန်" + +msgid "Belarusian" +msgstr "" + +msgid "Bengali" +msgstr "ဘင်းဂလီ" + +msgid "Breton" +msgstr "" + +msgid "Bosnian" +msgstr "ဘော့်စ်နီယန်" + +msgid "Catalan" +msgstr "ကက်တလန်" + +msgid "Czech" +msgstr "ချက်" + +msgid "Welsh" +msgstr "ဝေးလ်" + +msgid "Danish" +msgstr "ဒိန်းမတ်" + +msgid "German" +msgstr "ဂျာမန်" + +msgid "Lower Sorbian" +msgstr "" + +msgid "Greek" +msgstr "ဂရိ" + +msgid "English" +msgstr "အင်္ဂလိပ်" + +msgid "Australian English" +msgstr "" + +msgid "British English" +msgstr "ဗြိတိသျှအင်္ဂလိပ်" + +msgid "Esperanto" +msgstr "" + +msgid "Spanish" +msgstr "စပိန်" + +msgid "Argentinian Spanish" +msgstr "" + +msgid "Colombian Spanish" +msgstr "" + +msgid "Mexican Spanish" +msgstr "" + +msgid "Nicaraguan Spanish" +msgstr "" + +msgid "Venezuelan Spanish" +msgstr "" + +msgid "Estonian" +msgstr "" + +msgid "Basque" +msgstr "" + +msgid "Persian" +msgstr "" + +msgid "Finnish" +msgstr "" + +msgid "French" +msgstr "" + +msgid "Frisian" +msgstr "" + +msgid "Irish" +msgstr "" + +msgid "Scottish Gaelic" +msgstr "" + +msgid "Galician" +msgstr "" + +msgid "Hebrew" +msgstr "" + +msgid "Hindi" +msgstr "" + +msgid "Croatian" +msgstr "" + +msgid "Upper Sorbian" +msgstr "" + +msgid "Hungarian" +msgstr "" + +msgid "Armenian" +msgstr "" + +msgid "Interlingua" +msgstr "" + +msgid "Indonesian" +msgstr "" + +msgid "Ido" +msgstr "" + +msgid "Icelandic" +msgstr "" + +msgid "Italian" +msgstr "" + +msgid "Japanese" +msgstr "" + +msgid "Georgian" +msgstr "" + +msgid "Kabyle" +msgstr "" + +msgid "Kazakh" +msgstr "" + +msgid "Khmer" +msgstr "" + +msgid "Kannada" +msgstr "" + +msgid "Korean" +msgstr "" + +msgid "Luxembourgish" +msgstr "" + +msgid "Lithuanian" +msgstr "" + +msgid "Latvian" +msgstr "" + +msgid "Macedonian" +msgstr "" + +msgid "Malayalam" +msgstr "" + +msgid "Mongolian" +msgstr "" + +msgid "Marathi" +msgstr "" + +msgid "Burmese" +msgstr "" + +msgid "Norwegian Bokmål" +msgstr "" + +msgid "Nepali" +msgstr "" + +msgid "Dutch" +msgstr "" + +msgid "Norwegian Nynorsk" +msgstr "" + +msgid "Ossetic" +msgstr "" + +msgid "Punjabi" +msgstr "" + +msgid "Polish" +msgstr "" + +msgid "Portuguese" +msgstr "" + +msgid "Brazilian Portuguese" +msgstr "" + +msgid "Romanian" +msgstr "" + +msgid "Russian" +msgstr "" + +msgid "Slovak" +msgstr "" + +msgid "Slovenian" +msgstr "" + +msgid "Albanian" +msgstr "" + +msgid "Serbian" +msgstr "" + +msgid "Serbian Latin" +msgstr "" + +msgid "Swedish" +msgstr "" + +msgid "Swahili" +msgstr "" + +msgid "Tamil" +msgstr "" + +msgid "Telugu" +msgstr "" + +msgid "Thai" +msgstr "" + +msgid "Turkish" +msgstr "" + +msgid "Tatar" +msgstr "" + +msgid "Udmurt" +msgstr "" + +msgid "Ukrainian" +msgstr "" + +msgid "Urdu" +msgstr "" + +msgid "Uzbek" +msgstr "" + +msgid "Vietnamese" +msgstr "" + +msgid "Simplified Chinese" +msgstr "" + +msgid "Traditional Chinese" +msgstr "" + +msgid "Messages" +msgstr "" + +msgid "Site Maps" +msgstr "" + +msgid "Static Files" +msgstr "" + +msgid "Syndication" +msgstr "" + +msgid "That page number is not an integer" +msgstr "" + +msgid "That page number is less than 1" +msgstr "" + +msgid "That page contains no results" +msgstr "" + +msgid "Enter a valid value." +msgstr "" + +msgid "Enter a valid URL." +msgstr "" + +msgid "Enter a valid integer." +msgstr "" + +msgid "Enter a valid email address." +msgstr "" + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" + +msgid "Enter a valid IPv4 address." +msgstr "" + +msgid "Enter a valid IPv6 address." +msgstr "" + +msgid "Enter a valid IPv4 or IPv6 address." +msgstr "" + +msgid "Enter only digits separated by commas." +msgstr "" + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "" + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "" + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "" + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" + +msgid "Enter a number." +msgstr "" + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "" + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "" + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "" + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" + +msgid "Null characters are not allowed." +msgstr "" + +msgid "and" +msgstr "နှင့်" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "" + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "" + +msgid "This field cannot be null." +msgstr "" + +msgid "This field cannot be blank." +msgstr "" + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "" + +#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'. +#. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "" + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "" + +msgid "Boolean (Either True or False)" +msgstr "" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "" + +msgid "Comma-separated integers" +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" + +msgid "Date (without time)" +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" + +msgid "Date (with time)" +msgstr "" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "" + +msgid "Decimal number" +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" + +msgid "Duration" +msgstr "" + +msgid "Email address" +msgstr "အီးမေးလ်လိပ်စာ" + +msgid "File path" +msgstr "" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "" + +msgid "Floating point number" +msgstr "" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "" + +msgid "Integer" +msgstr "ကိန်းပြည့်" + +msgid "Big (8 byte) integer" +msgstr "" + +msgid "IPv4 address" +msgstr "အိုင်ပီဗီ၄လိပ်စာ" + +msgid "IP address" +msgstr "အိုင်ပီလိပ်စာ" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "" + +msgid "Boolean (Either True, False or None)" +msgstr "" + +msgid "Positive integer" +msgstr "" + +msgid "Positive small integer" +msgstr "" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "" + +msgid "Small integer" +msgstr "" + +msgid "Text" +msgstr "စာသား" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" + +msgid "Time" +msgstr "" + +msgid "URL" +msgstr "ယူအာအယ်" + +msgid "Raw binary data" +msgstr "" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "" + +msgid "Universally unique identifier" +msgstr "" + +msgid "File" +msgstr "ဖိုင်" + +msgid "Image" +msgstr "ပံု" + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "" + +msgid "Foreign Key (type determined by related field)" +msgstr "" + +msgid "One-to-one relationship" +msgstr "" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "" + +msgid "Many-to-many relationship" +msgstr "" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr "" + +msgid "This field is required." +msgstr "" + +msgid "Enter a whole number." +msgstr "" + +msgid "Enter a valid date." +msgstr "" + +msgid "Enter a valid time." +msgstr "" + +msgid "Enter a valid date/time." +msgstr "" + +msgid "Enter a valid duration." +msgstr "" + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "" + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "" + +msgid "No file was submitted." +msgstr "" + +msgid "The submitted file is empty." +msgstr "" + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "" + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "" + +msgid "Enter a list of values." +msgstr "" + +msgid "Enter a complete value." +msgstr "" + +msgid "Enter a valid UUID." +msgstr "" + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr "" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "" + +msgid "ManagementForm data is missing or has been tampered with" +msgstr "" + +#, python-format +msgid "Please submit %d or fewer forms." +msgid_plural "Please submit %d or fewer forms." +msgstr[0] "" + +#, python-format +msgid "Please submit %d or more forms." +msgid_plural "Please submit %d or more forms." +msgstr[0] "" + +msgid "Order" +msgstr "မှာကြား" + +msgid "Delete" +msgstr "ပယ်ဖျက်" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "" + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "" + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" + +msgid "Please correct the duplicate values below." +msgstr "" + +msgid "The inline value did not match the parent instance." +msgstr "" + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "" + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "" + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" + +msgid "Clear" +msgstr "" + +msgid "Currently" +msgstr "" + +msgid "Change" +msgstr "" + +msgid "Unknown" +msgstr "အမည်မသိ" + +msgid "Yes" +msgstr "ဟုတ်" + +msgid "No" +msgstr "မဟုတ်" + +msgid "Year" +msgstr "" + +msgid "Month" +msgstr "" + +msgid "Day" +msgstr "" + +msgid "yes,no,maybe" +msgstr "" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)d ဘိုက်များ" + +#, python-format +msgid "%s KB" +msgstr "%s ကီလိုဘိုက်" + +#, python-format +msgid "%s MB" +msgstr "%s မက်ဂါဘိုက်" + +#, python-format +msgid "%s GB" +msgstr "%s ဂစ်ဂါဘိုက်" + +#, python-format +msgid "%s TB" +msgstr "%s တီရာဘိုက်" + +#, python-format +msgid "%s PB" +msgstr "%s ပီတာဘိုက်" + +msgid "p.m." +msgstr "ညနေ" + +msgid "a.m." +msgstr "မနက်" + +msgid "PM" +msgstr "ညနေ" + +msgid "AM" +msgstr "မနက်" + +msgid "midnight" +msgstr "သန်းခေါင်" + +msgid "noon" +msgstr "မွန်းတည့်" + +msgid "Monday" +msgstr "တနင်္လာနေ့" + +msgid "Tuesday" +msgstr "" + +msgid "Wednesday" +msgstr "" + +msgid "Thursday" +msgstr "" + +msgid "Friday" +msgstr "" + +msgid "Saturday" +msgstr "" + +msgid "Sunday" +msgstr "" + +msgid "Mon" +msgstr "" + +msgid "Tue" +msgstr "" + +msgid "Wed" +msgstr "" + +msgid "Thu" +msgstr "" + +msgid "Fri" +msgstr "" + +msgid "Sat" +msgstr "" + +msgid "Sun" +msgstr "" + +msgid "January" +msgstr "" + +msgid "February" +msgstr "" + +msgid "March" +msgstr "" + +msgid "April" +msgstr "" + +msgid "May" +msgstr "" + +msgid "June" +msgstr "" + +msgid "July" +msgstr "" + +msgid "August" +msgstr "" + +msgid "September" +msgstr "" + +msgid "October" +msgstr "" + +msgid "November" +msgstr "" + +msgid "December" +msgstr "" + +msgid "jan" +msgstr "" + +msgid "feb" +msgstr "" + +msgid "mar" +msgstr "" + +msgid "apr" +msgstr "" + +msgid "may" +msgstr "" + +msgid "jun" +msgstr "" + +msgid "jul" +msgstr "" + +msgid "aug" +msgstr "" + +msgid "sep" +msgstr "" + +msgid "oct" +msgstr "" + +msgid "nov" +msgstr "" + +msgid "dec" +msgstr "" + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "" + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "" + +msgctxt "abbrev. month" +msgid "March" +msgstr "" + +msgctxt "abbrev. month" +msgid "April" +msgstr "" + +msgctxt "abbrev. month" +msgid "May" +msgstr "" + +msgctxt "abbrev. month" +msgid "June" +msgstr "" + +msgctxt "abbrev. month" +msgid "July" +msgstr "" + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "" + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "" + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "" + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "" + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "" + +msgctxt "alt. month" +msgid "January" +msgstr "" + +msgctxt "alt. month" +msgid "February" +msgstr "" + +msgctxt "alt. month" +msgid "March" +msgstr "" + +msgctxt "alt. month" +msgid "April" +msgstr "" + +msgctxt "alt. month" +msgid "May" +msgstr "" + +msgctxt "alt. month" +msgid "June" +msgstr "" + +msgctxt "alt. month" +msgid "July" +msgstr "" + +msgctxt "alt. month" +msgid "August" +msgstr "" + +msgctxt "alt. month" +msgid "September" +msgstr "" + +msgctxt "alt. month" +msgid "October" +msgstr "" + +msgctxt "alt. month" +msgid "November" +msgstr "" + +msgctxt "alt. month" +msgid "December" +msgstr "" + +msgid "This is not a valid IPv6 address." +msgstr "" + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "" + +msgid "or" +msgstr "" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr "" + +#, python-format +msgid "%d year" +msgid_plural "%d years" +msgstr[0] "" + +#, python-format +msgid "%d month" +msgid_plural "%d months" +msgstr[0] "" + +#, python-format +msgid "%d week" +msgid_plural "%d weeks" +msgstr[0] "" + +#, python-format +msgid "%d day" +msgid_plural "%d days" +msgstr[0] "" + +#, python-format +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "" + +#, python-format +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "" + +msgid "0 minutes" +msgstr "" + +msgid "Forbidden" +msgstr "" + +msgid "CSRF verification failed. Request aborted." +msgstr "" + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your Web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" + +msgid "More information is available with DEBUG=True." +msgstr "" + +msgid "No year specified" +msgstr "" + +msgid "Date out of range" +msgstr "" + +msgid "No month specified" +msgstr "" + +msgid "No day specified" +msgstr "" + +msgid "No week specified" +msgstr "" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "" + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "" + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "" + +msgid "Directory indexes are not allowed here." +msgstr "" + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "" + +#, python-format +msgid "Index of %(directory)s" +msgstr "" + +msgid "Django: the Web framework for perfectionists with deadlines." +msgstr "" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" + +msgid "The install worked successfully! Congratulations!" +msgstr "" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not configured any " +"URLs." +msgstr "" + +msgid "Django Documentation" +msgstr "" + +msgid "Topics, references, & how-to’s" +msgstr "" + +msgid "Tutorial: A Polling App" +msgstr "" + +msgid "Get started with Django" +msgstr "" + +msgid "Django Community" +msgstr "" + +msgid "Connect, get help, or contribute" +msgstr "" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/nb/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/conf/locale/nb/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..c4ebbae42c7f6ba51d9f54e0083fd518573a42b0 GIT binary patch literal 27007 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 QOp6`f8M!5~?WOkr0A&+3yZ`_I literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/nb/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/conf/locale/nb/LC_MESSAGES/django.po new file mode 100644 index 0000000000..cb2932b6fd --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/nb/LC_MESSAGES/django.po @@ -0,0 +1,1324 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Alexander Hansen , 2014 +# Eirik Krogstad , 2014 +# Jannis Leidel , 2011 +# jensadne , 2014-2015 +# Jon, 2015-2016 +# Jon, 2014 +# Jon, 2017-2022 +# Jon, 2013 +# Jon, 2011 +# Sigurd Gartmann , 2012 +# Tommy Strand , 2013 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-01-17 02:13-0600\n" +"PO-Revision-Date: 2023-04-25 06:49+0000\n" +"Last-Translator: Jon, 2017-2022\n" +"Language-Team: Norwegian Bokmål (http://www.transifex.com/django/django/" +"language/nb/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: nb\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Afrikaans" +msgstr "Afrikaans" + +msgid "Arabic" +msgstr "Arabisk" + +msgid "Algerian Arabic" +msgstr "Algerisk arabisk" + +msgid "Asturian" +msgstr "Asturiansk" + +msgid "Azerbaijani" +msgstr "Aserbajdsjansk" + +msgid "Bulgarian" +msgstr "Bulgarsk" + +msgid "Belarusian" +msgstr "Hviterussisk" + +msgid "Bengali" +msgstr "Bengalsk" + +msgid "Breton" +msgstr "Bretonsk" + +msgid "Bosnian" +msgstr "Bosnisk" + +msgid "Catalan" +msgstr "Katalansk" + +msgid "Central Kurdish (Sorani)" +msgstr "" + +msgid "Czech" +msgstr "Tsjekkisk" + +msgid "Welsh" +msgstr "Walisisk" + +msgid "Danish" +msgstr "Dansk" + +msgid "German" +msgstr "Tysk" + +msgid "Lower Sorbian" +msgstr "Lavsorbisk" + +msgid "Greek" +msgstr "Gresk" + +msgid "English" +msgstr "Engelsk" + +msgid "Australian English" +msgstr "Engelsk (australsk)" + +msgid "British English" +msgstr "Engelsk (britisk)" + +msgid "Esperanto" +msgstr "Esperanto" + +msgid "Spanish" +msgstr "Spansk" + +msgid "Argentinian Spanish" +msgstr "Argentinsk spansk" + +msgid "Colombian Spanish" +msgstr "Colombiansk spansk" + +msgid "Mexican Spanish" +msgstr "Meksikansk spansk" + +msgid "Nicaraguan Spanish" +msgstr "Nicaraguansk spansk" + +msgid "Venezuelan Spanish" +msgstr "Venezuelanske spansk" + +msgid "Estonian" +msgstr "Estisk" + +msgid "Basque" +msgstr "Baskisk" + +msgid "Persian" +msgstr "Persisk" + +msgid "Finnish" +msgstr "Finsk" + +msgid "French" +msgstr "Fransk" + +msgid "Frisian" +msgstr "Frisisk" + +msgid "Irish" +msgstr "Irsk" + +msgid "Scottish Gaelic" +msgstr "Skotsk-gælisk" + +msgid "Galician" +msgstr "Galisisk" + +msgid "Hebrew" +msgstr "Hebraisk" + +msgid "Hindi" +msgstr "Hindi" + +msgid "Croatian" +msgstr "Kroatisk" + +msgid "Upper Sorbian" +msgstr "Høysorbisk" + +msgid "Hungarian" +msgstr "Ungarsk" + +msgid "Armenian" +msgstr "Armensk" + +msgid "Interlingua" +msgstr "Interlingua" + +msgid "Indonesian" +msgstr "Indonesisk" + +msgid "Igbo" +msgstr "Ibo" + +msgid "Ido" +msgstr "Ido" + +msgid "Icelandic" +msgstr "Islandsk" + +msgid "Italian" +msgstr "Italiensk" + +msgid "Japanese" +msgstr "Japansk" + +msgid "Georgian" +msgstr "Georgisk" + +msgid "Kabyle" +msgstr "Kabylsk" + +msgid "Kazakh" +msgstr "Kasakhisk" + +msgid "Khmer" +msgstr "Khmer" + +msgid "Kannada" +msgstr "Kannada" + +msgid "Korean" +msgstr "Koreansk" + +msgid "Kyrgyz" +msgstr "Kirgisisk" + +msgid "Luxembourgish" +msgstr "Luxembourgsk" + +msgid "Lithuanian" +msgstr "Litauisk" + +msgid "Latvian" +msgstr "Latvisk" + +msgid "Macedonian" +msgstr "Makedonsk" + +msgid "Malayalam" +msgstr "Malayalam" + +msgid "Mongolian" +msgstr "Mongolsk" + +msgid "Marathi" +msgstr "Marathi" + +msgid "Malay" +msgstr "Malayisk" + +msgid "Burmese" +msgstr "Burmesisk" + +msgid "Norwegian Bokmål" +msgstr "Norsk (bokmål)" + +msgid "Nepali" +msgstr "Nepali" + +msgid "Dutch" +msgstr "Nederlandsk" + +msgid "Norwegian Nynorsk" +msgstr "Norsk (nynorsk)" + +msgid "Ossetic" +msgstr "Ossetisk" + +msgid "Punjabi" +msgstr "Panjabi" + +msgid "Polish" +msgstr "Polsk" + +msgid "Portuguese" +msgstr "Portugisisk" + +msgid "Brazilian Portuguese" +msgstr "Brasiliansk portugisisk" + +msgid "Romanian" +msgstr "Rumensk" + +msgid "Russian" +msgstr "Russisk" + +msgid "Slovak" +msgstr "Slovakisk" + +msgid "Slovenian" +msgstr "Slovensk" + +msgid "Albanian" +msgstr "Albansk" + +msgid "Serbian" +msgstr "Serbisk" + +msgid "Serbian Latin" +msgstr "Serbisk latin" + +msgid "Swedish" +msgstr "Svensk" + +msgid "Swahili" +msgstr "Swahili" + +msgid "Tamil" +msgstr "Tamil" + +msgid "Telugu" +msgstr "Telugu" + +msgid "Tajik" +msgstr "Tadsjikisk" + +msgid "Thai" +msgstr "Thai" + +msgid "Turkmen" +msgstr "Turkmensk" + +msgid "Turkish" +msgstr "Tyrkisk" + +msgid "Tatar" +msgstr "Tatarisk" + +msgid "Udmurt" +msgstr "Udmurtisk" + +msgid "Ukrainian" +msgstr "Ukrainsk" + +msgid "Urdu" +msgstr "Urdu" + +msgid "Uzbek" +msgstr "Usbekisk" + +msgid "Vietnamese" +msgstr "Vietnamesisk" + +msgid "Simplified Chinese" +msgstr "Forenklet kinesisk" + +msgid "Traditional Chinese" +msgstr "Tradisjonell kinesisk" + +msgid "Messages" +msgstr "Meldinger" + +msgid "Site Maps" +msgstr "Sidekart" + +msgid "Static Files" +msgstr "Statiske filer" + +msgid "Syndication" +msgstr "Syndikering" + +#. Translators: String used to replace omitted page numbers in elided page +#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10]. +msgid "…" +msgstr "…" + +msgid "That page number is not an integer" +msgstr "Sidenummeret er ikke et heltall" + +msgid "That page number is less than 1" +msgstr "Sidenummeret er mindre enn 1" + +msgid "That page contains no results" +msgstr "Siden inneholder ingen resultater" + +msgid "Enter a valid value." +msgstr "Oppgi en gyldig verdi." + +msgid "Enter a valid URL." +msgstr "Oppgi en gyldig nettadresse." + +msgid "Enter a valid integer." +msgstr "Skriv inn et gyldig heltall." + +msgid "Enter a valid email address." +msgstr "Oppgi en gyldig e-postadresse" + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" +"Oppgi en gyldig \"slug\" bestående av bokstaver, nummer, understreker eller " +"bindestreker." + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" +"Oppgi en gyldig \"slug\" bestående av Unicode-bokstaver, nummer, " +"understreker eller bindestreker." + +msgid "Enter a valid IPv4 address." +msgstr "Oppgi en gyldig IPv4-adresse." + +msgid "Enter a valid IPv6 address." +msgstr "Oppgi en gyldig IPv6-adresse." + +msgid "Enter a valid IPv4 or IPv6 address." +msgstr "Oppgi en gyldig IPv4- eller IPv6-adresse." + +msgid "Enter only digits separated by commas." +msgstr "Oppgi kun tall adskilt med komma." + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "Verdien må være %(limit_value)s (den er %(show_value)s)." + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "Verdien må være mindre enn eller lik %(limit_value)s." + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "Verdien må være større enn eller lik %(limit_value)s." + +#, python-format +msgid "Ensure this value is a multiple of step size %(limit_value)s." +msgstr "Verdien må være et multiplum av trinnstørrelse %(limit_value)s." + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Sørg for denne verdien har minst %(limit_value)d tegn (den har " +"%(show_value)d)." +msgstr[1] "" +"Sørg for at denne verdien har minst %(limit_value)d tegn (den har " +"%(show_value)d)." + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Sørg for denne verdien har %(limit_value)d tegn (den har nå %(show_value)d)." +msgstr[1] "" +"Sørg for at denne verdien har %(limit_value)d eller færre tegn (den har nå " +"%(show_value)d)." + +msgid "Enter a number." +msgstr "Oppgi et tall." + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "Sørg for at det er kun %(max)s tall." +msgstr[1] "Sørg for at det er %(max)s eller færre tall totalt." + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "Sørg for at det er kun %(max)s desimal." +msgstr[1] "Sørg for at det er %(max)s eller færre desimaler." + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "Sørg for at det kun %(max)s tall før desimalpunkt." +msgstr[1] "Sørg for at det er %(max)s eller færre tall før desimalpunkt." + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" +"Filendelsen \"%(extension)s\" er ikke tillatt. Tillatte filendelser er: " +"%(allowed_extensions)s." + +msgid "Null characters are not allowed." +msgstr "Null-tegn er ikke tillatt." + +msgid "and" +msgstr "og" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "%(model_name)s med denne %(field_labels)s finnes allerede." + +#, python-format +msgid "Constraint “%(name)s” is violated." +msgstr "Begrensning \"%(name)s\" er brutt." + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "Verdien %(value)r er ikke et gyldig valg." + +msgid "This field cannot be null." +msgstr "Feltet kan ikke være tomt." + +msgid "This field cannot be blank." +msgstr "Feltet kan ikke være blankt." + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "%(model_name)s med %(field_label)s finnes allerede." + +#. Translators: The 'lookup_type' is one of 'date', 'year' or +#. 'month'. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "%(field_label)s må være unik for %(date_field_label)s %(lookup_type)s." + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "Felt av typen: %(field_type)s" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "\"%(value)s\"-verdien må være enten True eller False." + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "\"%(value)s\"-verdien må være enten True, False, eller None." + +msgid "Boolean (Either True or False)" +msgstr "Boolsk (True eller False)" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "Tekst (opp til %(max_length)s tegn)" + +msgid "String (unlimited)" +msgstr "" + +msgid "Comma-separated integers" +msgstr "Heltall adskilt med komma" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" +"\"%(value)s\"-verdien har et ugyldig datoformat. Det må være på formen YYYY-" +"MM-DD." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" +"\"%(value)s\"-verdien er på den korrekte formen (YYYY-MM-DD), men det er en " +"ugyldig dato." + +msgid "Date (without time)" +msgstr "Dato (uten tid)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" +"\"%(value)s\"-verdien har et ugyldig datoformat. Det må være på formen YYYY-" +"MM-DD HH:MM[:ss[.uuuuuu]][TZ]." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" +"\"%(value)s\"-verdien er på den korrekte formen (YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ]), men er ugyldig dato/tid." + +msgid "Date (with time)" +msgstr "Dato (med tid)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "\"%(value)s\"-verdien må være et desimaltall." + +msgid "Decimal number" +msgstr "Desimaltall" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" +"\"%(value)s\"-verdien har et ugyldig format. Det må være på formen [DD] [HH:" +"[MM:]]ss[.uuuuuu]." + +msgid "Duration" +msgstr "Varighet" + +msgid "Email address" +msgstr "E-postadresse" + +msgid "File path" +msgstr "Filsti" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "Verdien \"%(value)s\" må være et flyttall." + +msgid "Floating point number" +msgstr "Flyttall" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "\"%(value)s\"-verdien må være et heltall." + +msgid "Integer" +msgstr "Heltall" + +msgid "Big (8 byte) integer" +msgstr "Stort (8 byte) heltall" + +msgid "Small integer" +msgstr "Lite heltall" + +msgid "IPv4 address" +msgstr "IPv4-adresse" + +msgid "IP address" +msgstr "IP-adresse" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "Verdien \"%(value)s\" må være enten None, True eller False." + +msgid "Boolean (Either True, False or None)" +msgstr "Boolsk (True, False eller None)" + +msgid "Positive big integer" +msgstr "Positivt stort heltall" + +msgid "Positive integer" +msgstr "Positivt heltall" + +msgid "Positive small integer" +msgstr "Positivt lite heltall" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "Slug (opp til %(max_length)s)" + +msgid "Text" +msgstr "Tekst" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" +"\"%(value)s\"-verdien har et ugyldig format. Det må være på formen HH:MM[:" +"ss[.uuuuuu]]." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" +"Verdien \"%(value)s\" har riktig format (HH:MM[:ss[.uuuuuu]]), men er ikke " +"et gyldig klokkeslett." + +msgid "Time" +msgstr "Tid" + +msgid "URL" +msgstr "Nettadresse" + +msgid "Raw binary data" +msgstr "Rå binærdata" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "\"%(value)s\" er ikke en gyldig UUID." + +msgid "Universally unique identifier" +msgstr "Universelt unik identifikator" + +msgid "File" +msgstr "Fil" + +msgid "Image" +msgstr "Bilde" + +msgid "A JSON object" +msgstr "Et JSON-objekt" + +msgid "Value must be valid JSON." +msgstr "Verdi må være gyldig JSON." + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "%(model)s-instansen med %(field)s %(value)r finnes ikke." + +msgid "Foreign Key (type determined by related field)" +msgstr "Fremmednøkkel (type bestemmes av relatert felt)" + +msgid "One-to-one relationship" +msgstr "En-til-en-relasjon" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "%(from)s-%(to)s-relasjon" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "%(from)s-%(to)s-relasjoner" + +msgid "Many-to-many relationship" +msgstr "Mange-til-mange-relasjon" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr ":?.!" + +msgid "This field is required." +msgstr "Feltet er påkrevet." + +msgid "Enter a whole number." +msgstr "Oppgi et heltall." + +msgid "Enter a valid date." +msgstr "Oppgi en gyldig dato." + +msgid "Enter a valid time." +msgstr "Oppgi et gyldig tidspunkt." + +msgid "Enter a valid date/time." +msgstr "Oppgi gyldig dato og tidspunkt." + +msgid "Enter a valid duration." +msgstr "Oppgi en gyldig varighet." + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "Antall dager må være mellom {min_days} og {max_days}." + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "Ingen fil ble sendt. Sjekk «encoding»-typen på skjemaet." + +msgid "No file was submitted." +msgstr "Ingen fil ble sendt." + +msgid "The submitted file is empty." +msgstr "Filen er tom." + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "Sørg for at filnavnet har %(max)d tegn (det har nå %(length)d)." +msgstr[1] "" +"Sørg for at filnavnet har færre enn %(max)d tegn (det har nå %(length)d)." + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "Vennligst last opp en ny fil eller marker fjern-boksen, ikke begge." + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" +"Last opp et gyldig bilde. Filen du lastet opp var ødelagt eller ikke et " +"bilde." + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "Velg et gyldig valg. %(value)s er ikke et av de tilgjengelige valgene." + +msgid "Enter a list of values." +msgstr "Oppgi en liste med verdier." + +msgid "Enter a complete value." +msgstr "Skriv inn en fullstendig verdi." + +msgid "Enter a valid UUID." +msgstr "Oppgi en gyldig UUID." + +msgid "Enter a valid JSON." +msgstr "Oppgi gyldig JSON." + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr ":" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "(Skjult felt %(name)s) %(error)s" + +#, python-format +msgid "" +"ManagementForm data is missing or has been tampered with. Missing fields: " +"%(field_names)s. You may need to file a bug report if the issue persists." +msgstr "" +"ManagementForm-data mangler eller har blitt tuklet med. Felt som mangler: " +"%(field_names)s. Du må muligens rapportere en bug hvis problemet vedvarer." + +#, python-format +msgid "Please submit at most %(num)d form." +msgid_plural "Please submit at most %(num)d forms." +msgstr[0] "Vennligst send inn maks %(num)d skjema." +msgstr[1] "Vennligst send inn maks %(num)d skjemaer." + +#, python-format +msgid "Please submit at least %(num)d form." +msgid_plural "Please submit at least %(num)d forms." +msgstr[0] "Vennligst send inn minst %(num)d skjema." +msgstr[1] "Vennligst send inn minst %(num)d skjemaer." + +msgid "Order" +msgstr "Rekkefølge" + +msgid "Delete" +msgstr "Slett" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "Vennligst korriger dupliserte data for %(field)s." + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "Vennligst korriger dupliserte data for %(field)s, som må være unike." + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"Vennligst korriger dupliserte data for %(field_name)s, som må være unike for " +"%(lookup)s i %(date_field)s." + +msgid "Please correct the duplicate values below." +msgstr "Vennligst korriger de dupliserte verdiene nedenfor." + +msgid "The inline value did not match the parent instance." +msgstr "Inline-verdien var ikke i samsvar med foreldre-instansen." + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "Velg et gyldig valg. Valget er ikke av de tilgjengelige valgene." + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "\"%(pk)s\" er ikke en gyldig verdi." + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" +"%(datetime)s kunne ikke tolkes i tidssonen %(current_timezone)s, det kan " +"være tvetydig eller ikke eksistere." + +msgid "Clear" +msgstr "Fjern" + +msgid "Currently" +msgstr "Nåværende" + +msgid "Change" +msgstr "Endre" + +msgid "Unknown" +msgstr "Ukjent" + +msgid "Yes" +msgstr "Ja" + +msgid "No" +msgstr "Nei" + +#. Translators: Please do not add spaces around commas. +msgid "yes,no,maybe" +msgstr "ja,nei,kanskje" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)d byte" +msgstr[1] "%(size)d byte" + +#, python-format +msgid "%s KB" +msgstr "%s KB" + +#, python-format +msgid "%s MB" +msgstr "%s MB" + +#, python-format +msgid "%s GB" +msgstr "%s GB" + +#, python-format +msgid "%s TB" +msgstr "%s TB" + +#, python-format +msgid "%s PB" +msgstr "%s PB" + +msgid "p.m." +msgstr "p.m." + +msgid "a.m." +msgstr "a.m." + +msgid "PM" +msgstr "PM" + +msgid "AM" +msgstr "AM" + +msgid "midnight" +msgstr "midnatt" + +msgid "noon" +msgstr "12:00" + +msgid "Monday" +msgstr "mandag" + +msgid "Tuesday" +msgstr "tirsdag" + +msgid "Wednesday" +msgstr "onsdag" + +msgid "Thursday" +msgstr "torsdag" + +msgid "Friday" +msgstr "fredag" + +msgid "Saturday" +msgstr "lørdag" + +msgid "Sunday" +msgstr "søndag" + +msgid "Mon" +msgstr "man" + +msgid "Tue" +msgstr "tir" + +msgid "Wed" +msgstr "ons" + +msgid "Thu" +msgstr "tor" + +msgid "Fri" +msgstr "fre" + +msgid "Sat" +msgstr "lør" + +msgid "Sun" +msgstr "søn" + +msgid "January" +msgstr "januar" + +msgid "February" +msgstr "februar" + +msgid "March" +msgstr "mars" + +msgid "April" +msgstr "april" + +msgid "May" +msgstr "mai" + +msgid "June" +msgstr "juni" + +msgid "July" +msgstr "juli" + +msgid "August" +msgstr "august" + +msgid "September" +msgstr "september" + +msgid "October" +msgstr "oktober" + +msgid "November" +msgstr "november" + +msgid "December" +msgstr "desember" + +msgid "jan" +msgstr "jan" + +msgid "feb" +msgstr "feb" + +msgid "mar" +msgstr "mar" + +msgid "apr" +msgstr "apr" + +msgid "may" +msgstr "mai" + +msgid "jun" +msgstr "jun" + +msgid "jul" +msgstr "jul" + +msgid "aug" +msgstr "aug" + +msgid "sep" +msgstr "sep" + +msgid "oct" +msgstr "okt" + +msgid "nov" +msgstr "nov" + +msgid "dec" +msgstr "des" + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "jan." + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "feb." + +msgctxt "abbrev. month" +msgid "March" +msgstr "mar." + +msgctxt "abbrev. month" +msgid "April" +msgstr "apr." + +msgctxt "abbrev. month" +msgid "May" +msgstr "mai" + +msgctxt "abbrev. month" +msgid "June" +msgstr "jun." + +msgctxt "abbrev. month" +msgid "July" +msgstr "jul." + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "aug." + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "sept." + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "okt." + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "nov." + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "des." + +msgctxt "alt. month" +msgid "January" +msgstr "Januar" + +msgctxt "alt. month" +msgid "February" +msgstr "Februar" + +msgctxt "alt. month" +msgid "March" +msgstr "Mars" + +msgctxt "alt. month" +msgid "April" +msgstr "April" + +msgctxt "alt. month" +msgid "May" +msgstr "Mai" + +msgctxt "alt. month" +msgid "June" +msgstr "Juni" + +msgctxt "alt. month" +msgid "July" +msgstr "Juli" + +msgctxt "alt. month" +msgid "August" +msgstr "August" + +msgctxt "alt. month" +msgid "September" +msgstr "September" + +msgctxt "alt. month" +msgid "October" +msgstr "Oktober" + +msgctxt "alt. month" +msgid "November" +msgstr "November" + +msgctxt "alt. month" +msgid "December" +msgstr "Desember" + +msgid "This is not a valid IPv6 address." +msgstr "Dette er ikke en gyldig IPv6-adresse." + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "%(truncated_text)s…" + +msgid "or" +msgstr "eller" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr ", " + +#, python-format +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "%(num)d år" +msgstr[1] "%(num)d år" + +#, python-format +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "%(num)d måned" +msgstr[1] "%(num)d måneder" + +#, python-format +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "%(num)d uke" +msgstr[1] "%(num)d uker" + +#, python-format +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "%(num)d dag" +msgstr[1] "%(num)d dager" + +#, python-format +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "%(num)d time" +msgstr[1] "%(num)d timer" + +#, python-format +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "%(num)d minutt" +msgstr[1] "%(num)d minutter" + +msgid "Forbidden" +msgstr "Forbudt" + +msgid "CSRF verification failed. Request aborted." +msgstr "CSRF-verifisering feilet. Forespørsel avbrutt." + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" +"Du ser denne meldingen fordi dette HTTPS-nettstedet krever en 'Referer'-" +"header til å bli sendt av nettleseren, men ingen ble sendt. Denne headeren " +"er nødvendig av sikkerhetsmessige årsaker, for å sikre at nettleseren din " +"ikke blir kapret av tredjeparter." + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" +"Hvis du har konfigurert nettleseren din til å deaktivere 'Referer'-headers, " +"kan du aktivere dem, i hvert fall for dette nettstedet, eller for HTTPS-" +"tilkoblinger, eller for 'same-origin'-forespørsler." + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" +"Hvis du bruker -taggen eller " +"inkluderer 'Referrer-Policy: no-referrer'-header, vennligst fjern dem. CSRF-" +"beskyttelsen krever 'Referer'-headeren for å utføre streng kontroll av " +"referanser. Hvis du er bekymret for personvern, bruk alternativer som for koblinger til tredjeparts nettsteder." + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" +"Du ser denne meldingen fordi denne nettsiden krever en CSRF-cookie når du " +"sender inn skjemaer. Denne informasjonskapselen er nødvendig av " +"sikkerhetsmessige årsaker, for å sikre at nettleseren din ikke blir kapret " +"av tredjeparter." + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" +"Hvis du har konfigurert nettleseren din til å deaktivere " +"informasjonskapsler, kan du aktivere dem, i hvert fall for dette nettstedet, " +"eller for 'same-origin'-forespørsler." + +msgid "More information is available with DEBUG=True." +msgstr "Mer informasjon er tilgjengelig med DEBUG=True." + +msgid "No year specified" +msgstr "År ikke spesifisert" + +msgid "Date out of range" +msgstr "Date utenfor rekkevidde" + +msgid "No month specified" +msgstr "Måned ikke spesifisert" + +msgid "No day specified" +msgstr "Dag ikke spesifisert" + +msgid "No week specified" +msgstr "Uke ikke spesifisert" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "Ingen %(verbose_name_plural)s tilgjengelig" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" +"Fremtidig %(verbose_name_plural)s ikke tilgjengelig fordi %(class_name)s." +"allow_future er False." + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "Ugyldig datostreng \"%(datestr)s\" gitt formatet \"%(format)s\"" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "Fant ingen %(verbose_name)s som passet spørringen" + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "Siden er ikke \"last\", og kan heller ikke konverteres til et heltall." + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "Ugyldig side (%(page_number)s): %(message)s" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "Tom liste og \"%(class_name)s.allow_empty\" er False." + +msgid "Directory indexes are not allowed here." +msgstr "Mappeinnhold er ikke tillatt her." + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "\"%(path)s\" finnes ikke" + +#, python-format +msgid "Index of %(directory)s" +msgstr "Innhold i %(directory)s" + +msgid "The install worked successfully! Congratulations!" +msgstr "Installasjonen var vellykket! Gratulerer!" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" +"Se produktmerknader for Django " +"%(version)s" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not " +"configured any URLs." +msgstr "" +"Du ser denne siden fordi DEBUG=True er i din Django-innstillingsfil og du ikke " +"har konfigurert noen URL-er." + +msgid "Django Documentation" +msgstr "Django-dokumentasjon" + +msgid "Topics, references, & how-to’s" +msgstr "Temaer, referanser & how-tos" + +msgid "Tutorial: A Polling App" +msgstr "Tutorial: en polling-app" + +msgid "Get started with Django" +msgstr "Kom i gang med Django" + +msgid "Django Community" +msgstr "Django nettsamfunn" + +msgid "Connect, get help, or contribute" +msgstr "Koble, få hjelp eller bidra" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/nb/__init__.py b/venv/lib/python3.12/site-packages/django/conf/locale/nb/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/nb/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/nb/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..38bce2446a185ce032b3ed6b5e0e3debb357aec4 GIT binary patch literal 198 zcmX@j%ge<81o5sX(m?cM5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!O4ZNE&rQ|OP0Yy6 zFHO;RNiEZNN=(kybEFQ_cZ$j>v@Gc?jK&MZmQEdVM^ zOiwM=Pssu+OwP|s)6dCIPRvQw&r8yekI&4@EQycTE2#X%VUwGmQks)$SHudml@W-G PL5z>gjEsy$%s>_Z#H}=Y literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/nb/__pycache__/formats.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/nb/__pycache__/formats.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..888117a2af64cd8122bb021f0b370920b4768406 GIT binary patch literal 856 zcmZXSJ#X4j6o#)c5HKNpyJ;&`NRctg+0iFX+&c$@?szIVL$TYBXraPIPjf90g{6x2Qh;f96}*{jE*Pa%!%W_ z;?sq+=Fr7l$6?k*+SRm6y)JNkn74S%39gdcyrszH8QKYOT9&i293~3$oW*n6PE9gF zC${aUxnhnh=QzblK0-X#bWRQ_F>coF8~;aZ;{n|nCy$K}Xy3S@OX}>e`)PlEyQN90 zWWw`MUQk87AjxGxorly?c~?Z-&OV4~q9E&KsiGFQhUmJ=3)+^%l%gc7`u^6`13Fk& zD9MUDsp(QdzZAuf^Z3eEs#I(0W}h-=caL$%V|npIsVscb6|pMFf-1@LxLTBIicrb# zu}Gy>J{M*ELY8XPQsv?YxF>H8mKe5e%Y>HEw(M&R^X3?y8;#Fdv4>&3YxG(+9Gkr{ z>~`v~KN+>{-W&eaYdGwT%xs?w8ZC1O@zrXuVfUJ_Yd4Ip343+ev2 z@padHH(<%7?*BBrBw;~Q6t!SLeH7~keVe^ jMBgzC>zRW19m_l;nO(3Tb?VNf$YgvLPkf0Cl4SQku~+IB literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/nb/formats.py b/venv/lib/python3.12/site-packages/django/conf/locale/nb/formats.py new file mode 100644 index 0000000000..0ddb8fef60 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/nb/formats.py @@ -0,0 +1,41 @@ +# This file is distributed under the same license as the Django package. +# +# The *_FORMAT strings use the Django date format syntax, +# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date +DATE_FORMAT = "j. F Y" +TIME_FORMAT = "H:i" +DATETIME_FORMAT = "j. F Y H:i" +YEAR_MONTH_FORMAT = "F Y" +MONTH_DAY_FORMAT = "j. F" +SHORT_DATE_FORMAT = "d.m.Y" +SHORT_DATETIME_FORMAT = "d.m.Y H:i" +FIRST_DAY_OF_WEEK = 1 # Monday + +# The *_INPUT_FORMATS strings use the Python strftime format syntax, +# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior +# Kept ISO formats as they are in first position +DATE_INPUT_FORMATS = [ + "%Y-%m-%d", # '2006-10-25' + "%d.%m.%Y", # '25.10.2006' + "%d.%m.%y", # '25.10.06' + # "%d. %b %Y", # '25. okt 2006' + # "%d %b %Y", # '25 okt 2006' + # "%d. %b. %Y", # '25. okt. 2006' + # "%d %b. %Y", # '25 okt. 2006' + # "%d. %B %Y", # '25. oktober 2006' + # "%d %B %Y", # '25 oktober 2006' +] +DATETIME_INPUT_FORMATS = [ + "%Y-%m-%d %H:%M:%S", # '2006-10-25 14:30:59' + "%Y-%m-%d %H:%M:%S.%f", # '2006-10-25 14:30:59.000200' + "%Y-%m-%d %H:%M", # '2006-10-25 14:30' + "%d.%m.%Y %H:%M:%S", # '25.10.2006 14:30:59' + "%d.%m.%Y %H:%M:%S.%f", # '25.10.2006 14:30:59.000200' + "%d.%m.%Y %H:%M", # '25.10.2006 14:30' + "%d.%m.%y %H:%M:%S", # '25.10.06 14:30:59' + "%d.%m.%y %H:%M:%S.%f", # '25.10.06 14:30:59.000200' + "%d.%m.%y %H:%M", # '25.10.06 14:30' +] +DECIMAL_SEPARATOR = "," +THOUSAND_SEPARATOR = "\xa0" # non-breaking space +NUMBER_GROUPING = 3 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/ne/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/conf/locale/ne/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..2a10814b1be0bc91ac38226e96e535f06cf3dc94 GIT binary patch literal 27248 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, 2020 +# Jannis Leidel , 2014 +# Paras Nath Chaudhary , 2012 +# Sagar Chalise , 2011-2012,2015,2018 +# Sagar Chalise , 2015 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-05-19 20:23+0200\n" +"PO-Revision-Date: 2020-07-14 21:42+0000\n" +"Last-Translator: Transifex Bot <>\n" +"Language-Team: Nepali (http://www.transifex.com/django/django/language/ne/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ne\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Afrikaans" +msgstr "अफ्रिकन" + +msgid "Arabic" +msgstr "अरबिक" + +msgid "Algerian Arabic" +msgstr "" + +msgid "Asturian" +msgstr "अस्टुरियन" + +msgid "Azerbaijani" +msgstr "अजरबैजानी" + +msgid "Bulgarian" +msgstr "बुल्गेरियाली" + +msgid "Belarusian" +msgstr "बेलारुसियन" + +msgid "Bengali" +msgstr "बंगाली" + +msgid "Breton" +msgstr "ब्रेटोन" + +msgid "Bosnian" +msgstr "बोस्नियाली" + +msgid "Catalan" +msgstr "क्याटालान" + +msgid "Czech" +msgstr "चेक" + +msgid "Welsh" +msgstr "वेल्स" + +msgid "Danish" +msgstr "डेनिस" + +msgid "German" +msgstr "जर्मन" + +msgid "Lower Sorbian" +msgstr "तल्लो सोर्बियन" + +msgid "Greek" +msgstr "ग्रिक" + +msgid "English" +msgstr "अंग्रेजी" + +msgid "Australian English" +msgstr "अस्ट्रेलियाली अंग्रेजी" + +msgid "British English" +msgstr "बेलायती अंग्रेजी" + +msgid "Esperanto" +msgstr "इस्परा्न्तो" + +msgid "Spanish" +msgstr "स्पेनिस" + +msgid "Argentinian Spanish" +msgstr "अर्जेन्टिनाली स्पेनिस" + +msgid "Colombian Spanish" +msgstr "कोलम्बियाली स्पेनिस" + +msgid "Mexican Spanish" +msgstr "मेक्सिकन स्पेनिस" + +msgid "Nicaraguan Spanish" +msgstr "निकारागुँवा स्पेनिस" + +msgid "Venezuelan Spanish" +msgstr "भेनेजुएला स्पेनिस" + +msgid "Estonian" +msgstr "इस्टोनियन" + +msgid "Basque" +msgstr "बास्क" + +msgid "Persian" +msgstr "फारसी" + +msgid "Finnish" +msgstr "फिन्निस" + +msgid "French" +msgstr "फ्रान्सेली" + +msgid "Frisian" +msgstr "फ्रिसियन" + +msgid "Irish" +msgstr "आयरिस" + +msgid "Scottish Gaelic" +msgstr "स्कटीस गैलिक" + +msgid "Galician" +msgstr "ग्यलिसियन" + +msgid "Hebrew" +msgstr "हिब्रु" + +msgid "Hindi" +msgstr "हिन्दि " + +msgid "Croatian" +msgstr "क्रोषियन" + +msgid "Upper Sorbian" +msgstr "माथिल्लो सोर्बियन " + +msgid "Hungarian" +msgstr "हन्गेरियन" + +msgid "Armenian" +msgstr "अर्मेनियन" + +msgid "Interlingua" +msgstr "ईन्टरलिन्गुवा" + +msgid "Indonesian" +msgstr "इन्डोनेसियाली" + +msgid "Igbo" +msgstr "" + +msgid "Ido" +msgstr "आइडु" + +msgid "Icelandic" +msgstr "आइसल्यान्डिक" + +msgid "Italian" +msgstr "ईटालियन" + +msgid "Japanese" +msgstr "जापनिज" + +msgid "Georgian" +msgstr "जर्जीयन" + +msgid "Kabyle" +msgstr "कबायल" + +msgid "Kazakh" +msgstr "कजाक" + +msgid "Khmer" +msgstr "ख्मेर" + +msgid "Kannada" +msgstr "कन्नड" + +msgid "Korean" +msgstr "कोरियाली" + +msgid "Kyrgyz" +msgstr "" + +msgid "Luxembourgish" +msgstr "लक्जेमबर्गेली" + +msgid "Lithuanian" +msgstr "लिथुवानियाली" + +msgid "Latvian" +msgstr "लाट्भियन" + +msgid "Macedonian" +msgstr "म्यासेडोनियन" + +msgid "Malayalam" +msgstr "मलायलम" + +msgid "Mongolian" +msgstr "मंगोलियन" + +msgid "Marathi" +msgstr "मराठी" + +msgid "Burmese" +msgstr "बर्मेली" + +msgid "Norwegian Bokmål" +msgstr "नर्वे बक्मल" + +msgid "Nepali" +msgstr "नेपाली" + +msgid "Dutch" +msgstr "डच" + +msgid "Norwegian Nynorsk" +msgstr "नर्वेली न्योर्स्क" + +msgid "Ossetic" +msgstr "ओसेटिक" + +msgid "Punjabi" +msgstr "पञ्जावी" + +msgid "Polish" +msgstr "पोलिस" + +msgid "Portuguese" +msgstr "पुर्तगाली" + +msgid "Brazilian Portuguese" +msgstr "ब्राजिली पुर्तगाली" + +msgid "Romanian" +msgstr "रोमानियाली" + +msgid "Russian" +msgstr "रुसी" + +msgid "Slovak" +msgstr "सलोभाक" + +msgid "Slovenian" +msgstr "स्लोभेनियाली" + +msgid "Albanian" +msgstr "अल्बानियाली" + +msgid "Serbian" +msgstr "सर्वियाली" + +msgid "Serbian Latin" +msgstr "सर्वियाली ल्याटिन" + +msgid "Swedish" +msgstr "स्विडिस" + +msgid "Swahili" +msgstr "स्वाहिली" + +msgid "Tamil" +msgstr "तामिल" + +msgid "Telugu" +msgstr "तेलुगु" + +msgid "Tajik" +msgstr "" + +msgid "Thai" +msgstr "थाई" + +msgid "Turkmen" +msgstr "" + +msgid "Turkish" +msgstr "टर्किस" + +msgid "Tatar" +msgstr "टाटर" + +msgid "Udmurt" +msgstr "उद्मुर्ट" + +msgid "Ukrainian" +msgstr "युक्रेनि" + +msgid "Urdu" +msgstr "उर्दु" + +msgid "Uzbek" +msgstr "उज्बेक" + +msgid "Vietnamese" +msgstr "भियतनामी" + +msgid "Simplified Chinese" +msgstr "सरल चिनि" + +msgid "Traditional Chinese" +msgstr "प्राचिन चिनि" + +msgid "Messages" +msgstr "सुचनाहरु" + +msgid "Site Maps" +msgstr "साइट म्याप्स" + +msgid "Static Files" +msgstr "स्टेेटिक फाइलहरु" + +msgid "Syndication" +msgstr "सिन्डिकेसन" + +msgid "That page number is not an integer" +msgstr "पृष्ठ नं अंक होइन ।" + +msgid "That page number is less than 1" +msgstr "पृष्ठ नं १ भन्दा कम भयो ।" + +msgid "That page contains no results" +msgstr "पृष्ठमा नतिजा छैन ।" + +msgid "Enter a valid value." +msgstr "उपयुक्त मान राख्नुहोस ।" + +msgid "Enter a valid URL." +msgstr "उपयुक्त URL राख्नुहोस ।" + +msgid "Enter a valid integer." +msgstr "उपयुक्त अंक राख्नुहोस ।" + +msgid "Enter a valid email address." +msgstr "सही ई-मेल ठेगाना राख्नु होस ।" + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" + +msgid "Enter a valid IPv4 address." +msgstr "उपयुक्त IPv4 ठेगाना राख्नुहोस" + +msgid "Enter a valid IPv6 address." +msgstr "उपयुक्त IPv6 ठेगाना राख्नुहोस ।" + +msgid "Enter a valid IPv4 or IPv6 address." +msgstr "उपयुक्त IPv4 वा IPv6 ठेगाना राख्नुहोस ।" + +msgid "Enter only digits separated by commas." +msgstr "कम्मा सहितका वर्ण मात्र राख्नुहोस ।" + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "यो मान %(limit_value)s छ भन्ने निश्चित गर्नुहोस । (यो %(show_value)s हो ।)" + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "यो मान %(limit_value)s भन्दा कम अथवा बराबर छ भन्ने निश्चित गर्नुहोस ।" + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "यो मान %(limit_value)s भन्दा बढी अथवा बराबर छ भन्ने निशचित गर्नुहोस ।" + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"यो मान कम्तिमा पनि %(limit_value)d अक्षर छ भन्ने निश्चित गर्नुहोस । (यसमा " +"%(show_value)d छ ।)" +msgstr[1] "" +"यो मान कम्तिमा पनि %(limit_value)d अक्षरहरु छ भन्ने निश्चित गर्नुहोस । (यसमा " +"%(show_value)d छ ।)" + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"यो मान बढिमा पनि %(limit_value)d अक्षर छ भन्ने निश्चित गर्नुहोस । (यसमा " +"%(show_value)d छ ।)" +msgstr[1] "" +"यो मान बढिमा पनि %(limit_value)d अक्षरहरु छ भन्ने निश्चित गर्नुहोस । (यसमा " +"%(show_value)d छ ।)" + +msgid "Enter a number." +msgstr "संख्या राख्नुहोस ।" + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "जम्मा %(max)s भन्दा बढी अक्षर नभएको निश्चित पार्नु होस ।" +msgstr[1] "जम्मा %(max)s भन्दा बढी अक्षरहरु नभएको निश्चित पार्नु होस ।" + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "दशमलव पछि %(max)s भन्दा बढी अक्षर नभएको निश्चित पार्नु होस ।" +msgstr[1] "दशमलव पछि %(max)s भन्दा बढी अक्षरहरु नभएको निश्चित पार्नु होस ।" + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "दशमलव अघि %(max)s भन्दा बढी अक्षर नभएको निश्चित पार्नु होस ।" +msgstr[1] "दशमलव अघि %(max)s भन्दा बढी अक्षरहरु नभएको निश्चित पार्नु होस ।" + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" + +msgid "Null characters are not allowed." +msgstr "शून्य मान अनुमति छैन।" + +msgid "and" +msgstr "र" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "%(field_labels)s भएको %(model_name)s बनि सकेको छ । " + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "%(value)r मान उपयुक्त छनोट होइन ।" + +msgid "This field cannot be null." +msgstr "यो फाँट शून्य हुन सक्दैन ।" + +msgid "This field cannot be blank." +msgstr "यो फाँट खाली हुन सक्दैन ।" + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "%(field_label)s भएको %(model_name)s पहिलै विद्धमान छ ।" + +#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'. +#. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" +"%(date_field_label)s %(lookup_type)s को लागि %(field_label)s अनुपम हुनु पर्दछ ।" + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "फाँटको प्रकार: %(field_type)s" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "" + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "" + +msgid "Boolean (Either True or False)" +msgstr "बुलियन (True अथवा False)" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "वर्ण (%(max_length)s सम्म)" + +msgid "Comma-separated integers" +msgstr "कम्माले छुट्याइएका अंकहरु ।" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" + +msgid "Date (without time)" +msgstr "मिति (समय रहित)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" + +msgid "Date (with time)" +msgstr "मिति (समय सहित)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "" + +msgid "Decimal number" +msgstr "दश्मलव संख्या" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" + +msgid "Duration" +msgstr "अवधि" + +msgid "Email address" +msgstr "ई-मेल ठेगाना" + +msgid "File path" +msgstr "फाइलको मार्ग" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "" + +msgid "Floating point number" +msgstr "दश्मलव हुने संख्या" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "" + +msgid "Integer" +msgstr "अंक" + +msgid "Big (8 byte) integer" +msgstr "ठूलो (८ बाइटको) अंक" + +msgid "IPv4 address" +msgstr "आइ.पी.भी४ ठेगाना" + +msgid "IP address" +msgstr "IP ठेगाना" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "" + +msgid "Boolean (Either True, False or None)" +msgstr "बुलियन (True, False अथवा None)" + +msgid "Positive big integer" +msgstr "" + +msgid "Positive integer" +msgstr "सकारात्मक पूर्णांक" + +msgid "Positive small integer" +msgstr "सानो जोड अङ्क" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "स्लग(%(max_length)s सम्म)" + +msgid "Small integer" +msgstr "सानो अङ्क" + +msgid "Text" +msgstr "पाठ" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" + +msgid "Time" +msgstr "समय" + +msgid "URL" +msgstr "URL" + +msgid "Raw binary data" +msgstr "र बाइनरी डाटा" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "" + +msgid "Universally unique identifier" +msgstr "" + +msgid "File" +msgstr "फाइल" + +msgid "Image" +msgstr "चित्र" + +msgid "A JSON object" +msgstr "" + +msgid "Value must be valid JSON." +msgstr "" + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "" + +msgid "Foreign Key (type determined by related field)" +msgstr "फोरेन कि (प्रकार नातागत फाँटले जनाउछ)" + +msgid "One-to-one relationship" +msgstr "एक-देखि-एक नाता" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "%(from)s-%(to)s सम्बन्ध" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "%(from)s-%(to)s सम्बन्धहरु" + +msgid "Many-to-many relationship" +msgstr "अनेक-देखि-अनेक नाता" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr ":?.!" + +msgid "This field is required." +msgstr "यो फाँट अनिवार्य छ ।" + +msgid "Enter a whole number." +msgstr "संख्या राख्नुहोस ।" + +msgid "Enter a valid date." +msgstr "उपयुक्त मिति राख्नुहोस ।" + +msgid "Enter a valid time." +msgstr "उपयुक्त समय राख्नुहोस ।" + +msgid "Enter a valid date/time." +msgstr "उपयुक्त मिति/समय राख्नुहोस ।" + +msgid "Enter a valid duration." +msgstr "उपयुक्त अवधि राख्नुहोस ।" + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "दिन गन्ती {min_days} र {max_days} बीचमा हुनु पर्छ । " + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "कुनै फाईल पेश गरिएको छैन । फारममा ईनकोडिङको प्रकार जाँच गर्नुहोस । " + +msgid "No file was submitted." +msgstr "कुनै फाईल पेश गरिएको छैन ।" + +msgid "The submitted file is empty." +msgstr "पेश गरिएको फाइल खाली छ ।" + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" +"यो फाइलको नाममा बाढीमा %(max)d अङ्क भएको निश्चित गर्नु होस । (यसमा %(length)d छ " +"।)" +msgstr[1] "" +"यो फाइलको नाममा बढी मा %(max)d अङ्कहरू भएको निश्चित गर्नु होस । (यसमा %(length)d " +"छ ।)" + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "दुवै नछान्नुहोस, कि त फाइल पेश गर्नुहोस वा चेक बाकस मा छान्नुहोस ।" + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" +"उपयुक्त चित्र अपलोड गर्नुहोस । तपाइले अपलोड गर्नु भएको फाइल चित्र होइन वा बिग्रेको चित्र " +"हो ।" + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "उपयुक्त विकल्प छान्नुहोस । %(value)s प्रस्तावित विकल्प होइन ।" + +msgid "Enter a list of values." +msgstr "मानहरु राख्नुहोस" + +msgid "Enter a complete value." +msgstr "पुरा मान राख्नु होस ।" + +msgid "Enter a valid UUID." +msgstr "उपयुक्त UUID राख्नु होस ।" + +msgid "Enter a valid JSON." +msgstr "" + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr ":" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "(लुकेका %(name)s) %(error)s" + +msgid "ManagementForm data is missing or has been tampered with" +msgstr "म्यानेजमेन्ट फारम डाटा चलाइएको वा नभरेको पाइयो ।" + +#, python-format +msgid "Please submit %d or fewer forms." +msgid_plural "Please submit %d or fewer forms." +msgstr[0] "कृपया %d अथवा सो भन्दा थोरै फारम बुझाउनु होस ।" +msgstr[1] "कृपया %d अथवा सो भन्दा थोरै फारमहरु बुझाउनु होस ।" + +#, python-format +msgid "Please submit %d or more forms." +msgid_plural "Please submit %d or more forms." +msgstr[0] "कृपया %d अथवा सो भन्दा धेरै फारम बुझाउनु होस ।" +msgstr[1] "कृपया %d अथवा सो भन्दा धेरै फारमहरु बुझाउनु होस ।" + +msgid "Order" +msgstr "क्रम" + +msgid "Delete" +msgstr "मेट्नुहोस" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "कृपया %(field)s का लागि दोहोरिइका तथ्याङ्कहरु सच्याउनुहोस ।" + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "कृपया %(field)s का लागि दोहोरिइका तथ्याङ्कहरु नौलो तथ्याङ्क सहित सच्याउनुहोस ।" + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"कृपया %(field_name)s का लागि दोहोरिइका तथ्याङ्कहरु सच्याउनुहोस जसमा " +"%(date_field)sको %(lookup)s नौलो हुनुपर्दछ ।" + +msgid "Please correct the duplicate values below." +msgstr "कृपया तलका दोहोरिइका मानहरु सच्याउनुहोस ।" + +msgid "The inline value did not match the parent instance." +msgstr "" + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "उपयुक्त विकल्प छान्नुहोस । छानिएको विकल्प प्रस्तावित विकल्प होइन ।" + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "" + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" + +msgid "Clear" +msgstr "सबै खाली गर्नु होस ।" + +msgid "Currently" +msgstr "अहिले" + +msgid "Change" +msgstr "फेर्नुहोस" + +msgid "Unknown" +msgstr "अज्ञात" + +msgid "Yes" +msgstr "हुन्छ" + +msgid "No" +msgstr "होइन" + +#. Translators: Please do not add spaces around commas. +msgid "yes,no,maybe" +msgstr "हो,होइन,सायद" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)d बाइट" +msgstr[1] "%(size)d बाइटहरु" + +#, python-format +msgid "%s KB" +msgstr "%s किलोबाइट" + +#, python-format +msgid "%s MB" +msgstr "%s मेगाबाइट" + +#, python-format +msgid "%s GB" +msgstr "%s गिगाबाइट" + +#, python-format +msgid "%s TB" +msgstr "%s टेराबाइट" + +#, python-format +msgid "%s PB" +msgstr "%s पिटाबाइट" + +msgid "p.m." +msgstr "p.m." + +msgid "a.m." +msgstr "a.m." + +msgid "PM" +msgstr "PM" + +msgid "AM" +msgstr "AM" + +msgid "midnight" +msgstr "मध्यरात" + +msgid "noon" +msgstr "मध्यान्ह" + +msgid "Monday" +msgstr "सोमवार" + +msgid "Tuesday" +msgstr "मंगलवार" + +msgid "Wednesday" +msgstr "बुधवार" + +msgid "Thursday" +msgstr "बिहीवार" + +msgid "Friday" +msgstr "शुक्रवार" + +msgid "Saturday" +msgstr "शनिवार" + +msgid "Sunday" +msgstr "आइतवार" + +msgid "Mon" +msgstr "सोम" + +msgid "Tue" +msgstr "मंगल" + +msgid "Wed" +msgstr "बुध" + +msgid "Thu" +msgstr "बिहि" + +msgid "Fri" +msgstr "शुक्र" + +msgid "Sat" +msgstr "शनि" + +msgid "Sun" +msgstr "आइत" + +msgid "January" +msgstr "जनवरी" + +msgid "February" +msgstr "फेब्रुअरी" + +msgid "March" +msgstr "मार्च" + +msgid "April" +msgstr "अप्रिल" + +msgid "May" +msgstr "मई" + +msgid "June" +msgstr "जुन" + +msgid "July" +msgstr "जुलै" + +msgid "August" +msgstr "अगस्त" + +msgid "September" +msgstr "सेप्टेम्बर" + +msgid "October" +msgstr "अक्टुवर" + +msgid "November" +msgstr "नभम्वर" + +msgid "December" +msgstr "डिसम्वर" + +msgid "jan" +msgstr "जनवरी" + +msgid "feb" +msgstr "फेब्रुअरी" + +msgid "mar" +msgstr "मार्च" + +msgid "apr" +msgstr "अप्रिल" + +msgid "may" +msgstr "मई" + +msgid "jun" +msgstr "जुन" + +msgid "jul" +msgstr "जुलै" + +msgid "aug" +msgstr "अग्सत" + +msgid "sep" +msgstr "सेप्तेम्बर" + +msgid "oct" +msgstr "अक्टुवर" + +msgid "nov" +msgstr "नभम्वर" + +msgid "dec" +msgstr "डिसम्वर" + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "जनवरी" + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "फेब्रुअरी" + +msgctxt "abbrev. month" +msgid "March" +msgstr "मार्च" + +msgctxt "abbrev. month" +msgid "April" +msgstr "अप्रिल" + +msgctxt "abbrev. month" +msgid "May" +msgstr "मई" + +msgctxt "abbrev. month" +msgid "June" +msgstr "जुन" + +msgctxt "abbrev. month" +msgid "July" +msgstr "जुलै" + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "अगस्त" + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "सेप्तेम्बर" + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "अक्टुवर" + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "नभम्वर" + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "डिसम्वर" + +msgctxt "alt. month" +msgid "January" +msgstr "जनवरी" + +msgctxt "alt. month" +msgid "February" +msgstr "फेब्रुअरी" + +msgctxt "alt. month" +msgid "March" +msgstr "मार्च" + +msgctxt "alt. month" +msgid "April" +msgstr "अप्रिल" + +msgctxt "alt. month" +msgid "May" +msgstr "मई" + +msgctxt "alt. month" +msgid "June" +msgstr "जुन" + +msgctxt "alt. month" +msgid "July" +msgstr "जुलै" + +msgctxt "alt. month" +msgid "August" +msgstr "अगस्त" + +msgctxt "alt. month" +msgid "September" +msgstr "सेप्टेम्बर" + +msgctxt "alt. month" +msgid "October" +msgstr "अक्टुवर" + +msgctxt "alt. month" +msgid "November" +msgstr "नभम्वर" + +msgctxt "alt. month" +msgid "December" +msgstr "डिसम्वर" + +msgid "This is not a valid IPv6 address." +msgstr "यो उपयुक्त IPv6 ठेगाना होइन ।" + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "%(truncated_text)s…" + +msgid "or" +msgstr "अथवा" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr "," + +#, python-format +msgid "%d year" +msgid_plural "%d years" +msgstr[0] "%d वर्ष" +msgstr[1] "%d वर्षहरु" + +#, python-format +msgid "%d month" +msgid_plural "%d months" +msgstr[0] "%d महिना" +msgstr[1] "%d महिनाहरु" + +#, python-format +msgid "%d week" +msgid_plural "%d weeks" +msgstr[0] "%d सप्ताह" +msgstr[1] "%d सप्ताहहरु" + +#, python-format +msgid "%d day" +msgid_plural "%d days" +msgstr[0] "%d दिन" +msgstr[1] "%d दिनहरु" + +#, python-format +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "%d घण्टा" +msgstr[1] "%d घण्टाहरु" + +#, python-format +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "%d मिनट" +msgstr[1] "%d मिनटहरु" + +msgid "Forbidden" +msgstr "निषेधित" + +msgid "CSRF verification failed. Request aborted." +msgstr "CSRF प्रमाणीकरण भएन । अनुरोध विफल ।" + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your Web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" + +msgid "More information is available with DEBUG=True." +msgstr "DEBUG=True ले ज्यादा सुचना प्रदान गर्दछ ।" + +msgid "No year specified" +msgstr "साल तोकिएको छैन ।" + +msgid "Date out of range" +msgstr "मिति मिलेन ।" + +msgid "No month specified" +msgstr "महिना तोकिएको छैन ।" + +msgid "No day specified" +msgstr "दिन तोकिएको छैन ।" + +msgid "No week specified" +msgstr "साता तोकिएको छैन ।" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "%(verbose_name_plural)s उपलब्ध छैन ।" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" +"%(class_name)s.allow_future 'False' हुनाले आगामी %(verbose_name_plural)s उपलब्ध " +"छैन ।" + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "%(verbose_name)s भेटिएन ।" + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "" + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "रद्द पृष्ठ (%(page_number)s): %(message)s" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "" + +msgid "Directory indexes are not allowed here." +msgstr "डाइरेक्टरी इन्डेक्सहरु यहाँ अनुमति छैन ।" + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "" + +#, python-format +msgid "Index of %(directory)s" +msgstr "%(directory)s को सूची" + +msgid "Django: the Web framework for perfectionists with deadlines." +msgstr "ज्याङ्गो : वेब साइट र एप्लिकेसन बनाउन सहयोगी औजार " + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" +"ज्याङ्गो %(version)s को परिवर्तन तथा विशेषता यहाँ हेर्नु होस" + +msgid "The install worked successfully! Congratulations!" +msgstr "बधाई छ । स्थापना भएको छ ।" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not configured any " +"URLs." +msgstr "" + +msgid "Django Documentation" +msgstr "ज्याङ्गो दस्तावेज ।" + +msgid "Topics, references, & how-to’s" +msgstr "" + +msgid "Tutorial: A Polling App" +msgstr "मतदान एप उदाहरण " + +msgid "Get started with Django" +msgstr "ज्याङ्गो सुरु गर्नु होस ।" + +msgid "Django Community" +msgstr "ज्याङ्गो समुदाय" + +msgid "Connect, get help, or contribute" +msgstr "सहयोग अथवा योगदान गरी जोडिनु होस" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/nl/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/conf/locale/nl/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..7bb3da3fc29c38d1954a8d4d104d5017521d4f23 GIT binary patch literal 28191 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/nl/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/conf/locale/nl/LC_MESSAGES/django.po new file mode 100644 index 0000000000..85fe2403ae --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/nl/LC_MESSAGES/django.po @@ -0,0 +1,1356 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Bas Peschier , 2011,2013 +# Blue , 2011-2012 +# Bouke Haarsma , 2013 +# Claude Paroz , 2014 +# Erik Romijn , 2013 +# Evelijn Saaltink , 2016 +# Harro van der Klauw , 2011-2012 +# Ilja Maas , 2015 +# Jannis Leidel , 2011 +# 6a27f10aef159701c7a5ff07f0fb0a78_05545ed , 2011-2012,2014 +# Michiel Overtoom , 2014 +# Meteor0id, 2019-2020 +# 8de006b1b0894aab6aef71979dcd8bd6_5c6b207 , 2014-2015 +# Tino de Bruijn , 2013 +# Tonnes , 2017,2019-2020,2022-2024 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-05-22 11:46-0300\n" +"PO-Revision-Date: 2024-08-07 06:49+0000\n" +"Last-Translator: Tonnes , 2017,2019-2020,2022-2024\n" +"Language-Team: Dutch (http://app.transifex.com/django/django/language/nl/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: nl\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Afrikaans" +msgstr "Afrikaans" + +msgid "Arabic" +msgstr "Arabisch" + +msgid "Algerian Arabic" +msgstr "Algerijns Arabisch" + +msgid "Asturian" +msgstr "Asturisch" + +msgid "Azerbaijani" +msgstr "Azerbeidzjaans" + +msgid "Bulgarian" +msgstr "Bulgaars" + +msgid "Belarusian" +msgstr "Wit-Russisch" + +msgid "Bengali" +msgstr "Bengaals" + +msgid "Breton" +msgstr "Bretons" + +msgid "Bosnian" +msgstr "Bosnisch" + +msgid "Catalan" +msgstr "Catalaans" + +msgid "Central Kurdish (Sorani)" +msgstr "Centraal-Koerdisch (Sorani)" + +msgid "Czech" +msgstr "Tsjechisch" + +msgid "Welsh" +msgstr "Welsh" + +msgid "Danish" +msgstr "Deens" + +msgid "German" +msgstr "Duits" + +msgid "Lower Sorbian" +msgstr "Nedersorbisch" + +msgid "Greek" +msgstr "Grieks" + +msgid "English" +msgstr "Engels" + +msgid "Australian English" +msgstr "Australisch-Engels" + +msgid "British English" +msgstr "Brits-Engels" + +msgid "Esperanto" +msgstr "Esperanto" + +msgid "Spanish" +msgstr "Spaans" + +msgid "Argentinian Spanish" +msgstr "Argentijns Spaans" + +msgid "Colombian Spanish" +msgstr "Colombiaans Spaans" + +msgid "Mexican Spanish" +msgstr "Mexicaans Spaans" + +msgid "Nicaraguan Spanish" +msgstr "Nicaraguaans Spaans" + +msgid "Venezuelan Spanish" +msgstr "Venezolaans Spaans" + +msgid "Estonian" +msgstr "Ests" + +msgid "Basque" +msgstr "Baskisch" + +msgid "Persian" +msgstr "Perzisch" + +msgid "Finnish" +msgstr "Fins" + +msgid "French" +msgstr "Frans" + +msgid "Frisian" +msgstr "Fries" + +msgid "Irish" +msgstr "Iers" + +msgid "Scottish Gaelic" +msgstr "Schots-Gaelisch" + +msgid "Galician" +msgstr "Galicisch" + +msgid "Hebrew" +msgstr "Hebreeuws" + +msgid "Hindi" +msgstr "Hindi" + +msgid "Croatian" +msgstr "Kroatisch" + +msgid "Upper Sorbian" +msgstr "Oppersorbisch" + +msgid "Hungarian" +msgstr "Hongaars" + +msgid "Armenian" +msgstr "Armeens" + +msgid "Interlingua" +msgstr "Interlingua" + +msgid "Indonesian" +msgstr "Indonesisch" + +msgid "Igbo" +msgstr "Igbo" + +msgid "Ido" +msgstr "Ido" + +msgid "Icelandic" +msgstr "IJslands" + +msgid "Italian" +msgstr "Italiaans" + +msgid "Japanese" +msgstr "Japans" + +msgid "Georgian" +msgstr "Georgisch" + +msgid "Kabyle" +msgstr "Kabylisch" + +msgid "Kazakh" +msgstr "Kazachs" + +msgid "Khmer" +msgstr "Khmer" + +msgid "Kannada" +msgstr "Kannada" + +msgid "Korean" +msgstr "Koreaans" + +msgid "Kyrgyz" +msgstr "Kirgizisch" + +msgid "Luxembourgish" +msgstr "Luxemburgs" + +msgid "Lithuanian" +msgstr "Litouws" + +msgid "Latvian" +msgstr "Lets" + +msgid "Macedonian" +msgstr "Macedonisch" + +msgid "Malayalam" +msgstr "Malayalam" + +msgid "Mongolian" +msgstr "Mongools" + +msgid "Marathi" +msgstr "Marathi" + +msgid "Malay" +msgstr "Maleis" + +msgid "Burmese" +msgstr "Birmaans" + +msgid "Norwegian Bokmål" +msgstr "Noors Bokmål" + +msgid "Nepali" +msgstr "Nepalees" + +msgid "Dutch" +msgstr "Nederlands" + +msgid "Norwegian Nynorsk" +msgstr "Noors Nynorsk" + +msgid "Ossetic" +msgstr "Ossetisch" + +msgid "Punjabi" +msgstr "Punjabi" + +msgid "Polish" +msgstr "Pools" + +msgid "Portuguese" +msgstr "Portugees" + +msgid "Brazilian Portuguese" +msgstr "Braziliaans Portugees" + +msgid "Romanian" +msgstr "Roemeens" + +msgid "Russian" +msgstr "Russisch" + +msgid "Slovak" +msgstr "Slovaaks" + +msgid "Slovenian" +msgstr "Sloveens" + +msgid "Albanian" +msgstr "Albanisch" + +msgid "Serbian" +msgstr "Servisch" + +msgid "Serbian Latin" +msgstr "Servisch Latijn" + +msgid "Swedish" +msgstr "Zweeds" + +msgid "Swahili" +msgstr "Swahili" + +msgid "Tamil" +msgstr "Tamil" + +msgid "Telugu" +msgstr "Telegu" + +msgid "Tajik" +msgstr "Tadzjieks" + +msgid "Thai" +msgstr "Thai" + +msgid "Turkmen" +msgstr "Turkmeens" + +msgid "Turkish" +msgstr "Turks" + +msgid "Tatar" +msgstr "Tataars" + +msgid "Udmurt" +msgstr "Oedmoerts" + +msgid "Uyghur" +msgstr "Oeigoers" + +msgid "Ukrainian" +msgstr "Oekraïens" + +msgid "Urdu" +msgstr "Urdu" + +msgid "Uzbek" +msgstr "Oezbeeks" + +msgid "Vietnamese" +msgstr "Vietnamees" + +msgid "Simplified Chinese" +msgstr "Vereenvoudigd Chinees" + +msgid "Traditional Chinese" +msgstr "Traditioneel Chinees" + +msgid "Messages" +msgstr "Berichten" + +msgid "Site Maps" +msgstr "Sitemaps" + +msgid "Static Files" +msgstr "Statische bestanden" + +msgid "Syndication" +msgstr "Syndicatie" + +#. Translators: String used to replace omitted page numbers in elided page +#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10]. +msgid "…" +msgstr "…" + +msgid "That page number is not an integer" +msgstr "Dat paginanummer is geen geheel getal" + +msgid "That page number is less than 1" +msgstr "Dat paginanummer is kleiner dan 1" + +msgid "That page contains no results" +msgstr "Die pagina bevat geen resultaten" + +msgid "Enter a valid value." +msgstr "Voer een geldige waarde in." + +msgid "Enter a valid domain name." +msgstr "Voer een geldige domeinnaam in." + +msgid "Enter a valid URL." +msgstr "Voer een geldige URL in." + +msgid "Enter a valid integer." +msgstr "Voer een geldig geheel getal in." + +msgid "Enter a valid email address." +msgstr "Voer een geldig e-mailadres in." + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" +"Voer een geldige ‘slug’ in, bestaande uit letters, cijfers, liggende " +"streepjes en verbindingsstreepjes." + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" +"Voer een geldige ‘slug’ in, bestaande uit Unicode-letters, cijfers, liggende " +"streepjes en verbindingsstreepjes." + +#, python-format +msgid "Enter a valid %(protocol)s address." +msgstr "Voer een geldig %(protocol)s-adres in." + +msgid "IPv4" +msgstr "IPv4" + +msgid "IPv6" +msgstr "IPv6" + +msgid "IPv4 or IPv6" +msgstr "IPv4- of IPv6" + +msgid "Enter only digits separated by commas." +msgstr "Voer alleen cijfers in, gescheiden door komma's." + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "" +"Zorg ervoor dat deze waarde gelijk is aan %(limit_value)s (het is nu " +"%(show_value)s)." + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "Zorg ervoor dat deze waarde hoogstens %(limit_value)s is." + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "Zorg ervoor dat deze waarde minstens %(limit_value)s is." + +#, python-format +msgid "Ensure this value is a multiple of step size %(limit_value)s." +msgstr "" +"Zorg ervoor dat deze waarde een veelvoud is van stapgrootte %(limit_value)s." + +#, python-format +msgid "" +"Ensure this value is a multiple of step size %(limit_value)s, starting from " +"%(offset)s, e.g. %(offset)s, %(valid_value1)s, %(valid_value2)s, and so on." +msgstr "" +"Zorg dat deze waarde een veelvoud is van stapgrootte %(limit_value)s, " +"beginnend bij %(offset)s, bv. %(offset)s, %(valid_value1)s, " +"%(valid_value2)s, enzovoort." + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Zorg dat deze waarde ten minste %(limit_value)d teken bevat (het zijn er nu " +"%(show_value)d)." +msgstr[1] "" +"Zorg dat deze waarde ten minste %(limit_value)d tekens bevat (het zijn er nu " +"%(show_value)d)." + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Zorg dat deze waarde niet meer dan %(limit_value)d teken bevat (het zijn er " +"nu %(show_value)d)." +msgstr[1] "" +"Zorg dat deze waarde niet meer dan %(limit_value)d tekens bevat (het zijn er " +"nu %(show_value)d)." + +msgid "Enter a number." +msgstr "Voer een getal in." + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "Zorg dat er niet meer dan %(max)s cijfer is." +msgstr[1] "Zorg dat er niet meer dan %(max)s cijfers zijn." + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "Zorg dat er niet meer dan %(max)s cijfer achter de komma staat." +msgstr[1] "Zorg dat er niet meer dan %(max)s cijfers achter de komma staan." + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "Zorg dat er niet meer dan %(max)s cijfer voor de komma staat." +msgstr[1] "Zorg dat er niet meer dan %(max)s cijfers voor de komma staan." + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" +"Bestandsextensie ‘%(extension)s’ is niet toegestaan. Toegestane extensies " +"zijn: ‘%(allowed_extensions)s’." + +msgid "Null characters are not allowed." +msgstr "Null-tekens zijn niet toegestaan." + +msgid "and" +msgstr "en" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "%(model_name)s met deze %(field_labels)s bestaat al." + +#, python-format +msgid "Constraint “%(name)s” is violated." +msgstr "Beperking ‘%(name)s’ is geschonden." + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "Waarde %(value)r is geen geldige keuze." + +msgid "This field cannot be null." +msgstr "Dit veld mag niet leeg zijn." + +msgid "This field cannot be blank." +msgstr "Dit veld kan niet leeg zijn" + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "Er bestaat al een %(model_name)s met eenzelfde %(field_label)s." + +#. Translators: The 'lookup_type' is one of 'date', 'year' or +#. 'month'. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" +"%(field_label)s moet uniek zijn voor %(date_field_label)s %(lookup_type)s." + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "Veld van type: %(field_type)s" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "Waarde van ‘%(value)s’ moet True of False zijn." + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "Waarde van ‘%(value)s’ moet True, False of None zijn." + +msgid "Boolean (Either True or False)" +msgstr "Boolean (True of False)" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "Tekenreeks (hooguit %(max_length)s)" + +msgid "String (unlimited)" +msgstr "Tekenreeks (onbeperkt)" + +msgid "Comma-separated integers" +msgstr "Komma-gescheiden gehele getallen" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" +"Waarde van ‘%(value)s’ heeft een ongeldige datumnotatie. De juiste notatie " +"is YYYY-MM-DD." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" +"Waarde van ‘%(value)s’ heeft de juiste notatie (YYYY-MM-DD), maar het is een " +"ongeldige datum." + +msgid "Date (without time)" +msgstr "Datum (zonder tijd)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" +"Waarde van ‘%(value)s’ heeft een ongeldige notatie. De juiste notatie is " +"YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ]." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" +"Waarde van ‘%(value)s’ heeft de juiste notatie (YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ]), maar het is een ongeldige datum/tijd." + +msgid "Date (with time)" +msgstr "Datum (met tijd)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "Waarde van ‘%(value)s’ moet een decimaal getal zijn." + +msgid "Decimal number" +msgstr "Decimaal getal" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" +"Waarde van ‘%(value)s’ heeft een ongeldige notatie. De juiste notatie is " +"[DD] [[HH:]MM:]ss[.uuuuuu]." + +msgid "Duration" +msgstr "Tijdsduur" + +msgid "Email address" +msgstr "E-mailadres" + +msgid "File path" +msgstr "Bestandspad" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "Waarde van ‘%(value)s’ moet een drijvende-kommagetal zijn." + +msgid "Floating point number" +msgstr "Drijvende-kommagetal" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "Waarde van ‘%(value)s’ moet een geheel getal zijn." + +msgid "Integer" +msgstr "Geheel getal" + +msgid "Big (8 byte) integer" +msgstr "Groot (8 byte) geheel getal" + +msgid "Small integer" +msgstr "Klein geheel getal" + +msgid "IPv4 address" +msgstr "IPv4-adres" + +msgid "IP address" +msgstr "IP-adres" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "Waarde van ‘%(value)s’ moet None, True of False zijn." + +msgid "Boolean (Either True, False or None)" +msgstr "Boolean (True, False of None)" + +msgid "Positive big integer" +msgstr "Positief groot geheel getal" + +msgid "Positive integer" +msgstr "Positief geheel getal" + +msgid "Positive small integer" +msgstr "Postitief klein geheel getal" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "Slug (max. lengte %(max_length)s)" + +msgid "Text" +msgstr "Tekst" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" +"Waarde van ‘%(value)s’ heeft een ongeldige notatie. De juiste notatie is HH:" +"MM[:ss[.uuuuuu]]." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" +"Waarde van ‘%(value)s’ heeft de juiste notatie (HH:MM[:ss[.uuuuuu]]), maar " +"het is een ongeldige tijd." + +msgid "Time" +msgstr "Tijd" + +msgid "URL" +msgstr "URL" + +msgid "Raw binary data" +msgstr "Onbewerkte binaire gegevens" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "‘%(value)s’ is geen geldige UUID." + +msgid "Universally unique identifier" +msgstr "Universally unique identifier" + +msgid "File" +msgstr "Bestand" + +msgid "Image" +msgstr "Afbeelding" + +msgid "A JSON object" +msgstr "Een JSON-object" + +msgid "Value must be valid JSON." +msgstr "Waarde moet geldige JSON zijn." + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "%(model)s-instantie met %(field)s %(value)r bestaat niet." + +msgid "Foreign Key (type determined by related field)" +msgstr "Refererende sleutel (type wordt bepaald door gerelateerde veld)" + +msgid "One-to-one relationship" +msgstr "Een-op-een-relatie" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "%(from)s-%(to)s-relatie" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "%(from)s-%(to)s-relaties" + +msgid "Many-to-many relationship" +msgstr "Veel-op-veel-relatie" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr ":?.!" + +msgid "This field is required." +msgstr "Dit veld is verplicht." + +msgid "Enter a whole number." +msgstr "Voer een geheel getal in." + +msgid "Enter a valid date." +msgstr "Voer een geldige datum in." + +msgid "Enter a valid time." +msgstr "Voer een geldige tijd in." + +msgid "Enter a valid date/time." +msgstr "Voer een geldige datum/tijd in." + +msgid "Enter a valid duration." +msgstr "Voer een geldige tijdsduur in." + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "Het aantal dagen moet tussen {min_days} en {max_days} liggen." + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "" +"Er is geen bestand verstuurd. Controleer het coderingstype op het formulier." + +msgid "No file was submitted." +msgstr "Er is geen bestand verstuurd." + +msgid "The submitted file is empty." +msgstr "Het verstuurde bestand is leeg." + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" +"Zorg dat deze bestandsnaam niet meer dan %(max)d teken bevat (het zijn er nu " +"%(length)d)." +msgstr[1] "" +"Zorg dat deze bestandsnaam niet meer dan %(max)d tekens bevat (het zijn er " +"nu %(length)d)." + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "Upload een bestand of vink het vakje Wissen aan, niet allebei." + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" +"Upload een geldige afbeelding. Het geüploade bestand is geen of een " +"beschadigde afbeelding." + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "Selecteer een geldige keuze. %(value)s is geen beschikbare keuze." + +msgid "Enter a list of values." +msgstr "Voer een lijst met waarden in." + +msgid "Enter a complete value." +msgstr "Voer een volledige waarde in." + +msgid "Enter a valid UUID." +msgstr "Voer een geldige UUID in." + +msgid "Enter a valid JSON." +msgstr "Voer een geldige JSON in." + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr ":" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "(Verborgen veld %(name)s) %(error)s" + +#, python-format +msgid "" +"ManagementForm data is missing or has been tampered with. Missing fields: " +"%(field_names)s. You may need to file a bug report if the issue persists." +msgstr "" +"ManagementForm-gegevens ontbreken of er is mee geknoeid. Ontbrekende velden: " +"%(field_names)s. Mogelijk dient u een bug te melden als het probleem " +"aanhoudt." + +#, python-format +msgid "Please submit at most %(num)d form." +msgid_plural "Please submit at most %(num)d forms." +msgstr[0] "Verstuur maximaal %(num)d formulier." +msgstr[1] "Verstuur maximaal %(num)d formulieren." + +#, python-format +msgid "Please submit at least %(num)d form." +msgid_plural "Please submit at least %(num)d forms." +msgstr[0] "Verstuur minimaal %(num)d formulier." +msgstr[1] "Verstuur minimaal %(num)d formulieren." + +msgid "Order" +msgstr "Volgorde" + +msgid "Delete" +msgstr "Verwijderen" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "Corrigeer de dubbele gegevens voor %(field)s." + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "Corrigeer de dubbele gegevens voor %(field)s, dat uniek moet zijn." + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"Corrigeer de dubbele gegevens voor %(field_name)s, dat uniek moet zijn voor " +"de %(lookup)s in %(date_field)s." + +msgid "Please correct the duplicate values below." +msgstr "Corrigeer de dubbele waarden hieronder." + +msgid "The inline value did not match the parent instance." +msgstr "De inline waarde komt niet overeen met de bovenliggende instantie." + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "Selecteer een geldige keuze. Deze keuze is niet beschikbaar." + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "‘%(pk)s’ is geen geldige waarde." + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" +"%(datetime)s kon niet worden geïnterpreteerd in tijdzone " +"%(current_timezone)s; mogelijk is deze dubbelzinnig of bestaat deze niet." + +msgid "Clear" +msgstr "Wissen" + +msgid "Currently" +msgstr "Huidige" + +msgid "Change" +msgstr "Wijzigen" + +msgid "Unknown" +msgstr "Onbekend" + +msgid "Yes" +msgstr "Ja" + +msgid "No" +msgstr "Nee" + +#. Translators: Please do not add spaces around commas. +msgid "yes,no,maybe" +msgstr "ja,nee,misschien" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)d byte" +msgstr[1] "%(size)d bytes" + +#, python-format +msgid "%s KB" +msgstr "%s KB" + +#, python-format +msgid "%s MB" +msgstr "%s MB" + +#, python-format +msgid "%s GB" +msgstr "%s GB" + +#, python-format +msgid "%s TB" +msgstr "%s TB" + +#, python-format +msgid "%s PB" +msgstr "%s PB" + +msgid "p.m." +msgstr "p.m." + +msgid "a.m." +msgstr "a.m." + +msgid "PM" +msgstr "PM" + +msgid "AM" +msgstr "AM" + +msgid "midnight" +msgstr "middernacht" + +msgid "noon" +msgstr "middag" + +msgid "Monday" +msgstr "maandag" + +msgid "Tuesday" +msgstr "dinsdag" + +msgid "Wednesday" +msgstr "woensdag" + +msgid "Thursday" +msgstr "donderdag" + +msgid "Friday" +msgstr "vrijdag" + +msgid "Saturday" +msgstr "zaterdag" + +msgid "Sunday" +msgstr "zondag" + +msgid "Mon" +msgstr "ma" + +msgid "Tue" +msgstr "di" + +msgid "Wed" +msgstr "wo" + +msgid "Thu" +msgstr "do" + +msgid "Fri" +msgstr "vr" + +msgid "Sat" +msgstr "za" + +msgid "Sun" +msgstr "zo" + +msgid "January" +msgstr "januari" + +msgid "February" +msgstr "februari" + +msgid "March" +msgstr "maart" + +msgid "April" +msgstr "april" + +msgid "May" +msgstr "mei" + +msgid "June" +msgstr "juni" + +msgid "July" +msgstr "juli" + +msgid "August" +msgstr "augustus" + +msgid "September" +msgstr "september" + +msgid "October" +msgstr "oktober" + +msgid "November" +msgstr "november" + +msgid "December" +msgstr "december" + +msgid "jan" +msgstr "jan" + +msgid "feb" +msgstr "feb" + +msgid "mar" +msgstr "mrt" + +msgid "apr" +msgstr "apr" + +msgid "may" +msgstr "mei" + +msgid "jun" +msgstr "jun" + +msgid "jul" +msgstr "jul" + +msgid "aug" +msgstr "aug" + +msgid "sep" +msgstr "sep" + +msgid "oct" +msgstr "okt" + +msgid "nov" +msgstr "nov" + +msgid "dec" +msgstr "dec" + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "jan" + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "feb" + +msgctxt "abbrev. month" +msgid "March" +msgstr "mrt" + +msgctxt "abbrev. month" +msgid "April" +msgstr "apr" + +msgctxt "abbrev. month" +msgid "May" +msgstr "mei" + +msgctxt "abbrev. month" +msgid "June" +msgstr "jun" + +msgctxt "abbrev. month" +msgid "July" +msgstr "jul" + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "aug" + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "sep" + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "okt" + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "nov" + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "dec" + +msgctxt "alt. month" +msgid "January" +msgstr "januari" + +msgctxt "alt. month" +msgid "February" +msgstr "februari" + +msgctxt "alt. month" +msgid "March" +msgstr "maart" + +msgctxt "alt. month" +msgid "April" +msgstr "april" + +msgctxt "alt. month" +msgid "May" +msgstr "mei" + +msgctxt "alt. month" +msgid "June" +msgstr "juni" + +msgctxt "alt. month" +msgid "July" +msgstr "juli" + +msgctxt "alt. month" +msgid "August" +msgstr "augustus" + +msgctxt "alt. month" +msgid "September" +msgstr "september" + +msgctxt "alt. month" +msgid "October" +msgstr "oktober" + +msgctxt "alt. month" +msgid "November" +msgstr "november" + +msgctxt "alt. month" +msgid "December" +msgstr "december" + +msgid "This is not a valid IPv6 address." +msgstr "Dit is geen geldig IPv6-adres." + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "%(truncated_text)s…" + +msgid "or" +msgstr "of" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr ", " + +#, python-format +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "%(num)d jaar" +msgstr[1] "%(num)d jaar" + +#, python-format +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "%(num)d maand" +msgstr[1] "%(num)d maanden" + +#, python-format +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "%(num)d week" +msgstr[1] "%(num)d weken" + +#, python-format +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "%(num)d dag" +msgstr[1] "%(num)d dagen" + +#, python-format +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "%(num)d uur" +msgstr[1] "%(num)d uur" + +#, python-format +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "%(num)d minuut" +msgstr[1] "%(num)d minuten" + +msgid "Forbidden" +msgstr "Verboden" + +msgid "CSRF verification failed. Request aborted." +msgstr "CSRF-verificatie mislukt. Aanvraag afgebroken." + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" +"U ziet deze melding, omdat deze HTTPS-website vereist dat uw webbrowser een " +"‘Referer header’ meestuurt, maar deze ontbreekt. Deze header is om " +"veiligheidsredenen vereist om er zeker van te zijn dat uw browser niet door " +"derden wordt gekaapt." + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" +"Als u ‘Referer’-headers in uw browser hebt uitgeschakeld, schakel deze dan " +"weer in, op zijn minst voor deze website, of voor HTTPS-verbindingen, of " +"voor ‘same-origin’-aanvragen." + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" +"Als u de tag gebruikt of de " +"header ‘Referrer-Policy: no-referrer’ opneemt, verwijder deze dan. De CSRF-" +"bescherming vereist de ‘Referer’-header voor strenge referer-controle. Als u " +"bezorgd bent om privacy, gebruik dan alternatieven zoals voor koppelingen naar websites van derden." + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" +"U ziet deze melding, omdat deze website vereist dat een CSRF-cookie wordt " +"meegestuurd bij het verzenden van formulieren. Dit cookie is om " +"veiligheidsredenen vereist om er zeker van te zijn dat uw browser niet door " +"derden wordt gekaapt." + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" +"Als u cookies in uw webbrowser hebt uitgeschakeld, schakel deze dan weer in, " +"op zijn minst voor deze website, of voor ‘same-origin’-aanvragen." + +msgid "More information is available with DEBUG=True." +msgstr "Meer informatie is beschikbaar met DEBUG=True." + +msgid "No year specified" +msgstr "Geen jaar opgegeven" + +msgid "Date out of range" +msgstr "Datum buiten bereik" + +msgid "No month specified" +msgstr "Geen maand opgegeven" + +msgid "No day specified" +msgstr "Geen dag opgegeven" + +msgid "No week specified" +msgstr "Geen week opgegeven" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "Geen %(verbose_name_plural)s beschikbaar" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" +"Geen toekomstige %(verbose_name_plural)s beschikbaar, omdat %(class_name)s." +"allow_future de waarde False (Onwaar) heeft." + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "Ongeldige datumtekst ‘%(datestr)s’ op basis van notatie ‘%(format)s’" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "Geen %(verbose_name)s gevonden die voldoet aan de query" + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "" +"Pagina is niet ‘last’ en kan ook niet naar een geheel getal worden " +"geconverteerd." + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "Ongeldige pagina (%(page_number)s): %(message)s" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "Lege lijst en ‘%(class_name)s.allow_empty’ is False." + +msgid "Directory indexes are not allowed here." +msgstr "Directoryindexen zijn hier niet toegestaan." + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "‘%(path)s’ bestaat niet" + +#, python-format +msgid "Index of %(directory)s" +msgstr "Index van %(directory)s" + +msgid "The install worked successfully! Congratulations!" +msgstr "De installatie is gelukt! Gefeliciteerd!" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" +"Uitgaveopmerkingen voor Django " +"%(version)s weergeven" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not " +"configured any URLs." +msgstr "" +"U ziet deze pagina, omdat uw instellingenbestand DEBUG=True bevat en u geen URL's hebt geconfigureerd." + +msgid "Django Documentation" +msgstr "Django-documentatie" + +msgid "Topics, references, & how-to’s" +msgstr "Onderwerpen, referenties en instructies" + +msgid "Tutorial: A Polling App" +msgstr "Handleiding: een app voor peilingen" + +msgid "Get started with Django" +msgstr "Beginnen met Django" + +msgid "Django Community" +msgstr "Django-gemeenschap" + +msgid "Connect, get help, or contribute" +msgstr "Contact met anderen, hulp verkrijgen of bijdragen" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/nl/__init__.py b/venv/lib/python3.12/site-packages/django/conf/locale/nl/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/nl/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/nl/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a76b4e8ec1b5619a068ba1516dcd73b6c8389fcc GIT binary patch literal 198 zcmX@j%ge<81o5sX(m?cM5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!O4ZNE&rQ|OP0Yy6 zFHO;RNiEZNN=(kybEFQ_cZ$j>v@Gc?jK&MZmQEdVM^ zOiwM=Pssu+OwP|s)6dCIPRvQw&&$z|kI&4@EQycTE2#X%VUwGmQks)$SHudml@W-G PL5z>gjEsy$%s>_Z#)CA4 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/nl/__pycache__/formats.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/nl/__pycache__/formats.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f9524b216caefe9526abb40044bec952a3722b73 GIT binary patch literal 1367 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Ð7hk_fD@{_d8u! z?>pJu=5S2IL9TZdwoceE+Ja<^OIGw+q1&4BMWgYed8vs}!?mUbMl!1t_wM0;1QC=O zQymMNMvi;UTeEjhOFOhqcNu1s%7zd&c5dsO48@NZ-RYhj0NvJEdmOm7w>wI?M#O}1 z?sw9NTAp|M#K=x0-xKzDI#l1gW&`bQQXPTwQqVY%_Z`}>M^F!6lUwZT0{+!I>JtmR zF}N7)MyWKWnXv~XS@E%zd1ePR8f#<~F8rlXBibfYZtA8~Tn1vxV3Zeng?}(%K4A@^ zOv;KZW!bqJ=EmHz@dT%fg=sp55hPE!W+6RVy)WZ&*I z1}>YESch}gmi!nFwtTtGY3+Dqi~VP89cr_&ZP}iQwR6U(G^@R&Uff#c2TfJ?eFyPF z;SRZil#6QHDz;jaJXBpLC=ao!roC-7pYWLcqrLE`dZcDz1I#$=W++$8>&R%SO;@9R zwjC1A?NxcVWsJnI?s(>aloQWBkDbUq?eF!;*yK;k#B3Q$Xx&DsHvU_E`TtbJo|ba5 zW;Jr>xaR)Zm;SL=q<`#X{s|NRXbGE3M|?H&uVI{i-u5m_%I?V4x|d}tPwrmk4Bl30 zJyijTCD;ne7aE<1p%VhNOo%Zk^0HUz>HPZ#}u{&dE%TY|JGM z-CT9DTfwtEaOO&C_r8sMWT4G{L!HwpDADN>MwM|mV;;AqrOYcmAdj{KQ~NmLVEG;_ z&pBMKp1jQ41@`Coj@;0myl?H_8STK|K$SAP2DJR#4rsj?+bv;}uWOZRf)LGgeta0& zAG|$!+8>Ksi>StiTblpa@9sDM{nw(UziGH4Al%{kA-*tfH|7s9wX=B+A+_}>YWt++ f8=LODe1FrfRT=yKY!8e>{&0tbM*iithuZ%IAn5?4 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/nn/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/conf/locale/nn/LC_MESSAGES/django.po new file mode 100644 index 0000000000..04b872e30b --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/nn/LC_MESSAGES/django.po @@ -0,0 +1,1305 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# hgrimelid , 2011 +# Jannis Leidel , 2011 +# jensadne , 2013 +# Sigurd Gartmann , 2012 +# Sivert Olstad, 2021 +# velmont , 2012 +# Vibeke Uthaug, 2021 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-09-21 10:22+0200\n" +"PO-Revision-Date: 2021-11-25 14:49+0000\n" +"Last-Translator: Sivert Olstad\n" +"Language-Team: Norwegian Nynorsk (http://www.transifex.com/django/django/" +"language/nn/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: nn\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Afrikaans" +msgstr "Afrikaans" + +msgid "Arabic" +msgstr "Arabisk" + +msgid "Algerian Arabic" +msgstr "Arabisk (algersk)" + +msgid "Asturian" +msgstr "Asturiansk" + +msgid "Azerbaijani" +msgstr "Aserbajansk" + +msgid "Bulgarian" +msgstr "Bulgarsk" + +msgid "Belarusian" +msgstr "Kviterussisk" + +msgid "Bengali" +msgstr "Bengalsk" + +msgid "Breton" +msgstr "Bretonsk" + +msgid "Bosnian" +msgstr "Bosnisk" + +msgid "Catalan" +msgstr "Katalansk" + +msgid "Czech" +msgstr "Tsjekkisk" + +msgid "Welsh" +msgstr "Walisisk" + +msgid "Danish" +msgstr "Dansk" + +msgid "German" +msgstr "Tysk" + +msgid "Lower Sorbian" +msgstr "Lågsorbisk" + +msgid "Greek" +msgstr "Gresk" + +msgid "English" +msgstr "Engelsk" + +msgid "Australian English" +msgstr "Engelsk (australsk)" + +msgid "British English" +msgstr "Engelsk (britisk)" + +msgid "Esperanto" +msgstr "Esperanto" + +msgid "Spanish" +msgstr "Spansk" + +msgid "Argentinian Spanish" +msgstr "Spansk (argentinsk)" + +msgid "Colombian Spanish" +msgstr "Spansk (kolombiansk)" + +msgid "Mexican Spanish" +msgstr "Spansk (meksikansk)" + +msgid "Nicaraguan Spanish" +msgstr "Spansk (nicaraguansk)" + +msgid "Venezuelan Spanish" +msgstr "Spansk (venezuelansk)" + +msgid "Estonian" +msgstr "Estisk" + +msgid "Basque" +msgstr "Baskisk" + +msgid "Persian" +msgstr "Persisk" + +msgid "Finnish" +msgstr "Finsk" + +msgid "French" +msgstr "Fransk" + +msgid "Frisian" +msgstr "Frisisk" + +msgid "Irish" +msgstr "Irsk" + +msgid "Scottish Gaelic" +msgstr "Skotsk-gaelisk" + +msgid "Galician" +msgstr "Galisisk" + +msgid "Hebrew" +msgstr "Hebraisk" + +msgid "Hindi" +msgstr "Hindi" + +msgid "Croatian" +msgstr "Kroatisk" + +msgid "Upper Sorbian" +msgstr "Høgsorbisk" + +msgid "Hungarian" +msgstr "Ungarsk" + +msgid "Armenian" +msgstr "Armensk" + +msgid "Interlingua" +msgstr "Interlingua" + +msgid "Indonesian" +msgstr "Indonesisk" + +msgid "Igbo" +msgstr "Igbo" + +msgid "Ido" +msgstr "Ido" + +msgid "Icelandic" +msgstr "Islandsk" + +msgid "Italian" +msgstr "Italiensk" + +msgid "Japanese" +msgstr "Japansk" + +msgid "Georgian" +msgstr "Georgisk" + +msgid "Kabyle" +msgstr "Kabylsk" + +msgid "Kazakh" +msgstr "Kasakhisk" + +msgid "Khmer" +msgstr "Khmer" + +msgid "Kannada" +msgstr "Kannada" + +msgid "Korean" +msgstr "Koreansk" + +msgid "Kyrgyz" +msgstr "Kirgisisk" + +msgid "Luxembourgish" +msgstr "Luxembourgsk" + +msgid "Lithuanian" +msgstr "Litauisk" + +msgid "Latvian" +msgstr "Latvisk" + +msgid "Macedonian" +msgstr "Makedonsk" + +msgid "Malayalam" +msgstr "Malayalam" + +msgid "Mongolian" +msgstr "Mongolsk" + +msgid "Marathi" +msgstr "Marathi" + +msgid "Malay" +msgstr "Malayisk" + +msgid "Burmese" +msgstr "Burmesisk" + +msgid "Norwegian Bokmål" +msgstr "Norsk (bokmål)" + +msgid "Nepali" +msgstr "Nepali" + +msgid "Dutch" +msgstr "Nederlandsk" + +msgid "Norwegian Nynorsk" +msgstr "Norsk (nynorsk)" + +msgid "Ossetic" +msgstr "Ossetisk" + +msgid "Punjabi" +msgstr "Punjabi" + +msgid "Polish" +msgstr "Polsk" + +msgid "Portuguese" +msgstr "Portugisisk" + +msgid "Brazilian Portuguese" +msgstr "Brasiliansk portugisisk" + +msgid "Romanian" +msgstr "Rumensk" + +msgid "Russian" +msgstr "Russisk" + +msgid "Slovak" +msgstr "Slovakisk" + +msgid "Slovenian" +msgstr "Slovensk" + +msgid "Albanian" +msgstr "Albansk" + +msgid "Serbian" +msgstr "Serbisk" + +msgid "Serbian Latin" +msgstr "Serbisk latin" + +msgid "Swedish" +msgstr "Svensk" + +msgid "Swahili" +msgstr "Swahili" + +msgid "Tamil" +msgstr "Tamil" + +msgid "Telugu" +msgstr "Telugu" + +msgid "Tajik" +msgstr "Tadsjikisk" + +msgid "Thai" +msgstr "Thai" + +msgid "Turkmen" +msgstr "Turkmensk" + +msgid "Turkish" +msgstr "Tyrkisk" + +msgid "Tatar" +msgstr "Tatarisk" + +msgid "Udmurt" +msgstr "Udmurtisk" + +msgid "Ukrainian" +msgstr "Ukrainsk" + +msgid "Urdu" +msgstr "Urdu" + +msgid "Uzbek" +msgstr "Usbekisk" + +msgid "Vietnamese" +msgstr "Vietnamesisk" + +msgid "Simplified Chinese" +msgstr "Simplifisert kinesisk" + +msgid "Traditional Chinese" +msgstr "Tradisjonell kinesisk" + +msgid "Messages" +msgstr "Meldingar" + +msgid "Site Maps" +msgstr "Sidekart" + +msgid "Static Files" +msgstr "Statiske Filer" + +msgid "Syndication" +msgstr "Syndikering" + +#. Translators: String used to replace omitted page numbers in elided page +#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10]. +msgid "…" +msgstr "…" + +msgid "That page number is not an integer" +msgstr "Sidenummeret er ikkje eit heiltal" + +msgid "That page number is less than 1" +msgstr "Sidenummeret er mindre enn 1" + +msgid "That page contains no results" +msgstr "Sida har ingen resultat" + +msgid "Enter a valid value." +msgstr "Oppgje ein gyldig verdi." + +msgid "Enter a valid URL." +msgstr "Oppgje ei gyldig nettadresse." + +msgid "Enter a valid integer." +msgstr "Oppgje eit gyldig heiltal." + +msgid "Enter a valid email address." +msgstr "Oppgje ei gyldig e-postadresse." + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" +"Oppgje ein gyldig \"slug\" som består av bokstavar, nummer, understrekar " +"eller bindestrekar." + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" +"Oppgje ein gyldig \"slug\" som består av Unicode bokstavar, nummer, " +"understrekar eller bindestrekar." + +msgid "Enter a valid IPv4 address." +msgstr "Oppgje ei gyldig IPv4-adresse." + +msgid "Enter a valid IPv6 address." +msgstr "Skriv inn ei gyldig IPv6-adresse." + +msgid "Enter a valid IPv4 or IPv6 address." +msgstr "Skriv inn ei gyldig IPv4- eller IPv6-adresse." + +msgid "Enter only digits separated by commas." +msgstr "Oppgje berre tall skild med komma." + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "Verdien må minimum ha %(limit_value)s teikn (den er %(show_value)s)." + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "Verdien må vere mindre enn eller lik %(limit_value)s." + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "Verdien må vere større enn eller lik %(limit_value)s." + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "Verdien må ha minst %(limit_value)d teikn (den har %(show_value)d)." +msgstr[1] "Verdien må ha minst %(limit_value)d teikn (den har %(show_value)d)." + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Verdien kan ikkje ha fleire enn %(limit_value)d teikn (den har " +"%(show_value)d)." +msgstr[1] "" +"Verdien kan ikkje ha fleire enn %(limit_value)d teikn (den har " +"%(show_value)d)." + +msgid "Enter a number." +msgstr "Oppgje eit tal." + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "Verdien kan ikkje ha meir enn %(max)s siffer totalt." +msgstr[1] "Verdien kan ikkje ha meir enn %(max)s siffer totalt." + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "Verdien kan ikkie ha meir enn %(max)s desimal." +msgstr[1] "Verdien kan ikkie ha meir enn %(max)s desimalar." + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "Verdien kan ikkje ha meir enn %(max)s siffer framanfor komma." +msgstr[1] "Verdien kan ikkje ha meir enn %(max)s siffer framanfor komma." + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" +"Filtypen “%(extension)s” er ikkje tillate. Tillate filtypar er: " +"%(allowed_extensions)s." + +msgid "Null characters are not allowed." +msgstr "Null-teikn er ikkje tillate." + +msgid "and" +msgstr "og" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "%(model_name)s med %(field_labels)s fins allereie." + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "Verdi %(value)r er eit ugyldig val." + +msgid "This field cannot be null." +msgstr "Feltet kan ikkje vere tomt." + +msgid "This field cannot be blank." +msgstr "Feltet kan ikkje vere tomt." + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "%(model_name)s med %(field_label)s fins allereie." + +#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'. +#. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "%(field_label)s må vere unik for %(date_field_label)s %(lookup_type)s." + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "Felt av typen: %(field_type)s" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "Verdien “%(value)s” må vere anten True eller False." + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "Verdien “%(value)s” må vere anten True, False, eller None." + +msgid "Boolean (Either True or False)" +msgstr "Boolsk (True eller False)" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "Tekst (opp til %(max_length)s teikn)" + +msgid "Comma-separated integers" +msgstr "Heiltal skild med komma" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" +"Verdien “%(value)s” har eit ugyldig datoformat. Det må vere på formen YYYY-" +"MM-DD." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" +"Verdien “%(value)s” har rett format (YYYY-MM-DD) men er ein ugyldig dato." + +msgid "Date (without time)" +msgstr "Dato (utan tid)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" +"Verdien “%(value)s” har eit ugyldig format. Det må vere på formen YYYY-MM-DD " +"HH:MM[:ss[.uuuuuu]][TZ]." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" +"Verdien “%(value)s” har rett format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ]) men " +"er ein ugyldig dato eller klokkeslett." + +msgid "Date (with time)" +msgstr "Dato (med tid)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "Verdien “%(value)s” må vere eit desimaltal." + +msgid "Decimal number" +msgstr "Desimaltal" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" +"Verdien “%(value)s” har eit ugyldig format. Det må vere på formen [DD] " +"[[HH:]MM:]ss[.uuuuuu]." + +msgid "Duration" +msgstr "Varigskap" + +msgid "Email address" +msgstr "E-postadresse" + +msgid "File path" +msgstr "Filsti" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "Verdien “%(value)s” må vere eit flyttal." + +msgid "Floating point number" +msgstr "Flyttal" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "Verdien “%(value)s” må vere eit heiltal." + +msgid "Integer" +msgstr "Heiltal" + +msgid "Big (8 byte) integer" +msgstr "Stort (8 bitar) heiltal" + +msgid "Small integer" +msgstr "Lite heiltal" + +msgid "IPv4 address" +msgstr "IPv4-adresse" + +msgid "IP address" +msgstr "IP-adresse" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "Verdien “%(value)s” må vere anten None, True, eller False." + +msgid "Boolean (Either True, False or None)" +msgstr "Boolsk (True, False eller None)" + +msgid "Positive big integer" +msgstr "Positivt stort heiltal" + +msgid "Positive integer" +msgstr "Positivt heiltal" + +msgid "Positive small integer" +msgstr "Positivt lite heiltal" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "Slug (opp til %(max_length)s)" + +msgid "Text" +msgstr "Tekst" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" +"Verdien “%(value)s” har eit ugyldig format. Det må vere på formen HH:MM[:ss[." +"uuuuuu]]." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" +"Verdien “%(value)s” har rett format (HH:MM[:ss[.uuuuuu]]), men er eit " +"ugyldig klokkeslett." + +msgid "Time" +msgstr "Tid" + +msgid "URL" +msgstr "Nettadresse" + +msgid "Raw binary data" +msgstr "Rå binærdata" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "“%(value)s” er ikkje ein gyldig UUID." + +msgid "Universally unique identifier" +msgstr "Universelt unik identifikator." + +msgid "File" +msgstr "Fil" + +msgid "Image" +msgstr "Bilete" + +msgid "A JSON object" +msgstr "Eit JSON-objekt" + +msgid "Value must be valid JSON." +msgstr "Verdi må vere gyldig JSON." + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "%(model)s-instans med %(field)s %(value)r eksisterer ikkje." + +msgid "Foreign Key (type determined by related field)" +msgstr "Fremmednøkkel (type bestemt av relatert felt)" + +msgid "One-to-one relationship" +msgstr "Ein-til-ein-forhold" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "%(from)s-%(to)s-relasjon" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "%(from)s-%(to)s-relasjonar" + +msgid "Many-to-many relationship" +msgstr "Mange-til-mange-forhold" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr ":?.!" + +msgid "This field is required." +msgstr "Feltet er påkravd." + +msgid "Enter a whole number." +msgstr "Oppgje eit heiltal." + +msgid "Enter a valid date." +msgstr "Oppgje ein gyldig dato." + +msgid "Enter a valid time." +msgstr "Oppgje eit gyldig tidspunkt." + +msgid "Enter a valid date/time." +msgstr "Oppgje gyldig dato og tidspunkt." + +msgid "Enter a valid duration." +msgstr "Oppgje ein gyldig varigskap." + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "Antal dagar må vere mellom {min_days} og {max_days}." + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "Inga fil vart sendt. Sjekk \"encoding\"-typen på skjemaet." + +msgid "No file was submitted." +msgstr "Inga fil vart sendt." + +msgid "The submitted file is empty." +msgstr "Fila er tom." + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" +"Filnamnet kan ikkje ha fleire enn %(max)d teikn (det har %(length)d)." +msgstr[1] "" +"Filnamnet kan ikkje ha fleire enn %(max)d teikn (det har %(length)d)." + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "Last enten opp ei fil eller huk av i avkryssingsboksen." + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" +"Last opp eit gyldig bilete. Fila du lasta opp var ødelagt eller ikkje eit " +"bilete." + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "" +"Velg eit gyldig valg. %(value)s er ikkje eit av dei tilgjengelege valga." + +msgid "Enter a list of values." +msgstr "Oppgje ei liste med verdiar." + +msgid "Enter a complete value." +msgstr "Oppgje ein fullstendig verdi." + +msgid "Enter a valid UUID." +msgstr "Oppgje ein gyldig UUID." + +msgid "Enter a valid JSON." +msgstr "Oppgje gyldig JSON." + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr ":" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "(Gøymt felt %(name)s) %(error)s" + +#, python-format +msgid "" +"ManagementForm data is missing or has been tampered with. Missing fields: " +"%(field_names)s. You may need to file a bug report if the issue persists." +msgstr "" +"ManagementForm data manglar eller har blitt tukla med. Felt som manglar: " +"%(field_names)s. Du burde kanskje sende ein feilrapport dersom problemet " +"fortset. " + +#, python-format +msgid "Please submit at most %d form." +msgid_plural "Please submit at most %d forms." +msgstr[0] "Ver vennleg å ikkje sende inn fleire enn %d skjema. " +msgstr[1] "Ver vennleg å ikkje sende inn fleire enn %d skjema. " + +#, python-format +msgid "Please submit at least %d form." +msgid_plural "Please submit at least %d forms." +msgstr[0] "Ver vennleg å sende inn minst %d skjema. " +msgstr[1] "Ver vennleg å sende inn minst %d skjema. " + +msgid "Order" +msgstr "Rekkefølge" + +msgid "Delete" +msgstr "Slett" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "Korriger dupliserte data for %(field)s." + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "Korriger dupliserte data for %(field)s, som må vere unike." + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"Korriger dupliserte data for %(field_name)s, som må vere unike for " +"%(lookup)s i %(date_field)s." + +msgid "Please correct the duplicate values below." +msgstr "Korriger dei dupliserte verdiane nedanfor." + +msgid "The inline value did not match the parent instance." +msgstr "Inline verdien stemmer ikkje overeins med forelder-instansen.  " + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "Velg eit gyldig valg. Valget er ikkje eit av dei tilgjengelege valga." + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "“%(pk)s” er ikkje ein gyldig verdi." + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" +"%(datetime)s kunne ikkje bli tolka i tidssona %(current_timezone)s; Verdien " +"er anten tvetydig eller ugyldig." + +msgid "Clear" +msgstr "Tøm" + +msgid "Currently" +msgstr "Noverande" + +msgid "Change" +msgstr "Endre" + +msgid "Unknown" +msgstr "Ukjend" + +msgid "Yes" +msgstr "Ja" + +msgid "No" +msgstr "Nei" + +#. Translators: Please do not add spaces around commas. +msgid "yes,no,maybe" +msgstr "ja,nei,kanskje" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)d byte" +msgstr[1] "%(size)d bytes" + +#, python-format +msgid "%s KB" +msgstr "%s KB" + +#, python-format +msgid "%s MB" +msgstr "%s MB" + +#, python-format +msgid "%s GB" +msgstr "%s GB" + +#, python-format +msgid "%s TB" +msgstr "%s TB" + +#, python-format +msgid "%s PB" +msgstr "%s PB" + +msgid "p.m." +msgstr "p.m." + +msgid "a.m." +msgstr "a.m." + +msgid "PM" +msgstr "PM" + +msgid "AM" +msgstr "AM" + +msgid "midnight" +msgstr "midnatt" + +msgid "noon" +msgstr "12:00" + +msgid "Monday" +msgstr "måndag" + +msgid "Tuesday" +msgstr "tysdag" + +msgid "Wednesday" +msgstr "onsdag" + +msgid "Thursday" +msgstr "torsdag" + +msgid "Friday" +msgstr "fredag" + +msgid "Saturday" +msgstr "laurdag" + +msgid "Sunday" +msgstr "søndag" + +msgid "Mon" +msgstr "man" + +msgid "Tue" +msgstr "tys" + +msgid "Wed" +msgstr "ons" + +msgid "Thu" +msgstr "tor" + +msgid "Fri" +msgstr "fre" + +msgid "Sat" +msgstr "lau" + +msgid "Sun" +msgstr "søn" + +msgid "January" +msgstr "januar" + +msgid "February" +msgstr "februar" + +msgid "March" +msgstr "mars" + +msgid "April" +msgstr "april" + +msgid "May" +msgstr "mai" + +msgid "June" +msgstr "juni" + +msgid "July" +msgstr "juli" + +msgid "August" +msgstr "august" + +msgid "September" +msgstr "september" + +msgid "October" +msgstr "oktober" + +msgid "November" +msgstr "november" + +msgid "December" +msgstr "desember" + +msgid "jan" +msgstr "jan" + +msgid "feb" +msgstr "feb" + +msgid "mar" +msgstr "mars" + +msgid "apr" +msgstr "april" + +msgid "may" +msgstr "mai" + +msgid "jun" +msgstr "juni" + +msgid "jul" +msgstr "juli" + +msgid "aug" +msgstr "aug" + +msgid "sep" +msgstr "sep" + +msgid "oct" +msgstr "okt" + +msgid "nov" +msgstr "nov" + +msgid "dec" +msgstr "des" + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "jan." + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "feb." + +msgctxt "abbrev. month" +msgid "March" +msgstr "mars" + +msgctxt "abbrev. month" +msgid "April" +msgstr "april" + +msgctxt "abbrev. month" +msgid "May" +msgstr "mai" + +msgctxt "abbrev. month" +msgid "June" +msgstr "juni" + +msgctxt "abbrev. month" +msgid "July" +msgstr "juli" + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "aug." + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "sep." + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "okt." + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "nov." + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "des." + +msgctxt "alt. month" +msgid "January" +msgstr "Januar" + +msgctxt "alt. month" +msgid "February" +msgstr "Februar" + +msgctxt "alt. month" +msgid "March" +msgstr "Mars" + +msgctxt "alt. month" +msgid "April" +msgstr "April" + +msgctxt "alt. month" +msgid "May" +msgstr "Mai" + +msgctxt "alt. month" +msgid "June" +msgstr "Juni" + +msgctxt "alt. month" +msgid "July" +msgstr "Juli" + +msgctxt "alt. month" +msgid "August" +msgstr "August" + +msgctxt "alt. month" +msgid "September" +msgstr "September" + +msgctxt "alt. month" +msgid "October" +msgstr "Oktober" + +msgctxt "alt. month" +msgid "November" +msgstr "November" + +msgctxt "alt. month" +msgid "December" +msgstr "Desember" + +msgid "This is not a valid IPv6 address." +msgstr "Dette er ikkje ei gyldig IPv6-adresse." + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "%(truncated_text)s…" + +msgid "or" +msgstr "eller" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr ", " + +#, python-format +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "%(num)d år" +msgstr[1] "%(num)d år" + +#, python-format +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "%(num)d månad" +msgstr[1] "%(num)d månader" + +#, python-format +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "%(num)d veke" +msgstr[1] "%(num)d veker" + +#, python-format +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "%(num)d dag" +msgstr[1] "%(num)d dagar" + +#, python-format +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "%(num)d time" +msgstr[1] "%(num)d timar" + +#, python-format +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "%(num)d minutt" +msgstr[1] "%(num)d minutt" + +msgid "Forbidden" +msgstr "Forbydd" + +msgid "CSRF verification failed. Request aborted." +msgstr "CSRF-verifikasjon feila. Førespurnad avbrote." + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" +"Du ser denne meldinga på grunn av at det ikkje blei sendt nokon \"Referer\" " +"hovud frå din nettlesar, noko denne HTTPS-sida krev. Dette hovudet er eit " +"krav på grunn av sikkerheit, for å hindre at din nettlesar er kapra av " +"tredjepartar. " + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" +"Dersom du har konfigurert nettlesaren din til å deaktiverere \"Referer\"-" +"hovud må du aktivere dei på nytt, i det minste for denne nettsida, eller for " +"HTTPS-tilkoplingar eller for førespurnadar av same opphav. " + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" +"Dersom du brukar -taggen " +"eller inkludera \"Referrer-Policy: no-referrer\" hovud, ver vennleg å fjerne " +"dei. CSRF-vern krev \"Referer\" hovud for å gjennomføre strenge kontrollar " +"av referer. Dersom du har bekymringar for personvern bruk alternativ som for lenkjer til tredepartssider" + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" +"Du ser denne meldinga fordi denne nettsida krev ein CSRF informasjonskapsel " +"når du sender inn skjema. Denne informasjonskapselen er eit krav på grunn av " +"sikkerheit, for å forsikre at nettlesaren din ikkje er kapra av " +"tredjepartar. " + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" +"Dersom du har konfigurert nettlesaren din til å deaktivere " +"informasjonskapslar, ver vennleg å aktiver dei på nytt, i det minste for " +"denne nettsida, eller for førespurnader av same opphav. " + +msgid "More information is available with DEBUG=True." +msgstr "Meir informasjon er tilgjengeleg med DEBUG=True." + +msgid "No year specified" +msgstr "Årstal ikkje spesifisert" + +msgid "Date out of range" +msgstr "Dato er utanfor rekkjevidde" + +msgid "No month specified" +msgstr "Månad ikkje spesifisert" + +msgid "No day specified" +msgstr "Dag ikkje spesifisert" + +msgid "No week specified" +msgstr "Veke ikkje spesifisert" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "%(verbose_name_plural)s tilgjengeleg" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" +"Framtidig %(verbose_name_plural)s er ikkje tilgjengeleg fordi %(class_name)s." +"allow_future er sett til False." + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "Ugyldig datostreng \"%(datestr)s\" grunna format \"%(format)s\"" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "Fann ingen %(verbose_name)s som korresponderte med spørringa" + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "" +"Sida er ikkje \"last\" og den kan heller ikkje konverterast til eit heiltal. " + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "Ugyldig side (%(page_number)s): %(message)s" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "Tom liste og \"%(class_name)s.allow_empty\" er False." + +msgid "Directory indexes are not allowed here." +msgstr "Mappeindeksar er ikkje tillate her." + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "\"%(path)s\" eksisterer ikkje" + +#, python-format +msgid "Index of %(directory)s" +msgstr "Indeks for %(directory)s" + +msgid "The install worked successfully! Congratulations!" +msgstr "Installasjonen var vellykka! Gratulerer!" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" +"Sjå utgjevingsnotat for Django %(version)s" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not configured any " +"URLs." +msgstr "" +"Du ser denne sida fordi DEBUG=True er i innstillingsfila di og du ikkje har konfigurert noka " +"nettadresser." + +msgid "Django Documentation" +msgstr "Django-dokumentasjon" + +msgid "Topics, references, & how-to’s" +msgstr "Tema, referansar, & how-tos" + +msgid "Tutorial: A Polling App" +msgstr "Opplæring: Ein avstemmingsapp" + +msgid "Get started with Django" +msgstr "Kom i gang med Django" + +msgid "Django Community" +msgstr "Django Nettsamfunn" + +msgid "Connect, get help, or contribute" +msgstr "Koble, få hjelp, eller bidra" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/nn/__init__.py b/venv/lib/python3.12/site-packages/django/conf/locale/nn/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/nn/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/nn/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..cf416ad40eaec4f7a10af499dfbed00cefd721be GIT binary patch literal 198 zcmX@j%ge<81o5sX(m?cM5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!O4ZNE&rQ|OP0Yy6 zFHO;RNiEZNN=(kybEFQ_cZ$j>v@Gc?jK&MZmQEdVM^ zOiwM=Pssu+OwP|s)6dCIPRvQw&&$(~kI&4@EQycTE2#X%VUwGmQks)$SHudml@W-G PL5z>gjEsy$%s>_Z#^E%F literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/nn/__pycache__/formats.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/nn/__pycache__/formats.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3ff8bf641e3aa932cbc9cabbfad7a708c3a87541 GIT binary patch literal 856 zcmZXSJ#X4j6o#)c5HR5z+_aS{q{;(Q@KxIlRaKp00&0zsZ4}vyMY!f8#Wn(hgs1dZ zbgjDeZ*;2Eh0$W|lno{7!qjWN0?i%HdCzmsd#-KycQi@?e02U-I}rrnk5_DuZzJyC zWAPOrpaDc^1oCM6F{uVs!n*7yyh)|FVB-sh*1lSSzr)Wh-FNcQFm&Z z4?D?iKgU#xj8J4`C-VrgOxuYaQf%C;+c*A?*2V+6Gfp2HAJD#WLzl$qU+>fY{B}#? zRLe)_krJoydRdeNPMJrPs<12KUS}U9Ri2Y{L98j2ts$|lN}ReSNx33QioU-!`+yGC zm8+8MO{%(B)-QPe<2<#pRcrNzve_rk>D^--@??qsP!+gOy3E%(iBm*ro>D4eL*{Cw zJr=Jugfm{!&n2-@uh!0gfP4JrV2NPYHVtStyQY1OV9A)kvu5jafwvI6>^H5B4JU>* zf&Jbk98AYu+j_&kdJRXtu~8V{!Dh!8L3FhmY}r;D_U%@)Z$Qg}ZF^`o$0K$yU54J8 zHoEQ`?}jwK)cc=C7dR|Pf*=+Yh(EcBxUn=2sTVhKH}iA`l5QHugqwNp>64c;kaaUz jtnVm__RT=*j;5aBOfP7VJ@IC;crxXt(qH1k4Bq_@w^!;T literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/nn/formats.py b/venv/lib/python3.12/site-packages/django/conf/locale/nn/formats.py new file mode 100644 index 0000000000..0ddb8fef60 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/nn/formats.py @@ -0,0 +1,41 @@ +# This file is distributed under the same license as the Django package. +# +# The *_FORMAT strings use the Django date format syntax, +# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date +DATE_FORMAT = "j. F Y" +TIME_FORMAT = "H:i" +DATETIME_FORMAT = "j. F Y H:i" +YEAR_MONTH_FORMAT = "F Y" +MONTH_DAY_FORMAT = "j. F" +SHORT_DATE_FORMAT = "d.m.Y" +SHORT_DATETIME_FORMAT = "d.m.Y H:i" +FIRST_DAY_OF_WEEK = 1 # Monday + +# The *_INPUT_FORMATS strings use the Python strftime format syntax, +# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior +# Kept ISO formats as they are in first position +DATE_INPUT_FORMATS = [ + "%Y-%m-%d", # '2006-10-25' + "%d.%m.%Y", # '25.10.2006' + "%d.%m.%y", # '25.10.06' + # "%d. %b %Y", # '25. okt 2006' + # "%d %b %Y", # '25 okt 2006' + # "%d. %b. %Y", # '25. okt. 2006' + # "%d %b. %Y", # '25 okt. 2006' + # "%d. %B %Y", # '25. oktober 2006' + # "%d %B %Y", # '25 oktober 2006' +] +DATETIME_INPUT_FORMATS = [ + "%Y-%m-%d %H:%M:%S", # '2006-10-25 14:30:59' + "%Y-%m-%d %H:%M:%S.%f", # '2006-10-25 14:30:59.000200' + "%Y-%m-%d %H:%M", # '2006-10-25 14:30' + "%d.%m.%Y %H:%M:%S", # '25.10.2006 14:30:59' + "%d.%m.%Y %H:%M:%S.%f", # '25.10.2006 14:30:59.000200' + "%d.%m.%Y %H:%M", # '25.10.2006 14:30' + "%d.%m.%y %H:%M:%S", # '25.10.06 14:30:59' + "%d.%m.%y %H:%M:%S.%f", # '25.10.06 14:30:59.000200' + "%d.%m.%y %H:%M", # '25.10.06 14:30' +] +DECIMAL_SEPARATOR = "," +THOUSAND_SEPARATOR = "\xa0" # non-breaking space +NUMBER_GROUPING = 3 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/os/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/conf/locale/os/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..b17907efa70fd70adbe6bfe55bc996928fc02dee GIT binary patch literal 17994 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/os/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/conf/locale/os/LC_MESSAGES/django.po new file mode 100644 index 0000000000..f3badb7c39 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/os/LC_MESSAGES/django.po @@ -0,0 +1,1235 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Soslan Khubulov , 2013 +# Soslan Khubulov , 2013 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-09-27 22:40+0200\n" +"PO-Revision-Date: 2019-11-05 00:38+0000\n" +"Last-Translator: Ramiro Morales\n" +"Language-Team: Ossetic (http://www.transifex.com/django/django/language/" +"os/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: os\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Afrikaans" +msgstr "Африкаанс" + +msgid "Arabic" +msgstr "Араббаг" + +msgid "Asturian" +msgstr "" + +msgid "Azerbaijani" +msgstr "Тӕтӕйраг" + +msgid "Bulgarian" +msgstr "Болгайраг" + +msgid "Belarusian" +msgstr "Беларусаг" + +msgid "Bengali" +msgstr "Бенгалаг" + +msgid "Breton" +msgstr "Бретойнаг" + +msgid "Bosnian" +msgstr "Босниаг" + +msgid "Catalan" +msgstr "Каталайнаг" + +msgid "Czech" +msgstr "Чехаг" + +msgid "Welsh" +msgstr "Уельсаг" + +msgid "Danish" +msgstr "Даниаг" + +msgid "German" +msgstr "Немыцаг" + +msgid "Lower Sorbian" +msgstr "" + +msgid "Greek" +msgstr "Грекъаг" + +msgid "English" +msgstr "Англисаг" + +msgid "Australian English" +msgstr "" + +msgid "British English" +msgstr "Бритайнаг англисаг" + +msgid "Esperanto" +msgstr "Есперанто" + +msgid "Spanish" +msgstr "Испайнаг" + +msgid "Argentinian Spanish" +msgstr "Аргентинаг испайнаг" + +msgid "Colombian Spanish" +msgstr "" + +msgid "Mexican Spanish" +msgstr "Мексикайнаг Испайнаг" + +msgid "Nicaraguan Spanish" +msgstr "Никарагуайаг испайнаг" + +msgid "Venezuelan Spanish" +msgstr "Венесуелаг испайнаг" + +msgid "Estonian" +msgstr "Эстойнаг" + +msgid "Basque" +msgstr "Баскаг" + +msgid "Persian" +msgstr "Персайнаг" + +msgid "Finnish" +msgstr "Финнаг" + +msgid "French" +msgstr "Францаг" + +msgid "Frisian" +msgstr "Фризаг" + +msgid "Irish" +msgstr "Ирландиаг" + +msgid "Scottish Gaelic" +msgstr "" + +msgid "Galician" +msgstr "Галициаг" + +msgid "Hebrew" +msgstr "Иврит" + +msgid "Hindi" +msgstr "Хинди" + +msgid "Croatian" +msgstr "Хорватаг" + +msgid "Upper Sorbian" +msgstr "" + +msgid "Hungarian" +msgstr "Венгриаг" + +msgid "Armenian" +msgstr "" + +msgid "Interlingua" +msgstr "Интерлингва" + +msgid "Indonesian" +msgstr "Индонезиаг" + +msgid "Ido" +msgstr "" + +msgid "Icelandic" +msgstr "Исландаг" + +msgid "Italian" +msgstr "Италиаг" + +msgid "Japanese" +msgstr "Япойнаг" + +msgid "Georgian" +msgstr "Гуырдзиаг" + +msgid "Kabyle" +msgstr "" + +msgid "Kazakh" +msgstr "Казахаг" + +msgid "Khmer" +msgstr "Хмераг" + +msgid "Kannada" +msgstr "Каннадаг" + +msgid "Korean" +msgstr "Корейаг" + +msgid "Luxembourgish" +msgstr "Люксембургаг" + +msgid "Lithuanian" +msgstr "Литвайаг" + +msgid "Latvian" +msgstr "Латвийаг" + +msgid "Macedonian" +msgstr "Мӕчъидон" + +msgid "Malayalam" +msgstr "Малайаг" + +msgid "Mongolian" +msgstr "Монголиаг" + +msgid "Marathi" +msgstr "" + +msgid "Burmese" +msgstr "Бурмизаг" + +msgid "Norwegian Bokmål" +msgstr "" + +msgid "Nepali" +msgstr "Непалаг" + +msgid "Dutch" +msgstr "Нидерландаг" + +msgid "Norwegian Nynorsk" +msgstr "Норвегийаг Нинорск" + +msgid "Ossetic" +msgstr "Ирон" + +msgid "Punjabi" +msgstr "Пенджабаг" + +msgid "Polish" +msgstr "Полаг" + +msgid "Portuguese" +msgstr "Португалаг" + +msgid "Brazilian Portuguese" +msgstr "Бразилаг португалаг" + +msgid "Romanian" +msgstr "Румынаг" + +msgid "Russian" +msgstr "Уырыссаг" + +msgid "Slovak" +msgstr "Словакиаг" + +msgid "Slovenian" +msgstr "Словенаг" + +msgid "Albanian" +msgstr "Албайнаг" + +msgid "Serbian" +msgstr "Сербаг" + +msgid "Serbian Latin" +msgstr "Латинаг Сербаг" + +msgid "Swedish" +msgstr "Шведаг" + +msgid "Swahili" +msgstr "Суахили" + +msgid "Tamil" +msgstr "Тамилаг" + +msgid "Telugu" +msgstr "Телугу" + +msgid "Thai" +msgstr "Тайаг" + +msgid "Turkish" +msgstr "Туркаг" + +msgid "Tatar" +msgstr "Тӕтӕйраг" + +msgid "Udmurt" +msgstr "Удмуртаг" + +msgid "Ukrainian" +msgstr "Украинаг" + +msgid "Urdu" +msgstr "Урду" + +msgid "Uzbek" +msgstr "" + +msgid "Vietnamese" +msgstr "Вьетнамаг" + +msgid "Simplified Chinese" +msgstr "Ӕнцонгонд Китайаг" + +msgid "Traditional Chinese" +msgstr "Традицион Китайаг" + +msgid "Messages" +msgstr "" + +msgid "Site Maps" +msgstr "" + +msgid "Static Files" +msgstr "" + +msgid "Syndication" +msgstr "" + +msgid "That page number is not an integer" +msgstr "" + +msgid "That page number is less than 1" +msgstr "" + +msgid "That page contains no results" +msgstr "" + +msgid "Enter a valid value." +msgstr "Раст бӕрц бафысс." + +msgid "Enter a valid URL." +msgstr "Раст URL бафысс." + +msgid "Enter a valid integer." +msgstr "" + +msgid "Enter a valid email address." +msgstr "Раст email адрис бафысс." + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" + +msgid "Enter a valid IPv4 address." +msgstr "Раст IPv4 адрис бафысс." + +msgid "Enter a valid IPv6 address." +msgstr "Раст IPv6 адрис бафысс." + +msgid "Enter a valid IPv4 or IPv6 address." +msgstr "Раст IPv4 кӕнӕ IPv6 адрис бафысс." + +msgid "Enter only digits separated by commas." +msgstr "Бафысс ӕрмӕст нымӕцтӕ, къӕдзгуытӕй дихгонд." + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "Ацы бӕрц хъуамӕ уа %(limit_value)s (у %(show_value)s)." + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "Ацы бӕрц хъуамӕ уа %(limit_value)s, кӕнӕ цъусдӕр." + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "Ацы бӕрц хъуамӕ уа %(limit_value)s, кӕнӕ цъусдӕр." + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Дӕ хъус бадар цӕмӕй ам %(limit_value)d дамгъӕ уӕддӕр уа (ис дзы " +"%(show_value)d)." +msgstr[1] "" +"Дӕ хъус бадар цӕмӕй ам %(limit_value)d дамгъӕйы уӕддӕр уа (ис дзы " +"%(show_value)d)." + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Дӕ хъус бадар цӕмӕй ам %(limit_value)d дамгъӕйӕ фылдӕр ма уа (ис дзы " +"%(show_value)d)." +msgstr[1] "" +"Дӕ хъус бадар цӕмӕй ам %(limit_value)d дамгъӕйӕ фылдӕр ма уа (ис дзы " +"%(show_value)d)." + +msgid "Enter a number." +msgstr "Бафысс нымӕц." + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "Дӕ хъус бадар цӕмӕй иууыл иумӕ %(max)s цифрӕйӕ фылдӕр уой." +msgstr[1] "Дӕ хъус бадар цӕмӕй иууыл иумӕ %(max)s цифрӕйӕ фылдӕр уой." + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "Дӕ хъус бадар цӕмӕй дӕсон бынӕттӕ %(max)s-ӕй фылдӕр ма уой." +msgstr[1] "Дӕ хъус бадар цӕмӕй дӕсон бынӕттӕ %(max)s-ӕй фылдӕр ма уой." + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "" +"Дӕ хъус бадар цӕмӕй дӕсон стъӕлфы размӕ %(max)s цифрӕйӕ фылдӕр ма уа." +msgstr[1] "" +"Дӕ хъус бадар цӕмӕй дӕсон стъӕлфы размӕ %(max)s цифрӕйӕ фылдӕр ма уа." + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" + +msgid "Null characters are not allowed." +msgstr "" + +msgid "and" +msgstr "ӕмӕ" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "" + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "" + +msgid "This field cannot be null." +msgstr "Ацы быдыр нул ма хъуамӕ уа." + +msgid "This field cannot be blank." +msgstr "Ацы быдыр афтид ма хъуамӕ уа." + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "%(model_name)s ацы %(field_label)s-имӕ нырид ис." + +#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'. +#. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "Быдыры хуыз: %(field_type)s" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "" + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "" + +msgid "Boolean (Either True or False)" +msgstr "Булон (Бӕлвырд кӕнӕ Мӕнг)" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "Рӕнхъ (%(max_length)s-ы йонг)" + +msgid "Comma-separated integers" +msgstr "Къӕдзыгӕй хицӕнгонд ӕгас нымӕцтӕ" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" + +msgid "Date (without time)" +msgstr "Бон (ӕнӕ рӕстӕг)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" + +msgid "Date (with time)" +msgstr "Бон (ӕд рӕстӕг)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "" + +msgid "Decimal number" +msgstr "Дӕсон нымӕц" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" + +msgid "Duration" +msgstr "" + +msgid "Email address" +msgstr "Электрон посты адрис" + +msgid "File path" +msgstr "Файлы фӕт" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "" + +msgid "Floating point number" +msgstr "Уӕгъд стъӕлфимӕ нымӕц" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "" + +msgid "Integer" +msgstr "Ӕгас нымӕц" + +msgid "Big (8 byte) integer" +msgstr "Стыр (8 байты) ӕгас нымӕц" + +msgid "IPv4 address" +msgstr "IPv4 адрис" + +msgid "IP address" +msgstr "IP адрис" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "" + +msgid "Boolean (Either True, False or None)" +msgstr "Булон (Бӕлвырд, Мӕнг кӕнӕ Ницы)" + +msgid "Positive integer" +msgstr "Позитивон ӕгас нымӕц" + +msgid "Positive small integer" +msgstr "Позитивон гыццыл ӕгас нымӕц" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "Слаг (ӕппӕты фылдӕр %(max_length)s)" + +msgid "Small integer" +msgstr "Гыццыл ӕгас нымӕц" + +msgid "Text" +msgstr "Текст" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" + +msgid "Time" +msgstr "Рӕстӕг" + +msgid "URL" +msgstr "URL" + +msgid "Raw binary data" +msgstr "Хом бинарон рардтӕ" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "" + +msgid "Universally unique identifier" +msgstr "" + +msgid "File" +msgstr "Файл" + +msgid "Image" +msgstr "Ныв" + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "" + +msgid "Foreign Key (type determined by related field)" +msgstr "Ӕттагон Амонӕн (хӕстӕг быдырӕй бӕрӕггонд хуыз)" + +msgid "One-to-one relationship" +msgstr "Иуӕн-иу бастдзинад" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "" + +msgid "Many-to-many relationship" +msgstr "Бирӕйӕн-бирӕ бастдзинад" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr "" + +msgid "This field is required." +msgstr "Ацы быдыр ӕнӕмӕнг у." + +msgid "Enter a whole number." +msgstr "Бафысс ӕнӕхъӕн нымӕц." + +msgid "Enter a valid date." +msgstr "Раст бон бафысс." + +msgid "Enter a valid time." +msgstr "Раст рӕстӕг бафысс." + +msgid "Enter a valid date/time." +msgstr "Раст бон/рӕстӕг бафысс." + +msgid "Enter a valid duration." +msgstr "" + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "" + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "Ницы файл уыд лӕвӕрд. Абӕрӕг кӕн формӕйы кодкӕнынады хуыз." + +msgid "No file was submitted." +msgstr "Ницы файл уыд лӕвӕрд." + +msgid "The submitted file is empty." +msgstr "Лӕвӕрд файл афтид у." + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" +"Дӕ хъус бадар цӕмӕй ацы файлы номы %(max)d дамгъӕйӕ фылдӕр ма уа(ис дзы " +"%(length)d)." +msgstr[1] "" +"Дӕ хъус бадар цӕмӕй ацы файлы номы %(max)d дамгъӕйӕ фылдӕр ма уа(ис дзы " +"%(length)d)." + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "" +"Дӕ хорзӕхӕй, кӕнӕ бадӕтт файл, кӕнӕ банысан кӕн сыгъдӕг чекбокс. Дыууӕ иумӕ " +"нӕ." + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" +"Раст ныв бавгӕн. Ды цы файл бавгӕдтай, уый кӕнӕ ныв нӕ уыд, кӕнӕ хӕлд ныв " +"уыд." + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "Раст фадат равзар. %(value)s фадӕтты ӕхсӕн нӕй." + +msgid "Enter a list of values." +msgstr "Бафысс мидисты номхыгъд." + +msgid "Enter a complete value." +msgstr "" + +msgid "Enter a valid UUID." +msgstr "" + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr "" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "(Ӕмбӕхст быдыр %(name)s) %(error)s" + +msgid "ManagementForm data is missing or has been tampered with" +msgstr "" + +#, python-format +msgid "Please submit %d or fewer forms." +msgid_plural "Please submit %d or fewer forms." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "Please submit %d or more forms." +msgid_plural "Please submit %d or more forms." +msgstr[0] "" +msgstr[1] "" + +msgid "Order" +msgstr "Рад" + +msgid "Delete" +msgstr "Схафын" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "Дӕ хорзӕхӕй, %(field)s-ы дывӕр рардтӕ сраст кӕн." + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "Дӕ хорзӕхӕй, %(field)s-ы дывӕр рардтӕ сраст кӕн. Хъуамӕ уникалон уа." + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"Дӕ хорзӕхӕй, %(field_name)s-ы дывӕр рардтӕ сраст кӕн. Хъуамӕ %(date_field)s-" +"ы %(lookup)s-ӕн уникалон уа. " + +msgid "Please correct the duplicate values below." +msgstr "Дӕ хорзӕхӕй, бындӕр цы дывӕр рардтӕ ис, уыдон сраст кӕн." + +msgid "The inline value did not match the parent instance." +msgstr "" + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "Раст фадат равзар. УКыцы фадат фадӕтты ӕхсӕн нӕй." + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "" + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" + +msgid "Clear" +msgstr "Сыгъдӕг" + +msgid "Currently" +msgstr "Ныр" + +msgid "Change" +msgstr "Фӕивын" + +msgid "Unknown" +msgstr "Ӕнӕбӕрӕг" + +msgid "Yes" +msgstr "О" + +msgid "No" +msgstr "Нӕ" + +msgid "Year" +msgstr "" + +msgid "Month" +msgstr "" + +msgid "Day" +msgstr "" + +msgid "yes,no,maybe" +msgstr "о,нӕ,гӕнӕн ис" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)d байт" +msgstr[1] "%(size)d байты" + +#, python-format +msgid "%s KB" +msgstr "%s КБ" + +#, python-format +msgid "%s MB" +msgstr "%s МБ" + +#, python-format +msgid "%s GB" +msgstr "%s ГБ" + +#, python-format +msgid "%s TB" +msgstr "%s ТБ" + +#, python-format +msgid "%s PB" +msgstr "%s ПБ" + +msgid "p.m." +msgstr "ӕ.ф." + +msgid "a.m." +msgstr "ӕ.р." + +msgid "PM" +msgstr "ӔФ" + +msgid "AM" +msgstr "ӔР" + +msgid "midnight" +msgstr "ӕмбисӕхсӕв" + +msgid "noon" +msgstr "ӕмбисбон" + +msgid "Monday" +msgstr "Къуырисӕр" + +msgid "Tuesday" +msgstr "Дыццӕг" + +msgid "Wednesday" +msgstr "Ӕртыццӕг" + +msgid "Thursday" +msgstr "Цыппӕрӕм" + +msgid "Friday" +msgstr "Майрӕмбон" + +msgid "Saturday" +msgstr "Сабат" + +msgid "Sunday" +msgstr "Хуыцаубон" + +msgid "Mon" +msgstr "Крс" + +msgid "Tue" +msgstr "Дцг" + +msgid "Wed" +msgstr "Ӕрт" + +msgid "Thu" +msgstr "Цпр" + +msgid "Fri" +msgstr "Мрб" + +msgid "Sat" +msgstr "Сбт" + +msgid "Sun" +msgstr "Хцб" + +msgid "January" +msgstr "Январь" + +msgid "February" +msgstr "Февраль" + +msgid "March" +msgstr "Мартъи" + +msgid "April" +msgstr "Апрель" + +msgid "May" +msgstr "Май" + +msgid "June" +msgstr "Июнь" + +msgid "July" +msgstr "Июль" + +msgid "August" +msgstr "Август" + +msgid "September" +msgstr "Сентябрь" + +msgid "October" +msgstr "Октябрь" + +msgid "November" +msgstr "Ноябрь" + +msgid "December" +msgstr "Декабрь" + +msgid "jan" +msgstr "янв" + +msgid "feb" +msgstr "фев" + +msgid "mar" +msgstr "мар" + +msgid "apr" +msgstr "апр" + +msgid "may" +msgstr "май" + +msgid "jun" +msgstr "июн" + +msgid "jul" +msgstr "июл" + +msgid "aug" +msgstr "авг" + +msgid "sep" +msgstr "сен" + +msgid "oct" +msgstr "окт" + +msgid "nov" +msgstr "ноя" + +msgid "dec" +msgstr "дек" + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "Янв." + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "Фев." + +msgctxt "abbrev. month" +msgid "March" +msgstr "Мартъи" + +msgctxt "abbrev. month" +msgid "April" +msgstr "Апрель" + +msgctxt "abbrev. month" +msgid "May" +msgstr "Май" + +msgctxt "abbrev. month" +msgid "June" +msgstr "Июнь" + +msgctxt "abbrev. month" +msgid "July" +msgstr "Июль" + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "Авг." + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "Сен." + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "Окт." + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "Ноя." + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "Дек." + +msgctxt "alt. month" +msgid "January" +msgstr "Январь" + +msgctxt "alt. month" +msgid "February" +msgstr "Февраль" + +msgctxt "alt. month" +msgid "March" +msgstr "Мартъи" + +msgctxt "alt. month" +msgid "April" +msgstr "Апрель" + +msgctxt "alt. month" +msgid "May" +msgstr "Май" + +msgctxt "alt. month" +msgid "June" +msgstr "Июнь" + +msgctxt "alt. month" +msgid "July" +msgstr "Июль" + +msgctxt "alt. month" +msgid "August" +msgstr "Август" + +msgctxt "alt. month" +msgid "September" +msgstr "Сентябрь" + +msgctxt "alt. month" +msgid "October" +msgstr "Октябрь" + +msgctxt "alt. month" +msgid "November" +msgstr "Ноябрь" + +msgctxt "alt. month" +msgid "December" +msgstr "Декабрь" + +msgid "This is not a valid IPv6 address." +msgstr "" + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "" + +msgid "or" +msgstr "кӕнӕ" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr ", " + +#, python-format +msgid "%d year" +msgid_plural "%d years" +msgstr[0] "%d аз" +msgstr[1] "%d азы" + +#, python-format +msgid "%d month" +msgid_plural "%d months" +msgstr[0] "%d мӕй" +msgstr[1] "%d мӕйы" + +#, python-format +msgid "%d week" +msgid_plural "%d weeks" +msgstr[0] "%d къуыри" +msgstr[1] "%d къуырийы" + +#, python-format +msgid "%d day" +msgid_plural "%d days" +msgstr[0] "%d бон" +msgstr[1] "%d боны" + +#, python-format +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "%d сахат" +msgstr[1] "%d сахаты" + +#, python-format +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "%d минут" +msgstr[1] "%d минуты" + +msgid "0 minutes" +msgstr "0 минуты" + +msgid "Forbidden" +msgstr "" + +msgid "CSRF verification failed. Request aborted." +msgstr "" + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your Web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" + +msgid "More information is available with DEBUG=True." +msgstr "" + +msgid "No year specified" +msgstr "Аз амынд нӕ уыд" + +msgid "Date out of range" +msgstr "" + +msgid "No month specified" +msgstr "Мӕй амынд нӕ уыд" + +msgid "No day specified" +msgstr "Бон амынд нӕ уыд" + +msgid "No week specified" +msgstr "Къуыри амынд нӕ уыд" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "Ницы %(verbose_name_plural)s ис" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" +"Фидӕн %(verbose_name_plural)s-мӕ бавналӕн нӕй, уымӕн ӕмӕ %(class_name)s." +"allow_future Мӕнг у." + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "Домӕнӕн ницы %(verbose_name)s ӕмбӕлы" + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "" + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "Мӕнг фарс (%(page_number)s): %(message)s" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "" + +msgid "Directory indexes are not allowed here." +msgstr "Ам директориты индекстӕ нӕй гӕнӕн." + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "" + +#, python-format +msgid "Index of %(directory)s" +msgstr "%(directory)s-ы индекс" + +msgid "Django: the Web framework for perfectionists with deadlines." +msgstr "" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" + +msgid "The install worked successfully! Congratulations!" +msgstr "" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not configured any " +"URLs." +msgstr "" + +msgid "Django Documentation" +msgstr "" + +msgid "Topics, references, & how-to’s" +msgstr "" + +msgid "Tutorial: A Polling App" +msgstr "" + +msgid "Get started with Django" +msgstr "" + +msgid "Django Community" +msgstr "" + +msgid "Connect, get help, or contribute" +msgstr "" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/pa/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/conf/locale/pa/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..a8fa88b4edae2b660b2ccf5d1c5c893083a0d026 GIT binary patch literal 11253 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 B%@P0r literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/pa/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/conf/locale/pa/LC_MESSAGES/django.po new file mode 100644 index 0000000000..d71b5f7b03 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/pa/LC_MESSAGES/django.po @@ -0,0 +1,1213 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# A S Alam , 2011,2013,2015 +# Jannis Leidel , 2011 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-09-27 22:40+0200\n" +"PO-Revision-Date: 2019-11-05 00:38+0000\n" +"Last-Translator: Ramiro Morales\n" +"Language-Team: Panjabi (Punjabi) (http://www.transifex.com/django/django/" +"language/pa/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: pa\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Afrikaans" +msgstr "ਅਫਰੀਕੀ" + +msgid "Arabic" +msgstr "ਅਰਬੀ" + +msgid "Asturian" +msgstr "" + +msgid "Azerbaijani" +msgstr "ਅਜ਼ਰਬਾਈਜਾਨੀ" + +msgid "Bulgarian" +msgstr "ਬੁਲਗਾਰੀਆਈ" + +msgid "Belarusian" +msgstr "ਬੇਲਾਰੂਸੀ" + +msgid "Bengali" +msgstr "ਬੰਗਾਲੀ" + +msgid "Breton" +msgstr "ਬਰੇਟੋਨ" + +msgid "Bosnian" +msgstr "ਬੋਸਨੀਆਈ" + +msgid "Catalan" +msgstr "ਕਾਟਾਲਾਨ" + +msgid "Czech" +msgstr "ਚੈੱਕ" + +msgid "Welsh" +msgstr "ਵੈਲਸ਼" + +msgid "Danish" +msgstr "ਡੈਨਿਸ਼" + +msgid "German" +msgstr "ਜਰਮਨ" + +msgid "Lower Sorbian" +msgstr "" + +msgid "Greek" +msgstr "ਗਰੀਕ" + +msgid "English" +msgstr "ਅੰਗਰੇਜ਼ੀ" + +msgid "Australian English" +msgstr "" + +msgid "British English" +msgstr "ਬਰਤਾਨੀਵੀਂ ਅੰਗਰੇਜ਼ੀ" + +msgid "Esperanto" +msgstr "" + +msgid "Spanish" +msgstr "ਸਪੇਨੀ" + +msgid "Argentinian Spanish" +msgstr "ਅਰਜਨਟੀਨੀ ਸਪੇਨੀ" + +msgid "Colombian Spanish" +msgstr "" + +msgid "Mexican Spanish" +msgstr "ਮੈਕਸੀਕਨ ਸਪੇਨੀ" + +msgid "Nicaraguan Spanish" +msgstr "" + +msgid "Venezuelan Spanish" +msgstr "" + +msgid "Estonian" +msgstr "ਈਸਟੋਨੀਆਈ" + +msgid "Basque" +msgstr "ਬਸਕਿਊ" + +msgid "Persian" +msgstr "ਪਰਸ਼ੀਆਈ" + +msgid "Finnish" +msgstr "ਫੈਨਿਸ਼" + +msgid "French" +msgstr "ਫਰੈਂਚ" + +msgid "Frisian" +msgstr "ਫ਼ਾਰਸੀ" + +msgid "Irish" +msgstr "ਆਈਰਸ਼" + +msgid "Scottish Gaelic" +msgstr "" + +msgid "Galician" +msgstr "ਗਲੀਸੀਆਈ" + +msgid "Hebrew" +msgstr "ਹੈਬਰਿਊ" + +msgid "Hindi" +msgstr "ਹਿੰਦੀ" + +msgid "Croatian" +msgstr "ਕਰੋਆਟੀਆਈ" + +msgid "Upper Sorbian" +msgstr "" + +msgid "Hungarian" +msgstr "ਹੰਗਰੀਆਈ" + +msgid "Armenian" +msgstr "" + +msgid "Interlingua" +msgstr "" + +msgid "Indonesian" +msgstr "ਇੰਡੋਨੇਸ਼ੀਆਈ" + +msgid "Ido" +msgstr "" + +msgid "Icelandic" +msgstr "ਆਈਸਲੈਂਡਿਕ" + +msgid "Italian" +msgstr "ਇਤਾਲਵੀ" + +msgid "Japanese" +msgstr "ਜਾਪਾਨੀ" + +msgid "Georgian" +msgstr "ਜਾਰਜੀਆਈ" + +msgid "Kabyle" +msgstr "" + +msgid "Kazakh" +msgstr "ਕਜ਼ਾਖ" + +msgid "Khmer" +msgstr "ਖਮੀਰ" + +msgid "Kannada" +msgstr "ਕੰਨੜ" + +msgid "Korean" +msgstr "ਕੋਰੀਆਈ" + +msgid "Luxembourgish" +msgstr "" + +msgid "Lithuanian" +msgstr "ਲੀਥੁਨੀਆਈ" + +msgid "Latvian" +msgstr "ਲਾਟਵੀਅਨ" + +msgid "Macedonian" +msgstr "ਮੈਕਡੋਨੀਆਈ" + +msgid "Malayalam" +msgstr "ਮਲਿਆਲਮ" + +msgid "Mongolian" +msgstr "ਮੰਗੋਲੀਆਈ" + +msgid "Marathi" +msgstr "ਮਰਾਠੀ" + +msgid "Burmese" +msgstr "" + +msgid "Norwegian Bokmål" +msgstr "" + +msgid "Nepali" +msgstr "ਨੇਪਾਲੀ" + +msgid "Dutch" +msgstr "ਡੱਚ" + +msgid "Norwegian Nynorsk" +msgstr "ਨਾਰਵੇਗੀਅਨ ਨਯਨੋਰਸਕ" + +msgid "Ossetic" +msgstr "" + +msgid "Punjabi" +msgstr "ਪੰਜਾਬੀ" + +msgid "Polish" +msgstr "ਪੋਲੈਂਡੀ" + +msgid "Portuguese" +msgstr "ਪੁਰਤਗਾਲੀ" + +msgid "Brazilian Portuguese" +msgstr "ਬਰਾਜ਼ੀਲੀ ਪੁਰਤਗਾਲੀ" + +msgid "Romanian" +msgstr "ਰੋਮਾਨੀਆਈ" + +msgid "Russian" +msgstr "ਰੂਸੀ" + +msgid "Slovak" +msgstr "ਸਲੋਵਾਕ" + +msgid "Slovenian" +msgstr "ਸਲੋਵੀਨੀਆਈ" + +msgid "Albanian" +msgstr "ਅਲਬੀਨੀਆਈ" + +msgid "Serbian" +msgstr "ਸਰਬੀਆਈ" + +msgid "Serbian Latin" +msgstr "ਸਰਬੀਆਈ ਲੈਟਿਨ" + +msgid "Swedish" +msgstr "ਸਵੀਡਨੀ" + +msgid "Swahili" +msgstr "" + +msgid "Tamil" +msgstr "ਤਾਮਿਲ" + +msgid "Telugu" +msgstr "ਤੇਲਗੂ" + +msgid "Thai" +msgstr "ਥਾਈ" + +msgid "Turkish" +msgstr "ਤੁਰਕ" + +msgid "Tatar" +msgstr "ਤਤਾਰ" + +msgid "Udmurt" +msgstr "" + +msgid "Ukrainian" +msgstr "ਯੂਕਰੇਨੀ" + +msgid "Urdu" +msgstr "ਉਰਦੂ" + +msgid "Uzbek" +msgstr "" + +msgid "Vietnamese" +msgstr "ਵੀਅਤਨਾਮੀ" + +msgid "Simplified Chinese" +msgstr "ਸਧਾਰਨ ਚੀਨੀ" + +msgid "Traditional Chinese" +msgstr "ਮੂਲ ਚੀਨੀ" + +msgid "Messages" +msgstr "ਸੁਨੇਹੇ" + +msgid "Site Maps" +msgstr "ਸਾਈਟ ਖਾਕੇ" + +msgid "Static Files" +msgstr "ਸਥਿਰ ਫਾਈਲਾਂ" + +msgid "Syndication" +msgstr "" + +msgid "That page number is not an integer" +msgstr "" + +msgid "That page number is less than 1" +msgstr "" + +msgid "That page contains no results" +msgstr "" + +msgid "Enter a valid value." +msgstr "ਠੀਕ ਮੁੱਲ ਦਿਓ" + +msgid "Enter a valid URL." +msgstr "ਠੀਕ URL ਦਿਉ।" + +msgid "Enter a valid integer." +msgstr "" + +msgid "Enter a valid email address." +msgstr "ਢੁੱਕਵਾਂ ਈਮੇਲ ਸਿਰਨਾਵਾਂ ਦਿਉ ਜੀ।" + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" + +msgid "Enter a valid IPv4 address." +msgstr "" + +msgid "Enter a valid IPv6 address." +msgstr "" + +msgid "Enter a valid IPv4 or IPv6 address." +msgstr "" + +msgid "Enter only digits separated by commas." +msgstr "" + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "" + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "" + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "" + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +msgstr[1] "" + +msgid "Enter a number." +msgstr "ਨੰਬਰ ਦਿਓ।" + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" + +msgid "Null characters are not allowed." +msgstr "" + +msgid "and" +msgstr "ਅਤੇ" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "" + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "" + +msgid "This field cannot be null." +msgstr "" + +msgid "This field cannot be blank." +msgstr "ਇਹ ਖੇਤਰ ਖਾਲੀ ਨਹੀਂ ਹੋ ਸਕਦਾ ਹੈ।" + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "" + +#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'. +#. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "ਖੇਤਰ ਦੀ ਕਿਸਮ: %(field_type)s" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "" + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "" + +msgid "Boolean (Either True or False)" +msgstr "" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "" + +msgid "Comma-separated integers" +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" + +msgid "Date (without time)" +msgstr "ਮਿਤੀ (ਬਿਨਾਂ ਸਮਾਂ)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" + +msgid "Date (with time)" +msgstr "ਮਿਤੀ (ਸਮੇਂ ਨਾਲ)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "" + +msgid "Decimal number" +msgstr "ਦਸ਼ਮਲਵ ਅੰਕ" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" + +msgid "Duration" +msgstr "ਅੰਤਰਾਲ" + +msgid "Email address" +msgstr "ਈਮੇਲ ਐਡਰੈੱਸ" + +msgid "File path" +msgstr "ਫਾਇਲ ਪਾਥ" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "" + +msgid "Floating point number" +msgstr "" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "" + +msgid "Integer" +msgstr "ਅੰਕ" + +msgid "Big (8 byte) integer" +msgstr "" + +msgid "IPv4 address" +msgstr "IPv4 ਸਿਰਨਾਵਾਂ" + +msgid "IP address" +msgstr "IP ਐਡਰੈੱਸ" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "" + +msgid "Boolean (Either True, False or None)" +msgstr "" + +msgid "Positive integer" +msgstr "" + +msgid "Positive small integer" +msgstr "" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "" + +msgid "Small integer" +msgstr "" + +msgid "Text" +msgstr "ਟੈਕਸਟ" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" + +msgid "Time" +msgstr "ਸਮਾਂ" + +msgid "URL" +msgstr "URL" + +msgid "Raw binary data" +msgstr "" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "" + +msgid "Universally unique identifier" +msgstr "" + +msgid "File" +msgstr "ਫਾਇਲ" + +msgid "Image" +msgstr "ਚਿੱਤਰ" + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "" + +msgid "Foreign Key (type determined by related field)" +msgstr "" + +msgid "One-to-one relationship" +msgstr "ਇੱਕ-ਤੋਂ-ਇੱਕ ਸਬੰਧ" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "" + +msgid "Many-to-many relationship" +msgstr "ਕਈ-ਤੋਂ-ਕਈ ਸਬੰਧ" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr "" + +msgid "This field is required." +msgstr "ਇਹ ਖੇਤਰ ਲਾਜ਼ਮੀ ਹੈ।" + +msgid "Enter a whole number." +msgstr "ਪੂਰਨ ਨੰਬਰ ਦਿਉ।" + +msgid "Enter a valid date." +msgstr "ਠੀਕ ਮਿਤੀ ਦਿਓ।" + +msgid "Enter a valid time." +msgstr "ਠੀਕ ਸਮਾਂ ਦਿਓ।" + +msgid "Enter a valid date/time." +msgstr "ਠੀਕ ਮਿਤੀ/ਸਮਾਂ ਦਿਓ।" + +msgid "Enter a valid duration." +msgstr "" + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "" + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "" + +msgid "No file was submitted." +msgstr "ਕੋਈ ਫਾਇਲ ਨਹੀਂ ਭੇਜੀ।" + +msgid "The submitted file is empty." +msgstr "ਦਿੱਤੀ ਫਾਇਲ ਖਾਲੀ ਹੈ।" + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" +msgstr[1] "" + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "" + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "" + +msgid "Enter a list of values." +msgstr "ਮੁੱਲ ਦੀ ਲਿਸਟ ਦਿਓ।" + +msgid "Enter a complete value." +msgstr "" + +msgid "Enter a valid UUID." +msgstr "" + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr ":" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "" + +msgid "ManagementForm data is missing or has been tampered with" +msgstr "" + +#, python-format +msgid "Please submit %d or fewer forms." +msgid_plural "Please submit %d or fewer forms." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "Please submit %d or more forms." +msgid_plural "Please submit %d or more forms." +msgstr[0] "" +msgstr[1] "" + +msgid "Order" +msgstr "ਲੜੀ" + +msgid "Delete" +msgstr "ਹਟਾਓ" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "" + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "" + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" + +msgid "Please correct the duplicate values below." +msgstr "" + +msgid "The inline value did not match the parent instance." +msgstr "" + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "" + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "" + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" + +msgid "Clear" +msgstr "ਸਾਫ਼ ਕਰੋ" + +msgid "Currently" +msgstr "ਮੌਜੂਦਾ" + +msgid "Change" +msgstr "ਬਦਲੋ" + +msgid "Unknown" +msgstr "ਅਣਜਾਣ" + +msgid "Yes" +msgstr "ਹਾਂ" + +msgid "No" +msgstr "ਨਹੀਂ" + +msgid "Year" +msgstr "" + +msgid "Month" +msgstr "" + +msgid "Day" +msgstr "" + +msgid "yes,no,maybe" +msgstr "ਹਾਂ,ਨਹੀਂ,ਸ਼ਾਇਦ" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)d ਬਾਈਟ" +msgstr[1] "%(size)d ਬਾਈਟ" + +#, python-format +msgid "%s KB" +msgstr "%s KB" + +#, python-format +msgid "%s MB" +msgstr "%s MB" + +#, python-format +msgid "%s GB" +msgstr "%s GB" + +#, python-format +msgid "%s TB" +msgstr "%s TB" + +#, python-format +msgid "%s PB" +msgstr "%s PB" + +msgid "p.m." +msgstr "p.m." + +msgid "a.m." +msgstr "a.m." + +msgid "PM" +msgstr "ਸ਼ਾਮ" + +msgid "AM" +msgstr "ਸਵੇਰ" + +msgid "midnight" +msgstr "ਅੱਧੀ-ਰਾਤ" + +msgid "noon" +msgstr "ਨੂਨ" + +msgid "Monday" +msgstr "ਸੋਮਵਾਰ" + +msgid "Tuesday" +msgstr "ਮੰਗਲਵਾਰ" + +msgid "Wednesday" +msgstr "ਬੁੱਧਵਾਰ" + +msgid "Thursday" +msgstr "ਵੀਰਵਾਰ" + +msgid "Friday" +msgstr "ਸ਼ੁੱਕਰਵਾਰ" + +msgid "Saturday" +msgstr "ਸ਼ਨਿੱਚਰਵਾਰ" + +msgid "Sunday" +msgstr "ਐਤਵਾਰ" + +msgid "Mon" +msgstr "ਸੋਮ" + +msgid "Tue" +msgstr "ਮੰਗ" + +msgid "Wed" +msgstr "ਬੁੱਧ" + +msgid "Thu" +msgstr "ਵੀਰ" + +msgid "Fri" +msgstr "ਸ਼ੁੱਕ" + +msgid "Sat" +msgstr "ਸ਼ਨਿੱ" + +msgid "Sun" +msgstr "ਐਤ" + +msgid "January" +msgstr "ਜਨਵਰੀ" + +msgid "February" +msgstr "ਫਰਵਰੀ" + +msgid "March" +msgstr "ਮਾਰਚ" + +msgid "April" +msgstr "ਅਪਰੈਲ" + +msgid "May" +msgstr "ਮਈ" + +msgid "June" +msgstr "ਜੂਨ" + +msgid "July" +msgstr "ਜੁਲਾਈ" + +msgid "August" +msgstr "ਅਗਸਤ" + +msgid "September" +msgstr "ਸਤੰਬਰ" + +msgid "October" +msgstr "ਅਕਤੂਬਰ" + +msgid "November" +msgstr "ਨਵੰਬਰ" + +msgid "December" +msgstr "ਦਸੰਬਰ" + +msgid "jan" +msgstr "ਜਨ" + +msgid "feb" +msgstr "ਫਰ" + +msgid "mar" +msgstr "ਮਾਰ" + +msgid "apr" +msgstr "ਅਪ" + +msgid "may" +msgstr "ਮਈ" + +msgid "jun" +msgstr "ਜੂਨ" + +msgid "jul" +msgstr "ਜੁਲ" + +msgid "aug" +msgstr "ਅਗ" + +msgid "sep" +msgstr "ਸਤੰ" + +msgid "oct" +msgstr "ਅਕ" + +msgid "nov" +msgstr "ਨਵੰ" + +msgid "dec" +msgstr "ਦਸੰ" + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "ਜਨ" + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "ਫਰ" + +msgctxt "abbrev. month" +msgid "March" +msgstr "ਮਾਰ" + +msgctxt "abbrev. month" +msgid "April" +msgstr "ਅਪ" + +msgctxt "abbrev. month" +msgid "May" +msgstr "ਮਈ" + +msgctxt "abbrev. month" +msgid "June" +msgstr "ਜੂਨ" + +msgctxt "abbrev. month" +msgid "July" +msgstr "ਜੁਲ" + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "ਅਗ" + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "ਸਤੰ" + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "ਅਕਤੂ" + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "ਨਵੰ" + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "ਦਸੰ" + +msgctxt "alt. month" +msgid "January" +msgstr "ਜਨਵਰੀ" + +msgctxt "alt. month" +msgid "February" +msgstr "ਫਰਵਰੀ" + +msgctxt "alt. month" +msgid "March" +msgstr "ਮਾਰਚ" + +msgctxt "alt. month" +msgid "April" +msgstr "ਅਪਰੈਲ" + +msgctxt "alt. month" +msgid "May" +msgstr "ਮਈ" + +msgctxt "alt. month" +msgid "June" +msgstr "ਜੂਨ" + +msgctxt "alt. month" +msgid "July" +msgstr "ਜੁਲਾਈ" + +msgctxt "alt. month" +msgid "August" +msgstr "ਅਗਸਤ" + +msgctxt "alt. month" +msgid "September" +msgstr "ਸਤੰਬਰ" + +msgctxt "alt. month" +msgid "October" +msgstr "ਅਕਤੂਬਰ" + +msgctxt "alt. month" +msgid "November" +msgstr "ਨਵੰਬਰ" + +msgctxt "alt. month" +msgid "December" +msgstr "ਦਸੰਬਰ" + +msgid "This is not a valid IPv6 address." +msgstr "" + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "" + +msgid "or" +msgstr "ਜਾਂ" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr "," + +#, python-format +msgid "%d year" +msgid_plural "%d years" +msgstr[0] "%d ਸਾਲ" +msgstr[1] "%d ਸਾਲ" + +#, python-format +msgid "%d month" +msgid_plural "%d months" +msgstr[0] "%d ਮਹੀਨਾ" +msgstr[1] "%d ਮਹੀਨੇ" + +#, python-format +msgid "%d week" +msgid_plural "%d weeks" +msgstr[0] "%d ਹਫ਼ਤਾ" +msgstr[1] "%d ਹਫ਼ਤੇ" + +#, python-format +msgid "%d day" +msgid_plural "%d days" +msgstr[0] "%d ਦਿਨ" +msgstr[1] "%d ਦਿਨ" + +#, python-format +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "%d ਘੰਟਾ" +msgstr[1] "%d ਘੰਟੇ" + +#, python-format +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "%d ਮਿੰਟ" +msgstr[1] "%d ਮਿੰਟ" + +msgid "0 minutes" +msgstr "0 ਮਿੰਟ" + +msgid "Forbidden" +msgstr "" + +msgid "CSRF verification failed. Request aborted." +msgstr "" + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your Web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" + +msgid "More information is available with DEBUG=True." +msgstr "" + +msgid "No year specified" +msgstr "ਕੋਈ ਸਾਲ ਨਹੀਂ ਦਿੱਤਾ" + +msgid "Date out of range" +msgstr "" + +msgid "No month specified" +msgstr "ਕੋਈ ਮਹੀਨਾ ਨਹੀਂ ਦਿੱਤਾ" + +msgid "No day specified" +msgstr "ਕੋਈ ਦਿਨ ਨਹੀਂ ਦਿੱਤਾ" + +msgid "No week specified" +msgstr "ਕੋਈ ਹਫ਼ਤਾ ਨਹੀਂ ਦਿੱਤਾ" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "" + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "" + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "" + +msgid "Directory indexes are not allowed here." +msgstr "" + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "" + +#, python-format +msgid "Index of %(directory)s" +msgstr "%(directory)s ਦਾ ਇੰਡੈਕਸ" + +msgid "Django: the Web framework for perfectionists with deadlines." +msgstr "" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" + +msgid "The install worked successfully! Congratulations!" +msgstr "" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not configured any " +"URLs." +msgstr "" + +msgid "Django Documentation" +msgstr "" + +msgid "Topics, references, & how-to’s" +msgstr "" + +msgid "Tutorial: A Polling App" +msgstr "" + +msgid "Get started with Django" +msgstr "" + +msgid "Django Community" +msgstr "" + +msgid "Connect, get help, or contribute" +msgstr "" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/pl/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/conf/locale/pl/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..56a969979b28c5bdec162c85765f88a7b81964fb GIT binary patch literal 30667 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/pl/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/conf/locale/pl/LC_MESSAGES/django.po new file mode 100644 index 0000000000..7dc17ae2db --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/pl/LC_MESSAGES/django.po @@ -0,0 +1,1422 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# 8ffa075ab2f53c280beb2c066769d1ac_169beb5 <462ee687bbf3107fab5af73e8cc690d0_217822>, 2014 +# Adam Stachowicz , 2015 +# angularcircle, 2011,2013 +# angularcircle, 2011,2013 +# angularcircle, 2014 +# Dariusz Paluch , 2015 +# Darek, 2022 +# Jannis Leidel , 2011 +# Janusz Harkot , 2014-2015 +# Kacper Krupa , 2013 +# Karol , 2012 +# 0d5641585fd67fbdb97037c19ab83e4c_18c98b0 , 2011 +# 0d5641585fd67fbdb97037c19ab83e4c_18c98b0 , 2011 +# Łukasz Rekucki (lqc) , 2011 +# Maciej Olko , 2016-2021 +# Maciej Olko , 2023 +# Maciej Olko , 2015 +# Mariusz Felisiak , 2020-2021,2023-2024 +# Michał Pasternak , 2013 +# c10516f0462e552b4c3672569f0745a7_cc5cca2 <841826256cd8f47d0e443806a8e56601_19204>, 2012 +# Piotr Meuś , 2014 +# c10516f0462e552b4c3672569f0745a7_cc5cca2 <841826256cd8f47d0e443806a8e56601_19204>, 2012 +# Quadric , 2014 +# Radek Czajka , 2013 +# Radek Czajka , 2013 +# Roman Barczyński, 2012 +# 8ffa075ab2f53c280beb2c066769d1ac_169beb5 <462ee687bbf3107fab5af73e8cc690d0_217822>, 2014 +# Tomasz Kajtoch , 2016-2017 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-05-22 11:46-0300\n" +"PO-Revision-Date: 2024-08-07 06:49+0000\n" +"Last-Translator: Mariusz Felisiak , " +"2020-2021,2023-2024\n" +"Language-Team: Polish (http://app.transifex.com/django/django/language/pl/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: pl\n" +"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && " +"(n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && " +"n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n" + +msgid "Afrikaans" +msgstr "afrykanerski" + +msgid "Arabic" +msgstr "arabski" + +msgid "Algerian Arabic" +msgstr "algierski arabski" + +msgid "Asturian" +msgstr "asturyjski" + +msgid "Azerbaijani" +msgstr "azerski" + +msgid "Bulgarian" +msgstr "bułgarski" + +msgid "Belarusian" +msgstr "białoruski" + +msgid "Bengali" +msgstr "bengalski" + +msgid "Breton" +msgstr "bretoński" + +msgid "Bosnian" +msgstr "bośniacki" + +msgid "Catalan" +msgstr "kataloński" + +msgid "Central Kurdish (Sorani)" +msgstr "sorani" + +msgid "Czech" +msgstr "czeski" + +msgid "Welsh" +msgstr "walijski" + +msgid "Danish" +msgstr "duński" + +msgid "German" +msgstr "niemiecki" + +msgid "Lower Sorbian" +msgstr "dolnołużycki" + +msgid "Greek" +msgstr "grecki" + +msgid "English" +msgstr "angielski" + +msgid "Australian English" +msgstr "australijski angielski" + +msgid "British English" +msgstr "brytyjski angielski" + +msgid "Esperanto" +msgstr "esperanto" + +msgid "Spanish" +msgstr "hiszpański" + +msgid "Argentinian Spanish" +msgstr "hiszpański argentyński" + +msgid "Colombian Spanish" +msgstr "hiszpański kolumbijski" + +msgid "Mexican Spanish" +msgstr "hiszpański meksykański" + +msgid "Nicaraguan Spanish" +msgstr "hiszpański nikaraguański" + +msgid "Venezuelan Spanish" +msgstr "hiszpański wenezuelski" + +msgid "Estonian" +msgstr "estoński" + +msgid "Basque" +msgstr "baskijski" + +msgid "Persian" +msgstr "perski" + +msgid "Finnish" +msgstr "fiński" + +msgid "French" +msgstr "francuski" + +msgid "Frisian" +msgstr "fryzyjski" + +msgid "Irish" +msgstr "irlandzki" + +msgid "Scottish Gaelic" +msgstr "Szkocki gaelicki" + +msgid "Galician" +msgstr "galicyjski" + +msgid "Hebrew" +msgstr "hebrajski" + +msgid "Hindi" +msgstr "hindi" + +msgid "Croatian" +msgstr "chorwacki" + +msgid "Upper Sorbian" +msgstr "górnołużycki" + +msgid "Hungarian" +msgstr "węgierski" + +msgid "Armenian" +msgstr "ormiański" + +msgid "Interlingua" +msgstr "interlingua" + +msgid "Indonesian" +msgstr "indonezyjski" + +msgid "Igbo" +msgstr "igbo" + +msgid "Ido" +msgstr "ido" + +msgid "Icelandic" +msgstr "islandzki" + +msgid "Italian" +msgstr "włoski" + +msgid "Japanese" +msgstr "japoński" + +msgid "Georgian" +msgstr "gruziński" + +msgid "Kabyle" +msgstr "kabylski" + +msgid "Kazakh" +msgstr "kazachski" + +msgid "Khmer" +msgstr "khmerski" + +msgid "Kannada" +msgstr "kannada" + +msgid "Korean" +msgstr "koreański" + +msgid "Kyrgyz" +msgstr "kirgiski" + +msgid "Luxembourgish" +msgstr "luksemburski" + +msgid "Lithuanian" +msgstr "litewski" + +msgid "Latvian" +msgstr "łotewski" + +msgid "Macedonian" +msgstr "macedoński" + +msgid "Malayalam" +msgstr "malajski" + +msgid "Mongolian" +msgstr "mongolski" + +msgid "Marathi" +msgstr "marathi" + +msgid "Malay" +msgstr "malajski" + +msgid "Burmese" +msgstr "birmański" + +msgid "Norwegian Bokmål" +msgstr "norweski (bokmål)" + +msgid "Nepali" +msgstr "nepalski" + +msgid "Dutch" +msgstr "holenderski" + +msgid "Norwegian Nynorsk" +msgstr "norweski (nynorsk)" + +msgid "Ossetic" +msgstr "osetyjski" + +msgid "Punjabi" +msgstr "pendżabski" + +msgid "Polish" +msgstr "polski" + +msgid "Portuguese" +msgstr "portugalski" + +msgid "Brazilian Portuguese" +msgstr "portugalski brazylijski" + +msgid "Romanian" +msgstr "rumuński" + +msgid "Russian" +msgstr "rosyjski" + +msgid "Slovak" +msgstr "słowacki" + +msgid "Slovenian" +msgstr "słoweński" + +msgid "Albanian" +msgstr "albański" + +msgid "Serbian" +msgstr "serbski" + +msgid "Serbian Latin" +msgstr "serbski (łaciński)" + +msgid "Swedish" +msgstr "szwedzki" + +msgid "Swahili" +msgstr "suahili" + +msgid "Tamil" +msgstr "tamilski" + +msgid "Telugu" +msgstr "telugu" + +msgid "Tajik" +msgstr "tadżycki" + +msgid "Thai" +msgstr "tajski" + +msgid "Turkmen" +msgstr "turkmeński" + +msgid "Turkish" +msgstr "turecki" + +msgid "Tatar" +msgstr "tatarski" + +msgid "Udmurt" +msgstr "udmurcki" + +msgid "Uyghur" +msgstr "ujgurski" + +msgid "Ukrainian" +msgstr "ukraiński" + +msgid "Urdu" +msgstr "urdu" + +msgid "Uzbek" +msgstr "uzbecki" + +msgid "Vietnamese" +msgstr "wietnamski" + +msgid "Simplified Chinese" +msgstr "chiński uproszczony" + +msgid "Traditional Chinese" +msgstr "chiński tradycyjny" + +msgid "Messages" +msgstr "Wiadomości" + +msgid "Site Maps" +msgstr "Mapy stron" + +msgid "Static Files" +msgstr "Pliki statyczne" + +msgid "Syndication" +msgstr "Syndykacja treści" + +#. Translators: String used to replace omitted page numbers in elided page +#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10]. +msgid "…" +msgstr "…" + +msgid "That page number is not an integer" +msgstr "Ten numer strony nie jest liczbą całkowitą" + +msgid "That page number is less than 1" +msgstr "Ten numer strony jest mniejszy niż 1" + +msgid "That page contains no results" +msgstr "Ta strona nie zawiera wyników" + +msgid "Enter a valid value." +msgstr "Wpisz poprawną wartość." + +msgid "Enter a valid domain name." +msgstr "Wpisz poprawną nazwę domeny." + +msgid "Enter a valid URL." +msgstr "Wpisz poprawny URL." + +msgid "Enter a valid integer." +msgstr "Wprowadź poprawną liczbę całkowitą." + +msgid "Enter a valid email address." +msgstr "Wprowadź poprawny adres email." + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" +"Wpisz poprawny „slug” zawierający litery, cyfry, podkreślenia i myślniki." + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" +"Wpisz poprawny „slug” zawierający litery Unicode, cyfry, podkreślenia i " +"myślniki." + +#, python-format +msgid "Enter a valid %(protocol)s address." +msgstr "Wpisz poprawny adres %(protocol)s. " + +msgid "IPv4" +msgstr "IPv4" + +msgid "IPv6" +msgstr "IPv6" + +msgid "IPv4 or IPv6" +msgstr "IPv4 lub IPv6" + +msgid "Enter only digits separated by commas." +msgstr "Wpisz tylko cyfry oddzielone przecinkami." + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "Upewnij się, że ta wartość jest %(limit_value)s (jest %(show_value)s)." + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "Upewnij się, że ta wartość jest mniejsza lub równa %(limit_value)s." + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "Upewnij się, że ta wartość jest większa lub równa %(limit_value)s." + +#, python-format +msgid "Ensure this value is a multiple of step size %(limit_value)s." +msgstr "" +"Upewnij się, że ta wartość jest wielokrotnością wielkości " +"kroku%(limit_value)s." + +#, python-format +msgid "" +"Ensure this value is a multiple of step size %(limit_value)s, starting from " +"%(offset)s, e.g. %(offset)s, %(valid_value1)s, %(valid_value2)s, and so on." +msgstr "" +"Upewnij się, że ta wartość jest wielokrotnością %(limit_value)s, zaczynają " +"od %(offset)s, e.g. %(offset)s, %(valid_value1)s, %(valid_value2)s i tak " +"dalej." + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Upewnij się, że ta wartość ma przynajmniej %(limit_value)d znak (obecnie ma " +"%(show_value)d)." +msgstr[1] "" +"Upewnij się, że ta wartość ma przynajmniej %(limit_value)d znaki (obecnie ma " +"%(show_value)d)." +msgstr[2] "" +"Upewnij się, że ta wartość ma przynajmniej %(limit_value)d znaków (obecnie " +"ma %(show_value)d)." +msgstr[3] "" +"Upewnij się, że ta wartość ma przynajmniej %(limit_value)d znaków (obecnie " +"ma %(show_value)d)." + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Upewnij się, że ta wartość ma co najwyżej %(limit_value)d znak (obecnie ma " +"%(show_value)d)." +msgstr[1] "" +"Upewnij się, że ta wartość ma co najwyżej %(limit_value)d znaki (obecnie ma " +"%(show_value)d)." +msgstr[2] "" +"Upewnij się, że ta wartość ma co najwyżej %(limit_value)d znaków (obecnie ma " +"%(show_value)d)." +msgstr[3] "" +"Upewnij się, że ta wartość ma co najwyżej %(limit_value)d znaków (obecnie ma " +"%(show_value)d)." + +msgid "Enter a number." +msgstr "Wpisz liczbę." + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "Upewnij się, że łącznie nie ma więcej niż %(max)s cyfry." +msgstr[1] "Upewnij się, że łącznie nie ma więcej niż %(max)s cyfry." +msgstr[2] "Upewnij się, że łącznie nie ma więcej niż %(max)s cyfr." +msgstr[3] "Upewnij się, że łącznie nie ma więcej niż %(max)s cyfr." + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "" +"Upewnij się, że liczba ma nie więcej niż %(max)s cyfrę po przecinku." +msgstr[1] "" +"Upewnij się, że liczba ma nie więcej niż %(max)s cyfry po przecinku." +msgstr[2] "Upewnij się, że liczba ma nie więcej niż %(max)s cyfr po przecinku." +msgstr[3] "Upewnij się, że liczba ma nie więcej niż %(max)s cyfr po przecinku." + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "" +"Upewnij się, że liczba ma nie więcej niż %(max)s cyfrę przed przecinkiem." +msgstr[1] "" +"Upewnij się, że liczba ma nie więcej niż %(max)s cyfry przed przecinkiem." +msgstr[2] "" +"Upewnij się, że liczba ma nie więcej niż %(max)s cyfr przed przecinkiem." +msgstr[3] "" +"Upewnij się, że liczba ma nie więcej niż %(max)s cyfr przed przecinkiem." + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" +"Rozszerzenie pliku „%(extension)s” jest niedozwolone. Dozwolone rozszerzenia " +"to: %(allowed_extensions)s." + +msgid "Null characters are not allowed." +msgstr "Znaki null są niedozwolone." + +msgid "and" +msgstr "i" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "%(model_name)s z tymi %(field_labels)s już istnieje." + +#, python-format +msgid "Constraint “%(name)s” is violated." +msgstr "Ograniczenie \"%(name)s\" zostało naruszone." + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "Wartość %(value)r nie jest poprawnym wyborem." + +msgid "This field cannot be null." +msgstr "To pole nie może być puste." + +msgid "This field cannot be blank." +msgstr "To pole nie może być puste." + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "Istnieje już %(model_name)s z tą wartością pola %(field_label)s." + +#. Translators: The 'lookup_type' is one of 'date', 'year' or +#. 'month'. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" +"Wartość pola %(field_label)s musi być unikatowa dla %(date_field_label)s " +"%(lookup_type)s." + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "Pole typu: %(field_type)s" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "Wartością „%(value)s” musi być True albo False." + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "Wartością „%(value)s” musi być True, False lub None." + +msgid "Boolean (Either True or False)" +msgstr "Wartość logiczna (True lub False – prawda lub fałsz)" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "Ciąg znaków (do %(max_length)s znaków)" + +msgid "String (unlimited)" +msgstr "Ciąg znaków (bez limitu)" + +msgid "Comma-separated integers" +msgstr "Liczby całkowite rozdzielone przecinkami" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" +"Wartość „%(value)s” ma nieprawidłowy format daty. Musi być ona w formacie " +"YYYY-MM-DD." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" +"Wartość „%(value)s” ma prawidłowy format (YYYY-MM-DD), ale jest " +"nieprawidłową datą." + +msgid "Date (without time)" +msgstr "Data (bez godziny)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" +"Wartość „%(value)s” ma nieprawidłowy format. Musi być ona w formacie YYYY-MM-" +"DD HH:MM[:ss[.uuuuuu]][TZ]." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" +"Wartość „%(value)s” ma prawidłowy format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]), ale jest nieprawidłową datą/godziną." + +msgid "Date (with time)" +msgstr "Data (z godziną)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "Wartością „%(value)s” musi być liczba dziesiętna." + +msgid "Decimal number" +msgstr "Liczba dziesiętna" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" +"Wartość „%(value)s” ma błędny format. Poprawny format to [DD] [HH:[MM:]]ss[." +"uuuuuu]." + +msgid "Duration" +msgstr "Czas trwania" + +msgid "Email address" +msgstr "Adres e-mail" + +msgid "File path" +msgstr "Ścieżka do pliku" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "Wartością „%(value)s” musi być liczba zmiennoprzecinkowa." + +msgid "Floating point number" +msgstr "Liczba zmiennoprzecinkowa" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "Wartością „%(value)s” musi być liczba całkowita." + +msgid "Integer" +msgstr "Liczba całkowita" + +msgid "Big (8 byte) integer" +msgstr "Duża liczba całkowita (8 bajtów)" + +msgid "Small integer" +msgstr "Mała liczba całkowita" + +msgid "IPv4 address" +msgstr "adres IPv4" + +msgid "IP address" +msgstr "Adres IP" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "Wartością „%(value)s” musi być None, True lub False." + +msgid "Boolean (Either True, False or None)" +msgstr "Wartość logiczna (True, False, None – prawda, fałsz lub nic)" + +msgid "Positive big integer" +msgstr "Dodatnia duża liczba całkowita" + +msgid "Positive integer" +msgstr "Dodatnia liczba całkowita" + +msgid "Positive small integer" +msgstr "Dodatnia mała liczba całkowita" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "Slug (do %(max_length)s znaków)" + +msgid "Text" +msgstr "Tekst" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" +"Wartość „%(value)s” ma nieprawidłowy format. Musi być ona w formacie HH:MM[:" +"ss[.uuuuuu]]." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" +"Wartość „%(value)s” ma prawidłowy format (HH:MM[:ss[.uuuuuu]]), ale jest " +"nieprawidłową wartością czasu." + +msgid "Time" +msgstr "Czas" + +msgid "URL" +msgstr "URL" + +msgid "Raw binary data" +msgstr "Dane w postaci binarnej" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "Wartość „%(value)s” nie jest poprawnym UUID-em." + +msgid "Universally unique identifier" +msgstr "Uniwersalnie unikalny identyfikator" + +msgid "File" +msgstr "Plik" + +msgid "Image" +msgstr "Plik graficzny" + +msgid "A JSON object" +msgstr "Obiekt JSON" + +msgid "Value must be valid JSON." +msgstr "Wartość musi być poprawnym JSON-em." + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "%(model)s z polem %(field)s o wartości %(value)r nie istnieje." + +msgid "Foreign Key (type determined by related field)" +msgstr "Klucz obcy (typ określony przez pole powiązane)" + +msgid "One-to-one relationship" +msgstr "Powiązanie jeden do jednego" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "powiązanie %(from)s do %(to)s" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "powiązania %(from)s do %(to)s" + +msgid "Many-to-many relationship" +msgstr "Powiązanie wiele-do-wielu" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr ":?.!" + +msgid "This field is required." +msgstr "To pole jest wymagane." + +msgid "Enter a whole number." +msgstr "Wpisz liczbę całkowitą." + +msgid "Enter a valid date." +msgstr "Wpisz poprawną datę." + +msgid "Enter a valid time." +msgstr "Wpisz poprawną godzinę." + +msgid "Enter a valid date/time." +msgstr "Wpisz poprawną datę/godzinę." + +msgid "Enter a valid duration." +msgstr "Wpisz poprawny czas trwania." + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "Liczba dni musi wynosić między {min_days} a {max_days}." + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "Nie wysłano żadnego pliku. Sprawdź typ kodowania formularza." + +msgid "No file was submitted." +msgstr "Żaden plik nie został przesłany." + +msgid "The submitted file is empty." +msgstr "Wysłany plik jest pusty." + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" +"Upewnij się, że nazwa pliku ma co najwyżej %(max)d znak (obecnie ma " +"%(length)d)." +msgstr[1] "" +"Upewnij się, że nazwa pliku ma co najwyżej %(max)d znaki (obecnie ma " +"%(length)d)." +msgstr[2] "" +"Upewnij się, że nazwa pliku ma co najwyżej %(max)d znaków (obecnie ma " +"%(length)d)." +msgstr[3] "" +"Upewnij się, że nazwa pliku ma co najwyżej %(max)d znaków (obecnie ma " +"%(length)d)." + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "Prześlij plik lub zaznacz by usunąć, ale nie oba na raz." + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" +"Prześlij poprawny plik graficzny. Aktualnie przesłany plik nie jest " +"grafiką lub jest uszkodzony." + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "Wybierz poprawną wartość. %(value)s nie jest żadną z dostępnych opcji." + +msgid "Enter a list of values." +msgstr "Podaj listę wartości." + +msgid "Enter a complete value." +msgstr "Wprowadź kompletną wartość." + +msgid "Enter a valid UUID." +msgstr "Wpisz poprawny UUID." + +msgid "Enter a valid JSON." +msgstr "Wpisz poprawny JSON." + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr ":" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "(Ukryte pole %(name)s) %(error)s" + +#, python-format +msgid "" +"ManagementForm data is missing or has been tampered with. Missing fields: " +"%(field_names)s. You may need to file a bug report if the issue persists." +msgstr "" +"Brakuje danych ManagementForm lub zostały one naruszone. Brakujące pola: " +"%(field_names)s. Złóż zgłoszenie błędu, jeśli problem się powtarza." + +#, python-format +msgid "Please submit at most %(num)d form." +msgid_plural "Please submit at most %(num)d forms." +msgstr[0] "Proszę wysłać co najwyżej %(num)dformularz." +msgstr[1] "Proszę wysłać co najwyżej %(num)d formularze." +msgstr[2] "Proszę wysłać co najwyżej %(num)dformularzy." +msgstr[3] "Proszę wysłać co najwyżej %(num)dformularzy." + +#, python-format +msgid "Please submit at least %(num)d form." +msgid_plural "Please submit at least %(num)d forms." +msgstr[0] "Proszę wysłać co najmniej %(num)d formularz." +msgstr[1] "Proszę wysłać co najmniej %(num)dformularze." +msgstr[2] "Proszę wysłać co najmniej %(num)d formularzy." +msgstr[3] "Proszę wysłać co najmniej %(num)d formularzy." + +msgid "Order" +msgstr "Kolejność" + +msgid "Delete" +msgstr "Usuń" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "Popraw zduplikowane dane w %(field)s." + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "Popraw zduplikowane dane w %(field)s, które muszą być unikalne." + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"Popraw zduplikowane dane w %(field_name)s, które wymaga unikalności dla " +"%(lookup)s w polu %(date_field)s." + +msgid "Please correct the duplicate values below." +msgstr "Popraw poniższe zduplikowane wartości." + +msgid "The inline value did not match the parent instance." +msgstr "Wartość inline nie pasuje do obiektu rodzica." + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "Wybierz poprawną wartość. Podana nie jest jednym z dostępnych wyborów." + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "„%(pk)s” nie jest poprawną wartością." + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" +"%(datetime)s nie mógł zostać zinterpretowany w strefie czasowej " +"%(current_timezone)s; może być niejednoznaczny lub może nie istnieć." + +msgid "Clear" +msgstr "Wyczyść" + +msgid "Currently" +msgstr "Teraz" + +msgid "Change" +msgstr "Zmień" + +msgid "Unknown" +msgstr "Nieznany" + +msgid "Yes" +msgstr "Tak" + +msgid "No" +msgstr "Nie" + +#. Translators: Please do not add spaces around commas. +msgid "yes,no,maybe" +msgstr "tak,nie,może" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)d bajt" +msgstr[1] "%(size)d bajty" +msgstr[2] "%(size)d bajtów" +msgstr[3] "%(size)d bajtów" + +#, python-format +msgid "%s KB" +msgstr "%s KB" + +#, python-format +msgid "%s MB" +msgstr "%s MB" + +#, python-format +msgid "%s GB" +msgstr "%s GB" + +#, python-format +msgid "%s TB" +msgstr "%s TB" + +#, python-format +msgid "%s PB" +msgstr "%s PB" + +msgid "p.m." +msgstr "po południu" + +msgid "a.m." +msgstr "rano" + +msgid "PM" +msgstr "po południu" + +msgid "AM" +msgstr "rano" + +msgid "midnight" +msgstr "północ" + +msgid "noon" +msgstr "południe" + +msgid "Monday" +msgstr "Poniedziałek" + +msgid "Tuesday" +msgstr "Wtorek" + +msgid "Wednesday" +msgstr "Środa" + +msgid "Thursday" +msgstr "Czwartek" + +msgid "Friday" +msgstr "Piątek" + +msgid "Saturday" +msgstr "Sobota" + +msgid "Sunday" +msgstr "Niedziela" + +msgid "Mon" +msgstr "Pon" + +msgid "Tue" +msgstr "Wt" + +msgid "Wed" +msgstr "Śr" + +msgid "Thu" +msgstr "Czw" + +msgid "Fri" +msgstr "Pt" + +msgid "Sat" +msgstr "So" + +msgid "Sun" +msgstr "Nd" + +msgid "January" +msgstr "Styczeń" + +msgid "February" +msgstr "Luty" + +msgid "March" +msgstr "Marzec" + +msgid "April" +msgstr "Kwiecień" + +msgid "May" +msgstr "Maj" + +msgid "June" +msgstr "Czerwiec" + +msgid "July" +msgstr "Lipiec" + +msgid "August" +msgstr "Sierpień" + +msgid "September" +msgstr "Wrzesień" + +msgid "October" +msgstr "Październik" + +msgid "November" +msgstr "Listopad" + +msgid "December" +msgstr "Grudzień" + +msgid "jan" +msgstr "sty" + +msgid "feb" +msgstr "lut" + +msgid "mar" +msgstr "mar" + +msgid "apr" +msgstr "kwi" + +msgid "may" +msgstr "maj" + +msgid "jun" +msgstr "cze" + +msgid "jul" +msgstr "lip" + +msgid "aug" +msgstr "sie" + +msgid "sep" +msgstr "wrz" + +msgid "oct" +msgstr "paź" + +msgid "nov" +msgstr "lis" + +msgid "dec" +msgstr "gru" + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "Sty." + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "Lut." + +msgctxt "abbrev. month" +msgid "March" +msgstr "Mar." + +msgctxt "abbrev. month" +msgid "April" +msgstr "Kwi." + +msgctxt "abbrev. month" +msgid "May" +msgstr "Maj" + +msgctxt "abbrev. month" +msgid "June" +msgstr "Cze." + +msgctxt "abbrev. month" +msgid "July" +msgstr "Lip." + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "Sie." + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "Wrz." + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "Paź." + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "Lis." + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "Gru" + +msgctxt "alt. month" +msgid "January" +msgstr "stycznia" + +msgctxt "alt. month" +msgid "February" +msgstr "lutego" + +msgctxt "alt. month" +msgid "March" +msgstr "marca" + +msgctxt "alt. month" +msgid "April" +msgstr "kwietnia" + +msgctxt "alt. month" +msgid "May" +msgstr "maja" + +msgctxt "alt. month" +msgid "June" +msgstr "czerwca" + +msgctxt "alt. month" +msgid "July" +msgstr "lipca" + +msgctxt "alt. month" +msgid "August" +msgstr "sierpnia" + +msgctxt "alt. month" +msgid "September" +msgstr "września" + +msgctxt "alt. month" +msgid "October" +msgstr "października" + +msgctxt "alt. month" +msgid "November" +msgstr "listopada" + +msgctxt "alt. month" +msgid "December" +msgstr "grudnia" + +msgid "This is not a valid IPv6 address." +msgstr "To nie jest poprawny adres IPv6." + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "%(truncated_text)s…" + +msgid "or" +msgstr "lub" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr ", " + +#, python-format +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "%(num)d rok" +msgstr[1] "%(num)d lata" +msgstr[2] "%(num)d lat" +msgstr[3] "%(num)d roku" + +#, python-format +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "%(num)d miesiąc" +msgstr[1] "%(num)d miesiące" +msgstr[2] "%(num)d miesięcy" +msgstr[3] "%(num)d miesiąca" + +#, python-format +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "%(num)d tydzień" +msgstr[1] "%(num)d tygodnie" +msgstr[2] "%(num)d tygodni" +msgstr[3] "%(num)d tygodnia" + +#, python-format +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "%(num)d dzień" +msgstr[1] "%(num)d dni" +msgstr[2] "%(num)d dni" +msgstr[3] "%(num)d dnia" + +#, python-format +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "%(num)d godzina" +msgstr[1] "%(num)d godziny" +msgstr[2] "%(num)d godzin" +msgstr[3] "%(num)d godziny" + +#, python-format +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "%(num)d minuta" +msgstr[1] "%(num)d minuty" +msgstr[2] "%(num)d minut" +msgstr[3] "%(num)d minut" + +msgid "Forbidden" +msgstr "Dostęp zabroniony" + +msgid "CSRF verification failed. Request aborted." +msgstr "Weryfikacja CSRF nie powiodła się. Żądanie zostało przerwane." + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" +"Widzisz tę wiadomość, ponieważ ta witryna HTTPS wymaga, aby przeglądarka " +"wysłała „nagłówek Referer”, a żaden nie został wysłany. Nagłówek ten jest " +"wymagany ze względów bezpieczeństwa, aby upewnić się, że twoja przeglądarka " +"nie została przechwycona przez osoby trzecie." + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" +"Jeżeli nagłówki „Referer” w Twojej przeglądarce są wyłączone, to proszę " +"włącz je ponownie. Przynajmniej dla tej strony, połączeń HTTPS lub zapytań " +"typu „same-origin”." + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" +"Jeśli używasz taga lub " +"umieszczasz nagłówek „Referrer-Policy: no-referrer”, prosimy je usunąć. " +"Ochrona przed atakami CSRF wymaga nagłówka „Referer”, aby wykonać ścisłe " +"sprawdzenie referera HTTP. Jeśli zależy ci na prywatności, użyj alternatyw " +"takich jak dla linków do stron osób trzecich." + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" +"Widzisz tą wiadomość, ponieważ ta witryna wymaga ciasteczka CSRF do " +"przesyłania formularza. Ciasteczko to jest wymagane ze względów " +"bezpieczeństwa, aby upewnić się, że Twoja przeglądarka nie została " +"przechwycona przez osoby trzecie." + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" +"Jeżeli ciasteczka w Twojej przeglądarce są wyłączone, to proszę włącz je " +"ponownie. Przynajmniej dla tej strony lub żądań typu „same-origin”." + +msgid "More information is available with DEBUG=True." +msgstr "Więcej informacji jest dostępnych po ustawieniu DEBUG=True." + +msgid "No year specified" +msgstr "Nie określono roku" + +msgid "Date out of range" +msgstr "Data poza zakresem" + +msgid "No month specified" +msgstr "Nie określono miesiąca" + +msgid "No day specified" +msgstr "Nie określono dnia" + +msgid "No week specified" +msgstr "Nie określono tygodnia" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "%(verbose_name_plural)s nie są dostępne" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" +"Wyświetlanie %(verbose_name_plural)s z datą przyszłą jest niedostępne, gdyż " +"atrybut '%(class_name)s.allow_future' ma wartość 'False'." + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "" +"Ciąg znaków „%(datestr)s” jest niezgodny z podanym formatem daty „%(format)s”" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "Nie znaleziono %(verbose_name)s spełniających wybrane kryteria" + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "" +"Podanego numeru strony nie można przekształcić na liczbę całkowitą, nie " +"przyjął on również wartości „last” oznaczającej ostatnią stronę z dostępnego " +"zakresu." + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "Nieprawidłowy numer strony (%(page_number)s): %(message)s " + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "" +"Lista nie zawiera żadnych elementów, a atrybut „%(class_name)s.allow_empty” " +"ma wartość False." + +msgid "Directory indexes are not allowed here." +msgstr "Wyświetlanie zawartości katalogu jest tu niedozwolone." + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "„%(path)s” nie istnieje" + +#, python-format +msgid "Index of %(directory)s" +msgstr "Zawartość %(directory)s " + +msgid "The install worked successfully! Congratulations!" +msgstr "Instalacja przebiegła pomyślnie! Gratulacje!" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" +"Zobacz informacje o wydaniu dla Django " +"%(version)s" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not " +"configured any URLs." +msgstr "" +"Widzisz tę stronę, ponieważ w swoim pliku ustawień masz DEBUG=True i nie skonfigurowałeś " +"żadnych URL-i." + +msgid "Django Documentation" +msgstr "Dokumentacja Django" + +msgid "Topics, references, & how-to’s" +msgstr "Przewodniki tematyczne, podręczniki i przewodniki „jak to zrobić”" + +msgid "Tutorial: A Polling App" +msgstr "Samouczek: Aplikacja ankietowa" + +msgid "Get started with Django" +msgstr "Pierwsze kroki z Django" + +msgid "Django Community" +msgstr "Społeczność Django" + +msgid "Connect, get help, or contribute" +msgstr "Nawiąż kontakt, uzyskaj pomoc lub wnieś swój wkład" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/pl/__init__.py b/venv/lib/python3.12/site-packages/django/conf/locale/pl/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/pl/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/pl/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f851f41ea8dd64fe70de809f2ebca92ebe1d07a8 GIT binary patch literal 198 zcmX@j%ge<81o5sX(m?cM5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!O4ZNE&rQ|OP0Yy6 zFHO;RNiEZNN=(kybEFQ_cZ$j>v@Gc?jK&MZmQEdVM^ zOiwM=Pssu+OwP|s)6dCIPRvQwFUZl4kI&4@EQycTE2#X%VUwGmQks)$SHudml@W-G PL5z>gjEsy$%s>_Z#^W@H literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/pl/__pycache__/formats.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/pl/__pycache__/formats.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1bc763360154b2116ec341e7b2b0b6fee00e93d9 GIT binary patch literal 740 zcmZWmJ8#-h6u!og7zhx|Luso@4E2CibJcc3RaK{$fLhzgHi~=~%i)?wYGVWh2~X*- z=vsB_-{@4S3!}x_DO;4N3sbLYprD@NeBb%b>mJ>osZ;_GGsPcWCJMl>FxXh+f!x0( z&@H zi6z6Q8`XgyU-ME(>3S%V*pFe}G z2_th2k{C9Zf_b)dz0lA!7CToH&nsr5$1bvy*o6!;`=4LZfnY|w*D|r zTNby^*w?c)@m*6AKA4)=5>!D~)FrDol(r_wwH+-Zx2022HP2L~-D=8b-@rY&9IPd2xv0g<}nS9-P_38FU60a5SIxz2U3MiwyH{&8%8vgF&oVZ(>qNv*h$P}-W zK{`hq`}8^!*t>M}F~K5fFObS?P#|4w Mz~(+>#(6UP4>fnrvH$=8 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/pl/formats.py b/venv/lib/python3.12/site-packages/django/conf/locale/pl/formats.py new file mode 100644 index 0000000000..2ad1bfee42 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/pl/formats.py @@ -0,0 +1,30 @@ +# This file is distributed under the same license as the Django package. +# +# The *_FORMAT strings use the Django date format syntax, +# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date +DATE_FORMAT = "j E Y" +TIME_FORMAT = "H:i" +DATETIME_FORMAT = "j E Y H:i" +YEAR_MONTH_FORMAT = "F Y" +MONTH_DAY_FORMAT = "j E" +SHORT_DATE_FORMAT = "d-m-Y" +SHORT_DATETIME_FORMAT = "d-m-Y H:i" +FIRST_DAY_OF_WEEK = 1 # Monday + +# The *_INPUT_FORMATS strings use the Python strftime format syntax, +# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior +DATE_INPUT_FORMATS = [ + "%d.%m.%Y", # '25.10.2006' + "%d.%m.%y", # '25.10.06' + "%y-%m-%d", # '06-10-25' + # "%d. %B %Y", # '25. października 2006' + # "%d. %b. %Y", # '25. paź. 2006' +] +DATETIME_INPUT_FORMATS = [ + "%d.%m.%Y %H:%M:%S", # '25.10.2006 14:30:59' + "%d.%m.%Y %H:%M:%S.%f", # '25.10.2006 14:30:59.000200' + "%d.%m.%Y %H:%M", # '25.10.2006 14:30' +] +DECIMAL_SEPARATOR = "," +THOUSAND_SEPARATOR = " " +NUMBER_GROUPING = 3 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/pt/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/conf/locale/pt/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..2842e75a9579b9f780c7fc51fab3a0ece6603a8b GIT binary patch literal 20657 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, 2012 +# Claudio Fernandes , 2015 +# Jannis Leidel , 2011 +# José Durães , 2014 +# jorgecarleitao , 2014-2015 +# Nuno Mariz , 2011-2013,2015-2018 +# Paulo Köch , 2011 +# Raúl Pedro Fernandes Santos, 2014 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-09-27 22:40+0200\n" +"PO-Revision-Date: 2019-11-05 00:38+0000\n" +"Last-Translator: Ramiro Morales\n" +"Language-Team: Portuguese (http://www.transifex.com/django/django/language/" +"pt/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: pt\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Afrikaans" +msgstr "Africâner" + +msgid "Arabic" +msgstr "Árabe" + +msgid "Asturian" +msgstr "Asturiano" + +msgid "Azerbaijani" +msgstr "Azerbaijano" + +msgid "Bulgarian" +msgstr "Búlgaro" + +msgid "Belarusian" +msgstr "Bielorusso" + +msgid "Bengali" +msgstr "Bengalês" + +msgid "Breton" +msgstr "Bretão" + +msgid "Bosnian" +msgstr "Bósnio" + +msgid "Catalan" +msgstr "Catalão" + +msgid "Czech" +msgstr "Checo" + +msgid "Welsh" +msgstr "Galês" + +msgid "Danish" +msgstr "Dinamarquês" + +msgid "German" +msgstr "Alemão" + +msgid "Lower Sorbian" +msgstr "Sorbedo inferior" + +msgid "Greek" +msgstr "Grego" + +msgid "English" +msgstr "Inglês" + +msgid "Australian English" +msgstr "Inglês da Austrália" + +msgid "British English" +msgstr "Inglês Britânico" + +msgid "Esperanto" +msgstr "Esperanto" + +msgid "Spanish" +msgstr "Espanhol" + +msgid "Argentinian Spanish" +msgstr "Espanhol Argentino" + +msgid "Colombian Spanish" +msgstr "Espanhol Colombiano" + +msgid "Mexican Spanish" +msgstr "Espanhol mexicano" + +msgid "Nicaraguan Spanish" +msgstr "Nicarágua Espanhol" + +msgid "Venezuelan Spanish" +msgstr "Espanhol Venezuelano" + +msgid "Estonian" +msgstr "Estónio" + +msgid "Basque" +msgstr "Basco" + +msgid "Persian" +msgstr "Persa" + +msgid "Finnish" +msgstr "Filandês" + +msgid "French" +msgstr "Francês" + +msgid "Frisian" +msgstr "Frisão" + +msgid "Irish" +msgstr "Irlandês" + +msgid "Scottish Gaelic" +msgstr "Escocês Gaélico" + +msgid "Galician" +msgstr "Galaciano" + +msgid "Hebrew" +msgstr "Hebraico" + +msgid "Hindi" +msgstr "Hindi" + +msgid "Croatian" +msgstr "Croata" + +msgid "Upper Sorbian" +msgstr "Sorbedo superior" + +msgid "Hungarian" +msgstr "Húngaro" + +msgid "Armenian" +msgstr "" + +msgid "Interlingua" +msgstr "Interlíngua" + +msgid "Indonesian" +msgstr "Indonésio" + +msgid "Ido" +msgstr "Ido" + +msgid "Icelandic" +msgstr "Islandês" + +msgid "Italian" +msgstr "Italiano" + +msgid "Japanese" +msgstr "Japonês" + +msgid "Georgian" +msgstr "Georgiano" + +msgid "Kabyle" +msgstr "Kabyle" + +msgid "Kazakh" +msgstr "Cazaque" + +msgid "Khmer" +msgstr "Khmer" + +msgid "Kannada" +msgstr "Canarês" + +msgid "Korean" +msgstr "Coreano" + +msgid "Luxembourgish" +msgstr "Luxemburguês" + +msgid "Lithuanian" +msgstr "Lituano" + +msgid "Latvian" +msgstr "Letão" + +msgid "Macedonian" +msgstr "Macedónio" + +msgid "Malayalam" +msgstr "Malaiala" + +msgid "Mongolian" +msgstr "Mongol" + +msgid "Marathi" +msgstr "Marathi" + +msgid "Burmese" +msgstr "Birmanês" + +msgid "Norwegian Bokmål" +msgstr "Norueguês Bokmål" + +msgid "Nepali" +msgstr "Nepali" + +msgid "Dutch" +msgstr "Holandês" + +msgid "Norwegian Nynorsk" +msgstr "Norueguês (Nynors)" + +msgid "Ossetic" +msgstr "Ossetic" + +msgid "Punjabi" +msgstr "Panjabi" + +msgid "Polish" +msgstr "Polaco" + +msgid "Portuguese" +msgstr "Português" + +msgid "Brazilian Portuguese" +msgstr "Português Brasileiro" + +msgid "Romanian" +msgstr "Romeno" + +msgid "Russian" +msgstr "Russo" + +msgid "Slovak" +msgstr "Eslovaco" + +msgid "Slovenian" +msgstr "Esloveno" + +msgid "Albanian" +msgstr "Albanês" + +msgid "Serbian" +msgstr "Sérvio" + +msgid "Serbian Latin" +msgstr "Sérvio Latim" + +msgid "Swedish" +msgstr "Sueco" + +msgid "Swahili" +msgstr "Suaíli" + +msgid "Tamil" +msgstr "Tamil" + +msgid "Telugu" +msgstr "Telugu" + +msgid "Thai" +msgstr "Thai" + +msgid "Turkish" +msgstr "Turco" + +msgid "Tatar" +msgstr "Tatar" + +msgid "Udmurt" +msgstr "Udmurte" + +msgid "Ukrainian" +msgstr "Ucraniano" + +msgid "Urdu" +msgstr "Urdu" + +msgid "Uzbek" +msgstr "" + +msgid "Vietnamese" +msgstr "Vietnamita" + +msgid "Simplified Chinese" +msgstr "Chinês Simplificado" + +msgid "Traditional Chinese" +msgstr "Chinês Tradicional" + +msgid "Messages" +msgstr "Mensagens" + +msgid "Site Maps" +msgstr "Mapas do Site" + +msgid "Static Files" +msgstr "Ficheiros Estáticos" + +msgid "Syndication" +msgstr "Syndication" + +msgid "That page number is not an integer" +msgstr "Esse número de página não é um número inteiro" + +msgid "That page number is less than 1" +msgstr "Esse número de página é inferior a 1" + +msgid "That page contains no results" +msgstr "Essa página não contém resultados" + +msgid "Enter a valid value." +msgstr "Introduza um valor válido." + +msgid "Enter a valid URL." +msgstr "Introduza um URL válido." + +msgid "Enter a valid integer." +msgstr "Introduza um número inteiro válido." + +msgid "Enter a valid email address." +msgstr "Introduza um endereço de e-mail válido." + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" + +msgid "Enter a valid IPv4 address." +msgstr "Introduza um endereço IPv4 válido." + +msgid "Enter a valid IPv6 address." +msgstr "Insira um endereço IPv6 válido." + +msgid "Enter a valid IPv4 or IPv6 address." +msgstr "Digite um endereço válido IPv4 ou IPv6." + +msgid "Enter only digits separated by commas." +msgstr "Introduza apenas números separados por vírgulas." + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "Garanta que este valor seja %(limit_value)s (tem %(show_value)s)." + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "Garanta que este valor seja menor ou igual a %(limit_value)s." + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "Garanta que este valor seja maior ou igual a %(limit_value)s." + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Garanta que este valor tenha pelo menos %(limit_value)d caractere (tem " +"%(show_value)d)." +msgstr[1] "" +"Garanta que este valor tenha pelo menos %(limit_value)d caracteres (tem " +"%(show_value)d)." + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Garanta que este valor tenha no máximo %(limit_value)d caractere (tem " +"%(show_value)d)." +msgstr[1] "" +"Garanta que este valor tenha no máximo %(limit_value)d caracteres (tem " +"%(show_value)d)." + +msgid "Enter a number." +msgstr "Introduza um número." + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "Garanta que não tem mais de %(max)s dígito no total." +msgstr[1] "Garanta que não tem mais de %(max)s dígitos no total." + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "Garanta que não tem mais %(max)s casa decimal." +msgstr[1] "Garanta que não tem mais %(max)s casas decimais." + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "Garanta que não tem mais de %(max)s dígito antes do ponto decimal." +msgstr[1] "Garanta que não tem mais de %(max)s dígitos antes do ponto decimal." + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" + +msgid "Null characters are not allowed." +msgstr "Não são permitidos caracteres nulos." + +msgid "and" +msgstr "e" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "%(model_name)s com este %(field_labels)s já existe." + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "O valor %(value)r não é uma escolha válida." + +msgid "This field cannot be null." +msgstr "Este campo não pode ser nulo." + +msgid "This field cannot be blank." +msgstr "Este campo não pode ser vazio." + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "%(model_name)s com este %(field_label)s já existe." + +#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'. +#. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" +"%(field_label)s tem de ser único para %(date_field_label)s %(lookup_type)s." + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "Campo do tipo: %(field_type)s" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "" + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "" + +msgid "Boolean (Either True or False)" +msgstr "Boolean (Pode ser True ou False)" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "String (até %(max_length)s)" + +msgid "Comma-separated integers" +msgstr "Inteiros separados por virgula" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" + +msgid "Date (without time)" +msgstr "Data (sem hora)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" + +msgid "Date (with time)" +msgstr "Data (com hora)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "" + +msgid "Decimal number" +msgstr "Número décimal" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" + +msgid "Duration" +msgstr "Duração" + +msgid "Email address" +msgstr "Endereço de e-mail" + +msgid "File path" +msgstr "Caminho do ficheiro" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "" + +msgid "Floating point number" +msgstr "Número em vírgula flutuante" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "" + +msgid "Integer" +msgstr "Inteiro" + +msgid "Big (8 byte) integer" +msgstr "Inteiro grande (8 byte)" + +msgid "IPv4 address" +msgstr "Endereço IPv4" + +msgid "IP address" +msgstr "Endereço IP" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "" + +msgid "Boolean (Either True, False or None)" +msgstr "Boolean (Pode ser True, False ou None)" + +msgid "Positive integer" +msgstr "Inteiro positivo" + +msgid "Positive small integer" +msgstr "Pequeno número inteiro positivo" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "Slug (até %(max_length)s)" + +msgid "Small integer" +msgstr "Inteiro pequeno" + +msgid "Text" +msgstr "Texto" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" + +msgid "Time" +msgstr "Hora" + +msgid "URL" +msgstr "URL" + +msgid "Raw binary data" +msgstr "Dados binários simples" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "" + +msgid "Universally unique identifier" +msgstr "" + +msgid "File" +msgstr "Ficheiro" + +msgid "Image" +msgstr "Imagem" + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "A instância de %(model)s com %(field)s %(value)r não existe." + +msgid "Foreign Key (type determined by related field)" +msgstr "Chave Estrangeira (tipo determinado pelo campo relacionado)" + +msgid "One-to-one relationship" +msgstr "Relação de um-para-um" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "Relação de %(from)s-%(to)s" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "Relações de %(from)s-%(to)s" + +msgid "Many-to-many relationship" +msgstr "Relação de muitos-para-muitos" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr ":?.!" + +msgid "This field is required." +msgstr "Este campo é obrigatório." + +msgid "Enter a whole number." +msgstr "Introduza um número inteiro." + +msgid "Enter a valid date." +msgstr "Introduza uma data válida." + +msgid "Enter a valid time." +msgstr "Introduza uma hora válida." + +msgid "Enter a valid date/time." +msgstr "Introduza uma data/hora válida." + +msgid "Enter a valid duration." +msgstr "Introduza uma duração válida." + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "O número de dias deve ser entre {min_days} e {max_days}." + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "" +"Nenhum ficheiro foi submetido. Verifique o tipo de codificação do formulário." + +msgid "No file was submitted." +msgstr "Nenhum ficheiro submetido." + +msgid "The submitted file is empty." +msgstr "O ficheiro submetido encontra-se vazio." + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" +"Garanta que o nome deste ficheiro tenha no máximo %(max)d caractere (tem " +"%(length)d)." +msgstr[1] "" +"Garanta que o nome deste ficheiro tenha no máximo %(max)d caracteres (tem " +"%(length)d)." + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "" +"Por favor, submeta um ficheiro ou remova a seleção da caixa, não ambos." + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" +"Introduza uma imagem válida. O ficheiro que introduziu ou não é uma imagem " +"ou está corrompido." + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "" +"Selecione uma opção válida. %(value)s não se encontra nas opções disponíveis." + +msgid "Enter a list of values." +msgstr "Introduza uma lista de valores." + +msgid "Enter a complete value." +msgstr "Introduza um valor completo." + +msgid "Enter a valid UUID." +msgstr "Introduza um UUID válido." + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr ":" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "(Campo oculto %(name)s) %(error)s" + +msgid "ManagementForm data is missing or has been tampered with" +msgstr "Os dados do ManagementForm estão em falta ou foram adulterados" + +#, python-format +msgid "Please submit %d or fewer forms." +msgid_plural "Please submit %d or fewer forms." +msgstr[0] "Por favor submeta %d ou menos formulários." +msgstr[1] "Por favor submeta %d ou menos formulários." + +#, python-format +msgid "Please submit %d or more forms." +msgid_plural "Please submit %d or more forms." +msgstr[0] "Por favor submeta %d ou mais formulários." +msgstr[1] "Por favor submeta %d ou mais formulários." + +msgid "Order" +msgstr "Ordem" + +msgid "Delete" +msgstr "Remover" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "Por favor corrija os dados duplicados em %(field)s." + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "" +"Por favor corrija os dados duplicados em %(field)s, que deverá ser único." + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"Por favor corrija os dados duplicados em %(field_name)s que deverá ser único " +"para o %(lookup)s em %(date_field)s.\"" + +msgid "Please correct the duplicate values below." +msgstr "Por favor corrija os valores duplicados abaixo." + +msgid "The inline value did not match the parent instance." +msgstr "O valor em linha não corresponde à instância pai." + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "" +"Selecione uma opção válida. Esse valor não se encontra opções disponíveis." + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "" + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" + +msgid "Clear" +msgstr "Limpar" + +msgid "Currently" +msgstr "Atualmente" + +msgid "Change" +msgstr "Modificar" + +msgid "Unknown" +msgstr "Desconhecido" + +msgid "Yes" +msgstr "Sim" + +msgid "No" +msgstr "Não" + +msgid "Year" +msgstr "" + +msgid "Month" +msgstr "" + +msgid "Day" +msgstr "" + +msgid "yes,no,maybe" +msgstr "sim,não,talvez" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)d byte" +msgstr[1] "%(size)d bytes" + +#, python-format +msgid "%s KB" +msgstr "%s KB" + +#, python-format +msgid "%s MB" +msgstr "%s MB" + +#, python-format +msgid "%s GB" +msgstr "%s GB" + +#, python-format +msgid "%s TB" +msgstr "%s TB" + +#, python-format +msgid "%s PB" +msgstr "%s PB" + +msgid "p.m." +msgstr "p.m." + +msgid "a.m." +msgstr "a.m." + +msgid "PM" +msgstr "PM" + +msgid "AM" +msgstr "AM" + +msgid "midnight" +msgstr "meia-noite" + +msgid "noon" +msgstr "meio-dia" + +msgid "Monday" +msgstr "Segunda-feira" + +msgid "Tuesday" +msgstr "Terça-feira" + +msgid "Wednesday" +msgstr "Quarta-feira" + +msgid "Thursday" +msgstr "Quinta-feira" + +msgid "Friday" +msgstr "Sexta-feira" + +msgid "Saturday" +msgstr "Sábado" + +msgid "Sunday" +msgstr "Domingo" + +msgid "Mon" +msgstr "Seg" + +msgid "Tue" +msgstr "Ter" + +msgid "Wed" +msgstr "Qua" + +msgid "Thu" +msgstr "Qui" + +msgid "Fri" +msgstr "Sex" + +msgid "Sat" +msgstr "Sáb" + +msgid "Sun" +msgstr "Dom" + +msgid "January" +msgstr "Janeiro" + +msgid "February" +msgstr "Fevereiro" + +msgid "March" +msgstr "Março" + +msgid "April" +msgstr "Abril" + +msgid "May" +msgstr "Maio" + +msgid "June" +msgstr "Junho" + +msgid "July" +msgstr "Julho" + +msgid "August" +msgstr "Agosto" + +msgid "September" +msgstr "Setembro" + +msgid "October" +msgstr "Outubro" + +msgid "November" +msgstr "Novembro" + +msgid "December" +msgstr "Dezembro" + +msgid "jan" +msgstr "jan" + +msgid "feb" +msgstr "fev" + +msgid "mar" +msgstr "mar" + +msgid "apr" +msgstr "abr" + +msgid "may" +msgstr "mai" + +msgid "jun" +msgstr "jun" + +msgid "jul" +msgstr "jul" + +msgid "aug" +msgstr "ago" + +msgid "sep" +msgstr "set" + +msgid "oct" +msgstr "out" + +msgid "nov" +msgstr "nov" + +msgid "dec" +msgstr "dez" + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "Jan." + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "Fev." + +msgctxt "abbrev. month" +msgid "March" +msgstr "Março" + +msgctxt "abbrev. month" +msgid "April" +msgstr "Abril" + +msgctxt "abbrev. month" +msgid "May" +msgstr "Maio" + +msgctxt "abbrev. month" +msgid "June" +msgstr "Jun." + +msgctxt "abbrev. month" +msgid "July" +msgstr "Jul." + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "Ago." + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "Set." + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "Out." + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "Nov." + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "Dez." + +msgctxt "alt. month" +msgid "January" +msgstr "Janeiro" + +msgctxt "alt. month" +msgid "February" +msgstr "Fevereiro" + +msgctxt "alt. month" +msgid "March" +msgstr "Março" + +msgctxt "alt. month" +msgid "April" +msgstr "Abril" + +msgctxt "alt. month" +msgid "May" +msgstr "Maio" + +msgctxt "alt. month" +msgid "June" +msgstr "Junho" + +msgctxt "alt. month" +msgid "July" +msgstr "Julho" + +msgctxt "alt. month" +msgid "August" +msgstr "Agosto" + +msgctxt "alt. month" +msgid "September" +msgstr "Setembro" + +msgctxt "alt. month" +msgid "October" +msgstr "Outubro" + +msgctxt "alt. month" +msgid "November" +msgstr "Novembro" + +msgctxt "alt. month" +msgid "December" +msgstr "Dezembro" + +msgid "This is not a valid IPv6 address." +msgstr "Este não é um endereço IPv6 válido." + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "" + +msgid "or" +msgstr "ou" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr ", " + +#, python-format +msgid "%d year" +msgid_plural "%d years" +msgstr[0] "%d ano" +msgstr[1] "%d anos" + +#, python-format +msgid "%d month" +msgid_plural "%d months" +msgstr[0] "%d mês" +msgstr[1] "%d meses" + +#, python-format +msgid "%d week" +msgid_plural "%d weeks" +msgstr[0] "%d semana" +msgstr[1] "%d semanas" + +#, python-format +msgid "%d day" +msgid_plural "%d days" +msgstr[0] "%d dia" +msgstr[1] "%d dias" + +#, python-format +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "%d hora" +msgstr[1] "%d horas" + +#, python-format +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "%d minuto" +msgstr[1] "%d minutos" + +msgid "0 minutes" +msgstr "0 minutos" + +msgid "Forbidden" +msgstr "Proibido" + +msgid "CSRF verification failed. Request aborted." +msgstr "A verificação de CSRF falhou. Pedido abortado." + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your Web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" +"Está a ver esta mensagem porque este site requer um cookie CSRF quando " +"submete formulários. Este cookie é requirido por razões de segurança, para " +"garantir que o seu browser não está a ser \"raptado\" por terceiros." + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" + +msgid "More information is available with DEBUG=True." +msgstr "Está disponível mais informação com DEBUG=True." + +msgid "No year specified" +msgstr "Nenhum ano especificado" + +msgid "Date out of range" +msgstr "Data fora do alcance" + +msgid "No month specified" +msgstr "Nenhum mês especificado" + +msgid "No day specified" +msgstr "Nenhum dia especificado" + +msgid "No week specified" +msgstr "Nenhuma semana especificado" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "Nenhum %(verbose_name_plural)s disponível" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" +"%(verbose_name_plural)s futuros indisponíveis porque %(class_name)s." +"allow_future é False." + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "Nenhum %(verbose_name)s de acordo com a procura." + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "" + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "Página inválida (%(page_number)s): %(message)s" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "" + +msgid "Directory indexes are not allowed here." +msgstr "Índices de diretório não são permitidas aqui." + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "" + +#, python-format +msgid "Index of %(directory)s" +msgstr "Índice de %(directory)s" + +msgid "Django: the Web framework for perfectionists with deadlines." +msgstr "Django: the Web framework for perfectionists with deadlines." + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" +"Visualizar notas de lançamento do Django " +"%(version)s" + +msgid "The install worked successfully! Congratulations!" +msgstr "A instalação funcionou com sucesso! Parabéns!" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not configured any " +"URLs." +msgstr "" +"Está a visualizar esta página porque tem DEBUG=True no seu ficheiro settings do Django e não " +"configurou nenhum URLs." + +msgid "Django Documentation" +msgstr "Documentação do Django" + +msgid "Topics, references, & how-to’s" +msgstr "" + +msgid "Tutorial: A Polling App" +msgstr "Tutorial: A Polling App" + +msgid "Get started with Django" +msgstr "Comece com o Django" + +msgid "Django Community" +msgstr "Comunidade Django" + +msgid "Connect, get help, or contribute" +msgstr "Conecte-se, obtenha ajuda ou contribua" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/pt/__init__.py b/venv/lib/python3.12/site-packages/django/conf/locale/pt/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/pt/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/pt/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0ce70e328a44cab15beeb4d9c4568692a42bb59b GIT binary patch literal 198 zcmX@j%ge<81o5sX(m?cM5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!O4ZNE&rQ|OP0Yy6 zFHO;RNiEZNN=(kybEFQ_cZ$j>v@Gc?jK&MZmQEdVM^ zOiwM=Pssu+OwP|s)6dCIPRvQwFDTKEkI&4@EQycTE2#X%VUwGmQks)$SHudml@W-G PL5z>gjEsy$%s>_Z$Xhgz literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/pt/__pycache__/formats.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/pt/__pycache__/formats.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..964b04dcec2f72e109c20bb3da8ff94239b39ee0 GIT binary patch literal 887 zcmZWm%Wm306dglIj0qu_hfpiERFxMMC_Z&KsA4@Oj2AZAGb6*4BCIEWW+QJ|E5rpNb;?#ZZM3ukf0z z%vh};msMWM?QkKfES?LBaiPfNQc=421@7Hny1=k$TPC!sP0Jo)m@`N4yjuI37CIPS zwX2ouF?8HB0qh;iJR?0mkAqmk)wq?NvXO70UX*122WK$#u>b%7 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/pt/formats.py b/venv/lib/python3.12/site-packages/django/conf/locale/pt/formats.py new file mode 100644 index 0000000000..bb4b3f50fb --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/pt/formats.py @@ -0,0 +1,39 @@ +# This file is distributed under the same license as the Django package. +# +# The *_FORMAT strings use the Django date format syntax, +# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date +DATE_FORMAT = r"j \d\e F \d\e Y" +TIME_FORMAT = "H:i" +DATETIME_FORMAT = r"j \d\e F \d\e Y à\s H:i" +YEAR_MONTH_FORMAT = r"F \d\e Y" +MONTH_DAY_FORMAT = r"j \d\e F" +SHORT_DATE_FORMAT = "d/m/Y" +SHORT_DATETIME_FORMAT = "d/m/Y H:i" +FIRST_DAY_OF_WEEK = 0 # Sunday + +# The *_INPUT_FORMATS strings use the Python strftime format syntax, +# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior +# Kept ISO formats as they are in first position +DATE_INPUT_FORMATS = [ + "%Y-%m-%d", # '2006-10-25' + "%d/%m/%Y", # '25/10/2006' + "%d/%m/%y", # '25/10/06' + # "%d de %b de %Y", # '25 de Out de 2006' + # "%d de %b, %Y", # '25 Out, 2006' + # "%d de %B de %Y", # '25 de Outubro de 2006' + # "%d de %B, %Y", # '25 de Outubro, 2006' +] +DATETIME_INPUT_FORMATS = [ + "%Y-%m-%d %H:%M:%S", # '2006-10-25 14:30:59' + "%Y-%m-%d %H:%M:%S.%f", # '2006-10-25 14:30:59.000200' + "%Y-%m-%d %H:%M", # '2006-10-25 14:30' + "%d/%m/%Y %H:%M:%S", # '25/10/2006 14:30:59' + "%d/%m/%Y %H:%M:%S.%f", # '25/10/2006 14:30:59.000200' + "%d/%m/%Y %H:%M", # '25/10/2006 14:30' + "%d/%m/%y %H:%M:%S", # '25/10/06 14:30:59' + "%d/%m/%y %H:%M:%S.%f", # '25/10/06 14:30:59.000200' + "%d/%m/%y %H:%M", # '25/10/06 14:30' +] +DECIMAL_SEPARATOR = "," +THOUSAND_SEPARATOR = "." +NUMBER_GROUPING = 3 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/pt_BR/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/conf/locale/pt_BR/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..41fb5016338e58eadbbaffa82116f6ad0634510a GIT binary patch literal 29218 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, 2014 +# Amanda Savluchinske , 2019 +# amcorreia , 2018 +# andrewsmedina , 2014-2015 +# Arthur Silva , 2017 +# bruno.devpod , 2014 +# Camilo B. Moreira , 2017 +# Carlos Cadu “Cadu” Leite , 2020 +# Carlos Cadu “Cadu” Leite , 2016,2019 +# Filipe Cifali , 2016 +# Claudio Rogerio Carvalho Filho , 2020 +# dudanogueira , 2012 +# dudanogueira , 2019 +# Eduardo Felipe Castegnaro , 2024 +# Elyézer Rezende , 2013 +# Fábio C. Barrionuevo da Luz , 2014-2015 +# Felipe Rodrigues , 2016 +# Filipe Cifali , 2019 +# Gladson , 2013 +# fa9e10542e458baef0599ae856e43651_13d2225, 2011-2014 +# Guilherme , 2022 +# Heron Fonsaca, 2022 +# Hugo Tácito , 2024 +# Igor Cavalcante , 2017 +# Jannis Leidel , 2011 +# Jonas Rodrigues, 2023 +# Leonardo Gregianin, 2023 +# Lucas Infante , 2015 +# Luiz Boaretto , 2017 +# Marssal Jr. , 2022 +# Marcelo Moro Brondani , 2018 +# Mariusz Felisiak , 2021 +# Rafael Fontenelle , 2021-2022 +# Samuel Nogueira Bacelar , 2020 +# Sandro , 2011 +# Sergio Garcia , 2015 +# Tânia Andrea , 2017 +# Wiliam Souza , 2015 +# Francisco Petry Rauber , 2018 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-05-22 11:46-0300\n" +"PO-Revision-Date: 2024-08-07 06:49+0000\n" +"Last-Translator: Eduardo Felipe Castegnaro , 2024\n" +"Language-Team: Portuguese (Brazil) (http://app.transifex.com/django/django/" +"language/pt_BR/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: pt_BR\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +msgid "Afrikaans" +msgstr "Africânder" + +msgid "Arabic" +msgstr "Árabe" + +msgid "Algerian Arabic" +msgstr "Árabe Argelino" + +msgid "Asturian" +msgstr "Asturiano" + +msgid "Azerbaijani" +msgstr "Azerbaijão" + +msgid "Bulgarian" +msgstr "Búlgaro" + +msgid "Belarusian" +msgstr "Bielorrussa" + +msgid "Bengali" +msgstr "Bengali" + +msgid "Breton" +msgstr "Bretão" + +msgid "Bosnian" +msgstr "Bósnio" + +msgid "Catalan" +msgstr "Catalão" + +msgid "Central Kurdish (Sorani)" +msgstr "Curdo Central (Sorâni)" + +msgid "Czech" +msgstr "Tcheco" + +msgid "Welsh" +msgstr "Galês" + +msgid "Danish" +msgstr "Dinamarquês" + +msgid "German" +msgstr "Alemão" + +msgid "Lower Sorbian" +msgstr "Sorábio Baixo" + +msgid "Greek" +msgstr "Grego" + +msgid "English" +msgstr "Inglês" + +msgid "Australian English" +msgstr "Inglês Australiano" + +msgid "British English" +msgstr "Inglês Britânico" + +msgid "Esperanto" +msgstr "Esperanto" + +msgid "Spanish" +msgstr "Espanhol" + +msgid "Argentinian Spanish" +msgstr "Espanhol Argentino" + +msgid "Colombian Spanish" +msgstr "Espanhol Colombiano" + +msgid "Mexican Spanish" +msgstr "Espanhol Mexicano" + +msgid "Nicaraguan Spanish" +msgstr "Espanhol Nicaraguense" + +msgid "Venezuelan Spanish" +msgstr "Espanhol Venuzuelano" + +msgid "Estonian" +msgstr "Estoniano" + +msgid "Basque" +msgstr "Basco" + +msgid "Persian" +msgstr "Persa" + +msgid "Finnish" +msgstr "Finlandês" + +msgid "French" +msgstr "Francês" + +msgid "Frisian" +msgstr "Frísia" + +msgid "Irish" +msgstr "Irlandês" + +msgid "Scottish Gaelic" +msgstr "Gaélico Escocês" + +msgid "Galician" +msgstr "Galiciano" + +msgid "Hebrew" +msgstr "Hebraico" + +msgid "Hindi" +msgstr "Hindi" + +msgid "Croatian" +msgstr "Croata" + +msgid "Upper Sorbian" +msgstr "Sorábio Alto" + +msgid "Hungarian" +msgstr "Húngaro" + +msgid "Armenian" +msgstr "Armênio" + +msgid "Interlingua" +msgstr "Interlíngua" + +msgid "Indonesian" +msgstr "Indonésio" + +msgid "Igbo" +msgstr "Igbo" + +msgid "Ido" +msgstr "Ido" + +msgid "Icelandic" +msgstr "Islandês" + +msgid "Italian" +msgstr "Italiano" + +msgid "Japanese" +msgstr "Japonês" + +msgid "Georgian" +msgstr "Georgiano" + +msgid "Kabyle" +msgstr "Cabila" + +msgid "Kazakh" +msgstr "Cazaque" + +msgid "Khmer" +msgstr "Khmer" + +msgid "Kannada" +msgstr "Canarês" + +msgid "Korean" +msgstr "Coreano" + +msgid "Kyrgyz" +msgstr "Quirguiz" + +msgid "Luxembourgish" +msgstr "Luxemburguês" + +msgid "Lithuanian" +msgstr "Lituano" + +msgid "Latvian" +msgstr "Letão" + +msgid "Macedonian" +msgstr "Macedônio" + +msgid "Malayalam" +msgstr "Malaiala" + +msgid "Mongolian" +msgstr "Mongol" + +msgid "Marathi" +msgstr "Marathi" + +msgid "Malay" +msgstr "Malaia" + +msgid "Burmese" +msgstr "Birmanês" + +msgid "Norwegian Bokmål" +msgstr "Dano-norueguês" + +msgid "Nepali" +msgstr "Nepalês" + +msgid "Dutch" +msgstr "Neerlandês" + +msgid "Norwegian Nynorsk" +msgstr "Novo Norueguês" + +msgid "Ossetic" +msgstr "Osseto" + +msgid "Punjabi" +msgstr "Punjabi" + +msgid "Polish" +msgstr "Polonês" + +msgid "Portuguese" +msgstr "Português" + +msgid "Brazilian Portuguese" +msgstr "Português Brasileiro" + +msgid "Romanian" +msgstr "Romeno" + +msgid "Russian" +msgstr "Russo" + +msgid "Slovak" +msgstr "Eslovaco" + +msgid "Slovenian" +msgstr "Esloveno" + +msgid "Albanian" +msgstr "Albanesa" + +msgid "Serbian" +msgstr "Sérvio" + +msgid "Serbian Latin" +msgstr "Sérvio Latino" + +msgid "Swedish" +msgstr "Sueco" + +msgid "Swahili" +msgstr "Suaíli" + +msgid "Tamil" +msgstr "Tâmil" + +msgid "Telugu" +msgstr "Telugu" + +msgid "Tajik" +msgstr "Tadjique" + +msgid "Thai" +msgstr "Tailandês" + +msgid "Turkmen" +msgstr "Turcomano" + +msgid "Turkish" +msgstr "Turco" + +msgid "Tatar" +msgstr "Tatar" + +msgid "Udmurt" +msgstr "Udmurt" + +msgid "Uyghur" +msgstr "Uigur" + +msgid "Ukrainian" +msgstr "Ucraniano" + +msgid "Urdu" +msgstr "Urdu" + +msgid "Uzbek" +msgstr "Uzbeque" + +msgid "Vietnamese" +msgstr "Vietnamita" + +msgid "Simplified Chinese" +msgstr "Chinês Simplificado" + +msgid "Traditional Chinese" +msgstr "Chinês Tradicional" + +msgid "Messages" +msgstr "Mensagens" + +msgid "Site Maps" +msgstr "Site Maps" + +msgid "Static Files" +msgstr "Arquivos Estáticos" + +msgid "Syndication" +msgstr "Syndication" + +#. Translators: String used to replace omitted page numbers in elided page +#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10]. +msgid "…" +msgstr "…" + +msgid "That page number is not an integer" +msgstr "Esse número de página não é um número inteiro" + +msgid "That page number is less than 1" +msgstr "Esse número de página é menor que 1" + +msgid "That page contains no results" +msgstr "Essa página não contém resultados" + +msgid "Enter a valid value." +msgstr "Informe um valor válido." + +msgid "Enter a valid domain name." +msgstr "Informe um domínio válido." + +msgid "Enter a valid URL." +msgstr "Informe uma URL válida." + +msgid "Enter a valid integer." +msgstr "Insira um número inteiro válido." + +msgid "Enter a valid email address." +msgstr "Informe um endereço de email válido." + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" +"Informe um “slug” válido tendo letras, números, \"underscores\" e hífens." + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" +"Informe um “slug” válido tendo letras em Unicode, números, \"underscores\" e " +"hífens." + +#, python-format +msgid "Enter a valid %(protocol)s address." +msgstr "Insira um endereço %(protocol)s válido." + +msgid "IPv4" +msgstr "IPv4" + +msgid "IPv6" +msgstr "IPv6" + +msgid "IPv4 or IPv6" +msgstr "IPv4 ou IPv6" + +msgid "Enter only digits separated by commas." +msgstr "Insira apenas dígitos separados por vírgulas." + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "Certifique-se de que o valor é %(limit_value)s (ele é %(show_value)s)." + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "Certifique-se que este valor seja menor ou igual a %(limit_value)s." + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "Certifique-se que este valor seja maior ou igual a %(limit_value)s." + +#, python-format +msgid "Ensure this value is a multiple of step size %(limit_value)s." +msgstr "" +"Certifique-se que este valor seja múltiplo do tamanho do passo " +"%(limit_value)s." + +#, python-format +msgid "" +"Ensure this value is a multiple of step size %(limit_value)s, starting from " +"%(offset)s, e.g. %(offset)s, %(valid_value1)s, %(valid_value2)s, and so on." +msgstr "" +"Certifique-se que este valor seja múltiplo do tamanho do passo " +"%(limit_value)s, começando por %(offset)s, por exemplo %(offset)s, " +"%(valid_value1)s, %(valid_value2)s, e assim por diante." + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Certifique-se de que o valor tenha no mínimo %(limit_value)d caractere (ele " +"possui %(show_value)d)." +msgstr[1] "" +"Certifique-se de que o valor tenha no mínimo %(limit_value)d caracteres (ele " +"possui %(show_value)d)." +msgstr[2] "" +"Certifique-se de que o valor tenha no mínimo %(limit_value)d caracteres (ele " +"possui %(show_value)d)." + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Certifique-se de que o valor tenha no máximo %(limit_value)d caractere (ele " +"possui %(show_value)d)." +msgstr[1] "" +"Certifique-se de que o valor tenha no máximo %(limit_value)d caracteres (ele " +"possui %(show_value)d)." +msgstr[2] "" +"Certifique-se de que o valor tenha no máximo %(limit_value)d caracteres (ele " +"possui %(show_value)d)." + +msgid "Enter a number." +msgstr "Informe um número." + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "Certifique-se de que não tenha mais de %(max)s dígito no total." +msgstr[1] "Certifique-se de que não tenha mais de %(max)s dígitos no total." +msgstr[2] "Certifique-se de que não tenha mais de %(max)s dígitos no total." + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "Certifique-se de que não tenha mais de %(max)s casa decimal." +msgstr[1] "Certifique-se de que não tenha mais de %(max)s casas decimais." +msgstr[2] "Certifique-se de que não tenha mais de %(max)s casas decimais." + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "" +"Certifique-se de que não tenha mais de %(max)s dígito antes do ponto decimal." +msgstr[1] "" +"Certifique-se de que não tenha mais de %(max)s dígitos antes do ponto " +"decimal." +msgstr[2] "" +"Certifique-se de que não tenha mais de %(max)s dígitos antes do ponto " +"decimal." + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" +"A extensão de arquivo “%(extension)s” não é permitida. As extensões válidas " +"são: %(allowed_extensions)s ." + +msgid "Null characters are not allowed." +msgstr "Caracteres nulos não são permitidos." + +msgid "and" +msgstr "e" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "%(model_name)s com este %(field_labels)s já existe." + +#, python-format +msgid "Constraint “%(name)s” is violated." +msgstr "Restrição \"%(name)s\" foi violada." + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "Valor %(value)r não é uma opção válida." + +msgid "This field cannot be null." +msgstr "Este campo não pode ser nulo." + +msgid "This field cannot be blank." +msgstr "Este campo não pode estar vazio." + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "%(model_name)s com este %(field_label)s já existe." + +#. Translators: The 'lookup_type' is one of 'date', 'year' or +#. 'month'. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" +"%(field_label)s deve ser único para %(date_field_label)s %(lookup_type)s." + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "Campo do tipo: %(field_type)s" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "o valor “%(value)s” deve ser True ou False." + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "o valor “%(value)s” deve ser True, False ou None." + +msgid "Boolean (Either True or False)" +msgstr "Booleano (Verdadeiro ou Falso)" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "String (até %(max_length)s)" + +msgid "String (unlimited)" +msgstr "String (ilimitado)" + +msgid "Comma-separated integers" +msgstr "Inteiros separados por vírgula" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" +"O valor \"%(value)s\" tem um formato de data inválido. Deve ser no formato " +"YYYY-MM-DD." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" +"O valor “%(value)s” tem o formato correto (YYYY-MM-DD) mas uma data inválida." + +msgid "Date (without time)" +msgstr "Data (sem hora)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" +"O valor “%(value)s” tem um formato inválido. Deve estar no formato YYYY-MM-" +"DD HH:MM[:ss[.uuuuuu]][TZ]." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" +"O valor “%(value)s” está no formato correto. (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) mas é uma data/hora inválida" + +msgid "Date (with time)" +msgstr "Data (com hora)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "O valor “%(value)s” deve ser um número decimal." + +msgid "Decimal number" +msgstr "Número decimal" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" +"O valor “%(value)s” está em um formato inválido. Deve ser no formato [DD] " +"[[HH:]MM:]ss[.uuuuuu]." + +msgid "Duration" +msgstr "Duração" + +msgid "Email address" +msgstr "Endereço de e-mail" + +msgid "File path" +msgstr "Caminho do arquivo" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "O valor “%(value)s” deve ser um float." + +msgid "Floating point number" +msgstr "Número de ponto flutuante" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "O valor “%(value)s” deve ser inteiro." + +msgid "Integer" +msgstr "Inteiro" + +msgid "Big (8 byte) integer" +msgstr "Inteiro grande (8 byte)" + +msgid "Small integer" +msgstr "Inteiro curto" + +msgid "IPv4 address" +msgstr "Endereço IPv4" + +msgid "IP address" +msgstr "Endereço IP" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "O valor “%(value)s” deve ser None, True ou False." + +msgid "Boolean (Either True, False or None)" +msgstr "Booleano (Verdadeiro, Falso ou Nada)" + +msgid "Positive big integer" +msgstr "Inteiro grande positivo" + +msgid "Positive integer" +msgstr "Inteiro positivo" + +msgid "Positive small integer" +msgstr "Inteiro curto positivo" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "Slug (até %(max_length)s)" + +msgid "Text" +msgstr "Texto" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" +"O valor “%(value)s” tem um formato inválido. Deve estar no formato HH:MM[:" +"ss[.uuuuuu]]." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" +"O valor “%(value)s” está no formato correto (HH:MM[:ss[.uuuuuu]]) mas é uma " +"hora inválida." + +msgid "Time" +msgstr "Hora" + +msgid "URL" +msgstr "URL" + +msgid "Raw binary data" +msgstr "Dados binários bruto" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "O valor “%(value)s” não é um UUID válido" + +msgid "Universally unique identifier" +msgstr "Identificador único universal" + +msgid "File" +msgstr "Arquivo" + +msgid "Image" +msgstr "Imagem" + +msgid "A JSON object" +msgstr "Um objeto JSON" + +msgid "Value must be valid JSON." +msgstr "O valor deve ser um JSON válido." + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "A instância de %(model)s com %(field)s %(value)r não existe." + +msgid "Foreign Key (type determined by related field)" +msgstr "Chave Estrangeira (tipo determinado pelo campo relacionado)" + +msgid "One-to-one relationship" +msgstr "Relacionamento um-para-um" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "Relacionamento %(from)s-%(to)s" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "Relacionamentos %(from)s-%(to)s" + +msgid "Many-to-many relationship" +msgstr "Relacionamento muitos-para-muitos" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr ":?.!" + +msgid "This field is required." +msgstr "Este campo é obrigatório." + +msgid "Enter a whole number." +msgstr "Informe um número inteiro." + +msgid "Enter a valid date." +msgstr "Informe uma data válida." + +msgid "Enter a valid time." +msgstr "Informe uma hora válida." + +msgid "Enter a valid date/time." +msgstr "Informe uma data/hora válida." + +msgid "Enter a valid duration." +msgstr "Insira uma duração válida." + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "O número de dias deve ser entre {min_days} e {max_days}." + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "Nenhum arquivo enviado. Verifique o tipo de codificação do formulário." + +msgid "No file was submitted." +msgstr "Nenhum arquivo foi enviado." + +msgid "The submitted file is empty." +msgstr "O arquivo enviado está vazio." + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" +"Certifique-se de que o arquivo tenha no máximo %(max)d caractere (ele possui " +"%(length)d)." +msgstr[1] "" +"Certifique-se de que o arquivo tenha no máximo %(max)d caracteres (ele " +"possui %(length)d)." +msgstr[2] "" +"Certifique-se de que o arquivo tenha no máximo %(max)d caracteres (ele " +"possui %(length)d)." + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "Por favor, envie um arquivo ou marque o checkbox, mas não ambos." + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" +"Envie uma imagem válida. O arquivo enviado não é uma imagem ou está " +"corrompido." + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "Faça uma escolha válida. %(value)s não é uma das escolhas disponíveis." + +msgid "Enter a list of values." +msgstr "Informe uma lista de valores." + +msgid "Enter a complete value." +msgstr "Insira um valor completo." + +msgid "Enter a valid UUID." +msgstr "Insira um UUID válido." + +msgid "Enter a valid JSON." +msgstr "Insira um JSON válido" + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr ":" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "(Campo oculto %(name)s) %(error)s" + +#, python-format +msgid "" +"ManagementForm data is missing or has been tampered with. Missing fields: " +"%(field_names)s. You may need to file a bug report if the issue persists." +msgstr "" +"Dados de ManagementForm estão faltando ou foram adulterados. Campos " +"ausentes: %(field_names)s. Você pode precisar enviar um relatório de bug se " +"o problema persistir." + +#, python-format +msgid "Please submit at most %(num)d form." +msgid_plural "Please submit at most %(num)d forms." +msgstr[0] "Por favor, envie no máximo %(num)d formulário." +msgstr[1] "Por favor, envie no máximo %(num)d formulários." +msgstr[2] "Por favor, envie no máximo %(num)d formulários." + +#, python-format +msgid "Please submit at least %(num)d form." +msgid_plural "Please submit at least %(num)d forms." +msgstr[0] "Por favor, envie ao menos %(num)d formulário." +msgstr[1] "Por favor, envie ao menos %(num)d formulários." +msgstr[2] "Por favor, envie ao menos %(num)d formulários." + +msgid "Order" +msgstr "Ordem" + +msgid "Delete" +msgstr "Remover" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "Por favor, corrija o valor duplicado para %(field)s." + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "" +"Por favor, corrija o valor duplicado para %(field)s, o qual deve ser único." + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"Por favor, corrija o dado duplicado para %(field_name)s, o qual deve ser " +"único para %(lookup)s em %(date_field)s." + +msgid "Please correct the duplicate values below." +msgstr "Por favor, corrija os valores duplicados abaixo." + +msgid "The inline value did not match the parent instance." +msgstr "O valor na linha não correspondeu com a instância pai." + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "Faça uma escolha válida. Sua escolha não é uma das disponíveis." + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "“%(pk)s” não é um valor válido." + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" +"%(datetime)s não pode ser interpretada dentro da fuso horário " +"%(current_timezone)s; está ambíguo ou não existe." + +msgid "Clear" +msgstr "Limpar" + +msgid "Currently" +msgstr "Atualmente" + +msgid "Change" +msgstr "Modificar" + +msgid "Unknown" +msgstr "Desconhecido" + +msgid "Yes" +msgstr "Sim" + +msgid "No" +msgstr "Não" + +#. Translators: Please do not add spaces around commas. +msgid "yes,no,maybe" +msgstr "sim,não,talvez" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)d byte" +msgstr[1] "%(size)d bytes" +msgstr[2] "%(size)d bytes" + +#, python-format +msgid "%s KB" +msgstr "%s KB" + +#, python-format +msgid "%s MB" +msgstr "%s MB" + +#, python-format +msgid "%s GB" +msgstr "%s GB" + +#, python-format +msgid "%s TB" +msgstr "%s TB" + +#, python-format +msgid "%s PB" +msgstr "%s PB" + +msgid "p.m." +msgstr "p.m." + +msgid "a.m." +msgstr "a.m." + +msgid "PM" +msgstr "PM" + +msgid "AM" +msgstr "AM" + +msgid "midnight" +msgstr "meia-noite" + +msgid "noon" +msgstr "meio-dia" + +msgid "Monday" +msgstr "Segunda-feira" + +msgid "Tuesday" +msgstr "Terça-feira" + +msgid "Wednesday" +msgstr "Quarta-feira" + +msgid "Thursday" +msgstr "Quinta-feira" + +msgid "Friday" +msgstr "Sexta-feira" + +msgid "Saturday" +msgstr "Sábado" + +msgid "Sunday" +msgstr "Domingo" + +msgid "Mon" +msgstr "Seg" + +msgid "Tue" +msgstr "Ter" + +msgid "Wed" +msgstr "Qua" + +msgid "Thu" +msgstr "Qui" + +msgid "Fri" +msgstr "Sex" + +msgid "Sat" +msgstr "Sab" + +msgid "Sun" +msgstr "Dom" + +msgid "January" +msgstr "Janeiro" + +msgid "February" +msgstr "Fevereiro" + +msgid "March" +msgstr "Março" + +msgid "April" +msgstr "Abril" + +msgid "May" +msgstr "Maio" + +msgid "June" +msgstr "Junho" + +msgid "July" +msgstr "Julho" + +msgid "August" +msgstr "Agosto" + +msgid "September" +msgstr "Setembro" + +msgid "October" +msgstr "Outubro" + +msgid "November" +msgstr "Novembro" + +msgid "December" +msgstr "Dezembro" + +msgid "jan" +msgstr "jan" + +msgid "feb" +msgstr "fev" + +msgid "mar" +msgstr "mar" + +msgid "apr" +msgstr "abr" + +msgid "may" +msgstr "mai" + +msgid "jun" +msgstr "jun" + +msgid "jul" +msgstr "jul" + +msgid "aug" +msgstr "ago" + +msgid "sep" +msgstr "set" + +msgid "oct" +msgstr "out" + +msgid "nov" +msgstr "nov" + +msgid "dec" +msgstr "dez" + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "Jan." + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "Fev." + +msgctxt "abbrev. month" +msgid "March" +msgstr "Março" + +msgctxt "abbrev. month" +msgid "April" +msgstr "Abril" + +msgctxt "abbrev. month" +msgid "May" +msgstr "Maio" + +msgctxt "abbrev. month" +msgid "June" +msgstr "Junho" + +msgctxt "abbrev. month" +msgid "July" +msgstr "Julho" + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "Ago." + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "Set." + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "Out." + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "Nov." + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "Dez." + +msgctxt "alt. month" +msgid "January" +msgstr "Janeiro" + +msgctxt "alt. month" +msgid "February" +msgstr "Fevereiro" + +msgctxt "alt. month" +msgid "March" +msgstr "Março" + +msgctxt "alt. month" +msgid "April" +msgstr "Abril" + +msgctxt "alt. month" +msgid "May" +msgstr "Maio" + +msgctxt "alt. month" +msgid "June" +msgstr "Junho" + +msgctxt "alt. month" +msgid "July" +msgstr "Julho" + +msgctxt "alt. month" +msgid "August" +msgstr "Agosto" + +msgctxt "alt. month" +msgid "September" +msgstr "Setembro" + +msgctxt "alt. month" +msgid "October" +msgstr "Outubro" + +msgctxt "alt. month" +msgid "November" +msgstr "Novembro" + +msgctxt "alt. month" +msgid "December" +msgstr "Dezembro" + +msgid "This is not a valid IPv6 address." +msgstr "Este não é um endereço IPv6 válido." + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr " %(truncated_text)s…" + +msgid "or" +msgstr "ou" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr ", " + +#, python-format +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "%(num)d ano" +msgstr[1] "%(num)d anos" +msgstr[2] "%(num)d anos" + +#, python-format +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "%(num)d mês" +msgstr[1] "%(num)d meses" +msgstr[2] "%(num)d meses" + +#, python-format +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "%(num)d semana" +msgstr[1] "%(num)d semanas" +msgstr[2] "%(num)d semanas" + +#, python-format +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "%(num)d dia" +msgstr[1] "%(num)d dias" +msgstr[2] "%(num)d dias" + +#, python-format +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "%(num)d hora" +msgstr[1] "%(num)d horas" +msgstr[2] "%(num)d horas" + +#, python-format +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "%(num)d minuto" +msgstr[1] "%(num)d minutos" +msgstr[2] "%(num)d minutos" + +msgid "Forbidden" +msgstr "Proibido" + +msgid "CSRF verification failed. Request aborted." +msgstr "Verificação CSRF falhou. Pedido cancelado." + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" +"Você está vendo esta mensagem porque este site HTTPS requer que um " +"“cabeçalho Refer” seja enviado pelo seu navegador da web, mas nenhum foi " +"enviado. Este cabeçalho é necessário por motivos de segurança, para garantir " +"que seu navegador não seja invadido por terceiros." + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" +"Se você configurou seu browser para desabilitar os cabeçalhos “Referer”, por " +"favor reabilite-os, ao menos para este site, ou para conexões HTTPS, ou para " +"requisições “same-origin”." + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" +"Se estiver usando a tag ou " +"incluindo o cabeçalho “Referrer-Policy: no-referrer”, por favor remova-os. A " +"proteção CSRF requer o cabeçalho “Referer” para fazer a checagem de " +"referência. Se estiver preocupado com privacidade, use alternativas como para links de sites de terceiros." + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" +"Você está vendo esta mensagem, porque este site requer um cookie CSRF no " +"envio de formulários. Este cookie é necessário por razões de segurança, para " +"garantir que o seu browser não está sendo sequestrado por terceiros." + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" +"Se você configurou seu browser para desabilitar cookies, por favor reabilite-" +"os, ao menos para este site ou para requisições do tipo \"same-origin\"." + +msgid "More information is available with DEBUG=True." +msgstr "Mais informações estão disponíveis com DEBUG=True." + +msgid "No year specified" +msgstr "Ano não especificado" + +msgid "Date out of range" +msgstr "Data fora de alcance" + +msgid "No month specified" +msgstr "Mês não especificado" + +msgid "No day specified" +msgstr "Dia não especificado" + +msgid "No week specified" +msgstr "Semana não especificada" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "Nenhum(a) %(verbose_name_plural)s disponível" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" +"%(verbose_name_plural)s futuros não disponíveis pois %(class_name)s." +"allow_future é False." + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "" +"String de data com formato inválido “%(datestr)s” dado o formato “%(format)s”" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "%(verbose_name)s não encontrado de acordo com a consulta" + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "Página não é “last”, e também não pode ser convertida para um int." + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "Página inválida (%(page_number)s): %(message)s" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "Lista vazia e o \"%(class_name)s.allow_empty\" está como False." + +msgid "Directory indexes are not allowed here." +msgstr "Índices de diretório não são permitidos aqui." + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "\"%(path)s\" não existe" + +#, python-format +msgid "Index of %(directory)s" +msgstr "Índice de %(directory)s " + +msgid "The install worked successfully! Congratulations!" +msgstr "A instalação foi com sucesso! Parabéns!" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" +"Ver as notas de lançamento do Django " +"%(version)s" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not " +"configured any URLs." +msgstr "" +"Você está vendo esta página pois possui DEBUG=True no seu arquivo de configurações e não " +"configurou nenhuma URL." + +msgid "Django Documentation" +msgstr "Documentação do Django" + +msgid "Topics, references, & how-to’s" +msgstr "Tópicos, referências, & how-to’s" + +msgid "Tutorial: A Polling App" +msgstr "Tutorial: Um aplicativo de votação" + +msgid "Get started with Django" +msgstr "Comece a usar Django" + +msgid "Django Community" +msgstr "Comunidade Django" + +msgid "Connect, get help, or contribute" +msgstr "Conecte-se, obtenha ajuda ou contribua" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/pt_BR/__init__.py b/venv/lib/python3.12/site-packages/django/conf/locale/pt_BR/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/pt_BR/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/pt_BR/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..cca046f4c33846723fe8f04e4f44a3b19fa5b93c GIT binary patch literal 201 zcmX@j%ge<81o5sX(m?cM5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!%Fxfq&rQ|OP0Yy6 zFHO;RNiEZNN=(kybEFQ_cZ$j>v@Gc?jK&MZmQEdVM^ zOiwM=Pssu+OwP|s)6dCIPRvQwFDQw33et~{&&S S5r~UHjE~HWjEqIhKo$UW*)@d# literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/pt_BR/__pycache__/formats.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/pt_BR/__pycache__/formats.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..28e5711dc2eada6febd57eea846eda5fcdc23c06 GIT binary patch literal 829 zcmZWmON-i26uwb2zDA?*fwa(CN)|%((sn1MG}bsuYa%gHauI^#jgP4@;tR}b`YXCE z-Su~LQ|QKJaNE`Fq_cC?8%G`OT)5|a=R4nb?t%L|6bb-xG~ri=rUCfl6#L`af!lWk zd<7UFfGI>_7jj`Ya$^tjU>ec*44q*w@?szMcU{QW1vv1XLVg@X0ep^vIE2m@;S6Ij zSLr5h>gm#5QZ08m-=C$(@c$a=pWm93G-+DCgVwj#STu$PR4xBDIjS3HPs_()$Qh7R z4``7&v!Z)8&6V?9HP6+p_ya1(b*%6ydoV5@8tFE&)}#!XfdGoe+m$SZt#t+wBxCXd+KCdsUp`MrK(9K z?UNvUSg~7MMXWWH-MsoLd069=j~0dZl`8*Hs|z(=<`qd^u}WEL)OoRZ#4%!{S`cLI zLY5k}ig@t@+&aIp>B63A=+J2O40DEIQJ=#?tNl4E3^BYMw1!<1&h_CO4*HjHw3znH z;p^PXS8&pw>e&$ywz~QR;;XH&Z4NtdV76NW9ge12L53Z3Y_z76+-R}!y)jHY8|ZJx zN%Ag5?nEPD?WQPd9RSR;>!2Nuk-%oJ89V-T38HrF$r42D_+tmBo-aYdjwc8va+_7iJtMZ~OxZ|L2te literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/pt_BR/formats.py b/venv/lib/python3.12/site-packages/django/conf/locale/pt_BR/formats.py new file mode 100644 index 0000000000..96a49b48c7 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/pt_BR/formats.py @@ -0,0 +1,34 @@ +# This file is distributed under the same license as the Django package. +# +# The *_FORMAT strings use the Django date format syntax, +# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date +DATE_FORMAT = r"j \d\e F \d\e Y" +TIME_FORMAT = "H:i" +DATETIME_FORMAT = r"j \d\e F \d\e Y à\s H:i" +YEAR_MONTH_FORMAT = r"F \d\e Y" +MONTH_DAY_FORMAT = r"j \d\e F" +SHORT_DATE_FORMAT = "d/m/Y" +SHORT_DATETIME_FORMAT = "d/m/Y H:i" +FIRST_DAY_OF_WEEK = 0 # Sunday + +# The *_INPUT_FORMATS strings use the Python strftime format syntax, +# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior +DATE_INPUT_FORMATS = [ + "%d/%m/%Y", # '25/10/2006' + "%d/%m/%y", # '25/10/06' + # "%d de %b de %Y", # '24 de Out de 2006' + # "%d de %b, %Y", # '25 Out, 2006' + # "%d de %B de %Y", # '25 de Outubro de 2006' + # "%d de %B, %Y", # '25 de Outubro, 2006' +] +DATETIME_INPUT_FORMATS = [ + "%d/%m/%Y %H:%M:%S", # '25/10/2006 14:30:59' + "%d/%m/%Y %H:%M:%S.%f", # '25/10/2006 14:30:59.000200' + "%d/%m/%Y %H:%M", # '25/10/2006 14:30' + "%d/%m/%y %H:%M:%S", # '25/10/06 14:30:59' + "%d/%m/%y %H:%M:%S.%f", # '25/10/06 14:30:59.000200' + "%d/%m/%y %H:%M", # '25/10/06 14:30' +] +DECIMAL_SEPARATOR = "," +THOUSAND_SEPARATOR = "." +NUMBER_GROUPING = 3 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/ro/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/conf/locale/ro/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..37e80b0b4ec3010fa30bed19e419a1aa273bf55b GIT binary patch literal 21493 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 XdW%yxk3rtPgHQ^3;=IS`QSZM2GAXOj literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/ro/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/conf/locale/ro/LC_MESSAGES/django.po new file mode 100644 index 0000000000..3b833072ae --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/ro/LC_MESSAGES/django.po @@ -0,0 +1,1323 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Abel Radac , 2017 +# Bogdan Mateescu, 2018-2019,2021 +# mihneasim , 2011 +# Daniel Ursache-Dogariu, 2011 +# Denis Darii , 2011,2014 +# Ionel Cristian Mărieș , 2012 +# Jannis Leidel , 2011 +# razvan ionescu , 2015 +# Razvan Stefanescu , 2016-2017 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-01-17 02:13-0600\n" +"PO-Revision-Date: 2023-04-25 06:49+0000\n" +"Last-Translator: Bogdan Mateescu, 2018-2019,2021\n" +"Language-Team: Romanian (http://www.transifex.com/django/django/language/" +"ro/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ro\n" +"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" +"2:1));\n" + +msgid "Afrikaans" +msgstr "Afrikaans" + +msgid "Arabic" +msgstr "Arabă" + +msgid "Algerian Arabic" +msgstr "" + +msgid "Asturian" +msgstr "Asturiană" + +msgid "Azerbaijani" +msgstr "Azeră" + +msgid "Bulgarian" +msgstr "Bulgară" + +msgid "Belarusian" +msgstr "Bielorusă" + +msgid "Bengali" +msgstr "Bengaleză" + +msgid "Breton" +msgstr "Bretonă" + +msgid "Bosnian" +msgstr "Bosniacă" + +msgid "Catalan" +msgstr "Catalană" + +msgid "Central Kurdish (Sorani)" +msgstr "" + +msgid "Czech" +msgstr "Cehă" + +msgid "Welsh" +msgstr "Galeză" + +msgid "Danish" +msgstr "Daneză" + +msgid "German" +msgstr "Germană" + +msgid "Lower Sorbian" +msgstr "Soraba Inferioară" + +msgid "Greek" +msgstr "Greacă" + +msgid "English" +msgstr "Engleză" + +msgid "Australian English" +msgstr "Engleză australiană" + +msgid "British English" +msgstr "Engleză britanică" + +msgid "Esperanto" +msgstr "Esperanto" + +msgid "Spanish" +msgstr "Spaniolă" + +msgid "Argentinian Spanish" +msgstr "Spaniolă Argentiniană" + +msgid "Colombian Spanish" +msgstr "Spaniolă Columbiană" + +msgid "Mexican Spanish" +msgstr "Spaniolă Mexicană" + +msgid "Nicaraguan Spanish" +msgstr "Spaniolă Nicaragua" + +msgid "Venezuelan Spanish" +msgstr "Spaniolă venezueleană" + +msgid "Estonian" +msgstr "Estonă" + +msgid "Basque" +msgstr "Bască" + +msgid "Persian" +msgstr "Persană" + +msgid "Finnish" +msgstr "Finlandeză" + +msgid "French" +msgstr "Franceză" + +msgid "Frisian" +msgstr "Frizian" + +msgid "Irish" +msgstr "Irlandeză" + +msgid "Scottish Gaelic" +msgstr "Galeză Scoțiană" + +msgid "Galician" +msgstr "Galiciană" + +msgid "Hebrew" +msgstr "Ebraică" + +msgid "Hindi" +msgstr "Hindi" + +msgid "Croatian" +msgstr "Croată" + +msgid "Upper Sorbian" +msgstr "Soraba Superioară" + +msgid "Hungarian" +msgstr "Ungară" + +msgid "Armenian" +msgstr "Armeană" + +msgid "Interlingua" +msgstr "Interlingua" + +msgid "Indonesian" +msgstr "Indoneză" + +msgid "Igbo" +msgstr "" + +msgid "Ido" +msgstr "Ido" + +msgid "Icelandic" +msgstr "Islandeză" + +msgid "Italian" +msgstr "Italiană" + +msgid "Japanese" +msgstr "Japoneză" + +msgid "Georgian" +msgstr "Georgiană" + +msgid "Kabyle" +msgstr "Kabyle" + +msgid "Kazakh" +msgstr "Kazahă" + +msgid "Khmer" +msgstr "Khmeră" + +msgid "Kannada" +msgstr "Limba kannada" + +msgid "Korean" +msgstr "Koreană" + +msgid "Kyrgyz" +msgstr "" + +msgid "Luxembourgish" +msgstr "Luxemburgheză" + +msgid "Lithuanian" +msgstr "Lituaniană" + +msgid "Latvian" +msgstr "Letonă" + +msgid "Macedonian" +msgstr "Macedoneană" + +msgid "Malayalam" +msgstr "Malayalam" + +msgid "Mongolian" +msgstr "Mongolă" + +msgid "Marathi" +msgstr "Marathi" + +msgid "Malay" +msgstr "" + +msgid "Burmese" +msgstr "Burmeză" + +msgid "Norwegian Bokmål" +msgstr "Norvegiana modernă" + +msgid "Nepali" +msgstr "Nepaleză" + +msgid "Dutch" +msgstr "Olandeză" + +msgid "Norwegian Nynorsk" +msgstr "Norvegiană Nynorsk" + +msgid "Ossetic" +msgstr "Osețiană" + +msgid "Punjabi" +msgstr "Punjabi" + +msgid "Polish" +msgstr "Poloneză" + +msgid "Portuguese" +msgstr "Portugheză" + +msgid "Brazilian Portuguese" +msgstr "Portugheză braziliană" + +msgid "Romanian" +msgstr "Română" + +msgid "Russian" +msgstr "Rusă" + +msgid "Slovak" +msgstr "Slovacă" + +msgid "Slovenian" +msgstr "Slovenă" + +msgid "Albanian" +msgstr "Albaneză" + +msgid "Serbian" +msgstr "Sârbă" + +msgid "Serbian Latin" +msgstr "Sârbă latină" + +msgid "Swedish" +msgstr "Suedeză" + +msgid "Swahili" +msgstr "Swahili" + +msgid "Tamil" +msgstr "Limba tamila" + +msgid "Telugu" +msgstr "Limba telugu" + +msgid "Tajik" +msgstr "" + +msgid "Thai" +msgstr "Tailandeză" + +msgid "Turkmen" +msgstr "" + +msgid "Turkish" +msgstr "Turcă" + +msgid "Tatar" +msgstr "Tătară" + +msgid "Udmurt" +msgstr "Udmurtă" + +msgid "Ukrainian" +msgstr "Ucraineană" + +msgid "Urdu" +msgstr "Urdu" + +msgid "Uzbek" +msgstr "Uzbecă" + +msgid "Vietnamese" +msgstr "Vietnameză" + +msgid "Simplified Chinese" +msgstr "Chineză simplificată" + +msgid "Traditional Chinese" +msgstr "Chineză tradițională" + +msgid "Messages" +msgstr "Mesaje" + +msgid "Site Maps" +msgstr "Harta sit-ului" + +msgid "Static Files" +msgstr "Fișiere statice" + +msgid "Syndication" +msgstr "Sindicalizare" + +#. Translators: String used to replace omitted page numbers in elided page +#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10]. +msgid "…" +msgstr "" + +msgid "That page number is not an integer" +msgstr "Numărul de pagină nu este întreg" + +msgid "That page number is less than 1" +msgstr "Numărul de pagină este mai mic decât 1" + +msgid "That page contains no results" +msgstr "Această pagină nu conține nici un rezultat" + +msgid "Enter a valid value." +msgstr "Introduceți o valoare validă." + +msgid "Enter a valid URL." +msgstr "Introduceți un URL valid." + +msgid "Enter a valid integer." +msgstr "Introduceți un întreg valid." + +msgid "Enter a valid email address." +msgstr "Introduceți o adresă de email validă." + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" +"Introduceți un “slug” valid care constă în litere, numere, underscore sau " +"cratime." + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" + +msgid "Enter a valid IPv4 address." +msgstr "Introduceţi o adresă IPv4 validă." + +msgid "Enter a valid IPv6 address." +msgstr "Intoduceți o adresă IPv6 validă." + +msgid "Enter a valid IPv4 or IPv6 address." +msgstr "Introduceți o adresă IPv4 sau IPv6 validă." + +msgid "Enter only digits separated by commas." +msgstr "Introduceţi numai numere separate de virgule." + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "" +"Asiguraţi-vă că această valoare este %(limit_value)s (este %(show_value)s )." + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "" +"Asiguraţi-vă că această valoare este mai mică sau egală cu %(limit_value)s ." + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "" +"Asiguraţi-vă că această valoare este mai mare sau egală cu %(limit_value)s ." + +#, python-format +msgid "Ensure this value is a multiple of step size %(limit_value)s." +msgstr "" + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Asigurați-vă că această valoare are cel puțin %(limit_value)d caracter (are " +"%(show_value)d)." +msgstr[1] "" +"Asigurați-vă că această valoare are cel puțin %(limit_value)d caractere (are " +"%(show_value)d)." +msgstr[2] "" +"Asigurați-vă că această valoare are cel puțin %(limit_value)d de caractere " +"(are %(show_value)d)." + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Asigurați-vă că această valoare are cel mult %(limit_value)d caracter (are " +"%(show_value)d)." +msgstr[1] "" +"Asigurați-vă că această valoare are cel mult %(limit_value)d caractere (are " +"%(show_value)d)." +msgstr[2] "" +"Asigurați-vă că această valoare are cel mult %(limit_value)d de caractere " +"(are %(show_value)d)." + +msgid "Enter a number." +msgstr "Introduceţi un număr." + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "Asigurați-vă că nu este mai mult de %(max)s cifră în total." +msgstr[1] "Asigurați-vă că nu sunt mai mult de %(max)s cifre în total." +msgstr[2] "Asigurați-vă că nu sunt mai mult de %(max)s de cifre în total." + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "Asigurați-vă că nu este mai mult de %(max)s zecimală în total." +msgstr[1] "Asigurați-vă că nu sunt mai mult de %(max)s zecimale în total." +msgstr[2] "Asigurați-vă că nu sunt mai mult de %(max)s de zecimale în total." + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "" +"Asigurați-vă că nu este mai mult de %(max)s cifră înainte de punctul zecimal." +msgstr[1] "" +"Asigurați-vă că nu sunt mai mult de %(max)s cifre înainte de punctul zecimal." +msgstr[2] "" +"Asigurați-vă că nu sunt mai mult de %(max)s de cifre înainte de punctul " +"zecimal." + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" + +msgid "Null characters are not allowed." +msgstr "Caracterele Null nu sunt permise." + +msgid "and" +msgstr "și" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "%(model_name)s cu acest %(field_labels)s există deja." + +#, python-format +msgid "Constraint “%(name)s” is violated." +msgstr "" + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "Valoarea %(value)r nu este o opțiune validă." + +msgid "This field cannot be null." +msgstr "Acest câmp nu poate fi nul." + +msgid "This field cannot be blank." +msgstr "Acest câmp nu poate fi gol." + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "%(model_name)s cu %(field_label)s deja există." + +#. Translators: The 'lookup_type' is one of 'date', 'year' or +#. 'month'. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" +"%(field_label)s trebuie să fie unic(e) pentru %(date_field_label)s " +"%(lookup_type)s." + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "Câmp de tip: %(field_type)s" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "" + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "" + +msgid "Boolean (Either True or False)" +msgstr "Boolean (adevărat sau fals)" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "Şir de caractere (cel mult %(max_length)s caractere)" + +msgid "String (unlimited)" +msgstr "" + +msgid "Comma-separated integers" +msgstr "Numere întregi separate de virgule" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" + +msgid "Date (without time)" +msgstr "Dată (fară oră)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" + +msgid "Date (with time)" +msgstr "Dată (cu oră)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "" + +msgid "Decimal number" +msgstr "Număr zecimal" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" + +msgid "Duration" +msgstr "Durată" + +msgid "Email address" +msgstr "Adresă e-mail" + +msgid "File path" +msgstr "Calea fisierului" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "" + +msgid "Floating point number" +msgstr "Număr cu virgulă" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "" + +msgid "Integer" +msgstr "Întreg" + +msgid "Big (8 byte) integer" +msgstr "Întreg mare (8 octeți)" + +msgid "Small integer" +msgstr "Întreg mic" + +msgid "IPv4 address" +msgstr "Adresă IPv4" + +msgid "IP address" +msgstr "Adresă IP" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "" + +msgid "Boolean (Either True, False or None)" +msgstr "Boolean (adevărat, fals sau niciuna)" + +msgid "Positive big integer" +msgstr "" + +msgid "Positive integer" +msgstr "Întreg pozitiv" + +msgid "Positive small integer" +msgstr "Întreg pozitiv mic" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "Slug (până la %(max_length)s)" + +msgid "Text" +msgstr "Text" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" + +msgid "Time" +msgstr "Timp" + +msgid "URL" +msgstr "URL" + +msgid "Raw binary data" +msgstr "Date binare brute" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "" + +msgid "Universally unique identifier" +msgstr "Identificator unic universal" + +msgid "File" +msgstr "Fișier" + +msgid "Image" +msgstr "Imagine" + +msgid "A JSON object" +msgstr "" + +msgid "Value must be valid JSON." +msgstr "" + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "Instanța %(model)s cu %(field)s %(value)r inexistentă." + +msgid "Foreign Key (type determined by related field)" +msgstr "Foreign Key (tip determinat de câmpul aferent)" + +msgid "One-to-one relationship" +msgstr "Relaţie unul-la-unul" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "Relație %(from)s-%(to)s" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "Relații %(from)s-%(to)s" + +msgid "Many-to-many relationship" +msgstr "Relație multe-la-multe" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr ":?.!" + +msgid "This field is required." +msgstr "Acest câmp este obligatoriu." + +msgid "Enter a whole number." +msgstr "Introduceţi un număr întreg." + +msgid "Enter a valid date." +msgstr "Introduceți o dată validă." + +msgid "Enter a valid time." +msgstr "Introduceți o oră validă." + +msgid "Enter a valid date/time." +msgstr "Introduceți o dată/oră validă." + +msgid "Enter a valid duration." +msgstr "Introduceți o durată validă." + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "Numărul de zile trebuie să fie cuprins între {min_days} și {max_days}." + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "Nici un fișier nu a fost trimis. Verificați tipul fișierului." + +msgid "No file was submitted." +msgstr "Nici un fișier nu a fost trimis." + +msgid "The submitted file is empty." +msgstr "Fișierul încărcat este gol." + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" +"Asigurați-vă că numele fișierului are cel mult %(max)d caracter (are " +"%(length)d)." +msgstr[1] "" +"Asigurați-vă că numele fișierului are cel mult %(max)d caractere (are " +"%(length)d)." +msgstr[2] "" +"Asigurați-vă că numele fișierului are cel mult %(max)d de caractere (are " +"%(length)d)." + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "Fie indicați un fişier, fie bifaţi caseta de selectare, nu ambele." + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" +"Încărcaţi o imagine validă. Fişierul încărcat nu era o imagine sau era o " +"imagine coruptă." + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "" +"Selectați o opțiune validă. %(value)s nu face parte din opțiunile " +"disponibile." + +msgid "Enter a list of values." +msgstr "Introduceți o listă de valori." + +msgid "Enter a complete value." +msgstr "Introduceți o valoare completă." + +msgid "Enter a valid UUID." +msgstr "Introduceți un UUID valid." + +msgid "Enter a valid JSON." +msgstr "" + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr ":" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "(Câmp ascuns %(name)s) %(error)s" + +#, python-format +msgid "" +"ManagementForm data is missing or has been tampered with. Missing fields: " +"%(field_names)s. You may need to file a bug report if the issue persists." +msgstr "" + +#, python-format +msgid "Please submit at most %(num)d form." +msgid_plural "Please submit at most %(num)d forms." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#, python-format +msgid "Please submit at least %(num)d form." +msgid_plural "Please submit at least %(num)d forms." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +msgid "Order" +msgstr "Ordine" + +msgid "Delete" +msgstr "Șterge" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "Corectaţi datele duplicate pentru %(field)s." + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "Corectaţi datele duplicate pentru %(field)s , ce trebuie să fie unic." + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"Corectaţi datele duplicate pentru %(field_name)s , care trebuie să fie unice " +"pentru %(lookup)s în %(date_field)s ." + +msgid "Please correct the duplicate values below." +msgstr "Corectaţi valorile duplicate de mai jos." + +msgid "The inline value did not match the parent instance." +msgstr "Valoarea în linie nu s-a potrivit cu instanța părinte." + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "" +"Selectați o opțiune validă. Această opțiune nu face parte din opțiunile " +"disponibile." + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "" + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" + +msgid "Clear" +msgstr "Șterge" + +msgid "Currently" +msgstr "În prezent" + +msgid "Change" +msgstr "Schimbă" + +msgid "Unknown" +msgstr "Necunoscut" + +msgid "Yes" +msgstr "Da" + +msgid "No" +msgstr "Nu" + +#. Translators: Please do not add spaces around commas. +msgid "yes,no,maybe" +msgstr "da,nu,poate" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)d octet" +msgstr[1] "%(size)d octeţi" +msgstr[2] "%(size)d de octeţi" + +#, python-format +msgid "%s KB" +msgstr "%s KO" + +#, python-format +msgid "%s MB" +msgstr "%s MO" + +#, python-format +msgid "%s GB" +msgstr "%s GO" + +#, python-format +msgid "%s TB" +msgstr "%s TO" + +#, python-format +msgid "%s PB" +msgstr "%s PO" + +msgid "p.m." +msgstr "p.m." + +msgid "a.m." +msgstr "a.m." + +msgid "PM" +msgstr "PM" + +msgid "AM" +msgstr "AM" + +msgid "midnight" +msgstr "miezul nopții" + +msgid "noon" +msgstr "amiază" + +msgid "Monday" +msgstr "Luni" + +msgid "Tuesday" +msgstr "Marți" + +msgid "Wednesday" +msgstr "Miercuri" + +msgid "Thursday" +msgstr "Joi" + +msgid "Friday" +msgstr "Vineri" + +msgid "Saturday" +msgstr "Sâmbătă" + +msgid "Sunday" +msgstr "Duminică" + +msgid "Mon" +msgstr "Lun" + +msgid "Tue" +msgstr "Mar" + +msgid "Wed" +msgstr "Mie" + +msgid "Thu" +msgstr "Joi" + +msgid "Fri" +msgstr "Vin" + +msgid "Sat" +msgstr "Sâm" + +msgid "Sun" +msgstr "Dum" + +msgid "January" +msgstr "Ianuarie" + +msgid "February" +msgstr "Februarie" + +msgid "March" +msgstr "Martie" + +msgid "April" +msgstr "Aprilie" + +msgid "May" +msgstr "Mai" + +msgid "June" +msgstr "Iunie" + +msgid "July" +msgstr "Iulie" + +msgid "August" +msgstr "August" + +msgid "September" +msgstr "Septembrie" + +msgid "October" +msgstr "Octombrie" + +msgid "November" +msgstr "Noiembrie" + +msgid "December" +msgstr "Decembrie" + +msgid "jan" +msgstr "ian" + +msgid "feb" +msgstr "feb" + +msgid "mar" +msgstr "mar" + +msgid "apr" +msgstr "apr" + +msgid "may" +msgstr "mai" + +msgid "jun" +msgstr "iun" + +msgid "jul" +msgstr "iul" + +msgid "aug" +msgstr "aug" + +msgid "sep" +msgstr "sep" + +msgid "oct" +msgstr "oct" + +msgid "nov" +msgstr "noi" + +msgid "dec" +msgstr "dec" + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "Ian." + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "Feb." + +msgctxt "abbrev. month" +msgid "March" +msgstr "Martie" + +msgctxt "abbrev. month" +msgid "April" +msgstr "Aprilie" + +msgctxt "abbrev. month" +msgid "May" +msgstr "Mai" + +msgctxt "abbrev. month" +msgid "June" +msgstr "Iunie" + +msgctxt "abbrev. month" +msgid "July" +msgstr "Iulie" + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "Aug." + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "Sept." + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "Oct." + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "Noie." + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "Dec." + +msgctxt "alt. month" +msgid "January" +msgstr "Ianuarie" + +msgctxt "alt. month" +msgid "February" +msgstr "Februarie" + +msgctxt "alt. month" +msgid "March" +msgstr "Martie" + +msgctxt "alt. month" +msgid "April" +msgstr "Aprilie" + +msgctxt "alt. month" +msgid "May" +msgstr "Mai" + +msgctxt "alt. month" +msgid "June" +msgstr "Iunie" + +msgctxt "alt. month" +msgid "July" +msgstr "Iulie" + +msgctxt "alt. month" +msgid "August" +msgstr "August" + +msgctxt "alt. month" +msgid "September" +msgstr "Septembrie" + +msgctxt "alt. month" +msgid "October" +msgstr "Octombrie" + +msgctxt "alt. month" +msgid "November" +msgstr "Noiembrie" + +msgctxt "alt. month" +msgid "December" +msgstr "Decembrie" + +msgid "This is not a valid IPv6 address." +msgstr "Aceasta nu este o adresă IPv6 validă." + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "%(truncated_text)s…" + +msgid "or" +msgstr "sau" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr ", " + +#, python-format +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "%(num)d an" +msgstr[1] "%(num)d ani" +msgstr[2] "%(num)d de ani" + +#, python-format +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "%(num)d lună" +msgstr[1] "%(num)d luni" +msgstr[2] "%(num)d de luni" + +#, python-format +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "%(num)d săptămână" +msgstr[1] "%(num)d săptămâni" +msgstr[2] "%(num)d de săptămâni" + +#, python-format +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "%(num)d zi" +msgstr[1] "%(num)d zile" +msgstr[2] "%(num)d de zile" + +#, python-format +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "%(num)d oră" +msgstr[1] "%(num)d ore" +msgstr[2] "%(num)d de ore" + +#, python-format +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "%(num)d minut" +msgstr[1] "%(num)d minute" +msgstr[2] "%(num)d de minute" + +msgid "Forbidden" +msgstr "Interzis" + +msgid "CSRF verification failed. Request aborted." +msgstr "Verificarea CSRF nereușită. Cerere eșuată." + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" +"Vedeți acest mesaj deoarece această pagină web necesită un cookie CSRF la " +"trimiterea formularelor. Acest cookie este necesar din motive de securitate, " +"pentru a se asigura că browserul nu este deturnat de terți." + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" + +msgid "More information is available with DEBUG=True." +msgstr "Mai multe informații sunt disponibile pentru DEBUG=True." + +msgid "No year specified" +msgstr "Niciun an specificat" + +msgid "Date out of range" +msgstr "Dată în afara intervalului" + +msgid "No month specified" +msgstr "Nicio lună specificată" + +msgid "No day specified" +msgstr "Nicio zi specificată" + +msgid "No week specified" +msgstr "Nicio săptămîna specificată" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "%(verbose_name_plural)s nu e disponibil" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" +"Viitorul %(verbose_name_plural)s nu e disponibil deoarece %(class_name)s ." +"allow_future este Fals." + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "Niciun rezultat pentru %(verbose_name)s care se potrivesc interogării" + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "" + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "Pagină invalidă (%(page_number)s): %(message)s" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "" + +msgid "Directory indexes are not allowed here." +msgstr "Aici nu sunt permise indexuri la directoare" + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "" + +#, python-format +msgid "Index of %(directory)s" +msgstr "Index pentru %(directory)s" + +msgid "The install worked successfully! Congratulations!" +msgstr "Instalarea a funcționat cu succes! Felicitări!" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" +"Vezi notele de lansare pentru Django " +"%(version)s" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not " +"configured any URLs." +msgstr "" +"Vedeți această pagină deoarece DEBUG=True este în fișierul de setări și nu ați " +"configurat niciun URL." + +msgid "Django Documentation" +msgstr "Documentația Django" + +msgid "Topics, references, & how-to’s" +msgstr "" + +msgid "Tutorial: A Polling App" +msgstr "Tutorial: O aplicație de votare" + +msgid "Get started with Django" +msgstr "Începeți cu Django" + +msgid "Django Community" +msgstr "Comunitatea Django" + +msgid "Connect, get help, or contribute" +msgstr "Conectați-vă, obțineți ajutor sau contribuiți" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/ro/__init__.py b/venv/lib/python3.12/site-packages/django/conf/locale/ro/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/ro/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/ro/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..40102bf524866fa2a5651fb75f5b3f8d97f00b21 GIT binary patch literal 198 zcmX@j%ge<81o5sX(m?cM5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!O4ZNE&rQ|OP0Yy6 zFHO;RNiEZNN=(kybEFQ_cZ$j>v@Gc?jK&MZmQEdVM^ zOiwM=Pssu+OwP|s)6dCIPRvQwFUr@CkI&4@EQycTE2#X%VUwGmQks)$SHudml@W-G PL5z>gjEsy$%s>_Z$Ivv4 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/ro/__pycache__/formats.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/ro/__pycache__/formats.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9cc87b5c0aa0588f24b8bbed98308a00be1d4b39 GIT binary patch literal 836 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 PQ>K<0{DPDFJ, 2014 +# Anton Bazhanov , 2017 +# Denis Darii , 2011 +# Dimmus , 2011 +# eigrad , 2012 +# Eugene , 2013 +# Eugene Morozov , 2021 +# eXtractor , 2015 +# crazyzubr , 2020 +# Igor Melnyk, 2014 +# Ivan Khomutov , 2017 +# Jannis Leidel , 2011 +# lilo.panic, 2016 +# Mikhail Zholobov , 2013 +# Nikolay Korotkiy , 2018 +# Panasoft, 2021 +# Вася Аникин , 2017 +# SeryiMysh , 2020 +# Алексей Борискин , 2013-2017,2019-2020,2022-2024 +# Bobsans , 2016,2018 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-05-22 11:46-0300\n" +"PO-Revision-Date: 2024-08-07 06:49+0000\n" +"Last-Translator: Алексей Борискин , " +"2013-2017,2019-2020,2022-2024\n" +"Language-Team: Russian (http://app.transifex.com/django/django/language/" +"ru/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ru\n" +"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || " +"(n%100>=11 && n%100<=14)? 2 : 3);\n" + +msgid "Afrikaans" +msgstr "Бурский" + +msgid "Arabic" +msgstr "Арабский" + +msgid "Algerian Arabic" +msgstr "Алжирский арабский" + +msgid "Asturian" +msgstr "Астурийский" + +msgid "Azerbaijani" +msgstr "Азербайджанский" + +msgid "Bulgarian" +msgstr "Болгарский" + +msgid "Belarusian" +msgstr "Белоруский" + +msgid "Bengali" +msgstr "Бенгальский" + +msgid "Breton" +msgstr "Бретонский" + +msgid "Bosnian" +msgstr "Боснийский" + +msgid "Catalan" +msgstr "Каталанский" + +msgid "Central Kurdish (Sorani)" +msgstr "Центральнокурдский (Сорани)" + +msgid "Czech" +msgstr "Чешский" + +msgid "Welsh" +msgstr "Уэльский" + +msgid "Danish" +msgstr "Датский" + +msgid "German" +msgstr "Немецкий" + +msgid "Lower Sorbian" +msgstr "Нижнелужицкий" + +msgid "Greek" +msgstr "Греческий" + +msgid "English" +msgstr "Английский" + +msgid "Australian English" +msgstr "Австралийский английский" + +msgid "British English" +msgstr "Британский английский" + +msgid "Esperanto" +msgstr "Эсперанто" + +msgid "Spanish" +msgstr "Испанский" + +msgid "Argentinian Spanish" +msgstr "Аргентинский испанский" + +msgid "Colombian Spanish" +msgstr "Колумбийский испанский" + +msgid "Mexican Spanish" +msgstr "Мексиканский испанский" + +msgid "Nicaraguan Spanish" +msgstr "Никарагуанский испанский" + +msgid "Venezuelan Spanish" +msgstr "Венесуэльский Испанский" + +msgid "Estonian" +msgstr "Эстонский" + +msgid "Basque" +msgstr "Баскский" + +msgid "Persian" +msgstr "Персидский" + +msgid "Finnish" +msgstr "Финский" + +msgid "French" +msgstr "Французский" + +msgid "Frisian" +msgstr "Фризский" + +msgid "Irish" +msgstr "Ирландский" + +msgid "Scottish Gaelic" +msgstr "Шотландский гэльский" + +msgid "Galician" +msgstr "Галисийский" + +msgid "Hebrew" +msgstr "Иврит" + +msgid "Hindi" +msgstr "Хинди" + +msgid "Croatian" +msgstr "Хорватский" + +msgid "Upper Sorbian" +msgstr "Верхнелужицкий" + +msgid "Hungarian" +msgstr "Венгерский" + +msgid "Armenian" +msgstr "Армянский" + +msgid "Interlingua" +msgstr "Интерлингва" + +msgid "Indonesian" +msgstr "Индонезийский" + +msgid "Igbo" +msgstr "Игбо" + +msgid "Ido" +msgstr "Идо" + +msgid "Icelandic" +msgstr "Исландский" + +msgid "Italian" +msgstr "Итальянский" + +msgid "Japanese" +msgstr "Японский" + +msgid "Georgian" +msgstr "Грузинский" + +msgid "Kabyle" +msgstr "Кабильский" + +msgid "Kazakh" +msgstr "Казахский" + +msgid "Khmer" +msgstr "Кхмерский" + +msgid "Kannada" +msgstr "Каннада" + +msgid "Korean" +msgstr "Корейский" + +msgid "Kyrgyz" +msgstr "Киргизский" + +msgid "Luxembourgish" +msgstr "Люксембургский" + +msgid "Lithuanian" +msgstr "Литовский" + +msgid "Latvian" +msgstr "Латвийский" + +msgid "Macedonian" +msgstr "Македонский" + +msgid "Malayalam" +msgstr "Малаялам" + +msgid "Mongolian" +msgstr "Монгольский" + +msgid "Marathi" +msgstr "Маратхи" + +msgid "Malay" +msgstr "Малайский" + +msgid "Burmese" +msgstr "Бирманский" + +msgid "Norwegian Bokmål" +msgstr "Норвежский (Букмол)" + +msgid "Nepali" +msgstr "Непальский" + +msgid "Dutch" +msgstr "Голландский" + +msgid "Norwegian Nynorsk" +msgstr "Норвежский (Нюнорск)" + +msgid "Ossetic" +msgstr "Осетинский" + +msgid "Punjabi" +msgstr "Панджаби" + +msgid "Polish" +msgstr "Польский" + +msgid "Portuguese" +msgstr "Португальский" + +msgid "Brazilian Portuguese" +msgstr "Бразильский португальский" + +msgid "Romanian" +msgstr "Румынский" + +msgid "Russian" +msgstr "Русский" + +msgid "Slovak" +msgstr "Словацкий" + +msgid "Slovenian" +msgstr "Словенский" + +msgid "Albanian" +msgstr "Албанский" + +msgid "Serbian" +msgstr "Сербский" + +msgid "Serbian Latin" +msgstr "Сербский (латиница)" + +msgid "Swedish" +msgstr "Шведский" + +msgid "Swahili" +msgstr "Суахили" + +msgid "Tamil" +msgstr "Тамильский" + +msgid "Telugu" +msgstr "Телугу" + +msgid "Tajik" +msgstr "Таджикский" + +msgid "Thai" +msgstr "Тайский" + +msgid "Turkmen" +msgstr "Туркменский" + +msgid "Turkish" +msgstr "Турецкий" + +msgid "Tatar" +msgstr "Татарский" + +msgid "Udmurt" +msgstr "Удмуртский" + +msgid "Uyghur" +msgstr "Уйгурский" + +msgid "Ukrainian" +msgstr "Украинский" + +msgid "Urdu" +msgstr "Урду" + +msgid "Uzbek" +msgstr "Узбекский" + +msgid "Vietnamese" +msgstr "Вьетнамский" + +msgid "Simplified Chinese" +msgstr "Упрощенный китайский" + +msgid "Traditional Chinese" +msgstr "Традиционный китайский" + +msgid "Messages" +msgstr "Сообщения" + +msgid "Site Maps" +msgstr "Карта сайта" + +msgid "Static Files" +msgstr "Статические файлы" + +msgid "Syndication" +msgstr "Ленты новостей" + +#. Translators: String used to replace omitted page numbers in elided page +#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10]. +msgid "…" +msgstr "…" + +msgid "That page number is not an integer" +msgstr "Номер страницы не является натуральным числом" + +msgid "That page number is less than 1" +msgstr "Номер страницы меньше 1" + +msgid "That page contains no results" +msgstr "Страница не содержит результатов" + +msgid "Enter a valid value." +msgstr "Введите правильное значение." + +msgid "Enter a valid domain name." +msgstr "Введите правильное имя домена." + +msgid "Enter a valid URL." +msgstr "Введите правильный URL." + +msgid "Enter a valid integer." +msgstr "Введите правильное число." + +msgid "Enter a valid email address." +msgstr "Введите правильный адрес электронной почты." + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" +"Значение должно состоять только из латинских букв, цифр, знаков " +"подчеркивания или дефиса." + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" +"Значение должно состоять только из символов входящих в стандарт Юникод, " +"цифр, символов подчёркивания или дефисов." + +#, python-format +msgid "Enter a valid %(protocol)s address." +msgstr "Введите правильный адрес %(protocol)s." + +msgid "IPv4" +msgstr "IPv4" + +msgid "IPv6" +msgstr "IPv6" + +msgid "IPv4 or IPv6" +msgstr "IPv4 или IPv6" + +msgid "Enter only digits separated by commas." +msgstr "Введите цифры, разделенные запятыми." + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "" +"Убедитесь, что это значение — %(limit_value)s (сейчас оно — %(show_value)s)." + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "Убедитесь, что это значение меньше либо равно %(limit_value)s." + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "Убедитесь, что это значение больше либо равно %(limit_value)s." + +#, python-format +msgid "Ensure this value is a multiple of step size %(limit_value)s." +msgstr "Убедитесь, что это значение кратно числу %(limit_value)s." + +#, python-format +msgid "" +"Ensure this value is a multiple of step size %(limit_value)s, starting from " +"%(offset)s, e.g. %(offset)s, %(valid_value1)s, %(valid_value2)s, and so on." +msgstr "" +"Убедитесь, что данное значение отстоит от %(offset)s на число, кратное шагу " +"%(limit_value)s, например: %(offset)s, %(valid_value1)s, %(valid_value2)s и " +"так далее." + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Убедитесь, что это значение содержит не менее %(limit_value)d символ (сейчас " +"%(show_value)d)." +msgstr[1] "" +"Убедитесь, что это значение содержит не менее %(limit_value)d символов " +"(сейчас %(show_value)d)." +msgstr[2] "" +"Убедитесь, что это значение содержит не менее %(limit_value)d символов " +"(сейчас %(show_value)d)." +msgstr[3] "" +"Убедитесь, что это значение содержит не менее %(limit_value)d символов " +"(сейчас %(show_value)d)." + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Убедитесь, что это значение содержит не более %(limit_value)d символ (сейчас " +"%(show_value)d)." +msgstr[1] "" +"Убедитесь, что это значение содержит не более %(limit_value)d символов " +"(сейчас %(show_value)d)." +msgstr[2] "" +"Убедитесь, что это значение содержит не более %(limit_value)d символов " +"(сейчас %(show_value)d)." +msgstr[3] "" +"Убедитесь, что это значение содержит не более %(limit_value)d символов " +"(сейчас %(show_value)d)." + +msgid "Enter a number." +msgstr "Введите число." + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "Убедитесь, что вы ввели не более %(max)s цифры." +msgstr[1] "Убедитесь, что вы ввели не более %(max)s цифр." +msgstr[2] "Убедитесь, что вы ввели не более %(max)s цифр." +msgstr[3] "Убедитесь, что вы ввели не более %(max)s цифр." + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "Убедитесь, что вы ввели не более %(max)s цифры после запятой." +msgstr[1] "Убедитесь, что вы ввели не более %(max)s цифр после запятой." +msgstr[2] "Убедитесь, что вы ввели не более %(max)s цифр после запятой." +msgstr[3] "Убедитесь, что вы ввели не более %(max)s цифр после запятой." + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "Убедитесь, что вы ввели не более %(max)s цифры перед запятой." +msgstr[1] "Убедитесь, что вы ввели не более %(max)s цифр перед запятой." +msgstr[2] "Убедитесь, что вы ввели не более %(max)s цифр перед запятой." +msgstr[3] "Убедитесь, что вы ввели не более %(max)s цифр перед запятой." + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" +"Расширение файлов “%(extension)s” не поддерживается. Разрешенные расширения: " +"%(allowed_extensions)s." + +msgid "Null characters are not allowed." +msgstr "Данные содержат запрещённый символ: ноль-байт" + +msgid "and" +msgstr "и" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "" +"%(model_name)s с такими значениями полей %(field_labels)s уже существует." + +#, python-format +msgid "Constraint “%(name)s” is violated." +msgstr "Нарушено ограничение \"%(name)s\"." + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "Значения %(value)r нет среди допустимых вариантов." + +msgid "This field cannot be null." +msgstr "Это поле не может иметь значение NULL." + +msgid "This field cannot be blank." +msgstr "Это поле не может быть пустым." + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "%(model_name)s с таким %(field_label)s уже существует." + +#. Translators: The 'lookup_type' is one of 'date', 'year' or +#. 'month'. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" +"Значение в поле «%(field_label)s» должно быть уникальным для фрагмента " +"«%(lookup_type)s» даты в поле %(date_field_label)s." + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "Поле типа %(field_type)s" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "Значение “%(value)s” должно быть True или False." + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "Значение “%(value)s” должно быть True, False или None." + +msgid "Boolean (Either True or False)" +msgstr "Логическое (True или False)" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "Строка (до %(max_length)s)" + +msgid "String (unlimited)" +msgstr "Строка (неограниченной длины)" + +msgid "Comma-separated integers" +msgstr "Целые, разделенные запятыми" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" +"Значение “%(value)s” имеет неверный формат даты. Оно должно быть в формате " +"YYYY-MM-DD." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" +"Значение “%(value)s” имеет корректный формат (YYYY-MM-DD), но это " +"недействительная дата." + +msgid "Date (without time)" +msgstr "Дата (без указания времени)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" +"Значение “%(value)s” имеет неверный формат. Оно должно быть в формате YYYY-" +"MM-DD HH:MM[:ss[.uuuuuu]][TZ]." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" +"Значение “%(value)s” имеет корректный формат (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]), но это недействительные дата/время." + +msgid "Date (with time)" +msgstr "Дата (с указанием времени)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "Значение “%(value)s” должно быть десятичным числом." + +msgid "Decimal number" +msgstr "Число с фиксированной запятой" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" +"Значение “%(value)s” имеет неверный формат. Оно должно быть в формате [DD] " +"[HH:[MM:]]ss[.uuuuuu]." + +msgid "Duration" +msgstr "Продолжительность" + +msgid "Email address" +msgstr "Адрес электронной почты" + +msgid "File path" +msgstr "Путь к файлу" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "Значение “%(value)s” должно быть числом с плавающей точкой." + +msgid "Floating point number" +msgstr "Число с плавающей запятой" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "Значение “%(value)s” должно быть целым числом." + +msgid "Integer" +msgstr "Целое" + +msgid "Big (8 byte) integer" +msgstr "Длинное целое (8 байт)" + +msgid "Small integer" +msgstr "Малое целое число" + +msgid "IPv4 address" +msgstr "IPv4 адрес" + +msgid "IP address" +msgstr "IP-адрес" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "Значение “%(value)s” должно быть None, True или False." + +msgid "Boolean (Either True, False or None)" +msgstr "Логическое (True, False или None)" + +msgid "Positive big integer" +msgstr "Положительное большое целое число" + +msgid "Positive integer" +msgstr "Положительное целое число" + +msgid "Positive small integer" +msgstr "Положительное малое целое число" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "Слаг (до %(max_length)s)" + +msgid "Text" +msgstr "Текст" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" +"Значение “%(value)s” имеет неверный формат. Оно должно быть в формате HH:MM[:" +"ss[.uuuuuu]]." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" +"Значение “%(value)s” имеет корректный формат (HH:MM[:ss[.uuuuuu]]), но это " +"недействительное время." + +msgid "Time" +msgstr "Время" + +msgid "URL" +msgstr "URL" + +msgid "Raw binary data" +msgstr "Необработанные двоичные данные" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "Значение “%(value)s” не является верным UUID-ом." + +msgid "Universally unique identifier" +msgstr "Поле для UUID, универсального уникального идентификатора" + +msgid "File" +msgstr "Файл" + +msgid "Image" +msgstr "Изображение" + +msgid "A JSON object" +msgstr "JSON-объект" + +msgid "Value must be valid JSON." +msgstr "Значение должно быть корректным JSON-ом." + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "" +"Объект модели %(model)s со значением поля %(field)s, равным %(value)r, не " +"существует." + +msgid "Foreign Key (type determined by related field)" +msgstr "Внешний Ключ (тип определен по связанному полю)" + +msgid "One-to-one relationship" +msgstr "Связь \"один к одному\"" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "Связь %(from)s-%(to)s" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "Связи %(from)s-%(to)s" + +msgid "Many-to-many relationship" +msgstr "Связь \"многие ко многим\"" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr ":?.!" + +msgid "This field is required." +msgstr "Обязательное поле." + +msgid "Enter a whole number." +msgstr "Введите целое число." + +msgid "Enter a valid date." +msgstr "Введите правильную дату." + +msgid "Enter a valid time." +msgstr "Введите правильное время." + +msgid "Enter a valid date/time." +msgstr "Введите правильную дату и время." + +msgid "Enter a valid duration." +msgstr "Введите правильную продолжительность." + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "Количество дней должно быть в диапазоне от {min_days} до {max_days}." + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "Ни одного файла не было отправлено. Проверьте тип кодировки формы." + +msgid "No file was submitted." +msgstr "Ни одного файла не было отправлено." + +msgid "The submitted file is empty." +msgstr "Отправленный файл пуст." + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" +"Убедитесь, что это имя файла содержит не более %(max)d символ (сейчас " +"%(length)d)." +msgstr[1] "" +"Убедитесь, что это имя файла содержит не более %(max)d символов (сейчас " +"%(length)d)." +msgstr[2] "" +"Убедитесь, что это имя файла содержит не более %(max)d символов (сейчас " +"%(length)d)." +msgstr[3] "" +"Убедитесь, что это имя файла содержит не более %(max)d символов (сейчас " +"%(length)d)." + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "" +"Пожалуйста, загрузите файл или поставьте флажок \"Очистить\", но не " +"совершайте оба действия одновременно." + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" +"Загрузите правильное изображение. Файл, который вы загрузили, поврежден или " +"не является изображением." + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "Выберите корректный вариант. %(value)s нет среди допустимых значений." + +msgid "Enter a list of values." +msgstr "Введите список значений." + +msgid "Enter a complete value." +msgstr "Введите весь список значений." + +msgid "Enter a valid UUID." +msgstr "Введите правильный UUID." + +msgid "Enter a valid JSON." +msgstr "Введите корректный JSON." + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr ":" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "(Скрытое поле %(name)s) %(error)s" + +#, python-format +msgid "" +"ManagementForm data is missing or has been tampered with. Missing fields: " +"%(field_names)s. You may need to file a bug report if the issue persists." +msgstr "" +"Данные ManagementForm отсутствуют или были подделаны. Отсутствующие поля: " +"%(field_names)s. Если проблема не исчезнет, вам может потребоваться " +"отправить отчет об ошибке." + +#, python-format +msgid "Please submit at most %(num)d form." +msgid_plural "Please submit at most %(num)d forms." +msgstr[0] "Пожалуйста, отправьте не больше %(num)d формы." +msgstr[1] "Пожалуйста, отправьте не больше %(num)d форм." +msgstr[2] "Пожалуйста, отправьте не больше %(num)d форм." +msgstr[3] "Пожалуйста, отправьте не больше %(num)d форм." + +#, python-format +msgid "Please submit at least %(num)d form." +msgid_plural "Please submit at least %(num)d forms." +msgstr[0] "Пожалуйста, отправьте %(num)d форму." +msgstr[1] "Пожалуйста, отправьте %(num)d формы." +msgstr[2] "Пожалуйста, отправьте %(num)d форм." +msgstr[3] "Пожалуйста, отправьте %(num)d форм." + +msgid "Order" +msgstr "Порядок" + +msgid "Delete" +msgstr "Удалить" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "Пожалуйста, измените повторяющееся значение в поле \"%(field)s\"." + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "" +"Пожалуйста, измените значение в поле %(field)s, оно должно быть уникальным." + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"Пожалуйста, измените значение в поле %(field_name)s, оно должно быть " +"уникальным для %(lookup)s в поле %(date_field)s." + +msgid "Please correct the duplicate values below." +msgstr "Пожалуйста, измените повторяющиеся значения ниже." + +msgid "The inline value did not match the parent instance." +msgstr "Значение во вложенной форме не совпадает со значением в базовой форме." + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "" +"Выберите корректный вариант. Вашего варианта нет среди допустимых значений." + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "“%(pk)s” является неверным значением." + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" +"%(datetime)s не может быть интерпретирована в часовом поясе " +"%(current_timezone)s; дата может быть неоднозначной или оказаться " +"несуществующей." + +msgid "Clear" +msgstr "Очистить" + +msgid "Currently" +msgstr "На данный момент" + +msgid "Change" +msgstr "Изменить" + +msgid "Unknown" +msgstr "Неизвестно" + +msgid "Yes" +msgstr "Да" + +msgid "No" +msgstr "Нет" + +#. Translators: Please do not add spaces around commas. +msgid "yes,no,maybe" +msgstr "да,нет,может быть" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)d байт" +msgstr[1] "%(size)d байта" +msgstr[2] "%(size)d байт" +msgstr[3] "%(size)d байт" + +#, python-format +msgid "%s KB" +msgstr "%s КБ" + +#, python-format +msgid "%s MB" +msgstr "%s МБ" + +#, python-format +msgid "%s GB" +msgstr "%s ГБ" + +#, python-format +msgid "%s TB" +msgstr "%s ТБ" + +#, python-format +msgid "%s PB" +msgstr "%s ПБ" + +msgid "p.m." +msgstr "п.п." + +msgid "a.m." +msgstr "д.п." + +msgid "PM" +msgstr "ПП" + +msgid "AM" +msgstr "ДП" + +msgid "midnight" +msgstr "полночь" + +msgid "noon" +msgstr "полдень" + +msgid "Monday" +msgstr "Понедельник" + +msgid "Tuesday" +msgstr "Вторник" + +msgid "Wednesday" +msgstr "Среда" + +msgid "Thursday" +msgstr "Четверг" + +msgid "Friday" +msgstr "Пятница" + +msgid "Saturday" +msgstr "Суббота" + +msgid "Sunday" +msgstr "Воскресенье" + +msgid "Mon" +msgstr "Пн" + +msgid "Tue" +msgstr "Вт" + +msgid "Wed" +msgstr "Ср" + +msgid "Thu" +msgstr "Чт" + +msgid "Fri" +msgstr "Пт" + +msgid "Sat" +msgstr "Сб" + +msgid "Sun" +msgstr "Вс" + +msgid "January" +msgstr "Январь" + +msgid "February" +msgstr "Февраль" + +msgid "March" +msgstr "Март" + +msgid "April" +msgstr "Апрель" + +msgid "May" +msgstr "Май" + +msgid "June" +msgstr "Июнь" + +msgid "July" +msgstr "Июль" + +msgid "August" +msgstr "Август" + +msgid "September" +msgstr "Сентябрь" + +msgid "October" +msgstr "Октябрь" + +msgid "November" +msgstr "Ноябрь" + +msgid "December" +msgstr "Декабрь" + +msgid "jan" +msgstr "янв" + +msgid "feb" +msgstr "фев" + +msgid "mar" +msgstr "мар" + +msgid "apr" +msgstr "апр" + +msgid "may" +msgstr "май" + +msgid "jun" +msgstr "июн" + +msgid "jul" +msgstr "июл" + +msgid "aug" +msgstr "авг" + +msgid "sep" +msgstr "сен" + +msgid "oct" +msgstr "окт" + +msgid "nov" +msgstr "ноя" + +msgid "dec" +msgstr "дек" + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "Янв." + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "Фев." + +msgctxt "abbrev. month" +msgid "March" +msgstr "Март" + +msgctxt "abbrev. month" +msgid "April" +msgstr "Апрель" + +msgctxt "abbrev. month" +msgid "May" +msgstr "Май" + +msgctxt "abbrev. month" +msgid "June" +msgstr "Июнь" + +msgctxt "abbrev. month" +msgid "July" +msgstr "Июль" + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "Авг." + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "Сен." + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "Окт." + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "Ноя." + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "Дек." + +msgctxt "alt. month" +msgid "January" +msgstr "января" + +msgctxt "alt. month" +msgid "February" +msgstr "февраля" + +msgctxt "alt. month" +msgid "March" +msgstr "марта" + +msgctxt "alt. month" +msgid "April" +msgstr "апреля" + +msgctxt "alt. month" +msgid "May" +msgstr "мая" + +msgctxt "alt. month" +msgid "June" +msgstr "июня" + +msgctxt "alt. month" +msgid "July" +msgstr "июля" + +msgctxt "alt. month" +msgid "August" +msgstr "августа" + +msgctxt "alt. month" +msgid "September" +msgstr "сентября" + +msgctxt "alt. month" +msgid "October" +msgstr "октября" + +msgctxt "alt. month" +msgid "November" +msgstr "ноября" + +msgctxt "alt. month" +msgid "December" +msgstr "декабря" + +msgid "This is not a valid IPv6 address." +msgstr "Значение не является корректным адресом IPv6." + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "%(truncated_text)s…" + +msgid "or" +msgstr "или" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr ", " + +#, python-format +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "%(num)d год" +msgstr[1] "%(num)d года" +msgstr[2] "%(num)d лет" +msgstr[3] "%(num)d лет" + +#, python-format +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "%(num)d месяц" +msgstr[1] "%(num)d месяца" +msgstr[2] "%(num)d месяцев" +msgstr[3] "%(num)d месяцев" + +#, python-format +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "%(num)d неделя" +msgstr[1] "%(num)d недели" +msgstr[2] "%(num)d недель" +msgstr[3] "%(num)d недель" + +#, python-format +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "%(num)d день" +msgstr[1] "%(num)d дня" +msgstr[2] "%(num)d дней" +msgstr[3] "%(num)d дней" + +#, python-format +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "%(num)d час" +msgstr[1] "%(num)d часа" +msgstr[2] "%(num)d часов" +msgstr[3] "%(num)d часов" + +#, python-format +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "%(num)d минута" +msgstr[1] "%(num)d минуты" +msgstr[2] "%(num)d минут" +msgstr[3] "%(num)d минут" + +msgid "Forbidden" +msgstr "Ошибка доступа" + +msgid "CSRF verification failed. Request aborted." +msgstr "Ошибка проверки CSRF. Запрос отклонён." + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" +"Вы видите это сообщение потому что этот сайт работает по защищённому " +"протоколу HTTPS и требует, чтобы при запросе вашим браузером был передан " +"заголовок \"Referer\", но он не был передан. Этот заголовок необходим из " +"соображений безопасности: мы должны убедиться что запрос оправляете именно " +"вы." + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" +"Если вы настроили свой браузер таким образом, чтобы запретить ему передавать " +"заголовок “Referer”, пожалуйста, разрешите ему отсылать данный заголовок по " +"крайней мере для данного сайта, или для всех HTTPS-соединений, или для " +"запросов, домен и порт назначения совпадают с доменом и портом текущей " +"страницы." + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" +"Если Вы используете HTML-тэг или добавили HTTP-заголовок “Referrer-Policy: no-referrer”, " +"пожалуйста удалите их. CSRF защите необходим заголовок “Referer” для строгой " +"проверки адреса ссылающейся страницы. Если Вы беспокоитесь о приватности, " +"используйте альтернативы, например , для ссылок на " +"сайты третьих лиц." + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" +"Вы видите это сообщение, потому что данный сайт требует, чтобы при отправке " +"форм была отправлена и CSRF-cookie. Данный тип cookie необходим по " +"соображениям безопасности, чтобы убедиться, что ваш браузер не был взломан и " +"не выполняет от вашего лица действий, запрограммированных третьими лицами." + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" +"Если в вашем браузере отключены cookie, пожалуйста, включите эту функцию " +"вновь, по крайней мере для этого сайта, или для \"same-orign\" запросов." + +msgid "More information is available with DEBUG=True." +msgstr "" +"В отладочном режиме доступно больше информации. Включить отладочный режим " +"можно, установив значение переменной DEBUG=True." + +msgid "No year specified" +msgstr "Не указан год" + +msgid "Date out of range" +msgstr "Дата выходит за пределы диапазона" + +msgid "No month specified" +msgstr "Не указан месяц" + +msgid "No day specified" +msgstr "Не указан день" + +msgid "No week specified" +msgstr "Не указана неделя" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "%(verbose_name_plural)s не доступен" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" +"Будущие %(verbose_name_plural)s недоступны, потому что %(class_name)s." +"allow_future выставлен в значение \"Ложь\"." + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "" +"Не удалось распознать строку с датой “%(datestr)s”, в заданном формате " +"“%(format)s”" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "Не найден ни один %(verbose_name)s, соответствующий запросу" + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "" +"Номер страницы не содержит особое значение “last” и его не удалось " +"преобразовать к целому числу." + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "Неправильная страница (%(page_number)s): %(message)s" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "" +"Список пуст, но “%(class_name)s.allow_empty” выставлено в значение \"Ложь\", " +"что запрещает показывать пустые списки." + +msgid "Directory indexes are not allowed here." +msgstr "Просмотр списка файлов директории здесь не разрешен." + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "“%(path)s” не существует" + +#, python-format +msgid "Index of %(directory)s" +msgstr "Список файлов директории %(directory)s" + +msgid "The install worked successfully! Congratulations!" +msgstr "Установка прошла успешно! Поздравляем!" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" +"Посмотреть примечания к выпуску для Django " +"%(version)s" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not " +"configured any URLs." +msgstr "" +"Вы видите данную страницу, потому что указали DEBUG=True в файле настроек и не настроили ни одного " +"обработчика URL-адресов." + +msgid "Django Documentation" +msgstr "Документация Django" + +msgid "Topics, references, & how-to’s" +msgstr "Разделы, справочник, & примеры" + +msgid "Tutorial: A Polling App" +msgstr "Руководство: Приложение для голосования" + +msgid "Get started with Django" +msgstr "Начало работы с Django" + +msgid "Django Community" +msgstr "Сообщество Django" + +msgid "Connect, get help, or contribute" +msgstr "Присоединяйтесь, получайте помощь или помогайте в разработке" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/ru/__init__.py b/venv/lib/python3.12/site-packages/django/conf/locale/ru/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/ru/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/ru/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c547eedb37ad459dede063d0962c99c1d8cb03ce GIT binary patch literal 198 zcmX@j%ge<81o5sX(m?cM5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!O4ZNE&rQ|OP0Yy6 zFHO;RNiEZNN=(kybEFQ_cZ$j>v@Gc?jK&MZmQEdVM^ zOiwM=Pssu+OwP|s)6dCIPRvQwFDliKkI&4@EQycTE2#X%VUwGmQks)$SHudml@W-G PL5z>gjEsy$%s>_Z$m%qb literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/ru/__pycache__/formats.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/ru/__pycache__/formats.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ecfc2adfe657362173c09820a63d90c4e8dfa01e GIT binary patch literal 813 zcmZXSJCE8x6otname+!LYqe1%N0AGptVc;Y6h-j{^GE_lw$aMdSS({+!5Hz9aJBgr zX`^(h^AA!*N<(SUrrHi=m4+%~0xW2!n0xN$bMA~S|B6IHfGl17*?Q*%;J4fCmS-#O z-VpH_V1NLo5QRO+gK0!#FY;m^^5GM7g8j&k131|BpgG^jMMA*u{6=ri;1mG;)Yom-q=O>?}RDVEZs{@|qpo6t-crP32RO`gCeLYm zHP4>d@f~HkQjV+SIK@sqKs?v7qsMd~oIecSqr>2quBm5#-S70{%PmbxH5*xm^MWes z1xc<5>N2dBEBl6VpB#d?CJM4%k*aEG7l{4u@`AP_ait{5s(v^%eUFaD70R;WIyGG? z=vSinewoX;EudGSYz0+Oaq#Yj%iIX%o{U!*=T;e5C<4u_Zx$@1!u-!2K(J>IGj&9 z*5D=o`~@6$C&tB)7#nS43~_H`Y+8dB>|4!7-+-ejY*{0-F&Xp2`8x2*wD7cVydGu9 zq3*9R*2%V_DT-Q!0CRp5cA`nLC7#?cPU`Uj#GT~X0>qruBUhh2U4XQcN)t`&KF0Az jS3Wx9S%Ac!fd8D-%qj-bBoTMgB$03u$xqBEMb7vKavI?k literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/ru/formats.py b/venv/lib/python3.12/site-packages/django/conf/locale/ru/formats.py new file mode 100644 index 0000000000..212e5267d0 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/ru/formats.py @@ -0,0 +1,30 @@ +# This file is distributed under the same license as the Django package. +# +# The *_FORMAT strings use the Django date format syntax, +# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date +DATE_FORMAT = "j E Y г." +TIME_FORMAT = "G:i" +DATETIME_FORMAT = "j E Y г. G:i" +YEAR_MONTH_FORMAT = "F Y г." +MONTH_DAY_FORMAT = "j F" +SHORT_DATE_FORMAT = "d.m.Y" +SHORT_DATETIME_FORMAT = "d.m.Y H:i" +FIRST_DAY_OF_WEEK = 1 # Monday + +# The *_INPUT_FORMATS strings use the Python strftime format syntax, +# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior +DATE_INPUT_FORMATS = [ + "%d.%m.%Y", # '25.10.2006' + "%d.%m.%y", # '25.10.06' +] +DATETIME_INPUT_FORMATS = [ + "%d.%m.%Y %H:%M:%S", # '25.10.2006 14:30:59' + "%d.%m.%Y %H:%M:%S.%f", # '25.10.2006 14:30:59.000200' + "%d.%m.%Y %H:%M", # '25.10.2006 14:30' + "%d.%m.%y %H:%M:%S", # '25.10.06 14:30:59' + "%d.%m.%y %H:%M:%S.%f", # '25.10.06 14:30:59.000200' + "%d.%m.%y %H:%M", # '25.10.06 14:30' +] +DECIMAL_SEPARATOR = "," +THOUSAND_SEPARATOR = "\xa0" # non-breaking space +NUMBER_GROUPING = 3 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/sk/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/conf/locale/sk/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..e1f7271601d69286e28fbd09fd2696620eb186c6 GIT binary patch literal 29942 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 OcsiBlx{kUpAO0^LK_q_w literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/sk/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/conf/locale/sk/LC_MESSAGES/django.po new file mode 100644 index 0000000000..14da7f96f2 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/sk/LC_MESSAGES/django.po @@ -0,0 +1,1387 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Adam Zahradník, 2023 +# Jannis Leidel , 2011 +# 18f25ad6fa9930fc67cb11aca9d16a27, 2012-2013 +# Marian Andre , 2013,2015,2017-2018 +# 29cf7e517570e1bc05a1509565db92ae_2a01508, 2011 +# Martin Tóth , 2017,2023 +# Miroslav Bendik , 2023 +# Peter Kuma, 2021 +# Peter Stríž , 2020 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-09-18 11:41-0300\n" +"PO-Revision-Date: 2023-12-04 06:49+0000\n" +"Last-Translator: Martin Tóth , 2017,2023\n" +"Language-Team: Slovak (http://app.transifex.com/django/django/language/sk/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: sk\n" +"Plural-Forms: nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n " +">= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);\n" + +msgid "Afrikaans" +msgstr "afrikánsky" + +msgid "Arabic" +msgstr "arabský" + +msgid "Algerian Arabic" +msgstr "alžírsky arabsky" + +msgid "Asturian" +msgstr "astúrsky" + +msgid "Azerbaijani" +msgstr "azerbajdžansky" + +msgid "Bulgarian" +msgstr "bulharsky" + +msgid "Belarusian" +msgstr "bielorusky" + +msgid "Bengali" +msgstr "bengálsky" + +msgid "Breton" +msgstr "bretónsky" + +msgid "Bosnian" +msgstr "bosniansky" + +msgid "Catalan" +msgstr "katalánsky" + +msgid "Central Kurdish (Sorani)" +msgstr "stredná kurdčina (Sorani)" + +msgid "Czech" +msgstr "česky" + +msgid "Welsh" +msgstr "walesky" + +msgid "Danish" +msgstr "dánsky" + +msgid "German" +msgstr "nemecky" + +msgid "Lower Sorbian" +msgstr "dolnolužická srbčina" + +msgid "Greek" +msgstr "grécky" + +msgid "English" +msgstr "anglicky" + +msgid "Australian English" +msgstr "austrálskou angličtinou" + +msgid "British English" +msgstr "britskou angličtinou" + +msgid "Esperanto" +msgstr "esperantsky" + +msgid "Spanish" +msgstr "španielsky" + +msgid "Argentinian Spanish" +msgstr "argentínska španielčina" + +msgid "Colombian Spanish" +msgstr "kolumbijská španielčina" + +msgid "Mexican Spanish" +msgstr "mexická španielčina" + +msgid "Nicaraguan Spanish" +msgstr "nikaragujská španielčina" + +msgid "Venezuelan Spanish" +msgstr "venezuelská španielčina" + +msgid "Estonian" +msgstr "estónsky" + +msgid "Basque" +msgstr "baskicky" + +msgid "Persian" +msgstr "perzsky" + +msgid "Finnish" +msgstr "fínsky" + +msgid "French" +msgstr "francúzsky" + +msgid "Frisian" +msgstr "frízsky" + +msgid "Irish" +msgstr "írsky" + +msgid "Scottish Gaelic" +msgstr "škótska gaelčina" + +msgid "Galician" +msgstr "galícijsky" + +msgid "Hebrew" +msgstr "hebrejsky" + +msgid "Hindi" +msgstr "hindsky" + +msgid "Croatian" +msgstr "chorvátsky" + +msgid "Upper Sorbian" +msgstr "hornolužická srbčina" + +msgid "Hungarian" +msgstr "maďarsky" + +msgid "Armenian" +msgstr "arménsky" + +msgid "Interlingua" +msgstr "interlinguánsky" + +msgid "Indonesian" +msgstr "indonézsky" + +msgid "Igbo" +msgstr "igbožsky" + +msgid "Ido" +msgstr "ido" + +msgid "Icelandic" +msgstr "islandsky" + +msgid "Italian" +msgstr "taliansky" + +msgid "Japanese" +msgstr "japonsky" + +msgid "Georgian" +msgstr "gruzínsky" + +msgid "Kabyle" +msgstr "kabylsky" + +msgid "Kazakh" +msgstr "kazašsky" + +msgid "Khmer" +msgstr "kmérsky" + +msgid "Kannada" +msgstr "kannadsky" + +msgid "Korean" +msgstr "kórejsky" + +msgid "Kyrgyz" +msgstr "kirgizsky" + +msgid "Luxembourgish" +msgstr "luxembursky" + +msgid "Lithuanian" +msgstr "litovsky" + +msgid "Latvian" +msgstr "lotyšsky" + +msgid "Macedonian" +msgstr "macedónsky" + +msgid "Malayalam" +msgstr "malajalámsky" + +msgid "Mongolian" +msgstr "mongolsky" + +msgid "Marathi" +msgstr "maráthsky" + +msgid "Malay" +msgstr "malajčina" + +msgid "Burmese" +msgstr "barmsky" + +msgid "Norwegian Bokmål" +msgstr "nórsky (Bokmål)" + +msgid "Nepali" +msgstr "nepálsky" + +msgid "Dutch" +msgstr "holandsky" + +msgid "Norwegian Nynorsk" +msgstr "nórsky (Nynorsk)" + +msgid "Ossetic" +msgstr "osetsky" + +msgid "Punjabi" +msgstr "pandžábsky" + +msgid "Polish" +msgstr "poľsky" + +msgid "Portuguese" +msgstr "portugalsky" + +msgid "Brazilian Portuguese" +msgstr "portugalsky (Brazília)" + +msgid "Romanian" +msgstr "rumunsky" + +msgid "Russian" +msgstr "rusky" + +msgid "Slovak" +msgstr "slovensky" + +msgid "Slovenian" +msgstr "slovinsky" + +msgid "Albanian" +msgstr "albánsky" + +msgid "Serbian" +msgstr "srbsky" + +msgid "Serbian Latin" +msgstr "srbsky (Latin)" + +msgid "Swedish" +msgstr "švédsky" + +msgid "Swahili" +msgstr "svahilsky" + +msgid "Tamil" +msgstr "tamilsky" + +msgid "Telugu" +msgstr "telugsky" + +msgid "Tajik" +msgstr "tadžiksky" + +msgid "Thai" +msgstr "thajsky" + +msgid "Turkmen" +msgstr "turkménsky" + +msgid "Turkish" +msgstr "turecky" + +msgid "Tatar" +msgstr "tatársky" + +msgid "Udmurt" +msgstr "udmurtsky" + +msgid "Uyghur" +msgstr "ujgursky" + +msgid "Ukrainian" +msgstr "ukrajinsky" + +msgid "Urdu" +msgstr "urdsky" + +msgid "Uzbek" +msgstr "uzbecky" + +msgid "Vietnamese" +msgstr "vietnamsky" + +msgid "Simplified Chinese" +msgstr "čínsky (zjednodušene)" + +msgid "Traditional Chinese" +msgstr "čínsky (tradične)" + +msgid "Messages" +msgstr "Správy" + +msgid "Site Maps" +msgstr "Mapy Sídla" + +msgid "Static Files" +msgstr "Statické Súbory" + +msgid "Syndication" +msgstr "Syndikácia" + +#. Translators: String used to replace omitted page numbers in elided page +#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10]. +msgid "…" +msgstr "…" + +msgid "That page number is not an integer" +msgstr "Číslo stránky nie je celé číslo" + +msgid "That page number is less than 1" +msgstr "Číslo stránky je menšie ako 1" + +msgid "That page contains no results" +msgstr "Stránka neobsahuje žiadne výsledky" + +msgid "Enter a valid value." +msgstr "Zadajte platnú hodnotu." + +msgid "Enter a valid URL." +msgstr "Zadajte platnú URL adresu." + +msgid "Enter a valid integer." +msgstr "Zadajte platné celé číslo." + +msgid "Enter a valid email address." +msgstr "Zadajte platnú e-mailovú adresu." + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" +"Zadajte platnú skratku pozostávajúcu z písmen, čísel, podčiarkovníkov alebo " +"pomlčiek." + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" +"Zadajte platnú skratku pozostávajúcu z písmen Unicode, čísel, " +"podčiarkovníkov alebo pomlčiek." + +msgid "Enter a valid IPv4 address." +msgstr "Zadajte platnú IPv4 adresu." + +msgid "Enter a valid IPv6 address." +msgstr "Zadajte platnú IPv6 adresu." + +msgid "Enter a valid IPv4 or IPv6 address." +msgstr "Zadajte platnú IPv4 alebo IPv6 adresu." + +msgid "Enter only digits separated by commas." +msgstr "Zadajte len číslice oddelené čiarkami." + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "Uistite sa, že táto hodnota je %(limit_value)s (je to %(show_value)s)." + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "Uistite sa, že táto hodnota je menšia alebo rovná %(limit_value)s." + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "Uistite sa, že hodnota je väčšia alebo rovná %(limit_value)s." + +#, python-format +msgid "Ensure this value is a multiple of step size %(limit_value)s." +msgstr "Uistite sa, že táto hodnota je násobkom %(limit_value)s." + +#, python-format +msgid "" +"Ensure this value is a multiple of step size %(limit_value)s, starting from " +"%(offset)s, e.g. %(offset)s, %(valid_value1)s, %(valid_value2)s, and so on." +msgstr "" +"Uistite sa, že táto hodnota je násobkom %(limit_value)s, začínajúc od " +"%(offset)s, t.j. %(offset)s, %(valid_value1)s, %(valid_value2)s, atď." + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Uistite sa, že zadaná hodnota má najmenej %(limit_value)d znak (má " +"%(show_value)d)." +msgstr[1] "" +"Uistite sa, že zadaná hodnota má najmenej %(limit_value)d znaky (má " +"%(show_value)d)." +msgstr[2] "" +"Uistite sa, že zadaná hodnota má najmenej %(limit_value)d znakov (má " +"%(show_value)d)." +msgstr[3] "" +"Uistite sa, že zadaná hodnota má najmenej %(limit_value)d znakov (má " +"%(show_value)d)." + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Uistite sa, že táto hodnota má najviac %(limit_value)d znak (má " +"%(show_value)d)." +msgstr[1] "" +"Uistite sa, že táto hodnota má najviac %(limit_value)d znaky (má " +"%(show_value)d)." +msgstr[2] "" +"Uistite sa, že táto hodnota má najviac %(limit_value)d znakov (má " +"%(show_value)d)." +msgstr[3] "" +"Uistite sa, že táto hodnota má najviac %(limit_value)d znakov (má " +"%(show_value)d)." + +msgid "Enter a number." +msgstr "Zadajte číslo." + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "Uistite sa, že nie je zadaných celkovo viac ako %(max)s číslica." +msgstr[1] "Uistite sa, že nie je zadaných celkovo viac ako %(max)s číslice." +msgstr[2] "Uistite sa, že nie je zadaných celkovo viac ako %(max)s číslic." +msgstr[3] "Uistite sa, že nie je zadaných celkovo viac ako %(max)s číslic." + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "Uistite sa, že nie je zadané viac ako %(max)s desatinné miesto." +msgstr[1] "Uistite sa, že nie sú zadané viac ako %(max)s desatinné miesta." +msgstr[2] "Uistite sa, že nie je zadaných viac ako %(max)s desatinných miest." +msgstr[3] "Uistite sa, že nie je zadaných viac ako %(max)s desatinných miest." + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "" +"Uistite sa, že nie je zadaných viac ako %(max)s číslica pred desatinnou " +"čiarkou." +msgstr[1] "" +"Uistite sa, že nie sú zadané viac ako %(max)s číslice pred desatinnou " +"čiarkou." +msgstr[2] "" +"Uistite sa, že nie je zadaných viac ako %(max)s číslic pred desatinnou " +"čiarkou." +msgstr[3] "" +"Uistite sa, že nie je zadaných viac ako %(max)s číslic pred desatinnou " +"čiarkou." + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" +"Prípona súboru „%(extension)s“ nie je povolená. Povolené prípony sú: " +"%(allowed_extensions)s." + +msgid "Null characters are not allowed." +msgstr "Znaky NULL nie sú povolené." + +msgid "and" +msgstr "a" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "%(model_name)s s týmto %(field_labels)s už existuje." + +#, python-format +msgid "Constraint “%(name)s” is violated." +msgstr "Obmedzenie „%(name)s“ je porušené." + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "Hodnota %(value)r nie je platná možnosť." + +msgid "This field cannot be null." +msgstr "Toto pole nemôže byť prázdne." + +msgid "This field cannot be blank." +msgstr "Toto pole nemôže byť prázdne." + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "%(model_name)s s týmto %(field_label)s už existuje." + +#. Translators: The 'lookup_type' is one of 'date', 'year' or +#. 'month'. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" +"%(field_label)s musí byť jedinečné pre %(date_field_label)s %(lookup_type)s." + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "Pole typu: %(field_type)s" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "Hodnota „%(value)s“ musí byť True alebo False." + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "Hodnota „%(value)s“ musí byť True, False alebo None." + +msgid "Boolean (Either True or False)" +msgstr "Logická hodnota (buď True alebo False)" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "Reťazec (až do %(max_length)s)" + +msgid "String (unlimited)" +msgstr "Reťazec (neobmedzený)" + +msgid "Comma-separated integers" +msgstr "Celé čísla oddelené čiarkou" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" +"Hodnota „%(value)s“ má neplatný tvar dátumu. Musí byť v tvare YYYY-MM-DD." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" +"Hodnota „%(value)s“ je v správnom tvare (YYYY-MM-DD), ale je to neplatný " +"dátum." + +msgid "Date (without time)" +msgstr "Dátum (bez času)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" +"Hodnota „%(value)s“ má neplatný tvar. Musí byť v tvare YYYY-MM-DD HH:MM[:" +"ss[.uuuuuu]][TZ]." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" +"Hodnota „%(value)s“ je v správnom tvare (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]), ale je to neplatný dátum/čas." + +msgid "Date (with time)" +msgstr "Dátum (a čas)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "Hodnota „%(value)s“ musí byť desatinné číslo." + +msgid "Decimal number" +msgstr "Desatinné číslo" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" +"Hodnota „%(value)s“ má neplatný tvar. Musí byť v tvare [DD] [[HH:]MM:]ss[." +"uuuuuu]." + +msgid "Duration" +msgstr "Doba trvania" + +msgid "Email address" +msgstr "E-mailová adresa" + +msgid "File path" +msgstr "Cesta k súboru" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "Hodnota „%(value)s“ musí byť desatinné číslo." + +msgid "Floating point number" +msgstr "Číslo s plávajúcou desatinnou čiarkou" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "Hodnota „%(value)s“ musí byť celé číslo." + +msgid "Integer" +msgstr "Celé číslo" + +msgid "Big (8 byte) integer" +msgstr "Veľké celé číslo (8 bajtov)" + +msgid "Small integer" +msgstr "Malé celé číslo" + +msgid "IPv4 address" +msgstr "IPv4 adresa" + +msgid "IP address" +msgstr "IP adresa" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "Hodnota „%(value)s“ musí byť buď None, True alebo False." + +msgid "Boolean (Either True, False or None)" +msgstr "Logická hodnota (buď True, False alebo None)" + +msgid "Positive big integer" +msgstr "Veľké kladné celé číslo" + +msgid "Positive integer" +msgstr "Kladné celé číslo" + +msgid "Positive small integer" +msgstr "Malé kladné celé číslo" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "Identifikátor (najviac %(max_length)s)" + +msgid "Text" +msgstr "Text" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" +"Hodnota „%(value)s“ má neplatný tvar. Musí byť v tvare HH:MM[:ss[.uuuuuu]]." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" +"Hodnota „%(value)s“ je v správnom tvare (HH:MM[:ss[.uuuuuu]]), ale je to " +"neplatný čas." + +msgid "Time" +msgstr "Čas" + +msgid "URL" +msgstr "URL" + +msgid "Raw binary data" +msgstr "Binárne údaje" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "„%(value)s“ nie je platné UUID." + +msgid "Universally unique identifier" +msgstr "Všeobecne jedinečný identifikátor" + +msgid "File" +msgstr "Súbor" + +msgid "Image" +msgstr "Obrázok" + +msgid "A JSON object" +msgstr "Objekt typu JSON" + +msgid "Value must be valid JSON." +msgstr "Hodnota musí byť v platnom formáte JSON." + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "Inštancia modelu %(model)s s %(field)s %(value)r neexistuje." + +msgid "Foreign Key (type determined by related field)" +msgstr "Cudzí kľúč (typ určuje pole v relácii)" + +msgid "One-to-one relationship" +msgstr "Typ relácie: jedna k jednej" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "vzťah: %(from)s-%(to)s" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "vzťahy: %(from)s-%(to)s" + +msgid "Many-to-many relationship" +msgstr "Typ relácie: M ku N" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr ":?.!" + +msgid "This field is required." +msgstr "Toto pole je povinné." + +msgid "Enter a whole number." +msgstr "Zadajte celé číslo." + +msgid "Enter a valid date." +msgstr "Zadajte platný dátum." + +msgid "Enter a valid time." +msgstr "Zadajte platný čas." + +msgid "Enter a valid date/time." +msgstr "Zadajte platný dátum/čas." + +msgid "Enter a valid duration." +msgstr "Zadajte platnú dobu trvania." + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "Počet dní musí byť medzi {min_days} a {max_days}." + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "Súbor nebol odoslaný. Skontrolujte typ kódovania vo formulári." + +msgid "No file was submitted." +msgstr "Žiaden súbor nebol odoslaný." + +msgid "The submitted file is empty." +msgstr "Odoslaný súbor je prázdny." + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" +"Uistite sa, že názov súboru má najviac %(max)d znak (má %(length)d)." +msgstr[1] "" +"Uistite sa, že názov súboru má najviac %(max)d znaky (má %(length)d)." +msgstr[2] "" +"Uistite sa, že názov súboru má najviac %(max)d znakov (má %(length)d)." +msgstr[3] "" +"Uistite sa, že názov súboru má najviac %(max)d znakov (má %(length)d)." + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "" +"Odošlite prosím súbor alebo zaškrtnite políčko pre vymazanie vstupného poľa, " +"nie oboje." + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" +"Nahrajte platný obrázok. Súbor, ktorý ste odoslali nebol obrázok alebo bol " +"poškodený." + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "Vyberte platnú voľbu. %(value)s nepatrí medzi dostupné možnosti." + +msgid "Enter a list of values." +msgstr "Zadajte zoznam hodnôt." + +msgid "Enter a complete value." +msgstr "Zadajte úplnú hodnotu." + +msgid "Enter a valid UUID." +msgstr "Zadajte platné UUID." + +msgid "Enter a valid JSON." +msgstr "Zadajte platný JSON." + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr ":" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "(Skryté pole %(name)s) %(error)s" + +#, python-format +msgid "" +"ManagementForm data is missing or has been tampered with. Missing fields: " +"%(field_names)s. You may need to file a bug report if the issue persists." +msgstr "" +"Dáta ManagementForm chýbajú alebo boli zmanipulované. Chýbajúce polia: " +"%(field_names)s. Možno budete musieť túto chybu nahlásiť, ak sa bude naďalej " +"vyskytovať." + +#, python-format +msgid "Please submit at most %(num)d form." +msgid_plural "Please submit at most %(num)d forms." +msgstr[0] "Prosím, odošlite najviac %(num)d formulár." +msgstr[1] "Prosím, odošlite najviac %(num)d formuláre." +msgstr[2] "Prosím, odošlite najviac %(num)d formulárov." +msgstr[3] "Prosím, odošlite najviac %(num)d formulárov." + +#, python-format +msgid "Please submit at least %(num)d form." +msgid_plural "Please submit at least %(num)d forms." +msgstr[0] "Prosím, odošlite aspoň %(num)d formulár." +msgstr[1] "Prosím, odošlite aspoň %(num)d formuláre." +msgstr[2] "Prosím, odošlite aspoň %(num)d formulárov." +msgstr[3] "Prosím, odošlite aspoň %(num)d formulárov." + +msgid "Order" +msgstr "Poradie" + +msgid "Delete" +msgstr "Odstrániť" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "Prosím, opravte duplicitné údaje pre %(field)s." + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "Údaje pre %(field)s musia byť jedinečné, prosím, opravte duplikáty." + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"Údaje pre %(field_name)s musia byť jedinečné pre %(lookup)s v " +"%(date_field)s, prosím, opravte duplikáty." + +msgid "Please correct the duplicate values below." +msgstr "Prosím, opravte nižšie uvedené duplicitné hodnoty. " + +msgid "The inline value did not match the parent instance." +msgstr "Vnorená hodnota sa nezhoduje s nadradenou inštanciou." + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "" +"Vyberte platnú možnosť. Vybraná položka nepatrí medzi dostupné možnosti." + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "„%(pk)s“ nie je platná hodnota." + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" +"Hodnota %(datetime)s v časovej zóne %(current_timezone)s sa nedá " +"interpretovať; môže byť nejednoznačná alebo nemusí existovať." + +msgid "Clear" +msgstr "Vymazať" + +msgid "Currently" +msgstr "Súčasne" + +msgid "Change" +msgstr "Zmeniť" + +msgid "Unknown" +msgstr "Neznámy" + +msgid "Yes" +msgstr "Áno" + +msgid "No" +msgstr "Nie" + +#. Translators: Please do not add spaces around commas. +msgid "yes,no,maybe" +msgstr "áno,nie,možno" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)d bajt" +msgstr[1] "%(size)d bajty" +msgstr[2] "%(size)d bajtov" +msgstr[3] "%(size)d bajtov" + +#, python-format +msgid "%s KB" +msgstr "%s KB" + +#, python-format +msgid "%s MB" +msgstr "%s MB" + +#, python-format +msgid "%s GB" +msgstr "%s GB" + +#, python-format +msgid "%s TB" +msgstr "%s TB" + +#, python-format +msgid "%s PB" +msgstr "%s PB" + +msgid "p.m." +msgstr "popoludní" + +msgid "a.m." +msgstr "predpoludním" + +msgid "PM" +msgstr "popoludní" + +msgid "AM" +msgstr "predpoludním" + +msgid "midnight" +msgstr "polnoc" + +msgid "noon" +msgstr "poludnie" + +msgid "Monday" +msgstr "pondelok" + +msgid "Tuesday" +msgstr "utorok" + +msgid "Wednesday" +msgstr "streda" + +msgid "Thursday" +msgstr "štvrtok" + +msgid "Friday" +msgstr "piatok" + +msgid "Saturday" +msgstr "sobota" + +msgid "Sunday" +msgstr "nedeľa" + +msgid "Mon" +msgstr "po" + +msgid "Tue" +msgstr "ut" + +msgid "Wed" +msgstr "st" + +msgid "Thu" +msgstr "št" + +msgid "Fri" +msgstr "pi" + +msgid "Sat" +msgstr "so" + +msgid "Sun" +msgstr "ne" + +msgid "January" +msgstr "január" + +msgid "February" +msgstr "február" + +msgid "March" +msgstr "marec" + +msgid "April" +msgstr "apríl" + +msgid "May" +msgstr "máj" + +msgid "June" +msgstr "jún" + +msgid "July" +msgstr "júl" + +msgid "August" +msgstr "august" + +msgid "September" +msgstr "september" + +msgid "October" +msgstr "október" + +msgid "November" +msgstr "november" + +msgid "December" +msgstr "december" + +msgid "jan" +msgstr "jan" + +msgid "feb" +msgstr "feb" + +msgid "mar" +msgstr "mar" + +msgid "apr" +msgstr "apr" + +msgid "may" +msgstr "máj" + +msgid "jun" +msgstr "jún" + +msgid "jul" +msgstr "júl" + +msgid "aug" +msgstr "aug" + +msgid "sep" +msgstr "sep" + +msgid "oct" +msgstr "okt" + +msgid "nov" +msgstr "nov" + +msgid "dec" +msgstr "dec" + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "jan." + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "feb." + +msgctxt "abbrev. month" +msgid "March" +msgstr "mar." + +msgctxt "abbrev. month" +msgid "April" +msgstr "apr." + +msgctxt "abbrev. month" +msgid "May" +msgstr "máj" + +msgctxt "abbrev. month" +msgid "June" +msgstr "jún" + +msgctxt "abbrev. month" +msgid "July" +msgstr "júl" + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "aug." + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "sep." + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "okt." + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "nov." + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "dec." + +msgctxt "alt. month" +msgid "January" +msgstr "január" + +msgctxt "alt. month" +msgid "February" +msgstr "február" + +msgctxt "alt. month" +msgid "March" +msgstr "marec" + +msgctxt "alt. month" +msgid "April" +msgstr "apríl" + +msgctxt "alt. month" +msgid "May" +msgstr "máj" + +msgctxt "alt. month" +msgid "June" +msgstr "jún" + +msgctxt "alt. month" +msgid "July" +msgstr "júl" + +msgctxt "alt. month" +msgid "August" +msgstr "august" + +msgctxt "alt. month" +msgid "September" +msgstr "september" + +msgctxt "alt. month" +msgid "October" +msgstr "október" + +msgctxt "alt. month" +msgid "November" +msgstr "november" + +msgctxt "alt. month" +msgid "December" +msgstr "december" + +msgid "This is not a valid IPv6 address." +msgstr "Toto nieje platná IPv6 adresa." + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "%(truncated_text)s…" + +msgid "or" +msgstr "alebo" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr ", " + +#, python-format +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "%(num)d rok" +msgstr[1] "%(num)d roky" +msgstr[2] "%(num)d rokov" +msgstr[3] "%(num)d rokov" + +#, python-format +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "%(num)d mesiac" +msgstr[1] "%(num)d mesiace" +msgstr[2] "%(num)d mesiacov" +msgstr[3] "%(num)d mesiacov" + +#, python-format +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "%(num)d týždeň" +msgstr[1] "%(num)d týždne" +msgstr[2] "%(num)d týždňov" +msgstr[3] "%(num)d týždňov" + +#, python-format +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "%(num)d deň" +msgstr[1] "%(num)d dni" +msgstr[2] "%(num)d dní" +msgstr[3] "%(num)d dní" + +#, python-format +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "%(num)d hodina" +msgstr[1] "%(num)d hodiny" +msgstr[2] "%(num)d hodín" +msgstr[3] "%(num)d hodiny" + +#, python-format +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "%(num)d minúta" +msgstr[1] "%(num)d minúty" +msgstr[2] "%(num)d minút" +msgstr[3] "%(num)d minúty" + +msgid "Forbidden" +msgstr "Zakázané (Forbidden)" + +msgid "CSRF verification failed. Request aborted." +msgstr "CSRF verifikázia zlyhala. Požiadavka bola prerušená." + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" +"Túto správu vidíte, pretože táto stránka na protokole HTTPS vyžaduje, aby " +"váš prehliadač zaslal hlavičku „Referer„, k čomu nedošlo. Táto hlavička je " +"vyžadovaná z bezpečnostných dôvodov pre kontrolu toho, že sa prehliadača " +"nezmocnila tretia strana." + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" +"Ak ste vo vašom prehliadači vypli hlavičky „Referer“, tak ich prosím " +"zapnite, alebo aspoň pre túto stránku, alebo pre HTTPS pripojenia, alebo pre " +"požiadavky „same-origin“." + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" +"Ak používate tag , alebo " +"vkladáte hlavičku „Referrer-Policy: no-referrer“, prosím odstránte ich. " +"Ochrana CSRF vyžaduje hlavičku „Referer“ na striktnú kontrolu. Ak máte obavy " +"o súkromie, použite alternatívy ako pre linky na " +"iné stránky." + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" +"Túto správu vidíte, pretože táto lokalita vyžaduje CSRF cookie pri " +"odosielaní formulárov. Toto cookie je potrebné na zabezpečenie toho, že váš " +"prehliadač nie je zneužitý - „hijack“." + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" +"Ak ste vypli cookies vo vašom prehliadači, tak ich prosím zapnite, aspoň pre " +"túto stránku, alebo pre požiadavky „same-origin“." + +msgid "More information is available with DEBUG=True." +msgstr "Viac informácií bude dostupných s DEBUG=True." + +msgid "No year specified" +msgstr "Nešpecifikovaný rok" + +msgid "Date out of range" +msgstr "Dátum je mimo rozsahu" + +msgid "No month specified" +msgstr "Nešpecifikovaný mesiac" + +msgid "No day specified" +msgstr "Nešpecifikovaný deň" + +msgid "No week specified" +msgstr "Nešpecifikovaný týždeň" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "%(verbose_name_plural)s nie sú dostupné" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" +"Budúce %(verbose_name_plural)s nie sú dostupné pretože %(class_name)s." +"allow_future má hodnotu False. " + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "Neplatný dátumový reťazec „%(datestr)s“ pre formát „%(format)s“" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "" +"Nebol nájdený žiadny %(verbose_name)s zodpovedajúci databázovému dopytu" + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "" +"Stránka nemá hodnotu „last“ a taktiež nie je možné prekonvertovať hodnotu na " +"celé číslo." + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "Nesprávna stránka (%(page_number)s): %(message)s" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "Zoznam je prázdny a hodnota „%(class_name)s.allow_empty“ je False." + +msgid "Directory indexes are not allowed here." +msgstr "Výpis adresárov tu nieje povolený." + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "„%(path)s“ neexistuje" + +#, python-format +msgid "Index of %(directory)s" +msgstr "Výpis %(directory)s" + +msgid "The install worked successfully! Congratulations!" +msgstr "Inštalácia prebehla úspešne! Gratulujeme!" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" +"Zobraziť poznámky k vydaniu pre Django " +"%(version)s" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not " +"configured any URLs." +msgstr "" +"Táto stránka sa zobrazuje pretože máte DEBUG=True v súbore s nastaveniami a nie sú " +"nakonfigurované žiadne URL." + +msgid "Django Documentation" +msgstr "Dokumentácia Django" + +msgid "Topics, references, & how-to’s" +msgstr "Témy, referencie a návody" + +msgid "Tutorial: A Polling App" +msgstr "Tutoriál: Aplikácia „Hlasovania“" + +msgid "Get started with Django" +msgstr "Začíname s Django" + +msgid "Django Community" +msgstr "Komunita Django" + +msgid "Connect, get help, or contribute" +msgstr "Spojte sa, získajte pomoc, alebo prispejte" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/sk/__init__.py b/venv/lib/python3.12/site-packages/django/conf/locale/sk/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/sk/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/sk/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f319b07dbde3a0bd9fa955f373e381c9cd24223a GIT binary patch literal 198 zcmX@j%ge<81o5sX(m?cM5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!O4ZNE&rQ|OP0Yy6 zFHO;RNiEZNN=(kybEFQ_cZ$j>v@Gc?jK&MZmQEdVM^ zOiwM=Pssu+OwP|s)6dCIPRvQwFV5DFkI&4@EQycTE2#X%VUwGmQks)$SHudml@W-G PL5z>gjEsy$%s>_Z$3!%V literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/sk/__pycache__/formats.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/sk/__pycache__/formats.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d35dcf11a1097a2813b7755d25d5b7582fff2f51 GIT binary patch literal 742 zcmZWm%Wm306dhwAJOTvsXxc~>Qso6w@u=+%RaKp09%^kP+bHsEEQc|V1Y-mQ39r(x z=(g&vztL5tZdh7uyUH#~)D5eSNuZ$4;+}KQJ@?)j&96iv2FNjlpPiE+0KffYa{`a# z{yiaI00szP3Q;(K0+>cL4x%6qp%4zEFg`#BU4SFsC=?+WB^bpq6vJ^8$A{=}o+u{W z@C8?>7Ic@cmHTe&Au0Hr_SK*-xFO8hobE=~;1_Qwvb;#U5f*c-&9VBH%?X>ASi8hx zQcrK{1-4#h#WJh9+5aSt?YPN(bw$1W<3IGr*BhFER7@=66p8hNFk9!s{C)t=45lGj^xu{z-e|strZ;ow^}cjWa>`xMbFC4XN4E z9_Ojc{Pr6Adb%QfXo&nLLlv65!fUd!WVE{6QhBMeqot&lcq%AHO_5v8hE)3w?#au+ z3d5dbThKOpwsVDH#hSrWvwc|-h8Ug?%wgAoGix}5gZ?=j&8IzQ_=bD+8czCCt281; zvujNtzE~UE&aeXqPTL$Md&e%4m6K*tLMc&#Dz8YBX#(A>T|J}(M3AZ#wQMWOW zdU752k{J@1=hrDO`*Z=)UWUXYFMHzi;};8%^RhX@?;_!RU;&uBWbhfmJZaAz`<@(e NG9HupoEm4z?7yVJ&pQAB literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/sk/formats.py b/venv/lib/python3.12/site-packages/django/conf/locale/sk/formats.py new file mode 100644 index 0000000000..31d4912256 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/sk/formats.py @@ -0,0 +1,30 @@ +# This file is distributed under the same license as the Django package. +# +# The *_FORMAT strings use the Django date format syntax, +# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date +DATE_FORMAT = "j. F Y" +TIME_FORMAT = "G:i" +DATETIME_FORMAT = "j. F Y G:i" +YEAR_MONTH_FORMAT = "F Y" +MONTH_DAY_FORMAT = "j. F" +SHORT_DATE_FORMAT = "d.m.Y" +SHORT_DATETIME_FORMAT = "d.m.Y G:i" +FIRST_DAY_OF_WEEK = 1 # Monday + +# The *_INPUT_FORMATS strings use the Python strftime format syntax, +# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior +DATE_INPUT_FORMATS = [ + "%d.%m.%Y", # '25.10.2006' + "%d.%m.%y", # '25.10.06' + "%y-%m-%d", # '06-10-25' + # "%d. %B %Y", # '25. October 2006' + # "%d. %b. %Y", # '25. Oct. 2006' +] +DATETIME_INPUT_FORMATS = [ + "%d.%m.%Y %H:%M:%S", # '25.10.2006 14:30:59' + "%d.%m.%Y %H:%M:%S.%f", # '25.10.2006 14:30:59.000200' + "%d.%m.%Y %H:%M", # '25.10.2006 14:30' +] +DECIMAL_SEPARATOR = "," +THOUSAND_SEPARATOR = "\xa0" # non-breaking space +NUMBER_GROUPING = 3 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/sl/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/conf/locale/sl/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..10e198e53145f6d58615ee404923da398aa1a240 GIT binary patch literal 23147 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/sl/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/conf/locale/sl/LC_MESSAGES/django.po new file mode 100644 index 0000000000..4b5f932ba1 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/sl/LC_MESSAGES/django.po @@ -0,0 +1,1351 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Andrej Marsetič, 2022-2023 +# iElectric , 2011-2012 +# Jannis Leidel , 2011 +# Jure Cuhalev , 2012-2013 +# Marko Zabreznik , 2016 +# Primoz Verdnik , 2017 +# zejn , 2013,2016-2017 +# zejn , 2011-2013 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-09-18 11:41-0300\n" +"PO-Revision-Date: 2023-12-04 06:49+0000\n" +"Last-Translator: Andrej Marsetič, 2022-2023\n" +"Language-Team: Slovenian (http://app.transifex.com/django/django/language/" +"sl/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: sl\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || " +"n%100==4 ? 2 : 3);\n" + +msgid "Afrikaans" +msgstr "Afrikanščina" + +msgid "Arabic" +msgstr "Arabščina" + +msgid "Algerian Arabic" +msgstr "alžirska arabščina" + +msgid "Asturian" +msgstr "Asturijski jezik" + +msgid "Azerbaijani" +msgstr "Azerbajdžanščina" + +msgid "Bulgarian" +msgstr "Bolgarščina" + +msgid "Belarusian" +msgstr "Belorusko" + +msgid "Bengali" +msgstr "Bengalščina" + +msgid "Breton" +msgstr "Bretonščina" + +msgid "Bosnian" +msgstr "Bosanščina" + +msgid "Catalan" +msgstr "Katalonščina" + +msgid "Central Kurdish (Sorani)" +msgstr "" + +msgid "Czech" +msgstr "Češčina" + +msgid "Welsh" +msgstr "Valežanski jezik" + +msgid "Danish" +msgstr "Danščina" + +msgid "German" +msgstr "Nemščina" + +msgid "Lower Sorbian" +msgstr "Dolnjelužiška srbščina" + +msgid "Greek" +msgstr "Grščina" + +msgid "English" +msgstr "Angleščina" + +msgid "Australian English" +msgstr "Avstralska angleščina" + +msgid "British English" +msgstr "Britanska Angleščina" + +msgid "Esperanto" +msgstr "Esperanto" + +msgid "Spanish" +msgstr "Španščina" + +msgid "Argentinian Spanish" +msgstr "Argentinska španščina" + +msgid "Colombian Spanish" +msgstr "Kolumbijska španščina" + +msgid "Mexican Spanish" +msgstr "Mehiška španščina" + +msgid "Nicaraguan Spanish" +msgstr "Nikaragvijska španščina" + +msgid "Venezuelan Spanish" +msgstr "Španščina (Venezuela)" + +msgid "Estonian" +msgstr "Estonščina" + +msgid "Basque" +msgstr "Baskovščina" + +msgid "Persian" +msgstr "Perzijščina" + +msgid "Finnish" +msgstr "Finščina" + +msgid "French" +msgstr "Francoščina" + +msgid "Frisian" +msgstr "Frizijščina" + +msgid "Irish" +msgstr "Irščina" + +msgid "Scottish Gaelic" +msgstr "Škotska gelščina" + +msgid "Galician" +msgstr "Galičanski jezik" + +msgid "Hebrew" +msgstr "Hebrejski jezik" + +msgid "Hindi" +msgstr "Hindujščina" + +msgid "Croatian" +msgstr "Hrvaščina" + +msgid "Upper Sorbian" +msgstr "Gornjelužiška srbščina" + +msgid "Hungarian" +msgstr "Madžarščina" + +msgid "Armenian" +msgstr "armenščina" + +msgid "Interlingua" +msgstr "Interlingua" + +msgid "Indonesian" +msgstr "Indonezijski" + +msgid "Igbo" +msgstr "" + +msgid "Ido" +msgstr "Jezik Ido" + +msgid "Icelandic" +msgstr "Islandski jezik" + +msgid "Italian" +msgstr "Italijanščina" + +msgid "Japanese" +msgstr "Japonščina" + +msgid "Georgian" +msgstr "Gruzijščina" + +msgid "Kabyle" +msgstr "Kabilski jezik" + +msgid "Kazakh" +msgstr "Kazaščina" + +msgid "Khmer" +msgstr "Kmerščina" + +msgid "Kannada" +msgstr "Kanareščina" + +msgid "Korean" +msgstr "Korejščina" + +msgid "Kyrgyz" +msgstr "" + +msgid "Luxembourgish" +msgstr "Luksemburščina" + +msgid "Lithuanian" +msgstr "Litvanščina" + +msgid "Latvian" +msgstr "Latvijščina" + +msgid "Macedonian" +msgstr "Makedonščina" + +msgid "Malayalam" +msgstr "Malajalščina" + +msgid "Mongolian" +msgstr "Mongolščina" + +msgid "Marathi" +msgstr "Jezik Marathi" + +msgid "Malay" +msgstr "" + +msgid "Burmese" +msgstr "Burmanski jezik" + +msgid "Norwegian Bokmål" +msgstr "Norveški jezik" + +msgid "Nepali" +msgstr "Nepalščina" + +msgid "Dutch" +msgstr "Nizozemščina" + +msgid "Norwegian Nynorsk" +msgstr "Norveščina Nynorsk" + +msgid "Ossetic" +msgstr "Osetski jezik" + +msgid "Punjabi" +msgstr "Pandžabščina" + +msgid "Polish" +msgstr "Poljščina" + +msgid "Portuguese" +msgstr "Portugalščina" + +msgid "Brazilian Portuguese" +msgstr "Brazilska portugalščina" + +msgid "Romanian" +msgstr "Romunščina" + +msgid "Russian" +msgstr "Ruščina" + +msgid "Slovak" +msgstr "Slovaščina" + +msgid "Slovenian" +msgstr "Slovenščina" + +msgid "Albanian" +msgstr "Albanščina" + +msgid "Serbian" +msgstr "Srbščina" + +msgid "Serbian Latin" +msgstr "Srbščina v latinici" + +msgid "Swedish" +msgstr "Švedščina" + +msgid "Swahili" +msgstr "Svahili" + +msgid "Tamil" +msgstr "Tamilščina" + +msgid "Telugu" +msgstr "Teluščina" + +msgid "Tajik" +msgstr "" + +msgid "Thai" +msgstr "Tajski jezik" + +msgid "Turkmen" +msgstr "" + +msgid "Turkish" +msgstr "Turščina" + +msgid "Tatar" +msgstr "Tatarščina" + +msgid "Udmurt" +msgstr "Udmurski jezik" + +msgid "Uyghur" +msgstr "" + +msgid "Ukrainian" +msgstr "Ukrajinščina" + +msgid "Urdu" +msgstr "Jezik Urdu" + +msgid "Uzbek" +msgstr "" + +msgid "Vietnamese" +msgstr "Vietnamščina" + +msgid "Simplified Chinese" +msgstr "Poenostavljena kitajščina" + +msgid "Traditional Chinese" +msgstr "Tradicionalna kitajščina" + +msgid "Messages" +msgstr "Sporočila" + +msgid "Site Maps" +msgstr "Zemljevid spletnega mesta" + +msgid "Static Files" +msgstr "Statične datoteke" + +msgid "Syndication" +msgstr "Sindiciranje" + +#. Translators: String used to replace omitted page numbers in elided page +#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10]. +msgid "…" +msgstr "…" + +msgid "That page number is not an integer" +msgstr "Število te strani ni naravno število" + +msgid "That page number is less than 1" +msgstr "Število te strani je manj kot 1" + +msgid "That page contains no results" +msgstr "Ta stran nima zadetkov" + +msgid "Enter a valid value." +msgstr "Vnesite veljavno vrednost." + +msgid "Enter a valid URL." +msgstr "Vnesite veljaven URL naslov." + +msgid "Enter a valid integer." +msgstr "Vnesite veljavno celo število." + +msgid "Enter a valid email address." +msgstr "Vnesite veljaven e-poštni naslov." + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" + +msgid "Enter a valid IPv4 address." +msgstr "Vnesite veljaven IPv4 naslov." + +msgid "Enter a valid IPv6 address." +msgstr "Vnesite veljaven IPv6 naslov." + +msgid "Enter a valid IPv4 or IPv6 address." +msgstr "Vnesite veljaven IPv4 ali IPv6 naslov." + +msgid "Enter only digits separated by commas." +msgstr "Vnesite samo števila, ločena z vejicami." + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "" +"Poskrbite, da bo ta vrednost %(limit_value)s. Trenutno je %(show_value)s." + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "Poskrbite, da bo ta vrednost manj kot ali natanko %(limit_value)s." + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "Poskrbite, da bo ta vrednost večja ali enaka %(limit_value)s." + +#, python-format +msgid "Ensure this value is a multiple of step size %(limit_value)s." +msgstr "" + +#, python-format +msgid "" +"Ensure this value is a multiple of step size %(limit_value)s, starting from " +"%(offset)s, e.g. %(offset)s, %(valid_value1)s, %(valid_value2)s, and so on." +msgstr "" + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Preverite, da ima ta vrednost vsaj %(limit_value)d znak (trenutno ima " +"%(show_value)d)." +msgstr[1] "" +"Preverite, da ima ta vrednost vsaj %(limit_value)d znaka (trenutno ima " +"%(show_value)d)." +msgstr[2] "" +"Preverite, da ima ta vrednost vsaj %(limit_value)d znake (trenutno ima " +"%(show_value)d)." +msgstr[3] "" +"Preverite, da ima ta vrednost vsaj %(limit_value)d znakov (trenutno ima " +"%(show_value)d)." + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Preverite, da ima ta vrednost največ %(limit_value)d znak (trenutno ima " +"%(show_value)d)." +msgstr[1] "" +"Preverite, da ima ta vrednost največ %(limit_value)d znaka (trenutno ima " +"%(show_value)d)." +msgstr[2] "" +"Preverite, da ima ta vrednost največ %(limit_value)d znake (trenutno ima " +"%(show_value)d)." +msgstr[3] "" +"Preverite, da ima ta vrednost največ %(limit_value)d znakov (trenutno ima " +"%(show_value)d)." + +msgid "Enter a number." +msgstr "Vnesite število." + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "Poskrbite, da skupno ne bo več kot %(max)s števka." +msgstr[1] "Poskrbite, da skupno ne bosta več kot %(max)s števki." +msgstr[2] "Poskrbite, da skupno ne bojo več kot %(max)s števke." +msgstr[3] "Poskrbite, da skupno ne bo več kot %(max)s števk." + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "Poskrbite, da skupno ne bo več kot %(max)s decimalnih mesto." +msgstr[1] "Poskrbite, da skupno ne bosta več kot %(max)s decimalnih mesti." +msgstr[2] "Poskrbite, da skupno ne bo več kot %(max)s decimalnih mest." +msgstr[3] "Poskrbite, da skupno ne bo več kot %(max)s decimalnih mest." + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "" +"Poskrbite, da skupno ne bo več kot %(max)s števka pred decimalno vejico." +msgstr[1] "" +"Poskrbite, da skupno ne bosta več kot %(max)s števki pred decimalno vejico." +msgstr[2] "" +"Poskrbite, da skupno ne bo več kot %(max)s števk pred decimalno vejico." +msgstr[3] "" +"Poskrbite, da skupno ne bo več kot %(max)s števk pred decimalno vejico." + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" + +msgid "Null characters are not allowed." +msgstr "Znak null ni dovoljen." + +msgid "and" +msgstr "in" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "%(model_name)s s tem %(field_labels)s že obstaja." + +#, python-format +msgid "Constraint “%(name)s” is violated." +msgstr "" + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "Vrednost %(value)r ni veljavna izbira." + +msgid "This field cannot be null." +msgstr "To polje ne more biti prazno." + +msgid "This field cannot be blank." +msgstr "To polje ne more biti prazno." + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "%(model_name)s s tem %(field_label)s že obstaja." + +#. Translators: The 'lookup_type' is one of 'date', 'year' or +#. 'month'. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" +"%(field_label)s mora biti enolična za %(date_field_label)s %(lookup_type)s." + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "Polje tipa: %(field_type)s" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "“%(value)s” vrednost mora biti Da ali Ne." + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "" + +msgid "Boolean (Either True or False)" +msgstr "Boolova vrednost (True ali False)" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "Niz znakov (vse do %(max_length)s)" + +msgid "String (unlimited)" +msgstr "" + +msgid "Comma-separated integers" +msgstr "Z vejico ločena cela števila (integer)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" +"“%(value)s” vrednost ima neveljavno obliko datuma. Biti mora v obliki LLLL-" +"MM-DD." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" +"“%(value)s” vrednost ima pravilno obliko (LLLL-MM-DD), vendar je neveljaven " +"datum." + +msgid "Date (without time)" +msgstr "Datum (brez ure)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" + +msgid "Date (with time)" +msgstr "Datum (z uro)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "" + +msgid "Decimal number" +msgstr "Decimalno število" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" + +msgid "Duration" +msgstr "Trajanje" + +msgid "Email address" +msgstr "E-poštni naslov" + +msgid "File path" +msgstr "Pot do datoteke" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "“%(value)s” vrednost mora biti decimalno število." + +msgid "Floating point number" +msgstr "Število s plavajočo vejico" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "“%(value)s” vrednost mora biti celo število." + +msgid "Integer" +msgstr "Celo število (integer)" + +msgid "Big (8 byte) integer" +msgstr "Velika (8 bajtna) cela števila " + +msgid "Small integer" +msgstr "Celo število" + +msgid "IPv4 address" +msgstr "IPv4 naslov" + +msgid "IP address" +msgstr "IP naslov" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "“%(value)s” vrednost mora biti Nič, Da ali Ne." + +msgid "Boolean (Either True, False or None)" +msgstr "Boolova vrednost (True, False ali None)" + +msgid "Positive big integer" +msgstr "Pozitivno veliko celo število" + +msgid "Positive integer" +msgstr "Pozitivno celo število" + +msgid "Positive small integer" +msgstr "Pozitivno celo število (do 64 tisoč)" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "Okrajšava naslova (do največ %(max_length)s znakov)" + +msgid "Text" +msgstr "Besedilo" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" + +msgid "Time" +msgstr "Čas" + +msgid "URL" +msgstr "URL (spletni naslov)" + +msgid "Raw binary data" +msgstr "Surovi binarni podatki" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "" + +msgid "Universally unique identifier" +msgstr "" + +msgid "File" +msgstr "Datoteka" + +msgid "Image" +msgstr "Slika" + +msgid "A JSON object" +msgstr "JSON objekt" + +msgid "Value must be valid JSON." +msgstr "Vrednost mora biti veljaven JSON." + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "" +"Instanca %(model)s s poljem %(field)s, ki ustreza %(value)r, ne obstaja." + +msgid "Foreign Key (type determined by related field)" +msgstr "Tuji ključ (tip odvisen od povezanega polja)" + +msgid "One-to-one relationship" +msgstr "Relacija ena-na-ena" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "Relacija %(from)s-%(to)s" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "Relacija %(from)s-%(to)s" + +msgid "Many-to-many relationship" +msgstr "Relacija več-na-več" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr ":?.!" + +msgid "This field is required." +msgstr "To polje je obvezno." + +msgid "Enter a whole number." +msgstr "Vnesite celo število." + +msgid "Enter a valid date." +msgstr "Vnesite veljaven datum." + +msgid "Enter a valid time." +msgstr "Vnesite veljaven čas." + +msgid "Enter a valid date/time." +msgstr "Vnesite veljaven datum/čas." + +msgid "Enter a valid duration." +msgstr "Vnesite veljavno obdobje trajanja." + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "" + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "Datoteka ni bila poslana. Preverite nabor znakov v formi." + +msgid "No file was submitted." +msgstr "Poslali niste nobene datoteke." + +msgid "The submitted file is empty." +msgstr "Poslana datoteka je prazna." + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" +"Poskrbite, da bo imelo to ime datoteke največ %(max)d znak (trenutno ima " +"%(length)d)." +msgstr[1] "" +"Poskrbite, da bo imelo to ime datoteke največ %(max)d znaka (trenutno ima " +"%(length)d)." +msgstr[2] "" +"Poskrbite, da bo imelo to ime datoteke največ %(max)d znake (trenutno ima " +"%(length)d)." +msgstr[3] "" +"Poskrbite, da bo imelo to ime datoteke največ %(max)d znakov (trenutno ima " +"%(length)d)." + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "Prosim oddaj datoteko ali izberi počisti okvir, ampak ne oboje hkrati." + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" +"Naložite veljavno sliko. Naložena datoteka ni bila slika ali pa je bila le-" +"ta okvarjena." + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "Izberite veljavno možnost. %(value)s ni med ponujenimi izbirami." + +msgid "Enter a list of values." +msgstr "Vnesite seznam vrednosti." + +msgid "Enter a complete value." +msgstr "Vnesite popolno vrednost." + +msgid "Enter a valid UUID." +msgstr "Vnesite veljaven UUID." + +msgid "Enter a valid JSON." +msgstr "Vnesite veljaven JSON." + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr ":" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "(Skrito polje %(name)s) %(error)s" + +#, python-format +msgid "" +"ManagementForm data is missing or has been tampered with. Missing fields: " +"%(field_names)s. You may need to file a bug report if the issue persists." +msgstr "" + +#, python-format +msgid "Please submit at most %(num)d form." +msgid_plural "Please submit at most %(num)d forms." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#, python-format +msgid "Please submit at least %(num)d form." +msgid_plural "Please submit at least %(num)d forms." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +msgid "Order" +msgstr "Razvrsti" + +msgid "Delete" +msgstr "Izbriši" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "Prosimo, odpravite podvojene vrednosti za %(field)s." + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "" +"Prosimo popravite podvojene vrednosti za %(field)s, ki morajo biti unikatne." + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"Prosimo popravite podvojene vrednosti za polje %(field_name)s, ki mora biti " +"edinstveno za %(lookup)s po %(date_field)s." + +msgid "Please correct the duplicate values below." +msgstr "Prosimo odpravite podvojene vrednosti spodaj." + +msgid "The inline value did not match the parent instance." +msgstr "Vrednost se ne ujema s povezanim vnosom." + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "Izberite veljavno možnost. Te možnosti ni med ponujenimi izbirami." + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "" + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" + +msgid "Clear" +msgstr "Počisti" + +msgid "Currently" +msgstr "Trenutno" + +msgid "Change" +msgstr "Spremeni" + +msgid "Unknown" +msgstr "Neznano" + +msgid "Yes" +msgstr "Da" + +msgid "No" +msgstr "Ne" + +#. Translators: Please do not add spaces around commas. +msgid "yes,no,maybe" +msgstr "da,ne,morda" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)d bajt" +msgstr[1] "%(size)d bajta" +msgstr[2] "%(size)d bajti" +msgstr[3] "%(size)d bajtov" + +#, python-format +msgid "%s KB" +msgstr "%s KB" + +#, python-format +msgid "%s MB" +msgstr "%s MB" + +#, python-format +msgid "%s GB" +msgstr "%s GB" + +#, python-format +msgid "%s TB" +msgstr "%s TB" + +#, python-format +msgid "%s PB" +msgstr "%s PB" + +msgid "p.m." +msgstr "p.m." + +msgid "a.m." +msgstr "a.m." + +msgid "PM" +msgstr "PM" + +msgid "AM" +msgstr "AM" + +msgid "midnight" +msgstr "polnoč" + +msgid "noon" +msgstr "poldne" + +msgid "Monday" +msgstr "ponedeljek" + +msgid "Tuesday" +msgstr "torek" + +msgid "Wednesday" +msgstr "sreda" + +msgid "Thursday" +msgstr "četrtek" + +msgid "Friday" +msgstr "petek" + +msgid "Saturday" +msgstr "sobota" + +msgid "Sunday" +msgstr "nedelja" + +msgid "Mon" +msgstr "pon" + +msgid "Tue" +msgstr "tor" + +msgid "Wed" +msgstr "sre" + +msgid "Thu" +msgstr "čet" + +msgid "Fri" +msgstr "pet" + +msgid "Sat" +msgstr "sob" + +msgid "Sun" +msgstr "ned" + +msgid "January" +msgstr "januar" + +msgid "February" +msgstr "februar" + +msgid "March" +msgstr "marec" + +msgid "April" +msgstr "april" + +msgid "May" +msgstr "maj" + +msgid "June" +msgstr "junij" + +msgid "July" +msgstr "julij" + +msgid "August" +msgstr "avgust" + +msgid "September" +msgstr "september" + +msgid "October" +msgstr "oktober" + +msgid "November" +msgstr "november" + +msgid "December" +msgstr "december" + +msgid "jan" +msgstr "jan" + +msgid "feb" +msgstr "feb" + +msgid "mar" +msgstr "mar" + +msgid "apr" +msgstr "apr" + +msgid "may" +msgstr "maj" + +msgid "jun" +msgstr "jun" + +msgid "jul" +msgstr "jul" + +msgid "aug" +msgstr "avg" + +msgid "sep" +msgstr "sep" + +msgid "oct" +msgstr "okt" + +msgid "nov" +msgstr "nov" + +msgid "dec" +msgstr "dec" + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "Jan" + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "Feb." + +msgctxt "abbrev. month" +msgid "March" +msgstr "Marec" + +msgctxt "abbrev. month" +msgid "April" +msgstr "April" + +msgctxt "abbrev. month" +msgid "May" +msgstr "Maj" + +msgctxt "abbrev. month" +msgid "June" +msgstr "Junij" + +msgctxt "abbrev. month" +msgid "July" +msgstr "Julij" + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "Avg." + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "Sept." + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "Okt." + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "Nov." + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "Dec." + +msgctxt "alt. month" +msgid "January" +msgstr "Januar" + +msgctxt "alt. month" +msgid "February" +msgstr "Februar" + +msgctxt "alt. month" +msgid "March" +msgstr "Marec" + +msgctxt "alt. month" +msgid "April" +msgstr "April" + +msgctxt "alt. month" +msgid "May" +msgstr "Maj" + +msgctxt "alt. month" +msgid "June" +msgstr "Junij" + +msgctxt "alt. month" +msgid "July" +msgstr "Julij" + +msgctxt "alt. month" +msgid "August" +msgstr "Avgust" + +msgctxt "alt. month" +msgid "September" +msgstr "September" + +msgctxt "alt. month" +msgid "October" +msgstr "Oktober" + +msgctxt "alt. month" +msgid "November" +msgstr "November" + +msgctxt "alt. month" +msgid "December" +msgstr "December" + +msgid "This is not a valid IPv6 address." +msgstr "To ni veljaven IPv6 naslov." + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "" + +msgid "or" +msgstr "ali" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr ", " + +#, python-format +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "%(num)d leto" +msgstr[1] "%(num)d leti" +msgstr[2] "%(num)d let" +msgstr[3] "%(num)d let" + +#, python-format +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "%(num)d mesec" +msgstr[1] "%(num)d meseca " +msgstr[2] "%(num)d mesecev" +msgstr[3] "%(num)d mesecev" + +#, python-format +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "%(num)d teden" +msgstr[1] "%(num)d tedna" +msgstr[2] "%(num)d tednov" +msgstr[3] "%(num)d tednov" + +#, python-format +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "%(num)d dan" +msgstr[1] "%(num)d dneva" +msgstr[2] "%(num)d dni" +msgstr[3] "%(num)d dni" + +#, python-format +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "%(num)d uro" +msgstr[1] "%(num)d uri" +msgstr[2] "%(num)d ure" +msgstr[3] "%(num)d ur" + +#, python-format +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "%(num)d minuto" +msgstr[1] "%(num)d minuti" +msgstr[2] "%(num)d minute" +msgstr[3] "%(num)d minut" + +msgid "Forbidden" +msgstr "Prepovedano" + +msgid "CSRF verification failed. Request aborted." +msgstr "CSRF preverjanje ni uspelo. Zahtevek preklican." + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" +"To obvestilo vidite, ker ta spletna stran zahteva CSRF piškotek, ko " +"pošiljate obrazce. Piškotek je potreben zaradi varnosti, da se zagotovi, da " +"ste zahtevek res naredili vi." + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" +"Če ste brskalnik konfigurirali tako, da onemogoča piškotke, jih znova " +"omogočite za to spletno mesto ali za zahteve »istega izvora«." + +msgid "More information is available with DEBUG=True." +msgstr "Več informacij je na voljo, če nastavite DEBUG=True." + +msgid "No year specified" +msgstr "Leto ni vnešeno" + +msgid "Date out of range" +msgstr "Datum ni znotraj veljavnega obsega." + +msgid "No month specified" +msgstr "Mesec ni vnešen" + +msgid "No day specified" +msgstr "Dan ni vnešen" + +msgid "No week specified" +msgstr "Teden ni vnešen" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "Na voljo ni noben %(verbose_name_plural)s" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" +"Prihodnje %(verbose_name_plural)s niso na voljo, ker je vrednost " +"%(class_name)s.allow_future False." + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "Noben %(verbose_name)s ne ustreza poizvedbi" + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "Stran ni »zadnja«, niti je ni mogoče pretvoriti v število." + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "Neveljavna stran (%(page_number)s): %(message)s" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "" + +msgid "Directory indexes are not allowed here." +msgstr "Prikaz vsebine mape ni dovoljen." + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "“%(path)s” ne obstaja" + +#, python-format +msgid "Index of %(directory)s" +msgstr "Vsebina mape %(directory)s" + +msgid "The install worked successfully! Congratulations!" +msgstr "Namestitev se je uspešno izvedla! Čestitke!" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" +"Oglejte si obvestila ob izdaji za Django " +"%(version)s" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not " +"configured any URLs." +msgstr "" +"To stran vidite, ker imate nastavljeno DEBUG=True v vaši settings.py datoteki in ker nimate " +"nastavljenih URL-jev." + +msgid "Django Documentation" +msgstr "Django Dokumentacija" + +msgid "Topics, references, & how-to’s" +msgstr "" + +msgid "Tutorial: A Polling App" +msgstr "Vodič: aplikacija anketa" + +msgid "Get started with Django" +msgstr "Začnite z Djangom" + +msgid "Django Community" +msgstr "Django Skupnost" + +msgid "Connect, get help, or contribute" +msgstr "Spoznajte nove ljudi, poiščite pomoč in prispevajte " diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/sl/__init__.py b/venv/lib/python3.12/site-packages/django/conf/locale/sl/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/sl/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/sl/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e17dac0ea21b94cfda4f90bfa4ed654561437fe1 GIT binary patch literal 198 zcmX@j%ge<81o5sX(m?cM5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!O4ZNE&rQ|OP0Yy6 zFHO;RNiEZNN=(kybEFQ_cZ$j>v@Gc?jK&MZmQEdVM^ zOiwM=Pssu+OwP|s)6dCIPRvQwFV4}AkI&4@EQycTE2#X%VUwGmQks)$SHudml@W-G PL5z>gjEsy$%s>_Z$8$7_ literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/sl/__pycache__/formats.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/sl/__pycache__/formats.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5ec2f617ac357c80ead64f983ed10d6f238406da GIT binary patch literal 1006 zcmZvaJ#X4j6o#+)4uk;aqiLn84Do;zeARYCRaK{$fLhzg7)5xo2-kcSV*~^VPwB7d z-mU+nQWr*xwNo~fY)rkE05(Z2`P}zB=e)8AXGQv(gw2w~OR$d+D~O}O;xyc6hiqe0zaxv}{8orTEMu@tW3T2!<&D%Z~2-!UsLRz7k_Or7hOh*oWg4*NftO|8Br?2K8cZv z8zdS$Cu@QvD&?Ia{+JcH#*QRvWl2^v_tdn54#t%#a*cF0G^wOr@%)!1y|GoqYF*jR zt1UD8H4b^A$bYT~+*hr}S2>weBzZ|IWvO1{#G;GE#JX_7%i5(Z)vFcp@)vj@KiV3> zu4(AdXm$&>Y@Osc3c1$?ahch_nUBl6Q+BJvo*|+cDq&L;`Biz{R z=o5(go5q$oY{P-sY7TTb8NjwVHk#83JDRUU9}E-S4D^rV41Oqu@5vPoD=$S+t1yVY zxQ*B+NgU`mw=p~Qasd){634imdQJ4{*#e~PR2u91P$1)30Qx>2e}&J?>I|e$Ne_v% MO((y{#wk4eAI~@p1ONa4 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/sl/formats.py b/venv/lib/python3.12/site-packages/django/conf/locale/sl/formats.py new file mode 100644 index 0000000000..c3e96bb2fb --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/sl/formats.py @@ -0,0 +1,44 @@ +# This file is distributed under the same license as the Django package. +# +# The *_FORMAT strings use the Django date format syntax, +# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date +DATE_FORMAT = "d. F Y" +TIME_FORMAT = "H:i" +DATETIME_FORMAT = "j. F Y. H:i" +YEAR_MONTH_FORMAT = "F Y" +MONTH_DAY_FORMAT = "j. F" +SHORT_DATE_FORMAT = "j. M. Y" +SHORT_DATETIME_FORMAT = "j.n.Y. H:i" +FIRST_DAY_OF_WEEK = 0 + +# The *_INPUT_FORMATS strings use the Python strftime format syntax, +# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior +DATE_INPUT_FORMATS = [ + "%d.%m.%Y", # '25.10.2006' + "%d.%m.%y", # '25.10.06' + "%d-%m-%Y", # '25-10-2006' + "%d. %m. %Y", # '25. 10. 2006' + "%d. %m. %y", # '25. 10. 06' +] + +DATETIME_INPUT_FORMATS = [ + "%d.%m.%Y %H:%M:%S", # '25.10.2006 14:30:59' + "%d.%m.%Y %H:%M:%S.%f", # '25.10.2006 14:30:59.000200' + "%d.%m.%Y %H:%M", # '25.10.2006 14:30' + "%d.%m.%y %H:%M:%S", # '25.10.06 14:30:59' + "%d.%m.%y %H:%M:%S.%f", # '25.10.06 14:30:59.000200' + "%d.%m.%y %H:%M", # '25.10.06 14:30' + "%d-%m-%Y %H:%M:%S", # '25-10-2006 14:30:59' + "%d-%m-%Y %H:%M:%S.%f", # '25-10-2006 14:30:59.000200' + "%d-%m-%Y %H:%M", # '25-10-2006 14:30' + "%d. %m. %Y %H:%M:%S", # '25. 10. 2006 14:30:59' + "%d. %m. %Y %H:%M:%S.%f", # '25. 10. 2006 14:30:59.000200' + "%d. %m. %Y %H:%M", # '25. 10. 2006 14:30' + "%d. %m. %y %H:%M:%S", # '25. 10. 06 14:30:59' + "%d. %m. %y %H:%M:%S.%f", # '25. 10. 06 14:30:59.000200' + "%d. %m. %y %H:%M", # '25. 10. 06 14:30' +] + +DECIMAL_SEPARATOR = "," +THOUSAND_SEPARATOR = "." +NUMBER_GROUPING = 3 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/sq/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/conf/locale/sq/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..b6de2d0425bd6c30bb7f2a8ed113a3dc932a6a57 GIT binary patch literal 28679 zcmc(n37j2OmH!K5k$?-UA_$dWpxbnJ2w@EnNz&=8oiyoA5D-GW_p195`NJnsSC?>b(op7%Wx6Y$@_)!^9kZNA$< z{&}C^&xPPa;Q8Qjr+D54;4t`H@CNXC;5$J6d7tEu+WD4Cf5PE0r`q&>@KC<5bvWX1 zi^G>V%z<;sR|F3RZv^SK_eSs#@FwsX;LYy)9pDkf-wi$;`~dhY@MECb`vQ0v_+{`| z@av%RJ?8M|?)z`RV@N;P_q-#)<3W|13o>g1yK1O1YZb#%f%06(3;n0fGT%7sQ&kZM}v#q_m!Ye{A%!Y@H$ZAc@L=i zKLD!S$3fNeY4F+L=RuAC8=&fY98|gAfzJdFn`iSM51v8%WKiV>L5*iKsQiQ6zf z!!#(mxB=9-?gQ)KKY(uqm!9T%Q{dOZH-YP!tapLm2JZl0Ip6ax0_QWBw}CnEV(>|D zDR@4e5gl#^p96l-;g>+o>-Ryb_Wm2x_@2{a*Kq-;_)>?PK+W$sD7w84RDHLCqT74G z6Tq*4D)$3W<9-sn9DG(UYYj%Aw$LX)y6AlsJOX?Id^&g#iz=K0vUR*;!9&1BU=BPN zRQ_AQ!@+mD_%3jO_=my6z(>KSfsecRPeA4WC3pq+dr<9MzQAG*RJjtUaV4PE=|-3S zCKrDjsP=CM=Ya18)xUedqri_k{G3bwCs6tS1yp~&2VQ*;{R3Y|d__Mr4n6>?p6eKd z+I=;s`MeQSJAVbL|962$f*%4`fS&=W$~$DCEq5lUeCIk`3Tm7~pz7b~a17LVF9((X z8W%5uYCm@IhQpVF%J(Wz{dqko`hBazce(U?K#liP;G4nw!4ttN&$Q(mpz41asQGvm zsQ%pmJ_~%4OMeHb{=ExSeY-%0>V4RyKMIQ9JPsZV{vPZD4_ajT$pH9l;-jGEu>fix zTnnn)N5P}PFFO2Jhd*}con`xV4Cs^ZBv9kO2o!w`f*Qw5TzU>vKPJH?V8x}s4;&)? zw;)~go&aO8XR+m9e-17uz8hQ%9(J}pPc8*D{#!w_{@`)M?*cWh`#_EBK~VjA4AlJn z4AgucbdF7*18Sa+0hN9NsC=h_E5U`}DzE{Xbpuu3{h-$OE8sEUx83)jg6h|kE`HFt z%nk7)LFGRKRQYp2?T3p&m0t^LKVJo!bpX|`kAkZ2lc36d*5MaH&F_N_A9DB|Q28GP zMbD2r{3)pVe*tn7dB>jTdGo-Zme8b^)9sUQXdVc~c-{CNQjpImA^L`Ad z{+|r0{1WhTa5<=Xy$w{mcY-SS0Z{Yv5%6^IUhqWl`=I9gccAFz*%0HOf+vA$_fAml z{SBz{A9Lw{2mXrqXTb-+PqIkg1YgJDqIUC4n#NfKRsTyJ-sJEOhaYzM1&0rVD)(dX zXz*YTC6zzU;TfR5F9Ai@8$jjT>e9D4d=02_w}7JGyByvNs@y+<&jh~>s=gnB%J03% z?weyljlaiXpTjd9p6&2_hZi}##NnXB)ehH#qK6Ss^K-dNzuI9A6h9bu-y@e^1+^~{ z@cH0%py>2=Q1tW}a1;3N;1=-wOFS|Y%ddT4~LAHo@+>otrJ;>Jg{sh#% zxfeVUdn=cD?rtk z2af<>;qdjK>U#^QdASqRdG}RN?fwqbxaV_-Xny)Yjdu~K^z%UNlcf$fg5pQlfa=c< zP~*KGRQ{Vlwewa``|)1zc<{@h==V|Z2=Hg1_|tE|mEaNUY<(NS2Jy?lo52Ubmx8(V z&?fj@@J{fx!|Y{n@dnQ$i}yY79{4WX z@I+8_xC#`#jl1}(9NqzHpWO%cfj&STkhr-K)O3&3kY)$<1MRB#tq0>1?2!1G3J zKW+tkiGK{#d^`eb9e)UF9)AI<{BK?Q$z#X}#OH&Ww>N=vz_)`c|JNWa*!v);b@?%< z{rXE#^*-tFX`7L0h#v*2oo(Qe;0{pvUJYuV-Ux~gc7bZ=Zcz2!3#z@(x%4lCqML7m zM}gk~MGud=^d~{(|6fr3IRfTXV?#azyo315FGGg{=f2q1^94}tJOGN$z7DE?KLW+S zf9>K&TyFW@@!*-H7eTdi3#f6t6IB22a`AgWjrWtF>i?`u|Dub3&3%8^;Ug~nF^4|` zRqwAswR7+lmVS-`wH~K}`rZ#}zRm?d3N8bE@YkT)f8LdLoO40V$LXN@^Fr`g@GSRz z2vmLRK-D(}E(W){^f!aY6Tb}ihda z&GY@>(cpK%W5Az*>enGx+5AU=n$P**$>0J|-&cd0j}cJ)xB?smuL9NoJHV~rE|8>eu^0_5W^A^?kzOXB~dgeSZ+txE^-+ z2&jHO28up@0?q}W1YZcAoVWC_3Ot8+-No+&mlFR5*bAOeu>9{5a3S$3sCwQG_JE%O zp9Ve#s((KM)$T9A=YziiHNF!=o39_#cou=mx5ULS0Y#r{K-D(|YCJnZ&DSfyQ^D7R z8qY3p0{jT5`cE0R>v*n1GP3H}%H4-}yl@YcwdyKd5s=hdLn!__3E^xTe;bMp9IlK_mI={%_YEboG>b`Grc!f*9+Qsvr_~it664(G2 zfPV(|gP#Ifa_?~vQuZz_V}k-e1hN!fU&ZsT0pAKvflq)O30}2o&%gUY@s)#P%ZDxi zmk@tBxCZ<3OpSQ}Ly) z?8it`KlOabg3*)yiT4HM`2={DOMivK-+|wA@3(^gO!ynZvk9Lhe1VGfqUm^TA zLC?zxqUYs&=Lqlug7_uu+&h=Fe+6GaxS8-*1U;9K{yuO8VF~Yx2#@go4#L-!MtCOS zc+%Mx#_p#znM3$%0!!dML^y`;2NMn===nY2P~LxIVpi|atM=y>0!wP1BgnIxH=Qe= zC-f87o?Zru_Rk~e(fM=&Y5xnpif}mZe*)?$5MD{RfHXuc@7bUp+2OP2dR~4_m`~cN z1ksnChY8OzZ}!ilz(p?pEb=WRh$eL|_7k2#SWH^>=p6kv;cs1n_QhPji_Y}iNcb6H zh_qLOD_q%UfaApV{2#)X2~QF(BK=>$5yBA!@x^mo8D5RNn+Ly0=pj6ZZ+C+KMfeMX zp0i1NA>rLNYHTOsqk1kNtakPN)}&Y&;j6sgL)hfL>C-m}Y#H+$MfzjBX}{`OMR+}7 z%;isc|0qGv%>va|1Pa^1fDd9f|ClHnsUPJgx!t>qtf8>2JLC+P0<4E6XV(9J;Gx(Z&xdyz? zy}u0n5#e=&LkO1;^sFV^MeqrFUZgro$An)HCJ2iNdQP|C zEv1fA2%jT<24TphzaLBp$MS6sVY5p=o%b^ddJX|U1-_GT72!I<0BOUZo+B-I9|Z3w zJmKOQyqK4_W)X*ng15Q%r%~5x-hW7VE@3V4qre*oe@4*rE&Z9_QwZu|J*tGgsh^J< zu;(1xzLZQ^)RU=VLdGH?kkVKGp>gI{GNOxNy2JQP)xi&0Ij%=$6qYb7q2)}v}#532dl-yYSA zG;G?WviUtzLAeq3CVn9fQ@^ACrtH>gU?$C!s}~~`>FjV&PQsutZO3i;yFUd}8sD>I zwNdFU_=RAat~cK`4jU=Pjie*e`c#Rkje6MpXrpbP<7&Ow`l?v#iDTQ;6Vr68!L-m-Eos767Rmx(ap#b1^L zxhU@~t0hs{%Oc4H#2YE2KU$+eTI5qDv?bGeLnXasjR^=7Nb5;ZR^FA>iL%MNGfZ+p zG)YNsd5}W1-f~DUX{0K*JgiQT-&-C{_&w*Fx#%@}i5_{&hv~D=?MEZrV~k2r>o5_FK?750yC`T z4Ms}F6{DMm{3#}BJj$D0D*Sbgq@c=s zM&pDz==D|sfSEPO4e$XHSF^z!n$7! z%e6j@G7k+VQBFil2F*SN{70_8EhCFZuD{)9yG=zg``vUfi5Y@=X!%lk+FP+R%on{u zySRg7^Ly+@6{jOTONbkF!`WP#qVc%Tuo%x^m=7yCR*jda!ob;UHd=-$dV^6y=i_9W z0Tsd>A=@?y4WkIk<#;;-Wrf25ZxBM6h<(ihEUrGCB@D*-21Hjkv+oTym>ifFFLipp zvchWkL7|X@X-ceCpY|a>R;607bCE9xY3i8JfN61SsBCU_3`Gri8O^S&rVV;mF9wWP z{c@f4E3r+kvezoX4wz5DjkZ<}@^t^HmW1IQNYQA510)y1{ng8`)r*+bKk%y3KVn_x z^o!X8Po*0=IlIb2yW?y%@i@O2KsKD5F-vO~py20=Y?M5QuiwL*C-Aaq`_AEnJ*AAq{_73iEm2S%ZczxV^g$L9{ zR)!^On>}0FB)5$(opH*@6(AIq>rt)D;V|x}^|0paFzv3ik556uNjBk2*x_?LKAwj4 z-n7pT2POtO5{y6-73^v)QkIUCvy>v{lE!{q?W8ihl>6VWSxQeJ4vDH^LRB$(&Ka0$ zJ?SptDrq2DScd@YCO4^n@fk#VBiaE^h_XWsWMOd~vg*drn6}v01d0iF8$%K7LDkfgHT#XJIiOq^n-l{~p$ZA$0-0rPL;)=Z0 z4J2(N)UFxH_NKRHWa@15rz1tA!IyLOg+F=3b!y0aYYMTqX562S8%7>Nf`@`7eq2-u z>w(#77tc$=akP*ynP)^(B({s^Rpb6<>QcWRK=!D*)qJ^8$ZBABY;pzrM`A`hy@VNS z784N^Q4hnU&xcP1%v=&y;wdBjR0jMpI$>mV@gL+&5mExjMCcS33`JF@{xE4(C1zTP znZG2;*U3)5;f48Pm@m<-0pAW41)o)A%jUyGB!Qrh*o%fV738PcqjV)GLoihY(kWUi zMY zOc}SENkg4E@Se;x!B4qgtH;JhMm2sZJhD;jUymnp&}St;8CfG8Lu?1zNTzt87L$xp zXm;xwt5%W3+OZ-NjevK{P<752vVgo9m$k1zCYBjZu*~S*F&oe+TK3(1ZPrnv8-5Q5 zBDmFZ^xm{rEDD7(B~jgha}>Qb$jaK%YlEs`nQH^IY$=^<8>nV$8`aQT7v!ell0K>x24~DqD}n+(4hxE811!qkT%v^wu|apr%1i z6KZ=HrG+WchhenVX+nj!D*cnPHN+q>qp-K(MU^Nu8y>oml${Hig?dnd_dDh@;19bj zhF7L7cCSMiOU;0PIjlo=uWCpc=vb0H(nqc_0p-=up#6xWg8fQG==#*HgA!__Pt*PN zxF4qHShC1MrmJD;$;C(rUmk`b58DY&dD(%w-ZEPZqc9T0w1ElOjKi9j4nzo&>)NFM&nY7m%?U>8VraUUsUf!3ePJPH^9KJn`s<8`%1xjT} zGuLUq(i$e+Mp9*~>Uc^TRoQDLrlJuX!qtaO2@6}5pdVl!FB- zHj-3JI)-h)8;fgE9tLiOd_;NPPe*pS(8nald4rJ8S|vdNo)A~Dvt%Sb#&re3*3?K! zhA2R!Bhs;FM?raszs!fhNQm^8)oLEr3~zIx(n#vw=9293+DvHq97HJ#GL2qu?(QP) zaO&Do313UqcssdjzrW6oLsi-64Ej*Yth*fR>PeQ zsfx{OqAgKaH=CE-b|Pbf91?{wQv`p&G!burRDHG-8zO z0ln!$B4!)o7_gBQEoNlGmrH&N>*H>@nqgoms6w>rWY*?tiI*06xyovE<=(c zz{Nx&mxX2a`sMH)$)~!PNW;(yYfOWa*PAN4QKPJeB4sM0Ok^6#A)A~UX|+|URPZFO zc~fmr%n3%5+aBgJZLSaDw@!!I-A1G%n--jQZ4Fw8jP}iOpN8Bgb1_0{kQ&v92C$tp zFDy(8nXc%TF=vKTMN)uoVGxzxx!(it9S z%m2U87#5wGU7j)}jxR(2)q#>OJgpF-x9pQ92b;=+AxI_w3C*lgR+HV^vL=&^ZiP^y z4b5?qssB=X;3}+BFo3`w{IEiF@L+LAOXD`2tIUQkQCpfTZbf9Q>eIS(f2O*YDes#ihI zKuh*2QK1@56zg6!MsuykQ(nv+ew=tUQ31ACZ<>Rw8uyVo7kb82AuFe~Q*?S_xUVJq z&9Q~-oH266fX!mwXUw(PnB+|>ZJErgy$h4fLKN}DSWvY61J-a2H+Ifz1=7Eqr+;|3 ze{j(72Quu@?u=E=T-)l^ONNK9T#}|&4m8Yj)m49tYTG(FLkm}qUGYb0<;uaqtNbgk zq=l=7hnHN{Hi-QggVcdcbG38h_sr1OUUR;n4721$|FsKbuPtU@%b9B5_oU3yn5eZU9 z-iQ^U`qvctx5&Z~SC{x!xSF%c7}xrT(}}3izq~P#_K(F&{5c~V`!|JCTwlc1{y`RL ziGS9aix&5vd3OI<=lExyyX5Q(7M#g5XFbN1e#GNyioOshOZ?>_UNt3uIX6s!e^JiF zEvtX@oWXcP_DA;x7n1vVf;8Awpm3W59rckfF5Qe2enab^cW zykD?c?cU{2hWd*=Y8r1oYA43JbL-H|fx*KMOFJ=?#*@2u4bTyzY&Bg53ymTkL#?_{ zKe(c(?cOEZmiFepTn9M-lij-t#ofEAk^0-=D=5S3UcRoeI%z<$%!v?3j;2kGH^c4m z9MqJ#VIYI73lR3xVui6+8C6z1vxZSeY414T&K#KxrrL^i#-^frv(OY|KqPY#3?{o`xGe77WpJpGvVPFf zcv=im`~1v5Y-YE?jra?e>c)4l(`j&2n>)15foT!-2j{^_<2@L{fTFVX8^kumCB`I5 zF&Ppv$b%3a&Up?}&|79*2T5B+*NEdU7~-|jav>zQ^&Q-S3xo>eK3L-KWXSa|{)2KP zl=mQ|ybTQ~1+A5R8H*|+EbaxI?re-nLi=@c4LuaAqGKp+PD-7aVVs}FlaRY5>7An-m(BgDAwa>z+cBW zN?{uK4ZljN*oSD^I2CdQWW5QQ_t3u-W&%axEt9zxZYU(vc+5F2`Ay}5;07ngC# z!x&+vD`A5%QEtBU3TvV|^j&T@!<0(aM};EHqK~8`sYYaov?1+;Oop{ADNLc^-LGc= z6wimc#_~&z@o1-pXHI-s0gOz^P~?7yQH6Q&cHa;(H~1ZDN;rTh&h?lWwq4kF0F6D4Cwr0Ul{+~YXf|D}gq*$$? zts)!+tF3SC1>PX;)4BwUDo~S6>rc6Eqi;JWCWAUvug0g6n?^dnOszkNW37b0jj!U9C48RrS`^u1TVOX^cSNox zk-qH&U>iQblAJQOC?q#~Ssbji*V(#_0w;5?T zxwkRRQkd=^Eku0;Ve7f~#)(43C28T}Kxruo1s4fe0j$=IJN zhuYh&i?yKSdf4uE*Va?=aoBXaD|Ywvz-pzdPpQ(j+5BVnb??>gwX<#;mRjT2s#`H_ z4?o6iOLxqsJQ-I(;J8fftujM2c8ib0quiM$9wkoG)l{EfXdu;LCN7KpaxRji<=|Kw zfXT^;v6W;buYI^UB4uLWQdslfMm94esn>Mc7JgUYXmjhngSGh>KOq?MdpHMhq ziycXUJ19C_C0%($GdU}^)op&e(fYc37j~bv&)5VF%b|mNmX*1t?Q3^g1b=$ns=KRY z^Le2;iD%Db`CqFJ+Aw-WNp+`D=U7Z#?&O@k%4~kDFJ`OiuI|~HHPy69Fm@igN4k$e zw5{%p^T@HCIc~PPLmPdzbrv{BU@o=i5F(No3DJ0QCIU`^DeUfs+RTd;vmoTnNQN;N zT5SvZ2e;ML6um+p?`WcJ<`@qB&c04b(X23nXxwdV^%S>0hGhl9JzPB{`HU7zy6I}_ z7s%$Ew=Lfv=jyr69FoY1S4ehh3WliZ*6-6=9L*7K&r=$1l(;LE$c7Qo6~nQOF_8+B z3w(^GyLZj*_Bo1vGQpW=j%T@kX42Y9$-3f`xJ~VTFN}4ql_@KJkGfBSI+Ev<%y{WI zIttT3s-;X8lbp2SxxrAmsvCS_O0eaP>+(IXfWY4=iLv=at;}CNT@~qAT9W<~^C&pIg zAWA_whz1-jbR5?>Q{K9Xwu`iDMy#7?CgL`IMy(#u<|vAF$V$U<6x~2yt(Bn=OL@R= zrz8ri9+6($OJFB#=q9Qk?PeN(vA^g}1rPeqHq8^*;WHbqCw8O>pr7@;bGb|B7 z7l${O0PV=l6kX6KC?1m|1|cZp{8EX9q>OgLhw znwCYFxX3pxj$@`%FL8*#5Mf%`{a%PWnu>PHWP}}AZlwMEwybTgxZ2LLFlUb2Ilj~tT#890;cpGQ23#C3QhpZdU5ecpqa^l*9FFQ(SUOxz ziOS{Fc3FLC71I zmvS&E$5USMQIE||)3!6?4{$JQcSp5LsLjZ=x8eW3;f+4}G3F9Z3Y|oO+0R%=ZFQ~F zsOgDncMB$KoTaf+Oa(iO^afK$W_N8_O{I%60?u_zAlfbovxcjx`iSE@QckA{)Qar= z+712oT^Ts^1bC%l3&cg02HUMk!X^-1LGuCw#Du}&NW2vSvbxLP#KejMrLtGk2tx<<#VPPprhwRMN z@>^B6l-r%0Cc7A$(zDal8dz-j3*^5&U{5i#7xM7C&(|9rqKBT8Fg8gDv#9I@(6M_99< za0m=rZI=sb%UmuXQvM5~Bco%>%HTZ`XEGyEsZo!x7^b#=DbgXHjR=RxiV_aZB27;Q9j#>BNZUaf zTIL;uedj2v?eLTe83m!Wn(b{NzR1=kez2bn&00dO;6vA8S#0UV@#GiWeU@}i?g$58J^78fw!r_z6t@3tWmBhRx;*#L!5cE z6z9bYj5jaB^azX(^%l{NWiVTgSZD=3OD$GM7x#1yzB1)z%*m9Hu9cM%Wob`aqriUG zz6?sqs_0-B`)Gi{>2BAP_b)@$U+ej+V_ru(-5KKy(D0EQR-;t~{wT5^-m>su+FK%n@IxQKoF_i}uXgK_;D3=4~-%IILp2S{A98 zE;LNrI<$3wJHKF^?`R`cOb+H&R`yhcCw`2^{eNskhg2e3I@cGqVI$)LC!DMO#QGtR z>S`3{w04%S4TFWD-8Wcvx^~~-Yy~B-T0u%$NjCh}9SK)Mnnin0sUbHHG;3f~d28#D zS~GiYH~o?r3{%Yx-nQCXjTd5W&kHbg*_V`~eXcWGl<_Xc`?_gmTUniicChNBIGYP0 z2&00r$LNFn(uUX5+q{dj4P+dQ^Gr4(nPfrgs6gJ(-xw~%P?vQqwydPom@I@TOlgU~ zL1S5l_kAf)X|p=G@?yh~47rE9v83yc4ak{{REO`egb8y()3T8V<^Q{ZpM|2>I-X@* z4rxvc+Z?c;t)Y$}cvMnqaPaAHlRN_1yHfT!mDnPnDg;&j#3L`1$IL;Fs#m?KVvXvM21xAcf>8d zNz+U?E300`8E|1Rx1pWgFmx-2m=gb?0sqSb!nTouWy6$_#e6p=7PdR;;(pDP>_g`C zbWY4N8uf9*Z7)38Qxdi9PeLVTWdn7&GvZ}0w3v+@*8j7ijz^*Tr z5PRj-+-2fu>f#&Njr?W=BeMiNB~_A@V5ONJ#>J^sTv4_51(e(6&!?wgGJ7&?>} zc*Z)^^7_>*WnNV7oAdc?KiOc5kSXhI`J)a$Q;!o&^|OWc?B*(|gPB^U+g%3JfY~S3 zSmmVYCJQ#dk>iHUA8gYZwFAZZoY|}0KX|~M1v9iVa|8RRc?R#;wkFQVjvNMlyNn!r z8Oc5x+P9-@Tf5!OKBb{qPhtjmr5uUdJ&E_(l40_xvFpy_KrF_dF)@3WCQ+e&bT9#6M`VaUUY^g6)V^0UqL9z{E4`28&= idCU45>#fU&?LaD-rKmY+yEj{R-)CsrN_{Oq, 2011-2014 +# Besnik Bleta , 2020-2024 +# Besnik Bleta , 2015-2019 +# Jannis Leidel , 2011 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-05-22 11:46-0300\n" +"PO-Revision-Date: 2024-08-07 06:49+0000\n" +"Last-Translator: Besnik Bleta , 2020-2024\n" +"Language-Team: Albanian (http://app.transifex.com/django/django/language/" +"sq/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: sq\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Afrikaans" +msgstr "Afrikaans" + +msgid "Arabic" +msgstr "Arabe" + +msgid "Algerian Arabic" +msgstr "Arabishte Algjeriane" + +msgid "Asturian" +msgstr "Asturiase" + +msgid "Azerbaijani" +msgstr "Azerbaixhanase" + +msgid "Bulgarian" +msgstr "Bulgare" + +msgid "Belarusian" +msgstr "Bjelloruse" + +msgid "Bengali" +msgstr "Bengaleze" + +msgid "Breton" +msgstr "Bretone" + +msgid "Bosnian" +msgstr "Boshnjake" + +msgid "Catalan" +msgstr "Katalane" + +msgid "Central Kurdish (Sorani)" +msgstr "Kurdishte e Qendrës (Sorani)" + +msgid "Czech" +msgstr "Çeke" + +msgid "Welsh" +msgstr "Uellsiane" + +msgid "Danish" +msgstr "Daneze" + +msgid "German" +msgstr "Gjermane" + +msgid "Lower Sorbian" +msgstr "Sorbiane e Poshtme" + +msgid "Greek" +msgstr "Greke" + +msgid "English" +msgstr "Angleze" + +msgid "Australian English" +msgstr "Angleze Australiane" + +msgid "British English" +msgstr "Angleze Britanike" + +msgid "Esperanto" +msgstr "Esperanto" + +msgid "Spanish" +msgstr "Spanjolle" + +msgid "Argentinian Spanish" +msgstr "Spanjolle Argjentinase" + +msgid "Colombian Spanish" +msgstr "Spanjolle Kolumbiane" + +msgid "Mexican Spanish" +msgstr "Spanjolle Meksikane" + +msgid "Nicaraguan Spanish" +msgstr "Spanjolle Nikaraguane" + +msgid "Venezuelan Spanish" +msgstr "Spanjolle Venezuelane" + +msgid "Estonian" +msgstr "Estoneze" + +msgid "Basque" +msgstr "Baske" + +msgid "Persian" +msgstr "Persiane" + +msgid "Finnish" +msgstr "Finlandeze" + +msgid "French" +msgstr "Frënge" + +msgid "Frisian" +msgstr "Frisiane" + +msgid "Irish" +msgstr "Irlandeze" + +msgid "Scottish Gaelic" +msgstr "Skoceze Gaelike" + +msgid "Galician" +msgstr "Galike" + +msgid "Hebrew" +msgstr "Hebraishte" + +msgid "Hindi" +msgstr "Indiane" + +msgid "Croatian" +msgstr "Kroate" + +msgid "Upper Sorbian" +msgstr "Sorbiane e Sipërme" + +msgid "Hungarian" +msgstr "Hungareze" + +msgid "Armenian" +msgstr "Armenisht" + +msgid "Interlingua" +msgstr "Interlingua" + +msgid "Indonesian" +msgstr "Indoneziane" + +msgid "Igbo" +msgstr "Igbo" + +msgid "Ido" +msgstr "Ido" + +msgid "Icelandic" +msgstr "Islandeze" + +msgid "Italian" +msgstr "Italiane" + +msgid "Japanese" +msgstr "Japoneze" + +msgid "Georgian" +msgstr "Gjeorgjiane" + +msgid "Kabyle" +msgstr "Kabilase" + +msgid "Kazakh" +msgstr "Kazake" + +msgid "Khmer" +msgstr "Khmere" + +msgid "Kannada" +msgstr "Kannada" + +msgid "Korean" +msgstr "Koreane" + +msgid "Kyrgyz" +msgstr "Kirgize" + +msgid "Luxembourgish" +msgstr "Luksemburgase" + +msgid "Lithuanian" +msgstr "Lituaneze" + +msgid "Latvian" +msgstr "Letoneze" + +msgid "Macedonian" +msgstr "Maqedone" + +msgid "Malayalam" +msgstr "Malajalame" + +msgid "Mongolian" +msgstr "Mongoliane" + +msgid "Marathi" +msgstr "Marati" + +msgid "Malay" +msgstr "" + +msgid "Burmese" +msgstr "Burmeze" + +msgid "Norwegian Bokmål" +msgstr "Norvegjeze Bokmal" + +msgid "Nepali" +msgstr "Nepaleze" + +msgid "Dutch" +msgstr "Holandeze" + +msgid "Norwegian Nynorsk" +msgstr "Norvegjeze Nynorsk" + +msgid "Ossetic" +msgstr "Osetishte" + +msgid "Punjabi" +msgstr "Panxhabe" + +msgid "Polish" +msgstr "Polake" + +msgid "Portuguese" +msgstr "Portugeze" + +msgid "Brazilian Portuguese" +msgstr "Portugeze Braziliane" + +msgid "Romanian" +msgstr "Rumune" + +msgid "Russian" +msgstr "Ruse" + +msgid "Slovak" +msgstr "Sllovake " + +msgid "Slovenian" +msgstr "Slovene" + +msgid "Albanian" +msgstr "Shqipe" + +msgid "Serbian" +msgstr "Serbe" + +msgid "Serbian Latin" +msgstr "Serbe Latine" + +msgid "Swedish" +msgstr "Suedeze" + +msgid "Swahili" +msgstr "Swahili" + +msgid "Tamil" +msgstr "Tamileze" + +msgid "Telugu" +msgstr "Telugu" + +msgid "Tajik" +msgstr "Taxhike" + +msgid "Thai" +msgstr "Tajlandeze" + +msgid "Turkmen" +msgstr "Turkmene" + +msgid "Turkish" +msgstr "Turke" + +msgid "Tatar" +msgstr "Tatare" + +msgid "Udmurt" +msgstr "Udmurt" + +msgid "Uyghur" +msgstr "Ujgure" + +msgid "Ukrainian" +msgstr "Ukrainase" + +msgid "Urdu" +msgstr "Urdu" + +msgid "Uzbek" +msgstr "Uzbeke" + +msgid "Vietnamese" +msgstr "Vietnameze" + +msgid "Simplified Chinese" +msgstr "Kineze e Thjeshtuar" + +msgid "Traditional Chinese" +msgstr "Kineze Tradicionale" + +msgid "Messages" +msgstr "Mesazhe" + +msgid "Site Maps" +msgstr "Harta Sajti" + +msgid "Static Files" +msgstr "Kartela Statike" + +msgid "Syndication" +msgstr "" + +#. Translators: String used to replace omitted page numbers in elided page +#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10]. +msgid "…" +msgstr "…" + +msgid "That page number is not an integer" +msgstr "Ai numër faqeje s’është numër i plotë" + +msgid "That page number is less than 1" +msgstr "Ai numër faqeje është më i vogël se 1" + +msgid "That page contains no results" +msgstr "Ajo faqe s’përmban përfundime" + +msgid "Enter a valid value." +msgstr "Jepni një vlerë të vlefshme." + +msgid "Enter a valid domain name." +msgstr "Jepni një emër të vlefshëm përkatësie." + +msgid "Enter a valid URL." +msgstr "Jepni një URL të vlefshme." + +msgid "Enter a valid integer." +msgstr "Jepni një numër të plotë të vlefshëm." + +msgid "Enter a valid email address." +msgstr "Jepni një adresë email të vlefshme." + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" +"Jepni një “slug” të vlefshëm, të përbërë nga shkronja, numra, nëvija ose " +"vija në mes." + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" +"Jepni një “slug” të vlefshëm, të përbërë nga shkronja, numra, nënvija ose " +"vija ndarëse Unikod." + +#, python-format +msgid "Enter a valid %(protocol)s address." +msgstr "Jepni një adresë %(protocol)s të vlefshme." + +msgid "IPv4" +msgstr "IPv4" + +msgid "IPv6" +msgstr "IPv6" + +msgid "IPv4 or IPv6" +msgstr "IPv4, ose IPv6" + +msgid "Enter only digits separated by commas." +msgstr "Jepni vetëm shifra të ndara nga presje." + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "Siguroni që kjo vlerë të jetë %(limit_value)s (është %(show_value)s)." + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "Siguroni që kjo vlerë të jetë më e vogël ose baras me %(limit_value)s." + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "Siguroni që kjo vlerë është më e madhe ose baras me %(limit_value)s." + +#, python-format +msgid "Ensure this value is a multiple of step size %(limit_value)s." +msgstr "" +"Garantoni që vlera të jetë një shumëfish i madhësisë së hapit " +"%(limit_value)s." + +#, python-format +msgid "" +"Ensure this value is a multiple of step size %(limit_value)s, starting from " +"%(offset)s, e.g. %(offset)s, %(valid_value1)s, %(valid_value2)s, and so on." +msgstr "" +"Garantoni që kjo vlerë të jetë një shumëfish i madhësisë %(limit_value)s, " +"duke filluar nga %(offset)s, p.sh., %(offset)s, %(valid_value1)s, " +"%(valid_value2)s, e me radhë." + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Sigurohuni që kjo vlerë ka të paktën %(limit_value)d shenjë (ka " +"%(show_value)d)." +msgstr[1] "" +"Sigurohuni që kjo vlerë ka të paktën %(limit_value)d shenja (ka " +"%(show_value)d)." + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Sigurohuni që kjo vlerë ka të shumtën %(limit_value)d shenjë (ka " +"%(show_value)d)." +msgstr[1] "" +"Sigurohuni që kjo vlerë ka të shumtën %(limit_value)d shenja (ka " +"%(show_value)d)." + +msgid "Enter a number." +msgstr "Jepni një numër." + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "Sigurohuni që s’ka më tepër se %(max)s shifër gjithsej." +msgstr[1] "Sigurohuni që s’ka më tepër se %(max)s shifra gjithsej." + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "Sigurohuni që s’ka më shumë se %(max)s vend dhjetor." +msgstr[1] "Sigurohuni që s’ka më shumë se %(max)s vende dhjetore." + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "" +"Sigurohuni që s’ka më tepër se %(max)s shifër para presjes dhjetore." +msgstr[1] "" +"Sigurohuni që s’ka më tepër se %(max)s shifra para presjes dhjetore." + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" +"Zgjatimi “%(extension)s” për kartela nuk lejohet. Zgjatime të lejuara janë: " +"%(allowed_extensions)s." + +msgid "Null characters are not allowed." +msgstr "Nuk lejohen shenja null." + +msgid "and" +msgstr "dhe " + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "Ka tashmë %(model_name)s me këtë %(field_labels)s." + +#, python-format +msgid "Constraint “%(name)s” is violated." +msgstr "Është cenuar kufizimi “%(name)s”." + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "Vlera %(value)r s’është zgjedhje e vlefshme." + +msgid "This field cannot be null." +msgstr "Kjo fushë s’mund të përmbajë shenja null." + +msgid "This field cannot be blank." +msgstr "Kjo fushë s’mund të jetë e paplotësuar." + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "Ka tashmë një %(model_name)s me këtë %(field_label)s." + +#. Translators: The 'lookup_type' is one of 'date', 'year' or +#. 'month'. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" +"%(field_label)s duhet të jetë unike për %(date_field_label)s %(lookup_type)s." + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "Fushë e llojit: %(field_type)s" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "Vlera “%(value)s” duhet të jetë ose True, ose False." + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "Vlera për “%(value)s” duhet të jetë ose True, ose False, ose None." + +msgid "Boolean (Either True or False)" +msgstr "Buleane (Ose True, ose False)" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "Varg (deri në %(max_length)s)" + +msgid "String (unlimited)" +msgstr "Varg (i pakufizuar)" + +msgid "Comma-separated integers" +msgstr "Numra të plotë të ndarë me presje" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" +"Vlera “%(value)s” ka një format të pavlefshëm datash. Duhet të jetë në " +"formatin YYYY-MM-DD." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" +"Vlera “%(value)s” ka formatin e saktë (YYYY-MM-DD), por është datë e " +"pavlefshme." + +msgid "Date (without time)" +msgstr "Datë (pa kohë)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" +"Vlera “'%(value)s” ka një format të pavlefshëm. Duhet të jetë në formatin " +"YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ]." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" +"Vlera “%(value)s” ka format të saktë (YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ]), " +"por është datë/kohë e pavlefshme." + +msgid "Date (with time)" +msgstr "Datë (me kohë)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "Vlera “%(value)s” duhet të jetë një numër dhjetor." + +msgid "Decimal number" +msgstr "Numër dhjetor" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" +"Vlera “%(value)s” ka format të pavlefshëm. Duhet të jetë në formatin [DD] " +"[HH:[MM:]]ss[.uuuuuu]." + +msgid "Duration" +msgstr "Kohëzgjatje" + +msgid "Email address" +msgstr "Adresë email" + +msgid "File path" +msgstr "Shteg kartele" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "" + +msgid "Floating point number" +msgstr "" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "Vlera “%(value)s” duhet të jetë numër i plotë." + +msgid "Integer" +msgstr "Numër i plotë" + +msgid "Big (8 byte) integer" +msgstr "Numër i plotë i madh (8 bajte)" + +msgid "Small integer" +msgstr "Numër i plotë i vogël" + +msgid "IPv4 address" +msgstr "Adresë IPv4" + +msgid "IP address" +msgstr "Adresë IP" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "Vlera “%(value)s” duhet të jetë ose None, ose True, ose False." + +msgid "Boolean (Either True, False or None)" +msgstr "Buleane (Ose True, ose False, ose None)" + +msgid "Positive big integer" +msgstr "Numër i plotë pozitiv i madh" + +msgid "Positive integer" +msgstr "Numër i plotë pozitiv" + +msgid "Positive small integer" +msgstr "Numër i plotë pozitiv i vogël" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "Identifikues (deri në %(max_length)s)" + +msgid "Text" +msgstr "Tekst" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" +"Vlera “%(value)s” ka format të pavlefshëm. Duhet të jetë në formatin HH:MM[:" +"ss[.uuuuuu]]." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" +"Vlera “%(value)s” ka formatin e saktë (HH:MM[:ss[.uuuuuu]]) por është kohë e " +"pavlefshme." + +msgid "Time" +msgstr "Kohë" + +msgid "URL" +msgstr "URL" + +msgid "Raw binary data" +msgstr "Të dhëna dyore të papërpunuara" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "“%(value)s” s’është UUID i vlefshëm." + +msgid "Universally unique identifier" +msgstr "Identifikues universalisht unik" + +msgid "File" +msgstr "Kartelë" + +msgid "Image" +msgstr "Figurë" + +msgid "A JSON object" +msgstr "Objekt JSON" + +msgid "Value must be valid JSON." +msgstr "Vlera duhet të jetë JSON i vlefshëm." + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "Instanca %(model)s me %(field)s %(value)r s’ekziston." + +msgid "Foreign Key (type determined by related field)" +msgstr "Kyç i Jashtëm (lloj i përcaktuar nga fusha përkatëse)" + +msgid "One-to-one relationship" +msgstr "Marrëdhënie një-për-një" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "Marrëdhënie %(from)s-%(to)s" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "Marrëdhënie %(from)s-%(to)s" + +msgid "Many-to-many relationship" +msgstr "Marrëdhënie shumë-për-shumë" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr ":?.!" + +msgid "This field is required." +msgstr "Kjo fushë është e domosdoshme." + +msgid "Enter a whole number." +msgstr "Jepni një numër të tërë." + +msgid "Enter a valid date." +msgstr "Jepni një datë të vlefshme." + +msgid "Enter a valid time." +msgstr "Jepni një kohë të vlefshme." + +msgid "Enter a valid date/time." +msgstr "Jepni një datë/kohë të vlefshme." + +msgid "Enter a valid duration." +msgstr "Jepni një kohëzgjatje të vlefshme." + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "Numri i ditëve duhet të jetë mes {min_days} dhe {max_days}." + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "" +"S’u parashtrua ndonjë kartelë. Kontrolloni llojin e kodimit te formulari." + +msgid "No file was submitted." +msgstr "S’u parashtrua kartelë." + +msgid "The submitted file is empty." +msgstr "Kartela e parashtruar është e zbrazët." + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" +"Sigurohuni që ky emër kartele ka të shumtën %(max)d shenjë (it has " +"%(length)d)." +msgstr[1] "" +"Sigurohuni që ky emër kartele ka të shumtën %(max)d shenja (it has " +"%(length)d)." + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "" +"Ju lutemi, ose parashtroni një kartelë, ose i vini shenjë kutizës për " +"spastrim, jo që të dyja." + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" +"Ngarkoni një figurë të vlefshme. Kartela që ngarkuat ose nuk qe figurë, ose " +"qe figurë e dëmtuar." + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "" +"Përzgjidhni një zgjedhje të vlefshme. %(value)s s’është një nga zgjedhjet e " +"mundshme." + +msgid "Enter a list of values." +msgstr "Jepni një listë vlerash." + +msgid "Enter a complete value." +msgstr "Jepni një vlerë të plotë." + +msgid "Enter a valid UUID." +msgstr "Jepni një UUID të vlefshëm." + +msgid "Enter a valid JSON." +msgstr "Jepni një JSON të vlefshëm." + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr ":" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "(Fushë e fshehur %(name)s) %(error)s" + +#, python-format +msgid "" +"ManagementForm data is missing or has been tampered with. Missing fields: " +"%(field_names)s. You may need to file a bug report if the issue persists." +msgstr "" +"Mungojnë të dhëna ManagementForm, ose në to janë futur hundët. Fusha që " +"mungojnë: %(field_names)s. Nëse problemi vazhdon, mund të duhet të " +"parashtroni një raport të mete." + +#, python-format +msgid "Please submit at most %(num)d form." +msgid_plural "Please submit at most %(num)d forms." +msgstr[0] "Ju lutemi, parashtroni e shumta %(num)d formular." +msgstr[1] "Ju lutemi, parashtroni e shumta %(num)d formularë." + +#, python-format +msgid "Please submit at least %(num)d form." +msgid_plural "Please submit at least %(num)d forms." +msgstr[0] "Ju lutemi, parashtroni të paktën %(num)d formular." +msgstr[1] "Ju lutemi, parashtroni të paktën %(num)d formularë." + +msgid "Order" +msgstr "Renditi" + +msgid "Delete" +msgstr "Fshije" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "Ju lutemi, ndreqni të dhënat e përsëdytura për %(field)s." + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "" +"Ju lutemi, ndreqni të dhënat e përsëdytura për %(field)s, të cilat duhet të " +"jenë unike." + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"Ju lutemi, ndreqni të dhënat e përsëdytura për %(field_name)s të cilat duhet " +"të jenë unike për %(lookup)s te %(date_field)s." + +msgid "Please correct the duplicate values below." +msgstr "Ju lutemi, ndreqni më poshtë vlerat e përsëdytura." + +msgid "The inline value did not match the parent instance." +msgstr "Vlera e brendshme s’u përputh me instancën prind." + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "" +"Përzgjidhni një zgjedhje të vlefshme. Ajo zgjedhje nuk është një nga " +"zgjedhjet e mundshme." + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "“%(pk)s” s’është vlerë e vlefshme." + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" +"%(datetime)s s’u interpretua dot brenda zonës kohore %(current_timezone)s; " +"mund të jetë e dykuptimtë, ose mund të mos ekzistojë." + +msgid "Clear" +msgstr "Spastroje" + +msgid "Currently" +msgstr "Tani" + +msgid "Change" +msgstr "Ndryshoje" + +msgid "Unknown" +msgstr "E panjohur" + +msgid "Yes" +msgstr "Po" + +msgid "No" +msgstr "Jo" + +#. Translators: Please do not add spaces around commas. +msgid "yes,no,maybe" +msgstr "po,jo,ndoshta" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)d bajt" +msgstr[1] "%(size)d bajte" + +#, python-format +msgid "%s KB" +msgstr "%s KB" + +#, python-format +msgid "%s MB" +msgstr "%s MB" + +#, python-format +msgid "%s GB" +msgstr "%s GB" + +#, python-format +msgid "%s TB" +msgstr "%s TB" + +#, python-format +msgid "%s PB" +msgstr "%s PB" + +msgid "p.m." +msgstr "p.m." + +msgid "a.m." +msgstr "a.m." + +msgid "PM" +msgstr "PM" + +msgid "AM" +msgstr "AM" + +msgid "midnight" +msgstr "mesnatë" + +msgid "noon" +msgstr "mesditë" + +msgid "Monday" +msgstr "E hënë" + +msgid "Tuesday" +msgstr "E martë" + +msgid "Wednesday" +msgstr "E mërkurë" + +msgid "Thursday" +msgstr "E enjte" + +msgid "Friday" +msgstr "E premte" + +msgid "Saturday" +msgstr "E shtunë" + +msgid "Sunday" +msgstr "E dielë" + +msgid "Mon" +msgstr "Hën" + +msgid "Tue" +msgstr "Mar" + +msgid "Wed" +msgstr "Mër" + +msgid "Thu" +msgstr "Enj" + +msgid "Fri" +msgstr "Pre" + +msgid "Sat" +msgstr "Sht" + +msgid "Sun" +msgstr "Die" + +msgid "January" +msgstr "Janar" + +msgid "February" +msgstr "Shkurt" + +msgid "March" +msgstr "Mars" + +msgid "April" +msgstr "Prill" + +msgid "May" +msgstr "Maj" + +msgid "June" +msgstr "Qershor" + +msgid "July" +msgstr "Korrik" + +msgid "August" +msgstr "Gusht" + +msgid "September" +msgstr "Shtator" + +msgid "October" +msgstr "Tetor" + +msgid "November" +msgstr "Nëntor" + +msgid "December" +msgstr "Dhjetor" + +msgid "jan" +msgstr "jan" + +msgid "feb" +msgstr "shk" + +msgid "mar" +msgstr "mar" + +msgid "apr" +msgstr "pri" + +msgid "may" +msgstr "maj" + +msgid "jun" +msgstr "qer" + +msgid "jul" +msgstr "kor" + +msgid "aug" +msgstr "gus" + +msgid "sep" +msgstr "sht" + +msgid "oct" +msgstr "tet" + +msgid "nov" +msgstr "nën" + +msgid "dec" +msgstr "dhj" + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "Jan." + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "Shk." + +msgctxt "abbrev. month" +msgid "March" +msgstr "Mars" + +msgctxt "abbrev. month" +msgid "April" +msgstr "Prill" + +msgctxt "abbrev. month" +msgid "May" +msgstr "Maj" + +msgctxt "abbrev. month" +msgid "June" +msgstr "Qershor" + +msgctxt "abbrev. month" +msgid "July" +msgstr "Korrik" + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "Gus." + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "Shta." + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "Tet." + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "Nën." + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "Dhj." + +msgctxt "alt. month" +msgid "January" +msgstr "Janar" + +msgctxt "alt. month" +msgid "February" +msgstr "Shkurt" + +msgctxt "alt. month" +msgid "March" +msgstr "Mars" + +msgctxt "alt. month" +msgid "April" +msgstr "Prill" + +msgctxt "alt. month" +msgid "May" +msgstr "Maj" + +msgctxt "alt. month" +msgid "June" +msgstr "Qershor" + +msgctxt "alt. month" +msgid "July" +msgstr "Korrik" + +msgctxt "alt. month" +msgid "August" +msgstr "Gusht" + +msgctxt "alt. month" +msgid "September" +msgstr "Shtator" + +msgctxt "alt. month" +msgid "October" +msgstr "Tetor" + +msgctxt "alt. month" +msgid "November" +msgstr "Nëntor" + +msgctxt "alt. month" +msgid "December" +msgstr "Dhjetor" + +msgid "This is not a valid IPv6 address." +msgstr "Kjo s’është adresë IPv6 e vlefshme." + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "%(truncated_text)s…" + +msgid "or" +msgstr "ose" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr ", " + +#, python-format +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "%(num)d vit" +msgstr[1] "%(num)d vjet" + +#, python-format +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "%(num)d muaj" +msgstr[1] "%(num)d muaj" + +#, python-format +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "%(num)d javë" +msgstr[1] "%(num)d javë" + +#, python-format +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "%(num)d ditë" +msgstr[1] "%(num)d ditë" + +#, python-format +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "%(num)d orë" +msgstr[1] "%(num)d orë" + +#, python-format +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "%(num)d minutë" +msgstr[1] "%(num)d minuta" + +msgid "Forbidden" +msgstr "E ndaluar" + +msgid "CSRF verification failed. Request aborted." +msgstr "Verifikimi CSRF dështoi. Kërkesa u ndërpre." + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" +"Këtë mesazh po e shihni ngaqë ky sajt HTTPS e ka të domosdoshme dërgimin e " +"“Referer header” te shfletuesi juaj, por s’u dërgua ndonjë i tillë. Kjo krye " +"është e domosdoshme për arsye sigurie, për të bërë të mundur që shfletuesi " +"juaj të mos komprometohet nga palë të treta." + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" +"Nëse e keni formësuar shfletuesin tuaj të çaktivizojë kryet “Referer”, ju " +"lutemi, riaktivizojini, ose për lidhje HTTPS, ose për kërkesa “same-origin”." + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" +"Nëse përdorni etiketën " +"etiketën ose përfshini kryet “Referrer-Policy: no-referrer”, ju lutemi, " +"hiqini. Mbrojtja CSRF lyp që kryet “Referer” të kryejnë kontroll strikt " +"referuesi. Nëse shqetësoheni për privatësinë, për lidhje te sajte palësh të " +"treta përdorni alternativa si ." + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" +"Këtë mesazh po e shihni ngaqë ky sajt lyp një cookie CSRF, kur parashtrohen " +"formularë. Kjo cookie është e domosdoshme për arsye sigurie, për të bërë të " +"mundur që shfletuesi juaj të mos komprometohet nga palë të treta." + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" +"Nëse e keni formësuar shfletuesin tuaj të çaktivizojë cookie-t, ju lutemi, " +"riaktivizojini, të paktën për këtë sajt, ose për kërkesa “same-origin”." + +msgid "More information is available with DEBUG=True." +msgstr "Më tepër të dhëna mund të gjeni me DEBUG=True." + +msgid "No year specified" +msgstr "Nuk është caktuar vit" + +msgid "Date out of range" +msgstr "Datë jashtë intervali" + +msgid "No month specified" +msgstr "Nuk është caktuar muaj" + +msgid "No day specified" +msgstr "Nuk është caktuar ditë" + +msgid "No week specified" +msgstr "Nuk është caktuar javë" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "Nuk ka %(verbose_name_plural)s të përcaktuar" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" +"%(verbose_name_plural)s i ardhshëm jo i passhëm, ngaqë %(class_name)s." +"allow_future është False." + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "" +"U dha varg i pavlefshëm date “%(datestr)s” formati i dhënë “%(format)s”" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "S’u gjetën %(verbose_name)s me përputhje" + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "Faqja nuk është “last”, as mund të shndërrohet në një int." + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "Faqe e pavlefshme (%(page_number)s): %(message)s" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "Listë e zbrazët dhe “%(class_name)s.allow_empty” është False." + +msgid "Directory indexes are not allowed here." +msgstr "Këtu s’lejohen tregues drejtorish." + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "“%(path)s” s’ekziston" + +#, python-format +msgid "Index of %(directory)s" +msgstr "Tregues i %(directory)s" + +msgid "The install worked successfully! Congratulations!" +msgstr "Instalimi funksionoi me sukses! Përgëzime!" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" +"Shihni shënimet për hedhjen në qarkullim të " +"Django %(version)s" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not " +"configured any URLs." +msgstr "" +"Po e shihni këtë faqe ngaqë te kartela juaj e rregullimeve gjendet DEBUG=True dhe s’keni formësuar " +"ndonjë URL." + +msgid "Django Documentation" +msgstr "Dokumentim i Django-s" + +msgid "Topics, references, & how-to’s" +msgstr "Tema, referenca, & how-to" + +msgid "Tutorial: A Polling App" +msgstr "Përkujdesore: Një Aplikacion Për Sondazhe" + +msgid "Get started with Django" +msgstr "Si t’ia filloni me Django-n" + +msgid "Django Community" +msgstr "Bashkësia Django" + +msgid "Connect, get help, or contribute" +msgstr "Lidhuni, merrni ndihmë, ose jepni ndihmesë" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/sq/__init__.py b/venv/lib/python3.12/site-packages/django/conf/locale/sq/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/sq/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/sq/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c56429c44d30f5112ede72c410b6ccdf6a9d4c78 GIT binary patch literal 198 zcmX@j%ge<81o5sX(m?cM5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!O4ZNE&rQ|OP0Yy6 zFHO;RNiEZNN=(kybEFQ_cZ$j>v@Gc?jK&MZmQEdVM^ zOiwM=Pssu+OwP|s)6dCIPRvQwFD}%NkI&4@EQycTE2#X%VUwGmQks)$SHudml@W-G PL5z>gjEsy$%s>_Z$X+y$ literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/sq/__pycache__/formats.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/sq/__pycache__/formats.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..30c9295454a478457b88db537c685fd72f2b11d5 GIT binary patch literal 424 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 ZsLio@KGP;aQH>2%4, 2018-2019 +# Igor Jerosimić, 2019-2021,2023-2024 +# Jannis Leidel , 2011 +# Janos Guljas , 2011-2012 +# Mariusz Felisiak , 2021 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-05-22 11:46-0300\n" +"PO-Revision-Date: 2024-08-07 06:49+0000\n" +"Last-Translator: Igor Jerosimić, 2019-2021,2023-2024\n" +"Language-Team: Serbian (http://app.transifex.com/django/django/language/" +"sr/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: sr\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +msgid "Afrikaans" +msgstr "африкански" + +msgid "Arabic" +msgstr "арапски" + +msgid "Algerian Arabic" +msgstr "Алжирски арапски" + +msgid "Asturian" +msgstr "астуријски" + +msgid "Azerbaijani" +msgstr "азербејџански" + +msgid "Bulgarian" +msgstr "бугарски" + +msgid "Belarusian" +msgstr "белоруски" + +msgid "Bengali" +msgstr "бенгалски" + +msgid "Breton" +msgstr "бретонски" + +msgid "Bosnian" +msgstr "босански" + +msgid "Catalan" +msgstr "каталонски" + +msgid "Central Kurdish (Sorani)" +msgstr "централнокурдски (сорани)" + +msgid "Czech" +msgstr "чешки" + +msgid "Welsh" +msgstr "велшки" + +msgid "Danish" +msgstr "дански" + +msgid "German" +msgstr "немачки" + +msgid "Lower Sorbian" +msgstr "доњолужичкосрпски" + +msgid "Greek" +msgstr "грчки" + +msgid "English" +msgstr "енглески" + +msgid "Australian English" +msgstr "аустралијски енглески" + +msgid "British English" +msgstr "британски енглески" + +msgid "Esperanto" +msgstr "есперанто" + +msgid "Spanish" +msgstr "шпански" + +msgid "Argentinian Spanish" +msgstr "аргентински шпански" + +msgid "Colombian Spanish" +msgstr "колумбијски шпански" + +msgid "Mexican Spanish" +msgstr "мексички шпански" + +msgid "Nicaraguan Spanish" +msgstr "никарагвански шпански" + +msgid "Venezuelan Spanish" +msgstr "венецуелански шпански" + +msgid "Estonian" +msgstr "естонски" + +msgid "Basque" +msgstr "баскијски" + +msgid "Persian" +msgstr "персијски" + +msgid "Finnish" +msgstr "фински" + +msgid "French" +msgstr "француски" + +msgid "Frisian" +msgstr "фризијски" + +msgid "Irish" +msgstr "ирски" + +msgid "Scottish Gaelic" +msgstr "шкотски гелски" + +msgid "Galician" +msgstr "галицијски" + +msgid "Hebrew" +msgstr "хебрејски" + +msgid "Hindi" +msgstr "хинду" + +msgid "Croatian" +msgstr "хрватски" + +msgid "Upper Sorbian" +msgstr "горњолужичкосрпски" + +msgid "Hungarian" +msgstr "мађарски" + +msgid "Armenian" +msgstr "јерменски" + +msgid "Interlingua" +msgstr "интерлингва" + +msgid "Indonesian" +msgstr "индонежански" + +msgid "Igbo" +msgstr "Игбо" + +msgid "Ido" +msgstr "идо" + +msgid "Icelandic" +msgstr "исландски" + +msgid "Italian" +msgstr "италијански" + +msgid "Japanese" +msgstr "јапански" + +msgid "Georgian" +msgstr "грузијски" + +msgid "Kabyle" +msgstr "кабилски" + +msgid "Kazakh" +msgstr "казашки" + +msgid "Khmer" +msgstr "кмерски" + +msgid "Kannada" +msgstr "канада" + +msgid "Korean" +msgstr "корејски" + +msgid "Kyrgyz" +msgstr "Киргиски" + +msgid "Luxembourgish" +msgstr "луксембуршки" + +msgid "Lithuanian" +msgstr "литвански" + +msgid "Latvian" +msgstr "латвијски" + +msgid "Macedonian" +msgstr "македонски" + +msgid "Malayalam" +msgstr "малајаламски" + +msgid "Mongolian" +msgstr "монголски" + +msgid "Marathi" +msgstr "маратхи" + +msgid "Malay" +msgstr "малајски" + +msgid "Burmese" +msgstr "бурмански" + +msgid "Norwegian Bokmål" +msgstr "норвешки књижевни" + +msgid "Nepali" +msgstr "непалски" + +msgid "Dutch" +msgstr "холандски" + +msgid "Norwegian Nynorsk" +msgstr "норвешки нови" + +msgid "Ossetic" +msgstr "осетински" + +msgid "Punjabi" +msgstr "панџаби" + +msgid "Polish" +msgstr "пољски" + +msgid "Portuguese" +msgstr "португалски" + +msgid "Brazilian Portuguese" +msgstr "бразилски португалски" + +msgid "Romanian" +msgstr "румунски" + +msgid "Russian" +msgstr "руски" + +msgid "Slovak" +msgstr "словачки" + +msgid "Slovenian" +msgstr "словеначки" + +msgid "Albanian" +msgstr "албански" + +msgid "Serbian" +msgstr "српски" + +msgid "Serbian Latin" +msgstr "српски (латиница)" + +msgid "Swedish" +msgstr "шведски" + +msgid "Swahili" +msgstr "свахили" + +msgid "Tamil" +msgstr "тамилски" + +msgid "Telugu" +msgstr "телугу" + +msgid "Tajik" +msgstr "Таџики" + +msgid "Thai" +msgstr "тајландски" + +msgid "Turkmen" +msgstr "Туркменски" + +msgid "Turkish" +msgstr "турски" + +msgid "Tatar" +msgstr "татарски" + +msgid "Udmurt" +msgstr "удмуртски" + +msgid "Uyghur" +msgstr "Ујгури" + +msgid "Ukrainian" +msgstr "украјински" + +msgid "Urdu" +msgstr "урду" + +msgid "Uzbek" +msgstr "Узбекистански" + +msgid "Vietnamese" +msgstr "вијетнамски" + +msgid "Simplified Chinese" +msgstr "поједностављени кинески" + +msgid "Traditional Chinese" +msgstr "традиционални кинески" + +msgid "Messages" +msgstr "Poruke" + +msgid "Site Maps" +msgstr "Мапе сајта" + +msgid "Static Files" +msgstr "Статички фајлови" + +msgid "Syndication" +msgstr "Удруживање садржаја" + +#. Translators: String used to replace omitted page numbers in elided page +#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10]. +msgid "…" +msgstr "…" + +msgid "That page number is not an integer" +msgstr "Задати број стране није цео број" + +msgid "That page number is less than 1" +msgstr "Задати број стране је мањи од 1" + +msgid "That page contains no results" +msgstr "Тражена страна не садржи резултате" + +msgid "Enter a valid value." +msgstr "Унесите исправну вредност." + +msgid "Enter a valid domain name." +msgstr "Унесите исправно име домена." + +msgid "Enter a valid URL." +msgstr "Унесите исправан URL." + +msgid "Enter a valid integer." +msgstr "Унесите исправан цео број." + +msgid "Enter a valid email address." +msgstr "Унесите исправну и-мејл адресу." + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" +"Унесите исрпаван „слаг“, који се састоји од слова, бројки, доњих црта или " +"циртица." + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" +"Унесите исправан \"слаг\", који се састоји од Уникод слова, бројки, доњих " +"црта или цртица." + +#, python-format +msgid "Enter a valid %(protocol)s address." +msgstr "Унесите исправну адресу %(protocol)s." + +msgid "IPv4" +msgstr "IPv4" + +msgid "IPv6" +msgstr "IPv6" + +msgid "IPv4 or IPv6" +msgstr "IPv4 или IPv6" + +msgid "Enter only digits separated by commas." +msgstr "Унесите само цифре раздвојене запетама." + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "Ово поље мора да буде %(limit_value)s (тренутно има %(show_value)s)." + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "Ова вредност мора да буде мања од %(limit_value)s. или тачно толико." + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "Ова вредност мора бити већа од %(limit_value)s или тачно толико." + +#, python-format +msgid "Ensure this value is a multiple of step size %(limit_value)s." +msgstr "Ова вредност мора да умножак величине корака %(limit_value)s." + +#, python-format +msgid "" +"Ensure this value is a multiple of step size %(limit_value)s, starting from " +"%(offset)s, e.g. %(offset)s, %(valid_value1)s, %(valid_value2)s, and so on." +msgstr "" +"Уверите се да је ова вредност вишекратник величине корака %(limit_value)s, " +"почевши од %(offset)s, нпр. %(offset)s, %(valid_value1)s, %(valid_value2)s, " +"и тако даље." + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Ово поље мора да има најмање %(limit_value)d карактер (тренутно има " +"%(show_value)d)." +msgstr[1] "" +"Ово поље мора да има најмање %(limit_value)d карактера (тренутно има " +"%(show_value)d)." +msgstr[2] "" +"Ово поље мора да има најмање %(limit_value)d карактера (тренутно има " +"%(show_value)d)." + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Ово поље не сме да има више од %(limit_value)d карактера (тренутно има " +"%(show_value)d)." +msgstr[1] "" +"Ово поље не сме да има више од %(limit_value)d карактера (тренутно има " +"%(show_value)d)." +msgstr[2] "" +"Ово поље не сме да има више од %(limit_value)d карактера (тренутно има " +"%(show_value)d)." + +msgid "Enter a number." +msgstr "Унесите број." + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "Укупно не може бити више од %(max)s цифре." +msgstr[1] "Укупно не може бити више од %(max)s цифре." +msgstr[2] "Укупно не може бити више од %(max)s цифара." + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "Не може бити више од %(max)s децимале." +msgstr[1] "Не може бити више од %(max)s децимале." +msgstr[2] "Не може бити више од %(max)s децимала." + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "Не може бити више од %(max)s цифре пре децималног зареза." +msgstr[1] "Не може бити више од %(max)s цифре пре децималног зареза." +msgstr[2] "Не може бити више од %(max)s цифара пре децималног зареза." + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" +"Екстензија датотеке \"%(extension)s\" није дозвољена. Дозвољене су следеће " +"екстензије: %(allowed_extensions)s." + +msgid "Null characters are not allowed." +msgstr "'Null' карактери нису дозвољени." + +msgid "and" +msgstr "и" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "%(model_name)s са пољем %(field_labels)s већ постоји." + +#, python-format +msgid "Constraint “%(name)s” is violated." +msgstr "Ограничење „%(name)s“ је прекршено." + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "Вредност %(value)r није валидна." + +msgid "This field cannot be null." +msgstr "Ово поље не може бити 'null'." + +msgid "This field cannot be blank." +msgstr "Ово поље не може да остане празно." + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "%(model_name)s са пољем %(field_label)s већ постоји." + +#. Translators: The 'lookup_type' is one of 'date', 'year' or +#. 'month'. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" +"%(field_label)s мора бити јединствен(a) за %(date_field_label)s " +"%(lookup_type)s." + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "Поље типа: %(field_type)s" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "Вредност \"%(value)s\" мора бити True или False." + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "\"%(value)s\" вредност мора бити True, False или None." + +msgid "Boolean (Either True or False)" +msgstr "Булова вредност (True или False)" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "Стринг са макс. дужином %(max_length)s" + +msgid "String (unlimited)" +msgstr "Стринг (неограниченo)" + +msgid "Comma-separated integers" +msgstr "Цели бројеви раздвојени запетама" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" +"Вредност \"%(value)s\" нема исправан формат датума. Мора бити у формату ГГГГ-" +"ММ-ДД." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" +"Вредност \"%(value)s\" има исправан формат (ГГГГ-ММ-ДД) али то није исправан " +"датум." + +msgid "Date (without time)" +msgstr "Датум (без времена)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" +"Вредност \"%(value)s\" нема исправан формат. Мора бити у формату ГГГГ-ММ-ДД " +"ЧЧ:ММ[:сс[.uuuuuu]][TZ] ." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" +"Вредност \"%(value)s\" има исправан формат (ГГГГ-ММ-ДД ЧЧ:ММ[:сс[.uuuuuu]]" +"[TZ]) али то није исправан датум/време." + +msgid "Date (with time)" +msgstr "Датум (са временом)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "Вредност \"%(value)s\" мора бити децимални број." + +msgid "Decimal number" +msgstr "Децимални број" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" +"Вредност \"%(value)s\" нема исправан формат. Мора бити у формату [ДД] [ЧЧ:" +"[ММ:]]сс[.uuuuuu]." + +msgid "Duration" +msgstr "Временски интервал" + +msgid "Email address" +msgstr "Имејл адреса" + +msgid "File path" +msgstr "Путања фајла" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "Вредност \"%(value)s\" мора бити број са покретним зарезом." + +msgid "Floating point number" +msgstr "Број са покретним зарезом" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "Вредност \"%(value)s\" мора бити цео број." + +msgid "Integer" +msgstr "Цео број" + +msgid "Big (8 byte) integer" +msgstr "Велики (8 бајтова) цео број" + +msgid "Small integer" +msgstr "Мали цео број" + +msgid "IPv4 address" +msgstr "IPv4 адреса" + +msgid "IP address" +msgstr "IP адреса" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "Вредност \"%(value)s\" мора бити None, True или False." + +msgid "Boolean (Either True, False or None)" +msgstr "Булова вредност (True, False или None)" + +msgid "Positive big integer" +msgstr "Велик позитиван цео број" + +msgid "Positive integer" +msgstr "Позитиван цео број" + +msgid "Positive small integer" +msgstr "Позитиван мали цео број" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "Слаг са макс. дужином %(max_length)s" + +msgid "Text" +msgstr "Текст" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" +"Вредност \"%(value)s\" нема исправан формат. Мора бити у формату ЧЧ:ММ[:сс[." +"uuuuuu]] ." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" +"Вредност \"%(value)s\" има исправан формат (ЧЧ:ММ[:сс[.uuuuuu]]) али то није " +"исправно време." + +msgid "Time" +msgstr "Време" + +msgid "URL" +msgstr "URL" + +msgid "Raw binary data" +msgstr "Сирови бинарни подаци" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "\"%(value)s\" није исправан UUID." + +msgid "Universally unique identifier" +msgstr "Универзално јединствени идентификатор" + +msgid "File" +msgstr "Фајл" + +msgid "Image" +msgstr "Слика" + +msgid "A JSON object" +msgstr "JSON објекат" + +msgid "Value must be valid JSON." +msgstr "Вредност мора бити исправан JSON." + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "%(model)s инстанца са вредношћу %(value)r у пољу %(field)s не постоји." + +msgid "Foreign Key (type determined by related field)" +msgstr "Спољни кључ (тип је одређен асоцираном колоном)" + +msgid "One-to-one relationship" +msgstr "Релација један на један" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "Релација %(from)s-%(to)s" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "Релације %(from)s-%(to)s" + +msgid "Many-to-many relationship" +msgstr "Релација више на више" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr ":?.!" + +msgid "This field is required." +msgstr "Ово поље се мора попунити." + +msgid "Enter a whole number." +msgstr "Унесите цео број." + +msgid "Enter a valid date." +msgstr "Унесите исправан датум." + +msgid "Enter a valid time." +msgstr "Унесите исправно време" + +msgid "Enter a valid date/time." +msgstr "Унесите исправан датум/време." + +msgid "Enter a valid duration." +msgstr "Унесите исправан временски интервал." + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "Број дана мора бити између {min_days} и {max_days}." + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "Фајл није пребачен. Проверите тип енкодирања на форми." + +msgid "No file was submitted." +msgstr "Фајл није пребачен." + +msgid "The submitted file is empty." +msgstr "Пребачени фајл је празан." + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" +"Име фајла не може имати више од %(max)d карактера (тренутно има %(length)d)." +msgstr[1] "" +"Име фајла не може имати више од %(max)d карактера (тренутно има %(length)d)." +msgstr[2] "" +"Име фајла не може имати више од %(max)d карактера (тренутно има %(length)d)." + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "Може се само послати фајл или избрисати, не оба." + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" +"Пребаците исправан фајл. Фајл који је пребачен или није слика, или је " +"оштећен." + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "" +"%(value)s није међу понуђеним вредностима. Одаберите једну од понуђених." + +msgid "Enter a list of values." +msgstr "Унесите листу вредности." + +msgid "Enter a complete value." +msgstr "Унесите комплетну вредност." + +msgid "Enter a valid UUID." +msgstr "Унесите исправан UUID." + +msgid "Enter a valid JSON." +msgstr "Унесите исправан JSON." + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr ":" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "(Скривено поље %(name)s) %(error)s" + +#, python-format +msgid "" +"ManagementForm data is missing or has been tampered with. Missing fields: " +"%(field_names)s. You may need to file a bug report if the issue persists." +msgstr "" +"Подаци од ManagementForm недостају или су покварени. Поља која недостају: " +"%(field_names)s. Можда ће бити потребно да пријавите грешку ако се проблем " +"настави." + +#, python-format +msgid "Please submit at most %(num)d form." +msgid_plural "Please submit at most %(num)d forms." +msgstr[0] "Молим проследите највише %(num)d форму." +msgstr[1] "Молим проследите највише %(num)d форме." +msgstr[2] "Молим проследите највише %(num)d форми." + +#, python-format +msgid "Please submit at least %(num)d form." +msgid_plural "Please submit at least %(num)d forms." +msgstr[0] "Молим проследите најмање %(num)d форму." +msgstr[1] "Молим проследите најмање %(num)d форме." +msgstr[2] "Молим проследите најмање %(num)d форми." + +msgid "Order" +msgstr "Редослед" + +msgid "Delete" +msgstr "Обриши" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "Исправите вредност за поље %(field)s - оно мора бити јединствено." + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "" +"Исправите вредности за поља %(field)s - њихова комбинација мора бити " +"јединствена." + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"Иправите вредност за поље %(field_name)s, оно мора бити јединствено за " +"%(lookup)s у %(date_field)s." + +msgid "Please correct the duplicate values below." +msgstr "Исправите дуплиране вредности доле." + +msgid "The inline value did not match the parent instance." +msgstr "Директно унета вредност не одговара инстанци родитеља." + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "Одабрана вредност није међу понуђенима. Одаберите једну од понуђених." + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "\"%(pk)s\" није исправна вредност." + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" +"Време %(datetime)s се не може протумачити у временској зони " +"%(current_timezone)s; можда је двосмислено или не постоји." + +msgid "Clear" +msgstr "Очисти" + +msgid "Currently" +msgstr "Тренутно" + +msgid "Change" +msgstr "Измени" + +msgid "Unknown" +msgstr "Непознато" + +msgid "Yes" +msgstr "Да" + +msgid "No" +msgstr "Не" + +#. Translators: Please do not add spaces around commas. +msgid "yes,no,maybe" +msgstr "да,не,можда" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)d бајт" +msgstr[1] "%(size)d бајта" +msgstr[2] "%(size)d бајтова" + +#, python-format +msgid "%s KB" +msgstr "%s KB" + +#, python-format +msgid "%s MB" +msgstr "%s MB" + +#, python-format +msgid "%s GB" +msgstr "%s GB" + +#, python-format +msgid "%s TB" +msgstr "%s TB" + +#, python-format +msgid "%s PB" +msgstr "%s PB" + +msgid "p.m." +msgstr "по п." + +msgid "a.m." +msgstr "пре п." + +msgid "PM" +msgstr "PM" + +msgid "AM" +msgstr "AM" + +msgid "midnight" +msgstr "поноћ" + +msgid "noon" +msgstr "подне" + +msgid "Monday" +msgstr "понедељак" + +msgid "Tuesday" +msgstr "уторак" + +msgid "Wednesday" +msgstr "среда" + +msgid "Thursday" +msgstr "четвртак" + +msgid "Friday" +msgstr "петак" + +msgid "Saturday" +msgstr "субота" + +msgid "Sunday" +msgstr "недеља" + +msgid "Mon" +msgstr "пон." + +msgid "Tue" +msgstr "уто." + +msgid "Wed" +msgstr "сре." + +msgid "Thu" +msgstr "чет." + +msgid "Fri" +msgstr "пет." + +msgid "Sat" +msgstr "суб." + +msgid "Sun" +msgstr "нед." + +msgid "January" +msgstr "јануар" + +msgid "February" +msgstr "фебруар" + +msgid "March" +msgstr "март" + +msgid "April" +msgstr "април" + +msgid "May" +msgstr "мај" + +msgid "June" +msgstr "јун" + +msgid "July" +msgstr "јул" + +msgid "August" +msgstr "август" + +msgid "September" +msgstr "септембар" + +msgid "October" +msgstr "октобар" + +msgid "November" +msgstr "новембар" + +msgid "December" +msgstr "децембар" + +msgid "jan" +msgstr "јан." + +msgid "feb" +msgstr "феб." + +msgid "mar" +msgstr "мар." + +msgid "apr" +msgstr "апр." + +msgid "may" +msgstr "мај." + +msgid "jun" +msgstr "јун." + +msgid "jul" +msgstr "јул." + +msgid "aug" +msgstr "ауг." + +msgid "sep" +msgstr "сеп." + +msgid "oct" +msgstr "окт." + +msgid "nov" +msgstr "нов." + +msgid "dec" +msgstr "дец." + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "Јан." + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "Феб." + +msgctxt "abbrev. month" +msgid "March" +msgstr "Март" + +msgctxt "abbrev. month" +msgid "April" +msgstr "Април" + +msgctxt "abbrev. month" +msgid "May" +msgstr "Мај" + +msgctxt "abbrev. month" +msgid "June" +msgstr "Јун" + +msgctxt "abbrev. month" +msgid "July" +msgstr "Јул" + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "Авг." + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "Септ." + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "Окт." + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "Нов." + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "Дец." + +msgctxt "alt. month" +msgid "January" +msgstr "Јануар" + +msgctxt "alt. month" +msgid "February" +msgstr "Фебруар" + +msgctxt "alt. month" +msgid "March" +msgstr "Март" + +msgctxt "alt. month" +msgid "April" +msgstr "Април" + +msgctxt "alt. month" +msgid "May" +msgstr "Мај" + +msgctxt "alt. month" +msgid "June" +msgstr "Јун" + +msgctxt "alt. month" +msgid "July" +msgstr "Јул" + +msgctxt "alt. month" +msgid "August" +msgstr "Август" + +msgctxt "alt. month" +msgid "September" +msgstr "Септембар" + +msgctxt "alt. month" +msgid "October" +msgstr "Октобар" + +msgctxt "alt. month" +msgid "November" +msgstr "Новембар" + +msgctxt "alt. month" +msgid "December" +msgstr "Децембар" + +msgid "This is not a valid IPv6 address." +msgstr "Ово није валидна IPv6 адреса." + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "%(truncated_text)s…" + +msgid "or" +msgstr "или" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr ", " + +#, python-format +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "%(num)d година" +msgstr[1] "%(num)d године" +msgstr[2] "%(num)d година" + +#, python-format +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "%(num)d месец" +msgstr[1] "%(num)d месеца" +msgstr[2] "%(num)d месеци" + +#, python-format +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "%(num)d недеља" +msgstr[1] "%(num)d недеље" +msgstr[2] "%(num)d недеља" + +#, python-format +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "%(num)d дан" +msgstr[1] "%(num)d дана" +msgstr[2] "%(num)d дана" + +#, python-format +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "%(num)d сат" +msgstr[1] "%(num)d сата" +msgstr[2] "%(num)d сати" + +#, python-format +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "%(num)d минут" +msgstr[1] "%(num)d минута" +msgstr[2] "%(num)d минута" + +msgid "Forbidden" +msgstr "Забрањено" + +msgid "CSRF verification failed. Request aborted." +msgstr "CSRF верификација није прошла. Захтев одбијен." + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" +"Ова порука је приказана јер овај HTTPS сајт захтева да \"Referer header\" " +"буде послат од стране вашег интернет прегледача, што тренутно није случај. " +"Поменуто заглавље је потребно из безбедоносних разлога, да би се осигурало " +"да ваш прегледач није под контролом трећих лица." + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" +"Ако сте подесили интернет прегледач да не шаље \"Referer\" заглавља, поново " +"их укључите, барем за овај сајт, или за HTTPS конекције, или за \"same-" +"origin\" захтеве." + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" +"Ако користите таг или " +"\"Referrer-Policy: no-referrer\" заглавље, молимо да их уклоните. CSRF " +"заштита захтева \"Referer\" заглавље да би се обавила стриктна \"referrer\" " +"провера. Уколико вас брине приватност, користите алтернативе као за линкове ка другим сајтовима." + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" +"Ова порука је приказана јер овај сајт захтева CSRF куки када се прослеђују " +"подаци из форми. Овај куки је потребан из сигурносних разлога, да би се " +"осигурало да ваш претраживач није под контролом трећих лица." + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" +"Ако је ваш интернет прегедач подешен да онемогући колачиће, молимо да их " +"укључите, барем за овај сајт, или за \"same-origin\" захтеве." + +msgid "More information is available with DEBUG=True." +msgstr "Више информација је доступно са DEBUG=True." + +msgid "No year specified" +msgstr "Година није назначена" + +msgid "Date out of range" +msgstr "Датум ван опсега" + +msgid "No month specified" +msgstr "Месец није назначен" + +msgid "No day specified" +msgstr "Дан није назначен" + +msgid "No week specified" +msgstr "Недеља није назначена" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "Недоступни објекти %(verbose_name_plural)s" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" +"Опција „future“ није доступна за „%(verbose_name_plural)s“ јер " +"%(class_name)s.allow_future има вредност False." + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "Неисправан датум „%(datestr)s“ за формат „%(format)s“" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "Ниједан објекат класе %(verbose_name)s није нађен датим упитом." + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "Страница није последња, нити може бити конвертована у тип \"int\"." + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "Неисправна страна (%(page_number)s): %(message)s" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "Празна листа и „%(class_name)s.allow_empty“ има вредност False." + +msgid "Directory indexes are not allowed here." +msgstr "Индекси директоријума нису дозвољени овде." + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "„%(path)s“ не постоји" + +#, python-format +msgid "Index of %(directory)s" +msgstr "Индекс директоријума %(directory)s" + +msgid "The install worked successfully! Congratulations!" +msgstr "Инсталација је прошла успешно. Честитке!" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" +"Погледајте напомене уз издање за Ђанго " +"%(version)s" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not " +"configured any URLs." +msgstr "" +"Ова страна је приказана јер је DEBUG=True у вашим подешавањима и нисте конфигурисали " +"ниједан URL." + +msgid "Django Documentation" +msgstr "Ђанго документација" + +msgid "Topics, references, & how-to’s" +msgstr "Теме, референце, & како-да" + +msgid "Tutorial: A Polling App" +msgstr "Упутство: апликација за гласање" + +msgid "Get started with Django" +msgstr "Почните са Ђангом" + +msgid "Django Community" +msgstr "Ђанго заједница" + +msgid "Connect, get help, or contribute" +msgstr "Повежите се, потражите помоћ или дајте допринос" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/sr/__init__.py b/venv/lib/python3.12/site-packages/django/conf/locale/sr/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/sr/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/sr/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0f387c7117776795b65901b58a38789e7481363e GIT binary patch literal 198 zcmX@j%ge<81o5sX(m?cM5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!O4ZNE&rQ|OP0Yy6 zFHO;RNiEZNN=(kybEFQ_cZ$j>v@Gc?jK&MZmQEdVM^ zOiwM=Pssu+OwP|s)6dCIPRvQwFD}xLkI&4@EQycTE2#X%VUwGmQks)$SHudml@W-G PL5z>gjEsy$%s>_Z$c;3R literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/sr/__pycache__/formats.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/sr/__pycache__/formats.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0bc95ca9e32420282d4addd352a2e97098e7713d GIT binary patch literal 956 zcmZvaJ#X4j6o#*X@Z}JK`6!Jdm7yMx5?{65P*v3_CZHA@8KVd<7U7z&VvK+w;VJzU z-MjT?bgR^b(PHhC4J8{>?kI_d~5C_$ny6%gTqtd$4L5j6y6}~vqCK5Sc7A6*GXrbMPr)5 zI79fZm~q)di`gnNY%#}{b8OX0K4%=;vZ7D$Ry)JaPqi-Q);icqxOUp9U;K{}ee7Ao z<=~i--FFTyy6@mLR@B*w;_kfo(}~&0g3j}bpcN#!%qt68DV4WHlyux6Ru_0#D@&qM zbOgtbRi3XqBvvg-vZA?NlRLC$S18Fo#^L7JlJUKV~Bd|!KOKA z!M@pS^mRBM!In8P8j~?MoUMZI4HMn;^$(*Iekl1}$5;4TdMS!phCwuaOWQ|rd@-+X zqjutC4q|rvyA%xr-OTizg?)w@n0=#Xn&}=85XQRqR^P6^OI@pO_0a7S zl&7eOQ8Ai4kOV}c#u$B|AsEo$%){pbxJ1z?8i;EYgU=}L`Tov1b?@z-o{eWd@4foW z>0g~wXFvb*KmY&#{O>$*Uu3#f6w4?G=w7}WP4f%^V4 zP~{I{Fs47C`sstpcNTaSxX{I~0X457sB*6c)&JLlF9dIL-`@@T#6Jd}0e%(Kczy?} z{)2jKxfg<}=UDIs;EO?xe;%m%R)8wE1w0(Q7F7N^cqZ5aRqi%WbzPVDL(ZMNs>w3hocS5iEjl0hRw5 zQ1kU`Q1$IM$EF_-7Kon)YCSfC`+--w_%)!)mBFjP8mM+3cK8^ma$f^AzHftCuV-EQ z?_B(VxwgGS!C8Di22?+N@Gx+;!-X#WVo?2F393IE!E2vK|G+mA|42UpTukRx&yPX1 z`%_T!`Yfn+j+kfre*$GVx zJ`QSM`~+0FIScK+Ug~hrVbNg=RKH#i`rw~{>i>s9(aC+F#_^a-{|cynJOM5O|HY-B zbhhWMCVo1|5WOlGgSUZafrp*rdCS4`!S&!IxE9<2YW#*x(Unz#>YT<3xs*J@Dx zx(3wzg`oPKx%5|qn&;QM^f!UZcMG@*d=Iz=`~hgz?L1rGVo>Y60z4AD4Al2BsD3qE zJOfW8{>Py5-wLWf?*|V9KLV=!gP`{J7eKQPp!zlEd|TfGn;pKy z;kBUpQ3gfdRfkPb?PMTFoOcV@1KtBN<=$67NWhzQf#sVQf#PSApvLhoQ2g#5@L2E> zkfXx;E~x$<4D;6f9tNu2V?fc{3E)xS#h~&Hff~;h4!1h2fT}kJmG4GS+ot&chxa-B2Zx_@xZUBW9exfJJv;_#UB2ehpK$mjD8BGr_x%Sh{b^A9 zB*N^db$MMOgscH2k!$z@Q7uM4a^*V34A&61;n4}2CBJ@l@C zXM&qRNXVN2&j#-SAqDSy;C^7wO4j>%lmRD*|7?{#zZ75 zfSUJSQ1jUjJ|A2Jitd+y2ZL)t(bHw1+ADzvfe|RWcsY0o_m~ z`@loMPdogg!*784{$0=qe-54j9t%@f`%6L9vj#i_yap6qR^0bVmwp4NdAb>#1wH_3 zKYtojf1U)@?;n8b_cNdm9=HM77(5d^3%m+cyRUQj7EtBh1*)FE0JT5vc6dK%_8q8l z-vYIdz7MM0FTgqA??L68bE$3rB2eSF4Ai*F;9+0`gtWX@fU55k;3W8I@Lq7m05kwT z3;qbaek1KbfAvl9IWQZv=hF?BdEOm-|6d?m#H+F?AZ_oj!PVf?;ECY5LzYf21OJHl z7$|zY4tx=KJE-~psEdCV6d!&P)c*SwsB_>rHqi;-x!@__po=#_)pL`J-w9qx`~mO^ z@YpSuzGASK_-jDT#|J=-|6Wk@_yDN-cYvbXZ-X)T9Z>z=!e-a{l)&S_F>n@m16Tmx z0;=8zK$U+O6g_{=rGF6|C;kmk^$gKD<-ZD4Kg!@yU>(%=*SPO*09DW1UHs1+-U+Im z4}yn+9|6_R2VDARLDl~lC_eIa@KVArsyRK53uYJUef7km^{JHG*61Rem>7hgLGyaYT2)INV1sQPXK)!*B}3&DF_{KugB z_55pXJtu(5w*b`sUJa_9E#Rr(wV>$qdQj!w;J*JQsQ$elR6p(kmxCX3>AwWo!rp#c z?Rsqn6XG|3r-45Q7l0?cj5@(f!PkNR1ggEO1G_FI@Oa`esByg!R6lM5)&9NUG2nxs z`u$~4bn#74^ZgX4dHz0l1o#sWmgW5(Tnla}+IrprD&Os(&V~1aqKm%+wH}`W)!rj6 z{c-SA;{OVY9u6$o_KybD&yzu|(|oWOTm!0~O;G)MJ*aWsf3;LV`Me~XL18`SsrfTH_{!2Q8TLG|y;4*wZc|DFVW@WKM9-- zp6SvDKv=wY1*my@KdAaY0UiKu2Q}}X0e$dsQ0wtaQ1f?U#jf8%@Xv`a1y%lWQ02b~ z9t1uGJ|Fxy@I}vKKEN*%KOn;12Ywwq5d6@XE%#AS^?cmnCmrr^_!&^+d(`2VT>4jC z{2MO*ZHM0h)t?_a{C808{TviM{1#L{53Jhs!$H-5jKkwW_2*<4?*Ucr3{d6ffm*lo zL5Alo1C@V;!?g|v9By`ag~OLR3>=O)tb*!i6IB1Vx%5{#d@ZPc-sryHiri4*r4}q!q*6T7P{|;gIcE}z#o_|_RsT) zzgPJPgS>04MXwVCJ*!At2d)DT13yL3em;b__@-nvJ>Mtj92E~<&9}2b?UTPH=+T_& z*^h4lI0x*0V0+$wC%l4i3Ewog-H+_%-y?zJ#ysb_@|Shh^B7!f zHWN*7Cg*z4+jg1GO}1d9oyghlSVc>4h1P~xk>|4o=pc#xpy zVZwhiZ&n`tXWmo76|TJd13kdJv z{X+0f;2OfK2ulbHT;8AZzLEE}VE(+EmzR>(N9Z9OMLf(QtK_x3e+8UNIG^woVUTbn>Dxd(Zy<>8==mjK7T>N0&r|}>Lj>`M z&5CqA-{F0^YikzoD|yer^TE%$eAj`CiLZC@`@s7N=Mj!3goGCn@<->!#e{z$;WLEe zct447E@3@E&z}->&b*HBcEU!&@q9aza47Hj^G)}1Iq7%uzJqWo?+x$-@E^h767;;; zg7<2WW6Jw$7e5#LB4L>P?+2eHT*><_V2N-u;c&tm3G+xljBqkxgt#8*TZw)3mhgTA z?_Vd}>(c%XTtSdr|Hm$E415=%pR~up_Yl5HKwLF^9WZu_AL)hXcNV-~gD)XmL^(au z`K|=ZCWf8|_7Kh@eJNwls zhxza)gaYx~!QT)rA>_{?yxc>0Bu{YoGVtHryUwhG+`Hg?gr9ZAU(0)ia1?E92mgWa z1;TQ|TM5SzeoXiugjEDR$B_4b+E?$R-~jO-y7)2Rzq)t9frNAT{xR^ogufs>K=^yY zw+OExJWBW*!i9t_geu_~!bb?pD4Rbg@p3m|6KNa3GYE4CdfrADCX6e>b39=s;aKwi zlM-h4mV;KX+iIR&G3b{hzn|V(3SWR+u!Cuoaeh_m#(=j2odpySJ1jN!Vy@ zRhp9e(#3w%^6SBb3I_FJRLSBj_2VQ@Zp1A=ye>*x1)3a*!diK2EhvUHTCHcPX)kL; zFV8}MghIAgTc_rm-CK*}YS!G^nrPCZsVIr-eQE#f-d0RSNmvV7QQSyJqo!Kf<;Rq- z^|)+Wj~Zz!Xp};KThtn*Vbdm+&F&o!YFXHq_~kfE{VDx7Ww$m0Gijz=Ycx`ksT~e# zNf?wT?6^&T_oiS<<2#pZWc9wXUk)bddi!1Du#wR?OQu9RpXyN~YlZEPHrn+$ZnQ=_ zUlr?o+!lt__BTa3pC-bf)1o5!ltz;w-7HR+2D@T>O#L;>^>>5$J7E3}n!m%#z23D^ zxg0ipGl4#%GIQIPA!aV#vgyk!I4vXLaJ209ZFhNjR;vVNSj#g;O2!pKn^*heOwveHGP}kf38Gq9F8G^6M#Pp3id0L2w<2f- zHAc3ASz{{v4OvoF<-J33!W{H@D@KDxg(?|Z;;o2lF$|zwf;)4?QW z2y_Ff01M}jgMbB5&Sq(oZmy<9}i8WgjKE%hWG|F}^O0^(O9TO^;7Pp4V=4QuG zRKd$>c2y(I=v`|xV7%&=>#SdoZE}OXRu8U&`IOygo3)@s_n&J?7~Z}VjVc@<#SreV zUWT1s#H{|lSC#$&>oTWb%pQ0y-O$N7tt_-V!d4TH^G5^7hLba9Y3%}({n98KrNrUu z_cABS!O;g-X^r-k`?~tD*Y%`(uE-pAd2iUqraQH$9<{dGb8zNvrK9n-Jj1lE?Msc_ z9o*Y0-IV>|`ndZF_o<7l3`^EEd$zPm?iyb@1t*QM?8x+^e!`Bj6aRGk@@T(|grv(+wA8R!y>DQa0T( z_f9^(M`gO!OyX8tiY2K!c04_g#F6P~TQ*<1Q__}oE2pPP_?{_ko+Rs?KExaf4PSg? zr%&$mn4TVXA0yL0x^sAX@=Q%nn?pM{9LZ@dtLVVt%uYF-M2Sr8mPS-Uy!M%X<`%lL zbIVJ{NtvW2m^=|kV05B68aBFCVGlL$w#FGN+%}5DXig`nvl4!9yEGAiyOn9rMyl9kCLl!|GR_M1%314fW`GeHoVq~1?_PB0G z`%-s8OQmp_&Uy)eNW4TaAK;9I`rz6r^|nM!;R2At8$w zAw3r3G&C~E)@BV7)Fv^*8b^8wigd9UmVzubI^)jr%80EA#^R)vHSD>PW_wK-Cl&jW z)J?o)c^w@za-0>ayfuk5l(no)xXoLO92R+NGvse0>aH8icdWN=aQqzeXG)3)hA-#o z3x7%o@zhZA)|F##-H1OCXGTgwu4h^$lw4E~TY=etOL~%U1l=S|dW^t|9Ji#W5%;%K zm-?-M&42>jDAlrZUITk(vn$v?7&F?5Ma)>cm`Gz3r7=wA`f#s+nM=ZYJZ@y7dchy2 z6Gn0uS3>#}c_r{sL{ag^P_$<150g$+VzK3z`Aecwi|q6p4p|xvOI5m6@a<4h`&m^s zaw$wi5{Ul@!{|-pL1}`WOILy#1k-@Z#%Zk%( zwYoqimPJ)qW;F7c4d~P_`)uAyqzn5bY+-muJU)m?eg_@a?sP4cyM!j`N(Av`L zgN9+G>jQLesiNyM6t?vlcb6N2;spG2L(pghB}|m!d~!XnA@?=SqBZQYoL_rP*~TZ;(?(Z4aQzFeUmhfG#^>|MFJntwArPh^=O* zm{{21aHM*anr#pDNCGd0%tb4xb1pa*RPYB}7Q->q&QYKP8Y@o0zY+!_n^+^H4Ad;C zAIYScRiM8n+O;2XjIe8|2s;3E>kx$|>C;4iEAEH&ImRsFkXdU$I`n8HggXytBzBrp zUamux@0c_OP$mgt-9QCqqtP>quq3;Z;vNh&Xme}JT30RKvSx`a69sQ0N;|fUjZ~Zj zkWQ!ejj^{;l3Vv70QVn>IpP^KI&9AJuqJS9?v%N6Vzk>=Cc5i$`j)Uugk>d|N!!K} zq*)Pl#3=kTC;KbJ(#(W%cEy(G>Y!tonq>`|A;oB0Sh=RQBIDN76xp<n|D{z@#;w6%V^*tm)HrjLcN+!@-X;tOG9_$kgj#1dtN5rf0GMUo zlyC%in^J^%&ZEHrZ&2HewbJRzR^=>h!N!oRpieEjQJ%#~SP$7)pf;sSbsiL1vGjxX zJVE%9-NMXBIcstRi3=FAXM$K!D*(WXwv9%m(P`#cs@u0}_OU?Qsyaj4j=38($XJ4* zH{{`NW3fb|-FDCjvf9pAXxdprYmBo5#s)Pcr-^OTQ;9*lcrm_C(~hwsZjH99$jj#E zP;QvDH0QdsyG)&qcXBz66t0Ras=9n5nqVNZTX6g;q;&D7I1lDLggc{`cW=(B7W5wC(>@{hh zH#B7~b9?iU%zhOkAI+(PUXj?Ff1sM!w(DjBUB>oyMIqiHSEH zGRh3NuH`Y`k^UeciZQ`=S^+mH>(Wu-7tHwG=njT$83G;F(a4-Y z5r#+*2g_#bne)Yv2tp+%H@WOBPJwDwh8P6AEl#TN!Za(DI3!14$`hwzhiz0iLo>&1 zPchRmMc}3Jj$-YTL6rR&3XB4hCv0vHHln;iqEK zhH0<`(K4#L_|~A0Q$A7N$@duIO?9N0X>$8Ws!OiaCQb%(Vu=)|4ex5y&uzqy%F3j)K}Ef0+-n zkyz<3Yc@Ts9=NX6v!vy1smgAzjfFLULn&oJCeZ)Q9bd#Piahfvt2POxKCE?a(CX_=U{{9GP3!pTg^WBWSk@+fQ>F);La-6lP0 zloeRgGumo3(?#>LUpfz&KssPLuLs$aTPt+T zt%iJhSWlyN#Z4MddX~DJB8@P;XkK77Fn9IPRi$?YQWXJ?CK9i!}P zLo2v34Nih@EAd9LvO0^@tDG{CZzPj!c8aCdU!`QhpSTWAwLvj37~O7LSj_dixd_78 zDa7xMctS;& zmvr7~?!F2=74= zOV4=0O7Q#JTit1CS!H@QuJ5KNVa=PKgj%{&k`&Xa)f+W+YLZpOrl(CWh;A^wdX#|a zNkd^%X*G6&QBv|Db|u(r>8>p8Ys#*)wzaY=E!Vrdlgt1+mD|yE;%;c&35=@~Z7V!o zX}N0Cm84NwVT+~qf@b0cS;ga?(HjYi9!$_1%W8y%S4Yl3WA^G%xe--HTV5kZi*3Z? zUd&y8oOn%90XAE2f`hCP&n0s)^o;RB)=+D?nCh|NzEf=~o5j4(m}`qM z-J4drGMQIIt_MCSMq<JQS&)hkzC<6nI>EnG7&u;`kuLF~mCq#EQ} zteqRbcZR<9nezq3m?by5uw5W~y|L@HoT>IbPs%PD6E(QIoafr&Zff2Y{p2(kv~SU^ ze7ooTBf3P`W45-0zNef{NR!{n+^N1Uds%Xdf6P9VaZWSFoT}DU^lop^N?QHv%Kewi zC=xdo`Bny-wb|I?`UlcVRPJA%Rnq?9c#%JAa8v*0aGZOOxY56owOr&coWJ1g{`u$h zFFeYbn>Z1 zt_u2BIa}Hy|AJ!FYIk~(pEoya(A@p>ua?lmb%wnPN|&6y7<0XDg_iU-W-pk(WXS^m zj5B<_&Odd@f(8D?{(PV8#Fs8vn18xx$vJv8CFWnWV7~v#SK1=vncqj51(aFXw|JI! zIX5Gc+qK8Esrz)9hpm;9bH{^NQ@J6@>cRG#QEdFoA6M>1T8+o##28U-CMQM}EeHM> z2C?xt#RiNXAN%OYs<(-gMm!c3y!_6u?ZJp26qXU%8AFjq`NS;H8}#{;f$QF$JQ+8m zJd_Yo$v(wv(Q_X(%&8yNS%nuz0r@eipn1_8aI|5gZp1t8*nVTCg1WHeLvCqFrj2Ea zQzE6~aa;*zsG{w#IUa7mv3oM6SI~@WW1+keOv|>Iyc(yMvv#dA$A4}u<2{%;l44rQ zbMfBEMI>r}G0u%sW1XDlV^QB;*2X%YZM@@DIsJP@#^+9U6Yb<~ zf6W~vgE0-RE2g4dQLIgS@}C^4a#1H*HIwh>u5wd6D02tOw)i^< zkE|oOJG|HtCuS|8o_*B}r2xnn^Z;t>)2=1v| zI9A$Px?C%(c3U?hI0_7D#~rnx;9nJtw!(2gE*D8g>0lXx8u~1il;F_JQUgEdq^x#& zQ|Dv3Zjz~uyiM>k{4Bg`T*DdB&Src5S1>TpsGp@&MYE4NQYJ~m8EO#SLy-gU)8qxNf!v;fm^7`9z%0iqGo5Vl7n(Vj( z$}4!I$#~GxD2B1gWvxc+QEbN@B(SfQ&Iy{;8IoBthJ*8Vo>mMe9g7a~v~h&CxS58P zK&k@z1G)jajyy3LlOcdj#U$EsN5o}h8Q*03&K+n~rl~PFzmHo)#y}>=#g8ZwkCzby zw!hW5V@?L}YW!4!JfX~-)2EhMF?+a}m6mawfz>=5Nl;%jj&=2LOwO5@I+;@@x)B)X zOfC-X6z$qK^EO$fIuz^t9@^BjF+aV`X)?~>uxiN*X^Ly6xtMdu+#e=mpsT*!*2sk% z)*+TVmnj=@MTEr#{eN{?c+RdG-oozzV0!ICf9BaReJ@~={IAGN?{H^85*Z1`IEdR_ zVVw~OrY&LFuadtCMFlwFxNTxcVv39B|J&7V8qbdzoQKgdAbah$U=02TOPK2U*ctIo z1Mc#Klwa#}taj&#+^c%0_p;snT`y2~z5bLAv*;-l;AWz0&AWX-J2SBlUH<>E=A0^u z89snh=NUiPX;j}esd9(i!c~DipER3L)06|=%q((5Rz*xLBT&{jnRGo=g%C-b)|ies zj-YXl2+Kt~?y-$#vhVJ(QHx8MP2CblKGdv^y!~KM-D8(#DsPz<@# zZ6?7uHJC$DT8Gpx>oz+*7stB2H_5BAg-JF}vpc66z?swM8Fg>^SE+K^ zrZML{OnYik&2JK5j2z>5o%Sj7Lws?}4>EMUIsH3b&t=l-pQzPzW#<~LhSfdS?Rn_I zicsm9%fgIB(rHt~X}v=7T&7ilRDv%TC@exXn#+h9W6`KzO60qQ495$SO?O|CCYR}Q zMZH~hBfQO6`<|+erq#RisByEi!a2@?Z3&d$4LS+5;Dv41THNof(2EgRuC+*~$Z7l< zrx|p7sdBek&Q@<#6;Jrar1WGKpNlTq=;0S)xub1g+JnqT6>XUhVS8mR|1pgj^M)q3 z{l?HoT(or=7v7nDYzH%heHt?dyElSjkLXe^KlDU2~a3AF`*%%@R#;+kILG{HqHCEjM$Bjb!~1m2tMgjXBhU#YC)e{(B#19dUuI4WUC@ zn`Dd;X!1$v>GHqTWNG@~vszg;qG>f%)+s$=v#Lw~j!o9pCpJH$H4cUG$AG);4=_brr9#komiMQ*JyLzAln)|`!D zo7tOlOni(NSR&51njd!!qI7%3L2|nkq$Fbsum{ImW5MwtSnMuV1qZ}x$K-n}=8|8$ zRdMh##*Ql0;(A-f_138FResHlHOuU2sL^ij4UybxDUP{$+?zvdn*cicBW>yT2 z4j&$u4^UL_b$$doG(|5iTjwNcd*u#T8?R0QBYDXT5*A^{&>4Ggj7SW&&FO8^;4?*&#xGcANc0B{Th#pP&_kzy^Ripclt1s8ZPlI2fT@$%e2<#s(BwmapPW8`-Jb4hJTPT`+Xujqe2uAs zl1^6hg+TVwDZNaqUQV?@u z>*Lk~Ps|z>gy>_8)>5U-r}g$_ATe{dV5SV_+{%?&^B+7Qx5s#`>Suo)dXP=N!aQL7 z6u(4!qhZb&`a8ysS!djj?adEO!bo)Q!!PKXoH$&R_}kx%pcl2O;i*=g)U_wvs<`ACdV!t`Ecf_Iv} zHRC4kyDelNwPL2q3bAzFc_B-kPyjzIzkTV1_-!~E%TL(aXBt58%w0w-Ne z+Is=_;({k1V@l)SuI=GmkM+8xnYFlM$3G*$N8eqsaaN$hagR3^dU8X~j2p7DXLury z*)!L=B2VgqO`G2xc4!^W9~s#QA2WXR6hrC!`qxZ!Nvy(-6jrB`qrm+l=Z85!&Ez|w z#+)c-Vp8?XY87N){adm+ut2zl%pe_Gr{pny18IGd(R8gW&D0r#99!MEhVkDKnfi?@ zlWbV+3|-`7ZE=yavcW&_o0WGmlhF}A5!;Q6vSw&7<~r8i`#op((7kn3ZUo#l(j`Be z^rJ~Ae=IcKp{$>~nKOc=b%2I*a)k2-0>Rj8bcdCJv43(L$qH>3o!7 zrcTu~w-mYR==_U&@DIa4ZAAjHQ=?N^%{a8bl4P0k(H#8pSC_efhd`4v-tHl*6Ws5qCL8{-uav7{7qoGSNw~gDz zI2)lmE{XNO?5HCs=c6e6vi5DlAhFwN(dp8j5OYgi%_ITCDV>gk#3L(}4o{w>Q+hr$ISocc--`;W^Xm|FJtWR&g|B35v#I zBJ=8)?!k<90LNgJj1x1`B~p*ZDGkh+xLH)ciSfgDR4g0EVVQevG$J`AuNNEV7qR+5 zEHVK~7{);LKTRFpd{kmV+&RC1hNKHmvagMo&D8|17&trK{ zbK72!XKq2Rx%|m$`okMKt^Q#5M_|HV0N{rNl46VoRPeB(kfyOA{7_La7so#xL+oE; zq0D`Bv0$2=C$qMPjiZTot~1`Y&y@VU?P7A+GIK^~{uhM~FVxg>PvG}2-5bOH`4&n`^Y&=Xi#uzm#dgl_8J&G0&+06UpRa(9{C6fqm4O9a&=jPIO*cR7unc5;zgrrz+O2eN)2<#(b?qvMX|#7U6K$oWP9w@b-O, 2020 +# Danijela Popović, 2022 +# Igor Jerosimić, 2019-2021,2023-2024 +# Jannis Leidel , 2011 +# Janos Guljas , 2011-2012 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-05-22 11:46-0300\n" +"PO-Revision-Date: 2024-08-07 06:49+0000\n" +"Last-Translator: Igor Jerosimić, 2019-2021,2023-2024\n" +"Language-Team: Serbian (Latin) (http://app.transifex.com/django/django/language/sr@latin/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: sr@latin\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: conf/global_settings.py:52 +msgid "Afrikaans" +msgstr "afrikanski" + +#: conf/global_settings.py:53 +msgid "Arabic" +msgstr "arapski" + +#: conf/global_settings.py:54 +msgid "Algerian Arabic" +msgstr "Alžirski arapski" + +#: conf/global_settings.py:55 +msgid "Asturian" +msgstr "asturijski" + +#: conf/global_settings.py:56 +msgid "Azerbaijani" +msgstr "azerbejdžanski" + +#: conf/global_settings.py:57 +msgid "Bulgarian" +msgstr "bugarski" + +#: conf/global_settings.py:58 +msgid "Belarusian" +msgstr "beloruski" + +#: conf/global_settings.py:59 +msgid "Bengali" +msgstr "bengalski" + +#: conf/global_settings.py:60 +msgid "Breton" +msgstr "bretonski" + +#: conf/global_settings.py:61 +msgid "Bosnian" +msgstr "bosanski" + +#: conf/global_settings.py:62 +msgid "Catalan" +msgstr "katalonski" + +#: conf/global_settings.py:63 +msgid "Central Kurdish (Sorani)" +msgstr "centralnokurdski (sorani)" + +#: conf/global_settings.py:64 +msgid "Czech" +msgstr "češki" + +#: conf/global_settings.py:65 +msgid "Welsh" +msgstr "velški" + +#: conf/global_settings.py:66 +msgid "Danish" +msgstr "danski" + +#: conf/global_settings.py:67 +msgid "German" +msgstr "nemački" + +#: conf/global_settings.py:68 +msgid "Lower Sorbian" +msgstr "donjolužičkosrpski" + +#: conf/global_settings.py:69 +msgid "Greek" +msgstr "grčki" + +#: conf/global_settings.py:70 +msgid "English" +msgstr "engleski" + +#: conf/global_settings.py:71 +msgid "Australian English" +msgstr "australijski engleski" + +#: conf/global_settings.py:72 +msgid "British English" +msgstr "britanski engleski" + +#: conf/global_settings.py:73 +msgid "Esperanto" +msgstr "esperanto" + +#: conf/global_settings.py:74 +msgid "Spanish" +msgstr "španski" + +#: conf/global_settings.py:75 +msgid "Argentinian Spanish" +msgstr "argentinski španski" + +#: conf/global_settings.py:76 +msgid "Colombian Spanish" +msgstr "kolumbijski španski" + +#: conf/global_settings.py:77 +msgid "Mexican Spanish" +msgstr "meksički španski" + +#: conf/global_settings.py:78 +msgid "Nicaraguan Spanish" +msgstr "nikaragvanski španski" + +#: conf/global_settings.py:79 +msgid "Venezuelan Spanish" +msgstr "venecuelanski španski" + +#: conf/global_settings.py:80 +msgid "Estonian" +msgstr "estonski" + +#: conf/global_settings.py:81 +msgid "Basque" +msgstr "baskijski" + +#: conf/global_settings.py:82 +msgid "Persian" +msgstr "persijski" + +#: conf/global_settings.py:83 +msgid "Finnish" +msgstr "finski" + +#: conf/global_settings.py:84 +msgid "French" +msgstr "francuski" + +#: conf/global_settings.py:85 +msgid "Frisian" +msgstr "frizijski" + +#: conf/global_settings.py:86 +msgid "Irish" +msgstr "irski" + +#: conf/global_settings.py:87 +msgid "Scottish Gaelic" +msgstr "škotski galski" + +#: conf/global_settings.py:88 +msgid "Galician" +msgstr "galski" + +#: conf/global_settings.py:89 +msgid "Hebrew" +msgstr "hebrejski" + +#: conf/global_settings.py:90 +msgid "Hindi" +msgstr "hindu" + +#: conf/global_settings.py:91 +msgid "Croatian" +msgstr "hrvatski" + +#: conf/global_settings.py:92 +msgid "Upper Sorbian" +msgstr "gornjolužičkosrpski" + +#: conf/global_settings.py:93 +msgid "Hungarian" +msgstr "mađarski" + +#: conf/global_settings.py:94 +msgid "Armenian" +msgstr "jermenski" + +#: conf/global_settings.py:95 +msgid "Interlingua" +msgstr "interlingva" + +#: conf/global_settings.py:96 +msgid "Indonesian" +msgstr "indonežanski" + +#: conf/global_settings.py:97 +msgid "Igbo" +msgstr "Igbo" + +#: conf/global_settings.py:98 +msgid "Ido" +msgstr "ido" + +#: conf/global_settings.py:99 +msgid "Icelandic" +msgstr "islandski" + +#: conf/global_settings.py:100 +msgid "Italian" +msgstr "italijanski" + +#: conf/global_settings.py:101 +msgid "Japanese" +msgstr "japanski" + +#: conf/global_settings.py:102 +msgid "Georgian" +msgstr "gruzijski" + +#: conf/global_settings.py:103 +msgid "Kabyle" +msgstr "kabilski" + +#: conf/global_settings.py:104 +msgid "Kazakh" +msgstr "kazaški" + +#: conf/global_settings.py:105 +msgid "Khmer" +msgstr "kambodijski" + +#: conf/global_settings.py:106 +msgid "Kannada" +msgstr "kanada" + +#: conf/global_settings.py:107 +msgid "Korean" +msgstr "korejski" + +#: conf/global_settings.py:108 +msgid "Kyrgyz" +msgstr "Kirgiski" + +#: conf/global_settings.py:109 +msgid "Luxembourgish" +msgstr "luksemburški" + +#: conf/global_settings.py:110 +msgid "Lithuanian" +msgstr "litvanski" + +#: conf/global_settings.py:111 +msgid "Latvian" +msgstr "latvijski" + +#: conf/global_settings.py:112 +msgid "Macedonian" +msgstr "makedonski" + +#: conf/global_settings.py:113 +msgid "Malayalam" +msgstr "malajalamski" + +#: conf/global_settings.py:114 +msgid "Mongolian" +msgstr "mongolski" + +#: conf/global_settings.py:115 +msgid "Marathi" +msgstr "marathi" + +#: conf/global_settings.py:116 +msgid "Malay" +msgstr "malajski" + +#: conf/global_settings.py:117 +msgid "Burmese" +msgstr "burmanski" + +#: conf/global_settings.py:118 +msgid "Norwegian Bokmål" +msgstr "norveški književni" + +#: conf/global_settings.py:119 +msgid "Nepali" +msgstr "nepalski" + +#: conf/global_settings.py:120 +msgid "Dutch" +msgstr "holandski" + +#: conf/global_settings.py:121 +msgid "Norwegian Nynorsk" +msgstr "norveški novi" + +#: conf/global_settings.py:122 +msgid "Ossetic" +msgstr "osetinski" + +#: conf/global_settings.py:123 +msgid "Punjabi" +msgstr "Pandžabi" + +#: conf/global_settings.py:124 +msgid "Polish" +msgstr "poljski" + +#: conf/global_settings.py:125 +msgid "Portuguese" +msgstr "portugalski" + +#: conf/global_settings.py:126 +msgid "Brazilian Portuguese" +msgstr "brazilski portugalski" + +#: conf/global_settings.py:127 +msgid "Romanian" +msgstr "rumunski" + +#: conf/global_settings.py:128 +msgid "Russian" +msgstr "ruski" + +#: conf/global_settings.py:129 +msgid "Slovak" +msgstr "slovački" + +#: conf/global_settings.py:130 +msgid "Slovenian" +msgstr "slovenački" + +#: conf/global_settings.py:131 +msgid "Albanian" +msgstr "albanski" + +#: conf/global_settings.py:132 +msgid "Serbian" +msgstr "srpski" + +#: conf/global_settings.py:133 +msgid "Serbian Latin" +msgstr "srpski (latinica)" + +#: conf/global_settings.py:134 +msgid "Swedish" +msgstr "švedski" + +#: conf/global_settings.py:135 +msgid "Swahili" +msgstr "svahili" + +#: conf/global_settings.py:136 +msgid "Tamil" +msgstr "tamilski" + +#: conf/global_settings.py:137 +msgid "Telugu" +msgstr "telugu" + +#: conf/global_settings.py:138 +msgid "Tajik" +msgstr "Tadžiki" + +#: conf/global_settings.py:139 +msgid "Thai" +msgstr "tajlandski" + +#: conf/global_settings.py:140 +msgid "Turkmen" +msgstr "Turkmenski" + +#: conf/global_settings.py:141 +msgid "Turkish" +msgstr "turski" + +#: conf/global_settings.py:142 +msgid "Tatar" +msgstr "tatarski" + +#: conf/global_settings.py:143 +msgid "Udmurt" +msgstr "udmurtski" + +#: conf/global_settings.py:144 +msgid "Uyghur" +msgstr "Ujgur" + +#: conf/global_settings.py:145 +msgid "Ukrainian" +msgstr "ukrajinski" + +#: conf/global_settings.py:146 +msgid "Urdu" +msgstr "Urdu" + +#: conf/global_settings.py:147 +msgid "Uzbek" +msgstr "Uzbekistanski" + +#: conf/global_settings.py:148 +msgid "Vietnamese" +msgstr "vijetnamski" + +#: conf/global_settings.py:149 +msgid "Simplified Chinese" +msgstr "novokineski" + +#: conf/global_settings.py:150 +msgid "Traditional Chinese" +msgstr "starokineski" + +#: contrib/messages/apps.py:15 +msgid "Messages" +msgstr "Poruke" + +#: contrib/sitemaps/apps.py:8 +msgid "Site Maps" +msgstr "Mape sajta" + +#: contrib/staticfiles/apps.py:9 +msgid "Static Files" +msgstr "Statičke datoteke" + +#: contrib/syndication/apps.py:7 +msgid "Syndication" +msgstr "Udruživanje sadržaja" + +#. Translators: String used to replace omitted page numbers in elided page +#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10]. +#: core/paginator.py:30 +msgid "…" +msgstr "…" + +#: core/paginator.py:32 +msgid "That page number is not an integer" +msgstr "Zadati broj strane nije ceo broj" + +#: core/paginator.py:33 +msgid "That page number is less than 1" +msgstr "Zadati broj strane je manji od 1" + +#: core/paginator.py:34 +msgid "That page contains no results" +msgstr "Tražena strana ne sadrži rezultate" + +#: core/validators.py:22 +msgid "Enter a valid value." +msgstr "Unesite ispravnu vrednost." + +#: core/validators.py:70 +msgid "Enter a valid domain name." +msgstr "Unesite ispravno ime domena." + +#: core/validators.py:104 forms/fields.py:759 +msgid "Enter a valid URL." +msgstr "Unesite ispravan URL." + +#: core/validators.py:165 +msgid "Enter a valid integer." +msgstr "Unesite ispravan ceo broj." + +#: core/validators.py:176 +msgid "Enter a valid email address." +msgstr "Unesite ispravnu e-mail adresu." + +#. Translators: "letters" means latin letters: a-z and A-Z. +#: core/validators.py:259 +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "Unesite isrpavan „slag“, koji se sastoji od slova, brojki, donjih crta ili cirtica." + +#: core/validators.py:267 +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or" +" hyphens." +msgstr "Unesite ispravan \"slag\", koji se sastoji od Unikod slova, brojki, donjih crta ili crtica." + +#: core/validators.py:327 core/validators.py:336 core/validators.py:350 +#: db/models/fields/__init__.py:2219 +#, python-format +msgid "Enter a valid %(protocol)s address." +msgstr "Unesite ispravnu adresu %(protocol)s." + +#: core/validators.py:329 +msgid "IPv4" +msgstr "IPv4" + +#: core/validators.py:338 utils/ipv6.py:30 +msgid "IPv6" +msgstr "IPv6" + +#: core/validators.py:352 +msgid "IPv4 or IPv6" +msgstr "IPv4 ili IPv6" + +#: core/validators.py:341 +msgid "Enter only digits separated by commas." +msgstr "Unesite samo brojke razdvojene zapetama." + +#: core/validators.py:347 +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "Ovo polje mora da bude %(limit_value)s (trenutno ima %(show_value)s)." + +#: core/validators.py:382 +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "Ova vrednost mora da bude manja od %(limit_value)s. ili tačno toliko." + +#: core/validators.py:391 +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "Ova vrednost mora biti veća od %(limit_value)s ili tačno toliko." + +#: core/validators.py:400 +#, python-format +msgid "Ensure this value is a multiple of step size %(limit_value)s." +msgstr "Ova vrednost mora da umnožak veličine koraka %(limit_value)s." + +#: core/validators.py:407 +#, python-format +msgid "" +"Ensure this value is a multiple of step size %(limit_value)s, starting from " +"%(offset)s, e.g. %(offset)s, %(valid_value1)s, %(valid_value2)s, and so on." +msgstr "Uverite se da je ova vrednost višestruka od veličine koraka %(limit_value)s, počevši od %(offset)s, npr. %(offset)s, %(valid_value1)s, %(valid_value2)s, itd." + +#: core/validators.py:439 +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "Ovo polje mora da ima najmanje %(limit_value)d karakter (trenutno ima %(show_value)d)." +msgstr[1] "Ovo polje mora da ima najmanje %(limit_value)d karaktera (trenutno ima %(show_value)d)." +msgstr[2] "Ovo polje mora da ima %(limit_value)d najmanje karaktera (trenutno ima %(show_value)d )." + +#: core/validators.py:457 +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "Ovo polje ne sme da ima više od %(limit_value)d karaktera (trenutno ima %(show_value)d)." +msgstr[1] "Ovo polje ne sme da ima više od %(limit_value)d karaktera (trenutno ima %(show_value)d)." +msgstr[2] "Ovo polje ne sme da ima više od %(limit_value)d karaktera (trenutno ima %(show_value)d)." + +#: core/validators.py:480 forms/fields.py:354 forms/fields.py:393 +msgid "Enter a number." +msgstr "Unesite broj." + +#: core/validators.py:482 +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "Ukupno ne može biti više od %(max)s cifre." +msgstr[1] "Ukupno ne može biti više od %(max)s cifre." +msgstr[2] "Ukupno ne može biti više od %(max)s cifara." + +#: core/validators.py:487 +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "Ne može biti više od %(max)s decimale." +msgstr[1] "Ne može biti više od %(max)s decimale." +msgstr[2] "Ne može biti više od %(max)s decimala." + +#: core/validators.py:492 +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "Ne može biti više od %(max)s cifre pre decimalnog zapisa." +msgstr[1] "Ne može biti više od %(max)s cifre pre decimalnog zapisa." +msgstr[2] "Ne može biti više od %(max)s cifara pre decimalnog zapisa." + +#: core/validators.py:563 +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "Ekstenzija datoteke \"%(extension)s\" nije dozvoljena. Dozvoljene su sledeće ekstenzije: %(allowed_extensions)s." + +#: core/validators.py:624 +msgid "Null characters are not allowed." +msgstr "'Null' karakteri nisu dozvoljeni." + +#: db/models/base.py:1465 forms/models.py:902 +msgid "and" +msgstr "i" + +#: db/models/base.py:1467 +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "%(model_name)s sa poljem %(field_labels)s već postoji." + +#: db/models/constraints.py:20 +#, python-format +msgid "Constraint “%(name)s” is violated." +msgstr "Ograničenje „%(name)s“ je prekršeno." + +#: db/models/fields/__init__.py:128 +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "Vrednost %(value)r nije validna." + +#: db/models/fields/__init__.py:129 +msgid "This field cannot be null." +msgstr "Ovo polje ne može da ostane prazno." + +#: db/models/fields/__init__.py:130 +msgid "This field cannot be blank." +msgstr "Ovo polje ne može da ostane prazno." + +#: db/models/fields/__init__.py:131 +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "%(model_name)s sa ovom vrednošću %(field_label)s već postoji." + +#. Translators: The 'lookup_type' is one of 'date', 'year' or +#. 'month'. Eg: "Title must be unique for pub_date year" +#: db/models/fields/__init__.py:135 +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "%(field_label)s mora biti jedinstven(a) za %(date_field_label)s %(lookup_type)s." + +#: db/models/fields/__init__.py:174 +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "Polje tipa: %(field_type)s" + +#: db/models/fields/__init__.py:1157 +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "Vrednost \"%(value)s\" mora biti True ili False." + +#: db/models/fields/__init__.py:1158 +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "\"%(value)s\" vrednost mora biti True, False ili None." + +#: db/models/fields/__init__.py:1160 +msgid "Boolean (Either True or False)" +msgstr "Bulova vrednost (True ili False)" + +#: db/models/fields/__init__.py:1210 +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "String (najviše %(max_length)s znakova)" + +#: db/models/fields/__init__.py:1212 +msgid "String (unlimited)" +msgstr "String (neograničeno)" + +#: db/models/fields/__init__.py:1316 +msgid "Comma-separated integers" +msgstr "Celi brojevi razdvojeni zapetama" + +#: db/models/fields/__init__.py:1417 +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "Vrednost \"%(value)s\" nema ispravan format datuma. Mora biti u formatu GGGG-MM-DD." + +#: db/models/fields/__init__.py:1421 db/models/fields/__init__.py:1556 +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "Vrednost “%(value)s” ima odgovarajući format (GGGG-MM-DD), ali nije validan datum." + +#: db/models/fields/__init__.py:1425 +msgid "Date (without time)" +msgstr "Datum (bez vremena)" + +#: db/models/fields/__init__.py:1552 +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD " +"HH:MM[:ss[.uuuuuu]][TZ] format." +msgstr "Vrednost “%(value)s” je u nevažećem formatu. Mora se uneti u formatu YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ]." + +#: db/models/fields/__init__.py:1560 +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD " +"HH:MM[:ss[.uuuuuu]][TZ]) but it is an invalid date/time." +msgstr "Vrednost “%(value)s” je u odgovarajućem formatu (YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ]), ali nije validna vrednost za datum i vreme." + +#: db/models/fields/__init__.py:1565 +msgid "Date (with time)" +msgstr "Datum (sa vremenom)" + +#: db/models/fields/__init__.py:1689 +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "Vrednost “%(value)s” mora biti decimalni broj." + +#: db/models/fields/__init__.py:1691 +msgid "Decimal number" +msgstr "Decimalni broj" + +#: db/models/fields/__init__.py:1852 +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] " +"[[HH:]MM:]ss[.uuuuuu] format." +msgstr "Vrednost “%(value)s” nije u odgovarajućem formatu. Mora biti u formatu [DD] [[HH:]MM:]ss[.uuuuuu]." + +#: db/models/fields/__init__.py:1856 +msgid "Duration" +msgstr "Vremenski interval" + +#: db/models/fields/__init__.py:1908 +msgid "Email address" +msgstr "Imejl adresa" + +#: db/models/fields/__init__.py:1933 +msgid "File path" +msgstr "Putanja fajla" + +#: db/models/fields/__init__.py:2011 +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "Vrednost “%(value)s” value mora biti tipa float." + +#: db/models/fields/__init__.py:2013 +msgid "Floating point number" +msgstr "Broj sa pokrenom zapetom" + +#: db/models/fields/__init__.py:2053 +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "Vrednost “%(value)s” mora biti ceo broj." + +#: db/models/fields/__init__.py:2055 +msgid "Integer" +msgstr "Ceo broj" + +#: db/models/fields/__init__.py:2151 +msgid "Big (8 byte) integer" +msgstr "Veliki ceo broj" + +#: db/models/fields/__init__.py:2168 +msgid "Small integer" +msgstr "Mali ceo broj" + +#: db/models/fields/__init__.py:2176 +msgid "IPv4 address" +msgstr "IPv4 adresa" + +#: db/models/fields/__init__.py:2207 +msgid "IP address" +msgstr "IP adresa" + +#: db/models/fields/__init__.py:2300 db/models/fields/__init__.py:2301 +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "Vrednost “%(value)s” mora biti None, True ili False." + +#: db/models/fields/__init__.py:2303 +msgid "Boolean (Either True, False or None)" +msgstr "Bulova vrednost (True, False ili None)" + +#: db/models/fields/__init__.py:2354 +msgid "Positive big integer" +msgstr "Velik pozitivan celi broj" + +#: db/models/fields/__init__.py:2369 +msgid "Positive integer" +msgstr "Pozitivan ceo broj" + +#: db/models/fields/__init__.py:2384 +msgid "Positive small integer" +msgstr "Pozitivan mali ceo broj" + +#: db/models/fields/__init__.py:2400 +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "Slag (ne duži od %(max_length)s)" + +#: db/models/fields/__init__.py:2436 +msgid "Text" +msgstr "Tekst" + +#: db/models/fields/__init__.py:2511 +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "Vrednost “%(value)s” nije u odgovarajućem formatu. Mora biti u formatu HH:MM[:ss[.uuuuuu]]." + +#: db/models/fields/__init__.py:2515 +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "Vrednost “%(value)s” je u odgovarajućem formatu (HH:MM[:ss[.uuuuuu]]), ali nije validna vrednost za vreme." + +#: db/models/fields/__init__.py:2519 +msgid "Time" +msgstr "Vreme" + +#: db/models/fields/__init__.py:2627 +msgid "URL" +msgstr "URL" + +#: db/models/fields/__init__.py:2651 +msgid "Raw binary data" +msgstr "Sirovi binarni podaci" + +#: db/models/fields/__init__.py:2716 +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "Vrednost “%(value)s” nije validan UUID (jedinstveni ID)." + +#: db/models/fields/__init__.py:2718 +msgid "Universally unique identifier" +msgstr "Univerzalno jedinstveni identifikator" + +#: db/models/fields/files.py:232 +msgid "File" +msgstr "Fajl" + +#: db/models/fields/files.py:393 +msgid "Image" +msgstr "Slika" + +#: db/models/fields/json.py:26 +msgid "A JSON object" +msgstr "JSON objekat" + +#: db/models/fields/json.py:28 +msgid "Value must be valid JSON." +msgstr "Vrednost mora biti ispravni JSON." + +#: db/models/fields/related.py:939 +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "Instanca modela %(model)s sa vrednošću %(field)s %(value)r ne postoji." + +#: db/models/fields/related.py:941 +msgid "Foreign Key (type determined by related field)" +msgstr "Strani ključ (tip određuje referentno polje)" + +#: db/models/fields/related.py:1235 +msgid "One-to-one relationship" +msgstr "Relacija jedan na jedan" + +#: db/models/fields/related.py:1292 +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "Relacija %(from)s-%(to)s" + +#: db/models/fields/related.py:1294 +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "Relacije %(from)s-%(to)s" + +#: db/models/fields/related.py:1342 +msgid "Many-to-many relationship" +msgstr "Relacija više na više" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +#: forms/boundfield.py:185 +msgid ":?.!" +msgstr ":?.!" + +#: forms/fields.py:94 +msgid "This field is required." +msgstr "Ovo polje se mora popuniti." + +#: forms/fields.py:303 +msgid "Enter a whole number." +msgstr "Unesite ceo broj." + +#: forms/fields.py:474 forms/fields.py:1246 +msgid "Enter a valid date." +msgstr "Unesite ispravan datum." + +#: forms/fields.py:497 forms/fields.py:1247 +msgid "Enter a valid time." +msgstr "Unesite ispravno vreme" + +#: forms/fields.py:524 +msgid "Enter a valid date/time." +msgstr "Unesite ispravan datum/vreme." + +#: forms/fields.py:558 +msgid "Enter a valid duration." +msgstr "Unesite ispravno trajanje." + +#: forms/fields.py:559 +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "Broj dana mora biti između {min_days} i {max_days}." + +#: forms/fields.py:628 +msgid "No file was submitted. Check the encoding type on the form." +msgstr "Fajl nije prebačen. Proverite tip enkodiranja formulara." + +#: forms/fields.py:629 +msgid "No file was submitted." +msgstr "Fajl nije prebačen." + +#: forms/fields.py:630 +msgid "The submitted file is empty." +msgstr "Prebačen fajl je prazan." + +#: forms/fields.py:632 +#, python-format +msgid "" +"Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "Ime fajla ne može imati više od %(max)d karaktera (trenutno ima %(length)d)." +msgstr[1] "Ime fajla ne može imati više od %(max)d karaktera (trenutno ima %(length)d)." +msgstr[2] "Ime fajla ne može imati više od %(max)d karaktera (trenutno ima %(length)d)." + +#: forms/fields.py:637 +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "Može se samo poslati fajl ili izbrisati, ne oba." + +#: forms/fields.py:701 +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "Prebacite ispravan fajl. Fajl koji je prebačen ili nije slika, ili je oštećen." + +#: forms/fields.py:868 forms/fields.py:954 forms/models.py:1581 +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "%(value)s nije među ponuđenim vrednostima. Odaberite jednu od ponuđenih." + +#: forms/fields.py:956 forms/fields.py:1075 forms/models.py:1579 +msgid "Enter a list of values." +msgstr "Unesite listu vrednosti." + +#: forms/fields.py:1076 +msgid "Enter a complete value." +msgstr "Unesite kompletnu vrednost." + +#: forms/fields.py:1315 +msgid "Enter a valid UUID." +msgstr "Unesite ispravan UUID." + +#: forms/fields.py:1345 +msgid "Enter a valid JSON." +msgstr "Unesite ispravan JSON." + +#. Translators: This is the default suffix added to form field labels +#: forms/forms.py:94 +msgid ":" +msgstr ":" + +#: forms/forms.py:231 +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "(Skriveno polje %(name)s) %(error)s" + +#: forms/formsets.py:61 +#, python-format +msgid "" +"ManagementForm data is missing or has been tampered with. Missing fields: " +"%(field_names)s. You may need to file a bug report if the issue persists." +msgstr "Podaci od ManagementForm nedostaju ili su pokvareni. Polja koja nedostaju: %(field_names)s. Možda će biti potrebno da prijavite grešku ako se problem nastavi." + +#: forms/formsets.py:65 +#, python-format +msgid "Please submit at most %(num)d form." +msgid_plural "Please submit at most %(num)d forms." +msgstr[0] "Molim prosledite najviše %(num)d formular." +msgstr[1] "Molim prosledite najviše %(num)d formulara." +msgstr[2] "Molim prosledite najviše %(num)d formulara." + +#: forms/formsets.py:70 +#, python-format +msgid "Please submit at least %(num)d form." +msgid_plural "Please submit at least %(num)d forms." +msgstr[0] " Molim prosledite najmanje %(num)d formular." +msgstr[1] " Molim prosledite najmanje %(num)d formulara." +msgstr[2] " Molim prosledite najmanje %(num)d formulara." + +#: forms/formsets.py:484 forms/formsets.py:491 +msgid "Order" +msgstr "Redosled" + +#: forms/formsets.py:499 +msgid "Delete" +msgstr "Obriši" + +#: forms/models.py:895 +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "Ispravite dupliran sadržaj za polja: %(field)s." + +#: forms/models.py:900 +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "Ispravite dupliran sadržaj za polja: %(field)s, koji mora da bude jedinstven." + +#: forms/models.py:907 +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "Ispravite dupliran sadržaj za polja: %(field_name)s, koji mora da bude jedinstven za %(lookup)s u %(date_field)s." + +#: forms/models.py:916 +msgid "Please correct the duplicate values below." +msgstr "Ispravite duplirane vrednosti dole." + +#: forms/models.py:1353 +msgid "The inline value did not match the parent instance." +msgstr "Direktno uneta vrednost ne odgovara instanci roditelja." + +#: forms/models.py:1444 +msgid "" +"Select a valid choice. That choice is not one of the available choices." +msgstr "Odabrana vrednost nije među ponuđenima. Odaberite jednu od ponuđenih." + +#: forms/models.py:1583 +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "\"%(pk)s\" nije ispravna vrednost." + +#: forms/utils.py:227 +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "Vreme %(datetime)s se ne može protumačiti u vremenskoj zoni %(current_timezone)s; možda je dvosmisleno ili ne postoji." + +#: forms/widgets.py:457 +msgid "Clear" +msgstr "Očisti" + +#: forms/widgets.py:458 +msgid "Currently" +msgstr "Trenutno" + +#: forms/widgets.py:459 +msgid "Change" +msgstr "Izmeni" + +#: forms/widgets.py:796 +msgid "Unknown" +msgstr "Nepoznato" + +#: forms/widgets.py:797 +msgid "Yes" +msgstr "Da" + +#: forms/widgets.py:798 +msgid "No" +msgstr "Ne" + +#. Translators: Please do not add spaces around commas. +#: template/defaultfilters.py:875 +msgid "yes,no,maybe" +msgstr "da,ne,možda" + +#: template/defaultfilters.py:905 template/defaultfilters.py:922 +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)d bajt" +msgstr[1] "%(size)d bajta" +msgstr[2] "%(size)d bajtova" + +#: template/defaultfilters.py:924 +#, python-format +msgid "%s KB" +msgstr "%s KB" + +#: template/defaultfilters.py:926 +#, python-format +msgid "%s MB" +msgstr "%s MB" + +#: template/defaultfilters.py:928 +#, python-format +msgid "%s GB" +msgstr "%s GB" + +#: template/defaultfilters.py:930 +#, python-format +msgid "%s TB" +msgstr "%s TB" + +#: template/defaultfilters.py:932 +#, python-format +msgid "%s PB" +msgstr "%s PB" + +#: utils/dateformat.py:73 +msgid "p.m." +msgstr "po p." + +#: utils/dateformat.py:74 +msgid "a.m." +msgstr "pre p." + +#: utils/dateformat.py:79 +msgid "PM" +msgstr "PM" + +#: utils/dateformat.py:80 +msgid "AM" +msgstr "AM" + +#: utils/dateformat.py:152 +msgid "midnight" +msgstr "ponoć" + +#: utils/dateformat.py:154 +msgid "noon" +msgstr "podne" + +#: utils/dates.py:7 +msgid "Monday" +msgstr "ponedeljak" + +#: utils/dates.py:8 +msgid "Tuesday" +msgstr "utorak" + +#: utils/dates.py:9 +msgid "Wednesday" +msgstr "sreda" + +#: utils/dates.py:10 +msgid "Thursday" +msgstr "četvrtak" + +#: utils/dates.py:11 +msgid "Friday" +msgstr "petak" + +#: utils/dates.py:12 +msgid "Saturday" +msgstr "subota" + +#: utils/dates.py:13 +msgid "Sunday" +msgstr "nedelja" + +#: utils/dates.py:16 +msgid "Mon" +msgstr "pon." + +#: utils/dates.py:17 +msgid "Tue" +msgstr "uto." + +#: utils/dates.py:18 +msgid "Wed" +msgstr "sre." + +#: utils/dates.py:19 +msgid "Thu" +msgstr "čet." + +#: utils/dates.py:20 +msgid "Fri" +msgstr "pet." + +#: utils/dates.py:21 +msgid "Sat" +msgstr "sub." + +#: utils/dates.py:22 +msgid "Sun" +msgstr "ned." + +#: utils/dates.py:25 +msgid "January" +msgstr "januar" + +#: utils/dates.py:26 +msgid "February" +msgstr "februar" + +#: utils/dates.py:27 +msgid "March" +msgstr "mart" + +#: utils/dates.py:28 +msgid "April" +msgstr "april" + +#: utils/dates.py:29 +msgid "May" +msgstr "maj" + +#: utils/dates.py:30 +msgid "June" +msgstr "jun" + +#: utils/dates.py:31 +msgid "July" +msgstr "jul" + +#: utils/dates.py:32 +msgid "August" +msgstr "avgust" + +#: utils/dates.py:33 +msgid "September" +msgstr "septembar" + +#: utils/dates.py:34 +msgid "October" +msgstr "oktobar" + +#: utils/dates.py:35 +msgid "November" +msgstr "novembar" + +#: utils/dates.py:36 +msgid "December" +msgstr "decembar" + +#: utils/dates.py:39 +msgid "jan" +msgstr "jan." + +#: utils/dates.py:40 +msgid "feb" +msgstr "feb." + +#: utils/dates.py:41 +msgid "mar" +msgstr "mar." + +#: utils/dates.py:42 +msgid "apr" +msgstr "apr." + +#: utils/dates.py:43 +msgid "may" +msgstr "maj." + +#: utils/dates.py:44 +msgid "jun" +msgstr "jun." + +#: utils/dates.py:45 +msgid "jul" +msgstr "jul." + +#: utils/dates.py:46 +msgid "aug" +msgstr "aug." + +#: utils/dates.py:47 +msgid "sep" +msgstr "sep." + +#: utils/dates.py:48 +msgid "oct" +msgstr "okt." + +#: utils/dates.py:49 +msgid "nov" +msgstr "nov." + +#: utils/dates.py:50 +msgid "dec" +msgstr "dec." + +#: utils/dates.py:53 +msgctxt "abbrev. month" +msgid "Jan." +msgstr "Jan." + +#: utils/dates.py:54 +msgctxt "abbrev. month" +msgid "Feb." +msgstr "Feb." + +#: utils/dates.py:55 +msgctxt "abbrev. month" +msgid "March" +msgstr "Mart" + +#: utils/dates.py:56 +msgctxt "abbrev. month" +msgid "April" +msgstr "April" + +#: utils/dates.py:57 +msgctxt "abbrev. month" +msgid "May" +msgstr "Maj" + +#: utils/dates.py:58 +msgctxt "abbrev. month" +msgid "June" +msgstr "Jun" + +#: utils/dates.py:59 +msgctxt "abbrev. month" +msgid "July" +msgstr "Jul" + +#: utils/dates.py:60 +msgctxt "abbrev. month" +msgid "Aug." +msgstr "Avg." + +#: utils/dates.py:61 +msgctxt "abbrev. month" +msgid "Sept." +msgstr "Sept." + +#: utils/dates.py:62 +msgctxt "abbrev. month" +msgid "Oct." +msgstr "Okt." + +#: utils/dates.py:63 +msgctxt "abbrev. month" +msgid "Nov." +msgstr "Nov." + +#: utils/dates.py:64 +msgctxt "abbrev. month" +msgid "Dec." +msgstr "Dec." + +#: utils/dates.py:67 +msgctxt "alt. month" +msgid "January" +msgstr "Januar" + +#: utils/dates.py:68 +msgctxt "alt. month" +msgid "February" +msgstr "Februar" + +#: utils/dates.py:69 +msgctxt "alt. month" +msgid "March" +msgstr "Mart" + +#: utils/dates.py:70 +msgctxt "alt. month" +msgid "April" +msgstr "April" + +#: utils/dates.py:71 +msgctxt "alt. month" +msgid "May" +msgstr "Maj" + +#: utils/dates.py:72 +msgctxt "alt. month" +msgid "June" +msgstr "Jun" + +#: utils/dates.py:73 +msgctxt "alt. month" +msgid "July" +msgstr "Jul" + +#: utils/dates.py:74 +msgctxt "alt. month" +msgid "August" +msgstr "Avgust" + +#: utils/dates.py:75 +msgctxt "alt. month" +msgid "September" +msgstr "Septembar" + +#: utils/dates.py:76 +msgctxt "alt. month" +msgid "October" +msgstr "Oktobar" + +#: utils/dates.py:77 +msgctxt "alt. month" +msgid "November" +msgstr "Novembar" + +#: utils/dates.py:78 +msgctxt "alt. month" +msgid "December" +msgstr "Decembar" + +#: utils/ipv6.py:8 +msgid "This is not a valid IPv6 address." +msgstr "Ovo nije ispravna IPv6 adresa." + +#: utils/text.py:70 +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "%(truncated_text)s..." + +#: utils/text.py:255 +msgid "or" +msgstr "ili" + +#. Translators: This string is used as a separator between list elements +#: utils/text.py:274 utils/timesince.py:135 +msgid ", " +msgstr "," + +#: utils/timesince.py:8 +#, python-format +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "%(num)d godina" +msgstr[1] "%(num)d godine" +msgstr[2] "%(num)d godina" + +#: utils/timesince.py:9 +#, python-format +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "%(num)d mesec" +msgstr[1] "%(num)d meseca" +msgstr[2] "%(num)d meseci" + +#: utils/timesince.py:10 +#, python-format +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "%(num)d nedelja" +msgstr[1] "%(num)d nedelje" +msgstr[2] "%(num)d nedelja" + +#: utils/timesince.py:11 +#, python-format +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "%(num)d dan" +msgstr[1] "%(num)d dana" +msgstr[2] "%(num)d dana" + +#: utils/timesince.py:12 +#, python-format +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "%(num)d sat" +msgstr[1] "%(num)d sata" +msgstr[2] "%(num)d sati" + +#: utils/timesince.py:13 +#, python-format +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "%(num)d minut" +msgstr[1] "%(num)d minuta" +msgstr[2] "%(num)d minuta" + +#: views/csrf.py:29 +msgid "Forbidden" +msgstr "Zabranjeno" + +#: views/csrf.py:30 +msgid "CSRF verification failed. Request aborted." +msgstr "CSRF verifikacija nije prošla. Zahtev odbijen." + +#: views/csrf.py:34 +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "Ova poruka je prikazana jer ovaj HTTPS sajt zahteva da \"Referer header\" bude poslat od strane vašeg internet pregledača, što trenutno nije slučaj. Pomenuto zaglavlje je potrebno iz bezbedonosnih razloga, da bi se osiguralo da vaš pregledač nije pod kontrolom trećih lica." + +#: views/csrf.py:40 +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "Ako ste podesili internet pregledač da ne šalje \"Referer\" zaglavlja, ponovo ih uključite, barem za ovaj sajt, ili za HTTPS konekcije, ili za \"same-origin\" zahteve." + +#: views/csrf.py:45 +msgid "" +"If you are using the tag or" +" including the “Referrer-Policy: no-referrer” header, please remove them. " +"The CSRF protection requires the “Referer” header to do strict referer " +"checking. If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "Ako koristite tag ili \"Referrer-Policy: no-referrer\" zaglavlje, molimo da ih uklonite. CSRF zaštita zahteva \"Referer\" zaglavlje da bi se obavila striktna \"referrer\" provera. Ukoliko vas brine privatnost, koristite alternative kao za linkove ka drugim sajtovima." + +#: views/csrf.py:54 +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "Ova poruka je prikazana jer ovaj sajt zahteva CSRF kuki kada se prosleđuju podaci iz formi. Ovaj kuki je potreban iz sigurnosnih razloga, da bi se osiguralo da vaš pretraživač nije pod kontrolom trećih lica." + +#: views/csrf.py:60 +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "Ako je vaš internet pregedač podešen da onemogući kolačiće, molimo da ih uključite, barem za ovaj sajt, ili za \"same-origin\" zahteve." + +#: views/csrf.py:66 +msgid "More information is available with DEBUG=True." +msgstr "Više informacija je dostupno sa DEBUG=True." + +#: views/generic/dates.py:44 +msgid "No year specified" +msgstr "Godina nije naznačena" + +#: views/generic/dates.py:64 views/generic/dates.py:115 +#: views/generic/dates.py:214 +msgid "Date out of range" +msgstr "Datum van opsega" + +#: views/generic/dates.py:94 +msgid "No month specified" +msgstr "Mesec nije naznačen" + +#: views/generic/dates.py:147 +msgid "No day specified" +msgstr "Dan nije naznačen" + +#: views/generic/dates.py:194 +msgid "No week specified" +msgstr "Nedelja nije naznačena" + +#: views/generic/dates.py:349 views/generic/dates.py:380 +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "Nedostupni objekti %(verbose_name_plural)s" + +#: views/generic/dates.py:652 +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because " +"%(class_name)s.allow_future is False." +msgstr "Opcija „future“ nije dostupna za „%(verbose_name_plural)s“ jer %(class_name)s.allow_future ima vrednost False." + +#: views/generic/dates.py:692 +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "Neispravan datum \"%(datestr)s\" za format \"%(format)s\"" + +#: views/generic/detail.py:56 +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "Nijedan objekat klase %(verbose_name)s nije nađen datim upitom." + +#: views/generic/list.py:70 +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "Stranica nije poslednja, niti može biti konvertovana u tip \"int\"." + +#: views/generic/list.py:77 +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "Neispravna strana (%(page_number)s): %(message)s" + +#: views/generic/list.py:169 +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "Prazna lista i „%(class_name)s.allow_empty“ ima vrednost False." + +#: views/static.py:48 +msgid "Directory indexes are not allowed here." +msgstr "Indeksi direktorijuma nisu dozvoljeni ovde." + +#: views/static.py:50 +#, python-format +msgid "“%(path)s” does not exist" +msgstr "„%(path)s“ ne postoji" + +#: views/static.py:67 views/templates/directory_index.html:8 +#: views/templates/directory_index.html:11 +#, python-format +msgid "Index of %(directory)s" +msgstr "Indeks direktorijuma %(directory)s" + +#: views/templates/default_urlconf.html:7 +#: views/templates/default_urlconf.html:220 +msgid "The install worked successfully! Congratulations!" +msgstr "Instalacija je prošla uspešno. Čestitke!" + +#: views/templates/default_urlconf.html:206 +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "Pogledajte napomene uz izdanje za Đango %(version)s" + +#: views/templates/default_urlconf.html:221 +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file " +"and you have not configured any URLs." +msgstr "Ova strana je prikazana jer je DEBUG=True u vašim podešavanjima i niste konfigurisali nijedan URL." + +#: views/templates/default_urlconf.html:229 +msgid "Django Documentation" +msgstr "Đango dokumentacija" + +#: views/templates/default_urlconf.html:230 +msgid "Topics, references, & how-to’s" +msgstr "Teme, reference, & kako-da" + +#: views/templates/default_urlconf.html:238 +msgid "Tutorial: A Polling App" +msgstr "Uputstvo: aplikacija za glasanje" + +#: views/templates/default_urlconf.html:239 +msgid "Get started with Django" +msgstr "Počnite sa Đangom" + +#: views/templates/default_urlconf.html:247 +msgid "Django Community" +msgstr "Đango zajednica" + +#: views/templates/default_urlconf.html:248 +msgid "Connect, get help, or contribute" +msgstr "Povežite se, potražite pomoć ili dajte doprinos" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/sr_Latn/__init__.py b/venv/lib/python3.12/site-packages/django/conf/locale/sr_Latn/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/sr_Latn/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/sr_Latn/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ba3278209dfcc7de6b338b58b11a3239041d5c5d GIT binary patch literal 203 zcmX@j%ge<81o5sX(m?cM5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!%F@rs&rQ|OP0Yy6 zFHO;RNiEZNN=(kybEFQ_cZ$j>v@Gc?jK&MZmQEdVM^ zOiwM=Pssu+OwP|s)6dCIPRvQwFD{DrNi50JkB`sH%PfhH*DI*}#bJ}1pHiBWYFESx Uw3-o!i$RQ!%#4hTMa)1J0Qyljg8%>k literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/sr_Latn/__pycache__/formats.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/sr_Latn/__pycache__/formats.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4a3494841d8618f2802f6d68b0ea5aa7857b98f0 GIT binary patch literal 961 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, 2022 +# Alex Nordlund , 2012 +# Anders Hovmöller , 2023 +# Anders Jonsson , 2022 +# Andreas Pelme , 2014,2021 +# Elias Johnstone , 2022 +# Gustaf Hansen , 2015 +# Jannis Leidel , 2011 +# Jonathan Lindén, 2015 +# Jörgen Olofsson, 2024 +# Ken Lewerentz, 2022 +# Jonathan Lindén, 2014 +# Mattias Hansson , 2016 +# Mattias Benjaminsson , 2011 +# Petter Strandmark , 2019 +# Rasmus Précenth , 2014 +# Samuel Linde , 2011 +# Thomas Lundqvist, 2013,2016 +# Tomas Lööw , 2021 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-05-22 11:46-0300\n" +"PO-Revision-Date: 2024-08-07 06:49+0000\n" +"Last-Translator: Jörgen Olofsson, 2024\n" +"Language-Team: Swedish (http://app.transifex.com/django/django/language/" +"sv/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: sv\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Afrikaans" +msgstr "Afrikaans" + +msgid "Arabic" +msgstr "Arabiska" + +msgid "Algerian Arabic" +msgstr "Algerisk arabiska" + +msgid "Asturian" +msgstr "Asturiska" + +msgid "Azerbaijani" +msgstr "Azerbajdzjanska" + +msgid "Bulgarian" +msgstr "Bulgariska" + +msgid "Belarusian" +msgstr "Vitryska" + +msgid "Bengali" +msgstr "Bengaliska" + +msgid "Breton" +msgstr "Bretonska" + +msgid "Bosnian" +msgstr "Bosniska" + +msgid "Catalan" +msgstr "Katalanska" + +msgid "Central Kurdish (Sorani)" +msgstr "Kurdiska (Sorani)" + +msgid "Czech" +msgstr "Tjeckiska" + +msgid "Welsh" +msgstr "Walesiska" + +msgid "Danish" +msgstr "Danska" + +msgid "German" +msgstr "Tyska" + +msgid "Lower Sorbian" +msgstr "Lågsorbiska" + +msgid "Greek" +msgstr "Grekiska" + +msgid "English" +msgstr "Engelska" + +msgid "Australian English" +msgstr "Australisk engelska" + +msgid "British English" +msgstr "Brittisk engelska" + +msgid "Esperanto" +msgstr "Esperanto" + +msgid "Spanish" +msgstr "Spanska" + +msgid "Argentinian Spanish" +msgstr "Argentinsk spanska" + +msgid "Colombian Spanish" +msgstr "Colombiansk spanska" + +msgid "Mexican Spanish" +msgstr "Mexikansk spanska" + +msgid "Nicaraguan Spanish" +msgstr "Nicaraguansk spanska" + +msgid "Venezuelan Spanish" +msgstr "Spanska (Venezuela)" + +msgid "Estonian" +msgstr "Estländska" + +msgid "Basque" +msgstr "Baskiska" + +msgid "Persian" +msgstr "Persiska" + +msgid "Finnish" +msgstr "Finska" + +msgid "French" +msgstr "Franska" + +msgid "Frisian" +msgstr "Frisiska" + +msgid "Irish" +msgstr "Irländska" + +msgid "Scottish Gaelic" +msgstr "Skotsk gäliska" + +msgid "Galician" +msgstr "Galisiska" + +msgid "Hebrew" +msgstr "Hebreiska" + +msgid "Hindi" +msgstr "Hindi" + +msgid "Croatian" +msgstr "Kroatiska" + +msgid "Upper Sorbian" +msgstr "Högsorbiska" + +msgid "Hungarian" +msgstr "Ungerska" + +msgid "Armenian" +msgstr "Armeniska" + +msgid "Interlingua" +msgstr "Interlingua" + +msgid "Indonesian" +msgstr "Indonesiska" + +msgid "Igbo" +msgstr "Igbo" + +msgid "Ido" +msgstr "Ido" + +msgid "Icelandic" +msgstr "Isländska" + +msgid "Italian" +msgstr "Italienska" + +msgid "Japanese" +msgstr "Japanska" + +msgid "Georgian" +msgstr "Georgiska" + +msgid "Kabyle" +msgstr "Kabyliska" + +msgid "Kazakh" +msgstr "Kazakiska" + +msgid "Khmer" +msgstr "Khmer" + +msgid "Kannada" +msgstr "Kannada" + +msgid "Korean" +msgstr "Koreanska" + +msgid "Kyrgyz" +msgstr "Kirgiziska" + +msgid "Luxembourgish" +msgstr "Luxemburgiska" + +msgid "Lithuanian" +msgstr "Lettiska" + +msgid "Latvian" +msgstr "Lettiska" + +msgid "Macedonian" +msgstr "Makedonska" + +msgid "Malayalam" +msgstr "Malayalam" + +msgid "Mongolian" +msgstr "Mongoliska" + +msgid "Marathi" +msgstr "Marathi" + +msgid "Malay" +msgstr "Malajiska" + +msgid "Burmese" +msgstr "Burmesiska" + +msgid "Norwegian Bokmål" +msgstr "Norskt Bokmål" + +msgid "Nepali" +msgstr "Nepali" + +msgid "Dutch" +msgstr "Holländska" + +msgid "Norwegian Nynorsk" +msgstr "Norska (nynorsk)" + +msgid "Ossetic" +msgstr "Ossetiska" + +msgid "Punjabi" +msgstr "Punjabi" + +msgid "Polish" +msgstr "Polska" + +msgid "Portuguese" +msgstr "Portugisiska" + +msgid "Brazilian Portuguese" +msgstr "Brasiliensk portugisiska" + +msgid "Romanian" +msgstr "Rumänska" + +msgid "Russian" +msgstr "Ryska" + +msgid "Slovak" +msgstr "Slovakiska" + +msgid "Slovenian" +msgstr "Slovenska" + +msgid "Albanian" +msgstr "Albanska" + +msgid "Serbian" +msgstr "Serbiska" + +msgid "Serbian Latin" +msgstr "Serbiska (latin)" + +msgid "Swedish" +msgstr "Svenska" + +msgid "Swahili" +msgstr "Swahili" + +msgid "Tamil" +msgstr "Tamilska" + +msgid "Telugu" +msgstr "Telugu" + +msgid "Tajik" +msgstr "Tadzjikiska" + +msgid "Thai" +msgstr "Thailändska" + +msgid "Turkmen" +msgstr "Turkmeniska" + +msgid "Turkish" +msgstr "Turkiska" + +msgid "Tatar" +msgstr "Tatariska" + +msgid "Udmurt" +msgstr "Udmurtiska" + +msgid "Uyghur" +msgstr "Uiguriska" + +msgid "Ukrainian" +msgstr "Ukrainska" + +msgid "Urdu" +msgstr "Urdu" + +msgid "Uzbek" +msgstr "Uzbekiska" + +msgid "Vietnamese" +msgstr "Vietnamesiska" + +msgid "Simplified Chinese" +msgstr "Förenklad Kinesiska" + +msgid "Traditional Chinese" +msgstr "Traditionell Kinesiska" + +msgid "Messages" +msgstr "Meddelanden" + +msgid "Site Maps" +msgstr "Sidkartor" + +msgid "Static Files" +msgstr "Statiska filer" + +msgid "Syndication" +msgstr "Syndikering" + +#. Translators: String used to replace omitted page numbers in elided page +#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10]. +msgid "…" +msgstr "..." + +msgid "That page number is not an integer" +msgstr "Sidnumret är inte ett heltal" + +msgid "That page number is less than 1" +msgstr "Sidnumret är mindre än 1" + +msgid "That page contains no results" +msgstr "Sidan innehåller inga resultat" + +msgid "Enter a valid value." +msgstr "Fyll i ett giltigt värde." + +msgid "Enter a valid domain name." +msgstr "Fyll i ett giltigt domännamn." + +msgid "Enter a valid URL." +msgstr "Fyll i en giltig URL." + +msgid "Enter a valid integer." +msgstr "Fyll i ett giltigt heltal." + +msgid "Enter a valid email address." +msgstr "Fyll i en giltig e-postadress." + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" +"Fyll i en giltig 'slug', beståendes av bokstäver, siffror, understreck eller " +"bindestreck i Unicode." + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" +"Fyll i en giltig 'slug', beståendes av bokstäver, siffror, understreck eller " +"bindestreck i Unicode." + +#, python-format +msgid "Enter a valid %(protocol)s address." +msgstr "Fyll i en giltig %(protocol)s adress." + +msgid "IPv4" +msgstr "IPv4" + +msgid "IPv6" +msgstr "IPv6" + +msgid "IPv4 or IPv6" +msgstr "IPv4 eller IPv6" + +msgid "Enter only digits separated by commas." +msgstr "Fyll enbart i siffror separerade med kommatecken." + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "" +"Kontrollera att detta värde är %(limit_value)s (det är %(show_value)s)." + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "" +"Kontrollera att detta värde är mindre än eller lika med %(limit_value)s." + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "" +"Kontrollera att detta värde är större än eller lika med %(limit_value)s." + +#, python-format +msgid "Ensure this value is a multiple of step size %(limit_value)s." +msgstr "" +"Kontrollera att detta värde är multipel av stegstorlek %(limit_value)s." + +#, python-format +msgid "" +"Ensure this value is a multiple of step size %(limit_value)s, starting from " +"%(offset)s, e.g. %(offset)s, %(valid_value1)s, %(valid_value2)s, and so on." +msgstr "" +"Kontrollera att detta värde är en multipel med stegstorlek %(limit_value)s, " +"med början från %(offset)s, t ex. %(offset)s, %(valid_value1)s, " +"%(valid_value2)s och så vidare" + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Säkerställ att detta värde åtminstone har %(limit_value)d tecken (den har " +"%(show_value)d)." +msgstr[1] "" +"Säkerställ att detta värde åtminstone har %(limit_value)d tecken (den har " +"%(show_value)d)." + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Säkerställ att detta värde har som mest %(limit_value)d tecken (den har " +"%(show_value)d)." +msgstr[1] "" +"Säkerställ att detta värde har som mest %(limit_value)d tecken (den har " +"%(show_value)d)." + +msgid "Enter a number." +msgstr "Fyll i ett tal." + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "Säkerställ att det inte är mer än %(max)s siffra totalt." +msgstr[1] "Säkerställ att det inte är mer än %(max)s siffror totalt." + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "Säkerställ att det inte är mer än %(max)s decimal." +msgstr[1] "Säkerställ att det inte är mer än %(max)s decimaler." + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "" +"Säkerställ att det inte är mer än %(max)s siffra före decimalavskiljaren." +msgstr[1] "" +"Säkerställ att det inte är mer än %(max)s siffror före decimalavskiljaren." + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" +"Filändelsen “%(extension)s” är inte giltig. Giltiga filändelser är: " +"%(allowed_extensions)s." + +msgid "Null characters are not allowed." +msgstr "Null-tecken är inte tillåtna." + +msgid "and" +msgstr "och" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "%(model_name)s med samma %(field_labels)s finns redan." + +#, python-format +msgid "Constraint “%(name)s” is violated." +msgstr "Begränsningen “%(name)s” överträds." + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "Värdet %(value)r är inget giltigt alternativ." + +msgid "This field cannot be null." +msgstr "Detta fält får inte vara null." + +msgid "This field cannot be blank." +msgstr "Detta fält får inte vara tomt." + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "%(model_name)s med detta %(field_label)s finns redan." + +#. Translators: The 'lookup_type' is one of 'date', 'year' or +#. 'month'. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" +"%(field_label)s måste vara unikt för %(date_field_label)s %(lookup_type)s." + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "Fält av typ: %(field_type)s" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "Värdet \"%(value)s\" måste vara antingen True eller False." + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "Värdet ”%(value)s” måste vara antingen True, False eller None." + +msgid "Boolean (Either True or False)" +msgstr "Boolesk (antingen True eller False)" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "Sträng (upp till %(max_length)s)" + +msgid "String (unlimited)" +msgstr "Sträng (obegränsad)" + +msgid "Comma-separated integers" +msgstr "Komma-separerade heltal" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" +"“%(value)s” har ett ogiltigt datumformat. Det måste vara i formatet YYYY-MM-" +"DD." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" +"Värdet “%(value)s” har det giltiga formatet (YYYY-MM-DD) men det är ett " +"ogiltigt datum." + +msgid "Date (without time)" +msgstr "Datum (utan tid)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" +"“%(value)s” har ett ogiltigt format. Det måste vara i formatet YYYY-MM-DD HH:" +"MM[:ss[.uuuuuu]][TZ]." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" +"“%(value)s” har det giltiga formatet (YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ]) " +"men ett ogiltigt datum/tid." + +msgid "Date (with time)" +msgstr "Datum (med tid)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "Värdet “%(value)s” måste vara ett decimaltal." + +msgid "Decimal number" +msgstr "Decimaltal" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" +"“%(value)s” har ett ogiltigt format. Det måste vara i formatet [DD] " +"[[HH:]MM:]ss[.uuuuuu]." + +msgid "Duration" +msgstr "Tidsspann" + +msgid "Email address" +msgstr "E-postadress" + +msgid "File path" +msgstr "Sökväg till fil" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "Värdet \"%(value)s\" måste vara ett flyttal." + +msgid "Floating point number" +msgstr "Flyttal" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "Värdet \"%(value)s\" måste vara ett heltal." + +msgid "Integer" +msgstr "Heltal" + +msgid "Big (8 byte) integer" +msgstr "Stort (8 byte) heltal" + +msgid "Small integer" +msgstr "Litet heltal" + +msgid "IPv4 address" +msgstr "IPv4-adress" + +msgid "IP address" +msgstr "IP-adress" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "Värdet ”%(value)s” måste vara antingen None, True eller False." + +msgid "Boolean (Either True, False or None)" +msgstr "Boolesk (antingen True, False eller None)" + +msgid "Positive big integer" +msgstr "Positivt stort heltal" + +msgid "Positive integer" +msgstr "Positivt heltal" + +msgid "Positive small integer" +msgstr "Positivt litet heltal" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "Slug (upp till %(max_length)s)" + +msgid "Text" +msgstr "Text" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" +"“%(value)s” har ett ogiltigt format. Det måste vara i formatet HH:MM[:ss[." +"uuuuuu]]." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" +"Värdet “%(value)s” har det giltiga formatet (HH:MM[:ss[.uuuuuu]]) men det är " +"en ogiltig tid." + +msgid "Time" +msgstr "Tid" + +msgid "URL" +msgstr "URL" + +msgid "Raw binary data" +msgstr "Rå binärdata" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "“%(value)s” är inget giltigt UUID." + +msgid "Universally unique identifier" +msgstr "Globalt unik identifierare" + +msgid "File" +msgstr "Fil" + +msgid "Image" +msgstr "Bild" + +msgid "A JSON object" +msgstr "Ett JSON-objekt" + +msgid "Value must be valid JSON." +msgstr "Värdet måste vara giltig JSON." + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "Modell %(model)s med %(field)s %(value)r finns inte." + +msgid "Foreign Key (type determined by related field)" +msgstr "Främmande nyckel (typ bestäms av relaterat fält)" + +msgid "One-to-one relationship" +msgstr "Ett-till-ett-samband" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "%(from)s-%(to)s relation" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "%(from)s-%(to)s relationer" + +msgid "Many-to-many relationship" +msgstr "Många-till-många-samband" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr ":?.!" + +msgid "This field is required." +msgstr "Detta fält måste fyllas i." + +msgid "Enter a whole number." +msgstr "Fyll i ett heltal." + +msgid "Enter a valid date." +msgstr "Fyll i ett giltigt datum." + +msgid "Enter a valid time." +msgstr "Fyll i en giltig tid." + +msgid "Enter a valid date/time." +msgstr "Fyll i ett giltigt datum/tid." + +msgid "Enter a valid duration." +msgstr "Fyll i ett giltigt tidsspann." + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "Antalet dagar måste vara mellan {min_days} och {max_days}." + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "Ingen fil skickades. Kontrollera kodningstypen i formuläret." + +msgid "No file was submitted." +msgstr "Ingen fil skickades." + +msgid "The submitted file is empty." +msgstr "Den skickade filen är tom." + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" +"Säkerställ att filnamnet har som mest %(max)d tecken (den har %(length)d)." +msgstr[1] "" +"Säkerställ att filnamnet har som mest %(max)d tecken (den har %(length)d)." + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "" +"Var vänlig antingen skicka en fil eller markera kryssrutan för att rensa, " +"inte både och. " + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" +"Ladda upp en giltig bild. Filen du laddade upp var antingen ingen bild eller " +"en korrupt bild." + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "" +"Välj ett giltigt alternativ. %(value)s finns inte bland tillgängliga " +"alternativ." + +msgid "Enter a list of values." +msgstr "Fyll i en lista med värden." + +msgid "Enter a complete value." +msgstr "Fyll i ett fullständigt värde." + +msgid "Enter a valid UUID." +msgstr "Fyll i ett giltigt UUID." + +msgid "Enter a valid JSON." +msgstr "Fyll i ett giltigt JSON." + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr ":" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "(Gömt fält %(name)s) %(error)s" + +#, python-format +msgid "" +"ManagementForm data is missing or has been tampered with. Missing fields: " +"%(field_names)s. You may need to file a bug report if the issue persists." +msgstr "" +"ManagementForm-data saknas eller har manipulerats. Saknade fält: " +"%(field_names)s. Du kan behöva lämna in en felrapport om problemet kvarstår." + +#, python-format +msgid "Please submit at most %(num)d form." +msgid_plural "Please submit at most %(num)d forms." +msgstr[0] "Vänligen skicka som mest %(num)d formulär." +msgstr[1] "Vänligen skicka som mest %(num)d formulär." + +#, python-format +msgid "Please submit at least %(num)d form." +msgid_plural "Please submit at least %(num)d forms." +msgstr[0] "Vänligen skicka minst %(num)d formulär." +msgstr[1] "Vänligen skicka minst %(num)d formulär." + +msgid "Order" +msgstr "Sortering" + +msgid "Delete" +msgstr "Radera" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "Var vänlig korrigera duplikatdata för %(field)s." + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "Var vänlig korrigera duplikatdata för %(field)s, som måste vara unik." + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"Var vänlig korrigera duplikatdata för %(field_name)s som måste vara unik för " +"%(lookup)s i %(date_field)s." + +msgid "Please correct the duplicate values below." +msgstr "Vänligen korrigera duplikatvärdena nedan." + +msgid "The inline value did not match the parent instance." +msgstr "Värdet för InlineForeignKeyField motsvarade inte dess motpart." + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "" +"Välj ett giltigt alternativ. Det valet finns inte bland tillgängliga " +"alternativ." + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "“%(pk)s” är inte ett giltigt värde." + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" +"%(datetime)s kunde inte tolkas i tidszonen %(current_timezone)s; det kan " +"vara en ogiltig eller tvetydigt tidpunkt." + +msgid "Clear" +msgstr "Rensa" + +msgid "Currently" +msgstr "Nuvarande" + +msgid "Change" +msgstr "Ändra" + +msgid "Unknown" +msgstr "Okänt" + +msgid "Yes" +msgstr "Ja" + +msgid "No" +msgstr "Nej" + +#. Translators: Please do not add spaces around commas. +msgid "yes,no,maybe" +msgstr "ja,nej,kanske" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)d byte" +msgstr[1] "%(size)d byte" + +#, python-format +msgid "%s KB" +msgstr "%s kB" + +#, python-format +msgid "%s MB" +msgstr "%s MB" + +#, python-format +msgid "%s GB" +msgstr "%s GB" + +#, python-format +msgid "%s TB" +msgstr "%s TB" + +#, python-format +msgid "%s PB" +msgstr "%s PB" + +msgid "p.m." +msgstr "e.m." + +msgid "a.m." +msgstr "f.m." + +msgid "PM" +msgstr "FM" + +msgid "AM" +msgstr "EM" + +msgid "midnight" +msgstr "midnatt" + +msgid "noon" +msgstr "middag" + +msgid "Monday" +msgstr "måndag" + +msgid "Tuesday" +msgstr "tisdag" + +msgid "Wednesday" +msgstr "onsdag" + +msgid "Thursday" +msgstr "torsdag" + +msgid "Friday" +msgstr "fredag" + +msgid "Saturday" +msgstr "lördag" + +msgid "Sunday" +msgstr "söndag" + +msgid "Mon" +msgstr "mån" + +msgid "Tue" +msgstr "tis" + +msgid "Wed" +msgstr "ons" + +msgid "Thu" +msgstr "tors" + +msgid "Fri" +msgstr "fre" + +msgid "Sat" +msgstr "lör" + +msgid "Sun" +msgstr "sön" + +msgid "January" +msgstr "januari" + +msgid "February" +msgstr "februari" + +msgid "March" +msgstr "mars" + +msgid "April" +msgstr "april" + +msgid "May" +msgstr "maj" + +msgid "June" +msgstr "juni" + +msgid "July" +msgstr "juli" + +msgid "August" +msgstr "augusti" + +msgid "September" +msgstr "september" + +msgid "October" +msgstr "oktober" + +msgid "November" +msgstr "november" + +msgid "December" +msgstr "december" + +msgid "jan" +msgstr "jan" + +msgid "feb" +msgstr "feb" + +msgid "mar" +msgstr "mar" + +msgid "apr" +msgstr "apr" + +msgid "may" +msgstr "maj" + +msgid "jun" +msgstr "jun" + +msgid "jul" +msgstr "jul" + +msgid "aug" +msgstr "aug" + +msgid "sep" +msgstr "sep" + +msgid "oct" +msgstr "okt" + +msgid "nov" +msgstr "nov" + +msgid "dec" +msgstr "dec" + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "jan" + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "feb" + +msgctxt "abbrev. month" +msgid "March" +msgstr "mars" + +msgctxt "abbrev. month" +msgid "April" +msgstr "april" + +msgctxt "abbrev. month" +msgid "May" +msgstr "maj" + +msgctxt "abbrev. month" +msgid "June" +msgstr "juni" + +msgctxt "abbrev. month" +msgid "July" +msgstr "juli" + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "aug" + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "sep" + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "okt" + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "nov" + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "dec" + +msgctxt "alt. month" +msgid "January" +msgstr "januari" + +msgctxt "alt. month" +msgid "February" +msgstr "februari" + +msgctxt "alt. month" +msgid "March" +msgstr "mars" + +msgctxt "alt. month" +msgid "April" +msgstr "april" + +msgctxt "alt. month" +msgid "May" +msgstr "maj" + +msgctxt "alt. month" +msgid "June" +msgstr "juni" + +msgctxt "alt. month" +msgid "July" +msgstr "juli" + +msgctxt "alt. month" +msgid "August" +msgstr "augusti" + +msgctxt "alt. month" +msgid "September" +msgstr "september" + +msgctxt "alt. month" +msgid "October" +msgstr "oktober" + +msgctxt "alt. month" +msgid "November" +msgstr "november" + +msgctxt "alt. month" +msgid "December" +msgstr "december" + +msgid "This is not a valid IPv6 address." +msgstr "Detta är inte en giltig IPv6 adress." + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "%(truncated_text)s…" + +msgid "or" +msgstr "eller" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr ", " + +#, python-format +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "%(num)d år" +msgstr[1] "%(num)d år" + +#, python-format +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "%(num)d månad" +msgstr[1] "%(num)d månader" + +#, python-format +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "%(num)d vecka" +msgstr[1] "%(num)d veckor" + +#, python-format +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "%(num)d dag" +msgstr[1] "%(num)d dagar" + +#, python-format +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "%(num)d timme" +msgstr[1] "%(num)d timmar" + +#, python-format +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "%(num)d minut" +msgstr[1] "%(num)d minuter" + +msgid "Forbidden" +msgstr "Otillåtet" + +msgid "CSRF verification failed. Request aborted." +msgstr "CSRF-verifikation misslyckades. Förfrågan avbröts." + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" +"Du ser detta meddelande eftersom denna HTTPS-sida kräver att en “Referer " +"header” skickas från din webbläsare, men ingen skickades. Denna header krävs " +"av säkerhetsskäl, för att säkerställa att din webbläsare inte kapats." + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" +"Om 'Referer' headers är inaktiverade i din webbläsare, vänligen återaktivera " +"dem, åtminstone för denna sida, eller för HTTPS-anslutningar eller för 'same-" +"origin'-förfrågningar." + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" +"Om du använder -taggen eller " +"har med ”Referrer-Policy: no-referrer”, ta bort dem. CSRF-skyddet kräver " +"”Referer” för att kunna göra sin strikta kontroll. Om du oroar dig över din " +"integritet, använd alternativ såsom för länkar " +"till tredjepart." + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" +"Du ser detta meddelande eftersom denna sida kräver en CSRF-cookie när " +"formulär skickas. Denna cookie krävs av säkerhetsskäl, för att säkerställa " +"att din webbläsare inte kapats." + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" +"Om cookies är inaktiverade i din webbläsare, vänligen återaktivera dem, " +"åtminstone för denna sida eller för “same-origin”-förfrågningar." + +msgid "More information is available with DEBUG=True." +msgstr "Mer information är tillgänglig med DEBUG=True." + +msgid "No year specified" +msgstr "Inget år angivet" + +msgid "Date out of range" +msgstr "Datum är utanför intervallet" + +msgid "No month specified" +msgstr "Ingen månad angiven" + +msgid "No day specified" +msgstr "Ingen dag angiven" + +msgid "No week specified" +msgstr "Ingen vecka angiven" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "Inga %(verbose_name_plural)s är tillgängliga" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" +"Framtida %(verbose_name_plural)s är inte tillgängliga eftersom " +"%(class_name)s.allow_future är False." + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "Ogiltig datumsträng “%(datestr)s” med givet format “%(format)s”" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "Hittade inga %(verbose_name)s som matchar frågan" + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "Sidan är inte 'last', och kan inte heller omvandlas till en int." + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "Ogiltig sida (%(page_number)s): %(message)s" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "Tom lista och '%(class_name)s.allow_empty' är False." + +msgid "Directory indexes are not allowed here." +msgstr "Kataloglistningar är inte tillåtna här." + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "\"%(path)s\" finns inte" + +#, python-format +msgid "Index of %(directory)s" +msgstr "Innehåll i %(directory)s" + +msgid "The install worked successfully! Congratulations!" +msgstr "Installationen lyckades! Grattis!" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" +"Visa release notes för Django %(version)s" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not " +"configured any URLs." +msgstr "" +"Du ser den här sidan eftersom DEBUG=True i din settings-fil och du har inte " +"konfigurerat några URL:er." + +msgid "Django Documentation" +msgstr "Djangodokumentation" + +msgid "Topics, references, & how-to’s" +msgstr "Ämnen, referenser och how-to’s" + +msgid "Tutorial: A Polling App" +msgstr "Tutorial: En undersöknings-app" + +msgid "Get started with Django" +msgstr "Kom igång med Django" + +msgid "Django Community" +msgstr "Djangos community" + +msgid "Connect, get help, or contribute" +msgstr "Kontakta, begär hjälp eller bidra" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/sv/__init__.py b/venv/lib/python3.12/site-packages/django/conf/locale/sv/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/sv/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/sv/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2f16a3109f4a5cacf92af303874413255c7460c0 GIT binary patch literal 198 zcmX@j%ge<81o5sX(m?cM5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!O4ZNE&rQ|OP0Yy6 zFHO;RNiEZNN=(kybEFQ_cZ$j>v@Gc?jK&MZmQEdVM^ zOiwM=Pssu+OwP|s)6dCIPRvQwFD}!MkI&4@EQycTE2#X%VUwGmQks)$SHudml@W-G PL5z>gjEsy$%s>_Z$w@Sn literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/sv/__pycache__/formats.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/sv/__pycache__/formats.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8354918237c72ff4571c508167b6f1ea5976172d GIT binary patch literal 853 zcmZXSzi-+=6vxjP5-=ge2CTGIRiw%TQp~CChN`MgF#)xM0tA{H?tS0qz3)5wbiWe`3gBgmznU*10Q?D(^$M-T z-Fqy)0t5_z2!lW&BZNqUL}4S0B1Q!58GC5o*lz(8{Z1HB9Ah}f5M@v(Zp6`naWF~b z4!y`_wv^R9vRvqRv8B!il3YTZdl8*?c;v;FA*kID_~abvMLC`49G*j1Igmq;(>H38 zi+S|Ap5@8~PAYIUFZ~GRxu$oxOR;e^Zrk`jx;O67jdAkW_<**JE4m;~{s#B@^V<#bW}P?3aBW=*ULs-P+AjM2(Uy(Y-T zEtZt)(y6GLXR1=KR^+oE;12&eSRmMT9UD4U+i|ZDEZSpuYBfIdVh_QKuGMR~aBTO+ zu-mzS{mH29_TJ=Qy@tci$maXF(Q4U4h%T3n4Y${XUAJL%Z8#jmraN$~(J^ZYvLr=Ls#?Wc~X;K)xu3-s~JDaiQg k4A!?)m<>$v7P+uTkpR9 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 pz*Mm${ME(OnQBT~7f3ZTel8b?^?;ySt$4Y tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" + +msgid "More information is available with DEBUG=True." +msgstr "Maelezo zaidi yanapatikana ikiwa DEBUG=True" + +msgid "No year specified" +msgstr "Hakuna mwaka maalum uliotajwa" + +msgid "Date out of range" +msgstr "" + +msgid "No month specified" +msgstr "Hakuna mwezi maalum uliotajwa" + +msgid "No day specified" +msgstr "Hakuna siku maalum iliyitajwa" + +msgid "No week specified" +msgstr "Hakuna wiki maalum iliyotajwa" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "Hakujapatikana %(verbose_name_plural)s" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" +"%(verbose_name_plural)s kutoka wakati ujao haiwezekani kwani `" +"%(class_name)s.allow_future` ni `False`." + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "hakuna %(verbose_name)s kulingana na ulizo" + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "" + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "Ukurasa batili (%(page_number)s): %(message)s" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "" + +msgid "Directory indexes are not allowed here." +msgstr "Sahirisi za saraka haziruhusiwi hapa." + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "" + +#, python-format +msgid "Index of %(directory)s" +msgstr "Sahirisi ya %(directory)s" + +msgid "Django: the Web framework for perfectionists with deadlines." +msgstr "" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" + +msgid "The install worked successfully! Congratulations!" +msgstr "" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not configured any " +"URLs." +msgstr "" + +msgid "Django Documentation" +msgstr "" + +msgid "Topics, references, & how-to’s" +msgstr "" + +msgid "Tutorial: A Polling App" +msgstr "" + +msgid "Get started with Django" +msgstr "" + +msgid "Django Community" +msgstr "" + +msgid "Connect, get help, or contribute" +msgstr "" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/ta/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/conf/locale/ta/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..1c684f8b7f79ee11cb777de6d4859c28deb062a1 GIT binary patch literal 7094 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 HV7LCiTJ~xA literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/ta/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/conf/locale/ta/LC_MESSAGES/django.po new file mode 100644 index 0000000000..ad7bf714c1 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/ta/LC_MESSAGES/django.po @@ -0,0 +1,1230 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Claude Paroz , 2020 +# Jannis Leidel , 2011 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-05-19 20:23+0200\n" +"PO-Revision-Date: 2020-07-14 21:42+0000\n" +"Last-Translator: Transifex Bot <>\n" +"Language-Team: Tamil (http://www.transifex.com/django/django/language/ta/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ta\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Afrikaans" +msgstr "" + +msgid "Arabic" +msgstr "அரபிக்" + +msgid "Algerian Arabic" +msgstr "" + +msgid "Asturian" +msgstr "" + +msgid "Azerbaijani" +msgstr "" + +msgid "Bulgarian" +msgstr "" + +msgid "Belarusian" +msgstr "" + +msgid "Bengali" +msgstr "பெங்காலி" + +msgid "Breton" +msgstr "" + +msgid "Bosnian" +msgstr "" + +msgid "Catalan" +msgstr "" + +msgid "Czech" +msgstr "செக்" + +msgid "Welsh" +msgstr "வெல்ஸ்" + +msgid "Danish" +msgstr "டேனிஷ்" + +msgid "German" +msgstr "ஜெர்மன்" + +msgid "Lower Sorbian" +msgstr "" + +msgid "Greek" +msgstr "கிரேக்கம்" + +msgid "English" +msgstr "ஆங்கிலம்" + +msgid "Australian English" +msgstr "" + +msgid "British English" +msgstr "" + +msgid "Esperanto" +msgstr "" + +msgid "Spanish" +msgstr "ஸ்பானிஷ்" + +msgid "Argentinian Spanish" +msgstr "" + +msgid "Colombian Spanish" +msgstr "" + +msgid "Mexican Spanish" +msgstr "" + +msgid "Nicaraguan Spanish" +msgstr "" + +msgid "Venezuelan Spanish" +msgstr "" + +msgid "Estonian" +msgstr "" + +msgid "Basque" +msgstr "" + +msgid "Persian" +msgstr "" + +msgid "Finnish" +msgstr "பீனீஷ்" + +msgid "French" +msgstr "ப்ரென்சு" + +msgid "Frisian" +msgstr "" + +msgid "Irish" +msgstr "" + +msgid "Scottish Gaelic" +msgstr "" + +msgid "Galician" +msgstr "கலீஷீயன்" + +msgid "Hebrew" +msgstr "ஹீப்ரு" + +msgid "Hindi" +msgstr "" + +msgid "Croatian" +msgstr "" + +msgid "Upper Sorbian" +msgstr "" + +msgid "Hungarian" +msgstr "ஹங்கேரியன்" + +msgid "Armenian" +msgstr "" + +msgid "Interlingua" +msgstr "" + +msgid "Indonesian" +msgstr "" + +msgid "Igbo" +msgstr "" + +msgid "Ido" +msgstr "" + +msgid "Icelandic" +msgstr "ஐஸ்லான்டிக்" + +msgid "Italian" +msgstr "இத்தாலியன்" + +msgid "Japanese" +msgstr "ஜப்பானிய" + +msgid "Georgian" +msgstr "" + +msgid "Kabyle" +msgstr "" + +msgid "Kazakh" +msgstr "" + +msgid "Khmer" +msgstr "" + +msgid "Kannada" +msgstr "" + +msgid "Korean" +msgstr "" + +msgid "Kyrgyz" +msgstr "" + +msgid "Luxembourgish" +msgstr "" + +msgid "Lithuanian" +msgstr "" + +msgid "Latvian" +msgstr "" + +msgid "Macedonian" +msgstr "" + +msgid "Malayalam" +msgstr "" + +msgid "Mongolian" +msgstr "" + +msgid "Marathi" +msgstr "" + +msgid "Burmese" +msgstr "" + +msgid "Norwegian Bokmål" +msgstr "" + +msgid "Nepali" +msgstr "" + +msgid "Dutch" +msgstr "டச்சு" + +msgid "Norwegian Nynorsk" +msgstr "" + +msgid "Ossetic" +msgstr "" + +msgid "Punjabi" +msgstr "" + +msgid "Polish" +msgstr "" + +msgid "Portuguese" +msgstr "" + +msgid "Brazilian Portuguese" +msgstr "" + +msgid "Romanian" +msgstr "ரோமானியன்" + +msgid "Russian" +msgstr "ரஷ்யன்" + +msgid "Slovak" +msgstr "சுலோவாக்" + +msgid "Slovenian" +msgstr "ஸ்லோவேனியன்" + +msgid "Albanian" +msgstr "" + +msgid "Serbian" +msgstr "செர்பியன்" + +msgid "Serbian Latin" +msgstr "" + +msgid "Swedish" +msgstr "சுவிடிஷ்" + +msgid "Swahili" +msgstr "" + +msgid "Tamil" +msgstr "தமிழ்" + +msgid "Telugu" +msgstr "" + +msgid "Tajik" +msgstr "" + +msgid "Thai" +msgstr "" + +msgid "Turkmen" +msgstr "" + +msgid "Turkish" +msgstr "துருக்கிஷ்" + +msgid "Tatar" +msgstr "" + +msgid "Udmurt" +msgstr "" + +msgid "Ukrainian" +msgstr "உக்ரேனியன்" + +msgid "Urdu" +msgstr "" + +msgid "Uzbek" +msgstr "" + +msgid "Vietnamese" +msgstr "" + +msgid "Simplified Chinese" +msgstr "எளிய சீன மொழி" + +msgid "Traditional Chinese" +msgstr "மரபு சீன மொழி" + +msgid "Messages" +msgstr "" + +msgid "Site Maps" +msgstr "" + +msgid "Static Files" +msgstr "" + +msgid "Syndication" +msgstr "" + +msgid "That page number is not an integer" +msgstr "" + +msgid "That page number is less than 1" +msgstr "" + +msgid "That page contains no results" +msgstr "" + +msgid "Enter a valid value." +msgstr "" + +msgid "Enter a valid URL." +msgstr "" + +msgid "Enter a valid integer." +msgstr "" + +msgid "Enter a valid email address." +msgstr "" + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" + +msgid "Enter a valid IPv4 address." +msgstr "" + +msgid "Enter a valid IPv6 address." +msgstr "" + +msgid "Enter a valid IPv4 or IPv6 address." +msgstr "" + +msgid "Enter only digits separated by commas." +msgstr "இங்கு எண்களை மட்டுமே எழுதவும் காமவாள் தனிமைபடுத்தவும் " + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "" + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "" + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "" + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +msgstr[1] "" + +msgid "Enter a number." +msgstr "" + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" + +msgid "Null characters are not allowed." +msgstr "" + +msgid "and" +msgstr "மற்றும்" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "" + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "" + +msgid "This field cannot be null." +msgstr "இந்த புலம் காலியாக இருக்கக் கூடாது" + +msgid "This field cannot be blank." +msgstr "" + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "" + +#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'. +#. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "" + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "" + +msgid "Boolean (Either True or False)" +msgstr "பூலியன் (சரி அல்லது தவறு)" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "" + +msgid "Comma-separated integers" +msgstr "கமாவாள் பிரிக்கப்பட்ட முழு எண்" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" + +msgid "Date (without time)" +msgstr "தேதி (நேரமில்லாமல்)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" + +msgid "Date (with time)" +msgstr "தேதி (நேரமுடன்)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "" + +msgid "Decimal number" +msgstr "தசம எண்கள்" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" + +msgid "Duration" +msgstr "" + +msgid "Email address" +msgstr "" + +msgid "File path" +msgstr "கோப்புப் பாதை" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "" + +msgid "Floating point number" +msgstr "" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "" + +msgid "Integer" +msgstr "முழு எண்" + +msgid "Big (8 byte) integer" +msgstr "" + +msgid "IPv4 address" +msgstr "" + +msgid "IP address" +msgstr "IP விலாசம்" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "" + +msgid "Boolean (Either True, False or None)" +msgstr "இலக்கு முறை (சரி, தவறு அல்லது ஒன்றும் இல்லை)" + +msgid "Positive big integer" +msgstr "" + +msgid "Positive integer" +msgstr "" + +msgid "Positive small integer" +msgstr "" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "" + +msgid "Small integer" +msgstr "" + +msgid "Text" +msgstr "உரை" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" + +msgid "Time" +msgstr "நேரம்" + +msgid "URL" +msgstr "URL" + +msgid "Raw binary data" +msgstr "" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "" + +msgid "Universally unique identifier" +msgstr "" + +msgid "File" +msgstr "" + +msgid "Image" +msgstr "" + +msgid "A JSON object" +msgstr "" + +msgid "Value must be valid JSON." +msgstr "" + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "" + +msgid "Foreign Key (type determined by related field)" +msgstr "" + +msgid "One-to-one relationship" +msgstr "" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "" + +msgid "Many-to-many relationship" +msgstr "" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr "" + +msgid "This field is required." +msgstr "இந்த புலத்தில் மதிப்பு தேவை" + +msgid "Enter a whole number." +msgstr "முழு எண் மட்டுமே எழுதவும்" + +msgid "Enter a valid date." +msgstr "" + +msgid "Enter a valid time." +msgstr "" + +msgid "Enter a valid date/time." +msgstr "" + +msgid "Enter a valid duration." +msgstr "" + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "" + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "அந்த பக்கத்தின் encoding வகையைப் பரிசோதிக்க.கோப்பு சமர்பிக்கப் பட்டவில்லை " + +msgid "No file was submitted." +msgstr "" + +msgid "The submitted file is empty." +msgstr "சமர்பிக்கப் பட்ட கோப்புக் காலியாக உள்ளது" + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" +msgstr[1] "" + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "" + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" +"முறையான படம் மட்டுமே பதிவேற்றம் செய்யவும். நீங்கள் பதிவேற்றம் செய்த கோப்பு படம் அள்ளாத " +"அல்லது கெட்டுப்போன கோப்பாகும்" + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "" + +msgid "Enter a list of values." +msgstr "" + +msgid "Enter a complete value." +msgstr "" + +msgid "Enter a valid UUID." +msgstr "" + +msgid "Enter a valid JSON." +msgstr "" + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr "" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "" + +msgid "ManagementForm data is missing or has been tampered with" +msgstr "" + +#, python-format +msgid "Please submit %d or fewer forms." +msgid_plural "Please submit %d or fewer forms." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "Please submit %d or more forms." +msgid_plural "Please submit %d or more forms." +msgstr[0] "" +msgstr[1] "" + +msgid "Order" +msgstr "" + +msgid "Delete" +msgstr "நீக்குக" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "" + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "" + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" + +msgid "Please correct the duplicate values below." +msgstr "" + +msgid "The inline value did not match the parent instance." +msgstr "" + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "" + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "" + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" + +msgid "Clear" +msgstr "" + +msgid "Currently" +msgstr "" + +msgid "Change" +msgstr "மாற்றுக" + +msgid "Unknown" +msgstr "தெரியாத" + +msgid "Yes" +msgstr "ஆம்" + +msgid "No" +msgstr "இல்லை" + +#. Translators: Please do not add spaces around commas. +msgid "yes,no,maybe" +msgstr "ஆம்,இல்லை,இருக்கலாம்" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%s KB" +msgstr "" + +#, python-format +msgid "%s MB" +msgstr "" + +#, python-format +msgid "%s GB" +msgstr "" + +#, python-format +msgid "%s TB" +msgstr "" + +#, python-format +msgid "%s PB" +msgstr "" + +msgid "p.m." +msgstr "" + +msgid "a.m." +msgstr "" + +msgid "PM" +msgstr "" + +msgid "AM" +msgstr "" + +msgid "midnight" +msgstr "" + +msgid "noon" +msgstr "" + +msgid "Monday" +msgstr "திங்கள்" + +msgid "Tuesday" +msgstr "செவ்வாய்" + +msgid "Wednesday" +msgstr "புதன்" + +msgid "Thursday" +msgstr "வியாழன்" + +msgid "Friday" +msgstr "வெள்ளி" + +msgid "Saturday" +msgstr "சனி" + +msgid "Sunday" +msgstr "ஞாயிறு" + +msgid "Mon" +msgstr "" + +msgid "Tue" +msgstr "" + +msgid "Wed" +msgstr "" + +msgid "Thu" +msgstr "" + +msgid "Fri" +msgstr "" + +msgid "Sat" +msgstr "" + +msgid "Sun" +msgstr "" + +msgid "January" +msgstr "ஜனவரி" + +msgid "February" +msgstr "பிப்ரவரி" + +msgid "March" +msgstr "மார்ச்" + +msgid "April" +msgstr "ஏப்ரல்" + +msgid "May" +msgstr "மே" + +msgid "June" +msgstr "ஜூன்" + +msgid "July" +msgstr "ஜூலை" + +msgid "August" +msgstr "ஆகஸ்டு" + +msgid "September" +msgstr "செப்டம்பர்" + +msgid "October" +msgstr "அக்டோபர்" + +msgid "November" +msgstr "நவம்பர்" + +msgid "December" +msgstr "டிசம்பர்" + +msgid "jan" +msgstr "ஜன" + +msgid "feb" +msgstr "பிப்" + +msgid "mar" +msgstr "மார்" + +msgid "apr" +msgstr "ஏப்" + +msgid "may" +msgstr "மே" + +msgid "jun" +msgstr "ஜூன்" + +msgid "jul" +msgstr "ஜூலை" + +msgid "aug" +msgstr "ஆக" + +msgid "sep" +msgstr "செப்" + +msgid "oct" +msgstr "அக்" + +msgid "nov" +msgstr "நவ" + +msgid "dec" +msgstr "டிச" + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "" + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "" + +msgctxt "abbrev. month" +msgid "March" +msgstr "மார்ச்" + +msgctxt "abbrev. month" +msgid "April" +msgstr "ஏப்ரல்" + +msgctxt "abbrev. month" +msgid "May" +msgstr "மே" + +msgctxt "abbrev. month" +msgid "June" +msgstr "ஜூன்" + +msgctxt "abbrev. month" +msgid "July" +msgstr "ஜூலை" + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "" + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "" + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "" + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "" + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "" + +msgctxt "alt. month" +msgid "January" +msgstr "ஜனவரி" + +msgctxt "alt. month" +msgid "February" +msgstr "பிப்ரவரி" + +msgctxt "alt. month" +msgid "March" +msgstr "மார்ச்" + +msgctxt "alt. month" +msgid "April" +msgstr "ஏப்ரல்" + +msgctxt "alt. month" +msgid "May" +msgstr "மே" + +msgctxt "alt. month" +msgid "June" +msgstr "ஜூன்" + +msgctxt "alt. month" +msgid "July" +msgstr "ஜூலை" + +msgctxt "alt. month" +msgid "August" +msgstr "ஆகஸ்டு" + +msgctxt "alt. month" +msgid "September" +msgstr "செப்டம்பர்" + +msgctxt "alt. month" +msgid "October" +msgstr "அக்டோபர்" + +msgctxt "alt. month" +msgid "November" +msgstr "நவம்பர்" + +msgctxt "alt. month" +msgid "December" +msgstr "டிசம்பர்" + +msgid "This is not a valid IPv6 address." +msgstr "" + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "" + +msgid "or" +msgstr "" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr "" + +#, python-format +msgid "%d year" +msgid_plural "%d years" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d month" +msgid_plural "%d months" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d week" +msgid_plural "%d weeks" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d day" +msgid_plural "%d days" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "" +msgstr[1] "" + +msgid "Forbidden" +msgstr "" + +msgid "CSRF verification failed. Request aborted." +msgstr "" + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your Web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" + +msgid "More information is available with DEBUG=True." +msgstr "" + +msgid "No year specified" +msgstr "" + +msgid "Date out of range" +msgstr "" + +msgid "No month specified" +msgstr "" + +msgid "No day specified" +msgstr "" + +msgid "No week specified" +msgstr "" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "" + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "" + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "" + +msgid "Directory indexes are not allowed here." +msgstr "" + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "" + +#, python-format +msgid "Index of %(directory)s" +msgstr "" + +msgid "Django: the Web framework for perfectionists with deadlines." +msgstr "" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" + +msgid "The install worked successfully! Congratulations!" +msgstr "" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not configured any " +"URLs." +msgstr "" + +msgid "Django Documentation" +msgstr "" + +msgid "Topics, references, & how-to’s" +msgstr "" + +msgid "Tutorial: A Polling App" +msgstr "" + +msgid "Get started with Django" +msgstr "" + +msgid "Django Community" +msgstr "" + +msgid "Connect, get help, or contribute" +msgstr "" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/ta/__init__.py b/venv/lib/python3.12/site-packages/django/conf/locale/ta/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/ta/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/ta/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4a8ec347086211dbeb08057b53fd4ed49e006613 GIT binary patch literal 198 zcmX@j%ge<81o5sX(m?cM5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!O4ZNE&rQ|OP0Yy6 zFHO;RNiEZNN=(kybEFQ_cZ$j>v@Gc?jK&MZmQEdVM^ zOiwM=Pssu+OwP|s)6dCIPRvQwFGgjEsy$%s>_Z#hx^P literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/ta/__pycache__/formats.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/ta/__pycache__/formats.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e3502be537e7dad9b0bd2317054ecefca5e89113 GIT binary patch literal 327 zcmX@j%ge<81o5sX(pE7sFgylvV1NKx!)K5aex>MV$>Kp=qKeQ z=B4NBm!;;F>E~o7=@(R%WaQ@=>lqs97iX5F>J|VMCZ?wr>!)Oa6(;BBrRnG7Cnx5l z>X#(yr{x#rCYBWI6;%G>u*uC&Da}c>E8+xN3i5ohJdpUn%*e?2fs27(yn*`$pJ)U3 X2Q~%~$qNhuH$-GEG6)v21JwWk(T`e? literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/ta/formats.py b/venv/lib/python3.12/site-packages/django/conf/locale/ta/formats.py new file mode 100644 index 0000000000..d023608ca2 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/ta/formats.py @@ -0,0 +1,21 @@ +# This file is distributed under the same license as the Django package. +# +# The *_FORMAT strings use the Django date format syntax, +# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date +DATE_FORMAT = "j F, Y" +TIME_FORMAT = "g:i A" +# DATETIME_FORMAT = +# YEAR_MONTH_FORMAT = +MONTH_DAY_FORMAT = "j F" +SHORT_DATE_FORMAT = "j M, Y" +# SHORT_DATETIME_FORMAT = +# FIRST_DAY_OF_WEEK = + +# The *_INPUT_FORMATS strings use the Python strftime format syntax, +# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior +# DATE_INPUT_FORMATS = +# TIME_INPUT_FORMATS = +# DATETIME_INPUT_FORMATS = +# DECIMAL_SEPARATOR = +# THOUSAND_SEPARATOR = +# NUMBER_GROUPING = diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/te/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/conf/locale/te/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..1366ff278543353a02b3c118f297216c2fd88b1e GIT binary patch literal 13259 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 TJe^oMe015NKo+nAZa4n}oo=qX literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/te/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/conf/locale/te/LC_MESSAGES/django.po new file mode 100644 index 0000000000..168ffa4d42 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/te/LC_MESSAGES/django.po @@ -0,0 +1,1233 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# bhaskar teja yerneni , 2011 +# Claude Paroz , 2020 +# Jannis Leidel , 2011 +# ప్రవీణ్ ఇళ్ళ , 2013 +# వీవెన్ , 2011 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-05-19 20:23+0200\n" +"PO-Revision-Date: 2020-07-14 21:42+0000\n" +"Last-Translator: Transifex Bot <>\n" +"Language-Team: Telugu (http://www.transifex.com/django/django/language/te/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: te\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Afrikaans" +msgstr "ఆఫ్రికాన్స్" + +msgid "Arabic" +msgstr "ఆరబిక్" + +msgid "Algerian Arabic" +msgstr "" + +msgid "Asturian" +msgstr "" + +msgid "Azerbaijani" +msgstr "అజేర్బైజని " + +msgid "Bulgarian" +msgstr "బల్గేరియన్" + +msgid "Belarusian" +msgstr "బెలారషియన్" + +msgid "Bengali" +msgstr "బెంగాలీ" + +msgid "Breton" +msgstr "బ్రిటన్" + +msgid "Bosnian" +msgstr "బోస్నియన్" + +msgid "Catalan" +msgstr "కాటలాన్" + +msgid "Czech" +msgstr "ఛెక్" + +msgid "Welsh" +msgstr "వెల్ష్" + +msgid "Danish" +msgstr "డానిష్" + +msgid "German" +msgstr "జెర్మన్" + +msgid "Lower Sorbian" +msgstr "" + +msgid "Greek" +msgstr "గ్రీక్" + +msgid "English" +msgstr "ఆంగ్లం" + +msgid "Australian English" +msgstr "" + +msgid "British English" +msgstr "బ్రిటీష్ ఆంగ్లం" + +msgid "Esperanto" +msgstr "ఎస్పరాంటో" + +msgid "Spanish" +msgstr "స్పానిష్" + +msgid "Argentinian Spanish" +msgstr "అర్జెంటీనా స్పానిష్" + +msgid "Colombian Spanish" +msgstr "" + +msgid "Mexican Spanish" +msgstr "మెక్షికన్ స్పానిష్ " + +msgid "Nicaraguan Spanish" +msgstr "" + +msgid "Venezuelan Spanish" +msgstr "వెనుజులా స్పానిష్" + +msgid "Estonian" +msgstr "ఎస్టొనియన్" + +msgid "Basque" +msgstr "బాస్క్" + +msgid "Persian" +msgstr "పారసీ" + +msgid "Finnish" +msgstr "ఫీన్నిష్" + +msgid "French" +msgstr "ఫ్రెంచ్" + +msgid "Frisian" +msgstr "ఫ్రిసియన్" + +msgid "Irish" +msgstr "ఐరిష్" + +msgid "Scottish Gaelic" +msgstr "" + +msgid "Galician" +msgstr "గలిసియన్" + +msgid "Hebrew" +msgstr "హీబ్రూ" + +msgid "Hindi" +msgstr "హిందీ" + +msgid "Croatian" +msgstr "క్రొయేషియన్" + +msgid "Upper Sorbian" +msgstr "" + +msgid "Hungarian" +msgstr "హంగేరియన్" + +msgid "Armenian" +msgstr "" + +msgid "Interlingua" +msgstr "ఇంటర్లింగ్వా" + +msgid "Indonesian" +msgstr "ఇండోనేషియన్" + +msgid "Igbo" +msgstr "" + +msgid "Ido" +msgstr "" + +msgid "Icelandic" +msgstr "ఐస్లాండిక్" + +msgid "Italian" +msgstr "ఇటాలియవ్" + +msgid "Japanese" +msgstr "జపనీ" + +msgid "Georgian" +msgstr "జార్జియన్" + +msgid "Kabyle" +msgstr "" + +msgid "Kazakh" +msgstr "కజఖ్" + +msgid "Khmer" +msgstr "ఖ్మెర్" + +msgid "Kannada" +msgstr "కన్నడ" + +msgid "Korean" +msgstr "కొరియన్" + +msgid "Kyrgyz" +msgstr "" + +msgid "Luxembourgish" +msgstr "లగ్జెంబర్గిష్" + +msgid "Lithuanian" +msgstr "లిథుయేనియన్" + +msgid "Latvian" +msgstr "లాత్వియన్" + +msgid "Macedonian" +msgstr "మెసిడోనియన్" + +msgid "Malayalam" +msgstr "మలయాళం" + +msgid "Mongolian" +msgstr "మంగోలియన్" + +msgid "Marathi" +msgstr "" + +msgid "Burmese" +msgstr "బర్మీస్" + +msgid "Norwegian Bokmål" +msgstr "" + +msgid "Nepali" +msgstr "నేపాలీ" + +msgid "Dutch" +msgstr "డచ్" + +msgid "Norwegian Nynorsk" +msgstr "నోర్వేగియన్ న్య్నోర్స్క్ " + +msgid "Ossetic" +msgstr "" + +msgid "Punjabi" +msgstr "పంజాబీ" + +msgid "Polish" +msgstr "పొలిష్" + +msgid "Portuguese" +msgstr "పోర్చుగీస్" + +msgid "Brazilian Portuguese" +msgstr "బ్రజీలియన్ పోర్చుగీస్" + +msgid "Romanian" +msgstr "రొమానియన్" + +msgid "Russian" +msgstr "రష్యన్" + +msgid "Slovak" +msgstr "స్లొవాక్" + +msgid "Slovenian" +msgstr "స్లొవానియన్" + +msgid "Albanian" +msgstr "అల్బేనియన్" + +msgid "Serbian" +msgstr "సెర్బియన్" + +msgid "Serbian Latin" +msgstr "సెర్బియన్ లాటిన్" + +msgid "Swedish" +msgstr "స్వీడిష్" + +msgid "Swahili" +msgstr "స్వాహిలి" + +msgid "Tamil" +msgstr "తమిళం" + +msgid "Telugu" +msgstr "తెలుగు" + +msgid "Tajik" +msgstr "" + +msgid "Thai" +msgstr "థాయి" + +msgid "Turkmen" +msgstr "" + +msgid "Turkish" +msgstr "టర్కిష్" + +msgid "Tatar" +msgstr "టటర్" + +msgid "Udmurt" +msgstr "" + +msgid "Ukrainian" +msgstr "ఉక్రేనియన్" + +msgid "Urdu" +msgstr "ఉర్దూ" + +msgid "Uzbek" +msgstr "" + +msgid "Vietnamese" +msgstr "వియెత్నామీ" + +msgid "Simplified Chinese" +msgstr "సరళ చైనీ" + +msgid "Traditional Chinese" +msgstr "సాంప్రదాయ చైనీ" + +msgid "Messages" +msgstr "" + +msgid "Site Maps" +msgstr "" + +msgid "Static Files" +msgstr "" + +msgid "Syndication" +msgstr "" + +msgid "That page number is not an integer" +msgstr "" + +msgid "That page number is less than 1" +msgstr "" + +msgid "That page contains no results" +msgstr "" + +msgid "Enter a valid value." +msgstr "సరైన విలువని ఇవ్వండి." + +msgid "Enter a valid URL." +msgstr "సరైన URL ఇవ్వండి." + +msgid "Enter a valid integer." +msgstr "" + +msgid "Enter a valid email address." +msgstr "దయచేసి సరైన ఈమెయిల్ చిరునామాను ప్రవేశపెట్టండి." + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" + +msgid "Enter a valid IPv4 address." +msgstr "దయచేసి సరైన IPv4 అడ్రస్ ఇవ్వండి" + +msgid "Enter a valid IPv6 address." +msgstr "" + +msgid "Enter a valid IPv4 or IPv6 address." +msgstr "" + +msgid "Enter only digits separated by commas." +msgstr "కామాల తో అంకెలు విడడీసి ఇవ్వండి " + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "" +"దయచేసి దీని విలువ %(limit_value)s గ ఉండేట్లు చూసుకొనుము. ( మీరు సమర్పించిన విలువ " +"%(show_value)s )" + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "దయచేసి దీని విలువ %(limit_value)s కు సమానముగా లేక తక్కువగా ఉండేట్లు చూసుకొనుము." + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "దయచేసి దీని విలువ %(limit_value)s కు సమానముగా లేక ఎక్కువగా ఉండేట్లు చూసుకొనుము." + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +msgstr[1] "" + +msgid "Enter a number." +msgstr "దయచేసి పూర్ణ సంఖ్య ఇవ్వండి" + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" + +msgid "Null characters are not allowed." +msgstr "" + +msgid "and" +msgstr "మరియు" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "" + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "" + +msgid "This field cannot be null." +msgstr "ఈ ఫీల్డ్ కాళీగా ఉందకూడడు " + +msgid "This field cannot be blank." +msgstr "ఈ ఖాళీని తప్పనిసరిగా పూరించాలి" + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "" + +#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'. +#. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "" + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "" + +msgid "Boolean (Either True or False)" +msgstr "బూలియన్ (అవునా లేక కాదా)" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "పదబంధం (గరిష్ఠం %(max_length)s)" + +msgid "Comma-separated integers" +msgstr "కామా తో విడడీసిన సంఖ్య" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" + +msgid "Date (without time)" +msgstr "తేదీ (సమయం లేకుండా)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" + +msgid "Date (with time)" +msgstr "తేది (సమయం తో)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "" + +msgid "Decimal number" +msgstr "దశగణసంఖ్య" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" + +msgid "Duration" +msgstr "" + +msgid "Email address" +msgstr "ఈమెయిలు చిరునామా" + +msgid "File path" +msgstr "ఫైల్ పాత్" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "" + +msgid "Floating point number" +msgstr "" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "" + +msgid "Integer" +msgstr "పూర్ణసంఖ్య" + +msgid "Big (8 byte) integer" +msgstr "" + +msgid "IPv4 address" +msgstr "" + +msgid "IP address" +msgstr "ఐపీ చిరునామా" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "" + +msgid "Boolean (Either True, False or None)" +msgstr "" + +msgid "Positive big integer" +msgstr "" + +msgid "Positive integer" +msgstr "" + +msgid "Positive small integer" +msgstr "" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "" + +msgid "Small integer" +msgstr "" + +msgid "Text" +msgstr "పాఠ్యం" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" + +msgid "Time" +msgstr "సమయం" + +msgid "URL" +msgstr "URL" + +msgid "Raw binary data" +msgstr "" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "" + +msgid "Universally unique identifier" +msgstr "" + +msgid "File" +msgstr "దస్త్రం" + +msgid "Image" +msgstr "బొమ్మ" + +msgid "A JSON object" +msgstr "" + +msgid "Value must be valid JSON." +msgstr "" + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "" + +msgid "Foreign Key (type determined by related field)" +msgstr "" + +msgid "One-to-one relationship" +msgstr "" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "" + +msgid "Many-to-many relationship" +msgstr "" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr "" + +msgid "This field is required." +msgstr "ఈ ఫీల్డ్ అవసరము" + +msgid "Enter a whole number." +msgstr "పూర్ణ సంఖ్య ఇవ్వండి" + +msgid "Enter a valid date." +msgstr "దయచేసి సరైన తేది ఇవ్వండి." + +msgid "Enter a valid time." +msgstr "దయచేసి సరైన సమయం ఇవ్వండి." + +msgid "Enter a valid date/time." +msgstr "దయచేసి సరైన తెది/సమయం ఇవ్వండి." + +msgid "Enter a valid duration." +msgstr "" + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "" + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "" + +msgid "No file was submitted." +msgstr "ఫైలు సమర్పించబడలేదు." + +msgid "The submitted file is empty." +msgstr "మీరు సమర్పించిన ఫైల్ కాళీగా ఉంది " + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" +msgstr[1] "" + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "" + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "" + +msgid "Enter a list of values." +msgstr "సరైన విలువల జాబితాను ఇవ్వండి." + +msgid "Enter a complete value." +msgstr "" + +msgid "Enter a valid UUID." +msgstr "" + +msgid "Enter a valid JSON." +msgstr "" + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr "" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "" + +msgid "ManagementForm data is missing or has been tampered with" +msgstr "" + +#, python-format +msgid "Please submit %d or fewer forms." +msgid_plural "Please submit %d or fewer forms." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "Please submit %d or more forms." +msgid_plural "Please submit %d or more forms." +msgstr[0] "" +msgstr[1] "" + +msgid "Order" +msgstr "అంతరము" + +msgid "Delete" +msgstr "తొలగించు" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "దయచేసి %(field)s యొక్క నకలు విలువను సరిదిద్దుకోండి." + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "దయచేసి %(field)s యొక్క నకలు విలువను సరిదిద్దుకోండి. దీని విలువ అద్వితీయమయినది " + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" + +msgid "Please correct the duplicate values below." +msgstr "దయచేసి క్రింద ఉన్న నకలు విలువను సరిదిద్దుకోండి." + +msgid "The inline value did not match the parent instance." +msgstr "" + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "" + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "" + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" + +msgid "Clear" +msgstr "" + +msgid "Currently" +msgstr "ప్రస్తుతము " + +msgid "Change" +msgstr "మార్చు" + +msgid "Unknown" +msgstr "తెలియనది" + +msgid "Yes" +msgstr "అవును" + +msgid "No" +msgstr "కాదు" + +#. Translators: Please do not add spaces around commas. +msgid "yes,no,maybe" +msgstr "అవును,కాదు,ఏమొ" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)d బైటు" +msgstr[1] "%(size)d బైట్లు" + +#, python-format +msgid "%s KB" +msgstr "%s కిబై" + +#, python-format +msgid "%s MB" +msgstr "%s మెబై" + +#, python-format +msgid "%s GB" +msgstr "%s గిబై" + +#, python-format +msgid "%s TB" +msgstr "" + +#, python-format +msgid "%s PB" +msgstr "" + +msgid "p.m." +msgstr "p.m." + +msgid "a.m." +msgstr "a.m." + +msgid "PM" +msgstr "PM" + +msgid "AM" +msgstr "AM" + +msgid "midnight" +msgstr "అర్ధరాత్రి" + +msgid "noon" +msgstr "మధ్యాహ్నం" + +msgid "Monday" +msgstr "సోమవారం" + +msgid "Tuesday" +msgstr "మంగళవారం" + +msgid "Wednesday" +msgstr "బుధవారం" + +msgid "Thursday" +msgstr "గురువారం" + +msgid "Friday" +msgstr "శుక్రవారం" + +msgid "Saturday" +msgstr "శనివారం" + +msgid "Sunday" +msgstr "ఆదివారం" + +msgid "Mon" +msgstr "సోమ" + +msgid "Tue" +msgstr "మంగళ" + +msgid "Wed" +msgstr "బుధ" + +msgid "Thu" +msgstr "గురు" + +msgid "Fri" +msgstr "శుక్ర" + +msgid "Sat" +msgstr "శని" + +msgid "Sun" +msgstr "ఆది" + +msgid "January" +msgstr "జనవరి" + +msgid "February" +msgstr "ఫిబ్రవరి" + +msgid "March" +msgstr "మార్చి" + +msgid "April" +msgstr "ఎప్రిల్" + +msgid "May" +msgstr "మే" + +msgid "June" +msgstr "జూన్" + +msgid "July" +msgstr "జులై" + +msgid "August" +msgstr "ఆగష్టు" + +msgid "September" +msgstr "సెప్టెంబర్" + +msgid "October" +msgstr "అక్టోబర్" + +msgid "November" +msgstr "నవంబర్" + +msgid "December" +msgstr "డిసెంబర్" + +msgid "jan" +msgstr "జన" + +msgid "feb" +msgstr "ఫిబ్ర" + +msgid "mar" +msgstr "మార్చి" + +msgid "apr" +msgstr "ఎప్రి" + +msgid "may" +msgstr "మే" + +msgid "jun" +msgstr "జూన్" + +msgid "jul" +msgstr "జూలై" + +msgid "aug" +msgstr "ఆగ" + +msgid "sep" +msgstr "సెప్టెం" + +msgid "oct" +msgstr "అక్టో" + +msgid "nov" +msgstr "నవం" + +msgid "dec" +msgstr "డిసెం" + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "జన." + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "ఫిబ్ర." + +msgctxt "abbrev. month" +msgid "March" +msgstr "మార్చి" + +msgctxt "abbrev. month" +msgid "April" +msgstr "ఏప్రి." + +msgctxt "abbrev. month" +msgid "May" +msgstr "మే" + +msgctxt "abbrev. month" +msgid "June" +msgstr "జూన్" + +msgctxt "abbrev. month" +msgid "July" +msgstr "జూలై" + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "ఆగ." + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "సెప్టెం." + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "అక్టో." + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "నవం." + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "డిసెం." + +msgctxt "alt. month" +msgid "January" +msgstr "జనవరి" + +msgctxt "alt. month" +msgid "February" +msgstr "ఫిబ్రవరి" + +msgctxt "alt. month" +msgid "March" +msgstr "మార్చి" + +msgctxt "alt. month" +msgid "April" +msgstr "ఏప్రిల్" + +msgctxt "alt. month" +msgid "May" +msgstr "మే" + +msgctxt "alt. month" +msgid "June" +msgstr "జూన్" + +msgctxt "alt. month" +msgid "July" +msgstr "జూలై" + +msgctxt "alt. month" +msgid "August" +msgstr "ఆగస్ట్" + +msgctxt "alt. month" +msgid "September" +msgstr "సెప్టెంబర్" + +msgctxt "alt. month" +msgid "October" +msgstr "అక్టోబర్" + +msgctxt "alt. month" +msgid "November" +msgstr "నవంబర్" + +msgctxt "alt. month" +msgid "December" +msgstr "డిసెంబర్" + +msgid "This is not a valid IPv6 address." +msgstr "" + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "" + +msgid "or" +msgstr "లేదా" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr ", " + +#, python-format +msgid "%d year" +msgid_plural "%d years" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d month" +msgid_plural "%d months" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d week" +msgid_plural "%d weeks" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d day" +msgid_plural "%d days" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "" +msgstr[1] "" + +msgid "Forbidden" +msgstr "" + +msgid "CSRF verification failed. Request aborted." +msgstr "" + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your Web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" + +msgid "More information is available with DEBUG=True." +msgstr "" + +msgid "No year specified" +msgstr "" + +msgid "Date out of range" +msgstr "" + +msgid "No month specified" +msgstr "" + +msgid "No day specified" +msgstr "" + +msgid "No week specified" +msgstr "" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "" + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "" + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "" + +msgid "Directory indexes are not allowed here." +msgstr "" + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "" + +#, python-format +msgid "Index of %(directory)s" +msgstr "" + +msgid "Django: the Web framework for perfectionists with deadlines." +msgstr "" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" + +msgid "The install worked successfully! Congratulations!" +msgstr "" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not configured any " +"URLs." +msgstr "" + +msgid "Django Documentation" +msgstr "" + +msgid "Topics, references, & how-to’s" +msgstr "" + +msgid "Tutorial: A Polling App" +msgstr "" + +msgid "Get started with Django" +msgstr "" + +msgid "Django Community" +msgstr "" + +msgid "Connect, get help, or contribute" +msgstr "" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/te/__init__.py b/venv/lib/python3.12/site-packages/django/conf/locale/te/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/te/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/te/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..55598b6ecb859205ab8e84eced8286d927676b79 GIT binary patch literal 198 zcmX@j%ge<81o5sX(m?cM5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!O4ZNE&rQ|OP0Yy6 zFHO;RNiEZNN=(kybEFQ_cZ$j>v@Gc?jK&MZmQEdVM^ zOiwM=Pssu+OwP|s)6dCIPRvQwFGgjEsy$%s>_Z##%Il literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/te/__pycache__/formats.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/te/__pycache__/formats.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c973ce616c87e4ba0a20c24fe44036c74eee9844 GIT binary patch literal 325 zcmX@j%ge<81o5sX(pE4rFgylvV1Nk$##ix42y#LtNwC{DXWQLvC@0c>2OQ0>1u!As+EA zj*&2F!C(*npb(%4T*pd=&mafEFQ_cZ$j>v@Gc?jK&MZmQEdVM^OiwM=Pssu+OwP|s)6dCIPRvQw zFG~CAn}2jk&*EO7X!ao1NRL+(FX1h WYz!ij7Z?O?h)7>#5G-N`ssR99|5`Qx literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/te/formats.py b/venv/lib/python3.12/site-packages/django/conf/locale/te/formats.py new file mode 100644 index 0000000000..bb7f2d13d2 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/te/formats.py @@ -0,0 +1,21 @@ +# This file is distributed under the same license as the Django package. +# +# The *_FORMAT strings use the Django date format syntax, +# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date +DATE_FORMAT = "j F Y" +TIME_FORMAT = "g:i A" +# DATETIME_FORMAT = +# YEAR_MONTH_FORMAT = +MONTH_DAY_FORMAT = "j F" +SHORT_DATE_FORMAT = "j M Y" +# SHORT_DATETIME_FORMAT = +# FIRST_DAY_OF_WEEK = + +# The *_INPUT_FORMATS strings use the Python strftime format syntax, +# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior +# DATE_INPUT_FORMATS = +# TIME_INPUT_FORMATS = +# DATETIME_INPUT_FORMATS = +# DECIMAL_SEPARATOR = +# THOUSAND_SEPARATOR = +# NUMBER_GROUPING = diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/tg/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/conf/locale/tg/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..e93dc87f2299b52c7567091de1a48a2ebf081e35 GIT binary patch literal 28497 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 Lzu}Kr>PGnw?QV?i literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/tg/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/conf/locale/tg/LC_MESSAGES/django.po new file mode 100644 index 0000000000..05a4ca96b0 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/tg/LC_MESSAGES/django.po @@ -0,0 +1,1299 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Mariusz Felisiak , 2020 +# Surush Sufiew , 2020 +# Siroj Sufiew , 2020 +# Surush Sufiew , 2020 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-05-19 20:23+0200\n" +"PO-Revision-Date: 2020-07-30 18:50+0000\n" +"Last-Translator: Mariusz Felisiak \n" +"Language-Team: Tajik (http://www.transifex.com/django/django/language/tg/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: tg\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Afrikaans" +msgstr "Ҳолландӣ" + +msgid "Arabic" +msgstr "Арабӣ" + +msgid "Algerian Arabic" +msgstr "Арабӣ" + +msgid "Asturian" +msgstr "Астурӣ" + +msgid "Azerbaijani" +msgstr "Озарбойҷонӣ" + +msgid "Bulgarian" +msgstr "Булғорӣ" + +msgid "Belarusian" +msgstr "Белорусӣ" + +msgid "Bengali" +msgstr "Бенгалӣ" + +msgid "Breton" +msgstr "Бретонӣ" + +msgid "Bosnian" +msgstr "Боснӣ" + +msgid "Catalan" +msgstr "Каталанӣ" + +msgid "Czech" +msgstr "Чехӣ" + +msgid "Welsh" +msgstr "Уэлсӣ" + +msgid "Danish" +msgstr "Даниягӣ" + +msgid "German" +msgstr "Олмонӣ" + +msgid "Lower Sorbian" +msgstr "Сербиягӣ" + +msgid "Greek" +msgstr "Юнонӣ" + +msgid "English" +msgstr "Англисӣ" + +msgid "Australian English" +msgstr "Англисии австралиёӣ" + +msgid "British English" +msgstr "Ангилисии бритониёӣ" + +msgid "Esperanto" +msgstr "Эсперантоӣ" + +msgid "Spanish" +msgstr "Испанӣ" + +msgid "Argentinian Spanish" +msgstr "Испании аргентиноӣ" + +msgid "Colombian Spanish" +msgstr "Испании колумбигӣ" + +msgid "Mexican Spanish" +msgstr "Испании мексикоӣ" + +msgid "Nicaraguan Spanish" +msgstr "Никарагуанский испанский" + +msgid "Venezuelan Spanish" +msgstr "Испании венесуэлӣ" + +msgid "Estonian" +msgstr "Эстонӣ" + +msgid "Basque" +msgstr "Баскувӣ" + +msgid "Persian" +msgstr "Форсӣ" + +msgid "Finnish" +msgstr "Финикӣ" + +msgid "French" +msgstr "Фаронсавӣ" + +msgid "Frisian" +msgstr "Фризӣ" + +msgid "Irish" +msgstr "Ирландӣ" + +msgid "Scottish Gaelic" +msgstr "Шотландӣ" + +msgid "Galician" +msgstr "" + +msgid "Hebrew" +msgstr "Ивритӣ" + +msgid "Hindi" +msgstr "Ҳиндӣ" + +msgid "Croatian" +msgstr "Хорватӣ" + +msgid "Upper Sorbian" +msgstr "Себриягӣ" + +msgid "Hungarian" +msgstr "" + +msgid "Armenian" +msgstr "Арманӣ" + +msgid "Interlingua" +msgstr "" + +msgid "Indonesian" +msgstr "Индонезӣ" + +msgid "Igbo" +msgstr "" + +msgid "Ido" +msgstr "" + +msgid "Icelandic" +msgstr "Исландӣ" + +msgid "Italian" +msgstr "Итолиёвӣ" + +msgid "Japanese" +msgstr "Японӣ" + +msgid "Georgian" +msgstr "Грузӣ" + +msgid "Kabyle" +msgstr "Кабилӣ" + +msgid "Kazakh" +msgstr "Қазоқӣ" + +msgid "Khmer" +msgstr "" + +msgid "Kannada" +msgstr "" + +msgid "Korean" +msgstr "Кореӣ" + +msgid "Kyrgyz" +msgstr "" + +msgid "Luxembourgish" +msgstr "Люксембургӣ" + +msgid "Lithuanian" +msgstr "Литвигӣ" + +msgid "Latvian" +msgstr "Латвигӣ" + +msgid "Macedonian" +msgstr "Македонӣ" + +msgid "Malayalam" +msgstr "" + +msgid "Mongolian" +msgstr "Монголӣ" + +msgid "Marathi" +msgstr "" + +msgid "Burmese" +msgstr "" + +msgid "Norwegian Bokmål" +msgstr "Норвежский (Букмол)" + +msgid "Nepali" +msgstr "Непалӣ" + +msgid "Dutch" +msgstr "Голландӣ" + +msgid "Norwegian Nynorsk" +msgstr "Норвегӣ" + +msgid "Ossetic" +msgstr "Осетинӣ" + +msgid "Punjabi" +msgstr "Панҷобӣ" + +msgid "Polish" +msgstr "Полякӣ" + +msgid "Portuguese" +msgstr "Португалӣ" + +msgid "Brazilian Portuguese" +msgstr "Португалии бразилиёгӣ" + +msgid "Romanian" +msgstr "Руминӣ" + +msgid "Russian" +msgstr "Руссӣ" + +msgid "Slovak" +msgstr "Словакӣ" + +msgid "Slovenian" +msgstr "Словенӣ" + +msgid "Albanian" +msgstr "Албанӣ" + +msgid "Serbian" +msgstr "Сербӣ" + +msgid "Serbian Latin" +msgstr "Сербӣ" + +msgid "Swedish" +msgstr "Шведӣ" + +msgid "Swahili" +msgstr "Суахили" + +msgid "Tamil" +msgstr "Тамилӣ" + +msgid "Telugu" +msgstr "Телугу" + +msgid "Tajik" +msgstr "" + +msgid "Thai" +msgstr "Тайский" + +msgid "Turkmen" +msgstr "" + +msgid "Turkish" +msgstr "Туркӣ" + +msgid "Tatar" +msgstr "Тоторӣ" + +msgid "Udmurt" +msgstr "Удмуртӣ" + +msgid "Ukrainian" +msgstr "Украинӣ" + +msgid "Urdu" +msgstr "Урдуӣ" + +msgid "Uzbek" +msgstr "Узбекӣ" + +msgid "Vietnamese" +msgstr "Вэтнамӣ" + +msgid "Simplified Chinese" +msgstr "Хитоӣ" + +msgid "Traditional Chinese" +msgstr "Хитоӣ" + +msgid "Messages" +msgstr "Маълумот" + +msgid "Site Maps" +msgstr "Харитаи сайт" + +msgid "Static Files" +msgstr "Файлҳои статикӣ" + +msgid "Syndication" +msgstr "Тасмаи хабарҳо" + +msgid "That page number is not an integer" +msgstr "Рақами саҳифа бояд адади натуралӣ бошад" + +msgid "That page number is less than 1" +msgstr "Рақами саҳифа камтар аз 1" + +msgid "That page contains no results" +msgstr "Саҳифа холӣ аст" + +msgid "Enter a valid value." +msgstr "Қимматро дуруст ворид созед." + +msgid "Enter a valid URL." +msgstr "Суроға(URL)-ро дуруст ворид созед." + +msgid "Enter a valid integer." +msgstr "Ададро дуруст ворид созед." + +msgid "Enter a valid email address." +msgstr "Суроғаи почтаи электрониро дуруст ворид созед." + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" +"Қимати “slug”-ро дуруст ворид созед, бояд аз ҳарфҳо (“a-z ва A-Z”), рақамҳо, " +"зердефисҳо(_) ва дефисҳо иборат бошад." + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" +"Қимати “slug”-ро дуруст ворид созед, бояд аз Unicode-ҳарфҳо (“a-z ва A-Z”), " +"рақамҳо, зердефисҳо(_) ва дефисҳо иборат бошад." + +msgid "Enter a valid IPv4 address." +msgstr "Шакли дурусти IPv4-суроғаро ворид созед." + +msgid "Enter a valid IPv6 address." +msgstr "Шакли ҳақиқии IPv4-суроғаро ворид кунед." + +msgid "Enter a valid IPv4 or IPv6 address." +msgstr "Шакли ҳақиқии IPv4 ё IPv6 -суроғаро ворид кунед." + +msgid "Enter only digits separated by commas." +msgstr "Рақамҳои бо вергул шудокардашударо ворид созед." + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "" +"Боварӣ ҳосил кунед, ки қиммати — %(limit_value)s (ҳоло шакли — " +"%(show_value)s -ро дорад)." + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "" +"Боварӣ ҳосил кунед, ки ин қиммат хурд ё баробар аст ба %(limit_value)s." + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "" +"Боварӣ ҳосил кунед, ки ин қиммат калон ё баробар аст ба %(limit_value)s." + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +msgstr[1] "" + +msgid "Enter a number." +msgstr "Ададро ворид созед." + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" + +msgid "Null characters are not allowed." +msgstr "Маълумот символӣ мамнӯъро дар бар мегирад: 0-байт" + +msgid "and" +msgstr "ва" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "" +"%(model_name)s бо ин гуна майдонӣ қиматдор %(field_labels)s алакай вуҷуд " +"дорад." + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "Қимати %(value)r дар байни вариантҳои омадашуда вуҷуд надорад." + +msgid "This field cannot be null." +msgstr "Ин майдон наметавонад қимати NULL дошта бошад." + +msgid "This field cannot be blank." +msgstr "Ин майдон наметавонад холӣ бошад." + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "%(model_name)s бо ин гуна %(field_label)s алакай вуҷуд дорад." + +#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'. +#. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" +"Қимат дар майдони «%(field_label)s» бояд барои фрагменти«%(lookup_type)s» " +"ягона бошад, санаҳо барои майдон %(date_field_label)s." + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "Майдони намуди %(field_type)s" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "Қимати “%(value)s” бояд True ё False бошад." + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "Қимати “%(value)s” бояд True, False ё None бошад." + +msgid "Boolean (Either True or False)" +msgstr "Мантиқан (True ё False)" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "Сатр (то %(max_length)s)" + +msgid "Comma-separated integers" +msgstr "Яклухт, бо вергул ҷудокардашуда" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "“%(value)s” шакли нодуруст дорад. Шакли дуруст: сол.моҳ.рӯз, аст" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "“%(value)s” шакли дуруст (сол.моҳ.рӯз) дорад, аммо сана нодуруст аст" + +msgid "Date (without time)" +msgstr "Сана (бе ишораи вақт)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" +"“%(value)s” шакли нодуруст дорад. Шакли дуруст: сол.моҳ.рӯз соат.дақ[:сония[." +"uuuuuu]][TZ] аст" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" +"“%(value)s” шакли дуруст дорад (сол.моҳ.рӯз соат.дақ[:сония[.uuuuuu]][TZ]), " +"аммо 'сана/вақт'' нодуруст аст" + +msgid "Date (with time)" +msgstr "Сана (бо ишораи вақт)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "“%(value)s” бояд адади даҳӣ бошад" + +msgid "Decimal number" +msgstr "Адади 'даҳӣ' ." + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" +"“%(value)s” шакли нодуруст дорад. Шакли дуруст [рӯз] [[соат:]дақ:]сония[." +"uuuuuu]" + +msgid "Duration" +msgstr "Давомнокӣ" + +msgid "Email address" +msgstr "Суроғаи почтаи электронӣ" + +msgid "File path" +msgstr "Суроғаи файл" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "Қимати “%(value)s” бояд бутун бошад" + +msgid "Floating point number" +msgstr "Адади бутун." + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "Қимати “%(value)s” бояд яклухт бошад" + +msgid "Integer" +msgstr "Яклухт" + +msgid "Big (8 byte) integer" +msgstr "Адади калони яклухт (8 байт)" + +msgid "IPv4 address" +msgstr "IPv4 - суроға" + +msgid "IP address" +msgstr "IP-суроға" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "Қимати “%(value)s” бояд 'None', 'True' ё 'False' бошад" + +msgid "Boolean (Either True, False or None)" +msgstr "Мантиқӣ (True, False ё None)" + +msgid "Positive big integer" +msgstr "" + +msgid "Positive integer" +msgstr "Адади яклухти мусбат" + +msgid "Positive small integer" +msgstr "дади яклухти мусбати хурд" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "Слаг (то %(max_length)s)" + +msgid "Small integer" +msgstr "Адади яклухти хурд" + +msgid "Text" +msgstr "Матн" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" +"“%(value)s” шакли нодуруст дорад. Шакли дуруст соат:дақ[:сония[.uuuuuu]" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" +"“%(value)s” шакли дуруст дорад (соат:моҳ[:сония[.uuuuuu, аммо 'вақт' " +"нодуруст қайд шудааст " + +msgid "Time" +msgstr "Вақт" + +msgid "URL" +msgstr "URL" + +msgid "Raw binary data" +msgstr "Маълумоти бинари(дуи)-и коркарднашуда" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "Қимати “%(value)s” барои UUID номувофиқ аст." + +msgid "Universally unique identifier" +msgstr "Майдони UUID, идентификатори универсалии ягона" + +msgid "File" +msgstr "Файл" + +msgid "Image" +msgstr "Тасвир" + +msgid "A JSON object" +msgstr "" + +msgid "Value must be valid JSON." +msgstr "" + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "" +"Объекти модели %(model)s бо майдони %(field)s, -и дорои қимати %(value)r, " +"вуҷқд надорад." + +msgid "Foreign Key (type determined by related field)" +msgstr "" +"Калиди беруна(Foreign Key) (Шакл муайян шудаст аз рӯи майдони алоқамандшуда.)" + +msgid "One-to-one relationship" +msgstr "Алоқаи \"як ба як\"" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "Алоқаи %(from)s-%(to)s" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "Алоқаи %(from)s-%(to)s" + +msgid "Many-to-many relationship" +msgstr "Алоқаи \\'бисёр ба бисёр\\'" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr ":?.!" + +msgid "This field is required." +msgstr "Майдони ҳатмӣ." + +msgid "Enter a whole number." +msgstr "Адади яклухтро ворид кунед." + +msgid "Enter a valid date." +msgstr "Санаи дурстро ворид кунед." + +msgid "Enter a valid time." +msgstr "Вақтро дуруст ворид кунед.." + +msgid "Enter a valid date/time." +msgstr "Сана ва вақтро дуруст ворид кунед." + +msgid "Enter a valid duration." +msgstr "авомнокии дурустро ворид кунед." + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "" +"Миқдори рӯзҳо бояд доираи аз {min_days} то {max_days} -ро дарбар гирад." + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "Файл равон карда нашуд. Шакли кодировкаи формаро тафтиш кунед." + +msgid "No file was submitted." +msgstr "Ягон файл равон карда нашуд" + +msgid "The submitted file is empty." +msgstr "Файли равонкардашуда холӣ аст." + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" +msgstr[1] "" + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "" +"Хоҳиш мекунем файлро бор кунед ё байрақчаи ишоратӣ гузоред \"Тоза кардан\", " +"вале ҳарду амалро дар якҷоягӣ иҷро накунед." + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" +"Тасвири дурустро бор кунед. Файли боркардаи шумо нуқсон дорад ва ё 'тасвира' " +"нест" + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "" +"Варианти дурустро интихоб кунед. %(value)s дар байни варианҳои дастрас вуҷуд " +"надорад." + +msgid "Enter a list of values." +msgstr "Рӯйхати қиматҳоро ворид кунед." + +msgid "Enter a complete value." +msgstr "Рӯйхати ҳамаи қиматҳоро ворид кунед." + +msgid "Enter a valid UUID." +msgstr "Шакли дурусти UUID -ро ворид кунед." + +msgid "Enter a valid JSON." +msgstr "" + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr ":" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "(Майдони махфии %(name)s) %(error)s" + +msgid "ManagementForm data is missing or has been tampered with" +msgstr "Маълумоти идоракунандаи форма вуҷуд надорад ё ин ки осеб дидааст." + +#, python-format +msgid "Please submit %d or fewer forms." +msgid_plural "Please submit %d or fewer forms." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "Please submit %d or more forms." +msgid_plural "Please submit %d or more forms." +msgstr[0] "" +msgstr[1] "" + +msgid "Order" +msgstr "Тартиб" + +msgid "Delete" +msgstr "Нест кардан" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "" +"Илтимос қимати такроршудаистодаи майдони \"%(field)s\" ро тағйир диҳед." + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "" +"Илтимос, қимати майдони %(field)s ро тағйир диҳед, вай бояд 'ягона' бошад." + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"Илтимос, қимати майдони %(field_name)s ро тағйир диҳед, вай бояд барои " +"%(lookup)s дар майдони %(date_field)s ягона бошад (Ягона будан маънои " +"такрорнашавандагиро дорад)." + +msgid "Please correct the duplicate values below." +msgstr "Хоҳиш мекунам, қимати такроршудаистодаи зеринро иваз кунед." + +msgid "The inline value did not match the parent instance." +msgstr "" +"Қимати дар форма воридкардашуда бо қимати формаи база мутобиқат намекунад." + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "" +"Варианти дурустро интихоб кунед. Варианти шумо дар қатори қиматҳои " +"овардашуда вуҷуд надорад." + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "" + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" + +msgid "Clear" +msgstr "Тоза кардан" + +msgid "Currently" +msgstr "Дар айни замон" + +msgid "Change" +msgstr "Тағйир додан" + +msgid "Unknown" +msgstr "Номаълум" + +msgid "Yes" +msgstr "Ҳа" + +msgid "No" +msgstr "Не" + +#. Translators: Please do not add spaces around commas. +msgid "yes,no,maybe" +msgstr "ҳа,не,шояд" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%s KB" +msgstr "%s КБ" + +#, python-format +msgid "%s MB" +msgstr "%s МБ" + +#, python-format +msgid "%s GB" +msgstr "%s ГБ" + +#, python-format +msgid "%s TB" +msgstr "%s ТБ" + +#, python-format +msgid "%s PB" +msgstr "%s ПБ" + +msgid "p.m." +msgstr "н.ш." + +msgid "a.m." +msgstr "н.р." + +msgid "PM" +msgstr "НШ" + +msgid "AM" +msgstr "НР" + +msgid "midnight" +msgstr "нимашабӣ" + +msgid "noon" +msgstr "нисфирузӣ" + +msgid "Monday" +msgstr "Душанбе" + +msgid "Tuesday" +msgstr "Сешанбе" + +msgid "Wednesday" +msgstr "Чоршанбе" + +msgid "Thursday" +msgstr "Панҷшанбе" + +msgid "Friday" +msgstr "Ҷумъа" + +msgid "Saturday" +msgstr "Шанбе" + +msgid "Sunday" +msgstr "Якшанбе" + +msgid "Mon" +msgstr "Дш" + +msgid "Tue" +msgstr "Яш" + +msgid "Wed" +msgstr "Чш" + +msgid "Thu" +msgstr "Пш" + +msgid "Fri" +msgstr "Ҷ" + +msgid "Sat" +msgstr "Ш" + +msgid "Sun" +msgstr "Яш" + +msgid "January" +msgstr "Январ" + +msgid "February" +msgstr "Феврал" + +msgid "March" +msgstr "Март" + +msgid "April" +msgstr "Апрел" + +msgid "May" +msgstr "Май" + +msgid "June" +msgstr "Июн" + +msgid "July" +msgstr "Июл" + +msgid "August" +msgstr "Август" + +msgid "September" +msgstr "Сентябр" + +msgid "October" +msgstr "Октябр" + +msgid "November" +msgstr "Ноябр" + +msgid "December" +msgstr "Декабр" + +msgid "jan" +msgstr "янв" + +msgid "feb" +msgstr "фев" + +msgid "mar" +msgstr "мар" + +msgid "apr" +msgstr "апр" + +msgid "may" +msgstr "май" + +msgid "jun" +msgstr "июн" + +msgid "jul" +msgstr "июл" + +msgid "aug" +msgstr "авг" + +msgid "sep" +msgstr "сен" + +msgid "oct" +msgstr "окт" + +msgid "nov" +msgstr "ноя" + +msgid "dec" +msgstr "дек" + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "Янв." + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "Фев." + +msgctxt "abbrev. month" +msgid "March" +msgstr "Март" + +msgctxt "abbrev. month" +msgid "April" +msgstr "Апрел" + +msgctxt "abbrev. month" +msgid "May" +msgstr "Май" + +msgctxt "abbrev. month" +msgid "June" +msgstr "Июн" + +msgctxt "abbrev. month" +msgid "July" +msgstr "Июл" + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "Авг." + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "Сен." + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "Окт." + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "Ноя." + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "Дек." + +msgctxt "alt. month" +msgid "January" +msgstr "январ" + +msgctxt "alt. month" +msgid "February" +msgstr "феврал" + +msgctxt "alt. month" +msgid "March" +msgstr "март" + +msgctxt "alt. month" +msgid "April" +msgstr "апрел" + +msgctxt "alt. month" +msgid "May" +msgstr "май" + +msgctxt "alt. month" +msgid "June" +msgstr "июн" + +msgctxt "alt. month" +msgid "July" +msgstr "июл" + +msgctxt "alt. month" +msgid "August" +msgstr "август" + +msgctxt "alt. month" +msgid "September" +msgstr "сентябр" + +msgctxt "alt. month" +msgid "October" +msgstr "октябр" + +msgctxt "alt. month" +msgid "November" +msgstr "ноябр" + +msgctxt "alt. month" +msgid "December" +msgstr "декабр" + +msgid "This is not a valid IPv6 address." +msgstr "Қиммат суроғаи дурусти IPv6 нест." + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "%(truncated_text)s…" + +msgid "or" +msgstr "ё" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr ", " + +#, python-format +msgid "%d year" +msgid_plural "%d years" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d month" +msgid_plural "%d months" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d week" +msgid_plural "%d weeks" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d day" +msgid_plural "%d days" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "" +msgstr[1] "" + +msgid "Forbidden" +msgstr "Мушкилӣ дар воридшавӣ" + +msgid "CSRF verification failed. Request aborted." +msgstr "Мушкили дар тафтиши CSRF. Дархост рад шуд." + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your Web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" +"Шумо ин хабарро барои он мебинед, ки ин HTTPS -сомона, тавассути браузери " +"шумо дархости равон кардани 'Referer' 'header' -ро дорад. Вале ягон дархост " +"равон нашудааст.Иҷрои ин амал аз ҷиҳати бехатарӣ барои мутмаин шудани он, ки " +"браузери шумо аз тарафи шахси сеюм 'шикаста'' (взлом)нашудааст, ҳатмӣ " +"мебошад." + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" +"Агар шумо браузери худро ба таври 'Referer'-сархатҳояшон дастнорас ба танзим " +"даровада бошед,хоҳиш мекунем, ки ҳадди ақал барои сомонаи мазкур ё барои " +"пайсшавии таввассути HTTPS ё ин ки бароидархостҳои манбаашон якхела, амали " +"азнавбатанзимдарориро иҷро намоед." + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" +"Шумо ин хабарро барои он мебинед, ки сомонаи мазкур талаб менамояд, то амали " +"равонкунииформа ва CSRF cookie дар якҷоягӣ сурат гирад. Ин намуди 'cookie' " +"аз ҷиҳати бехатарӣбарои мутмаин шудани он, ки браузери шумо аз тарафи шахси " +"сеюм 'шикаста'' (взлом)нашудааст, ҳатмӣ мебошад." + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" +"Агар шумо браузери худро ба таври дастнораси ба cookies' ба танзим даровада " +"бошед,хоҳиш мекунем, ки ҳадди ақал барои сомонаи мазкур ё барои пайсшавии " +"таввассути HTTPS ё ин ки бароидархостҳои манбаашон якхела, амали " +"азнавбатанзимдарориро иҷро намоед." + +msgid "More information is available with DEBUG=True." +msgstr "" +"Маълумоти бештар дар режими 'танзимдарорӣ'(отладчика), бо фаъолсозии " +"DEBUG=True." + +msgid "No year specified" +msgstr "Сол ишора нашудааст" + +msgid "Date out of range" +msgstr "сана аз доираи муайян берун аст" + +msgid "No month specified" +msgstr "Моҳ ишора нашудааст" + +msgid "No day specified" +msgstr "Рӯз ишора нашудааст" + +msgid "No week specified" +msgstr "Ҳафта ишора нашудааст" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "%(verbose_name_plural)s дастнорас аст" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" +"%(verbose_name_plural)s навбатӣ дастнорасанд барои он ки %(class_name)s." +"allow_future бо қимати \" False\" гузошта шудааст." + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "Санаи нодурусти “%(datestr)s” шакли “%(format)s” гирифтааст" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "Ягон %(verbose_name)s, мувофиқ бо дархости шумо ёфт нашуд" + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "Саҳифа 'охирин' нест ва ё ки бо адади яклухт(int) ишора нашудааст" + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "Саҳифаи нодуруст (%(page_number)s): %(message)s" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "" + +msgid "Directory indexes are not allowed here." +msgstr "Азназаргузаронии рӯёхати файлҳо дар директорияи зерин номумкин аст." + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "“%(path)s” вуҷуд надорад" + +#, python-format +msgid "Index of %(directory)s" +msgstr "Рӯёхати файлҳои директорияи %(directory)s" + +msgid "Django: the Web framework for perfectionists with deadlines." +msgstr "" +"Django: веб-фреймворк барои перфектсионистҳо бо дедлайнҳо. Бисёр фреймворки " +"табъи дилва хастанакунанда ҳангоми кор." + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" +"Инҷо андешаҳо оиди баромади Django " +"%(version)s" + +msgid "The install worked successfully! Congratulations!" +msgstr "Ҷобаҷогузорӣ муваффақона анҷом ёфт! Табрик!" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not configured any " +"URLs." +msgstr "" +"Шумо ин хабарро барои он мебинед, ки дар ишора намудед: DEBUG=True ва дар файли " +"ҷобаҷогузорӣ(settings)ягонто танзимгари URL-суроғаҳоро ишора нанамудед." + +msgid "Django Documentation" +msgstr "Ҳуҷҷатгузории Django" + +msgid "Topics, references, & how-to’s" +msgstr "" + +msgid "Tutorial: A Polling App" +msgstr "Роҳбарият: Барнома барои овоздиҳӣ" + +msgid "Get started with Django" +msgstr "оғози кор бо Django" + +msgid "Django Community" +msgstr "Иттиҳоди Django" + +msgid "Connect, get help, or contribute" +msgstr "Бо мо ҳамкорӣ намуда имкониятҳои навро пайдо намоед." diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/tg/__init__.py b/venv/lib/python3.12/site-packages/django/conf/locale/tg/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/tg/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/tg/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..35ffc74502e19fd74e2e3d45c4581556d31fc453 GIT binary patch literal 198 zcmX@j%ge<81o5sX(m?cM5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!O4ZNE&rQ|OP0Yy6 zFHO;RNiEZNN=(kybEFQ_cZ$j>v@Gc?jK&MZmQEdVM^ zOiwM=Pssu+OwP|s)6dCIPRvQwFG<&rkI&4@EQycTE2#X%VUwGmQks)$SHudml@W-G PL5z>gjEsy$%s>_Z#<(}B|)|6 z@(7Y=(xOeZ9m*;VRmKEZ&`vRP?>Fb1u}AYO5(xn^4EbmClMjI3ZnGPn zZE^RS6rTYG2w)0P*n>RSi@ex}eAtit_ynEc0199l2U{LQw*U@(rBD!uQ3#)+Fpi+p zSv1W|f+VKP%Y2Prd>7~5e5Nyr93tK&0YY*+Nte&f{aCcb+B~>f_(G<0OA*PM7O*H- zqEOpcvot+tca#?j89~Vim3jOD5{2eGdQ692lDT)!9=h+*p?gb*%5RE_^v`!5@a}5Wxaog^{5T8AVqt4j891vl>WsV^3ZiEfH--JE8QSX^>+=5MeXw}CfaWGrc zFD)BSdgiNPiX7@bijhI4m6xKZRR}QWH(@6lBNO-JhH>JL7l3tQsRcN5;*Z=q^>hIe sPCP+sBKI?nFS_!3lb!|O{?Ng5vL;t?kRT4$Ne~C;aIuffFiFn%2NYD}J^%m! literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/tg/formats.py b/venv/lib/python3.12/site-packages/django/conf/locale/tg/formats.py new file mode 100644 index 0000000000..0ab7d49ae5 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/tg/formats.py @@ -0,0 +1,32 @@ +# This file is distributed under the same license as the Django package. +# +# The *_FORMAT strings use the Django date format syntax, +# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date +DATE_FORMAT = "j E Y г." +TIME_FORMAT = "G:i" +DATETIME_FORMAT = "j E Y г. G:i" +YEAR_MONTH_FORMAT = "F Y г." +MONTH_DAY_FORMAT = "j F" +SHORT_DATE_FORMAT = "d.m.Y" +SHORT_DATETIME_FORMAT = "d.m.Y H:i" +FIRST_DAY_OF_WEEK = 1 # Monday + +# The *_INPUT_FORMATS strings use the Python strftime format syntax, +# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior +DATE_INPUT_FORMATS = [ + "%d.%m.%Y", # '25.10.2006' + "%d.%m.%y", # '25.10.06' +] +DATETIME_INPUT_FORMATS = [ + "%d.%m.%Y %H:%M:%S", # '25.10.2006 14:30:59' + "%d.%m.%Y %H:%M:%S.%f", # '25.10.2006 14:30:59.000200' + "%d.%m.%Y %H:%M", # '25.10.2006 14:30' + "%d.%m.%Y", # '25.10.2006' + "%d.%m.%y %H:%M:%S", # '25.10.06 14:30:59' + "%d.%m.%y %H:%M:%S.%f", # '25.10.06 14:30:59.000200' + "%d.%m.%y %H:%M", # '25.10.06 14:30' + "%d.%m.%y", # '25.10.06' +] +DECIMAL_SEPARATOR = "," +THOUSAND_SEPARATOR = "\xa0" # non-breaking space +NUMBER_GROUPING = 3 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/th/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/conf/locale/th/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..3969ebd054816ea6ac7f971271a8a26355ae134b GIT binary patch literal 18629 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 I`Mb;e8-n-Gi2wiq literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/th/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/conf/locale/th/LC_MESSAGES/django.po new file mode 100644 index 0000000000..8ab31f2535 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/th/LC_MESSAGES/django.po @@ -0,0 +1,1208 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Abhabongse Janthong, 2015 +# Jannis Leidel , 2011 +# Kowit Charoenratchatabhan , 2014,2018-2019 +# Naowal Siripatana , 2017 +# sipp11 , 2014 +# Suteepat Damrongyingsupab , 2011-2012 +# Suteepat Damrongyingsupab , 2013 +# Vichai Vongvorakul , 2013 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-09-27 22:40+0200\n" +"PO-Revision-Date: 2019-11-05 00:38+0000\n" +"Last-Translator: Ramiro Morales\n" +"Language-Team: Thai (http://www.transifex.com/django/django/language/th/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: th\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +msgid "Afrikaans" +msgstr "อาฟฟริกัน" + +msgid "Arabic" +msgstr "อารบิก" + +msgid "Asturian" +msgstr "อัสตูเรียน" + +msgid "Azerbaijani" +msgstr "อาเซอร์ไบจาน" + +msgid "Bulgarian" +msgstr "บัลแกเรีย" + +msgid "Belarusian" +msgstr "เบลารุส" + +msgid "Bengali" +msgstr "เบ็งกาลี" + +msgid "Breton" +msgstr "เบรตัน" + +msgid "Bosnian" +msgstr "บอสเนีย" + +msgid "Catalan" +msgstr "คาตะลาน" + +msgid "Czech" +msgstr "เช็ก" + +msgid "Welsh" +msgstr "เวลส์" + +msgid "Danish" +msgstr "เดนมาร์ก" + +msgid "German" +msgstr "เยอรมัน" + +msgid "Lower Sorbian" +msgstr "" + +msgid "Greek" +msgstr "กรีก" + +msgid "English" +msgstr "อังกฤษ" + +msgid "Australian English" +msgstr "อังกฤษ - ออสเตรเลีย" + +msgid "British English" +msgstr "อังกฤษ - สหราชอาณาจักร" + +msgid "Esperanto" +msgstr "เอสเปรันโต" + +msgid "Spanish" +msgstr "สเปน" + +msgid "Argentinian Spanish" +msgstr "สเปน - อาร์เจนติน่า" + +msgid "Colombian Spanish" +msgstr "สเปน - โคลัมเบีย" + +msgid "Mexican Spanish" +msgstr "สเปน - เม็กซิกัน" + +msgid "Nicaraguan Spanish" +msgstr "นิการากัวสเปน" + +msgid "Venezuelan Spanish" +msgstr "เวเนซุเอลาสเปน" + +msgid "Estonian" +msgstr "เอสโตเนีย" + +msgid "Basque" +msgstr "แบ็ซค์" + +msgid "Persian" +msgstr "เปอร์เชีย" + +msgid "Finnish" +msgstr "ฟินแลนด์" + +msgid "French" +msgstr "ฝรั่งเศส" + +msgid "Frisian" +msgstr "ฟริเซียน" + +msgid "Irish" +msgstr "ไอริช" + +msgid "Scottish Gaelic" +msgstr "" + +msgid "Galician" +msgstr "กาลิเซีย" + +msgid "Hebrew" +msgstr "ฮีบรู" + +msgid "Hindi" +msgstr "ฮินดี" + +msgid "Croatian" +msgstr "โครเอเชีย" + +msgid "Upper Sorbian" +msgstr "" + +msgid "Hungarian" +msgstr "ฮังการี" + +msgid "Armenian" +msgstr "อาร์เมเนียน" + +msgid "Interlingua" +msgstr "ภาษากลาง" + +msgid "Indonesian" +msgstr "อินโดนิเซีย" + +msgid "Ido" +msgstr "" + +msgid "Icelandic" +msgstr "ไอซ์แลนด์" + +msgid "Italian" +msgstr "อิตาลี" + +msgid "Japanese" +msgstr "ญี่ปุ่น" + +msgid "Georgian" +msgstr "จอร์เจีย" + +msgid "Kabyle" +msgstr "" + +msgid "Kazakh" +msgstr "คาซัค" + +msgid "Khmer" +msgstr "เขมร" + +msgid "Kannada" +msgstr "กัณณาท" + +msgid "Korean" +msgstr "เกาหลี" + +msgid "Luxembourgish" +msgstr "ลักแซมเบิร์ก" + +msgid "Lithuanian" +msgstr "ลิทัวเนีย" + +msgid "Latvian" +msgstr "ลัตเวีย" + +msgid "Macedonian" +msgstr "มาซิโดเนีย" + +msgid "Malayalam" +msgstr "มลายู" + +msgid "Mongolian" +msgstr "มองโกเลีย" + +msgid "Marathi" +msgstr "" + +msgid "Burmese" +msgstr "พม่า" + +msgid "Norwegian Bokmål" +msgstr "" + +msgid "Nepali" +msgstr "เนปาล" + +msgid "Dutch" +msgstr "ดัตช์" + +msgid "Norwegian Nynorsk" +msgstr "นอร์เวย์ - Nynorsk" + +msgid "Ossetic" +msgstr "" + +msgid "Punjabi" +msgstr "ปัญจาบี" + +msgid "Polish" +msgstr "โปแลนด์" + +msgid "Portuguese" +msgstr "โปรตุเกส" + +msgid "Brazilian Portuguese" +msgstr "โปรตุเกส (บราซิล)" + +msgid "Romanian" +msgstr "โรมาเนีย" + +msgid "Russian" +msgstr "รัสเซีย" + +msgid "Slovak" +msgstr "สโลวัก" + +msgid "Slovenian" +msgstr "สโลวีเนีย" + +msgid "Albanian" +msgstr "อัลแบเนีย" + +msgid "Serbian" +msgstr "เซอร์เบีย" + +msgid "Serbian Latin" +msgstr "เซอร์เบียละติน" + +msgid "Swedish" +msgstr "สวีเดน" + +msgid "Swahili" +msgstr "สวาฮีลี" + +msgid "Tamil" +msgstr "ทมิฬ" + +msgid "Telugu" +msgstr "เตลุคู" + +msgid "Thai" +msgstr "ไทย" + +msgid "Turkish" +msgstr "ตุรกี" + +msgid "Tatar" +msgstr "ตาตาร์" + +msgid "Udmurt" +msgstr "อัดเมิร์ท" + +msgid "Ukrainian" +msgstr "ยูเครน" + +msgid "Urdu" +msgstr "เออร์ดู" + +msgid "Uzbek" +msgstr "" + +msgid "Vietnamese" +msgstr "เวียดนาม" + +msgid "Simplified Chinese" +msgstr "จีนตัวย่อ" + +msgid "Traditional Chinese" +msgstr "จีนตัวเต็ม" + +msgid "Messages" +msgstr "ข้อความ" + +msgid "Site Maps" +msgstr "" + +msgid "Static Files" +msgstr "" + +msgid "Syndication" +msgstr "" + +msgid "That page number is not an integer" +msgstr "หมายเลขหน้าดังกล่าวไม่ใช่จำนวนเต็ม" + +msgid "That page number is less than 1" +msgstr "หมายเลขหน้าดังกล่าวมีค่าน้อยกว่า 1" + +msgid "That page contains no results" +msgstr "" + +msgid "Enter a valid value." +msgstr "กรุณาใส่ค่าที่ถูกต้อง" + +msgid "Enter a valid URL." +msgstr "ใส่ URL ที่ถูกต้อง" + +msgid "Enter a valid integer." +msgstr "" + +msgid "Enter a valid email address." +msgstr "ป้อนที่อยู่อีเมลที่ถูกต้อง" + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" + +msgid "Enter a valid IPv4 address." +msgstr "กรุณาใส่หมายเลขไอพีที่ถูกต้อง" + +msgid "Enter a valid IPv6 address." +msgstr "กรอก IPv6 address ให้ถูกต้อง" + +msgid "Enter a valid IPv4 or IPv6 address." +msgstr "กรอก IPv4 หรือ IPv6 address ให้ถูกต้อง" + +msgid "Enter only digits separated by commas." +msgstr "ใส่ตัวเลขที่คั่นด้วยจุลภาคเท่านั้น" + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "ค่านี้ต้องเป็น %(limit_value)s (ปัจจุบันคือ %(show_value)s)" + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "ค่านี้ต้องน้อยกว่าหรือเท่ากับ %(limit_value)s" + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "ค่านี้ต้องมากกว่าหรือเท่ากับ %(limit_value)s" + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" + +msgid "Enter a number." +msgstr "กรอกหมายเลข" + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "" + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "" + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "" + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" + +msgid "Null characters are not allowed." +msgstr "" + +msgid "and" +msgstr "และ" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "" + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "" + +msgid "This field cannot be null." +msgstr "ฟิลด์นี้ไม่สารถปล่อยว่างได้" + +msgid "This field cannot be blank." +msgstr "ฟิลด์นี้เว้นว่างไม่ได้" + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "%(model_name)s และ %(field_label)s มีอยู่แล้ว" + +#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'. +#. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "ฟิลด์ข้อมูล: %(field_type)s" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "" + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "" + +msgid "Boolean (Either True or False)" +msgstr "ตรรกะแบบบูลหมายถึง ค่า\"จริง\" (True) หรือ \"ไม่จริง \" (False)" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "สตริง(ได้ถึง %(max_length)s)" + +msgid "Comma-separated integers" +msgstr "จำนวนเต็มแบบมีจุลภาค" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" + +msgid "Date (without time)" +msgstr "วันที่ (ไม่มีเวลา)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" + +msgid "Date (with time)" +msgstr "วันที่ (พร้อมด้วยเวลา)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "" + +msgid "Decimal number" +msgstr "เลขฐานสิบหรือเลขทศนิยม" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" + +msgid "Duration" +msgstr "ช่วงเวลา" + +msgid "Email address" +msgstr "อีเมล" + +msgid "File path" +msgstr "ตำแหน่งไฟล์" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "" + +msgid "Floating point number" +msgstr "เลขทศนิยม" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "" + +msgid "Integer" +msgstr "จำนวนเต็ม" + +msgid "Big (8 byte) integer" +msgstr "จำนวนเต็ม (8 byte)" + +msgid "IPv4 address" +msgstr "IPv4 address" + +msgid "IP address" +msgstr "หมายเลขไอพี" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "" + +msgid "Boolean (Either True, False or None)" +msgstr "" +"ตรรกะแบบบูลหมายถึง ค่า\"จริง\" (True) หรือ \"ไม่จริง \" (False) หรือ \"ไม่มี\" (None)" + +msgid "Positive integer" +msgstr "จํานวนเต็มบวก" + +msgid "Positive small integer" +msgstr "จํานวนเต็มบวกขนาดเล็ก" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "Slug (ถึง %(max_length)s )" + +msgid "Small integer" +msgstr "จำนวนเต็มขนาดเล็ก" + +msgid "Text" +msgstr "ข้อความ" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" + +msgid "Time" +msgstr "เวลา" + +msgid "URL" +msgstr "URL" + +msgid "Raw binary data" +msgstr "" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "" + +msgid "Universally unique identifier" +msgstr "" + +msgid "File" +msgstr "ไฟล์" + +msgid "Image" +msgstr "รูปภาพ" + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "" + +msgid "Foreign Key (type determined by related field)" +msgstr "Foreign Key (ชนิดของข้อมูลจะถูกกำหนดจากฟิลด์ที่เกี่ยวข้อง)" + +msgid "One-to-one relationship" +msgstr "ความสัมพันธ์แบบหนึ่งต่อหนึ่ง" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "" + +msgid "Many-to-many relationship" +msgstr "ความสัมพันธ์แบบ many-to-many" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr ":?.!" + +msgid "This field is required." +msgstr "ฟิลด์นี้จำเป็น" + +msgid "Enter a whole number." +msgstr "กรอกหมายเลข" + +msgid "Enter a valid date." +msgstr "กรุณาใส่วัน" + +msgid "Enter a valid time." +msgstr "กรุณาใส่เวลา" + +msgid "Enter a valid date/time." +msgstr "กรุณาใส่วันเวลา" + +msgid "Enter a valid duration." +msgstr "ใส่ระยะเวลาที่ถูกต้อง" + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "" + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "ไม่มีไฟล์ใดถูกส่ง. ตรวจสอบ encoding type ในฟอร์ม." + +msgid "No file was submitted." +msgstr "ไม่มีไฟล์ใดถูกส่ง" + +msgid "The submitted file is empty." +msgstr "ไฟล์ที่ส่งว่างเปล่า" + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "โปรดเลือกไฟล์หรือติ๊ก clear checkbox อย่างใดอย่างหนึ่ง" + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "อัพโหลดรูปที่ถูกต้อง. ไฟล์ที่อัพโหลดไปไม่ใช่รูป หรือรูปเสียหาย." + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "เลือกตัวเลือกที่ถูกต้อง. %(value)s ไม่ใช่ตัวเลือกที่ใช้ได้." + +msgid "Enter a list of values." +msgstr "ใส่รายการ" + +msgid "Enter a complete value." +msgstr "" + +msgid "Enter a valid UUID." +msgstr "ใส่ UUID ที่ถูกต้อง" + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr ":" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "" + +msgid "ManagementForm data is missing or has been tampered with" +msgstr "" + +#, python-format +msgid "Please submit %d or fewer forms." +msgid_plural "Please submit %d or fewer forms." +msgstr[0] "" + +#, python-format +msgid "Please submit %d or more forms." +msgid_plural "Please submit %d or more forms." +msgstr[0] "" + +msgid "Order" +msgstr "เรียงลำดับ" + +msgid "Delete" +msgstr "ลบ" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "โปรดแก้ไขข้อมูลที่ซ้ำซ้อนใน %(field)s" + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "โปรดแก้ไขข้อมูลที่ซ้ำซ้อนใน %(field)s ซึ่งจะต้องไม่ซ้ำกัน" + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"โปรดแก้ไขข้อมูลซ้ำซ้อนใน %(field_name)s ซึ่งจะต้องไม่ซ้ำกันสำหรับ %(lookup)s ใน " +"%(date_field)s" + +msgid "Please correct the duplicate values below." +msgstr "โปรดแก้ไขค่าที่ซ้ำซ้อนด้านล่าง" + +msgid "The inline value did not match the parent instance." +msgstr "" + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "เลือกตัวเลือกที่ถูกต้อง. ตัวเลือกนั้นไม่สามารถเลือกได้." + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "" + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" + +msgid "Clear" +msgstr "ล้าง" + +msgid "Currently" +msgstr "ปัจจุบัน" + +msgid "Change" +msgstr "เปลี่ยนแปลง" + +msgid "Unknown" +msgstr "ไม่รู้" + +msgid "Yes" +msgstr "ใช่" + +msgid "No" +msgstr "ไม่ใช่" + +msgid "Year" +msgstr "" + +msgid "Month" +msgstr "" + +msgid "Day" +msgstr "" + +msgid "yes,no,maybe" +msgstr "ใช่,ไม่ใช่,อาจจะ" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)d ไบต์" + +#, python-format +msgid "%s KB" +msgstr "%s KB" + +#, python-format +msgid "%s MB" +msgstr "%s MB" + +#, python-format +msgid "%s GB" +msgstr "%s GB" + +#, python-format +msgid "%s TB" +msgstr "%s TB" + +#, python-format +msgid "%s PB" +msgstr "%s PB" + +msgid "p.m." +msgstr "p.m." + +msgid "a.m." +msgstr "a.m." + +msgid "PM" +msgstr "PM" + +msgid "AM" +msgstr "AM" + +msgid "midnight" +msgstr "เที่ยงคืน" + +msgid "noon" +msgstr "เที่ยงวัน" + +msgid "Monday" +msgstr "จันทร์" + +msgid "Tuesday" +msgstr "อังคาร" + +msgid "Wednesday" +msgstr "พุธ" + +msgid "Thursday" +msgstr "พฤหัสบดี" + +msgid "Friday" +msgstr "ศุกร์" + +msgid "Saturday" +msgstr "เสาร์" + +msgid "Sunday" +msgstr "อาทิตย์" + +msgid "Mon" +msgstr "จ." + +msgid "Tue" +msgstr "อ." + +msgid "Wed" +msgstr "พ." + +msgid "Thu" +msgstr "พฤ." + +msgid "Fri" +msgstr "ศ." + +msgid "Sat" +msgstr "ส." + +msgid "Sun" +msgstr "อา." + +msgid "January" +msgstr "มกราคม" + +msgid "February" +msgstr "กุมภาพันธ์" + +msgid "March" +msgstr "มีนาคม" + +msgid "April" +msgstr "เมษายน" + +msgid "May" +msgstr "พฤษภาคม" + +msgid "June" +msgstr "มิถุนายน" + +msgid "July" +msgstr "กรกฎาคม" + +msgid "August" +msgstr "สิงหาคม" + +msgid "September" +msgstr "กันยายน" + +msgid "October" +msgstr "ตุลาคม" + +msgid "November" +msgstr "พฤศจิกายน" + +msgid "December" +msgstr "ธันวาคม" + +msgid "jan" +msgstr "ม.ค." + +msgid "feb" +msgstr "ก.พ." + +msgid "mar" +msgstr "มี.ค." + +msgid "apr" +msgstr "เม.ย." + +msgid "may" +msgstr "พ.ค." + +msgid "jun" +msgstr "มิ.ย." + +msgid "jul" +msgstr "ก.ค." + +msgid "aug" +msgstr "ส.ค." + +msgid "sep" +msgstr "ก.ย." + +msgid "oct" +msgstr "ต.ค." + +msgid "nov" +msgstr "พ.ย." + +msgid "dec" +msgstr "ธ.ค." + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "ม.ค." + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "ก.พ." + +msgctxt "abbrev. month" +msgid "March" +msgstr "มี.ค." + +msgctxt "abbrev. month" +msgid "April" +msgstr "เม.ย." + +msgctxt "abbrev. month" +msgid "May" +msgstr "พ.ค." + +msgctxt "abbrev. month" +msgid "June" +msgstr "มิ.ย." + +msgctxt "abbrev. month" +msgid "July" +msgstr "ก.ค." + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "ส.ค." + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "ก.ย." + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "ต.ค." + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "พ.ย." + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "ธ.ค." + +msgctxt "alt. month" +msgid "January" +msgstr "มกราคม" + +msgctxt "alt. month" +msgid "February" +msgstr "กุมภาพันธ์" + +msgctxt "alt. month" +msgid "March" +msgstr "มีนาคม" + +msgctxt "alt. month" +msgid "April" +msgstr "เมษายน" + +msgctxt "alt. month" +msgid "May" +msgstr "พฤษภาคม" + +msgctxt "alt. month" +msgid "June" +msgstr "มิถุนายน" + +msgctxt "alt. month" +msgid "July" +msgstr "กรกฎาคม" + +msgctxt "alt. month" +msgid "August" +msgstr "สิงหาคม" + +msgctxt "alt. month" +msgid "September" +msgstr "กันยายน" + +msgctxt "alt. month" +msgid "October" +msgstr "ตุลาคม" + +msgctxt "alt. month" +msgid "November" +msgstr "พฤศจิกายน" + +msgctxt "alt. month" +msgid "December" +msgstr "ธันวาคม" + +msgid "This is not a valid IPv6 address." +msgstr "" + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "" + +msgid "or" +msgstr "หรือ" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr ", " + +#, python-format +msgid "%d year" +msgid_plural "%d years" +msgstr[0] "%d ปี" + +#, python-format +msgid "%d month" +msgid_plural "%d months" +msgstr[0] "%d เดือน" + +#, python-format +msgid "%d week" +msgid_plural "%d weeks" +msgstr[0] "%d สัปดาห์" + +#, python-format +msgid "%d day" +msgid_plural "%d days" +msgstr[0] "%d วัน" + +#, python-format +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "%d ชั่วโมง" + +#, python-format +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "%d นาที" + +msgid "0 minutes" +msgstr "0 นาที" + +msgid "Forbidden" +msgstr "หวงห้าม" + +msgid "CSRF verification failed. Request aborted." +msgstr "" + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your Web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" + +msgid "More information is available with DEBUG=True." +msgstr "" + +msgid "No year specified" +msgstr "ไม่ระบุปี" + +msgid "Date out of range" +msgstr "" + +msgid "No month specified" +msgstr "ไม่ระบุเดือน" + +msgid "No day specified" +msgstr "ไม่ระบุวัน" + +msgid "No week specified" +msgstr "ไม่ระบุสัปดาห์" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "ไม่มี %(verbose_name_plural)s ที่ใช้ได้" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" +"%(verbose_name_plural)s ในอนาคตไม่สามารถใช้ได้ เนื่องจาก %(class_name)s." +"allow_future มีค่าเป็น False" + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "ไม่พบ %(verbose_name)s จาก query" + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "" + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "หน้าไม่ถูกต้อง (%(page_number)s): %(message)s" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "" + +msgid "Directory indexes are not allowed here." +msgstr "ไม่ได้รับอนุญาตให้ใช้ Directory indexes ที่นี่" + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "" + +#, python-format +msgid "Index of %(directory)s" +msgstr "ดัชนีของ %(directory)s" + +msgid "Django: the Web framework for perfectionists with deadlines." +msgstr "" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" + +msgid "The install worked successfully! Congratulations!" +msgstr "" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not configured any " +"URLs." +msgstr "" + +msgid "Django Documentation" +msgstr "" + +msgid "Topics, references, & how-to’s" +msgstr "" + +msgid "Tutorial: A Polling App" +msgstr "" + +msgid "Get started with Django" +msgstr "เริ่มต้นกับ Django" + +msgid "Django Community" +msgstr "ชุมชน Django" + +msgid "Connect, get help, or contribute" +msgstr "" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/th/__init__.py b/venv/lib/python3.12/site-packages/django/conf/locale/th/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/th/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/th/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..55db195b1bc5c608abeea58a5fc151b7943ffd91 GIT binary patch literal 198 zcmX@j%ge<81o5sX(m?cM5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!O4ZNE&rQ|OP0Yy6 zFHO;RNiEZNN=(kybEFQ_cZ$j>v@Gc?jK&MZmQEdVM^ zOiwM=Pssu+OwP|s)6dCIPRvQwFUio4kI&4@EQycTE2#X%VUwGmQks)$SHudml@W-G PL5z>gjEsy$%s>_Z#^*GL literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/th/__pycache__/formats.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/th/__pycache__/formats.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4e2e9bf97f834615e260e46a9604afe11a98d3bd GIT binary patch literal 805 zcmZWmJ8#-h7`?`j5If-5Jesyr#ZV7O3Ac|8Rh3LJ54E-<+o-~eWw_>%VvK+w;VJzU z-MjUlRO-TLv3AN9B^y((T}(l}lJ7a+Ip6v2C;3+@MFD(F@n`Q<9Dv_J5uMnUJT@@- z1`sd+A`Ak>j2I#f62*-;N*D=rWE`PmcBehHy z882~Ns1@2CSuYPgD&!Z1fRmw$g`h*i9oWPWns>o2Mbb<12=Wf(+W{-^okGMan1z0$ z%u8in^Jsp{N_@{tga!85C|`(dFZ-VqB+`fKhA3@_i#rl;As5qYx+>_RSyNO=(ATuy zly(IZIQs(I76sLm6j^UXfwR9=RcJ>Ft2Go=H}|LJ{z(VpYE4xOI@_jFGe3*s$2Awm zn(|dk-_Fz4T$nl3^1Iazb+#&gXiCB-QxmTQRnQd`#~VsZ6Xfci#>g$HBC2LxRa#d~ zx&8w@20vwk;J|fk=vV{Cy+N>QFJQ&$ez_FK2zEx+xbMP+Jzl`kumdN{`M@2&ExmpN zXT!ODIl+xq-=0Bq9X58|aSx8%t~IjZd;ojy)UoEX(qy?wzH?l3GqT@LpWsIc{LM^! z-ID}C+*5$b-_m|MgD>vIE#qgOt^n(2&R5{f&pr?M`O6i^`Pm%i56O5wwgTJ(wZmt) W&f_sToM8Rn=6o*mm6_)78-D;RO5R`q literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/th/formats.py b/venv/lib/python3.12/site-packages/django/conf/locale/th/formats.py new file mode 100644 index 0000000000..190e6d196c --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/th/formats.py @@ -0,0 +1,33 @@ +# This file is distributed under the same license as the Django package. +# +# The *_FORMAT strings use the Django date format syntax, +# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date +DATE_FORMAT = "j F Y" +TIME_FORMAT = "G:i" +DATETIME_FORMAT = "j F Y, G:i" +YEAR_MONTH_FORMAT = "F Y" +MONTH_DAY_FORMAT = "j F" +SHORT_DATE_FORMAT = "j M Y" +SHORT_DATETIME_FORMAT = "j M Y, G:i" +FIRST_DAY_OF_WEEK = 0 # Sunday + +# The *_INPUT_FORMATS strings use the Python strftime format syntax, +# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior +DATE_INPUT_FORMATS = [ + "%d/%m/%Y", # 25/10/2006 + "%d %b %Y", # 25 ต.ค. 2006 + "%d %B %Y", # 25 ตุลาคม 2006 +] +TIME_INPUT_FORMATS = [ + "%H:%M:%S", # 14:30:59 + "%H:%M:%S.%f", # 14:30:59.000200 + "%H:%M", # 14:30 +] +DATETIME_INPUT_FORMATS = [ + "%d/%m/%Y %H:%M:%S", # 25/10/2006 14:30:59 + "%d/%m/%Y %H:%M:%S.%f", # 25/10/2006 14:30:59.000200 + "%d/%m/%Y %H:%M", # 25/10/2006 14:30 +] +DECIMAL_SEPARATOR = "." +THOUSAND_SEPARATOR = "," +NUMBER_GROUPING = 3 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/tk/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/conf/locale/tk/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..2858350fa107dd5f4fccd9fb4f7e7d0d7041825a GIT binary patch literal 27792 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⪙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, 2020-2021 +# Resul , 2020 +# Resul , 2022-2024 +# Welbeck Garli , 2020 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-05-22 11:46-0300\n" +"PO-Revision-Date: 2024-08-07 06:49+0000\n" +"Last-Translator: Resul , 2022-2024\n" +"Language-Team: Turkmen (http://app.transifex.com/django/django/language/" +"tk/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: tk\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Afrikaans" +msgstr "Afrikaans" + +msgid "Arabic" +msgstr "Arapça" + +msgid "Algerian Arabic" +msgstr "Alžir Arapçasy" + +msgid "Asturian" +msgstr "Asturian" + +msgid "Azerbaijani" +msgstr "Azeri Türkçesi" + +msgid "Bulgarian" +msgstr "Bolgar" + +msgid "Belarusian" +msgstr "Belarusça" + +msgid "Bengali" +msgstr "Bengali" + +msgid "Breton" +msgstr "Breton" + +msgid "Bosnian" +msgstr "Bosniýaça" + +msgid "Catalan" +msgstr "Katalan" + +msgid "Central Kurdish (Sorani)" +msgstr "Merkezi Kürtçe (Soraniçe)" + +msgid "Czech" +msgstr "Çehçe" + +msgid "Welsh" +msgstr "Uelsçe" + +msgid "Danish" +msgstr "Daniýaça" + +msgid "German" +msgstr "Nemesçe" + +msgid "Lower Sorbian" +msgstr "Aşaky Sorbian" + +msgid "Greek" +msgstr "Grekçe" + +msgid "English" +msgstr "Iňlisçe" + +msgid "Australian English" +msgstr "Awstraliýa Iňlisçesi" + +msgid "British English" +msgstr "Britan Iňlisçesi" + +msgid "Esperanto" +msgstr "Esperanto" + +msgid "Spanish" +msgstr "Ispança" + +msgid "Argentinian Spanish" +msgstr "Argentina Ispançasy" + +msgid "Colombian Spanish" +msgstr "Kolumbiýa Ispançasy" + +msgid "Mexican Spanish" +msgstr "Meksika Ispançasy" + +msgid "Nicaraguan Spanish" +msgstr "Nikaragua Ispançasy" + +msgid "Venezuelan Spanish" +msgstr "Wenezuela Ispançasy" + +msgid "Estonian" +msgstr "Estonça" + +msgid "Basque" +msgstr "Baskça" + +msgid "Persian" +msgstr "Parsça" + +msgid "Finnish" +msgstr "Finçe" + +msgid "French" +msgstr "Fransuzça" + +msgid "Frisian" +msgstr "Frisça" + +msgid "Irish" +msgstr "Irlandça" + +msgid "Scottish Gaelic" +msgstr "Şotlandiýa Gaelçasy" + +msgid "Galician" +msgstr "Galisiýaça" + +msgid "Hebrew" +msgstr "Ýewreýçe" + +msgid "Hindi" +msgstr "Hindi" + +msgid "Croatian" +msgstr "Horwatça" + +msgid "Upper Sorbian" +msgstr "Ýokarky Sorbian" + +msgid "Hungarian" +msgstr "Wengerçe" + +msgid "Armenian" +msgstr "Ermeniçe" + +msgid "Interlingua" +msgstr "Interlingua" + +msgid "Indonesian" +msgstr "Indonezça" + +msgid "Igbo" +msgstr "Igbo" + +msgid "Ido" +msgstr "Ido" + +msgid "Icelandic" +msgstr "Islandça" + +msgid "Italian" +msgstr "Italýança" + +msgid "Japanese" +msgstr "Ýaponça" + +msgid "Georgian" +msgstr "Gruzinçe" + +msgid "Kabyle" +msgstr "Kabyle" + +msgid "Kazakh" +msgstr "Gazakça" + +msgid "Khmer" +msgstr "Hmerçe" + +msgid "Kannada" +msgstr "Kannada" + +msgid "Korean" +msgstr "Koreýçe" + +msgid "Kyrgyz" +msgstr "Gyrgyzça" + +msgid "Luxembourgish" +msgstr "Lýuksemburgça" + +msgid "Lithuanian" +msgstr "Litwança" + +msgid "Latvian" +msgstr "Latwiýaça" + +msgid "Macedonian" +msgstr "Makedonça" + +msgid "Malayalam" +msgstr "Malaýalam" + +msgid "Mongolian" +msgstr "Mongolça" + +msgid "Marathi" +msgstr "Marasi" + +msgid "Malay" +msgstr "Malaý" + +msgid "Burmese" +msgstr "Birma" + +msgid "Norwegian Bokmål" +msgstr "Norwegiýa Bokmaly" + +msgid "Nepali" +msgstr "Nepali" + +msgid "Dutch" +msgstr "Gollandça" + +msgid "Norwegian Nynorsk" +msgstr "Norwegiýa Nynorskçasy" + +msgid "Ossetic" +msgstr "Osetikçe" + +msgid "Punjabi" +msgstr "Penjebiçe" + +msgid "Polish" +msgstr "Polýakça" + +msgid "Portuguese" +msgstr "Portugalça" + +msgid "Brazilian Portuguese" +msgstr "Braziliýa Portugalçasy" + +msgid "Romanian" +msgstr "Rumynça" + +msgid "Russian" +msgstr "Rusça" + +msgid "Slovak" +msgstr "Slowakça" + +msgid "Slovenian" +msgstr "Slowençe" + +msgid "Albanian" +msgstr "Albança" + +msgid "Serbian" +msgstr "Serbçe" + +msgid "Serbian Latin" +msgstr "Serb Latynçasy" + +msgid "Swedish" +msgstr "Şwedçe" + +msgid "Swahili" +msgstr "Swahili" + +msgid "Tamil" +msgstr "Tamil" + +msgid "Telugu" +msgstr "Telugu" + +msgid "Tajik" +msgstr "Täjik" + +msgid "Thai" +msgstr "Taýça" + +msgid "Turkmen" +msgstr "Türkmençe" + +msgid "Turkish" +msgstr "Türkçe" + +msgid "Tatar" +msgstr "Tatarça" + +msgid "Udmurt" +msgstr "Udmurt" + +msgid "Uyghur" +msgstr "Uýgur" + +msgid "Ukrainian" +msgstr "Ukrainçe" + +msgid "Urdu" +msgstr "Urduça" + +msgid "Uzbek" +msgstr "Özbekçe" + +msgid "Vietnamese" +msgstr "Wýetnamça" + +msgid "Simplified Chinese" +msgstr "Ýönekeýleşdirilen Hytaýça" + +msgid "Traditional Chinese" +msgstr "Adaty Hytaýça" + +msgid "Messages" +msgstr "Habarlar" + +msgid "Site Maps" +msgstr "Saýt Kartalary" + +msgid "Static Files" +msgstr "Statik Faýllar" + +msgid "Syndication" +msgstr "Syndikasiýa" + +#. Translators: String used to replace omitted page numbers in elided page +#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10]. +msgid "…" +msgstr "..." + +msgid "That page number is not an integer" +msgstr "Ol sahypanyň sany bitewi san däl" + +msgid "That page number is less than 1" +msgstr "Ol sahypanyň belgisi 1-den az" + +msgid "That page contains no results" +msgstr "Ol sahypada hiç hili netije ýok" + +msgid "Enter a valid value." +msgstr "Dogry baha giriziň." + +msgid "Enter a valid domain name." +msgstr "Dogry domen adyny giriziň." + +msgid "Enter a valid URL." +msgstr "Dogry URL giriziň." + +msgid "Enter a valid integer." +msgstr "Dogry bitewi san giriziň." + +msgid "Enter a valid email address." +msgstr "Dogry e-poçta salgysyny giriziň." + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" +"Harplardan, sanlardan, aşaky çyzyklardan ýa-da defislerden ybarat dogry " +"“slug” giriziň." + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" +"Unikod harplaryndan, sanlardan, aşaky çyzyklardan ýa-da defislerden ybarat " +"dogry “slug” giriziň." + +#, python-format +msgid "Enter a valid %(protocol)s address." +msgstr "Dogry %(protocol)s adresi giriziň." + +msgid "IPv4" +msgstr "IPv4" + +msgid "IPv6" +msgstr "IPv6" + +msgid "IPv4 or IPv6" +msgstr "IPv4 ýa IPv6" + +msgid "Enter only digits separated by commas." +msgstr "Diňe otur bilen aýrylan sanlary giriziň." + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "" +"%(limit_value)s bahasynyň dogry bolmagyny üpjün ediň (şuwagt %(show_value)s)." + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "" +"Maglumatyň %(limit_value)s bahasyndan az ýa-da deň bolmagyny üpjün ediň." + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "" +"Maglumatyň %(limit_value)s bahasyndan köp ýa-da deň bolmagyny üpjün ediň." + +#, python-format +msgid "Ensure this value is a multiple of step size %(limit_value)s." +msgstr "Bu baha %(limit_value)s-nyň essesi bolmaly." + +#, python-format +msgid "" +"Ensure this value is a multiple of step size %(limit_value)s, starting from " +"%(offset)s, e.g. %(offset)s, %(valid_value1)s, %(valid_value2)s, and so on." +msgstr "" + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Bu maglumatda iň az %(limit_value)d harp bardygyna göz ýetiriň (munda " +"%(show_value)d bar)." +msgstr[1] "" +"Bu maglumatda azyndan %(limit_value)d nyşanyň bolmagyny üpjün ediň (şuwagt " +"%(show_value)d sany bar)." + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Bu maglumatda köpünden %(limit_value)d harp bardygyna göz ýetiriň (bunda " +"%(show_value)d bar)" +msgstr[1] "" +"Bu maglumatda iň köp %(limit_value)d nyşanyň bolmagyny üpjün ediň (şuwagt " +"%(show_value)d sany bar)" + +msgid "Enter a number." +msgstr "San giriziň" + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "Bu ýerde jemi %(max)s'dan köp san ýokduguna göz ýetiriň." +msgstr[1] "Bu ýerde jemi %(max)s sanydan köp sifriň bolmazlygyny üpjün ediň." + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "Bu ýerde %(max)s'dan köp nokatly san ýokdugyna göz ýetiriň" +msgstr[1] "Bu ýerde %(max)s sanydan köp nokatly san ýoklugyny üpjün ediň." + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "Nokatdan öň %(max)s'dan köp san ýokdugyna göz ýetiriň" +msgstr[1] "Nokatdan öň %(max)s sanydan köp sifriň ýoklugyny üpjün ediň." + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" +"\"%(extension)s\" faýl görnüşine rugsat edilmeýär. Rugsat berilýän faýl " +"görnüşleri şulardan ybarat: %(allowed_extensions)s" + +msgid "Null characters are not allowed." +msgstr "Null nyşanlara rugsat berilmeýär." + +msgid "and" +msgstr "we" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "%(field_labels)s bilen baglanyşykly %(model_name)s eýýäm bar." + +#, python-format +msgid "Constraint “%(name)s” is violated." +msgstr "Çäklendirme “%(name)s” bozuldy." + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "%(value)r dogry saýlaw däl." + +msgid "This field cannot be null." +msgstr "Bu meýdan null bilmez." + +msgid "This field cannot be blank." +msgstr "Bu meýdan boş bolup bilmez." + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "%(field_label)s bilen baglanyşykly %(model_name)s eýýäm bar." + +#. Translators: The 'lookup_type' is one of 'date', 'year' or +#. 'month'. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" +"%(lookup_type)s %(date_field_label)s üçin %(field_label)s özboluşly " +"bolmalydyr." + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "Meýdan görnüşi: %(field_type)s" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "\"%(value)s\" hökman True ýa-da False bolmalydyr." + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "\"%(value)s\" hökman True, False ýa-da None bolmalydyr." + +msgid "Boolean (Either True or False)" +msgstr "Boolean (True ýa-da False)" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "Setir (iň köp %(max_length)s)" + +msgid "String (unlimited)" +msgstr "String (limitsiz)" + +msgid "Comma-separated integers" +msgstr "Otur bilen bölünen bitewi sanlar" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" +"\"%(value)s\" bahasynyň nädogry sene formaty bar. ÝÝÝÝ-AA-GG görnüşinde " +"bolmaly." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" +"\"%(value)s\" dogry yazylyş usuluna (ÝÝÝÝ-AA-GG) eýe, ýöne, sene nädogry." + +msgid "Date (without time)" +msgstr "Sene (wagtsyz)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" +"\"%(value)s\" ýalňyş görnüşde ýazylan. Bu baha hökmany suratda ÝÝÝÝ-AA-GG SS:" +"MM[:ss[.uuuuuu]][TZ] görnüşde bolmalydyr." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" +"\"%(value)s\" dogry sene görnüşine eýe (ÝÝÝÝ-AA-GG SS:MM[:ss[.uuuuuu]][TZ]). " +"Ýöne bu nädogry sene/wagt." + +msgid "Date (with time)" +msgstr "Sene (wagty bilen)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "\"%(value)s\" hökman nokatly san bolmalydyr." + +msgid "Decimal number" +msgstr "Onluk san" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" +"\"%(value)s\" ýalňyş sene görnüşine eýe. Bu hökman [GG] [[SS:]AA:]ss[." +"uuuuuu] görnüşinde bolmalydyr." + +msgid "Duration" +msgstr "Dowamlylyk" + +msgid "Email address" +msgstr "Email adres" + +msgid "File path" +msgstr "Faýl ýoly" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "\"%(value)s float san bolmaly." + +msgid "Floating point number" +msgstr "Float san" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "\"%(value)s\" bitewi san bolmaly." + +msgid "Integer" +msgstr "Bitewi san" + +msgid "Big (8 byte) integer" +msgstr "Uly (8 baýt) bitewi san" + +msgid "Small integer" +msgstr "Kiçi bitewi san" + +msgid "IPv4 address" +msgstr "IPv4 salgy" + +msgid "IP address" +msgstr "IP salgy" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "\"%(value)s\" None, True ýa-da False bolmaly." + +msgid "Boolean (Either True, False or None)" +msgstr "Boolean (True, False ýa-da None)" + +msgid "Positive big integer" +msgstr "Pozitiw uly bitewi san" + +msgid "Positive integer" +msgstr "Pozitiw bitewi san" + +msgid "Positive small integer" +msgstr "Pozitiw kiçi bitewi san" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "Slug (iň köp %(max_length)s)" + +msgid "Text" +msgstr "Tekst" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" +"\"%(value)s\" bahasy nädogry formata eýe. SS:MM[:ss[.uuuuuu]] formatda " +"bolmaly." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" +"\"%(value)s\" bahasy dogry formata eýe (SS:MM[:ss[.uuuuuu]]) ýöne bu nädogry " +"wagt." + +msgid "Time" +msgstr "Wagt" + +msgid "URL" +msgstr "URL" + +msgid "Raw binary data" +msgstr "Çig ikilik maglumat" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "\"%(value)s\" dogry UUID däl." + +msgid "Universally unique identifier" +msgstr "Ähliumumy özboluşly kesgitleýji" + +msgid "File" +msgstr "Faýl" + +msgid "Image" +msgstr "Surat" + +msgid "A JSON object" +msgstr "JSON obýekti" + +msgid "Value must be valid JSON." +msgstr "Bahasy JSON bolmaly." + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "%(field)s%(value)r bolan %(model)s ýok." + +msgid "Foreign Key (type determined by related field)" +msgstr "Daşary açary (baglanyşykly meýdança bilen kesgitlenýär)" + +msgid "One-to-one relationship" +msgstr "Bire-bir gatnaşyk" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "%(from)s-%(to)s gatnaşyk" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "%(from)s-%(to)s gatnaşyklar" + +msgid "Many-to-many relationship" +msgstr "Köp-köp gatnaşyk" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr ":?.!" + +msgid "This field is required." +msgstr "Bu meýdança hökman gerekli." + +msgid "Enter a whole number." +msgstr "Bitin san giriziň." + +msgid "Enter a valid date." +msgstr "Dogry senäni giriziň." + +msgid "Enter a valid time." +msgstr "Dogry wagt giriziň." + +msgid "Enter a valid date/time." +msgstr "Dogry senäni/wagty giriziň." + +msgid "Enter a valid duration." +msgstr "Dogry dowamlylygy giriziň." + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "Günleriň sany {min_days} bilen {max_days} arasynda bolmaly." + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "Hiç hili faýl tabşyrylmady. Formadaky enkodiň görnüşini barlaň." + +msgid "No file was submitted." +msgstr "Hiç hili faýl tabşyrylmady." + +msgid "The submitted file is empty." +msgstr "Tabşyrylan faýl boş." + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" +"Bu faýl adynyň iň köp %(max)d nyşanynyň bolmagyny üpjin ediň (şuwagt " +"%(length)d sany bar)." +msgstr[1] "" +"Bu faýl adynyň iň köp %(max)d nyşanynyň bolmagyny üpjin ediň (şuwagt " +"%(length)d sany bar)." + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "Bir faýl iberiň ýa-da arassala gutyjygyny belläň, ikisini bile däl." + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" +"Dogry surat ýükläň. Ýüklän faýlyňyz ýa surat däldi ýa-da zaýalanan suratdy." + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "Dogry saýlawy saýlaň. %(value)s elýeterli saýlawlaryň biri däl." + +msgid "Enter a list of values." +msgstr "Bahalaryň sanawyny giriziň." + +msgid "Enter a complete value." +msgstr "Doly bahany giriziň." + +msgid "Enter a valid UUID." +msgstr "Dogry UUID giriziň." + +msgid "Enter a valid JSON." +msgstr "Dogry JSON giriziň." + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr ":" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "(Gizlin meýdan %(name)s) %(error)s" + +#, python-format +msgid "" +"ManagementForm data is missing or has been tampered with. Missing fields: " +"%(field_names)s. You may need to file a bug report if the issue persists." +msgstr "" +"ManagementForm maglumatlary ýok ýa-da bozulan. Tapylmadyk meýdança: " +"%(field_names)s. Mesele dowam etse, \"bug report\" açmaly bolmagyňyz mümkin." + +#, python-format +msgid "Please submit at most %(num)d form." +msgid_plural "Please submit at most %(num)d forms." +msgstr[0] "Haýyş, iň köp %(num)d form tabşyryň." +msgstr[1] "Haýyş, iň köp %(num)d form tabşyryň." + +#, python-format +msgid "Please submit at least %(num)d form." +msgid_plural "Please submit at least %(num)d forms." +msgstr[0] "Haýyş, azyndan %(num)d form tabşyryň." +msgstr[1] "Haýyş, azyndan %(num)d form tabşyryň." + +msgid "Order" +msgstr "Tertip" + +msgid "Delete" +msgstr "Poz" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "%(field)s üçin dublikat maglumatlary düzediň." + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "Özboluşly bolmaly %(field)s üçin dublikat maglumatlary düzediň." + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"%(date_field)s meýdanynda %(lookup)süçin özboluşly bolmaly %(field_name)s " +"üçin dublikat maglumatlary düzediň." + +msgid "Please correct the duplicate values below." +msgstr "Aşakdaky dublikat bahalary düzediň." + +msgid "The inline value did not match the parent instance." +msgstr "Giriş bahasy esasy mysal bilen gabat gelmedi." + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "Dogry saýlawy saýlaň. Bu saýlaw, elýeterli saýlawlaryň biri däl." + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "\"%(pk)s\" dogry baha däl." + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" +"%(datetime)s wagty %(current_timezone)s wagt zolagy bilen düşündirip " +"bolmady; garyşyk bolup biler ýa-da ýok bolmagy mümkin." + +msgid "Clear" +msgstr "Arassala" + +msgid "Currently" +msgstr "Häzirki wagtda" + +msgid "Change" +msgstr "Üýtget" + +msgid "Unknown" +msgstr "Näbelli" + +msgid "Yes" +msgstr "Hawa" + +msgid "No" +msgstr "Ýok" + +#. Translators: Please do not add spaces around commas. +msgid "yes,no,maybe" +msgstr "hawa,ýok,belki" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)d baýt" +msgstr[1] "%(size)d baýt" + +#, python-format +msgid "%s KB" +msgstr "%s KB" + +#, python-format +msgid "%s MB" +msgstr "%s MB" + +#, python-format +msgid "%s GB" +msgstr "%s GB" + +#, python-format +msgid "%s TB" +msgstr "%s TB" + +#, python-format +msgid "%s PB" +msgstr "%s PB" + +msgid "p.m." +msgstr "p.m" + +msgid "a.m." +msgstr "a.m" + +msgid "PM" +msgstr "PM" + +msgid "AM" +msgstr "AM" + +msgid "midnight" +msgstr "ýary gije" + +msgid "noon" +msgstr "günortan" + +msgid "Monday" +msgstr "Duşenbe" + +msgid "Tuesday" +msgstr "Sişenbe" + +msgid "Wednesday" +msgstr "Çarşenbe" + +msgid "Thursday" +msgstr "Penşenbe" + +msgid "Friday" +msgstr "Anna" + +msgid "Saturday" +msgstr "Şenbe" + +msgid "Sunday" +msgstr "Ýekşenbe" + +msgid "Mon" +msgstr "Duş" + +msgid "Tue" +msgstr "Siş" + +msgid "Wed" +msgstr "Çarş" + +msgid "Thu" +msgstr "Pen" + +msgid "Fri" +msgstr "Anna" + +msgid "Sat" +msgstr "Şen" + +msgid "Sun" +msgstr "Ýek" + +msgid "January" +msgstr "Ýanwar" + +msgid "February" +msgstr "Fewral" + +msgid "March" +msgstr "Mart" + +msgid "April" +msgstr "Aprel" + +msgid "May" +msgstr "Maý" + +msgid "June" +msgstr "Iýun" + +msgid "July" +msgstr "Iýul" + +msgid "August" +msgstr "Awgust" + +msgid "September" +msgstr "Sentýabr" + +msgid "October" +msgstr "Oktýabr" + +msgid "November" +msgstr "Noýabr" + +msgid "December" +msgstr "Dekabr" + +msgid "jan" +msgstr "ýan" + +msgid "feb" +msgstr "few" + +msgid "mar" +msgstr "mart" + +msgid "apr" +msgstr "apr" + +msgid "may" +msgstr "maý" + +msgid "jun" +msgstr "iýun" + +msgid "jul" +msgstr "iýul" + +msgid "aug" +msgstr "awg" + +msgid "sep" +msgstr "sent" + +msgid "oct" +msgstr "okt" + +msgid "nov" +msgstr "noý" + +msgid "dec" +msgstr "dek" + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "Ýan." + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "Few." + +msgctxt "abbrev. month" +msgid "March" +msgstr "Mart" + +msgctxt "abbrev. month" +msgid "April" +msgstr "Aprel" + +msgctxt "abbrev. month" +msgid "May" +msgstr "Maý" + +msgctxt "abbrev. month" +msgid "June" +msgstr "Iýun" + +msgctxt "abbrev. month" +msgid "July" +msgstr "Iýul" + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "Awg." + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "Sent." + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "Okt." + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "Noý." + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "Dek." + +msgctxt "alt. month" +msgid "January" +msgstr "Ýanwar" + +msgctxt "alt. month" +msgid "February" +msgstr "Fewral" + +msgctxt "alt. month" +msgid "March" +msgstr "Mart" + +msgctxt "alt. month" +msgid "April" +msgstr "Aprel" + +msgctxt "alt. month" +msgid "May" +msgstr "Maý" + +msgctxt "alt. month" +msgid "June" +msgstr "Iýun" + +msgctxt "alt. month" +msgid "July" +msgstr "Iýul" + +msgctxt "alt. month" +msgid "August" +msgstr "Awgust" + +msgctxt "alt. month" +msgid "September" +msgstr "Sentýabr" + +msgctxt "alt. month" +msgid "October" +msgstr "Oktýabr" + +msgctxt "alt. month" +msgid "November" +msgstr "Noýabr" + +msgctxt "alt. month" +msgid "December" +msgstr "Dekabr" + +msgid "This is not a valid IPv6 address." +msgstr "Bu dogry IPv6 salgy däl." + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "%(truncated_text)s…" + +msgid "or" +msgstr "ýa" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr "\"" + +#, python-format +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "%(num)d ýyl" +msgstr[1] "%(num)d ýyl" + +#, python-format +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "%(num)d aý" +msgstr[1] "%(num)d aý" + +#, python-format +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "%(num)d hepde" +msgstr[1] "%(num)d hepde" + +#, python-format +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "%(num)d gün" +msgstr[1] "%(num)d gün" + +#, python-format +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "%(num)d sagat" +msgstr[1] "%(num)d sagat" + +#, python-format +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "%(num)d minut" +msgstr[1] "%(num)d minut" + +msgid "Forbidden" +msgstr "Gadagan " + +msgid "CSRF verification failed. Request aborted." +msgstr "CSRF dogrylamak şowsuz. Talap ýatyryldy." + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" +"Bu haty görýärsiňiz, sebäbi bu HTTPS sahypasy web brauzeriňiz tarapyndan " +"iberilmeli \"Referer header\" talap edýär, ýöne hiç biri iberilmedi. Bu " +"sözbaşy, brauzeriňiziň üçünji şahyslar tarapyndan ogurlanmazlygy üçin " +"howpsuzlyk sebäpli talap edilýär." + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" +"Brauzeriňizde \"Referer\" sözbaşylaryny öçüren bolsaňyz, iň bolmanda bu " +"sahypa ýa-da HTTPS birikmeleri ýa-da \"meňzeş\" talaplar üçin täzeden açyň." + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" +"Egerde siz diýen bellik " +"ýada \"Referrer-Policy: no-referrer\" header ulanýan bolsaňyz, olary " +"aýyrmagyňyzy haýyş edýäris. CSRF goragy üçin \"Referer\" header-i dogry " +"salgylanma üçin gereklidir. Eger siz gizlinlik üçin alada etseňiz, üçinji " +"şahs sahypalara baglanyşyklar üçin ýaly " +"alternatiwalary ulanyp bilersiňiz." + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" +"Bu sahypa formalary tabşyranda CSRF kukisini talap edýäligi sebäpli bu " +"habary görýärsiňiz. Bu kuki, brauzeriňiziň üçünji taraplar tarapyndan " +"ogurlanmazlygy üçin howpsuzlyk sebäpli talap edilýär." + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" +"Brauzeriňizde kukileri öçüren bolsaňyz, iň bolmanda şu sahypa ýa-da " +"\"meňzeş\" talaplar üçin olary täzeden açyň." + +msgid "More information is available with DEBUG=True." +msgstr "Has giňişleýin maglumat DEBUG=True bilen elýeterlidir." + +msgid "No year specified" +msgstr "Ýyl görkezilmedi" + +msgid "Date out of range" +msgstr "Sene çägiň daşynda" + +msgid "No month specified" +msgstr "Aý görkezilmedi" + +msgid "No day specified" +msgstr "Gün görkezilmedi" + +msgid "No week specified" +msgstr "Hepde görkezilmedi" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "Elýeterli %(verbose_name_plural)s ýok" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" +"Gelejek %(verbose_name_plural)s elýeterli däl sebäbi %(class_name)s." +"allow_future bahasy False" + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "Nädogry sene setiri \"%(datestr)s\" berlen format \"%(format)s\"" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "Talap bilen gabat gelýän %(verbose_name)s tapylmady" + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "Sahypa “iň soňky” däl, ony int-ede öwrüp bolmaz." + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "Nädogry sahypa (%(page_number)s ): %(message)s" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "Boş list we \"%(class_name)s.allow_empty\" bahasy False" + +msgid "Directory indexes are not allowed here." +msgstr "Bu ýerde katalog indekslerine rugsat berilmeýär." + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "\"%(path)s\" beýle ýol ýok" + +#, python-format +msgid "Index of %(directory)s" +msgstr "%(directory)s indeksi" + +msgid "The install worked successfully! Congratulations!" +msgstr "Üstünlikli guruldy! Gutlaýarys!" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" +"Django %(version)s üçin goýberiş " +"belliklerini görüň" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not " +"configured any URLs." +msgstr "" +"Bu sahypany görýärsiňiz, sebäbi sazlamalar faýlyňyzda DEBUG=True we hiç hili URL düzmediňiz." + +msgid "Django Documentation" +msgstr "Django resminamalary" + +msgid "Topics, references, & how-to’s" +msgstr "Mowzuklar, salgylanmalar, & how-to-lar" + +msgid "Tutorial: A Polling App" +msgstr "Gollanma: Ses beriş programmasy" + +msgid "Get started with Django" +msgstr "Django bilen başlaň" + +msgid "Django Community" +msgstr "Django jemgyýeti" + +msgid "Connect, get help, or contribute" +msgstr "Birikiň, kömek alyň ýa-da goşant goşuň" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/tk/__init__.py b/venv/lib/python3.12/site-packages/django/conf/locale/tk/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/tk/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/tk/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2e75fbb65810bddeb6cbf128ae784099111318c2 GIT binary patch literal 198 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 YjhG, 2013 +# BouRock, 2015-2024 +# BouRock, 2014-2015 +# Caner Başaran , 2013 +# Cihad GÜNDOĞDU , 2012 +# Cihad GÜNDOĞDU , 2013-2014 +# Gökmen Görgen , 2013 +# Jannis Leidel , 2011 +# Mesut Can Gürle , 2013 +# Murat Çorlu , 2012 +# Murat Sahin , 2011-2012 +# Türker Sezer , 2019 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-05-22 11:46-0300\n" +"PO-Revision-Date: 2024-08-07 06:49+0000\n" +"Last-Translator: BouRock, 2015-2024\n" +"Language-Team: Turkish (http://app.transifex.com/django/django/language/" +"tr/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: tr\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +msgid "Afrikaans" +msgstr "Afrikanca" + +msgid "Arabic" +msgstr "Arapça" + +msgid "Algerian Arabic" +msgstr "Cezayir Arapçası" + +msgid "Asturian" +msgstr "Asturyaca" + +msgid "Azerbaijani" +msgstr "Azerice" + +msgid "Bulgarian" +msgstr "Bulgarca" + +msgid "Belarusian" +msgstr "Beyaz Rusça" + +msgid "Bengali" +msgstr "Bengalce" + +msgid "Breton" +msgstr "Bretonca" + +msgid "Bosnian" +msgstr "Boşnakça" + +msgid "Catalan" +msgstr "Katalanca" + +msgid "Central Kurdish (Sorani)" +msgstr "Orta Kürtçe (Sorani)" + +msgid "Czech" +msgstr "Çekçe" + +msgid "Welsh" +msgstr "Galce" + +msgid "Danish" +msgstr "Danca" + +msgid "German" +msgstr "Almanca" + +msgid "Lower Sorbian" +msgstr "Aşağı Sorb dili" + +msgid "Greek" +msgstr "Yunanca" + +msgid "English" +msgstr "İngilizce" + +msgid "Australian English" +msgstr "Avusturya İngilizcesi" + +msgid "British English" +msgstr "İngiliz İngilizcesi" + +msgid "Esperanto" +msgstr "Esperanto dili" + +msgid "Spanish" +msgstr "İspanyolca" + +msgid "Argentinian Spanish" +msgstr "Arjantin İspanyolcası" + +msgid "Colombian Spanish" +msgstr "Kolomiya İspanyolcası" + +msgid "Mexican Spanish" +msgstr "Meksika İspanyolcası" + +msgid "Nicaraguan Spanish" +msgstr "Nikaragua İspanyolcası" + +msgid "Venezuelan Spanish" +msgstr "Venezüella İspanyolcası" + +msgid "Estonian" +msgstr "Estonca" + +msgid "Basque" +msgstr "Baskça" + +msgid "Persian" +msgstr "Farsça" + +msgid "Finnish" +msgstr "Fince" + +msgid "French" +msgstr "Fransızca" + +msgid "Frisian" +msgstr "Frizce" + +msgid "Irish" +msgstr "İrlandaca" + +msgid "Scottish Gaelic" +msgstr "İskoçça Galcesi" + +msgid "Galician" +msgstr "Galiçyaca" + +msgid "Hebrew" +msgstr "İbranice" + +msgid "Hindi" +msgstr "Hintçe" + +msgid "Croatian" +msgstr "Hırvatça" + +msgid "Upper Sorbian" +msgstr "Yukarı Sorb dili" + +msgid "Hungarian" +msgstr "Macarca" + +msgid "Armenian" +msgstr "Ermenice" + +msgid "Interlingua" +msgstr "Interlingua" + +msgid "Indonesian" +msgstr "Endonezce" + +msgid "Igbo" +msgstr "Igbo dili" + +msgid "Ido" +msgstr "Ido dili" + +msgid "Icelandic" +msgstr "İzlandaca" + +msgid "Italian" +msgstr "İtalyanca" + +msgid "Japanese" +msgstr "Japonca" + +msgid "Georgian" +msgstr "Gürcüce" + +msgid "Kabyle" +msgstr "Kabiliye dili" + +msgid "Kazakh" +msgstr "Kazakça" + +msgid "Khmer" +msgstr "Kmerce" + +msgid "Kannada" +msgstr "Kannada dili" + +msgid "Korean" +msgstr "Korece" + +msgid "Kyrgyz" +msgstr "Kırgızca" + +msgid "Luxembourgish" +msgstr "Lüksemburgca" + +msgid "Lithuanian" +msgstr "Litovca" + +msgid "Latvian" +msgstr "Letonca" + +msgid "Macedonian" +msgstr "Makedonca" + +msgid "Malayalam" +msgstr "Malayamca" + +msgid "Mongolian" +msgstr "Moğolca" + +msgid "Marathi" +msgstr "Marathi dili" + +msgid "Malay" +msgstr "Malayca" + +msgid "Burmese" +msgstr "Birmanca" + +msgid "Norwegian Bokmål" +msgstr "Norveççe Bokmal" + +msgid "Nepali" +msgstr "Nepalce" + +msgid "Dutch" +msgstr "Flemenkçe" + +msgid "Norwegian Nynorsk" +msgstr "Norveççe Nynorsk" + +msgid "Ossetic" +msgstr "Osetçe" + +msgid "Punjabi" +msgstr "Pencapça" + +msgid "Polish" +msgstr "Lehçe" + +msgid "Portuguese" +msgstr "Portekizce" + +msgid "Brazilian Portuguese" +msgstr "Brezilya Portekizcesi" + +msgid "Romanian" +msgstr "Romence" + +msgid "Russian" +msgstr "Rusça" + +msgid "Slovak" +msgstr "Slovakça" + +msgid "Slovenian" +msgstr "Slovence" + +msgid "Albanian" +msgstr "Arnavutça" + +msgid "Serbian" +msgstr "Sırpça" + +msgid "Serbian Latin" +msgstr "Sırpça Latin" + +msgid "Swedish" +msgstr "İsveççe" + +msgid "Swahili" +msgstr "Savahilice" + +msgid "Tamil" +msgstr "Tamilce" + +msgid "Telugu" +msgstr "Telugu dili" + +msgid "Tajik" +msgstr "Tacikçe" + +msgid "Thai" +msgstr "Tayca" + +msgid "Turkmen" +msgstr "Türkmence" + +msgid "Turkish" +msgstr "Türkçe" + +msgid "Tatar" +msgstr "Tatarca" + +msgid "Udmurt" +msgstr "Udmurtça" + +msgid "Uyghur" +msgstr "Uygur" + +msgid "Ukrainian" +msgstr "Ukraynaca" + +msgid "Urdu" +msgstr "Urduca" + +msgid "Uzbek" +msgstr "‎Özbekçe" + +msgid "Vietnamese" +msgstr "Vietnamca" + +msgid "Simplified Chinese" +msgstr "Basitleştirilmiş Çince" + +msgid "Traditional Chinese" +msgstr "Geleneksel Çince" + +msgid "Messages" +msgstr "İletiler" + +msgid "Site Maps" +msgstr "Site Haritaları" + +msgid "Static Files" +msgstr "Sabit Dosyalar" + +msgid "Syndication" +msgstr "Dağıtım" + +#. Translators: String used to replace omitted page numbers in elided page +#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10]. +msgid "…" +msgstr "…" + +msgid "That page number is not an integer" +msgstr "Bu sayfa numarası bir tamsayı değil" + +msgid "That page number is less than 1" +msgstr "Bu sayfa numarası 1’den az" + +msgid "That page contains no results" +msgstr "Bu sayfa hiç sonuç içermiyor" + +msgid "Enter a valid value." +msgstr "Geçerli bir değer girin." + +msgid "Enter a valid domain name." +msgstr "Geçerli bir etki alanı adı girin." + +msgid "Enter a valid URL." +msgstr "Geçerli bir URL girin." + +msgid "Enter a valid integer." +msgstr "Geçerli bir tamsayı girin." + +msgid "Enter a valid email address." +msgstr "Geçerli bir e-posta adresi girin." + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" +"Harflerden, sayılardan, altçizgilerden veya tirelerden oluşan geçerli bir " +"“kısaltma” girin." + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" +"Evrensel kod harflerden, sayılardan, altçizgilerden veya tirelerden oluşan " +"geçerli bir “kısaltma” girin." + +#, python-format +msgid "Enter a valid %(protocol)s address." +msgstr "Geçerli bir %(protocol)s adresi girin." + +msgid "IPv4" +msgstr "IPv4" + +msgid "IPv6" +msgstr "IPv6" + +msgid "IPv4 or IPv6" +msgstr "IPv4 veya IPv6" + +msgid "Enter only digits separated by commas." +msgstr "Sadece virgülle ayrılmış rakamlar girin." + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "Bu değerin %(limit_value)s olduğuna emin olun (şu an %(show_value)s)." + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "Bu değerin %(limit_value)s değerinden az veya eşit olduğuna emin olun." + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "" +"Bu değerin %(limit_value)s değerinden büyük veya eşit olduğuna emin olun." + +#, python-format +msgid "Ensure this value is a multiple of step size %(limit_value)s." +msgstr "" +"Bu değerin %(limit_value)s adım boyutunun katları olduğundan emin olun." + +#, python-format +msgid "" +"Ensure this value is a multiple of step size %(limit_value)s, starting from " +"%(offset)s, e.g. %(offset)s, %(valid_value1)s, %(valid_value2)s, and so on." +msgstr "" +"Bu değerin %(offset)s değerinden başlayarak %(limit_value)s adım boyutunun " +"katı olduğundan emin olun, örn. %(offset)s, %(valid_value1)s, " +"%(valid_value2)s, vb." + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Bu değerin en az %(limit_value)d karaktere sahip olduğuna emin olun (şu an " +"%(show_value)d)." +msgstr[1] "" +"Bu değerin en az %(limit_value)d karaktere sahip olduğuna emin olun (şu an " +"%(show_value)d)." + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Bu değerin en fazla %(limit_value)d karaktere sahip olduğuna emin olun (şu " +"an %(show_value)d)." +msgstr[1] "" +"Bu değerin en fazla %(limit_value)d karaktere sahip olduğuna emin olun (şu " +"an %(show_value)d)." + +msgid "Enter a number." +msgstr "Bir sayı girin." + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "Toplamda %(max)s rakamdan daha fazla olmadığından emin olun." +msgstr[1] "Toplamda %(max)s rakamdan daha fazla olmadığından emin olun." + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "%(max)s ondalık basamaktan daha fazla olmadığından emin olun." +msgstr[1] "%(max)s ondalık basamaktan daha fazla olmadığından emin olun." + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "" +"Ondalık noktasından önce %(max)s rakamdan daha fazla olmadığından emin olun." +msgstr[1] "" +"Ondalık noktasından önce %(max)s rakamdan daha fazla olmadığından emin olun." + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" +"“%(extension)s” dosya uzantısına izin verilmiyor. İzin verilen uzantılar: " +"%(allowed_extensions)s." + +msgid "Null characters are not allowed." +msgstr "Boş karakterlere izin verilmiyor." + +msgid "and" +msgstr "ve" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "Bu %(field_labels)s alanına sahip %(model_name)s zaten mevcut." + +#, python-format +msgid "Constraint “%(name)s” is violated." +msgstr "\"%(name)s\" kısıtlaması ihlal edildi." + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "%(value)r değeri geçerli bir seçim değil." + +msgid "This field cannot be null." +msgstr "Bu alan boş olamaz." + +msgid "This field cannot be blank." +msgstr "Bu alan boş olamaz." + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "Bu %(field_label)s alanına sahip %(model_name)s zaten mevcut." + +#. Translators: The 'lookup_type' is one of 'date', 'year' or +#. 'month'. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" +"%(field_label)s, %(date_field_label)s %(lookup_type)s için benzersiz olmak " +"zorundadır." + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "Alan türü: %(field_type)s" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "“%(value)s” değeri ya True ya da False olmak zorundadır." + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "“%(value)s” değeri ya True, False ya da None olmak zorundadır." + +msgid "Boolean (Either True or False)" +msgstr "Boolean (Ya True ya da False)" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "Dizgi (%(max_length)s karaktere kadar)" + +msgid "String (unlimited)" +msgstr "Dizgi (sınırsız)" + +msgid "Comma-separated integers" +msgstr "Virgülle ayrılmış tamsayılar" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" +"“%(value)s” değeri geçersiz bir tarih biçimine sahip. Bu YYYY-MM-DD " +"biçiminde olmak zorundadır." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" +"“%(value)s” değeri doğru bir biçime (YYYY-MM-DD) sahip ancak bu geçersiz bir " +"tarih." + +msgid "Date (without time)" +msgstr "Tarih (saat olmadan)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" +"“%(value)s” değeri geçersiz bir biçime sahip. YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ] biçiminde olmak zorundadır." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" +"“%(value)s” değeri doğru bir biçime (YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ]) " +"sahip ancak bu geçersiz bir tarih/saat." + +msgid "Date (with time)" +msgstr "Tarih (saat olan)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "“%(value)s” değeri bir ondalık sayı olmak zorundadır." + +msgid "Decimal number" +msgstr "Ondalık sayı" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" +"“%(value)s” değer geçersiz bir biçime sahip. [DD] [HH:[MM:]]ss[.uuuuuu] " +"biçiminde olmak zorundadır." + +msgid "Duration" +msgstr "Süre" + +msgid "Email address" +msgstr "E-posta adresi" + +msgid "File path" +msgstr "Dosya yolu" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "“%(value)s” değeri kayan noktalı bir sayı olmak zorundadır." + +msgid "Floating point number" +msgstr "Kayan noktalı sayı" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "“%(value)s” değeri bir tamsayı olmak zorundadır." + +msgid "Integer" +msgstr "Tamsayı" + +msgid "Big (8 byte) integer" +msgstr "Büyük (8 bayt) tamsayı" + +msgid "Small integer" +msgstr "Küçük tamsayı" + +msgid "IPv4 address" +msgstr "IPv4 adresi" + +msgid "IP address" +msgstr "IP adresi" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "“%(value)s” değeri ya None, True ya da False olmak zorundadır." + +msgid "Boolean (Either True, False or None)" +msgstr "Booleanl (Ya True, False, ya da None)" + +msgid "Positive big integer" +msgstr "Pozitif büyük tamsayı" + +msgid "Positive integer" +msgstr "Pozitif tamsayı" + +msgid "Positive small integer" +msgstr "Pozitif küçük tamsayı" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "Kısaltma (%(max_length)s karaktere kadar)" + +msgid "Text" +msgstr "Metin" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" +"“%(value)s” değeri geçersiz bir biçime sahip. HH:MM[:ss[.uuuuuu]] biçiminde " +"olmak zorundadır." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" +"“%(value)s” değeri doğru biçime (HH:MM[:ss[.uuuuuu]]) sahip ancak bu " +"geçersiz bir saat." + +msgid "Time" +msgstr "Saat" + +msgid "URL" +msgstr "URL" + +msgid "Raw binary data" +msgstr "Ham ikili veri" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "“%(value)s” geçerli bir UUID değil." + +msgid "Universally unique identifier" +msgstr "Evrensel benzersiz tanımlayıcı" + +msgid "File" +msgstr "Dosya" + +msgid "Image" +msgstr "Resim" + +msgid "A JSON object" +msgstr "JSON nesnesi" + +msgid "Value must be valid JSON." +msgstr "Değer geçerli JSON olmak zorundadır." + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "%(field)s %(value)r olan %(model)s benzeri mevcut değil." + +msgid "Foreign Key (type determined by related field)" +msgstr "Dış Anahtar (türü ilgili alana göre belirlenir)" + +msgid "One-to-one relationship" +msgstr "Bire-bir ilişki" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "%(from)s-%(to)s ilişkisi" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "%(from)s-%(to)s ilişkileri" + +msgid "Many-to-many relationship" +msgstr "Çoka-çok ilişki" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr ":?.!" + +msgid "This field is required." +msgstr "Bu alan zorunludur." + +msgid "Enter a whole number." +msgstr "Tam bir sayı girin." + +msgid "Enter a valid date." +msgstr "Geçerli bir tarih girin." + +msgid "Enter a valid time." +msgstr "Geçerli bir saat girin." + +msgid "Enter a valid date/time." +msgstr "Geçerli bir tarih/saat girin." + +msgid "Enter a valid duration." +msgstr "Geçerli bir süre girin." + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "Gün sayıları {min_days} ve {max_days} arasında olmak zorundadır." + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "Hiç dosya gönderilmedi. Formdaki kodlama türünü kontrol edin." + +msgid "No file was submitted." +msgstr "Hiç dosya gönderilmedi." + +msgid "The submitted file is empty." +msgstr "Gönderilen dosya boş." + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" +"Bu dosya adının en fazla %(max)d karaktere sahip olduğundan emin olun (şu an " +"%(length)d)." +msgstr[1] "" +"Bu dosya adının en fazla %(max)d karaktere sahip olduğundan emin olun (şu an " +"%(length)d)." + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "" +"Lütfen ya bir dosya gönderin ya da temizle işaretleme kutusunu işaretleyin, " +"ikisini aynı anda işaretlemeyin." + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" +"Geçerli bir resim gönderin. Gönderdiğiniz dosya ya bir resim değildi ya da " +"bozulmuş bir resimdi." + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "Geçerli bir seçenek seçin. %(value)s mevcut seçeneklerden biri değil." + +msgid "Enter a list of values." +msgstr "Değerlerin bir listesini girin." + +msgid "Enter a complete value." +msgstr "Tam bir değer girin." + +msgid "Enter a valid UUID." +msgstr "Geçerli bir UUID girin." + +msgid "Enter a valid JSON." +msgstr "Geçerli bir JSON girin." + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr ":" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "(Gizli alan %(name)s) %(error)s" + +#, python-format +msgid "" +"ManagementForm data is missing or has been tampered with. Missing fields: " +"%(field_names)s. You may need to file a bug report if the issue persists." +msgstr "" +"ManagementForm verileri eksik veya değiştirilmiş. Eksik alanlar: " +"%(field_names)s. Sorun devam ederse bir hata raporu dosyalamanız gerekebilir." + +#, python-format +msgid "Please submit at most %(num)d form." +msgid_plural "Please submit at most %(num)d forms." +msgstr[0] "Lütfen en fazla %(num)d form gönderin." +msgstr[1] "Lütfen en fazla %(num)d form gönderin." + +#, python-format +msgid "Please submit at least %(num)d form." +msgid_plural "Please submit at least %(num)d forms." +msgstr[0] "Lütfen en az %(num)d form gönderin." +msgstr[1] "Lütfen en az %(num)d form gönderin." + +msgid "Order" +msgstr "Sıralama" + +msgid "Delete" +msgstr "Sil" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "Lütfen %(field)s için kopya veriyi düzeltin." + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "" +"Lütfen %(field)s için benzersiz olmak zorunda olan, kopya veriyi düzeltin." + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"Lütfen %(date_field)s içindeki %(lookup)s için benzersiz olmak zorunda olan " +"%(field_name)s için kopya veriyi düzeltin." + +msgid "Please correct the duplicate values below." +msgstr "Lütfen aşağıdaki kopya değerleri düzeltin." + +msgid "The inline value did not match the parent instance." +msgstr "Satıriçi değer ana örnek ile eşleşmedi." + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "" +"Geçerli bir seçenek seçin. Bu seçenek, mevcut seçeneklerden biri değil." + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "“%(pk)s” geçerli bir değer değil." + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" +"%(datetime)s, %(current_timezone)s saat dilimi olarak yorumlanamadı; bu " +"belirsiz olabilir ya da mevcut olmayabilir." + +msgid "Clear" +msgstr "Temizle" + +msgid "Currently" +msgstr "Şu anki" + +msgid "Change" +msgstr "Değiştir" + +msgid "Unknown" +msgstr "Bilinmiyor" + +msgid "Yes" +msgstr "Evet" + +msgid "No" +msgstr "Hayır" + +#. Translators: Please do not add spaces around commas. +msgid "yes,no,maybe" +msgstr "evet,hayır,olabilir" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)d bayt" +msgstr[1] "%(size)d bayt" + +#, python-format +msgid "%s KB" +msgstr "%s KB" + +#, python-format +msgid "%s MB" +msgstr "%s MB" + +#, python-format +msgid "%s GB" +msgstr "%s GB" + +#, python-format +msgid "%s TB" +msgstr "%s TB" + +#, python-format +msgid "%s PB" +msgstr "%s PB" + +msgid "p.m." +msgstr "ö.s." + +msgid "a.m." +msgstr "ö.ö." + +msgid "PM" +msgstr "ÖS" + +msgid "AM" +msgstr "ÖÖ" + +msgid "midnight" +msgstr "gece yarısı" + +msgid "noon" +msgstr "öğlen" + +msgid "Monday" +msgstr "Pazartesi" + +msgid "Tuesday" +msgstr "Salı" + +msgid "Wednesday" +msgstr "Çarşamba" + +msgid "Thursday" +msgstr "Perşembe" + +msgid "Friday" +msgstr "Cuma" + +msgid "Saturday" +msgstr "Cumartesi" + +msgid "Sunday" +msgstr "Pazar" + +msgid "Mon" +msgstr "Pzt" + +msgid "Tue" +msgstr "Sal" + +msgid "Wed" +msgstr "Çrş" + +msgid "Thu" +msgstr "Prş" + +msgid "Fri" +msgstr "Cum" + +msgid "Sat" +msgstr "Cmt" + +msgid "Sun" +msgstr "Paz" + +msgid "January" +msgstr "Ocak" + +msgid "February" +msgstr "Şubat" + +msgid "March" +msgstr "Mart" + +msgid "April" +msgstr "Nisan" + +msgid "May" +msgstr "Mayıs" + +msgid "June" +msgstr "Haziran" + +msgid "July" +msgstr "Temmuz" + +msgid "August" +msgstr "Ağustos" + +msgid "September" +msgstr "Eylül" + +msgid "October" +msgstr "Ekim" + +msgid "November" +msgstr "Kasım" + +msgid "December" +msgstr "Aralık" + +msgid "jan" +msgstr "oca" + +msgid "feb" +msgstr "şub" + +msgid "mar" +msgstr "mar" + +msgid "apr" +msgstr "nis" + +msgid "may" +msgstr "may" + +msgid "jun" +msgstr "haz" + +msgid "jul" +msgstr "tem" + +msgid "aug" +msgstr "ağu" + +msgid "sep" +msgstr "eyl" + +msgid "oct" +msgstr "eki" + +msgid "nov" +msgstr "kas" + +msgid "dec" +msgstr "ara" + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "Oca." + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "Şub." + +msgctxt "abbrev. month" +msgid "March" +msgstr "Mart" + +msgctxt "abbrev. month" +msgid "April" +msgstr "Nisan" + +msgctxt "abbrev. month" +msgid "May" +msgstr "Mayıs" + +msgctxt "abbrev. month" +msgid "June" +msgstr "Haz." + +msgctxt "abbrev. month" +msgid "July" +msgstr "Tem." + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "Ağu." + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "Eyl." + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "Eki." + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "Kas." + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "Ara." + +msgctxt "alt. month" +msgid "January" +msgstr "Ocak" + +msgctxt "alt. month" +msgid "February" +msgstr "Şubat" + +msgctxt "alt. month" +msgid "March" +msgstr "Mart" + +msgctxt "alt. month" +msgid "April" +msgstr "Nisan" + +msgctxt "alt. month" +msgid "May" +msgstr "Mayıs" + +msgctxt "alt. month" +msgid "June" +msgstr "Haziran" + +msgctxt "alt. month" +msgid "July" +msgstr "Temmuz" + +msgctxt "alt. month" +msgid "August" +msgstr "Ağustos" + +msgctxt "alt. month" +msgid "September" +msgstr "Eylül" + +msgctxt "alt. month" +msgid "October" +msgstr "Ekim" + +msgctxt "alt. month" +msgid "November" +msgstr "Kasım" + +msgctxt "alt. month" +msgid "December" +msgstr "Aralık" + +msgid "This is not a valid IPv6 address." +msgstr "Bu, geçerli bir IPv6 adresi değil." + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "%(truncated_text)s…" + +msgid "or" +msgstr "ya da" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr ", " + +#, python-format +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "%(num)d yıl" +msgstr[1] "%(num)d yıl" + +#, python-format +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "%(num)d ay" +msgstr[1] "%(num)d ay" + +#, python-format +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "%(num)d hafta" +msgstr[1] "%(num)d hafta" + +#, python-format +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "%(num)d gün" +msgstr[1] "%(num)d gün" + +#, python-format +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "%(num)d saat" +msgstr[1] "%(num)d saat" + +#, python-format +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "%(num)d dakika" +msgstr[1] "%(num)d dakika" + +msgid "Forbidden" +msgstr "Yasak" + +msgid "CSRF verification failed. Request aborted." +msgstr "CSRF doğrulaması başarısız oldu. İstek iptal edildi." + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" +"Bu iletiyi görüyorsunuz çünkü bu HTTPS sitesi, web tarayıcınız tarafından " +"gönderilen “Referer üstbilgisi”ni gerektirir, ancak hiçbir şey gönderilmedi. " +"Bu üstbilgi güvenlik nedenleri için gerekir, tarayıcınızın üçüncü taraf " +"uygulamalar tarafından ele geçirilmediğinden emin olun." + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" +"Eğer tarayıcınızı “Referer” üstbilgilerini etkisizleştirmek için " +"yapılandırdıysanız, lütfen bunları, en azından bu site ya da HTTPS " +"bağlantıları veya “aynı-kaynakta” olan istekler için yeniden etkinleştirin." + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" +"Eğer etiketi " +"kullanıyorsanız ya da “Referrer-Policy: no-referrer” üstbilgisini dahil " +"ediyorsanız, lütfen bunları kaldırın. CSRF koruması, katı göndereni denetimi " +"yapmak için “Referer” üstbilgisi gerektirir. Gizlilik konusunda endişeniz " +"varsa, üçüncü taraf sitelere bağlantılar için gibi " +"alternatifler kullanın." + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" +"Bu iletiyi görüyorsunuz çünkü bu site, formları gönderdiğinizde bir CSRF " +"tanımlama bilgisini gerektirir. Bu tanımlama bilgisi güvenlik nedenleri için " +"gerekir, tarayıcınızın üçüncü taraf uygulamalar tarafından ele " +"geçirilmediğinden emin olun." + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" +"Eğer tarayıcınızı tanımlama bilgilerini etkisizleştirmek için " +"yapılandırdıysanız, lütfen bunları, en azından bu site ya da “aynı-kaynakta” " +"olan istekler için yeniden etkinleştirin." + +msgid "More information is available with DEBUG=True." +msgstr "Daha fazla bilgi DEBUG=True ayarı ile mevcut olur." + +msgid "No year specified" +msgstr "Yıl bilgisi belirtilmedi" + +msgid "Date out of range" +msgstr "Tarih aralık dışında" + +msgid "No month specified" +msgstr "Ay bilgisi belirtilmedi" + +msgid "No day specified" +msgstr "Gün bilgisi belirtilmedi" + +msgid "No week specified" +msgstr "Hafta bilgisi belirtilmedi" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "Mevcut %(verbose_name_plural)s yok" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" +"Gelecek %(verbose_name_plural)s mevcut değil, çünkü %(class_name)s." +"allow_future değeri False olarak tanımlı." + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "Geçersiz tarih dizgisi “%(datestr)s” verilen biçim “%(format)s”" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "Sorguyla eşleşen hiç %(verbose_name)s bulunamadı" + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "Sayfa “sonuncu” değil, ya da bir tamsayıya dönüştürülemez." + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "Geçersiz sayfa (%(page_number)s): %(message)s" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "Liste boş ve “%(class_name)s.allow_empty” değeri False." + +msgid "Directory indexes are not allowed here." +msgstr "Dizin indekslerine burada izin verilmiyor." + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "“%(path)s” mevcut değil" + +#, python-format +msgid "Index of %(directory)s" +msgstr "%(directory)s indeksi" + +msgid "The install worked successfully! Congratulations!" +msgstr "Yükleme başarılı olarak çalıştı! Tebrikler!" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" +"Django %(version)s sürümü için yayım notlarını göster" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not " +"configured any URLs." +msgstr "" +"Bu sayfayı görüyorsunuz çünkü DEBUG=True parametresi ayarlar dosyanızın içindedir ve " +"herhangi bir URL yapılandırmadınız." + +msgid "Django Documentation" +msgstr "Django Belgeleri" + +msgid "Topics, references, & how-to’s" +msgstr "Konular, kaynaklar ve nasıl yapılırlar" + +msgid "Tutorial: A Polling App" +msgstr "Eğitim: Anket Uygulaması" + +msgid "Get started with Django" +msgstr "Django ile başlayın" + +msgid "Django Community" +msgstr "Django Topluluğu" + +msgid "Connect, get help, or contribute" +msgstr "Bağlanın, yardım alın, ya da katkıda bulunun" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/tr/__init__.py b/venv/lib/python3.12/site-packages/django/conf/locale/tr/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/tr/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/tr/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..209922e9f084495a1b75ab9752c2b4202ead7fb4 GIT binary patch literal 198 zcmX@j%ge<81o5sX(m?cM5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!O4ZNE&rQ|OP0Yy6 zFHO;RNiEZNN=(kybEFQ_cZ$j>v@Gc?jK&MZmQEdVM^ zOiwM=Pssu+OwP|s)6dCIPRvQwFDcTGkI&4@EQycTE2#X%VUwGmQks)$SHudml@W-G PL5z>gjEsy$%s>_Z$h|a? literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/tr/__pycache__/formats.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/tr/__pycache__/formats.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3655846993d1e02f265dcca58d2729ac99fbc063 GIT binary patch literal 735 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/tt/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/conf/locale/tt/LC_MESSAGES/django.po new file mode 100644 index 0000000000..84d06ef7d9 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/tt/LC_MESSAGES/django.po @@ -0,0 +1,1211 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Azat Khasanshin , 2011 +# v_ildar , 2014 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-09-27 22:40+0200\n" +"PO-Revision-Date: 2019-11-05 00:38+0000\n" +"Last-Translator: Ramiro Morales\n" +"Language-Team: Tatar (http://www.transifex.com/django/django/language/tt/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: tt\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +msgid "Afrikaans" +msgstr "" + +msgid "Arabic" +msgstr "Гарәп теле" + +msgid "Asturian" +msgstr "" + +msgid "Azerbaijani" +msgstr "Азәрбайҗан" + +msgid "Bulgarian" +msgstr "Болгар теле" + +msgid "Belarusian" +msgstr "" + +msgid "Bengali" +msgstr "Бенгалия теле" + +msgid "Breton" +msgstr "" + +msgid "Bosnian" +msgstr "Босния теле" + +msgid "Catalan" +msgstr "Каталан теле" + +msgid "Czech" +msgstr "Чех теле" + +msgid "Welsh" +msgstr "Уэльс теле" + +msgid "Danish" +msgstr "Дания теле" + +msgid "German" +msgstr "Алман теле" + +msgid "Lower Sorbian" +msgstr "" + +msgid "Greek" +msgstr "Грек теле" + +msgid "English" +msgstr "Инглиз теле" + +msgid "Australian English" +msgstr "" + +msgid "British English" +msgstr "Британ инглиз теле" + +msgid "Esperanto" +msgstr "Эсперанто теле" + +msgid "Spanish" +msgstr "Испан теле" + +msgid "Argentinian Spanish" +msgstr "Аргентина испан теле" + +msgid "Colombian Spanish" +msgstr "" + +msgid "Mexican Spanish" +msgstr "Мексикалы испан" + +msgid "Nicaraguan Spanish" +msgstr "Никарагуалы испан" + +msgid "Venezuelan Spanish" +msgstr "" + +msgid "Estonian" +msgstr "Эстон теле" + +msgid "Basque" +msgstr "Баск теле" + +msgid "Persian" +msgstr "Фарсы теле" + +msgid "Finnish" +msgstr "Финн теле" + +msgid "French" +msgstr "Француз теле" + +msgid "Frisian" +msgstr "Фриз теле" + +msgid "Irish" +msgstr "Ирланд теле" + +msgid "Scottish Gaelic" +msgstr "" + +msgid "Galician" +msgstr "Галлий теле" + +msgid "Hebrew" +msgstr "Яһүд теле" + +msgid "Hindi" +msgstr "Хинд теле" + +msgid "Croatian" +msgstr "Хорват теле" + +msgid "Upper Sorbian" +msgstr "" + +msgid "Hungarian" +msgstr "Венгр теле" + +msgid "Armenian" +msgstr "" + +msgid "Interlingua" +msgstr "" + +msgid "Indonesian" +msgstr "Индонезия теле" + +msgid "Ido" +msgstr "" + +msgid "Icelandic" +msgstr "Исланд теле" + +msgid "Italian" +msgstr "Итальян теле" + +msgid "Japanese" +msgstr "Япон теле" + +msgid "Georgian" +msgstr "Грузин теле" + +msgid "Kabyle" +msgstr "" + +msgid "Kazakh" +msgstr "Казах теле" + +msgid "Khmer" +msgstr "Кхмер теле" + +msgid "Kannada" +msgstr "Каннада теле" + +msgid "Korean" +msgstr "Корея теле" + +msgid "Luxembourgish" +msgstr "Люксембург теле" + +msgid "Lithuanian" +msgstr "Литвалылар теле" + +msgid "Latvian" +msgstr "Латвия теле" + +msgid "Macedonian" +msgstr "Македон теле" + +msgid "Malayalam" +msgstr "Малаялам теле" + +msgid "Mongolian" +msgstr "Монгол теле" + +msgid "Marathi" +msgstr "" + +msgid "Burmese" +msgstr "" + +msgid "Norwegian Bokmål" +msgstr "" + +msgid "Nepali" +msgstr "" + +msgid "Dutch" +msgstr "Голланд теле" + +msgid "Norwegian Nynorsk" +msgstr "Норвегиялеләр (Нюнорск) теле" + +msgid "Ossetic" +msgstr "" + +msgid "Punjabi" +msgstr "Паджаби теле" + +msgid "Polish" +msgstr "Поляк теле" + +msgid "Portuguese" +msgstr "Португал теле" + +msgid "Brazilian Portuguese" +msgstr "Бразилия португал теле" + +msgid "Romanian" +msgstr "Румын теле" + +msgid "Russian" +msgstr "Рус теле" + +msgid "Slovak" +msgstr "Словак теле" + +msgid "Slovenian" +msgstr "Словен теле" + +msgid "Albanian" +msgstr "Албан теле" + +msgid "Serbian" +msgstr "Серб теле" + +msgid "Serbian Latin" +msgstr "Серб теле (латин алфавиты)" + +msgid "Swedish" +msgstr "Швед теле" + +msgid "Swahili" +msgstr "" + +msgid "Tamil" +msgstr "Тамиль теле" + +msgid "Telugu" +msgstr "Телугу теле" + +msgid "Thai" +msgstr "Тай теле" + +msgid "Turkish" +msgstr "Төрек теле" + +msgid "Tatar" +msgstr "Татар теле" + +msgid "Udmurt" +msgstr "" + +msgid "Ukrainian" +msgstr "Украин теле" + +msgid "Urdu" +msgstr "Урду" + +msgid "Uzbek" +msgstr "" + +msgid "Vietnamese" +msgstr "Вьетнам теле" + +msgid "Simplified Chinese" +msgstr "Гадиләштерелгән кытай теле" + +msgid "Traditional Chinese" +msgstr "Традицион кытай теле" + +msgid "Messages" +msgstr "" + +msgid "Site Maps" +msgstr "" + +msgid "Static Files" +msgstr "" + +msgid "Syndication" +msgstr "" + +msgid "That page number is not an integer" +msgstr "" + +msgid "That page number is less than 1" +msgstr "" + +msgid "That page contains no results" +msgstr "" + +msgid "Enter a valid value." +msgstr "Дөрес кыйммәтне кертегез." + +msgid "Enter a valid URL." +msgstr "Рөхсәт ителгән URLны кертегез." + +msgid "Enter a valid integer." +msgstr "" + +msgid "Enter a valid email address." +msgstr "Дөрес эл. почта адресны кертегез." + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" + +msgid "Enter a valid IPv4 address." +msgstr "Рөхсәт ителгән IPv4 адресын кертегез." + +msgid "Enter a valid IPv6 address." +msgstr "" + +msgid "Enter a valid IPv4 or IPv6 address." +msgstr "" + +msgid "Enter only digits separated by commas." +msgstr "Өтерләр белән бүленгән сан билгеләрен кертегез" + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "" +"Бу кыйммәтнең %(limit_value)s булуын тикшерегез (хәзер ул - %(show_value)s)." + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "" +"Бу кыйммәтнең %(limit_value)s карата кечерәк яки тигез булуын тикшерегез." + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "" +"Бу кыйммәтнең %(limit_value)s карата зуррак яки тигез булуын тикшерегез." + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" + +msgid "Enter a number." +msgstr "Сан кертегез." + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "" + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "" + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "" + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" + +msgid "Null characters are not allowed." +msgstr "" + +msgid "and" +msgstr "һәм" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "" + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "" + +msgid "This field cannot be null." +msgstr "Бу кырның кыйммәте NULL булырга тиеш түгел." + +msgid "This field cannot be blank." +msgstr "Бу кыр буш булырга тиеш түгел." + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "Мондый %(field_label)s белән булган %(model_name)s инде бар." + +#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'. +#. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "%(field_type)s типтагы кыр" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "" + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "" + +msgid "Boolean (Either True or False)" +msgstr "Логик (True яисә False)" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "Юл (күп дигәндә %(max_length)s)" + +msgid "Comma-separated integers" +msgstr "Өтерләр белән бүленгән бөтен саннар" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" + +msgid "Date (without time)" +msgstr "Дата (вакыт күрсәтмәсе булмаган)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" + +msgid "Date (with time)" +msgstr "Дата (вакыт күрсәтмәсе белән)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "" + +msgid "Decimal number" +msgstr "Унарлы вакланма" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" + +msgid "Duration" +msgstr "" + +msgid "Email address" +msgstr "Эл. почта" + +msgid "File path" +msgstr "Файл юлы" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "" + +msgid "Floating point number" +msgstr "Күчерелүчән өтер белән булган сан" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "" + +msgid "Integer" +msgstr "Бөтен сан" + +msgid "Big (8 byte) integer" +msgstr "Зур бөтен (8 байт)" + +msgid "IPv4 address" +msgstr "" + +msgid "IP address" +msgstr "IP-адрес" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "" + +msgid "Boolean (Either True, False or None)" +msgstr "Логик (True, False я None)" + +msgid "Positive integer" +msgstr "" + +msgid "Positive small integer" +msgstr "" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "" + +msgid "Small integer" +msgstr "" + +msgid "Text" +msgstr "Текст" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" + +msgid "Time" +msgstr "Вакыт" + +msgid "URL" +msgstr "URL" + +msgid "Raw binary data" +msgstr "" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "" + +msgid "Universally unique identifier" +msgstr "" + +msgid "File" +msgstr "" + +msgid "Image" +msgstr "" + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "" + +msgid "Foreign Key (type determined by related field)" +msgstr "Тыш ачкыч (тип бәйле кыр буенча билгеләнгән)" + +msgid "One-to-one relationship" +msgstr "\"Бергә бер\" элемтәсе" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "" + +msgid "Many-to-many relationship" +msgstr "\"Күпкә куп\" элемтәсе" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr "" + +msgid "This field is required." +msgstr "Мәҗбүри кыр." + +msgid "Enter a whole number." +msgstr "Бөтен сан кертегез." + +msgid "Enter a valid date." +msgstr "Рөхсәт ителгән датаны кертегез." + +msgid "Enter a valid time." +msgstr "Рөхсәт ителгән вакытны кертегез." + +msgid "Enter a valid date/time." +msgstr "Рөхсәт ителгән дата һәм вакытны кертегез." + +msgid "Enter a valid duration." +msgstr "" + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "" + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "Һишбер файл җибәрелмәгән. Форма кодлавын тикшерегез." + +msgid "No file was submitted." +msgstr "Һишбер файл җибәрелмәгән." + +msgid "The submitted file is empty." +msgstr "Җибәрелгән файл буш." + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "" +"Зинһар, җибәрегез файлны яисә бушайту байракчасын билгеләгез, икесен бергә " +"түгел." + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" +"Рөхсәт ителгән рәсемне йөкләгез. Сез йөкләгән файл рәсем түгел яисә бозылган." + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "" +"Дөрес тәкъдимне сайлагыз. Рөхсәт ителгән кыйммәтләр арасында %(value)s юк. " + +msgid "Enter a list of values." +msgstr "Кыйммәтләр исемлеген кертегез." + +msgid "Enter a complete value." +msgstr "" + +msgid "Enter a valid UUID." +msgstr "" + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr "" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "" + +msgid "ManagementForm data is missing or has been tampered with" +msgstr "" + +#, python-format +msgid "Please submit %d or fewer forms." +msgid_plural "Please submit %d or fewer forms." +msgstr[0] "" + +#, python-format +msgid "Please submit %d or more forms." +msgid_plural "Please submit %d or more forms." +msgstr[0] "" + +msgid "Order" +msgstr "Тәртип" + +msgid "Delete" +msgstr "Бетерергә" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "Зинһар, %(field)s кырындагы кабатлана торган кыйммәтне төзәтегез." + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "" +"Зинһар, %(field)s кырындагы кыйммәтне төзәтегез, ул уникаль булырга тиеш." + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"Зинһар, %(field_name)s кырындагы кыйммәтне төзәтегез, ул %(date_field)s " +"кырындагы %(lookup)s өчен уникаль булырга тиеш." + +msgid "Please correct the duplicate values below." +msgstr "Зинһар, астагы кабатлана торган кыйммәтләрне төзәтегез." + +msgid "The inline value did not match the parent instance." +msgstr "" + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "" +"Дөрес тәкъдимне сайлагыз. Рөхсәт ителгән кыйммәтләр арасында сезнең вариант " +"юк." + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "" + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" + +msgid "Clear" +msgstr "Бушайтырга" + +msgid "Currently" +msgstr "Хәзерге вакытта" + +msgid "Change" +msgstr "Үзгәртергә" + +msgid "Unknown" +msgstr "Билгесез" + +msgid "Yes" +msgstr "Әйе" + +msgid "No" +msgstr "Юк" + +msgid "Year" +msgstr "" + +msgid "Month" +msgstr "" + +msgid "Day" +msgstr "" + +msgid "yes,no,maybe" +msgstr "әйе,юк,бәлки" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)d байт" + +#, python-format +msgid "%s KB" +msgstr "%s КБ" + +#, python-format +msgid "%s MB" +msgstr "%s МБ" + +#, python-format +msgid "%s GB" +msgstr "%s ГБ" + +#, python-format +msgid "%s TB" +msgstr "%s ТБ" + +#, python-format +msgid "%s PB" +msgstr "%s ПБ" + +msgid "p.m." +msgstr "т.с." + +msgid "a.m." +msgstr "т.к." + +msgid "PM" +msgstr "ТС" + +msgid "AM" +msgstr "ТК" + +msgid "midnight" +msgstr "төн уртасы" + +msgid "noon" +msgstr "көн уртасы" + +msgid "Monday" +msgstr "Дүшәмбе" + +msgid "Tuesday" +msgstr "Сишәмбе" + +msgid "Wednesday" +msgstr "Чәршәмбе" + +msgid "Thursday" +msgstr "Пәнҗешәмбе" + +msgid "Friday" +msgstr "Җомга" + +msgid "Saturday" +msgstr "Шимбә" + +msgid "Sunday" +msgstr "Якшәмбе" + +msgid "Mon" +msgstr "Дүш" + +msgid "Tue" +msgstr "Сиш" + +msgid "Wed" +msgstr "Чәр" + +msgid "Thu" +msgstr "Пнҗ" + +msgid "Fri" +msgstr "Җом" + +msgid "Sat" +msgstr "Шим" + +msgid "Sun" +msgstr "Якш" + +msgid "January" +msgstr "Гыйнвар" + +msgid "February" +msgstr "Февраль" + +msgid "March" +msgstr "Март" + +msgid "April" +msgstr "Апрель" + +msgid "May" +msgstr "Май" + +msgid "June" +msgstr "Июнь" + +msgid "July" +msgstr "Июль" + +msgid "August" +msgstr "Август" + +msgid "September" +msgstr "Сентябрь" + +msgid "October" +msgstr "Октябрь" + +msgid "November" +msgstr "Ноябрь" + +msgid "December" +msgstr "Декабрь" + +msgid "jan" +msgstr "гый" + +msgid "feb" +msgstr "фев" + +msgid "mar" +msgstr "мар" + +msgid "apr" +msgstr "апр" + +msgid "may" +msgstr "май" + +msgid "jun" +msgstr "июн" + +msgid "jul" +msgstr "июл" + +msgid "aug" +msgstr "авг" + +msgid "sep" +msgstr "сен" + +msgid "oct" +msgstr "окт" + +msgid "nov" +msgstr "ноя" + +msgid "dec" +msgstr "дек" + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "Гый." + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "Фев." + +msgctxt "abbrev. month" +msgid "March" +msgstr "Март" + +msgctxt "abbrev. month" +msgid "April" +msgstr "Апрель" + +msgctxt "abbrev. month" +msgid "May" +msgstr "Май" + +msgctxt "abbrev. month" +msgid "June" +msgstr "Июнь" + +msgctxt "abbrev. month" +msgid "July" +msgstr "Июль" + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "Авг." + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "Сен." + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "Окт." + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "Ноя." + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "Дек." + +msgctxt "alt. month" +msgid "January" +msgstr "гыйнвар" + +msgctxt "alt. month" +msgid "February" +msgstr "февраль" + +msgctxt "alt. month" +msgid "March" +msgstr "март" + +msgctxt "alt. month" +msgid "April" +msgstr "апрель" + +msgctxt "alt. month" +msgid "May" +msgstr "май" + +msgctxt "alt. month" +msgid "June" +msgstr "июнь" + +msgctxt "alt. month" +msgid "July" +msgstr "июль" + +msgctxt "alt. month" +msgid "August" +msgstr "август" + +msgctxt "alt. month" +msgid "September" +msgstr "сентябрь" + +msgctxt "alt. month" +msgid "October" +msgstr "октябрь" + +msgctxt "alt. month" +msgid "November" +msgstr "ноябрь" + +msgctxt "alt. month" +msgid "December" +msgstr "декабрь" + +msgid "This is not a valid IPv6 address." +msgstr "" + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "" + +msgid "or" +msgstr "я" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr "," + +#, python-format +msgid "%d year" +msgid_plural "%d years" +msgstr[0] "" + +#, python-format +msgid "%d month" +msgid_plural "%d months" +msgstr[0] "" + +#, python-format +msgid "%d week" +msgid_plural "%d weeks" +msgstr[0] "" + +#, python-format +msgid "%d day" +msgid_plural "%d days" +msgstr[0] "" + +#, python-format +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "" + +#, python-format +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "" + +msgid "0 minutes" +msgstr "" + +msgid "Forbidden" +msgstr "" + +msgid "CSRF verification failed. Request aborted." +msgstr "" + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your Web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" + +msgid "More information is available with DEBUG=True." +msgstr "" + +msgid "No year specified" +msgstr "Ел билгеләнмәгән" + +msgid "Date out of range" +msgstr "" + +msgid "No month specified" +msgstr "Ай билгеләнмәгән" + +msgid "No day specified" +msgstr "Көн билгеләнмәгән" + +msgid "No week specified" +msgstr "Атна билгеләнмәгән" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "Файдалана алырлык %(verbose_name_plural)s юк" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" +"%(class_name)s.allow_future False булуы сәбәпле, киләсе " +"%(verbose_name_plural)s файдалана алырлык түгел" + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "Таләпкә туры килгән %(verbose_name)s табылмаган" + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "" + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "" + +msgid "Directory indexes are not allowed here." +msgstr "" + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "" + +#, python-format +msgid "Index of %(directory)s" +msgstr "" + +msgid "Django: the Web framework for perfectionists with deadlines." +msgstr "" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" + +msgid "The install worked successfully! Congratulations!" +msgstr "" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not configured any " +"URLs." +msgstr "" + +msgid "Django Documentation" +msgstr "" + +msgid "Topics, references, & how-to’s" +msgstr "" + +msgid "Tutorial: A Polling App" +msgstr "" + +msgid "Get started with Django" +msgstr "" + +msgid "Django Community" +msgstr "" + +msgid "Connect, get help, or contribute" +msgstr "" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/udm/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/conf/locale/udm/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..0c7ab6d1221496d3fd113e75a52f617b7f3498d3 GIT binary patch literal 12822 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/udm/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/conf/locale/udm/LC_MESSAGES/django.po new file mode 100644 index 0000000000..68c2bc7e57 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/udm/LC_MESSAGES/django.po @@ -0,0 +1,1197 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-09-27 22:40+0200\n" +"PO-Revision-Date: 2019-11-05 00:38+0000\n" +"Last-Translator: Ramiro Morales\n" +"Language-Team: Udmurt (http://www.transifex.com/django/django/language/" +"udm/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: udm\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +msgid "Afrikaans" +msgstr "Африкаанс" + +msgid "Arabic" +msgstr "Араб" + +msgid "Asturian" +msgstr "" + +msgid "Azerbaijani" +msgstr "Азербайджан" + +msgid "Bulgarian" +msgstr "Болгар" + +msgid "Belarusian" +msgstr "Беларус" + +msgid "Bengali" +msgstr "Бенгал" + +msgid "Breton" +msgstr "Бретон" + +msgid "Bosnian" +msgstr "Босниец" + +msgid "Catalan" +msgstr "Каталан" + +msgid "Czech" +msgstr "Чех" + +msgid "Welsh" +msgstr "Уэльс" + +msgid "Danish" +msgstr "Датчан" + +msgid "German" +msgstr "Немец" + +msgid "Lower Sorbian" +msgstr "" + +msgid "Greek" +msgstr "Грек" + +msgid "English" +msgstr "Англи" + +msgid "Australian English" +msgstr "" + +msgid "British English" +msgstr "Британиысь англи" + +msgid "Esperanto" +msgstr "Эсперанто" + +msgid "Spanish" +msgstr "Испан" + +msgid "Argentinian Spanish" +msgstr "Аргентинаысь испан" + +msgid "Colombian Spanish" +msgstr "" + +msgid "Mexican Spanish" +msgstr "Мексикаысь испан" + +msgid "Nicaraguan Spanish" +msgstr "Никарагуаысь испан" + +msgid "Venezuelan Spanish" +msgstr "Венесуэлаысь испан" + +msgid "Estonian" +msgstr "Эстон" + +msgid "Basque" +msgstr "Баск" + +msgid "Persian" +msgstr "Перс" + +msgid "Finnish" +msgstr "Финн" + +msgid "French" +msgstr "Француз" + +msgid "Frisian" +msgstr "Фриз" + +msgid "Irish" +msgstr "Ирланд" + +msgid "Scottish Gaelic" +msgstr "" + +msgid "Galician" +msgstr "Галисий" + +msgid "Hebrew" +msgstr "Иврит" + +msgid "Hindi" +msgstr "Хинди" + +msgid "Croatian" +msgstr "Хорват" + +msgid "Upper Sorbian" +msgstr "" + +msgid "Hungarian" +msgstr "Венгер" + +msgid "Armenian" +msgstr "" + +msgid "Interlingua" +msgstr "Интерлингва" + +msgid "Indonesian" +msgstr "Индонези" + +msgid "Ido" +msgstr "" + +msgid "Icelandic" +msgstr "Исланд" + +msgid "Italian" +msgstr "Итальян" + +msgid "Japanese" +msgstr "Япон" + +msgid "Georgian" +msgstr "Грузин" + +msgid "Kabyle" +msgstr "" + +msgid "Kazakh" +msgstr "Казах" + +msgid "Khmer" +msgstr "Кхмер" + +msgid "Kannada" +msgstr "Каннада" + +msgid "Korean" +msgstr "Корей" + +msgid "Luxembourgish" +msgstr "Люксембург" + +msgid "Lithuanian" +msgstr "Литва" + +msgid "Latvian" +msgstr "Латвий" + +msgid "Macedonian" +msgstr "Македон" + +msgid "Malayalam" +msgstr "Малаялам" + +msgid "Mongolian" +msgstr "Монгол" + +msgid "Marathi" +msgstr "" + +msgid "Burmese" +msgstr "" + +msgid "Norwegian Bokmål" +msgstr "" + +msgid "Nepali" +msgstr "Непал" + +msgid "Dutch" +msgstr "Голланд" + +msgid "Norwegian Nynorsk" +msgstr "Норвег (нюнорск)" + +msgid "Ossetic" +msgstr "" + +msgid "Punjabi" +msgstr "Панджаби" + +msgid "Polish" +msgstr "Поляк" + +msgid "Portuguese" +msgstr "Португал" + +msgid "Brazilian Portuguese" +msgstr "Бразилиысь португал" + +msgid "Romanian" +msgstr "Румын" + +msgid "Russian" +msgstr "Ӟуч" + +msgid "Slovak" +msgstr "Словак" + +msgid "Slovenian" +msgstr "Словен" + +msgid "Albanian" +msgstr "Албан" + +msgid "Serbian" +msgstr "Серб" + +msgid "Serbian Latin" +msgstr "Серб (латиницаен)" + +msgid "Swedish" +msgstr "Швед" + +msgid "Swahili" +msgstr "Суахили" + +msgid "Tamil" +msgstr "Тамиль" + +msgid "Telugu" +msgstr "Телугу" + +msgid "Thai" +msgstr "Тай" + +msgid "Turkish" +msgstr "Турок" + +msgid "Tatar" +msgstr "Бигер" + +msgid "Udmurt" +msgstr "Удмурт" + +msgid "Ukrainian" +msgstr "Украин" + +msgid "Urdu" +msgstr "Урду" + +msgid "Uzbek" +msgstr "" + +msgid "Vietnamese" +msgstr "Вьетнам" + +msgid "Simplified Chinese" +msgstr "Китай (капчиятэм)" + +msgid "Traditional Chinese" +msgstr "Китай (традици)" + +msgid "Messages" +msgstr "" + +msgid "Site Maps" +msgstr "" + +msgid "Static Files" +msgstr "" + +msgid "Syndication" +msgstr "" + +msgid "That page number is not an integer" +msgstr "" + +msgid "That page number is less than 1" +msgstr "" + +msgid "That page contains no results" +msgstr "" + +msgid "Enter a valid value." +msgstr "Тазэ шонер гожтэ." + +msgid "Enter a valid URL." +msgstr "Шонер URL гожтэ." + +msgid "Enter a valid integer." +msgstr "" + +msgid "Enter a valid email address." +msgstr "Электорн почта адресэз шонер гожтэ" + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" + +msgid "Enter a valid IPv4 address." +msgstr "Шонер IPv4-адрес гожтэ." + +msgid "Enter a valid IPv6 address." +msgstr "Шонер IPv6-адрес гожтэ." + +msgid "Enter a valid IPv4 or IPv6 address." +msgstr "Шонер IPv4 яке IPv6 адрес гожтэ." + +msgid "Enter only digits separated by commas." +msgstr "Запятойёсын висъям лыдпусъёсты гожтэ" + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "Эскере, та %(limit_value)s шуыса. Али татын %(show_value)s." + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "Талы %(limit_value)s-лэсь бадӟымгес луыны уг яра." + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "Талы %(limit_value)s-лэсь ӧжытгес луыны уг яра." + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" + +msgid "Enter a number." +msgstr "Лыд гожтэ." + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "" + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "" + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "" + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" + +msgid "Null characters are not allowed." +msgstr "" + +msgid "and" +msgstr "но" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "" + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "" + +msgid "This field cannot be null." +msgstr "Та NULL луыны уг яра." + +msgid "This field cannot be blank." +msgstr "Та буш луыны уг яра." + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "Таӵе %(field_label)s-ен %(model_name)s вань ини." + +#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'. +#. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "%(field_type)s типъем бусы" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "" + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "" + +msgid "Boolean (Either True or False)" +msgstr "True яке False" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "Чур (%(max_length)s пусозь кузьда)" + +msgid "Comma-separated integers" +msgstr "Запятоен висъям быдэс лыдъёс" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" + +msgid "Date (without time)" +msgstr "Дата (час-минут пусйытэк)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" + +msgid "Date (with time)" +msgstr "Дата но час-минут" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "" + +msgid "Decimal number" +msgstr "Десятичной лыд." + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" + +msgid "Duration" +msgstr "" + +msgid "Email address" +msgstr "Электрон почта адрес" + +msgid "File path" +msgstr "Файллэн нимыз" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "" + +msgid "Floating point number" +msgstr "Вещественной лыд" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "" + +msgid "Integer" +msgstr "целой" + +msgid "Big (8 byte) integer" +msgstr "Бадӟым (8 байтъем) целой лыд" + +msgid "IPv4 address" +msgstr "IPv4 адрес" + +msgid "IP address" +msgstr "IP адрес" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "" + +msgid "Boolean (Either True, False or None)" +msgstr "True, False яке None" + +msgid "Positive integer" +msgstr "Целой, нольлэсь бадӟым лыд" + +msgid "Positive small integer" +msgstr "Нольлэсь бадӟым пичи целой лыд" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "Компьютерной ним (%(max_length)s пусозь кузьда)" + +msgid "Small integer" +msgstr "Пичи целой лыд" + +msgid "Text" +msgstr "Текст" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" + +msgid "Time" +msgstr "Час-минут" + +msgid "URL" +msgstr "URL" + +msgid "Raw binary data" +msgstr "" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "" + +msgid "Universally unique identifier" +msgstr "" + +msgid "File" +msgstr "Файл" + +msgid "Image" +msgstr "Суред" + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "" + +msgid "Foreign Key (type determined by related field)" +msgstr "Мукет моделен герӟет (тип герӟано бусыя валамын)." + +msgid "One-to-one relationship" +msgstr "Одӥг-одӥг герӟет" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "" + +msgid "Many-to-many relationship" +msgstr "Трос-трос герӟет" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr "" + +msgid "This field is required." +msgstr "Та клуэ." + +msgid "Enter a whole number." +msgstr "Целой лыд гожтэ." + +msgid "Enter a valid date." +msgstr "Шонер дата гожтэ." + +msgid "Enter a valid time." +msgstr "Шонер час-минут гожтэ." + +msgid "Enter a valid date/time." +msgstr "Шонер дата но час-минут гожтэ." + +msgid "Enter a valid duration." +msgstr "" + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "" + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "Одӥг файл но лэзьымтэ. Формалэсь код." + +msgid "No file was submitted." +msgstr "Файл лэземын ӧвӧл." + +msgid "The submitted file is empty." +msgstr "Лэзем файл буш." + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "" +"Файл лэзе яке файл ӵушоно шуыса пусъе, огдыръя соиз но, таиз но уг яра." + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "Суред лэзе. Тӥляд файлды лэзьымтэ яке со суред ӧвӧл." + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "Шонер вариант быръе. %(value)s вариантъёс пӧлын ӧвӧл." + +msgid "Enter a list of values." +msgstr "Список лэзе." + +msgid "Enter a complete value." +msgstr "" + +msgid "Enter a valid UUID." +msgstr "" + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr "" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "" + +msgid "ManagementForm data is missing or has been tampered with" +msgstr "" + +#, python-format +msgid "Please submit %d or fewer forms." +msgid_plural "Please submit %d or fewer forms." +msgstr[0] "" + +#, python-format +msgid "Please submit %d or more forms." +msgid_plural "Please submit %d or more forms." +msgstr[0] "" + +msgid "Order" +msgstr "Рад" + +msgid "Delete" +msgstr "Ӵушоно" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "" + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "" + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" + +msgid "Please correct the duplicate values below." +msgstr "" + +msgid "The inline value did not match the parent instance." +msgstr "" + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "" + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "" + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" + +msgid "Clear" +msgstr "Буш кароно" + +msgid "Currently" +msgstr "Али" + +msgid "Change" +msgstr "Тупатъяно" + +msgid "Unknown" +msgstr "Тодымтэ" + +msgid "Yes" +msgstr "Бен" + +msgid "No" +msgstr "Ӧвӧл" + +msgid "Year" +msgstr "" + +msgid "Month" +msgstr "" + +msgid "Day" +msgstr "" + +msgid "yes,no,maybe" +msgstr "бен,ӧвӧл,уг тодӥськы" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)d байт" + +#, python-format +msgid "%s KB" +msgstr "%s КБ" + +#, python-format +msgid "%s MB" +msgstr "%s МБ" + +#, python-format +msgid "%s GB" +msgstr "%s МБ" + +#, python-format +msgid "%s TB" +msgstr "%s ТБ" + +#, python-format +msgid "%s PB" +msgstr "%s ПБ" + +msgid "p.m." +msgstr "лымшор бере" + +msgid "a.m." +msgstr "лымшор азе" + +msgid "PM" +msgstr "лымшор бере" + +msgid "AM" +msgstr "лымшор азе" + +msgid "midnight" +msgstr "уйшор" + +msgid "noon" +msgstr "лымшор" + +msgid "Monday" +msgstr "Вордӥськон" + +msgid "Tuesday" +msgstr "Пуксён" + +msgid "Wednesday" +msgstr "Вирнунал" + +msgid "Thursday" +msgstr "Покчиарня" + +msgid "Friday" +msgstr "Удмуртарня" + +msgid "Saturday" +msgstr "Кӧснунал" + +msgid "Sunday" +msgstr "Арнянунал" + +msgid "Mon" +msgstr "врд" + +msgid "Tue" +msgstr "пкс" + +msgid "Wed" +msgstr "врн" + +msgid "Thu" +msgstr "пкч" + +msgid "Fri" +msgstr "удм" + +msgid "Sat" +msgstr "ксн" + +msgid "Sun" +msgstr "арн" + +msgid "January" +msgstr "толшор" + +msgid "February" +msgstr "тулыспал" + +msgid "March" +msgstr "южтолэзь" + +msgid "April" +msgstr "оштолэзь" + +msgid "May" +msgstr "куартолэзь" + +msgid "June" +msgstr "инвожо" + +msgid "July" +msgstr "пӧсьтолэзь" + +msgid "August" +msgstr "гудырикошкон" + +msgid "September" +msgstr "куарусён" + +msgid "October" +msgstr "коньывуон" + +msgid "November" +msgstr "шуркынмон" + +msgid "December" +msgstr "толсур" + +msgid "jan" +msgstr "тшт" + +msgid "feb" +msgstr "тпт" + +msgid "mar" +msgstr "южт" + +msgid "apr" +msgstr "ошт" + +msgid "may" +msgstr "крт" + +msgid "jun" +msgstr "ивт" + +msgid "jul" +msgstr "пст" + +msgid "aug" +msgstr "гкт" + +msgid "sep" +msgstr "кут" + +msgid "oct" +msgstr "квт" + +msgid "nov" +msgstr "шкт" + +msgid "dec" +msgstr "тст" + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "тшт" + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "тпт" + +msgctxt "abbrev. month" +msgid "March" +msgstr "южт" + +msgctxt "abbrev. month" +msgid "April" +msgstr "ошт" + +msgctxt "abbrev. month" +msgid "May" +msgstr "крт" + +msgctxt "abbrev. month" +msgid "June" +msgstr "ивт" + +msgctxt "abbrev. month" +msgid "July" +msgstr "пст" + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "гкт" + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "кут" + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "квт" + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "шкт" + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "тст" + +msgctxt "alt. month" +msgid "January" +msgstr "толшоре" + +msgctxt "alt. month" +msgid "February" +msgstr "тулыспалэ" + +msgctxt "alt. month" +msgid "March" +msgstr "южтолэзе" + +msgctxt "alt. month" +msgid "April" +msgstr "оштолэзе" + +msgctxt "alt. month" +msgid "May" +msgstr "куартолэзе" + +msgctxt "alt. month" +msgid "June" +msgstr "инвожое" + +msgctxt "alt. month" +msgid "July" +msgstr "пӧсьтолэзе" + +msgctxt "alt. month" +msgid "August" +msgstr "гудырикошконэ" + +msgctxt "alt. month" +msgid "September" +msgstr "куарусёнэ" + +msgctxt "alt. month" +msgid "October" +msgstr "коньывуонэ" + +msgctxt "alt. month" +msgid "November" +msgstr "шуркынмонэ" + +msgctxt "alt. month" +msgid "December" +msgstr "толсуре" + +msgid "This is not a valid IPv6 address." +msgstr "" + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "" + +msgid "or" +msgstr "яке" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr "," + +#, python-format +msgid "%d year" +msgid_plural "%d years" +msgstr[0] "" + +#, python-format +msgid "%d month" +msgid_plural "%d months" +msgstr[0] "" + +#, python-format +msgid "%d week" +msgid_plural "%d weeks" +msgstr[0] "" + +#, python-format +msgid "%d day" +msgid_plural "%d days" +msgstr[0] "" + +#, python-format +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "" + +#, python-format +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "" + +msgid "0 minutes" +msgstr "" + +msgid "Forbidden" +msgstr "" + +msgid "CSRF verification failed. Request aborted." +msgstr "" + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your Web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" + +msgid "More information is available with DEBUG=True." +msgstr "" + +msgid "No year specified" +msgstr "" + +msgid "Date out of range" +msgstr "" + +msgid "No month specified" +msgstr "" + +msgid "No day specified" +msgstr "" + +msgid "No week specified" +msgstr "" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "" + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "" + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "" + +msgid "Directory indexes are not allowed here." +msgstr "Папкаослэсь пуштроссэс татын учкыны уг яра." + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "" + +#, python-format +msgid "Index of %(directory)s" +msgstr "%(directory)s папкалэн пушторсэз" + +msgid "Django: the Web framework for perfectionists with deadlines." +msgstr "" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" + +msgid "The install worked successfully! Congratulations!" +msgstr "" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not configured any " +"URLs." +msgstr "" + +msgid "Django Documentation" +msgstr "" + +msgid "Topics, references, & how-to’s" +msgstr "" + +msgid "Tutorial: A Polling App" +msgstr "" + +msgid "Get started with Django" +msgstr "" + +msgid "Django Community" +msgstr "" + +msgid "Connect, get help, or contribute" +msgstr "" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/ug/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/conf/locale/ug/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..4b9aed37fd33c63bb399b341d632fa2851c1e702 GIT binary patch literal 35453 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, 2018 +# Abduqadir Abliz , 2023 +# Abduqadir Abliz , 2023 +# Azat, 2023 +# Murat Orhun , 2023 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-09-18 11:41-0300\n" +"PO-Revision-Date: 2023-12-04 06:49+0000\n" +"Last-Translator: Abduqadir Abliz , 2023\n" +"Language-Team: Uyghur (http://app.transifex.com/django/django/language/ug/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ug\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Afrikaans" +msgstr "ئافرىكانسچە" + +msgid "Arabic" +msgstr "ئەرەبچە" + +msgid "Algerian Arabic" +msgstr "ئالجىرىيە ئەرەپچىسى" + +msgid "Asturian" +msgstr "ئاستۇرىچە" + +msgid "Azerbaijani" +msgstr "ئەزەربەيجانچە" + +msgid "Bulgarian" +msgstr "بۇلغارچە" + +msgid "Belarusian" +msgstr "بېلورۇسىچە" + +msgid "Bengali" +msgstr "بېنگالچە" + +msgid "Breton" +msgstr "بىرېتونچە" + +msgid "Bosnian" +msgstr "بوسنىيەچە" + +msgid "Catalan" +msgstr "كاتالانچە" + +msgid "Central Kurdish (Sorani)" +msgstr "مەركىزى كۇردچە ( سورانى) " + +msgid "Czech" +msgstr "چېخچە" + +msgid "Welsh" +msgstr "ۋېلشچە" + +msgid "Danish" +msgstr "دانىشچە" + +msgid "German" +msgstr "گىرمانچە" + +msgid "Lower Sorbian" +msgstr "تۆۋەن سوربچە" + +msgid "Greek" +msgstr "گىرېكچە" + +msgid "English" +msgstr "ئىنگلىزچە" + +msgid "Australian English" +msgstr "" +"ئاۋىستىرالىيە ئىنگلزچىسى\n" +" " + +msgid "British English" +msgstr "ئەنگىلىيە ئىنگىلىزچىسى" + +msgid "Esperanto" +msgstr "دۇنيا تىلى" + +msgid "Spanish" +msgstr "ئىسپانچە" + +msgid "Argentinian Spanish" +msgstr "ئارگېنتىنا ئىسپانچىسى" + +msgid "Colombian Spanish" +msgstr "كولۇمبىيە ئىسپانچىسى" + +msgid "Mexican Spanish" +msgstr "مېكسىكا ئىسپانچىسى" + +msgid "Nicaraguan Spanish" +msgstr "نىكاراگۇئا ئىسپاچىسى" + +msgid "Venezuelan Spanish" +msgstr "ۋېنېزۇئېلا ئىسپانچىسى" + +msgid "Estonian" +msgstr "ئېستونىيەچە" + +msgid "Basque" +msgstr "بەسىكچە" + +msgid "Persian" +msgstr "پارىسچە" + +msgid "Finnish" +msgstr "ڧىنلانىدچە" + +msgid "French" +msgstr "ڧىرانسۇزچە" + +msgid "Frisian" +msgstr "فىرىزىيەچە" + +msgid "Irish" +msgstr "ئىرېلاندىيەچە" + +msgid "Scottish Gaelic" +msgstr "شوتلاندىيەچە" + +msgid "Galician" +msgstr "گالىچىيەچە" + +msgid "Hebrew" +msgstr "ئىبرانىچە" + +msgid "Hindi" +msgstr "ھىندىچە" + +msgid "Croatian" +msgstr "كىرودىيەچە" + +msgid "Upper Sorbian" +msgstr "يۇقىرى سوربچە" + +msgid "Hungarian" +msgstr "ماجارچە" + +msgid "Armenian" +msgstr "ئارمىنىيەچە" + +msgid "Interlingua" +msgstr "خەلقئارالىق تىل" + +msgid "Indonesian" +msgstr "ھىندىنوزىيەچە" + +msgid "Igbo" +msgstr "ئىبوچە" + +msgid "Ido" +msgstr "ئىيدوچە" + +msgid "Icelandic" +msgstr "ئىسلاندىيەچە" + +msgid "Italian" +msgstr "ئىتالىيەچە" + +msgid "Japanese" +msgstr "ياپونچە" + +msgid "Georgian" +msgstr "گرۇزىيەچە" + +msgid "Kabyle" +msgstr "كەبىيلچە" + +msgid "Kazakh" +msgstr "قازاقچە" + +msgid "Khmer" +msgstr "كامىيرچە" + +msgid "Kannada" +msgstr "كانناداچە" + +msgid "Korean" +msgstr "كورىيەچە" + +msgid "Kyrgyz" +msgstr "قىرغىزچە" + +msgid "Luxembourgish" +msgstr "لىيۇكسېمبۇرگچە" + +msgid "Lithuanian" +msgstr "لىتۋاچە" + +msgid "Latvian" +msgstr "لاتۋىيەچە" + +msgid "Macedonian" +msgstr "ماكېدونىيەچە" + +msgid "Malayalam" +msgstr "مالىيالامچە" + +msgid "Mongolian" +msgstr "مۇڭغۇلچە" + +msgid "Marathi" +msgstr "ماراتىچە" + +msgid "Malay" +msgstr "مالايچە" + +msgid "Burmese" +msgstr "بېرمىچە" + +msgid "Norwegian Bokmål" +msgstr "نورۋېگىيە بوكمىلچىسى" + +msgid "Nepali" +msgstr "نېپالچە" + +msgid "Dutch" +msgstr "گوللاندىيەچە" + +msgid "Norwegian Nynorsk" +msgstr "نورۋېگىيە نىنورسكچىسى" + +msgid "Ossetic" +msgstr "ئوسېتچە" + +msgid "Punjabi" +msgstr "پۇنجابىچە" + +msgid "Polish" +msgstr "پولشاچە" + +msgid "Portuguese" +msgstr "پورتۇگالچە" + +msgid "Brazilian Portuguese" +msgstr "بىرازىلىيە پورتۇگالچىسى" + +msgid "Romanian" +msgstr "رومەينىيەچە" + +msgid "Russian" +msgstr "رۇسچە" + +msgid "Slovak" +msgstr "سلوۋاكىيەچە" + +msgid "Slovenian" +msgstr "سىلوۋېنىيەچە" + +msgid "Albanian" +msgstr "ئالبانىيەچە" + +msgid "Serbian" +msgstr "سېربىيەچە" + +msgid "Serbian Latin" +msgstr "سېربىيە لاتىنچىسى" + +msgid "Swedish" +msgstr "شىۋىتسىيەچە" + +msgid "Swahili" +msgstr "سۋاھىلچە" + +msgid "Tamil" +msgstr "تامىلچە" + +msgid "Telugu" +msgstr "تېلۇگۇ" + +msgid "Tajik" +msgstr "تاجىكچە" + +msgid "Thai" +msgstr "تايلاندچە" + +msgid "Turkmen" +msgstr "تۈركمەنچە" + +msgid "Turkish" +msgstr "تۈركچە" + +msgid "Tatar" +msgstr "تاتارچە" + +msgid "Udmurt" +msgstr "ئۇدمۇرتچە" + +msgid "Uyghur" +msgstr "ئۇيغۇرچە" + +msgid "Ukrainian" +msgstr "ئۇكرائىنچە" + +msgid "Urdu" +msgstr "ئوردۇچە" + +msgid "Uzbek" +msgstr "ئۆزبەكچە" + +msgid "Vietnamese" +msgstr "ۋېيتنامچە" + +msgid "Simplified Chinese" +msgstr "خەنزۇچە" + +msgid "Traditional Chinese" +msgstr "ئەنئەنىۋى خەنزۇچىسى" + +msgid "Messages" +msgstr "قىسقا ئۇچۇر" + +msgid "Site Maps" +msgstr "بېكەت خەرىتىسى" + +msgid "Static Files" +msgstr "سىتاتىك ھۆججەت" + +msgid "Syndication" +msgstr "تەشكىللىنىش" + +#. Translators: String used to replace omitted page numbers in elided page +#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10]. +msgid "…" +msgstr "…" + +msgid "That page number is not an integer" +msgstr "بەت نومۇرى پۈتۈن سان ئەمەس" + +msgid "That page number is less than 1" +msgstr "بەت نومۇرى 1 دىن كىچىك" + +msgid "That page contains no results" +msgstr "ئۇ بەتتە ھېچقانداق نەتىجە يوق" + +msgid "Enter a valid value." +msgstr "بىر ئىناۋەتلىك قىممەتنى تولدۇرۇڭ" + +msgid "Enter a valid URL." +msgstr "ئىناۋەتلىك URL نى تولدۇرۇڭ" + +msgid "Enter a valid integer." +msgstr "ئىناۋەتلىك پۈتۈن سان تولدۇرۇڭ" + +msgid "Enter a valid email address." +msgstr "ئىناۋەتلىك ئېلخەت ئادرېسىنى كىرگۈزۈڭ." + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" +"ھەرپ ، سان ، ئاستى سىزىق ياكى سىزىقچىلاردىن تەركىب تاپقان ئۈنۈملۈك «سىلاگ» " +"نى كىرگۈزۈڭ." + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" +"يۇنىكودلۇق ھەرپ، سان، ئاستى سىزىق ياكى سىزىقچىلاردىن تەركىب تاپقان ئۈنۈملۈك " +"«slug» نى كىرگۈزۈڭ." + +msgid "Enter a valid IPv4 address." +msgstr "ئىناۋەتلىك IPv4 ئادرېسىنى كىرگۈزۈڭ." + +msgid "Enter a valid IPv6 address." +msgstr "ئىناۋەتلىك IPv6 ئادرېسىنى كىرگۈزۈڭ." + +msgid "Enter a valid IPv4 or IPv6 address." +msgstr "ئىناۋەتلىك IPv4 ياكى IPv6 ئادرېسىنى كىرگۈزۈڭ." + +msgid "Enter only digits separated by commas." +msgstr "پەش ئارقىلىق ئايرىلغان رەقەملەرنىلا كىرگۈزۈڭ." + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "" +"بۇ قىممەتنىڭ %(limit_value)s بولىشىغا كاپالەتلىك قىلىڭ ( ھازىر " +"%(show_value)s)" + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "" +"بۇ قىممەتنىڭ %(limit_value)s دىن تۆۋەن ياكى تەڭ بولۇشىغا كاپالەتلىك قىلىڭ" + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "" +"بۇ قىممەتنىڭ %(limit_value)s دىن چوڭ ياكى تەڭ بولۇشىغا كاپالەتلىك قىلىڭ" + +#, python-format +msgid "Ensure this value is a multiple of step size %(limit_value)s." +msgstr "بۇ قىممەتنىڭ %(limit_value)s نىڭ كۆپەيتمىسى بولىشىغا كاپالەتلىك قىلىڭ" + +#, python-format +msgid "" +"Ensure this value is a multiple of step size %(limit_value)s, starting from " +"%(offset)s, e.g. %(offset)s, %(valid_value1)s, %(valid_value2)s, and so on." +msgstr "" +"بۇ قىممەت كۆپ قەدەم باسقۇچلۇق بولسۇن %(limit_value)s، %(offset)s دىن " +"باشلىنىپ، مەسىلەن %(offset)s، %(valid_value1)s، %(valid_value2)s ۋە باشقىلار." + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"بۇ قىممەتنىڭ كەم دېگەندە %(limit_value)d ھەرپ بولۇشىغا كاپالەتلىك قىلىڭ " +"(ھازىر %(show_value)d بار)." +msgstr[1] "" +"بۇ قىممەتنىڭ كەم دېگەندە %(limit_value)d ھەرپ بولۇشىغا كاپالەتلىك قىلىڭ " +"(ھازىر %(show_value)d بار)." + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"بۇ قىممەتنىڭ ئەڭ كۆپ بولغاندا %(limit_value)d ھەرپ بولۇشىغا كاپالەتلىك قىلىڭ " +"(ھازىر %(show_value)d بار)." +msgstr[1] "" +"بۇ قىممەتنىڭ ئەڭ كۆپ بولغاندا %(limit_value)d ھەرپ بولۇشىغا كاپالەتلىك قىلىڭ " +"(ئۇنىڭدا %(show_value)d بار). " + +msgid "Enter a number." +msgstr "سان كىرگۈزۈڭ." + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "جەمى 4%(max)s خانىدىن ئېشىپ كەتمەسلىكىگە كاپالەتلىك قىلىڭ." +msgstr[1] "جەمى %(max)s خانىدىن ئېشىپ كەتمەسلىكىگە كاپالەتلىك قىلىڭ." + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "%(max)s ئونلۇق ئورۇندىن ئېشىپ كەتمەسلىكىگە كاپالەتلىك قىلىڭ." +msgstr[1] "%(max)s ئونلۇق ئورۇندىن ئېشىپ كەتمەسلىكىگە كاپالەتلىك قىلىڭ." + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "" +"ئونلۇق نۇقتىدىن ئىلگىرى %(max)s خانىدىن ئېشىپ كەتمەسلىكىگە كاپالەتلىك قىلىڭ." +msgstr[1] "" +"ئونلۇق نۇقتىدىن ئىلگىرى %(max)s خانىدىن ئېشىپ كەتمەسلىكىگە كاپالەتلىك قىلىڭ." + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" +"ھۆججەت كېڭەيتىشكە «%(extension)s» رۇخسەت قىلىنمايدۇ. رۇخسەت قىلىنغان " +"كېڭەيتىلمە: %(allowed_extensions)s." + +msgid "Null characters are not allowed." +msgstr "بوش ھەرپلەرگە رۇخسەت قىلىنمايدۇ." + +msgid "and" +msgstr "ۋە" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "%(model_name)s بىلەن بۇ %(field_labels)s مەۋجۇت." + +#, python-format +msgid "Constraint “%(name)s” is violated." +msgstr "«%(name)s» چەكلىمىسى بۇزۇلدى." + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "قىممەت %(value)r ئىناۋەتسىز." + +msgid "This field cannot be null." +msgstr "بۇ ئورۇننى بوش قويۇشقا بولمايدۇ" + +msgid "This field cannot be blank." +msgstr "بۇ ئورۇننى بوش قويۇشقا بولمايدۇ" + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "بۇ %(field_label)s بىلەن %(model_name)s مەۋجۇت." + +#. Translators: The 'lookup_type' is one of 'date', 'year' or +#. 'month'. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" +"%(field_label)s چوقۇم %(date_field_label)s %(lookup_type)s ئۈچۈن بىردىنبىر " +"بولۇشى كېرەك." + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "تىپ تۈرى: %(field_type)s" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "«%(value)s» قىممىتى چوقۇم True ياكى False بولۇشى كېرەك." + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "«%(value)s» قىممىتى چوقۇم True ، False ياكى None بولۇشى كېرەك." + +msgid "Boolean (Either True or False)" +msgstr "Boolean (True ياكى False)" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "(%(max_length)s گە قەدەر ئۇزۇنلۇقتىكى) ھەرپ-بەلگە" + +msgid "String (unlimited)" +msgstr "ھەرپ-بەلگە ( ئۇزۇنلۇققا چەكلىمە يوق)" + +msgid "Comma-separated integers" +msgstr "پەش بىلەن ئايرىلغان پۈتۈن سان" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" +"«%(value)s» قىممىتى ئىناۋەتسىز ۋاقىت فورماتىدا. ئۇ چوقۇم YYYY-MM-DD شەكلىدە " +"بولۇشى كېرەك." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" +"«%(value)s» قىممىتىنىڭ توغرا فورماتى (YYYY-MM-DD) بار ، ئەمما ئۇ ۋاقىت " +"ئىناۋەتسىز." + +msgid "Date (without time)" +msgstr "چېسلا (سائەت مىنۇت يوق)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" +"«%(value)s» قىممىتى ئىناۋەتسىز. ئۇ چوقۇم YYYY-MM-DD HH: MM [: ss [.uuuuuu]] " +"[TZ] شەكلىدە بولۇشى كېرەك." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" +"«%(value)s» قىممىتىنىڭ توغرا فورماتى بار (YYYY-MM-DD HH: MM [: ss [.uuuuuu]] " +"[TZ]) ئەمما ئۇ ئىناۋەتسىز كۈن / ۋاقىت." + +msgid "Date (with time)" +msgstr "چېسلا (ۋاقىت بىلەن)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "«%(value)s» قىممىتى چوقۇم پۈتۈن سان بولۇشى كېرەك." + +msgid "Decimal number" +msgstr "ئونلۇق سان" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" +"«%(value)s» قىممىتى ئىناۋەتسىز. ئۇ چوقۇم [DD] [[HH:] MM:] ss [.uuuuuu] " +"شەكلىدە بولۇشى كېرەك." + +msgid "Duration" +msgstr "داۋاملىشىش ۋاقتى" + +msgid "Email address" +msgstr "ئېلخەت ئادرېسى" + +msgid "File path" +msgstr "ھۆججەت يولى" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "«%(value)s» قىممىتى چوقۇم لەيلىمە چېكىتلىك مىقتار بولۇشى كېرەك." + +msgid "Floating point number" +msgstr "كەسرىلىك سان نومۇر" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "«%(value)s» قىممىتى چوقۇم پۈتۈن سان بولۇشى كېرەك." + +msgid "Integer" +msgstr "پۈتۈن سان" + +msgid "Big (8 byte) integer" +msgstr "چوڭ (8 بايىت) پۈتۈن سان" + +msgid "Small integer" +msgstr "كىچىك پۈتۈن سان" + +msgid "IPv4 address" +msgstr "IPv4 ئادرېسى" + +msgid "IP address" +msgstr "IP ئادرېسى" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "«%(value)s» قىممىتى چوقۇم True ، False ياكى None بولۇشى كېرەك." + +msgid "Boolean (Either True, False or None)" +msgstr "Boolean (True ياكى False)" + +msgid "Positive big integer" +msgstr "مۇسبەت چوڭ پۈتۈن سان" + +msgid "Positive integer" +msgstr "مۇسبەت پۈتۈن سان" + +msgid "Positive small integer" +msgstr "مۇسبەت كىچىك پۈتۈن سان" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "Slug (كۆپ بولغاندا %(max_length)s)" + +msgid "Text" +msgstr "تېكىست" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" +"«%(value)s» قىممىتى ئىناۋەتسىز. ئۇ چوقۇم HH: MM [: ss [.uuuuuu]] شەكلىدە " +"بولۇشى كېرەك." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" +"«%(value)s» قىممىتىنىڭ توغرا فورماتى بار (HH: MM [: ss [.uuuuuu]]) ئەمما ئۇ " +"ئىناۋەتسىز ۋاقىت." + +msgid "Time" +msgstr "ۋاقىت" + +msgid "URL" +msgstr "URL" + +msgid "Raw binary data" +msgstr "خام ئىككىلىك سان" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "«%(value)s» ئىناۋەتلىك UUID ئەمەس." + +msgid "Universally unique identifier" +msgstr "ئۇنىۋېرسال بىردىنبىر كىملىك" + +msgid "File" +msgstr "ھۆججەت" + +msgid "Image" +msgstr "رەسىم" + +msgid "A JSON object" +msgstr "JSON ئوبيېكتى" + +msgid "Value must be valid JSON." +msgstr "چوقۇم ئىناۋەتلىك JSON بولۇشى كېرەك." + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "مىسال %(value)r %(field)s قىممىتى بولغان %(model)s مەۋجۇت ئەمەس." + +msgid "Foreign Key (type determined by related field)" +msgstr "سىرتقى ئاچقۇچ (تىپى مۇناسىۋەتلىك مەيدان تەرىپىدىن بېكىتىلگەن)" + +msgid "One-to-one relationship" +msgstr "بىرمۇبىر مۇناسىۋەت" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "%(from)s-%(to)s مۇناسىۋەت" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "%(from)s-%(to)s مۇناسىۋەتلەر" + +msgid "Many-to-many relationship" +msgstr "كۆپكە كۆب مۇناسىۋىتى" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr ":?.!" + +msgid "This field is required." +msgstr "بۇ رايون تەلەپ قىلىنىدۇ." + +msgid "Enter a whole number." +msgstr "پۈتۈن ساننى كىرگۈزۈڭ." + +msgid "Enter a valid date." +msgstr "ئىناۋەتلىك چېسلانى كىرگۈزۈڭ." + +msgid "Enter a valid time." +msgstr "ئىناۋەتلىك ۋاقىت كىرگۈزۈڭ." + +msgid "Enter a valid date/time." +msgstr "ئىناۋەتلىك چېسلا / ۋاقىت كىرگۈزۈڭ." + +msgid "Enter a valid duration." +msgstr "ئىناۋەتلىك مۇددىتىنى كىرگۈزۈڭ." + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "كۈن سانى چوقۇم {min_days} بىلەن {max_days} ئارىسىدا بولۇشى كېرەك." + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "ھېچقانداق ھۆججەت يوللانمىدى. جەدۋەلدىكى كودلاش تۈرىنى تەكشۈرۈڭ." + +msgid "No file was submitted." +msgstr "ھېچقانداق ھۆججەت يوللانمىدى." + +msgid "The submitted file is empty." +msgstr "يوللانغان ھۆججەت قۇرۇق." + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" +"بۇ ھۆججەت نامىنىڭ ئەڭ كۆپ بولغاندا %(max)d ھەرپ بولۇشىغا كاپالەتلىك قىلىڭ " +"(ئۇنىڭدا %(length)d بار)." +msgstr[1] "" +"بۇ ھۆججەت نامىنىڭ ئەڭ كۆپ بولغاندا %(max)d ھەرپ بولۇشىغا كاپالەتلىك قىلىڭ " +"(ئۇنىڭدا %(length)d بار)." + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "ھۆججەت يوللاڭ ياكى تەكشۈرۈش رامكىسىنى تەكشۈرۈڭ ، ھەر ئىككىسىنى ئەمەس." + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" +"ئىناۋەتلىك رەسىم يۈكلەڭ. سىز يۈكلىگەن ھۆججەت يا رەسىم ئەمەس ۋەياكى بۇزۇلغان." + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "ئۈنۈملۈك تاللاشنى تاللاڭ. %(value)s تاللاشلارنىڭ بىرى ئەمەس." + +msgid "Enter a list of values." +msgstr "قىممەت تىزىملىكىنى كىرگۈزۈڭ." + +msgid "Enter a complete value." +msgstr "تولۇق قىممەت كىرگۈزۈڭ." + +msgid "Enter a valid UUID." +msgstr "ئىناۋەتلىك UUID نى كىرگۈزۈڭ." + +msgid "Enter a valid JSON." +msgstr "ئىناۋەتلىك JSON نى كىرگۈزۈڭ." + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr ":" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "(يوشۇرۇن مەيدان %(name)s) %(error)s" + +#, python-format +msgid "" +"ManagementForm data is missing or has been tampered with. Missing fields: " +"%(field_names)s. You may need to file a bug report if the issue persists." +msgstr "" +"ManagementForm سانلىق مەلۇماتلىرى يوقاپ كەتتى ياكى ئۆزگەرتىلدى. يوقاپ كەتكەن " +"ساھە: %(field_names)s. ئەگەر مەسىلە ساقلىنىپ قالسا ، خاتالىق دوكلاتىنى " +"تاپشۇرۇشىڭىز كېرەك." + +#, python-format +msgid "Please submit at most %(num)d form." +msgid_plural "Please submit at most %(num)d forms." +msgstr[0] "ئەڭ كۆپ بولغاندا %(num)d جەدۋەلنى يوللاڭ." +msgstr[1] "ئەڭ كۆپ بولغاندا %(num)d جەدۋەلنى يوللاڭ." + +#, python-format +msgid "Please submit at least %(num)d form." +msgid_plural "Please submit at least %(num)d forms." +msgstr[0] "كەم دېگەندە %(num)d جەدۋەلنى يوللاڭ." +msgstr[1] "كەم دېگەندە %(num)d جەدۋەلنى يوللاڭ." + +msgid "Order" +msgstr "زاكاز" + +msgid "Delete" +msgstr "ئۆچۈرۈش" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "%(field)s نىڭ قايتىلانغان سانلىق مەلۇماتلىرىنى تۈزىتىڭ." + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "" +"%(field)s نىڭ كۆپەيتىلگەن سانلىق مەلۇماتلىرىنى تۈزىتىڭ ، بۇ چوقۇم ئۆزگىچە " +"بولۇشى كېرەك." + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"%(field_name)s دىكى قايتىلانغان سانلىق مەلۇماتنى تۈزىتىڭ ، بۇ چوقۇم " +"%(date_field)s دىكى %(lookup)s غا خاس بولۇشى كېرەك." + +msgid "Please correct the duplicate values below." +msgstr "تۆۋەندىكى قايتىلانغان قىممەتنى تۈزىتىڭ." + +msgid "The inline value did not match the parent instance." +msgstr "ئىچكى قىممەت ئاتا مىسالغا ماس كەلمىدى." + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "" +"ئۈنۈملۈك تاللاشنى تاللاڭ. بۇ تاللاش ئىشلەتكىلى بولىدىغان تاللاشلارنىڭ بىرى " +"ئەمەس." + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "«%(pk)s» ئىناۋەتلىك قىممەت ئەمەس." + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" +"%(datetime)s نى %(current_timezone)s ۋاقىت رايونىدا ئىزاھلاشقا بولمايدۇ ئۇ " +"مۈجمەل بولۇشى مۇمكىن ياكى ئۇ مەۋجۇت بولماسلىقى مۇمكىن." + +msgid "Clear" +msgstr "تازىلاش" + +msgid "Currently" +msgstr "نۆۋەتتە" + +msgid "Change" +msgstr "ئۆزگەرتىش" + +msgid "Unknown" +msgstr "نامەلۇم" + +msgid "Yes" +msgstr "ھەئە" + +msgid "No" +msgstr "ياق" + +#. Translators: Please do not add spaces around commas. +msgid "yes,no,maybe" +msgstr "ھەئە، ياق، بەلكىىم" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)d بايىت" +msgstr[1] "%(size)d بايىت" + +#, python-format +msgid "%s KB" +msgstr "%s كىلوبايت" + +#, python-format +msgid "%s MB" +msgstr "%sمېگا بايىت" + +#, python-format +msgid "%s GB" +msgstr "%sگىگا بايىت" + +#, python-format +msgid "%s TB" +msgstr "%s تېرا بايت" + +#, python-format +msgid "%s PB" +msgstr "%s پېتا بايىت" + +msgid "p.m." +msgstr "p.m." + +msgid "a.m." +msgstr "a.m." + +msgid "PM" +msgstr "PM" + +msgid "AM" +msgstr "AM" + +msgid "midnight" +msgstr "يېرىم كېچىدە" + +msgid "noon" +msgstr "چۈشتە" + +msgid "Monday" +msgstr "دۈشەنبە" + +msgid "Tuesday" +msgstr "سەيشەنبە" + +msgid "Wednesday" +msgstr "چارشەمبە" + +msgid "Thursday" +msgstr "پەيشەمبە" + +msgid "Friday" +msgstr "جۈمە" + +msgid "Saturday" +msgstr "شەنبە" + +msgid "Sunday" +msgstr "يەكشەنبە" + +msgid "Mon" +msgstr "دۈش" + +msgid "Tue" +msgstr "سەي" + +msgid "Wed" +msgstr "چار" + +msgid "Thu" +msgstr "پەي" + +msgid "Fri" +msgstr "جۈ" + +msgid "Sat" +msgstr "شەن" + +msgid "Sun" +msgstr "يەك" + +msgid "January" +msgstr "يانۋار" + +msgid "February" +msgstr "فېۋرال" + +msgid "March" +msgstr "مارت" + +msgid "April" +msgstr "ئاپرىل" + +msgid "May" +msgstr "ماي" + +msgid "June" +msgstr "ئىيۇن" + +msgid "July" +msgstr "ئىيۇل" + +msgid "August" +msgstr "ئاۋغۇست" + +msgid "September" +msgstr "سىنتەبىر" + +msgid "October" +msgstr "ئۆكتەبىر" + +msgid "November" +msgstr "نويابىر" + +msgid "December" +msgstr "دىكابىر" + +msgid "jan" +msgstr "يان" + +msgid "feb" +msgstr "فېۋ" + +msgid "mar" +msgstr "مار" + +msgid "apr" +msgstr "ئاپ" + +msgid "may" +msgstr "ماي" + +msgid "jun" +msgstr "ئ‍ىيۇن" + +msgid "jul" +msgstr "ئىيۇل" + +msgid "aug" +msgstr "ئاۋ" + +msgid "sep" +msgstr "سېن" + +msgid "oct" +msgstr "ئۆك" + +msgid "nov" +msgstr "نوي" + +msgid "dec" +msgstr "دىك" + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "يانۋار" + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "فېۋرال" + +msgctxt "abbrev. month" +msgid "March" +msgstr "مارت" + +msgctxt "abbrev. month" +msgid "April" +msgstr "ئاپرىل" + +msgctxt "abbrev. month" +msgid "May" +msgstr "ماي" + +msgctxt "abbrev. month" +msgid "June" +msgstr "ئىيۇن" + +msgctxt "abbrev. month" +msgid "July" +msgstr "ئىيۇل" + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "ئاۋغۇست" + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "سېنتەبىر" + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "ئۆكتەبىر" + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "نويابىر" + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "دىكابىر" + +msgctxt "alt. month" +msgid "January" +msgstr "يانۋار" + +msgctxt "alt. month" +msgid "February" +msgstr "فېۋرال" + +msgctxt "alt. month" +msgid "March" +msgstr "مارت" + +msgctxt "alt. month" +msgid "April" +msgstr "ئاپرىل" + +msgctxt "alt. month" +msgid "May" +msgstr "ماي" + +msgctxt "alt. month" +msgid "June" +msgstr "ئىيۇن" + +msgctxt "alt. month" +msgid "July" +msgstr "ئىيۇل" + +msgctxt "alt. month" +msgid "August" +msgstr "ئاۋغۇست" + +msgctxt "alt. month" +msgid "September" +msgstr "سىنتەبىر" + +msgctxt "alt. month" +msgid "October" +msgstr "ئۆكتەبىر" + +msgctxt "alt. month" +msgid "November" +msgstr "نويابىر" + +msgctxt "alt. month" +msgid "December" +msgstr "دىكابىر" + +msgid "This is not a valid IPv6 address." +msgstr "بۇ ئىناۋەتلىك IPv6 ئادرېس ئەمەس." + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "%(truncated_text)s…" + +msgid "or" +msgstr "ياكى" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr "،" + +#, python-format +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "%(num)d يىل" +msgstr[1] "%(num)d يىل" + +#, python-format +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "%(num)d ئاي" +msgstr[1] "%(num)d ئاي" + +#, python-format +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "%(num)d ھەپتە" +msgstr[1] "%(num)d ھەپتە" + +#, python-format +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "%(num)d كۈن" +msgstr[1] "%(num)d كۈن" + +#, python-format +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "%(num)d سائەت" +msgstr[1] "%(num)d سائەت" + +#, python-format +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "%(num)d مىنۇت" +msgstr[1] "%(num)d مىنۇت" + +msgid "Forbidden" +msgstr "چەكلەنگەن" + +msgid "CSRF verification failed. Request aborted." +msgstr "CSRF دەلىللەش مەغلۇپ بولدى. تەلەپ ئەمەلدىن قالدۇرۇلدى." + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" +"چۈنكى بۇ HTTPS تور بېكىتى توركۆرگۈڭىز تەرىپىدىن پايدىلانما ئۇچۇرلىرىنى " +"ئەۋەتىشنى تەلەب قىلىدۇ، ئەمما ھېچقايسىسى ئەۋەتىلمىدى، شۇ سەۋەبتىن سىز بۇ " +"ئۇچۇرنى كۆرىۋاتىسىز.\n" +"بۇ ئۇچۇرلار سىزنىڭ بىخەتەرلىكڭىز ۋە تور كۆرگۈڭىزنىڭ ئۈچۈنجى شەخىس تەرىپىدىن " +"تۇتقۇن قىلىنىشىنىڭ ئالدىنى ئېلىش ئۈچۈندۇر. " + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" +"ئەگەر سىز توركۆرگۈچىڭىزنى “Referer” بېكەت سېكىرتكۈچىنى چەكلەپ تەڭشىسىڭىز، بۇ " +"تور بېكەت، ياكى HTTPS ئۇلىنىشى، ياكى “ئوخشاش-مەنبە” ئىلتىماسلىرى ئۈچۈن ئۇنى " +"قايتا ئىچىپ قويۇڭ." + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" +"ئەگەر سىز تەگىنى ياكى " +"“Referrer-Policy: no-referrer” بېكەت سېكىرتكۈچىنى ئىشلىتىۋاتىسىز، ئۇلارنى " +"ئۆچۈرۈڭ. CSRF قوغداش تەلەپ قىلىدۇ “Referer” بېكەت سېكىرتكۈچى قاتتىق " +"سېكىرتىشنى ئېلىپ بېرىشى كېرەك. ئەگەر سىز شەخسىيەتىڭىزگە قاراشقا ئۆزىڭىزنى " +"ئۆزىڭىز قارغىلى بولسىڭىز، ئۈچىنچى تەرەپ تور بېكەتلىرىگە ئۇلىنىشلاردا قاتارلىق ئالتۇرناتىۋىلارنى ئىشلىتىڭ." + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" +" بۇ تور بېكەت جەدۋەل يوللىغاندا CSRF ساقلانمىسىنى تەلەپ قىلىدۇ. بۇ " +"ساقلانمىلار بىخەتەرلىكنى كۆزدە تۇتۇپ ، تور كۆرگۈچىڭىزنىڭ ئۈچىنچى تەرەپ " +"تەرىپىدىن ئوغرىلانماسلىقىغا كاپالەتلىك قىلىدۇ." + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" +"ئەگەر توركۆرگۈڭىزنى ساقلانمىلارنى چەكلەش ئۈچۈن تەڭشىگەن بولسىڭىز ، ھېچ " +"بولمىغاندا بۇ تور بېكەت ياكى «ئوخشاش مەنبە» تەلەپلىرى ئۈچۈن ئۇلارنى قايتا " +"قوزغىتىڭ." + +msgid "More information is available with DEBUG=True." +msgstr "DEBUG = True بىلەن تېخىمۇ كۆپ ئۇچۇرلارغا ئېرىشكىلى بولىدۇ." + +msgid "No year specified" +msgstr "يىل بەلگىلەنمىدى" + +msgid "Date out of range" +msgstr "ۋاقىت چەكلىمىسىدىن ئېشىب كەتتى" + +msgid "No month specified" +msgstr "ئاي بەلگىلەنمىدى" + +msgid "No day specified" +msgstr "كۈن بەلگىلەنمىدى" + +msgid "No week specified" +msgstr "ھەپتە بەلگىلەنمىدى" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "%(verbose_name_plural)s يوق" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" +"كەلگۈسى %(verbose_name_plural)s ئىشلەتكىلى بولمايدۇ ، چۈنكى %(class_name)s." +"allow_future بولسا False." + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "ئىناۋەتسىز چېسلا تىزمىسى «%(datestr)s» بېرىلگەن فورمات «%(format)s»" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "بۇ سوئالغا ماس كېلىدىغان %(verbose_name)s تېپىلمىدى" + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "بەت «ئاخىرقى» ئەمەس ،ياكى ئۇنى int غا ئايلاندۇرغىلى بولمىدى." + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "ئىناۋەتسىز بەت (%(page_number)s): %(message)s" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "بوش تىزىملىك %(class_name)s ۋە «.allow_empty» بولسا False." + +msgid "Directory indexes are not allowed here." +msgstr "ھۆججەت مۇندەرىجىسى بۇ يەردە رۇخسەت قىلىنمايدۇ." + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "%(path)s مەۋجۇت ئەمەس" + +#, python-format +msgid "Index of %(directory)s" +msgstr "%(directory)s نىڭ كۆرسەتكۈچىسى" + +msgid "The install worked successfully! Congratulations!" +msgstr "قاچىلاش مۇۋەپپەقىيەتلىك بولدى! مۇبارەك بولسۇن!" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" +" Django %(version)s ئۈچۈن ئېلان قىلىش " +"خاتىرىسى نى كۆرۈڭ" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not " +"configured any URLs." +msgstr "" +"سىز بۇ بەتنى كۆرۈۋاتىسىز ، چۈنكى DEBUG = " +"True سىزنىڭ تەڭشەك ھۆججىتىڭىزدە ،شۇنداقلا ھېچقانداق URL تەڭشەلىمىگەن." + +msgid "Django Documentation" +msgstr " Django قوللانمىسى" + +msgid "Topics, references, & how-to’s" +msgstr "تېما ، پايدىلانما ، & amp; قانداق قىلىش " + +msgid "Tutorial: A Polling App" +msgstr "دەرسلىك: بىر بېلەت تاشلاش دىتالى" + +msgid "Get started with Django" +msgstr "Django بىلەن تونۇشۇش" + +msgid "Django Community" +msgstr "Django جەمىيىتى" + +msgid "Connect, get help, or contribute" +msgstr "قوشۇلۇش ، ياردەمگە ئېرىشىش ياكى تۆھپە قوشۇش" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/ug/__init__.py b/venv/lib/python3.12/site-packages/django/conf/locale/ug/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/ug/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/ug/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c3d54d068adfb7c7b163babbe618b90fe809ad5f GIT binary patch literal 198 zcmX@j%ge<81o5sX(m?cM5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!O4ZNE&rQ|OP0Yy6 zFHO;RNiEZNN=(kybEFQ_cZ$j>v@Gc?jK&MZmQEdVM^ zOiwM=Pssu+OwP|s)6dCIPRvQwFHP5vkI&4@EQycTE2#X%VUwGmQks)$SHudml@W-G PL5z>gjEsy$%s>_Z#^^MM literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/ug/__pycache__/formats.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/ug/__pycache__/formats.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..cf7fd6be4b2554dbbdbb5c92711999f926e62046 GIT binary patch literal 529 zcmY*V$x6de6n!z)PH3AB4!9|}60{F>Cn84kI-p5Pnj(3dkoKj6W+&ll(wcf?O=bU>u7w+5odJNFg(QEUC0pL9#i=up9Uk7wN0Rk`}3}(m* zULh=I$tqqYAsixWc#VW{m_%@dL~(Q++mCypyIdisd2I2tN}*iz}3sYT(p#xuD-7bUoz+bX6Al8@-Auyuz!pGEJ!^xmM*RVM$9!HSrQDdQp*U zm9kWP24BIaW(2lf+l02!w%s9tf;obhM&tevIRw@%!)dv2WI7{gb?UG?9<*KOB!6@a z`<;P#*ri6JW%ePtn;RRh(}b4WFf0=eTd?W&Y-7;RcgM5HneCFHWuEua^l0$G{snEH zEW^ literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/ug/formats.py b/venv/lib/python3.12/site-packages/django/conf/locale/ug/formats.py new file mode 100644 index 0000000000..92f01342e9 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/ug/formats.py @@ -0,0 +1,14 @@ +# This file is distributed under the same license as the Django package. +# +# The *_FORMAT strings use the Django date format syntax, +# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date +DATE_FORMAT = "j F Y" +TIME_FORMAT = "G:i" +YEAR_MONTH_FORMAT = "F Y" +MONTH_DAY_FORMAT = "j F" +SHORT_DATE_FORMAT = "Y/m/d" +SHORT_DATETIME_FORMAT = "Y/m/d G:i" +FIRST_DAY_OF_WEEK = 1 +DECIMAL_SEPARATOR = "." +THOUSAND_SEPARATOR = "," +NUMBER_GROUPING = 3 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/uk/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/conf/locale/uk/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..7c96efb7d8f29f9f9eb2bddf80e92beb4a81e74b GIT binary patch literal 30194 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/uk/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/conf/locale/uk/LC_MESSAGES/django.po new file mode 100644 index 0000000000..8f50fc4d95 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/uk/LC_MESSAGES/django.po @@ -0,0 +1,1365 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Oleksandr Chernihov , 2014 +# Boryslav Larin , 2011,2022 +# Denis Podlesniy , 2016 +# Igor Melnyk, 2014-2015,2017 +# Illia Volochii , 2019,2021-2023 +# Jannis Leidel , 2011 +# Kirill Gagarski , 2014 +# Max V. Stotsky , 2014 +# Mikhail Kolesnik , 2015 +# Mykola Zamkovoi , 2014 +# Alex Bolotov , 2013-2014 +# Roman Kozlovskyi , 2012 +# Sergiy Kuzmenko , 2011 +# tarasyyyk , 2018 +# tarasyyyk , 2019 +# Zoriana Zaiats, 2016-2017 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-01-17 02:13-0600\n" +"PO-Revision-Date: 2023-04-25 06:49+0000\n" +"Last-Translator: Illia Volochii , 2019,2021-2023\n" +"Language-Team: Ukrainian (http://www.transifex.com/django/django/language/" +"uk/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: uk\n" +"Plural-Forms: nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != " +"11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % " +"100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || " +"(n % 100 >=11 && n % 100 <=14 )) ? 2: 3);\n" + +msgid "Afrikaans" +msgstr "Африканська" + +msgid "Arabic" +msgstr "Арабська" + +msgid "Algerian Arabic" +msgstr "Алжирська арабська" + +msgid "Asturian" +msgstr "Астурійська" + +msgid "Azerbaijani" +msgstr "Азербайджанська" + +msgid "Bulgarian" +msgstr "Болгарська" + +msgid "Belarusian" +msgstr "Білоруська" + +msgid "Bengali" +msgstr "Бенгальська" + +msgid "Breton" +msgstr "Бретонська" + +msgid "Bosnian" +msgstr "Боснійська" + +msgid "Catalan" +msgstr "Каталонська" + +msgid "Central Kurdish (Sorani)" +msgstr "Центральнокурдська (сорані)" + +msgid "Czech" +msgstr "Чеська" + +msgid "Welsh" +msgstr "Валлійська" + +msgid "Danish" +msgstr "Датська" + +msgid "German" +msgstr "Німецька" + +msgid "Lower Sorbian" +msgstr "Нижньолужицька" + +msgid "Greek" +msgstr "Грецька" + +msgid "English" +msgstr "Англійська" + +msgid "Australian English" +msgstr "Австралійська англійська" + +msgid "British English" +msgstr "Англійська (Великобританія)" + +msgid "Esperanto" +msgstr "Есперанто" + +msgid "Spanish" +msgstr "Іспанська" + +msgid "Argentinian Spanish" +msgstr "Іспанська (Аргентина)" + +msgid "Colombian Spanish" +msgstr "Колумбійська іспанська" + +msgid "Mexican Spanish" +msgstr "Мексиканська іспанська" + +msgid "Nicaraguan Spanish" +msgstr "Нікарагуанська іспанська" + +msgid "Venezuelan Spanish" +msgstr "Венесуельська іспанська" + +msgid "Estonian" +msgstr "Естонська" + +msgid "Basque" +msgstr "Баскська" + +msgid "Persian" +msgstr "Перська" + +msgid "Finnish" +msgstr "Фінська" + +msgid "French" +msgstr "Французька" + +msgid "Frisian" +msgstr "Фризька" + +msgid "Irish" +msgstr "Ірландська" + +msgid "Scottish Gaelic" +msgstr "Шотландська ґельська" + +msgid "Galician" +msgstr "Галіційська" + +msgid "Hebrew" +msgstr "Іврит" + +msgid "Hindi" +msgstr "Хінді" + +msgid "Croatian" +msgstr "Хорватська" + +msgid "Upper Sorbian" +msgstr "Верхньолужицька" + +msgid "Hungarian" +msgstr "Угорська" + +msgid "Armenian" +msgstr "Вірменська" + +msgid "Interlingua" +msgstr "Інтерлінгва" + +msgid "Indonesian" +msgstr "Індонезійська" + +msgid "Igbo" +msgstr "Ігбо" + +msgid "Ido" +msgstr "Ідо" + +msgid "Icelandic" +msgstr "Ісландська" + +msgid "Italian" +msgstr "Італійська" + +msgid "Japanese" +msgstr "Японська" + +msgid "Georgian" +msgstr "Грузинська" + +msgid "Kabyle" +msgstr "Кабіли" + +msgid "Kazakh" +msgstr "Казахська" + +msgid "Khmer" +msgstr "Кхмерська" + +msgid "Kannada" +msgstr "Каннадська" + +msgid "Korean" +msgstr "Корейська" + +msgid "Kyrgyz" +msgstr "Киргизька" + +msgid "Luxembourgish" +msgstr "Люксембурзька" + +msgid "Lithuanian" +msgstr "Литовська" + +msgid "Latvian" +msgstr "Латвійська" + +msgid "Macedonian" +msgstr "Македонська" + +msgid "Malayalam" +msgstr "Малаялам" + +msgid "Mongolian" +msgstr "Монгольська" + +msgid "Marathi" +msgstr "Маратхі" + +msgid "Malay" +msgstr "Малайська" + +msgid "Burmese" +msgstr "Бірманська" + +msgid "Norwegian Bokmål" +msgstr "Норвезька (Букмол)" + +msgid "Nepali" +msgstr "Непальська" + +msgid "Dutch" +msgstr "Голландська" + +msgid "Norwegian Nynorsk" +msgstr "Норвезька (Нюнорськ)" + +msgid "Ossetic" +msgstr "Осетинська" + +msgid "Punjabi" +msgstr "Панджабі" + +msgid "Polish" +msgstr "Польська" + +msgid "Portuguese" +msgstr "Португальська" + +msgid "Brazilian Portuguese" +msgstr "Бразильська португальська" + +msgid "Romanian" +msgstr "Румунська" + +msgid "Russian" +msgstr "Російська" + +msgid "Slovak" +msgstr "Словацька" + +msgid "Slovenian" +msgstr "Словенська" + +msgid "Albanian" +msgstr "Албанська" + +msgid "Serbian" +msgstr "Сербська" + +msgid "Serbian Latin" +msgstr "Сербська (латинська)" + +msgid "Swedish" +msgstr "Шведська" + +msgid "Swahili" +msgstr "Суахілі" + +msgid "Tamil" +msgstr "Тамільська" + +msgid "Telugu" +msgstr "Телугу" + +msgid "Tajik" +msgstr "Таджицька" + +msgid "Thai" +msgstr "Тайська" + +msgid "Turkmen" +msgstr "Туркменська" + +msgid "Turkish" +msgstr "Турецька" + +msgid "Tatar" +msgstr "Татарська" + +msgid "Udmurt" +msgstr "Удмуртська" + +msgid "Ukrainian" +msgstr "Українська" + +msgid "Urdu" +msgstr "Урду" + +msgid "Uzbek" +msgstr "Узбецька" + +msgid "Vietnamese" +msgstr "В'єтнамська" + +msgid "Simplified Chinese" +msgstr "Китайська спрощена" + +msgid "Traditional Chinese" +msgstr "Китайська традиційна" + +msgid "Messages" +msgstr "Повідомлення" + +msgid "Site Maps" +msgstr "Мапи сайту" + +msgid "Static Files" +msgstr "Статичні файли" + +msgid "Syndication" +msgstr "Об'єднання" + +#. Translators: String used to replace omitted page numbers in elided page +#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10]. +msgid "…" +msgstr "…" + +msgid "That page number is not an integer" +msgstr "Номер сторінки не є цілим числом" + +msgid "That page number is less than 1" +msgstr "Номер сторінки менше 1" + +msgid "That page contains no results" +msgstr "Сторінка не містить результатів" + +msgid "Enter a valid value." +msgstr "Введіть коректне значення." + +msgid "Enter a valid URL." +msgstr "Введіть коректний URL." + +msgid "Enter a valid integer." +msgstr "Введіть коректне ціле число." + +msgid "Enter a valid email address." +msgstr "Введіть коректну email адресу." + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" +"Введіть коректне значення 'slug' (короткого заголовку), що може містити " +"тільки літери, числа, символи підкреслювання або дефіси." + +msgid "Enter a valid IPv4 address." +msgstr "Введіть коректну IPv4 адресу." + +msgid "Enter a valid IPv6 address." +msgstr "Введіть дійсну IPv6 адресу." + +msgid "Enter a valid IPv4 or IPv6 address." +msgstr "Введіть дійсну IPv4 чи IPv6 адресу." + +msgid "Enter only digits separated by commas." +msgstr "Введіть тільки цифри, що розділені комами." + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "" +"Переконайтеся, що це значення дорівнює %(limit_value)s (зараз " +"%(show_value)s)." + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "Переконайтеся, що це значення менше чи дорівнює %(limit_value)s." + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "Переконайтеся, що це значення більше чи дорівнює %(limit_value)s." + +#, python-format +msgid "Ensure this value is a multiple of step size %(limit_value)s." +msgstr "" + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Переконайтеся, що це значення містить не менш ніж %(limit_value)d символ " +"(зараз %(show_value)d)." +msgstr[1] "" +"Переконайтеся, що це значення містить не менш ніж %(limit_value)d символів " +"(зараз %(show_value)d)." +msgstr[2] "" +"Переконайтеся, що це значення містить не менш ніж %(limit_value)d символів " +"(зараз %(show_value)d)." +msgstr[3] "" +"Переконайтеся, що це значення містить не менш ніж %(limit_value)d символів " +"(зараз %(show_value)d)." + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Переконайтеся, що це значення містить не більше ніж %(limit_value)d символ " +"(зараз %(show_value)d)." +msgstr[1] "" +"Переконайтеся, що це значення містить не більше ніж %(limit_value)d символи " +"(зараз %(show_value)d)." +msgstr[2] "" +"Переконайтеся, що це значення містить не більше ніж %(limit_value)d символів " +"(зараз %(show_value)d)." +msgstr[3] "" +"Переконайтеся, що це значення містить не більше ніж %(limit_value)d символів " +"(зараз %(show_value)d)." + +msgid "Enter a number." +msgstr "Введіть число." + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "Переконайтеся, що загалом тут не більше ніж %(max)s цифра." +msgstr[1] "Переконайтеся, що загалом тут не більше ніж %(max)s цифер." +msgstr[2] "Переконайтеся, що загалом тут не більше ніж %(max)s цифер." +msgstr[3] "Переконайтеся, що загалом тут не більше ніж %(max)s цифер." + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "" +"Переконайтеся, що тут не більше ніж %(max)s цифра після десяткової коми." +msgstr[1] "" +"Переконайтеся, що тут не більше ніж %(max)s цифри після десяткової коми." +msgstr[2] "" +"Переконайтеся, що тут не більше ніж %(max)s цифер після десяткової коми." +msgstr[3] "" +"Переконайтеся, що тут не більше ніж %(max)s цифер після десяткової коми." + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "" +"Переконайтеся, що тут не більше ніж %(max)s цифра до десяткової коми." +msgstr[1] "" +"Переконайтеся, що тут не більше ніж %(max)s цифри до десяткової коми." +msgstr[2] "" +"Переконайтеся, що тут не більше ніж %(max)s цифер до десяткової коми." +msgstr[3] "" +"Переконайтеся, що тут не більше ніж %(max)s цифер до десяткової коми." + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" +"Розширення файлу '%(extension)s' не дозволено. Дозволені розширення: ' " +"%(allowed_extensions)s'." + +msgid "Null characters are not allowed." +msgstr "Символи Null не дозволені." + +msgid "and" +msgstr "та" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "%(model_name)s з таким %(field_labels)s вже існує." + +#, python-format +msgid "Constraint “%(name)s” is violated." +msgstr "" + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "Значення %(value)r не є дозволеним вибором." + +msgid "This field cannot be null." +msgstr "Це поле не може бути пустим." + +msgid "This field cannot be blank." +msgstr "Це поле не може бути порожнім." + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "%(model_name)s з таким %(field_label)s вже існує." + +#. Translators: The 'lookup_type' is one of 'date', 'year' or +#. 'month'. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" +"%(field_label)s повинне бути унікальним для %(date_field_label)s " +"%(lookup_type)s." + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "Тип поля: %(field_type)s" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "" + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "Значення \"%(value)s\" повинне бути True, False, або None." + +msgid "Boolean (Either True or False)" +msgstr "Булеве значення (True або False)" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "Рядок (до %(max_length)s)" + +msgid "String (unlimited)" +msgstr "Рядок (необмежений)" + +msgid "Comma-separated integers" +msgstr "Цілі, розділені комою" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" + +msgid "Date (without time)" +msgstr "Дата (без часу)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" +"Значення \"%(value)s\" має невірний формат. Воно повинне бути у форматі YYYY-" +"MM-DD HH:MM[:ss[.uuuuuu]][TZ]." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" + +msgid "Date (with time)" +msgstr "Дата (з часом)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "" + +msgid "Decimal number" +msgstr "Десяткове число" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" + +msgid "Duration" +msgstr "Тривалість" + +msgid "Email address" +msgstr "E-mail адреса" + +msgid "File path" +msgstr "Шлях до файла" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "" + +msgid "Floating point number" +msgstr "Число з плаваючою комою" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "" + +msgid "Integer" +msgstr "Ціле число" + +msgid "Big (8 byte) integer" +msgstr "Велике (8 байтів) ціле число" + +msgid "Small integer" +msgstr "Мале ціле число" + +msgid "IPv4 address" +msgstr "IPv4 адреса" + +msgid "IP address" +msgstr "IP адреса" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "" + +msgid "Boolean (Either True, False or None)" +msgstr "Булеве значення (включаючи True, False або None)" + +msgid "Positive big integer" +msgstr "Додатнє велике ціле число" + +msgid "Positive integer" +msgstr "Додатнє ціле число" + +msgid "Positive small integer" +msgstr "Додатнє мале ціле число" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "Slug (до %(max_length)s)" + +msgid "Text" +msgstr "Текст" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" +"Значення \"%(value)s\" має невірний формат. Воно повинне бути у форматі HH:" +"MM[:ss[.uuuuuu]]." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" + +msgid "Time" +msgstr "Час" + +msgid "URL" +msgstr "URL" + +msgid "Raw binary data" +msgstr "Необроблені двійкові дані" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "“%(value)s” не є валідним UUID." + +msgid "Universally unique identifier" +msgstr "Універсальний унікальний ідентифікатор" + +msgid "File" +msgstr "Файл" + +msgid "Image" +msgstr "Зображення" + +msgid "A JSON object" +msgstr "JSON-об'єкт" + +msgid "Value must be valid JSON." +msgstr "Значення має бути коректним JSON." + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "Екземпляр %(model)s з %(field)s %(value)r не існує." + +msgid "Foreign Key (type determined by related field)" +msgstr "Зовнішній ключ (тип визначається відповідно поля)" + +msgid "One-to-one relationship" +msgstr "Один-до-одного" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "%(from)s-%(to)s звязок" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "%(from)s-%(to)s звязки" + +msgid "Many-to-many relationship" +msgstr "Багато-до-багатьох" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr ":?.!" + +msgid "This field is required." +msgstr "Це поле обов'язкове." + +msgid "Enter a whole number." +msgstr "Введіть ціле число." + +msgid "Enter a valid date." +msgstr "Введіть коректну дату." + +msgid "Enter a valid time." +msgstr "Введіть коректний час." + +msgid "Enter a valid date/time." +msgstr "Введіть коректну дату/час." + +msgid "Enter a valid duration." +msgstr "Введіть коректну тривалість." + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "Кількість днів повинна бути від {min_days} до {max_days}." + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "Файл не надіслано. Перевірте тип кодування форми." + +msgid "No file was submitted." +msgstr "Файл не було надіслано." + +msgid "The submitted file is empty." +msgstr "Переданий файл порожній." + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" +"Переконайтеся, що це ім'я файлу містить не більше ніж з %(max)d символ " +"(зараз %(length)d)." +msgstr[1] "" +"Переконайтеся, що це ім'я файлу містить не більше ніж з %(max)d символи " +"(зараз %(length)d)." +msgstr[2] "" +"Переконайтеся, що це ім'я файлу містить не більше ніж з %(max)d символів " +"(зараз %(length)d)." +msgstr[3] "" +"Переконайтеся, що це ім'я файлу містить не більше ніж з %(max)d символів " +"(зараз %(length)d)." + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "" +"Будь ласка, або завантажте файл, або відмітьте прапорець очищення, а не " +"обидва варіанти одразу" + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" +"Завантажте правильний малюнок. Файл, який ви завантажили, не є малюнком, або " +"є зіпсованим малюнком." + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "Зробить коректний вибір, %(value)s немає серед варіантів вибору." + +msgid "Enter a list of values." +msgstr "Введіть список значень." + +msgid "Enter a complete value." +msgstr "Введіть значення повністю." + +msgid "Enter a valid UUID." +msgstr "Введіть коректне значення UUID," + +msgid "Enter a valid JSON." +msgstr "Введіть коректний JSON." + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr ":" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "(Приховане поле %(name)s) %(error)s" + +#, python-format +msgid "" +"ManagementForm data is missing or has been tampered with. Missing fields: " +"%(field_names)s. You may need to file a bug report if the issue persists." +msgstr "" + +#, python-format +msgid "Please submit at most %(num)d form." +msgid_plural "Please submit at most %(num)d forms." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#, python-format +msgid "Please submit at least %(num)d form." +msgid_plural "Please submit at least %(num)d forms." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +msgid "Order" +msgstr "Послідовність" + +msgid "Delete" +msgstr "Видалити" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "Будь ласка, виправте повторювані дані для поля %(field)s." + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "" +"Будь ласка, виправте повторювані дані для поля %(field)s, яке має бути " +"унікальним." + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"Будь ласка, виправте повторювані дані для поля %(field_name)s, яке має бути " +"унікальним для вибірки %(lookup)s на %(date_field)s." + +msgid "Please correct the duplicate values below." +msgstr "Будь ласка, виправте повторювані значення нижче." + +msgid "The inline value did not match the parent instance." +msgstr "Зв'язане значення не відповідає батьківському екземпляру." + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "Зробить коректний вибір. Такого варіанту нема серед доступних." + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "" + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" + +msgid "Clear" +msgstr "Очистити" + +msgid "Currently" +msgstr "Наразі" + +msgid "Change" +msgstr "Змінити" + +msgid "Unknown" +msgstr "Невідомо" + +msgid "Yes" +msgstr "Так" + +msgid "No" +msgstr "Ні" + +#. Translators: Please do not add spaces around commas. +msgid "yes,no,maybe" +msgstr "так,ні,можливо" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)d байт" +msgstr[1] "%(size)d байти" +msgstr[2] "%(size)d байтів" +msgstr[3] "%(size)d байтів" + +#, python-format +msgid "%s KB" +msgstr "%s Кб" + +#, python-format +msgid "%s MB" +msgstr "%s Мб" + +#, python-format +msgid "%s GB" +msgstr "%s Гб" + +#, python-format +msgid "%s TB" +msgstr "%s Тб" + +#, python-format +msgid "%s PB" +msgstr "%s Пб" + +msgid "p.m." +msgstr "після полудня" + +msgid "a.m." +msgstr "до полудня" + +msgid "PM" +msgstr "після полудня" + +msgid "AM" +msgstr "до полудня" + +msgid "midnight" +msgstr "північ" + +msgid "noon" +msgstr "полудень" + +msgid "Monday" +msgstr "Понеділок" + +msgid "Tuesday" +msgstr "Вівторок" + +msgid "Wednesday" +msgstr "Середа" + +msgid "Thursday" +msgstr "Четвер" + +msgid "Friday" +msgstr "П'ятниця" + +msgid "Saturday" +msgstr "Субота" + +msgid "Sunday" +msgstr "Неділя" + +msgid "Mon" +msgstr "Пн" + +msgid "Tue" +msgstr "Вт" + +msgid "Wed" +msgstr "Ср" + +msgid "Thu" +msgstr "Чт" + +msgid "Fri" +msgstr "Пт" + +msgid "Sat" +msgstr "Сб" + +msgid "Sun" +msgstr "Нд" + +msgid "January" +msgstr "Січень" + +msgid "February" +msgstr "Лютий" + +msgid "March" +msgstr "Березень" + +msgid "April" +msgstr "Квітень" + +msgid "May" +msgstr "Травень" + +msgid "June" +msgstr "Червень" + +msgid "July" +msgstr "Липень" + +msgid "August" +msgstr "Серпень" + +msgid "September" +msgstr "Вересень" + +msgid "October" +msgstr "Жовтень" + +msgid "November" +msgstr "Листопад" + +msgid "December" +msgstr "Грудень" + +msgid "jan" +msgstr "січ" + +msgid "feb" +msgstr "лют" + +msgid "mar" +msgstr "бер" + +msgid "apr" +msgstr "кві" + +msgid "may" +msgstr "тра" + +msgid "jun" +msgstr "чер" + +msgid "jul" +msgstr "лип" + +msgid "aug" +msgstr "сер" + +msgid "sep" +msgstr "вер" + +msgid "oct" +msgstr "жов" + +msgid "nov" +msgstr "лис" + +msgid "dec" +msgstr "гру" + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "Січ." + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "Лют." + +msgctxt "abbrev. month" +msgid "March" +msgstr "Березень" + +msgctxt "abbrev. month" +msgid "April" +msgstr "Квітень" + +msgctxt "abbrev. month" +msgid "May" +msgstr "Травень" + +msgctxt "abbrev. month" +msgid "June" +msgstr "Червень" + +msgctxt "abbrev. month" +msgid "July" +msgstr "Липень" + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "Сер." + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "Вер." + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "Жов." + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "Лис." + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "Гру." + +msgctxt "alt. month" +msgid "January" +msgstr "січня" + +msgctxt "alt. month" +msgid "February" +msgstr "лютого" + +msgctxt "alt. month" +msgid "March" +msgstr "березня" + +msgctxt "alt. month" +msgid "April" +msgstr "квітня" + +msgctxt "alt. month" +msgid "May" +msgstr "травня" + +msgctxt "alt. month" +msgid "June" +msgstr "червня" + +msgctxt "alt. month" +msgid "July" +msgstr "липня" + +msgctxt "alt. month" +msgid "August" +msgstr "серпня" + +msgctxt "alt. month" +msgid "September" +msgstr "вересня" + +msgctxt "alt. month" +msgid "October" +msgstr "жовтня" + +msgctxt "alt. month" +msgid "November" +msgstr "листопада" + +msgctxt "alt. month" +msgid "December" +msgstr "грудня" + +msgid "This is not a valid IPv6 address." +msgstr "Це не є правильною адресою IPv6." + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "%(truncated_text)s…" + +msgid "or" +msgstr "або" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr ", " + +#, python-format +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "%(num)d рік" +msgstr[1] "%(num)d роки" +msgstr[2] "%(num)d років" +msgstr[3] "%(num)d років" + +#, python-format +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "%(num)d місяць" +msgstr[1] "%(num)d місяці" +msgstr[2] "%(num)d місяців" +msgstr[3] "%(num)d місяців" + +#, python-format +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "%(num)d тиждень" +msgstr[1] "%(num)d тижні" +msgstr[2] "%(num)d тижнів" +msgstr[3] "%(num)d тижнів" + +#, python-format +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "%(num)d день" +msgstr[1] "%(num)d дні" +msgstr[2] "%(num)d днів" +msgstr[3] "%(num)d днів" + +#, python-format +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "%(num)d година" +msgstr[1] "%(num)d години" +msgstr[2] "%(num)d годин" +msgstr[3] "%(num)d годин" + +#, python-format +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "%(num)d хвилина" +msgstr[1] "%(num)d хвилини" +msgstr[2] "%(num)d хвилин" +msgstr[3] "%(num)d хвилин" + +msgid "Forbidden" +msgstr "Заборонено" + +msgid "CSRF verification failed. Request aborted." +msgstr "Помилка перевірки CSRF. Запит відхилений." + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" +"Якщо ви налаштували свій браузер таким чином, щоб заборонити йому передавати " +"заголовок «Referer», будь ласка, дозвольте йому відсилати даний заголовок " +"принаймні для даного сайту, або для всіх HTTPS-з'єднань, або для подібних " +"запитів." + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" +"Ви бачите це повідомлення, тому що даний сайт вимагає, щоб при відправці " +"форм була відправлена ​​і CSRF-cookie. Даний тип cookie необхідний з міркувань " +"безпеки, щоб переконатися, що ваш браузер не був взламаний третьою стороною." + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" + +msgid "More information is available with DEBUG=True." +msgstr "Більше інформації можна отримати з DEBUG=True." + +msgid "No year specified" +msgstr "Рік не вказано" + +msgid "Date out of range" +msgstr "Дата поза діапазоном" + +msgid "No month specified" +msgstr "Місяць не вказано" + +msgid "No day specified" +msgstr "День не вказано" + +msgid "No week specified" +msgstr "Тиждень не вказано" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "%(verbose_name_plural)s недоступні" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" +"Майбутні %(verbose_name_plural)s недоступні, тому що %(class_name)s." +"allow_future має нульове значення." + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "Жодні %(verbose_name)s не були знайдені по запиту" + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "" + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "Невірна сторінка (%(page_number)s): %(message)s" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "" + +msgid "Directory indexes are not allowed here." +msgstr "Перегляд вмісту каталогу не дозволено." + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "\"%(path)s\" не існує" + +#, python-format +msgid "Index of %(directory)s" +msgstr "Вміст директорії %(directory)s" + +msgid "The install worked successfully! Congratulations!" +msgstr "Вітаємо, команда install завершилась успішно!" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" +"Нотатки релізу for Django %(version)s" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not " +"configured any URLs." +msgstr "" +"Ви бачите цю сторінку тому що змінна DEBUG встановлена на True у вашому файлі " +"конфігурації і ви не налаштували жодного URL." + +msgid "Django Documentation" +msgstr "Документація Django" + +msgid "Topics, references, & how-to’s" +msgstr "Статті, довідки та інструкції" + +msgid "Tutorial: A Polling App" +msgstr "Посібник: програма голосування" + +msgid "Get started with Django" +msgstr "Початок роботи з Django" + +msgid "Django Community" +msgstr "Спільнота Django" + +msgid "Connect, get help, or contribute" +msgstr "Отримати допомогу, чи допомогти" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/uk/__init__.py b/venv/lib/python3.12/site-packages/django/conf/locale/uk/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/uk/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/uk/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f6afb08ea17181bf6b3673616522090153be1d9a GIT binary patch literal 198 zcmX@j%ge<81o5sX(m?cM5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!O4ZNE&rQ|OP0Yy6 zFHO;RNiEZNN=(kybEFQ_cZ$j>v@Gc?jK&MZmQEdVM^ zOiwM=Pssu+OwP|s)6dCIPRvQwFU{7EkI&4@EQycTE2#X%VUwGmQks)$SHudml@W-G PL5z>gjEsy$%s>_Z$D}li literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/uk/__pycache__/formats.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/uk/__pycache__/formats.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ba965a330189708150b25a0119a39771dd4cc612 GIT binary patch literal 874 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 PZJYMr#Kze)zTNx}uxfxN literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/ur/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/conf/locale/ur/LC_MESSAGES/django.po new file mode 100644 index 0000000000..6067c00552 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/ur/LC_MESSAGES/django.po @@ -0,0 +1,1222 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Mansoorulhaq Mansoor , 2011 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-09-27 22:40+0200\n" +"PO-Revision-Date: 2019-11-05 00:38+0000\n" +"Last-Translator: Ramiro Morales\n" +"Language-Team: Urdu (http://www.transifex.com/django/django/language/ur/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ur\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Afrikaans" +msgstr "" + +msgid "Arabic" +msgstr "عربی" + +msgid "Asturian" +msgstr "" + +msgid "Azerbaijani" +msgstr "" + +msgid "Bulgarian" +msgstr "بلغاری" + +msgid "Belarusian" +msgstr "" + +msgid "Bengali" +msgstr "بنگالی" + +msgid "Breton" +msgstr "" + +msgid "Bosnian" +msgstr "بوسنیائی" + +msgid "Catalan" +msgstr "کیٹالانی" + +msgid "Czech" +msgstr "زیچ" + +msgid "Welsh" +msgstr "ویلش" + +msgid "Danish" +msgstr "ڈینش" + +msgid "German" +msgstr "جرمن" + +msgid "Lower Sorbian" +msgstr "" + +msgid "Greek" +msgstr "گریک" + +msgid "English" +msgstr "انگلش" + +msgid "Australian English" +msgstr "" + +msgid "British English" +msgstr "برطانوی انگلش" + +msgid "Esperanto" +msgstr "" + +msgid "Spanish" +msgstr "ھسپانوی" + +msgid "Argentinian Spanish" +msgstr "ارجنٹائنی سپینش" + +msgid "Colombian Spanish" +msgstr "" + +msgid "Mexican Spanish" +msgstr "" + +msgid "Nicaraguan Spanish" +msgstr "" + +msgid "Venezuelan Spanish" +msgstr "" + +msgid "Estonian" +msgstr "اسٹانین" + +msgid "Basque" +msgstr "باسک" + +msgid "Persian" +msgstr "فارسی" + +msgid "Finnish" +msgstr "فنش" + +msgid "French" +msgstr "فرانسیسی" + +msgid "Frisian" +msgstr "فریسی" + +msgid "Irish" +msgstr "آئرش" + +msgid "Scottish Gaelic" +msgstr "" + +msgid "Galician" +msgstr "گیلیشین" + +msgid "Hebrew" +msgstr "عبرانی" + +msgid "Hindi" +msgstr "ھندی" + +msgid "Croatian" +msgstr "کروشن" + +msgid "Upper Sorbian" +msgstr "" + +msgid "Hungarian" +msgstr "ھونگارین" + +msgid "Armenian" +msgstr "" + +msgid "Interlingua" +msgstr "" + +msgid "Indonesian" +msgstr "انڈونیشین" + +msgid "Ido" +msgstr "" + +msgid "Icelandic" +msgstr "آئس لینڈک" + +msgid "Italian" +msgstr "اطالوی" + +msgid "Japanese" +msgstr "جاپانی" + +msgid "Georgian" +msgstr "جارجیائی" + +msgid "Kabyle" +msgstr "" + +msgid "Kazakh" +msgstr "" + +msgid "Khmer" +msgstr "خمر" + +msgid "Kannada" +msgstr "کناڈا" + +msgid "Korean" +msgstr "کوریائی" + +msgid "Luxembourgish" +msgstr "" + +msgid "Lithuanian" +msgstr "لیتھونیائی" + +msgid "Latvian" +msgstr "لتوینی" + +msgid "Macedonian" +msgstr "میسیڈونین" + +msgid "Malayalam" +msgstr "ملایالم" + +msgid "Mongolian" +msgstr "منگولین" + +msgid "Marathi" +msgstr "" + +msgid "Burmese" +msgstr "" + +msgid "Norwegian Bokmål" +msgstr "" + +msgid "Nepali" +msgstr "" + +msgid "Dutch" +msgstr "ڈچ" + +msgid "Norwegian Nynorsk" +msgstr "نارویائی نینورسک" + +msgid "Ossetic" +msgstr "" + +msgid "Punjabi" +msgstr "پنجابی" + +msgid "Polish" +msgstr "پولش" + +msgid "Portuguese" +msgstr "پورتگیز" + +msgid "Brazilian Portuguese" +msgstr "برازیلی پورتگیز" + +msgid "Romanian" +msgstr "رومانی" + +msgid "Russian" +msgstr "روسی" + +msgid "Slovak" +msgstr "سلووک" + +msgid "Slovenian" +msgstr "سلووینین" + +msgid "Albanian" +msgstr "البانوی" + +msgid "Serbian" +msgstr "سربین" + +msgid "Serbian Latin" +msgstr "سربین لاطینی" + +msgid "Swedish" +msgstr "سویڈش" + +msgid "Swahili" +msgstr "" + +msgid "Tamil" +msgstr "تاملی" + +msgid "Telugu" +msgstr "تیلگو" + +msgid "Thai" +msgstr "تھائی" + +msgid "Turkish" +msgstr "ترکش" + +msgid "Tatar" +msgstr "" + +msgid "Udmurt" +msgstr "" + +msgid "Ukrainian" +msgstr "یوکرائنی" + +msgid "Urdu" +msgstr "" + +msgid "Uzbek" +msgstr "" + +msgid "Vietnamese" +msgstr "ویتنامی" + +msgid "Simplified Chinese" +msgstr "سادی چینی" + +msgid "Traditional Chinese" +msgstr "روایتی چینی" + +msgid "Messages" +msgstr "" + +msgid "Site Maps" +msgstr "" + +msgid "Static Files" +msgstr "" + +msgid "Syndication" +msgstr "" + +msgid "That page number is not an integer" +msgstr "" + +msgid "That page number is less than 1" +msgstr "" + +msgid "That page contains no results" +msgstr "" + +msgid "Enter a valid value." +msgstr "درست قیمت (ویلیو) درج کریں۔" + +msgid "Enter a valid URL." +msgstr "درست یو آر ایل (URL) درج کریں۔" + +msgid "Enter a valid integer." +msgstr "" + +msgid "Enter a valid email address." +msgstr "" + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" + +msgid "Enter a valid IPv4 address." +msgstr "IPv4 کا درست پتہ درج کریں۔" + +msgid "Enter a valid IPv6 address." +msgstr "" + +msgid "Enter a valid IPv4 or IPv6 address." +msgstr "" + +msgid "Enter only digits separated by commas." +msgstr "صرف اعداد درج کریں جو کوموں سے الگ کئے ھوئے ھوں۔" + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "" +"اس بات کا یقین کر لیں کہ یہ قیمت (ویلیو) %(limit_value)s ھے۔ (یہ " +"%(show_value)s ھے)%(show_value)s" + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "" +"اس بات کا یقین کر لیں کہ یہ قیمت (ویلیو) %(limit_value)s سے کم یا اس کے " +"برابر ھے۔" + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "" +"اس بات کا یقین کر لیں کہ یہ قیمت (ویلیو) %(limit_value)s سے زیادہ یا اس کے " +"برابر ھے۔" + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +msgstr[1] "" + +msgid "Enter a number." +msgstr "نمبر درج کریں۔" + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" + +msgid "Null characters are not allowed." +msgstr "" + +msgid "and" +msgstr "اور" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "" + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "" + +msgid "This field cannot be null." +msgstr "یہ خانہ نامعلوم (null( نھیں رہ سکتا۔" + +msgid "This field cannot be blank." +msgstr "یہ خانہ خالی نھیں چھوڑا جا سکتا۔" + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "%(model_name)s اس %(field_label)s کے ساتھ پہلے ہی موجود ھے۔" + +#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'. +#. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "%(field_type)s قسم کا خانہ" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "" + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "" + +msgid "Boolean (Either True or False)" +msgstr "بولین (True یا False)" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "سلسلۂ حروف (String) (%(max_length)s تک)" + +msgid "Comma-separated integers" +msgstr " کومے سے الگ کئے ھوئے صحیح اعداد" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" + +msgid "Date (without time)" +msgstr "تاریخ (وقت کے بغیر)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" + +msgid "Date (with time)" +msgstr "تاریخ (بمع وقت)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "" + +msgid "Decimal number" +msgstr "اعشاری نمبر" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" + +msgid "Duration" +msgstr "" + +msgid "Email address" +msgstr "" + +msgid "File path" +msgstr "فائل کا راستہ(path(" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "" + +msgid "Floating point number" +msgstr "نقطہ اعشاریہ والا نمبر" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "" + +msgid "Integer" +msgstr "صحیح عدد" + +msgid "Big (8 byte) integer" +msgstr "بڑا (8 بائٹ) صحیح عدد" + +msgid "IPv4 address" +msgstr "" + +msgid "IP address" +msgstr "IP ایڈریس" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "" + +msgid "Boolean (Either True, False or None)" +msgstr "بولین (True، False یا None(" + +msgid "Positive integer" +msgstr "" + +msgid "Positive small integer" +msgstr "" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "" + +msgid "Small integer" +msgstr "" + +msgid "Text" +msgstr "متن" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" + +msgid "Time" +msgstr "وقت" + +msgid "URL" +msgstr "یو آر ایل" + +msgid "Raw binary data" +msgstr "" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "" + +msgid "Universally unique identifier" +msgstr "" + +msgid "File" +msgstr "" + +msgid "Image" +msgstr "" + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "" + +msgid "Foreign Key (type determined by related field)" +msgstr "بیرونی کلید (FK( (قسم متعلقہ خانے سے متعین ھو گی)" + +msgid "One-to-one relationship" +msgstr "ون-ٹو-ون ریلیشن شپ" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "" + +msgid "Many-to-many relationship" +msgstr "مینی-ٹو-مینی ریلیشن شپ" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr "" + +msgid "This field is required." +msgstr "یہ خانہ درکار ھے۔" + +msgid "Enter a whole number." +msgstr "مکمل نمبر درج کریں۔" + +msgid "Enter a valid date." +msgstr "درست تاریخ درج کریں۔" + +msgid "Enter a valid time." +msgstr "درست وقت درج کریں۔" + +msgid "Enter a valid date/time." +msgstr "درست تاریخ/وقت درج کریں۔" + +msgid "Enter a valid duration." +msgstr "" + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "" + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "کوئی فائل پیش نہیں کی گئی۔ فارم پر اینکوڈنگ کی قسم چیک کریں۔" + +msgid "No file was submitted." +msgstr "کوئی فائل پیش نہیں کی گئی تھی۔" + +msgid "The submitted file is empty." +msgstr "پیش کی گئی فائل خالی ھے۔" + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" +msgstr[1] "" + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "براہ مھربانی فائل پیش کریں یا Clear checkbox منتخب کریں۔ نہ کہ دونوں۔" + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" +"درست تصویر اپ لوڈ کریں۔ جو فائل آپ نے اپ لوڈ کی تھی وہ تصویر نہیں تھی یا " +"خراب تصویر تھی۔" + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "درست انتخاب منتخب کریں۔ %(value)s دستیاب انتخابات میں سے کوئی نہیں۔" + +msgid "Enter a list of values." +msgstr "قیمتوں (ویلیوز) کی لسٹ درج کریں۔" + +msgid "Enter a complete value." +msgstr "" + +msgid "Enter a valid UUID." +msgstr "" + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr "" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "" + +msgid "ManagementForm data is missing or has been tampered with" +msgstr "" + +#, python-format +msgid "Please submit %d or fewer forms." +msgid_plural "Please submit %d or fewer forms." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "Please submit %d or more forms." +msgid_plural "Please submit %d or more forms." +msgstr[0] "" +msgstr[1] "" + +msgid "Order" +msgstr "ترتیب" + +msgid "Delete" +msgstr "مٹائیں" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "براہ کرم %(field)s کے لئے دوہرا مواد درست کریں۔" + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "" +"براہ کرم %(field)s کے لئے دوہرا مواد درست کریں جوکہ منفرد ھونا ضروری ھے۔" + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"براہ کرم %(field_name)s میں دوہرا مواد درست کریں جو کہ %(date_field)s میں " +"%(lookup)s کے لئے منفرد ھونا ضروری ھے۔" + +msgid "Please correct the duplicate values below." +msgstr "براہ کرم نیچے دوہری قیمتیں (ویلیوز) درست کریں۔" + +msgid "The inline value did not match the parent instance." +msgstr "" + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "درست انتخاب منتخب کریں۔ یہ انتخاب دستیاب انتخابات میں سے کوئی نہیں ھے۔" + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "" + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" + +msgid "Clear" +msgstr "صاف کریں" + +msgid "Currently" +msgstr "فی الحال" + +msgid "Change" +msgstr "تبدیل کریں" + +msgid "Unknown" +msgstr "نامعلوم" + +msgid "Yes" +msgstr "ھاں" + +msgid "No" +msgstr "نھیں" + +msgid "Year" +msgstr "" + +msgid "Month" +msgstr "" + +msgid "Day" +msgstr "" + +msgid "yes,no,maybe" +msgstr "ھاں،نہیں،ھوسکتاہے" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)d بائٹ" +msgstr[1] "%(size)d بائٹس" + +#, python-format +msgid "%s KB" +msgstr "%s ک ۔ ب" + +#, python-format +msgid "%s MB" +msgstr "%s م ۔ ب" + +#, python-format +msgid "%s GB" +msgstr "%s ج ۔ ب" + +#, python-format +msgid "%s TB" +msgstr "%s ٹ ۔ ب" + +#, python-format +msgid "%s PB" +msgstr "%s پ ۔ پ" + +msgid "p.m." +msgstr "شام" + +msgid "a.m." +msgstr "صبح" + +msgid "PM" +msgstr "شام" + +msgid "AM" +msgstr "صبح" + +msgid "midnight" +msgstr "نصف رات" + +msgid "noon" +msgstr "دوپہر" + +msgid "Monday" +msgstr "سوموار" + +msgid "Tuesday" +msgstr "منگل" + +msgid "Wednesday" +msgstr "بدھ" + +msgid "Thursday" +msgstr "جمعرات" + +msgid "Friday" +msgstr "جمعہ" + +msgid "Saturday" +msgstr "ھفتہ" + +msgid "Sunday" +msgstr "اتوار" + +msgid "Mon" +msgstr "سوموار" + +msgid "Tue" +msgstr "منگل" + +msgid "Wed" +msgstr "بدھ" + +msgid "Thu" +msgstr "جمعرات" + +msgid "Fri" +msgstr "جمعہ" + +msgid "Sat" +msgstr "ھفتہ" + +msgid "Sun" +msgstr "اتوار" + +msgid "January" +msgstr "جنوری" + +msgid "February" +msgstr "فروری" + +msgid "March" +msgstr "مارچ" + +msgid "April" +msgstr "اپریل" + +msgid "May" +msgstr "مئی" + +msgid "June" +msgstr "جون" + +msgid "July" +msgstr "جولائی" + +msgid "August" +msgstr "اگست" + +msgid "September" +msgstr "ستمبر" + +msgid "October" +msgstr "اکتوبر" + +msgid "November" +msgstr "نومبر" + +msgid "December" +msgstr "دسمبر" + +msgid "jan" +msgstr "جنوری" + +msgid "feb" +msgstr "فروری" + +msgid "mar" +msgstr "مارچ" + +msgid "apr" +msgstr "اپریل" + +msgid "may" +msgstr "مئی" + +msgid "jun" +msgstr "جون" + +msgid "jul" +msgstr "جولائی" + +msgid "aug" +msgstr "اگست" + +msgid "sep" +msgstr "ستمبر" + +msgid "oct" +msgstr "اکتوبر" + +msgid "nov" +msgstr "نومبر" + +msgid "dec" +msgstr "دسمبر" + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "جنوری" + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "فروری" + +msgctxt "abbrev. month" +msgid "March" +msgstr "مارچ" + +msgctxt "abbrev. month" +msgid "April" +msgstr "اپریل" + +msgctxt "abbrev. month" +msgid "May" +msgstr "مئی" + +msgctxt "abbrev. month" +msgid "June" +msgstr "جون" + +msgctxt "abbrev. month" +msgid "July" +msgstr "جولائی" + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "اگست" + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "ستمبر" + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "اکتوبر" + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "نومبر" + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "دسمبر" + +msgctxt "alt. month" +msgid "January" +msgstr "جنوری" + +msgctxt "alt. month" +msgid "February" +msgstr "فروری" + +msgctxt "alt. month" +msgid "March" +msgstr "مارچ" + +msgctxt "alt. month" +msgid "April" +msgstr "اپریل" + +msgctxt "alt. month" +msgid "May" +msgstr "مئی" + +msgctxt "alt. month" +msgid "June" +msgstr "جون" + +msgctxt "alt. month" +msgid "July" +msgstr "جولائی" + +msgctxt "alt. month" +msgid "August" +msgstr "اگست" + +msgctxt "alt. month" +msgid "September" +msgstr "ستمبر" + +msgctxt "alt. month" +msgid "October" +msgstr "اکتوبر" + +msgctxt "alt. month" +msgid "November" +msgstr "نومبر" + +msgctxt "alt. month" +msgid "December" +msgstr "دسمبر" + +msgid "This is not a valid IPv6 address." +msgstr "" + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "" + +msgid "or" +msgstr "یا" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr "،" + +#, python-format +msgid "%d year" +msgid_plural "%d years" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d month" +msgid_plural "%d months" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d week" +msgid_plural "%d weeks" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d day" +msgid_plural "%d days" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "" +msgstr[1] "" + +msgid "0 minutes" +msgstr "" + +msgid "Forbidden" +msgstr "" + +msgid "CSRF verification failed. Request aborted." +msgstr "" + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your Web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" + +msgid "More information is available with DEBUG=True." +msgstr "" + +msgid "No year specified" +msgstr "" + +msgid "Date out of range" +msgstr "" + +msgid "No month specified" +msgstr "" + +msgid "No day specified" +msgstr "" + +msgid "No week specified" +msgstr "" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "" + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "" + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "" + +msgid "Directory indexes are not allowed here." +msgstr "" + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "" + +#, python-format +msgid "Index of %(directory)s" +msgstr "" + +msgid "Django: the Web framework for perfectionists with deadlines." +msgstr "" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" + +msgid "The install worked successfully! Congratulations!" +msgstr "" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not configured any " +"URLs." +msgstr "" + +msgid "Django Documentation" +msgstr "" + +msgid "Topics, references, & how-to’s" +msgstr "" + +msgid "Tutorial: A Polling App" +msgstr "" + +msgid "Get started with Django" +msgstr "" + +msgid "Django Community" +msgstr "" + +msgid "Connect, get help, or contribute" +msgstr "" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/uz/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/conf/locale/uz/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..b003df83ef1d6d407d932a793cb838869b54eedf GIT binary patch literal 26443 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/uz/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/conf/locale/uz/LC_MESSAGES/django.po new file mode 100644 index 0000000000..ad57ba91b7 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/uz/LC_MESSAGES/django.po @@ -0,0 +1,1322 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Abdulaminkhon Khaydarov , 2020 +# Bedilbek Khamidov , 2019 +# Claude Paroz , 2020 +# Shukrullo Turgunov , 2023 +# Sukhrobbek Ismatov , 2019 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-09-18 11:41-0300\n" +"PO-Revision-Date: 2023-12-25 06:49+0000\n" +"Last-Translator: Shukrullo Turgunov , 2023\n" +"Language-Team: Uzbek (http://app.transifex.com/django/django/language/uz/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: uz\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +msgid "Afrikaans" +msgstr "Afrika tili" + +msgid "Arabic" +msgstr "Arab tili" + +msgid "Algerian Arabic" +msgstr "Jazoir arab tili" + +msgid "Asturian" +msgstr "Asturiya tili" + +msgid "Azerbaijani" +msgstr "Ozarbayjon tili" + +msgid "Bulgarian" +msgstr "Bolgar tili" + +msgid "Belarusian" +msgstr "Belorus tili" + +msgid "Bengali" +msgstr "Bengal tili" + +msgid "Breton" +msgstr "Breton tili" + +msgid "Bosnian" +msgstr "Bosniya tili" + +msgid "Catalan" +msgstr "Katalon tili" + +msgid "Central Kurdish (Sorani)" +msgstr "" + +msgid "Czech" +msgstr "Chex tili" + +msgid "Welsh" +msgstr "Uels tili" + +msgid "Danish" +msgstr "Daniya tili" + +msgid "German" +msgstr "Nemis tili" + +msgid "Lower Sorbian" +msgstr "Quyi sorbiya tili" + +msgid "Greek" +msgstr "Yunon tili" + +msgid "English" +msgstr "Ingliz tili" + +msgid "Australian English" +msgstr "Avstraliya ingliz tili" + +msgid "British English" +msgstr "Britan Ingliz tili" + +msgid "Esperanto" +msgstr "Esperanto tili" + +msgid "Spanish" +msgstr "Ispan tili" + +msgid "Argentinian Spanish" +msgstr "Argentina Ispan tili" + +msgid "Colombian Spanish" +msgstr "Kolumbiya Ispan tili" + +msgid "Mexican Spanish" +msgstr "Meksika Ispan tili " + +msgid "Nicaraguan Spanish" +msgstr "Nikaragua Ispan tili" + +msgid "Venezuelan Spanish" +msgstr "Venesuela Ispan tili" + +msgid "Estonian" +msgstr "Estoniya tili" + +msgid "Basque" +msgstr "Bask tili" + +msgid "Persian" +msgstr "Fors tili" + +msgid "Finnish" +msgstr "Fin tili" + +msgid "French" +msgstr "Fransuz tili" + +msgid "Frisian" +msgstr "Friziya tili" + +msgid "Irish" +msgstr "Irland tili" + +msgid "Scottish Gaelic" +msgstr "Shotland Gal tili" + +msgid "Galician" +msgstr "Galisiya tili" + +msgid "Hebrew" +msgstr "Ibroniy tili" + +msgid "Hindi" +msgstr "Hind tili" + +msgid "Croatian" +msgstr "Xorvat tili" + +msgid "Upper Sorbian" +msgstr "Yuqori Sorbiya tili" + +msgid "Hungarian" +msgstr "Vengriya tili" + +msgid "Armenian" +msgstr "Arman tili" + +msgid "Interlingua" +msgstr "Interlingua tili" + +msgid "Indonesian" +msgstr "Indoneziya tili" + +msgid "Igbo" +msgstr "Igbo tili" + +msgid "Ido" +msgstr "Ido tili" + +msgid "Icelandic" +msgstr "Island tili" + +msgid "Italian" +msgstr "Italyan tili" + +msgid "Japanese" +msgstr "Yapon tili" + +msgid "Georgian" +msgstr "Gruzin tili" + +msgid "Kabyle" +msgstr "Kabil tili" + +msgid "Kazakh" +msgstr "Qozoq tili" + +msgid "Khmer" +msgstr "Xmer tili" + +msgid "Kannada" +msgstr "Kannada tili" + +msgid "Korean" +msgstr "Koreys tili" + +msgid "Kyrgyz" +msgstr "Qirg'iz tili" + +msgid "Luxembourgish" +msgstr "Lyuksemburg tili" + +msgid "Lithuanian" +msgstr "Litva tili" + +msgid "Latvian" +msgstr "Latviya tili" + +msgid "Macedonian" +msgstr "Makedoniya tili" + +msgid "Malayalam" +msgstr "Malayalam tili" + +msgid "Mongolian" +msgstr "Mo'g'ul tili" + +msgid "Marathi" +msgstr "Marati tili" + +msgid "Malay" +msgstr "" + +msgid "Burmese" +msgstr "Birma tili" + +msgid "Norwegian Bokmål" +msgstr "Norvegiya Bokmal tili" + +msgid "Nepali" +msgstr "Nepal tili" + +msgid "Dutch" +msgstr "Golland tili" + +msgid "Norwegian Nynorsk" +msgstr "Norvegiya Ninorsk tili" + +msgid "Ossetic" +msgstr "Osetik tili" + +msgid "Punjabi" +msgstr "Panjob tili" + +msgid "Polish" +msgstr "Polyak tili" + +msgid "Portuguese" +msgstr "Portugal tili" + +msgid "Brazilian Portuguese" +msgstr "Braziliya Portugal tili" + +msgid "Romanian" +msgstr "Rumin tili" + +msgid "Russian" +msgstr "Rus tili" + +msgid "Slovak" +msgstr "Slovak tili" + +msgid "Slovenian" +msgstr "Slovan tili" + +msgid "Albanian" +msgstr "Alban tili" + +msgid "Serbian" +msgstr "Serb tili" + +msgid "Serbian Latin" +msgstr "Serbiya Lotin tili" + +msgid "Swedish" +msgstr "Shved tili" + +msgid "Swahili" +msgstr "Suaxili tili" + +msgid "Tamil" +msgstr "Tamil tili" + +msgid "Telugu" +msgstr "Telugu tili" + +msgid "Tajik" +msgstr "Tojik tili" + +msgid "Thai" +msgstr "Tay tili" + +msgid "Turkmen" +msgstr "Turkman tili" + +msgid "Turkish" +msgstr "Turk tili" + +msgid "Tatar" +msgstr "Tatar tili" + +msgid "Udmurt" +msgstr "Udmurt tili" + +msgid "Uyghur" +msgstr "" + +msgid "Ukrainian" +msgstr "Ukrain tili" + +msgid "Urdu" +msgstr "Urdu tili" + +msgid "Uzbek" +msgstr "O'zbek tili" + +msgid "Vietnamese" +msgstr "Vetnam tili" + +msgid "Simplified Chinese" +msgstr "Soddalashtirilgan xitoy tili" + +msgid "Traditional Chinese" +msgstr "An'anaviy xitoy tili" + +msgid "Messages" +msgstr "Xabarlar" + +msgid "Site Maps" +msgstr "Sayt xaritalari" + +msgid "Static Files" +msgstr "Statik fayllar" + +msgid "Syndication" +msgstr "Sindikatsiya" + +#. Translators: String used to replace omitted page numbers in elided page +#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10]. +msgid "…" +msgstr "" + +msgid "That page number is not an integer" +msgstr "Bu sahifa raqami butun son emas" + +msgid "That page number is less than 1" +msgstr "Bu sahifa raqami 1 dan kichik" + +msgid "That page contains no results" +msgstr "Ushbu sahifada hech qanday natija yo'q" + +msgid "Enter a valid value." +msgstr "To'g'ri qiymatni kiriting." + +msgid "Enter a valid URL." +msgstr "To'g'ri URL manzilini kiriting." + +msgid "Enter a valid integer." +msgstr "To'g'ri butun sonni kiriting." + +msgid "Enter a valid email address." +msgstr "To'g'ri elektron pochta manzilini kiriting." + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" +"Harflar, raqamlar, pastki chiziqlar yoki chiziqlardan iborat to'g'ri " +"\"slug\" ni kiriting." + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" +"Unicode harflari, raqamlari, pastki chiziqlari yoki chiziqlardan iborat " +"to'g'ri \"slug\" ni kiriting." + +msgid "Enter a valid IPv4 address." +msgstr "To'g'ri IPv4 manzilini kiriting." + +msgid "Enter a valid IPv6 address." +msgstr "To'g'ri IPv6 manzilini kiriting." + +msgid "Enter a valid IPv4 or IPv6 address." +msgstr "To'g'ri IPv4 yoki IPv6 manzilini kiriting." + +msgid "Enter only digits separated by commas." +msgstr "Faqat vergul bilan ajratilgan raqamlarni kiriting." + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "" +"Ushbu qiymat %(limit_value)s ekanligiga ishonch hosil qiling (Hozir u " +"%(show_value)s)." + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "" +"Ushbu qiymat %(limit_value)s dan kichik yoki unga teng ekanligini tekshiring." + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "" +"Ushbu qiymat %(limit_value)s dan katta yoki unga teng ekanligini tekshiring." + +#, python-format +msgid "Ensure this value is a multiple of step size %(limit_value)s." +msgstr "" + +#, python-format +msgid "" +"Ensure this value is a multiple of step size %(limit_value)s, starting from " +"%(offset)s, e.g. %(offset)s, %(valid_value1)s, %(valid_value2)s, and so on." +msgstr "" + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Ushbu qiymat kamida %(limit_value)dga ega ekanligiga ishonch hosil qiling " +"(unda bor %(show_value)d)" + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Ushbu qiymat eng ko'pi bilan %(limit_value)d ta belgidan iboratligiga " +"ishonch hosil qiling (hozir, %(show_value)d tadan iborat)." + +msgid "Enter a number." +msgstr "Raqamni kiriting." + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "" +"Umumiy raqamlar soni %(max)s tadan ko'p bo'lmasligiga ishonch hosil qiling." + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "" +"O'nlik kasr xonalari %(max)s tadan ko'p bo'lmasligiga ishonch hosil qiling." + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "" +"O'nli kasr nuqtasidan oldin %(max)s tadan ko'p raqam bo'lmasligiga ishonch " +"hosil qiling." + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" +"\"%(extension)s\" fayl kengaytmasiga ruxsat berilmagan Ruxsat berilgan " +"kengaytmalar: %(allowed_extensions)s." + +msgid "Null characters are not allowed." +msgstr "Bo'shliq belgilaridan foydalanish mumkin emas." + +msgid "and" +msgstr "va" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "%(field_labels)s bilan %(model_name)s allaqachon mavjud." + +#, python-format +msgid "Constraint “%(name)s” is violated." +msgstr "" + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "%(value)r qiymati to'g'ri tanlov emas." + +msgid "This field cannot be null." +msgstr "Bu maydon bo‘shliq belgisidan iborat bo'lishi mumkin emas." + +msgid "This field cannot be blank." +msgstr "Bu maydon bo‘sh bo‘lishi mumkin emas." + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "\"%(field_label)s\" %(model_name)s allaqachon mavjud." + +#. Translators: The 'lookup_type' is one of 'date', 'year' or +#. 'month'. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" +"%(field_label)s %(date_field_label)s %(lookup_type)s uchun noyob bo'lishi " +"kerak." + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "Maydon turi: %(field_type)s" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "\"%(value)s\" qiymati rost yoki yolg'on bo'lishi kerak." + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "" +"\"%(value)s\" qiymati Rost, Yolg'on yoki Bo'shliq belgisidan iborat bo'lishi " +"kerak." + +msgid "Boolean (Either True or False)" +msgstr "Mantiqiy (Rost yoki Yolg'on)" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "Birikma uzunligi (%(max_length)s gacha)" + +msgid "String (unlimited)" +msgstr "" + +msgid "Comma-separated integers" +msgstr "Vergul bilan ajratilgan butun sonlar" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" +"\"%(value)s\" qiymati yaroqsiz sana formatiga ega. U YYYY-MM-DD formatida " +"bo'lishi kerak." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" +"\"%(value)s\" qiymati to'g'ri formatga (YYYY-MM-DD) ega, ammo bu noto'g'ri " +"sana." + +msgid "Date (without time)" +msgstr "Sana (vaqtsiz)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" +"\"%(value)s\" qiymati noto'g'ri formatga ega. U YYYY-MM-DD HH: MM [: ss [." +"uuuuuu]] [TZ] formatida bo'lishi kerak." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" +"\"%(value)s\" qiymati to'g'ri formatga ega (YYYY-MM-DD HH: MM [: ss [." +"uuuuuu]] [TZ]), lekin u noto'g'ri sana / vaqt." + +msgid "Date (with time)" +msgstr "Sana (vaqt bilan)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "\"%(value)s\" qiymati o'nlik kasr sonlardan iborat bo'lishi kerak." + +msgid "Decimal number" +msgstr "O'nli kasr son" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" +"\"%(value)s\" qiymati noto'g'ri formatga ega. U [DD] [[HH:] MM:] ss [." +"uuuuuu] formatida bo'lishi kerak." + +msgid "Duration" +msgstr "Davomiyligi" + +msgid "Email address" +msgstr "Elektron pochta manzili" + +msgid "File path" +msgstr "Fayl manzili" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "\"%(value)s\" qiymati haqiqiy son bo'lishi kerak." + +msgid "Floating point number" +msgstr "Haqiqiy son" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "\"%(value)s\" qiymati butun son bo'lishi kerak." + +msgid "Integer" +msgstr "Butun son" + +msgid "Big (8 byte) integer" +msgstr "Katta (8 bayt) butun son" + +msgid "Small integer" +msgstr "Kichik butun son" + +msgid "IPv4 address" +msgstr "IPv4 manzili" + +msgid "IP address" +msgstr "IP manzili" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "\"%(value)s\" qiymati Yo‘q, To‘g‘ri yoki Noto'g'ri bo'lishi kerak." + +msgid "Boolean (Either True, False or None)" +msgstr "Boolean (To'g'ri, Yolg'on yoki Hech biri)" + +msgid "Positive big integer" +msgstr "Musbat katta butun son" + +msgid "Positive integer" +msgstr "Ijobiy butun son" + +msgid "Positive small integer" +msgstr "Musbat kichik butun son" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "Slug uzunligi (%(max_length)s gacha)" + +msgid "Text" +msgstr "Matn" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" +"\"%(value)s\" qiymati noto'g'ri formatga ega. U HH: MM [: ss [.uuuuuu]] " +"formatida bo'lishi kerak." + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" +"\"%(value)s\" qiymati to'g'ri formatga ega (HH: MM [: ss [.uuuuuu]]), lekin " +"bu noto'g'ri vaqt." + +msgid "Time" +msgstr "Vaqt" + +msgid "URL" +msgstr "URL manzili" + +msgid "Raw binary data" +msgstr "Tartibsiz Ikkilik ma'lumotlar" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "\"%(value)s\" to'g'ri UUID emas." + +msgid "Universally unique identifier" +msgstr "Umum noyob aniqlovchi" + +msgid "File" +msgstr "Fayl" + +msgid "Image" +msgstr "Rasm" + +msgid "A JSON object" +msgstr "JSON ob'ekti" + +msgid "Value must be valid JSON." +msgstr "Qiymat yaroqli JSON bo'lishi kerak." + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "%(field)s %(value)r lari bilan %(model)s namunasi uchun mavjud emas." + +msgid "Foreign Key (type determined by related field)" +msgstr "Tashqi kalit (turi aloqador maydon tomonidan belgilanadi)" + +msgid "One-to-one relationship" +msgstr "Birga-bir yago munosabat" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "%(from)s -%(to)s gacha bo'lgan munosabat" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "%(from)s -%(to)s gacha bo'lgan munosabatlar" + +msgid "Many-to-many relationship" +msgstr "Ko'pchilikka-ko'pchilik munosabatlar" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr ":?.!" + +msgid "This field is required." +msgstr "Ushbu maydon to'ldirilishi shart." + +msgid "Enter a whole number." +msgstr "Butun raqamni kiriting." + +msgid "Enter a valid date." +msgstr "Sanani to‘g‘ri kiriting." + +msgid "Enter a valid time." +msgstr "Vaqtni to‘g‘ri kiriting." + +msgid "Enter a valid date/time." +msgstr "Sana/vaqtni to‘g‘ri kiriting." + +msgid "Enter a valid duration." +msgstr "Muddatni to'g'ri kiriting." + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "Kunlar soni {min_days} va {max_days} orasida bo'lishi kerak." + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "Hech qanday fayl yuborilmadi. Formadagi kodlash turini tekshiring." + +msgid "No file was submitted." +msgstr "Hech qanday fayl yuborilmadi." + +msgid "The submitted file is empty." +msgstr "Yuborilgan etilgan fayl bo'sh." + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" +"Fayl nomi maksimum %(max)d belgilardan ko'p emasligiga ishonch hosil qiling " +"(hozir %(length)d belgi ishlatilgan)." + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "" +"Iltimos, faylni yuboring yoki katachani belgilang, lekin ikkalasinimas." + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" +"To'g'ri rasmni yuklang. Siz yuklagan fayl yoki rasm emas yoki buzilgan rasm " +"edi." + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "To'g'ri tanlovni tanlang. %(value)s mavjud tanlovlardan biri emas." + +msgid "Enter a list of values." +msgstr "Qiymatlar ro'yxatini kiriting." + +msgid "Enter a complete value." +msgstr "To'liq qiymatni kiriting." + +msgid "Enter a valid UUID." +msgstr "To'g'ri UUID kiriting." + +msgid "Enter a valid JSON." +msgstr "Yaroqli JSONni kiriting." + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr ":" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "(Yashirilgan maydon %(name)s) %(error)s" + +#, python-format +msgid "" +"ManagementForm data is missing or has been tampered with. Missing fields: " +"%(field_names)s. You may need to file a bug report if the issue persists." +msgstr "" + +#, python-format +msgid "Please submit at most %(num)d form." +msgid_plural "Please submit at most %(num)d forms." +msgstr[0] "" + +#, python-format +msgid "Please submit at least %(num)d form." +msgid_plural "Please submit at least %(num)d forms." +msgstr[0] "" + +msgid "Order" +msgstr "Buyurtma" + +msgid "Delete" +msgstr "Yo'q qilish" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "Iltimos, %(field)s uchun takroriy ma'lumotni tuzating." + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "" +"Iltimos, noyob bo'lishi kerak bo'lgan %(field)s uchun takroriy ma'lumotlarni " +"to'g'rilang." + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"Iltimos, %(field_name)s uchun takroriy ma'lumotlarni %(date_field)s ga noyob " +"bo'la oladigan %(lookup)s ichidagi ma'lumotlarni moslab to'g'rilang." + +msgid "Please correct the duplicate values below." +msgstr "Iltimos, quyidagi takroriy qiymatlarni to'g'irlang." + +msgid "The inline value did not match the parent instance." +msgstr "Kiritilgan ichki qiymat ajdod misoliga mos kelmaydi." + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "To'g'ri tanlovni tanlang. Bu tanlov mavjud tanlovlardan biri emas." + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "\"%(pk)s\" to'g'ri qiymat emas." + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" +"%(datetime)s vaqtni %(current_timezone)s mintaqa talqinida ifodalab " +"bo'lmadi; u noaniq yoki mavjud bo'lmasligi mumkin." + +msgid "Clear" +msgstr "Aniq" + +msgid "Currently" +msgstr "Hozirda" + +msgid "Change" +msgstr "O'zgartirish" + +msgid "Unknown" +msgstr "Noma'lum" + +msgid "Yes" +msgstr "Ha" + +msgid "No" +msgstr "Yo'q" + +#. Translators: Please do not add spaces around commas. +msgid "yes,no,maybe" +msgstr "ha,yo'q,ehtimol" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)dbayt" + +#, python-format +msgid "%s KB" +msgstr "%s KB" + +#, python-format +msgid "%s MB" +msgstr "%s MB" + +#, python-format +msgid "%s GB" +msgstr "%s GB" + +#, python-format +msgid "%s TB" +msgstr "%s TB" + +#, python-format +msgid "%s PB" +msgstr "%s PB" + +msgid "p.m." +msgstr "kechqurun" + +msgid "a.m." +msgstr "ertalab" + +msgid "PM" +msgstr "Kechqurun" + +msgid "AM" +msgstr "Ertalab" + +msgid "midnight" +msgstr "yarim tunda" + +msgid "noon" +msgstr "peshin" + +msgid "Monday" +msgstr "Dushanba" + +msgid "Tuesday" +msgstr "Seshanba" + +msgid "Wednesday" +msgstr "Chorshanba" + +msgid "Thursday" +msgstr "Payshanba" + +msgid "Friday" +msgstr "Juma" + +msgid "Saturday" +msgstr "Shanba" + +msgid "Sunday" +msgstr "Yakshanba" + +msgid "Mon" +msgstr "Dush" + +msgid "Tue" +msgstr "Sesh" + +msgid "Wed" +msgstr "Chor" + +msgid "Thu" +msgstr "Pay" + +msgid "Fri" +msgstr "Jum" + +msgid "Sat" +msgstr "Shan" + +msgid "Sun" +msgstr "Yak" + +msgid "January" +msgstr "Yanvar" + +msgid "February" +msgstr "Fevral" + +msgid "March" +msgstr "Mart" + +msgid "April" +msgstr "Aprel" + +msgid "May" +msgstr "May" + +msgid "June" +msgstr "Iyun" + +msgid "July" +msgstr "Iyul" + +msgid "August" +msgstr "Avgust" + +msgid "September" +msgstr "Sentabr" + +msgid "October" +msgstr "Oktabr" + +msgid "November" +msgstr "Noyabr" + +msgid "December" +msgstr "Dekabr" + +msgid "jan" +msgstr "yan" + +msgid "feb" +msgstr "fev" + +msgid "mar" +msgstr "mar" + +msgid "apr" +msgstr "apr" + +msgid "may" +msgstr "may" + +msgid "jun" +msgstr "iyn" + +msgid "jul" +msgstr "iyl" + +msgid "aug" +msgstr "avg" + +msgid "sep" +msgstr "sen" + +msgid "oct" +msgstr "okt" + +msgid "nov" +msgstr "noy" + +msgid "dec" +msgstr "dek" + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "Yan," + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "Fev." + +msgctxt "abbrev. month" +msgid "March" +msgstr "Mart" + +msgctxt "abbrev. month" +msgid "April" +msgstr "Aprel" + +msgctxt "abbrev. month" +msgid "May" +msgstr "May" + +msgctxt "abbrev. month" +msgid "June" +msgstr "Iyun" + +msgctxt "abbrev. month" +msgid "July" +msgstr "Iyul" + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "Avg." + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "Sen." + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "Okt." + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "Noy." + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "Dek." + +msgctxt "alt. month" +msgid "January" +msgstr "Yanvar" + +msgctxt "alt. month" +msgid "February" +msgstr "Fevral" + +msgctxt "alt. month" +msgid "March" +msgstr "Mart" + +msgctxt "alt. month" +msgid "April" +msgstr "Aprel" + +msgctxt "alt. month" +msgid "May" +msgstr "May" + +msgctxt "alt. month" +msgid "June" +msgstr "Iyun" + +msgctxt "alt. month" +msgid "July" +msgstr "Iyul" + +msgctxt "alt. month" +msgid "August" +msgstr "Avgust" + +msgctxt "alt. month" +msgid "September" +msgstr "Sentabr" + +msgctxt "alt. month" +msgid "October" +msgstr "Oktabr" + +msgctxt "alt. month" +msgid "November" +msgstr "Noyabr" + +msgctxt "alt. month" +msgid "December" +msgstr "Dekabr" + +msgid "This is not a valid IPv6 address." +msgstr "Bu to'g'ri IPv6 manzili emas." + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "%(truncated_text)s…" + +msgid "or" +msgstr "yoki" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr "," + +#, python-format +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "%(num)d yil" + +#, python-format +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "%(num)doy" + +#, python-format +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "%(num)d hafta" + +#, python-format +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "%(num)d kun" + +#, python-format +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "%(num)d soat" + +#, python-format +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "%(num)d daqiqa" + +msgid "Forbidden" +msgstr "Taqiqlangan" + +msgid "CSRF verification failed. Request aborted." +msgstr "CSRF tekshiruvi amalga oshmadi. So‘rov bekor qilindi." + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" +"Agar siz \"Referer\" sarlavhalarini o'chirib qo'yish uchun brauzeringizni " +"sozlagan bo'lsangiz, iltimos, hech bo'lmasa ushbu sayt uchun, HTTPS " +"ulanishlari, yoki \"same-origin\" so'rovlari uchun ularni qayta yoqib " +"qo'ying." + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" +"Agar siz yorlig'idan yoki " +"\"Referrer-Policy: no-referer\" sarlavhasidan foydalanayotgan bo'lsangiz, " +"iltimos ularni olib tashlang. CSRF himoyasi \"Referer\" sarlavhasini " +"havolalarni qat'iy tekshirishni talab qiladi. Agar maxfiyligingiz haqida " +"xavotirda bo'lsangiz, uchinchi tomon saytlari kabi " +"havola alternativalaridan foydalaning." + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" +"Siz ushbu xabarni ko'rmoqdasiz, chunki ushbu sayt formalarni yuborishda CSRF " +"cookie ma'lumotlarini talab qiladi. Ushbu cookie ma'lumotlari xavfsizlik " +"nuqtai nazaridan, brauzeringizni uchinchi shaxslar tomonidan " +"o'g'irlanmasligini ta'minlash uchun xizmat qilinadi." + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" +"Agar siz cookie ma'lumotlarni o'chirib qo'yish uchun brauzeringizni " +"konfiguratsiya qilgan bo'lsangiz, iltimos, ushbu sayt yoki \"same-origin\" " +"so'rovlari uchun ularni qayta yoqib qo'ying." + +msgid "More information is available with DEBUG=True." +msgstr "Qo'shimcha ma'lumotlarni DEBUG = True ifodasi bilan ko'rish mumkin." + +msgid "No year specified" +msgstr "Yil ko‘rsatilmagan" + +msgid "Date out of range" +msgstr "Sana chegaradan tashqarida" + +msgid "No month specified" +msgstr "Oy ko'rsatilmagan" + +msgid "No day specified" +msgstr "Hech qanday kun ko‘rsatilmagan" + +msgid "No week specified" +msgstr "Hech qanday hafta belgilanmagan" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "Hech qanday %(verbose_name_plural)s lar mavjud emas" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" +"Kelajak %(verbose_name_plural)s lari mavjud emas, chunki %(class_name)s." +"allow_future yolg'ondur." + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "" +"\"%(datestr)s\" sana birikmasi noto'g'ri berilgan. \"%(format)s\" formati " +"tavsiya etilgan" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "So'rovga mos keladigan %(verbose_name)s topilmadi" + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "Sahifa \"oxirgi\" emas va uni butun songa aylantirish mumkin emas." + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "Noto'g'ri sahifa (%(page_number)s): %(message)s" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "Bo'sh ro'yxat va \"%(class_name)s.allow_empty\" yolg'on." + +msgid "Directory indexes are not allowed here." +msgstr "Bu yerda katalog indekslaridan foydalanib bo'lmaydi." + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "\"%(path)s\" mavjud emas" + +#, python-format +msgid "Index of %(directory)s" +msgstr "%(directory)s indeksi" + +msgid "The install worked successfully! Congratulations!" +msgstr "O'rnatish muvaffaqiyatli amalga oshdi! Tabriklaymiz!" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" +"Django %(version)s uchun chiqarilgan " +"nashrlarni ko'rish" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not " +"configured any URLs." +msgstr "" +"Siz ushbu sahifani ko'rmoqdasiz, chunki DEBUG = True ifodasi sizning sozlamalar faylingizda " +"ko'rsatilgan va siz biron bir URL manzilini to'gri sozlamagansiz." + +msgid "Django Documentation" +msgstr "Django Hujjatlari" + +msgid "Topics, references, & how-to’s" +msgstr "Mavzular, havolalar va qanday qilish yo'llari" + +msgid "Tutorial: A Polling App" +msgstr "Qo'llanma: So'rovnoma" + +msgid "Get started with Django" +msgstr "Django bilan boshlang" + +msgid "Django Community" +msgstr "Django hamjamiyati" + +msgid "Connect, get help, or contribute" +msgstr "Bog'laning, yordam oling yoki hissa qo'shing" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/uz/__init__.py b/venv/lib/python3.12/site-packages/django/conf/locale/uz/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/uz/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/uz/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e7b120015566733e2a815e22de67bc9285092d47 GIT binary patch literal 198 zcmX@j%ge<81o5sX(m?cM5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!O4ZNE&rQ|OP0Yy6 zFHO;RNiEZNN=(kybEFQ_cZ$j>v@Gc?jK&MZmQEdVM^ zOiwM=Pssu+OwP|s)6dCIPRvQwFRjv#kI&4@EQycTE2#X%VUwGmQks)$SHudml@W-G PL5z>gjEsy$%s>_Z%4IZ~ literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/uz/__pycache__/formats.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/uz/__pycache__/formats.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..055e12f22c30bfab6b4c5cb5b70bdf53d440cb68 GIT binary patch literal 835 zcmZvaJ#X4T7{|}N2V#tQQ`!!ts$2;Pd}_O)s;Vg_pw>7tMv+fQmcyBs)W#?zNO(#= zMLSmA`ZYRL>cVKTcFKktb;;Co8WK=*!#&UQd;b6D?kxYL={O)u7k~6WhXDBH7wZ+c zNiN@zmvlyK@~1jmqePA{TOF9OgNj z=QNk*aG9%?3Y=D+kE~+EW!J3&*Qjt(g=@Rn{}9jh-Q+fP^IMbd+z;;O{)o&ytt+bZ z$NzfYzgz@KXcg&Yq9&-KUY8X~P?rg{Dcu%~-`NDLCJKr!$t|_9Hl+SlH9=bww%w2w zRo|SNyF**!>P@BXD>YrN>xZKFZkfKeHCqQA^=4jsnZLcpHfL+%+omME*W2QOpa`n0 zEYoU3?zDwgZG$nbj#L#DeP59~2hG<0H*iT_4z4g9I<^UIV`w{P7}m@gtQx%!WpRw* zk!6er4xE|e8MH=6a56s~I^&o8^A~VBIyK7^A~Xi(6yoD+Vb2-&q2=@p%Y^mp6 zaXRHE^Q+h^+rej+`T8VJ4)uSJsZO?4kfNwn959d16J9byw)C@e#>+lg0M^UwEkMf4 zKJxRurwfqtvN@6yd6@A+nN>KL4=h0XcP#pl#QZ7+a>T)UIpRor>C8vwBumct3uXc7 Am;e9( literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/uz/formats.py b/venv/lib/python3.12/site-packages/django/conf/locale/uz/formats.py new file mode 100644 index 0000000000..2c7ee73a17 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/uz/formats.py @@ -0,0 +1,30 @@ +# This file is distributed under the same license as the Django package. +# +# The *_FORMAT strings use the Django date format syntax, +# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date +DATE_FORMAT = r"j-E, Y-\y\i\l" +TIME_FORMAT = "G:i" +DATETIME_FORMAT = r"j-E, Y-\y\i\l G:i" +YEAR_MONTH_FORMAT = r"F Y-\y\i\l" +MONTH_DAY_FORMAT = "j-E" +SHORT_DATE_FORMAT = "d.m.Y" +SHORT_DATETIME_FORMAT = "d.m.Y H:i" +FIRST_DAY_OF_WEEK = 1 # Monday + +# The *_INPUT_FORMATS strings use the Python strftime format syntax, +# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior +DATE_INPUT_FORMATS = [ + "%d.%m.%Y", # '25.10.2006' + "%d-%B, %Y-yil", # '25-Oktabr, 2006-yil' +] +DATETIME_INPUT_FORMATS = [ + "%d.%m.%Y %H:%M:%S", # '25.10.2006 14:30:59' + "%d.%m.%Y %H:%M:%S.%f", # '25.10.2006 14:30:59.000200' + "%d.%m.%Y %H:%M", # '25.10.2006 14:30' + "%d-%B, %Y-yil %H:%M:%S", # '25-Oktabr, 2006-yil 14:30:59' + "%d-%B, %Y-yil %H:%M:%S.%f", # '25-Oktabr, 2006-yil 14:30:59.000200' + "%d-%B, %Y-yil %H:%M", # '25-Oktabr, 2006-yil 14:30' +] +DECIMAL_SEPARATOR = "," +THOUSAND_SEPARATOR = "\xa0" # non-breaking space +NUMBER_GROUPING = 3 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/vi/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/conf/locale/vi/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..43a2a61928d77bcfdb2122edf600d5c698e1f231 GIT binary patch literal 17396 zcmb`N3!Gh5eeX94i{5f=wcp=bYoBvw zG6BNJ{mFm6d#}CL+UxOO|Nnojlc!&M{5Fs4#A7_~&2YslJ?~2HKm2N?dfv}|%k!4P zXW@mg`*hE{2-cwT?}4YnN1%#4311I?2ww|-?b2WS2K)XjcmnD39lIUhNaq3Tc)%3Xg|lF8ykF63^E`n(o~QRsU`9M0h)V9o+8Tf8M2k8LE9>gD1l$T>5w6 z44!`kUjcss)t_I%x5C%G(euuR^Pt|ZgL=On>U$|X4Soo!T{lAI+va#DRKA^1?c5Fd z=RLq5wf|A5a(@r?{%NTE--R0AA3^o!KcVu!`V2e%XF%oafak*5Q03RbSHUZx+A#!E zSc88Ie*j0|HE;5~t?(D{GjPlQ@VtBAEGGF9_!zttp7IvYyBIEq42ib|s=s$Zigf0jd3#4EY?*FcTutq_&-{uG`AzYH}l&p`G2r;h&t z`Gj}OnN}~(gvxg|RDZjm>Ny{F!4**B^dWd0{D^!07*zh7;QQe=sPFvD@p-6n$NF|$ zPl9?r%{`wE_1!l^>CZXv6gU?u{Zgp!Erptw6;SfF_EO;l>I(h_3uYU?P9^Tune!T&z zTt9pb+~By$@eiQ-|7oc9?S#_DJy7lZnoEBa9?SFN?)h7AG0#uKIdJA#v>C32zYPz; z9{4O=0O!+4^=kxbe0~qAy*EI$_ft^c-v>1wUw~@YU%K>fz~gv+(xpEI7xDZ(xCG9c zX~!#ts^@B``S=)A|8H~e?}ci|{qFe-Q0wihQ2C#RD*t0By?YLtb#adU{+Uqa&w|SL z+m7>~^sO7702e#1fG6_28Xgbd=lDUWb(@F!{7 z6Yl-bq1y4h<1y#jawowPNq-fT9=#sE0=^Z#51s>6-?fmU-bbOvX*bmTJPh^yN1)38 zEmXgraOqD&mH!S@d%h1<{+EuYcG%~)InH-n;`n~3auq1Oyw0WH>iAjr{)x)dUKxR#ZcvzL;2O;f%@JMR6DPMvX7sD>gT}=_fb#_zx+PD z0`|fa4DJ`Y2x^nM66e{Xt+wJ(=KT)X!HsC=8D?95I$ z6MhAr4ZjCf?qrk=7wyf47sAWoYv2v=GyRj(exA=XAJ) z=kwvK;MGw2_=k?S!BctuGz{VApvu4IeEXfVq2A}9*7GIsw_qPseR-(-S3$M!_o3Q* z8&v+!!sFmWPy$YQCR?8mD6}psmn{`tCX?z1RTN@2lYJ;b!-Iv*VvY zeSbStx%=JoSK#Y-{yV7eeb>GJFQ|5(!XWGYnNaP12h{j4f*Pj~>bn)k5vcE6H?^7AAr*T zjgBdl|GFA#oNk92&z(^1e*kJc#^GxCSCA%nZ@w5C1J^)}_c!4>c+w>{ZV8~u-3d>J zyP?Lt0pA3lfU5uB;Tz#Eq2~Mb@3QM{Ce-`6ju*iy&kNuvydP>@J1@24IS)#odf*vw z6;yvWLVfpIsBzy0eYg{9ybrnePrCR23N^mJf*Ob1yDht62hU5O`ZEk=7q&q4^H!+# z-UBsX_d%7vAF5qnhFYh84Ri2WsP%m2du)3ygDOAdScB5{55c#<>!9A><#;cA1J8S* z^zZ9X-~BdJKfeRjzkh>U;0YLCt@E28pY}chHSXVp%J(Cv`hVqkBEg^Z;Z&&gcLr4X zx487TL+Me@JzwCSdmL9l^?xnYIOSb>)jf|v)&Eh)t?vCD?s+FvxqVRW`*WB67*xIg z==go8e9u9(M~g(yGoa@Ebg20`52{=@JPs~_(x2sy15o9!bk9Y{VaGAYk2v1wcpKFB z?u4p;7gRle=J*w;d3gkC{JsJ8-ETp)@1Nl@@P0&>){?GYAS%~DYRD2q*R{w&WES!a zvJ27mw-(-?IBtT+BAVmu>gVQd?%`ax0{JoWX#}&~ymoW<9HMd8TKYJ02$8<}h}!)S zqK5wsSc+)vo{8xCf`!KtHG5?}Zbqc1|BlQ>W+T6Yv|o$dL&;I=SJ#J;dyp%T4T!F- z$e$wL*8|rL$lH+}$j^~KME(HjM7ANiP!aDvy5ZW0$nNR7$imo9-M$~mBgfLetKfH$ z3lLo&LjDMuiF^~$^=9NO}$mPhVkRqb%N#qB}Cy}osvMIVwu<-s1 zE=L|fhFzNQF!F!fo^|^H;R`^9^4f0Dw>+3&}?9$nmt^s7o+*zCY|GB>l`5f}U zke?#ib%2}iAYXF{?}NunsB4)^yAA$5Qb4|p{BL9s`4X}d`Jc$|BNrmNzKzU7PSFEb zuZ8z(_zGm)J^vG2h5RnE7SWX=C%As-`6=Z0bi;Lyh4&NqRiq19fV>;|Eb@lf9-fN+=HCtp1%j5M?Qv> zk(-bkk&hrD(t&&)X}@Cka5DTW>?l{OL-pbH>DX}CS?i*rO0^J{*T+GHXMZ$GOMY64Y80PbGAJiuP#E*WO;Ig< z$pvfFd3ecMv^nf7_=96xs!(FEV}J0{$dHSy>jv#j?q=IZOtFXd?x@o}k9mdOcw|Na{6}>j~o``MsW~ z=yzObhO^U;;xsIViPuxDmP4xQSj3cui9e8_7pTSJpj-<(r+q!kzErN2)!1aJnXdFC z!RE*`Y*jT$X>C}eAxW54X+#pGG_~2}o_e_$m~QpdlZrC-25C^HxxJ+zF7imT60f&f zsRX%NI2NBw9?K!BvoK1+d|FM$_-rBE6r!U^=*QI*T`gBfX$~V6c6kfy zDIZ=`38Jze6beaLt9jYfEQ)J&3Z?3ra*VE2f=w)df@{QZImlD%%Pq;G zJDQ?VF_KBZ6sVP9s})sL@doB}&(uSJ=Pl znpG=RN3#r5nszibwm0ylR_TW9H`m4&uJEXu$jmThZKG#Po8-3s)utUXauso2ntzsS zEc+H-RmUo%)v2{kRt7ub6fd*#Us73pBk-}^sbAgToAPGa+H`A$^bPyW`>5bATQxF2 zGcVJ=qrK!g{{`|K@!gu$E2dVds9?IZ*)p9|Uxe+pZ|Y0uYNjSnSC1KqR>sj1&dC|& zEVUY!$NYkX^>%&HAu zY?Q;>a%lee!vRsk;wUx_cyU>-CNBEJGKrawSd77pim|^u9P>L=0hW{LBG$k!(3}JZ zERSWr(CID4N#P_GCy_+43o!0^aUK62(v}gNc(oRq7;F7-xsH?XtXX$6f@=u|8H>R% zAJl8goi7Kqnv2J}j6Yhx!PbN#8t>iZEkSYe8h|BXH7VMgq@w3ULC;c#B^>pZ;@u)| zX`Lv+IOJukG8OXLb${Z&@Y4OD~gS)PNF3X5NyZhh!oH)4gRb&=8X{ z!&nb^ZB=@hD*TR_9pZYc^_{g&%?lAhjYL(&FqOPzcmcKlvLH4Sd09Yoq^RMtI-dWs zdK`MogE$Tf0o)u6mAvJp3XXj_vqZ5KK{}%1D+qGx1PHpVZ^HKzEEZLNA1;?B>qQ?? z$QV-LE*{IJ)f^+{<}<3swNf<98^V!NBr>Ue%w`_}Z@w*R>m%ktG|`|~HLYJs977v*^_ciIAij_S%0Cm_p~#12ZYfNVDT^}keV_G^k5I#c z6665=QCwTCK8TY+L%WWU?Dv+!{E+!3s#`6X21w7Vcx4(w#85G1D+;A2e?_tM`6Hto~U zX4@|`fH0m=vJZoEOM|^0UO+_5`b{HFg6dVHVEw&Lz|;n6g%KJ>JN^$XgwZ z`h!u71vm5Pt*){pwN_WxYi8>EgVaOniPl?xSl0Xp@~imGe5o1{Pit{0*3y_-t18Ws zD`3EzYsTfKTSus6K!Loi@}<@@oLa^1$G)r4jy^^y;wh@2qgtLUIGhJItv^Cx`-0(` z*I%xV1VaX)>2QC!&L*xtY-1Ak4eMQiTI=-sCyiaUee6&9Ox~AoqrNoJGCooTb((|0 z(HM>fCAM-fENJrj$7J}a39~j3RM@c&u%HreAf!QcuqpKznutGP%d}WUW4Oc0a5~n- zOYY6`^RboMNO2Z1h*KFl!n?R$E>C(z`GlYhSA*ReDDmYI+kLfofUv|HNP+^IRgH<- zve6u1H;mX!^<+rhA>Q%U6e{&3_0|j}f!T0-YvQ4}IvRUxhH?0Xrv9)oETTT@m{~Vt z)w+*aAq!I`OX^ma*%!vX$*x5b7)w-V_Sv?YI=nSWq3*3U5r3wQNv1_p)YV%X#^L6= zJZ|$OU~Lqp+Pt75>#*hs>Y~1{3(IuseN1rBg-s3y@#`a9Y;G{j$J+yjDQWfM)NE{l zrzR0LO-;i89+o5zJh^(~k0&QtPdPPhYC)X9)ar2uQ7lgu&^yH3ozP~Ob1()+upUFUDw(Z=vV8p>Dk)SGAGxTq+You#sx1JPQ0LA^f(mo zHiU!TMhwTsdKrnm3Jb5ov{#}+92HBc7gt%9adpJ2=2Nelc*D{Hf@5zitj&t6v&cLc zdaIJ^Mhs(aSs}MpF0&eU`vvMPR%fgZhdHsy_0@_|A=gtc)^Y>YZhywA%X6#45yI4J zoYVP9w?A*ryg9i!7v$#7_vg*+oT0TbD$7^K-8q(t$>SZmJl!t`Bh1{UWoY~|CpHiSuTkqd6R{R;=9 zwAs>bepvjHkMx;_Y$K+|?(>?~P6NgV$GH z?4)!cIkb;KXKqLzj1rMmDW5?Z6@^uoAQUYw;mh!<;p=W(U4>`n& zPK-a4H@b0fYh#=)w59Y1Q78KndJ&W3OMXW$)1Q_m4qWfs%(Hy5WF?l{3C=gRM}FM6 zyQ*2G!p>HMsydeCv9uE)6|{bZ*zmJ4EbLe1LkaV-SK-jV%}=vcjTo)_ryL8Ch8uX7{8z17g!s0UZ4_k;dU?d}hvUbqFxWu?zSNBVY zwzm$CRpVaUs`d_b{f4SEYxfR%**0I3My^X;8{bjU#O|nOt;S5YCuIklZHqvA=USDexTxss{pntn%2f9#vKHr9O3 zHea|h+(T@Y$JrjY7Omfy`kfc6jixc62W~!^8dusS$HMtk%8pLU$ry!Jzd2ZF&ttV? zQj%;=b0wK`Dq68)*e^48&C=6kvIf{3l(q_FUz?i$eE;w~w$N7_O!fbVs(Cf1k&WE{hsCxkF!! z3BvVHJ-qep>FvR-S#~Vd=S+mOm!lvP5o!0<{Lm`Y>)zPd%7_~IXp94=Ntusy$S0K5@A00tr>uwr(eT zM6Kgy6$_$GhqhzY4?Aw=L-z)BvHiq3`_i&FhlhSJ7ZagvigJPV@ot$kt6pBJ2AY+d z^1jnWLg|Nfe88YOSIcW>PG0PYI{Ws5D5vITkBvJsHJ;l{GbSwcdvKCuv_b3z*$v9z z#xy(2Zateb?dBt{Kd0l4R&)`&j(7w@4-zwJRiO!Aq(43U7{WoC2Yo4QPiL%*oaE`lu{jldr8@nqeV%e#Hpz%d#>D*>1 zVWT#}s*jIcM{5nXm2b~(t$w>XXn%`>VI>vSxM1Cx4<>34dpO$z)ASe4>6;kQ7$N$T z5LsD!RAE-Sf5C8`R@t*fkXRjP>TcHLntltTadPw z$-1S^m>8`uv(b`Q(yuCJ``gKhe+APw?e^To$wytK|MCiEzXBY&L9XTYzhOyzjq_6#l_0w*JNUWuJE-;i=yWVd+Xq@{^cvChb zd*kA)%tXrPlbpwz@n0Cw;#R#XxaB7=AuMdukeFuQs71_fwE3OYb#}M8HjB5i$Y$4A zCK+fs>kFEjDfQZp8R6#rc0WfFxv~fpt;>FHaQ>uC@7!=3S8hgQQY}M-ADr-%7|(1! z_!7RiqP-zZ^Zsm-Ue0&jqP?g&I#;mo&hbmkDH%J$$un|?-e%I_T5k>=ro=JMudGuz#RH_)`W z>A_uWu6q?gev$}|t-4miG?lXn{F2>UcADt+UK`z}lOL{V?9So;a;1n^Lnm!EFvb2i zJ+FLj%W6q|a61RL$|%#r_8(K6&l?DG{MP|Cz}xe=6veZ@s~p^_pp%g9AjO)at!S&Q zcg;xDu4RRH?0r8O7ggxZ5< zEU1f8yZm=HxrDA04`scT!lXD|jJs7CYIS)PFsLlda`U{6)qil8zkK4renQ5{L4Mn> zIav|=s}848oW%r_9hO;Bm^yPrOK@%%W62mQX>e)MGHxl6d_s9%JGEJqE>;n~KR;D>bYl)K-@)qhj{+3(EbZg}l zQ-3A@oxu((@wFM=`Q8;8<#mC67wm29w?7@Zh0p$iZ03mdLd~VQn>(+0+q#?EOk-?z zaE52|vY$u&?fszasHs8GLv}y6RdVi}W+fLj@7kJ>Hnum5Rm{|L2x@+7G_|(fnz_ur zaFh+oYMxX_pZ#1`WpAmmC-z1fcV`J2O*>544abTusd>{3g4!c}TdXZQUTMM^bmhK^ m*TX8>X7`cJ!JFHxhFHqFQ~N`Y``ksE#aT9voW-rP#QzP24wixd literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/vi/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/conf/locale/vi/LC_MESSAGES/django.po new file mode 100644 index 0000000000..a0e6eb43f3 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/vi/LC_MESSAGES/django.po @@ -0,0 +1,1234 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Claude Paroz , 2020 +# Jannis Leidel , 2011 +# Anh Phan , 2013 +# Thanh Le Viet , 2013 +# Tran , 2011 +# Tran Van , 2011,2013 +# Vuong Nguyen , 2011 +# xgenvn , 2014 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-05-19 20:23+0200\n" +"PO-Revision-Date: 2020-07-14 21:42+0000\n" +"Last-Translator: Transifex Bot <>\n" +"Language-Team: Vietnamese (http://www.transifex.com/django/django/language/" +"vi/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: vi\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +msgid "Afrikaans" +msgstr "Afrikaans" + +msgid "Arabic" +msgstr "Tiếng Ả Rập" + +msgid "Algerian Arabic" +msgstr "" + +msgid "Asturian" +msgstr "Asturian" + +msgid "Azerbaijani" +msgstr "Tiếng Azerbaijan" + +msgid "Bulgarian" +msgstr "Tiếng Bun-ga-ri" + +msgid "Belarusian" +msgstr "Tiếng Bê-la-rút" + +msgid "Bengali" +msgstr "Tiếng Bengal" + +msgid "Breton" +msgstr "Tiếng Breton" + +msgid "Bosnian" +msgstr "Tiếng Bosnia" + +msgid "Catalan" +msgstr "Tiếng Catala" + +msgid "Czech" +msgstr "Tiếng Séc" + +msgid "Welsh" +msgstr "Xứ Wales" + +msgid "Danish" +msgstr "Tiếng Đan Mạch" + +msgid "German" +msgstr "Tiếng Đức" + +msgid "Lower Sorbian" +msgstr "" + +msgid "Greek" +msgstr "Tiếng Hy Lạp" + +msgid "English" +msgstr "Tiếng Anh" + +msgid "Australian English" +msgstr "Tiếng Anh ở Úc" + +msgid "British English" +msgstr "British English" + +msgid "Esperanto" +msgstr "Quốc Tế Ngữ" + +msgid "Spanish" +msgstr "Tiếng Tây Ban Nha" + +msgid "Argentinian Spanish" +msgstr "Argentinian Spanish" + +msgid "Colombian Spanish" +msgstr "" + +msgid "Mexican Spanish" +msgstr "Mexican Spanish" + +msgid "Nicaraguan Spanish" +msgstr "Tiếng Tây Ban Nha-Nicaragua" + +msgid "Venezuelan Spanish" +msgstr "Tiếng Vê-nê-du-ê-la" + +msgid "Estonian" +msgstr "Tiếng Estonia" + +msgid "Basque" +msgstr "Tiếng Baxcơ" + +msgid "Persian" +msgstr "Tiếng Ba Tư" + +msgid "Finnish" +msgstr "Tiếng Phần Lan" + +msgid "French" +msgstr "Tiếng Pháp" + +msgid "Frisian" +msgstr "Tiếng Frisco" + +msgid "Irish" +msgstr "Tiếng Ai-len" + +msgid "Scottish Gaelic" +msgstr "" + +msgid "Galician" +msgstr "Tiếng Pháp cổ" + +msgid "Hebrew" +msgstr "Tiếng Do Thái cổ" + +msgid "Hindi" +msgstr "Tiếng Hindi" + +msgid "Croatian" +msgstr "Tiếng Croatia" + +msgid "Upper Sorbian" +msgstr "" + +msgid "Hungarian" +msgstr "Tiếng Hung-ga-ri" + +msgid "Armenian" +msgstr "" + +msgid "Interlingua" +msgstr "Tiếng Khoa học Quốc tế" + +msgid "Indonesian" +msgstr "Tiếng In-đô-nê-xi-a" + +msgid "Igbo" +msgstr "" + +msgid "Ido" +msgstr "Ido" + +msgid "Icelandic" +msgstr "Tiếng Aixơlen" + +msgid "Italian" +msgstr "Tiếng Ý" + +msgid "Japanese" +msgstr "Tiếng Nhật Bản" + +msgid "Georgian" +msgstr "Georgian" + +msgid "Kabyle" +msgstr "" + +msgid "Kazakh" +msgstr "Tiếng Kazakh" + +msgid "Khmer" +msgstr "Tiếng Khơ-me" + +msgid "Kannada" +msgstr "Tiếng Kannada" + +msgid "Korean" +msgstr "Tiếng Hàn Quốc" + +msgid "Kyrgyz" +msgstr "" + +msgid "Luxembourgish" +msgstr "Tiếng Luxembourg" + +msgid "Lithuanian" +msgstr "Tiếng Lat-vi" + +msgid "Latvian" +msgstr "Ngôn ngữ vùng Bantic" + +msgid "Macedonian" +msgstr "Tiếng Maxêđôni" + +msgid "Malayalam" +msgstr "Tiếng Malayalam" + +msgid "Mongolian" +msgstr "Tiếng Mông Cổ" + +msgid "Marathi" +msgstr "Marathi" + +msgid "Burmese" +msgstr "My-an-ma" + +msgid "Norwegian Bokmål" +msgstr "" + +msgid "Nepali" +msgstr "Nê-pan" + +msgid "Dutch" +msgstr "Tiếng Hà Lan" + +msgid "Norwegian Nynorsk" +msgstr "Tiếng Na Uy Nynorsk" + +msgid "Ossetic" +msgstr "Ô-sét-ti-a" + +msgid "Punjabi" +msgstr "Punjabi" + +msgid "Polish" +msgstr "Tiếng Ba lan" + +msgid "Portuguese" +msgstr "Tiếng Bồ Đào Nha" + +msgid "Brazilian Portuguese" +msgstr "Brazilian Portuguese" + +msgid "Romanian" +msgstr "Tiếng Ru-ma-ni" + +msgid "Russian" +msgstr "Tiếng Nga" + +msgid "Slovak" +msgstr "Ngôn ngữ Slô-vac" + +msgid "Slovenian" +msgstr "Tiếng Slôven" + +msgid "Albanian" +msgstr "Tiếng Albania" + +msgid "Serbian" +msgstr "Tiếng Xéc-bi" + +msgid "Serbian Latin" +msgstr "Serbian Latin" + +msgid "Swedish" +msgstr "Tiếng Thụy Điển" + +msgid "Swahili" +msgstr "Xì-qua-hi-đi thuộc ngôn ngữ Bantu" + +msgid "Tamil" +msgstr "Tiếng Ta-min" + +msgid "Telugu" +msgstr "Telugu" + +msgid "Tajik" +msgstr "" + +msgid "Thai" +msgstr "Tiếng Thái" + +msgid "Turkmen" +msgstr "" + +msgid "Turkish" +msgstr "Tiếng Thổ Nhĩ Kỳ" + +msgid "Tatar" +msgstr "Tác-ta" + +msgid "Udmurt" +msgstr "Udmurt" + +msgid "Ukrainian" +msgstr "Tiếng Ukraina" + +msgid "Urdu" +msgstr "Urdu" + +msgid "Uzbek" +msgstr "" + +msgid "Vietnamese" +msgstr "Tiếng Việt Nam" + +msgid "Simplified Chinese" +msgstr "Tiếng Tàu giản thể" + +msgid "Traditional Chinese" +msgstr "Tiếng Tàu truyền thống" + +msgid "Messages" +msgstr "" + +msgid "Site Maps" +msgstr "Bản đồ trang web" + +msgid "Static Files" +msgstr "Tập tin tĩnh" + +msgid "Syndication" +msgstr "Syndication" + +msgid "That page number is not an integer" +msgstr "" + +msgid "That page number is less than 1" +msgstr "" + +msgid "That page contains no results" +msgstr "" + +msgid "Enter a valid value." +msgstr "Nhập một giá trị hợp lệ." + +msgid "Enter a valid URL." +msgstr "Nhập một URL hợp lệ." + +msgid "Enter a valid integer." +msgstr "Nhập một số nguyên hợp lệ." + +msgid "Enter a valid email address." +msgstr "Nhập địa chỉ email." + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" + +msgid "Enter a valid IPv4 address." +msgstr "Nhập một địa chỉ IPv4 hợp lệ." + +msgid "Enter a valid IPv6 address." +msgstr "Nhập địa chỉ IPv6 hợp lệ" + +msgid "Enter a valid IPv4 or IPv6 address." +msgstr "Nhập địa chỉ IPv4 hoặc IPv6 hợp lệ" + +msgid "Enter only digits separated by commas." +msgstr "Chỉ nhập chữ số, cách nhau bằng dấu phẩy." + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "Đảm bảo giá trị này là %(limit_value)s (nó là %(show_value)s )." + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "Đảm bảo giá trị này là nhỏ hơn hoặc bằng với %(limit_value)s ." + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "Đảm bảo giá trị này lớn hơn hoặc bằng với %(limit_value)s ." + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Giá trị này phải có ít nhất %(limit_value)d kí tự (hiện có %(show_value)d)" + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"Giá trị này chỉ có tối đa %(limit_value)d kí tự (hiện có %(show_value)d)" + +msgid "Enter a number." +msgstr "Nhập một số." + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "Đảm bảo rằng tối đa không có nhiều hơn %(max)s số." + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "Hãy chắc chắn rằng không có nhiều hơn %(max)s chữ số thập phân." + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "" +"Hãy chắc chắn rằng không có nhiều hơn %(max)s chữ số trước dấu phẩy thập " +"phân." + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" + +msgid "Null characters are not allowed." +msgstr "" + +msgid "and" +msgstr "và" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "%(model_name)s với thông tin %(field_labels)s đã tồn tại" + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "Giá trị %(value)r không phải là lựa chọn hợp lệ." + +msgid "This field cannot be null." +msgstr "Trường này không thể để trống." + +msgid "This field cannot be blank." +msgstr "Trường này không được để trắng." + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "%(model_name)s có %(field_label)s đã tồn tại." + +#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'. +#. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "%(field_label)s phải là duy nhất %(date_field_label)s %(lookup_type)s." + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "Trường thuộc dạng: %(field_type)s " + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "" + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "" + +msgid "Boolean (Either True or False)" +msgstr "Boolean (hoặc là Đúng hoặc là Sai)" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "Chuỗi (dài đến %(max_length)s ký tự )" + +msgid "Comma-separated integers" +msgstr "Các số nguyên được phân cách bằng dấu phẩy" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" + +msgid "Date (without time)" +msgstr "Ngày (không có giờ)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" + +msgid "Date (with time)" +msgstr "Ngày (có giờ)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "" + +msgid "Decimal number" +msgstr "Số thập phân" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" + +msgid "Duration" +msgstr "" + +msgid "Email address" +msgstr "Địa chỉ email" + +msgid "File path" +msgstr "Đường dẫn tắt tới file" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "" + +msgid "Floating point number" +msgstr "Giá trị dấu chấm động" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "" + +msgid "Integer" +msgstr "Số nguyên" + +msgid "Big (8 byte) integer" +msgstr "Big (8 byte) integer" + +msgid "IPv4 address" +msgstr "Địa chỉ IPv4" + +msgid "IP address" +msgstr "Địa chỉ IP" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "" + +msgid "Boolean (Either True, False or None)" +msgstr "Luận lý (Có thể Đúng, Sai hoặc Không cái nào đúng)" + +msgid "Positive big integer" +msgstr "" + +msgid "Positive integer" +msgstr "Số nguyên dương" + +msgid "Positive small integer" +msgstr "Số nguyên dương nhỏ" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "Slug(lên đến %(max_length)s)" + +msgid "Small integer" +msgstr "Số nguyên nhỏ" + +msgid "Text" +msgstr "Đoạn văn" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" + +msgid "Time" +msgstr "Giờ" + +msgid "URL" +msgstr "Đường dẫn URL" + +msgid "Raw binary data" +msgstr "Dữ liệu nhị phân " + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "" + +msgid "Universally unique identifier" +msgstr "" + +msgid "File" +msgstr "File" + +msgid "Image" +msgstr "Image" + +msgid "A JSON object" +msgstr "" + +msgid "Value must be valid JSON." +msgstr "" + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "" + +msgid "Foreign Key (type determined by related field)" +msgstr "Khóa ngoại (kiểu được xác định bởi trường liên hệ)" + +msgid "One-to-one relationship" +msgstr "Mối quan hệ một-một" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "" + +msgid "Many-to-many relationship" +msgstr "Mối quan hệ nhiều-nhiều" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr ":?.!" + +msgid "This field is required." +msgstr "Trường này là bắt buộc." + +msgid "Enter a whole number." +msgstr "Nhập một số tổng thể." + +msgid "Enter a valid date." +msgstr "Nhập một ngày hợp lệ." + +msgid "Enter a valid time." +msgstr "Nhập một thời gian hợp lệ." + +msgid "Enter a valid date/time." +msgstr "Nhập một ngày/thời gian hợp lệ." + +msgid "Enter a valid duration." +msgstr "" + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "" + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "Không có tập tin nào được gửi. Hãy kiểm tra kiểu mã hóa của biểu mẫu." + +msgid "No file was submitted." +msgstr "Không có tập tin nào được gửi." + +msgid "The submitted file is empty." +msgstr "Tập tin được gửi là rỗng." + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "Tên tệp tin có tối đa %(max)d kí tự (Hiện có %(length)d)" + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "Vui lòng gửi một tập tin hoặc để ô chọn trắng, không chọn cả hai." + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" +"Hãy tải lên một hình ảnh hợp lệ. Tập tin mà bạn đã tải không phải là hình " +"ảnh hoặc đã bị hư hỏng." + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "" +"Hãy chọn một lựa chọn hợp lệ. %(value)s không phải là một trong các lựa chọn " +"khả thi." + +msgid "Enter a list of values." +msgstr "Nhập một danh sách giá trị." + +msgid "Enter a complete value." +msgstr "" + +msgid "Enter a valid UUID." +msgstr "" + +msgid "Enter a valid JSON." +msgstr "" + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr ":" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "(Trường ẩn %(name)s) %(error)s" + +msgid "ManagementForm data is missing or has been tampered with" +msgstr "" + +#, python-format +msgid "Please submit %d or fewer forms." +msgid_plural "Please submit %d or fewer forms." +msgstr[0] "Vui lòng đệ trình %d hoặc ít các mẫu đơn hơn." + +#, python-format +msgid "Please submit %d or more forms." +msgid_plural "Please submit %d or more forms." +msgstr[0] "" + +msgid "Order" +msgstr "Thứ tự" + +msgid "Delete" +msgstr "Xóa" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "Hãy sửa các dữ liệu trùng lặp cho %(field)s ." + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "Hãy sửa các dữ liệu trùng lặp cho %(field)s, mà phải là duy nhất." + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"Hãy sửa các dữ liệu trùng lặp cho %(field_name)s mà phải là duy nhất cho " +"%(lookup)s tại %(date_field)s ." + +msgid "Please correct the duplicate values below." +msgstr "Hãy sửa các giá trị trùng lặp dưới đây." + +msgid "The inline value did not match the parent instance." +msgstr "" + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "" +"Hãy chọn một lựa chọn hợp lệ. Lựa chọn đó không phải là một trong các lựa " +"chọn khả thi." + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "" + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" + +msgid "Clear" +msgstr "Xóa" + +msgid "Currently" +msgstr "Hiện nay" + +msgid "Change" +msgstr "Thay đổi" + +msgid "Unknown" +msgstr "Chưa xác định" + +msgid "Yes" +msgstr "Có" + +msgid "No" +msgstr "Không" + +#. Translators: Please do not add spaces around commas. +msgid "yes,no,maybe" +msgstr "Có,Không,Có thể" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)d byte" + +#, python-format +msgid "%s KB" +msgstr "%s KB" + +#, python-format +msgid "%s MB" +msgstr "%s MB" + +#, python-format +msgid "%s GB" +msgstr "%s GB" + +#, python-format +msgid "%s TB" +msgstr "%s TB" + +#, python-format +msgid "%s PB" +msgstr "%s PB" + +msgid "p.m." +msgstr "p.m." + +msgid "a.m." +msgstr "a.m." + +msgid "PM" +msgstr "chiều" + +msgid "AM" +msgstr "sáng" + +msgid "midnight" +msgstr "Nửa đêm" + +msgid "noon" +msgstr "Buổi trưa" + +msgid "Monday" +msgstr "Thứ 2" + +msgid "Tuesday" +msgstr "Thứ 3" + +msgid "Wednesday" +msgstr "Thứ 4" + +msgid "Thursday" +msgstr "Thứ 5" + +msgid "Friday" +msgstr "Thứ 6" + +msgid "Saturday" +msgstr "Thứ 7" + +msgid "Sunday" +msgstr "Chủ nhật" + +msgid "Mon" +msgstr "Thứ 2" + +msgid "Tue" +msgstr "Thứ 3" + +msgid "Wed" +msgstr "Thứ 4" + +msgid "Thu" +msgstr "Thứ 5" + +msgid "Fri" +msgstr "Thứ 6" + +msgid "Sat" +msgstr "Thứ 7" + +msgid "Sun" +msgstr "Chủ nhật" + +msgid "January" +msgstr "Tháng 1" + +msgid "February" +msgstr "Tháng 2" + +msgid "March" +msgstr "Tháng 3" + +msgid "April" +msgstr "Tháng 4" + +msgid "May" +msgstr "Tháng 5" + +msgid "June" +msgstr "Tháng 6" + +msgid "July" +msgstr "Tháng 7" + +msgid "August" +msgstr "Tháng 8" + +msgid "September" +msgstr "Tháng 9" + +msgid "October" +msgstr "Tháng 10" + +msgid "November" +msgstr "Tháng 11" + +msgid "December" +msgstr "Tháng 12" + +msgid "jan" +msgstr "Tháng 1" + +msgid "feb" +msgstr "Tháng 2" + +msgid "mar" +msgstr "Tháng 3" + +msgid "apr" +msgstr "Tháng 4" + +msgid "may" +msgstr "Tháng 5" + +msgid "jun" +msgstr "Tháng 6" + +msgid "jul" +msgstr "Tháng 7" + +msgid "aug" +msgstr "Tháng 8" + +msgid "sep" +msgstr "Tháng 9" + +msgid "oct" +msgstr "Tháng 10" + +msgid "nov" +msgstr "Tháng 11" + +msgid "dec" +msgstr "Tháng 12" + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "Tháng 1." + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "Tháng 2." + +msgctxt "abbrev. month" +msgid "March" +msgstr "Tháng ba" + +msgctxt "abbrev. month" +msgid "April" +msgstr "Tháng tư" + +msgctxt "abbrev. month" +msgid "May" +msgstr "Tháng năm" + +msgctxt "abbrev. month" +msgid "June" +msgstr "Tháng sáu" + +msgctxt "abbrev. month" +msgid "July" +msgstr "Tháng bảy" + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "Tháng 8." + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "Tháng 9." + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "Tháng 10." + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "Tháng 11." + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "Tháng 12." + +msgctxt "alt. month" +msgid "January" +msgstr "Tháng một" + +msgctxt "alt. month" +msgid "February" +msgstr "Tháng hai" + +msgctxt "alt. month" +msgid "March" +msgstr "Tháng ba" + +msgctxt "alt. month" +msgid "April" +msgstr "Tháng tư" + +msgctxt "alt. month" +msgid "May" +msgstr "Tháng năm" + +msgctxt "alt. month" +msgid "June" +msgstr "Tháng sáu" + +msgctxt "alt. month" +msgid "July" +msgstr "Tháng bảy" + +msgctxt "alt. month" +msgid "August" +msgstr "Tháng tám" + +msgctxt "alt. month" +msgid "September" +msgstr "Tháng Chín" + +msgctxt "alt. month" +msgid "October" +msgstr "Tháng Mười" + +msgctxt "alt. month" +msgid "November" +msgstr "Tháng mười một" + +msgctxt "alt. month" +msgid "December" +msgstr "Tháng mười hai" + +msgid "This is not a valid IPv6 address." +msgstr "" + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "" + +msgid "or" +msgstr "hoặc" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr ", " + +#, python-format +msgid "%d year" +msgid_plural "%d years" +msgstr[0] "%d năm" + +#, python-format +msgid "%d month" +msgid_plural "%d months" +msgstr[0] "%d tháng" + +#, python-format +msgid "%d week" +msgid_plural "%d weeks" +msgstr[0] "%d tuần" + +#, python-format +msgid "%d day" +msgid_plural "%d days" +msgstr[0] "%d ngày" + +#, python-format +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "%d giờ" + +#, python-format +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "%d phút" + +msgid "Forbidden" +msgstr "" + +msgid "CSRF verification failed. Request aborted." +msgstr "" + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your Web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" + +msgid "More information is available with DEBUG=True." +msgstr "" + +msgid "No year specified" +msgstr "Không có năm xác định" + +msgid "Date out of range" +msgstr "" + +msgid "No month specified" +msgstr "Không có tháng xác định" + +msgid "No day specified" +msgstr "Không có ngày xác định" + +msgid "No week specified" +msgstr "Không có tuần xác định" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "Không có %(verbose_name_plural)s phù hợp" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" +"%(verbose_name_plural)s trong tương lai không có sẵn vì %(class_name)s." +"allow_future là False." + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "Không có %(verbose_name)s tìm thấy phù hợp với truy vấn" + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "" + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "Trang không hợp lệ (%(page_number)s): %(message)s" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "" + +msgid "Directory indexes are not allowed here." +msgstr "Tại đây không cho phép đánh số chỉ mục dành cho thư mục." + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "" + +#, python-format +msgid "Index of %(directory)s" +msgstr "Index của %(directory)s" + +msgid "Django: the Web framework for perfectionists with deadlines." +msgstr "" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" + +msgid "The install worked successfully! Congratulations!" +msgstr "" + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not configured any " +"URLs." +msgstr "" + +msgid "Django Documentation" +msgstr "" + +msgid "Topics, references, & how-to’s" +msgstr "" + +msgid "Tutorial: A Polling App" +msgstr "" + +msgid "Get started with Django" +msgstr "" + +msgid "Django Community" +msgstr "" + +msgid "Connect, get help, or contribute" +msgstr "" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/vi/__init__.py b/venv/lib/python3.12/site-packages/django/conf/locale/vi/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/vi/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/vi/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7457a0e71e3c97be47625f4eada6cc4d03bb3ab6 GIT binary patch literal 198 zcmX@j%ge<81o5sX(m?cM5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!O4ZNE&rQ|OP0Yy6 zFHO;RNiEZNN=(kybEFQ_cZ$j>v@Gc?jK&MZmQEdVM^ zOiwM=Pssu+OwP|s)6dCIPRvQwFU!=AkI&4@EQycTE2#X%VUwGmQks)$SHudml@W-G PL5z>gjEsy$%s>_Z$96P| literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/vi/__pycache__/formats.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/vi/__pycache__/formats.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1b1c6047d8395c8d058aba781ec4b2029e591e9f GIT binary patch literal 563 zcmah`yGjE=6rIgO^B_+RL~ItcFkmvMl_J9GZb-mnWwRC;29`}`^U!^SydbFrKf+c^ zze5YbCU#3&e;{DDm9uJ0th~jYbI+V}F2lS=A|XIa5ndXO2Y`2Xm>2T{K6WU$0|X#I z7{m|{@(?fb5+CvrKk}0mv_e+VDhZ&#D3}QiSSrV5+?d{Mb*jMz%T*y0$OqFuM+uD`$e!Fwez3Jox>Z+o4G!C|VRa3)-^+DIPT<(E$UxUlx^cSH z{mb4lZ8I;!FtZSd?cap$=o)Rw!<(4BzA*s_do4WyaeIB!#p$gHNX_CPMY)8XO22_* IH%bFO0Vx5e(f|Me literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/vi/formats.py b/venv/lib/python3.12/site-packages/django/conf/locale/vi/formats.py new file mode 100644 index 0000000000..7b7602044a --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/vi/formats.py @@ -0,0 +1,21 @@ +# This file is distributed under the same license as the Django package. +# +# The *_FORMAT strings use the Django date format syntax, +# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date +DATE_FORMAT = r"\N\gà\y d \t\há\n\g n \nă\m Y" +TIME_FORMAT = "H:i" +DATETIME_FORMAT = r"H:i \N\gà\y d \t\há\n\g n \nă\m Y" +YEAR_MONTH_FORMAT = "F Y" +MONTH_DAY_FORMAT = "j F" +SHORT_DATE_FORMAT = "d-m-Y" +SHORT_DATETIME_FORMAT = "H:i d-m-Y" +# FIRST_DAY_OF_WEEK = + +# The *_INPUT_FORMATS strings use the Python strftime format syntax, +# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior +# DATE_INPUT_FORMATS = +# TIME_INPUT_FORMATS = +# DATETIME_INPUT_FORMATS = +DECIMAL_SEPARATOR = "," +THOUSAND_SEPARATOR = "." +# NUMBER_GROUPING = diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/zh_Hans/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/conf/locale/zh_Hans/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..55517ea7b6ef216d6aba49fc926fe16d9ab3d504 GIT binary patch literal 26927 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
    N7C&0?)j9b5rk7%&QcJRx75NR$O0$ zL-OcUJgLOyFxRgJ|6i2+B7*WmD80sQY(PF8a#wMf_U{E^O@AU~bQ6{mck$RV{6)*= zO%fkMY?J@3CErR7V{L1bPJf70uD_AeqD!yOl#oJl=|o1mqL=~G$#ru7gd$qG>Tf_7 zLMFeY?L^sQ%KFy^zUQ38_!M~vT+Rj01KxaqBr3QJxuck!MoLtIWF!-m;m)!H8ZRvJadhP}rjBGT_!RnH? ztLD|h*;a{mo30bZ_4I`gTxx3N>CUsoQnm|, 2017-2018 +# lanbla , 2021 +# Daniel Duan , 2013 +# Fan Xu , 2022 +# Ford Guo , 2022 +# Huanqun Yang, 2022 +# jack yang, 2023 +# jamin M , 2019 +# Jannis Leidel , 2011 +# Kevin Sze , 2012 +# Lele Long , 2011,2015,2017 +# Le Yang , 2018 +# li beite , 2020 +# Liping Wang , 2016-2017 +# matthew Yip , 2020 +# mozillazg , 2016 +# Ronald White , 2014 +# Lemon Li , 2013 +# Ray Wang , 2017 +# slene , 2011 +# Sun Liwen , 2014 +# Suntravel Chris , 2019 +# Veoco , 2021 +# Liping Wang , 2016 +# Wentao Han , 2018 +# wolf ice , 2020 +# Xiang Yu , 2014 +# Jeff Yin , 2013 +# Zhengyang Wang , 2017 +# ced773123cfad7b4e8b79ca80f736af9, 2011-2012 +# Ziya Tang , 2018 +# 付峥 , 2018 +# LatteFang <370358679@qq.com>, 2020 +# Kevin Sze , 2012 +# 高乐喆 , 2023 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-09-18 11:41-0300\n" +"PO-Revision-Date: 2023-12-25 06:49+0000\n" +"Last-Translator: jack yang, 2023\n" +"Language-Team: Chinese (China) (http://app.transifex.com/django/django/" +"language/zh_CN/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: zh_CN\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +msgid "Afrikaans" +msgstr "南非荷兰语" + +msgid "Arabic" +msgstr "阿拉伯语" + +msgid "Algerian Arabic" +msgstr "阿尔及利亚的阿拉伯语" + +msgid "Asturian" +msgstr "阿斯图里亚斯" + +msgid "Azerbaijani" +msgstr "阿塞拜疆语" + +msgid "Bulgarian" +msgstr "保加利亚语" + +msgid "Belarusian" +msgstr "白俄罗斯语" + +msgid "Bengali" +msgstr "孟加拉语" + +msgid "Breton" +msgstr "布雷顿" + +msgid "Bosnian" +msgstr "波斯尼亚语" + +msgid "Catalan" +msgstr "加泰罗尼亚语" + +msgid "Central Kurdish (Sorani)" +msgstr "中部库尔德语(Sorani)" + +msgid "Czech" +msgstr "捷克语" + +msgid "Welsh" +msgstr "威尔士语" + +msgid "Danish" +msgstr "丹麦语" + +msgid "German" +msgstr "德语" + +msgid "Lower Sorbian" +msgstr "下索布" + +msgid "Greek" +msgstr "希腊语" + +msgid "English" +msgstr "英语" + +msgid "Australian English" +msgstr "澳大利亚英语" + +msgid "British English" +msgstr "英国英语" + +msgid "Esperanto" +msgstr "世界语" + +msgid "Spanish" +msgstr "西班牙语" + +msgid "Argentinian Spanish" +msgstr "阿根廷西班牙语" + +msgid "Colombian Spanish" +msgstr "哥伦比亚西班牙语" + +msgid "Mexican Spanish" +msgstr "墨西哥西班牙语" + +msgid "Nicaraguan Spanish" +msgstr "尼加拉瓜西班牙语" + +msgid "Venezuelan Spanish" +msgstr "委内瑞拉西班牙语" + +msgid "Estonian" +msgstr "爱沙尼亚语" + +msgid "Basque" +msgstr "巴斯克语" + +msgid "Persian" +msgstr "波斯语" + +msgid "Finnish" +msgstr "芬兰语" + +msgid "French" +msgstr "法语" + +msgid "Frisian" +msgstr "夫里斯兰语" + +msgid "Irish" +msgstr "爱尔兰语" + +msgid "Scottish Gaelic" +msgstr "苏格兰盖尔语" + +msgid "Galician" +msgstr "加利西亚语" + +msgid "Hebrew" +msgstr "希伯来语" + +msgid "Hindi" +msgstr "北印度语" + +msgid "Croatian" +msgstr "克罗地亚语" + +msgid "Upper Sorbian" +msgstr "上索布" + +msgid "Hungarian" +msgstr "匈牙利语" + +msgid "Armenian" +msgstr "亚美尼亚语" + +msgid "Interlingua" +msgstr "国际语" + +msgid "Indonesian" +msgstr "印尼语" + +msgid "Igbo" +msgstr "伊博" + +msgid "Ido" +msgstr "简化伊多语" + +msgid "Icelandic" +msgstr "冰岛语" + +msgid "Italian" +msgstr "意大利语" + +msgid "Japanese" +msgstr "日语" + +msgid "Georgian" +msgstr "格鲁吉亚语" + +msgid "Kabyle" +msgstr "卡拜尔语" + +msgid "Kazakh" +msgstr "哈萨克语" + +msgid "Khmer" +msgstr "高棉语" + +msgid "Kannada" +msgstr "埃纳德语" + +msgid "Korean" +msgstr "韩语" + +msgid "Kyrgyz" +msgstr "吉尔吉斯坦语" + +msgid "Luxembourgish" +msgstr "卢森堡语" + +msgid "Lithuanian" +msgstr "立陶宛语" + +msgid "Latvian" +msgstr "拉脱维亚语" + +msgid "Macedonian" +msgstr "马其顿语" + +msgid "Malayalam" +msgstr "马来亚拉姆语" + +msgid "Mongolian" +msgstr "蒙古语" + +msgid "Marathi" +msgstr "马拉地语" + +msgid "Malay" +msgstr "马来语" + +msgid "Burmese" +msgstr "缅甸语" + +msgid "Norwegian Bokmål" +msgstr "挪威博克马尔" + +msgid "Nepali" +msgstr "尼泊尔语" + +msgid "Dutch" +msgstr "荷兰语" + +msgid "Norwegian Nynorsk" +msgstr "新挪威语" + +msgid "Ossetic" +msgstr "奥塞梯语" + +msgid "Punjabi" +msgstr "旁遮普语 " + +msgid "Polish" +msgstr "波兰语" + +msgid "Portuguese" +msgstr "葡萄牙语" + +msgid "Brazilian Portuguese" +msgstr "巴西葡萄牙语" + +msgid "Romanian" +msgstr "罗马尼亚语" + +msgid "Russian" +msgstr "俄语" + +msgid "Slovak" +msgstr "斯洛伐克语" + +msgid "Slovenian" +msgstr "斯洛文尼亚语" + +msgid "Albanian" +msgstr "阿尔巴尼亚语" + +msgid "Serbian" +msgstr "塞尔维亚语" + +msgid "Serbian Latin" +msgstr "塞尔维亚拉丁语" + +msgid "Swedish" +msgstr "瑞典语" + +msgid "Swahili" +msgstr "斯瓦西里语" + +msgid "Tamil" +msgstr "泰米尔语" + +msgid "Telugu" +msgstr "泰卢固语" + +msgid "Tajik" +msgstr "塔吉克语" + +msgid "Thai" +msgstr "泰语" + +msgid "Turkmen" +msgstr "土库曼人" + +msgid "Turkish" +msgstr "土耳其语" + +msgid "Tatar" +msgstr "鞑靼语" + +msgid "Udmurt" +msgstr "乌德穆尔特语" + +msgid "Uyghur" +msgstr "维吾尔语" + +msgid "Ukrainian" +msgstr "乌克兰语" + +msgid "Urdu" +msgstr "乌尔都语" + +msgid "Uzbek" +msgstr "乌兹别克语" + +msgid "Vietnamese" +msgstr "越南语" + +msgid "Simplified Chinese" +msgstr "简体中文" + +msgid "Traditional Chinese" +msgstr "繁体中文" + +msgid "Messages" +msgstr "消息" + +msgid "Site Maps" +msgstr "站点地图" + +msgid "Static Files" +msgstr "静态文件" + +msgid "Syndication" +msgstr "联合" + +#. Translators: String used to replace omitted page numbers in elided page +#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10]. +msgid "…" +msgstr "…" + +msgid "That page number is not an integer" +msgstr "页码不是整数" + +msgid "That page number is less than 1" +msgstr "页码小于 1" + +msgid "That page contains no results" +msgstr "本页结果为空" + +msgid "Enter a valid value." +msgstr "输入一个有效的值。" + +msgid "Enter a valid URL." +msgstr "输入一个有效的 URL。" + +msgid "Enter a valid integer." +msgstr "输入一个有效的整数。" + +msgid "Enter a valid email address." +msgstr "输入一个有效的 Email 地址。" + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "输入由字母,数字,下划线或连字符号组成的有效“字段”。" + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "输入由Unicode字母,数字,下划线或连字符号组成的有效“字段”。" + +msgid "Enter a valid IPv4 address." +msgstr "输入一个有效的 IPv4 地址。" + +msgid "Enter a valid IPv6 address." +msgstr "输入一个有效的 IPv6 地址。" + +msgid "Enter a valid IPv4 or IPv6 address." +msgstr "输入一个有效的 IPv4 或 IPv6 地址." + +msgid "Enter only digits separated by commas." +msgstr "只能输入用逗号分隔的数字。" + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "确保该值为 %(limit_value)s (现在为 %(show_value)s)。" + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "确保该值小于或等于%(limit_value)s。" + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "确保该值大于或等于%(limit_value)s。" + +#, python-format +msgid "Ensure this value is a multiple of step size %(limit_value)s." +msgstr "确保该值是步长的倍数%(limit_value)s" + +#, python-format +msgid "" +"Ensure this value is a multiple of step size %(limit_value)s, starting from " +"%(offset)s, e.g. %(offset)s, %(valid_value1)s, %(valid_value2)s, and so on." +msgstr "" +"确保此值是步长 %(limit_value)s 的倍数,从 %(offset)s 开始,例如 " +"%(offset)s、%(valid_value1)s、%(valid_value2)s 等等。" + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"确保该变量至少包含 %(limit_value)d 字符(目前字符数 %(show_value)d)。" + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"确保该变量包含不超过 %(limit_value)d 字符 (目前字符数 %(show_value)d)。" + +msgid "Enter a number." +msgstr "输入一个数字。" + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "确认总共不超过 %(max)s 个数字." + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "确认小数不超过 %(max)s 位." + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "确认小数点前不超过 %(max)s 位。" + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" +"文件扩展“%(extension)s”是不被允许。允许的扩展为:%(allowed_extensions)s。" + +msgid "Null characters are not allowed." +msgstr "不允许是用空字符串。" + +msgid "and" +msgstr "和" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "包含 %(field_labels)s 的 %(model_name)s 已经存在。" + +#, python-format +msgid "Constraint “%(name)s” is violated." +msgstr "约束 “%(name)s” 是无效的" + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "值 %(value)r 不是有效选项。" + +msgid "This field cannot be null." +msgstr "这个值不能为 null。" + +msgid "This field cannot be blank." +msgstr "此字段不能为空。" + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "具有 %(field_label)s 的 %(model_name)s 已存在。" + +#. Translators: The 'lookup_type' is one of 'date', 'year' or +#. 'month'. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" +"%(field_label)s 必须在 %(date_field_label)s 字段查找类型为 %(lookup_type)s 中" +"唯一。" + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "字段类型:%(field_type)s" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "“%(value)s”的值应该为True或False" + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "“%(value)s”的值应该为True,False或None" + +msgid "Boolean (Either True or False)" +msgstr "布尔值( True或False )" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "字符串(最长 %(max_length)s 位)" + +msgid "String (unlimited)" +msgstr "字符串(无限)" + +msgid "Comma-separated integers" +msgstr "逗号分隔的整数" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "“%(value)s”的值有一个错误的日期格式。它的格式应该是YYYY-MM-DD" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "“%(value)s”的值有正确的格式(YYYY-MM-DD)但它是一个错误的日期" + +msgid "Date (without time)" +msgstr "日期(不带时分)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" +"“%(value)s”的值有一个错误的日期格式。它的格式应该是YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] " + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" +"“%(value)s”的值有正确的格式 (YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ]) 但它是一个错" +"误的日期/时间" + +msgid "Date (with time)" +msgstr "日期(带时分)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "“%(value)s”的值应该是一个十进制数字。" + +msgid "Decimal number" +msgstr "小数" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" +"“%(value)s”的值有一个错误的格式。它的格式应该是[DD] [[HH:]MM:]ss[.uuuuuu] " + +msgid "Duration" +msgstr "时长" + +msgid "Email address" +msgstr "Email 地址" + +msgid "File path" +msgstr "文件路径" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "“%(value)s”的值应该是一个浮点数" + +msgid "Floating point number" +msgstr "浮点数" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "“%(value)s”的值应该是一个整型" + +msgid "Integer" +msgstr "整数" + +msgid "Big (8 byte) integer" +msgstr "大整数(8字节)" + +msgid "Small integer" +msgstr "小整数" + +msgid "IPv4 address" +msgstr "IPv4 地址" + +msgid "IP address" +msgstr "IP 地址" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "“%(value)s”的值应该是None、True或False" + +msgid "Boolean (Either True, False or None)" +msgstr "布尔值(True、False或None)" + +msgid "Positive big integer" +msgstr "正大整数" + +msgid "Positive integer" +msgstr "正整数" + +msgid "Positive small integer" +msgstr "正小整数" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "Slug (多达 %(max_length)s)" + +msgid "Text" +msgstr "文本" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "“%(value)s”的值有一个错误的格式。它的格式应该是HH:MM[:ss[.uuuuuu]]" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "“%(value)s”的值有正确的格式(HH:MM[:ss[.uuuuuu]]),但它是一个错误的时间" + +msgid "Time" +msgstr "时间" + +msgid "URL" +msgstr "URL" + +msgid "Raw binary data" +msgstr "原始二进制数据" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "“%(value)s”不是一个有效的UUID" + +msgid "Universally unique identifier" +msgstr "通用唯一识别码" + +msgid "File" +msgstr "文件" + +msgid "Image" +msgstr "图像" + +msgid "A JSON object" +msgstr "一个JSON对象" + +msgid "Value must be valid JSON." +msgstr "值必须是有效的JSON。" + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "包含%(field)s %(value)r的%(model)s实例不存在。" + +msgid "Foreign Key (type determined by related field)" +msgstr "外键(由相关字段确定)" + +msgid "One-to-one relationship" +msgstr "一对一关系" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "%(from)s-%(to)s关系" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "%(from)s-%(to)s关系" + +msgid "Many-to-many relationship" +msgstr "多对多关系" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr ":?.!" + +msgid "This field is required." +msgstr "这个字段是必填项。" + +msgid "Enter a whole number." +msgstr "输入整数。" + +msgid "Enter a valid date." +msgstr "输入一个有效的日期。" + +msgid "Enter a valid time." +msgstr "输入一个有效的时间。" + +msgid "Enter a valid date/time." +msgstr "输入一个有效的日期/时间。" + +msgid "Enter a valid duration." +msgstr "请输入有效的时长。" + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "天数应该在 {min_days} 和 {max_days} 之间。" + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "未提交文件。请检查表单的编码类型。" + +msgid "No file was submitted." +msgstr "没有提交文件。" + +msgid "The submitted file is empty." +msgstr "所提交的是空文件。" + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "确保该文件名长度不超过 %(max)d 字符(目前字符数 %(length)d)。" + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "请提交文件或勾选清除复选框,两者其一即可。" + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "请上传一张有效的图片。您所上传的文件不是图片或者是已损坏的图片。" + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "选择一个有效的选项。 %(value)s 不在可用的选项中。" + +msgid "Enter a list of values." +msgstr "输入一系列值。" + +msgid "Enter a complete value." +msgstr "请输入完整的值。" + +msgid "Enter a valid UUID." +msgstr "请输入有效UUID。" + +msgid "Enter a valid JSON." +msgstr "输入一个有效的JSON。" + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr ":" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "(隐藏字段 %(name)s) %(error)s" + +#, python-format +msgid "" +"ManagementForm data is missing or has been tampered with. Missing fields: " +"%(field_names)s. You may need to file a bug report if the issue persists." +msgstr "" +"ManagementForm 数据缺失或被篡改。缺少的字段: %(field_names)s。如果问题持续存" +"在,你可能需要提交错误报告。" + +#, python-format +msgid "Please submit at most %(num)d form." +msgid_plural "Please submit at most %(num)d forms." +msgstr[0] "请最多提交 %(num)d 个表单。" + +#, python-format +msgid "Please submit at least %(num)d form." +msgid_plural "Please submit at least %(num)d forms." +msgstr[0] "请至少提交 %(num)d 个表单。" + +msgid "Order" +msgstr "排序" + +msgid "Delete" +msgstr "删除" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "请修改%(field)s的重复数据" + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "请修改%(field)s的重复数据.这个字段必须唯一" + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"请修正%(field_name)s的重复数据。%(date_field)s %(lookup)s 在 %(field_name)s " +"必须保证唯一." + +msgid "Please correct the duplicate values below." +msgstr "请修正重复的数据." + +msgid "The inline value did not match the parent instance." +msgstr "内联值与父实例不匹配。" + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "选择一个有效的选项: 该选择不在可用的选项中。" + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "“%(pk)s”不是一个有效的值" + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" +"%(datetime)s无法在时区%(current_timezone)s被解析;它可能是模糊的,也可能是不" +"存在的。" + +msgid "Clear" +msgstr "清除" + +msgid "Currently" +msgstr "目前" + +msgid "Change" +msgstr "修改" + +msgid "Unknown" +msgstr "未知" + +msgid "Yes" +msgstr "是" + +msgid "No" +msgstr "否" + +#. Translators: Please do not add spaces around commas. +msgid "yes,no,maybe" +msgstr "是、否、也许" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)d 字节" + +#, python-format +msgid "%s KB" +msgstr "%s KB" + +#, python-format +msgid "%s MB" +msgstr "%s MB" + +#, python-format +msgid "%s GB" +msgstr "%s GB" + +#, python-format +msgid "%s TB" +msgstr "%s TB" + +#, python-format +msgid "%s PB" +msgstr "%s PB" + +msgid "p.m." +msgstr "p.m." + +msgid "a.m." +msgstr "a.m." + +msgid "PM" +msgstr "PM" + +msgid "AM" +msgstr "AM" + +msgid "midnight" +msgstr "午夜" + +msgid "noon" +msgstr "中午" + +msgid "Monday" +msgstr "星期一" + +msgid "Tuesday" +msgstr "星期二" + +msgid "Wednesday" +msgstr "星期三" + +msgid "Thursday" +msgstr "星期四" + +msgid "Friday" +msgstr "星期五" + +msgid "Saturday" +msgstr "星期六" + +msgid "Sunday" +msgstr "星期日" + +msgid "Mon" +msgstr "星期一" + +msgid "Tue" +msgstr "星期二" + +msgid "Wed" +msgstr "星期三" + +msgid "Thu" +msgstr "星期四" + +msgid "Fri" +msgstr "星期五" + +msgid "Sat" +msgstr "星期六" + +msgid "Sun" +msgstr "星期日" + +msgid "January" +msgstr "一月" + +msgid "February" +msgstr "二月" + +msgid "March" +msgstr "三月" + +msgid "April" +msgstr "四月" + +msgid "May" +msgstr "五月" + +msgid "June" +msgstr "六月" + +msgid "July" +msgstr "七月" + +msgid "August" +msgstr "八月" + +msgid "September" +msgstr "九月" + +msgid "October" +msgstr "十月" + +msgid "November" +msgstr "十一月" + +msgid "December" +msgstr "十二月" + +msgid "jan" +msgstr "一月" + +msgid "feb" +msgstr "二月" + +msgid "mar" +msgstr "三月" + +msgid "apr" +msgstr "四月" + +msgid "may" +msgstr "五月" + +msgid "jun" +msgstr "六月" + +msgid "jul" +msgstr "七月" + +msgid "aug" +msgstr "八月" + +msgid "sep" +msgstr "九月" + +msgid "oct" +msgstr "十月" + +msgid "nov" +msgstr "十一月" + +msgid "dec" +msgstr "十二月" + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "一月" + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "二月" + +msgctxt "abbrev. month" +msgid "March" +msgstr "三月" + +msgctxt "abbrev. month" +msgid "April" +msgstr "四月" + +msgctxt "abbrev. month" +msgid "May" +msgstr "五月" + +msgctxt "abbrev. month" +msgid "June" +msgstr "六月" + +msgctxt "abbrev. month" +msgid "July" +msgstr "七月" + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "八月" + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "九月" + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "十月" + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "十一月" + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "十二月" + +msgctxt "alt. month" +msgid "January" +msgstr "一月" + +msgctxt "alt. month" +msgid "February" +msgstr "二月" + +msgctxt "alt. month" +msgid "March" +msgstr "三月" + +msgctxt "alt. month" +msgid "April" +msgstr "四月" + +msgctxt "alt. month" +msgid "May" +msgstr "五月" + +msgctxt "alt. month" +msgid "June" +msgstr "六月" + +msgctxt "alt. month" +msgid "July" +msgstr "七月" + +msgctxt "alt. month" +msgid "August" +msgstr "八月" + +msgctxt "alt. month" +msgid "September" +msgstr "九月" + +msgctxt "alt. month" +msgid "October" +msgstr "十月" + +msgctxt "alt. month" +msgid "November" +msgstr "十一月" + +msgctxt "alt. month" +msgid "December" +msgstr "十二月" + +msgid "This is not a valid IPv6 address." +msgstr "该值不是合法的IPv6地址。" + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "%(truncated_text)s..." + +msgid "or" +msgstr "或" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr "," + +#, python-format +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "%(num)d 年" + +#, python-format +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "%(num)d 月" + +#, python-format +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "%(num)d 周" + +#, python-format +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "%(num)d 日" + +#, python-format +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "%(num)d 小时" + +#, python-format +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "%(num)d 分钟" + +msgid "Forbidden" +msgstr "禁止访问" + +msgid "CSRF verification failed. Request aborted." +msgstr "CSRF验证失败. 请求被中断." + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" +"您看到此消息是由于HTTPS站点需要您的浏览器发送 'Referer header',但是该信息并" +"未被发送。出于安全原因,此HTTP头是必需的,以确保您的浏览器不会被第三方劫持。" + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" +"如果您已将浏览器配置为禁用“ Referer”头,请重新启用它们,至少针对此站点,或" +"HTTPS连接或“同源”请求。" + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" +"如果您使用的是标签或包" +"含“Referrer-Policy: no-referrer”的HTTP头,请将其删除。CSRF保护要求“Referer”头" +"执行严格的Referer检查。如果你担心隐私问题,可以使用类似这样的替代方法链接到第三方网站。" + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" +"您看到此消息是由于该站点在提交表单时需要一个CSRF cookie。此项是出于安全考虑," +"以确保您的浏览器没有被第三方劫持。" + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" +"如果您已将浏览器配置为禁用cookie,请重新启用它们,至少针对此站点或“同源”请" +"求。" + +msgid "More information is available with DEBUG=True." +msgstr "更多可用信息请设置选项DEBUG=True。" + +msgid "No year specified" +msgstr "没有指定年" + +msgid "Date out of range" +msgstr "日期超出范围。" + +msgid "No month specified" +msgstr "没有指定月" + +msgid "No day specified" +msgstr "没有指定天" + +msgid "No week specified" +msgstr "没有指定周" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "%(verbose_name_plural)s 可用" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" +"因为 %(class_name)s.allow_future 设置为 False,所以特性 " +"%(verbose_name_plural)s 不可用。" + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "日期字符串“%(datestr)s”与格式“%(format)s”不匹配" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "没有找到符合查询的 %(verbose_name)s" + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "页面不是最后一页,也不能被转为整数型" + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "非法页面 (%(page_number)s): %(message)s" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "列表是空的并且“%(class_name)s.allow_empty”是False" + +msgid "Directory indexes are not allowed here." +msgstr "这里不允许目录索引" + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "”%(path)s\"不存在" + +#, python-format +msgid "Index of %(directory)s" +msgstr "%(directory)s的索引" + +msgid "The install worked successfully! Congratulations!" +msgstr "" +"安装成功!\n" +"祝贺!" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" +"查看 Django %(version)s 的 release notes " + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not " +"configured any URLs." +msgstr "" +"您现在看见这个页面,因为您设置了 DEBUG=True 并且您还没有配置任何URLs。" + +msgid "Django Documentation" +msgstr "Django 文档" + +msgid "Topics, references, & how-to’s" +msgstr "主题,参考资料和操作方法" + +msgid "Tutorial: A Polling App" +msgstr "教程:投票应用" + +msgid "Get started with Django" +msgstr "开始使用 Django" + +msgid "Django Community" +msgstr "Django 社区" + +msgid "Connect, get help, or contribute" +msgstr "联系,获取帮助,贡献代码" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/zh_Hans/__init__.py b/venv/lib/python3.12/site-packages/django/conf/locale/zh_Hans/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/zh_Hans/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/zh_Hans/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..11d82ec8434b358833f03da27d4c84b95fd01288 GIT binary patch literal 203 zcmX@j%ge<81o5sX(m?cM5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!%F@rs&rQ|OP0Yy6 zFHO;RNiEZNN=(kybEFQ_cZ$j>v@Gc?jK&MZmQEdVM^ zOiwM=Pssu+OwP|s)6dCIPRvQwugZw`NX#qNkB`sH%PfhH*DI*}#bJ}1pHiBWYFESx Uw3-o!i$RQ!%#4hTMa)1J0QkQ)djJ3c literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/zh_Hans/__pycache__/formats.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/zh_Hans/__pycache__/formats.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c74991c97db11579abec0fc82648ce309fce1ea6 GIT binary patch literal 979 zcmZ`%J#X4j6nzFl`2L2VR;i+@9;gIQZMUe3YCJbDymDI~epK_*DK^bI*;?9}1SA zW6|6S&|Dyb6hs(>Ar8esoQjjU6c=zCfZb$6*=!-={>msGsGCr|P(4t6#H;v;PYDpe z5VJR!FfYG+KEAy8HgpQR9XoQ5-Jzssg`5Fn;kja9l5q|_Y#p-(W(n=G ztdV7j9flE07qD~#OILt$gB5n!63A%TWvfH~vdgi}jCUAXChg3HfaiI0Y$qS4E|k%A zC(Q=Tdi9Tj!&B{#~)eeNd}>g_Ag0l)x^CwJKN6uW;dVt+dZe>VYKI zD#h}_cXSJX15G=)Z5cW?w6?KMuv=h`l%uj}y;EC_0XBk5FWscuxED%MnVB6G`ZAJg$^u fgkm>=W%WG)oVreOxGFPYTmna?D*+Sr*@mp|2gN}B_S;O^ZR}G=gI#) z`~IBgIq!>a+}Nkl;y2?G%en*hxyG`7%=6nfOQ>ZH{*+~f;A3zc+z%z)?;-zLH{NMk zL*YO;82aI3a0k2<{tDg>--rBX-Slal{~;*hlMG)n;nnbR!nYdkHauW>)UX5IMY^xT zOW~W4W?L@o1LN@T;M*qtPw;B|e}z}UD{afV4qgwXJ{w*E?}azPJSgdg8$Jakek!~X zJ`Wixs~k#rCF~2U;FYirejKiX((m2y9{5ct@oz(k|1T){uckAqJy6l@LKpHl=S8BJ{WhO!(u4=Xg2HvYhf{54ki7&P{!-eP|CaP0UdrD%*TH>l=+wfFN4#Ke+HC% zUidupL#g+hhChIk@8?kZ_iHHg^}Y%JALGA#fUfTv*q8X5p|sP6AA|i3A2Q*eh0^X( zP}(yQzIX}kgSGe%<>BB^8ZYJi4obc6K^fQgq11C-fo}ip@EZL6;7FJcX_^&+l5ZoF zer`A152c?+p_G5h@HHs?{U((3uN(hQpp^4(#{ZV#Z=s}n7fO5n2xT4j8K`+9lyDnL z{s*A+`$4!04u!YD??Wjk2_@aTP{!pCP}=!tcpdEXpbq~yly=?;m<)? zw=?0TFa#M|D+=#{TjBNan^4B{XHfRVJ5cgH@Q~iuPZ&-%EH;clY1d+C!v-krZ-cT< z+M)F02PXU{P}=bZ90Gr1!tZ$4vc}-Q2hv4rHVncRct8BuBbGG+eg-}T=fiRE>rncC z?W1PB!H?s&q4eufDE%4(rCl?ijGqIg-BA<%Whmpk*n}^Il5Q0o4Y$FuFbUPX4btTe zg)+}0;f?TfP~yE%+7&SVDEuV;uRuxP45dAL;K$%0DEUuA+222eY964p>w(Yc@(Q5j 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/zh_Hant/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/conf/locale/zh_Hant/LC_MESSAGES/django.po new file mode 100644 index 0000000000..1671ebd942 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/zh_Hant/LC_MESSAGES/django.po @@ -0,0 +1,1293 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Chen Chun-Chia , 2015 +# yubike, 2024 +# Eric Ho , 2013 +# ilay , 2012 +# Jannis Leidel , 2011 +# mail6543210 , 2013 +# 0a3cb7bfd0810218facdfb511e592a6d_8d19d07 , 2011 +# tcc , 2011 +# Tzu-ping Chung , 2016-2017 +# YAO WEN LIANG, 2024 +# Yeh-Yung , 2013 +# yubike, 2024 +# Yeh-Yung , 2012 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-05-22 11:46-0300\n" +"PO-Revision-Date: 2024-08-07 06:49+0000\n" +"Last-Translator: YAO WEN LIANG, 2024\n" +"Language-Team: Chinese (Taiwan) (http://app.transifex.com/django/django/" +"language/zh_TW/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: zh_TW\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +msgid "Afrikaans" +msgstr "南非語" + +msgid "Arabic" +msgstr "阿拉伯語" + +msgid "Algerian Arabic" +msgstr "阿爾及利亞式阿拉伯語" + +msgid "Asturian" +msgstr "阿斯圖里亞斯語" + +msgid "Azerbaijani" +msgstr "亞塞拜然語" + +msgid "Bulgarian" +msgstr "保加利亞語" + +msgid "Belarusian" +msgstr "白俄羅斯語" + +msgid "Bengali" +msgstr "孟加拉語" + +msgid "Breton" +msgstr "布列塔尼語" + +msgid "Bosnian" +msgstr "波士尼亞語" + +msgid "Catalan" +msgstr "加泰隆語" + +msgid "Central Kurdish (Sorani)" +msgstr "中部庫爾德語 (Sorani)" + +msgid "Czech" +msgstr "捷克語" + +msgid "Welsh" +msgstr "威爾斯語" + +msgid "Danish" +msgstr "丹麥語" + +msgid "German" +msgstr "德語" + +msgid "Lower Sorbian" +msgstr "下索布語" + +msgid "Greek" +msgstr "希臘語" + +msgid "English" +msgstr "英語" + +msgid "Australian English" +msgstr "澳大利亞英語" + +msgid "British English" +msgstr "英國英語" + +msgid "Esperanto" +msgstr "世界語" + +msgid "Spanish" +msgstr "西班牙語" + +msgid "Argentinian Spanish" +msgstr "阿根廷西班牙語" + +msgid "Colombian Spanish" +msgstr "哥倫比亞西班牙語" + +msgid "Mexican Spanish" +msgstr "墨西哥西班牙語" + +msgid "Nicaraguan Spanish" +msgstr "尼加拉瓜西班牙語" + +msgid "Venezuelan Spanish" +msgstr "委內瑞拉西班牙語" + +msgid "Estonian" +msgstr "愛沙尼亞語" + +msgid "Basque" +msgstr "巴斯克語" + +msgid "Persian" +msgstr "波斯語" + +msgid "Finnish" +msgstr "芬蘭語" + +msgid "French" +msgstr "法語" + +msgid "Frisian" +msgstr "菲士蘭語" + +msgid "Irish" +msgstr "愛爾蘭語" + +msgid "Scottish Gaelic" +msgstr "蘇格蘭蓋爾語" + +msgid "Galician" +msgstr "加利西亞語" + +msgid "Hebrew" +msgstr "希伯來語" + +msgid "Hindi" +msgstr "印地語" + +msgid "Croatian" +msgstr "克羅埃西亞語" + +msgid "Upper Sorbian" +msgstr "上索布語" + +msgid "Hungarian" +msgstr "匈牙利語" + +msgid "Armenian" +msgstr "亞美尼亞語" + +msgid "Interlingua" +msgstr "國際語" + +msgid "Indonesian" +msgstr "印尼語" + +msgid "Igbo" +msgstr "伊博語" + +msgid "Ido" +msgstr "伊多語" + +msgid "Icelandic" +msgstr "冰島語" + +msgid "Italian" +msgstr "義大利語" + +msgid "Japanese" +msgstr "日語" + +msgid "Georgian" +msgstr "喬治亞語" + +msgid "Kabyle" +msgstr "卡拜爾語" + +msgid "Kazakh" +msgstr "哈薩克語" + +msgid "Khmer" +msgstr "高棉語" + +msgid "Kannada" +msgstr "康納達語" + +msgid "Korean" +msgstr "韓語" + +msgid "Kyrgyz" +msgstr "吉爾吉斯語" + +msgid "Luxembourgish" +msgstr "盧森堡語" + +msgid "Lithuanian" +msgstr "立陶宛語" + +msgid "Latvian" +msgstr "拉脫維亞語" + +msgid "Macedonian" +msgstr "馬其頓語" + +msgid "Malayalam" +msgstr "馬拉雅拉姆語" + +msgid "Mongolian" +msgstr "蒙古語" + +msgid "Marathi" +msgstr "馬拉提語" + +msgid "Malay" +msgstr "馬來語" + +msgid "Burmese" +msgstr "緬甸語" + +msgid "Norwegian Bokmål" +msgstr "書面挪威語" + +msgid "Nepali" +msgstr "尼泊爾語" + +msgid "Dutch" +msgstr "荷蘭語" + +msgid "Norwegian Nynorsk" +msgstr "新挪威語" + +msgid "Ossetic" +msgstr "奧塞梯語" + +msgid "Punjabi" +msgstr "旁遮普語" + +msgid "Polish" +msgstr "波蘭語" + +msgid "Portuguese" +msgstr "葡萄牙語" + +msgid "Brazilian Portuguese" +msgstr "巴西葡萄牙語" + +msgid "Romanian" +msgstr "羅馬尼亞語" + +msgid "Russian" +msgstr "俄語" + +msgid "Slovak" +msgstr "斯洛伐克語" + +msgid "Slovenian" +msgstr "斯洛維尼亞語" + +msgid "Albanian" +msgstr "阿爾巴尼亞語" + +msgid "Serbian" +msgstr "塞爾維亞語" + +msgid "Serbian Latin" +msgstr "塞爾維亞拉丁語" + +msgid "Swedish" +msgstr "瑞典語" + +msgid "Swahili" +msgstr "斯瓦希里語" + +msgid "Tamil" +msgstr "坦米爾語" + +msgid "Telugu" +msgstr "泰盧固語" + +msgid "Tajik" +msgstr "塔吉克語" + +msgid "Thai" +msgstr "泰語" + +msgid "Turkmen" +msgstr "土庫曼語" + +msgid "Turkish" +msgstr "土耳其語" + +msgid "Tatar" +msgstr "韃靼語" + +msgid "Udmurt" +msgstr "烏德穆爾特語" + +msgid "Uyghur" +msgstr "維吾爾語" + +msgid "Ukrainian" +msgstr "烏克蘭語" + +msgid "Urdu" +msgstr "烏爾都語" + +msgid "Uzbek" +msgstr "烏茲別克語" + +msgid "Vietnamese" +msgstr "越南語" + +msgid "Simplified Chinese" +msgstr "簡體中文" + +msgid "Traditional Chinese" +msgstr "繁體中文" + +msgid "Messages" +msgstr "訊息" + +msgid "Site Maps" +msgstr "網站地圖" + +msgid "Static Files" +msgstr "靜態文件" + +msgid "Syndication" +msgstr "聯播" + +#. Translators: String used to replace omitted page numbers in elided page +#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10]. +msgid "…" +msgstr "…" + +msgid "That page number is not an integer" +msgstr "該頁碼並非整數" + +msgid "That page number is less than 1" +msgstr "該頁碼小於 1" + +msgid "That page contains no results" +msgstr "該頁未包含任何內容" + +msgid "Enter a valid value." +msgstr "請輸入有效的值。" + +msgid "Enter a valid domain name." +msgstr "輸入有效的網域名稱。" + +msgid "Enter a valid URL." +msgstr "請輸入有效的 URL。" + +msgid "Enter a valid integer." +msgstr "請輸入有效的整數。" + +msgid "Enter a valid email address." +msgstr "請輸入有效的電子郵件地址。" + +#. Translators: "letters" means latin letters: a-z and A-Z. +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "輸入合適的 \"slug\" 字串,由字母、數字、底線與連字號組成。" + +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "輸入合適的 \"slug\" 字串,內含 Unicode 字元、數字、底線或減號。" + +#, python-format +msgid "Enter a valid %(protocol)s address." +msgstr "輸入正確的 %(protocol)s 位址。." + +msgid "IPv4" +msgstr "IPv4" + +msgid "IPv6" +msgstr "IPv6" + +msgid "IPv4 or IPv6" +msgstr "IPv4 或 IPv6" + +msgid "Enter only digits separated by commas." +msgstr "請輸入以逗號分隔的數字。" + +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "請確認這個值是否為 %(limit_value)s (目前是 %(show_value)s)。" + +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "請確認此數值是否小於或等於 %(limit_value)s。" + +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "請確認此數值是否大於或等於 %(limit_value)s。" + +#, python-format +msgid "Ensure this value is a multiple of step size %(limit_value)s." +msgstr "請確認此數值是 %(limit_value)s 的倍數。" + +#, python-format +msgid "" +"Ensure this value is a multiple of step size %(limit_value)s, starting from " +"%(offset)s, e.g. %(offset)s, %(valid_value1)s, %(valid_value2)s, and so on." +msgstr "" +"請確認此數值是 %(limit_value)s的倍數。從 %(offset)s 起始,例如 %(offset)s, " +"%(valid_value1)s, %(valid_value2)s,以此類推。" + +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"請確認這個值至少包含 %(limit_value)d 個字 (目前為 %(show_value)d 個字)。" + +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +"請確認這個值至多包含 %(limit_value)d 個字 (目前為 %(show_value)d 個字)。" + +msgid "Enter a number." +msgstr "輸入一個數字" + +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "請確認數字全長不超過 %(max)s 位。" + +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "確認小數不超過 %(max)s 位。" + +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "請確認小數點前不超過 %(max)s 位。" + +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "不允許副檔名為 “%(extension)s” 。可用的像是: %(allowed_extensions)s。" + +msgid "Null characters are not allowed." +msgstr "不允許空(null)字元。" + +msgid "and" +msgstr "和" + +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "包含 %(field_labels)s 的 %(model_name)s 已經存在。" + +#, python-format +msgid "Constraint “%(name)s” is violated." +msgstr "約束條件 “%(name)s” 被違反。" + +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "數值 %(value)r 不是有效的選項。" + +msgid "This field cannot be null." +msgstr "這個值不能是 null。" + +msgid "This field cannot be blank." +msgstr "這個欄位不能為空。" + +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "包含 %(field_label)s 的 %(model_name)s 已經存在。" + +#. Translators: The 'lookup_type' is one of 'date', 'year' or +#. 'month'. Eg: "Title must be unique for pub_date year" +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "%(field_label)s 在 %(date_field_label)s %(lookup_type)s 上必須唯一。" + +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "欄位類型: %(field_type)s" + +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "“%(value)s” 只能是 True 或 False。" + +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "“%(value)s” 只能是 True 或 False 或 None 。" + +msgid "Boolean (Either True or False)" +msgstr "布林值 (True 或 False)" + +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "字串 (至多 %(max_length)s 個字)" + +msgid "String (unlimited)" +msgstr "字串 (無限)" + +msgid "Comma-separated integers" +msgstr "逗號分隔的整數" + +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "“%(value)s” 的日期格式錯誤。應該是 YYYY-MM-DD 才對。" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "“%(value)s” 的格式正確 (YYYY-MM-DD) 但日期有誤。" + +msgid "Date (without time)" +msgstr "日期 (不包括時間)" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" +"“%(value)s” 的格式錯誤。應該是 YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ] 才對。" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" +"“%(value)s” 的格式正確 (YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ]) 但日期/時間有誤。" + +msgid "Date (with time)" +msgstr "日期 (包括時間)" + +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "“%(value)s” 必須是十進位數。" + +msgid "Decimal number" +msgstr "十進位數" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "“%(value)s” 的格式錯誤。格式必須為 [DD] [[HH:]MM:]ss[.uuuuuu] 。" + +msgid "Duration" +msgstr "時長" + +msgid "Email address" +msgstr "電子郵件地址" + +msgid "File path" +msgstr "檔案路徑" + +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "“%(value)s” 必須是浮點小數。" + +msgid "Floating point number" +msgstr "浮點數" + +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "“%(value)s” 必須是整數。" + +msgid "Integer" +msgstr "整數" + +msgid "Big (8 byte) integer" +msgstr "大整數 (8位元組)" + +msgid "Small integer" +msgstr "小整數" + +msgid "IPv4 address" +msgstr "IPv4 地址" + +msgid "IP address" +msgstr "IP 位址" + +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "“%(value)s” 必須是 None, True 或 False。" + +msgid "Boolean (Either True, False or None)" +msgstr "布林值 (True, False 或 None)" + +msgid "Positive big integer" +msgstr "大的正整數" + +msgid "Positive integer" +msgstr "正整數" + +msgid "Positive small integer" +msgstr "正小整數" + +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "Slug (最多 %(max_length)s個字)" + +msgid "Text" +msgstr "文字" + +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "“%(value)s” 格式錯誤。格式必須為 HH:MM[:ss[.uuuuuu]] 。" + +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "“%(value)s” 的格式正確 (HH:MM[:ss[.uuuuuu]]),但時間有誤。" + +msgid "Time" +msgstr "時間" + +msgid "URL" +msgstr "網址" + +msgid "Raw binary data" +msgstr "原始二進制數據" + +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "“%(value)s” 不是有效的 UUID。" + +msgid "Universally unique identifier" +msgstr "通用唯一識別碼" + +msgid "File" +msgstr "檔案" + +msgid "Image" +msgstr "圖像" + +msgid "A JSON object" +msgstr "JSON 物件" + +msgid "Value must be valid JSON." +msgstr "必須是有效的 JSON 值" + +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "%(field)s 為 %(value)r 的 %(model)s 物件不存在。" + +msgid "Foreign Key (type determined by related field)" +msgstr "外鍵(類型由相關欄位決定)" + +msgid "One-to-one relationship" +msgstr "一對一關連" + +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "%(from)s-%(to)s 關連" + +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "%(from)s-%(to)s 關連" + +msgid "Many-to-many relationship" +msgstr "多對多關連" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the +#. label +msgid ":?.!" +msgstr ":?.!" + +msgid "This field is required." +msgstr "這個欄位是必須的。" + +msgid "Enter a whole number." +msgstr "輸入整數" + +msgid "Enter a valid date." +msgstr "輸入有效的日期" + +msgid "Enter a valid time." +msgstr "輸入有效的時間" + +msgid "Enter a valid date/time." +msgstr "輸入有效的日期/時間" + +msgid "Enter a valid duration." +msgstr "輸入有效的時間長。" + +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "天數必須介於 {min_days} 到 {max_days} 天" + +msgid "No file was submitted. Check the encoding type on the form." +msgstr "沒有檔案被送出。請檢查表單的編碼類型。" + +msgid "No file was submitted." +msgstr "沒有檔案送出" + +msgid "The submitted file is empty." +msgstr "送出的檔案是空的。" + +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "請確認這個檔名至多包含 %(max)d 個字 (目前為 %(length)d)。" + +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "請提交一個檔案或勾選清除選項,但不能同時進行。" + +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "請上傳一個有效的圖檔。你上傳的檔案不是圖片或是已損壞的圖檔。" + +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "請選擇有效的選項, %(value)s 不是一個可用的選項。" + +msgid "Enter a list of values." +msgstr "請輸入一個列表的值。" + +msgid "Enter a complete value." +msgstr "請輸入完整的值。" + +msgid "Enter a valid UUID." +msgstr "請輸入有效的 UUID。" + +msgid "Enter a valid JSON." +msgstr "輸入有效的 JSON。" + +#. Translators: This is the default suffix added to form field labels +msgid ":" +msgstr ":" + +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "(隱藏欄位 %(name)s) %(error)s" + +#, python-format +msgid "" +"ManagementForm data is missing or has been tampered with. Missing fields: " +"%(field_names)s. You may need to file a bug report if the issue persists." +msgstr "" +"ManagementForm 資料遺失或被篡改。缺少欄位:%(field_names)s。如果問題持續存" +"在,您可能需要提交錯誤報告。" + +#, python-format +msgid "Please submit at most %(num)d form." +msgid_plural "Please submit at most %(num)d forms." +msgstr[0] "請送出最多 %(num)d 個表單。" + +#, python-format +msgid "Please submit at least %(num)d form." +msgid_plural "Please submit at least %(num)d forms." +msgstr[0] "請送出最少 %(num)d 個表單。" + +msgid "Order" +msgstr "排序" + +msgid "Delete" +msgstr "刪除" + +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "請修正 %(field)s 的重覆資料" + +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "請修正 %(field)s 的重覆資料, 必須為唯一值" + +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"請修正 %(field_name)s 重複資料, %(date_field)s 的 %(lookup)s 必須是唯一值。" + +msgid "Please correct the duplicate values below." +msgstr "請修正下方重覆的數值" + +msgid "The inline value did not match the parent instance." +msgstr "內含的外鍵無法連接到對應的上層實體。" + +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "選擇有效的選項: 此選擇不在可用的選項中。" + +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "“%(pk)s” 不是一個有效的值。" + +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" +"%(datetime)s 無法被轉換成 %(current_timezone)s時區格式; 可能內容有誤或不存" +"在。" + +msgid "Clear" +msgstr "清除" + +msgid "Currently" +msgstr "目前" + +msgid "Change" +msgstr "變更" + +msgid "Unknown" +msgstr "未知" + +msgid "Yes" +msgstr "是" + +msgid "No" +msgstr "否" + +#. Translators: Please do not add spaces around commas. +msgid "yes,no,maybe" +msgstr "是、否、也許" + +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)d 位元組" + +#, python-format +msgid "%s KB" +msgstr "%s KB" + +#, python-format +msgid "%s MB" +msgstr "%s MB" + +#, python-format +msgid "%s GB" +msgstr "%s GB" + +#, python-format +msgid "%s TB" +msgstr "%s TB" + +#, python-format +msgid "%s PB" +msgstr "%s PB" + +msgid "p.m." +msgstr "p.m." + +msgid "a.m." +msgstr "a.m." + +msgid "PM" +msgstr "PM" + +msgid "AM" +msgstr "AM" + +msgid "midnight" +msgstr "午夜" + +msgid "noon" +msgstr "中午" + +msgid "Monday" +msgstr "星期一" + +msgid "Tuesday" +msgstr "星期二" + +msgid "Wednesday" +msgstr "星期三" + +msgid "Thursday" +msgstr "星期四" + +msgid "Friday" +msgstr "星期五" + +msgid "Saturday" +msgstr "星期六" + +msgid "Sunday" +msgstr "星期日" + +msgid "Mon" +msgstr "星期一" + +msgid "Tue" +msgstr "星期二" + +msgid "Wed" +msgstr "星期三" + +msgid "Thu" +msgstr "星期四" + +msgid "Fri" +msgstr "星期五" + +msgid "Sat" +msgstr "星期六" + +msgid "Sun" +msgstr "星期日" + +msgid "January" +msgstr "一月" + +msgid "February" +msgstr "二月" + +msgid "March" +msgstr "三月" + +msgid "April" +msgstr "四月" + +msgid "May" +msgstr "五月" + +msgid "June" +msgstr "六月" + +msgid "July" +msgstr "七月" + +msgid "August" +msgstr "八月" + +msgid "September" +msgstr "九月" + +msgid "October" +msgstr "十月" + +msgid "November" +msgstr "十一月" + +msgid "December" +msgstr "十二月" + +msgid "jan" +msgstr "一月" + +msgid "feb" +msgstr "二月" + +msgid "mar" +msgstr "三月" + +msgid "apr" +msgstr "四月" + +msgid "may" +msgstr "五月" + +msgid "jun" +msgstr "六月" + +msgid "jul" +msgstr "七月" + +msgid "aug" +msgstr "八月" + +msgid "sep" +msgstr "九月" + +msgid "oct" +msgstr "十月" + +msgid "nov" +msgstr "十一月" + +msgid "dec" +msgstr "十二月" + +msgctxt "abbrev. month" +msgid "Jan." +msgstr "一月" + +msgctxt "abbrev. month" +msgid "Feb." +msgstr "二月" + +msgctxt "abbrev. month" +msgid "March" +msgstr "三月" + +msgctxt "abbrev. month" +msgid "April" +msgstr "四月" + +msgctxt "abbrev. month" +msgid "May" +msgstr "五月" + +msgctxt "abbrev. month" +msgid "June" +msgstr "六月" + +msgctxt "abbrev. month" +msgid "July" +msgstr "七月" + +msgctxt "abbrev. month" +msgid "Aug." +msgstr "八月" + +msgctxt "abbrev. month" +msgid "Sept." +msgstr "九月" + +msgctxt "abbrev. month" +msgid "Oct." +msgstr "十月" + +msgctxt "abbrev. month" +msgid "Nov." +msgstr "十一月" + +msgctxt "abbrev. month" +msgid "Dec." +msgstr "十二月" + +msgctxt "alt. month" +msgid "January" +msgstr "一月" + +msgctxt "alt. month" +msgid "February" +msgstr "二月" + +msgctxt "alt. month" +msgid "March" +msgstr "三月" + +msgctxt "alt. month" +msgid "April" +msgstr "四月" + +msgctxt "alt. month" +msgid "May" +msgstr "五月" + +msgctxt "alt. month" +msgid "June" +msgstr "六月" + +msgctxt "alt. month" +msgid "July" +msgstr "七月" + +msgctxt "alt. month" +msgid "August" +msgstr "八月" + +msgctxt "alt. month" +msgid "September" +msgstr "九月" + +msgctxt "alt. month" +msgid "October" +msgstr "十月" + +msgctxt "alt. month" +msgid "November" +msgstr "十一月" + +msgctxt "alt. month" +msgid "December" +msgstr "十二月" + +msgid "This is not a valid IPv6 address." +msgstr "這是無效的 IPv6 位址。" + +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "%(truncated_text)s…" + +msgid "or" +msgstr "或" + +#. Translators: This string is used as a separator between list elements +msgid ", " +msgstr ", " + +#, python-format +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "%(num)d 年" + +#, python-format +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "%(num)d 月" + +#, python-format +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "%(num)d 週" + +#, python-format +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "%(num)d 日" + +#, python-format +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "%(num)d 小時" + +#, python-format +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "%(num)d 分" + +msgid "Forbidden" +msgstr "禁止" + +msgid "CSRF verification failed. Request aborted." +msgstr "CSRF 驗證失敗。已中止請求。" + +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" +"您看到此消息是因為這個 HTTPS 網站要求您的網路瀏覽器發送一個“Referer header”," +"但並沒有被發送。出於安全原因,需要此標頭來確保您的瀏覽器沒有被第三方劫持。" + +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" +"若您的瀏覽器設定為將「Referer」標頭關閉,請重新為這個網站、HTTPS 連線、或" +"「same-origin」請求啟用它。" + +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" +"若您使用 標籤或包含" +"「Referrer-Policy: no-referrer」標頭,請將其移除。 CSRF 保護要求「Referer」標" +"頭進行嚴格參照檢查。若你擔心隱私問題,可使用如 來連" +"結到第三方網站。" + +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" +"你看到這個訊息,是因為這個網站要求在送出表單包含一個 CSRF cookie。這個 " +"cookie 是用於安全用途,保護你的瀏覽器不被第三方挾持。" + +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" +"若你的瀏覽器設定為將 cookie 關閉,請重新為這個網站或「same-origin」請求啟用" +"它。" + +msgid "More information is available with DEBUG=True." +msgstr "設定 DEBUG=True 以獲得更多資訊。" + +msgid "No year specified" +msgstr "不指定年份" + +msgid "Date out of range" +msgstr "日期超過範圍" + +msgid "No month specified" +msgstr "沒有指定月份" + +msgid "No day specified" +msgstr "沒有指定日期" + +msgid "No week specified" +msgstr "沒有指定週數" + +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "%(verbose_name_plural)s 無法使用" + +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" +"未來的 %(verbose_name_plural)s 不可用,因為 %(class_name)s.allow_future 設置" +"為 False." + +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "日期字串 “%(datestr)s” 不符合 “%(format)s” 格式。" + +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "無 %(verbose_name)s 符合本次搜尋" + +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "頁面不是最後一頁,也無法被轉換為整數。" + +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "無效的頁面 (%(page_number)s): %(message)s" + +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "列表是空的,並且 “%(class_name)s.allow_empty” 是 False 。" + +msgid "Directory indexes are not allowed here." +msgstr "這裡不允許目錄索引。" + +#, python-format +msgid "“%(path)s” does not exist" +msgstr "“%(path)s” 不存在。" + +#, python-format +msgid "Index of %(directory)s" +msgstr "%(directory)s 的索引" + +msgid "The install worked successfully! Congratulations!" +msgstr "安裝成功!恭喜!" + +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" +"查看 Django %(version)s 的 發行版本說明 " + +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not " +"configured any URLs." +msgstr "" +"你現在看到這個頁面,是因為在設定檔中設置了 DEBUG = True,且尚未配置任何網址。" + +msgid "Django Documentation" +msgstr "Django 文件" + +msgid "Topics, references, & how-to’s" +msgstr "主題、參考、教學" + +msgid "Tutorial: A Polling App" +msgstr "教學:投票應用" + +msgid "Get started with Django" +msgstr "初學 Django" + +msgid "Django Community" +msgstr "Django 社群" + +msgid "Connect, get help, or contribute" +msgstr "聯繫、獲得幫助、貢獻" diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/zh_Hant/__init__.py b/venv/lib/python3.12/site-packages/django/conf/locale/zh_Hant/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/zh_Hant/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/zh_Hant/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8f9cc6e7ac70e6dc9a82118cbebba12621ce3072 GIT binary patch literal 203 zcmX@j%ge<81o5sX(m?cM5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!%F@rs&rQ|OP0Yy6 zFHO;RNiEZNN=(kybEFQ_cZ$j>v@Gc?jK&MZmQEdVM^ zOiwM=Pssu+OwP|s)6dCIPRvQwugZw`NX#qIkB`sH%PfhH*DI*}#bJ}1pHiBWYFESx Uw3-o!i$RQ!%#4hTMa)1J0Ql}Ud;kCd literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/zh_Hant/__pycache__/formats.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/locale/zh_Hant/__pycache__/formats.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f81cf19133d5f8f65b7582ef373ea00c280fa377 GIT binary patch literal 979 zcmZ`%J#X4j6nzGg@EO8qP^(l?RS#5xr?wlaB00sxs0AZq6ye2k^2|qyZ3GwzrgZB+ z$kM4&hwfea4=QzGM66XKWs8!HsrT`bLZWzh_nvdlIrqtWzXJg;f=}gt)ebfh`a{9; zb1a%$0h$X$kb(%KFvOuah*NPAm*N6$1MnugmT3jwKm8r6-iaGU|=ig7l zGh4n`s>qAH@+3U-taI_ZtF7~)EdMTF;6A8jzQjqKEJ|P(#7dbfW>>giu~InXCG|)W zE2Vt#=sUWFzk#Mr+^`HC8(PD#Y=X0TA0KL`A5*+Z@JUNE>lW_oW*@hjC%8T6H7xT@ z`qgXPZT9q38-!Y2?_zQ`6P{XT4Y#aQt)=5(Llrc$hig{H(0bi;doXpsH7sJc^n=bW zY^HCutHN>ZWEke!i-LRSzVUVhj_`}~;5hnhghJ!U-U#iCqt9udcsW9`aWn?~joTG> fj8OQ-zpUOTfaBK*6iZNTY!{~EaO6|4L*M8>-!LR~ literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/conf/locale/zh_Hant/formats.py b/venv/lib/python3.12/site-packages/django/conf/locale/zh_Hant/formats.py new file mode 100644 index 0000000000..79936f8a34 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/locale/zh_Hant/formats.py @@ -0,0 +1,42 @@ +# This file is distributed under the same license as the Django package. +# +# The *_FORMAT strings use the Django date format syntax, +# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date +DATE_FORMAT = "Y年n月j日" # 2016年9月5日 +TIME_FORMAT = "H:i" # 20:45 +DATETIME_FORMAT = "Y年n月j日 H:i" # 2016年9月5日 20:45 +YEAR_MONTH_FORMAT = "Y年n月" # 2016年9月 +MONTH_DAY_FORMAT = "m月j日" # 9月5日 +SHORT_DATE_FORMAT = "Y年n月j日" # 2016年9月5日 +SHORT_DATETIME_FORMAT = "Y年n月j日 H:i" # 2016年9月5日 20:45 +FIRST_DAY_OF_WEEK = 1 # 星期一 (Monday) + +# The *_INPUT_FORMATS strings use the Python strftime format syntax, +# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior +DATE_INPUT_FORMATS = [ + "%Y/%m/%d", # '2016/09/05' + "%Y-%m-%d", # '2016-09-05' + "%Y年%n月%j日", # '2016年9月5日' +] + +TIME_INPUT_FORMATS = [ + "%H:%M", # '20:45' + "%H:%M:%S", # '20:45:29' + "%H:%M:%S.%f", # '20:45:29.000200' +] + +DATETIME_INPUT_FORMATS = [ + "%Y/%m/%d %H:%M", # '2016/09/05 20:45' + "%Y-%m-%d %H:%M", # '2016-09-05 20:45' + "%Y年%n月%j日 %H:%M", # '2016年9月5日 14:45' + "%Y/%m/%d %H:%M:%S", # '2016/09/05 20:45:29' + "%Y-%m-%d %H:%M:%S", # '2016-09-05 20:45:29' + "%Y年%n月%j日 %H:%M:%S", # '2016年9月5日 20:45:29' + "%Y/%m/%d %H:%M:%S.%f", # '2016/09/05 20:45:29.000200' + "%Y-%m-%d %H:%M:%S.%f", # '2016-09-05 20:45:29.000200' + "%Y年%n月%j日 %H:%n:%S.%f", # '2016年9月5日 20:45:29.000200' +] + +DECIMAL_SEPARATOR = "." +THOUSAND_SEPARATOR = "" +NUMBER_GROUPING = 4 diff --git a/venv/lib/python3.12/site-packages/django/conf/project_template/manage.py-tpl b/venv/lib/python3.12/site-packages/django/conf/project_template/manage.py-tpl new file mode 100755 index 0000000000..a628884dc8 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/project_template/manage.py-tpl @@ -0,0 +1,22 @@ +#!/usr/bin/env python +"""Django's command-line utility for administrative tasks.""" +import os +import sys + + +def main(): + """Run administrative tasks.""" + os.environ.setdefault('DJANGO_SETTINGS_MODULE', '{{ project_name }}.settings') + try: + from django.core.management import execute_from_command_line + except ImportError as exc: + raise ImportError( + "Couldn't import Django. Are you sure it's installed and " + "available on your PYTHONPATH environment variable? Did you " + "forget to activate a virtual environment?" + ) from exc + execute_from_command_line(sys.argv) + + +if __name__ == '__main__': + main() diff --git a/venv/lib/python3.12/site-packages/django/conf/project_template/project_name/__init__.py-tpl b/venv/lib/python3.12/site-packages/django/conf/project_template/project_name/__init__.py-tpl new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/django/conf/project_template/project_name/asgi.py-tpl b/venv/lib/python3.12/site-packages/django/conf/project_template/project_name/asgi.py-tpl new file mode 100644 index 0000000000..a827238196 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/project_template/project_name/asgi.py-tpl @@ -0,0 +1,16 @@ +""" +ASGI config for {{ project_name }} project. + +It exposes the ASGI callable as a module-level variable named ``application``. + +For more information on this file, see +https://docs.djangoproject.com/en/{{ docs_version }}/howto/deployment/asgi/ +""" + +import os + +from django.core.asgi import get_asgi_application + +os.environ.setdefault('DJANGO_SETTINGS_MODULE', '{{ project_name }}.settings') + +application = get_asgi_application() diff --git a/venv/lib/python3.12/site-packages/django/conf/project_template/project_name/settings.py-tpl b/venv/lib/python3.12/site-packages/django/conf/project_template/project_name/settings.py-tpl new file mode 100644 index 0000000000..3b6caab333 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/project_template/project_name/settings.py-tpl @@ -0,0 +1,123 @@ +""" +Django settings for {{ project_name }} project. + +Generated by 'django-admin startproject' using Django {{ django_version }}. + +For more information on this file, see +https://docs.djangoproject.com/en/{{ docs_version }}/topics/settings/ + +For the full list of settings and their values, see +https://docs.djangoproject.com/en/{{ docs_version }}/ref/settings/ +""" + +from pathlib import Path + +# Build paths inside the project like this: BASE_DIR / 'subdir'. +BASE_DIR = Path(__file__).resolve().parent.parent + + +# Quick-start development settings - unsuitable for production +# See https://docs.djangoproject.com/en/{{ docs_version }}/howto/deployment/checklist/ + +# SECURITY WARNING: keep the secret key used in production secret! +SECRET_KEY = '{{ secret_key }}' + +# SECURITY WARNING: don't run with debug turned on in production! +DEBUG = True + +ALLOWED_HOSTS = [] + + +# Application definition + +INSTALLED_APPS = [ + 'django.contrib.admin', + 'django.contrib.auth', + 'django.contrib.contenttypes', + 'django.contrib.sessions', + 'django.contrib.messages', + 'django.contrib.staticfiles', +] + +MIDDLEWARE = [ + 'django.middleware.security.SecurityMiddleware', + 'django.contrib.sessions.middleware.SessionMiddleware', + 'django.middleware.common.CommonMiddleware', + 'django.middleware.csrf.CsrfViewMiddleware', + 'django.contrib.auth.middleware.AuthenticationMiddleware', + 'django.contrib.messages.middleware.MessageMiddleware', + 'django.middleware.clickjacking.XFrameOptionsMiddleware', +] + +ROOT_URLCONF = '{{ project_name }}.urls' + +TEMPLATES = [ + { + 'BACKEND': 'django.template.backends.django.DjangoTemplates', + 'DIRS': [], + 'APP_DIRS': True, + 'OPTIONS': { + 'context_processors': [ + 'django.template.context_processors.debug', + 'django.template.context_processors.request', + 'django.contrib.auth.context_processors.auth', + 'django.contrib.messages.context_processors.messages', + ], + }, + }, +] + +WSGI_APPLICATION = '{{ project_name }}.wsgi.application' + + +# Database +# https://docs.djangoproject.com/en/{{ docs_version }}/ref/settings/#databases + +DATABASES = { + 'default': { + 'ENGINE': 'django.db.backends.sqlite3', + 'NAME': BASE_DIR / 'db.sqlite3', + } +} + + +# Password validation +# https://docs.djangoproject.com/en/{{ docs_version }}/ref/settings/#auth-password-validators + +AUTH_PASSWORD_VALIDATORS = [ + { + 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', + }, +] + + +# Internationalization +# https://docs.djangoproject.com/en/{{ docs_version }}/topics/i18n/ + +LANGUAGE_CODE = 'en-us' + +TIME_ZONE = 'UTC' + +USE_I18N = True + +USE_TZ = True + + +# Static files (CSS, JavaScript, Images) +# https://docs.djangoproject.com/en/{{ docs_version }}/howto/static-files/ + +STATIC_URL = 'static/' + +# Default primary key field type +# https://docs.djangoproject.com/en/{{ docs_version }}/ref/settings/#default-auto-field + +DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField' diff --git a/venv/lib/python3.12/site-packages/django/conf/project_template/project_name/urls.py-tpl b/venv/lib/python3.12/site-packages/django/conf/project_template/project_name/urls.py-tpl new file mode 100644 index 0000000000..622f79ef4a --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/project_template/project_name/urls.py-tpl @@ -0,0 +1,22 @@ +""" +URL configuration for {{ project_name }} project. + +The `urlpatterns` list routes URLs to views. For more information please see: + https://docs.djangoproject.com/en/{{ docs_version }}/topics/http/urls/ +Examples: +Function views + 1. Add an import: from my_app import views + 2. Add a URL to urlpatterns: path('', views.home, name='home') +Class-based views + 1. Add an import: from other_app.views import Home + 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home') +Including another URLconf + 1. Import the include() function: from django.urls import include, path + 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) +""" +from django.contrib import admin +from django.urls import path + +urlpatterns = [ + path('admin/', admin.site.urls), +] diff --git a/venv/lib/python3.12/site-packages/django/conf/project_template/project_name/wsgi.py-tpl b/venv/lib/python3.12/site-packages/django/conf/project_template/project_name/wsgi.py-tpl new file mode 100644 index 0000000000..1ee28d0e8c --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/project_template/project_name/wsgi.py-tpl @@ -0,0 +1,16 @@ +""" +WSGI config for {{ project_name }} project. + +It exposes the WSGI callable as a module-level variable named ``application``. + +For more information on this file, see +https://docs.djangoproject.com/en/{{ docs_version }}/howto/deployment/wsgi/ +""" + +import os + +from django.core.wsgi import get_wsgi_application + +os.environ.setdefault('DJANGO_SETTINGS_MODULE', '{{ project_name }}.settings') + +application = get_wsgi_application() diff --git a/venv/lib/python3.12/site-packages/django/conf/urls/__init__.py b/venv/lib/python3.12/site-packages/django/conf/urls/__init__.py new file mode 100644 index 0000000000..302f68dd07 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/conf/urls/__init__.py @@ -0,0 +1,9 @@ +from django.urls import include +from django.views import defaults + +__all__ = ["handler400", "handler403", "handler404", "handler500", "include"] + +handler400 = defaults.bad_request +handler403 = defaults.permission_denied +handler404 = defaults.page_not_found +handler500 = defaults.server_error diff --git a/venv/lib/python3.12/site-packages/django/conf/urls/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/conf/urls/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9e343f1f56cd4e5a43c3d2d8bdc8592c33bfcf61 GIT binary patch literal 584 zcmZvZF;5#Y6oBnqLZTx^qE%T@P$ZOrI4yKT9jY?6Kj0Sk62By-KKuH7cU3kj^*^w) z^`BJgl&R<>q^eA8NNh~CAyibtgZ;hF&(F{DPsU>6hdBB%?NdT7L+~&fE4caQ;gm=s zsU{gsC=J}ujVwwcN@hexXEbR-bbMFq;rRWUta-ojzY9^)@&4HpKK6d=3Ey2b2d%5H zF`#u@nTakXc!*wpa4XR*zxK+x$!f({mADw1D>Vx%$AbBgNnaRC!h9?jO1e-I^-3Yifc9I z`J$Lxvp;}O35Y=HG{+!A&+a<)$I3HK zx>1m*6p2bjD7SLxp+~CpKj0rg;*zvQK_-X;aNxFOd+Lcdvvv|tMw&NoJnucv@4erf zp9TiX2u6M3$Hun`LVxg0Hq=ze}ZR?v*CCRu$XC6%@aQFlngioKIFJG~o{K*_@_!0g=yaUU^|{jn}*+Q~{a zmSqubOMBcO#tLFQf*7onY1`=WvBgp>aA_`q>6YZ08mz;@^m+{b}g zhzY>&V8{gq&^$4C(`79;04JB?MjY784TBjGYn6ZUtqu+YuY=bJjwx}luq8MOL&oFS zVbGYy0c_yF3P9Rk?0{W*)(;hNRE8Sy@+HOVD+~3HXXmaZisw=m@r*=3Hb4<^_9aRj zd6aT^7{9z>wnCqnzSZ)>*fFbQ!~D>)Z(Upn9CMAs49yJ^Y?z+AX0|)56$Wq5%w967 z%gDtx7(y+n>8uMwep!&4x3ym!|Fbx9q)+b8ef~^eI?{)B&)@r`r{+rKZcf$nU8Jh{9ylXAEiTs)hsd$_ z9)bXp9G`8Yj09)VrHa0|jL?_T>GH30!u@YBerGWc~cJ>jy!AWx`@$h=p0)_6QCem~Do5Eet(k1@v7!C9F8@Zmvc#xryBd{!c!q z3_Nv4Ga49(b(%~WkIsn4$(;7z38`r-j6H`_vd?Vd2v0-ERYSgd)yPLYPl*oIJ}z%k zcBvasW(77$3Te>=^91hc?+HJ$)ZC`qVk5Xbj9MFzII? zfI~xQ?2U&XJ*`Y1R^|^X^Zy`OU6Af-N7^g9w+=^*gHhwzTUUP8-v4E!^4)8P!#3uk{HvS>S=q=-L0$#Ckj;gU@{!^C8+fan&d+!cHYouvhIy1^1!}YQ`WKmAGC;P3TNl&-B>c)l}7t znJ@>DJuJ(DM=yI31Qmt7?$M**Ma@BJ4G6l2y=94~oP5qvOc>wp2gBkgw+xoc9ZXUe^;`@P~q8 zy_jI#F9qd#86#SDu`~1=t`GOHQT$IOxM<+G*x|m2d`~JYsFYsV6oALh2N7ox<$muh z3tg|-;nacuL!2%~wrl|`2+F&(k=3dq7U3I)Z{syA_fQ{+VTl1I;@~F(d_lGl`|1XlOq{!k7j6l@1yq4Z7oAiF3XYaD>_1b+}EDw zpFnSvH1QQ=6zu(Qg)#w|r?SICVw0=$7YHySDQGU^M6m)S64&#oAYMouy3}csfH~AG zC$27M0dd-P*kon{$R%D7F)qO~rT@D|rfQTaq%FP1mP4YYLE(5%g&?QMwIqhBbCQ^* zNo0!>PK6}QB|X;Rs_Ga~5 z(b<>9+4m!R?k@bX@YnJqeYI-6sh)UUJ@H}3&fiO)iaXv`st+a}8uyJy=l-61JonG! z>fx!?iRo9B>1Sil-Oo9#R9?^JEBZRh7xWE?kBkaeb01fr8mQciYz}jn&^7$kq@`r; z-TK3+NtYWmk{%01LU){*t81kc?;e;dF0%>b>U}16e2n;*!n_`is(p.*)$" % re.escape(prefix.lstrip("/")), view, kwargs=kwargs + ), + ] diff --git a/venv/lib/python3.12/site-packages/django/contrib/__init__.py b/venv/lib/python3.12/site-packages/django/contrib/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/django/contrib/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/contrib/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5b3ec9f8a9cf00dfd62dc5728755afac014b969b GIT binary patch literal 191 zcmX@j%ge<81o5sX(m?cM5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!iqp@?&rQ|OP0Yy6 zFHO;RNiEZNN=(kybEFQ_cZ$j>v@Gc?jK&MZmQEdVM^ zOiwM=Pssu+OwP|MDFUjCkI&4@EQycTE2#X%VUwGmQks)$SHudmjuD89L5z>gjEsy$ H%s>_ZJ0LP4 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/__init__.py b/venv/lib/python3.12/site-packages/django/contrib/admin/__init__.py new file mode 100644 index 0000000000..0d9189f6b1 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/__init__.py @@ -0,0 +1,52 @@ +from django.contrib.admin.decorators import action, display, register +from django.contrib.admin.filters import ( + AllValuesFieldListFilter, + BooleanFieldListFilter, + ChoicesFieldListFilter, + DateFieldListFilter, + EmptyFieldListFilter, + FieldListFilter, + ListFilter, + RelatedFieldListFilter, + RelatedOnlyFieldListFilter, + SimpleListFilter, +) +from django.contrib.admin.options import ( + HORIZONTAL, + VERTICAL, + ModelAdmin, + ShowFacets, + StackedInline, + TabularInline, +) +from django.contrib.admin.sites import AdminSite, site +from django.utils.module_loading import autodiscover_modules + +__all__ = [ + "action", + "display", + "register", + "ModelAdmin", + "HORIZONTAL", + "VERTICAL", + "StackedInline", + "TabularInline", + "AdminSite", + "site", + "ListFilter", + "SimpleListFilter", + "FieldListFilter", + "BooleanFieldListFilter", + "RelatedFieldListFilter", + "ChoicesFieldListFilter", + "DateFieldListFilter", + "AllValuesFieldListFilter", + "EmptyFieldListFilter", + "RelatedOnlyFieldListFilter", + "ShowFacets", + "autodiscover", +] + + +def autodiscover(): + autodiscover_modules("admin", register_to=site) diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/contrib/admin/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0c3955156f2e073075382af6dab7b2e74e66f742 GIT binary patch literal 1307 zcmZ{jzi$&U6vyq$@1$wdHf=&_>4tPebAlqlP$88z6_ucs+Ny(>lN-CqfqjndE=AcG z_zPId%!Xj&pFm<_VX#09Ol*h_l{(?)q_j$lrF>*RKR-L)_r1^MauJ!~H$NSIOe6FY z7U#nmPEKB%$uVMxVSywjSUSX!DU!kvb3|HZNJeH!R^~`f=1E=_NI@1!QI<$aj*&50 zCS^HJ#%+E|OvnnU$VoCOr^u9?CeyM?s&a`5Sj1i-NG+;pqtWJ+DZZy>KqH=uAqILk9a$X6CSxmU0)SqpNbxjHv%r$6BFME zgxS-xkCYOehF9Wi9Tl{$=1;HFgpVdyo3fkqN23#?f#T(RcepT>*l5n&Fuom%D+MdN zf$R!?QN_*b;^Xa|O|reUxB5iq_nSL=n`>rPe5x21t4s!=F79^Jiw)Z1NvzAe32i;+ zY%>%=$aQ&-9`po_220n`1$$&SNVrbNhA!4s+Dnwtw55)CLv2VA?>BU4B5zME(u99iDM=+u#@_ z_j ziboov=daB_w62c_LfZ~ph;Mbbt+Ac5t+8!@p8cnu>cU4CU+TOy0yOTz1A6Y-w}4LZ zg+KJoVOB2*MBErS%@>NYAZ**_=$!9UA$)(J*#cYw@=cFQ|Fyl(2J({-K_OC7^=v{qJbyPr6oeUgl2jVSLY4{tG5YWIO-> literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/__pycache__/actions.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/contrib/admin/__pycache__/actions.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8d37f4c91d113562f25154a2426be33cf16e61e9 GIT binary patch literal 3401 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 FzX9{;!AJlA literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/__pycache__/checks.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/contrib/admin/__pycache__/checks.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..acd5f32c93127a20bd31dce9d47bda87618e190f GIT binary patch literal 55964 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/__pycache__/exceptions.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/contrib/admin/__pycache__/exceptions.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5545a9e2780ebc0b5773a1fdc116fb63de06c0bc GIT binary patch literal 1167 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/__pycache__/helpers.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/contrib/admin/__pycache__/helpers.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..51b9661505954b0726a874fcc64dadfaf18b308a GIT binary patch literal 26746 zcmcJ23v?XUdEU&vU%)P~i}!2s#^TAhNbm`gfJjjSEs~NYh!z53m*hf=hi4WP0WTaT zVH&`uEg*G5u(m@e^*JIfwW8Xbh)&#CPID5q=}9pJoLNuchCNZvX?uEFkbomgNgv;T zXJ>Y?7@Aa5-vi#gbMKuy_wm2)e=q+$C&$Gh^ml)F{*R7v+~3fH7Obhn+A_~^*SRnk z=3`tR{hDI@u&K|)Q`#Ie4_o>y!`43Qu&vKFZ11xVJNg{M&ORqAx5Qk-?mjn5TVtN# zoW7jl+`imlZ=aXt*PyF6k>_ zX;-XtxU8>ixV*2NJ-cHS!4s5z`RH zn;qUZt2ur3tY#i+=D%%94UL(sZKwhDq*TnLQkXNkdg;-t*@=Eo*W|mim zymCFSh2>QsuQJl0_okKQRv|YSY1DJuSZ+0PYcQI#*<<0jp;tHO>2GhD;6t_ll`8ax zc*S~tR2UXRHYG0{6~|%&6aC2OKOc?6!b;xx*g!lU8Brg_NL*C>7bCH;{&?haJfogB zHgGNy%gFG=Mn_*8A4@f3{o?p&Jc4iKpFB4d8H^ttjflOY@$Sn}F&;82zMfGb61^~@ z7M_a4l$_@VMkdaTQp_GtjzrFkBI==Dp&dK*3q1>&6vyDe*!id+#uZO2Iubc2L}xyfyoKQ*Dpq57$lk> z7^Lvh71cEItzrIcU?GKfOj@eX#@@(P^E2bH zIcy1AS*b5GUrmQ?VS6;)p5twcn&0P~aE4rptBds*>oGiOSJRyspp`AJ!u1G*5Q=p$ zHXw?VIqEpu1_p&uQ4Cpxaw>EPkuQ!%g-BSjM@KN912M(+dNhnF>cs~f{rw{Y!;$`e z#nsVhkLzhYD8Qt=!f9gRf>Mi?Y0?qkt# zI5Kj4WNbXHr22zdr~cgL)@W#-4t87|9gcJi4_q7`9S?ULja=$DJTUlLTlYw~<6LZD z+@* z0A1~46G9oj#G*B~!cgVW=(Hz;|73yrr9E>`bd^6p!AS_^Ey@|@7BHN63hQiO?Hi=#LVMo!Mj zg_&L#MSY0#A5`thU&q*DORaS8K~#%#1={AxWt%DrKG z!~TY2&~kwrG<^ZHdln;~vQ631s;vYy6L!>b44PQE9c2!bIH+XKbj@kOTT_lO|1A@q zf_Sn_Ii~DWHuQjc$U?%3rxY5XJnH4H*JCPcbLWNaXj#}n(JqR1Q}h%f#lglO4coQ65Ne3Oj_3-v>f`D|w?d1K>S@b0=j@Je99Xq+ZHIWdwOeZKUTS^% zW2?E&waOv-&%UNv*Zi}qX0E7gzEdh}_^|aacYpqa=kEsY4*X%!z1^Q*^1QTeM#X8% zvLm?a;K~~*Rh)E}F1l-ymBHzg$*T5g%a0u8pFGUr_PoS@!m5jf=*f3{T_MNsdAjO+ zKjiF4{;%DxuK*RtqsUFG<;Kr&E#{rKE*InXEt z8s)$aDX?SFzY|5fN|GfNH!E*cE*3Z6s$R94a@tnS7N?65p-t0Wi*Kxb1JMbNCpVEp(W4f@2&$eBLakZ{clXnOvv6U$y>GPsM-uE z|A-C>1jSkxeIuhOF|_{?o$aO0mZm$K{le!^E@pK*BzZyJLch3f+f+Q?G_%y1%$ZfI zok6ZZ)BB6-kRvMgpBo(?32*AsDe6)NL(nR|g#7GztCqagU<;eONwCP^kra^60*_Om z*dP{pVBsbb8H`|dG6$vnHNOQy#c6H>cvy!c;pjjLjRl%V#dLln0<+vnZyG?@E2KP$ zTM+@6RRq26o%2pxllg@YIo?@0eK_gKn>}^?rMZ_RPsL34su`L0y@6>D8~klkZ*RyW z)Sv;OmLf*H_fd*SfzC&)FW8rgnvmy7mNlqCnD(2Jz&4{b%_ptGS~H^STwI@PBQ(`kIgO(9s$zYP zP;?X7AzYoz)yKn-@)GhyQf{wsA9(|Bd}-!OU!7WXlyB~rF7|y3l{5PVc|nH(6s3ZZ zkO%#NPw5XnA}<78MiR&+(kSwoMxiUv0zbhs;V~0hQ{TG8oz}Dl{&nuQxwi+liqTkX zU`&jJtcn@74HW>0$*Sal*8a9hg$*J}A`L+kKXO5jQ}0L5#UhhM`jllA(2Iu#+ z66xl5F4W02yQG?39~_mBo{^58SvQ+Vd^3^whRT}wX6mx=AzQCX?OV_+OM!zp4LJyL zUX?xgDRrKrW7=C8+=3`3Bb#9)QsxJ!Sh@Mh;?kryFX_t%+aS)7=e2gM)}(ktg--J; zh~^hOFqy54Ulgpel*?kxRX;-Q58|I5G}KxPA}dY!!`98F2at4|5Jk1#L7lYX$%223 zpd^v_4YZNqXEKO-2F#dX|4MyN@Wu5u5~jFLob_^N!gPV!q1IU#u_sKK&vCa_GR>U_ z>Rxrs7%CP=bylS@3J-^N^e-kXc+%NH!VIHEYJ*n1tiMz}TZ9MnnZzOm!j2IC?BZ8O0uje%UQspg+ib{-ERiib< z3G#E1nc-l{HMMUMh;peaD-AUmyu$d_r_OyBA|sK@W5R*SdL1uy_SL>GHaa*E6A!fO z)xM6mMIw$rW5@@r3%Tz53SeT$$)7!Q{pGor<$`*tpnlO)f6sI3R^7Xy+abBRQ)=$K zyHjfJlADi7&Bx^CQ&RJ(CC@3~VaTQ8;jeY&bp?3UKI3G=QS287MA(xB#T6B!BVv4D zWH6$b#kimn67xVTrsSbc|0R@z`l=S0432Ki;OJ}ubXvp6=r0ii&*0zrn`dB}hC58d zh5i^QCZ4_GEu0;nA6oW?-s!t*{l2)|b|hIAoNt^y`n41HORJ`jUOTZ;-?YXi28uhV z`nnaPL`DNyWonqQr4p3j(Z&{ImRgH$to;u}Ds-mVy)j$Wa0K%E%V}jl@d&HRB~A#% z)3{@Ze|VP<^RG3*Ajb{4(2=YFOLz*$Q&74;4&6Wv#(X2);yY$-CnWXmD;k6oz7naS zZ3RFz+g4B+3NMgI60$4K$jJC`M1ajsW!bdMimEi7N?GgJ(yCaZ8s$`tgKb@;%nW># zVTq_BND45BvQKUV490`5BVQav#L!@+xO$=Pt(G@imWtaSayDlVKXYulYkEBC4a{5Q z;#LWN-qw}ECcqF`dFIFO@OPen&-TF?x%&mF`vq{OqI__sy!>?sS5&&Z=I$=&%*-UDU zB=+W6j<%m zz)B;Wj3hAIEm1Ya3UV?Y3z>xxJPBmB+e|eDTKCD?G__D|9|qL&cTrJ1fJmd3mcrco zfr6wzFn?4o-y-49zh%|R-eeHH731w!To zDh+0WG^H78{7d#a*)a%!pgJN}15+fm&u|&?jG_6|P!`ao5Uov)i#xQm5w+ChqfCXC zEaYhkW&(OgZx8fR#=D5t316g$IJ~+cmviJ|Wbn0fqnFjqHa969sT_qKw7m*|4UjFR z+v=@}G&5N|(4VG@x)?wxBz7SJ4=gB|ub+Dbe9)CF4&oWM;Lf*;bhdGSdtq$wCrOwEAW80Hx;zej#S-yUXP@MvF7|B8?5n^_wb-sA;8Z6ObN z)9-1igs%BU`4K+KLF6?aNuKsb`ZrEG3=0XppM(rXqNiXF+upHjZ2B~uO){TCj$S4A zk_L~@lIwv`g_adtbc88;guKEl6jdOCSPI2^1a1s)U$BytC&E{NIV_0d=g&tkhg?E{ zDl=#;r_@zM*m54D-8|MbWB-g4Do*v)_`n55A2oPqcAFV``74OB;QedJnha#XyWYlo zRQZn)0pRlk)Akkr1{h!RKQ--0y1lZy?4G+U>G8kOJJY*Z*0Strz3=wE(K*wJ63JaA zyX)?`>r&8e=ue$-i7LkoWS5qqQ=x_nHE6Wp~_gUQtHW>VM#V7hN4aCMH{VAtB#cz-a zv!Q{k#WYsMrFs+4el{DK@SF4v>Vbhrh_Da&lVyx3Zct-&!R+7Bi@PB%UE!cNdIGcE z*A6CIw!C}b_JO;7_gbEwFSuFx&niDWHS^5O-WOJ~Q`>9H^H9^$SB%VCzixM}gXf?pr(F?Y!M7x9pW#_TGKv!}xOG%yhTjR`8xX zxX^cJ$NQb{b;{e1N%*TjmMkv6>AK;Pi`%5)wp&9|@t&FE9~HOUdgiX>2d?kA6y403Q4mIwH77d8SkdB<`-e?4o zxw8nQVGB&sB9Upb0JsG~>`PMzzBKivseK*n=>WF#m@>h5asj4A_Wzg zf$>);mm1q>7x@};Cd&dso^71zB{RKi&NcrO z^xbLeinlcBsa^5-XS=`Jy8=*t;j1T8>Z$ChkvuhPPAiEyR?YE+7D)>_7d;DHV17ot z(UKX8@+p3zHATPQr0t_8Z^3|%q6PD}ty5+vm$A6!w4EC~+h{4#dkPl_fpE_K&bDBoIdH_HxRriM9%N8`O;Jk zKyY8jz=2SX@Y{G(_y)c1L@hYz0z?&;>SV`ABXJ0UgapMj_F9T^vaj}&2dK&z7~GP` zCJ2bYE(lr`j}RG#SF>sfR$Qs4(Q`wJV_b+aA3Vj36tk$1>Z_XhlpLb)>L*Y-88iUw z4K@BA9}{T^zrx-36w97U$x|tN>LgE{>}g-}v?sGOJC-~ht5$QsHSJh+IGnXB`6WqT z@k(LY{4+P7yYbvoVe?`^i|%qHmp>(yKP8v%lgjt4+b#aw=_BhdE>N{twd2m<-OeR{ z&!VU2XDi+c@`k8g@fXfc{?mi^JT>G8QTwS#O5G3bU7o`M?vDe3!!71NZsrkhFv{tK z?)QO7gflorzzy?LJX2E*utFtgfJ_5;H*y0rCSg;SDf5&Gc#(rXvH(fMoX{cmEP69# zWzM9JQ00v<12WQKA0lz9i-osuxm2hX)a;C zax$X@IP_+;;5R{yN9`1rPdVcRvMeN=TJC8sUZm&R!+P67PQw1kH_~|f_}0tx)~!QC z*0VyKm(Wz9YfVxN%}WltEJ<0S}I{5YShx{UrqkgTGhrooK>7; z{p%-JfjQyC@uAI8(M&{16V9gF=uV{zC_#{`iYBJQ9D)q+iSBtvmrvtzk{+2VVMu5dqb^g>+C z$$R6OnP+BSmpoOvEJK_E53;9R@|43^QxKdMVeWBNICrm9gl^T}@!xrEsp9ZVFZPe( zvoBzu&{r^Tx#_&&l#81r{CS(mAGqX3$-+*lBqWz~NF^O|$u6m6*Q{;b#s$jecP;F_ zV_o*|N|sgM+<#;Lt%5t&rLtX%fn7*blHC0yh7J3E&e_Mo6Rv!H+rRL&3F9Jw*_ z&hWB--vm@1UjEmwEVXtm)f}EX@eyi&@#dFre0h1x zp+9L`?D*Vr;Q3^6#bR;jeocd1vqP%cap(E>Uw!Y@4_;WRfr{`^&GtLpcemaR%LiVR z4!pQj^ZD5mE0xW+_AXUEHS1pSR%`wL+4>$Xuj)Il<<-h;#=w9&~@ z>$@`gyt)U4pNb?%d@rx3h5OT%;M2wCKP%!9t6M~N!+j2te^tmNu*milBtwrt(TDga z79*m~jymgc{^7H{3qFFyIo8^>$_8tPYG0zNgZQTh-M;j7WM$ZwaD+s2;!C;m<-pd& zYez~{TN524!Eq8t*6|V7hT|h{Iy}IRAy9ighg0Bl?p%sDy0{OEB2S$Rb{g?UJDL2*I^ z&1q+C^bQj4YXS0rs*wEy66BEr3xZZg+;_vV6+CG($HB_6;XnzzL3r50HXSU1ikEe; z1hT(@bS{*IO~&STquLsOgB^}6C%VkU92kjEvXF3~j09cv$%!YTJnEARPx?%#ek&~~ z$*`e&6bqc+6|cglvXm<*g8{&qEFyPG4=e-t$<;k5vyQPWJIa&p%0+iWvZihk zB)N7MSp|a0?R(xo@UITcip&ku_EzqjxywZz9|)|)njKW9Dp}u2zcuI= zz+W+igDJNFIHwtZbBKs{R=`+~VTMg<-P-uw&(`1YBg{y~V}P#>X>bUs5j?|2P^#u- z#=g!x!`tw)jz>o>FbkXF7!{%yqBzwo{9E)O%NoJl z6DJ=*1DW^H3q%8>h*S?)+KQ~d=dMpSx6923B>Z_A?`!F0$Y3zF;lSCN*>srCeZZMo zau+>~uozd>kXZWc%(JqmLGm=*vb^iL?U9?hq^7Q=rX#3c<$B2F;IvdPPD?dGpbggD zoVYO|SM8Uo_TRm@RQ2?tr+g*9n%eiwdGM3^5`JV~ljLiHjU(wJyT;AqH;yN(x31?o z$pzP$le_9f!>i>m++Kfn?pZm|Dg{~}a!&a09(_!U^by%tC;949?XG(r)TjfEn$Z9} z?IB;gYwo#gHnc=tlzokouW@rPe{P$cr#9tx)l<<^wbAd2h%6)b-`C0gwYLAkI2htTE1HmR`fUg7pT`P1%XX`Ni!ER{CPr8}k4o%c%j-p!x(u2eKEH}1Y0 z_(A3ODwi6MEmgorvDTT7Q@dT$lRx(6&7Qk{VeZ00>Ak`h;xPUq+23~0-*%_;Zd^Wi zTEgGf)5(fPxuRXFXqPLtNfq1fbS_mKm~|y!&2kn z#X#Nt@`hwZ)6M=H{kQs-Dt5z_x3X}hs3BQgLwl33!QAxT@TQVzAJ;(?7vcn9uw}7z z-(uzdWUxM2y+y9xAyx0V)3;Q82&RXcWBf`{^R3Q1@%Ja*n|S}1-}~jIqNg8}?nS0nP4TDQ`j6!qK;mzj^$vlW(59bB3%aAN0Xz zxT0{j8wR3^#$*Lf>o>`j9a3dSGT1B!w@bn8$?6uldZ$#q6Z@n^`Rkl5FaN<_%wmd{ zJze^A`DR`QF2=3>1ESA%Of;>U7;z|e@ZW((vx1SbF$u^AReZwQX-*Z^9cIGj46dc` zvPOAoIitQs;|rh%=CJKs`uo^Pgzi+9k+(Z zhsQ*fuEm4BFO}U$w8OA}IvfFfQSlY%suDgL>a36sG+%?9mpL zU7whnkc--+qPA(z3U+JZeTI$q1>M4XPl z!3J9+d25#4wVRI}ZuXEM*kj8?)}==-6V=EHn#o|}aw%SRB>*ufY!MjUcW@u=Ox73- zEbGNTp^+7!GJqM-%f{6rd12FTTXeK-9?1VMcsqqpZh|+;G*scR8tkP1pBaE$o#d@s zbkzOAx~ll%qjB7%#l(R@*k|LL`u#W5?^=V&&VKXH4f;=qToxUzoBL1Dz+mPY5|4x# zf~>3nPGHH(!lRMKq#C^v|4-Kym{mG_22HD2_5xBH{avWckbbbE(f^Sq;}EKBxUT?5 zf?D5fRW~vu-;O7~z5wi}xAzP}$d|SE0Dp`A@aQ0}quGa#F*|{};kH7LFHuC(ERdm1 zJ(+r+QVc?AWz}=5EtDd`SQYdBfKn7~r%`+xiL2ZLlga8>&F3nrA??63ELm2Stb~kF z1C@KNsLcA*!_JU3_u-3tlQsY089vwQS`DU7ux8y_kbQ#np^LY+!<3+2g;2kyU5`+& z=e6m1ZK*tiYY(WugZQTh8aIWtV~FSgly-|-Sl=@VJ5q<9oZ5jAb`cl5hN}K=Bpl*^yqa^TCr`NuW=(l)a#m21-y6FH5 zq6W5Yq2ouwibJLrY#ckn+&I0Z4IVjo(lI7ZQauYZ*jo4+wyt54gtGpP4Ntz6Gvm%a%E3eaU6RB3+}&*sm%&3}a;vls9F3`YM#Y)&%Ue3r9caqwPo*JAz7yJr^b zyHFt~S>8%U`;rw$&Wv5cwN@VAY-q7!%bku7_WsmtGLk`PQEKsT?YoG6p7kC!;6v$C zl^G|a4G9*=m;r}p_Gtq__q>G(%=+S?E2$90*`1XPJC%c~fb#SnL5iHzM&jRug_QF=52VIxi2qiq_U)(D8o0j#Q5rfXn4KB}6F zRAbcdqHV=N8yMtl4^4E0GHhc5c_K`>=EcWA?fmn19Hyn<=rZ#SH zVAcub7LTKK?REhl&dZkKc7eR2wE6y?@AR!p?qf731TIzUO?s!J(ct-9x zEp?n;Y&pH;I}Ih&r_+<7t`Z*1im|9~pnY{<&)qEB8p1d*sS)sj?f_9r!@e&FDl~ zo)MEJ$%B#d7!n%}JsC>&kI(@O7^)Gh)YPsV;mM zGDWNmmvRnvXvLeEqgLW2xUI)4bWp8izV2q|Mrh&8TW8-qE7$Lp>i5d^hot&LAJi{- zk1aZmZB~%sJ1|MYoIY)GzsWFM4+0 z_pA4vZ6Lh*tdTaf(TDl*^AXl>oB&1F?wH^e|IzMeyU!dy+1uZ9y!+Xs{k>h!b@$*Z z(1MhsB(oQ_vlusT3xAI(hZY@&7zp961zc0)&QcPEzokB<6~uLV{FtIoDEeQB;4i9PY&sYLdF#ia zt3$|TFn>su$3LX16v;%Qh;05$(+UgK8}HzS_)~vAeA$|u&;$!viYE^@o7GzQce!S3 z7q2Rr)XE_K=>dadVXY27nW`F7&-kkj?NmQg!>m{yv+&A1*j}3_asdZnTL@lw9v3*bj78vfcz)Cs>%|NGcaZm149J_>dFyv zSxN238qm&!iH?(s{I!C|ISw(m76UO2gvUVi+jJ>Rw)aG*-yGn|q zlwwRBo!etu34A4{ceoyTmNc{ORr=`wQmtZx-Ds zTIgOX39S@X>9@Bmgyn`#siE^ji+t=Q=@>3i*6we4V8yGSFctS#cXze%f4B|NBhDos zqY?aXivACxOzb0QXCPli9VRbmVBb1yGR=SIuvzm}ykaPUB0Xs6u~vhuOuQl!h<4vg zpCye|@TI1+Jj{3cS@?HP?l~RDt^YyQ5XH;!fB7}wk!B2LBCka+))T@NfD<7@R)ByET+R+d?(CfO z7c^TtzGMO#kXTL^92m829-^tv3R+Jy+A;iJ0nm0e+6J{TY}@i=eY{p{;jS^UJZ+ZI z$rCf=;a=d&xHcioPP8jF=D{us_t9&B*&h6;9!B0M^U>9|g+wKHV}??ot}-qi#~Z6+OR82Z5Cy>@HkZP_4V} z6Puq(^EQ;yDHHVu589H+dX@gW4!XAp?r`Kes1$E_6%KYIB8CQWN!|Y}MjiFMVW8^> zlg*AC>ppVg@X42$c&1o-K%vzC?|}~Uuv-_|HA1RnMlv-sa5I61(N)FD=0$Ppw2!TQ zmLLD8j(wPM{C5}!gfc8T{y34?4vyLJ{9keIzvYTQHraX8#~h-c`fykK$0iGJdcYz2 zsf*(q|C;OiYp&xb-1fib_Wy)y`w7?j6K>c2qR=82Shv}E+ib!0(z()gyl(qAu!k>r zz#;nhG9M&2JwzY(AnBr{3&}Em#{&-0$NMhwe8&Th;*Vc6518mhir0@>yLrBgpN+0_ lEV2GMlbg?ZOo-KBUv&Z$_!;& z3{?n=psNHj_M-v%QBLRunOOyOx4YN|=!at2+pMu4 zJ?9Q*NKy1Q{aEw@ygYO7x#!+{?m6e4b7ua<;iw}}qNATo|BfZ(Kkz{n3^JP{9t>*C&oFXE%H4d8}IBf$1Z6X%HdIcKDqZ_*LI zk#pUKRbrXe@qXIku4rkdE%oJ=8GR(6BS#45d5dsf-a0p^jIOM2>y@WSkYf4(vjH&o zSK=tJhS|2rgc`rV#<371TSPvco=wh(02|*}NTqoIY{RK!nop)D7U%KNlt^)WTny=C z=UD1Ae~}kN{$wmYbzU|L$`cYw&nEaxDv1O9r};$cBF`O5j?Bf9GpWIEyc!ddFbniK zX83e8&0kJOU^E`fEPjE^`a*{lZc?@kaolWrHkFi3!{>o2FIz_V zIFBt;(65yeN65wwXu3gof^rbiaZE&SC7hYly~RWf6w-5s_ZZIjmOf%!G=(g(>qKg1 zG?^9_PsWn58D5x}GHX-`u>g#;Hy%;C>C#yeGKXudDjbtGs7;*ij$Y+HL(&?}tSOB& zX}MjZAvC0IYTKM$h06a~lPVuerYxCrmU~oa&aFb_|2c0NR-r7D)ukJ>C%sBHYXD6# z1W4AHHQh1ZE@{{}37N(+hpQMAj;Cg#u_-))?ICtnWI29b;HP3~o(r>QM4m18i-?dE z(|n8z3oe-UCyZPtrejkV;vhotFFwI0lWblPc_BK>$*w6y1fyw?L2R(5Cg=F6G=jDg zD8Ov8O_@JB9goe(&M7Jx(F8AwaDpM5Y`LUJo+uj-63~{&b+aO_C6=7xWdn+#Y?u>4 zu#DV7VqTPuRNiH?GL0ykrUV}LBUDu~3P4$gEPH zP7a(;CHR3v?0h1%zzvM>7Y7c(zWYa$+`wcU^<&^7pS(B_pPd|-Ure7*C7%yJw`)M0 zP4oTpfCw8A2RN!o1IQHt@M2tIHaVc^Wq5v3t}Amo6L|J1;Zj8bs%7%nL#*}J99JDh z`^1{PyV&G^Vm4Uo9@i0j<4W=)?t!gut+nI*$h(nS&V1{hD`Q2M_gdy^rr_$3Tpb11 zcFDE9=xZqk`_>wpZ-%~~Ec&}vM^?vk{t!ULme9I`xI-Jn?5*NLj_QL>13k%2rmjTD=$cz@aRa)oxBxI-FK1psw_i z!KcmYn$?YvYo;mP44KlseufaLcB+XfjmEz$lh)L=rdrllAeX?bi8FwTl~jMuQww9x zx3x9hq_&mKK~|qN+%c)@dR_OB1hI-tVptYC0ZC}^2OA+9P}gUb0O z!zNz5R^mlR)c|<>|K*a*R^#Qw@Xb7 z$y&w<7+ZELPR*0<*@~Ant6Ut1Q(@@IT&jRV*0Id7iSsWC$n*0&ZSF;R|_X1DaW(A6xKF5b#umPOMNb z1XNOCJ5I~n1wt=Y+n@rA8N0~Kw#kL~g{WdnLsp>= zyU~iumNyo7VG$gWvH=wautN_vLUy8QgUt$y)MJn>s_7Q3fKxKEEGz895w@}&6f-T) zHiRPjQsNvK9k7HJVt20?-rirZv67Ab=v1NmfYg29Q`>I{cxf$o3Vxo?EXc_3RU{$eu@fq)Y4$=i}hB zO!0bv_*qy$pbi#L?}G(6>aQKYdc5dwUt{|U?DG=)e1RR3*rB4Y>DDMLpyLoOpu_WP zkMDYCG0^&c@4LNg!S+@C500)*tWMn=D+ad}+xuY|jwV`@QYui!!gbzj0ln%_NF zZ0cE!Nln|Y94#t*dFNEo+j8a9!_5~%zvSw_mCU=onX`QJw~vl7u$|vN>I5<(dMh8B zhXSKJ4L@}ZwT?b#Ko1l=3)vElCSwUc8kOs!C|L_|KSX7FH2TIuEMDrV2iG7vn~WxA zXM`BK9HJtxF9Ow{5FreIR0b3QMkz)q7f}@7B1L~NXJ}aW5Px99)nu$&-%So2WY+Zq z#skIEuRg(lg#wP7f}d7YcWtAW-bt!E3C_B{)=dKKMvhUnoj2985S2Gf#6l_6u>E}9 zT%)!M4S-qw+JgqrSv5-ycS`Aoia4H0-3gRx*n3Jzb27nQHs7(_M)ijhaZ_q&7ODyz zWmR`gN7ZR-@X%3c4XO$qWz$C4?>N+3DdMAJ(5h4wI>xDv;T!L`v@sZD>F1ucIxWdFp&>c8V7>CGVM4y=R8f+@uX9xgr~AKg+=ta=t9}5d(eJsizb%a{37PIx|ef zyl4!Wo;p$gZ7((v%Dy~6{j~!o!uz(WbFMVZy&ii7P1HjaMLeg zbr33d;D!o^aHwWFWCN~87=y+?g`e03)m!AV zCjZTr@Bhga`)6(KtB!nIIA>`odV8)|ioVXAx9h4!Aus{RQ|QI21$l+P4ZN8)d$YCt zRFzxf5E_lad7|)Z(GBkRCk(waMVzB_-GSZ2Lykr>^%_gnrgs2M#K3QvthqcZy9?ef z$=j88b>}SIbj6z%YXC&L*j+&W2D&?yTY*k2s-g&iG~&`yK6XwAqmWKjnPoB%MN$_^ zHKr998qH7z&2ltalOoK6cYjq;DM3`P(`K|)A;F`Hw`mtfmHq$QE-F^3nMsI_&0`Db za6yiO=h$B?zt^)}iEl#UFP488mQBjj0{T!&_F^j*4EqbVXS))@iXq6i2;Tv8)K5%z zhzsbj(UeE^6k(Vnqh&AHQ#4YBYt=R@g7PR?69K~$8m7utXjW*-9?Zrluo^VeQIPMU znH2%td{QZK=4ce6U=TQWg}~94YlwLhs%28NxeB%x$=33~*1F~mS(v_5dO(-{Wy-aYsB-k&Ipo{>h+H@YJ9cq~-t;lH}15sQ`!fHqEqSKtB827`S_N{x&hn>coAteR26>(HI? zX-uj(iT9vqLs3kKsSB=l$<_YRUdh#$v-JHT)@T|&Iy81j?-p^_)Jdzeof=3lNRKM$?)t zQ`w~Dpg4d7hBCc!asd(+E}F2Y=;btrQgz14bdeLB zL45{(Zswvgdo>qJtzVOib?P2}4;LxLDlR^$&BaY8q&dC+H`*)AJKdZexh?7d-ci9x zJ!hvJuikU1^=t0g@iq2LDQ?~~tYzLnIOklABp2s;3uJagyLHtWmY6JanGtP}5!d9O z)0}kbEtI6G@^74Uk+MOa1HYoWbQ8e^DVv(QJ*7Jf2K*AatUpUGF{MO|;SvdXGH=$Y znS^80EGBrvn{P$TZpYZ;$`3$dgarx|h$i6&v5GT)Jna9Q&lIQQWHF9cy{iaYTpJ};qH@uuQNETK=4 zG11K|~jX?m8AbE2$|CAoz@7(PrL2abJH=~!YRal<}?T75M#5T@3a=N2$dR2`4n z!=EzjCL@dyl`bm4Ev`h++mVs|Ma^wj#|44>pL&kF}KVeP8h>hy$P zjHjkzaq&P{!+!`=X!hVg$ydwd)1LAB&#zA1>iA&#$MFy1A13dL_ny1A>+YqW^&XIV z#(yiKq>`L2WOI=!QBt)u71 zfe!+=MhZJ$l6Jn7?>M;PTsJ|61rkK<{Tn3gXk4)sy@8t-ByXtL)VaFn)26<)JqIAw zbjvISzj3!w3hv#|>-Gk2+E$N9{++j8k^H-XLUYIau6H4ucKp2~x$Z;x;BX;$TnZll zlIU97ik+YZw+z-p&kIO$M`NOv^O8&u$<)6jne>)#M zT?n3)f@ihm&q|$pYb?JQdas3Pf zr?&oGhCq(;wRc|w$^K;fgP!qx>o~js@^*acJ@nD5x&EPi&!L?C&_i!i!P_f&dvo^Q zuO25D;`0~0+a&L{M}%?o6`NWLO*^Ef9iO^)tm~oScaM63)gp#TKWaY`B0n{Hjymi9 zIn;jCrvIdlfqIh(K_8C#acDxG<;Tq-MpXgZkIGn8?r5G4L~FXtp3^*-@Fbgtq&p^J zAf!@kE6tklBBUdrX%Y{0x0VDf>~G6beyHkK-`fqr4uh z4x{Q3U75Eus{GoH>gA@sU%`wb3)M1#WNX32N-nnG+9$d8-JAHQbN_HI=h~Ndoyb{E zZ1slmhNN8l3V>&EQHTQ1&}vo{VVq-X-=wuT`~xuA&%my6PXo68hsGra{A=z0hZjeh zZ(Dmsw@X=xY37bW^$N$yq7l3TjBjZH4?xe5v(T#E^dVE`HSM;oICz>^V$YmD!KPDG z3aB`IEjiH0WlWUHe&Jg%xoj>4({L{tV#16#7BUOV&_Sg@wt``YZyP50IDIc7Sg;3W zRlvju#FThx%a#Qpu9)wNi%fa(qGZCLKhwDBGSk|>00N~KybvU#0S|s^3$FTp-1cGH zL$|Ns?vUIa1$STG-B&C>Zp*v3tsC`z=ar-D7QLfkt*PzilPc^zezHBhlfbr;ZJej#s>)qVLHtaUfvkPdJNJ z3@eQM1q`l*?_!0QuJApqu3&WtD-2qdD|rMVtj@y^KEk0dD?Gg`y#-IN0{|)j@P<=fsg9UH5O!PH$v5;CogT=;Jhqv9rsWfG-PL!jmo``&!-zWcrh4TqP<{@vM{ceXDd`EP^4*!?Ae>XDr> z_B=A#j5{6$7~{@ICI%p=06JjY_UNEaXFSPlSR6*5!bRj=s9kyE*a5I?Q?kZkNS{wD zViPF0;KvhTsx9G#^lV(D+9!8bA(S%jn0Ob%%10K8a9K-;+@vDJ>Rh0aBGqB4(z3mT zrc6Pl+F#ieR=<;hw^+&-DfOGW@pCA}>)Sj`4IXe9P3J*8O%&CcLTDN*6eQu#p_0v| z@0jQtG1+($zv7~@RwaZ_EiWqX+ztqT1>?}fif=;&w>HE4oY;O&T)!gh=Va&SWdG+R z_-|z3bJFoS`R3=Ok2VfIwAq&}MQh!%sfZ8=iphEPjg`RLOF2Vp(P+E+?JJkx{!Y%& yTr@hg_I0zNNtYwu$Ih1-=D^DIjpX&@V}kJGKh}-u7~hqP*Rof$PYA;Ftp5ki*!IH! literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/__pycache__/options.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/contrib/admin/__pycache__/options.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..93c9774fcc30285413158cf9a94b9770236125f9 GIT binary patch literal 108363 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/__pycache__/sites.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/contrib/admin/__pycache__/sites.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b1199be22ee75193574584e1d5e0fcfa53f0d60f GIT binary patch literal 25979 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

    an{3@KngtG~p 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 B8xjBj literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/__pycache__/utils.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/contrib/admin/__pycache__/utils.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7824e0c9eed64c12f8533a0955ff3775792c0ee8 GIT binary patch literal 27733 zcmcJ2d30OXdFOjr2!H?xkN`-Eq{zpe6gTa=sEw4Zjq)PdF%t)Z2v7nA0`hyHCDLHS zrtX+boQN7bBYNx{)2&ZU*UkyslQVJ8%xS%3QqS~{0sx-;!`<_s;Vjib)? z`|eu+Qc#k%XYP?M?z``9@80|E-@W`Zr?Z$t@b`Z_{MV;B?yu-U3wAYe=ieDP?m8Fb zf_#J9>pp~V~5!-0-U@=Pj&4fbV;Okv~IADrCkwWw0^LjrQMN+(Z<0>mM)DnjW!Q9 zvve8KErYE{d-}Mm+>jxR|4&;vZjwuIL2rVaDB`%63@;X&kUz-{wuRb89@nNU_xp~T zL>v57!;q1+Qo?ax!CX%AlZJ%Bz=bv>_;+}vAX;>zMdPGlk{|5AyZWFnSU&Ppu0<^s z>Oh;uA;WnZmj$gE6UJagkgwvd8D6xpQ5m&XX{=g$u*<+b#04v#=Ys1(-R~Hc_6B=` zRnK#S8-vw|HwCu_Yo6x^HwV|_X-lvc@z!7+;%z|z@%CUn;vK;T#5-AQjcBbYP@4-N9|a7PPYmzpeP)8*D@FzToy?JDz%j8}PJ0*n#*!a7VBcc?Vf*U1+U4Z)}Hx zJt%WHxDjz*a1-MG;AX@}f?E(jG|mqhc(w|c5hKNBPfZ&pjhDIhoqtQ8Ind6__F!l@ zFcygi!$WaA7Kx$Y*iZ;5V@&kpr}RiT6bbglLefAi-hU-5Q7K3N$wy8<<$vPfi8K9= zw;SZ5(O57Pkx)A}77vLiQGDXmspDrJ@ju@G2%c<*W06Q`C?2C%_Df(0 zl~Vo-@zDq#-Tp{mV%#r={6n$POJP>TIuy7x92VKwteWLo|U}P&X@g z$BmrpT!nXy2G z>fp)Z_XlG`e*fFt9UADpK+lEPXsBm2aA7ny7VPN@J==3AFm$o2KN{>g7YRhq$9kR( zMW5}7gwOR{8joLyMYnWs+T0_BS^&l6rz8tl&^A8W&M65F8Chd&c77h}3;) zT&zMrEUH050(Rh@=RPs*x@EG8g7#_%psoiqQUr2$Ix&aWxdcC=&81$1y*P21yJCEbyUe#+CJq)02#fb=94_uN*i9@@4w-%^E~%r8NPt~p7ApOHcwc_IJ$Wh0Bz{rD4VD|iP{we zu^vD7YXqTmO2+ zD;2NTyizlLY{lTT30ZID^?_>x^SjgD?&20%RGrN+e-HT@sF|0SFe-LUCPGr;Z4@g|+;ySP;_&hYHq8hO#!RK)` z1a`(ap-dJMKvoIEyS&C_fX@Ngf%`IIYPb>bKx+e#nA)G{0r(a|e|iZ5@CUY|BT2Cg z?dWJS*Pn*if~IGAr6rXoA@0LGaV#Ho1vFH}CSCx0fN2i}g?LOj7ZS!KB*RhRnX!;K zE`{Qtl@Y9DIC@^eVZbgniE0GEUdSdtFd0$DuoNAOM6mcAKoN)|B=Z~Fi^M$`qDadq zd)0pYDj2fPWosxJlrD$k7sO5~WRAoxgP$>py;N^MMTaP#f0iK_9hk+3=@mr>@n4D~ zn&R$SIcwQ$^K0HEOKtY}BR_FH`hH-^-8BFBLjB_SPuvG@xE@VfAH8KMej)LjiPTJ;-BTxi zaofeYALAw38{hFA+-_Qh#Azq6JvWEM3 iH=^z|ywHQTc33xVMBi=tYn^C;00Vy$ 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 aB5ghLbISbW;TV08sVDxtqw+|F<^KY?1TT*O literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/actions.py b/venv/lib/python3.12/site-packages/django/contrib/admin/actions.py new file mode 100644 index 0000000000..eefb63837e --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/actions.py @@ -0,0 +1,94 @@ +""" +Built-in, globally-available admin actions. +""" + +from django.contrib import messages +from django.contrib.admin import helpers +from django.contrib.admin.decorators import action +from django.contrib.admin.utils import model_ngettext +from django.core.exceptions import PermissionDenied +from django.template.response import TemplateResponse +from django.utils.translation import gettext as _ +from django.utils.translation import gettext_lazy + + +@action( + permissions=["delete"], + description=gettext_lazy("Delete selected %(verbose_name_plural)s"), +) +def delete_selected(modeladmin, request, queryset): + """ + Default action which deletes the selected objects. + + This action first displays a confirmation page which shows all the + deletable objects, or, if the user has no permission one of the related + childs (foreignkeys), a "permission denied" message. + + Next, it deletes all selected objects and redirects back to the change list. + """ + opts = modeladmin.model._meta + app_label = opts.app_label + + # Populate deletable_objects, a data structure of all related objects that + # will also be deleted. + ( + deletable_objects, + model_count, + perms_needed, + protected, + ) = modeladmin.get_deleted_objects(queryset, request) + + # The user has already confirmed the deletion. + # Do the deletion and return None to display the change list view again. + if request.POST.get("post") and not protected: + if perms_needed: + raise PermissionDenied + n = len(queryset) + if n: + modeladmin.log_deletions(request, queryset) + modeladmin.delete_queryset(request, queryset) + modeladmin.message_user( + request, + _("Successfully deleted %(count)d %(items)s.") + % {"count": n, "items": model_ngettext(modeladmin.opts, n)}, + messages.SUCCESS, + ) + # Return None to display the change list page again. + return None + + objects_name = model_ngettext(queryset) + + if perms_needed or protected: + title = _("Cannot delete %(name)s") % {"name": objects_name} + else: + title = _("Are you sure?") + + context = { + **modeladmin.admin_site.each_context(request), + "title": title, + "subtitle": None, + "objects_name": str(objects_name), + "deletable_objects": [deletable_objects], + "model_count": dict(model_count).items(), + "queryset": queryset, + "perms_lacking": perms_needed, + "protected": protected, + "opts": opts, + "action_checkbox_name": helpers.ACTION_CHECKBOX_NAME, + "media": modeladmin.media, + } + + request.current_app = modeladmin.admin_site.name + + # Display the confirmation page + return TemplateResponse( + request, + modeladmin.delete_selected_confirmation_template + or [ + "admin/%s/%s/delete_selected_confirmation.html" + % (app_label, opts.model_name), + "admin/%s/delete_selected_confirmation.html" % app_label, + "admin/delete_selected_confirmation.html", + ], + context, + ) diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/apps.py b/venv/lib/python3.12/site-packages/django/contrib/admin/apps.py new file mode 100644 index 0000000000..08a9e0d832 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/apps.py @@ -0,0 +1,27 @@ +from django.apps import AppConfig +from django.contrib.admin.checks import check_admin_app, check_dependencies +from django.core import checks +from django.utils.translation import gettext_lazy as _ + + +class SimpleAdminConfig(AppConfig): + """Simple AppConfig which does not do automatic discovery.""" + + default_auto_field = "django.db.models.AutoField" + default_site = "django.contrib.admin.sites.AdminSite" + name = "django.contrib.admin" + verbose_name = _("Administration") + + def ready(self): + checks.register(check_dependencies, checks.Tags.admin) + checks.register(check_admin_app, checks.Tags.admin) + + +class AdminConfig(SimpleAdminConfig): + """The default AppConfig for admin which does autodiscovery.""" + + default = True + + def ready(self): + super().ready() + self.module.autodiscover() diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/checks.py b/venv/lib/python3.12/site-packages/django/contrib/admin/checks.py new file mode 100644 index 0000000000..a4d7066d10 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/checks.py @@ -0,0 +1,1359 @@ +import collections +from itertools import chain + +from django.apps import apps +from django.conf import settings +from django.contrib.admin.exceptions import NotRegistered +from django.contrib.admin.utils import NotRelationField, flatten, get_fields_from_path +from django.core import checks +from django.core.exceptions import FieldDoesNotExist +from django.db import models +from django.db.models.constants import LOOKUP_SEP +from django.db.models.expressions import Combinable +from django.forms.models import BaseModelForm, BaseModelFormSet, _get_foreign_key +from django.template import engines +from django.template.backends.django import DjangoTemplates +from django.utils.module_loading import import_string + + +def _issubclass(cls, classinfo): + """ + issubclass() variant that doesn't raise an exception if cls isn't a + class. + """ + try: + return issubclass(cls, classinfo) + except TypeError: + return False + + +def _contains_subclass(class_path, candidate_paths): + """ + Return whether or not a dotted class path (or a subclass of that class) is + found in a list of candidate paths. + """ + cls = import_string(class_path) + for path in candidate_paths: + try: + candidate_cls = import_string(path) + except ImportError: + # ImportErrors are raised elsewhere. + continue + if _issubclass(candidate_cls, cls): + return True + return False + + +def check_admin_app(app_configs, **kwargs): + from django.contrib.admin.sites import all_sites + + errors = [] + for site in all_sites: + errors.extend(site.check(app_configs)) + return errors + + +def check_dependencies(**kwargs): + """ + Check that the admin's dependencies are correctly installed. + """ + from django.contrib.admin.sites import all_sites + + if not apps.is_installed("django.contrib.admin"): + return [] + errors = [] + app_dependencies = ( + ("django.contrib.contenttypes", 401), + ("django.contrib.auth", 405), + ("django.contrib.messages", 406), + ) + for app_name, error_code in app_dependencies: + if not apps.is_installed(app_name): + errors.append( + checks.Error( + "'%s' must be in INSTALLED_APPS in order to use the admin " + "application." % app_name, + id="admin.E%d" % error_code, + ) + ) + for engine in engines.all(): + if isinstance(engine, DjangoTemplates): + django_templates_instance = engine.engine + break + else: + django_templates_instance = None + if not django_templates_instance: + errors.append( + checks.Error( + "A 'django.template.backends.django.DjangoTemplates' instance " + "must be configured in TEMPLATES in order to use the admin " + "application.", + id="admin.E403", + ) + ) + else: + if ( + "django.contrib.auth.context_processors.auth" + not in django_templates_instance.context_processors + and _contains_subclass( + "django.contrib.auth.backends.ModelBackend", + settings.AUTHENTICATION_BACKENDS, + ) + ): + errors.append( + checks.Error( + "'django.contrib.auth.context_processors.auth' must be " + "enabled in DjangoTemplates (TEMPLATES) if using the default " + "auth backend in order to use the admin application.", + id="admin.E402", + ) + ) + if ( + "django.contrib.messages.context_processors.messages" + not in django_templates_instance.context_processors + ): + errors.append( + checks.Error( + "'django.contrib.messages.context_processors.messages' must " + "be enabled in DjangoTemplates (TEMPLATES) in order to use " + "the admin application.", + id="admin.E404", + ) + ) + sidebar_enabled = any(site.enable_nav_sidebar for site in all_sites) + if ( + sidebar_enabled + and "django.template.context_processors.request" + not in django_templates_instance.context_processors + ): + errors.append( + checks.Warning( + "'django.template.context_processors.request' must be enabled " + "in DjangoTemplates (TEMPLATES) in order to use the admin " + "navigation sidebar.", + id="admin.W411", + ) + ) + + if not _contains_subclass( + "django.contrib.auth.middleware.AuthenticationMiddleware", settings.MIDDLEWARE + ): + errors.append( + checks.Error( + "'django.contrib.auth.middleware.AuthenticationMiddleware' must " + "be in MIDDLEWARE in order to use the admin application.", + id="admin.E408", + ) + ) + if not _contains_subclass( + "django.contrib.messages.middleware.MessageMiddleware", settings.MIDDLEWARE + ): + errors.append( + checks.Error( + "'django.contrib.messages.middleware.MessageMiddleware' must " + "be in MIDDLEWARE in order to use the admin application.", + id="admin.E409", + ) + ) + if not _contains_subclass( + "django.contrib.sessions.middleware.SessionMiddleware", settings.MIDDLEWARE + ): + errors.append( + checks.Error( + "'django.contrib.sessions.middleware.SessionMiddleware' must " + "be in MIDDLEWARE in order to use the admin application.", + hint=( + "Insert " + "'django.contrib.sessions.middleware.SessionMiddleware' " + "before " + "'django.contrib.auth.middleware.AuthenticationMiddleware'." + ), + id="admin.E410", + ) + ) + return errors + + +class BaseModelAdminChecks: + def check(self, admin_obj, **kwargs): + return [ + *self._check_autocomplete_fields(admin_obj), + *self._check_raw_id_fields(admin_obj), + *self._check_fields(admin_obj), + *self._check_fieldsets(admin_obj), + *self._check_exclude(admin_obj), + *self._check_form(admin_obj), + *self._check_filter_vertical(admin_obj), + *self._check_filter_horizontal(admin_obj), + *self._check_radio_fields(admin_obj), + *self._check_prepopulated_fields(admin_obj), + *self._check_view_on_site_url(admin_obj), + *self._check_ordering(admin_obj), + *self._check_readonly_fields(admin_obj), + ] + + def _check_autocomplete_fields(self, obj): + """ + Check that `autocomplete_fields` is a list or tuple of model fields. + """ + if not isinstance(obj.autocomplete_fields, (list, tuple)): + return must_be( + "a list or tuple", + option="autocomplete_fields", + obj=obj, + id="admin.E036", + ) + else: + return list( + chain.from_iterable( + [ + self._check_autocomplete_fields_item( + obj, field_name, "autocomplete_fields[%d]" % index + ) + for index, field_name in enumerate(obj.autocomplete_fields) + ] + ) + ) + + def _check_autocomplete_fields_item(self, obj, field_name, label): + """ + Check that an item in `autocomplete_fields` is a ForeignKey or a + ManyToManyField and that the item has a related ModelAdmin with + search_fields defined. + """ + try: + field = obj.model._meta.get_field(field_name) + except FieldDoesNotExist: + return refer_to_missing_field( + field=field_name, option=label, obj=obj, id="admin.E037" + ) + else: + if not field.many_to_many and not isinstance(field, models.ForeignKey): + return must_be( + "a foreign key or a many-to-many field", + option=label, + obj=obj, + id="admin.E038", + ) + try: + related_admin = obj.admin_site.get_model_admin(field.remote_field.model) + except NotRegistered: + return [ + checks.Error( + 'An admin for model "%s" has to be registered ' + "to be referenced by %s.autocomplete_fields." + % ( + field.remote_field.model.__name__, + type(obj).__name__, + ), + obj=obj.__class__, + id="admin.E039", + ) + ] + else: + if not related_admin.search_fields: + return [ + checks.Error( + '%s must define "search_fields", because it\'s ' + "referenced by %s.autocomplete_fields." + % ( + related_admin.__class__.__name__, + type(obj).__name__, + ), + obj=obj.__class__, + id="admin.E040", + ) + ] + return [] + + def _check_raw_id_fields(self, obj): + """Check that `raw_id_fields` only contains field names that are listed + on the model.""" + + if not isinstance(obj.raw_id_fields, (list, tuple)): + return must_be( + "a list or tuple", option="raw_id_fields", obj=obj, id="admin.E001" + ) + else: + return list( + chain.from_iterable( + self._check_raw_id_fields_item( + obj, field_name, "raw_id_fields[%d]" % index + ) + for index, field_name in enumerate(obj.raw_id_fields) + ) + ) + + def _check_raw_id_fields_item(self, obj, field_name, label): + """Check an item of `raw_id_fields`, i.e. check that field named + `field_name` exists in model `model` and is a ForeignKey or a + ManyToManyField.""" + + try: + field = obj.model._meta.get_field(field_name) + except FieldDoesNotExist: + return refer_to_missing_field( + field=field_name, option=label, obj=obj, id="admin.E002" + ) + else: + # Using attname is not supported. + if field.name != field_name: + return refer_to_missing_field( + field=field_name, + option=label, + obj=obj, + id="admin.E002", + ) + if not field.many_to_many and not isinstance(field, models.ForeignKey): + return must_be( + "a foreign key or a many-to-many field", + option=label, + obj=obj, + id="admin.E003", + ) + else: + return [] + + def _check_fields(self, obj): + """Check that `fields` only refer to existing fields, doesn't contain + duplicates. Check if at most one of `fields` and `fieldsets` is defined. + """ + + if obj.fields is None: + return [] + elif not isinstance(obj.fields, (list, tuple)): + return must_be("a list or tuple", option="fields", obj=obj, id="admin.E004") + elif obj.fieldsets: + return [ + checks.Error( + "Both 'fieldsets' and 'fields' are specified.", + obj=obj.__class__, + id="admin.E005", + ) + ] + fields = flatten(obj.fields) + if len(fields) != len(set(fields)): + return [ + checks.Error( + "The value of 'fields' contains duplicate field(s).", + obj=obj.__class__, + id="admin.E006", + ) + ] + + return list( + chain.from_iterable( + self._check_field_spec(obj, field_name, "fields") + for field_name in obj.fields + ) + ) + + def _check_fieldsets(self, obj): + """Check that fieldsets is properly formatted and doesn't contain + duplicates.""" + + if obj.fieldsets is None: + return [] + elif not isinstance(obj.fieldsets, (list, tuple)): + return must_be( + "a list or tuple", option="fieldsets", obj=obj, id="admin.E007" + ) + else: + seen_fields = [] + return list( + chain.from_iterable( + self._check_fieldsets_item( + obj, fieldset, "fieldsets[%d]" % index, seen_fields + ) + for index, fieldset in enumerate(obj.fieldsets) + ) + ) + + def _check_fieldsets_item(self, obj, fieldset, label, seen_fields): + """Check an item of `fieldsets`, i.e. check that this is a pair of a + set name and a dictionary containing "fields" key.""" + + if not isinstance(fieldset, (list, tuple)): + return must_be("a list or tuple", option=label, obj=obj, id="admin.E008") + elif len(fieldset) != 2: + return must_be("of length 2", option=label, obj=obj, id="admin.E009") + elif not isinstance(fieldset[1], dict): + return must_be( + "a dictionary", option="%s[1]" % label, obj=obj, id="admin.E010" + ) + elif "fields" not in fieldset[1]: + return [ + checks.Error( + "The value of '%s[1]' must contain the key 'fields'." % label, + obj=obj.__class__, + id="admin.E011", + ) + ] + elif not isinstance(fieldset[1]["fields"], (list, tuple)): + return must_be( + "a list or tuple", + option="%s[1]['fields']" % label, + obj=obj, + id="admin.E008", + ) + + seen_fields.extend(flatten(fieldset[1]["fields"])) + if len(seen_fields) != len(set(seen_fields)): + return [ + checks.Error( + "There are duplicate field(s) in '%s[1]'." % label, + obj=obj.__class__, + id="admin.E012", + ) + ] + return list( + chain.from_iterable( + self._check_field_spec(obj, fieldset_fields, '%s[1]["fields"]' % label) + for fieldset_fields in fieldset[1]["fields"] + ) + ) + + def _check_field_spec(self, obj, fields, label): + """`fields` should be an item of `fields` or an item of + fieldset[1]['fields'] for any `fieldset` in `fieldsets`. It should be a + field name or a tuple of field names.""" + + if isinstance(fields, tuple): + return list( + chain.from_iterable( + self._check_field_spec_item( + obj, field_name, "%s[%d]" % (label, index) + ) + for index, field_name in enumerate(fields) + ) + ) + else: + return self._check_field_spec_item(obj, fields, label) + + def _check_field_spec_item(self, obj, field_name, label): + if field_name in obj.readonly_fields: + # Stuff can be put in fields that isn't actually a model field if + # it's in readonly_fields, readonly_fields will handle the + # validation of such things. + return [] + else: + try: + field = obj.model._meta.get_field(field_name) + except FieldDoesNotExist: + # If we can't find a field on the model that matches, it could + # be an extra field on the form. + return [] + else: + if ( + isinstance(field, models.ManyToManyField) + and not field.remote_field.through._meta.auto_created + ): + return [ + checks.Error( + "The value of '%s' cannot include the ManyToManyField " + "'%s', because that field manually specifies a " + "relationship model." % (label, field_name), + obj=obj.__class__, + id="admin.E013", + ) + ] + else: + return [] + + def _check_exclude(self, obj): + """Check that exclude is a sequence without duplicates.""" + + if obj.exclude is None: # default value is None + return [] + elif not isinstance(obj.exclude, (list, tuple)): + return must_be( + "a list or tuple", option="exclude", obj=obj, id="admin.E014" + ) + elif len(obj.exclude) > len(set(obj.exclude)): + return [ + checks.Error( + "The value of 'exclude' contains duplicate field(s).", + obj=obj.__class__, + id="admin.E015", + ) + ] + else: + return [] + + def _check_form(self, obj): + """Check that form subclasses BaseModelForm.""" + if not _issubclass(obj.form, BaseModelForm): + return must_inherit_from( + parent="BaseModelForm", option="form", obj=obj, id="admin.E016" + ) + else: + return [] + + def _check_filter_vertical(self, obj): + """Check that filter_vertical is a sequence of field names.""" + if not isinstance(obj.filter_vertical, (list, tuple)): + return must_be( + "a list or tuple", option="filter_vertical", obj=obj, id="admin.E017" + ) + else: + return list( + chain.from_iterable( + self._check_filter_item( + obj, field_name, "filter_vertical[%d]" % index + ) + for index, field_name in enumerate(obj.filter_vertical) + ) + ) + + def _check_filter_horizontal(self, obj): + """Check that filter_horizontal is a sequence of field names.""" + if not isinstance(obj.filter_horizontal, (list, tuple)): + return must_be( + "a list or tuple", option="filter_horizontal", obj=obj, id="admin.E018" + ) + else: + return list( + chain.from_iterable( + self._check_filter_item( + obj, field_name, "filter_horizontal[%d]" % index + ) + for index, field_name in enumerate(obj.filter_horizontal) + ) + ) + + def _check_filter_item(self, obj, field_name, label): + """Check one item of `filter_vertical` or `filter_horizontal`, i.e. + check that given field exists and is a ManyToManyField.""" + + try: + field = obj.model._meta.get_field(field_name) + except FieldDoesNotExist: + return refer_to_missing_field( + field=field_name, option=label, obj=obj, id="admin.E019" + ) + else: + if not field.many_to_many or isinstance(field, models.ManyToManyRel): + return must_be( + "a many-to-many field", option=label, obj=obj, id="admin.E020" + ) + elif not field.remote_field.through._meta.auto_created: + return [ + checks.Error( + f"The value of '{label}' cannot include the ManyToManyField " + f"'{field_name}', because that field manually specifies a " + f"relationship model.", + obj=obj.__class__, + id="admin.E013", + ) + ] + else: + return [] + + def _check_radio_fields(self, obj): + """Check that `radio_fields` is a dictionary.""" + if not isinstance(obj.radio_fields, dict): + return must_be( + "a dictionary", option="radio_fields", obj=obj, id="admin.E021" + ) + else: + return list( + chain.from_iterable( + self._check_radio_fields_key(obj, field_name, "radio_fields") + + self._check_radio_fields_value( + obj, val, 'radio_fields["%s"]' % field_name + ) + for field_name, val in obj.radio_fields.items() + ) + ) + + def _check_radio_fields_key(self, obj, field_name, label): + """Check that a key of `radio_fields` dictionary is name of existing + field and that the field is a ForeignKey or has `choices` defined.""" + + try: + field = obj.model._meta.get_field(field_name) + except FieldDoesNotExist: + return refer_to_missing_field( + field=field_name, option=label, obj=obj, id="admin.E022" + ) + else: + if not (isinstance(field, models.ForeignKey) or field.choices): + return [ + checks.Error( + "The value of '%s' refers to '%s', which is not an " + "instance of ForeignKey, and does not have a 'choices' " + "definition." % (label, field_name), + obj=obj.__class__, + id="admin.E023", + ) + ] + else: + return [] + + def _check_radio_fields_value(self, obj, val, label): + """Check type of a value of `radio_fields` dictionary.""" + + from django.contrib.admin.options import HORIZONTAL, VERTICAL + + if val not in (HORIZONTAL, VERTICAL): + return [ + checks.Error( + "The value of '%s' must be either admin.HORIZONTAL or " + "admin.VERTICAL." % label, + obj=obj.__class__, + id="admin.E024", + ) + ] + else: + return [] + + def _check_view_on_site_url(self, obj): + if not callable(obj.view_on_site) and not isinstance(obj.view_on_site, bool): + return [ + checks.Error( + "The value of 'view_on_site' must be a callable or a boolean " + "value.", + obj=obj.__class__, + id="admin.E025", + ) + ] + else: + return [] + + def _check_prepopulated_fields(self, obj): + """Check that `prepopulated_fields` is a dictionary containing allowed + field types.""" + if not isinstance(obj.prepopulated_fields, dict): + return must_be( + "a dictionary", option="prepopulated_fields", obj=obj, id="admin.E026" + ) + else: + return list( + chain.from_iterable( + self._check_prepopulated_fields_key( + obj, field_name, "prepopulated_fields" + ) + + self._check_prepopulated_fields_value( + obj, val, 'prepopulated_fields["%s"]' % field_name + ) + for field_name, val in obj.prepopulated_fields.items() + ) + ) + + def _check_prepopulated_fields_key(self, obj, field_name, label): + """Check a key of `prepopulated_fields` dictionary, i.e. check that it + is a name of existing field and the field is one of the allowed types. + """ + + try: + field = obj.model._meta.get_field(field_name) + except FieldDoesNotExist: + return refer_to_missing_field( + field=field_name, option=label, obj=obj, id="admin.E027" + ) + else: + if isinstance( + field, (models.DateTimeField, models.ForeignKey, models.ManyToManyField) + ): + return [ + checks.Error( + "The value of '%s' refers to '%s', which must not be a " + "DateTimeField, a ForeignKey, a OneToOneField, or a " + "ManyToManyField." % (label, field_name), + obj=obj.__class__, + id="admin.E028", + ) + ] + else: + return [] + + def _check_prepopulated_fields_value(self, obj, val, label): + """Check a value of `prepopulated_fields` dictionary, i.e. it's an + iterable of existing fields.""" + + if not isinstance(val, (list, tuple)): + return must_be("a list or tuple", option=label, obj=obj, id="admin.E029") + else: + return list( + chain.from_iterable( + self._check_prepopulated_fields_value_item( + obj, subfield_name, "%s[%r]" % (label, index) + ) + for index, subfield_name in enumerate(val) + ) + ) + + def _check_prepopulated_fields_value_item(self, obj, field_name, label): + """For `prepopulated_fields` equal to {"slug": ("title",)}, + `field_name` is "title".""" + + try: + obj.model._meta.get_field(field_name) + except FieldDoesNotExist: + return refer_to_missing_field( + field=field_name, option=label, obj=obj, id="admin.E030" + ) + else: + return [] + + def _check_ordering(self, obj): + """Check that ordering refers to existing fields or is random.""" + + # ordering = None + if obj.ordering is None: # The default value is None + return [] + elif not isinstance(obj.ordering, (list, tuple)): + return must_be( + "a list or tuple", option="ordering", obj=obj, id="admin.E031" + ) + else: + return list( + chain.from_iterable( + self._check_ordering_item(obj, field_name, "ordering[%d]" % index) + for index, field_name in enumerate(obj.ordering) + ) + ) + + def _check_ordering_item(self, obj, field_name, label): + """Check that `ordering` refers to existing fields.""" + if isinstance(field_name, (Combinable, models.OrderBy)): + if not isinstance(field_name, models.OrderBy): + field_name = field_name.asc() + if isinstance(field_name.expression, models.F): + field_name = field_name.expression.name + else: + return [] + if field_name == "?" and len(obj.ordering) != 1: + return [ + checks.Error( + "The value of 'ordering' has the random ordering marker '?', " + "but contains other fields as well.", + hint='Either remove the "?", or remove the other fields.', + obj=obj.__class__, + id="admin.E032", + ) + ] + elif field_name == "?": + return [] + elif LOOKUP_SEP in field_name: + # Skip ordering in the format field1__field2 (FIXME: checking + # this format would be nice, but it's a little fiddly). + return [] + else: + field_name = field_name.removeprefix("-") + if field_name == "pk": + return [] + try: + obj.model._meta.get_field(field_name) + except FieldDoesNotExist: + return refer_to_missing_field( + field=field_name, option=label, obj=obj, id="admin.E033" + ) + else: + return [] + + def _check_readonly_fields(self, obj): + """Check that readonly_fields refers to proper attribute or field.""" + + if obj.readonly_fields == (): + return [] + elif not isinstance(obj.readonly_fields, (list, tuple)): + return must_be( + "a list or tuple", option="readonly_fields", obj=obj, id="admin.E034" + ) + else: + return list( + chain.from_iterable( + self._check_readonly_fields_item( + obj, field_name, "readonly_fields[%d]" % index + ) + for index, field_name in enumerate(obj.readonly_fields) + ) + ) + + def _check_readonly_fields_item(self, obj, field_name, label): + if callable(field_name): + return [] + elif hasattr(obj, field_name): + return [] + elif hasattr(obj.model, field_name): + return [] + else: + try: + obj.model._meta.get_field(field_name) + except FieldDoesNotExist: + return [ + checks.Error( + "The value of '%s' refers to '%s', which is not a callable, " + "an attribute of '%s', or an attribute of '%s'." + % ( + label, + field_name, + obj.__class__.__name__, + obj.model._meta.label, + ), + obj=obj.__class__, + id="admin.E035", + ) + ] + else: + return [] + + +class ModelAdminChecks(BaseModelAdminChecks): + def check(self, admin_obj, **kwargs): + return [ + *super().check(admin_obj), + *self._check_save_as(admin_obj), + *self._check_save_on_top(admin_obj), + *self._check_inlines(admin_obj), + *self._check_list_display(admin_obj), + *self._check_list_display_links(admin_obj), + *self._check_list_filter(admin_obj), + *self._check_list_select_related(admin_obj), + *self._check_list_per_page(admin_obj), + *self._check_list_max_show_all(admin_obj), + *self._check_list_editable(admin_obj), + *self._check_search_fields(admin_obj), + *self._check_date_hierarchy(admin_obj), + *self._check_actions(admin_obj), + ] + + def _check_save_as(self, obj): + """Check save_as is a boolean.""" + + if not isinstance(obj.save_as, bool): + return must_be("a boolean", option="save_as", obj=obj, id="admin.E101") + else: + return [] + + def _check_save_on_top(self, obj): + """Check save_on_top is a boolean.""" + + if not isinstance(obj.save_on_top, bool): + return must_be("a boolean", option="save_on_top", obj=obj, id="admin.E102") + else: + return [] + + def _check_inlines(self, obj): + """Check all inline model admin classes.""" + + if not isinstance(obj.inlines, (list, tuple)): + return must_be( + "a list or tuple", option="inlines", obj=obj, id="admin.E103" + ) + else: + return list( + chain.from_iterable( + self._check_inlines_item(obj, item, "inlines[%d]" % index) + for index, item in enumerate(obj.inlines) + ) + ) + + def _check_inlines_item(self, obj, inline, label): + """Check one inline model admin.""" + try: + inline_label = inline.__module__ + "." + inline.__name__ + except AttributeError: + return [ + checks.Error( + "'%s' must inherit from 'InlineModelAdmin'." % obj, + obj=obj.__class__, + id="admin.E104", + ) + ] + + from django.contrib.admin.options import InlineModelAdmin + + if not _issubclass(inline, InlineModelAdmin): + return [ + checks.Error( + "'%s' must inherit from 'InlineModelAdmin'." % inline_label, + obj=obj.__class__, + id="admin.E104", + ) + ] + elif not inline.model: + return [ + checks.Error( + "'%s' must have a 'model' attribute." % inline_label, + obj=obj.__class__, + id="admin.E105", + ) + ] + elif not _issubclass(inline.model, models.Model): + return must_be( + "a Model", option="%s.model" % inline_label, obj=obj, id="admin.E106" + ) + else: + return inline(obj.model, obj.admin_site).check() + + def _check_list_display(self, obj): + """Check that list_display only contains fields or usable attributes.""" + + if not isinstance(obj.list_display, (list, tuple)): + return must_be( + "a list or tuple", option="list_display", obj=obj, id="admin.E107" + ) + else: + return list( + chain.from_iterable( + self._check_list_display_item(obj, item, "list_display[%d]" % index) + for index, item in enumerate(obj.list_display) + ) + ) + + def _check_list_display_item(self, obj, item, label): + if callable(item): + return [] + elif hasattr(obj, item): + return [] + try: + field = obj.model._meta.get_field(item) + except FieldDoesNotExist: + try: + field = getattr(obj.model, item) + except AttributeError: + try: + field = get_fields_from_path(obj.model, item)[-1] + except (FieldDoesNotExist, NotRelationField): + return [ + checks.Error( + f"The value of '{label}' refers to '{item}', which is not " + f"a callable or attribute of '{obj.__class__.__name__}', " + "or an attribute, method, or field on " + f"'{obj.model._meta.label}'.", + obj=obj.__class__, + id="admin.E108", + ) + ] + if ( + getattr(field, "is_relation", False) + and (field.many_to_many or field.one_to_many) + ) or (getattr(field, "rel", None) and field.rel.field.many_to_one): + return [ + checks.Error( + f"The value of '{label}' must not be a many-to-many field or a " + f"reverse foreign key.", + obj=obj.__class__, + id="admin.E109", + ) + ] + return [] + + def _check_list_display_links(self, obj): + """Check that list_display_links is a unique subset of list_display.""" + from django.contrib.admin.options import ModelAdmin + + if obj.list_display_links is None: + return [] + elif not isinstance(obj.list_display_links, (list, tuple)): + return must_be( + "a list, a tuple, or None", + option="list_display_links", + obj=obj, + id="admin.E110", + ) + # Check only if ModelAdmin.get_list_display() isn't overridden. + elif obj.get_list_display.__func__ is ModelAdmin.get_list_display: + return list( + chain.from_iterable( + self._check_list_display_links_item( + obj, field_name, "list_display_links[%d]" % index + ) + for index, field_name in enumerate(obj.list_display_links) + ) + ) + return [] + + def _check_list_display_links_item(self, obj, field_name, label): + if field_name not in obj.list_display: + return [ + checks.Error( + "The value of '%s' refers to '%s', which is not defined in " + "'list_display'." % (label, field_name), + obj=obj.__class__, + id="admin.E111", + ) + ] + else: + return [] + + def _check_list_filter(self, obj): + if not isinstance(obj.list_filter, (list, tuple)): + return must_be( + "a list or tuple", option="list_filter", obj=obj, id="admin.E112" + ) + else: + return list( + chain.from_iterable( + self._check_list_filter_item(obj, item, "list_filter[%d]" % index) + for index, item in enumerate(obj.list_filter) + ) + ) + + def _check_list_filter_item(self, obj, item, label): + """ + Check one item of `list_filter`, i.e. check if it is one of three options: + 1. 'field' -- a basic field filter, possibly w/ relationships (e.g. + 'field__rel') + 2. ('field', SomeFieldListFilter) - a field-based list filter class + 3. SomeListFilter - a non-field list filter class + """ + from django.contrib.admin import FieldListFilter, ListFilter + + if callable(item) and not isinstance(item, models.Field): + # If item is option 3, it should be a ListFilter... + if not _issubclass(item, ListFilter): + return must_inherit_from( + parent="ListFilter", option=label, obj=obj, id="admin.E113" + ) + # ... but not a FieldListFilter. + elif issubclass(item, FieldListFilter): + return [ + checks.Error( + "The value of '%s' must not inherit from 'FieldListFilter'." + % label, + obj=obj.__class__, + id="admin.E114", + ) + ] + else: + return [] + elif isinstance(item, (tuple, list)): + # item is option #2 + field, list_filter_class = item + if not _issubclass(list_filter_class, FieldListFilter): + return must_inherit_from( + parent="FieldListFilter", + option="%s[1]" % label, + obj=obj, + id="admin.E115", + ) + else: + return [] + else: + # item is option #1 + field = item + + # Validate the field string + try: + get_fields_from_path(obj.model, field) + except (NotRelationField, FieldDoesNotExist): + return [ + checks.Error( + "The value of '%s' refers to '%s', which does not refer to a " + "Field." % (label, field), + obj=obj.__class__, + id="admin.E116", + ) + ] + else: + return [] + + def _check_list_select_related(self, obj): + """Check that list_select_related is a boolean, a list or a tuple.""" + + if not isinstance(obj.list_select_related, (bool, list, tuple)): + return must_be( + "a boolean, tuple or list", + option="list_select_related", + obj=obj, + id="admin.E117", + ) + else: + return [] + + def _check_list_per_page(self, obj): + """Check that list_per_page is an integer.""" + + if not isinstance(obj.list_per_page, int): + return must_be( + "an integer", option="list_per_page", obj=obj, id="admin.E118" + ) + else: + return [] + + def _check_list_max_show_all(self, obj): + """Check that list_max_show_all is an integer.""" + + if not isinstance(obj.list_max_show_all, int): + return must_be( + "an integer", option="list_max_show_all", obj=obj, id="admin.E119" + ) + else: + return [] + + def _check_list_editable(self, obj): + """Check that list_editable is a sequence of editable fields from + list_display without first element.""" + + if not isinstance(obj.list_editable, (list, tuple)): + return must_be( + "a list or tuple", option="list_editable", obj=obj, id="admin.E120" + ) + else: + return list( + chain.from_iterable( + self._check_list_editable_item( + obj, item, "list_editable[%d]" % index + ) + for index, item in enumerate(obj.list_editable) + ) + ) + + def _check_list_editable_item(self, obj, field_name, label): + try: + field = obj.model._meta.get_field(field_name) + except FieldDoesNotExist: + return refer_to_missing_field( + field=field_name, option=label, obj=obj, id="admin.E121" + ) + else: + if field_name not in obj.list_display: + return [ + checks.Error( + "The value of '%s' refers to '%s', which is not " + "contained in 'list_display'." % (label, field_name), + obj=obj.__class__, + id="admin.E122", + ) + ] + elif obj.list_display_links and field_name in obj.list_display_links: + return [ + checks.Error( + "The value of '%s' cannot be in both 'list_editable' and " + "'list_display_links'." % field_name, + obj=obj.__class__, + id="admin.E123", + ) + ] + # If list_display[0] is in list_editable, check that + # list_display_links is set. See #22792 and #26229 for use cases. + elif ( + obj.list_display[0] == field_name + and not obj.list_display_links + and obj.list_display_links is not None + ): + return [ + checks.Error( + "The value of '%s' refers to the first field in 'list_display' " + "('%s'), which cannot be used unless 'list_display_links' is " + "set." % (label, obj.list_display[0]), + obj=obj.__class__, + id="admin.E124", + ) + ] + elif not field.editable or field.primary_key: + return [ + checks.Error( + "The value of '%s' refers to '%s', which is not editable " + "through the admin." % (label, field_name), + obj=obj.__class__, + id="admin.E125", + ) + ] + else: + return [] + + def _check_search_fields(self, obj): + """Check search_fields is a sequence.""" + + if not isinstance(obj.search_fields, (list, tuple)): + return must_be( + "a list or tuple", option="search_fields", obj=obj, id="admin.E126" + ) + else: + return [] + + def _check_date_hierarchy(self, obj): + """Check that date_hierarchy refers to DateField or DateTimeField.""" + + if obj.date_hierarchy is None: + return [] + else: + try: + field = get_fields_from_path(obj.model, obj.date_hierarchy)[-1] + except (NotRelationField, FieldDoesNotExist): + return [ + checks.Error( + "The value of 'date_hierarchy' refers to '%s', which " + "does not refer to a Field." % obj.date_hierarchy, + obj=obj.__class__, + id="admin.E127", + ) + ] + else: + if field.get_internal_type() not in {"DateField", "DateTimeField"}: + return must_be( + "a DateField or DateTimeField", + option="date_hierarchy", + obj=obj, + id="admin.E128", + ) + else: + return [] + + def _check_actions(self, obj): + errors = [] + actions = obj._get_base_actions() + + # Actions with an allowed_permission attribute require the ModelAdmin + # to implement a has__permission() method for each permission. + for func, name, _ in actions: + if not hasattr(func, "allowed_permissions"): + continue + for permission in func.allowed_permissions: + method_name = "has_%s_permission" % permission + if not hasattr(obj, method_name): + errors.append( + checks.Error( + "%s must define a %s() method for the %s action." + % ( + obj.__class__.__name__, + method_name, + func.__name__, + ), + obj=obj.__class__, + id="admin.E129", + ) + ) + # Names need to be unique. + names = collections.Counter(name for _, name, _ in actions) + for name, count in names.items(): + if count > 1: + errors.append( + checks.Error( + "__name__ attributes of actions defined in %s must be " + "unique. Name %r is not unique." + % ( + obj.__class__.__name__, + name, + ), + obj=obj.__class__, + id="admin.E130", + ) + ) + return errors + + +class InlineModelAdminChecks(BaseModelAdminChecks): + def check(self, inline_obj, **kwargs): + parent_model = inline_obj.parent_model + return [ + *super().check(inline_obj), + *self._check_relation(inline_obj, parent_model), + *self._check_exclude_of_parent_model(inline_obj, parent_model), + *self._check_extra(inline_obj), + *self._check_max_num(inline_obj), + *self._check_min_num(inline_obj), + *self._check_formset(inline_obj), + ] + + def _check_exclude_of_parent_model(self, obj, parent_model): + # Do not perform more specific checks if the base checks result in an + # error. + errors = super()._check_exclude(obj) + if errors: + return [] + + # Skip if `fk_name` is invalid. + if self._check_relation(obj, parent_model): + return [] + + if obj.exclude is None: + return [] + + fk = _get_foreign_key(parent_model, obj.model, fk_name=obj.fk_name) + if fk.name in obj.exclude: + return [ + checks.Error( + "Cannot exclude the field '%s', because it is the foreign key " + "to the parent model '%s'." + % ( + fk.name, + parent_model._meta.label, + ), + obj=obj.__class__, + id="admin.E201", + ) + ] + else: + return [] + + def _check_relation(self, obj, parent_model): + try: + _get_foreign_key(parent_model, obj.model, fk_name=obj.fk_name) + except ValueError as e: + return [checks.Error(e.args[0], obj=obj.__class__, id="admin.E202")] + else: + return [] + + def _check_extra(self, obj): + """Check that extra is an integer.""" + + if not isinstance(obj.extra, int): + return must_be("an integer", option="extra", obj=obj, id="admin.E203") + else: + return [] + + def _check_max_num(self, obj): + """Check that max_num is an integer.""" + + if obj.max_num is None: + return [] + elif not isinstance(obj.max_num, int): + return must_be("an integer", option="max_num", obj=obj, id="admin.E204") + else: + return [] + + def _check_min_num(self, obj): + """Check that min_num is an integer.""" + + if obj.min_num is None: + return [] + elif not isinstance(obj.min_num, int): + return must_be("an integer", option="min_num", obj=obj, id="admin.E205") + else: + return [] + + def _check_formset(self, obj): + """Check formset is a subclass of BaseModelFormSet.""" + + if not _issubclass(obj.formset, BaseModelFormSet): + return must_inherit_from( + parent="BaseModelFormSet", option="formset", obj=obj, id="admin.E206" + ) + else: + return [] + + +def must_be(type, option, obj, id): + return [ + checks.Error( + "The value of '%s' must be %s." % (option, type), + obj=obj.__class__, + id=id, + ), + ] + + +def must_inherit_from(parent, option, obj, id): + return [ + checks.Error( + "The value of '%s' must inherit from '%s'." % (option, parent), + obj=obj.__class__, + id=id, + ), + ] + + +def refer_to_missing_field(field, option, obj, id): + return [ + checks.Error( + "The value of '%s' refers to '%s', which is not a field of '%s'." + % (option, field, obj.model._meta.label), + obj=obj.__class__, + id=id, + ), + ] diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/decorators.py b/venv/lib/python3.12/site-packages/django/contrib/admin/decorators.py new file mode 100644 index 0000000000..d3ff56a59a --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/decorators.py @@ -0,0 +1,111 @@ +def action(function=None, *, permissions=None, description=None): + """ + Conveniently add attributes to an action function:: + + @admin.action( + permissions=['publish'], + description='Mark selected stories as published', + ) + def make_published(self, request, queryset): + queryset.update(status='p') + + This is equivalent to setting some attributes (with the original, longer + names) on the function directly:: + + def make_published(self, request, queryset): + queryset.update(status='p') + make_published.allowed_permissions = ['publish'] + make_published.short_description = 'Mark selected stories as published' + """ + + def decorator(func): + if permissions is not None: + func.allowed_permissions = permissions + if description is not None: + func.short_description = description + return func + + if function is None: + return decorator + else: + return decorator(function) + + +def display( + function=None, *, boolean=None, ordering=None, description=None, empty_value=None +): + """ + Conveniently add attributes to a display function:: + + @admin.display( + boolean=True, + ordering='-publish_date', + description='Is Published?', + ) + def is_published(self, obj): + return obj.publish_date is not None + + This is equivalent to setting some attributes (with the original, longer + names) on the function directly:: + + def is_published(self, obj): + return obj.publish_date is not None + is_published.boolean = True + is_published.admin_order_field = '-publish_date' + is_published.short_description = 'Is Published?' + """ + + def decorator(func): + if boolean is not None and empty_value is not None: + raise ValueError( + "The boolean and empty_value arguments to the @display " + "decorator are mutually exclusive." + ) + if boolean is not None: + func.boolean = boolean + if ordering is not None: + func.admin_order_field = ordering + if description is not None: + func.short_description = description + if empty_value is not None: + func.empty_value_display = empty_value + return func + + if function is None: + return decorator + else: + return decorator(function) + + +def register(*models, site=None): + """ + Register the given model(s) classes and wrapped ModelAdmin class with + admin site: + + @register(Author) + class AuthorAdmin(admin.ModelAdmin): + pass + + The `site` kwarg is an admin site to use instead of the default admin site. + """ + from django.contrib.admin import ModelAdmin + from django.contrib.admin.sites import AdminSite + from django.contrib.admin.sites import site as default_site + + def _model_admin_wrapper(admin_class): + if not models: + raise ValueError("At least one model must be passed to register.") + + admin_site = site or default_site + + if not isinstance(admin_site, AdminSite): + raise ValueError("site must subclass AdminSite") + + if not issubclass(admin_class, ModelAdmin): + raise ValueError("Wrapped class must subclass ModelAdmin.") + + admin_site.register(models, admin_class=admin_class) + + return admin_class + + return _model_admin_wrapper diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/exceptions.py b/venv/lib/python3.12/site-packages/django/contrib/admin/exceptions.py new file mode 100644 index 0000000000..6105eef424 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/exceptions.py @@ -0,0 +1,25 @@ +from django.core.exceptions import SuspiciousOperation + + +class DisallowedModelAdminLookup(SuspiciousOperation): + """Invalid filter was passed to admin view via URL querystring""" + + pass + + +class DisallowedModelAdminToField(SuspiciousOperation): + """Invalid to_field was passed to admin view via URL query string""" + + pass + + +class AlreadyRegistered(Exception): + """The model is already registered.""" + + pass + + +class NotRegistered(Exception): + """The model is not registered.""" + + pass diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/filters.py b/venv/lib/python3.12/site-packages/django/contrib/admin/filters.py new file mode 100644 index 0000000000..10a039af2a --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/filters.py @@ -0,0 +1,716 @@ +""" +This encapsulates the logic for displaying filters in the Django admin. +Filters are specified in models with the "list_filter" option. + +Each filter subclass knows how to display a filter for a field that passes a +certain test -- e.g. being a DateField or ForeignKey. +""" + +import datetime + +from django.contrib.admin.exceptions import NotRegistered +from django.contrib.admin.options import IncorrectLookupParameters +from django.contrib.admin.utils import ( + build_q_object_from_lookup_parameters, + get_last_value_from_parameters, + get_model_from_relation, + prepare_lookup_value, + reverse_field_path, +) +from django.core.exceptions import ImproperlyConfigured, ValidationError +from django.db import models +from django.utils import timezone +from django.utils.translation import gettext_lazy as _ + + +class ListFilter: + title = None # Human-readable title to appear in the right sidebar. + template = "admin/filter.html" + + def __init__(self, request, params, model, model_admin): + self.request = request + # This dictionary will eventually contain the request's query string + # parameters actually used by this filter. + self.used_parameters = {} + if self.title is None: + raise ImproperlyConfigured( + "The list filter '%s' does not specify a 'title'." + % self.__class__.__name__ + ) + + def has_output(self): + """ + Return True if some choices would be output for this filter. + """ + raise NotImplementedError( + "subclasses of ListFilter must provide a has_output() method" + ) + + def choices(self, changelist): + """ + Return choices ready to be output in the template. + + `changelist` is the ChangeList to be displayed. + """ + raise NotImplementedError( + "subclasses of ListFilter must provide a choices() method" + ) + + def queryset(self, request, queryset): + """ + Return the filtered queryset. + """ + raise NotImplementedError( + "subclasses of ListFilter must provide a queryset() method" + ) + + def expected_parameters(self): + """ + Return the list of parameter names that are expected from the + request's query string and that will be used by this filter. + """ + raise NotImplementedError( + "subclasses of ListFilter must provide an expected_parameters() method" + ) + + +class FacetsMixin: + def get_facet_counts(self, pk_attname, filtered_qs): + raise NotImplementedError( + "subclasses of FacetsMixin must provide a get_facet_counts() method." + ) + + def get_facet_queryset(self, changelist): + filtered_qs = changelist.get_queryset( + self.request, exclude_parameters=self.expected_parameters() + ) + return filtered_qs.aggregate( + **self.get_facet_counts(changelist.pk_attname, filtered_qs) + ) + + +class SimpleListFilter(FacetsMixin, ListFilter): + # The parameter that should be used in the query string for that filter. + parameter_name = None + + def __init__(self, request, params, model, model_admin): + super().__init__(request, params, model, model_admin) + if self.parameter_name is None: + raise ImproperlyConfigured( + "The list filter '%s' does not specify a 'parameter_name'." + % self.__class__.__name__ + ) + if self.parameter_name in params: + value = params.pop(self.parameter_name) + self.used_parameters[self.parameter_name] = value[-1] + lookup_choices = self.lookups(request, model_admin) + if lookup_choices is None: + lookup_choices = () + self.lookup_choices = list(lookup_choices) + + def has_output(self): + return len(self.lookup_choices) > 0 + + def value(self): + """ + Return the value (in string format) provided in the request's + query string for this filter, if any, or None if the value wasn't + provided. + """ + return self.used_parameters.get(self.parameter_name) + + def lookups(self, request, model_admin): + """ + Must be overridden to return a list of tuples (value, verbose value) + """ + raise NotImplementedError( + "The SimpleListFilter.lookups() method must be overridden to " + "return a list of tuples (value, verbose value)." + ) + + def expected_parameters(self): + return [self.parameter_name] + + def get_facet_counts(self, pk_attname, filtered_qs): + original_value = self.used_parameters.get(self.parameter_name) + counts = {} + for i, choice in enumerate(self.lookup_choices): + self.used_parameters[self.parameter_name] = choice[0] + lookup_qs = self.queryset(self.request, filtered_qs) + if lookup_qs is not None: + counts[f"{i}__c"] = models.Count( + pk_attname, + filter=models.Q(pk__in=lookup_qs), + ) + self.used_parameters[self.parameter_name] = original_value + return counts + + def choices(self, changelist): + add_facets = changelist.add_facets + facet_counts = self.get_facet_queryset(changelist) if add_facets else None + yield { + "selected": self.value() is None, + "query_string": changelist.get_query_string(remove=[self.parameter_name]), + "display": _("All"), + } + for i, (lookup, title) in enumerate(self.lookup_choices): + if add_facets: + if (count := facet_counts.get(f"{i}__c", -1)) != -1: + title = f"{title} ({count})" + else: + title = f"{title} (-)" + yield { + "selected": self.value() == str(lookup), + "query_string": changelist.get_query_string( + {self.parameter_name: lookup} + ), + "display": title, + } + + +class FieldListFilter(FacetsMixin, ListFilter): + _field_list_filters = [] + _take_priority_index = 0 + list_separator = "," + + def __init__(self, field, request, params, model, model_admin, field_path): + self.field = field + self.field_path = field_path + self.title = getattr(field, "verbose_name", field_path) + super().__init__(request, params, model, model_admin) + for p in self.expected_parameters(): + if p in params: + value = params.pop(p) + self.used_parameters[p] = prepare_lookup_value( + p, value, self.list_separator + ) + + def has_output(self): + return True + + def queryset(self, request, queryset): + try: + q_object = build_q_object_from_lookup_parameters(self.used_parameters) + return queryset.filter(q_object) + except (ValueError, ValidationError) as e: + # Fields may raise a ValueError or ValidationError when converting + # the parameters to the correct type. + raise IncorrectLookupParameters(e) + + @classmethod + def register(cls, test, list_filter_class, take_priority=False): + if take_priority: + # This is to allow overriding the default filters for certain types + # of fields with some custom filters. The first found in the list + # is used in priority. + cls._field_list_filters.insert( + cls._take_priority_index, (test, list_filter_class) + ) + cls._take_priority_index += 1 + else: + cls._field_list_filters.append((test, list_filter_class)) + + @classmethod + def create(cls, field, request, params, model, model_admin, field_path): + for test, list_filter_class in cls._field_list_filters: + if test(field): + return list_filter_class( + field, request, params, model, model_admin, field_path=field_path + ) + + +class RelatedFieldListFilter(FieldListFilter): + def __init__(self, field, request, params, model, model_admin, field_path): + other_model = get_model_from_relation(field) + self.lookup_kwarg = "%s__%s__exact" % (field_path, field.target_field.name) + self.lookup_kwarg_isnull = "%s__isnull" % field_path + self.lookup_val = params.get(self.lookup_kwarg) + self.lookup_val_isnull = get_last_value_from_parameters( + params, self.lookup_kwarg_isnull + ) + super().__init__(field, request, params, model, model_admin, field_path) + self.lookup_choices = self.field_choices(field, request, model_admin) + if hasattr(field, "verbose_name"): + self.lookup_title = field.verbose_name + else: + self.lookup_title = other_model._meta.verbose_name + self.title = self.lookup_title + self.empty_value_display = model_admin.get_empty_value_display() + + @property + def include_empty_choice(self): + """ + Return True if a "(None)" choice should be included, which filters + out everything except empty relationships. + """ + return self.field.null or (self.field.is_relation and self.field.many_to_many) + + def has_output(self): + if self.include_empty_choice: + extra = 1 + else: + extra = 0 + return len(self.lookup_choices) + extra > 1 + + def expected_parameters(self): + return [self.lookup_kwarg, self.lookup_kwarg_isnull] + + def field_admin_ordering(self, field, request, model_admin): + """ + Return the model admin's ordering for related field, if provided. + """ + try: + related_admin = model_admin.admin_site.get_model_admin( + field.remote_field.model + ) + except NotRegistered: + return () + else: + return related_admin.get_ordering(request) + + def field_choices(self, field, request, model_admin): + ordering = self.field_admin_ordering(field, request, model_admin) + return field.get_choices(include_blank=False, ordering=ordering) + + def get_facet_counts(self, pk_attname, filtered_qs): + counts = { + f"{pk_val}__c": models.Count( + pk_attname, filter=models.Q(**{self.lookup_kwarg: pk_val}) + ) + for pk_val, _ in self.lookup_choices + } + if self.include_empty_choice: + counts["__c"] = models.Count( + pk_attname, filter=models.Q(**{self.lookup_kwarg_isnull: True}) + ) + return counts + + def choices(self, changelist): + add_facets = changelist.add_facets + facet_counts = self.get_facet_queryset(changelist) if add_facets else None + yield { + "selected": self.lookup_val is None and not self.lookup_val_isnull, + "query_string": changelist.get_query_string( + remove=[self.lookup_kwarg, self.lookup_kwarg_isnull] + ), + "display": _("All"), + } + count = None + for pk_val, val in self.lookup_choices: + if add_facets: + count = facet_counts[f"{pk_val}__c"] + val = f"{val} ({count})" + yield { + "selected": self.lookup_val is not None + and str(pk_val) in self.lookup_val, + "query_string": changelist.get_query_string( + {self.lookup_kwarg: pk_val}, [self.lookup_kwarg_isnull] + ), + "display": val, + } + empty_title = self.empty_value_display + if self.include_empty_choice: + if add_facets: + count = facet_counts["__c"] + empty_title = f"{empty_title} ({count})" + yield { + "selected": bool(self.lookup_val_isnull), + "query_string": changelist.get_query_string( + {self.lookup_kwarg_isnull: "True"}, [self.lookup_kwarg] + ), + "display": empty_title, + } + + +FieldListFilter.register(lambda f: f.remote_field, RelatedFieldListFilter) + + +class BooleanFieldListFilter(FieldListFilter): + def __init__(self, field, request, params, model, model_admin, field_path): + self.lookup_kwarg = "%s__exact" % field_path + self.lookup_kwarg2 = "%s__isnull" % field_path + self.lookup_val = get_last_value_from_parameters(params, self.lookup_kwarg) + self.lookup_val2 = get_last_value_from_parameters(params, self.lookup_kwarg2) + super().__init__(field, request, params, model, model_admin, field_path) + if ( + self.used_parameters + and self.lookup_kwarg in self.used_parameters + and self.used_parameters[self.lookup_kwarg] in ("1", "0") + ): + self.used_parameters[self.lookup_kwarg] = bool( + int(self.used_parameters[self.lookup_kwarg]) + ) + + def expected_parameters(self): + return [self.lookup_kwarg, self.lookup_kwarg2] + + def get_facet_counts(self, pk_attname, filtered_qs): + return { + "true__c": models.Count( + pk_attname, filter=models.Q(**{self.field_path: True}) + ), + "false__c": models.Count( + pk_attname, filter=models.Q(**{self.field_path: False}) + ), + "null__c": models.Count( + pk_attname, filter=models.Q(**{self.lookup_kwarg2: True}) + ), + } + + def choices(self, changelist): + field_choices = dict(self.field.flatchoices) + add_facets = changelist.add_facets + facet_counts = self.get_facet_queryset(changelist) if add_facets else None + for lookup, title, count_field in ( + (None, _("All"), None), + ("1", field_choices.get(True, _("Yes")), "true__c"), + ("0", field_choices.get(False, _("No")), "false__c"), + ): + if add_facets: + if count_field is not None: + count = facet_counts[count_field] + title = f"{title} ({count})" + yield { + "selected": self.lookup_val == lookup and not self.lookup_val2, + "query_string": changelist.get_query_string( + {self.lookup_kwarg: lookup}, [self.lookup_kwarg2] + ), + "display": title, + } + if self.field.null: + display = field_choices.get(None, _("Unknown")) + if add_facets: + count = facet_counts["null__c"] + display = f"{display} ({count})" + yield { + "selected": self.lookup_val2 == "True", + "query_string": changelist.get_query_string( + {self.lookup_kwarg2: "True"}, [self.lookup_kwarg] + ), + "display": display, + } + + +FieldListFilter.register( + lambda f: isinstance(f, models.BooleanField), BooleanFieldListFilter +) + + +class ChoicesFieldListFilter(FieldListFilter): + def __init__(self, field, request, params, model, model_admin, field_path): + self.lookup_kwarg = "%s__exact" % field_path + self.lookup_kwarg_isnull = "%s__isnull" % field_path + self.lookup_val = params.get(self.lookup_kwarg) + self.lookup_val_isnull = get_last_value_from_parameters( + params, self.lookup_kwarg_isnull + ) + super().__init__(field, request, params, model, model_admin, field_path) + + def expected_parameters(self): + return [self.lookup_kwarg, self.lookup_kwarg_isnull] + + def get_facet_counts(self, pk_attname, filtered_qs): + return { + f"{i}__c": models.Count( + pk_attname, + filter=models.Q( + (self.lookup_kwarg, value) + if value is not None + else (self.lookup_kwarg_isnull, True) + ), + ) + for i, (value, _) in enumerate(self.field.flatchoices) + } + + def choices(self, changelist): + add_facets = changelist.add_facets + facet_counts = self.get_facet_queryset(changelist) if add_facets else None + yield { + "selected": self.lookup_val is None, + "query_string": changelist.get_query_string( + remove=[self.lookup_kwarg, self.lookup_kwarg_isnull] + ), + "display": _("All"), + } + none_title = "" + for i, (lookup, title) in enumerate(self.field.flatchoices): + if add_facets: + count = facet_counts[f"{i}__c"] + title = f"{title} ({count})" + if lookup is None: + none_title = title + continue + yield { + "selected": self.lookup_val is not None + and str(lookup) in self.lookup_val, + "query_string": changelist.get_query_string( + {self.lookup_kwarg: lookup}, [self.lookup_kwarg_isnull] + ), + "display": title, + } + if none_title: + yield { + "selected": bool(self.lookup_val_isnull), + "query_string": changelist.get_query_string( + {self.lookup_kwarg_isnull: "True"}, [self.lookup_kwarg] + ), + "display": none_title, + } + + +FieldListFilter.register(lambda f: bool(f.choices), ChoicesFieldListFilter) + + +class DateFieldListFilter(FieldListFilter): + def __init__(self, field, request, params, model, model_admin, field_path): + self.field_generic = "%s__" % field_path + self.date_params = { + k: v[-1] for k, v in params.items() if k.startswith(self.field_generic) + } + + now = timezone.now() + # When time zone support is enabled, convert "now" to the user's time + # zone so Django's definition of "Today" matches what the user expects. + if timezone.is_aware(now): + now = timezone.localtime(now) + + if isinstance(field, models.DateTimeField): + today = now.replace(hour=0, minute=0, second=0, microsecond=0) + else: # field is a models.DateField + today = now.date() + tomorrow = today + datetime.timedelta(days=1) + if today.month == 12: + next_month = today.replace(year=today.year + 1, month=1, day=1) + else: + next_month = today.replace(month=today.month + 1, day=1) + next_year = today.replace(year=today.year + 1, month=1, day=1) + + self.lookup_kwarg_since = "%s__gte" % field_path + self.lookup_kwarg_until = "%s__lt" % field_path + self.links = ( + (_("Any date"), {}), + ( + _("Today"), + { + self.lookup_kwarg_since: today, + self.lookup_kwarg_until: tomorrow, + }, + ), + ( + _("Past 7 days"), + { + self.lookup_kwarg_since: today - datetime.timedelta(days=7), + self.lookup_kwarg_until: tomorrow, + }, + ), + ( + _("This month"), + { + self.lookup_kwarg_since: today.replace(day=1), + self.lookup_kwarg_until: next_month, + }, + ), + ( + _("This year"), + { + self.lookup_kwarg_since: today.replace(month=1, day=1), + self.lookup_kwarg_until: next_year, + }, + ), + ) + if field.null: + self.lookup_kwarg_isnull = "%s__isnull" % field_path + self.links += ( + (_("No date"), {self.field_generic + "isnull": True}), + (_("Has date"), {self.field_generic + "isnull": False}), + ) + super().__init__(field, request, params, model, model_admin, field_path) + + def expected_parameters(self): + params = [self.lookup_kwarg_since, self.lookup_kwarg_until] + if self.field.null: + params.append(self.lookup_kwarg_isnull) + return params + + def get_facet_counts(self, pk_attname, filtered_qs): + return { + f"{i}__c": models.Count(pk_attname, filter=models.Q(**param_dict)) + for i, (_, param_dict) in enumerate(self.links) + } + + def choices(self, changelist): + add_facets = changelist.add_facets + facet_counts = self.get_facet_queryset(changelist) if add_facets else None + for i, (title, param_dict) in enumerate(self.links): + param_dict_str = {key: str(value) for key, value in param_dict.items()} + if add_facets: + count = facet_counts[f"{i}__c"] + title = f"{title} ({count})" + yield { + "selected": self.date_params == param_dict_str, + "query_string": changelist.get_query_string( + param_dict_str, [self.field_generic] + ), + "display": title, + } + + +FieldListFilter.register(lambda f: isinstance(f, models.DateField), DateFieldListFilter) + + +# This should be registered last, because it's a last resort. For example, +# if a field is eligible to use the BooleanFieldListFilter, that'd be much +# more appropriate, and the AllValuesFieldListFilter won't get used for it. +class AllValuesFieldListFilter(FieldListFilter): + def __init__(self, field, request, params, model, model_admin, field_path): + self.lookup_kwarg = field_path + self.lookup_kwarg_isnull = "%s__isnull" % field_path + self.lookup_val = params.get(self.lookup_kwarg) + self.lookup_val_isnull = get_last_value_from_parameters( + params, self.lookup_kwarg_isnull + ) + self.empty_value_display = model_admin.get_empty_value_display() + parent_model, reverse_path = reverse_field_path(model, field_path) + # Obey parent ModelAdmin queryset when deciding which options to show + if model == parent_model: + queryset = model_admin.get_queryset(request) + else: + queryset = parent_model._default_manager.all() + self.lookup_choices = ( + queryset.distinct().order_by(field.name).values_list(field.name, flat=True) + ) + super().__init__(field, request, params, model, model_admin, field_path) + + def expected_parameters(self): + return [self.lookup_kwarg, self.lookup_kwarg_isnull] + + def get_facet_counts(self, pk_attname, filtered_qs): + return { + f"{i}__c": models.Count( + pk_attname, + filter=models.Q( + (self.lookup_kwarg, value) + if value is not None + else (self.lookup_kwarg_isnull, True) + ), + ) + for i, value in enumerate(self.lookup_choices) + } + + def choices(self, changelist): + add_facets = changelist.add_facets + facet_counts = self.get_facet_queryset(changelist) if add_facets else None + yield { + "selected": self.lookup_val is None and self.lookup_val_isnull is None, + "query_string": changelist.get_query_string( + remove=[self.lookup_kwarg, self.lookup_kwarg_isnull] + ), + "display": _("All"), + } + include_none = False + count = None + empty_title = self.empty_value_display + for i, val in enumerate(self.lookup_choices): + if add_facets: + count = facet_counts[f"{i}__c"] + if val is None: + include_none = True + empty_title = f"{empty_title} ({count})" if add_facets else empty_title + continue + val = str(val) + yield { + "selected": self.lookup_val is not None and val in self.lookup_val, + "query_string": changelist.get_query_string( + {self.lookup_kwarg: val}, [self.lookup_kwarg_isnull] + ), + "display": f"{val} ({count})" if add_facets else val, + } + if include_none: + yield { + "selected": bool(self.lookup_val_isnull), + "query_string": changelist.get_query_string( + {self.lookup_kwarg_isnull: "True"}, [self.lookup_kwarg] + ), + "display": empty_title, + } + + +FieldListFilter.register(lambda f: True, AllValuesFieldListFilter) + + +class RelatedOnlyFieldListFilter(RelatedFieldListFilter): + def field_choices(self, field, request, model_admin): + pk_qs = ( + model_admin.get_queryset(request) + .distinct() + .values_list("%s__pk" % self.field_path, flat=True) + ) + ordering = self.field_admin_ordering(field, request, model_admin) + return field.get_choices( + include_blank=False, limit_choices_to={"pk__in": pk_qs}, ordering=ordering + ) + + +class EmptyFieldListFilter(FieldListFilter): + def __init__(self, field, request, params, model, model_admin, field_path): + if not field.empty_strings_allowed and not field.null: + raise ImproperlyConfigured( + "The list filter '%s' cannot be used with field '%s' which " + "doesn't allow empty strings and nulls." + % ( + self.__class__.__name__, + field.name, + ) + ) + self.lookup_kwarg = "%s__isempty" % field_path + self.lookup_val = get_last_value_from_parameters(params, self.lookup_kwarg) + super().__init__(field, request, params, model, model_admin, field_path) + + def get_lookup_condition(self): + lookup_conditions = [] + if self.field.empty_strings_allowed: + lookup_conditions.append((self.field_path, "")) + if self.field.null: + lookup_conditions.append((f"{self.field_path}__isnull", True)) + return models.Q.create(lookup_conditions, connector=models.Q.OR) + + def queryset(self, request, queryset): + if self.lookup_kwarg not in self.used_parameters: + return queryset + if self.lookup_val not in ("0", "1"): + raise IncorrectLookupParameters + + lookup_condition = self.get_lookup_condition() + if self.lookup_val == "1": + return queryset.filter(lookup_condition) + return queryset.exclude(lookup_condition) + + def expected_parameters(self): + return [self.lookup_kwarg] + + def get_facet_counts(self, pk_attname, filtered_qs): + lookup_condition = self.get_lookup_condition() + return { + "empty__c": models.Count(pk_attname, filter=lookup_condition), + "not_empty__c": models.Count(pk_attname, filter=~lookup_condition), + } + + def choices(self, changelist): + add_facets = changelist.add_facets + facet_counts = self.get_facet_queryset(changelist) if add_facets else None + for lookup, title, count_field in ( + (None, _("All"), None), + ("1", _("Empty"), "empty__c"), + ("0", _("Not empty"), "not_empty__c"), + ): + if add_facets: + if count_field is not None: + count = facet_counts[count_field] + title = f"{title} ({count})" + yield { + "selected": self.lookup_val == lookup, + "query_string": changelist.get_query_string( + {self.lookup_kwarg: lookup} + ), + "display": title, + } diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/forms.py b/venv/lib/python3.12/site-packages/django/contrib/admin/forms.py new file mode 100644 index 0000000000..bbb072bdb2 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/forms.py @@ -0,0 +1,31 @@ +from django.contrib.auth.forms import AuthenticationForm, PasswordChangeForm +from django.core.exceptions import ValidationError +from django.utils.translation import gettext_lazy as _ + + +class AdminAuthenticationForm(AuthenticationForm): + """ + A custom authentication form used in the admin app. + """ + + error_messages = { + **AuthenticationForm.error_messages, + "invalid_login": _( + "Please enter the correct %(username)s and password for a staff " + "account. Note that both fields may be case-sensitive." + ), + } + required_css_class = "required" + + def confirm_login_allowed(self, user): + super().confirm_login_allowed(user) + if not user.is_staff: + raise ValidationError( + self.error_messages["invalid_login"], + code="invalid_login", + params={"username": self.username_field.verbose_name}, + ) + + +class AdminPasswordChangeForm(PasswordChangeForm): + required_css_class = "required" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/helpers.py b/venv/lib/python3.12/site-packages/django/contrib/admin/helpers.py new file mode 100644 index 0000000000..d28a382814 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/helpers.py @@ -0,0 +1,568 @@ +import json + +from django import forms +from django.contrib.admin.utils import ( + display_for_field, + flatten_fieldsets, + help_text_for_field, + label_for_field, + lookup_field, + quote, +) +from django.core.exceptions import ObjectDoesNotExist +from django.db.models.fields.related import ( + ForeignObjectRel, + ManyToManyRel, + OneToOneField, +) +from django.forms.utils import flatatt +from django.template.defaultfilters import capfirst, linebreaksbr +from django.urls import NoReverseMatch, reverse +from django.utils.functional import cached_property +from django.utils.html import conditional_escape, format_html +from django.utils.safestring import mark_safe +from django.utils.translation import gettext +from django.utils.translation import gettext_lazy as _ + +ACTION_CHECKBOX_NAME = "_selected_action" + + +class ActionForm(forms.Form): + action = forms.ChoiceField(label=_("Action:")) + select_across = forms.BooleanField( + label="", + required=False, + initial=0, + widget=forms.HiddenInput({"class": "select-across"}), + ) + + +class AdminForm: + def __init__( + self, + form, + fieldsets, + prepopulated_fields, + readonly_fields=None, + model_admin=None, + ): + self.form, self.fieldsets = form, fieldsets + self.prepopulated_fields = [ + {"field": form[field_name], "dependencies": [form[f] for f in dependencies]} + for field_name, dependencies in prepopulated_fields.items() + ] + self.model_admin = model_admin + if readonly_fields is None: + readonly_fields = () + self.readonly_fields = readonly_fields + + def __repr__(self): + return ( + f"<{self.__class__.__qualname__}: " + f"form={self.form.__class__.__qualname__} " + f"fieldsets={self.fieldsets!r}>" + ) + + def __iter__(self): + for name, options in self.fieldsets: + yield Fieldset( + self.form, + name, + readonly_fields=self.readonly_fields, + model_admin=self.model_admin, + **options, + ) + + @property + def errors(self): + return self.form.errors + + @property + def non_field_errors(self): + return self.form.non_field_errors + + @property + def fields(self): + return self.form.fields + + @property + def is_bound(self): + return self.form.is_bound + + @property + def media(self): + media = self.form.media + for fs in self: + media += fs.media + return media + + +class Fieldset: + def __init__( + self, + form, + name=None, + readonly_fields=(), + fields=(), + classes=(), + description=None, + model_admin=None, + ): + self.form = form + self.name, self.fields = name, fields + self.classes = " ".join(classes) + self.description = description + self.model_admin = model_admin + self.readonly_fields = readonly_fields + + @property + def media(self): + return forms.Media() + + @cached_property + def is_collapsible(self): + if any([field in self.fields for field in self.form.errors]): + return False + return "collapse" in self.classes + + def __iter__(self): + for field in self.fields: + yield Fieldline( + self.form, field, self.readonly_fields, model_admin=self.model_admin + ) + + +class Fieldline: + def __init__(self, form, field, readonly_fields=None, model_admin=None): + self.form = form # A django.forms.Form instance + if not hasattr(field, "__iter__") or isinstance(field, str): + self.fields = [field] + else: + self.fields = field + self.has_visible_field = not all( + field in self.form.fields and self.form.fields[field].widget.is_hidden + for field in self.fields + ) + self.model_admin = model_admin + if readonly_fields is None: + readonly_fields = () + self.readonly_fields = readonly_fields + + def __iter__(self): + for i, field in enumerate(self.fields): + if field in self.readonly_fields: + yield AdminReadonlyField( + self.form, field, is_first=(i == 0), model_admin=self.model_admin + ) + else: + yield AdminField(self.form, field, is_first=(i == 0)) + + def errors(self): + return mark_safe( + "\n".join( + self.form[f].errors.as_ul() + for f in self.fields + if f not in self.readonly_fields + ).strip("\n") + ) + + +class AdminField: + def __init__(self, form, field, is_first): + self.field = form[field] # A django.forms.BoundField instance + self.is_first = is_first # Whether this field is first on the line + self.is_checkbox = isinstance(self.field.field.widget, forms.CheckboxInput) + self.is_readonly = False + + def label_tag(self): + classes = [] + contents = conditional_escape(self.field.label) + if self.is_checkbox: + classes.append("vCheckboxLabel") + + if self.field.field.required: + classes.append("required") + if not self.is_first: + classes.append("inline") + attrs = {"class": " ".join(classes)} if classes else {} + # checkboxes should not have a label suffix as the checkbox appears + # to the left of the label. + return self.field.label_tag( + contents=mark_safe(contents), + attrs=attrs, + label_suffix="" if self.is_checkbox else None, + ) + + def errors(self): + return mark_safe(self.field.errors.as_ul()) + + +class AdminReadonlyField: + def __init__(self, form, field, is_first, model_admin=None): + # Make self.field look a little bit like a field. This means that + # {{ field.name }} must be a useful class name to identify the field. + # For convenience, store other field-related data here too. + if callable(field): + class_name = field.__name__ if field.__name__ != "" else "" + else: + class_name = field + + if form._meta.labels and class_name in form._meta.labels: + label = form._meta.labels[class_name] + else: + label = label_for_field(field, form._meta.model, model_admin, form=form) + + if form._meta.help_texts and class_name in form._meta.help_texts: + help_text = form._meta.help_texts[class_name] + else: + help_text = help_text_for_field(class_name, form._meta.model) + + if field in form.fields: + is_hidden = form.fields[field].widget.is_hidden + else: + is_hidden = False + + self.field = { + "name": class_name, + "label": label, + "help_text": help_text, + "field": field, + "is_hidden": is_hidden, + } + self.form = form + self.model_admin = model_admin + self.is_first = is_first + self.is_checkbox = False + self.is_readonly = True + self.empty_value_display = model_admin.get_empty_value_display() + + def label_tag(self): + attrs = {} + if not self.is_first: + attrs["class"] = "inline" + label = self.field["label"] + return format_html( + "{}{}", + flatatt(attrs), + capfirst(label), + self.form.label_suffix, + ) + + def get_admin_url(self, remote_field, remote_obj): + url_name = "admin:%s_%s_change" % ( + remote_field.model._meta.app_label, + remote_field.model._meta.model_name, + ) + try: + url = reverse( + url_name, + args=[quote(remote_obj.pk)], + current_app=self.model_admin.admin_site.name, + ) + return format_html('{}', url, remote_obj) + except NoReverseMatch: + return str(remote_obj) + + def contents(self): + from django.contrib.admin.templatetags.admin_list import _boolean_icon + + field, obj, model_admin = ( + self.field["field"], + self.form.instance, + self.model_admin, + ) + try: + f, attr, value = lookup_field(field, obj, model_admin) + except (AttributeError, ValueError, ObjectDoesNotExist): + result_repr = self.empty_value_display + else: + if field in self.form.fields: + widget = self.form[field].field.widget + # This isn't elegant but suffices for contrib.auth's + # ReadOnlyPasswordHashWidget. + if getattr(widget, "read_only", False): + return widget.render(field, value) + if f is None: + if getattr(attr, "boolean", False): + result_repr = _boolean_icon(value) + else: + if hasattr(value, "__html__"): + result_repr = value + else: + result_repr = linebreaksbr(value) + else: + if isinstance(f.remote_field, ManyToManyRel) and value is not None: + result_repr = ", ".join(map(str, value.all())) + elif ( + isinstance(f.remote_field, (ForeignObjectRel, OneToOneField)) + and value is not None + ): + result_repr = self.get_admin_url(f.remote_field, value) + else: + result_repr = display_for_field(value, f, self.empty_value_display) + result_repr = linebreaksbr(result_repr) + return conditional_escape(result_repr) + + +class InlineAdminFormSet: + """ + A wrapper around an inline formset for use in the admin system. + """ + + def __init__( + self, + inline, + formset, + fieldsets, + prepopulated_fields=None, + readonly_fields=None, + model_admin=None, + has_add_permission=True, + has_change_permission=True, + has_delete_permission=True, + has_view_permission=True, + ): + self.opts = inline + self.formset = formset + self.fieldsets = fieldsets + self.model_admin = model_admin + if readonly_fields is None: + readonly_fields = () + self.readonly_fields = readonly_fields + if prepopulated_fields is None: + prepopulated_fields = {} + self.prepopulated_fields = prepopulated_fields + self.classes = " ".join(inline.classes) if inline.classes else "" + self.has_add_permission = has_add_permission + self.has_change_permission = has_change_permission + self.has_delete_permission = has_delete_permission + self.has_view_permission = has_view_permission + + def __iter__(self): + if self.has_change_permission: + readonly_fields_for_editing = self.readonly_fields + else: + readonly_fields_for_editing = self.readonly_fields + flatten_fieldsets( + self.fieldsets + ) + + for form, original in zip( + self.formset.initial_forms, self.formset.get_queryset() + ): + view_on_site_url = self.opts.get_view_on_site_url(original) + yield InlineAdminForm( + self.formset, + form, + self.fieldsets, + self.prepopulated_fields, + original, + readonly_fields_for_editing, + model_admin=self.opts, + view_on_site_url=view_on_site_url, + ) + for form in self.formset.extra_forms: + yield InlineAdminForm( + self.formset, + form, + self.fieldsets, + self.prepopulated_fields, + None, + self.readonly_fields, + model_admin=self.opts, + ) + if self.has_add_permission: + yield InlineAdminForm( + self.formset, + self.formset.empty_form, + self.fieldsets, + self.prepopulated_fields, + None, + self.readonly_fields, + model_admin=self.opts, + ) + + def fields(self): + fk = getattr(self.formset, "fk", None) + empty_form = self.formset.empty_form + meta_labels = empty_form._meta.labels or {} + meta_help_texts = empty_form._meta.help_texts or {} + for i, field_name in enumerate(flatten_fieldsets(self.fieldsets)): + if fk and fk.name == field_name: + continue + if not self.has_change_permission or field_name in self.readonly_fields: + form_field = empty_form.fields.get(field_name) + widget_is_hidden = False + if form_field is not None: + widget_is_hidden = form_field.widget.is_hidden + yield { + "name": field_name, + "label": meta_labels.get(field_name) + or label_for_field( + field_name, + self.opts.model, + self.opts, + form=empty_form, + ), + "widget": {"is_hidden": widget_is_hidden}, + "required": False, + "help_text": meta_help_texts.get(field_name) + or help_text_for_field(field_name, self.opts.model), + } + else: + form_field = empty_form.fields[field_name] + label = form_field.label + if label is None: + label = label_for_field( + field_name, self.opts.model, self.opts, form=empty_form + ) + yield { + "name": field_name, + "label": label, + "widget": form_field.widget, + "required": form_field.required, + "help_text": form_field.help_text, + } + + def inline_formset_data(self): + verbose_name = self.opts.verbose_name + return json.dumps( + { + "name": "#%s" % self.formset.prefix, + "options": { + "prefix": self.formset.prefix, + "addText": gettext("Add another %(verbose_name)s") + % { + "verbose_name": capfirst(verbose_name), + }, + "deleteText": gettext("Remove"), + }, + } + ) + + @property + def forms(self): + return self.formset.forms + + @cached_property + def is_collapsible(self): + if any(self.formset.errors): + return False + return "collapse" in self.classes + + def non_form_errors(self): + return self.formset.non_form_errors() + + @property + def is_bound(self): + return self.formset.is_bound + + @property + def total_form_count(self): + return self.formset.total_form_count + + @property + def media(self): + media = self.opts.media + self.formset.media + for fs in self: + media += fs.media + return media + + +class InlineAdminForm(AdminForm): + """ + A wrapper around an inline form for use in the admin system. + """ + + def __init__( + self, + formset, + form, + fieldsets, + prepopulated_fields, + original, + readonly_fields=None, + model_admin=None, + view_on_site_url=None, + ): + self.formset = formset + self.model_admin = model_admin + self.original = original + self.show_url = original and view_on_site_url is not None + self.absolute_url = view_on_site_url + super().__init__( + form, fieldsets, prepopulated_fields, readonly_fields, model_admin + ) + + def __iter__(self): + for name, options in self.fieldsets: + yield InlineFieldset( + self.formset, + self.form, + name, + self.readonly_fields, + model_admin=self.model_admin, + **options, + ) + + def needs_explicit_pk_field(self): + return ( + # Auto fields are editable, so check for auto or non-editable pk. + self.form._meta.model._meta.auto_field + or not self.form._meta.model._meta.pk.editable + # The pk can be editable, but excluded from the inline. + or ( + self.form._meta.exclude + and self.form._meta.model._meta.pk.name in self.form._meta.exclude + ) + or + # Also search any parents for an auto field. (The pk info is + # propagated to child models so that does not need to be checked + # in parents.) + any( + parent._meta.auto_field or not parent._meta.model._meta.pk.editable + for parent in self.form._meta.model._meta.all_parents + ) + ) + + def pk_field(self): + return AdminField(self.form, self.formset._pk_field.name, False) + + def fk_field(self): + fk = getattr(self.formset, "fk", None) + if fk: + return AdminField(self.form, fk.name, False) + else: + return "" + + def deletion_field(self): + from django.forms.formsets import DELETION_FIELD_NAME + + return AdminField(self.form, DELETION_FIELD_NAME, False) + + +class InlineFieldset(Fieldset): + def __init__(self, formset, *args, **kwargs): + self.formset = formset + super().__init__(*args, **kwargs) + + def __iter__(self): + fk = getattr(self.formset, "fk", None) + for field in self.fields: + if not fk or fk.name != field: + yield Fieldline( + self.form, field, self.readonly_fields, model_admin=self.model_admin + ) + + +class AdminErrorList(forms.utils.ErrorList): + """Store errors for the form/formsets in an add/change view.""" + + def __init__(self, form, inline_formsets): + super().__init__() + + if form.is_bound: + self.extend(form.errors.values()) + for inline_formset in inline_formsets: + self.extend(inline_formset.non_form_errors()) + for errors_in_inline_form in inline_formset.errors: + self.extend(errors_in_inline_form.values()) diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/af/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/af/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..bb91c2e475f5be7edb65780b1e413d8f18344535 GIT binary patch literal 17407 zcmc(md$b)@eaAOXB_JxGyi|rq%)RE`lglFlhd@Y3NCF8-^Ar`soO9-$JDkTHX6D?R z0}aGSReV=PrGhV73o5jz1=P04(pB1OUshLL)#XC$A4;`d+Je>Awfgz)y=U&ZH#a~E zYjswB=R31!&)&cN+rQV|`{oD79e%6fdKh{cbk>o^9CC;;W5=k}n28q|^AhlE@TK57 z@Ko>(;A_Dfz*mCb@#X&muH*Tn7aOx2ycX2=9|CFGd=7jb_yzDV@GGFYddR>3CaC)V z2#TMdcs%krV@~AxOi=Ay5q!3Vb2Y-v>_ye+p_GN1kBJQt((1R!tQg0XKr;tMAKi0`>j- zz_YxdP~&(46d#8p4Anap)VNOoC5KZ%@o_G=1l$CQpFa2saIb%V zJ19Qx2ls#vf!BiCd{JQO_o6xYwOpyYodDE`j`H-byS!@)h^&EQ^8?fnK+ z`#VrV>CNjweHVk0@AaVGzY#nGd^;$)eijt}_k-&H>mXBT9s%|J_dw0}k3dw|JPE4* z=b?le?=hg}<5W=f7yI&YQ2nm(&l^ELHLn9Tt{L!B@XcTjejVHbUifl!4txh#1y4YD z>UT4!{;mZzjsz5+)1cxC#7gQ1U(LEI0q30$uaFq>F+`H_hV3U`vrI*_}}2W!R4=X{_1O>+I<9k6ZlWya`3fF zoF9B2cpcC8fER-&jW~Jj1T}xxgPM=qJ>CT##`70Jjq5>Bd_4lb0Q@$n`j3I)@83NB zmoGnb)Q#_0@a999TTt`!0XoBln0rC#$JfDa;G^JD@H~D{33DyD65I!Be!dDyFMbXl z0UkN#^zs-`ay=e=5qK)N2pj{|-}xXaV77vqha5zu%|}4-{eZ`ZJ$?h!_`U?`umdqDAX6R2^%3sgTJ^6&2e)&HFy zzYL<<<{v=SdlHl${|3axm;mO)$0guCa2+@R{}TKJxcY2krobP89{@L=1h>DsSQ2l)zl-=D0YW|MExN~q6)OQ~PHNHDR$@Lyk z?LGuv34Q}qy%RBp8^D)=Tfq;5YX5Oia{3QYdUVLEoxUFh>bsLb$>HUo`nlAfb*JzL4id=R3VQ1yucW z!S&#!pvG|vxD7n~0%8OB8gLc(eNg)L3Y>)6IUm$G*MTnuw}9fK37!nz2ugo$1!a#P z1;x(;;IZJ}fRfMmL5<^aP<;P8sP=vds=Z^YZr;uSQ5kausQJ19RJ$JoHI6TX$AOQ4 zlIK7B@_zxv=g&dSG^TsE5I|sQ^3{WiQqM$#@Po|?v)prrJCTeh@sF$v+gl7u3Ap2WH^IAgW@PuXgs`0c$+JAJq3xfG2~M%bYydgW@Lx z#phn|Q1Gpw=J^&-dVU8ex!wh8J|6<5FW&<7-48+4dmL1IPk@Jj5%ezT&!L;3>mk+G z^(RmZ+Mx%o*Fva)jn@_M7HAiwOFZ2MX^dAxZ-m|st%LSJniI+MRA@8QfzE|=G1c~x zJl_ZPpbe15qf7Ips}2Ra@t4M-s}KD?^koR~ncsz^^SU%w_dy?k?t&hIhOgh_;dWo} zTi{Ee--cpe_IdCe=xqNic-Y@dzJKQLr8_T&uJO-;tDpy<6QRY>%OL5{8=%u6>5Z-$ zbSv~(=qu2Bp}o*2pm##Lc0){=y*|wE8c6!A>r(qm?gegx?uNeT%VeX)^%icVTX*_` z8^KZNlm1z7*3kVF_wRr{2E7Tww94x>-2DM`Pg&yfz5&lmp$nnykZj?tP;trTb-f%x>VZ{x&9O^>n zLu;Ymfn+DTu7y4dod@Y!0=);iA9^vQ>p=(hcZT0rLw^KaZcE(H8NeSy@>?%-MK%_E zhWm~F`AguZpf>b}zU&V0b!JjMA`uwhN`*uL8rkF=t}X!h8?JAy_M zW!=a2-IfQ@9)?>9wnXVv*vo=A4>XEK)Q<9~v66Oddu8hxFY3H8tJ>}0fG;P4WRkaa zE1ua;>Q<<$EL6>^2CXz2)N`!5hs;9QP4cNI-GLRsVmOhwF+U;Z}?lzhAHoY{Mj;NCb zGck2)Q86np`wV(7#9p#dsPO^1bSz;4-G-Qn(}Q7RrCFUuVWXb*JGIPQ7IvAxLKNlv zUS>@rSWE?XH-+jY>7Y7P)ENXlEN&)A8%3@8&qD(%l*6@G^edxJF`xcK3+u813yPt-#MOSa7#{(LktJZL?r_lHc zHd%b=S(U;+g{KW>l772^HeTP45o1H6(hPve0a`7yBQ~(I#?(E15@8Cx`7S#H=yb-Ecw_(8f_a%8S6;4M%FG@RcmZ6UG z9Mr78$p^hClN&08HkaKYUGWtPpY|;0=3u+|e-s7AyyiM$don*s@TD2P+PyMsl6t>` zt-2&)Z6}P|ylD`qv#MF!>E#2nwoCpIgh4l&DQ(<(D`|B<yPJ-E4 zo|2wIWJdEz+D!61>N>S6`VDZmMIS2W= zuoab=0>h$?oe^BDrrWEAZ7YqMuuHgT5cTsZCyV-2L=ds^%6ef(c|s#fD`tbu4m$lT zS9VYuDXxO>$%He3*gi3^gJZBWr=ihhrxIM1_~gR6h+4!{x&YUxn2kvjf8!wto1uS5 z`nd|3zH|_5wka0RNvq#8o0O)JKHBE-xIX(Nt0n+CJJ>WRxG+}@X?@jPmGIBMD@RdL znVn0}h4WbkuS%F23AGaiwXoizZa1<&K{$=INqu=FyS2vVSk2590&JknWD?D2@aPf^ z-|p-)h8pGb9?>Qnk=)zX7efNv{^Tv>T8J#FGQ7qKXyDOf}h_Q!R147={{@y%nBe%v)`}pT_wB8_0r;33U3+m@yga zqn<-f@YEQ9hAH@6CtDPBI;N z2qx2{gN#ynBFa#jU^su>+IQAa8m4Q-Y$GV!AIk~W58CCGB@Q}i&~NI~mUfEH%Tq{}-E-`VusGS`Hwue@{qGR`i#`t5RcT@duVV`RaQo<<(#U|h5|KEeuS*F zezIY=Hn2)N+_++D1&*zz1@xH6ij>(F_q)5SytF%Dw&h`p7aH^!ng;DwCer0?Lt7HX zT9PK*#(}bZyV@Kjyl?9h3)6wwPP}XRfZL0@4Kti1!iUpV3n;6=En751KK2ifk`k6;z$F^1Y8N?_vY{%V} z-N=Z$({PILd#tkJT3f!b9wJXUuqo1our0x>7#~D=qY?z(m1)Hh;pgXNX|@LqE}FNr z)OLgI6qCk7&fNhzxaz^x>@CQ14|#{8H=86KZ2x70Hlt(gHmVm9=qZ@-`UOLlVnbLDhY_(+sCmM;J2;&wck5i}&<>pS6ruOjf!`AmqZoQp z!zB!)R4&DInkAmBf3>_?i}L*p2nJ?5Mp-r6WrO@So22qZkn)c?DPRFM4#Pp+hWs$s8(svJ;jZKJm zcKgp(vNd)^?K&=K%A2#^$SP+wNDb`u9>2^=GK}Wu&&fRK7?b&oj-sEcS5<0ah76_7UsXFHB zC=-nZ8yFAe>?j(26f!oZgxn}s3JssQtKpQ;jak(+JXIwu+(13l83tKxIxUeLD#0!* z2(i|V31ZY~Cr#z+R1O;P%?HglWfDutZ>U>&^um@xJ)3uW7mcrRopVOoCZ?f#Un#;!Sa#Lek(_B{Q$86 z{|+D4xsoA%Qcu$z$&C22Ld9Ia}z1X(c&t1JL7CF8O$qY7fE z+z?(erlu|&KWE~ci7|f8rHyX0&ydHr6S}LxD!y!md=!jK<$15VY#Dh^#WoX9Mtdrl z`ZC9S0d3#FvT$hOcqDxDfT|~PP-VRYRzX$m`v7hWl=Vrw6!in zos=CObj_i&q%d6Qgb7Wc)rHQOtlP-L;d3UE>HUwHYB*vhH|WMVpbhNJka#r0b}L|` zyOoB${m+-0QAtb0L zZI{;kLBc|>knqq^lWMGIs0*Go@v<3B(>?n`)G5+hjL~Jbv#(c|6^py7Sv}CFC?F?R z#VMp6R=b0sSG5V_tQY#7jJ>~@WvqQLyVzUolg&?ZZb`~9iH!F@d9s|$KYLQP>SiH8 z-1-cKLUGwSW6V0wQj)Cmrz~t2GsZS}+NdtvE0du$b+MaXoHre)6S=S!eUP3_^{pm9 zb)V=Dku+*WsZN`cq|xHEsl%?5xe^sCCmLOIJxc4$u0a-axpp0ibJRA_yC7a^Yo)Ur9#}^h!<3wW;A0*G5;89 zohwJdsnbpxWhKw8wX^>swG|PjiI3uyjb^6rrEXxNCcULvrWaI9aNEc~Ovh36s?2Nrq)cKS52<71T%+8G%ELB3a>Urs1%F54` zB%ZdT?CFND4E8x1{7!G$3JdO_X;Pc3)&q}Z``oPCc_Cr?$gF^ZaI zC!W^Eyl$VJ-NK$(<)#R@miAd1Jk8M)DQ{)AnewBo8*(y%FE86vJsm@(SiV^o;pp*7 zY`tZUf%41wA69}j=ukHdTDWz&jakm7In|dYa6Cc;c>pAbXb%0qm>li{QsF-tB zjS7{l6{W%UxJ6KjN-0_Qm?)vrP&n$c7Vp-E$}Y4YkXn0DSwz%=#|7k><^4W6**cOR z>!n<*W-|E*C(M`ZP&G5elHq7=Fyct5uarUgt2>#};$nm$*}~bwsh;bQ^QlqUk(CfD z6m4^03(jwE@5dxj3Yd(Zy$=nL;pDK}lrfG4E!T~NSa`A_G0ZRnG;Bq!11Zg65VJ;Y zMl@*eXm+>_YoQ#HW%N{@OeL5;<|Mgkro?XO#F+FH^odr==3txDhs~LFV%Fsxcvxo1 zhDDn`noZ1oAbHxG88K8og_GsE)VOsb?3G3>cPK?4$kDktmqCx?iL_rRo6@0_<;Yw$ zY!DnuMUj-2rM_Mlqd;`bs*2r=+FPfUa&vPzrU{N-*@q-WBO>>kO);!b%vCYlstOo! zt0sp@yOc#i8ymF`o1H5(t8GM95iCr{{B4e^77AbVr;!w8{H=*JbN`@Syx7Su0qLVo zuOf3Ln9H34#rxL@mU$=A&rnGK&r(%v@kOf(j;cPPF+%94V z)_KcHun{4m8q&zHoioXZR3>j14IJ4_^0yyKZrnK**=~%o$%r+-b6uMKx@Gm2y`{t& zvpkB;Ala%$C!ONw=&^W4O`7~=2}qk7PAL%#vveJKWu`J+Q7byhieh`Z&fJJcr)CFY zBV$93(cx3X22&T4FqY<5axugM>H-s4R3men4Dg5=Wf?PFvL?}51KZyV5juMr2Lud@ zZFgmI9GZ6d`@c_{&0Q^{bpYm+f2R*Kv#F$NYu6AqQLgn)sdT(mNJ8r?=L&tmbcUjQ zaa&GC>3+qYmNjn1ojJ3FvNfz$*vuAT;Bse6Yf)>^@{hPSNz_^Nm2xGE$z>hNp~!i7 zM=`J1wPLHXfO)!8E?*CKQKTVK#Q1A>2VT&n-r9k>zU+Hj-v$Od2Tl(5lxsC{D(dP8 z9+R4P$~F8BV;!pKPPtfFU;|qE>8^|ztab7lOK3JReZ;rtTnhGzHgGIeMptAlahHw9 zhS?D19L?(-2R5`&mmZ;vIJiEAtJpOA&x~eph4$g^CLhgPGdj9L1aHs^CLK}WO0-Xcerr3Wm}?Fkr;95b#( z_zcdDYjL+rYuxeINT{RoTzr7dwaLv(!%=eC;B*BOWK*Gmvfv2V+g>B5>6~J*_FKZb zK%O4s$)w;u=Oxv53@hKvT7xb}6E@fJ&VqLAqQ)9vA#PQe?eaRlG}{O4N$s=-$<`DR zvpp2Md;v?(Fc?t)ta1*WCmo&8Wury?;ny5{unb!86{lOHL{CBs8)fBIYQ{?TK*X}o%55|j>(a}0X0ew zd{80h^qV@npYl1!#|r7%ZF$y&+L%C+L5u9x4;pX-A^dgh{V0A6%79; z!6u*5IWGteI&hnz;?zZAyO1kKLNDrLC4CkRqTn!xJlLve#tM^?12NnFNxqJ%{6f>p zRLZK{&3YAWq&ZLJjn*$lca-Za)ewh%^<}-VmU!$q7m_c$wmkXJt^t1nGS~ALQ!mCV z=8EBj6!AG5tpryLEPGvE%O&JmZ^*Fyz@1ksy0(6z+<4qUBYydB*W+SHi6ehK0b?Xs zWVpyY$~o3j$~bKgwRETbK2|hE4#r0{_GXDtJ>!f*dpq2+KQz$)Z5X<>hg;*bujCzc V-ZfNYtRETQu*TomW3G}_^S{~jKbZgk literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/af/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/af/LC_MESSAGES/django.po new file mode 100644 index 0000000000..ff97eaecd2 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/af/LC_MESSAGES/django.po @@ -0,0 +1,774 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Christopher Penkin, 2012 +# Christopher Penkin, 2012 +# F Wolff , 2019-2020,2023 +# Pi Delport , 2012 +# Pi Delport , 2012 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-09-18 11:41-0300\n" +"PO-Revision-Date: 2023-12-04 07:05+0000\n" +"Last-Translator: F Wolff , 2019-2020,2023\n" +"Language-Team: Afrikaans (http://app.transifex.com/django/django/language/" +"af/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: af\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "Skrap gekose %(verbose_name_plural)s" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "Het %(count)d %(items)s suksesvol geskrap." + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "Kan %(name)s nie skrap nie" + +msgid "Are you sure?" +msgstr "Is u seker?" + +msgid "Administration" +msgstr "Administrasie" + +msgid "All" +msgstr "Almal" + +msgid "Yes" +msgstr "Ja" + +msgid "No" +msgstr "Nee" + +msgid "Unknown" +msgstr "Onbekend" + +msgid "Any date" +msgstr "Enige datum" + +msgid "Today" +msgstr "Vandag" + +msgid "Past 7 days" +msgstr "Vorige 7 dae" + +msgid "This month" +msgstr "Hierdie maand" + +msgid "This year" +msgstr "Hierdie jaar" + +msgid "No date" +msgstr "Geen datum" + +msgid "Has date" +msgstr "Het datum" + +msgid "Empty" +msgstr "Leeg" + +msgid "Not empty" +msgstr "Nie leeg nie" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" +"Gee die korrekte %(username)s en wagwoord vir ’n personeelrekening. Let op " +"dat altwee velde dalk hooflettersensitief is." + +msgid "Action:" +msgstr "Aksie:" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "Voeg nog ’n %(verbose_name)s by" + +msgid "Remove" +msgstr "Verwyder" + +msgid "Addition" +msgstr "Byvoeging" + +msgid "Change" +msgstr "" + +msgid "Deletion" +msgstr "Verwydering" + +msgid "action time" +msgstr "aksietyd" + +msgid "user" +msgstr "gebruiker" + +msgid "content type" +msgstr "inhoudtipe" + +msgid "object id" +msgstr "objek-ID" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/library/functions.html#repr) +msgid "object repr" +msgstr "objek-repr" + +msgid "action flag" +msgstr "aksievlag" + +msgid "change message" +msgstr "veranderingboodskap" + +msgid "log entry" +msgstr "log-inskrywing" + +msgid "log entries" +msgstr "log-inskrywingings" + +#, python-format +msgid "Added “%(object)s”." +msgstr "Het “%(object)s” bygevoeg." + +#, python-format +msgid "Changed “%(object)s” — %(changes)s" +msgstr "Het “%(object)s” gewysig — %(changes)s" + +#, python-format +msgid "Deleted “%(object)s.”" +msgstr "Het “%(object)s” geskrap." + +msgid "LogEntry Object" +msgstr "LogEntry-objek" + +#, python-brace-format +msgid "Added {name} “{object}”." +msgstr "Het {name} “{object}” bygevoeg." + +msgid "Added." +msgstr "Bygevoeg." + +msgid "and" +msgstr "en" + +#, python-brace-format +msgid "Changed {fields} for {name} “{object}”." +msgstr "Het {fields} vir {name} “{object}” bygevoeg." + +#, python-brace-format +msgid "Changed {fields}." +msgstr "Het {fields} verander." + +#, python-brace-format +msgid "Deleted {name} “{object}”." +msgstr "Het {name} “{object}” geskrap." + +msgid "No fields changed." +msgstr "Geen velde het verander nie." + +msgid "None" +msgstr "Geen" + +msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." +msgstr "Hou “Control” in (of “Command” op ’n Mac) om meer as een te kies." + +msgid "Select this object for an action - {}" +msgstr "Kies dié objek vir ’n aksie - {}" + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully." +msgstr "Die {name} “{obj}” is suksesvol bygevoeg." + +msgid "You may edit it again below." +msgstr "Dit kan weer hieronder gewysig word." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was added successfully. You may add another {name} below." +msgstr "" +"Die {name} “{obj}” is suksesvol bygevoeg. Voeg gerus nog ’n {name} onder by." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may edit it again below." +msgstr "" +"Die {name} “{obj}” is suksesvol gewysig. Redigeer dit gerus weer onder." + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully. You may edit it again below." +msgstr "" +"Die {name} “{obj}” is suksesvol bygevoeg. Redigeer dit gerus weer onder." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may add another {name} " +"below." +msgstr "" +"Die {name} “{obj}” is suksesvol bygevoeg. Voeg gerus nog ’n {name} onder by." + +#, python-brace-format +msgid "The {name} “{obj}” was changed successfully." +msgstr "Die {name} “{obj}” is suksesvol gewysig." + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" +"Items moet gekies word om aksies op hulle uit te voer. Geen items is " +"verander nie." + +msgid "No action selected." +msgstr "Geen aksie gekies nie." + +#, python-format +msgid "The %(name)s “%(obj)s” was deleted successfully." +msgstr "Die %(name)s “%(obj)s” is suksesvol geskrap." + +#, python-format +msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" +msgstr "%(name)s met ID “%(key)s” bestaan nie. Is dit dalk geskrap?" + +#, python-format +msgid "Add %s" +msgstr "Voeg %s by" + +#, python-format +msgid "Change %s" +msgstr "Wysig %s" + +#, python-format +msgid "View %s" +msgstr "Beskou %s" + +msgid "Database error" +msgstr "Databasisfout" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "%(count)s %(name)s is suksesvol verander." +msgstr[1] "%(count)s %(name)s is suksesvol verander." + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "%(total_count)s gekies" +msgstr[1] "Al %(total_count)s gekies" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "0 uit %(cnt)s gekies" + +#, python-format +msgid "Change history: %s" +msgstr "Verander geskiedenis: %s" + +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "%(class_name)s %(instance)s" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" +"Om %(class_name)s %(instance)s te skrap sal vereis dat die volgende " +"beskermde verwante objekte geskrap word: %(related_objects)s" + +msgid "Django site admin" +msgstr "Django-werfadmin" + +msgid "Django administration" +msgstr "Django-administrasie" + +msgid "Site administration" +msgstr "Werfadministrasie" + +msgid "Log in" +msgstr "Meld aan" + +#, python-format +msgid "%(app)s administration" +msgstr "%(app)s-administrasie" + +msgid "Page not found" +msgstr "Bladsy nie gevind nie" + +msgid "We’re sorry, but the requested page could not be found." +msgstr "Jammer! Die aangevraagde bladsy kon nie gevind word nie." + +msgid "Home" +msgstr "Tuis" + +msgid "Server error" +msgstr "Bedienerfout" + +msgid "Server error (500)" +msgstr "Bedienerfout (500)" + +msgid "Server Error (500)" +msgstr "Bedienerfout (500)" + +msgid "" +"There’s been an error. It’s been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" +"’n Fout het voorgekom Dit is via e-pos aan die werfadministrateurs " +"gerapporteer en behoort binnekort reggestel te word. Dankie vir u geduld." + +msgid "Run the selected action" +msgstr "Voer die gekose aksie uit" + +msgid "Go" +msgstr "Gaan" + +msgid "Click here to select the objects across all pages" +msgstr "Kliek hier om die objekte oor alle bladsye te kies." + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "Kies al %(total_count)s %(module_name)s" + +msgid "Clear selection" +msgstr "Verwyder keuses" + +msgid "Breadcrumbs" +msgstr "Broodkrummels" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "Modelle in die %(name)s-toepassing" + +msgid "Add" +msgstr "Voeg by" + +msgid "View" +msgstr "Bekyk" + +msgid "You don’t have permission to view or edit anything." +msgstr "U het nie regte om enigiets te sien of te redigeer nie." + +msgid "" +"First, enter a username and password. Then, you’ll be able to edit more user " +"options." +msgstr "" +"Gee eerstens ’n gebruikernaam en wagwoord. Daarna kan meer gebruikervelde " +"geredigeer word." + +msgid "Enter a username and password." +msgstr "Vul ’n gebruikersnaam en wagwoord in." + +msgid "Change password" +msgstr "Verander wagwoord" + +msgid "Please correct the error below." +msgid_plural "Please correct the errors below." +msgstr[0] "Korrigeer asb. die fout hier onder." +msgstr[1] "Korrigeer asb. die foute hier onder." + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "Vul ’n nuwe wagwoord vir gebruiker %(username)s in." + +msgid "Skip to main content" +msgstr "Gaan direk na hoofinhoud" + +msgid "Welcome," +msgstr "Welkom," + +msgid "View site" +msgstr "Besoek werf" + +msgid "Documentation" +msgstr "Dokumentasie" + +msgid "Log out" +msgstr "Meld af" + +#, python-format +msgid "Add %(name)s" +msgstr "Voeg %(name)s by" + +msgid "History" +msgstr "Geskiedenis" + +msgid "View on site" +msgstr "Bekyk op werf" + +msgid "Filter" +msgstr "Filtreer" + +msgid "Hide counts" +msgstr "Versteek tellings" + +msgid "Show counts" +msgstr "Wys tellings" + +msgid "Clear all filters" +msgstr "Verwyder alle filters" + +msgid "Remove from sorting" +msgstr "Verwyder uit sortering" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "Sorteerprioriteit: %(priority_number)s" + +msgid "Toggle sorting" +msgstr "Wissel sortering" + +msgid "Toggle theme (current theme: auto)" +msgstr "Wissel tema (tans: outomaties)" + +msgid "Toggle theme (current theme: light)" +msgstr "Wissel tema (tans: lig)" + +msgid "Toggle theme (current theme: dark)" +msgstr "Wissel tema (tans: donker)" + +msgid "Delete" +msgstr "Skrap" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" +"Om die %(object_name)s %(escaped_object)s te skrap sou verwante objekte " +"skrap, maar jou rekening het nie toestemming om die volgende tipes objekte " +"te skrap nie:" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" +"Om die %(object_name)s “%(escaped_object)s” te skrap vereis dat die volgende " +"beskermde verwante objekte geskrap word:" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" +"Wil u definitief die %(object_name)s “%(escaped_object)s” skrap? Al die " +"volgende verwante items sal geskrap word:" + +msgid "Objects" +msgstr "Objekte" + +msgid "Yes, I’m sure" +msgstr "Ja, ek is seker" + +msgid "No, take me back" +msgstr "Nee, ek wil teruggaan" + +msgid "Delete multiple objects" +msgstr "Skrap meerdere objekte" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" +"Om die gekose %(objects_name)s te skrap sou verwante objekte skrap, maar u " +"rekening het nie toestemming om die volgende tipes objekte te skrap nie:" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" +"Om die gekose %(objects_name)s te skrap vereis dat die volgende beskermde " +"verwante objekte geskrap word:" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" +"Wil u definitief die gekose %(objects_name)s skrap? Al die volgende objekte " +"en hul verwante items sal geskrap word:" + +msgid "Delete?" +msgstr "Skrap?" + +#, python-format +msgid " By %(filter_title)s " +msgstr " Volgens %(filter_title)s " + +msgid "Summary" +msgstr "Opsomming" + +msgid "Recent actions" +msgstr "Onlangse aksies" + +msgid "My actions" +msgstr "My aksies" + +msgid "None available" +msgstr "Niks beskikbaar nie" + +msgid "Added:" +msgstr "Bygevoeg:" + +msgid "Changed:" +msgstr "Gewysig:" + +msgid "Deleted:" +msgstr "Geskrap:" + +msgid "Unknown content" +msgstr "Onbekende inhoud" + +msgid "" +"Something’s wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" +"Iets is fout met die databasisinstallasie. Maak seker die gepaste " +"databasistabelle is geskep en maak seker die databasis is leesbaar deur die " +"gepaste gebruiker." + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" +"U is aangemeld as %(username)s, maar het nie toegang tot hierdie bladsy nie. " +"Wil u met ’n ander rekening aanmeld?" + +msgid "Forgotten your password or username?" +msgstr "Wagwoord of gebruikersnaam vergeet?" + +msgid "Toggle navigation" +msgstr "" + +msgid "Sidebar" +msgstr "Kantbalk" + +msgid "Start typing to filter…" +msgstr "Tik om te filtreer..." + +msgid "Filter navigation items" +msgstr "" + +msgid "Date/time" +msgstr "Datum/tyd" + +msgid "User" +msgstr "Gebruiker" + +msgid "Action" +msgstr "Aksie" + +msgid "entry" +msgid_plural "entries" +msgstr[0] "inskrywing" +msgstr[1] "inskrywings" + +msgid "" +"This object doesn’t have a change history. It probably wasn’t added via this " +"admin site." +msgstr "" +"Dié objek het nie 'n wysigingsgeskiedenis. Dit is waarskynlik nie deur dié " +"adminwerf bygevoeg nie." + +msgid "Show all" +msgstr "Wys almal" + +msgid "Save" +msgstr "Stoor" + +msgid "Popup closing…" +msgstr "Opspringer sluit tans…" + +msgid "Search" +msgstr "Soek" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "%(counter)s resultaat" +msgstr[1] "%(counter)s resultate" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "%(full_result_count)s in totaal" + +msgid "Save as new" +msgstr "Stoor as nuwe" + +msgid "Save and add another" +msgstr "Stoor en voeg ’n ander by" + +msgid "Save and continue editing" +msgstr "Stoor en wysig verder" + +msgid "Save and view" +msgstr "Stoor en bekyk" + +msgid "Close" +msgstr "Sluit" + +#, python-format +msgid "Change selected %(model)s" +msgstr "Wysig gekose %(model)s" + +#, python-format +msgid "Add another %(model)s" +msgstr "Voeg nog ’n %(model)s by" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "Skrap gekose %(model)s" + +#, python-format +msgid "View selected %(model)s" +msgstr "Wys gekose %(model)s" + +msgid "Thanks for spending some quality time with the web site today." +msgstr "" +"Dankie vir die kwaliteittyd wat u met die webwerf deurgebring het vandag." + +msgid "Log in again" +msgstr "Meld weer aan" + +msgid "Password change" +msgstr "Wagwoordverandering" + +msgid "Your password was changed." +msgstr "Die wagwoord is verander." + +msgid "" +"Please enter your old password, for security’s sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" +"Gee asb. die ou wagwoord t.w.v. sekuriteit, en gee dan die nuwe wagwoord " +"twee keer sodat ons kan verifieer dat dit korrek getik is." + +msgid "Change my password" +msgstr "Verander my wagwoord" + +msgid "Password reset" +msgstr "Wagwoordherstel" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "Jou wagwoord is gestel. Jy kan nou voortgaan en aanmeld." + +msgid "Password reset confirmation" +msgstr "Bevestig wagwoordherstel" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" +"Tik die nuwe wagwoord twee keer in so ons kan seker wees dat dit korrek " +"ingetik is." + +msgid "New password:" +msgstr "Nuwe wagwoord:" + +msgid "Confirm password:" +msgstr "Bevestig wagwoord:" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"Die skakel vir wagwoordherstel was ongeldig, dalk omdat dit reeds gebruik " +"is. Vra gerus ’n nuwe een aan." + +msgid "" +"We’ve emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" +"Ons het instruksies gestuur om ’n wagwoord in te stel as ’n rekening bestaan " +"met die gegewe e-posadres. Dit behoort binnekort afgelewer te word." + +msgid "" +"If you don’t receive an email, please make sure you’ve entered the address " +"you registered with, and check your spam folder." +msgstr "" +"As u geen e-pos ontvang nie, kontroleer dat die e-posadres waarmee " +"geregistreer is, gegee is, en kontroleer die gemorspos." + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" +"U ontvang hierdie e-pos omdat u ’n wagwoordherstel vir u rekening by " +"%(site_name)s aangevra het." + +msgid "Please go to the following page and choose a new password:" +msgstr "Gaan asseblief na die volgende bladsy en kies ’n nuwe wagwoord:" + +msgid "Your username, in case you’ve forgotten:" +msgstr "U gebruikernaam vir ingeval u vergeet het:" + +msgid "Thanks for using our site!" +msgstr "Dankie vir die gebruik van ons webwerf!" + +#, python-format +msgid "The %(site_name)s team" +msgstr "Die %(site_name)s span" + +msgid "" +"Forgotten your password? Enter your email address below, and we’ll email " +"instructions for setting a new one." +msgstr "" +"Die wagwoord vergeet? Tik u e-posadres hieronder en ons sal instruksies vir " +"die instel van ’n nuwe wagwoord stuur." + +msgid "Email address:" +msgstr "E-posadres:" + +msgid "Reset my password" +msgstr "Herstel my wagwoord" + +msgid "Select all objects on this page for an action" +msgstr "Kies alle objekte op dié bladsy vir ’n aksie" + +msgid "All dates" +msgstr "Alle datums" + +#, python-format +msgid "Select %s" +msgstr "Kies %s" + +#, python-format +msgid "Select %s to change" +msgstr "Kies %s om te verander" + +#, python-format +msgid "Select %s to view" +msgstr "Kies %s om te bekyk" + +msgid "Date:" +msgstr "Datum:" + +msgid "Time:" +msgstr "Tyd:" + +msgid "Lookup" +msgstr "Soek" + +msgid "Currently:" +msgstr "Tans:" + +msgid "Change:" +msgstr "Wysig:" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/af/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/af/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..603fc26cf06e7ecc90b755eea3047a3190ce6119 GIT binary patch literal 5773 zcmbuCeT-aH6~HersI2%^@dHJ?R12+i-fml3+9{>9UAFXNyOmwKHWJO9nL9I&dGqe% zee8D1AE5XFQA3DSA%bH3OA<^pV89spg9J5(#P}C65hEH+Fd>?dpotNG=e;|-v)ct~ zc)R!g-u-;%o^$SbXI@xWIit8{D3?+0KVPXXy!b+HTu;7DscYd=kbm`0&woJ~@|v$- z_;%({zZlB6OFcDw7xk+=w|gFdW3+!7UIcH2ABQb?CHx9}2Yk%)r%={?+Vfdhq5d4? zU;WP4fA9H6DDwRUUI1T$vfj&3)_E1m{QttwzzgV{gSSE%_hW7{?`M!9>K9PvJqtzd z=OF*;d2S;ApP;PwcPQij0q=*e!u#OY8N{QyoXH~BRZ!|xDC_TlyW#b)22Vp-_X*FZ z;diP38a@C!?^LP}&qL`Sgo)=p@Wa#}@%5+RrPO~5KLlU$_46@`)GvcF{u=lZIPKYi zGVd-Z>p$%IIFxz6fggZ>hBEKpP{v>KZlyj71NeS;*zP~P)P zc=|l0UVz)FpL}nruX{buczy?p{=N@+wR#ky8ucU;J3Is51ApcFpZEMLlyR>>(eG<; z1H9;cN^OGUP}V&OrN0ivJ`ohVX1@P+&o4o-=QljR>G>cO|M?!2b$$S4oyVZ8^8~yF z{v6K3b?eIa-Uek}3T6DFZ@&Yg5_Pw)e;dlWk3bp!D3o=71n+}Sz%%e5Mv!rTfYSdr zDDu7xW&Ky+b?`rMC)|ZGWd8}2@wdZ!;TPez;5v*b^&dh)h1!MDgx7iQg(A;>U!U?k z7L zHBJ$q8(x|R@y&g{LE_CW%0|j0Wh+H(*qGXAQ>tA{Z`jy~GahNMjm$RRuy2PpK`&4{ zbYHNqpM;Uxm$&mYQ~MT77@2xx^@da(Fmc01>OjZ2)Ou*6Crvg|n+tm*wQRH&6?0P? z7mGzMGZ6D^wy)*j17&V8`1+fEoa&uQ7Uhc1*lIOZ1BOe1rmkDCj% zd5HGZtjY33wm571Svg_0!;IOy*!Wy0Of~;m$Lc6du|rFn5%ULyK6+*_v{>qTR@VpK z$HKTRQ+qm$izVvr6#I(YqBd-eo>(`;q<)-UU%JtHG@LM~ZnH(p7Z!WAd@B`u(?|d-RJ=5fv z#bRF*w=HobW+TmTA#CO*Vhc8EriIQK&avnxu1;te=*YRktS!fxz9|> z=EPQ$yp*m~&4^%mT)uQ|h1h186`^scnM18YWLa)R(S^jTS6U1aq0T{bX%;9`uP1gP z&=^gZajODWG?&q-0#-B+&vb={l^w;Qu5h+jG|zQP@2$wg%AV4HEBNt>_9e%v@U+y^ zb8*(u#iydeeRX^B@u=_(S=BL&))gLBbq(Wpg@;vLK73c;>K+1mg{Xd3b8Kl|J-P_` z74EBs^BJIZu&VVKUmf|fRCrj`i?OiHIF3tZ9c>%hbhK^RpetIv zHAmZ)O}V0VXvWdT5gV%GiMx%Ipn9lTJz}K0{NmiXs+hMc1KX0ei zIakwT$7iZH+l5euR^?k?(_1IDY^zROQ{B2_4Vmw>flJ!KX>CB$W z#`}>8VqdMe^WHN0BKl4w^Oz)TB*U$yP`+vBI#ja3ww&v8TlRIv4nqt%WUgkqW#Wbo3Vn$(iU;&Bb|EszXT3d= zzReF(H7jXrn>?3Jw#cpp(SX!r)H?!QxI^0}IU_9ccXE71vbAChuA4Hg!z!%DzA$gk zCS6TR*2G<9%!_wEBx}5Q=fl-*?D~D0vOJZ9e0c@ZNBjc63D%MbXD?kV&`XPD62M_Z1ewo@Iy-OSC0JUa-U^OhiB;UBfoR6o{XCbVej`#iX7w zUCprx_<ZNE!h#@~i!Kkw6Kwd_fV)rSbho1$B&cm#27aUJLCr8{RoZv|jfW11&R%K1L zzCsrEJgS_8#0W>6 zQ#q4r(&1EU-bu`sU(*u(HTJ5){kcqSy&8z, 2019,2023 +# Pi Delport , 2013 +# Pi Delport , 2013 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-09-18 15:04-0300\n" +"PO-Revision-Date: 2023-12-04 07:59+0000\n" +"Last-Translator: F Wolff , 2019,2023\n" +"Language-Team: Afrikaans (http://app.transifex.com/django/django/language/" +"af/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: af\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, javascript-format +msgid "Available %s" +msgstr "Beskikbare %s" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" +"Hierdie is die lys beskikbare %s. Kies gerus deur hulle in die boksie " +"hieronder te merk en dan die “Kies”-knoppie tussen die boksies te klik." + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "Tik in hierdie blokkie om die lys beskikbare %s te filtreer." + +msgid "Filter" +msgstr "Filteer" + +msgid "Choose all" +msgstr "Kies almal" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "Klik om al die %s gelyktydig te kies." + +msgid "Choose" +msgstr "Kies" + +msgid "Remove" +msgstr "Verwyder" + +#, javascript-format +msgid "Chosen %s" +msgstr "Gekose %s" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" +"Hierdie is die lys gekose %s. Verwyder gerus deur hulle in die boksie " +"hieronder te merk en dan die “Verwyder”-knoppie tussen die boksies te klik." + +#, javascript-format +msgid "Type into this box to filter down the list of selected %s." +msgstr "Tik in hierdie blokkie om die lys gekose %s te filtreer." + +msgid "Remove all" +msgstr "Verwyder almal" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "Klik om al die %s gelyktydig te verwyder." + +#, javascript-format +msgid "%s selected option not visible" +msgid_plural "%s selected options not visible" +msgstr[0] "" +msgstr[1] "" + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "%(sel)s van %(cnt)s gekies" +msgstr[1] "%(sel)s van %(cnt)s gekies" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" +"Daar is ongestoorde veranderinge op individuele redigeerbare velde. Deur nou " +"’n aksie uit te voer, sal ongestoorde veranderinge verlore gaan." + +msgid "" +"You have selected an action, but you haven’t saved your changes to " +"individual fields yet. Please click OK to save. You’ll need to re-run the " +"action." +msgstr "" +"’n Aksie is gekies, maar die veranderinge aan individuele velde is nog nie " +"gestoor nie. Klik OK om te stoor. Die aksie sal weer uitgevoer moet word." + +msgid "" +"You have selected an action, and you haven’t made any changes on individual " +"fields. You’re probably looking for the Go button rather than the Save " +"button." +msgstr "" +"’n Aksie is gekies en geen veranderinge aan individuele velde is gemaak nie. " +"Dalk op soek na die Gaan-knoppie in plaas van die Stoor-knoppie?" + +msgid "Now" +msgstr "Nou" + +msgid "Midnight" +msgstr "Middernag" + +msgid "6 a.m." +msgstr "06:00" + +msgid "Noon" +msgstr "Middag" + +msgid "6 p.m." +msgstr "18:00" + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "Let wel: U is %s uur voor die bedienertyd." +msgstr[1] "Let wel: U is %s ure voor die bedienertyd." + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "Let wel: U is %s uur agter die bedienertyd." +msgstr[1] "Let wel: U is %s ure agter die bedienertyd." + +msgid "Choose a Time" +msgstr "Kies ’n tyd" + +msgid "Choose a time" +msgstr "Kies ‘n tyd" + +msgid "Cancel" +msgstr "Kanselleer" + +msgid "Today" +msgstr "Vandag" + +msgid "Choose a Date" +msgstr "Kies ’n datum" + +msgid "Yesterday" +msgstr "Gister" + +msgid "Tomorrow" +msgstr "Môre" + +msgid "January" +msgstr "Januarie" + +msgid "February" +msgstr "Februarie" + +msgid "March" +msgstr "Maart" + +msgid "April" +msgstr "April" + +msgid "May" +msgstr "Mei" + +msgid "June" +msgstr "Junie" + +msgid "July" +msgstr "Julie" + +msgid "August" +msgstr "Augustus" + +msgid "September" +msgstr "September" + +msgid "October" +msgstr "Oktober" + +msgid "November" +msgstr "November" + +msgid "December" +msgstr "Desember" + +msgctxt "abbrev. month January" +msgid "Jan" +msgstr "Jan" + +msgctxt "abbrev. month February" +msgid "Feb" +msgstr "Feb" + +msgctxt "abbrev. month March" +msgid "Mar" +msgstr "Mrt" + +msgctxt "abbrev. month April" +msgid "Apr" +msgstr "Apr" + +msgctxt "abbrev. month May" +msgid "May" +msgstr "Mei" + +msgctxt "abbrev. month June" +msgid "Jun" +msgstr "Jun" + +msgctxt "abbrev. month July" +msgid "Jul" +msgstr "Jul" + +msgctxt "abbrev. month August" +msgid "Aug" +msgstr "Aug" + +msgctxt "abbrev. month September" +msgid "Sep" +msgstr "Sep" + +msgctxt "abbrev. month October" +msgid "Oct" +msgstr "Okt" + +msgctxt "abbrev. month November" +msgid "Nov" +msgstr "Nov" + +msgctxt "abbrev. month December" +msgid "Dec" +msgstr "Des" + +msgid "Sunday" +msgstr "Sondag" + +msgid "Monday" +msgstr "Maandag" + +msgid "Tuesday" +msgstr "Dinsdag" + +msgid "Wednesday" +msgstr "Woensdag" + +msgid "Thursday" +msgstr "Donderdag" + +msgid "Friday" +msgstr "Vrydag" + +msgid "Saturday" +msgstr "Saterdag" + +msgctxt "abbrev. day Sunday" +msgid "Sun" +msgstr "Son" + +msgctxt "abbrev. day Monday" +msgid "Mon" +msgstr "Ma" + +msgctxt "abbrev. day Tuesday" +msgid "Tue" +msgstr "Di" + +msgctxt "abbrev. day Wednesday" +msgid "Wed" +msgstr "Wo" + +msgctxt "abbrev. day Thursday" +msgid "Thur" +msgstr "Do" + +msgctxt "abbrev. day Friday" +msgid "Fri" +msgstr "Vr" + +msgctxt "abbrev. day Saturday" +msgid "Sat" +msgstr "Sa" + +msgctxt "one letter Sunday" +msgid "S" +msgstr "S" + +msgctxt "one letter Monday" +msgid "M" +msgstr "M" + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "D" + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "W" + +msgctxt "one letter Thursday" +msgid "T" +msgstr "D" + +msgctxt "one letter Friday" +msgid "F" +msgstr "V" + +msgctxt "one letter Saturday" +msgid "S" +msgstr "S" + +msgid "Show" +msgstr "Wys" + +msgid "Hide" +msgstr "Versteek" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/am/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/am/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..37fd72aa7a85819584cb17e5bd89e5f84e77ae28 GIT binary patch literal 8309 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\n" +"Language-Team: Amharic (http://www.transifex.com/django/django/language/" +"am/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: am\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "%(count)d %(items)s በተሳካ ሁኔታ ተወግድዋል:: " + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "%(name)s ማስወገድ አይቻልም" + +msgid "Are you sure?" +msgstr "እርግጠኛ ነህ?" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "የተመረጡትን %(verbose_name_plural)s አስወግድ" + +msgid "Administration" +msgstr "" + +msgid "All" +msgstr "ሁሉም" + +msgid "Yes" +msgstr "አዎ" + +msgid "No" +msgstr "አይደለም" + +msgid "Unknown" +msgstr "ያልታወቀ" + +msgid "Any date" +msgstr "ማንኛውም ቀን" + +msgid "Today" +msgstr "ዛሬ" + +msgid "Past 7 days" +msgstr "ያለፉት 7 ቀናት" + +msgid "This month" +msgstr "በዚህ ወር" + +msgid "This year" +msgstr "በዚህ አመት" + +msgid "No date" +msgstr "" + +msgid "Has date" +msgstr "" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" + +msgid "Action:" +msgstr "ተግባር:" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "ሌላ %(verbose_name)s ጨምር" + +msgid "Remove" +msgstr "አጥፋ" + +msgid "action time" +msgstr "ተግባሩ የተፈፀመበት ጊዜ" + +msgid "user" +msgstr "" + +msgid "content type" +msgstr "" + +msgid "object id" +msgstr "" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/3/library/functions.html#repr) +msgid "object repr" +msgstr "" + +msgid "action flag" +msgstr "" + +msgid "change message" +msgstr "መልዕክት ለውጥ" + +msgid "log entry" +msgstr "" + +msgid "log entries" +msgstr "" + +#, python-format +msgid "Added \"%(object)s\"." +msgstr "\"%(object)s\" ተጨምሯል::" + +#, python-format +msgid "Changed \"%(object)s\" - %(changes)s" +msgstr "\"%(object)s\" - %(changes)s ተቀይሯል" + +#, python-format +msgid "Deleted \"%(object)s.\"" +msgstr "\"%(object)s.\" ተወግድዋል" + +msgid "LogEntry Object" +msgstr "" + +#, python-brace-format +msgid "Added {name} \"{object}\"." +msgstr "" + +msgid "Added." +msgstr "" + +msgid "and" +msgstr "እና" + +#, python-brace-format +msgid "Changed {fields} for {name} \"{object}\"." +msgstr "" + +#, python-brace-format +msgid "Changed {fields}." +msgstr "" + +#, python-brace-format +msgid "Deleted {name} \"{object}\"." +msgstr "" + +msgid "No fields changed." +msgstr "ምንም \"ፊልድ\" አልተቀየረም::" + +msgid "None" +msgstr "ምንም" + +msgid "" +"Hold down \"Control\", or \"Command\" on a Mac, to select more than one." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was added successfully. You may edit it again below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was added successfully. You may add another {name} " +"below." +msgstr "" + +#, python-brace-format +msgid "The {name} \"{obj}\" was added successfully." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was changed successfully. You may edit it again below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was changed successfully. You may add another {name} " +"below." +msgstr "" + +#, python-brace-format +msgid "The {name} \"{obj}\" was changed successfully." +msgstr "" + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" + +msgid "No action selected." +msgstr "ምንም ተግባር አልተመረጠም::" + +#, python-format +msgid "The %(name)s \"%(obj)s\" was deleted successfully." +msgstr "%(name)s \"%(obj)s\" በተሳካ ሁኔታ ተወግድዋል:: " + +#, python-format +msgid "%(name)s with ID \"%(key)s\" doesn't exist. Perhaps it was deleted?" +msgstr "" + +#, python-format +msgid "Add %s" +msgstr "%s ጨምር" + +#, python-format +msgid "Change %s" +msgstr "%s ቀይር" + +msgid "Database error" +msgstr "የ(ዳታቤዝ) ችግር" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "%(count)s %(name)s በተሳካ ሁኔታ ተቀይሯል::" +msgstr[1] "%(count)s %(name)s በተሳካ ሁኔታ ተቀይረዋል::" + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "%(total_count)s ተመርጠዋል" +msgstr[1] "ሁሉም %(total_count)s ተመርጠዋል" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "0 of %(cnt)s ተመርጠዋል" + +#, python-format +msgid "Change history: %s" +msgstr "ታሪኩን ቀይር: %s" + +#. Translators: Model verbose name and instance representation, +#. suitable to be an item in a list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" + +msgid "Django site admin" +msgstr "ጃንጎ ድህረ-ገጽ አስተዳዳሪ" + +msgid "Django administration" +msgstr "ጃንጎ አስተዳደር" + +msgid "Site administration" +msgstr "ድህረ-ገጽ አስተዳደር" + +msgid "Log in" +msgstr "" + +#, python-format +msgid "%(app)s administration" +msgstr "" + +msgid "Page not found" +msgstr "ድህረ-ገጹ የለም" + +msgid "We're sorry, but the requested page could not be found." +msgstr "ይቅርታ! የፈለጉት ድህረ-ገጽ የለም::" + +msgid "Home" +msgstr "ሆም" + +msgid "Server error" +msgstr "የሰርቨር ችግር" + +msgid "Server error (500)" +msgstr "የሰርቨር ችግር (500)" + +msgid "Server Error (500)" +msgstr "የሰርቨር ችግር (500)" + +msgid "" +"There's been an error. It's been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" + +msgid "Run the selected action" +msgstr "የተመረጡትን ተግባሮች አስጀምር" + +msgid "Go" +msgstr "ስራ" + +msgid "Click here to select the objects across all pages" +msgstr "" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "ሁሉንም %(total_count)s %(module_name)s ምረጥ" + +msgid "Clear selection" +msgstr "የተመረጡትን ባዶ ኣድርግ" + +msgid "" +"First, enter a username and password. Then, you'll be able to edit more user " +"options." +msgstr "" + +msgid "Enter a username and password." +msgstr "መለያስም(ዩዘርኔም) እና የይለፍቃል(ፓስወርድ) ይስገቡ::" + +msgid "Change password" +msgstr "የይለፍቃል(ፓስወርድ) ቅየር" + +msgid "Please correct the error below." +msgstr "ከታች ያሉትን ችግሮች ያስተካክሉ::" + +msgid "Please correct the errors below." +msgstr "" + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "ለ %(username)s መለያ አዲስ የይለፍቃል(ፓስወርድ) ያስገቡ::" + +msgid "Welcome," +msgstr "እንኳን በደህና መጡ," + +msgid "View site" +msgstr "" + +msgid "Documentation" +msgstr "መረጃ" + +msgid "Log out" +msgstr "ጨርሰህ ውጣ" + +#, python-format +msgid "Add %(name)s" +msgstr "%(name)s ጨምር" + +msgid "History" +msgstr "ታሪክ" + +msgid "View on site" +msgstr "ድህረ-ገጹ ላይ ይመልከቱ" + +msgid "Filter" +msgstr "አጣራ" + +msgid "Remove from sorting" +msgstr "" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "" + +msgid "Toggle sorting" +msgstr "" + +msgid "Delete" +msgstr "" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" + +msgid "Objects" +msgstr "" + +msgid "Yes, I'm sure" +msgstr "አዎ,እርግጠኛ ነኝ" + +msgid "No, take me back" +msgstr "" + +msgid "Delete multiple objects" +msgstr "" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" + +msgid "Change" +msgstr "ቀይር" + +msgid "Delete?" +msgstr "ላስወግድ?" + +#, python-format +msgid " By %(filter_title)s " +msgstr "በ %(filter_title)s" + +msgid "Summary" +msgstr "" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "" + +msgid "Add" +msgstr "ጨምር" + +msgid "You don't have permission to edit anything." +msgstr "" + +msgid "Recent actions" +msgstr "" + +msgid "My actions" +msgstr "" + +msgid "None available" +msgstr "ምንም የለም" + +msgid "Unknown content" +msgstr "" + +msgid "" +"Something's wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" + +msgid "Forgotten your password or username?" +msgstr "የእርሶን መለያስም (ዩዘርኔም) ወይም የይለፍቃል(ፓስወርድ)ዘነጉት?" + +msgid "Date/time" +msgstr "ቀን/ጊዜ" + +msgid "User" +msgstr "" + +msgid "Action" +msgstr "" + +msgid "" +"This object doesn't have a change history. It probably wasn't added via this " +"admin site." +msgstr "" + +msgid "Show all" +msgstr "ሁሉንም አሳይ" + +msgid "Save" +msgstr "" + +msgid "Popup closing..." +msgstr "" + +#, python-format +msgid "Change selected %(model)s" +msgstr "" + +#, python-format +msgid "Add another %(model)s" +msgstr "" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "" + +msgid "Search" +msgstr "ፈልግ" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] " %(counter)s ውጤት" +msgstr[1] "%(counter)s ውጤቶች" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "በአጠቃላይ %(full_result_count)s" + +msgid "Save as new" +msgstr "" + +msgid "Save and add another" +msgstr "" + +msgid "Save and continue editing" +msgstr "" + +msgid "Thanks for spending some quality time with the Web site today." +msgstr "ዛሬ ድህረ-ገዓችንን ላይ ጥሩ ጊዜ ስላሳለፉ እናመሰግናለን::" + +msgid "Log in again" +msgstr "በድጋሜ ይግቡ" + +msgid "Password change" +msgstr "የይለፍቃል(ፓስወርድ) ቅየራ" + +msgid "Your password was changed." +msgstr "የይለፍቃልዎን(ፓስወርድ) ተቀይሯል::" + +msgid "" +"Please enter your old password, for security's sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" + +msgid "Change my password" +msgstr "የይለፍቃል(ፓስወርድ) ቀይር" + +msgid "Password reset" +msgstr "" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "" + +msgid "Password reset confirmation" +msgstr "" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" + +msgid "New password:" +msgstr "አዲስ የይለፍቃል(ፓስወርድ):" + +msgid "Confirm password:" +msgstr "የይለፍቃልዎን(ፓስወርድ) በድጋሜ በማስገባት ያረጋግጡ:" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" + +msgid "" +"We've emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" + +msgid "" +"If you don't receive an email, please make sure you've entered the address " +"you registered with, and check your spam folder." +msgstr "" +"ኢ-ሜል ካልደረስዎት እባክዎን የተመዘገቡበትን የኢ-ሜል አድራሻ ትክክለኛነት ይረጋግጡእንዲሁም ኢ-ሜል (ስፓም) ማህደር " +"ውስጥ ይመልከቱ::" + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" +"ይህ ኢ-ሜል የደረስዎት %(site_name)s ላይ እንደ አዲስ የይለፍቃል(ፓስወርድ) ለ ለመቀየር ስለጠየቁ ነው::" + +msgid "Please go to the following page and choose a new password:" +msgstr "እባክዎን ወደሚከተለው ድህረ-ገዕ በመሄድ አዲስ የይለፍቃል(ፓስወርድ) ያውጡ:" + +msgid "Your username, in case you've forgotten:" +msgstr "ድንገት ከዘነጉት ይኌው የእርሶ መለያስም (ዩዘርኔም):" + +msgid "Thanks for using our site!" +msgstr "ድህረ-ገዓችንን ስለተጠቀሙ እናመሰግናለን!" + +#, python-format +msgid "The %(site_name)s team" +msgstr "%(site_name)s ቡድን" + +msgid "" +"Forgotten your password? Enter your email address below, and we'll email " +"instructions for setting a new one." +msgstr "" +"የይለፍቃልዎን(ፓስወርድ)ረሱት? ከታች የኢ-ሜል አድራሻዎን ይስገቡ እና አዲስ ፓስወርድ ለማውጣት የሚያስችል መረጃ " +"እንልክልዎታለን::" + +msgid "Email address:" +msgstr "ኢ-ሜል አድራሻ:" + +msgid "Reset my password" +msgstr "" + +msgid "All dates" +msgstr "ሁሉም ቀናት" + +#, python-format +msgid "Select %s" +msgstr "%sን ምረጥ" + +#, python-format +msgid "Select %s to change" +msgstr "ለመቀየር %sን ምረጥ" + +msgid "Date:" +msgstr "ቀን:" + +msgid "Time:" +msgstr "ጊዜ" + +msgid "Lookup" +msgstr "አፈላልግ" + +msgid "Currently:" +msgstr "በዚህ ጊዜ:" + +msgid "Change:" +msgstr "ቀይር:" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ar/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ar/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..1e0d68032d413a27ddde691bbe35ecfefb219401 GIT binary patch literal 19890 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, 2013 +# Jannis Leidel , 2011 +# Muaaz Alsaied, 2020 +# Tony xD , 2020 +# صفا الفليج , 2020 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-09-21 10:22+0200\n" +"PO-Revision-Date: 2021-10-15 21:11+0000\n" +"Last-Translator: Bashar Al-Abdulhadi\n" +"Language-Team: Arabic (http://www.transifex.com/django/django/language/ar/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ar\n" +"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " +"&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "احذف %(verbose_name_plural)s المحدّدة" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "نجح حذف %(count)d من %(items)s." + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "تعذّر حذف %(name)s" + +msgid "Are you sure?" +msgstr "هل أنت متأكد؟" + +msgid "Administration" +msgstr "الإدارة" + +msgid "All" +msgstr "الكل" + +msgid "Yes" +msgstr "نعم" + +msgid "No" +msgstr "لا" + +msgid "Unknown" +msgstr "مجهول" + +msgid "Any date" +msgstr "أي تاريخ" + +msgid "Today" +msgstr "اليوم" + +msgid "Past 7 days" +msgstr "الأيام السبعة الماضية" + +msgid "This month" +msgstr "هذا الشهر" + +msgid "This year" +msgstr "هذه السنة" + +msgid "No date" +msgstr "لا يوجد أي تاريخ" + +msgid "Has date" +msgstr "به تاريخ" + +msgid "Empty" +msgstr "فارغ" + +msgid "Not empty" +msgstr "غير فارغ" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" +"من فضلك أدخِل قيمة %(username)s الصحيحة وكلمة السر لحساب الطاقم الإداري. " +"الحقلين حسّاسين لحالة الأحرف." + +msgid "Action:" +msgstr "الإجراء:" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "أضِف %(verbose_name)s آخر" + +msgid "Remove" +msgstr "أزِل" + +msgid "Addition" +msgstr "إضافة" + +msgid "Change" +msgstr "تعديل" + +msgid "Deletion" +msgstr "حذف" + +msgid "action time" +msgstr "وقت الإجراء" + +msgid "user" +msgstr "المستخدم" + +msgid "content type" +msgstr "نوع المحتوى" + +msgid "object id" +msgstr "معرّف الكائن" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/library/functions.html#repr) +msgid "object repr" +msgstr "التمثيل البصري للكائن" + +msgid "action flag" +msgstr "راية الإجراء" + +msgid "change message" +msgstr "رسالة التغيير" + +msgid "log entry" +msgstr "مدخلة سجلات" + +msgid "log entries" +msgstr "مدخلات السجلات" + +#, python-format +msgid "Added “%(object)s”." +msgstr "أُضيف ”%(object)s“." + +#, python-format +msgid "Changed “%(object)s” — %(changes)s" +msgstr "عُدّل ”%(object)s“ — %(changes)s" + +#, python-format +msgid "Deleted “%(object)s.”" +msgstr "حُذف ”%(object)s“." + +msgid "LogEntry Object" +msgstr "كائن LogEntry" + +#, python-brace-format +msgid "Added {name} “{object}”." +msgstr "أُضيف {name} ‏”{object}“." + +msgid "Added." +msgstr "أُضيف." + +msgid "and" +msgstr "و" + +#, python-brace-format +msgid "Changed {fields} for {name} “{object}”." +msgstr "تغيّرت {fields} ‏{name} ‏”{object}“." + +#, python-brace-format +msgid "Changed {fields}." +msgstr "تغيّرت {fields}." + +#, python-brace-format +msgid "Deleted {name} “{object}”." +msgstr "حُذف {name} ‏”{object}“." + +msgid "No fields changed." +msgstr "لم يتغيّر أي حقل." + +msgid "None" +msgstr "بلا" + +msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." +msgstr "" +"اضغط مفتاح ”Contrl“ (أو ”Command“ على أجهزة ماك) مطوّلًا لتحديد أكثر من عنصر." + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully." +msgstr "نجحت إضافة {name} ‏”{obj}“." + +msgid "You may edit it again below." +msgstr "يمكنك تعديله ثانيةً أسفله." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was added successfully. You may add another {name} below." +msgstr "نجحت إضافة {name} ‏”{obj}“. يمكنك إضافة {name} آخر أسفله." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may edit it again below." +msgstr "نجح تعديل {name} ‏”{obj}“. يمكنك تعديله ثانيةً أسفله." + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully. You may edit it again below." +msgstr "نجحت إضافة {name} ‏”{obj}“. يمكنك تعديله ثانيةً أسفله." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may add another {name} " +"below." +msgstr "تمت إضافة {name} “{obj}” بنجاح، يمكنك إضافة {name} أخر بالأسفل." + +#, python-brace-format +msgid "The {name} “{obj}” was changed successfully." +msgstr "نجحت إضافة {name} ‏”{obj}“." + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "عليك تحديد العناصر لتطبيق الإجراءات عليها. لم يتغيّر أيّ عنصر." + +msgid "No action selected." +msgstr "لا إجراء محدّد." + +#, python-format +msgid "The %(name)s “%(obj)s” was deleted successfully." +msgstr "نجح حذف %(name)s ‏”%(obj)s“." + +#, python-format +msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" +msgstr "ما من %(name)s له المعرّف ”%(key)s“. لربّما حُذف أساسًا؟" + +#, python-format +msgid "Add %s" +msgstr "إضافة %s" + +#, python-format +msgid "Change %s" +msgstr "تعديل %s" + +#, python-format +msgid "View %s" +msgstr "عرض %s" + +msgid "Database error" +msgstr "خطـأ في قاعدة البيانات" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "لم يتم تغيير أي شيء" +msgstr[1] "تم تغيير %(count)s %(name)s بنجاح." +msgstr[2] "تم تغيير %(count)s %(name)s بنجاح." +msgstr[3] "تم تغيير %(count)s %(name)s بنجاح." +msgstr[4] "تم تغيير %(count)s %(name)s بنجاح." +msgstr[5] "تم تغيير %(count)s %(name)s بنجاح." + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "لم يتم تحديد أي شيء" +msgstr[1] "تم تحديد %(total_count)s" +msgstr[2] "تم تحديد %(total_count)s" +msgstr[3] "تم تحديد %(total_count)s" +msgstr[4] "تم تحديد %(total_count)s" +msgstr[5] "تم تحديد %(total_count)s" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "لا شيء محدد من %(cnt)s" + +#, python-format +msgid "Change history: %s" +msgstr "تاريخ التغيير: %s" + +#. Translators: Model verbose name and instance representation, +#. suitable to be an item in a list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "%(class_name)s %(instance)s" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" +"حذف %(class_name)s %(instance)s سيتسبب أيضاً بحذف العناصر المرتبطة التالية: " +"%(related_objects)s" + +msgid "Django site admin" +msgstr "إدارة موقع جانغو" + +msgid "Django administration" +msgstr "إدارة جانغو" + +msgid "Site administration" +msgstr "إدارة الموقع" + +msgid "Log in" +msgstr "ادخل" + +#, python-format +msgid "%(app)s administration" +msgstr "إدارة %(app)s " + +msgid "Page not found" +msgstr "تعذر العثور على الصفحة" + +msgid "We’re sorry, but the requested page could not be found." +msgstr "نحن آسفون، لكننا لم نعثر على الصفحة المطلوبة." + +msgid "Home" +msgstr "الرئيسية" + +msgid "Server error" +msgstr "خطأ في المزود" + +msgid "Server error (500)" +msgstr "خطأ في المزود (500)" + +msgid "Server Error (500)" +msgstr "خطأ في المزود (500)" + +msgid "" +"There’s been an error. It’s been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" +"لقد حدث خطأ. تم إبلاغ مسؤولي الموقع عبر البريد الإلكتروني وسيتم إصلاحه " +"قريبًا. شكرا لصبرك." + +msgid "Run the selected action" +msgstr "نفذ الإجراء المحدّد" + +msgid "Go" +msgstr "نفّذ" + +msgid "Click here to select the objects across all pages" +msgstr "اضغط هنا لتحديد جميع العناصر في جميع الصفحات" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "اختيار %(total_count)s %(module_name)s جميعها" + +msgid "Clear selection" +msgstr "إزالة الاختيار" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "النماذج في تطبيق %(name)s" + +msgid "Add" +msgstr "أضف" + +msgid "View" +msgstr "استعراض" + +msgid "You don’t have permission to view or edit anything." +msgstr "ليست لديك الصلاحية لاستعراض أو لتعديل أي شيء." + +msgid "" +"First, enter a username and password. Then, you’ll be able to edit more user " +"options." +msgstr "" +"أولاً ، أدخل اسم المستخدم وكلمة المرور. بعد ذلك ، ستتمكن من تعديل المزيد من " +"خيارات المستخدم." + +msgid "Enter a username and password." +msgstr "أدخل اسم مستخدم وكلمة مرور." + +msgid "Change password" +msgstr "غيّر كلمة المرور" + +msgid "Please correct the error below." +msgstr "الرجاء تصحيح الأخطاء أدناه." + +msgid "Please correct the errors below." +msgstr "الرجاء تصحيح الأخطاء أدناه." + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "أدخل كلمة مرور جديدة للمستخدم %(username)s." + +msgid "Welcome," +msgstr "أهلا، " + +msgid "View site" +msgstr "عرض الموقع" + +msgid "Documentation" +msgstr "الوثائق" + +msgid "Log out" +msgstr "تسجيل الخروج" + +#, python-format +msgid "Add %(name)s" +msgstr "أضف %(name)s" + +msgid "History" +msgstr "تاريخ" + +msgid "View on site" +msgstr "مشاهدة على الموقع" + +msgid "Filter" +msgstr "مرشّح" + +msgid "Clear all filters" +msgstr "مسح جميع المرشحات" + +msgid "Remove from sorting" +msgstr "إزالة من الترتيب" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "أولوية الترتيب: %(priority_number)s" + +msgid "Toggle sorting" +msgstr "عكس الترتيب" + +msgid "Delete" +msgstr "احذف" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" +"حذف العنصر %(object_name)s '%(escaped_object)s' سيتسبب بحذف العناصر المرتبطة " +"به، إلا أنك لا تملك صلاحية حذف العناصر التالية:" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" +"حذف %(object_name)s '%(escaped_object)s' سيتسبب أيضاً بحذف العناصر المرتبطة، " +"إلا أن حسابك ليس لديه صلاحية حذف أنواع العناصر التالية:" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" +"متأكد أنك تريد حذف العنصر %(object_name)s \"%(escaped_object)s\"؟ سيتم حذف " +"جميع العناصر التالية المرتبطة به:" + +msgid "Objects" +msgstr "عناصر" + +msgid "Yes, I’m sure" +msgstr "نعم، أنا متأكد" + +msgid "No, take me back" +msgstr "لا, تراجع للخلف" + +msgid "Delete multiple objects" +msgstr "حذف عدّة عناصر" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" +"حذف عناصر %(objects_name)s المُحدّدة سيتسبب بحذف العناصر المرتبطة، إلا أن " +"حسابك ليس له صلاحية حذف أنواع العناصر التالية:" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" +"حذف عناصر %(objects_name)s المحدّدة قد يتطلب حذف العناصر المحميّة المرتبطة " +"التالية:" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" +"أأنت متأكد أنك تريد حذف عناصر %(objects_name)s المحددة؟ جميع العناصر التالية " +"والعناصر المرتبطة بها سيتم حذفها:" + +msgid "Delete?" +msgstr "احذفه؟" + +#, python-format +msgid " By %(filter_title)s " +msgstr " حسب %(filter_title)s " + +msgid "Summary" +msgstr "ملخص" + +msgid "Recent actions" +msgstr "آخر الإجراءات" + +msgid "My actions" +msgstr "إجراءاتي" + +msgid "None available" +msgstr "لا يوجد" + +msgid "Unknown content" +msgstr "مُحتوى مجهول" + +msgid "" +"Something’s wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" +"هنالك أمر خاطئ في تركيب قاعدة بياناتك، تأكد من أنه تم انشاء جداول قاعدة " +"البيانات الملائمة، وأن قاعدة البيانات قابلة للقراءة من قبل المستخدم الملائم." + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" +"أنت مسجل الدخول بإسم المستخدم %(username)s, ولكنك غير مخول للوصول لهذه " +"الصفحة. هل ترغب بتسجيل الدخول بحساب آخر؟" + +msgid "Forgotten your password or username?" +msgstr "نسيت كلمة المرور أو اسم المستخدم الخاص بك؟" + +msgid "Toggle navigation" +msgstr "تغيير التصفّح" + +msgid "Start typing to filter…" +msgstr "ابدأ الكتابة للتصفية ..." + +msgid "Filter navigation items" +msgstr "تصفية عناصر التصفح" + +msgid "Date/time" +msgstr "التاريخ/الوقت" + +msgid "User" +msgstr "المستخدم" + +msgid "Action" +msgstr "إجراء" + +msgid "" +"This object doesn’t have a change history. It probably wasn’t added via this " +"admin site." +msgstr "" +"ليس لهذا العنصر سجلّ تغييرات، على الأغلب أنه لم يُنشأ من خلال نظام إدارة " +"الموقع." + +msgid "Show all" +msgstr "أظهر الكل" + +msgid "Save" +msgstr "احفظ" + +msgid "Popup closing…" +msgstr "جاري إغلاق النافذة المنبثقة..." + +msgid "Search" +msgstr "ابحث" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "لا نتائج" +msgstr[1] "نتيجة واحدة" +msgstr[2] "نتيجتان" +msgstr[3] "%(counter)s نتائج" +msgstr[4] "%(counter)s نتيجة" +msgstr[5] "%(counter)s نتيجة" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "المجموع %(full_result_count)s" + +msgid "Save as new" +msgstr "احفظ كجديد" + +msgid "Save and add another" +msgstr "احفظ وأضف آخر" + +msgid "Save and continue editing" +msgstr "احفظ واستمر بالتعديل" + +msgid "Save and view" +msgstr "احفظ واستعرض" + +msgid "Close" +msgstr "إغلاق" + +#, python-format +msgid "Change selected %(model)s" +msgstr "تغيير %(model)s المختارة" + +#, python-format +msgid "Add another %(model)s" +msgstr "أضف %(model)s آخر" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "حذف %(model)s المختارة" + +msgid "Thanks for spending some quality time with the web site today." +msgstr "شكرا لقضاء بعض الوقت الجيد في الموقع اليوم." + +msgid "Log in again" +msgstr "ادخل مجدداً" + +msgid "Password change" +msgstr "غيّر كلمة مرورك" + +msgid "Your password was changed." +msgstr "تمّ تغيير كلمة مرورك." + +msgid "" +"Please enter your old password, for security’s sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" +"رجاءً أدخل كلمة المرور القديمة، للأمان، ثم أدخل كلمة المرور الجديدة مرتين " +"لنتأكد بأنك قمت بإدخالها بشكل صحيح." + +msgid "Change my password" +msgstr "غيّر كلمة مروري" + +msgid "Password reset" +msgstr "استعادة كلمة المرور" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "تم تعيين كلمة مرورك. يمكن الاستمرار وتسجيل دخولك الآن." + +msgid "Password reset confirmation" +msgstr "تأكيد استعادة كلمة المرور" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "رجاءً أدخل كلمة مرورك الجديدة مرتين كي تتأكّد من كتابتها بشكل صحيح." + +msgid "New password:" +msgstr "كلمة المرور الجديدة:" + +msgid "Confirm password:" +msgstr "أكّد كلمة المرور:" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"رابط استعادة كلمة المرور غير صحيح، ربما لأنه استُخدم من قبل. رجاءً اطلب " +"استعادة كلمة المرور مرة أخرى." + +msgid "" +"We’ve emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" +"تم إرسال بريد إلكتروني بالتعليمات لضبط كلمة المرور الخاصة بك، وذلك في حال " +"تواجد حساب بنفس البريد الإلكتروني الذي أدخلته. سوف تستقبل البريد الإلكتروني " +"قريباً" + +msgid "" +"If you don’t receive an email, please make sure you’ve entered the address " +"you registered with, and check your spam folder." +msgstr "" +"في حال عدم إستقبال البريد الإلكتروني، الرجاء التأكد من إدخال عنوان بريدك " +"الإلكتروني الخاص بحسابك ومراجعة مجلد الرسائل غير المرغوب بها." + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" +"لقد قمت بتلقى هذه الرسالة لطلبك بإعادة تعين كلمة المرور لحسابك الشخصي على " +"%(site_name)s." + +msgid "Please go to the following page and choose a new password:" +msgstr "رجاءً اذهب إلى الصفحة التالية واختر كلمة مرور جديدة:" + +msgid "Your username, in case you’ve forgotten:" +msgstr "اسم المستخدم الخاص بك، في حال كنت قد نسيته:" + +msgid "Thanks for using our site!" +msgstr "شكراً لاستخدامك موقعنا!" + +#, python-format +msgid "The %(site_name)s team" +msgstr "فريق %(site_name)s" + +msgid "" +"Forgotten your password? Enter your email address below, and we’ll email " +"instructions for setting a new one." +msgstr "" +"هل نسيت كلمة المرور؟ أدخل عنوان بريدك الإلكتروني أدناه وسوف نقوم بإرسال " +"تعليمات للحصول على كلمة مرور جديدة." + +msgid "Email address:" +msgstr "عنوان البريد الإلكتروني:" + +msgid "Reset my password" +msgstr "استعد كلمة مروري" + +msgid "All dates" +msgstr "كافة التواريخ" + +#, python-format +msgid "Select %s" +msgstr "اختر %s" + +#, python-format +msgid "Select %s to change" +msgstr "اختر %s لتغييره" + +#, python-format +msgid "Select %s to view" +msgstr "اختر %s للاستعراض" + +msgid "Date:" +msgstr "التاريخ:" + +msgid "Time:" +msgstr "الوقت:" + +msgid "Lookup" +msgstr "ابحث" + +msgid "Currently:" +msgstr "حالياً:" + +msgid "Change:" +msgstr "تغيير:" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ar/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ar/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..00605736e24c6043c55bf63eca504554e4e0f630 GIT binary patch literal 6545 zcmeH}TWlOx8OIN0DZ!-_8d_*c;WRWMrQP)<&23XRb&agpm4xD)IYfj@Rpr zNeb-)4;}5<|2g0J&UZiG%*!`to>DvyGFHjBPN@Te8UA<pxliD|jRHzgv9G;tdFEgMJ(MF7Ph!BVZ0(3+@J2fHjL>1o^2+{=~Ge zg6{;sY1iMg_(KpCY8reycp4Nr^LGCt_-WQZ1^dBU5hD8sLE(=;k$Z?gSkz%q?3@I} z&ToLC|NG##z!Tut!HozJy}t%U-tYL^3jPt4b1V7#0eA=a9q=dM5coL4KLGv`{2=%; zcsuy2#hY&+My#{ot>7aTKL^UW8h8u%6;RHd1cm=+;D^8%TnYZu;tG-^{Hs8rciD9> z_v@;QK%i6nhSXo562`JHX$Aa{iY0rnnjueeIyg&)ap6#a$NngA)IO#e<;8kL>;w z_#%EiWpV$_sr=h8QqHXfMQ^)Z-w%qtJ1qTxr4N9=f$oDZf?H4`_WcVKIoA`!z2Hrt z*!y|#x8NZ73V0vMn*nbp>2mHD7GDBIe{As;OaF((*DS6e$)aba#Z{o3TVt`y;x@a# z3lu$%gNZ#B2kpKG%J~tC;~-&5p1Umy2+wM}?gZs7NFCnE_!xt*s{0ssFmjBKGUWb0 zz>s>(GQ$*Mp1b(ZGuAOAU-D40jpso-rjlpPy3kba4z)j^*Q_gg5mN}J7@3l~+TKR(te zs3Tt&6LH$9R3K|7(mq;pYWu=|V5K8@FoEhdg`nmHqpH`fM65sI zmWxo$>m?!z{vrIR_#@iE z6?Qybl%!ccy*e$F)kHLasbHcJ1CMBrMtse26XupRs*&eKi)8ewr(bCP8CLUBrOOAzl-ww3Qwx!KbRaQV#5DyvvA9*z zh>HmYu7n>(Ipq`zff>%}s_#W*oixJ?|E=_-J!a^VEgK8{D8r;>YoSABn6zx!K9vDm zcj#Oh+Se6i&p>YFPP$u${}y)o9n{el>Tdd~^v(>EmMz;;GGNP2qo-t;Dc>V*CZfo7 zZ{SksncikvpYI8+ubH;biE45sGW(WLYYFEPT7S6~gu>b1%-LTvR}%M|l9!VAtG$8$ z1TVepqowSpOb~Lz^1Ac{*T`>s%nbQKlqX4n;UVB5yGVI>CRj1Q#ue-ZLZ_^!`-R|yArk&}ui)oik z*K~GtJkY&fuU(tY@9*xE6YCfEIy;*-w`^haJ~lUOZBzB}ct*$1)~9rRB0d|>$McQP zmHI^eSmR^n&Df1ky&>5fb^M%sDPhWmcqTqk|B{MN#frkA0=5MNMyLBuol zaroxy$LnM9c@)Pd@$|Cd+&QRI;CU5K%OXCn`C|?BoL(ey^hi8sPr#I}5scbIiX0R* zN73F;S^ruh6LF$+CVn2PUeFTdMa4QkLu{wwOY*Ig%*W$X$cINVa4NUt;B@?qsDWe2 zvDCpNV+&hXNSQ~;1;Rj#6mbBMG$o$T#n08pm?k!!tB)ySc+74xJ&s%a3-x&YSUR1+ zyz@jCc?gkB>LV4D#zBsd2eI{HeNt3TBz~WbFUF_xnhe0MldK$x=j#(Xo~<8FLLlk9 zgcnK0rEyL~60#ZL%)KS*|14JAwsTVdZ$bv&62+}ZZq2o;{eOtnG49it?E#6FAJvaZ zH#{28(Q%|RaL3NZPtyb9rdG4i*l4MBkl;zgNZb#Ngbb-)*)Rc z?XB@8n$?qW5c1t6ME)N_%UODI^-pRXnlHb*UdsFN<T3DLI{sFJmb$AWm@DCQi&c%Mnf|HYU|0udY)>UcNyR z59RBGIussWBvMiM2ko@TvAKOlTGB}=OO=6oya53=WC1IFK<8>*S%C`v7Cl#WWxQc3dM>jH(6n1Lw z5|`w<&mxdFwb(X?evv(nebeLsPsXS;WGC5PtPRK)@NP`(JcldfpmA1=sUPK&XPSgv z@hK, 2011 +# Omar Lajam, 2020 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-01-15 09:00+0100\n" +"PO-Revision-Date: 2021-10-15 21:27+0000\n" +"Last-Translator: Bashar Al-Abdulhadi\n" +"Language-Team: Arabic (http://www.transifex.com/django/django/language/ar/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ar\n" +"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " +"&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" + +#, javascript-format +msgid "Available %s" +msgstr "%s المتوفرة" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" +"هذه قائمة %s المتوفرة. يمكنك اختيار بعضها بانتقائها في الصندوق أدناه ثم " +"الضغط على سهم الـ\"اختيار\" بين الصندوقين." + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "اكتب في هذا الصندوق لتصفية قائمة %s المتوفرة." + +msgid "Filter" +msgstr "تصفية" + +msgid "Choose all" +msgstr "اختر الكل" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "اضغط لاختيار جميع %s جملة واحدة." + +msgid "Choose" +msgstr "اختيار" + +msgid "Remove" +msgstr "احذف" + +#, javascript-format +msgid "Chosen %s" +msgstr "%s المُختارة" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" +"هذه قائمة %s المحددة. يمكنك إزالة بعضها باختيارها في الصندوق أدناه ثم اضغط " +"على سهم الـ\"إزالة\" بين الصندوقين." + +msgid "Remove all" +msgstr "إزالة الكل" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "اضغط لإزالة جميع %s المحددة جملة واحدة." + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "لا شي محدد" +msgstr[1] "%(sel)s من %(cnt)s محدد" +msgstr[2] "%(sel)s من %(cnt)s محدد" +msgstr[3] "%(sel)s من %(cnt)s محددة" +msgstr[4] "%(sel)s من %(cnt)s محدد" +msgstr[5] "%(sel)s من %(cnt)s محدد" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" +"لديك تعديلات غير محفوظة على بعض الحقول القابلة للتعديل. إن نفذت أي إجراء " +"فسوف تخسر تعديلاتك." + +msgid "" +"You have selected an action, but you haven’t saved your changes to " +"individual fields yet. Please click OK to save. You’ll need to re-run the " +"action." +msgstr "" +"لقد حددت إجراءً ، لكنك لم تحفظ تغييراتك في الحقول الفردية حتى الآن. يرجى " +"النقر فوق موافق للحفظ. ستحتاج إلى إعادة تشغيل الإجراء." + +msgid "" +"You have selected an action, and you haven’t made any changes on individual " +"fields. You’re probably looking for the Go button rather than the Save " +"button." +msgstr "" +"لقد حددت إجراء ، ولم تقم بإجراء أي تغييرات على الحقول الفردية. من المحتمل " +"أنك تبحث عن الزر أذهب بدلاً من الزر حفظ." + +msgid "Now" +msgstr "الآن" + +msgid "Midnight" +msgstr "منتصف الليل" + +msgid "6 a.m." +msgstr "6 ص." + +msgid "Noon" +msgstr "الظهر" + +msgid "6 p.m." +msgstr "6 مساءً" + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "ملاحظة: أنت متقدم بـ %s ساعة من وقت الخادم." +msgstr[1] "ملاحظة: أنت متقدم بـ %s ساعة من وقت الخادم." +msgstr[2] "ملاحظة: أنت متقدم بـ %s ساعة من وقت الخادم." +msgstr[3] "ملاحظة: أنت متقدم بـ %s ساعة من وقت الخادم." +msgstr[4] "ملاحظة: أنت متقدم بـ %s ساعة من وقت الخادم." +msgstr[5] "ملاحظة: أنت متقدم بـ %s ساعة من وقت الخادم." + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "ملاحظة: أنت متأخر بـ %s ساعة من وقت الخادم." +msgstr[1] "ملاحظة: أنت متأخر بـ %s ساعة من وقت الخادم." +msgstr[2] "ملاحظة: أنت متأخر بـ %s ساعة من وقت الخادم." +msgstr[3] "ملاحظة: أنت متأخر بـ %s ساعة من وقت الخادم." +msgstr[4] "ملاحظة: أنت متأخر بـ %s ساعة من وقت الخادم." +msgstr[5] "ملاحظة: أنت متأخر بـ %s ساعة من وقت الخادم." + +msgid "Choose a Time" +msgstr "إختر وقت" + +msgid "Choose a time" +msgstr "اختر وقتاً" + +msgid "Cancel" +msgstr "ألغ" + +msgid "Today" +msgstr "اليوم" + +msgid "Choose a Date" +msgstr "إختر تاريخ " + +msgid "Yesterday" +msgstr "أمس" + +msgid "Tomorrow" +msgstr "غداً" + +msgid "January" +msgstr "يناير" + +msgid "February" +msgstr "فبراير" + +msgid "March" +msgstr "مارس" + +msgid "April" +msgstr "أبريل" + +msgid "May" +msgstr "مايو" + +msgid "June" +msgstr "يونيو" + +msgid "July" +msgstr "يوليو" + +msgid "August" +msgstr "أغسطس" + +msgid "September" +msgstr "سبتمبر" + +msgid "October" +msgstr "أكتوبر" + +msgid "November" +msgstr "نوفمبر" + +msgid "December" +msgstr "ديسمبر" + +msgctxt "abbrev. month January" +msgid "Jan" +msgstr "يناير" + +msgctxt "abbrev. month February" +msgid "Feb" +msgstr "فبراير" + +msgctxt "abbrev. month March" +msgid "Mar" +msgstr "مارس" + +msgctxt "abbrev. month April" +msgid "Apr" +msgstr "إبريل" + +msgctxt "abbrev. month May" +msgid "May" +msgstr "مايو" + +msgctxt "abbrev. month June" +msgid "Jun" +msgstr "يونيو" + +msgctxt "abbrev. month July" +msgid "Jul" +msgstr "يوليو" + +msgctxt "abbrev. month August" +msgid "Aug" +msgstr "أغسطس" + +msgctxt "abbrev. month September" +msgid "Sep" +msgstr "سبتمبر" + +msgctxt "abbrev. month October" +msgid "Oct" +msgstr "أكتوبر" + +msgctxt "abbrev. month November" +msgid "Nov" +msgstr "نوفمبر" + +msgctxt "abbrev. month December" +msgid "Dec" +msgstr "ديسمبر" + +msgctxt "one letter Sunday" +msgid "S" +msgstr "أحد" + +msgctxt "one letter Monday" +msgid "M" +msgstr "إثنين" + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "ثلاثاء" + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "أربعاء" + +msgctxt "one letter Thursday" +msgid "T" +msgstr "خميس" + +msgctxt "one letter Friday" +msgid "F" +msgstr "جمعة" + +msgctxt "one letter Saturday" +msgid "S" +msgstr "سبت" + +msgid "Show" +msgstr "أظهر" + +msgid "Hide" +msgstr "اخف" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ar_DZ/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ar_DZ/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..5f75b277974eb3db4fd696fcdeeab59beefa2e9b GIT binary patch literal 19947 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 Gm-%n=z=e_k literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ar_DZ/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ar_DZ/LC_MESSAGES/django.po new file mode 100644 index 0000000000..8608584f44 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ar_DZ/LC_MESSAGES/django.po @@ -0,0 +1,738 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Jihad Bahmaid Al-Halki, 2022 +# Riterix , 2019-2020 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2022-05-17 05:10-0500\n" +"PO-Revision-Date: 2022-07-25 07:05+0000\n" +"Last-Translator: Jihad Bahmaid Al-Halki\n" +"Language-Team: Arabic (Algeria) (http://www.transifex.com/django/django/" +"language/ar_DZ/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ar_DZ\n" +"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " +"&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "حذف سجلات %(verbose_name_plural)s المحددة" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "تم حذف %(count)d %(items)s بنجاح." + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "لا يمكن حذف %(name)s" + +msgid "Are you sure?" +msgstr "هل أنت متأكد؟" + +msgid "Administration" +msgstr "الإدارة" + +msgid "All" +msgstr "الكل" + +msgid "Yes" +msgstr "نعم" + +msgid "No" +msgstr "لا" + +msgid "Unknown" +msgstr "مجهول" + +msgid "Any date" +msgstr "أي تاريخ" + +msgid "Today" +msgstr "اليوم" + +msgid "Past 7 days" +msgstr "الأيام السبعة الماضية" + +msgid "This month" +msgstr "هذا الشهر" + +msgid "This year" +msgstr "هذه السنة" + +msgid "No date" +msgstr "لا يوجد أي تاريخ" + +msgid "Has date" +msgstr "به تاريخ" + +msgid "Empty" +msgstr "فارغة" + +msgid "Not empty" +msgstr "ليست فارغة" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" +"الرجاء إدخال ال%(username)s و كلمة المرور الصحيحين لحساب الطاقم. الحقلين " +"حساسين وضعية الاحرف." + +msgid "Action:" +msgstr "إجراء:" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "إضافة سجل %(verbose_name)s آخر" + +msgid "Remove" +msgstr "أزل" + +msgid "Addition" +msgstr "إضافة" + +msgid "Change" +msgstr "عدّل" + +msgid "Deletion" +msgstr "حذف" + +msgid "action time" +msgstr "وقت الإجراء" + +msgid "user" +msgstr "المستخدم" + +msgid "content type" +msgstr "نوع المحتوى" + +msgid "object id" +msgstr "معرف العنصر" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/library/functions.html#repr) +msgid "object repr" +msgstr "ممثل العنصر" + +msgid "action flag" +msgstr "علامة الإجراء" + +msgid "change message" +msgstr "غيّر الرسالة" + +msgid "log entry" +msgstr "مُدخل السجل" + +msgid "log entries" +msgstr "مُدخلات السجل" + +#, python-format +msgid "Added “%(object)s”." +msgstr "تم إضافة العناصر \\\"%(object)s\\\"." + +#, python-format +msgid "Changed “%(object)s” — %(changes)s" +msgstr "تم تعديل العناصر \\\"%(object)s\\\" - %(changes)s" + +#, python-format +msgid "Deleted “%(object)s.”" +msgstr "تم حذف العناصر \\\"%(object)s.\\\"" + +msgid "LogEntry Object" +msgstr "كائن LogEntry" + +#, python-brace-format +msgid "Added {name} “{object}”." +msgstr "تم إضافة {name} \\\"{object}\\\"." + +msgid "Added." +msgstr "تمت الإضافة." + +msgid "and" +msgstr "و" + +#, python-brace-format +msgid "Changed {fields} for {name} “{object}”." +msgstr "تم تغيير {fields} لـ {name} \\\"{object}\\\"." + +#, python-brace-format +msgid "Changed {fields}." +msgstr "تم تغيير {fields}." + +#, python-brace-format +msgid "Deleted {name} “{object}”." +msgstr "تم حذف {name} \\\"{object}\\\"." + +msgid "No fields changed." +msgstr "لم يتم تغيير أية حقول." + +msgid "None" +msgstr "لاشيء" + +msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." +msgstr "" +"استمر بالضغط على مفتاح \\\"Control\\\", او \\\"Command\\\" على أجهزة الماك, " +"لإختيار أكثر من أختيار واحد." + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully." +msgstr "تمت إضافة {name} \\\"{obj}\\\" بنجاح." + +msgid "You may edit it again below." +msgstr "يمكن تعديله مرة أخرى أدناه." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was added successfully. You may add another {name} below." +msgstr "تمت إضافة {name} \\\"{obj}\\\" بنجاح. يمكنك إضافة {name} آخر أدناه." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may edit it again below." +msgstr "تم تغيير {name} \\\"{obj}\\\" بنجاح. يمكنك تعديله مرة أخرى أدناه." + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully. You may edit it again below." +msgstr "تمت إضافة {name} \\\"{obj}\\\" بنجاح. يمكنك تعديله مرة أخرى أدناه." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may add another {name} " +"below." +msgstr "تم تغيير {name} \\\"{obj}\\\" بنجاح. يمكنك إضافة {name} آخر أدناه." + +#, python-brace-format +msgid "The {name} “{obj}” was changed successfully." +msgstr "تم تغيير {name} \\\"{obj}\\\" بنجاح." + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "يجب تحديد العناصر لتطبيق الإجراءات عليها. لم يتم تغيير أية عناصر." + +msgid "No action selected." +msgstr "لم يحدد أي إجراء." + +#, python-format +msgid "The %(name)s “%(obj)s” was deleted successfully." +msgstr "تم حذف %(name)s \\\"%(obj)s\\\" بنجاح." + +#, python-format +msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" +msgstr "%(name)s ب ID \\\"%(key)s\\\" غير موجود. ربما تم حذفه؟" + +#, python-format +msgid "Add %s" +msgstr "أضف %s" + +#, python-format +msgid "Change %s" +msgstr "عدّل %s" + +#, python-format +msgid "View %s" +msgstr "عرض %s" + +msgid "Database error" +msgstr "خطـأ في قاعدة البيانات" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "تم تغيير %(count)s %(name)s بنجاح." +msgstr[1] "تم تغيير %(count)s %(name)s بنجاح." +msgstr[2] "تم تغيير %(count)s %(name)s بنجاح." +msgstr[3] "تم تغيير %(count)s %(name)s بنجاح." +msgstr[4] "تم تغيير %(count)s %(name)s بنجاح." +msgstr[5] "تم تغيير %(count)s %(name)s بنجاح." + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "تم تحديد %(total_count)s" +msgstr[1] "تم تحديد %(total_count)s" +msgstr[2] "تم تحديد %(total_count)s" +msgstr[3] "تم تحديد %(total_count)s" +msgstr[4] "تم تحديد %(total_count)s" +msgstr[5] "تم تحديد %(total_count)s" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "لا شيء محدد من %(cnt)s" + +#, python-format +msgid "Change history: %s" +msgstr "تاريخ التغيير: %s" + +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "%(class_name)s %(instance)s" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" +"حذف %(class_name)s %(instance)s سيتسبب أيضاً بحذف العناصر المرتبطة التالية: " +"%(related_objects)s" + +msgid "Django site admin" +msgstr "إدارة موقع جانغو" + +msgid "Django administration" +msgstr "إدارة جانغو" + +msgid "Site administration" +msgstr "إدارة الموقع" + +msgid "Log in" +msgstr "ادخل" + +#, python-format +msgid "%(app)s administration" +msgstr "إدارة %(app)s " + +msgid "Page not found" +msgstr "تعذر العثور على الصفحة" + +msgid "We’re sorry, but the requested page could not be found." +msgstr "نحن آسفون، لكننا لم نعثر على الصفحة المطلوبة.\"" + +msgid "Home" +msgstr "الرئيسية" + +msgid "Server error" +msgstr "خطأ في المزود" + +msgid "Server error (500)" +msgstr "خطأ في المزود (500)" + +msgid "Server Error (500)" +msgstr "خطأ في المزود (500)" + +msgid "" +"There’s been an error. It’s been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" +"كان هناك خطأ. تم إعلام المسؤولين عن الموقع عبر البريد الإلكتروني وسوف يتم " +"إصلاح الخطأ قريباً. شكراً على صبركم." + +msgid "Run the selected action" +msgstr "نفذ الإجراء المحدّد" + +msgid "Go" +msgstr "نفّذ" + +msgid "Click here to select the objects across all pages" +msgstr "اضغط هنا لتحديد جميع العناصر في جميع الصفحات" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "اختيار %(total_count)s %(module_name)s جميعها" + +msgid "Clear selection" +msgstr "إزالة الاختيار" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "النماذج في تطبيق %(name)s" + +msgid "Add" +msgstr "أضف" + +msgid "View" +msgstr "عرض" + +msgid "You don’t have permission to view or edit anything." +msgstr "ليس لديك الصلاحية لعرض أو تعديل أي شيء." + +msgid "" +"First, enter a username and password. Then, you’ll be able to edit more user " +"options." +msgstr "" +"أولاً، أدخل اسم مستخدم وكلمة مرور. ومن ثم تستطيع تعديل المزيد من خيارات " +"المستخدم." + +msgid "Enter a username and password." +msgstr "أدخل اسم مستخدم وكلمة مرور." + +msgid "Change password" +msgstr "غيّر كلمة المرور" + +msgid "Please correct the error below." +msgstr "يرجى تصحيح الخطأ أدناه." + +msgid "Please correct the errors below." +msgstr "الرجاء تصحيح الأخطاء أدناه." + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "أدخل كلمة مرور جديدة للمستخدم %(username)s." + +msgid "Welcome," +msgstr "أهلا، " + +msgid "View site" +msgstr "عرض الموقع" + +msgid "Documentation" +msgstr "الوثائق" + +msgid "Log out" +msgstr "اخرج" + +#, python-format +msgid "Add %(name)s" +msgstr "أضف %(name)s" + +msgid "History" +msgstr "تاريخ" + +msgid "View on site" +msgstr "مشاهدة على الموقع" + +msgid "Filter" +msgstr "مرشّح" + +msgid "Clear all filters" +msgstr "مسح جميع المرشحات" + +msgid "Remove from sorting" +msgstr "إزالة من الترتيب" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "أولوية الترتيب: %(priority_number)s" + +msgid "Toggle sorting" +msgstr "عكس الترتيب" + +msgid "Delete" +msgstr "احذف" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" +"حذف العنصر %(object_name)s '%(escaped_object)s' سيتسبب بحذف العناصر المرتبطة " +"به، إلا أنك لا تملك صلاحية حذف العناصر التالية:" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" +"حذف %(object_name)s '%(escaped_object)s' سيتسبب أيضاً بحذف العناصر المرتبطة، " +"إلا أن حسابك ليس لديه صلاحية حذف أنواع العناصر التالية:" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" +"متأكد أنك تريد حذف العنصر %(object_name)s \\\"%(escaped_object)s\\\"؟ سيتم " +"حذف جميع العناصر التالية المرتبطة به:" + +msgid "Objects" +msgstr "عناصر" + +msgid "Yes, I’m sure" +msgstr "نعم، أنا متأكد" + +msgid "No, take me back" +msgstr "لا, تراجع للخلف" + +msgid "Delete multiple objects" +msgstr "حذف عدّة عناصر" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" +"حذف عناصر %(objects_name)s المُحدّدة سيتسبب بحذف العناصر المرتبطة، إلا أن " +"حسابك ليس له صلاحية حذف أنواع العناصر التالية:" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" +"حذف عناصر %(objects_name)s المحدّدة قد يتطلب حذف العناصر المحميّة المرتبطة " +"التالية:" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" +"أأنت متأكد أنك تريد حذف عناصر %(objects_name)s المحددة؟ جميع العناصر التالية " +"والعناصر المرتبطة بها سيتم حذفها:" + +msgid "Delete?" +msgstr "احذفه؟" + +#, python-format +msgid " By %(filter_title)s " +msgstr " حسب %(filter_title)s " + +msgid "Summary" +msgstr "ملخص" + +msgid "Recent actions" +msgstr "آخر الإجراءات" + +msgid "My actions" +msgstr "إجراءاتي" + +msgid "None available" +msgstr "لا يوجد" + +msgid "Unknown content" +msgstr "مُحتوى مجهول" + +msgid "" +"Something’s wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" +"هنالك أمر خاطئ في تركيب قاعدة بياناتك، تأكد من أنه تم انشاء جداول قاعدة " +"البيانات الملائمة، وأن قاعدة البيانات قابلة للقراءة من قبل المستخدم الملائم." + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" +"أنت مسجل الدخول بإسم المستخدم %(username)s, ولكنك غير مخول للوصول لهذه " +"الصفحة. هل ترغب بتسجيل الدخول بحساب آخر؟" + +msgid "Forgotten your password or username?" +msgstr "نسيت كلمة المرور أو اسم المستخدم الخاص بك؟" + +msgid "Toggle navigation" +msgstr "تغيير التنقل" + +msgid "Start typing to filter…" +msgstr "ابدأ بالكتابة لبدء التصفية(الفلترة)..." + +msgid "Filter navigation items" +msgstr "تصفية عناصر التنقل" + +msgid "Date/time" +msgstr "التاريخ/الوقت" + +msgid "User" +msgstr "المستخدم" + +msgid "Action" +msgstr "إجراء" + +msgid "entry" +msgstr "" + +msgid "entries" +msgstr "" + +msgid "" +"This object doesn’t have a change history. It probably wasn’t added via this " +"admin site." +msgstr "" +"ليس لهذا العنصر سجلّ تغييرات، على الأغلب أنه لم يُنشأ من خلال نظام إدارة " +"الموقع." + +msgid "Show all" +msgstr "أظهر الكل" + +msgid "Save" +msgstr "احفظ" + +msgid "Popup closing…" +msgstr "إغلاق المنبثقة ..." + +msgid "Search" +msgstr "ابحث" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "%(counter)s نتيجة" +msgstr[1] "%(counter)s نتيجة" +msgstr[2] "%(counter)s نتيجة" +msgstr[3] "%(counter)s نتائج" +msgstr[4] "%(counter)s نتيجة" +msgstr[5] "%(counter)s نتيجة" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "المجموع %(full_result_count)s" + +msgid "Save as new" +msgstr "احفظ كجديد" + +msgid "Save and add another" +msgstr "احفظ وأضف آخر" + +msgid "Save and continue editing" +msgstr "احفظ واستمر بالتعديل" + +msgid "Save and view" +msgstr "احفظ ثم اعرض" + +msgid "Close" +msgstr "أغلق" + +#, python-format +msgid "Change selected %(model)s" +msgstr "تغيير %(model)s المختارة" + +#, python-format +msgid "Add another %(model)s" +msgstr "أضف %(model)s آخر" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "حذف %(model)s المختارة" + +#, python-format +msgid "View selected %(model)s" +msgstr "" + +msgid "Thanks for spending some quality time with the web site today." +msgstr "شكرا لأخذك بعض الوقت في الموقع اليوم." + +msgid "Log in again" +msgstr "ادخل مجدداً" + +msgid "Password change" +msgstr "غيّر كلمة مرورك" + +msgid "Your password was changed." +msgstr "تمّ تغيير كلمة مرورك." + +msgid "" +"Please enter your old password, for security’s sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" +"رجاءً أدخل كلمة مرورك القديمة، للأمان، ثم أدخل كلمة مرور الجديدة مرتين كي " +"تتأكّد من كتابتها بشكل صحيح." + +msgid "Change my password" +msgstr "غيّر كلمة مروري" + +msgid "Password reset" +msgstr "استعادة كلمة المرور" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "تم تعيين كلمة مرورك. يمكن الاستمرار وتسجيل دخولك الآن." + +msgid "Password reset confirmation" +msgstr "تأكيد استعادة كلمة المرور" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "رجاءً أدخل كلمة مرورك الجديدة مرتين كي تتأكّد من كتابتها بشكل صحيح." + +msgid "New password:" +msgstr "كلمة المرور الجديدة:" + +msgid "Confirm password:" +msgstr "أكّد كلمة المرور:" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"رابط استعادة كلمة المرور غير صحيح، ربما لأنه استُخدم من قبل. رجاءً اطلب " +"استعادة كلمة المرور مرة أخرى." + +msgid "" +"We’ve emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" +"تم إرسال بريد إلكتروني بالتعليمات لضبط كلمة المرور الخاصة بك, في حال تواجد " +"حساب بنفس البريد الإلكتروني الذي ادخلته. سوف تستقبل البريد الإلكتروني قريباً" + +msgid "" +"If you don’t receive an email, please make sure you’ve entered the address " +"you registered with, and check your spam folder." +msgstr "" +"في حال عدم إستقبال البريد الإلكتروني، الرجاء التأكد من إدخال عنوان بريدك " +"الإلكتروني بشكل صحيح ومراجعة مجلد الرسائل غير المرغوب فيها." + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" +"لقد قمت بتلقى هذه الرسالة لطلبك بإعادة تعين كلمة المرور لحسابك الشخصي على " +"%(site_name)s." + +msgid "Please go to the following page and choose a new password:" +msgstr "رجاءً اذهب إلى الصفحة التالية واختر كلمة مرور جديدة:" + +msgid "Your username, in case you’ve forgotten:" +msgstr "اسم المستخدم الخاص بك، في حال كنت قد نسيته:" + +msgid "Thanks for using our site!" +msgstr "شكراً لاستخدامك موقعنا!" + +#, python-format +msgid "The %(site_name)s team" +msgstr "فريق %(site_name)s" + +msgid "" +"Forgotten your password? Enter your email address below, and we’ll email " +"instructions for setting a new one." +msgstr "" +"هل فقدت كلمة المرور؟ أدخل عنوان بريدك الإلكتروني أدناه وسوف نقوم بإرسال " +"تعليمات للحصول على كلمة مرور جديدة." + +msgid "Email address:" +msgstr "عنوان البريد الإلكتروني:" + +msgid "Reset my password" +msgstr "استعد كلمة مروري" + +msgid "All dates" +msgstr "كافة التواريخ" + +#, python-format +msgid "Select %s" +msgstr "اختر %s" + +#, python-format +msgid "Select %s to change" +msgstr "اختر %s لتغييره" + +#, python-format +msgid "Select %s to view" +msgstr "حدد %s للعرض" + +msgid "Date:" +msgstr "التاريخ:" + +msgid "Time:" +msgstr "الوقت:" + +msgid "Lookup" +msgstr "ابحث" + +msgid "Currently:" +msgstr "حالياً:" + +msgid "Change:" +msgstr "تغيير:" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ar_DZ/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ar_DZ/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..6b419f003c46278e57ff6a7a1a2e2fc4f01ad7ec GIT binary patch literal 6423 zcmeH}ZH!!18OM(>C@zRn5JW+bmDX06*_Xc1PFbK7mbSX3X%`Vi&7GOMI~Qi|UGBZJ z+cmy)+iiC(kpy3&24gJEvfHKYQY+9lN;D=aF&bk`yf-E!`iXCT@#PbVzvtXDv$NZ^ zqVT~FoXolZbDr~@=j}Y_IrGYj+_x0%F8YnqFH!0t!5kmj{>zlQ4IBsG4xY34Q;?tf zrJeruJZ{QV3pV@p6k-SiH*O)fTS>36p7SEeeQ^m3H0@%3Y8={4o8abi%6E({G{|=pUiW z{l9}Q`Ix7RpVH*~QDfT8e2erobU80+q-?9*Wk*~a({8ay7?rkT0jXi@=;G@}`X)M8 zwADx}wV5t=^L9%m1r%wmR@r$kxPksbJ12xDhowG9`xyOBdXG$Ka=y}T%RqI4QVVXS zucpg6b~V}=mia_m;r#nv`zr%*4bje1yM>u~7R z)YisOBZ}455yz`JrJAc(MQWSlm))A$RtAtDawZU1FDK9m%}j6^yF;%W)tP*kb}^LE@$My2EkC zx3>!8K-G&hzqsn^nimo2LG831aKZRrcgC7$5(RZvm&R-sdH#@Wt!vLWB1*wN{HO(^ z+QAi8d|j49vwV7GmMANUXb4lujYnO0M0-3MXtujiVOgVE=e%H%&4M>*Q5K^AWKmEd zJqCh$Aa<*Pv0)dN$<$clCtfoiG+CxA!D!~uvhh?8xe>W2;v}=G4tdP54qfF9~&y(h*xPiHMG06N@St~I|(}+1|_cPn63qZ zIe@`{Y$ek75$Hx7vpsZ}3lYV#vRACh)(RIl4<^0XyokLOp@l62iOB^9>M=Ji=-oBf ziQFtV^!*=~=*j-3_1t^kMH=ML&4-Q5x-2wphBf?5>GA<_D_(5MR5LO=293!gt}W2U z;-!*CJxnNZC4wj}D5q2k-I0Q>2Yy`DrWoeB zsT{a;h02wqd|g2HUC2whO?AuhUBXVigF3c^x{JChwKK-ij6F1~a+)Ue^F14M*KNfOn{Vl&b$r5!;`~79_)*P?gRrP~dR5+syPay?@hW<2 zEx+BVJ?h=c_MRTN{h@|4exoIx<0m1tBN{y_r;yVHOKR} z$n^{(H|~94pfA5^flt&8x?%oazZ_I3*hRgmD-2VbR9vVJG@x>DhEr6dp2OpG?js$BUZS!>-MF z97yKVLpqsF_nQF75uTF(NS4`%8#$*~fV1$HsQ+J$n^}x%)}m(&NlH)_kmp&MmwG_)U~m}L zNu4|^r9-MrR#}sCnEF*snVYl=>HddTw(EO%r6lSRYKz&{k}4!h%SC*##dWbKZBbh6 z$AX9dg&!C9qNVHNK8RmEqg*6d|5V&ST0EsSd~FAWx@vh7UrqGZM5e;UF< yz%X199l5x6h=~xUgvvo>!^QtAWN}f^T2!kRm7^1IQlV6GQYEKU@~leEseb{-a4Mew literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ar_DZ/LC_MESSAGES/djangojs.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ar_DZ/LC_MESSAGES/djangojs.po new file mode 100644 index 0000000000..9e8a4ad1c8 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ar_DZ/LC_MESSAGES/djangojs.po @@ -0,0 +1,280 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Jihad Bahmaid Al-Halki, 2022 +# Riterix , 2019-2020 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2022-05-17 05:26-0500\n" +"PO-Revision-Date: 2022-07-25 07:59+0000\n" +"Last-Translator: Jihad Bahmaid Al-Halki\n" +"Language-Team: Arabic (Algeria) (http://www.transifex.com/django/django/" +"language/ar_DZ/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ar_DZ\n" +"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " +"&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" + +#, javascript-format +msgid "Available %s" +msgstr "%s المتوفرة" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" +"هذه قائمة %s المتوفرة. يمكنك اختيار بعضها بانتقائها في الصندوق أدناه ثم " +"الضغط على سهم الـ\\\"اختيار\\\" بين الصندوقين." + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "اكتب في هذا الصندوق لتصفية قائمة %s المتوفرة." + +msgid "Filter" +msgstr "انتقاء" + +msgid "Choose all" +msgstr "اختر الكل" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "اضغط لاختيار جميع %s جملة واحدة." + +msgid "Choose" +msgstr "اختيار" + +msgid "Remove" +msgstr "احذف" + +#, javascript-format +msgid "Chosen %s" +msgstr "%s المختارة" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" +"هذه قائمة %s المحددة. يمكنك إزالة بعضها باختيارها في الصندوق أدناه ثم اضغط " +"على سهم الـ\\\"إزالة\\\" بين الصندوقين." + +msgid "Remove all" +msgstr "إزالة الكل" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "اضغط لإزالة جميع %s المحددة جملة واحدة." + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "لا شي محدد" +msgstr[1] "%(sel)s من %(cnt)s محدد" +msgstr[2] "%(sel)s من %(cnt)s محدد" +msgstr[3] "%(sel)s من %(cnt)s محددة" +msgstr[4] "%(sel)s من %(cnt)s محدد" +msgstr[5] "%(sel)s من %(cnt)s محدد" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" +"لديك تعديلات غير محفوظة على بعض الحقول القابلة للتعديل. إن نفذت أي إجراء " +"فسوف تخسر تعديلاتك." + +msgid "" +"You have selected an action, but you haven’t saved your changes to " +"individual fields yet. Please click OK to save. You’ll need to re-run the " +"action." +msgstr "" +"اخترت إجراءً لكن دون أن تحفظ تغييرات التي قمت بها. رجاء اضغط زر الموافقة " +"لتحفظ تعديلاتك. ستحتاج إلى إعادة تنفيذ الإجراء." + +msgid "" +"You have selected an action, and you haven’t made any changes on individual " +"fields. You’re probably looking for the Go button rather than the Save " +"button." +msgstr "اخترت إجراءً دون تغيير أي حقل. لعلك تريد زر التنفيذ بدلاً من زر الحفظ." + +msgid "Now" +msgstr "الآن" + +msgid "Midnight" +msgstr "منتصف الليل" + +msgid "6 a.m." +msgstr "6 ص." + +msgid "Noon" +msgstr "الظهر" + +msgid "6 p.m." +msgstr "6 مساء" + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "ملاحظة: أنت متقدم بـ %s ساعة من وقت الخادم." +msgstr[1] "ملاحظة: أنت متقدم بـ %s ساعة من وقت الخادم." +msgstr[2] "ملاحظة: أنت متقدم بـ %s ساعة من وقت الخادم." +msgstr[3] "ملاحظة: أنت متقدم بـ %s ساعة من وقت الخادم." +msgstr[4] "ملاحظة: أنت متقدم بـ %s ساعة من وقت الخادم." +msgstr[5] "ملاحظة: أنت متقدم بـ %s ساعة من وقت الخادم." + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "ملاحظة: أنت متأخر بـ %s ساعة من وقت الخادم." +msgstr[1] "ملاحظة: أنت متأخر بـ %s ساعة من وقت الخادم." +msgstr[2] "ملاحظة: أنت متأخر بـ %s ساعة من وقت الخادم." +msgstr[3] "ملاحظة: أنت متأخر بـ %s ساعة من وقت الخادم." +msgstr[4] "ملاحظة: أنت متأخر بـ %s ساعة من وقت الخادم." +msgstr[5] "ملاحظة: أنت متأخر بـ %s ساعة من وقت الخادم." + +msgid "Choose a Time" +msgstr "إختر وقت " + +msgid "Choose a time" +msgstr "إختر وقت " + +msgid "Cancel" +msgstr "ألغ" + +msgid "Today" +msgstr "اليوم" + +msgid "Choose a Date" +msgstr "إختر تاريخ " + +msgid "Yesterday" +msgstr "أمس" + +msgid "Tomorrow" +msgstr "غداً" + +msgid "January" +msgstr "جانفي" + +msgid "February" +msgstr "فيفري" + +msgid "March" +msgstr "مارس" + +msgid "April" +msgstr "أفريل" + +msgid "May" +msgstr "ماي" + +msgid "June" +msgstr "جوان" + +msgid "July" +msgstr "جويليه" + +msgid "August" +msgstr "أوت" + +msgid "September" +msgstr "سبتمبر" + +msgid "October" +msgstr "أكتوبر" + +msgid "November" +msgstr "نوفمبر" + +msgid "December" +msgstr "ديسمبر" + +msgctxt "abbrev. month January" +msgid "Jan" +msgstr "يناير" + +msgctxt "abbrev. month February" +msgid "Feb" +msgstr "فبراير" + +msgctxt "abbrev. month March" +msgid "Mar" +msgstr "مارس" + +msgctxt "abbrev. month April" +msgid "Apr" +msgstr "أبريل" + +msgctxt "abbrev. month May" +msgid "May" +msgstr "مايو" + +msgctxt "abbrev. month June" +msgid "Jun" +msgstr "يونيو" + +msgctxt "abbrev. month July" +msgid "Jul" +msgstr "يوليو" + +msgctxt "abbrev. month August" +msgid "Aug" +msgstr "أغسطس" + +msgctxt "abbrev. month September" +msgid "Sep" +msgstr "سبتمبر" + +msgctxt "abbrev. month October" +msgid "Oct" +msgstr "أكتوبر" + +msgctxt "abbrev. month November" +msgid "Nov" +msgstr "نوفمبر" + +msgctxt "abbrev. month December" +msgid "Dec" +msgstr "ديسمبر" + +msgctxt "one letter Sunday" +msgid "S" +msgstr "ح" + +msgctxt "one letter Monday" +msgid "M" +msgstr "ن" + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "ث" + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "ع" + +msgctxt "one letter Thursday" +msgid "T" +msgstr "خ" + +msgctxt "one letter Friday" +msgid "F" +msgstr "ج" + +msgctxt "one letter Saturday" +msgid "S" +msgstr "س" + +msgid "" +"You have already submitted this form. Are you sure you want to submit it " +"again?" +msgstr "" + +msgid "Show" +msgstr "أظهر" + +msgid "Hide" +msgstr "اخف" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ast/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ast/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..e35811bbb20c8f4b764be230b4449c4bc9482617 GIT binary patch literal 2476 zcmaKs-)~e!6vu}jimpFU6n~>5v1u#4+ue#nx7JeH0>uIiT|^TSGQD?pcVOc)->2`mhmA^kQv`UG-6jTVZx~2 zUuCmevsu&QnFx~2I>~!Bavzt8yzkt_-&>la2?=yVA9+%eg2b_S_mCIx?^F)0V5k zyd$nkm`lUcjxcSRRoRkl!wEZW@hdI2yjR(>XiH8Bv}`mPI~xm^TN6qHwo-`2h1N(h z*dX-96b7W@&`55xsO7~n^OcyU()(7_8iEzFK-ZDMbh;}d9rab#>_{hv{UBapxOC3C zDqjqn@0{#fhZ0flNR)e+a*^fAC?A{%)_Hza2`+P?G#4i0zGI`#NWhj_hasLFM6dED z`dgklmWl8Qk_zIM!4-YSgru=&^I=vaxH1otML?ytmHv#`tOs zMMzFwiPBSyT~ZQRVtLY&LLf=2u+yo{tVdBg)&pLnVpwm`dsr^a`^5%TC62qvS3o1DbsH7!>cN6 z1=`?Psj{r26FNDDgX0_Abc;tnJu$@xx6>nrzdX(Bqf-^O;8&H_!g^lA)}>ubTb#|R zRP}FBi^x%HoNH`fdot*uADKp2>kiacihTZqQA`(L8bz)?iEDL|9@*KRD%boPRaCd zq9Mfp?ky+es^y3oJtbB-9jnm4g_MP+E}|l25_+?dWY$3+bXT}_u75Lf>RhYR^*012 zDpUcc(6)=FO*-dYI6dw}s>seFS?bR8Xi(ECvI>f0gWyJSR4}p=)}esM`(H`L=A}pY zHtlajG*%P(8@ct`j!^`bn?h+Q8S%-9dz3`)(GW0*3`-ovT3X9C#2CkmF}Bj*U_JIX DFNc!E literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ast/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ast/LC_MESSAGES/django.po new file mode 100644 index 0000000000..437b080ac8 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ast/LC_MESSAGES/django.po @@ -0,0 +1,636 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Ḷḷumex03 , 2014 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-01-19 16:49+0100\n" +"PO-Revision-Date: 2017-09-23 19:51+0000\n" +"Last-Translator: Jannis Leidel \n" +"Language-Team: Asturian (http://www.transifex.com/django/django/language/" +"ast/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ast\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "desanciáu con ésitu %(count)d %(items)s." + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "Nun pue desaniciase %(name)s" + +msgid "Are you sure?" +msgstr "¿De xuru?" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "" + +msgid "Administration" +msgstr "" + +msgid "All" +msgstr "Too" + +msgid "Yes" +msgstr "Sí" + +msgid "No" +msgstr "Non" + +msgid "Unknown" +msgstr "Desconocíu" + +msgid "Any date" +msgstr "Cualaquier data" + +msgid "Today" +msgstr "Güei" + +msgid "Past 7 days" +msgstr "" + +msgid "This month" +msgstr "Esti mes" + +msgid "This year" +msgstr "Esi añu" + +msgid "No date" +msgstr "" + +msgid "Has date" +msgstr "" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" + +msgid "Action:" +msgstr "Aición:" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "" + +msgid "Remove" +msgstr "" + +msgid "action time" +msgstr "" + +msgid "user" +msgstr "" + +msgid "content type" +msgstr "" + +msgid "object id" +msgstr "" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/3/library/functions.html#repr) +msgid "object repr" +msgstr "" + +msgid "action flag" +msgstr "" + +msgid "change message" +msgstr "" + +msgid "log entry" +msgstr "" + +msgid "log entries" +msgstr "" + +#, python-format +msgid "Added \"%(object)s\"." +msgstr "Amestáu \"%(object)s\"." + +#, python-format +msgid "Changed \"%(object)s\" - %(changes)s" +msgstr "" + +#, python-format +msgid "Deleted \"%(object)s.\"" +msgstr "" + +msgid "LogEntry Object" +msgstr "" + +#, python-brace-format +msgid "Added {name} \"{object}\"." +msgstr "" + +msgid "Added." +msgstr "" + +msgid "and" +msgstr "y" + +#, python-brace-format +msgid "Changed {fields} for {name} \"{object}\"." +msgstr "" + +#, python-brace-format +msgid "Changed {fields}." +msgstr "" + +#, python-brace-format +msgid "Deleted {name} \"{object}\"." +msgstr "" + +msgid "No fields changed." +msgstr "" + +msgid "None" +msgstr "" + +msgid "" +"Hold down \"Control\", or \"Command\" on a Mac, to select more than one." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was added successfully. You may edit it again below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was added successfully. You may add another {name} " +"below." +msgstr "" + +#, python-brace-format +msgid "The {name} \"{obj}\" was added successfully." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was changed successfully. You may edit it again below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was changed successfully. You may add another {name} " +"below." +msgstr "" + +#, python-brace-format +msgid "The {name} \"{obj}\" was changed successfully." +msgstr "" + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" +"Los oxetos tienen d'usase pa faer aiciones con ellos. Nun se camudó dengún " +"oxetu." + +msgid "No action selected." +msgstr "Nun s'esbilló denguna aición." + +#, python-format +msgid "The %(name)s \"%(obj)s\" was deleted successfully." +msgstr "" + +#, python-format +msgid "%(name)s with ID \"%(key)s\" doesn't exist. Perhaps it was deleted?" +msgstr "" + +#, python-format +msgid "Add %s" +msgstr "Amestar %s" + +#, python-format +msgid "Change %s" +msgstr "" + +msgid "Database error" +msgstr "" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "Esbillaos 0 de %(cnt)s" + +#, python-format +msgid "Change history: %s" +msgstr "" + +#. Translators: Model verbose name and instance representation, +#. suitable to be an item in a list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" + +msgid "Django site admin" +msgstr "" + +msgid "Django administration" +msgstr "" + +msgid "Site administration" +msgstr "" + +msgid "Log in" +msgstr "Aniciar sesión" + +#, python-format +msgid "%(app)s administration" +msgstr "" + +msgid "Page not found" +msgstr "Nun s'alcontró la páxina" + +msgid "We're sorry, but the requested page could not be found." +msgstr "Sentímoslo, pero nun s'alcuentra la páxina solicitada." + +msgid "Home" +msgstr "" + +msgid "Server error" +msgstr "" + +msgid "Server error (500)" +msgstr "" + +msgid "Server Error (500)" +msgstr "" + +msgid "" +"There's been an error. It's been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" +"Hebo un erru. Repotóse al sitiu d'alministradores per corréu y debería " +"d'iguase en pocu tiempu. Gracies pola to paciencia." + +msgid "Run the selected action" +msgstr "Executar l'aición esbillada" + +msgid "Go" +msgstr "Dir" + +msgid "Click here to select the objects across all pages" +msgstr "" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "Esbillar too %(total_count)s %(module_name)s" + +msgid "Clear selection" +msgstr "Llimpiar esbilla" + +msgid "" +"First, enter a username and password. Then, you'll be able to edit more user " +"options." +msgstr "" + +msgid "Enter a username and password." +msgstr "" + +msgid "Change password" +msgstr "" + +msgid "Please correct the error below." +msgstr "" + +msgid "Please correct the errors below." +msgstr "" + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "" + +msgid "Welcome," +msgstr "Bienllegáu/ada," + +msgid "View site" +msgstr "" + +msgid "Documentation" +msgstr "Documentación" + +msgid "Log out" +msgstr "" + +#, python-format +msgid "Add %(name)s" +msgstr "" + +msgid "History" +msgstr "" + +msgid "View on site" +msgstr "" + +msgid "Filter" +msgstr "" + +msgid "Remove from sorting" +msgstr "" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "" + +msgid "Toggle sorting" +msgstr "" + +msgid "Delete" +msgstr "" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" + +msgid "Objects" +msgstr "" + +msgid "Yes, I'm sure" +msgstr "" + +msgid "No, take me back" +msgstr "" + +msgid "Delete multiple objects" +msgstr "" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" + +msgid "Change" +msgstr "" + +msgid "Delete?" +msgstr "" + +#, python-format +msgid " By %(filter_title)s " +msgstr "" + +msgid "Summary" +msgstr "" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "" + +msgid "Add" +msgstr "" + +msgid "You don't have permission to edit anything." +msgstr "" + +msgid "Recent actions" +msgstr "" + +msgid "My actions" +msgstr "" + +msgid "None available" +msgstr "" + +msgid "Unknown content" +msgstr "" + +msgid "" +"Something's wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" + +msgid "Forgotten your password or username?" +msgstr "" + +msgid "Date/time" +msgstr "" + +msgid "User" +msgstr "" + +msgid "Action" +msgstr "" + +msgid "" +"This object doesn't have a change history. It probably wasn't added via this " +"admin site." +msgstr "" + +msgid "Show all" +msgstr "" + +msgid "Save" +msgstr "" + +msgid "Popup closing..." +msgstr "" + +#, python-format +msgid "Change selected %(model)s" +msgstr "" + +#, python-format +msgid "Add another %(model)s" +msgstr "" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "" + +msgid "Search" +msgstr "" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "" + +msgid "Save as new" +msgstr "" + +msgid "Save and add another" +msgstr "" + +msgid "Save and continue editing" +msgstr "" + +msgid "Thanks for spending some quality time with the Web site today." +msgstr "" + +msgid "Log in again" +msgstr "" + +msgid "Password change" +msgstr "" + +msgid "Your password was changed." +msgstr "" + +msgid "" +"Please enter your old password, for security's sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" + +msgid "Change my password" +msgstr "" + +msgid "Password reset" +msgstr "" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "" + +msgid "Password reset confirmation" +msgstr "" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" + +msgid "New password:" +msgstr "" + +msgid "Confirm password:" +msgstr "" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" + +msgid "" +"We've emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" + +msgid "" +"If you don't receive an email, please make sure you've entered the address " +"you registered with, and check your spam folder." +msgstr "" + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" + +msgid "Please go to the following page and choose a new password:" +msgstr "" + +msgid "Your username, in case you've forgotten:" +msgstr "" + +msgid "Thanks for using our site!" +msgstr "" + +#, python-format +msgid "The %(site_name)s team" +msgstr "" + +msgid "" +"Forgotten your password? Enter your email address below, and we'll email " +"instructions for setting a new one." +msgstr "" + +msgid "Email address:" +msgstr "" + +msgid "Reset my password" +msgstr "" + +msgid "All dates" +msgstr "" + +#, python-format +msgid "Select %s" +msgstr "" + +#, python-format +msgid "Select %s to change" +msgstr "" + +msgid "Date:" +msgstr "Data:" + +msgid "Time:" +msgstr "Hora:" + +msgid "Lookup" +msgstr "" + +msgid "Currently:" +msgstr "Anguaño:" + +msgid "Change:" +msgstr "" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ast/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ast/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..7b7e49b7a39d6d0b72da2e955791f8e312296439 GIT binary patch literal 2137 zcmaKsJ&YSg6vsCZATi$|Knf%t63JbZtj{(dNgNJg?vfDTk|VhwMWPw+KHHOwXRMi7 z-?^frqC!wWgHodtLNpWkNrRC1zxCc36eT0i{`_XI4Sohn%0-jJ7p)JY%34L=6R22P8RH-* z<#E(UQ6-*~$53VN17cJ~)-F1vNZv&wQn*`W-^+4%F|aur$o1&(VrC=$qJgu>d2*+| z&RA)qx`yd+NLG~1*d!|h=K@zCMNtpumMQxK+tR`4>^en9S?NN`7&McLJ~A=*(=!6h)JdAvM8DL)$c3~gZ?Kiz_S$V zcf}#ow}_(&$2zSWR)Hxi6Mpdx*%R@fDaWo@Ml3XXPJJ;`HcLr8S@-T54oZ4HPv2%A zkft`}*N_cYyTl{sW4adlI!|9M`XSwLZK|zb+(=hED@kd(sv@_k)o8w$HeN`ZC#dyY zyV*L{Xf+xbm|o(smYDN#C(_2LwAG+StNncQSOcZ@rV26L@X7|GqVsKfU0JIGy~#Kd zhF*din6H@9tZUnIFT=<73)SazgVnH2oe&GJk@UqujHC9_(&px7JxWO3-;dZ$&N}hEVoY6?Co{lZLUi)N? zbFIi0oDJ{x`*zu<_6#4Q-= zx`@EEsy*RJ%nF4wgY4kYRz2qmg;&YfZ!2lU9*MGXdZW~aGwqQ^2#0(uvs5%w3H!DR z*YObb)Y$psc%)>@IvE!c`+%)0LqY;w;EaPt>-0t--r}qrfzyS=j}aXys4|uO3(Z|s ANB{r; literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ast/LC_MESSAGES/djangojs.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ast/LC_MESSAGES/djangojs.po new file mode 100644 index 0000000000..53705c7038 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ast/LC_MESSAGES/djangojs.po @@ -0,0 +1,211 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Ḷḷumex03 , 2014 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-05-17 23:12+0200\n" +"PO-Revision-Date: 2017-09-20 02:41+0000\n" +"Last-Translator: Jannis Leidel \n" +"Language-Team: Asturian (http://www.transifex.com/django/django/language/" +"ast/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ast\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, javascript-format +msgid "Available %s" +msgstr "Disponible %s" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "" + +msgid "Filter" +msgstr "Filtrar" + +msgid "Choose all" +msgstr "Escoyer too" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "Primi pa escoyer too %s d'una vegada" + +msgid "Choose" +msgstr "Escoyer" + +msgid "Remove" +msgstr "Desaniciar" + +#, javascript-format +msgid "Chosen %s" +msgstr "Escoyíu %s" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" + +msgid "Remove all" +msgstr "Desaniciar too" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "Primi pa desaniciar tolo escoyío %s d'una vegada" + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "%(sel)s de %(cnt)s esbilláu" +msgstr[1] "%(sel)s de %(cnt)s esbillaos" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" + +msgid "" +"You have selected an action, but you haven't saved your changes to " +"individual fields yet. Please click OK to save. You'll need to re-run the " +"action." +msgstr "" +"Esbillesti una aición, pero entá nun guardesti les tos camudancies nos " +"campos individuales. Por favor, primi Aceutar pa guardar. Necesitarás " +"executar de nueves la aición" + +msgid "" +"You have selected an action, and you haven't made any changes on individual " +"fields. You're probably looking for the Go button rather than the Save " +"button." +msgstr "" +"Esbillesti una aición, y nun fixesti camudancia dala nos campos " +"individuales. Quiciabes teas guetando'l botón Dir en cuantes del botón " +"Guardar." + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "" +msgstr[1] "" + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "" +msgstr[1] "" + +msgid "Now" +msgstr "Agora" + +msgid "Choose a Time" +msgstr "" + +msgid "Choose a time" +msgstr "Escueyi una hora" + +msgid "Midnight" +msgstr "Media nueche" + +msgid "6 a.m." +msgstr "" + +msgid "Noon" +msgstr "Meudía" + +msgid "6 p.m." +msgstr "" + +msgid "Cancel" +msgstr "Encaboxar" + +msgid "Today" +msgstr "Güei" + +msgid "Choose a Date" +msgstr "" + +msgid "Yesterday" +msgstr "Ayeri" + +msgid "Tomorrow" +msgstr "Mañana" + +msgid "January" +msgstr "" + +msgid "February" +msgstr "" + +msgid "March" +msgstr "" + +msgid "April" +msgstr "" + +msgid "May" +msgstr "" + +msgid "June" +msgstr "" + +msgid "July" +msgstr "" + +msgid "August" +msgstr "" + +msgid "September" +msgstr "" + +msgid "October" +msgstr "" + +msgid "November" +msgstr "" + +msgid "December" +msgstr "" + +msgctxt "one letter Sunday" +msgid "S" +msgstr "" + +msgctxt "one letter Monday" +msgid "M" +msgstr "" + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "" + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "" + +msgctxt "one letter Thursday" +msgid "T" +msgstr "" + +msgctxt "one letter Friday" +msgid "F" +msgstr "" + +msgctxt "one letter Saturday" +msgid "S" +msgstr "" + +msgid "Show" +msgstr "Amosar" + +msgid "Hide" +msgstr "Anubrir" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/az/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/az/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..7c6990af6c666583b3621f17d5e40b35f56911e4 GIT binary patch literal 18963 zcmc(m3y>vOdEbxF16WCjhXocdwImOkm1gel>VcGz#A;vCZqV#5JF6!K(Q|LlOzYm; zJ=5KHX6^`qgb@!}m^hZP76Y3E%L3zIEh56P7XhAG@Y-dJ9TG#4xKbj)Rj!0mf)iq# zD(Ck<=XBqm+1d4C?8+^j{db=}kMDfvd!94;^Ov9X%ZA_AD6gd)Jja;x&oJiE^Hgih zmtShkh2U4fSAu^Az6Sh0cn`SYWyZV#j6l^t3f>BS3cMD49#sD~yxbUuHaCJV1b2XE zf^P;j)jt3IXF;`Zf}*GI@gv}?cz+tyIDhEzPr(=Q{%!Cj;B%nH{U6|q!T;sI|1J0c z?=O0VG4BQ62c8d}`%@I~B2eoa0xg}O`tJbgYQ{aj1H6Fu9J~npIZ*5QICv%a1jv%j zpMb;QcR|s29*a`_g`oOh4sHRj1J4Fy|2+ja@cs~}^*joSj$Z}U?g>!zeFhXiJ_m}9 zKL9TW{|hL3&SNpJ2Y(9G_p3qCF%B+*cYt%?AA_F-w=vih_&oSY@Xnuh?f(WG;{7ZJ zVQ6y&sCC>7ihl<{(fJNg^rhg>fIaYL@S~vU_zoz#e*}u|GhWRc;6zZ}%OZ}jiC zfRJcz2eqy_@MiD@rd^;$4coft+J_m}= zUkAmX@A&ucgWA8p0X5HAmpHz>6coKb4T`Q2@CdjK)VMzYMdw9q&PMQRQ2cxw_$Dv{ z5fSri;5FcvKt$O571#sMz08;f_z);QJ_T+D&p^lyfLDRz;KQK!`|rTp!M8EFl)4sHPN0VPKf zcs|$%)&Bh;TWUTDN}hfn48ZS$;@1TThwx(Xh2SPo>%9(?yxsyzF86_w=N9-NxB&hl z_&|d<2?(CzORB8f`0-^UjD-4UxTQcITxWk7rYXDBX}LCaT1Uw z=KbIW;1@tlg83S#asDf~8~h=74tVnx*Y8$P`|=J@?e7Cc#|J>Q`z28O`%zGIeFD^c zp9il7{|Hq7Gp=&>`dm=^cLgZE>;z}QaWDg)1-}e#q4V3p{|P<~z6GV!d}kw!kZ8^W zHQ!C3zX*yC=fWJdy8*lm+zI|XI0Ld3=C8oVz{{?4 z{Qqt6WxRhG)I5I*o(=wIa0dJy_yTYrLiR9t08GJeftqJG%BKEr0oAVwz7&i>t!oKH z)yzYn`1fg0^ZXtt{(b|*gqd&p`u`2$D$H49Zrn>i@%d^{`+F0peH!<87by8_f)|2| z;H$x3043L-1~uQ;!MB3{5j+fDe}gf5z;A)S30``m)B8UL1K!Wa2)rC@fa<>uv~mu< zg7+3EeOUx0m!AN|@81A5@7F=K`vLeW@P!y-@#kVtaz6x0|3<-AgL^<6`f9|pC5UjQEgzX6KAw{Ay=!1sZA{|o>A@*TtyyyxJj!9M`o zV6oH77ii_nzwg`S>Td_dpSOZqXA>0teQ*=_A&*}KF?r^{gObBn-{R!%GEn<<4R|KF z9n^TYfE&QQp!j_^C_WXS`1URkQ8ym~zXTow)&JpJ9p66)_IN)8A~NQJ-A-TM49fq# z6J+V;+h72`c8~M_H-TD58a5iedqk&J1d^!pIyF^c%E-)9}z z`1(s|zkAHP6BbWB7ke@*{z4+wiC!d6FB{RYZcC|{<$m2xlTVamUxh|k9; zpP*bqDSwh*$;#D~2Pyjfa|$NP{-l57{&^$#LCWt?K1tD@A__J}N0iJ0ML)^Nd+ZZF z3zTlZgMwI@`zZ~|*_3xuexC9hlxr#aJx%#JisVo~=~MZe;bFOa0sjR>^7abKS1G?t zDJUPK^eJ~!-bHyYnZeRJkU`qK#%G)Tl^w848KL|d0re6#Zm-KR~&U zau(&IlwYAtP+FABDEftzYbc+l9H8hoO>i?GADlBT$r3HIy^o_p|PL&NQ;zcGLA z!H);6G|H3b9z0Y8(IU%j1pA|GCY;TKxCpe0R@8}#sI`@G?0D7aIUkyQG21$w;G`cn z2k8`Fo0dI;E=|kSZ5GDNwictbTC{Vdx|iHSn54x_l<}>bLJRCx%R%jYluf32vbn{vm;E{ zzmgTz{_e1+W`_C zNk&|~-SUd-%`DAfK4Z*=(@5Hm4)Sewq{&pAbt`5tS1-$=r0Dd=%+9a~C&N4nqAW`@ zy+)ggxEt9gK3g635OlF3@oXmw{ETJ&I&5?uJ(URI&~RPd?w#%QvQR4N+HLiCQvGwy zTFwHMg5N+j%Z{E@$^9t|Zm^K{IxU29t{20`mR6@Os}*N9OABkDD(Us>MY@K)R(b8y z7FycMQP%3~TcxjY_7iCbuRlzCmf)e!{)^ai{tJ$O@EsXPk$VXi{mBMx}&! zryio16miqV4mF0Xw>V|QLFD<-!K4x}xXN$hsm7KNcd&OOBHGq;yLef}Vd!EQ zjEBvUnp?0;DDX0TWwPBV7Jbi@jW$}T3)-@%8O5kHZ7kIz0hV2!pc}TMDkfoBw6Qya zcuEYsT-mX*Xc}_yNG;-vV#e{JITPWhEWh&Eu&aoq6=e;x$HpPuUS22;sq6sO2oKGM zvw@fw+-w)yV|PwVW6EwL*qiz=##*7th^=%!l(W*?(rHYZhaj8|{Y%;_RLS;b{a~LB z=6Fxry;(D^fRI4d4v$gyaW3&YKGrGGc)z5=?5%0TnAw~1pZ`{^qM^td05yqy#gM0*Idj zSE?w^a*fGDO$y=Fhu3a8A9)C-va}12GFc+( z5SpMKA|L2EZKxE}jbbM7`}QA83EB_Z#A;B9urX*4Nx}eYboH^#=i_L>zvc2OW`ZcU zIRhvKRIpw>Y57j4SJ$~ATziGKYZFGB-t{_F9_I&CQy*YBGZN=)FZ@&-kBF43a|0LT z55D>82Ek}>{{s+|AyUCE#mK>pQTI*5*KXdt@y1O&mET>E0bvW@s&RB~k|X3_-( z=Fovn)-EcA1a_d!lv{Ql_vB;m#|R zUDzadBffs3hhxn8<{-|m?Y-}8l(aNt4&Q>gUf6+xKv|CCnwGN=O$IigDpJg3qu#wI z?FtkUtHC9FQd;g^Mw#HbBazy%$C|?%*GU7E;cgLyT{~83bYP=&vJ)q5dwvop^H2)& zXUXc~$&L(TGlZYAW;4VNVMmNtH3o_LRwD?!T~me=Vf5F8a&`tSE?Sey>XgGyihg4* zS06n6c+G>mInt0BubGN+HXAXWa(?gCPoIKyJNzTiPz`B=Om@Hq8l_W&MVUfCc}X@y zF_mmZBiK_6YO`n-HBcDk484`N+G$~$<-vR$x^T>z&wR$_t2o4|cv1T@!vMIipeEhc z2hF175oe0xEeh$3n>+IBQ4B#YS^`(oP7an9+vzlpnYKqHPq8(}jf#kGK zZp4R1aHnO2NbAHnINEg5X$AH)4qEZl6pCp>BD=D!mV`0|TIWb(Ub}~rw^|-1eIzuQ zZrEP3Y3nLKtGXO&9UH9ck`6kal_pyRdZVlrSK8-|zJd~(xO}wQ24dr(;hN8|bYz3R zast-g;5V@S&|wWPp=3CNXRsy&ZYcCcXxH|Zv#OFP`VNv|#DQQV#M3|%yN66cpi800 zj5jV*op8E*wkL+9qsEO#qLb(Bj`0DDTzX{K2K=)AjS&sewf4Dhyj_V~3sBHIu>l$zi;$FG#{(!=uYC8 zvEZuBTdp46e9h=p*9M!f8{2&Cm7Do(xQ+B^^k5byIk8fjjRh0Yd@Jtad^zqYA33k- zNAovJwHjIPO(TqT)ircYrhBY(^dR1REZDZhokAExRU8b@6vgb=rcDGx4Wc8 zfsSu-RF}~4Lu?9{Hf`K6zGr;bV0~K}n>XxmLEq>>csLdm(PFV_wnH>{gElW?=Wn|G z;4P!q587!iq<(Z)(o7Zhj0M+E#zjRc261V_etZ5pdJD;RJ{BbII5xlOsv9^2(8=sg z!%1+-O~ICpH*7G-;F_zh>E&m#I}@yg?Vn6Df$r#OSvHyw3sl-Bzws<(2umvwqU z>-eF5eC%*5&f-ohUiZq&HAS`8Z)z{MlH-RsLOXt_oN9ID?y$RZ1R{gUIKyTz5QMCA z3ubI=S6z2;|CKC1(`DhvMMZgc`I-4LMRY@7AXKouSR+2o#i=E?#GT3ESp2`cj7W0lT&=)x3tVeybx9s5K)g|>9#s-3Taxn)nW zgmKY%I8w@?|A-YRC*yIwHwFKjHQ($St}efI7+JlcB;v6NwzsyWP`1dJ}9-= zG#@S&#y%pUamQ?Dpac>sswBj2Icqm+%?A{!ZY-)xzDqTIyr~mr%x?S0I-*ZoPqL@9 ziOJX-&H_6{akiuSGT{vD7;<{jKd*4w2P<=Q2T>P$}vc-a104}3^~{uH>P$zb`( zl_QH`7B<5m?YG!TzrzgY;jL|Km^Da(*pMIMf?htCpPSDd%bg z+Y%NDAC}W}O~8+N+r%aZ*Itc9DWrH6+t`lZe;M!(2Xve21_&o{HO{++0Ex z>a%iqK8V1EIpIpsI>YixFzk~tReq9Sw#VII+uaS?hPy^*)8!`%tXF#M@M+B+;tuDT z+JF*3r7sg7xdBsueDBJxL~&G_0GhIzTzxWx?`f-muA6 z)Y?yAFVV`T*&EKsbCyH!g*2bPW{{Dgd1a1?hUOWmgYyj>T|7aTo#y0o1UB}`(*&c7 z8d#%>D5r~l5VtrNjCI|lOwfWb=8_|eWJvIq&h6WI+)7AAZ+44q_M^xyQWD#z?c)7JBOXCgmB_r$U81fPcURbt~VH7((A zg-gszWNd@#juZCwts#da+?1~zk*XBEqK6Fanm1mmWv~^rVTMM6xu{RDMTkrU9kgqq zSL9Tn&PNWiRt{(6A5PQ?AEm(^8~VW&?5MWRUTDsx^Bq~zq_@-~LtgA?^&(^-hz!ma zAdiv-#*k=;7S7$ntc!v5nlYliB5L!#(Ruz3szZ#}2zK+1Byk$yMlQo9hLd;PX{k*+ zHWIMBcJx!T{C*tP;P%s5x>(2X(2YOwu^m!TOvZCo1elXC+U%7`4NDrLED zpsnndp<>OR278YmlAOZM5RF1l;*o&;$buL_SPYd-EI-pxt|I49=40~Jh& zje!j0HetLM+_AcmjG4E83CGJ~BJTj#J5%t*(~UVR~7 zHKl^n=59w19+@^~f`7tJh>T*1ygr7PO|FfHNcK@Qt5N(h9D{Q_kLL?9 zYxQT#OL0-Qi2Kd} zyWGo@_4mft?|A(}nGsz!w*H-R^_iX1{d4smxSQqDJc-%Xx35|?{#!>Nm2)m%??y^y z!z3c7TOBPbK15hp21*^k*QGAGi527%6G^8F3Ad>khE8&5%`E)`sYR7^==KNa70hEG zg7M{}^WjuH7a-{^g=R7&h!cO8MRFyXr&vvsC`)Nr^$7_qQzrx;eyCNZQ0tXG$rO`R zEsFj!5`#sy7TIS)d2}v|OVuearqO`)ucmLYf4K&|tK<#a05Ofm;H0v47af#Gl~vNZ z@>G)?z-(7=g?*XVoilsT5tI8%8|Jm&F;{T%Z$NUQ8i{QZc=cIcpwEN<*_`4%O_T!5!qYqavhb)^2dy) z-!vE;y(ycvr>2U^{0M`ACHE3nZYP!+YtA-S(SjhZI_EwGEo++oqtg-`M7%QnDSCC@ zXpcrby{nga7o68|C?S~aQ_TMZ;`Lq9xH=QH@eKM{hTrpKZ-_G9P2q^>w6IcY6Gl^FZd55|;W^#z@e0(saDc zfNf%IvpvjNyUKylM=m-0`qx|jihrEo5xd~s;zgaWv2+*2a+^9(2}tud;;;~NTJcF{ zwUjk+f&0jnBa?PI4(RT{Xpq%A(^5;1690nFTKwh#Ll{$wL$V_rMGZuL;Qq16WkoPcti zpDRVR?hU(#5H6~E%(>aMCzaOMxkh&>VNg%vy!MD${@4=Ht~_O*qrNsKiKJ7P?<7hj z0vOaXs;lP`RYFfJWV@b_T37irBM{t>TcZGh%gmWwzQ|s31;fV=k+x*@rkbZv74Dnv3Y1nY*P6G8J_CKoWd zav4hbIf2)~YefymPitI-F1AiMF=Jc26qUzCY*o$$fQ?uD(Zgie&+JXrs#*mb1bvWb z2F%t4es~|%tW!~-Za(Lij~cs&HgBsv%HeUHKSvNpG-S>E;1%a>oEZ%4rM_<0_?rhV L^{Y4q`)mFmfH=W{ literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/az/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/az/LC_MESSAGES/django.po new file mode 100644 index 0000000000..929b2945ba --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/az/LC_MESSAGES/django.po @@ -0,0 +1,791 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Emin Mastizada , 2018,2020 +# Emin Mastizada , 2016 +# Konul Allahverdiyeva , 2016 +# Nicat Məmmədov , 2022 +# Nijat Mammadov, 2024 +# Sevdimali , 2024 +# Zulfugar Ismayilzadeh , 2017 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-05-22 11:46-0300\n" +"PO-Revision-Date: 2024-08-07 07:05+0000\n" +"Last-Translator: Sevdimali , 2024\n" +"Language-Team: Azerbaijani (http://app.transifex.com/django/django/language/" +"az/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: az\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "Seçilmiş \"%(verbose_name_plural)s\"ləri/ları sil" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "%(count)d %(items)s uğurla silindi." + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "%(name)s silinə bilməz" + +msgid "Are you sure?" +msgstr "Əminsinizmi?" + +msgid "Administration" +msgstr "Administrasiya" + +msgid "All" +msgstr "Hamısı" + +msgid "Yes" +msgstr "Hə" + +msgid "No" +msgstr "Yox" + +msgid "Unknown" +msgstr "Naməlum" + +msgid "Any date" +msgstr "İstənilən tarix" + +msgid "Today" +msgstr "Bu gün" + +msgid "Past 7 days" +msgstr "Son 7 gündə" + +msgid "This month" +msgstr "Bu ay" + +msgid "This year" +msgstr "Bu il" + +msgid "No date" +msgstr "Tarixi yoxdur" + +msgid "Has date" +msgstr "Tarixi mövcuddur" + +msgid "Empty" +msgstr "Boş" + +msgid "Not empty" +msgstr "Boş deyil" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" +"Lütfən, istifadəçi hesabı üçün doğru %(username)s və şifrə daxil edin. " +"Nəzərə alın ki, hər iki xana böyük-kiçik hərflərə həssasdırlar." + +msgid "Action:" +msgstr "Əməliyyat:" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "Daha bir %(verbose_name)s əlavə et" + +msgid "Remove" +msgstr "Yığışdır" + +msgid "Addition" +msgstr "Əlavə" + +msgid "Change" +msgstr "Dəyiş" + +msgid "Deletion" +msgstr "Silmə" + +msgid "action time" +msgstr "əməliyyat vaxtı" + +msgid "user" +msgstr "istifadəçi" + +msgid "content type" +msgstr "məzmun növü" + +msgid "object id" +msgstr "obyekt id" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/library/functions.html#repr) +msgid "object repr" +msgstr "obyekt repr" + +msgid "action flag" +msgstr "əməliyyat bayrağı" + +msgid "change message" +msgstr "dəyişmə mesajı" + +msgid "log entry" +msgstr "loq yazısı" + +msgid "log entries" +msgstr "loq yazıları" + +#, python-format +msgid "Added “%(object)s”." +msgstr "“%(object)s” əlavə edildi." + +#, python-format +msgid "Changed “%(object)s” — %(changes)s" +msgstr "“%(object)s” dəyişdirildi — %(changes)s" + +#, python-format +msgid "Deleted “%(object)s.”" +msgstr "“%(object)s” silindi." + +msgid "LogEntry Object" +msgstr "LogEntry obyekti" + +#, python-brace-format +msgid "Added {name} “{object}”." +msgstr "{name} “{object}” əlavə edildi." + +msgid "Added." +msgstr "Əlavə edildi." + +msgid "and" +msgstr "və" + +#, python-brace-format +msgid "Changed {fields} for {name} “{object}”." +msgstr "{name} “{object}” üçün {fields} dəyişdirildi." + +#, python-brace-format +msgid "Changed {fields}." +msgstr "{fields} dəyişdirildi." + +#, python-brace-format +msgid "Deleted {name} “{object}”." +msgstr "{name} “{object}” silindi." + +msgid "No fields changed." +msgstr "Heç bir sahə dəyişmədi." + +msgid "None" +msgstr "Heç biri" + +msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." +msgstr "" +"Birdən çox seçmək üçün “Control” və ya Mac üçün “Command” düyməsini basılı " +"tutun." + +msgid "Select this object for an action - {}" +msgstr "Əməliyyat üçün bu obyekti seçin - {}" + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully." +msgstr "{name} “{obj}” uğurla əlavə edildi." + +msgid "You may edit it again below." +msgstr "Bunu aşağıda təkrar redaktə edə bilərsiz." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was added successfully. You may add another {name} below." +msgstr "" +"{name} “{obj}” uğurla əlavə edildi. Aşağıdan başqa bir {name} əlavə edə " +"bilərsiz." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may edit it again below." +msgstr "" +"{name} “{obj}” uğurla dəyişdirildi. Təkrar aşağıdan dəyişdirə bilərsiz." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may add another {name} " +"below." +msgstr "" +"{name} “{obj}” uğurla dəyişdirildi. Aşağıdan başqa bir {name} əlavə edə " +"bilərsiz." + +#, python-brace-format +msgid "The {name} “{obj}” was changed successfully." +msgstr "{name} “{obj}” uğurla dəyişdirildi." + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" +"Elementlər üzərində əməliyyat aparmaq üçün, siz onları seçməlisiniz. Heç bir " +"element dəyişmədi." + +msgid "No action selected." +msgstr "Heç bir əməliyyat seçilmədi." + +#, python-format +msgid "The %(name)s “%(obj)s” was deleted successfully." +msgstr "%(name)s “%(obj)s” uğurla silindi." + +#, python-format +msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" +msgstr "“%(key)s” ID nömrəli %(name)s mövcud deyil. Bəlkə silinib?" + +#, python-format +msgid "Add %s" +msgstr "%s əlavə et" + +#, python-format +msgid "Change %s" +msgstr "%s dəyiş" + +#, python-format +msgid "View %s" +msgstr "%s gör" + +msgid "Database error" +msgstr "Verilənlər bazası xətası" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "%(count)s %(name)s uğurlu dəyişdirildi." +msgstr[1] "%(count)s %(name)s uğurla dəyişdirildi." + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "%(total_count)s seçili" +msgstr[1] "Bütün %(total_count)s seçildi" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "%(cnt)s-dan/dən 0 seçilib" + +#, python-format +msgid "Change history: %s" +msgstr "Dəyişmə tarixi: %s" + +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "%(class_name)s %(instance)s" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" +"%(class_name)s %(instance)s silinməsi %(related_objects)s obyektlərinin də " +"silinməsinə gətirib çıxaracaq" + +msgid "Django site admin" +msgstr "Django sayt administratoru" + +msgid "Django administration" +msgstr "Django administrasiya" + +msgid "Site administration" +msgstr "Sayt administrasiyası" + +msgid "Log in" +msgstr "Daxil ol" + +#, python-format +msgid "%(app)s administration" +msgstr "%(app)s administrasiyası" + +msgid "Page not found" +msgstr "Səhifə tapılmadı" + +msgid "We’re sorry, but the requested page could not be found." +msgstr "Üzr istəyirik, amma sorğulanan səhifə tapılmadı." + +msgid "Home" +msgstr "Ev" + +msgid "Server error" +msgstr "Serverdə xəta" + +msgid "Server error (500)" +msgstr "Serverdə xəta (500)" + +msgid "Server Error (500)" +msgstr "Serverdə xəta (500)" + +msgid "" +"There’s been an error. It’s been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" +"Xəta baş verdi. Problem sayt administratorlarına e-poçt vasitəsi ilə " +"bildirildi və qısa bir zamanda həll olunacaq. Anlayışınız üçün təşəkkür " +"edirik." + +msgid "Run the selected action" +msgstr "Seçilən əməliyyatı yerinə yetir" + +msgid "Go" +msgstr "İrəli" + +msgid "Click here to select the objects across all pages" +msgstr "Bütün səhifələr üzrə obyektləri seçmək üçün bura klikləyin" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "Hamısını seç (%(total_count)s %(module_name)s) " + +msgid "Clear selection" +msgstr "Seçimi təmizlə" + +msgid "Breadcrumbs" +msgstr "Menyu sətri" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "%(name)s tətbiqetməsindəki modellər" + +msgid "Add" +msgstr "Əlavə et" + +msgid "View" +msgstr "Bax" + +msgid "You don’t have permission to view or edit anything." +msgstr "Heç nəyə baxmağa və ya dəyişməyə icazəniz yoxdur." + +msgid "" +"First, enter a username and password. Then, you’ll be able to edit more user " +"options." +msgstr "" +"Əvvəlcə istifacəçi adı və şifrəni daxil edin. Daha sonra siz daha çox " +"istifadəçi seçimlərinə düzəliş edə biləcəksiniz." + +msgid "Enter a username and password." +msgstr "İstifadəçi adını və şifrəni daxil edin." + +msgid "Change password" +msgstr "Şifrəni dəyiş" + +msgid "Set password" +msgstr "Şifrə təyin et" + +msgid "Please correct the error below." +msgid_plural "Please correct the errors below." +msgstr[0] "Lütfən, aşağıdakı xətanı düzəldin." +msgstr[1] "Lütfən, aşağıdakı xətaları düzəldin." + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "%(username)s istifadəçisi üçün yeni şifrə daxil edin." + +msgid "" +"This action will enable password-based authentication for " +"this user." +msgstr "" +"Bu əməliyyat bu istifadəçi üçün şifrə əsaslı autentifikasiyanı aktiv " +"edəcək." + +msgid "Disable password-based authentication" +msgstr "Şifrə əsaslı autentifikasiyanı ləğv elə." + +msgid "Enable password-based authentication" +msgstr "Şifrə əsaslı autentifikasiyanı aktivləşdir." + +msgid "Skip to main content" +msgstr "Əsas məzmuna keç" + +msgid "Welcome," +msgstr "Xoş gördük," + +msgid "View site" +msgstr "Sayta bax" + +msgid "Documentation" +msgstr "Dokumentasiya" + +msgid "Log out" +msgstr "Çıx" + +#, python-format +msgid "Add %(name)s" +msgstr "%(name)s əlavə et" + +msgid "History" +msgstr "Tarix" + +msgid "View on site" +msgstr "Saytda bax" + +msgid "Filter" +msgstr "Süzgəc" + +msgid "Hide counts" +msgstr "Sayı gizlət" + +msgid "Show counts" +msgstr "Sayı göstər" + +msgid "Clear all filters" +msgstr "Bütün filterləri təmizlə" + +msgid "Remove from sorting" +msgstr "Sıralamadan çıxar" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "Sıralama prioriteti: %(priority_number)s" + +msgid "Toggle sorting" +msgstr "Sıralamanı çevir" + +msgid "Toggle theme (current theme: auto)" +msgstr "Görünüşü dəyiş (halhazırkı: avtomatik)" + +msgid "Toggle theme (current theme: light)" +msgstr "Görünüşü dəyiş (halhazırkı: aydın)" + +msgid "Toggle theme (current theme: dark)" +msgstr "Görünüşü dəyiş (halhazırkı: qaranlıq)" + +msgid "Delete" +msgstr "Sil" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" +"%(object_name)s \"%(escaped_object)s\" obyektini sildikdə onun bağlı olduğu " +"obyektlər də silinməlidir. Ancaq sizin hesabın aşağıdakı tip obyektləri " +"silməyə səlahiyyəti çatmır:" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" +"%(object_name)s \"%(escaped_object)s\" obyektini silmək üçün aşağıdakı " +"qorunan obyektlər də silinməlidir:" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" +"%(object_name)s \"%(escaped_object)s\" obyektini silməkdə əminsiniz? Ona " +"bağlı olan aşağıdakı obyektlər də silinəcək:" + +msgid "Objects" +msgstr "Obyektlər" + +msgid "Yes, I’m sure" +msgstr "Bəli, əminəm" + +msgid "No, take me back" +msgstr "Xeyr, geri qayıt" + +msgid "Delete multiple objects" +msgstr "Bir neçə obyekt sil" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" +"%(objects_name)s obyektini silmək üçün ona bağlı obyektlər də silinməlidir. " +"Ancaq sizin hesabınızın aşağıdakı tip obyektləri silmək səlahiyyətinə malik " +"deyil:" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" +"%(objects_name)s obyektini silmək üçün aşağıdakı qorunan obyektlər də " +"silinməlidir:" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" +"Seçdiyiniz %(objects_name)s obyektini silməkdə əminsiniz? Aşağıdakı bütün " +"obyektlər və ona bağlı digər obyektlər də silinəcək:" + +msgid "Delete?" +msgstr "Silinsin?" + +#, python-format +msgid " By %(filter_title)s " +msgstr " %(filter_title)s görə " + +msgid "Summary" +msgstr "İcmal" + +msgid "Recent actions" +msgstr "Son əməliyyatlar" + +msgid "My actions" +msgstr "Mənim əməliyyatlarım" + +msgid "None available" +msgstr "Heç nə yoxdur" + +msgid "Added:" +msgstr "Əlavə olunub:" + +msgid "Changed:" +msgstr "Dəyişdirilib:" + +msgid "Deleted:" +msgstr "Silinib:" + +msgid "Unknown content" +msgstr "Naməlum məzmun" + +msgid "" +"Something’s wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" +"Verilənlər bazanızın quraşdırılması ilə bağlı problem var. Müvafiq " +"cədvəllərinin yaradıldığından və verilənlər bazasının müvafiq istifadəçi " +"tərəfindən oxuna biləcəyindən əmin olun." + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" +"%(username)s olaraq daxil olmusunuz, amma bu səhifəyə icazəniz yoxdur. Başqa " +"bir hesaba daxil olmaq istərdiniz?" + +msgid "Forgotten your password or username?" +msgstr "Şifrə və ya istifadəçi adını unutmusuz?" + +msgid "Toggle navigation" +msgstr "Naviqasiyanı dəyiş" + +msgid "Sidebar" +msgstr "Yan panel" + +msgid "Start typing to filter…" +msgstr "Filterləmək üçün yazın..." + +msgid "Filter navigation items" +msgstr "Naviqasiya elementlərini filterlə" + +msgid "Date/time" +msgstr "Tarix/vaxt" + +msgid "User" +msgstr "İstifadəçi" + +msgid "Action" +msgstr "Əməliyyat" + +msgid "entry" +msgid_plural "entries" +msgstr[0] "daxiletmə" +msgstr[1] "daxiletmələr" + +msgid "" +"This object doesn’t have a change history. It probably wasn’t added via this " +"admin site." +msgstr "" +"Bu obyektin dəyişiklik tarixçəsi yoxdur. Yəqin ki, bu admin saytı vasitəsilə " +"əlavə olunmayıb." + +msgid "Show all" +msgstr "Hamısını göstər" + +msgid "Save" +msgstr "Yadda saxla" + +msgid "Popup closing…" +msgstr "Qəfil pəncərə qapadılır…" + +msgid "Search" +msgstr "Axtar" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "%(counter)s nəticə" +msgstr[1] "%(counter)s nəticə" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "Hamısı birlikdə %(full_result_count)s" + +msgid "Save as new" +msgstr "Yenisi kimi yadda saxla" + +msgid "Save and add another" +msgstr "Yadda saxla və yenisini əlavə et" + +msgid "Save and continue editing" +msgstr "Yadda saxla və redaktəyə davam et" + +msgid "Save and view" +msgstr "Yadda saxla və bax" + +msgid "Close" +msgstr "Bağla" + +#, python-format +msgid "Change selected %(model)s" +msgstr "Seçilmiş %(model)s dəyişdir" + +#, python-format +msgid "Add another %(model)s" +msgstr "Başqa %(model)s əlavə et" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "Seçilmiş %(model)s sil" + +#, python-format +msgid "View selected %(model)s" +msgstr "Bax: seçilmiş %(model)s " + +msgid "Thanks for spending some quality time with the web site today." +msgstr "Bu gün veb saytla keyfiyyətli vaxt keçirdiyiniz üçün təşəkkür edirik." + +msgid "Log in again" +msgstr "Yenidən daxil ol" + +msgid "Password change" +msgstr "Şifrəni dəyişmək" + +msgid "Your password was changed." +msgstr "Sizin şifrəniz dəyişdirildi." + +msgid "" +"Please enter your old password, for security’s sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" +"Zəhmət olmasa təhlükəsizlik naminə köhnə şifrənizi daxil edin və sonra yeni " +"şifrənizi iki dəfə daxil edin ki, düzgün daxil yazdığınızı yoxlaya bilək." + +msgid "Change my password" +msgstr "Şifrəmi dəyiş" + +msgid "Password reset" +msgstr "Şifrənin sıfırlanması" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "Yeni şifrə artıq qüvvədədir. Yenidən daxil ola bilərsiniz." + +msgid "Password reset confirmation" +msgstr "Şifrə sıfırlanmasının təsdiqi" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "Yeni şifrəni iki dəfə daxil edin ki, səhv etmədiyinizə əmin olaq." + +msgid "New password:" +msgstr "Yeni şifrə:" + +msgid "Confirm password:" +msgstr "Yeni şifrə (bir daha):" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"Şifrənin sıfırlanması üçün olan keçid, yəqin ki, artıq istifadə olunub. " +"Şifrəni sıfırlamaq üçün yenə müraciət edin." + +msgid "" +"We’ve emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" +"Şifrəni təyin etmək üçün lazım olan addımlar sizə göndərildi (əgər bu e-poçt " +"ünvanı ilə hesab varsa təbii ki). Elektron məktub qısa bir müddət ərzində " +"sizə çatacaq." + +msgid "" +"If you don’t receive an email, please make sure you’ve entered the address " +"you registered with, and check your spam folder." +msgstr "" +"E-poçt gəlməsə, qeydiyyatdan keçdiyiniz e-poçt ünvanını doğru daxil " +"etdiyinizə əmin olun və spam qovluğunuzu yoxlayın." + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" +"%(site_name)s saytında şifrəni yeniləmək istədiyinizə görə bu məktubu " +"göndərdik." + +msgid "Please go to the following page and choose a new password:" +msgstr "Növbəti səhifəyə keçid alın və yeni şifrəni seçin:" + +msgid "Your username, in case you’ve forgotten:" +msgstr "İstifadəçi adınız, əgər unutmusunuzsa:" + +msgid "Thanks for using our site!" +msgstr "Bizim saytdan istifadə etdiyiniz üçün təşəkkür edirik!" + +#, python-format +msgid "The %(site_name)s team" +msgstr "%(site_name)s komandası" + +msgid "" +"Forgotten your password? Enter your email address below, and we’ll email " +"instructions for setting a new one." +msgstr "" +"Şifrəni unutmusuz? Epoçt ünvanınızı daxil edin və biz sizə yeni şifrə təyin " +"etmək üçün nə etmək lazım olduğunu göndərəcəyik." + +msgid "Email address:" +msgstr "E-poçt:" + +msgid "Reset my password" +msgstr "Şifrəmi sıfırla" + +msgid "Select all objects on this page for an action" +msgstr "Əməliyyat üçün bu səhifədəki bütün obyektləri seçin" + +msgid "All dates" +msgstr "Bütün tarixlərdə" + +#, python-format +msgid "Select %s" +msgstr "%s seç" + +#, python-format +msgid "Select %s to change" +msgstr "%s dəyişmək üçün seç" + +#, python-format +msgid "Select %s to view" +msgstr "Görmək üçün %s seçin" + +msgid "Date:" +msgstr "Tarix:" + +msgid "Time:" +msgstr "Vaxt:" + +msgid "Lookup" +msgstr "Sorğu" + +msgid "Currently:" +msgstr "Hazırda:" + +msgid "Change:" +msgstr "Dəyişdir:" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/az/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/az/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..dfe8ff49a1caba87c63380b917a4f7f0f588bc0d GIT binary patch literal 5225 zcmcJSU2I%O6~~9NKymp@p%iFgYMPKV*=xs5oMcls@ki_=#CC``O#>Ct?B4P2Wbd78 z-#feZH39`52rm%vQN*gK0U^i(57ZK>sALe*ZVD>_4+sQLmEfu3g%>2Akocduv+;WE zh5+KqbANZvoS8Xu=FHjgYrAsKGdw3z9-(p{W0#3JyzpFm3u8yXFMw|aUvc~eh(GpA zSN{$84%C0|>VI~89egL`e{=k&;{zCM0P+ulZwDU-KMH!_9&ir4AFMlm9>gEJju)Bs zRq$=#H(dP%$M1reg8cw|Gx#Hr#`&>p|0(z^>OTXE;6oUM+G`-`8<56b#S1Fz8c23t z2g%N_gEaqlz;A-z1HT52Vi215S0Ih|TfB~ge*~%DgLu6NJ_>#t+yIxrix~U^;H%)n z;A`NAz<)UIdH_B`Jr6zv&NzMsq<(eq{oq$X>i2z+^nVV182l6XAozF3`>{!+{|HF( z5m%oE--r5hAkDK3rf*{G%iv+u?|WC~kE4z!Kw9s#tDgfg1zP}Vy;nf;lL9dW)2{uq zAjQLV@IB!3uKq)i=J^RY1^yKz{|~)8<0wde9RuNVHtpndAlY%z@zWs9D?r-MMG!-= zt047HK?!~l6yWP1&2tvU&^Vt2Y5Yqd*?9$o3JXE%|2fAmfiIwb1El@j|K6-$8>Df5 z4W0sj=j0FX%Jew+2gqLmzXjgFCXk(b;C$i}j-KO)<0we$Dmb2S@+rsDj^`ZDI~GA~ zBYW2IQy`8wd(PFbI0`2(J1#moRM|dyxrg?0(0v~S$tH@!$51|w0(Y=OD379eC?7*1 zKR%5@@t8+JXxj&_v9U^($59F>dr>Gp>7jV)J}2D=#TGsLGuT+=?wde4>`4?_<0#5e z6xz@3Lwk7)h0f+vPKd3rF|ym$$3Tk3kGMLWOSr@C4~d>YIe{`l6+9F_^iZCpX9$I2 z-~h@V6pEW+6gr=jXNNooTRJq1Y z#LIR#E`k7JE)0(_i^nFr?Xe7_hP3Ta&3bRDP06whOEPBDvJ}@voU&;Z7}QTIU$V18 zTiMxqkg~INE!nJy%T>HnHmiKCDpkYgqDbRqWPx9f>RiOMSYD0lF&9-SeDY@^u?4wgGQEW=6pK}raQvC7 z}Dn6=q?j)N2BiS^QJ{E3jRlnG8g?jiy|N4QH;Wf>}JJuNn*)} zR73uwRpWcnMj7{`m25>j`jcIj31X3kqsXcX#BujT!f9NTjf(UE>%Y_~=)YWR8XgKC zA+KpCgsw=OX$>2E)lhz21eje0eqy}?bp-5E9F=fPQyxT--GIdi(F#w`z|nPM&^;EY zlMoYA%K}-GwRv|p4@!Kic?tUZB#ZAD2%l^-kf+jk{CprqBD2`w^PeE^QU9*>IQLp& zG>BuFkL#IrnQM9stLtpiogE^5Wo(-2dgjccHJOI%akRC#f20)!6G}J|QDQtMN~Ksf zJRU~cRJl!tIlTMjHa+H$CHoq>`6!2vzNT)5%HgB0$>pgW*x!Q8l|%a4Ce{+-er=oG za(MTtBi})q_DScES1EVq@X^=ga!L;DYq^tCa`iOt7d2^5K14XLmDU2j9n~F=Z|jc(Oio%&Y#ld$Vb{P z@S`PV?wDHOVr}4jP>)5BpN`@%DR8}HtI62Nah`pS?bZCTF@A90@qs&+jG>H0C-+6Zf{4SQiY*J-wIHn=qSS!>;5MG>o2PM=D%XT+-M{cf)# z&)SyLB5bcG?RD)$wzCRCb^9jWLMB=pCL5n8Dizf&y4ceiZ*8=0k%nonF9#yUNZ!^l zwszFW@;x(RrZ*a7O4dY)?kx@Ymo2n5)+(K5na!xRpwl$$vd|5j30OgH_-{>9LBC}# zM7xIZ3ZjWEh?1zn%GU=lEUe#Mgp9B^mbi5KGAwPZEe)Jtl~3Um%?OyAcH<2U!@VpF1>eCmZ2P8hnSFL8neo(y!|D6j zb}|dj2|~&oB`>p+!l#>70wf^Jpm|Y*BHU_gEwE#!N_)J=M)(>5UW-LcF$w38X9C5s zgJrRt, 2011-2012 +# Emin Mastizada , 2016,2020 +# Emin Mastizada , 2016 +# Nicat Məmmədov , 2022 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2022-05-17 05:26-0500\n" +"PO-Revision-Date: 2022-07-25 07:59+0000\n" +"Last-Translator: Nicat Məmmədov \n" +"Language-Team: Azerbaijani (http://www.transifex.com/django/django/language/" +"az/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: az\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, javascript-format +msgid "Available %s" +msgstr "Mümkün %s" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" +"Bu, mümkün %s siyahısıdır. Onlardan bir neçəsini qarşısındakı xanaya işarə " +"qoymaq və iki xana arasındakı \"Seç\"i tıqlamaqla seçmək olar." + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "Bu xanaya yazmaqla mümkün %s siyahısını filtrləyə bilərsiniz." + +msgid "Filter" +msgstr "Süzgəc" + +msgid "Choose all" +msgstr "Hamısını seç" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "Bütün %s siyahısını seçmək üçün tıqlayın." + +msgid "Choose" +msgstr "Seç" + +msgid "Remove" +msgstr "Yığışdır" + +#, javascript-format +msgid "Chosen %s" +msgstr "Seçilmiş %s" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" +"Bu, seçilmiş %s siyahısıdır. Onlardan bir neçəsini aşağıdakı xanaya işarə " +"qoymaq və iki xana arasındakı \"Sil\"i tıqlamaqla silmək olar." + +msgid "Remove all" +msgstr "Hamısını sil" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "Seçilmiş %s siyahısının hamısını silmək üçün tıqlayın." + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "%(sel)s / %(cnt)s seçilib" +msgstr[1] "%(sel)s / %(cnt)s seçilib" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" +"Bəzi sahələrdə etdiyiniz dəyişiklikləri hələ yadda saxlamamışıq. Əgər " +"əməliyyatı işə salsanız, dəyişikliklər əldən gedəcək." + +msgid "" +"You have selected an action, but you haven’t saved your changes to " +"individual fields yet. Please click OK to save. You’ll need to re-run the " +"action." +msgstr "" +"Əməliyyat seçmisiniz, amma fərdi sahələrdəki dəyişiklikləriniz hələ də yadda " +"saxlanılmayıb. Saxlamaq üçün lütfən Tamam düyməsinə klikləyin. Əməliyyatı " +"təkrar işlətməli olacaqsınız." + +msgid "" +"You have selected an action, and you haven’t made any changes on individual " +"fields. You’re probably looking for the Go button rather than the Save " +"button." +msgstr "" +"Əməliyyat seçmisiniz və fərdi sahələrdə dəyişiklər etməmisiniz. Böyük " +"ehtimal Saxla düyməsi yerinə Get düyməsinə ehtiyyacınız var." + +msgid "Now" +msgstr "İndi" + +msgid "Midnight" +msgstr "Gecə yarısı" + +msgid "6 a.m." +msgstr "6 a.m." + +msgid "Noon" +msgstr "Günorta" + +msgid "6 p.m." +msgstr "6 p.m." + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "Diqqət: Server vaxtından %s saat irəlidəsiniz." +msgstr[1] "Diqqət: Server vaxtından %s saat irəlidəsiniz." + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "Diqqət: Server vaxtından %s saat geridəsiniz." +msgstr[1] "Diqqət: Server vaxtından %s saat geridəsiniz." + +msgid "Choose a Time" +msgstr "Vaxt Seçin" + +msgid "Choose a time" +msgstr "Vaxtı seçin" + +msgid "Cancel" +msgstr "Ləğv et" + +msgid "Today" +msgstr "Bu gün" + +msgid "Choose a Date" +msgstr "Tarix Seçin" + +msgid "Yesterday" +msgstr "Dünən" + +msgid "Tomorrow" +msgstr "Sabah" + +msgid "January" +msgstr "Yanvar" + +msgid "February" +msgstr "Fevral" + +msgid "March" +msgstr "Mart" + +msgid "April" +msgstr "Aprel" + +msgid "May" +msgstr "May" + +msgid "June" +msgstr "İyun" + +msgid "July" +msgstr "İyul" + +msgid "August" +msgstr "Avqust" + +msgid "September" +msgstr "Sentyabr" + +msgid "October" +msgstr "Oktyabr" + +msgid "November" +msgstr "Noyabr" + +msgid "December" +msgstr "Dekabr" + +msgctxt "abbrev. month January" +msgid "Jan" +msgstr "Yan" + +msgctxt "abbrev. month February" +msgid "Feb" +msgstr "Fev" + +msgctxt "abbrev. month March" +msgid "Mar" +msgstr "Mar" + +msgctxt "abbrev. month April" +msgid "Apr" +msgstr "Apr" + +msgctxt "abbrev. month May" +msgid "May" +msgstr "May" + +msgctxt "abbrev. month June" +msgid "Jun" +msgstr "İyn" + +msgctxt "abbrev. month July" +msgid "Jul" +msgstr "İyl" + +msgctxt "abbrev. month August" +msgid "Aug" +msgstr "Avq" + +msgctxt "abbrev. month September" +msgid "Sep" +msgstr "Sen" + +msgctxt "abbrev. month October" +msgid "Oct" +msgstr "Okt" + +msgctxt "abbrev. month November" +msgid "Nov" +msgstr "Noy" + +msgctxt "abbrev. month December" +msgid "Dec" +msgstr "Dek" + +msgctxt "one letter Sunday" +msgid "S" +msgstr "B" + +msgctxt "one letter Monday" +msgid "M" +msgstr "B" + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "Ç" + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "Ç" + +msgctxt "one letter Thursday" +msgid "T" +msgstr "C" + +msgctxt "one letter Friday" +msgid "F" +msgstr "C" + +msgctxt "one letter Saturday" +msgid "S" +msgstr "Ş" + +msgid "" +"You have already submitted this form. Are you sure you want to submit it " +"again?" +msgstr "" + +msgid "Show" +msgstr "Göstər" + +msgid "Hide" +msgstr "Gizlət" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/be/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/be/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..f23565c180eeaa0a3919ffc83b28895045f22042 GIT binary patch literal 23275 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 DsTxhm literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/be/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/be/LC_MESSAGES/django.po new file mode 100644 index 0000000000..4904d355c2 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/be/LC_MESSAGES/django.po @@ -0,0 +1,791 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Viktar Palstsiuk , 2015 +# znotdead , 2016-2017,2019-2021,2023-2024 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-05-22 11:46-0300\n" +"PO-Revision-Date: 2024-08-07 07:05+0000\n" +"Last-Translator: znotdead , " +"2016-2017,2019-2021,2023-2024\n" +"Language-Team: Belarusian (http://app.transifex.com/django/django/language/" +"be/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: be\n" +"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || " +"(n%100>=11 && n%100<=14)? 2 : 3);\n" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "Выдаліць абраныя %(verbose_name_plural)s" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "Выдалілі %(count)d %(items)s." + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "Не ўдаецца выдаліць %(name)s" + +msgid "Are you sure?" +msgstr "Ці ўпэўненыя вы?" + +msgid "Administration" +msgstr "Адміністрацыя" + +msgid "All" +msgstr "Усе" + +msgid "Yes" +msgstr "Так" + +msgid "No" +msgstr "Не" + +msgid "Unknown" +msgstr "Невядома" + +msgid "Any date" +msgstr "Хоць-якая дата" + +msgid "Today" +msgstr "Сёньня" + +msgid "Past 7 days" +msgstr "Апошні тыдзень" + +msgid "This month" +msgstr "Гэты месяц" + +msgid "This year" +msgstr "Гэты год" + +msgid "No date" +msgstr "Няма даты" + +msgid "Has date" +msgstr "Мае дату" + +msgid "Empty" +msgstr "Пусты" + +msgid "Not empty" +msgstr "Не пусты" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" +"Калі ласка, увядзіце правільны %(username)s і пароль для службовага рахунку. " +"Адзначым, што абодва палі могуць быць адчувальныя да рэгістра." + +msgid "Action:" +msgstr "Дзеяньне:" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "Дадаць яшчэ %(verbose_name)s" + +msgid "Remove" +msgstr "Прыбраць" + +msgid "Addition" +msgstr "Дапаўненьне" + +msgid "Change" +msgstr "Зьмяніць" + +msgid "Deletion" +msgstr "Выдалленне" + +msgid "action time" +msgstr "час дзеяньня" + +msgid "user" +msgstr "карыстальнік" + +msgid "content type" +msgstr "від змесціва" + +msgid "object id" +msgstr "нумар аб’екта" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/library/functions.html#repr) +msgid "object repr" +msgstr "прадстаўленьне аб’екта" + +msgid "action flag" +msgstr "від дзеяньня" + +msgid "change message" +msgstr "паведамленьне пра зьмену" + +msgid "log entry" +msgstr "запіс у справаздачы" + +msgid "log entries" +msgstr "запісы ў справаздачы" + +#, python-format +msgid "Added “%(object)s”." +msgstr "Дадалі “%(object)s”." + +#, python-format +msgid "Changed “%(object)s” — %(changes)s" +msgstr "Зьмянілі «%(object)s» — %(changes)s" + +#, python-format +msgid "Deleted “%(object)s.”" +msgstr "Выдалілі «%(object)s»." + +msgid "LogEntry Object" +msgstr "Запіс у справаздачы" + +#, python-brace-format +msgid "Added {name} “{object}”." +msgstr "Дадалі {name} “{object}”." + +msgid "Added." +msgstr "Дадалі." + +msgid "and" +msgstr "і" + +#, python-brace-format +msgid "Changed {fields} for {name} “{object}”." +msgstr "Змянілі {fields} для {name} “{object}”." + +#, python-brace-format +msgid "Changed {fields}." +msgstr "Зьмянілі {fields}." + +#, python-brace-format +msgid "Deleted {name} “{object}”." +msgstr "Выдалілі {name} “{object}”." + +msgid "No fields changed." +msgstr "Палі не зьмяняліся." + +msgid "None" +msgstr "Няма" + +msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." +msgstr "" +"Утрымлівайце націснутай кнопку“Control”, або “Command” на Mac, каб вылучыць " +"больш за адзін." + +msgid "Select this object for an action - {}" +msgstr "Абярыце гэты аб'ект для дзеяньня - {}" + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully." +msgstr "Пасьпяхова дадалі {name} “{obj}”." + +msgid "You may edit it again below." +msgstr "Вы можаце зноўку правіць гэта ніжэй." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was added successfully. You may add another {name} below." +msgstr "Пасьпяхова дадалі {name} \"{obj}\". Ніжэй можна дадаць іншы {name}." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may edit it again below." +msgstr "Пасьпяхова зьмянілі {name} \"{obj}\". Ніжэй яго можна зноўку правіць." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may add another {name} " +"below." +msgstr "Пасьпяхова зьмянілі {name} \"{obj}\". Ніжэй можна дадаць іншы {name}." + +#, python-brace-format +msgid "The {name} “{obj}” was changed successfully." +msgstr "Пасьпяхова зьмянілі {name} \"{obj}\"." + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" +"Каб нешта рабіць, трэба спачатку абраць, з чым гэта рабіць. Нічога не " +"зьмянілася." + +msgid "No action selected." +msgstr "Не абралі дзеяньняў." + +#, python-format +msgid "The %(name)s “%(obj)s” was deleted successfully." +msgstr "Пасьпяхова выдалілі %(name)s «%(obj)s»." + +#, python-format +msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" +msgstr "%(name)s з ID \"%(key)s\" не існуе. Магчыма гэта было выдалена раней?" + +#, python-format +msgid "Add %s" +msgstr "Дадаць %s" + +#, python-format +msgid "Change %s" +msgstr "Зьмяніць %s" + +#, python-format +msgid "View %s" +msgstr "Праглядзець %s" + +msgid "Database error" +msgstr "База зьвестак дала хібу" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "Зьмянілі %(count)s %(name)s." +msgstr[1] "Зьмянілі %(count)s %(name)s." +msgstr[2] "Зьмянілі %(count)s %(name)s." +msgstr[3] "Зьмянілі %(count)s %(name)s." + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "Абралі %(total_count)s" +msgstr[1] "Абралі ўсе %(total_count)s" +msgstr[2] "Абралі ўсе %(total_count)s" +msgstr[3] "Абралі ўсе %(total_count)s" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "Абралі 0 аб’ектаў з %(cnt)s" + +#, python-format +msgid "Change history: %s" +msgstr "Гісторыя зьменаў: %s" + +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "%(class_name)s %(instance)s" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" +"Каб выдаліць %(class_name)s %(instance)s, трэба выдаліць і зьвязаныя " +"абароненыя аб’екты: %(related_objects)s" + +msgid "Django site admin" +msgstr "Кіраўнічая пляцоўка «Джэнґа»" + +msgid "Django administration" +msgstr "Кіраваць «Джэнґаю»" + +msgid "Site administration" +msgstr "Кіраваць пляцоўкаю" + +msgid "Log in" +msgstr "Увайсьці" + +#, python-format +msgid "%(app)s administration" +msgstr "Адміністрацыя %(app)s" + +msgid "Page not found" +msgstr "Бачыну не знайшлі" + +msgid "We’re sorry, but the requested page could not be found." +msgstr "На жаль, запытаную бачыну немагчыма знайсьці." + +msgid "Home" +msgstr "Пачатак" + +msgid "Server error" +msgstr "Паслужнік даў хібу" + +msgid "Server error (500)" +msgstr "Паслужнік даў хібу (памылка 500)" + +msgid "Server Error (500)" +msgstr "Паслужнік даў хібу (памылка 500)" + +msgid "" +"There’s been an error. It’s been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" +"Адбылася памылка. Паведамленне пра памылку было адаслана адміністратарам " +"сайту па электроннай пошце і яна павінна быць выпраўлена ў бліжэйшы час. " +"Дзякуй за ваша цярпенне." + +msgid "Run the selected action" +msgstr "Выканаць абранае дзеяньне" + +msgid "Go" +msgstr "Выканаць" + +msgid "Click here to select the objects across all pages" +msgstr "Каб абраць аб’екты на ўсіх бачынах, націсьніце сюды" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "Абраць усе %(total_count)s %(module_name)s" + +msgid "Clear selection" +msgstr "Не абіраць нічога" + +msgid "Breadcrumbs" +msgstr "Навігацыйны ланцужок" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "Мадэлі ў %(name)s праграме" + +msgid "Add" +msgstr "Дадаць" + +msgid "View" +msgstr "Праглядзець" + +msgid "You don’t have permission to view or edit anything." +msgstr "Вы ня маеце дазволу праглядаць ці нешта зьмяняць." + +msgid "" +"First, enter a username and password. Then, you’ll be able to edit more user " +"options." +msgstr "" +"Спачатку пазначце імя карыстальніка ды пароль. Потым можна будзе наставіць " +"іншыя можнасьці." + +msgid "Enter a username and password." +msgstr "Пазначце імя карыстальніка ды пароль." + +msgid "Change password" +msgstr "Зьмяніць пароль" + +msgid "Set password" +msgstr "Усталяваць пароль" + +msgid "Please correct the error below." +msgid_plural "Please correct the errors below." +msgstr[0] "Калі ласка, выпраўце памылкy, адзначаную ніжэй." +msgstr[1] "Калі ласка, выпраўце памылкі, адзначаныя ніжэй." +msgstr[2] "Калі ласка, выпраўце памылкі, адзначаныя ніжэй." +msgstr[3] "Калі ласка, выпраўце памылкі, адзначаныя ніжэй." + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "Пазначце пароль для карыстальніка «%(username)s»." + +msgid "" +"This action will enable password-based authentication for " +"this user." +msgstr "" +"Гэта дзеянне ўключыць аўтэнтыфікацыю на аснове пароля для " +"гэтага карыстальніка." + +msgid "Disable password-based authentication" +msgstr "Адключыць аўтэнтыфікацыю на аснове пароля" + +msgid "Enable password-based authentication" +msgstr "Уключыць аўтэнтыфікацыю на аснове пароля" + +msgid "Skip to main content" +msgstr "Перайсці да асноўнага зместу" + +msgid "Welcome," +msgstr "Вітаем," + +msgid "View site" +msgstr "Адкрыць сайт" + +msgid "Documentation" +msgstr "Дакумэнтацыя" + +msgid "Log out" +msgstr "Выйсьці" + +#, python-format +msgid "Add %(name)s" +msgstr "Дадаць %(name)s" + +msgid "History" +msgstr "Гісторыя" + +msgid "View on site" +msgstr "Зірнуць на пляцоўцы" + +msgid "Filter" +msgstr "Прасеяць" + +msgid "Hide counts" +msgstr "Схаваць падлік" + +msgid "Show counts" +msgstr "Паказаць падлік" + +msgid "Clear all filters" +msgstr "Ачысьціць усе фільтры" + +msgid "Remove from sorting" +msgstr "Прыбраць з упарадкаванага" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "Парадак: %(priority_number)s" + +msgid "Toggle sorting" +msgstr "Парадкаваць наадварот" + +msgid "Toggle theme (current theme: auto)" +msgstr "Пераключыць тэму (бягучая тэма: аўтаматычная)" + +msgid "Toggle theme (current theme: light)" +msgstr "Пераключыць тэму (бягучая тэма: светлая)" + +msgid "Toggle theme (current theme: dark)" +msgstr "Пераключыць тэму (бягучая тэма: цёмная)" + +msgid "Delete" +msgstr "Выдаліць" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" +"Калі выдаліць %(object_name)s «%(escaped_object)s», выдаляцца зьвязаныя " +"аб’екты, але ваш рахунак ня мае дазволу выдаляць наступныя віды аб’ектаў:" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" +"Каб выдаліць %(object_name)s «%(escaped_object)s», трэба выдаліць і " +"зьвязаныя абароненыя аб’екты:" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" +"Ці выдаліць %(object_name)s «%(escaped_object)s»? Усе наступныя зьвязаныя " +"складнікі выдаляцца:" + +msgid "Objects" +msgstr "Аб'екты" + +msgid "Yes, I’m sure" +msgstr "Так, я ўпэўнены" + +msgid "No, take me back" +msgstr "Не, вярнуцца назад" + +msgid "Delete multiple objects" +msgstr "Выдаліць некалькі аб’ектаў" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" +"Калі выдаліць абранае (%(objects_name)s), выдаляцца зьвязаныя аб’екты, але " +"ваш рахунак ня мае дазволу выдаляць наступныя віды аб’ектаў:" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" +"Каб выдаліць абранае (%(objects_name)s), трэба выдаліць і зьвязаныя " +"абароненыя аб’екты:" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" +"Ці выдаліць абранае (%(objects_name)s)? Усе наступныя аб’екты ды зьвязаныя " +"зь імі складнікі выдаляцца:" + +msgid "Delete?" +msgstr "Ці выдаліць?" + +#, python-format +msgid " By %(filter_title)s " +msgstr " %(filter_title)s " + +msgid "Summary" +msgstr "Рэзюмэ" + +msgid "Recent actions" +msgstr "Нядаўнія дзеянні" + +msgid "My actions" +msgstr "Мае дзеяньні" + +msgid "None available" +msgstr "Недаступнае" + +msgid "Added:" +msgstr "Дадалі:" + +msgid "Changed:" +msgstr "Зьмянілі:" + +msgid "Deleted:" +msgstr "Выдалены:" + +msgid "Unknown content" +msgstr "Невядомае зьмесьціва" + +msgid "" +"Something’s wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" +"Нешта ня так з усталяванаю базаю зьвестак. Упэўніцеся, што ў базе стварылі " +"патрэбныя табліцы, і што базу можа чытаць адпаведны карыстальнік." + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" +"Вы апазнаны як %(username)s але не аўтарызаваны для доступу гэтай бачыны. Не " +"жадаеце лі вы ўвайсці пад іншым карыстальнікам?" + +msgid "Forgotten your password or username?" +msgstr "Забыліся на імя ці пароль?" + +msgid "Toggle navigation" +msgstr "Пераключыць навігацыю" + +msgid "Sidebar" +msgstr "бакавая панэль" + +msgid "Start typing to filter…" +msgstr "Пачніце ўводзіць, каб адфільтраваць..." + +msgid "Filter navigation items" +msgstr "Фільтраваць элементы навігацыі" + +msgid "Date/time" +msgstr "Час, дата" + +msgid "User" +msgstr "Карыстальнік" + +msgid "Action" +msgstr "Дзеяньне" + +msgid "entry" +msgid_plural "entries" +msgstr[0] "запіс" +msgstr[1] "запісы" +msgstr[2] "запісы" +msgstr[3] "запісы" + +msgid "" +"This object doesn’t have a change history. It probably wasn’t added via this " +"admin site." +msgstr "" +"Аб’ект ня мае гісторыі зьменаў. Мажліва, яго дадавалі не праз кіраўнічую " +"пляцоўку." + +msgid "Show all" +msgstr "Паказаць усё" + +msgid "Save" +msgstr "Захаваць" + +msgid "Popup closing…" +msgstr "Усплывальнае акно зачыняецца..." + +msgid "Search" +msgstr "Шукаць" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "%(counter)s вынік" +msgstr[1] "%(counter)s вынікі" +msgstr[2] "%(counter)s вынікаў" +msgstr[3] "%(counter)s вынікаў" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "Разам %(full_result_count)s" + +msgid "Save as new" +msgstr "Захаваць як новы" + +msgid "Save and add another" +msgstr "Захаваць і дадаць іншы" + +msgid "Save and continue editing" +msgstr "Захаваць і працягваць правіць" + +msgid "Save and view" +msgstr "Захаваць і праглядзець" + +msgid "Close" +msgstr "Закрыць" + +#, python-format +msgid "Change selected %(model)s" +msgstr "Змяніць абраныя %(model)s" + +#, python-format +msgid "Add another %(model)s" +msgstr "Дадаць яшчэ %(model)s" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "Выдаліць абраныя %(model)s" + +#, python-format +msgid "View selected %(model)s" +msgstr "Праглядзець абраныя %(model)s" + +msgid "Thanks for spending some quality time with the web site today." +msgstr "Дзякуем за час, які вы сёньня правялі на гэтай пляцоўцы." + +msgid "Log in again" +msgstr "Увайсьці зноўку" + +msgid "Password change" +msgstr "Зьмяніць пароль" + +msgid "Your password was changed." +msgstr "Ваш пароль зьмяніўся." + +msgid "" +"Please enter your old password, for security’s sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" +"Дзеля бясьпекі пазначце стары пароль, а потым набярыце новы пароль двойчы — " +"каб упэўніцца, што набралі без памылак." + +msgid "Change my password" +msgstr "Зьмяніць пароль" + +msgid "Password reset" +msgstr "Узнавіць пароль" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "Вам усталявалі пароль. Можаце вярнуцца ды ўвайсьці зноўку." + +msgid "Password reset confirmation" +msgstr "Пацьвердзіце, што трэба ўзнавіць пароль" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "Набярыце новы пароль двойчы — каб упэўніцца, што набралі без памылак." + +msgid "New password:" +msgstr "Новы пароль:" + +msgid "Confirm password:" +msgstr "Пацьвердзіце пароль:" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"Спасылка ўзнавіць пароль хібная: мажліва таму, што ёю ўжо скарысталіся. " +"Запытайцеся ўзнавіць пароль яшчэ раз." + +msgid "" +"We’ve emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" +"Мы адаслалі па электроннай пошце інструкцыі па ўстаноўцы пароля. Калі існуе " +"рахунак з электроннай поштай, што вы ўвялі, то Вы павінны атрымаць іх у " +"бліжэйшы час." + +msgid "" +"If you don’t receive an email, please make sure you’ve entered the address " +"you registered with, and check your spam folder." +msgstr "" +"Калі вы не атрымліваеце электронную пошту, калі ласка, пераканайцеся, што вы " +"ўвялі адрас з якім вы зарэгістраваліся, а таксама праверце тэчку са спамам." + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" +"Вы атрымалі гэты ліст, таму што вы прасілі скінуць пароль для ўліковага " +"запісу карыстальніка на %(site_name)s." + +msgid "Please go to the following page and choose a new password:" +msgstr "Перайдзіце да наступнае бачыны ды абярыце новы пароль:" + +msgid "Your username, in case you’ve forgotten:" +msgstr "Імя карыстальніка, калі раптам вы забыліся:" + +msgid "Thanks for using our site!" +msgstr "Дзякуем, што карыстаецеся нашаю пляцоўкаю!" + +#, python-format +msgid "The %(site_name)s team" +msgstr "Каманда «%(site_name)s»" + +msgid "" +"Forgotten your password? Enter your email address below, and we’ll email " +"instructions for setting a new one." +msgstr "" +"Забыліся пароль? Калі ласка, увядзіце свой адрас электроннай пошты ніжэй, і " +"мы вышлем інструкцыі па электроннай пошце для ўстаноўкі новага." + +msgid "Email address:" +msgstr "Адрас электроннай пошты:" + +msgid "Reset my password" +msgstr "Узнавіць пароль" + +msgid "Select all objects on this page for an action" +msgstr "Абяраць усе аб'екты на гэтай старонцы для дзеяньня" + +msgid "All dates" +msgstr "Усе даты" + +#, python-format +msgid "Select %s" +msgstr "Абраць %s" + +#, python-format +msgid "Select %s to change" +msgstr "Абярыце %s, каб зьмяніць" + +#, python-format +msgid "Select %s to view" +msgstr "Абярыце %s, каб праглядзець" + +msgid "Date:" +msgstr "Дата:" + +msgid "Time:" +msgstr "Час:" + +msgid "Lookup" +msgstr "Шукаць" + +msgid "Currently:" +msgstr "У цяперашні час:" + +msgid "Change:" +msgstr "Зьмяніць:" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/be/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/be/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..ac8377e421a3285f001ef4661e27fd4b97aa2fbf GIT binary patch literal 7703 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/be/LC_MESSAGES/djangojs.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/be/LC_MESSAGES/djangojs.po new file mode 100644 index 0000000000..484af859fa --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/be/LC_MESSAGES/djangojs.po @@ -0,0 +1,333 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Viktar Palstsiuk , 2015 +# znotdead , 2016,2020-2021,2023 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-09-18 15:04-0300\n" +"PO-Revision-Date: 2023-12-04 07:59+0000\n" +"Last-Translator: znotdead , 2016,2020-2021,2023\n" +"Language-Team: Belarusian (http://app.transifex.com/django/django/language/" +"be/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: be\n" +"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || " +"(n%100>=11 && n%100<=14)? 2 : 3);\n" + +#, javascript-format +msgid "Available %s" +msgstr "Даступныя %s" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" +"Сьпіс даступных %s. Каб нешта абраць, пазначце патрэбнае ў полі ніжэй і " +"пстрыкніце па стрэлцы «Абраць» між двума палямі." + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "Каб прасеяць даступныя %s, друкуйце ў гэтым полі." + +msgid "Filter" +msgstr "Прасеяць" + +msgid "Choose all" +msgstr "Абраць усе" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "Каб абраць усе %s, пстрыкніце тут." + +msgid "Choose" +msgstr "Абраць" + +msgid "Remove" +msgstr "Прыбраць" + +#, javascript-format +msgid "Chosen %s" +msgstr "Абралі %s" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" +"Сьпіс абраных %s. Каб нешта прыбраць, пазначце патрэбнае ў полі ніжэй і " +"пстрыкніце па стрэлцы «Прыбраць» між двума палямі." + +#, javascript-format +msgid "Type into this box to filter down the list of selected %s." +msgstr "Друкуйце ў гэтым полі, каб прасеяць спіс выбраных %s." + +msgid "Remove all" +msgstr "Прыбраць усё" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "Каб прыбраць усе %s, пстрыкніце тут." + +#, javascript-format +msgid "%s selected option not visible" +msgid_plural "%s selected options not visible" +msgstr[0] "%s абраная можнасьць нябачна" +msgstr[1] "%s абраныя можнасьці нябачны" +msgstr[2] "%s абраныя можнасьці нябачны" +msgstr[3] "%s абраныя можнасьці нябачны" + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "Абралі %(sel)s з %(cnt)s" +msgstr[1] "Абралі %(sel)s з %(cnt)s" +msgstr[2] "Абралі %(sel)s з %(cnt)s" +msgstr[3] "Абралі %(sel)s з %(cnt)s" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" +"У пэўных палях засталіся незахаваныя зьмены. Калі выканаць дзеяньне, " +"незахаванае страціцца." + +msgid "" +"You have selected an action, but you haven’t saved your changes to " +"individual fields yet. Please click OK to save. You’ll need to re-run the " +"action." +msgstr "" +"Абралі дзеяньне, але не захавалі зьмены ў пэўных палях. Каб захаваць, " +"націсьніце «Добра». Дзеяньне потым трэба будзе запусьціць нанова." + +msgid "" +"You have selected an action, and you haven’t made any changes on individual " +"fields. You’re probably looking for the Go button rather than the Save " +"button." +msgstr "" +"Абралі дзеяньне, а ў палях нічога не зьмянялі. Мажліва, вы хацелі націснуць " +"кнопку «Выканаць», а ня кнопку «Захаваць»." + +msgid "Now" +msgstr "Цяпер" + +msgid "Midnight" +msgstr "Поўнач" + +msgid "6 a.m." +msgstr "6 папоўначы" + +msgid "Noon" +msgstr "Поўдзень" + +msgid "6 p.m." +msgstr "6 папаўдні" + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "Заўвага: Ваш час спяшаецца на %s г адносна часу на серверы." +msgstr[1] "Заўвага: Ваш час спяшаецца на %s г адносна часу на серверы." +msgstr[2] "Заўвага: Ваш час спяшаецца на %s г адносна часу на серверы." +msgstr[3] "Заўвага: Ваш час спяшаецца на %s г адносна часу на серверы." + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "Заўвага: Ваш час адстае на %s г ад часу на серверы." +msgstr[1] "Заўвага: Ваш час адстае на %s г ад часу на серверы." +msgstr[2] "Заўвага: Ваш час адстае на %s г ад часу на серверы." +msgstr[3] "Заўвага: Ваш час адстае на %s г ад часу на серверы." + +msgid "Choose a Time" +msgstr "Абярыце час" + +msgid "Choose a time" +msgstr "Абярыце час" + +msgid "Cancel" +msgstr "Скасаваць" + +msgid "Today" +msgstr "Сёньня" + +msgid "Choose a Date" +msgstr "Абярыце дату" + +msgid "Yesterday" +msgstr "Учора" + +msgid "Tomorrow" +msgstr "Заўтра" + +msgid "January" +msgstr "Студзень" + +msgid "February" +msgstr "Люты" + +msgid "March" +msgstr "Сакавік" + +msgid "April" +msgstr "Красавік" + +msgid "May" +msgstr "Травень" + +msgid "June" +msgstr "Чэрвень" + +msgid "July" +msgstr "Ліпень" + +msgid "August" +msgstr "Жнівень" + +msgid "September" +msgstr "Верасень" + +msgid "October" +msgstr "Кастрычнік" + +msgid "November" +msgstr "Лістапад" + +msgid "December" +msgstr "Снежань" + +msgctxt "abbrev. month January" +msgid "Jan" +msgstr "Сту" + +msgctxt "abbrev. month February" +msgid "Feb" +msgstr "Лют" + +msgctxt "abbrev. month March" +msgid "Mar" +msgstr "Сак" + +msgctxt "abbrev. month April" +msgid "Apr" +msgstr "Кра" + +msgctxt "abbrev. month May" +msgid "May" +msgstr "Май" + +msgctxt "abbrev. month June" +msgid "Jun" +msgstr "Чэр" + +msgctxt "abbrev. month July" +msgid "Jul" +msgstr "Ліп" + +msgctxt "abbrev. month August" +msgid "Aug" +msgstr "Жні" + +msgctxt "abbrev. month September" +msgid "Sep" +msgstr "Вер" + +msgctxt "abbrev. month October" +msgid "Oct" +msgstr "Кас" + +msgctxt "abbrev. month November" +msgid "Nov" +msgstr "Ліс" + +msgctxt "abbrev. month December" +msgid "Dec" +msgstr "Сне" + +msgid "Sunday" +msgstr "Нядзеля" + +msgid "Monday" +msgstr "Панядзелак" + +msgid "Tuesday" +msgstr "Аўторак" + +msgid "Wednesday" +msgstr "Серада" + +msgid "Thursday" +msgstr "Чацьвер" + +msgid "Friday" +msgstr "Пятніца" + +msgid "Saturday" +msgstr "Субота" + +msgctxt "abbrev. day Sunday" +msgid "Sun" +msgstr "Нд" + +msgctxt "abbrev. day Monday" +msgid "Mon" +msgstr "Пн" + +msgctxt "abbrev. day Tuesday" +msgid "Tue" +msgstr "Аўт" + +msgctxt "abbrev. day Wednesday" +msgid "Wed" +msgstr "Ср" + +msgctxt "abbrev. day Thursday" +msgid "Thur" +msgstr "Чц" + +msgctxt "abbrev. day Friday" +msgid "Fri" +msgstr "Пт" + +msgctxt "abbrev. day Saturday" +msgid "Sat" +msgstr "Сб" + +msgctxt "one letter Sunday" +msgid "S" +msgstr "Н" + +msgctxt "one letter Monday" +msgid "M" +msgstr "П" + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "А" + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "С" + +msgctxt "one letter Thursday" +msgid "T" +msgstr "Ч" + +msgctxt "one letter Friday" +msgid "F" +msgstr "П" + +msgctxt "one letter Saturday" +msgid "S" +msgstr "С" + +msgid "Show" +msgstr "Паказаць" + +msgid "Hide" +msgstr "Схаваць" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/bg/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/bg/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..3e89f3e437f2920b41296a5841483990fbc3c2df GIT binary patch literal 22994 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/bg/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/bg/LC_MESSAGES/django.po new file mode 100644 index 0000000000..d8e8dc8a1e --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/bg/LC_MESSAGES/django.po @@ -0,0 +1,791 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# arneatec , 2022-2024 +# Boris Chervenkov , 2012 +# Claude Paroz , 2014 +# Jannis Leidel , 2011 +# Lyuboslav Petrov , 2014 +# Todor Lubenov , 2020 +# Todor Lubenov , 2014-2015 +# Venelin Stoykov , 2015-2017 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-05-22 11:46-0300\n" +"PO-Revision-Date: 2024-08-07 07:05+0000\n" +"Last-Translator: arneatec , 2022-2024\n" +"Language-Team: Bulgarian (http://app.transifex.com/django/django/language/" +"bg/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: bg\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "Изтриване на избраните %(verbose_name_plural)s" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "Успешно изтрити %(count)d %(items)s ." + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "Не можете да изтриете %(name)s" + +msgid "Are you sure?" +msgstr "Сигурни ли сте?" + +msgid "Administration" +msgstr "Администрация" + +msgid "All" +msgstr "Всички" + +msgid "Yes" +msgstr "Да" + +msgid "No" +msgstr "Не" + +msgid "Unknown" +msgstr "Неизвестно" + +msgid "Any date" +msgstr "Коя-да-е дата" + +msgid "Today" +msgstr "Днес" + +msgid "Past 7 days" +msgstr "Последните 7 дни" + +msgid "This month" +msgstr "Този месец" + +msgid "This year" +msgstr "Тази година" + +msgid "No date" +msgstr "Няма дата" + +msgid "Has date" +msgstr "Има дата" + +msgid "Empty" +msgstr "Празно" + +msgid "Not empty" +msgstr "Не е празно" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" +"Моля въведете правилния %(username)s и парола за администраторски акаунт. " +"Моля забележете, че и двете полета могат да са с главни и малки букви." + +msgid "Action:" +msgstr "Действие:" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "Добави друг %(verbose_name)s" + +msgid "Remove" +msgstr "Премахване" + +msgid "Addition" +msgstr "Добавка" + +msgid "Change" +msgstr "Промени" + +msgid "Deletion" +msgstr "Изтриване" + +msgid "action time" +msgstr "време на действие" + +msgid "user" +msgstr "потребител" + +msgid "content type" +msgstr "тип на съдържанието" + +msgid "object id" +msgstr "id на обекта" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/library/functions.html#repr) +msgid "object repr" +msgstr "repr на обекта" + +msgid "action flag" +msgstr "флаг за действие" + +msgid "change message" +msgstr "промени съобщение" + +msgid "log entry" +msgstr "записка в журнала" + +msgid "log entries" +msgstr "записки в журнала" + +#, python-format +msgid "Added “%(object)s”." +msgstr "Добавен “%(object)s”." + +#, python-format +msgid "Changed “%(object)s” — %(changes)s" +msgstr "Променени “%(object)s” — %(changes)s" + +#, python-format +msgid "Deleted “%(object)s.”" +msgstr "Изтрити “%(object)s.”" + +msgid "LogEntry Object" +msgstr "LogEntry обект" + +#, python-brace-format +msgid "Added {name} “{object}”." +msgstr "Добавен {name} “{object}”." + +msgid "Added." +msgstr "Добавено." + +msgid "and" +msgstr "и" + +#, python-brace-format +msgid "Changed {fields} for {name} “{object}”." +msgstr "Променени {fields} за {name} “{object}”." + +#, python-brace-format +msgid "Changed {fields}." +msgstr "Променени {fields}." + +#, python-brace-format +msgid "Deleted {name} “{object}”." +msgstr "Изтрит {name} “{object}”." + +msgid "No fields changed." +msgstr "Няма променени полета." + +msgid "None" +msgstr "Празно" + +msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." +msgstr "" +"Задръжте “Control”, или “Command” на Mac, за да изберете повече от едно." + +msgid "Select this object for an action - {}" +msgstr "Изберете този обект за действие - {}" + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully." +msgstr "Обектът {name} “{obj}” бе успешно добавен." + +msgid "You may edit it again below." +msgstr "Можете отново да го промените по-долу." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was added successfully. You may add another {name} below." +msgstr "" +"Обектът {name} “{obj}” бе успешно добавен. Можете да добавите друг {name} по-" +"долу." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may edit it again below." +msgstr "" +"Обектът {name} “{obj}” бе успешно променен. Можете да го промените отново по-" +"долу." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may add another {name} " +"below." +msgstr "" +"Обектът {name} “{obj}” бе успешно променен. Можете да добавите друг {name} " +"по-долу." + +#, python-brace-format +msgid "The {name} “{obj}” was changed successfully." +msgstr "Обектът {name} “{obj}” бе успешно променен." + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" +"Елементите трябва да бъдат избрани, за да се извършат действия по тях. Няма " +"променени елементи." + +msgid "No action selected." +msgstr "Няма избрано действие." + +#, python-format +msgid "The %(name)s “%(obj)s” was deleted successfully." +msgstr "%(name)s “%(obj)s” беше успешно изтрит." + +#, python-format +msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" +msgstr "%(name)s с ID “%(key)s” не съществува. Може би е изтрит?" + +#, python-format +msgid "Add %s" +msgstr "Добави %s" + +#, python-format +msgid "Change %s" +msgstr "Промени %s" + +#, python-format +msgid "View %s" +msgstr "Изглед %s" + +msgid "Database error" +msgstr "Грешка в базата данни" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "%(count)s %(name)s беше променено успешно." +msgstr[1] "%(count)s %(name)s бяха успешно променени." + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "%(total_count)s е избран" +msgstr[1] "Избрани са всички %(total_count)s" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "Избрани са 0 от %(cnt)s" + +#, python-format +msgid "Change history: %s" +msgstr "История на промените: %s" + +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "%(class_name)s %(instance)s" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" +"Изтриването на избраните %(class_name)s %(instance)s ще наложи изтриването " +"на следните защитени и свързани обекти: %(related_objects)s" + +msgid "Django site admin" +msgstr "Django административен сайт" + +msgid "Django administration" +msgstr "Django администрация" + +msgid "Site administration" +msgstr "Администрация на сайта" + +msgid "Log in" +msgstr "Вход" + +#, python-format +msgid "%(app)s administration" +msgstr "%(app)s администрация" + +msgid "Page not found" +msgstr "Страница не е намерена" + +msgid "We’re sorry, but the requested page could not be found." +msgstr "Съжаляваме, но поисканата страница не може да бъде намерена." + +msgid "Home" +msgstr "Начало" + +msgid "Server error" +msgstr "Сървърна грешка" + +msgid "Server error (500)" +msgstr "Сървърна грешка (500)" + +msgid "Server Error (500)" +msgstr "Сървърна грешка (500)" + +msgid "" +"There’s been an error. It’s been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" +"Получи се грешка. Администраторите на сайта са уведомени за това чрез " +"електронна поща и грешката трябва да бъде поправена скоро. Благодарим ви за " +"търпението." + +msgid "Run the selected action" +msgstr "Изпълни избраното действие" + +msgid "Go" +msgstr "Напред" + +msgid "Click here to select the objects across all pages" +msgstr "Щракнете тук, за да изберете обектите във всички страници" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "Избери всички %(total_count)s %(module_name)s" + +msgid "Clear selection" +msgstr "Изчисти избраното" + +msgid "Breadcrumbs" +msgstr "Трохи" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "Модели в приложението %(name)s " + +msgid "Add" +msgstr "Добави" + +msgid "View" +msgstr "Изглед" + +msgid "You don’t have permission to view or edit anything." +msgstr "Нямате права да разглеждате или редактирате каквото и да е." + +msgid "" +"First, enter a username and password. Then, you’ll be able to edit more user " +"options." +msgstr "" +"Първо въведете потребител и парола. След това ще можете да редактирате " +"повече детайли. " + +msgid "Enter a username and password." +msgstr "Въведете потребителско име и парола." + +msgid "Change password" +msgstr "Промени парола" + +msgid "Set password" +msgstr "Задайте парола" + +msgid "Please correct the error below." +msgid_plural "Please correct the errors below." +msgstr[0] "Моля, поправете грешката по-долу." +msgstr[1] "Моля, поправете грешките по-долу." + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "Въведете нова парола за потребител %(username)s." + +msgid "" +"This action will enable password-based authentication for " +"this user." +msgstr "" +"Това действие ще включи автентикация чрез парола за този " +"потребител." + +msgid "Disable password-based authentication" +msgstr "Деактивиране на автентикация чрез парола." + +msgid "Enable password-based authentication" +msgstr "Разрешаване на автентикация чрез парола." + +msgid "Skip to main content" +msgstr "Пропуснете към основното съдържание" + +msgid "Welcome," +msgstr "Добре дошли," + +msgid "View site" +msgstr "Виж сайта" + +msgid "Documentation" +msgstr "Документация" + +msgid "Log out" +msgstr "Изход" + +#, python-format +msgid "Add %(name)s" +msgstr "Добави %(name)s" + +msgid "History" +msgstr "История" + +msgid "View on site" +msgstr "Разгледай в сайта" + +msgid "Filter" +msgstr "Филтър" + +msgid "Hide counts" +msgstr "Скрий брояча" + +msgid "Show counts" +msgstr "Покажи брояча" + +msgid "Clear all filters" +msgstr "Изчисти всички филтри" + +msgid "Remove from sorting" +msgstr "Премахни от подреждането" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "Ред на подреждане: %(priority_number)s" + +msgid "Toggle sorting" +msgstr "Превключи подреждането" + +msgid "Toggle theme (current theme: auto)" +msgstr "Смени темата (настояща тема: автоматична)" + +msgid "Toggle theme (current theme: light)" +msgstr "Смени темата (настояща тема: светла)" + +msgid "Toggle theme (current theme: dark)" +msgstr "Смени темата (настояща тема: тъмна)" + +msgid "Delete" +msgstr "Изтрий" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" +"Изтриването на %(object_name)s '%(escaped_object)s' би причинило изтриване " +"на свързани обекти, но вашият потребител няма право да изтрива следните " +"видове обекти:" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" +"Изтриването на %(object_name)s '%(escaped_object)s' изисква изтриването на " +"следните защитени свързани обекти:" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" +"Наистина ли искате да изтриете %(object_name)s \"%(escaped_object)s\"? " +"Следните свързани елементи също ще бъдат изтрити:" + +msgid "Objects" +msgstr "Обекти" + +msgid "Yes, I’m sure" +msgstr "Да, сигурен съм" + +msgid "No, take me back" +msgstr "Не, върни ме обратно" + +msgid "Delete multiple objects" +msgstr "Изтриване на множество обекти" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" +"Изтриването на избраните %(objects_name)s ще доведе до изтриване на свързани " +"обекти, но вашият потребител няма право да изтрива следните типове обекти:" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" +"Изтриването на избраните %(objects_name)s изисква изтриването на следните " +"защитени свързани обекти:" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" +"Наистина ли искате да изтриете избраните %(objects_name)s? Всички изброени " +"обекти и свързаните с тях ще бъдат изтрити:" + +msgid "Delete?" +msgstr "Изтриване?" + +#, python-format +msgid " By %(filter_title)s " +msgstr " По %(filter_title)s " + +msgid "Summary" +msgstr "Резюме" + +msgid "Recent actions" +msgstr "Последни действия" + +msgid "My actions" +msgstr "Моите действия" + +msgid "None available" +msgstr "Няма налични" + +msgid "Added:" +msgstr "Добавени:" + +msgid "Changed:" +msgstr "Променени:" + +msgid "Deleted:" +msgstr "Изтрити:" + +msgid "Unknown content" +msgstr "Неизвестно съдържание" + +msgid "" +"Something’s wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" +"Проблем с вашата база данни. Убедете се, че необходимите таблици в базата са " +"създадени и че съответния потребител има необходимите права за достъп. " + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" +"Вие сте се удостоверен като %(username)s, но не сте оторизиран да достъпите " +"тази страница. Бихте ли желали да влезе с друг профил?" + +msgid "Forgotten your password or username?" +msgstr "Забравена парола или потребителско име?" + +msgid "Toggle navigation" +msgstr "Превключи навигацията" + +msgid "Sidebar" +msgstr "Страничната лента" + +msgid "Start typing to filter…" +msgstr "Започнете да пишете за филтър..." + +msgid "Filter navigation items" +msgstr "Филтриране на навигационните елементи" + +msgid "Date/time" +msgstr "Дата/час" + +msgid "User" +msgstr "Потребител" + +msgid "Action" +msgstr "Действие" + +msgid "entry" +msgid_plural "entries" +msgstr[0] "запис" +msgstr[1] "записа" + +msgid "" +"This object doesn’t have a change history. It probably wasn’t added via this " +"admin site." +msgstr "" +"Този обект няма история на промените. Вероятно не е бил добавен чрез този " +"административен сайт." + +msgid "Show all" +msgstr "Покажи всички" + +msgid "Save" +msgstr "Запис" + +msgid "Popup closing…" +msgstr "Изскачащият прозорец се затваря..." + +msgid "Search" +msgstr "Търсене" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "%(counter)s резултат" +msgstr[1] "%(counter)s резултати" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "%(full_result_count)s общо" + +msgid "Save as new" +msgstr "Запиши като нов" + +msgid "Save and add another" +msgstr "Запиши и добави нов" + +msgid "Save and continue editing" +msgstr "Запиши и продължи" + +msgid "Save and view" +msgstr "Запиши и прегледай" + +msgid "Close" +msgstr "Затвори" + +#, python-format +msgid "Change selected %(model)s" +msgstr "Променете избрания %(model)s" + +#, python-format +msgid "Add another %(model)s" +msgstr "Добавяне на друг %(model)s" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "Изтриване на избрания %(model)s" + +#, python-format +msgid "View selected %(model)s" +msgstr "Виж избраните %(model)s" + +msgid "Thanks for spending some quality time with the web site today." +msgstr "Благодарим ви за добре прекараното време с този сайт днес." + +msgid "Log in again" +msgstr "Влез пак" + +msgid "Password change" +msgstr "Промяна на парола" + +msgid "Your password was changed." +msgstr "Паролата ви е променена." + +msgid "" +"Please enter your old password, for security’s sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" +"Въведете старата си парола /от съображения за сигурност/. След това въведете " +"желаната нова парола два пъти, за да сверим дали е написана правилно." + +msgid "Change my password" +msgstr "Промяна на паролата ми" + +msgid "Password reset" +msgstr "Нова парола" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "Паролата е променена. Вече можете да се впишете." + +msgid "Password reset confirmation" +msgstr "Потвърждение за смяна на паролата" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" +"Моля, въведете новата парола два пъти, за да се уверим, че сте я написали " +"правилно." + +msgid "New password:" +msgstr "Нова парола:" + +msgid "Confirm password:" +msgstr "Потвърдете паролата:" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"Връзката за възстановяване на паролата е невалидна, може би защото вече е " +"използвана. Моля, поискайте нова промяна на паролата." + +msgid "" +"We’ve emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" +"По имейл изпратихме инструкции за смяна на паролата, ако съществува профил с " +"въведения от вас адрес. Би трябвало скоро да ги получите. " + +msgid "" +"If you don’t receive an email, please make sure you’ve entered the address " +"you registered with, and check your spam folder." +msgstr "" +"Ако не получите имейл, моля уверете се, че сте попълнили правилно адреса, с " +"който сте се регистрирали, също проверете спам папката във вашата поща." + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" +"Вие получавати този имейл, защото сте поискали да промените паролата за " +"вашия потребителски акаунт в %(site_name)s." + +msgid "Please go to the following page and choose a new password:" +msgstr "Моля, отидете на следната страница и изберете нова парола:" + +msgid "Your username, in case you’ve forgotten:" +msgstr "Вашето потребителско име, в случай че сте го забравили:" + +msgid "Thanks for using our site!" +msgstr "Благодарим, че ползвате сайта ни!" + +#, python-format +msgid "The %(site_name)s team" +msgstr "Екипът на %(site_name)s" + +msgid "" +"Forgotten your password? Enter your email address below, and we’ll email " +"instructions for setting a new one." +msgstr "" +"Забравили сте си паролата? Въведете своя имейл адрес по-долу, и ние ще ви " +"изпратим инструкции как да я смените с нова." + +msgid "Email address:" +msgstr "Имейл адреси:" + +msgid "Reset my password" +msgstr "Задай новата ми парола" + +msgid "Select all objects on this page for an action" +msgstr "Изберете всички обекти на този страница за действие" + +msgid "All dates" +msgstr "Всички дати" + +#, python-format +msgid "Select %s" +msgstr "Изберете %s" + +#, python-format +msgid "Select %s to change" +msgstr "Изберете %s за промяна" + +#, python-format +msgid "Select %s to view" +msgstr "Избери %s за преглед" + +msgid "Date:" +msgstr "Дата:" + +msgid "Time:" +msgstr "Час:" + +msgid "Lookup" +msgstr "Търсене" + +msgid "Currently:" +msgstr "Сега:" + +msgid "Change:" +msgstr "Промяна:" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/bg/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/bg/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..a3eab438aa55e0ca03782a5734b479fe5eb5b45a GIT binary patch literal 7195 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 OZ>x%bNdBq#S@nO?;&@L0 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/bg/LC_MESSAGES/djangojs.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/bg/LC_MESSAGES/djangojs.po new file mode 100644 index 0000000000..4ec3a50a15 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/bg/LC_MESSAGES/djangojs.po @@ -0,0 +1,320 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# arneatec , 2022-2024 +# Jannis Leidel , 2011 +# Venelin Stoykov , 2015-2016 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-05-22 11:46-0300\n" +"PO-Revision-Date: 2024-08-07 07:59+0000\n" +"Last-Translator: arneatec , 2022-2024\n" +"Language-Team: Bulgarian (http://app.transifex.com/django/django/language/" +"bg/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: bg\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, javascript-format +msgid "Available %s" +msgstr "Налични %s" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" +"Това е списък на наличните %s . Можете да изберете някои, като ги изберете в " +"полето по-долу и след това кликнете върху стрелката \"Избери\" между двете " +"полета." + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "Въведете в това поле, за да филтрирате списъка на наличните %s." + +msgid "Filter" +msgstr "Филтър" + +msgid "Choose all" +msgstr "Избери всички" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "Кликнете, за да изберете всички %s наведнъж." + +msgid "Choose" +msgstr "Избери" + +msgid "Remove" +msgstr "Премахни" + +#, javascript-format +msgid "Chosen %s" +msgstr "Избрахме %s" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" +"Това е списък на избраните %s. Можете да премахнете някои, като ги изберете " +"в полето по-долу и след това щракнете върху стрелката \"Премахни\" между " +"двете полета." + +#, javascript-format +msgid "Type into this box to filter down the list of selected %s." +msgstr "Въведете в това поле, за да филтрирате списъка на избраните %s." + +msgid "Remove all" +msgstr "Премахване на всички" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "Кликнете, за да премахнете всички избрани %s наведнъж." + +#, javascript-format +msgid "%s selected option not visible" +msgid_plural "%s selected options not visible" +msgstr[0] "%s избрана опция не е видима" +msgstr[1] "%s selected options not visible" + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "%(sel)s на %(cnt)s е избран" +msgstr[1] "%(sel)s на %(cnt)s са избрани" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" +"Имате незапазени промени по отделни полета за редактиране. Ако изпълните " +"действие, незаписаните промени ще бъдат загубени." + +msgid "" +"You have selected an action, but you haven’t saved your changes to " +"individual fields yet. Please click OK to save. You’ll need to re-run the " +"action." +msgstr "" +"Вие сте избрали действие, но не сте записали промените по полета. Моля, " +"кликнете ОК, за да се запишат. Трябва отново да изпълните действието." + +msgid "" +"You have selected an action, and you haven’t made any changes on individual " +"fields. You’re probably looking for the Go button rather than the Save " +"button." +msgstr "" +"Вие сте избрали действие, но не сте направили промени по полетата. Вероятно " +"търсите Изпълни бутона, а не бутона Запис." + +msgid "Now" +msgstr "Сега" + +msgid "Midnight" +msgstr "Полунощ" + +msgid "6 a.m." +msgstr "6 сутринта" + +msgid "Noon" +msgstr "По обяд" + +msgid "6 p.m." +msgstr "6 след обяд" + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "Бележка: Вие сте %s час напред от времето на сървъра." +msgstr[1] "Бележка: Вие сте с %s часа напред от времето на сървъра" + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "Внимание: Вие сте %s час назад от времето на сървъра." +msgstr[1] "Внимание: Вие сте с %s часа назад от времето на сървъра." + +msgid "Choose a Time" +msgstr "Изберете време" + +msgid "Choose a time" +msgstr "Изберете време" + +msgid "Cancel" +msgstr "Отказ" + +msgid "Today" +msgstr "Днес" + +msgid "Choose a Date" +msgstr "Изберете дата" + +msgid "Yesterday" +msgstr "Вчера" + +msgid "Tomorrow" +msgstr "Утре" + +msgid "January" +msgstr "Януари" + +msgid "February" +msgstr "Февруари" + +msgid "March" +msgstr "Март" + +msgid "April" +msgstr "Април" + +msgid "May" +msgstr "Май" + +msgid "June" +msgstr "Юни" + +msgid "July" +msgstr "Юли" + +msgid "August" +msgstr "Август" + +msgid "September" +msgstr "Септември" + +msgid "October" +msgstr "Октомври" + +msgid "November" +msgstr "Ноември" + +msgid "December" +msgstr "Декември" + +msgctxt "abbrev. month January" +msgid "Jan" +msgstr "ян." + +msgctxt "abbrev. month February" +msgid "Feb" +msgstr "февр." + +msgctxt "abbrev. month March" +msgid "Mar" +msgstr "март" + +msgctxt "abbrev. month April" +msgid "Apr" +msgstr "апр." + +msgctxt "abbrev. month May" +msgid "May" +msgstr "май" + +msgctxt "abbrev. month June" +msgid "Jun" +msgstr "юни" + +msgctxt "abbrev. month July" +msgid "Jul" +msgstr "юли" + +msgctxt "abbrev. month August" +msgid "Aug" +msgstr "авг." + +msgctxt "abbrev. month September" +msgid "Sep" +msgstr "септ." + +msgctxt "abbrev. month October" +msgid "Oct" +msgstr "окт." + +msgctxt "abbrev. month November" +msgid "Nov" +msgstr "ноем." + +msgctxt "abbrev. month December" +msgid "Dec" +msgstr "дек." + +msgid "Sunday" +msgstr "неделя" + +msgid "Monday" +msgstr "понеделник" + +msgid "Tuesday" +msgstr "вторник" + +msgid "Wednesday" +msgstr "сряда" + +msgid "Thursday" +msgstr "четвъртък" + +msgid "Friday" +msgstr "петък" + +msgid "Saturday" +msgstr "събота" + +msgctxt "abbrev. day Sunday" +msgid "Sun" +msgstr "нед" + +msgctxt "abbrev. day Monday" +msgid "Mon" +msgstr "пон" + +msgctxt "abbrev. day Tuesday" +msgid "Tue" +msgstr "вт" + +msgctxt "abbrev. day Wednesday" +msgid "Wed" +msgstr "ср" + +msgctxt "abbrev. day Thursday" +msgid "Thur" +msgstr "чет" + +msgctxt "abbrev. day Friday" +msgid "Fri" +msgstr "пет" + +msgctxt "abbrev. day Saturday" +msgid "Sat" +msgstr "съб" + +msgctxt "one letter Sunday" +msgid "S" +msgstr "Н" + +msgctxt "one letter Monday" +msgid "M" +msgstr "П" + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "В" + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "С" + +msgctxt "one letter Thursday" +msgid "T" +msgstr "Ч" + +msgctxt "one letter Friday" +msgid "F" +msgstr "П" + +msgctxt "one letter Saturday" +msgid "S" +msgstr "С" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/bn/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/bn/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..b742fd89c72f5073db14c8ac2424cc79a5c10b83 GIT binary patch literal 18585 zcmb`N3zS_|dB?X12=Rr~C%#SsArqaMJOqJ(5JD16l!TZBkot&s?maVe$$d=jxi`b8 zlmG?9h-e{DFq)vroh*=mtd>WmW?8!`uDW!sw$^s(YOm>X_2KHn)~{ItSKA)w%g|`1x=f0ueXY$1-dWCbZ0~dmC z1}_TzZQ$wji{Q(^N${oMO(6f=C-~C+yFtzWEGYR+@D1QM!~GwEucCh()cl`;QvL7X z8Q?F$o53?)=^X#uoqW9>ydRYO$3TsL3OpNpKH&GjSJOWZz6tzSPk zt^hZIr-8SCuL17>7l03f{BvL8OM1QvYTVaA>Hh|(^}GN|PYYZE{ud~Hi%_EL?*Na2 z>p=PA-$3a(^DJA}n?a_yrJ&?r3|;|V4!#Y%1(d!og4ctG!SldhfE92N!cGA{2g+~v zgVO&6kdV5=;4R>zpys~=XGz{|ATD-ygBt$;h-vPN;r>x@5&ho<<&VDrai#kkQ2Krb z{u=mmQ1j2A!%ue>h-vOzQ2H+bwZ2P0`Ef(&Zv~|<7y7$E@oW$Ha&SNRcJK%ofiHkt zz`qCY21i~?1OE`zdVUFV%bkvsS*kk+RD1?O*|82}h}#G%E*}B4o|{1FyAzb0-vVXl zL!jh+8I-(dz;}S(24&~ZLHX}2NU3$d6_o#%gPL~<_*HNdxETB;xD;HBQS#R{;N{@; z;5py}AVb_&!3OvOsP$g{M)Uu@pzL}W6i*HXd=!*_p9CfM7%0Df3)H%Q5b#H!?ENt) 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, 2011 +# Md Arshad Hussain, 2022 +# Tahmid Rafi , 2012-2013 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2022-05-17 05:10-0500\n" +"PO-Revision-Date: 2022-07-25 07:05+0000\n" +"Last-Translator: Md Arshad Hussain\n" +"Language-Team: Bengali (http://www.transifex.com/django/django/language/" +"bn/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: bn\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "চিহ্নিত অংশটি %(verbose_name_plural)s মুছে ফেলুন" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "%(count)d টি %(items)s সফলভাবে মুছে ফেলা হয়েছে" + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "%(name)s ডিলিট করা সম্ভব নয়" + +msgid "Are you sure?" +msgstr "আপনি কি নিশ্চিত?" + +msgid "Administration" +msgstr "প্রয়োগ" + +msgid "All" +msgstr "সকল" + +msgid "Yes" +msgstr "হ্যাঁ" + +msgid "No" +msgstr "না" + +msgid "Unknown" +msgstr "অজানা" + +msgid "Any date" +msgstr "যে কোন তারিখ" + +msgid "Today" +msgstr "‍আজ" + +msgid "Past 7 days" +msgstr "শেষ ৭ দিন" + +msgid "This month" +msgstr "এ মাসে" + +msgid "This year" +msgstr "এ বছরে" + +msgid "No date" +msgstr "কোন তারিখ নেই" + +msgid "Has date" +msgstr "তারিখ আছে" + +msgid "Empty" +msgstr "খালি" + +msgid "Not empty" +msgstr "খালি নেই" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" + +msgid "Action:" +msgstr "কাজ:" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "আরো একটি %(verbose_name)s যোগ করুন" + +msgid "Remove" +msgstr "মুছে ফেলুন" + +msgid "Addition" +msgstr "" + +msgid "Change" +msgstr "পরিবর্তন" + +msgid "Deletion" +msgstr "" + +msgid "action time" +msgstr "কার্য সময়" + +msgid "user" +msgstr "ব্যবহারকারী" + +msgid "content type" +msgstr "" + +msgid "object id" +msgstr "অবজেক্ট আইডি" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/library/functions.html#repr) +msgid "object repr" +msgstr "অবজেক্ট উপস্থাপক" + +msgid "action flag" +msgstr "কার্যচিহ্ন" + +msgid "change message" +msgstr "বার্তা পরিবর্তন করুন" + +msgid "log entry" +msgstr "লগ এন্ট্রি" + +msgid "log entries" +msgstr "লগ এন্ট্রিসমূহ" + +#, python-format +msgid "Added “%(object)s”." +msgstr "“%(object)s” যোগ করা হয়েছে। " + +#, python-format +msgid "Changed “%(object)s” — %(changes)s" +msgstr "“%(object)s” — %(changes)s পরিবর্তন করা হয়েছে" + +#, python-format +msgid "Deleted “%(object)s.”" +msgstr "“%(object)s.” মুছে ফেলা হয়েছে" + +msgid "LogEntry Object" +msgstr "লগ-এন্ট্রি দ্রব্য" + +#, python-brace-format +msgid "Added {name} “{object}”." +msgstr "" + +msgid "Added." +msgstr "যুক্ত করা হয়েছে" + +msgid "and" +msgstr "এবং" + +#, python-brace-format +msgid "Changed {fields} for {name} “{object}”." +msgstr "" + +#, python-brace-format +msgid "Changed {fields}." +msgstr "" + +#, python-brace-format +msgid "Deleted {name} “{object}”." +msgstr "" + +msgid "No fields changed." +msgstr "কোন ফিল্ড পরিবর্তন হয়নি।" + +msgid "None" +msgstr "কিছু না" + +msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." +msgstr "" + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully." +msgstr "" + +msgid "You may edit it again below." +msgstr "নিম্নে আপনি আবার তা সম্পাদনা/পরিবর্তন করতে পারেন।" + +#, python-brace-format +msgid "" +"The {name} “{obj}” was added successfully. You may add another {name} below." +msgstr "" +"{name} \"{obj}\" সফলভাবে যুক্ত হয়েছে৷ নিম্নে আপনি আরেকটি {name} যুক্ত করতে পারেন।" + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may edit it again below." +msgstr "" + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully. You may edit it again below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may add another {name} " +"below." +msgstr "" + +#, python-brace-format +msgid "The {name} “{obj}” was changed successfully." +msgstr "" + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "কাজ করার আগে বস্তুগুলিকে অবশ্যই চিহ্নিত করতে হবে। কোনো বস্তু পরিবর্তিত হয়নি।" + +msgid "No action selected." +msgstr "কোনো কাজ " + +#, python-format +msgid "The %(name)s “%(obj)s” was deleted successfully." +msgstr "" + +#, python-format +msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" +msgstr "" + +#, python-format +msgid "Add %s" +msgstr "%s যোগ করুন" + +#, python-format +msgid "Change %s" +msgstr "%s পরিবর্তন করুন" + +#, python-format +msgid "View %s" +msgstr "" + +msgid "Database error" +msgstr "ডাটাবেস সমস্যা" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "%(cnt)s টি থেকে ০ টি সিলেক্ট করা হয়েছে" + +#, python-format +msgid "Change history: %s" +msgstr "ইতিহাস পরিবর্তনঃ %s" + +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" + +msgid "Django site admin" +msgstr "জ্যাঙ্গো সাইট প্রশাসক" + +msgid "Django administration" +msgstr "জ্যাঙ্গো প্রশাসন" + +msgid "Site administration" +msgstr "সাইট প্রশাসন" + +msgid "Log in" +msgstr "প্রবেশ করুন" + +#, python-format +msgid "%(app)s administration" +msgstr "" + +msgid "Page not found" +msgstr "পৃষ্ঠা পাওয়া যায়নি" + +msgid "We’re sorry, but the requested page could not be found." +msgstr "আমরা দুঃখিত, কিন্তু অনুরোধকৃত পাতা খুঁজে পাওয়া যায়নি।" + +msgid "Home" +msgstr "নীড়পাতা" + +msgid "Server error" +msgstr "সার্ভার সমস্যা" + +msgid "Server error (500)" +msgstr "সার্ভার সমস্যা (৫০০)" + +msgid "Server Error (500)" +msgstr "সার্ভার সমস্যা (৫০০)" + +msgid "" +"There’s been an error. It’s been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" + +msgid "Run the selected action" +msgstr "চিহ্নিত কাজটি শুরু করুন" + +msgid "Go" +msgstr "যান" + +msgid "Click here to select the objects across all pages" +msgstr "সকল পৃষ্ঠার দ্রব্য পছন্দ করতে এখানে ক্লিক করুন" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "%(total_count)s টি %(module_name)s এর সবগুলোই সিলেক্ট করুন" + +msgid "Clear selection" +msgstr "চিহ্নিত অংশের চিহ্ন মুছে ফেলুন" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "%(name)s এপ্লিকেশন এর মডেল গুলো" + +msgid "Add" +msgstr "যোগ করুন" + +msgid "View" +msgstr "দেখুন" + +msgid "You don’t have permission to view or edit anything." +msgstr "কোন কিছু দেখার বা সম্পাদনা/পরিবর্তন করার আপনার কোন অনুমতি নেই।" + +msgid "" +"First, enter a username and password. Then, you’ll be able to edit more user " +"options." +msgstr "" +"প্রথমে, একজন ব্যবহারকারীর নাম এবং পাসওয়ার্ড লিখুন। তাহলে, আপনি ব্যবহারকারীর " +"অন্যান্য অনেক অপশনগুলো পরিবর্তন করতে সক্ষম হবেন। " + +msgid "Enter a username and password." +msgstr "ইউজার নেইম এবং পাসওয়ার্ড টাইপ করুন।" + +msgid "Change password" +msgstr "পাসওয়ার্ড বদলান" + +msgid "Please correct the error below." +msgstr "দয়া করে নিম্নবর্ণিত ভুলটি সংশোধন করুন।" + +msgid "Please correct the errors below." +msgstr "দয়া করে নিম্নবর্ণিত ভুলগুলো সংশোধন করুন।" + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "%(username)s সদস্যের জন্য নতুন পাসওয়ার্ড দিন।" + +msgid "Welcome," +msgstr "স্বাগতম," + +msgid "View site" +msgstr "" + +msgid "Documentation" +msgstr "সহায়িকা" + +msgid "Log out" +msgstr "প্রস্থান" + +#, python-format +msgid "Add %(name)s" +msgstr "%(name)s যোগ করুন" + +msgid "History" +msgstr "ইতিহাস" + +msgid "View on site" +msgstr "সাইটে দেখুন" + +msgid "Filter" +msgstr "ফিল্টার" + +msgid "Clear all filters" +msgstr "" + +msgid "Remove from sorting" +msgstr "ক্রমানুসারে সাজানো থেকে বিরত হোন" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "সাজানোর ক্রম: %(priority_number)s" + +msgid "Toggle sorting" +msgstr "ক্রমানুসারে সাজানো চালু করুন/ বন্ধ করুন" + +msgid "Delete" +msgstr "মুছুন" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" +"%(object_name)s '%(escaped_object)s' মুছে ফেললে এর সম্পর্কিত অবজেক্টগুলোও মুছে " +"যাবে, কিন্তু আপনার নিম্নবর্ণিত অবজেক্টগুলো মোছার অধিকার নেইঃ" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" +"আপনি কি %(object_name)s \"%(escaped_object)s\" মুছে ফেলার ব্যাপারে নিশ্চিত? " +"নিম্নে বর্ণিত সকল আইটেম মুছে যাবেঃ" + +msgid "Objects" +msgstr "" + +msgid "Yes, I’m sure" +msgstr "হ্যাঁ, আমি নিশ্চিত" + +msgid "No, take me back" +msgstr "না, আমাক পূর্বের জায়গায় ফিরিয়ে নাও" + +msgid "Delete multiple objects" +msgstr "একাধিক জিনিস মুছে ফেলুন" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" + +msgid "Delete?" +msgstr "মুছে ফেলুন?" + +#, python-format +msgid " By %(filter_title)s " +msgstr " %(filter_title)s অনুযায়ী " + +msgid "Summary" +msgstr "সারসংক্ষেপ" + +msgid "Recent actions" +msgstr "" + +msgid "My actions" +msgstr "আমার করনীয়" + +msgid "None available" +msgstr "কিছুই পাওয়া যায়নি" + +msgid "Unknown content" +msgstr "অজানা বিষয়" + +msgid "" +"Something’s wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" +"আপনার ড্যাটাবেস ইন্সটলেশন করার ক্ষেত্রে কিছু সমস্যা রয়েছে। নিশ্চিত করুন যে আপনি " +"যথাযথ ড্যাটাবেস টেবিলগুলো তৈরী করেছেন এবং নিশ্চিত করুন যে উক্ত ড্যাটাবেসটি অন্যান্য " +"ব্যবহারকারী দ্বারা ব্যবহারযোগ্য হবে। " + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" + +msgid "Forgotten your password or username?" +msgstr "ইউজার নেইম অথবা পাসওয়ার্ড ভুলে গেছেন?" + +msgid "Toggle navigation" +msgstr "" + +msgid "Start typing to filter…" +msgstr "" + +msgid "Filter navigation items" +msgstr "" + +msgid "Date/time" +msgstr "তারিখ/সময়" + +msgid "User" +msgstr "সদস্য" + +msgid "Action" +msgstr "কার্য" + +msgid "entry" +msgstr "" + +msgid "entries" +msgstr "" + +msgid "" +"This object doesn’t have a change history. It probably wasn’t added via this " +"admin site." +msgstr "" + +msgid "Show all" +msgstr "সব দেখান" + +msgid "Save" +msgstr "সংরক্ষণ করুন" + +msgid "Popup closing…" +msgstr "" + +msgid "Search" +msgstr "সার্চ" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "মোট %(full_result_count)s" + +msgid "Save as new" +msgstr "নতুনভাবে সংরক্ষণ করুন" + +msgid "Save and add another" +msgstr "সংরক্ষণ করুন এবং আরেকটি যোগ করুন" + +msgid "Save and continue editing" +msgstr "সংরক্ষণ করুন এবং সম্পাদনা চালিয়ে যান" + +msgid "Save and view" +msgstr "সংরক্ষণ করুন এবং দেখুন" + +msgid "Close" +msgstr "বন্ধ করুন" + +#, python-format +msgid "Change selected %(model)s" +msgstr "%(model)s নির্বাচিত অংশটি পরিবর্তন করুন" + +#, python-format +msgid "Add another %(model)s" +msgstr "আরো একটি%(model)s যুক্ত করুন" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "%(model)s নির্বাচিত অংশটি মুছুন " + +#, python-format +msgid "View selected %(model)s" +msgstr "" + +msgid "Thanks for spending some quality time with the web site today." +msgstr "আজকে ওয়েব সাইট আপনার গুনগত সময় দেয়ার জন্য আপনাকে ধন্যবাদ।" + +msgid "Log in again" +msgstr "পুনরায় প্রবেশ করুন" + +msgid "Password change" +msgstr "পাসওয়ার্ড বদলান" + +msgid "Your password was changed." +msgstr "আপনার পাসওয়ার্ড বদলানো হয়েছে।" + +msgid "" +"Please enter your old password, for security’s sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" +"দয়া করে নিরাপত্তার জন্য আপনার পুরানো পাসওয়ার্ডটি লিখুন, এবং তারপর নতুন পাসওয়ার্ডটি " +"দুইবার লিখুন যাতে করে আপনি সঠিক পাসওয়ার্ডটি লিখেছেন কি না তা আমরা যাচাই করতে " +"পারি। " + +msgid "Change my password" +msgstr "আমার পাসওয়ার্ড পরিবর্তন করুন" + +msgid "Password reset" +msgstr "পাসওয়ার্ড রিসেট করুন" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "আপনার পাসওয়ার্ড দেয়া হয়েছে। আপনি এখন প্রবেশ (লগইন) করতে পারেন।" + +msgid "Password reset confirmation" +msgstr "পাসওয়ার্ড রিসেট নিশ্চিত করুন" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" +"অনুগ্রহ করে আপনার পাসওয়ার্ড দুবার প্রবেশ করান, যাতে আমরা যাচাই করতে পারি আপনি " +"সঠিকভাবে টাইপ করেছেন।" + +msgid "New password:" +msgstr "নতুন পাসওয়ার্ডঃ" + +msgid "Confirm password:" +msgstr "পাসওয়ার্ড নিশ্চিতকরণঃ" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"পাসওয়ার্ড রিসেট লিঙ্কটি ঠিক নয়, হয়তো এটা ইতোমধ্যে ব্যবহৃত হয়েছে। পাসওয়ার্ড " +"রিসেটের জন্য অনুগ্রহ করে নতুনভাবে আবেদন করুন।" + +msgid "" +"We’ve emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" +"আপনার পাসওয়ার্ড সংযোজন করার জন্য আমরা আপনাকে নির্দেশাবলী সম্বলিত একটি ই-মেইল " +"পাঠাবো, যদি আপনার দেয়া ই-মেইলে আইডিটি এখানে বিদ্যমান থাকে। আপনি খুব দ্রুত তা " +"পেয়ে যাবেন। " + +msgid "" +"If you don’t receive an email, please make sure you’ve entered the address " +"you registered with, and check your spam folder." +msgstr "" +"আপনি যদি কোন ই-মেইল না পেয়ে থাকে, তবে দয়া করে নিশ্চিত করুন আপনি যে ই-মেইল আইডি " +"দিয়ে নিবন্ধন করেছিলেন তা এখানে লিখেছেন, এবং আপনার স্পাম ফোল্ডার চেক করুন। " + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" +"আপনি এই ই-মেইলটি পেয়েছেন কারন আপনি %(site_name)s এ আপনার ইউজার একাউন্টের " +"পাসওয়ার্ড রিসেট এর জন্য অনুরোধ করেছেন।" + +msgid "Please go to the following page and choose a new password:" +msgstr "অনুগ্রহ করে নিচের পাতাটিতে যান এবং নতুন পাসওয়ার্ড বাছাই করুনঃ" + +msgid "Your username, in case you’ve forgotten:" +msgstr "আপনার ব্যবহারকারীর নাম, যদি আপনি ভুলে গিয়ে থাকেন:" + +msgid "Thanks for using our site!" +msgstr "আমাদের সাইট ব্যবহারের জন্য ধন্যবাদ!" + +#, python-format +msgid "The %(site_name)s team" +msgstr "%(site_name)s দল" + +msgid "" +"Forgotten your password? Enter your email address below, and we’ll email " +"instructions for setting a new one." +msgstr "" +"আপনার পাসওয়ার্ড ভুলে গিয়েছেন? নিম্নে আপনার ই-মেইল আইডি লিখুন, এবং আমরা আপনাকে " +"নতুন পাসওয়ার্ড সংযোজন করার জন্য নির্দেশাবলী সম্বলিত ই-মেইল পাঠাবো।" + +msgid "Email address:" +msgstr "ইমেইল ঠিকানা:" + +msgid "Reset my password" +msgstr "আমার পাসওয়ার্ড রিসেট করুন" + +msgid "All dates" +msgstr "সকল তারিখ" + +#, python-format +msgid "Select %s" +msgstr "%s বাছাই করুন" + +#, python-format +msgid "Select %s to change" +msgstr "%s পরিবর্তনের জন্য বাছাই করুন" + +#, python-format +msgid "Select %s to view" +msgstr "দেখার জন্য %s নির্বাচন করুন" + +msgid "Date:" +msgstr "তারিখঃ" + +msgid "Time:" +msgstr "সময়ঃ" + +msgid "Lookup" +msgstr "খুঁজুন" + +msgid "Currently:" +msgstr "বর্তমান অবস্থা:" + +msgid "Change:" +msgstr "পরিবর্তন:" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/bn/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/bn/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..b3f7f973e1a33688eed57f0c33f699ad9564300a GIT binary patch literal 2313 zcmds$ON7`4Az=eOFJWPOT_3D$fUvq5MY`6{=e#;U1P?`&BRWsfBk*+y{r1C zUE7u!o+q%L#`+%X8Lap2!VAwY;Jx6l;7;(jOx}KXs^1Ad2>os_2krrPfCs_nz)6t& z&w$&&cfk9>S|* zhVfJ24j4ZS?gOd6!(aidfP2A3@F19gP4EZsanMI{@>>8&em9f*;2)4LWn8>3&Hp}% zq4*zx6!$tv{~*abUPk)-tnP6U zQEuMWy@-pp6b-JMJeE;kMlN%Hye+caxiPQFcAy$}6n4DnfK_Bi_hkm^l)c&316I`y zaS`v1jv|O>WsHtVwGioZvTnSS4eyMM;y^2(H_i#w(z%N4>d1KWaVuze$9k>Ut7@O; z7T&0Ovyl`Aw%%)k22?JVCcWZeuXKc$U+_!i1I2Q&2t%(T`vJw=vOD4xr@Yb>FHQP~ zN(YK~a;HUXylNy=915c&pPv#+1u;J@aUdao5!FC^C3IpwP)+?3d{nC^TGFdZ(ee2) zsahfo`2MyrUB6Hm3sThn|x`9i#A!e!%u9oW|Lbs`PO}}GF(Nc z`pzbaQ{A-5*Un;%@)vG@369Gy=!Z5T<8R1wxB~U6bNFkzD^QNHr`pnb z#>N~KhkF0EpWK2cdRVc;CE6S=F;~DE{aZHq)RmS-Mj2G<*fcbWb!=XxnrS#UAuPME z4cEi6lWB6)q`iKP+2n@X*>F}XZWQa#LWT(jf{-)~3~@Lb=(^LAFJ=rY90%Uyg{&Xj zWX0z;xkP$5ItZ90mF5C`m42sMny~Ac%DzHhPEOnY+yz7%RMut`RDv`#1Eio)k?cD8 zKWE2`-Oc!KdjGfVxS*GD49xv9xC?YFIG`J@==3UOzZCr, 2011 +# Tahmid Rafi , 2013 +# Tahmid Rafi , 2014 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-05-17 23:12+0200\n" +"PO-Revision-Date: 2017-09-19 16:41+0000\n" +"Last-Translator: Jannis Leidel \n" +"Language-Team: Bengali (http://www.transifex.com/django/django/language/" +"bn/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: bn\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, javascript-format +msgid "Available %s" +msgstr "%s বিদ্যমান" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "" + +msgid "Filter" +msgstr "ফিল্টার" + +msgid "Choose all" +msgstr "সব বাছাই করুন" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "সব %s একবারে বাছাই করার জন্য ক্লিক করুন।" + +msgid "Choose" +msgstr "বাছাই করুন" + +msgid "Remove" +msgstr "মুছে ফেলুন" + +#, javascript-format +msgid "Chosen %s" +msgstr "%s বাছাই করা হয়েছে" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" + +msgid "Remove all" +msgstr "সব মুছে ফেলুন" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "" + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "" +msgstr[1] "" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" + +msgid "" +"You have selected an action, but you haven't saved your changes to " +"individual fields yet. Please click OK to save. You'll need to re-run the " +"action." +msgstr "" + +msgid "" +"You have selected an action, and you haven't made any changes on individual " +"fields. You're probably looking for the Go button rather than the Save " +"button." +msgstr "" + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "নোট: আপনি সার্ভার সময়ের চেয়ে %s ঘন্টা সামনে আছেন।" +msgstr[1] "নোট: আপনি সার্ভার সময়ের চেয়ে %s ঘন্টা সামনে আছেন।" + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "নোট: আপনি সার্ভার সময়ের চেয়ে %s ঘন্টা পেছনে আছেন।" +msgstr[1] "নোট: আপনি সার্ভার সময়ের চেয়ে %s ঘন্টা পেছনে আছেন।" + +msgid "Now" +msgstr "এখন" + +msgid "Choose a Time" +msgstr "" + +msgid "Choose a time" +msgstr "সময় নির্বাচন করুন" + +msgid "Midnight" +msgstr "মধ্যরাত" + +msgid "6 a.m." +msgstr "৬ পূর্বাহ্ন" + +msgid "Noon" +msgstr "দুপুর" + +msgid "6 p.m." +msgstr "" + +msgid "Cancel" +msgstr "বাতিল" + +msgid "Today" +msgstr "আজ" + +msgid "Choose a Date" +msgstr "" + +msgid "Yesterday" +msgstr "গতকাল" + +msgid "Tomorrow" +msgstr "আগামীকাল" + +msgid "January" +msgstr "" + +msgid "February" +msgstr "" + +msgid "March" +msgstr "" + +msgid "April" +msgstr "" + +msgid "May" +msgstr "" + +msgid "June" +msgstr "" + +msgid "July" +msgstr "" + +msgid "August" +msgstr "" + +msgid "September" +msgstr "" + +msgid "October" +msgstr "" + +msgid "November" +msgstr "" + +msgid "December" +msgstr "" + +msgctxt "one letter Sunday" +msgid "S" +msgstr "" + +msgctxt "one letter Monday" +msgid "M" +msgstr "" + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "" + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "" + +msgctxt "one letter Thursday" +msgid "T" +msgstr "" + +msgctxt "one letter Friday" +msgid "F" +msgstr "" + +msgctxt "one letter Saturday" +msgid "S" +msgstr "" + +msgid "Show" +msgstr "দেখান" + +msgid "Hide" +msgstr "লুকান" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/br/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/br/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..296f113a522fdf4cca94482910e053bd82d7767b GIT binary patch literal 6489 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/br/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/br/LC_MESSAGES/django.po new file mode 100644 index 0000000000..cbdc3593aa --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/br/LC_MESSAGES/django.po @@ -0,0 +1,671 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Fulup , 2012 +# Irriep Nala Novram , 2018 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-01-16 20:42+0100\n" +"PO-Revision-Date: 2019-01-18 00:36+0000\n" +"Last-Translator: Ramiro Morales\n" +"Language-Team: Breton (http://www.transifex.com/django/django/language/br/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: br\n" +"Plural-Forms: nplurals=5; plural=((n%10 == 1) && (n%100 != 11) && (n%100 !" +"=71) && (n%100 !=91) ? 0 :(n%10 == 2) && (n%100 != 12) && (n%100 !=72) && (n" +"%100 !=92) ? 1 :(n%10 ==3 || n%10==4 || n%10==9) && (n%100 < 10 || n% 100 > " +"19) && (n%100 < 70 || n%100 > 79) && (n%100 < 90 || n%100 > 99) ? 2 :(n != 0 " +"&& n % 1000000 == 0) ? 3 : 4);\n" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "" + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "" + +msgid "Are you sure?" +msgstr "Ha sur oc'h?" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "Dilemel %(verbose_name_plural)s diuzet" + +msgid "Administration" +msgstr "Melestradurezh" + +msgid "All" +msgstr "An holl" + +msgid "Yes" +msgstr "Ya" + +msgid "No" +msgstr "Ket" + +msgid "Unknown" +msgstr "Dianav" + +msgid "Any date" +msgstr "Forzh pegoulz" + +msgid "Today" +msgstr "Hiziv" + +msgid "Past 7 days" +msgstr "Er 7 devezh diwezhañ" + +msgid "This month" +msgstr "Ar miz-mañ" + +msgid "This year" +msgstr "Ar bloaz-mañ" + +msgid "No date" +msgstr "Deiziad ebet" + +msgid "Has date" +msgstr "D'an deiziad" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" + +msgid "Action:" +msgstr "Ober:" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "Ouzhpennañ %(verbose_name)s all" + +msgid "Remove" +msgstr "Lemel kuit" + +msgid "Addition" +msgstr "Sammañ" + +msgid "Change" +msgstr "Cheñch" + +msgid "Deletion" +msgstr "Diverkadur" + +msgid "action time" +msgstr "eur an ober" + +msgid "user" +msgstr "implijer" + +msgid "content type" +msgstr "doare endalc'had" + +msgid "object id" +msgstr "id an objed" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/library/functions.html#repr) +msgid "object repr" +msgstr "" + +msgid "action flag" +msgstr "ober banniel" + +msgid "change message" +msgstr "Kemennadenn cheñchamant" + +msgid "log entry" +msgstr "" + +msgid "log entries" +msgstr "" + +#, python-format +msgid "Added \"%(object)s\"." +msgstr "Ouzhpennet \"%(object)s\"." + +#, python-format +msgid "Changed \"%(object)s\" - %(changes)s" +msgstr "Cheñchet \"%(object)s\" - %(changes)s" + +#, python-format +msgid "Deleted \"%(object)s.\"" +msgstr "Dilamet \"%(object)s.\"" + +msgid "LogEntry Object" +msgstr "" + +#, python-brace-format +msgid "Added {name} \"{object}\"." +msgstr "Ouzhpennet {name} \"{object}\"." + +msgid "Added." +msgstr "Ouzhpennet." + +msgid "and" +msgstr "ha" + +#, python-brace-format +msgid "Changed {fields} for {name} \"{object}\"." +msgstr "Cheñchet {fields} evit {name} \"{object}\"." + +#, python-brace-format +msgid "Changed {fields}." +msgstr "Cheñchet {fields}." + +#, python-brace-format +msgid "Deleted {name} \"{object}\"." +msgstr "Dilamet {name} \"{object}\"." + +msgid "No fields changed." +msgstr "Maezienn ebet cheñchet." + +msgid "None" +msgstr "Hini ebet" + +msgid "" +"Hold down \"Control\", or \"Command\" on a Mac, to select more than one." +msgstr "" + +#, python-brace-format +msgid "The {name} \"{obj}\" was added successfully." +msgstr "" + +msgid "You may edit it again below." +msgstr "Rankout a rit ec'h aozañ adarre dindan." + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was added successfully. You may add another {name} " +"below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was changed successfully. You may edit it again below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was added successfully. You may edit it again below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was changed successfully. You may add another {name} " +"below." +msgstr "" + +#, python-brace-format +msgid "The {name} \"{obj}\" was changed successfully." +msgstr "" + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" + +msgid "No action selected." +msgstr "Ober ebet diuzet." + +#, python-format +msgid "The %(name)s \"%(obj)s\" was deleted successfully." +msgstr "" + +#, python-format +msgid "%(name)s with ID \"%(key)s\" doesn't exist. Perhaps it was deleted?" +msgstr "" + +#, python-format +msgid "Add %s" +msgstr "Ouzhpennañ %s" + +#, python-format +msgid "Change %s" +msgstr "Cheñch %s" + +#, python-format +msgid "View %s" +msgstr "Gwelet %s" + +msgid "Database error" +msgstr "Fazi diaz-roadennoù" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "%(count)s %(name)s a zo bet cheñchet mat." +msgstr[1] "%(count)s %(name)s a zo bet cheñchet mat. " +msgstr[2] "%(count)s %(name)s a zo bet cheñchet mat. " +msgstr[3] "%(count)s %(name)s a zo bet cheñchet mat." +msgstr[4] "%(count)s %(name)s a zo bet cheñchet mat." + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "%(total_count)s diuzet" +msgstr[1] "%(total_count)s diuzet" +msgstr[2] "%(total_count)s diuzet" +msgstr[3] "%(total_count)s diuzet" +msgstr[4] "Pep %(total_count)s diuzet" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "0 diwar %(cnt)s diuzet" + +#, python-format +msgid "Change history: %s" +msgstr "Istor ar cheñchadurioù: %s" + +#. Translators: Model verbose name and instance representation, +#. suitable to be an item in a list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "%(class_name)s %(instance)s" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" + +msgid "Django site admin" +msgstr "Lec'hienn verañ Django" + +msgid "Django administration" +msgstr "Merañ Django" + +msgid "Site administration" +msgstr "Merañ al lec'hienn" + +msgid "Log in" +msgstr "Kevreañ" + +#, python-format +msgid "%(app)s administration" +msgstr "" + +msgid "Page not found" +msgstr "N'eo ket bet kavet ar bajenn" + +msgid "We're sorry, but the requested page could not be found." +msgstr "" + +msgid "Home" +msgstr "Degemer" + +msgid "Server error" +msgstr "Fazi servijer" + +msgid "Server error (500)" +msgstr "Fazi servijer (500)" + +msgid "Server Error (500)" +msgstr "Fazi servijer (500)" + +msgid "" +"There's been an error. It's been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" + +msgid "Run the selected action" +msgstr "" + +msgid "Go" +msgstr "Mont" + +msgid "Click here to select the objects across all pages" +msgstr "" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "" + +msgid "Clear selection" +msgstr "Riñsañ an diuzadenn" + +msgid "" +"First, enter a username and password. Then, you'll be able to edit more user " +"options." +msgstr "" + +msgid "Enter a username and password." +msgstr "Merkit un anv implijer hag ur ger-tremen." + +msgid "Change password" +msgstr "Cheñch ger-tremen" + +msgid "Please correct the error below." +msgstr "" + +msgid "Please correct the errors below." +msgstr "" + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "" + +msgid "Welcome," +msgstr "Degemer mat," + +msgid "View site" +msgstr "" + +msgid "Documentation" +msgstr "Teulioù" + +msgid "Log out" +msgstr "Digevreañ" + +#, python-format +msgid "Add %(name)s" +msgstr "Ouzhpennañ %(name)s" + +msgid "History" +msgstr "Istor" + +msgid "View on site" +msgstr "Gwelet war al lec'hienn" + +msgid "Filter" +msgstr "Sil" + +msgid "Remove from sorting" +msgstr "" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "" + +msgid "Toggle sorting" +msgstr "Eilpennañ an diuzadenn" + +msgid "Delete" +msgstr "Diverkañ" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" + +msgid "Objects" +msgstr "" + +msgid "Yes, I'm sure" +msgstr "Ya, sur on" + +msgid "No, take me back" +msgstr "" + +msgid "Delete multiple objects" +msgstr "" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" + +msgid "View" +msgstr "" + +msgid "Delete?" +msgstr "Diverkañ ?" + +#, python-format +msgid " By %(filter_title)s " +msgstr " dre %(filter_title)s " + +msgid "Summary" +msgstr "" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "" + +msgid "Add" +msgstr "Ouzhpennañ" + +msgid "You don't have permission to view or edit anything." +msgstr "" + +msgid "Recent actions" +msgstr "" + +msgid "My actions" +msgstr "" + +msgid "None available" +msgstr "" + +msgid "Unknown content" +msgstr "Endalc'had dianav" + +msgid "" +"Something's wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" + +msgid "Forgotten your password or username?" +msgstr "Disoñjet ho ker-tremen pe hoc'h anv implijer ganeoc'h ?" + +msgid "Date/time" +msgstr "Deiziad/eur" + +msgid "User" +msgstr "Implijer" + +msgid "Action" +msgstr "Ober" + +msgid "" +"This object doesn't have a change history. It probably wasn't added via this " +"admin site." +msgstr "" + +msgid "Show all" +msgstr "Diskouez pep tra" + +msgid "Save" +msgstr "Enrollañ" + +msgid "Popup closing…" +msgstr "" + +msgid "Search" +msgstr "Klask" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "" + +msgid "Save as new" +msgstr "Enrollañ evel nevez" + +msgid "Save and add another" +msgstr "Enrollañ hag ouzhpennañ unan all" + +msgid "Save and continue editing" +msgstr "Enrollañ ha derc'hel da gemmañ" + +msgid "Save and view" +msgstr "" + +msgid "Close" +msgstr "" + +#, python-format +msgid "Change selected %(model)s" +msgstr "" + +#, python-format +msgid "Add another %(model)s" +msgstr "" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "" + +msgid "Thanks for spending some quality time with the Web site today." +msgstr "" + +msgid "Log in again" +msgstr "Kevreañ en-dro" + +msgid "Password change" +msgstr "Cheñch ho ker-tremen" + +msgid "Your password was changed." +msgstr "Cheñchet eo bet ho ker-tremen." + +msgid "" +"Please enter your old password, for security's sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" + +msgid "Change my password" +msgstr "Cheñch ma ger-tremen" + +msgid "Password reset" +msgstr "Adderaouekaat ar ger-tremen" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "" + +msgid "Password reset confirmation" +msgstr "Kadarnaat eo bet cheñchet ar ger-tremen" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" + +msgid "New password:" +msgstr "Ger-tremen nevez :" + +msgid "Confirm password:" +msgstr "Kadarnaat ar ger-tremen :" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" + +msgid "" +"We've emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" + +msgid "" +"If you don't receive an email, please make sure you've entered the address " +"you registered with, and check your spam folder." +msgstr "" + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" + +msgid "Please go to the following page and choose a new password:" +msgstr "" + +msgid "Your username, in case you've forgotten:" +msgstr "" + +msgid "Thanks for using our site!" +msgstr "Ho trugarekaat da ober gant hol lec'hienn !" + +#, python-format +msgid "The %(site_name)s team" +msgstr "" + +msgid "" +"Forgotten your password? Enter your email address below, and we'll email " +"instructions for setting a new one." +msgstr "" + +msgid "Email address:" +msgstr "" + +msgid "Reset my password" +msgstr "" + +msgid "All dates" +msgstr "An holl zeiziadoù" + +#, python-format +msgid "Select %s" +msgstr "Diuzañ %s" + +#, python-format +msgid "Select %s to change" +msgstr "" + +#, python-format +msgid "Select %s to view" +msgstr "" + +msgid "Date:" +msgstr "Deiziad :" + +msgid "Time:" +msgstr "Eur :" + +msgid "Lookup" +msgstr "Klask" + +msgid "Currently:" +msgstr "" + +msgid "Change:" +msgstr "" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/br/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/br/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..58664d0728fe6a5f19c156c0cf1cdb38ac2d07c1 GIT binary patch literal 1658 zcmZ9LzjGT!6vr152#B8vq+litk0QnN=9XyT#1KmnmOB=6tHG3;7 z)}(@hA{ER~LP14AlL}@i;qPEb$3H-qg6}(@BS$;)_Oox_d*6F|cl-CH^FIiT%dji3 zzhLje%yXD9{sCVEAA_%g{}%p#1)qSgVgKCoLX^OZ;LG3@@I7z_oB=mM*6D-i!2rGl z9vA-C;5qo;f}HmdWWDc;_>bTV@P7um?iY}s^9cMM_6IE2MH25HgBQSWK(2d;iTnQ! zPgzBHbHr@r8`RO>Wt|+fCPz$C&%hd$?b! z3>v((=iNQk4$-Yn^ttkxb~dHXJ!!kHw66xvhiEtJ>P~cH*v+D*OR2Q?Su<*QB?EG! z4H;BQ^Kr5g#Y<6Ar6ft0;%o7I93wH>S4WyPCwbK6q4XvRYxF4C^Eo*z=uA|0whq9}prjq@XZg>@(rP*ExgS1i^jYj3b zg8D$+FSlL4a&n|on4-GU@|C&L?ycRMlfx(FxYTeqD2t|!2RL0&_d{i1q_(U0bkb)k z)bBPoqm@Y>KkGpG=%#JEj<(&DR$4kd?J}j7FYTG3mnPbDzMrLJ2f3TomsaUyS)ZM? zSCg3PbxP)FW`=S%ruX4bZB(cH8vJ#NDSfIiKdmseQJwN@@YgAsC@j!}2gLo<>x+|R z?X2t?q1!wQim%`n^z9FNPL6wGLt!QU2P-6dssI20 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/br/LC_MESSAGES/djangojs.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/br/LC_MESSAGES/djangojs.po new file mode 100644 index 0000000000..3f81956168 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/br/LC_MESSAGES/djangojs.po @@ -0,0 +1,217 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Fulup , 2012 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-05-17 11:50+0200\n" +"PO-Revision-Date: 2017-09-19 16:41+0000\n" +"Last-Translator: Jannis Leidel \n" +"Language-Team: Breton (http://www.transifex.com/django/django/language/br/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: br\n" +"Plural-Forms: nplurals=5; plural=((n%10 == 1) && (n%100 != 11) && (n%100 !" +"=71) && (n%100 !=91) ? 0 :(n%10 == 2) && (n%100 != 12) && (n%100 !=72) && (n" +"%100 !=92) ? 1 :(n%10 ==3 || n%10==4 || n%10==9) && (n%100 < 10 || n% 100 > " +"19) && (n%100 < 70 || n%100 > 79) && (n%100 < 90 || n%100 > 99) ? 2 :(n != 0 " +"&& n % 1000000 == 0) ? 3 : 4);\n" + +#, javascript-format +msgid "Available %s" +msgstr "Hegerz %s" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "" + +msgid "Filter" +msgstr "Sil" + +msgid "Choose all" +msgstr "Dibab an holl" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "Klikañ evit dibab an holl %s war un dro." + +msgid "Choose" +msgstr "Dibab" + +msgid "Remove" +msgstr "Lemel kuit" + +#, javascript-format +msgid "Chosen %s" +msgstr "Dibabet %s" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" + +msgid "Remove all" +msgstr "Lemel kuit pep tra" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "Klikañ evit dilemel an holl %s dibabet war un dro." + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" + +msgid "" +"You have selected an action, but you haven't saved your changes to " +"individual fields yet. Please click OK to save. You'll need to re-run the " +"action." +msgstr "" + +msgid "" +"You have selected an action, and you haven't made any changes on individual " +"fields. You're probably looking for the Go button rather than the Save " +"button." +msgstr "" + +msgid "Now" +msgstr "Bremañ" + +msgid "Midnight" +msgstr "Hanternoz" + +msgid "6 a.m." +msgstr "6e00" + +msgid "Noon" +msgstr "Kreisteiz" + +msgid "6 p.m." +msgstr "" + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" + +msgid "Choose a Time" +msgstr "" + +msgid "Choose a time" +msgstr "Dibab un eur" + +msgid "Cancel" +msgstr "Nullañ" + +msgid "Today" +msgstr "Hiziv" + +msgid "Choose a Date" +msgstr "" + +msgid "Yesterday" +msgstr "Dec'h" + +msgid "Tomorrow" +msgstr "Warc'hoazh" + +msgid "January" +msgstr "" + +msgid "February" +msgstr "" + +msgid "March" +msgstr "" + +msgid "April" +msgstr "" + +msgid "May" +msgstr "" + +msgid "June" +msgstr "" + +msgid "July" +msgstr "" + +msgid "August" +msgstr "" + +msgid "September" +msgstr "" + +msgid "October" +msgstr "" + +msgid "November" +msgstr "" + +msgid "December" +msgstr "" + +msgctxt "one letter Sunday" +msgid "S" +msgstr "" + +msgctxt "one letter Monday" +msgid "M" +msgstr "" + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "" + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "" + +msgctxt "one letter Thursday" +msgid "T" +msgstr "" + +msgctxt "one letter Friday" +msgid "F" +msgstr "" + +msgctxt "one letter Saturday" +msgid "S" +msgstr "" + +msgid "Show" +msgstr "Diskouez" + +msgid "Hide" +msgstr "Kuzhat" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/bs/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/bs/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..f920c9bbcaae13a4185937772d1e831d41236c16 GIT binary patch literal 8845 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 E0AsPq=>Px# literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/bs/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/bs/LC_MESSAGES/django.po new file mode 100644 index 0000000000..1d7eb6e644 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/bs/LC_MESSAGES/django.po @@ -0,0 +1,657 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Filip Dupanović , 2011 +# Jannis Leidel , 2011 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-01-19 16:49+0100\n" +"PO-Revision-Date: 2017-09-19 16:41+0000\n" +"Last-Translator: Jannis Leidel \n" +"Language-Team: Bosnian (http://www.transifex.com/django/django/language/" +"bs/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: bs\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "Uspješno izbrisano %(count)d %(items)s." + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "" + +msgid "Are you sure?" +msgstr "Da li ste sigurni?" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "Izbriši odabrane %(verbose_name_plural)s" + +msgid "Administration" +msgstr "" + +msgid "All" +msgstr "Svi" + +msgid "Yes" +msgstr "Da" + +msgid "No" +msgstr "Ne" + +msgid "Unknown" +msgstr "Nepoznato" + +msgid "Any date" +msgstr "Svi datumi" + +msgid "Today" +msgstr "Danas" + +msgid "Past 7 days" +msgstr "Poslednjih 7 dana" + +msgid "This month" +msgstr "Ovaj mesec" + +msgid "This year" +msgstr "Ova godina" + +msgid "No date" +msgstr "" + +msgid "Has date" +msgstr "" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" + +msgid "Action:" +msgstr "Radnja:" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "Dodaj još jedan %(verbose_name)s" + +msgid "Remove" +msgstr "Obriši" + +msgid "action time" +msgstr "vrijeme radnje" + +msgid "user" +msgstr "" + +msgid "content type" +msgstr "" + +msgid "object id" +msgstr "id objekta" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/3/library/functions.html#repr) +msgid "object repr" +msgstr "repr objekta" + +msgid "action flag" +msgstr "oznaka radnje" + +msgid "change message" +msgstr "opis izmjene" + +msgid "log entry" +msgstr "zapis u logovima" + +msgid "log entries" +msgstr "zapisi u logovima" + +#, python-format +msgid "Added \"%(object)s\"." +msgstr "" + +#, python-format +msgid "Changed \"%(object)s\" - %(changes)s" +msgstr "" + +#, python-format +msgid "Deleted \"%(object)s.\"" +msgstr "" + +msgid "LogEntry Object" +msgstr "" + +#, python-brace-format +msgid "Added {name} \"{object}\"." +msgstr "" + +msgid "Added." +msgstr "" + +msgid "and" +msgstr "i" + +#, python-brace-format +msgid "Changed {fields} for {name} \"{object}\"." +msgstr "" + +#, python-brace-format +msgid "Changed {fields}." +msgstr "" + +#, python-brace-format +msgid "Deleted {name} \"{object}\"." +msgstr "" + +msgid "No fields changed." +msgstr "Nije bilo izmjena polja." + +msgid "None" +msgstr "Nijedan" + +msgid "" +"Hold down \"Control\", or \"Command\" on a Mac, to select more than one." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was added successfully. You may edit it again below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was added successfully. You may add another {name} " +"below." +msgstr "" + +#, python-brace-format +msgid "The {name} \"{obj}\" was added successfully." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was changed successfully. You may edit it again below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was changed successfully. You may add another {name} " +"below." +msgstr "" + +#, python-brace-format +msgid "The {name} \"{obj}\" was changed successfully." +msgstr "" + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" +"Predmeti moraju biti izabrani da bi se mogla obaviti akcija nad njima. " +"Nijedan predmet nije bio izmjenjen." + +msgid "No action selected." +msgstr "Nijedna akcija nije izabrana." + +#, python-format +msgid "The %(name)s \"%(obj)s\" was deleted successfully." +msgstr "Objekat „%(obj)s“ klase %(name)s obrisan je uspješno." + +#, python-format +msgid "%(name)s with ID \"%(key)s\" doesn't exist. Perhaps it was deleted?" +msgstr "" + +#, python-format +msgid "Add %s" +msgstr "Dodaj objekat klase %s" + +#, python-format +msgid "Change %s" +msgstr "Izmjeni objekat klase %s" + +msgid "Database error" +msgstr "Greška u bazi podataka" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "0 od %(cnt)s izabrani" + +#, python-format +msgid "Change history: %s" +msgstr "Historijat izmjena: %s" + +#. Translators: Model verbose name and instance representation, +#. suitable to be an item in a list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" + +msgid "Django site admin" +msgstr "Django administracija sajta" + +msgid "Django administration" +msgstr "Django administracija" + +msgid "Site administration" +msgstr "Administracija sistema" + +msgid "Log in" +msgstr "Prijava" + +#, python-format +msgid "%(app)s administration" +msgstr "" + +msgid "Page not found" +msgstr "Stranica nije pronađena" + +msgid "We're sorry, but the requested page could not be found." +msgstr "Žao nam je, tražena stranica nije pronađena." + +msgid "Home" +msgstr "Početna" + +msgid "Server error" +msgstr "Greška na serveru" + +msgid "Server error (500)" +msgstr "Greška na serveru (500)" + +msgid "Server Error (500)" +msgstr "Greška na serveru (500)" + +msgid "" +"There's been an error. It's been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" + +msgid "Run the selected action" +msgstr "Pokreni odabranu radnju" + +msgid "Go" +msgstr "Počni" + +msgid "Click here to select the objects across all pages" +msgstr "Kliknite ovdje da izaberete objekte preko svih stranica" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "Izaberite svih %(total_count)s %(module_name)s" + +msgid "Clear selection" +msgstr "Izbrišite izbor" + +msgid "" +"First, enter a username and password. Then, you'll be able to edit more user " +"options." +msgstr "" +"Prvo unesite korisničko ime i lozinku. Potom ćete moći da mijenjate još " +"korisničkih podešavanja." + +msgid "Enter a username and password." +msgstr "" + +msgid "Change password" +msgstr "Promjena lozinke" + +msgid "Please correct the error below." +msgstr "" + +msgid "Please correct the errors below." +msgstr "" + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "Unesite novu lozinku za korisnika %(username)s." + +msgid "Welcome," +msgstr "Dobrodošli," + +msgid "View site" +msgstr "" + +msgid "Documentation" +msgstr "Dokumentacija" + +msgid "Log out" +msgstr "Odjava" + +#, python-format +msgid "Add %(name)s" +msgstr "Dodaj objekat klase %(name)s" + +msgid "History" +msgstr "Historijat" + +msgid "View on site" +msgstr "Pregled na sajtu" + +msgid "Filter" +msgstr "Filter" + +msgid "Remove from sorting" +msgstr "" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "" + +msgid "Toggle sorting" +msgstr "" + +msgid "Delete" +msgstr "Obriši" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" +"Uklanjanje %(object_name)s „%(escaped_object)s“ povlači uklanjanje svih " +"objekata koji su povezani sa ovim objektom, ali vaš nalog nema dozvole za " +"brisanje slijedećih tipova objekata:" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" +"Da li ste sigurni da želite da obrišete %(object_name)s " +"„%(escaped_object)s“? Slijedeći objekti koji su u vezi sa ovim objektom će " +"također biti obrisani:" + +msgid "Objects" +msgstr "" + +msgid "Yes, I'm sure" +msgstr "Da, siguran sam" + +msgid "No, take me back" +msgstr "" + +msgid "Delete multiple objects" +msgstr "Brisanje više objekata" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" + +msgid "Change" +msgstr "Izmjeni" + +msgid "Delete?" +msgstr "Brisanje?" + +#, python-format +msgid " By %(filter_title)s " +msgstr " %(filter_title)s " + +msgid "Summary" +msgstr "" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "" + +msgid "Add" +msgstr "Dodaj" + +msgid "You don't have permission to edit anything." +msgstr "Nemate dozvole da unosite bilo kakve izmjene." + +msgid "Recent actions" +msgstr "" + +msgid "My actions" +msgstr "" + +msgid "None available" +msgstr "Nema podataka" + +msgid "Unknown content" +msgstr "Nepoznat sadržaj" + +msgid "" +"Something's wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" +"Nešto nije uredu sa vašom bazom podataka. Provjerite da li postoje " +"odgovarajuće tabele i da li odgovarajući korisnik ima pristup bazi." + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" + +msgid "Forgotten your password or username?" +msgstr "" + +msgid "Date/time" +msgstr "Datum/vrijeme" + +msgid "User" +msgstr "Korisnik" + +msgid "Action" +msgstr "Radnja" + +msgid "" +"This object doesn't have a change history. It probably wasn't added via this " +"admin site." +msgstr "" +"Ovaj objekat nema zabilježen historijat izmjena. Vjerovatno nije dodan kroz " +"ovaj sajt za administraciju." + +msgid "Show all" +msgstr "Prikaži sve" + +msgid "Save" +msgstr "Sačuvaj" + +msgid "Popup closing..." +msgstr "" + +#, python-format +msgid "Change selected %(model)s" +msgstr "" + +#, python-format +msgid "Add another %(model)s" +msgstr "" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "" + +msgid "Search" +msgstr "Pretraga" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "ukupno %(full_result_count)s" + +msgid "Save as new" +msgstr "Sačuvaj kao novi" + +msgid "Save and add another" +msgstr "Sačuvaj i dodaj slijedeći" + +msgid "Save and continue editing" +msgstr "Sačuvaj i nastavi sa izmjenama" + +msgid "Thanks for spending some quality time with the Web site today." +msgstr "Hvala što ste danas proveli vrijeme na ovom sajtu." + +msgid "Log in again" +msgstr "Ponovna prijava" + +msgid "Password change" +msgstr "Izmjena lozinke" + +msgid "Your password was changed." +msgstr "Vaša lozinka je izmjenjena." + +msgid "" +"Please enter your old password, for security's sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" +"Iz bezbjednosnih razloga prvo unesite svoju staru lozinku, a novu zatim " +"unesite dva puta da bismo mogli da provjerimo da li ste je pravilno unijeli." + +msgid "Change my password" +msgstr "Izmijeni moju lozinku" + +msgid "Password reset" +msgstr "Resetovanje lozinke" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "Vaša lozinka je postavljena. Možete se prijaviti." + +msgid "Password reset confirmation" +msgstr "Potvrda resetovanja lozinke" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" +"Unesite novu lozinku dva puta kako bismo mogli da provjerimo da li ste je " +"pravilno unijeli." + +msgid "New password:" +msgstr "Nova lozinka:" + +msgid "Confirm password:" +msgstr "Potvrda lozinke:" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"Link za resetovanje lozinke nije važeći, vjerovatno zato što je već " +"iskorišćen. Ponovo zatražite resetovanje lozinke." + +msgid "" +"We've emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" + +msgid "" +"If you don't receive an email, please make sure you've entered the address " +"you registered with, and check your spam folder." +msgstr "" + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" + +msgid "Please go to the following page and choose a new password:" +msgstr "Idite na slijedeću stranicu i postavite novu lozinku." + +msgid "Your username, in case you've forgotten:" +msgstr "Ukoliko ste zaboravili, vaše korisničko ime:" + +msgid "Thanks for using our site!" +msgstr "Hvala što koristite naš sajt!" + +#, python-format +msgid "The %(site_name)s team" +msgstr "Uredništvo sajta %(site_name)s" + +msgid "" +"Forgotten your password? Enter your email address below, and we'll email " +"instructions for setting a new one." +msgstr "" + +msgid "Email address:" +msgstr "" + +msgid "Reset my password" +msgstr "Resetuj moju lozinku" + +msgid "All dates" +msgstr "Svi datumi" + +#, python-format +msgid "Select %s" +msgstr "Odaberi objekat klase %s" + +#, python-format +msgid "Select %s to change" +msgstr "Odaberi objekat klase %s za izmjenu" + +msgid "Date:" +msgstr "Datum:" + +msgid "Time:" +msgstr "Vrijeme:" + +msgid "Lookup" +msgstr "Pretraži" + +msgid "Currently:" +msgstr "" + +msgid "Change:" +msgstr "" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/bs/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/bs/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..0a373ec447c7e2b239185dad14f206bb7ca543b0 GIT binary patch literal 1183 zcmb7C&2AJq5caabva@jE#7aoi9ug%Yp6MQbLOL0CNkXJq5haQSB#xfxnu#YKyJfp4 z3F5xzJ?sN;--p-(`x*$|fd}C8WI~XTkSO)1ugX2ano0tC)u%Ch3KndIc{soe~ z2UdX(z;)o)AB1Rt7r{xBgRg?u=e!BNg18H=z@!&M)eKTLJ(Vr&IKlAOmYL;w78>9WG@bQ;-)Nmu2iSurK{;sO_^#NKqUUr@E|_Aue^C^&VBj+|Tc3u*NeLqU?EPgHh4>g8o$2>Ojv}muzSQ zr$P9KnT1Vlhwd>nc2uho%O0yqL7OgEjf*cG##j}t*75OiGp3Gu$S2K#o3zgEbWUb2 zZ}mfKxv|^beR^^GyqPt&oQ-U8s?!SBi+mDWl~LNRr}yxIW9NBqM?Si!OM4C3%cpkW zN^M64J?iWD`IrUuLu236UKzRL{3H})t63O2_txpm?JU`aJnM9FT3n>$X1{gvoPMW_ zP>%R-n?LF|>P&t6l&2qzy~=`V)+`H^u}i*0395Zwu;g)E0k{r`q7lYTWBC$@?zj3IuU zo>1-i?cbcd%9*jAs3tu*atMw*YSF+=Yf?u8J+4>qG@qNi{fi0zTw`HW_f2Zt6rTVa C@, 2011 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-05-17 23:12+0200\n" +"PO-Revision-Date: 2017-09-19 16:41+0000\n" +"Last-Translator: Jannis Leidel \n" +"Language-Team: Bosnian (http://www.transifex.com/django/django/language/" +"bs/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: bs\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#, javascript-format +msgid "Available %s" +msgstr "Dostupno %s" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "" + +msgid "Filter" +msgstr "Filter" + +msgid "Choose all" +msgstr "Odaberi sve" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "" + +msgid "Choose" +msgstr "" + +msgid "Remove" +msgstr "Ukloni" + +#, javascript-format +msgid "Chosen %s" +msgstr "Odabrani %s" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" + +msgid "Remove all" +msgstr "" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "" + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "Izabran %(sel)s od %(cnt)s" +msgstr[1] "Izabrano %(sel)s od %(cnt)s" +msgstr[2] "Izabrano %(sel)s od %(cnt)s" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" +"Imate nespašene izmjene na pojedinim uređenim poljima. Ako pokrenete ovu " +"akciju, te izmjene će biti izgubljene." + +msgid "" +"You have selected an action, but you haven't saved your changes to " +"individual fields yet. Please click OK to save. You'll need to re-run the " +"action." +msgstr "" + +msgid "" +"You have selected an action, and you haven't made any changes on individual " +"fields. You're probably looking for the Go button rather than the Save " +"button." +msgstr "" + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +msgid "Now" +msgstr "" + +msgid "Choose a Time" +msgstr "" + +msgid "Choose a time" +msgstr "" + +msgid "Midnight" +msgstr "" + +msgid "6 a.m." +msgstr "" + +msgid "Noon" +msgstr "" + +msgid "6 p.m." +msgstr "" + +msgid "Cancel" +msgstr "" + +msgid "Today" +msgstr "Danas" + +msgid "Choose a Date" +msgstr "" + +msgid "Yesterday" +msgstr "" + +msgid "Tomorrow" +msgstr "" + +msgid "January" +msgstr "" + +msgid "February" +msgstr "" + +msgid "March" +msgstr "" + +msgid "April" +msgstr "" + +msgid "May" +msgstr "" + +msgid "June" +msgstr "" + +msgid "July" +msgstr "" + +msgid "August" +msgstr "" + +msgid "September" +msgstr "" + +msgid "October" +msgstr "" + +msgid "November" +msgstr "" + +msgid "December" +msgstr "" + +msgctxt "one letter Sunday" +msgid "S" +msgstr "" + +msgctxt "one letter Monday" +msgid "M" +msgstr "" + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "" + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "" + +msgctxt "one letter Thursday" +msgid "T" +msgstr "" + +msgctxt "one letter Friday" +msgid "F" +msgstr "" + +msgctxt "one letter Saturday" +msgid "S" +msgstr "" + +msgid "Show" +msgstr "" + +msgid "Hide" +msgstr "" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ca/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ca/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..46df4b0cde5336362455df93e86fd7aadfed17f6 GIT binary patch literal 17535 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 JvwJ??{{UVUsrCQ> literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ca/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ca/LC_MESSAGES/django.po new file mode 100644 index 0000000000..c89550d341 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ca/LC_MESSAGES/django.po @@ -0,0 +1,750 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Antoni Aloy , 2014-2015,2017,2021 +# Carles Barrobés , 2011-2012,2014 +# duub qnnp, 2015 +# Emilio Carrion, 2022 +# GerardoGa , 2018 +# Gil Obradors Via , 2019 +# Gil Obradors Via , 2019 +# Jannis Leidel , 2011 +# Manel Clos , 2020 +# Marc Compte , 2021 +# Roger Pons , 2015 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2022-05-17 05:10-0500\n" +"PO-Revision-Date: 2022-07-25 07:05+0000\n" +"Last-Translator: Emilio Carrion\n" +"Language-Team: Catalan (http://www.transifex.com/django/django/language/" +"ca/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ca\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "Eliminar els %(verbose_name_plural)s seleccionats" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "Eliminat/s %(count)d %(items)s satisfactòriament." + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "No es pot esborrar %(name)s" + +msgid "Are you sure?" +msgstr "N'esteu segur?" + +msgid "Administration" +msgstr "Administració" + +msgid "All" +msgstr "Tots" + +msgid "Yes" +msgstr "Sí" + +msgid "No" +msgstr "No" + +msgid "Unknown" +msgstr "Desconegut" + +msgid "Any date" +msgstr "Qualsevol data" + +msgid "Today" +msgstr "Avui" + +msgid "Past 7 days" +msgstr "Últims 7 dies" + +msgid "This month" +msgstr "Aquest mes" + +msgid "This year" +msgstr "Aquest any" + +msgid "No date" +msgstr "Sense data" + +msgid "Has date" +msgstr "Té data" + +msgid "Empty" +msgstr "Buit" + +msgid "Not empty" +msgstr "No buit" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" +"Si us plau, introduïu un %(username)s i contrasenya correctes per un compte " +"de personal. Observeu que ambdós camps són sensibles a majúscules." + +msgid "Action:" +msgstr "Acció:" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "Afegir un/a altre/a %(verbose_name)s." + +msgid "Remove" +msgstr "Eliminar" + +msgid "Addition" +msgstr "Afegeix" + +msgid "Change" +msgstr "Modificar" + +msgid "Deletion" +msgstr "Supressió" + +msgid "action time" +msgstr "moment de l'acció" + +msgid "user" +msgstr "usuari" + +msgid "content type" +msgstr "tipus de contingut" + +msgid "object id" +msgstr "id de l'objecte" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/library/functions.html#repr) +msgid "object repr" +msgstr "'repr' de l'objecte" + +msgid "action flag" +msgstr "indicador de l'acció" + +msgid "change message" +msgstr "missatge del canvi" + +msgid "log entry" +msgstr "entrada del registre" + +msgid "log entries" +msgstr "entrades del registre" + +#, python-format +msgid "Added “%(object)s”." +msgstr "Afegit \"1%(object)s\"." + +#, python-format +msgid "Changed “%(object)s” — %(changes)s" +msgstr "Modificat \"%(object)s\" - %(changes)s" + +#, python-format +msgid "Deleted “%(object)s.”" +msgstr "Eliminat \"%(object)s.\"" + +msgid "LogEntry Object" +msgstr "Objecte entrada del registre" + +#, python-brace-format +msgid "Added {name} “{object}”." +msgstr "Afegit {name} \"{object}\"." + +msgid "Added." +msgstr "Afegit." + +msgid "and" +msgstr "i" + +#, python-brace-format +msgid "Changed {fields} for {name} “{object}”." +msgstr "Canviat {fields} per {name} \"{object}\"." + +#, python-brace-format +msgid "Changed {fields}." +msgstr "Canviats {fields}." + +#, python-brace-format +msgid "Deleted {name} “{object}”." +msgstr "Eliminat {name} \"{object}\"." + +msgid "No fields changed." +msgstr "Cap camp modificat." + +msgid "None" +msgstr "cap" + +msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." +msgstr "" +"Premeu la tecla \"Control\", o \"Command\" en un Mac, per seleccionar més " +"d'un valor." + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully." +msgstr "El {name} \"{obj}\" fou afegit amb èxit." + +msgid "You may edit it again below." +msgstr "Podeu editar-lo de nou a sota." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was added successfully. You may add another {name} below." +msgstr "" +"El {name} \"{obj}\" s'ha afegit amb èxit. Podeu afegir un altre {name} a " +"sota." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may edit it again below." +msgstr "" +"El {name} \"{obj}\" fou canviat amb èxit. Podeu editar-lo de nou a sota." + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully. You may edit it again below." +msgstr "" +"El {name} \"{obj}\" s'ha afegit amb èxit. Podeu editar-lo de nou a sota." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may add another {name} " +"below." +msgstr "" +"El {name} \"{obj}\" fou canviat amb èxit. Podeu afegir un altre {name} a " +"sota." + +#, python-brace-format +msgid "The {name} “{obj}” was changed successfully." +msgstr "El {name} \"{obj}\" fou canviat amb èxit." + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" +"Heu de seleccionar els elements per poder realitzar-hi accions. No heu " +"seleccionat cap element." + +msgid "No action selected." +msgstr "No heu seleccionat cap acció." + +#, python-format +msgid "The %(name)s “%(obj)s” was deleted successfully." +msgstr "El/la %(name)s \"%(obj)s\" s'ha eliminat amb èxit." + +#, python-format +msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" +msgstr "%(name)s amb ID \"%(key)s\" no existeix. Potser va ser eliminat?" + +#, python-format +msgid "Add %s" +msgstr "Afegir %s" + +#, python-format +msgid "Change %s" +msgstr "Modificar %s" + +#, python-format +msgid "View %s" +msgstr "Visualitza %s" + +msgid "Database error" +msgstr "Error de base de dades" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "%(count)s %(name)s s'ha modificat amb èxit." +msgstr[1] "%(count)s %(name)s s'han modificat amb èxit." + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "%(total_count)s seleccionat(s)" +msgstr[1] "Tots %(total_count)s seleccionat(s)" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "0 de %(cnt)s seleccionats" + +#, python-format +msgid "Change history: %s" +msgstr "Modificar històric: %s" + +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "%(class_name)s %(instance)s" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" +"Esborrar %(class_name)s %(instance)s requeriria esborrar els següents " +"objectes relacionats protegits: %(related_objects)s" + +msgid "Django site admin" +msgstr "Lloc administratiu de Django" + +msgid "Django administration" +msgstr "Administració de Django" + +msgid "Site administration" +msgstr "Administració del lloc" + +msgid "Log in" +msgstr "Iniciar sessió" + +#, python-format +msgid "%(app)s administration" +msgstr "Administració de %(app)s" + +msgid "Page not found" +msgstr "No s'ha pogut trobar la pàgina" + +msgid "We’re sorry, but the requested page could not be found." +msgstr "Ho sentim, però no s'ha pogut trobar la pàgina sol·licitada" + +msgid "Home" +msgstr "Inici" + +msgid "Server error" +msgstr "Error del servidor" + +msgid "Server error (500)" +msgstr "Error del servidor (500)" + +msgid "Server Error (500)" +msgstr "Error del servidor (500)" + +msgid "" +"There’s been an error. It’s been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" +"S'ha produït un error. Se n'ha informat els administradors del lloc per " +"correu electrònic, i hauria d'arreglar-se en breu. Gràcies per la vostra " +"paciència." + +msgid "Run the selected action" +msgstr "Executar l'acció seleccionada" + +msgid "Go" +msgstr "Anar" + +msgid "Click here to select the objects across all pages" +msgstr "Feu clic aquí per seleccionar els objectes a totes les pàgines" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "Seleccioneu tots %(total_count)s %(module_name)s" + +msgid "Clear selection" +msgstr "Netejar la selecció" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "Models en l'aplicació %(name)s" + +msgid "Add" +msgstr "Afegir" + +msgid "View" +msgstr "Visualitza" + +msgid "You don’t have permission to view or edit anything." +msgstr "No teniu permisos per veure o editar" + +msgid "" +"First, enter a username and password. Then, you’ll be able to edit more user " +"options." +msgstr "" +"Primer, entreu un nom d'usuari i una contrasenya. Després podreu editar més " +"opcions de l'usuari." + +msgid "Enter a username and password." +msgstr "Introduïu un nom d'usuari i contrasenya." + +msgid "Change password" +msgstr "Canviar contrasenya" + +msgid "Please correct the error below." +msgstr "Si us plau, corregiu l'error de sota." + +msgid "Please correct the errors below." +msgstr "Si us plau, corregiu els errors mostrats a sota." + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "Introduïu una contrasenya per l'usuari %(username)s" + +msgid "Welcome," +msgstr "Benvingut/da," + +msgid "View site" +msgstr "Veure lloc" + +msgid "Documentation" +msgstr "Documentació" + +msgid "Log out" +msgstr "Finalitzar sessió" + +#, python-format +msgid "Add %(name)s" +msgstr "Afegir %(name)s" + +msgid "History" +msgstr "Històric" + +msgid "View on site" +msgstr "Veure al lloc" + +msgid "Filter" +msgstr "Filtre" + +msgid "Clear all filters" +msgstr "Netejar tots els filtres" + +msgid "Remove from sorting" +msgstr "Treure de la ordenació" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "Prioritat d'ordenació: %(priority_number)s" + +msgid "Toggle sorting" +msgstr "Commutar ordenació" + +msgid "Delete" +msgstr "Eliminar" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" +"Eliminar el/la %(object_name)s '%(escaped_object)s' provocaria l'eliminació " +"d'objectes relacionats, però el vostre compte no te permisos per esborrar " +"els tipus d'objecte següents:" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" +"Esborrar %(object_name)s '%(escaped_object)s' requeriria esborrar els " +"següents objectes relacionats protegits:" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" +"Esteu segurs de voler esborrar els/les %(object_name)s \"%(escaped_object)s" +"\"? S'esborraran els següents elements relacionats:" + +msgid "Objects" +msgstr "Objectes" + +msgid "Yes, I’m sure" +msgstr "Sí, n'estic segur" + +msgid "No, take me back" +msgstr "No, torna endarrere" + +msgid "Delete multiple objects" +msgstr "Eliminar múltiples objectes" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" +"Esborrar els %(objects_name)s seleccionats faria que s'esborréssin objectes " +"relacionats, però el vostre compte no té permisos per esborrar els següents " +"tipus d'objectes:" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" +"Esborrar els %(objects_name)s seleccionats requeriria esborrar els següents " +"objectes relacionats protegits:" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" +"N'esteu segur de voler esborrar els %(objects_name)s seleccionats? " +"S'esborraran tots els objects següents i els seus elements relacionats:" + +msgid "Delete?" +msgstr "Eliminar?" + +#, python-format +msgid " By %(filter_title)s " +msgstr "Per %(filter_title)s " + +msgid "Summary" +msgstr "Resum" + +msgid "Recent actions" +msgstr "Accions recents" + +msgid "My actions" +msgstr "Les meves accions" + +msgid "None available" +msgstr "Cap disponible" + +msgid "Unknown content" +msgstr "Contingut desconegut" + +msgid "" +"Something’s wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" +"Hi ha algun problema a la instal·lació de la vostra base de dades. Assegureu-" +"vos que s'han creat les taules adients, i que la base de dades és llegible " +"per l'usuari apropiat." + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" +"Esteu identificats com a %(username)s, però no esteu autoritzats a accedir a " +"aquesta pàgina. Voleu identificar-vos amb un compte d'usuari diferent?" + +msgid "Forgotten your password or username?" +msgstr "Heu oblidat la vostra contrasenya o nom d'usuari?" + +msgid "Toggle navigation" +msgstr "Canviar mode de navegació" + +msgid "Start typing to filter…" +msgstr "Comença a teclejar per filtrar ..." + +msgid "Filter navigation items" +msgstr "Filtrar els items de navegació" + +msgid "Date/time" +msgstr "Data/hora" + +msgid "User" +msgstr "Usuari" + +msgid "Action" +msgstr "Acció" + +msgid "entry" +msgstr "entrada" + +msgid "entries" +msgstr "entrades" + +msgid "" +"This object doesn’t have a change history. It probably wasn’t added via this " +"admin site." +msgstr "" +"Aquest objecte no té historial de canvis. Probablement no es va afegir " +"utilitzant aquest lloc administratiu." + +msgid "Show all" +msgstr "Mostrar tots" + +msgid "Save" +msgstr "Desar" + +msgid "Popup closing…" +msgstr "Tancant finestra emergent..." + +msgid "Search" +msgstr "Cerca" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "%(counter)s resultat" +msgstr[1] "%(counter)s resultats" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "%(full_result_count)s en total" + +msgid "Save as new" +msgstr "Desar com a nou" + +msgid "Save and add another" +msgstr "Desar i afegir-ne un de nou" + +msgid "Save and continue editing" +msgstr "Desar i continuar editant" + +msgid "Save and view" +msgstr "Desa i visualitza" + +msgid "Close" +msgstr "Tanca" + +#, python-format +msgid "Change selected %(model)s" +msgstr "Canvieu el %(model)s seleccionat" + +#, python-format +msgid "Add another %(model)s" +msgstr "Afegeix un altre %(model)s" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "Esborra el %(model)s seleccionat" + +#, python-format +msgid "View selected %(model)s" +msgstr "Vista seleccionada %(model)s" + +msgid "Thanks for spending some quality time with the web site today." +msgstr "Gràcies per dedicar temps de qualitat avui a aquesta web." + +msgid "Log in again" +msgstr "Iniciar sessió de nou" + +msgid "Password change" +msgstr "Canvi de contrasenya" + +msgid "Your password was changed." +msgstr "La seva contrasenya ha estat canviada." + +msgid "" +"Please enter your old password, for security’s sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" +"Si us plau, introduïu la vostra contrasenya antiga, per seguretat, i tot " +"seguit introduïu la vostra contrasenya nova dues vegades per verificar que " +"l'heu escrita correctament." + +msgid "Change my password" +msgstr "Canviar la meva contrasenya:" + +msgid "Password reset" +msgstr "Restablir contrasenya" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "" +"S'ha canviat la vostra contrasenya. Ara podeu continuar i iniciar sessió." + +msgid "Password reset confirmation" +msgstr "Confirmació de restabliment de contrasenya" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" +"Si us plau, introduïu la vostra nova contrasenya dues vegades, per verificar " +"que l'heu escrita correctament." + +msgid "New password:" +msgstr "Contrasenya nova:" + +msgid "Confirm password:" +msgstr "Confirmar contrasenya:" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"L'enllaç de restabliment de contrasenya era invàlid, potser perquè ja s'ha " +"utilitzat. Si us plau, sol·liciteu un nou reestabliment de contrasenya." + +msgid "" +"We’ve emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" +"Li hem enviat instruccions per establir la seva contrasenya, donat que hi " +"hagi un compte associat al correu introduït. L'hauríeu de rebre en breu." + +msgid "" +"If you don’t receive an email, please make sure you’ve entered the address " +"you registered with, and check your spam folder." +msgstr "" +"Si no rebeu un correu, assegureu-vos que heu introduït l'adreça amb la que " +"us vau registrar, i comproveu la vostra carpeta de \"spam\"." + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" +"Heu rebut aquest correu perquè vau sol·licitar restablir la contrasenya per " +"al vostre compte d'usuari a %(site_name)s." + +msgid "Please go to the following page and choose a new password:" +msgstr "Si us plau, aneu a la pàgina següent i escolliu una nova contrasenya:" + +msgid "Your username, in case you’ve forgotten:" +msgstr "El vostre nom d'usuari, en cas que l'hagueu oblidat:" + +msgid "Thanks for using our site!" +msgstr "Gràcies per fer ús del nostre lloc!" + +#, python-format +msgid "The %(site_name)s team" +msgstr "L'equip de %(site_name)s" + +msgid "" +"Forgotten your password? Enter your email address below, and we’ll email " +"instructions for setting a new one." +msgstr "" +"Heu oblidat la vostra contrasenya? Introduïu la vostra adreça de correu " +"electrònic a sota, i us enviarem instruccions per canviar-la." + +msgid "Email address:" +msgstr "Adreça de correu electrònic:" + +msgid "Reset my password" +msgstr "Restablir la meva contrasenya" + +msgid "All dates" +msgstr "Totes les dates" + +#, python-format +msgid "Select %s" +msgstr "Seleccioneu %s" + +#, python-format +msgid "Select %s to change" +msgstr "Seleccioneu %s per modificar" + +#, python-format +msgid "Select %s to view" +msgstr "Selecciona %s per a veure" + +msgid "Date:" +msgstr "Data:" + +msgid "Time:" +msgstr "Hora:" + +msgid "Lookup" +msgstr "Cercar" + +msgid "Currently:" +msgstr "Actualment:" + +msgid "Change:" +msgstr "Canviar:" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ca/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ca/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..44b9c4b6de23e685c9d449837493182b6fa8397c GIT binary patch literal 6075 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ca/LC_MESSAGES/djangojs.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ca/LC_MESSAGES/djangojs.po new file mode 100644 index 0000000000..29795f2012 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ca/LC_MESSAGES/djangojs.po @@ -0,0 +1,330 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Antoni Aloy , 2017,2021 +# Carles Barrobés , 2011-2012,2014 +# Carlton Gibson , 2023 +# Emilio Carrion, 2022 +# Jannis Leidel , 2011 +# Roger Pons , 2015 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-09-18 15:04-0300\n" +"PO-Revision-Date: 2023-12-04 07:59+0000\n" +"Last-Translator: Carlton Gibson , 2023\n" +"Language-Team: Catalan (http://app.transifex.com/django/django/language/" +"ca/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ca\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, javascript-format +msgid "Available %s" +msgstr "%s Disponibles" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" +"Aquesta és la llista de %s disponibles. En podeu escollir alguns " +"seleccionant-los a la caixa de sota i fent clic a la fletxa \"Escollir\" " +"entre les dues caixes." + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "Escriviu en aquesta caixa per a filtrar la llista de %s disponibles." + +msgid "Filter" +msgstr "Filtre" + +msgid "Choose all" +msgstr "Escollir-los tots" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "Feu clic per escollir tots els %s d'un cop." + +msgid "Choose" +msgstr "Escollir" + +msgid "Remove" +msgstr "Eliminar" + +#, javascript-format +msgid "Chosen %s" +msgstr "Escollit %s" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" +"Aquesta és la llista de %s escollits. En podeu eliminar alguns seleccionant-" +"los a la caixa de sota i fent clic a la fletxa \"Eliminar\" entre les dues " +"caixes." + +#, javascript-format +msgid "Type into this box to filter down the list of selected %s." +msgstr "Escriviu en aquesta caixa per a filtrar la llista de %s seleccionats." + +msgid "Remove all" +msgstr "Esborrar-los tots" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "Feu clic per eliminar tots els %s escollits d'un cop." + +#, javascript-format +msgid "%s selected option not visible" +msgid_plural "%s selected options not visible" +msgstr[0] "%s opcion seleccionada no visible" +msgstr[1] "%s opcions seleccionades no visibles" + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "%(sel)s de %(cnt)s seleccionat" +msgstr[1] "%(sel)s of %(cnt)s seleccionats" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" +"Teniu canvis sense desar a camps editables individuals. Si executeu una " +"acció, es perdran aquests canvis no desats." + +msgid "" +"You have selected an action, but you haven’t saved your changes to " +"individual fields yet. Please click OK to save. You’ll need to re-run the " +"action." +msgstr "" +"Has seleccionat una acció, però encara no l'has desat els canvis dels camps " +"individuals. Si us plau clica OK per desar. Necessitaràs tornar a executar " +"l'acció." + +msgid "" +"You have selected an action, and you haven’t made any changes on individual " +"fields. You’re probably looking for the Go button rather than the Save " +"button." +msgstr "" +"Has seleccionat una acció i no has fet cap canvi als camps individuals. " +"Probablement estàs cercant el botó Anar enlloc del botó de Desar." + +msgid "Now" +msgstr "Ara" + +msgid "Midnight" +msgstr "Mitjanit" + +msgid "6 a.m." +msgstr "6 a.m." + +msgid "Noon" +msgstr "Migdia" + +msgid "6 p.m." +msgstr "6 p.m." + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "Nota: Aneu %s hora avançats respecte la hora del servidor." +msgstr[1] "Nota: Aneu %s hores avançats respecte la hora del servidor." + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "Nota: Aneu %s hora endarrerits respecte la hora del servidor." +msgstr[1] "Nota: Aneu %s hores endarrerits respecte la hora del servidor." + +msgid "Choose a Time" +msgstr "Escolliu una hora" + +msgid "Choose a time" +msgstr "Escolliu una hora" + +msgid "Cancel" +msgstr "Cancel·lar" + +msgid "Today" +msgstr "Avui" + +msgid "Choose a Date" +msgstr "Escolliu una data" + +msgid "Yesterday" +msgstr "Ahir" + +msgid "Tomorrow" +msgstr "Demà" + +msgid "January" +msgstr "Gener" + +msgid "February" +msgstr "Febrer" + +msgid "March" +msgstr "Març" + +msgid "April" +msgstr "Abril" + +msgid "May" +msgstr "Maig" + +msgid "June" +msgstr "Juny" + +msgid "July" +msgstr "Juliol" + +msgid "August" +msgstr "Agost" + +msgid "September" +msgstr "Setembre" + +msgid "October" +msgstr "Octubre" + +msgid "November" +msgstr "Novembre" + +msgid "December" +msgstr "Desembre" + +msgctxt "abbrev. month January" +msgid "Jan" +msgstr "Gen" + +msgctxt "abbrev. month February" +msgid "Feb" +msgstr "Feb" + +msgctxt "abbrev. month March" +msgid "Mar" +msgstr "Mar" + +msgctxt "abbrev. month April" +msgid "Apr" +msgstr "Abr" + +msgctxt "abbrev. month May" +msgid "May" +msgstr "Mai" + +msgctxt "abbrev. month June" +msgid "Jun" +msgstr "Jun" + +msgctxt "abbrev. month July" +msgid "Jul" +msgstr "Jul" + +msgctxt "abbrev. month August" +msgid "Aug" +msgstr "Ago" + +msgctxt "abbrev. month September" +msgid "Sep" +msgstr "Sep" + +msgctxt "abbrev. month October" +msgid "Oct" +msgstr "Oct" + +msgctxt "abbrev. month November" +msgid "Nov" +msgstr "Nov" + +msgctxt "abbrev. month December" +msgid "Dec" +msgstr "Des" + +msgid "Sunday" +msgstr "Diumenge" + +msgid "Monday" +msgstr "Dilluns" + +msgid "Tuesday" +msgstr "Dimarts" + +msgid "Wednesday" +msgstr "Dimecres" + +msgid "Thursday" +msgstr "Dijous" + +msgid "Friday" +msgstr "Divendres" + +msgid "Saturday" +msgstr "Dissabte" + +msgctxt "abbrev. day Sunday" +msgid "Sun" +msgstr "dg." + +msgctxt "abbrev. day Monday" +msgid "Mon" +msgstr "dl." + +msgctxt "abbrev. day Tuesday" +msgid "Tue" +msgstr "dt." + +msgctxt "abbrev. day Wednesday" +msgid "Wed" +msgstr "dc." + +msgctxt "abbrev. day Thursday" +msgid "Thur" +msgstr "dj." + +msgctxt "abbrev. day Friday" +msgid "Fri" +msgstr "dv." + +msgctxt "abbrev. day Saturday" +msgid "Sat" +msgstr "ds." + +msgctxt "one letter Sunday" +msgid "S" +msgstr "D" + +msgctxt "one letter Monday" +msgid "M" +msgstr "L" + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "M" + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "X" + +msgctxt "one letter Thursday" +msgid "T" +msgstr "J" + +msgctxt "one letter Friday" +msgid "F" +msgstr "V" + +msgctxt "one letter Saturday" +msgid "S" +msgstr "S" + +msgid "Show" +msgstr "Mostrar" + +msgid "Hide" +msgstr "Ocultar" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ckb/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ckb/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..686f0925f3cb180bf5b15beecf644e850faee974 GIT binary patch literal 23234 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ckb/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ckb/LC_MESSAGES/django.po new file mode 100644 index 0000000000..b3157f5b2e --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ckb/LC_MESSAGES/django.po @@ -0,0 +1,792 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Abdulla Dlshad, 2023 +# Bakhtawar Barzan, 2021 +# Bakhtawar Barzan, 2021 +# Kosar Tofiq Saeed , 2020 +# pejar hewrami , 2020 +# Swara , 2022,2024 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-05-22 11:46-0300\n" +"PO-Revision-Date: 2024-08-07 07:05+0000\n" +"Last-Translator: Swara , 2022,2024\n" +"Language-Team: Central Kurdish (http://app.transifex.com/django/django/" +"language/ckb/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ckb\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "%(verbose_name_plural)sە هەڵبژێردراوەکان بسڕەوە" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "سەرکەوتووانە %(count)d %(items)sی سڕییەوە." + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "ناتوانرێت %(name)s بسڕێتەوە" + +msgid "Are you sure?" +msgstr "ئایا تۆ دڵنیایت؟" + +msgid "Administration" +msgstr "بەڕێوەبەرایەتی" + +msgid "All" +msgstr "هەمووی" + +msgid "Yes" +msgstr "بەڵێ" + +msgid "No" +msgstr "نەخێر" + +msgid "Unknown" +msgstr "نەزانراو" + +msgid "Any date" +msgstr "هەر بەروارێک" + +msgid "Today" +msgstr "ئەمڕۆ" + +msgid "Past 7 days" +msgstr "7 ڕۆژی ڕابردوو" + +msgid "This month" +msgstr "ئەم مانگە" + +msgid "This year" +msgstr "ئەمساڵ" + +msgid "No date" +msgstr "بەروار نییە" + +msgid "Has date" +msgstr "بەرواری هەیە" + +msgid "Empty" +msgstr "بەتاڵ" + +msgid "Not empty" +msgstr "بەتاڵ نییە" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" +"تکایە %(username)s و تێپەڕەوشە دروستەکە بنوسە بۆ هەژمارێکی ستاف. تێبینی بکە " +"لەوانەیە هەردوو خانەکە دۆخی هەستیار بێت بۆ پیتەکان." + +msgid "Action:" +msgstr "کردار:" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "زیادکردنی %(verbose_name)sی تر" + +msgid "Remove" +msgstr "لابردن" + +msgid "Addition" +msgstr "خستنەسەر" + +msgid "Change" +msgstr "گۆڕین" + +msgid "Deletion" +msgstr "سڕینەوە" + +msgid "action time" +msgstr "کاتی کردار" + +msgid "user" +msgstr "بەکارهێنەر" + +msgid "content type" +msgstr "جۆری ناوەڕۆک" + +msgid "object id" +msgstr "ناسنامەی ئۆبجێکت" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/library/functions.html#repr) +msgid "object repr" +msgstr "نوێنەرایەتی ئۆبجێکت" + +msgid "action flag" +msgstr "ئاڵای کردار" + +msgid "change message" +msgstr "گۆڕینی پەیام" + +msgid "log entry" +msgstr "ڕاپۆرتی تۆمار" + +msgid "log entries" +msgstr "ڕاپۆرتی تۆمارەکان" + +#, python-format +msgid "Added “%(object)s”." +msgstr "\"%(object)s\"ی زیادکرد." + +#, python-format +msgid "Changed “%(object)s” — %(changes)s" +msgstr "\"%(object)s\"— %(changes)s گۆڕدرا" + +#, python-format +msgid "Deleted “%(object)s.”" +msgstr "\"%(object)s\" سڕایەوە." + +msgid "LogEntry Object" +msgstr "ئۆبجێکتی ڕاپۆرتی تۆمار" + +#, python-brace-format +msgid "Added {name} “{object}”." +msgstr "{name} \"{object}\" زیادکرا." + +msgid "Added." +msgstr "زیادکرا." + +msgid "and" +msgstr "و" + +#, python-brace-format +msgid "Changed {fields} for {name} “{object}”." +msgstr "{fields} بۆ {name} “{object}” گۆڕدرا." + +#, python-brace-format +msgid "Changed {fields}." +msgstr "{fields} گۆڕدرا." + +#, python-brace-format +msgid "Deleted {name} “{object}”." +msgstr "{name} “{object}” سڕایەوە." + +msgid "No fields changed." +msgstr "هیچ خانەیەک نەگۆڕاوە." + +msgid "None" +msgstr "هیچ" + +msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." +msgstr "" +"پەنجە داگرە لەسەر “Control”، یاخود “Command” لەسەر ماک، بۆ هەڵبژاردنی " +"دانەیەک زیاتر." + +msgid "Select this object for an action - {}" +msgstr "ئەم تەنە هەڵبژێرە بۆ کردارێک - {}" + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully." +msgstr "{name} “{obj}” بەسەرکەوتوویی زیادکرا." + +msgid "You may edit it again below." +msgstr "دەگونجێت تۆ دووبارە لەخوارەوە دەستکاری بکەیت." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was added successfully. You may add another {name} below." +msgstr "" +"{name} “{obj}” بەسەرکەوتوویی زیادکرا. دەگونجێت تۆ لە خوارەوە {name}یەکی تر " +"زیادبکەیت." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may edit it again below." +msgstr "" +"{name} “{obj}” بەسەرکەوتوویی گۆڕدرا. دەگونجێت تۆ لە خوارەوە دووبارە دەستکاری " +"بکەیتەوە." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may add another {name} " +"below." +msgstr "" +"{name} “{obj}” بەسەرکەوتوویی گۆڕدرا. دەگونجێت تۆ لە خوارەوە {name}یەکی تر " +"زیاد بکەیت." + +#, python-brace-format +msgid "The {name} “{obj}” was changed successfully." +msgstr "{name}ی “{obj}” بەسەرکەوتوویی گۆڕدرا." + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" +"دەبێت بڕگەکان هەڵبژێردرابن تاوەکو کرداریان لەسەر ئەنجام بدەیت. هیچ بڕگەیەک " +"نەگۆڕدراوە." + +msgid "No action selected." +msgstr "هیچ کردارێک هەڵنەبژێردراوە." + +#, python-format +msgid "The %(name)s “%(obj)s” was deleted successfully." +msgstr "%(name)s\"%(obj)s\" بەسەرکەوتوویی سڕدرایەوە." + +#, python-format +msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" +msgstr "%(name)s بە ناسنامەی \"%(key)s\" بوونی نییە. لەوانەیە سڕدرابێتەوە؟" + +#, python-format +msgid "Add %s" +msgstr "زیادکردنی %s" + +#, python-format +msgid "Change %s" +msgstr "گۆڕینی %s" + +#, python-format +msgid "View %s" +msgstr "بینینی %s" + +msgid "Database error" +msgstr "هەڵەی بنکەدراوە" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "%(count)s %(name)s بەسەرکەوتوویی گۆڕدرا." +msgstr[1] "%(count)s %(name)s بەسەرکەوتوویی گۆڕدران." + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "%(total_count)s هەڵبژێردراوە" +msgstr[1] "هەمووی %(total_count)s هەڵبژێردراون" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "0 لە %(cnt)s هەڵبژێردراوە" + +#, python-format +msgid "Change history: %s" +msgstr "مێژووی گۆڕین: %s" + +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "%(instance)sی %(class_name)s" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" +"سڕینەوەی %(instance)sی %(class_name)s پێویستی بە سڕینەوەی ئەم ئۆبجێکتە " +"پەیوەندیدارە پارێزراوانەیە: %(related_objects)s" + +msgid "Django site admin" +msgstr "بەڕێوەبەری پێگەی جەنگۆ" + +msgid "Django administration" +msgstr "بەڕێوەبەرایەتی جەنگۆ" + +msgid "Site administration" +msgstr "بەڕێوەبەرایەتی پێگە" + +msgid "Log in" +msgstr "چوونەژوورەوە" + +#, python-format +msgid "%(app)s administration" +msgstr "بەڕێوەبەرایەتی %(app)s" + +msgid "Page not found" +msgstr "پەڕە نەدۆزرایەوە" + +msgid "We’re sorry, but the requested page could not be found." +msgstr "داوای لێبوردن ئەکەین، بەڵام ناتوانرێت پەڕەی داواکراو بدۆزرێتەوە." + +msgid "Home" +msgstr "ماڵەوە" + +msgid "Server error" +msgstr "هەڵەی ڕاژەکار" + +msgid "Server error (500)" +msgstr "هەڵەی ڕاژەکار (500)" + +msgid "Server Error (500)" +msgstr "هەڵەی ڕاژەکار (500)" + +msgid "" +"There’s been an error. It’s been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" +"هەڵەیەک بوونی هەبووە. ڕاپۆرت دراوە بە پێگەی بەڕێوەبەرایەتی لەڕێی ئیمەیڵەوە و " +"دەبێت بەزوویی چاکبکرێت. سوپاس بۆ ئارامگرتنت." + +msgid "Run the selected action" +msgstr "کرداری هەڵبژێردراو جێبەجێ بکە" + +msgid "Go" +msgstr "بڕۆ" + +msgid "Click here to select the objects across all pages" +msgstr "کرتە لێرە بکە بۆ هەڵبژاردنی ئۆبجێکتەکان لە تەواوی هەموو پەڕەکان" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "هەموو %(total_count)s %(module_name)s هەڵبژێرە" + +msgid "Clear selection" +msgstr "پاککردنەوەی هەڵبژاردن" + +msgid "Breadcrumbs" +msgstr "وردەنان" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "مۆدێلەکان لە بەرنامەی %(name)s" + +msgid "Add" +msgstr "زیادکردن" + +msgid "View" +msgstr "بینین" + +msgid "You don’t have permission to view or edit anything." +msgstr "تۆ ڕێگەپێدراو نیت بۆ بینین یان دەستکاری هیچ شتێک." + +msgid "" +"First, enter a username and password. Then, you’ll be able to edit more user " +"options." +msgstr "" +"سەرەتا، ناوی بەکارهێنەر و تێپەڕەوشە بنوسە. پاشان دەتوانیت دەستکاری زیاتری " +"هەڵبژاردنەکانی بەکارهێنەر بکەیت." + +msgid "Enter a username and password." +msgstr "ناوی بەکارهێنەر و تێپەڕەوشە بنوسە" + +msgid "Change password" +msgstr "گۆڕینی تێپەڕەوشە" + +msgid "Set password" +msgstr "دانانی تێپەڕەوشە" + +msgid "Please correct the error below." +msgid_plural "Please correct the errors below." +msgstr[0] "تکایە ئەم هەڵەیەی خوارەوە ڕاست بکەرەوە." +msgstr[1] "تکایە هەڵەکانی خوارەوە ڕاست بکەرەوە." + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "تێپەڕەوشەی نوێ بۆ بەکارهێنەری %(username)s بنوسە" + +msgid "" +"This action will enable password-based authentication for " +"this user." +msgstr "" +"ئەم کردارە چالاک دەکات لەسەر بنەمای تێپەڕەوشەی ئەم " +"بەکارهێنەرە." + +msgid "Disable password-based authentication" +msgstr "ناچالاککردنی ڕەسەنایەتی لەسەر بنەمای تێپەڕەوشە" + +msgid "Enable password-based authentication" +msgstr "چالاککردنی ڕەسەنایەتی لەسەر بنەمای تێپەڕەوشە" + +msgid "Skip to main content" +msgstr "تێیپەڕێنە بۆ ناوەڕۆکی سەرەکی" + +msgid "Welcome," +msgstr "بەخێربێیت،" + +msgid "View site" +msgstr "بینینی پێگە" + +msgid "Documentation" +msgstr "بەڵگەنامە" + +msgid "Log out" +msgstr "چوونەدەرەوە" + +#, python-format +msgid "Add %(name)s" +msgstr "زیادکردنی %(name)s" + +msgid "History" +msgstr "مێژوو" + +msgid "View on site" +msgstr "بینین لەسەر پێگە" + +msgid "Filter" +msgstr "پاڵاوتن" + +msgid "Hide counts" +msgstr "ژماردن بشارەوە" + +msgid "Show counts" +msgstr "ژماردن پیشانبدە" + +msgid "Clear all filters" +msgstr "پاکردنەوەی هەموو پاڵاوتنەکان" + +msgid "Remove from sorting" +msgstr "لابردن لە ڕیزکردن" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "ڕیزکردنی لە پێشینە: %(priority_number)s" + +msgid "Toggle sorting" +msgstr "ڕیزکردنی پێچەوانە" + +msgid "Toggle theme (current theme: auto)" +msgstr "گۆڕینی ڕووکار (ڕووکاری ئێستا: خۆکار)" + +msgid "Toggle theme (current theme: light)" +msgstr "گۆڕینی ڕووکار (ڕووکاری ئێستا: ڕووناک)" + +msgid "Toggle theme (current theme: dark)" +msgstr "گۆڕینی ڕووکار (ڕووکاری ئێستا: تاریک)" + +msgid "Delete" +msgstr "سڕینەوە" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" +"سڕینەوەی %(object_name)s ‘%(escaped_object)s‘ دەبێتە هۆی سڕینەوەی ئۆبجێکتی " +"پەیوەندیدار، بەڵام هەژمارەکەت ڕێگەپێدراو نییە بۆ سڕینەوەی ئەم جۆرە " +"ئۆبجێکتانەی تر:" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" +"سڕینەوەی %(object_name)sی ‘%(escaped_object)s‘ پێویستیی بە سڕینەوەی ئەم " +"ئۆبجێکتە پەیوەندیدارە پارێزراوانەیە:" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" +"ئایا تۆ دڵنیایت کە دەتەوێت %(object_name)sی \"%(escaped_object)s\" بسڕیتەوە؟ " +"هەموو ئەم ئۆبجێکتە پەیوەندیدارانەش دەسڕێتەوە:" + +msgid "Objects" +msgstr "ئۆبجێکتەکان" + +msgid "Yes, I’m sure" +msgstr "بەڵێ، من دڵنیام" + +msgid "No, take me back" +msgstr "نەخێر، من بگەڕێنەرەوە دواوە" + +msgid "Delete multiple objects" +msgstr "سڕینەوەی چەندین ئۆبجێکت" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" +"سڕینەوەی %(objects_name)sی هەڵبژێردراو دەبێتە هۆی سڕینەوەی ئۆبجێکتی " +"پەیوەندیدار، بەڵام هەژمارەکەت ڕێگەپێدراو نییە بۆ سڕینەوەی ئەم جۆرە " +"ئۆبجێکتانەی تر:" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" +"سڕینەوەی %(objects_name)sی هەڵبژێردراو پێویستیی بە سڕینەوەی ئەم ئۆبجێکتە " +"پەیوەندیدارە پارێزراوانەیە:" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" +"ئایا تۆ دڵنیایت دەتەوێت %(objects_name)sی هەڵبژێردراو بسڕیتەوە؟ هەموو ئەم " +"ئۆبجێکت و بڕگە پەیوەندیدارەکانیان دەسڕێنەوە:" + +msgid "Delete?" +msgstr "سڕینەوە؟" + +#, python-format +msgid " By %(filter_title)s " +msgstr "بەپێی %(filter_title)s" + +msgid "Summary" +msgstr "پوختە" + +msgid "Recent actions" +msgstr "کردارە نوێیەکان" + +msgid "My actions" +msgstr "کردارەکانم" + +msgid "None available" +msgstr "هیچ شتيک بەردەست نییە" + +msgid "Added:" +msgstr "زیادکرا:" + +msgid "Changed:" +msgstr "گۆڕدرا:" + +msgid "Deleted:" +msgstr "سڕایەوە:" + +msgid "Unknown content" +msgstr "ناوەڕۆکی نەزانراو" + +msgid "" +"Something’s wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" +"هەڵەیەک هەیە لە دامەزراندنی بنکەدراوەکەت. دڵنیاببەرەوە لەوەی خشتە گونجاوەکان " +"دروستکراون، دڵنیاببەرەوە بنکەدراوەکە ئەخوێندرێتەوە لەلایەن بەکارهێنەری " +"گونجاوەوە." + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" +"تۆ ڕەسەنایەتیت هەیە وەکو %(username)s, بەڵام ڕێگەپێدراو نیت بۆ ئەم لاپەڕەیە. " +"دەتەوێت بە هەژمارێکی تر بچیتەژوورەوە؟" + +msgid "Forgotten your password or username?" +msgstr "تێپەڕەوشە یان ناوی بەکارهێنەرەکەت بیرچۆتەوە؟" + +msgid "Toggle navigation" +msgstr "کردنەوەو داخستنی ڕێنیشاندەر" + +msgid "Sidebar" +msgstr "شریتی لاتەنیشت" + +msgid "Start typing to filter…" +msgstr "دەست بکە بە نوسین بۆ پاڵاوتن..." + +msgid "Filter navigation items" +msgstr "بڕگەکانی ڕێنیشاندەر بپاڵێوە" + +msgid "Date/time" +msgstr "بەروار/کات" + +msgid "User" +msgstr "بەکارهێنەر" + +msgid "Action" +msgstr "کردار" + +msgid "entry" +msgid_plural "entries" +msgstr[0] "تۆمار" +msgstr[1] "تۆمارەکان" + +msgid "" +"This object doesn’t have a change history. It probably wasn’t added via this " +"admin site." +msgstr "" +"ئەم ئۆبجێکتە مێژووی گۆڕانکاری نییە. ڕەنگە لە ڕێگەی بەڕێەوەبەری ئەم پێگەیەوە " +"زیادنەکرابێت." + +msgid "Show all" +msgstr "پیشاندانی هەمووی" + +msgid "Save" +msgstr "پاشەکەوتکردن" + +msgid "Popup closing…" +msgstr "پەنجەرەکە دادەخرێت..." + +msgid "Search" +msgstr "گەڕان" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "%(counter)s ئەنجام" +msgstr[1] "%(counter)s ئەنجام" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "%(full_result_count)sگشتی" + +msgid "Save as new" +msgstr "پاشەکەوتکردن وەک نوێ" + +msgid "Save and add another" +msgstr "پاشەکەوتی بکەو دانەیەکی تر زیاد بکە" + +msgid "Save and continue editing" +msgstr "پاشەکەوتی بکەو بەردەوامبە لە گۆڕنکاری" + +msgid "Save and view" +msgstr "پاشەکەوتی بکەو پیشانی بدە" + +msgid "Close" +msgstr "داخستن" + +#, python-format +msgid "Change selected %(model)s" +msgstr "هەڵبژێردراوەکان بگۆڕە %(model)s" + +#, python-format +msgid "Add another %(model)s" +msgstr "زیادکردنی %(model)sی تر" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "هەڵبژێردراوەکان بسڕەوە %(model)s" + +#, python-format +msgid "View selected %(model)s" +msgstr "سەیری %(model)s هەڵبژێردراوەکان بکە" + +msgid "Thanks for spending some quality time with the web site today." +msgstr "سوپاس بۆ بەسەربردنی هەندێک کاتێکی ئەمڕۆ لەگەڵ ماڵپەڕەکەدا." + +msgid "Log in again" +msgstr "دووبارە چوونەژوورەوە" + +msgid "Password change" +msgstr "گۆڕینی تێپەڕەوشە" + +msgid "Your password was changed." +msgstr "تێپەڕەوشەت گۆڕدرا." + +msgid "" +"Please enter your old password, for security’s sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" +"لەپێناو پاراستندا تکایە تێپەڕەوشە کۆنەکەت بنووسە، پاشان دووجار تێپەڕەوشە " +"نوێیەکەت بنووسە بۆ ئەوەی بتوانین پشتڕاستی بکەینەوە کە بە دروستی نووسیوتە." + +msgid "Change my password" +msgstr "گۆڕینی تێپەڕەوشەکەم" + +msgid "Password reset" +msgstr "دانانەوەی تێپەڕەوشە" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "تێپەڕەوشەکەت دانرایەوە. لەوانەیە ئێستا بچیتە سەرەوە و بچیتەژوورەوە." + +msgid "Password reset confirmation" +msgstr "دووپاتکردنەوەی دانانەوەی تێپەڕەوشە" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" +"تکایە دووجار تێپەڕەوشە نوێیەکەت بنوسە، پاشان دەتوانین دڵنیابین کە بە دروستی " +"نوسراوە." + +msgid "New password:" +msgstr "تێپەڕەوشەی نوێ:" + +msgid "Confirm password:" +msgstr "دووپاتکردنەوەی تێپەڕەوشە:" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"بەستەری دانانەوەی تێپەڕەوشە نادروست بوو، لەوانەیە لەبەر ئەوەی پێشتر " +"بەکارهاتووە. تکایە داوای دانانەوەی تێپەڕەوشەی نوێ بکە." + +msgid "" +"We’ve emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" +"ئێمە ڕێنماییەکانمان بۆ دانانی تێپەڕەوشەکەت ئیمەیڵ بۆت ناردووە، ئەگەر " +"هەژمارێک هەبێت لەگەڵ ئەو ئیمەیڵەی کە نوسیوتە. پێویستە بەم زووانە بەدەستت " +"بگات." + +msgid "" +"If you don’t receive an email, please make sure you’ve entered the address " +"you registered with, and check your spam folder." +msgstr "" +"ئەگەر تۆ نامەی ئەلیکترۆنیت بەدەست نەگەیشت، ئەوا دڵنیا ببەرەوە کە تۆ ئەو " +"ناونیشانەت داخڵکردووە کە پێی تۆمار بوویت، وە فۆڵدەری سپامەکەت بپشکنە." + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" +"تۆ ئەم نامە ئەلیکترۆنیەت بەدەست گەیشتووە لەبەرئەوەی داواکاری دوبارە " +"دانانەوەی تێپەڕە ووشەت کردبوو بۆ هەژماری بەکارهێنەرەکەت لە %(site_name)s." + +msgid "Please go to the following page and choose a new password:" +msgstr "تکایە بڕۆ بۆ پەڕەی دیاریکراو و تێپەڕەوشەیەکی نوێ هەڵبژێرە:" + +msgid "Your username, in case you’ve forgotten:" +msgstr "ناوی بەکارهێنەری تۆ، لە کاتێکدا بیرت چووبێتەوە:" + +msgid "Thanks for using our site!" +msgstr "سوپاس بۆ بەکارهێنانی پێگەکەمان!" + +#, python-format +msgid "The %(site_name)s team" +msgstr "دەستەی %(site_name)s" + +msgid "" +"Forgotten your password? Enter your email address below, and we’ll email " +"instructions for setting a new one." +msgstr "" +"تێپەڕەوشەکەت بیرچووەتەوە؟ ئیمەیڵەکەت لەخوارەوە بنوسە، پاشان ئێمە ئێمەیڵی " +"ڕێنمایت بۆ دەنێرین بۆ دانانی دانەیەکی نوێ." + +msgid "Email address:" +msgstr "ناونیشانی ئیمەیڵ:" + +msgid "Reset my password" +msgstr "دانانەوەی تێپەڕەوشەکەم" + +msgid "Select all objects on this page for an action" +msgstr "هەموو تەنەکان لەم لاپەڕەیە بۆ کردارێک هەڵبژێرە" + +msgid "All dates" +msgstr "هەموو بەروارەکان" + +#, python-format +msgid "Select %s" +msgstr "%s هەڵبژێرە" + +#, python-format +msgid "Select %s to change" +msgstr "%s هەڵبژێرە بۆ گۆڕین" + +#, python-format +msgid "Select %s to view" +msgstr "%s هەڵبژێرە بۆ بینین" + +msgid "Date:" +msgstr "بەروار:" + +msgid "Time:" +msgstr "کات:" + +msgid "Lookup" +msgstr "گەڕان" + +msgid "Currently:" +msgstr "ئێستاکە:" + +msgid "Change:" +msgstr "گۆڕین:" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ckb/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ckb/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..95cbda79074a6d1de7db822114475cc561d4ea89 GIT binary patch literal 7671 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 gUg^fI9&@yBmE7@>iVFZ%Ftt, 2023 +# Swara , 2022-2024 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-09-18 15:04-0300\n" +"PO-Revision-Date: 2024-01-20 07:59+0000\n" +"Last-Translator: Swara , 2022-2024\n" +"Language-Team: Central Kurdish (http://app.transifex.com/django/django/" +"language/ckb/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ckb\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, javascript-format +msgid "Available %s" +msgstr "%sە بەردەستەکان" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" +"ئەمە لیستی بەردەستی %s . دەتوانیت هەندێکیان هەڵبژێریت بە هەڵبژاردنییان لەم " +"بوخچەی خوارەوە و پاشان کرتەکردن لەسەر ئاراستەی \"هەڵبژێرە\" لە نێوان هەردوو " +"بوخچەکەدا." + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "لەم بوخچەدا بنووسە بۆ ئەوەی لیستی بەردەستەکان بپاڵێویت %s." + +msgid "Filter" +msgstr "پاڵاوتن" + +msgid "Choose all" +msgstr "هەمووی هەڵبژێرە" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "کرتە بکە بۆ هەڵبژاردنی هەموو %s بەیەکجار." + +msgid "Choose" +msgstr "‌هەڵبژاردن" + +msgid "Remove" +msgstr "لابردن" + +#, javascript-format +msgid "Chosen %s" +msgstr "%s هەڵبژێردراوەکان" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" +"ئەمە لیستی هەڵبژێردراوی %s. دەتوانیت هەندێکیان لاببەیت بە هەڵبژاردنییان لەم " +"بوخچەی خوارەوە و پاشان کرتەکردن لەسەر ئاراستەی \"لابردن\" لە نێوان هەردوو " +"بوخچەکەدا." + +#, javascript-format +msgid "Type into this box to filter down the list of selected %s." +msgstr "لەم بوخچەدا بنووسە بۆ ئەوەی لیستی هەڵبژێردراوەکان بپاڵێویت %s." + +msgid "Remove all" +msgstr "لابردنی هەمووی" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "کرتە بکە بۆ لابردنی هەموو ئەوانەی هەڵبژێردراون %sبە یەکجار." + +#, javascript-format +msgid "%s selected option not visible" +msgid_plural "%s selected options not visible" +msgstr[0] "%sبژاردەی هەڵبژێردراو نابینرێت" +msgstr[1] "%s هەڵبژاردە هەڵبژێردراوەکان نابینرێن" + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "‫%(sel)s لە %(cnt)s هەڵبژێردراوە" +msgstr[1] "‫%(sel)s لە %(cnt)s هەڵبژێردراوە" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" +"گۆڕانکاریی پاشەکەوتنەکراوت هەیە لەسەر خانەی یەکلایەنەی شیاوی دەستکاریی. " +"ئەگەر کردارێک ئەنجام بدەیت، گۆڕانکارییە پاشەکەوتنەکراوەکانت لەدەست دەچن." + +msgid "" +"You have selected an action, but you haven’t saved your changes to " +"individual fields yet. Please click OK to save. You’ll need to re-run the " +"action." +msgstr "" +"چالاکییەکی هەڵبژێردراوت هەیە، بەڵام خانە تاکلایەنەکانت تا ئێستا پاشەکەوت " +"نەکردووە. تکایە کردتە لەسەر باشە بکە بۆ پاشەکەوتکردن. پێویستە دووبارە " +"چالاکییەکە ئەنجام بدەیتەوە." + +msgid "" +"You have selected an action, and you haven’t made any changes on individual " +"fields. You’re probably looking for the Go button rather than the Save " +"button." +msgstr "" +"چالاکییەکی هەڵبژێردراوت هەیە، هەروەها هیچ گۆڕانکارییەکت لەسەر خانە " +"تاکلایەنەکانت نیە. ڕەنگە تۆ بەدوای دوگمەی بڕۆدا بگەڕێیت نەک دوگمەی " +"پاشەکەوتکردن." + +msgid "Now" +msgstr "ئێستا" + +msgid "Midnight" +msgstr "نیوەشەو" + +msgid "6 a.m." +msgstr "6ی بەیانی" + +msgid "Noon" +msgstr "نیوەڕۆ" + +msgid "6 p.m." +msgstr "6ی ئێوارە." + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "تێبینی: تۆ %s کاتژمێر لەپێش کاتی ڕاژەوەیت." +msgstr[1] "تێبینی: تۆ %s کاتژمێر لەپێش کاتی ڕاژەوەیت." + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "تێبینی: تۆ %s کاتژمێر لەدوای کاتی ڕاژەوەیت." +msgstr[1] "تێبینی: تۆ %s کاتژمێر لەدوای کاتی ڕاژەوەیت." + +msgid "Choose a Time" +msgstr "کاتێک دیاریبکە" + +msgid "Choose a time" +msgstr "کاتێک دیاریبکە" + +msgid "Cancel" +msgstr "پاشگەزبوونەوە" + +msgid "Today" +msgstr "ئەمڕۆ" + +msgid "Choose a Date" +msgstr "ڕۆژێک دیاریبکە" + +msgid "Yesterday" +msgstr "دوێنێ" + +msgid "Tomorrow" +msgstr "سبەینێ" + +msgid "January" +msgstr "‎ڕێبەندان" + +msgid "February" +msgstr "‎ڕەشەمە" + +msgid "March" +msgstr "نەورۆز" + +msgid "April" +msgstr "‎گوڵان" + +msgid "May" +msgstr "جۆزەردان" + +msgid "June" +msgstr "‎پوشپەڕ" + +msgid "July" +msgstr "گەلاوێژ " + +msgid "August" +msgstr "‎خەرمانان" + +msgid "September" +msgstr "‎ڕەزبەر" + +msgid "October" +msgstr "‎گەڵاڕێزان" + +msgid "November" +msgstr "‎سەرماوەرز" + +msgid "December" +msgstr "‎بەفرانبار" + +msgctxt "abbrev. month January" +msgid "Jan" +msgstr "‎ڕێبەندان" + +msgctxt "abbrev. month February" +msgid "Feb" +msgstr "ڕەشەمە" + +msgctxt "abbrev. month March" +msgid "Mar" +msgstr "نەورۆز" + +msgctxt "abbrev. month April" +msgid "Apr" +msgstr "گوڵان" + +msgctxt "abbrev. month May" +msgid "May" +msgstr "‎جۆزەردان" + +msgctxt "abbrev. month June" +msgid "Jun" +msgstr "پوشپەڕ" + +msgctxt "abbrev. month July" +msgid "Jul" +msgstr "‎گەلاوێژ" + +msgctxt "abbrev. month August" +msgid "Aug" +msgstr "خەرمانان" + +msgctxt "abbrev. month September" +msgid "Sep" +msgstr "‎ڕەزبەر" + +msgctxt "abbrev. month October" +msgid "Oct" +msgstr "‎گەڵاڕێزان" + +msgctxt "abbrev. month November" +msgid "Nov" +msgstr "‎سەرماوەرز" + +msgctxt "abbrev. month December" +msgid "Dec" +msgstr "‎بەفرانبار" + +msgid "Sunday" +msgstr "یەکشەممە" + +msgid "Monday" +msgstr "دووشەممە" + +msgid "Tuesday" +msgstr "سێشەممە" + +msgid "Wednesday" +msgstr "چوارشەممە" + +msgid "Thursday" +msgstr "پێنجشەممە" + +msgid "Friday" +msgstr "هەینی" + +msgid "Saturday" +msgstr "شەممە" + +msgctxt "abbrev. day Sunday" +msgid "Sun" +msgstr "یەک" + +msgctxt "abbrev. day Monday" +msgid "Mon" +msgstr "دوو" + +msgctxt "abbrev. day Tuesday" +msgid "Tue" +msgstr "سێ" + +msgctxt "abbrev. day Wednesday" +msgid "Wed" +msgstr "چوار" + +msgctxt "abbrev. day Thursday" +msgid "Thur" +msgstr "پێنج" + +msgctxt "abbrev. day Friday" +msgid "Fri" +msgstr "هەینی" + +msgctxt "abbrev. day Saturday" +msgid "Sat" +msgstr "شەم" + +msgctxt "one letter Sunday" +msgid "S" +msgstr "ی" + +msgctxt "one letter Monday" +msgid "M" +msgstr "د" + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "س" + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "چ" + +msgctxt "one letter Thursday" +msgid "T" +msgstr "پ" + +msgctxt "one letter Friday" +msgid "F" +msgstr "هە" + +msgctxt "one letter Saturday" +msgid "S" +msgstr "ش" + +msgid "Show" +msgstr "پیشاندان" + +msgid "Hide" +msgstr "شاردنەوە" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/cs/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/cs/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..d3bfdd7ea07bc13c276eabfeb4add45591973a88 GIT binary patch literal 17736 zcmd6udypJQea8ns01INkJj~0`7RWxq-AeK!HfKw+EXkIzB@0WIv4M!W-MQPjeaw1h zcF%htFc`wi<_*RO0tdlhKnB9AAd#UsT_r#fDm+3tMWAp<6%eWdA%6r@B>8;1duDe} zCj~>Qk}dar=h4&s>)-p=E&t$*Q{EBq`#kNbwC|i61it}qdjx;@-TbH^cs$q#p8&oI zd|bF?b>P5m4X%0DLI;@8HA0-+(8BCqE_#9tl1S)cePQ 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/cs/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/cs/LC_MESSAGES/django.po new file mode 100644 index 0000000000..65159b8166 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/cs/LC_MESSAGES/django.po @@ -0,0 +1,750 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Jannis Leidel , 2011 +# trendspotter , 2022 +# Jirka Vejrazka , 2011 +# Tomáš Ehrlich , 2015 +# Vláďa Macek , 2013-2014 +# Vláďa Macek , 2015-2020,2022 +# yedpodtrzitko , 2016 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2022-05-17 05:10-0500\n" +"PO-Revision-Date: 2022-07-25 07:05+0000\n" +"Last-Translator: trendspotter \n" +"Language-Team: Czech (http://www.transifex.com/django/django/language/cs/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: cs\n" +"Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n " +"<= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "Odstranit vybrané položky typu %(verbose_name_plural)s" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "Úspěšně odstraněno: %(count)d %(items)s." + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "Nelze smazat %(name)s" + +msgid "Are you sure?" +msgstr "Jste si jisti?" + +msgid "Administration" +msgstr "Správa" + +msgid "All" +msgstr "Vše" + +msgid "Yes" +msgstr "Ano" + +msgid "No" +msgstr "Ne" + +msgid "Unknown" +msgstr "Neznámé" + +msgid "Any date" +msgstr "Libovolné datum" + +msgid "Today" +msgstr "Dnes" + +msgid "Past 7 days" +msgstr "Posledních 7 dní" + +msgid "This month" +msgstr "Tento měsíc" + +msgid "This year" +msgstr "Tento rok" + +msgid "No date" +msgstr "Bez data" + +msgid "Has date" +msgstr "Má datum" + +msgid "Empty" +msgstr "Prázdná hodnota" + +msgid "Not empty" +msgstr "Neprázdná hodnota" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" +"Zadejte správné %(username)s a heslo pro personál. Obě pole mohou rozlišovat " +"velká a malá písmena." + +msgid "Action:" +msgstr "Operace:" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "Přidat %(verbose_name)s" + +msgid "Remove" +msgstr "Odebrat" + +msgid "Addition" +msgstr "Přidání" + +msgid "Change" +msgstr "Změnit" + +msgid "Deletion" +msgstr "Odstranění" + +msgid "action time" +msgstr "čas operace" + +msgid "user" +msgstr "uživatel" + +msgid "content type" +msgstr "typ obsahu" + +msgid "object id" +msgstr "id položky" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/library/functions.html#repr) +msgid "object repr" +msgstr "reprez. položky" + +msgid "action flag" +msgstr "příznak operace" + +msgid "change message" +msgstr "zpráva o změně" + +msgid "log entry" +msgstr "položka protokolu" + +msgid "log entries" +msgstr "položky protokolu" + +#, python-format +msgid "Added “%(object)s”." +msgstr "Přidán objekt \"%(object)s\"." + +#, python-format +msgid "Changed “%(object)s” — %(changes)s" +msgstr "Změněn objekt \"%(object)s\" — %(changes)s" + +#, python-format +msgid "Deleted “%(object)s.”" +msgstr "Odstraněna položka \"%(object)s\"." + +msgid "LogEntry Object" +msgstr "Objekt záznam v protokolu" + +#, python-brace-format +msgid "Added {name} “{object}”." +msgstr "Přidáno: {name} \"{object}\"." + +msgid "Added." +msgstr "Přidáno." + +msgid "and" +msgstr "a" + +#, python-brace-format +msgid "Changed {fields} for {name} “{object}”." +msgstr "Změněno: {fields} pro {name} \"{object}\"." + +#, python-brace-format +msgid "Changed {fields}." +msgstr "Změněno: {fields}" + +#, python-brace-format +msgid "Deleted {name} “{object}”." +msgstr "Odstraněno: {name} \"{object}\"." + +msgid "No fields changed." +msgstr "Nebyla změněna žádná pole." + +msgid "None" +msgstr "Žádný" + +msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." +msgstr "" +"Výběr více než jedné položky je možný přidržením klávesy \"Control\", na " +"Macu \"Command\"." + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully." +msgstr "Položka typu {name} \"{obj}\" byla úspěšně přidána." + +msgid "You may edit it again below." +msgstr "Níže můžete údaje znovu upravovat." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was added successfully. You may add another {name} below." +msgstr "" +"Položka typu {name} \"{obj}\" byla úspěšně přidána. Níže můžete přidat další " +"položku {name}." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may edit it again below." +msgstr "" +"Položka typu {name} \"{obj}\" byla úspěšně změněna. Níže ji můžete dále " +"upravovat." + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully. You may edit it again below." +msgstr "" +"Položka \"{obj}\" typu {name} byla úspěšně přidána. Níže ji můžete dále " +"upravovat." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may add another {name} " +"below." +msgstr "" +"Položka \"{obj}\" typu {name} byla úspěšně změněna. Níže můžete přidat další " +"položku {name}." + +#, python-brace-format +msgid "The {name} “{obj}” was changed successfully." +msgstr "Položka \"{obj}\" typu {name} byla úspěšně změněna." + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" +"K provedení hromadných operací je třeba vybrat nějaké položky. Nedošlo k " +"žádným změnám." + +msgid "No action selected." +msgstr "Nebyla vybrána žádná operace." + +#, python-format +msgid "The %(name)s “%(obj)s” was deleted successfully." +msgstr "Položka \"%(obj)s\" typu %(name)s byla úspěšně odstraněna." + +#, python-format +msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" +msgstr "Objekt %(name)s s klíčem \"%(key)s\" neexistuje. Možná byl odstraněn." + +#, python-format +msgid "Add %s" +msgstr "%s: přidat" + +#, python-format +msgid "Change %s" +msgstr "%s: změnit" + +#, python-format +msgid "View %s" +msgstr "Zobrazit %s" + +msgid "Database error" +msgstr "Chyba databáze" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "Položka %(name)s byla úspěšně změněna." +msgstr[1] "%(count)s položky %(name)s byly úspěšně změněny." +msgstr[2] "%(count)s položek %(name)s bylo úspěšně změněno." +msgstr[3] "%(count)s položek %(name)s bylo úspěšně změněno." + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "%(total_count)s položka vybrána." +msgstr[1] "Všechny %(total_count)s položky vybrány." +msgstr[2] "Vybráno všech %(total_count)s položek." +msgstr[3] "Vybráno všech %(total_count)s položek." + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "Vybraných je 0 položek z celkem %(cnt)s." + +#, python-format +msgid "Change history: %s" +msgstr "Historie změn: %s" + +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "%(class_name)s: %(instance)s" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" +"Odstranění položky \"%(instance)s\" typu %(class_name)s by vyžadovalo " +"odstranění těchto souvisejících chráněných položek: %(related_objects)s" + +msgid "Django site admin" +msgstr "Správa webu Django" + +msgid "Django administration" +msgstr "Správa systému Django" + +msgid "Site administration" +msgstr "Správa webu" + +msgid "Log in" +msgstr "Přihlášení" + +#, python-format +msgid "%(app)s administration" +msgstr "Správa aplikace %(app)s" + +msgid "Page not found" +msgstr "Stránka nenalezena" + +msgid "We’re sorry, but the requested page could not be found." +msgstr "Požadovaná stránka nebyla bohužel nalezena." + +msgid "Home" +msgstr "Domů" + +msgid "Server error" +msgstr "Chyba serveru" + +msgid "Server error (500)" +msgstr "Chyba serveru (500)" + +msgid "Server Error (500)" +msgstr "Chyba serveru (500)" + +msgid "" +"There’s been an error. It’s been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" +"V systému došlo k chybě. Byla e-mailem nahlášena správcům, kteří by ji měli " +"v krátké době opravit. Děkujeme za trpělivost." + +msgid "Run the selected action" +msgstr "Provést vybranou operaci" + +msgid "Go" +msgstr "Provést" + +msgid "Click here to select the objects across all pages" +msgstr "Klepnutím zde vyberete položky ze všech stránek." + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "Vybrat všechny položky typu %(module_name)s, celkem %(total_count)s." + +msgid "Clear selection" +msgstr "Zrušit výběr" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "Modely v aplikaci %(name)s" + +msgid "Add" +msgstr "Přidat" + +msgid "View" +msgstr "Zobrazit" + +msgid "You don’t have permission to view or edit anything." +msgstr "Nemáte oprávnění k zobrazení ani úpravám." + +msgid "" +"First, enter a username and password. Then, you’ll be able to edit more user " +"options." +msgstr "" +"Nejdříve zadejte uživatelské jméno a heslo. Poté budete moci upravovat více " +"uživatelských nastavení." + +msgid "Enter a username and password." +msgstr "Zadejte uživatelské jméno a heslo." + +msgid "Change password" +msgstr "Změnit heslo" + +msgid "Please correct the error below." +msgstr "Opravte níže uvedenou chybu." + +msgid "Please correct the errors below." +msgstr "Opravte níže uvedené chyby." + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "Zadejte nové heslo pro uživatele %(username)s." + +msgid "Welcome," +msgstr "Vítejte, uživateli" + +msgid "View site" +msgstr "Zobrazení webu" + +msgid "Documentation" +msgstr "Dokumentace" + +msgid "Log out" +msgstr "Odhlásit se" + +#, python-format +msgid "Add %(name)s" +msgstr "%(name)s: přidat" + +msgid "History" +msgstr "Historie" + +msgid "View on site" +msgstr "Zobrazení na webu" + +msgid "Filter" +msgstr "Filtr" + +msgid "Clear all filters" +msgstr "Zrušit všechny filtry" + +msgid "Remove from sorting" +msgstr "Přestat řadit" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "Priorita řazení: %(priority_number)s" + +msgid "Toggle sorting" +msgstr "Přehodit řazení" + +msgid "Delete" +msgstr "Odstranit" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" +"Odstranění položky \"%(escaped_object)s\" typu %(object_name)s by vyústilo v " +"odstranění souvisejících položek. Nemáte však oprávnění k odstranění položek " +"následujících typů:" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" +"Odstranění položky '%(escaped_object)s' typu %(object_name)s by vyžadovalo " +"odstranění souvisejících chráněných položek:" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" +"Opravdu má být odstraněna položka \"%(escaped_object)s\" typu " +"%(object_name)s? Následující související položky budou všechny odstraněny:" + +msgid "Objects" +msgstr "Objekty" + +msgid "Yes, I’m sure" +msgstr "Ano, jsem si jist(a)" + +msgid "No, take me back" +msgstr "Ne, beru zpět" + +msgid "Delete multiple objects" +msgstr "Odstranit vybrané položky" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" +"Odstranění položky typu %(objects_name)s by vyústilo v odstranění " +"souvisejících položek. Nemáte však oprávnění k odstranění položek " +"následujících typů:" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" +"Odstranění vybrané položky typu %(objects_name)s by vyžadovalo odstranění " +"následujících souvisejících chráněných položek:" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" +"Opravdu má být odstraněny vybrané položky typu %(objects_name)s? Všechny " +"vybrané a s nimi související položky budou odstraněny:" + +msgid "Delete?" +msgstr "Odstranit?" + +#, python-format +msgid " By %(filter_title)s " +msgstr " Dle: %(filter_title)s " + +msgid "Summary" +msgstr "Shrnutí" + +msgid "Recent actions" +msgstr "Nedávné akce" + +msgid "My actions" +msgstr "Moje akce" + +msgid "None available" +msgstr "Nic" + +msgid "Unknown content" +msgstr "Neznámý obsah" + +msgid "" +"Something’s wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" +"Potíže s nainstalovanou databází. Ujistěte se, že byly vytvořeny " +"odpovídající tabulky a že databáze je přístupná pro čtení příslušným " +"uživatelem." + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" +"Jste přihlášeni jako uživatel %(username)s, ale k této stránce nemáte " +"oprávnění. Chcete se přihlásit k jinému účtu?" + +msgid "Forgotten your password or username?" +msgstr "Zapomněli jste heslo nebo uživatelské jméno?" + +msgid "Toggle navigation" +msgstr "Přehodit navigaci" + +msgid "Start typing to filter…" +msgstr "Filtrovat začnete vepsáním textu..." + +msgid "Filter navigation items" +msgstr "Filtrace položek navigace" + +msgid "Date/time" +msgstr "Datum a čas" + +msgid "User" +msgstr "Uživatel" + +msgid "Action" +msgstr "Operace" + +msgid "entry" +msgstr "" + +msgid "entries" +msgstr "" + +msgid "" +"This object doesn’t have a change history. It probably wasn’t added via this " +"admin site." +msgstr "" +"Tato položka nemá historii změn. Pravděpodobně nebyla přidána tímto " +"administračním rozhraním." + +msgid "Show all" +msgstr "Zobrazit vše" + +msgid "Save" +msgstr "Uložit" + +msgid "Popup closing…" +msgstr "Vyskakovací okno se zavírá..." + +msgid "Search" +msgstr "Hledat" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "%(counter)s výsledek" +msgstr[1] "%(counter)s výsledky" +msgstr[2] "%(counter)s výsledků" +msgstr[3] "%(counter)s výsledků" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "Celkem %(full_result_count)s" + +msgid "Save as new" +msgstr "Uložit jako novou položku" + +msgid "Save and add another" +msgstr "Uložit a přidat další položku" + +msgid "Save and continue editing" +msgstr "Uložit a pokračovat v úpravách" + +msgid "Save and view" +msgstr "Uložit a zobrazit" + +msgid "Close" +msgstr "Zavřít" + +#, python-format +msgid "Change selected %(model)s" +msgstr "Změnit vybrané položky typu %(model)s" + +#, python-format +msgid "Add another %(model)s" +msgstr "Přidat další %(model)s" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "Odstranit vybrané položky typu %(model)s" + +#, python-format +msgid "View selected %(model)s" +msgstr "Zobrazení vybraných %(model)s" + +msgid "Thanks for spending some quality time with the web site today." +msgstr "Děkujeme za dnešní čas strávený s tímto neobyčejným webem." + +msgid "Log in again" +msgstr "Přihlaste se znovu" + +msgid "Password change" +msgstr "Změna hesla" + +msgid "Your password was changed." +msgstr "Vaše heslo bylo změněno." + +msgid "" +"Please enter your old password, for security’s sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" +"Zadejte svoje současné heslo a poté dvakrát heslo nové. Omezíme tak možnost " +"překlepu." + +msgid "Change my password" +msgstr "Změnit heslo" + +msgid "Password reset" +msgstr "Obnovení hesla" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "Vaše heslo bylo nastaveno. Nyní se můžete přihlásit." + +msgid "Password reset confirmation" +msgstr "Potvrzení obnovy hesla" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "Zadejte dvakrát nové heslo. Tak ověříme, že bylo zadáno správně." + +msgid "New password:" +msgstr "Nové heslo:" + +msgid "Confirm password:" +msgstr "Potvrdit heslo:" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"Odkaz pro obnovení hesla byl neplatný, možná již byl použit. Požádejte o " +"obnovení hesla znovu." + +msgid "" +"We’ve emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" +"Návod na nastavení hesla byl odeslán na zadanou e-mailovou adresu, pokud " +"účet s takovou adresou existuje. Měl by za okamžik dorazit." + +msgid "" +"If you don’t receive an email, please make sure you’ve entered the address " +"you registered with, and check your spam folder." +msgstr "" +"Pokud e-mail neobdržíte, ujistěte se, že zadaná e-mailová adresa je stejná " +"jako ta registrovaná u vašeho účtu a zkontrolujte složku nevyžádané pošty, " +"tzv. spamu." + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" +"Tento e-mail vám byl zaslán na základě vyžádání obnovy hesla vašeho " +"uživatelskému účtu na systému %(site_name)s." + +msgid "Please go to the following page and choose a new password:" +msgstr "Přejděte na následující stránku a zadejte nové heslo:" + +msgid "Your username, in case you’ve forgotten:" +msgstr "Pro jistotu vaše uživatelské jméno:" + +msgid "Thanks for using our site!" +msgstr "Děkujeme za používání našeho webu!" + +#, python-format +msgid "The %(site_name)s team" +msgstr "Tým aplikace %(site_name)s" + +msgid "" +"Forgotten your password? Enter your email address below, and we’ll email " +"instructions for setting a new one." +msgstr "" +"Zapomněli jste heslo? Zadejte níže e-mailovou adresu a systém vám odešle " +"postup k nastavení nového." + +msgid "Email address:" +msgstr "E-mailová adresa:" + +msgid "Reset my password" +msgstr "Obnovit heslo" + +msgid "All dates" +msgstr "Všechna data" + +#, python-format +msgid "Select %s" +msgstr "%s: vybrat" + +#, python-format +msgid "Select %s to change" +msgstr "Vyberte položku %s ke změně" + +#, python-format +msgid "Select %s to view" +msgstr "Vyberte položku %s k zobrazení" + +msgid "Date:" +msgstr "Datum:" + +msgid "Time:" +msgstr "Čas:" + +msgid "Lookup" +msgstr "Hledat" + +msgid "Currently:" +msgstr "Aktuálně:" + +msgid "Change:" +msgstr "Změna:" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/cs/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/cs/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..828f705ac7ffdd88e6abcad9d159627b96598426 GIT binary patch literal 5851 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, 2011 +# trendspotter , 2022 +# Jirka Vejrazka , 2011 +# Vláďa Macek , 2012,2014 +# Vláďa Macek , 2015-2016,2020-2021 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2022-05-17 05:26-0500\n" +"PO-Revision-Date: 2022-07-25 07:59+0000\n" +"Last-Translator: trendspotter \n" +"Language-Team: Czech (http://www.transifex.com/django/django/language/cs/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: cs\n" +"Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n " +"<= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n" + +#, javascript-format +msgid "Available %s" +msgstr "Dostupné položky: %s" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" +"Seznam dostupných položek %s. Jednotlivě je lze vybrat tak, že na ně v " +"rámečku klepnete a pak klepnete na šipku \"Vybrat\" mezi rámečky." + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "" +"Chcete-li filtrovat ze seznamu dostupných položek %s, začněte psát do tohoto " +"pole." + +msgid "Filter" +msgstr "Filtr" + +msgid "Choose all" +msgstr "Vybrat vše" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "Chcete-li najednou vybrat všechny položky %s, klepněte sem." + +msgid "Choose" +msgstr "Vybrat" + +msgid "Remove" +msgstr "Odebrat" + +#, javascript-format +msgid "Chosen %s" +msgstr "Vybrané položky %s" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" +"Seznam vybraných položek %s. Jednotlivě je lze odebrat tak, že na ně v " +"rámečku klepnete a pak klepnete na šipku \"Odebrat mezi rámečky." + +msgid "Remove all" +msgstr "Odebrat vše" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "Chcete-li najednou odebrat všechny vybrané položky %s, klepněte sem." + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "Vybrána je %(sel)s položka z celkem %(cnt)s." +msgstr[1] "Vybrány jsou %(sel)s položky z celkem %(cnt)s." +msgstr[2] "Vybraných je %(sel)s položek z celkem %(cnt)s." +msgstr[3] "Vybraných je %(sel)s položek z celkem %(cnt)s." + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" +"V jednotlivých polích jsou neuložené změny, které budou ztraceny, pokud " +"operaci provedete." + +msgid "" +"You have selected an action, but you haven’t saved your changes to " +"individual fields yet. Please click OK to save. You’ll need to re-run the " +"action." +msgstr "" +"Byla vybrána operace, ale dosud nedošlo k uložení změn jednotlivých polí. " +"Uložíte klepnutím na tlačítko OK. Pak bude třeba operaci spustit znovu." + +msgid "" +"You have selected an action, and you haven’t made any changes on individual " +"fields. You’re probably looking for the Go button rather than the Save " +"button." +msgstr "" +"Byla vybrána operace, ale dosud nedošlo k uložení změn jednotlivých polí. " +"Patrně využijete tlačítko Provést spíše než tlačítko Uložit." + +msgid "Now" +msgstr "Nyní" + +msgid "Midnight" +msgstr "Půlnoc" + +msgid "6 a.m." +msgstr "6h ráno" + +msgid "Noon" +msgstr "Poledne" + +msgid "6 p.m." +msgstr "6h večer" + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "Poznámka: Váš čas o %s hodinu předstihuje čas na serveru." +msgstr[1] "Poznámka: Váš čas o %s hodiny předstihuje čas na serveru." +msgstr[2] "Poznámka: Váš čas o %s hodiny předstihuje čas na serveru." +msgstr[3] "Poznámka: Váš čas o %s hodin předstihuje čas na serveru." + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "Poznámka: Váš čas se o %s hodinu zpožďuje za časem na serveru." +msgstr[1] "Poznámka: Váš čas se o %s hodiny zpožďuje za časem na serveru." +msgstr[2] "Poznámka: Váš čas se o %s hodiny zpožďuje za časem na serveru." +msgstr[3] "Poznámka: Váš čas se o %s hodin zpožďuje za časem na serveru." + +msgid "Choose a Time" +msgstr "Vyberte čas" + +msgid "Choose a time" +msgstr "Vyberte čas" + +msgid "Cancel" +msgstr "Storno" + +msgid "Today" +msgstr "Dnes" + +msgid "Choose a Date" +msgstr "Vyberte datum" + +msgid "Yesterday" +msgstr "Včera" + +msgid "Tomorrow" +msgstr "Zítra" + +msgid "January" +msgstr "leden" + +msgid "February" +msgstr "únor" + +msgid "March" +msgstr "březen" + +msgid "April" +msgstr "duben" + +msgid "May" +msgstr "květen" + +msgid "June" +msgstr "červen" + +msgid "July" +msgstr "červenec" + +msgid "August" +msgstr "srpen" + +msgid "September" +msgstr "září" + +msgid "October" +msgstr "říjen" + +msgid "November" +msgstr "listopad" + +msgid "December" +msgstr "prosinec" + +msgctxt "abbrev. month January" +msgid "Jan" +msgstr "Led" + +msgctxt "abbrev. month February" +msgid "Feb" +msgstr "Úno" + +msgctxt "abbrev. month March" +msgid "Mar" +msgstr "Bře" + +msgctxt "abbrev. month April" +msgid "Apr" +msgstr "Dub" + +msgctxt "abbrev. month May" +msgid "May" +msgstr "Kvě" + +msgctxt "abbrev. month June" +msgid "Jun" +msgstr "Čvn" + +msgctxt "abbrev. month July" +msgid "Jul" +msgstr "Čvc" + +msgctxt "abbrev. month August" +msgid "Aug" +msgstr "Srp" + +msgctxt "abbrev. month September" +msgid "Sep" +msgstr "Zář" + +msgctxt "abbrev. month October" +msgid "Oct" +msgstr "Říj" + +msgctxt "abbrev. month November" +msgid "Nov" +msgstr "Lis" + +msgctxt "abbrev. month December" +msgid "Dec" +msgstr "Pro" + +msgctxt "one letter Sunday" +msgid "S" +msgstr "N" + +msgctxt "one letter Monday" +msgid "M" +msgstr "P" + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "Ú" + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "S" + +msgctxt "one letter Thursday" +msgid "T" +msgstr "Č" + +msgctxt "one letter Friday" +msgid "F" +msgstr "P" + +msgctxt "one letter Saturday" +msgid "S" +msgstr "S" + +msgid "" +"You have already submitted this form. Are you sure you want to submit it " +"again?" +msgstr "Tento formulář jste již odeslali. Opravdu jej chcete odeslat znovu?" + +msgid "Show" +msgstr "Zobrazit" + +msgid "Hide" +msgstr "Skrýt" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/cy/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/cy/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..e20f6a4a95f229ea5177d28eaa491dfcf3525235 GIT binary patch literal 12521 zcmd6teT*Duea9aNgv10AUP2RS%M+8!-I2TXos*DcW5Dv)`F#o_U_%^Lu}Odp~^Ti+WUxF;9cPc@bZHMlUty za_|B0HQ-0V*MX0N_kmvruK_Q=#P{z4Z{YqOQ13koUI_jc_!96*@B;8_Ab;lf`O@=0 z2DSd5g0BMq9(+0YAE3s+^kv3e3|nHz|0VcJ@ULt9 zXYf+)FJN-f^D1yV_&QMiw}PwS5%3k@2f%IMV<3O#Gkj^@FM=-yp8>VrH^F)E45)d3 z3~K-X0zL>{%;XP%4}njCKLvZ>6PNjM+gMENS-v3A>;!q$+y>qT-Ua?V_{*Ty`x1Bp zdiacN`g06KbxaDr9()&Q!CwbU z@EhP!a0MoQ6#O9A1}{d)qI(~x_1^-*0&^1l8Snv6bbK6S3iBvXUzaiX9`JRb=qf?!*ZXRG7?eId0!mJw2F2IUf!gm^K+*dQ zcq4cQ6utir%6?wNrX;_Mz-z(RfcJxY!QJ5RfebZ21{c5!F-GxgM~%0Dn&$v0I^I(E z-v^4`UX7!=|6Sl8y}+1{fQZf9)zTXM*XNG)9-j9NM?{`4S`>UY%^#?V68+;%4-v_myd#>{O(+9=( z_k-f!he5sfC@6X!ukXJGYTh&88^AvSHP27LgW$8^72q8hkLWlFiryHM9Nq(J{zpKq z_epRG{4}U}zXhUN=DVQi{5!A!Ll*l2_&x9>_`a*r9q@-BtTz7yN^Y0T`Ti@w{oF5t zqB8@fFP{Y80e%Wx2LBaIz`1KYKOX~M%>8F;`~vu1?w8kJ^{+E zJ`0N9&w!7Ce+G)q&LX}8{1SLQxcWwKKRr9^A?D6X$ zCSd*z;0aLUe+j${{0;C0 z;1@yB@f0XJz6pxXZ-JM9-vwU|{s7c?*>dx#xOgjVPbH1SCv?MuA4 zk(SXU*N@PCk)}1*Y0XD_T%+CJbbykhK5wIGFI^gBxlhdZE?S2sJK9UrM?8^UG@o0! zI7a(0?aj0YXyVghn&jGiwD*7pJDt5tm-IALIZlc2EOL6G*N&=%uvH!6zWI7zD3SqDdX z^!%fvoXPX37$;>j!AzGZ(CjDuh?5O9WmX0W&m2yBiztb@WfYp*lf<6$;fl?AJngz| zZM@QT%(&e_+uR;9OBgcFZ`SFEa|>DLeh67Cwzufp z#B3;Y)P+GAF7B|`Q*L&P4l7NqR6Az;dfH79!G!Oj)U z)c}Rc@~S=4HLUCi#hPS!*o@k8->&;NGtDkbJZ_x=9b8MIAg^~XeO*i9?kS4^U`tl_ zyRA<*+|9EBHD`OHpbwkZva}cH!znc^JI?bcEt9Hk_623o35v)@d7kCEjdqmrFmhKs zb^@qjRtB@OKRHUqd5}P?AHJu?P5WwX_q~$M^Vpo7WaA`6Ru7D0w&)ZrBi0* zwXL_aWIN+h){@(x>l}g&v#3btOFIZoM|KqD!?-9=l`RIeVH#yMiV9gw!?exhp3~CK zpDXv{IJ2!Dc%SbruuK2Q?9002Aqwg}^!{NGCp-!9f<@cxPjTxuuxT`zsx)?=I~5rh zJllnH&(i*_a|^ol9&Fc+y0bN%pn2$AL}QvQbBBu?Kwgwf7Ao9oXCG|W2T{5tY0P_X z5_A%0mr)p(c9@~Tj-qTN_gXM{miM!=j8ZSbW>pLM%?f+YHE56ZTX(XLW|@K?!|N@% zjZ7ku;vXxNV&O%W$$uPi~H=>Y^jVnil?>;I6V@MkXs)(>Md;CV**jR<<@q+gZEVNYH4pI zu2zLP>V?(KaQ9sTDzb5I-s?;2oX?9b1H2LF^=7JB)7oS|PR#;K3f1d14obptQ9MAd zBo7TohCwAccTuS2B1&-p=-QMjzo=7^O{QK>;x5XO*@<3FEs-ehRZiLD*c9I-wwh99 zW;GjTCPd$+zGJDjjP5v(%WA%`1-k9^lpUk^&I9}}(t!s=k;Tmom#j$b_}Cp}q*Pnn zTiYCqhS}+;2HVTCAsonM%k-fVb~f8MHuhROH6U*+<~Z@eeYuseQqbjc8=a^UlaA37 z9GGU;JC>Xm5t!p-BHaO?JX4v@^hz7@*4FeX{n(m=&MgeHaGXpN#^X_r@a%qN9(GqW zymjG*m6gR^JGf#R_snM{vp3caGRFtmL^+N*J`EciIsI`QSvi1wq&ZP2aK6Vo91>2S z@VGobAtl5!x9s7mLz7@I^E?~nG1-tZRR02y5I1N1OCBkq^t!U)5jDZ|rC8~G5W2X~ zshrejCzsQ2nd4rRmK8H8p|Y6f`eZsDc625%$7hZkP1?#pe<)C{?h@NYqRcwk`CgHMuy( zF6&^}wmVl=Z(LqkU0%J}uD+>#{ms{|tgfsuaQRqtI@X+<#@)QU^E$hFQ~QSNuU+A@ z?M_mY<@G#B3%qWYx9yubWTUuuMlsIA?t&U_Z%f>5D^7dat-O==$Lw`^9k?29o;a9o=fj;>W(UbWlaWUsl#rn*{n!*=rI zx?8rHyK_>ft#vJPU=qb?6^3ITxdNAYp3}7s7+P2|C0yQ4aQ3Ck#?5YV17)wOSuib9RJEe8WdRqQ)ZXnV~)f&N)je> zYj3c}sk~Qa<*Wzcqf2Mw&{gZ)W6J>|?GLJ69;ZQ^*Q2|e?>XZ&)-%hv=hW+BvN*Qx zw&}`s@dVDGZ*~B$;+g?x+cSl}Fb^ih^jSC#gCt5*n7>96nWuwDb5;16npBE;Tt=Z7 za$usYoAO`U6Pw9f%|0)@9l=mBy}qNYC-L}iCflqj(`ueQ^Z5;7`N357Br)mEtnyIX z+si@$d(*^Bc+Q%-)TN&#RiEfz>qvh_>ivn17@WPsxWAzSMKzy#(N{#RvsL)EEbo=B z(Ydo$_|BV-ty@0tHD`CZMCwH{6^EAEp6wI+!wkW5!I|XD=Q-pe8prF3jHKLTFr191 zX4F1Al}+vZ{G~Aye|#N}l0Q+B!?}w}*l!W^$T{nW`?7vd`pof6ic47@e{LgwMkqPt za;DQJ8{O8S6ScCjv!Zsu)K@e1*TXktZ?vA1M%zw-0F zL-v;jwgU~$0(lo>8#lTIJzN=Lo^=+f1V<3V41}h3rjo_=p9)9!9Q4!;*nDgg7)Sz;Eai( zsLbj%gvRDRUiExgP?E#L6ZM@90fde*0TNHwgEF{XR|9*vxr9R?KUNU}Z6`n>1CrF4 zt~{XLvBg4s5U+*8-ynL`_wX;7=MbRuUkzE(M9n3u4o# z$d)AM*dPj{KJ0Hy3*JsuS6Vc2U$R`8EqN0`8!zJXNImC;5eFqjpIAhapStcIr#bIy z_=VG((mo}9%D{f2b3B}bUWAwY(xbq2zn=~V1?GsWLPNkak5{ZmpSdVsuRMI z**wfu_K-#GAoVaBqdbjYMc)41*{P+ISVo@UbzruvMSf@|sHsNCtSz%Q38IwJq2el* zEvcWqhB!^%>Lb+ROx;lH%^m>dm$F1AM?w$1ctkE$J^|ArnBef`-W$fTIa>__l6A%D zO>Z|eXZUrjTN%Ms8>wV-lBrWl6%?OC%KDk7hN#3$t;QV7Sjc&gOny0@y1SY5SQDwL zkW|#3GL9z{6m3QsQ1MZbN^EbU7RvAQg^YBw6Xdu-YY$|-Dove5o^=7@3Bd-H={xSt2JkuXltNK-Vyr@qfXT)>N{>Ub}sTo z*;KSsOVXQWKm5k6NEh1XpcA)hi&7A;e55l2Vq1sbpw`5_iqofh)Uj`xl*#re8Dd-2 zhUtkUmhRg=PQMy9iLkQ-1;nxQ*0u?UYdQPPmdqh4iXlINifDfz^_+0Cpu-44ESV7A zyr-%Y1{pc3%73!d2@kSyIgcHXN=-E-Cbsb+s&EcHi|1Ly#bACvRgy5HsZKwp&vn3@ zs+>Z1%O1e9NyB;@ISUe*Ak`yH%CI?wLr;U9)<1ZEbderx92j^w&|&= rxRFa4Z_XPLfd7xf%cC|NhqbclG8-8b|99fA3<=s)jf@J5Gq?W*jRY@> literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/cy/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/cy/LC_MESSAGES/django.po new file mode 100644 index 0000000000..82e82f78c3 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/cy/LC_MESSAGES/django.po @@ -0,0 +1,675 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Jannis Leidel , 2011 +# Maredudd ap Gwyndaf , 2014 +# pjrobertson, 2014 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-01-19 16:49+0100\n" +"PO-Revision-Date: 2017-09-23 18:54+0000\n" +"Last-Translator: Jannis Leidel \n" +"Language-Team: Welsh (http://www.transifex.com/django/django/language/cy/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: cy\n" +"Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != " +"11) ? 2 : 3;\n" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "Dilëwyd %(count)d %(items)s yn llwyddiannus." + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "Ni ellir dileu %(name)s" + +msgid "Are you sure?" +msgstr "Ydych yn sicr?" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "Dileu y %(verbose_name_plural)s â ddewiswyd" + +msgid "Administration" +msgstr "Gweinyddu" + +msgid "All" +msgstr "Pob un" + +msgid "Yes" +msgstr "Ie" + +msgid "No" +msgstr "Na" + +msgid "Unknown" +msgstr "Anhysybys" + +msgid "Any date" +msgstr "Unrhyw ddyddiad" + +msgid "Today" +msgstr "Heddiw" + +msgid "Past 7 days" +msgstr "7 diwrnod diwethaf" + +msgid "This month" +msgstr "Mis yma" + +msgid "This year" +msgstr "Eleni" + +msgid "No date" +msgstr "" + +msgid "Has date" +msgstr "" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" +"Teipiwch yr %(username)s a chyfrinair cywir ar gyfer cyfrif staff. Noder y " +"gall y ddau faes fod yn sensitif i lythrennau bach a llythrennau bras." + +msgid "Action:" +msgstr "Gweithred:" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "Ychwanegu %(verbose_name)s arall" + +msgid "Remove" +msgstr "Gwaredu" + +msgid "action time" +msgstr "amser y weithred" + +msgid "user" +msgstr "" + +msgid "content type" +msgstr "" + +msgid "object id" +msgstr "id gwrthrych" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/3/library/functions.html#repr) +msgid "object repr" +msgstr "repr gwrthrych" + +msgid "action flag" +msgstr "fflag gweithred" + +msgid "change message" +msgstr "neges y newid" + +msgid "log entry" +msgstr "cofnod" + +msgid "log entries" +msgstr "cofnodion" + +#, python-format +msgid "Added \"%(object)s\"." +msgstr "Ychwanegwyd \"%(object)s\"." + +#, python-format +msgid "Changed \"%(object)s\" - %(changes)s" +msgstr "Newidwyd \"%(object)s\" - %(changes)s" + +#, python-format +msgid "Deleted \"%(object)s.\"" +msgstr "Dilëwyd \"%(object)s.\"" + +msgid "LogEntry Object" +msgstr "Gwrthrych LogEntry" + +#, python-brace-format +msgid "Added {name} \"{object}\"." +msgstr "" + +msgid "Added." +msgstr "" + +msgid "and" +msgstr "a" + +#, python-brace-format +msgid "Changed {fields} for {name} \"{object}\"." +msgstr "" + +#, python-brace-format +msgid "Changed {fields}." +msgstr "" + +#, python-brace-format +msgid "Deleted {name} \"{object}\"." +msgstr "" + +msgid "No fields changed." +msgstr "Ni newidwyd unrhwy feysydd." + +msgid "None" +msgstr "Dim" + +msgid "" +"Hold down \"Control\", or \"Command\" on a Mac, to select more than one." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was added successfully. You may edit it again below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was added successfully. You may add another {name} " +"below." +msgstr "" + +#, python-brace-format +msgid "The {name} \"{obj}\" was added successfully." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was changed successfully. You may edit it again below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was changed successfully. You may add another {name} " +"below." +msgstr "" + +#, python-brace-format +msgid "The {name} \"{obj}\" was changed successfully." +msgstr "" + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" +"Rhaid dewis eitemau er mwyn gweithredu arnynt. Ni ddewiswyd unrhyw eitemau." + +msgid "No action selected." +msgstr "Ni ddewiswyd gweithred." + +#, python-format +msgid "The %(name)s \"%(obj)s\" was deleted successfully." +msgstr "Dilëwyd %(name)s \"%(obj)s\" yn llwyddiannus." + +#, python-format +msgid "%(name)s with ID \"%(key)s\" doesn't exist. Perhaps it was deleted?" +msgstr "" + +#, python-format +msgid "Add %s" +msgstr "Ychwanegu %s" + +#, python-format +msgid "Change %s" +msgstr "Newid %s" + +msgid "Database error" +msgstr "Gwall cronfa ddata" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "Newidwyd %(count)s %(name)s yn llwyddiannus" +msgstr[1] "Newidwyd %(count)s %(name)s yn llwyddiannus" +msgstr[2] "Newidwyd %(count)s %(name)s yn llwyddiannus" +msgstr[3] "Newidwyd %(count)s %(name)s yn llwyddiannus" + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "Dewiswyd %(total_count)s" +msgstr[1] "Dewiswyd %(total_count)s" +msgstr[2] "Dewiswyd %(total_count)s" +msgstr[3] "Dewiswyd %(total_count)s" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "Dewiswyd 0 o %(cnt)s" + +#, python-format +msgid "Change history: %s" +msgstr "Hanes newid: %s" + +#. Translators: Model verbose name and instance representation, +#. suitable to be an item in a list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "%(class_name)s %(instance)s" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" +"Byddai dileu %(class_name)s %(instance)s yn golygu dileu'r gwrthrychau " +"gwarchodedig canlynol sy'n perthyn: %(related_objects)s" + +msgid "Django site admin" +msgstr "Adran weinyddol safle Django" + +msgid "Django administration" +msgstr "Gweinyddu Django" + +msgid "Site administration" +msgstr "Gweinyddu'r safle" + +msgid "Log in" +msgstr "Mewngofnodi" + +#, python-format +msgid "%(app)s administration" +msgstr "Gweinyddu %(app)s" + +msgid "Page not found" +msgstr "Ni ddarganfyddwyd y dudalen" + +msgid "We're sorry, but the requested page could not be found." +msgstr "Mae'n ddrwg gennym, ond ni ddarganfuwyd y dudalen" + +msgid "Home" +msgstr "Hafan" + +msgid "Server error" +msgstr "Gwall gweinydd" + +msgid "Server error (500)" +msgstr "Gwall gweinydd (500)" + +msgid "Server Error (500)" +msgstr "Gwall Gweinydd (500)" + +msgid "" +"There's been an error. It's been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" +"Mae gwall ac gyrrwyd adroddiad ohono i weinyddwyr y wefan drwy ebost a dylai " +"gael ei drwsio yn fuan. Diolch am fod yn amyneddgar." + +msgid "Run the selected action" +msgstr "Rhedeg y weithred a ddewiswyd" + +msgid "Go" +msgstr "Ffwrdd â ni" + +msgid "Click here to select the objects across all pages" +msgstr "" +"Cliciwch fan hyn i ddewis yr holl wrthrychau ar draws yr holl dudalennau" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "Dewis y %(total_count)s %(module_name)s" + +msgid "Clear selection" +msgstr "Clirio'r dewis" + +msgid "" +"First, enter a username and password. Then, you'll be able to edit more user " +"options." +msgstr "" +"Yn gyntaf, rhowch enw defnyddiwr a chyfrinair. Yna byddwch yn gallu golygu " +"mwy o ddewisiadau." + +msgid "Enter a username and password." +msgstr "Rhowch enw defnyddiwr a chyfrinair." + +msgid "Change password" +msgstr "Newid cyfrinair" + +msgid "Please correct the error below." +msgstr "Cywirwch y gwall isod." + +msgid "Please correct the errors below." +msgstr "Cywirwch y gwallau isod." + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "Rhowch gyfrinair newydd i'r defnyddiwr %(username)s." + +msgid "Welcome," +msgstr "Croeso," + +msgid "View site" +msgstr "" + +msgid "Documentation" +msgstr "Dogfennaeth" + +msgid "Log out" +msgstr "Allgofnodi" + +#, python-format +msgid "Add %(name)s" +msgstr "Ychwanegu %(name)s" + +msgid "History" +msgstr "Hanes" + +msgid "View on site" +msgstr "Gweld ar y safle" + +msgid "Filter" +msgstr "Hidl" + +msgid "Remove from sorting" +msgstr "Gwaredu o'r didoli" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "Blaenoriaeth didoli: %(priority_number)s" + +msgid "Toggle sorting" +msgstr "Toglio didoli" + +msgid "Delete" +msgstr "Dileu" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" +"Byddai dileu %(object_name)s '%(escaped_object)s' yn golygu dileu'r " +"gwrthrychau sy'n perthyn, ond nid oes ganddoch ganiatâd i ddileu y mathau " +"canlynol o wrthrychau:" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" +"Byddai dileu %(object_name)s '%(escaped_object)s' yn golygu dileu'r " +"gwrthrychau gwarchodedig canlynol sy'n perthyn:" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" + +msgid "Objects" +msgstr "" + +msgid "Yes, I'm sure" +msgstr "Ydw, rwy'n sicr" + +msgid "No, take me back" +msgstr "" + +msgid "Delete multiple objects" +msgstr "" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" +"Byddai dileu %(objects_name)s yn golygu dileu'r gwrthrychau gwarchodedig " +"canlynol sy'n perthyn:" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" +"Ydych yn sicr eich bod am ddileu'r %(objects_name)s a ddewiswyd? Dilëir yr " +"holl wrthrychau canlynol a'u heitemau perthnasol:" + +msgid "Change" +msgstr "Newid" + +msgid "Delete?" +msgstr "Dileu?" + +#, python-format +msgid " By %(filter_title)s " +msgstr "Wrth %(filter_title)s" + +msgid "Summary" +msgstr "" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "Modelau yn y rhaglen %(name)s " + +msgid "Add" +msgstr "Ychwanegu" + +msgid "You don't have permission to edit anything." +msgstr "Does gennych ddim hawl i olygu unrhywbeth." + +msgid "Recent actions" +msgstr "" + +msgid "My actions" +msgstr "" + +msgid "None available" +msgstr "Dim ar gael" + +msgid "Unknown content" +msgstr "Cynnwys anhysbys" + +msgid "" +"Something's wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" +"Mae rhywbeth o'i le ar osodiad y gronfa ddata. Sicrhewch fod y tablau " +"cronfa ddata priodol wedi eu creu, a sicrhewch fod y gronfa ddata yn " +"ddarllenadwy gan y defnyddiwr priodol." + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" + +msgid "Forgotten your password or username?" +msgstr "Anghofioch eich cyfrinair neu enw defnyddiwr?" + +msgid "Date/time" +msgstr "Dyddiad/amser" + +msgid "User" +msgstr "Defnyddiwr" + +msgid "Action" +msgstr "Gweithred" + +msgid "" +"This object doesn't have a change history. It probably wasn't added via this " +"admin site." +msgstr "" +"Does dim hanes newid gan y gwrthrych yma. Mae'n debyg nad ei ychwanegwyd " +"drwy'r safle gweinydd yma." + +msgid "Show all" +msgstr "Dangos pob canlyniad" + +msgid "Save" +msgstr "Cadw" + +msgid "Popup closing..." +msgstr "" + +#, python-format +msgid "Change selected %(model)s" +msgstr "" + +#, python-format +msgid "Add another %(model)s" +msgstr "" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "" + +msgid "Search" +msgstr "Chwilio" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "%(counter)s canlyniad" +msgstr[1] "%(counter)s canlyniad" +msgstr[2] "%(counter)s canlyniad" +msgstr[3] "%(counter)s canlyniad" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "Cyfanswm o %(full_result_count)s" + +msgid "Save as new" +msgstr "Cadw fel newydd" + +msgid "Save and add another" +msgstr "Cadw ac ychwanegu un arall" + +msgid "Save and continue editing" +msgstr "Cadw a pharhau i olygu" + +msgid "Thanks for spending some quality time with the Web site today." +msgstr "Diolch am dreulio amser o ansawdd gyda'r safle we yma heddiw." + +msgid "Log in again" +msgstr "Mewngofnodi eto" + +msgid "Password change" +msgstr "Newid cyfrinair" + +msgid "Your password was changed." +msgstr "Newidwyd eich cyfrinair." + +msgid "" +"Please enter your old password, for security's sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" +"Rhowch eich hen gyfrinair, er mwyn diogelwch, ac yna rhowch eich cyfrinair " +"newydd ddwywaith er mwyn gwirio y'i teipiwyd yn gywir." + +msgid "Change my password" +msgstr "Newid fy nghyfrinair" + +msgid "Password reset" +msgstr "Ailosod cyfrinair" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "Mae'ch cyfrinair wedi ei osod. Gallwch fewngofnodi nawr." + +msgid "Password reset confirmation" +msgstr "Cadarnhad ailosod cyfrinair" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" +"Rhowch eich cyfrinair newydd ddwywaith er mwyn gwirio y'i teipiwyd yn gywir." + +msgid "New password:" +msgstr "Cyfrinair newydd:" + +msgid "Confirm password:" +msgstr "Cadarnhewch y cyfrinair:" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"Roedd y ddolen i ailosod y cyfrinair yn annilys, o bosib oherwydd ei fod " +"wedi ei ddefnyddio'n barod. Gofynnwch i ailosod y cyfrinair eto." + +msgid "" +"We've emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" + +msgid "" +"If you don't receive an email, please make sure you've entered the address " +"you registered with, and check your spam folder." +msgstr "" +"Os na dderbyniwch ebost, sicrhewych y rhoddwyd y cyfeiriad sydd wedi ei " +"gofrestru gyda ni, ac edrychwch yn eich ffolder sbam." + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" +"Derbyniwch yr ebost hwn oherwydd i chi ofyn i ailosod y cyfrinair i'ch " +"cyfrif yn %(site_name)s." + +msgid "Please go to the following page and choose a new password:" +msgstr "Ewch i'r dudalen olynol a dewsiwch gyfrinair newydd:" + +msgid "Your username, in case you've forgotten:" +msgstr "Eich enw defnyddiwr, rhag ofn eich bod wedi anghofio:" + +msgid "Thanks for using our site!" +msgstr "Diolch am ddefnyddio ein safle!" + +#, python-format +msgid "The %(site_name)s team" +msgstr "Tîm %(site_name)s" + +msgid "" +"Forgotten your password? Enter your email address below, and we'll email " +"instructions for setting a new one." +msgstr "" +"Anghofioch eich cyfrinair? Rhowch eich cyfeiriad ebost isod ac fe ebostiwn " +"gyfarwyddiadau ar osod un newydd." + +msgid "Email address:" +msgstr "Cyfeiriad ebost:" + +msgid "Reset my password" +msgstr "Ailosod fy nghyfrinair" + +msgid "All dates" +msgstr "Holl ddyddiadau" + +#, python-format +msgid "Select %s" +msgstr "Dewis %s" + +#, python-format +msgid "Select %s to change" +msgstr "Dewis %s i newid" + +msgid "Date:" +msgstr "Dyddiad:" + +msgid "Time:" +msgstr "Amser:" + +msgid "Lookup" +msgstr "Archwilio" + +msgid "Currently:" +msgstr "Cyfredol:" + +msgid "Change:" +msgstr "Newid:" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/cy/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/cy/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..ee9a9ca285922ad1ded77923b371da06f6b93b1f GIT binary patch literal 3801 zcmd5;%a0tz885(ru;vX3kMQ`gVvjB8-kCMnn=wlWyMAn77@vngk zz-zC<1H27*AMjq_A>gAx-bVxX0WI*yz!%#7?}5*u{}ONj{0NAjNFdDXdO+TP8OZBb z@%Jk54DgS@Pk=uHdi?ReGvEo}i$Lb{9`Fs|-+{dDci40a{1W(AoLOHZ#0B&_5N3UU z0^SIG1BfZ{7a*33w}3YQ-v#oy{{g%S_#yD;z|Vop!2KW#N@5Mj`>g{pB{qThiQnSy zeV_)u1H6BKBmXgw^?eFt{htGQ{a3)3f&T=)0(=S1;PHJR!Fu)s*Har-PF#w3?x(j#@chHyzw_6(!P#w>3Cy=>uV_W|O58GhgZpRD4 zLHx8GV7uMizH$8{0=5JX~sfq$EG4gNH{h;1vUU6tueJ+%b}A zo{C>>Nn_>EYC2eoRq00Biq*{fQnx^og2{J!HqMvY#Rb-kE>Q3^ic3gZi(!(1Ja$UO z>U_S?x!=-p9-__a9kEl!23?3VMrpBOlrxhoh~Iec@E3HS&ifh3f+cvdy7`$Ts&zDd|>fZ<|{GCOiB2KOp`Sw3^XRW%l2tJ zWG?HuDNCPg8rH2djhpb&oQ#WG4E;rrwZ0+=zL;?|Vq3RzbfEF!0hq0T&`^g;Lx#17 z$`h9BGToEZwtIFMwa)tw88wFacZ|G}wHWx^GjB1dry55_fCaW6pBnGu7%rrI)tqQg zdy4bAL{RZ|96p&u_{|doMk6^2#=8fj{pwc0bpqv5Ax<6pLAr@XVmUBSX3MCVw9u`s zDx+;Wh{$Q-hsd6qtoPCQV~=ozl~2RSvk2_sCJLLrR-g%ThN{L1&*}yYc#lInvZ=?1jNXC&jE`)|g}$shMk3?rjRKOo%tf z+$QVeNSC+UW#Gv7yE|0|6oyCzUxrj{7XEqMSjoCdp3y}Kzw}8x5A*wlb9(BFkZhC_ zqmsvGlQJ3jJ}qpX9VDxTmh8i1P4XqN)a@Nhx(_G4 zSmP!$Inl{L%e+s|YFlP>I16FgUtFxJDh<4!8S9Jb$mfgAiRNJ2#fzhQ@yNo)`o_tf zv-i^O!m4*cJ8(h@^eO0zVR34uaVOaKMXAHe(}PpV@{Szq8tWoC=|*1R9_Z8Z(1dN0 zeHzsZn|4-6o1F4RUiQgNW4By+=ma&dD~H|6O795$lDgCq2 z?*Cmp%;;}#+smc?zmbNG#p%Y8bL`+^jRCU8cTXwS>RjT2ECalOx$i_=N_1LVYYK{S zL`5dy{-Ub&tR1Nx{5G^Puu6|m9Z~IMyps)YSV|o-IuMiR0M=Ki@--q*&ft5jO7~zO zcfvNE>z}moxXplmD23J#dy_b$5xSMYt%1_4%`_&#?z2&b2W` zldxWg=d9J>)sC)8Rdv!!((w44+LMPiP!TB^$qq6o?1pk($L!a^gB^eFM&oqWW#u}M znLr~Z9_NdSy`wNT$_(M7JHe?n`+IJJRBT9%6;3JtZC#ljvPVbQ3>xv(GgmwDwq_MI Zbet{O{ECBZXHObqM{i>Y*1PDZ;$O?5S=ayo literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/cy/LC_MESSAGES/djangojs.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/cy/LC_MESSAGES/djangojs.po new file mode 100644 index 0000000000..fa7ad2ac03 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/cy/LC_MESSAGES/djangojs.po @@ -0,0 +1,222 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Jannis Leidel , 2011 +# Maredudd ap Gwyndaf , 2014 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-05-17 23:12+0200\n" +"PO-Revision-Date: 2017-09-23 18:54+0000\n" +"Last-Translator: Jannis Leidel \n" +"Language-Team: Welsh (http://www.transifex.com/django/django/language/cy/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: cy\n" +"Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != " +"11) ? 2 : 3;\n" + +#, javascript-format +msgid "Available %s" +msgstr "%s sydd ar gael" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" +"Dyma restr o'r %s sydd ar gael. Gellir dewis rhai drwyeu dewis yn y blwch " +"isod ac yna clicio'r saeth \"Dewis\" rhwng y ddau flwch." + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "Teipiwch yn y blwch i hidlo'r rhestr o %s sydd ar gael." + +msgid "Filter" +msgstr "Hidl" + +msgid "Choose all" +msgstr "Dewis y cyfan" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "Cliciwch i ddewis pob %s yr un pryd." + +msgid "Choose" +msgstr "Dewis" + +msgid "Remove" +msgstr "Gwaredu" + +#, javascript-format +msgid "Chosen %s" +msgstr "Y %s a ddewiswyd" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" +"Dyma restr o'r %s a ddewiswyd. Gellir gwaredu rhai drwy eu dewis yn y blwch " +"isod ac yna clicio'r saeth \"Gwaredu\" rhwng y ddau flwch." + +msgid "Remove all" +msgstr "Gwaredu'r cyfan" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "Cliciwch i waredu pob %s sydd wedi ei ddewis yr un pryd." + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "Dewiswyd %(sel)s o %(cnt)s" +msgstr[1] "Dewiswyd %(sel)s o %(cnt)s" +msgstr[2] "Dewiswyd %(sel)s o %(cnt)s" +msgstr[3] "Dewiswyd %(sel)s o %(cnt)s" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" +"Mae ganddoch newidiadau heb eu cadw mewn meysydd golygadwy. Os rhedwch y " +"weithred fe gollwch y newidiadau." + +msgid "" +"You have selected an action, but you haven't saved your changes to " +"individual fields yet. Please click OK to save. You'll need to re-run the " +"action." +msgstr "" +"Rydych wedi dewis gweithred ond nid ydych wedi newid eich newidiadau i rai " +"meysydd eto. Cliciwch 'Iawn' i gadw. Bydd rhaid i chi ail-redeg y weithred." + +msgid "" +"You have selected an action, and you haven't made any changes on individual " +"fields. You're probably looking for the Go button rather than the Save " +"button." +msgstr "" +"Rydych wedi dewis gweithred ac nid ydych wedi newid unrhyw faes. Rydych " +"siwr o fod yn edrych am y botwm 'Ewch' yn lle'r botwm 'Cadw'." + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "Noder: Rydych %s awr o flaen amser y gweinydd." +msgstr[1] "Noder: Rydych %s awr o flaen amser y gweinydd." +msgstr[2] "Noder: Rydych %s awr o flaen amser y gweinydd." +msgstr[3] "Noder: Rydych %s awr o flaen amser y gweinydd." + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "Noder: Rydych %s awr tu ôl amser y gweinydd." +msgstr[1] "Noder: Rydych %s awr tu ôl amser y gweinydd." +msgstr[2] "Noder: Rydych %s awr tu ôl amser y gweinydd." +msgstr[3] "Noder: Rydych %s awr tu ôl amser y gweinydd." + +msgid "Now" +msgstr "Nawr" + +msgid "Choose a Time" +msgstr "" + +msgid "Choose a time" +msgstr "Dewiswch amser" + +msgid "Midnight" +msgstr "Canol nos" + +msgid "6 a.m." +msgstr "6 y.b." + +msgid "Noon" +msgstr "Canol dydd" + +msgid "6 p.m." +msgstr "" + +msgid "Cancel" +msgstr "Diddymu" + +msgid "Today" +msgstr "Heddiw" + +msgid "Choose a Date" +msgstr "" + +msgid "Yesterday" +msgstr "Ddoe" + +msgid "Tomorrow" +msgstr "Fory" + +msgid "January" +msgstr "" + +msgid "February" +msgstr "" + +msgid "March" +msgstr "" + +msgid "April" +msgstr "" + +msgid "May" +msgstr "" + +msgid "June" +msgstr "" + +msgid "July" +msgstr "" + +msgid "August" +msgstr "" + +msgid "September" +msgstr "" + +msgid "October" +msgstr "" + +msgid "November" +msgstr "" + +msgid "December" +msgstr "" + +msgctxt "one letter Sunday" +msgid "S" +msgstr "" + +msgctxt "one letter Monday" +msgid "M" +msgstr "" + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "" + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "" + +msgctxt "one letter Thursday" +msgid "T" +msgstr "" + +msgctxt "one letter Friday" +msgid "F" +msgstr "" + +msgctxt "one letter Saturday" +msgid "S" +msgstr "" + +msgid "Show" +msgstr "Dangos" + +msgid "Hide" +msgstr "Cuddio" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/da/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/da/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..f909706469ab547d5b781aba26deaf55cdc91671 GIT binary patch literal 18085 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/da/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/da/LC_MESSAGES/django.po new file mode 100644 index 0000000000..293030a1c9 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/da/LC_MESSAGES/django.po @@ -0,0 +1,788 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Christian Joergensen , 2012 +# Dimitris Glezos , 2012 +# Erik Ramsgaard Wognsen , 2020-2024 +# Erik Ramsgaard Wognsen , 2013,2015-2020 +# Finn Gruwier Larsen, 2011 +# Jannis Leidel , 2011 +# valberg , 2014-2015 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-05-22 11:46-0300\n" +"PO-Revision-Date: 2024-08-07 07:05+0000\n" +"Last-Translator: Erik Ramsgaard Wognsen , 2020-2024\n" +"Language-Team: Danish (http://app.transifex.com/django/django/language/da/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: da\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "Slet valgte %(verbose_name_plural)s" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "%(count)d %(items)s blev slettet." + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "Kan ikke slette %(name)s " + +msgid "Are you sure?" +msgstr "Er du sikker?" + +msgid "Administration" +msgstr "Administration" + +msgid "All" +msgstr "Alle" + +msgid "Yes" +msgstr "Ja" + +msgid "No" +msgstr "Nej" + +msgid "Unknown" +msgstr "Ukendt" + +msgid "Any date" +msgstr "Når som helst" + +msgid "Today" +msgstr "I dag" + +msgid "Past 7 days" +msgstr "De sidste 7 dage" + +msgid "This month" +msgstr "Denne måned" + +msgid "This year" +msgstr "Dette år" + +msgid "No date" +msgstr "Ingen dato" + +msgid "Has date" +msgstr "Har dato" + +msgid "Empty" +msgstr "Tom" + +msgid "Not empty" +msgstr "Ikke tom" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" +"Indtast venligst det korrekte %(username)s og adgangskode for en " +"personalekonto. Bemærk at begge felter kan være versalfølsomme." + +msgid "Action:" +msgstr "Handling" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "Tilføj endnu en %(verbose_name)s" + +msgid "Remove" +msgstr "Fjern" + +msgid "Addition" +msgstr "Tilføjelse" + +msgid "Change" +msgstr "Ret" + +msgid "Deletion" +msgstr "Sletning" + +msgid "action time" +msgstr "handlingstid" + +msgid "user" +msgstr "bruger" + +msgid "content type" +msgstr "indholdstype" + +msgid "object id" +msgstr "objekt-ID" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/library/functions.html#repr) +msgid "object repr" +msgstr "objekt repr" + +msgid "action flag" +msgstr "handlingsflag" + +msgid "change message" +msgstr "ændringsmeddelelse" + +msgid "log entry" +msgstr "logmeddelelse" + +msgid "log entries" +msgstr "logmeddelelser" + +#, python-format +msgid "Added “%(object)s”." +msgstr "Tilføjede “%(object)s”." + +#, python-format +msgid "Changed “%(object)s” — %(changes)s" +msgstr "Ændrede “%(object)s” — %(changes)s" + +#, python-format +msgid "Deleted “%(object)s.”" +msgstr "Slettede “%(object)s”." + +msgid "LogEntry Object" +msgstr "LogEntry-objekt" + +#, python-brace-format +msgid "Added {name} “{object}”." +msgstr "Tilføjede {name} “{object}”." + +msgid "Added." +msgstr "Tilføjet." + +msgid "and" +msgstr "og" + +#, python-brace-format +msgid "Changed {fields} for {name} “{object}”." +msgstr "Ændrede {fields} for {name} “{object}”." + +#, python-brace-format +msgid "Changed {fields}." +msgstr "Ændrede {fields}." + +#, python-brace-format +msgid "Deleted {name} “{object}”." +msgstr "Slettede {name} “{object}”." + +msgid "No fields changed." +msgstr "Ingen felter ændret." + +msgid "None" +msgstr "Ingen" + +msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." +msgstr "Hold “Ctrl”, eller “Æbletasten” på Mac, nede for at vælge mere end én." + +msgid "Select this object for an action - {}" +msgstr "Vælg dette objekt for en handling - {}" + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully." +msgstr "{name} “{obj}” blev tilføjet." + +msgid "You may edit it again below." +msgstr "Du kan redigere den/det igen herunder." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was added successfully. You may add another {name} below." +msgstr "" +"{name} “{obj}” blev tilføjet. Du kan tilføje endnu en/et {name} herunder." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may edit it again below." +msgstr "{name} “{obj}” blev ændret. Du kan redigere den/det igen herunder." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may add another {name} " +"below." +msgstr "" +"{name} “{obj}” blev ændret. Du kan tilføje endnu en/et {name} herunder." + +#, python-brace-format +msgid "The {name} “{obj}” was changed successfully." +msgstr "{name} “{obj}” blev ændret." + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" +"Der skal være valgt nogle emner for at man kan udføre handlinger på dem. " +"Ingen emner er blev ændret." + +msgid "No action selected." +msgstr "Ingen handling valgt." + +#, python-format +msgid "The %(name)s “%(obj)s” was deleted successfully." +msgstr "%(name)s “%(obj)s” blev slettet." + +#, python-format +msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" +msgstr "" +"%(name)s med ID “%(key)s” findes ikke. Måske er objektet blevet slettet?" + +#, python-format +msgid "Add %s" +msgstr "Tilføj %s" + +#, python-format +msgid "Change %s" +msgstr "Ret %s" + +#, python-format +msgid "View %s" +msgstr "Vis %s" + +msgid "Database error" +msgstr "Databasefejl" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "%(count)s %(name)s blev ændret." +msgstr[1] "%(count)s %(name)s blev ændret." + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "%(total_count)s valgt" +msgstr[1] "Alle %(total_count)s valgt" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "0 af %(cnt)s valgt" + +#, python-format +msgid "Change history: %s" +msgstr "Ændringshistorik: %s" + +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "%(class_name)s %(instance)s" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" +"Sletning af %(class_name)s %(instance)s vil kræve sletning af følgende " +"beskyttede relaterede objekter: %(related_objects)s" + +msgid "Django site admin" +msgstr "Django website-administration" + +msgid "Django administration" +msgstr "Django administration" + +msgid "Site administration" +msgstr "Website-administration" + +msgid "Log in" +msgstr "Log ind" + +#, python-format +msgid "%(app)s administration" +msgstr "%(app)s administration" + +msgid "Page not found" +msgstr "Siden blev ikke fundet" + +msgid "We’re sorry, but the requested page could not be found." +msgstr "Vi beklager, men den ønskede side kunne ikke findes" + +msgid "Home" +msgstr "Hjem" + +msgid "Server error" +msgstr "Serverfejl" + +msgid "Server error (500)" +msgstr "Serverfejl (500)" + +msgid "Server Error (500)" +msgstr "Serverfejl (500)" + +msgid "" +"There’s been an error. It’s been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" +"Der opstod en fejl. Fejlen er rapporteret til website-administratoren via e-" +"mail, og vil blive rettet hurtigst muligt. Tak for din tålmodighed." + +msgid "Run the selected action" +msgstr "Udfør den valgte handling" + +msgid "Go" +msgstr "Udfør" + +msgid "Click here to select the objects across all pages" +msgstr "Klik her for at vælge objekter på tværs af alle sider" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "Vælg alle %(total_count)s %(module_name)s " + +msgid "Clear selection" +msgstr "Ryd valg" + +msgid "Breadcrumbs" +msgstr "Sti" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "Modeller i applikationen %(name)s" + +msgid "Add" +msgstr "Tilføj" + +msgid "View" +msgstr "Vis" + +msgid "You don’t have permission to view or edit anything." +msgstr "Du har ikke rettigheder til at se eller redigere noget." + +msgid "" +"First, enter a username and password. Then, you’ll be able to edit more user " +"options." +msgstr "" +"Indtast først et brugernavn og en adgangskode. Derefter får du yderligere " +"redigeringsmuligheder." + +msgid "Enter a username and password." +msgstr "Indtast et brugernavn og en adgangskode." + +msgid "Change password" +msgstr "Skift adgangskode" + +msgid "Set password" +msgstr "Sæt adgangskode" + +msgid "Please correct the error below." +msgid_plural "Please correct the errors below." +msgstr[0] "Ret venligst fejlen herunder." +msgstr[1] "Ret venligst fejlene herunder." + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "Indtast en ny adgangskode for brugeren %(username)s." + +msgid "" +"This action will enable password-based authentication for " +"this user." +msgstr "" +"Denne handling vil aktivere adgangskodebaseret " +"autentificering for denne bruger." + +msgid "Disable password-based authentication" +msgstr "Deaktivér adgangskodebaseret autentificering." + +msgid "Enable password-based authentication" +msgstr "Aktivér adgangskodebaseret autentificering." + +msgid "Skip to main content" +msgstr "Gå til hovedindhold" + +msgid "Welcome," +msgstr "Velkommen," + +msgid "View site" +msgstr "Se side" + +msgid "Documentation" +msgstr "Dokumentation" + +msgid "Log out" +msgstr "Log ud" + +#, python-format +msgid "Add %(name)s" +msgstr "Tilføj %(name)s" + +msgid "History" +msgstr "Historik" + +msgid "View on site" +msgstr "Se på website" + +msgid "Filter" +msgstr "Filtrer" + +msgid "Hide counts" +msgstr "Skjul antal" + +msgid "Show counts" +msgstr "Vis antal" + +msgid "Clear all filters" +msgstr "Nulstil alle filtre" + +msgid "Remove from sorting" +msgstr "Fjern fra sortering" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "Sorteringsprioritet: %(priority_number)s" + +msgid "Toggle sorting" +msgstr "Skift sortering" + +msgid "Toggle theme (current theme: auto)" +msgstr "Skift tema (nuværende tema: auto)" + +msgid "Toggle theme (current theme: light)" +msgstr "Skift tema (nuværende tema: lyst)" + +msgid "Toggle theme (current theme: dark)" +msgstr "Skift tema (nuværende tema: mørkt)" + +msgid "Delete" +msgstr "Slet" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" +"Hvis du sletter %(object_name)s '%(escaped_object)s', vil du også slette " +"relaterede objekter, men din konto har ikke rettigheder til at slette " +"følgende objekttyper:" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" +"Sletning af %(object_name)s ' %(escaped_object)s ' vil kræve sletning af " +"følgende beskyttede relaterede objekter:" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" +"Er du sikker på du vil slette %(object_name)s \"%(escaped_object)s\"? Alle " +"de følgende relaterede objekter vil blive slettet:" + +msgid "Objects" +msgstr "Objekter" + +msgid "Yes, I’m sure" +msgstr "Ja, jeg er sikker" + +msgid "No, take me back" +msgstr "Nej, tag mig tilbage" + +msgid "Delete multiple objects" +msgstr "Slet flere objekter" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" +"Sletning af de valgte %(objects_name)s ville resultere i sletning af " +"relaterede objekter, men din konto har ikke tilladelse til at slette " +"følgende typer af objekter:" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" +"Sletning af de valgte %(objects_name)s vil kræve sletning af følgende " +"beskyttede relaterede objekter:" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" +"Er du sikker på du vil slette de valgte %(objects_name)s? Alle de følgende " +"objekter og deres relaterede emner vil blive slettet:" + +msgid "Delete?" +msgstr "Slet?" + +#, python-format +msgid " By %(filter_title)s " +msgstr " Efter %(filter_title)s " + +msgid "Summary" +msgstr "Sammendrag" + +msgid "Recent actions" +msgstr "Seneste handlinger" + +msgid "My actions" +msgstr "Mine handlinger" + +msgid "None available" +msgstr "Ingen tilgængelige" + +msgid "Added:" +msgstr "Tilføjede:" + +msgid "Changed:" +msgstr "Ændrede:" + +msgid "Deleted:" +msgstr "Slettede:" + +msgid "Unknown content" +msgstr "Ukendt indhold" + +msgid "" +"Something’s wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" +"Der er noget galt med databaseinstallationen. Kontroller om " +"databasetabellerne er blevet oprettet og at databasen er læsbar for den " +"pågældende bruger." + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" +"Du er logget ind som %(username)s, men du har ikke tilladelse til at tilgå " +"denne site. Vil du logge ind med en anden brugerkonto?" + +msgid "Forgotten your password or username?" +msgstr "Har du glemt din adgangskode eller dit brugernavn?" + +msgid "Toggle navigation" +msgstr "Vis/skjul navigation" + +msgid "Sidebar" +msgstr "Sidebjælke" + +msgid "Start typing to filter…" +msgstr "Skriv for at filtrere…" + +msgid "Filter navigation items" +msgstr "Filtrer navigationsemner" + +msgid "Date/time" +msgstr "Dato/tid" + +msgid "User" +msgstr "Bruger" + +msgid "Action" +msgstr "Funktion" + +msgid "entry" +msgid_plural "entries" +msgstr[0] "post" +msgstr[1] "poster" + +msgid "" +"This object doesn’t have a change history. It probably wasn’t added via this " +"admin site." +msgstr "" +"Dette objekt har ingen ændringshistorik. Det blev formentlig ikke tilføjet " +"via dette administrations-site" + +msgid "Show all" +msgstr "Vis alle" + +msgid "Save" +msgstr "Gem" + +msgid "Popup closing…" +msgstr "Popup lukker…" + +msgid "Search" +msgstr "Søg" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "%(counter)s resultat" +msgstr[1] "%(counter)s resultater" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "%(full_result_count)s i alt" + +msgid "Save as new" +msgstr "Gem som ny" + +msgid "Save and add another" +msgstr "Gem og tilføj endnu en" + +msgid "Save and continue editing" +msgstr "Gem og fortsæt med at redigere" + +msgid "Save and view" +msgstr "Gem og vis" + +msgid "Close" +msgstr "Luk" + +#, python-format +msgid "Change selected %(model)s" +msgstr "Redigér valgte %(model)s" + +#, python-format +msgid "Add another %(model)s" +msgstr "Tilføj endnu en %(model)s" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "Slet valgte %(model)s" + +#, python-format +msgid "View selected %(model)s" +msgstr "Vis valgte %(model)s" + +msgid "Thanks for spending some quality time with the web site today." +msgstr "Tak for den kvalitetstid du brugte på websitet i dag." + +msgid "Log in again" +msgstr "Log ind igen" + +msgid "Password change" +msgstr "Skift adgangskode" + +msgid "Your password was changed." +msgstr "Din adgangskode blev ændret." + +msgid "" +"Please enter your old password, for security’s sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" +"Indtast venligst din gamle adgangskode for en sikkerheds skyld og indtast så " +"din nye adgangskode to gange, så vi kan være sikre på, at den er indtastet " +"korrekt." + +msgid "Change my password" +msgstr "Skift min adgangskode" + +msgid "Password reset" +msgstr "Nulstil adgangskode" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "Din adgangskode er blevet sat. Du kan logge ind med den nu." + +msgid "Password reset confirmation" +msgstr "Bekræftelse for nulstilling af adgangskode" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" +"Indtast venligst din nye adgangskode to gange, så vi kan være sikre på, at " +"den er indtastet korrekt." + +msgid "New password:" +msgstr "Ny adgangskode:" + +msgid "Confirm password:" +msgstr "Bekræft ny adgangskode:" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"Linket for nulstilling af adgangskoden er ugyldigt, måske fordi det allerede " +"har været brugt. Anmod venligst påny om nulstilling af adgangskoden." + +msgid "" +"We’ve emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" +"Vi har sendt dig en e-mail med instruktioner for at indstille din " +"adgangskode, hvis en konto med den angivne e-mail-adresse findes. Du burde " +"modtage den snarest." + +msgid "" +"If you don’t receive an email, please make sure you’ve entered the address " +"you registered with, and check your spam folder." +msgstr "" +"Hvis du ikke modtager en e-mail, så tjek venligst, at du har indtastet den e-" +"mail-adresse, du registrerede dig med, og tjek din spam-mappe." + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" +"Du modtager denne e-mail, fordi du har anmodet om en nulstilling af " +"adgangskoden til din brugerkonto ved %(site_name)s ." + +msgid "Please go to the following page and choose a new password:" +msgstr "Gå venligst til denne side og vælg en ny adgangskode:" + +msgid "Your username, in case you’ve forgotten:" +msgstr "Hvis du skulle have glemt dit brugernavn er det:" + +msgid "Thanks for using our site!" +msgstr "Tak fordi du brugte vores website!" + +#, python-format +msgid "The %(site_name)s team" +msgstr "Med venlig hilsen %(site_name)s" + +msgid "" +"Forgotten your password? Enter your email address below, and we’ll email " +"instructions for setting a new one." +msgstr "" +"Har du glemt din adgangskode? Skriv din e-mail-adresse herunder, så sender " +"vi dig instruktioner i at vælge en ny adgangskode." + +msgid "Email address:" +msgstr "E-mail-adresse:" + +msgid "Reset my password" +msgstr "Nulstil min adgangskode" + +msgid "Select all objects on this page for an action" +msgstr "Vælg alle objekter på denne side for en handling" + +msgid "All dates" +msgstr "Alle datoer" + +#, python-format +msgid "Select %s" +msgstr "Vælg %s" + +#, python-format +msgid "Select %s to change" +msgstr "Vælg %s, der skal ændres" + +#, python-format +msgid "Select %s to view" +msgstr "Vælg %s, der skal vises" + +msgid "Date:" +msgstr "Dato:" + +msgid "Time:" +msgstr "Tid:" + +msgid "Lookup" +msgstr "Slå op" + +msgid "Currently:" +msgstr "Nuværende:" + +msgid "Change:" +msgstr "Ændring:" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/da/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/da/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..452684951fb8ba59b236841959863cc7a22138d7 GIT binary patch literal 5984 zcmb`L+m9qw8Nd(H;4%UN3bKfBc5z`BwtFsn?`4*~&R*x@PVWL@G}T?FyKA~Gox1cg z2^tgi$q+BmLdEtM+_-*!yHbbXyYLvi<>N~6sE%8ng)(%>)*J9n z>Mz)O*D`{4(LS*JrsenH6zxBOcfdE`qwqKIarh^=4gS;eHY&3J-In*m3iXE}L(~pi z-(y*WBHuoED?9@EQ}f(podqcK7vXd8GHk#%Ab+_~GVczAllAX{GVgvUaz6}Z+!K&L zHN#ETt3w(04EzCHfZv0EfigZ|vdA@nQhy1``rm>_;mfcN--S$3l}{AB8~&L3gYZZ2 zP1uJkDE$HWj^%ssLF)go^=&ABJM~B5XW$WA|AMXepp5?pdw*Lx5boBzf4|BL5XA`+UW=x8P5y_u#AWE|e_m{2aHUHuXzT)_V_r7bZA|>|4RPgxjF#;ZDnYZTkb34_Q89xzqA- z%O@>smUET|E$f!YEKgc4SYEJPg1C{oY}v59YWbYy7cIYJ`DIJYp2s0xGrtxr#mB|Z zT(`lqz`EuIveVVnC>WE!x>Qvbun;;sPyq}@P?9E}P zP0IvL6RQQ&j58-*R|}q>NmXI-81T%#^HVcvBi^VijdEHrA-iCbOn>uS++L$A|K z)nXLNgrz77xuvGApN}%_#PaI88)dO}y2f$EIEje|Cf4$DwXMhUA|HORZknzax*uxU zt%nW@9V|uH)N(70L?4%PwONSv)T)zavAp7{>8Hhn)h;tuv;4&yT`$r6rCpV^^yNkqC#aKC{Y$CqQyp3+=ED7Ks7Q`G_Us! zI>510QK+ba=XUOt+KsLiuehaxRpTSgEkgtTSyRs%H!K8r-X!?H$R_^VbvQf2kxrxmDKffbg$he~|LPWogRv*r6_sY%D#iB2Cd(ySaD_(&OSK%yp$L9twzJZxB$go3y4^ zeB&gh@HoAEQA{B7OX-O9p|RA=`F1X{EH|R) zT;j=DgFtqK@xE}~Nfj5U{My28VFM}DX)ob9pZMz`?Z ziad<>6#iSmkH^}Fj#c4l*b_uy+SU1|qQZT$J^y%A_=Ze$l+n7v!$emZzbiaUblLD- zfs;K1^a@e^hUU=FJUKcK`W5aI!}$!*x<1jm#8*eYEEOImx@?TCz=@t=Xsz(1q7Vz4 zl;b!w>u6hP)6up~gO0UYYmT;UnsThQG~;OFhz-?B9IcU2RL{HBt0qo}1$FJNap0q= z%cdX2X>~E_cy9G%)=8?3sII40maCVIm2Z7r&&|y4tIq7N&K=M*hw2B8JT=2L zb;(K6Y9n^S#COstuIn?g*VC7sAn7VAz~6~>pC?rrqg}j@xr4LQ{u#=^H&-R)x(?PWUsb~t7pPi%&bi9ZHGroT(K*iygnZ5XC`K*I_@eCi8Pgb@4dAJJdVo_3WObQ^PdQ*-Y^Uj^9ad z(vj$Vgbp&FM1`p3^?F8kHm=iAtGzWsL=ibOG~vFM=YYh|fJ}wqWQ2m{CdNFSX*7zOCD#-AGt@8aMn0bp&$me%Z*Rid z7IWhNW|D3?osYiJ2Tm#@np(=#a<51e7evDED*4=8PzBwqCrm2A9~>*lmX zGf{~oFt`OVQu5$&C#s3sdVB({pnS15VYTxr29T@x~V4!@*^A+Nn+ET*&0EzDmMYEpue-tg( z;Y~#&D3T&})Omu2+{qj}CRC|cG_UqzZ-6d13+T9wy2=A1*<&oqvRZfAH|iWO{|M7J z6~cGI3f0+oJyuwbKxiWlIwo^-ed6BU+$2S3ZjQ`t<0&aWBzXr-3~^(IVJ@+g2yfzC z*?5k$V$^`ZOPJAD@|o3MNHAxrr|~2?|6=#ECMY{F<$sigrL;RDOvePNCOn%_LF9C@ ztT+k#b1Rf8a^*2*U_!*EmV2c%#g1ScpGK}a_)Flj?2iq z)+E$P{K}7Sep(gYCaxv+RgR=+WMeLASDXBb@4b?kxJHh|L8PpykTfSEq9-IS3;dtu Nl3L}z$PKlu{tX1LFBkv- literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/da/LC_MESSAGES/djangojs.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/da/LC_MESSAGES/djangojs.po new file mode 100644 index 0000000000..064355dc34 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/da/LC_MESSAGES/djangojs.po @@ -0,0 +1,329 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Christian Joergensen , 2012 +# Erik Ramsgaard Wognsen , 2021-2023 +# Erik Ramsgaard Wognsen , 2012,2015-2016,2020 +# Finn Gruwier Larsen, 2011 +# Jannis Leidel , 2011 +# Mathias Rav , 2017 +# valberg , 2014 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-09-18 15:04-0300\n" +"PO-Revision-Date: 2023-12-04 07:59+0000\n" +"Last-Translator: Erik Ramsgaard Wognsen , 2021-2023\n" +"Language-Team: Danish (http://app.transifex.com/django/django/language/da/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: da\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, javascript-format +msgid "Available %s" +msgstr "Tilgængelige %s" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" +"Dette er listen over tilgængelige %s. Du kan vælge dem enkeltvis ved at " +"markere dem i kassen nedenfor og derefter klikke på \"Vælg\"-pilen mellem de " +"to kasser." + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "Skriv i dette felt for at filtrere listen af tilgængelige %s." + +msgid "Filter" +msgstr "Filtrér" + +msgid "Choose all" +msgstr "Vælg alle" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "Klik for at vælge alle %s med det samme." + +msgid "Choose" +msgstr "Vælg" + +msgid "Remove" +msgstr "Fjern" + +#, javascript-format +msgid "Chosen %s" +msgstr "Valgte %s" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" +"Dette er listen over valgte %s. Du kan fjerne dem enkeltvis ved at markere " +"dem i kassen nedenfor og derefter klikke på \"Fjern\"-pilen mellem de to " +"kasser." + +#, javascript-format +msgid "Type into this box to filter down the list of selected %s." +msgstr "Skriv i dette felt for at filtrere listen af valgte %s." + +msgid "Remove all" +msgstr "Fjern alle" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "Klik for at fjerne alle valgte %s med det samme." + +#, javascript-format +msgid "%s selected option not visible" +msgid_plural "%s selected options not visible" +msgstr[0] "%s valgt mulighed ikke vist" +msgstr[1] "%s valgte muligheder ikke vist" + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "%(sel)s af %(cnt)s valgt" +msgstr[1] "%(sel)s af %(cnt)s valgt" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" +"Du har ugemte ændringer af et eller flere redigerbare felter. Hvis du " +"udfører en handling fra drop-down-menuen, vil du miste disse ændringer." + +msgid "" +"You have selected an action, but you haven’t saved your changes to " +"individual fields yet. Please click OK to save. You’ll need to re-run the " +"action." +msgstr "" +"Du har valgt en handling, men du har ikke gemt dine ændringer til et eller " +"flere felter. Klik venligst OK for at gemme og vælg dernæst handlingen igen." + +msgid "" +"You have selected an action, and you haven’t made any changes on individual " +"fields. You’re probably looking for the Go button rather than the Save " +"button." +msgstr "" +"Du har valgt en handling, og du har ikke udført nogen ændringer på felter. " +"Du søger formentlig Udfør-knappen i stedet for Gem-knappen." + +msgid "Now" +msgstr "Nu" + +msgid "Midnight" +msgstr "Midnat" + +msgid "6 a.m." +msgstr "Klokken 6" + +msgid "Noon" +msgstr "Middag" + +msgid "6 p.m." +msgstr "Klokken 18" + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "Obs: Du er %s time forud i forhold til servertiden." +msgstr[1] "Obs: Du er %s timer forud i forhold til servertiden." + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "Obs: Du er %s time bagud i forhold til servertiden." +msgstr[1] "Obs: Du er %s timer bagud i forhold til servertiden." + +msgid "Choose a Time" +msgstr "Vælg et Tidspunkt" + +msgid "Choose a time" +msgstr "Vælg et tidspunkt" + +msgid "Cancel" +msgstr "Annuller" + +msgid "Today" +msgstr "I dag" + +msgid "Choose a Date" +msgstr "Vælg en Dato" + +msgid "Yesterday" +msgstr "I går" + +msgid "Tomorrow" +msgstr "I morgen" + +msgid "January" +msgstr "Januar" + +msgid "February" +msgstr "Februar" + +msgid "March" +msgstr "Marts" + +msgid "April" +msgstr "April" + +msgid "May" +msgstr "Maj" + +msgid "June" +msgstr "Juni" + +msgid "July" +msgstr "Juli" + +msgid "August" +msgstr "August" + +msgid "September" +msgstr "September" + +msgid "October" +msgstr "Oktober" + +msgid "November" +msgstr "November" + +msgid "December" +msgstr "December" + +msgctxt "abbrev. month January" +msgid "Jan" +msgstr "jan" + +msgctxt "abbrev. month February" +msgid "Feb" +msgstr "feb" + +msgctxt "abbrev. month March" +msgid "Mar" +msgstr "mar" + +msgctxt "abbrev. month April" +msgid "Apr" +msgstr "apr" + +msgctxt "abbrev. month May" +msgid "May" +msgstr "maj" + +msgctxt "abbrev. month June" +msgid "Jun" +msgstr "jun" + +msgctxt "abbrev. month July" +msgid "Jul" +msgstr "jul" + +msgctxt "abbrev. month August" +msgid "Aug" +msgstr "aug" + +msgctxt "abbrev. month September" +msgid "Sep" +msgstr "sep" + +msgctxt "abbrev. month October" +msgid "Oct" +msgstr "okt" + +msgctxt "abbrev. month November" +msgid "Nov" +msgstr "nov" + +msgctxt "abbrev. month December" +msgid "Dec" +msgstr "dec" + +msgid "Sunday" +msgstr "søndag" + +msgid "Monday" +msgstr "mandag" + +msgid "Tuesday" +msgstr "tirsdag" + +msgid "Wednesday" +msgstr "onsdag" + +msgid "Thursday" +msgstr "torsdag" + +msgid "Friday" +msgstr "fredag" + +msgid "Saturday" +msgstr "lørdag" + +msgctxt "abbrev. day Sunday" +msgid "Sun" +msgstr "søn" + +msgctxt "abbrev. day Monday" +msgid "Mon" +msgstr "man" + +msgctxt "abbrev. day Tuesday" +msgid "Tue" +msgstr "tir" + +msgctxt "abbrev. day Wednesday" +msgid "Wed" +msgstr "ons" + +msgctxt "abbrev. day Thursday" +msgid "Thur" +msgstr "tor" + +msgctxt "abbrev. day Friday" +msgid "Fri" +msgstr "fre" + +msgctxt "abbrev. day Saturday" +msgid "Sat" +msgstr "lør" + +msgctxt "one letter Sunday" +msgid "S" +msgstr "S" + +msgctxt "one letter Monday" +msgid "M" +msgstr "M" + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "T" + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "O" + +msgctxt "one letter Thursday" +msgid "T" +msgstr "T" + +msgctxt "one letter Friday" +msgid "F" +msgstr "F" + +msgctxt "one letter Saturday" +msgid "S" +msgstr "L" + +msgid "Show" +msgstr "Vis" + +msgid "Hide" +msgstr "Skjul" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/de/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/de/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..c260e8d8bc20a95d7be42ded5b07fda1a318389e GIT binary patch literal 18731 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 P2KNoiO+=2=OQVf_ literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/de/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/de/LC_MESSAGES/django.po new file mode 100644 index 0000000000..205d797378 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/de/LC_MESSAGES/django.po @@ -0,0 +1,791 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# André Hagenbruch, 2012 +# Florian Apolloner , 2011 +# Dimitris Glezos , 2012 +# Florian Apolloner , 2020-2023 +# jnns, 2013 +# Jannis Leidel , 2013-2018,2020 +# jnns, 2016 +# Markus Holtermann , 2020,2023 +# Markus Holtermann , 2013,2015 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-09-18 11:41-0300\n" +"PO-Revision-Date: 2023-12-04 07:05+0000\n" +"Last-Translator: Markus Holtermann , 2020,2023\n" +"Language-Team: German (http://app.transifex.com/django/django/language/de/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: de\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "Ausgewählte %(verbose_name_plural)s löschen" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "Erfolgreich %(count)d %(items)s gelöscht." + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "Kann %(name)s nicht löschen" + +msgid "Are you sure?" +msgstr "Sind Sie sicher?" + +msgid "Administration" +msgstr "Administration" + +msgid "All" +msgstr "Alle" + +msgid "Yes" +msgstr "Ja" + +msgid "No" +msgstr "Nein" + +msgid "Unknown" +msgstr "Unbekannt" + +msgid "Any date" +msgstr "Alle Daten" + +msgid "Today" +msgstr "Heute" + +msgid "Past 7 days" +msgstr "Letzte 7 Tage" + +msgid "This month" +msgstr "Diesen Monat" + +msgid "This year" +msgstr "Dieses Jahr" + +msgid "No date" +msgstr "Kein Datum" + +msgid "Has date" +msgstr "Besitzt Datum" + +msgid "Empty" +msgstr "Leer" + +msgid "Not empty" +msgstr "Nicht leer" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" +"Bitte %(username)s und Passwort für einen Staff-Account eingeben. Beide " +"Felder berücksichtigen die Groß-/Kleinschreibung." + +msgid "Action:" +msgstr "Aktion:" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "%(verbose_name)s hinzufügen" + +msgid "Remove" +msgstr "Entfernen" + +msgid "Addition" +msgstr "Hinzugefügt" + +msgid "Change" +msgstr "Ändern" + +msgid "Deletion" +msgstr "Gelöscht" + +msgid "action time" +msgstr "Zeitpunkt der Aktion" + +msgid "user" +msgstr "Benutzer" + +msgid "content type" +msgstr "Inhaltstyp" + +msgid "object id" +msgstr "Objekt-ID" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/library/functions.html#repr) +msgid "object repr" +msgstr "Objekt Darst." + +msgid "action flag" +msgstr "Aktionskennzeichen" + +msgid "change message" +msgstr "Änderungsmeldung" + +msgid "log entry" +msgstr "Logeintrag" + +msgid "log entries" +msgstr "Logeinträge" + +#, python-format +msgid "Added “%(object)s”." +msgstr "„%(object)s“ hinzufügt." + +#, python-format +msgid "Changed “%(object)s” — %(changes)s" +msgstr "„%(object)s“ geändert – %(changes)s" + +#, python-format +msgid "Deleted “%(object)s.”" +msgstr "„%(object)s“ gelöscht." + +msgid "LogEntry Object" +msgstr "LogEntry Objekt" + +#, python-brace-format +msgid "Added {name} “{object}”." +msgstr "{name} „{object}“ hinzugefügt." + +msgid "Added." +msgstr "Hinzugefügt." + +msgid "and" +msgstr "und" + +#, python-brace-format +msgid "Changed {fields} for {name} “{object}”." +msgstr "{fields} für {name} „{object}“ geändert." + +#, python-brace-format +msgid "Changed {fields}." +msgstr "{fields} geändert." + +#, python-brace-format +msgid "Deleted {name} “{object}”." +msgstr "{name} „{object}“ gelöscht." + +msgid "No fields changed." +msgstr "Keine Felder geändert." + +msgid "None" +msgstr "-" + +msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." +msgstr "" +"Halten Sie die Strg-Taste (⌘ für Mac) während des Klickens gedrückt, um " +"mehrere Einträge auszuwählen." + +msgid "Select this object for an action - {}" +msgstr "Dieses Objekt für eine Aktion auswählen - {}" + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully." +msgstr "{name} „{obj}“ wurde erfolgreich hinzugefügt." + +msgid "You may edit it again below." +msgstr "Es kann unten erneut geändert werden." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was added successfully. You may add another {name} below." +msgstr "" +"{name} „{obj}“ wurde erfolgreich hinzugefügt und kann nun unten um ein " +"Weiteres ergänzt werden." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may edit it again below." +msgstr "" +"{name} „{obj}“ wurde erfolgreich geändert und kann unten erneut geändert " +"werden." + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully. You may edit it again below." +msgstr "" +"{name} „{obj}“ wurde erfolgreich hinzugefügt und kann unten geändert werden." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may add another {name} " +"below." +msgstr "" +"{name} „{obj}“ wurde erfolgreich geändert und kann nun unten erneut ergänzt " +"werden." + +#, python-brace-format +msgid "The {name} “{obj}” was changed successfully." +msgstr "{name} „{obj}“ wurde erfolgreich geändert." + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" +"Es müssen Objekte aus der Liste ausgewählt werden, um Aktionen " +"durchzuführen. Es wurden keine Objekte geändert." + +msgid "No action selected." +msgstr "Keine Aktion ausgewählt." + +#, python-format +msgid "The %(name)s “%(obj)s” was deleted successfully." +msgstr "%(name)s „%(obj)s“ wurde erfolgreich gelöscht." + +#, python-format +msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" +msgstr "%(name)s mit ID „%(key)s“ existiert nicht. Eventuell gelöscht?" + +#, python-format +msgid "Add %s" +msgstr "%s hinzufügen" + +#, python-format +msgid "Change %s" +msgstr "%s ändern" + +#, python-format +msgid "View %s" +msgstr "%s ansehen" + +msgid "Database error" +msgstr "Datenbankfehler" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "%(count)s %(name)s wurde erfolgreich geändert." +msgstr[1] "%(count)s %(name)s wurden erfolgreich geändert." + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "%(total_count)s ausgewählt" +msgstr[1] "Alle %(total_count)s ausgewählt" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "0 von %(cnt)s ausgewählt" + +#, python-format +msgid "Change history: %s" +msgstr "Änderungsgeschichte: %s" + +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "%(class_name)s %(instance)s" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" +"Das Löschen des %(class_name)s-Objekts „%(instance)s“ würde ein Löschen der " +"folgenden geschützten verwandten Objekte erfordern: %(related_objects)s" + +msgid "Django site admin" +msgstr "Django-Systemverwaltung" + +msgid "Django administration" +msgstr "Django-Verwaltung" + +msgid "Site administration" +msgstr "Website-Verwaltung" + +msgid "Log in" +msgstr "Anmelden" + +#, python-format +msgid "%(app)s administration" +msgstr "%(app)s-Administration" + +msgid "Page not found" +msgstr "Seite nicht gefunden" + +msgid "We’re sorry, but the requested page could not be found." +msgstr "" +"Es tut uns leid, aber die angeforderte Seite konnte nicht gefunden werden." + +msgid "Home" +msgstr "Start" + +msgid "Server error" +msgstr "Serverfehler" + +msgid "Server error (500)" +msgstr "Serverfehler (500)" + +msgid "Server Error (500)" +msgstr "Serverfehler (500)" + +msgid "" +"There’s been an error. It’s been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" +"Ein Fehler ist aufgetreten und wurde an die Administratoren per E-Mail " +"gemeldet. Danke für die Geduld, der Fehler sollte in Kürze behoben sein." + +msgid "Run the selected action" +msgstr "Ausgewählte Aktion ausführen" + +msgid "Go" +msgstr "Ausführen" + +msgid "Click here to select the objects across all pages" +msgstr "Hier klicken, um die Objekte aller Seiten auszuwählen" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "Alle %(total_count)s %(module_name)s auswählen" + +msgid "Clear selection" +msgstr "Auswahl widerrufen" + +msgid "Breadcrumbs" +msgstr "„Brotkrümel“" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "Modelle der %(name)s-Anwendung" + +msgid "Add" +msgstr "Hinzufügen" + +msgid "View" +msgstr "Ansehen" + +msgid "You don’t have permission to view or edit anything." +msgstr "" +"Das Benutzerkonto besitzt nicht die nötigen Rechte, um etwas anzusehen oder " +"zu ändern." + +msgid "" +"First, enter a username and password. Then, you’ll be able to edit more user " +"options." +msgstr "" +"Bitte zuerst einen Benutzernamen und ein Passwort eingeben. Danach können " +"weitere Optionen für den Benutzer geändert werden." + +msgid "Enter a username and password." +msgstr "Bitte einen Benutzernamen und ein Passwort eingeben." + +msgid "Change password" +msgstr "Passwort ändern" + +msgid "Please correct the error below." +msgid_plural "Please correct the errors below." +msgstr[0] "Bitte den unten aufgeführten Fehler korrigieren." +msgstr[1] "Bitte die unten aufgeführten Fehler korrigieren." + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "" +"Bitte geben Sie ein neues Passwort für den Benutzer %(username)s ein." + +msgid "Skip to main content" +msgstr "Zum Hauptinhalt springen" + +msgid "Welcome," +msgstr "Willkommen," + +msgid "View site" +msgstr "Website anzeigen" + +msgid "Documentation" +msgstr "Dokumentation" + +msgid "Log out" +msgstr "Abmelden" + +#, python-format +msgid "Add %(name)s" +msgstr "%(name)s hinzufügen" + +msgid "History" +msgstr "Geschichte" + +msgid "View on site" +msgstr "Auf der Website anzeigen" + +msgid "Filter" +msgstr "Filter" + +msgid "Hide counts" +msgstr "Anzahl verstecken" + +msgid "Show counts" +msgstr "Anzahl anzeigen" + +msgid "Clear all filters" +msgstr "Alle Filter zurücksetzen" + +msgid "Remove from sorting" +msgstr "Aus der Sortierung entfernen" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "Sortierung: %(priority_number)s" + +msgid "Toggle sorting" +msgstr "Sortierung ein-/ausschalten" + +msgid "Toggle theme (current theme: auto)" +msgstr "Design wechseln (aktuelles Design: automatisch)" + +msgid "Toggle theme (current theme: light)" +msgstr "Design wechseln (aktuelles Design: hell)" + +msgid "Toggle theme (current theme: dark)" +msgstr "Design wechseln (aktuelles Design: dunkel)" + +msgid "Delete" +msgstr "Löschen" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" +"Das Löschen des %(object_name)s „%(escaped_object)s“ hätte das Löschen davon " +"abhängiger Daten zur Folge, aber Sie haben nicht die nötigen Rechte, um die " +"folgenden davon abhängigen Daten zu löschen:" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" +"Das Löschen von %(object_name)s „%(escaped_object)s“ würde ein Löschen der " +"folgenden geschützten verwandten Objekte erfordern:" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" +"Sind Sie sicher, dass Sie %(object_name)s „%(escaped_object)s“ löschen " +"wollen? Es werden zusätzlich die folgenden davon abhängigen Daten gelöscht:" + +msgid "Objects" +msgstr "Objekte" + +msgid "Yes, I’m sure" +msgstr "Ja, ich bin sicher" + +msgid "No, take me back" +msgstr "Nein, bitte abbrechen" + +msgid "Delete multiple objects" +msgstr "Mehrere Objekte löschen" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" +"Das Löschen der ausgewählten %(objects_name)s würde im Löschen geschützter " +"verwandter Objekte resultieren, allerdings besitzt Ihr Benutzerkonto nicht " +"die nötigen Rechte, um diese zu löschen:" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" +"Das Löschen der ausgewählten %(objects_name)s würde ein Löschen der " +"folgenden geschützten verwandten Objekte erfordern:" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" +"Sind Sie sicher, dass Sie die ausgewählten %(objects_name)s löschen wollen? " +"Alle folgenden Objekte und ihre verwandten Objekte werden gelöscht:" + +msgid "Delete?" +msgstr "Löschen?" + +#, python-format +msgid " By %(filter_title)s " +msgstr " Nach %(filter_title)s " + +msgid "Summary" +msgstr "Zusammenfassung" + +msgid "Recent actions" +msgstr "Neueste Aktionen" + +msgid "My actions" +msgstr "Meine Aktionen" + +msgid "None available" +msgstr "Keine vorhanden" + +msgid "Added:" +msgstr "Hinzugefügt:" + +msgid "Changed:" +msgstr "Geändert:" + +msgid "Deleted:" +msgstr "Gelöscht:" + +msgid "Unknown content" +msgstr "Unbekannter Inhalt" + +msgid "" +"Something’s wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" +"Etwas stimmt nicht mit der Datenbankkonfiguration. Bitte sicherstellen, dass " +"die richtigen Datenbanktabellen angelegt wurden und die Datenbank vom " +"verwendeten Datenbankbenutzer auch lesbar ist." + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" +"Sie sind als %(username)s angemeldet, aber nicht autorisiert, auf diese " +"Seite zuzugreifen. Wollen Sie sich mit einem anderen Account anmelden?" + +msgid "Forgotten your password or username?" +msgstr "Benutzername oder Passwort vergessen?" + +msgid "Toggle navigation" +msgstr "Navigation ein-/ausblenden" + +msgid "Sidebar" +msgstr "Seitenleiste" + +msgid "Start typing to filter…" +msgstr "Eingabe beginnen um zu filtern…" + +msgid "Filter navigation items" +msgstr "Navigationselemente filtern" + +msgid "Date/time" +msgstr "Datum/Zeit" + +msgid "User" +msgstr "Benutzer" + +msgid "Action" +msgstr "Aktion" + +msgid "entry" +msgid_plural "entries" +msgstr[0] "Eintrag" +msgstr[1] "Einträge" + +msgid "" +"This object doesn’t have a change history. It probably wasn’t added via this " +"admin site." +msgstr "" +"Dieses Objekt hat keine Änderungsgeschichte. Es wurde möglicherweise nicht " +"über diese Verwaltungsseiten angelegt." + +msgid "Show all" +msgstr "Zeige alle" + +msgid "Save" +msgstr "Sichern" + +msgid "Popup closing…" +msgstr "Popup wird geschlossen..." + +msgid "Search" +msgstr "Suchen" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "%(counter)s Ergebnis" +msgstr[1] "%(counter)s Ergebnisse" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "%(full_result_count)s gesamt" + +msgid "Save as new" +msgstr "Als neu sichern" + +msgid "Save and add another" +msgstr "Sichern und neu hinzufügen" + +msgid "Save and continue editing" +msgstr "Sichern und weiter bearbeiten" + +msgid "Save and view" +msgstr "Sichern und ansehen" + +msgid "Close" +msgstr "Schließen" + +#, python-format +msgid "Change selected %(model)s" +msgstr "Ausgewählte %(model)s ändern" + +#, python-format +msgid "Add another %(model)s" +msgstr "%(model)s hinzufügen" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "Ausgewählte %(model)s löschen" + +#, python-format +msgid "View selected %(model)s" +msgstr "Ausgewählte %(model)s ansehen" + +msgid "Thanks for spending some quality time with the web site today." +msgstr "" +"Vielen Dank, dass Sie heute ein paar nette Minuten auf dieser Webseite " +"verbracht haben." + +msgid "Log in again" +msgstr "Erneut anmelden" + +msgid "Password change" +msgstr "Passwort ändern" + +msgid "Your password was changed." +msgstr "Ihr Passwort wurde geändert." + +msgid "" +"Please enter your old password, for security’s sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" +"Aus Sicherheitsgründen bitte zuerst das alte Passwort und darunter dann " +"zweimal das neue Passwort eingeben, um sicherzustellen, dass es es korrekt " +"eingegeben wurde." + +msgid "Change my password" +msgstr "Mein Passwort ändern" + +msgid "Password reset" +msgstr "Passwort zurücksetzen" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "Ihr Passwort wurde zurückgesetzt. Sie können sich nun anmelden." + +msgid "Password reset confirmation" +msgstr "Zurücksetzen des Passworts bestätigen" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" +"Bitte geben Sie Ihr neues Passwort zweimal ein, damit wir überprüfen können, " +"ob es richtig eingetippt wurde." + +msgid "New password:" +msgstr "Neues Passwort:" + +msgid "Confirm password:" +msgstr "Passwort wiederholen:" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"Der Link zum Zurücksetzen Ihres Passworts ist ungültig, wahrscheinlich weil " +"er schon einmal benutzt wurde. Bitte setzen Sie Ihr Passwort erneut zurück." + +msgid "" +"We’ve emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" +"Wir haben eine E-Mail zum Zurücksetzen des Passwortes an die angegebene E-" +"Mail-Adresse gesendet, sofern ein entsprechendes Konto existiert. Sie sollte " +"in Kürze ankommen." + +msgid "" +"If you don’t receive an email, please make sure you’ve entered the address " +"you registered with, and check your spam folder." +msgstr "" +"Falls die E-Mail nicht angekommen sein sollte, bitte die E-Mail-Adresse auf " +"Richtigkeit und gegebenenfalls den Spam-Ordner überprüfen." + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" +"Diese E-Mail wurde aufgrund einer Anfrage zum Zurücksetzen des Passworts auf " +"der Website %(site_name)s versendet." + +msgid "Please go to the following page and choose a new password:" +msgstr "Bitte öffnen Sie folgende Seite, um Ihr neues Passwort einzugeben:" + +msgid "Your username, in case you’ve forgotten:" +msgstr "Der Benutzername, falls vergessen:" + +msgid "Thanks for using our site!" +msgstr "Vielen Dank, dass Sie unsere Website benutzen!" + +#, python-format +msgid "The %(site_name)s team" +msgstr "Das Team von %(site_name)s" + +msgid "" +"Forgotten your password? Enter your email address below, and we’ll email " +"instructions for setting a new one." +msgstr "" +"Passwort vergessen? Einfach die E-Mail-Adresse unten eingeben und den " +"Anweisungen zum Zurücksetzen des Passworts in der E-Mail folgen." + +msgid "Email address:" +msgstr "E-Mail-Adresse:" + +msgid "Reset my password" +msgstr "Mein Passwort zurücksetzen" + +msgid "Select all objects on this page for an action" +msgstr "Alle Objekte auf dieser Seite für eine Aktion auswählen" + +msgid "All dates" +msgstr "Alle Daten" + +#, python-format +msgid "Select %s" +msgstr "%s auswählen" + +#, python-format +msgid "Select %s to change" +msgstr "%s zur Änderung auswählen" + +#, python-format +msgid "Select %s to view" +msgstr "%s zum Ansehen auswählen" + +msgid "Date:" +msgstr "Datum:" + +msgid "Time:" +msgstr "Zeit:" + +msgid "Lookup" +msgstr "Suchen" + +msgid "Currently:" +msgstr "Aktuell:" + +msgid "Change:" +msgstr "Ändern:" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/de/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/de/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..c579ef5af97b88b6588f798c70cfd98c5765ab1d GIT binary patch literal 6130 zcmbuDUyNK;8Nd%RD6E2tf`}*ww9-mvcDtpeowAgr+ikaHyK8q52`}E6IWu$FJLgXB zpIvs*q$-*;!3T^c5D1Z^(L{oV7$he6P&X#>z=Im%zi133CPpHO&pi11&OI|bGhLv{ z&7S+a=kNW__kHKP-|XM6E`48dEmCfvJoP@MR^<6IZd|{4zf!lum*Ji8k`E}wqq@uU z7?h!>e0>>yi24J*-u8^)m9(#VKH~XZI7a&q;1%#$cq4oPejdIGFNbe=UPeXUf0gGo zutfa^$PjgtukZ4#K#^}Ryc8aU{HZB!vd%1&`SbA0@HAY8&qDs3P%`fdgp>8Jgfj0M zD01HbW!x>0KQ+Nk)~iApcNl&T&ceswU!aWdFj?eUg;M`2l=Z&_55e!iDts9-MU_5S z@GAH;_3Pl{@I}~#izxkCc;54m@H*;m`ugQ4|C7{jgr9&1ef^8Rz5-?ZH{td0DbE+7 z%=;ab_22Nk^r~W=>)|!DPePe@9Lo4Q{1p5e{1|+~^EoKv&-?lxeEnbWL+}C5weuJ4~pKJ5EZH}M0E8qWJz@vioT!l z^=CYvhr4M%4@Lj~hGL&xR~O?aq1d(R>(fxypY!d@Q0)JJ=U1S}XQ24e3dCe8hO*AX zp5K6N>StjS{s+o???-tuzXnC#Hk5sJq3mB0T}S-GUA+bPD)O6m;(@agT24NJi zh~AN^BY~}(NF8a%acVqtpl5>a) zTPo^EuRk%Jc-6Rmh8DB8hRv9|>C{Z3W=$>0gJfOJhEXQUh{N>O^2&*NHq@ zS0{37)O?WC+uYaHeAuvItDUL&*vf=cacsF|rmF9ca~&kIb={8hLYXuC03)4Q)%Nc64an61Dgt_7%lz zI$&$`SX~#B`f>W^!i{c5!wG|GCR;O%k+)}Sv1YnSD{4ET`d+Xlk@u1JC{dxZcaU7Rn5w{#mEGyDLhUuoD>tt{GRm08f#dM=ERhfypXO?&46IJEnd34 zLQEsfTxjfRX0GW(mgNQ%?Ia#uX)Q#A8V4;-vx*98wZyDeG)B`!+$w>g<{~b*7cFrQ+##g%TnTD zq|3+H5*+F2ht?8LDz;eIWE{u7SqIyCHXUr+GU!mNx8`8mmMMo?duAML9I&BUOyUR0 zD9Uq<@|R4K5(}!j@gN629y@Kiagvqi(^l9h-<`M8@^W0&V~Y#r(?)WM*p}s6U)7Tn zd-j$mZYxjj(-XH>_Z_@-f@|!aAkE6lNnq0`$l|1`(ez55>f^C|kUN33`i{^x!raL1+(2SV>ZoP2IaZTRyNg zPTtitN%^R)#|=JTRehiqW_>A9pBY<>@+64LvvJZ%tJ-#5HJzF~q>IO?omSs8rT6SQ zG}h1LRtb>3G%v{0mRZ|8*N(Dx?sOC4%B^zXnJcV+iZGfUBX_Sf5B=c#?#X*)r zKDv_9AfrRY zR-E^*#r&Q+=2B0q#Qoa{YGtg^(<|;L>A*sypL|*MitFBd1f!BPv0=%ZY9>f(oJWZ} zg{e7gn)5<`-0AQ_cf8i(h|h}EYe73f7*-;PwB6Y+%#Sy95*mJBqC=gN%?xA=S3ABF+>8OucPVj}3F3#b{7M*D#RBs?Vn+YVY=+5R# zsr=FvMT#}N1|^J<7o$kOxj~r+MYtF>4rpaa*85QGg|E(%INNC8aa%8U3pia2zM6Bq z#!)u*Fh9ZZV}gQOit%uq8BdXaFUUU^Bo@nWb_ui+WhKa}c^_dV<09Bd9NB)6{{rBJ Bk0Jm7 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/de/LC_MESSAGES/djangojs.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/de/LC_MESSAGES/djangojs.po new file mode 100644 index 0000000000..2fe140ffe8 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/de/LC_MESSAGES/djangojs.po @@ -0,0 +1,331 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# André Hagenbruch, 2011-2012 +# Florian Apolloner , 2020-2023 +# Jannis Leidel , 2011,2013-2016,2023 +# jnns, 2016 +# Markus Holtermann , 2020,2023 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-09-18 15:04-0300\n" +"PO-Revision-Date: 2023-12-04 07:59+0000\n" +"Last-Translator: Markus Holtermann , 2020,2023\n" +"Language-Team: German (http://app.transifex.com/django/django/language/de/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: de\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, javascript-format +msgid "Available %s" +msgstr "Verfügbare %s" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" +"Dies ist die Liste der verfügbaren %s. Einfach im unten stehenden Feld " +"markieren und mithilfe des „Auswählen“-Pfeils auswählen." + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "" +"Durch Eingabe in diesem Feld lässt sich die Liste der verfügbaren %s " +"eingrenzen." + +msgid "Filter" +msgstr "Filter" + +msgid "Choose all" +msgstr "Alle auswählen" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "Klicken, um alle %s auf einmal auszuwählen." + +msgid "Choose" +msgstr "Auswählen" + +msgid "Remove" +msgstr "Entfernen" + +#, javascript-format +msgid "Chosen %s" +msgstr "Ausgewählte %s" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" +"Dies ist die Liste der ausgewählten %s. Einfach im unten stehenden Feld " +"markieren und mithilfe des „Entfernen“-Pfeils wieder entfernen." + +#, javascript-format +msgid "Type into this box to filter down the list of selected %s." +msgstr "" +"In diesem Feld tippen, um die Liste der ausgewählten %s einzuschränken." + +msgid "Remove all" +msgstr "Alle entfernen" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "Klicken, um alle ausgewählten %s auf einmal zu entfernen." + +#, javascript-format +msgid "%s selected option not visible" +msgid_plural "%s selected options not visible" +msgstr[0] "%s ausgewählte Option nicht sichtbar" +msgstr[1] "%s ausgewählte Optionen nicht sichtbar" + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "%(sel)s von %(cnt)s ausgewählt" +msgstr[1] "%(sel)s von %(cnt)s ausgewählt" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" +"Sie haben Änderungen an bearbeitbaren Feldern vorgenommen und nicht " +"gespeichert. Wollen Sie die Aktion trotzdem ausführen und Ihre Änderungen " +"verwerfen?" + +msgid "" +"You have selected an action, but you haven’t saved your changes to " +"individual fields yet. Please click OK to save. You’ll need to re-run the " +"action." +msgstr "" +"Sie haben eine Aktion ausgewählt, aber Ihre vorgenommenen Änderungen nicht " +"gespeichert. Klicken Sie OK, um dennoch zu speichern. Danach müssen Sie die " +"Aktion erneut ausführen." + +msgid "" +"You have selected an action, and you haven’t made any changes on individual " +"fields. You’re probably looking for the Go button rather than the Save " +"button." +msgstr "" +"Sie haben eine Aktion ausgewählt, aber keine Änderungen an bearbeitbaren " +"Feldern vorgenommen. Sie wollten wahrscheinlich auf „Ausführen“ und nicht " +"auf „Speichern“ klicken." + +msgid "Now" +msgstr "Jetzt" + +msgid "Midnight" +msgstr "Mitternacht" + +msgid "6 a.m." +msgstr "6 Uhr" + +msgid "Noon" +msgstr "Mittag" + +msgid "6 p.m." +msgstr "18 Uhr" + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "Achtung: Sie sind %s Stunde der Serverzeit vorraus." +msgstr[1] "Achtung: Sie sind %s Stunden der Serverzeit vorraus." + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "Achtung: Sie sind %s Stunde hinter der Serverzeit." +msgstr[1] "Achtung: Sie sind %s Stunden hinter der Serverzeit." + +msgid "Choose a Time" +msgstr "Uhrzeit wählen" + +msgid "Choose a time" +msgstr "Uhrzeit" + +msgid "Cancel" +msgstr "Abbrechen" + +msgid "Today" +msgstr "Heute" + +msgid "Choose a Date" +msgstr "Datum wählen" + +msgid "Yesterday" +msgstr "Gestern" + +msgid "Tomorrow" +msgstr "Morgen" + +msgid "January" +msgstr "Januar" + +msgid "February" +msgstr "Februar" + +msgid "March" +msgstr "März" + +msgid "April" +msgstr "April" + +msgid "May" +msgstr "Mai" + +msgid "June" +msgstr "Juni" + +msgid "July" +msgstr "Juli" + +msgid "August" +msgstr "August" + +msgid "September" +msgstr "September" + +msgid "October" +msgstr "Oktober" + +msgid "November" +msgstr "November" + +msgid "December" +msgstr "Dezember" + +msgctxt "abbrev. month January" +msgid "Jan" +msgstr "Jan" + +msgctxt "abbrev. month February" +msgid "Feb" +msgstr "Feb" + +msgctxt "abbrev. month March" +msgid "Mar" +msgstr "Mrz" + +msgctxt "abbrev. month April" +msgid "Apr" +msgstr "Apr" + +msgctxt "abbrev. month May" +msgid "May" +msgstr "Mai" + +msgctxt "abbrev. month June" +msgid "Jun" +msgstr "Jun" + +msgctxt "abbrev. month July" +msgid "Jul" +msgstr "Jul" + +msgctxt "abbrev. month August" +msgid "Aug" +msgstr "Aug" + +msgctxt "abbrev. month September" +msgid "Sep" +msgstr "Sep" + +msgctxt "abbrev. month October" +msgid "Oct" +msgstr "Okt" + +msgctxt "abbrev. month November" +msgid "Nov" +msgstr "Nov" + +msgctxt "abbrev. month December" +msgid "Dec" +msgstr "Dez" + +msgid "Sunday" +msgstr "Sonntag" + +msgid "Monday" +msgstr "Montag" + +msgid "Tuesday" +msgstr "Dienstag" + +msgid "Wednesday" +msgstr "Mittwoch" + +msgid "Thursday" +msgstr "Donnerstag" + +msgid "Friday" +msgstr "Freitag" + +msgid "Saturday" +msgstr "Samstag" + +msgctxt "abbrev. day Sunday" +msgid "Sun" +msgstr "So" + +msgctxt "abbrev. day Monday" +msgid "Mon" +msgstr "Mo" + +msgctxt "abbrev. day Tuesday" +msgid "Tue" +msgstr "Di" + +msgctxt "abbrev. day Wednesday" +msgid "Wed" +msgstr "Mi" + +msgctxt "abbrev. day Thursday" +msgid "Thur" +msgstr "Do" + +msgctxt "abbrev. day Friday" +msgid "Fri" +msgstr "Fr" + +msgctxt "abbrev. day Saturday" +msgid "Sat" +msgstr "Sa" + +msgctxt "one letter Sunday" +msgid "S" +msgstr "So" + +msgctxt "one letter Monday" +msgid "M" +msgstr "Mo" + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "Di" + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "Mi" + +msgctxt "one letter Thursday" +msgid "T" +msgstr "Do" + +msgctxt "one letter Friday" +msgid "F" +msgstr "Fr" + +msgctxt "one letter Saturday" +msgid "S" +msgstr "Sa" + +msgid "Show" +msgstr "Einblenden" + +msgid "Hide" +msgstr "Ausblenden" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/dsb/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/dsb/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..db0f50af56795d943916e5201a3ffcaa8fefcc5f GIT binary patch literal 18813 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 B%=!QT literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/dsb/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/dsb/LC_MESSAGES/django.po new file mode 100644 index 0000000000..2c700c370f --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/dsb/LC_MESSAGES/django.po @@ -0,0 +1,781 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Michael Wolf , 2016-2023 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-09-18 11:41-0300\n" +"PO-Revision-Date: 2023-12-04 07:05+0000\n" +"Last-Translator: Michael Wolf , 2016-2023\n" +"Language-Team: Lower Sorbian (http://app.transifex.com/django/django/" +"language/dsb/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: dsb\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || " +"n%100==4 ? 2 : 3);\n" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "Wubrane %(verbose_name_plural)s lašowaś" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "%(count)d %(items)s su se wulašowali." + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "%(name)s njedajo se lašowaś" + +msgid "Are you sure?" +msgstr "Sćo se wěsty?" + +msgid "Administration" +msgstr "Administracija" + +msgid "All" +msgstr "Wšykne" + +msgid "Yes" +msgstr "Jo" + +msgid "No" +msgstr "Ně" + +msgid "Unknown" +msgstr "Njeznaty" + +msgid "Any date" +msgstr "Někaki datum" + +msgid "Today" +msgstr "Źinsa" + +msgid "Past 7 days" +msgstr "Zachadne 7 dnjow" + +msgid "This month" +msgstr "Toś ten mjasec" + +msgid "This year" +msgstr "W tom lěśe" + +msgid "No date" +msgstr "Žeden datum" + +msgid "Has date" +msgstr "Ma datum" + +msgid "Empty" +msgstr "Prozny" + +msgid "Not empty" +msgstr "Njeprozny" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" +"Pšosym zapódajśo korektne %(username)s a gronidło za personalne konto. " +"Źiwajśo na to, až wobej póli móžotej mjazy wjeliko- a małopisanim rozeznawaś." + +msgid "Action:" +msgstr "Akcija:" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "Dalšne %(verbose_name)s pśidaś" + +msgid "Remove" +msgstr "Wótpóraś" + +msgid "Addition" +msgstr "Pśidanje" + +msgid "Change" +msgstr "Změniś" + +msgid "Deletion" +msgstr "Wulašowanje" + +msgid "action time" +msgstr "akciski cas" + +msgid "user" +msgstr "wužywaŕ" + +msgid "content type" +msgstr "wopśimjeśowy typ" + +msgid "object id" +msgstr "objektowy id" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/library/functions.html#repr) +msgid "object repr" +msgstr "objektowa reprezentacija" + +msgid "action flag" +msgstr "akciske markěrowanje" + +msgid "change message" +msgstr "změnowa powěźeńka" + +msgid "log entry" +msgstr "protokolowy zapisk" + +msgid "log entries" +msgstr "protokolowe zapiski" + +#, python-format +msgid "Added “%(object)s”." +msgstr "„%(object)s“ pśidane." + +#, python-format +msgid "Changed “%(object)s” — %(changes)s" +msgstr "„%(object)s“ změnjone - %(changes)s" + +#, python-format +msgid "Deleted “%(object)s.”" +msgstr "„%(object)s“ wulašowane." + +msgid "LogEntry Object" +msgstr "Objekt LogEntry" + +#, python-brace-format +msgid "Added {name} “{object}”." +msgstr "{name} „{object}“ pśidany." + +msgid "Added." +msgstr "Pśidany." + +msgid "and" +msgstr "a" + +#, python-brace-format +msgid "Changed {fields} for {name} “{object}”." +msgstr "{fields} za {name} „{object}“ změnjone." + +#, python-brace-format +msgid "Changed {fields}." +msgstr "{fields} změnjone." + +#, python-brace-format +msgid "Deleted {name} “{object}”." +msgstr "Deleted {name} „{object}“ wulašowane." + +msgid "No fields changed." +msgstr "Žedne póla změnjone." + +msgid "None" +msgstr "Žeden" + +msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." +msgstr "´Źaržćo „ctrl“ abo „cmd“ na Mac tłocony, aby wusej jadnogo wubrał." + +msgid "Select this object for an action - {}" +msgstr "Wubjeŕśo toś ten objekt za akciju – {}" + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully." +msgstr "{name} „{obj}“ jo se wuspěšnje pśidał." + +msgid "You may edit it again below." +msgstr "Móźośo dołojce znowego wobźěłaś." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was added successfully. You may add another {name} below." +msgstr "" +"{name} „{obj}“ jo se wuspěšnje pśidał. Móžośo dołojce dalšne {name} pśidaś." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may edit it again below." +msgstr "" +"{name} „{obj}“ jo se wuspěšnje změnił. Móžośo jen dołojce znowego wobźěłowaś." + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully. You may edit it again below." +msgstr "" +"{name} „{obj}“ jo se wuspěšnje pśidał. Móžośo jen dołojce znowego wobźěłowaś." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may add another {name} " +"below." +msgstr "" +"{name} „{obj}“ jo se wuspěšnje změnił. Móžośo dołojce dalšne {name} pśidaś." + +#, python-brace-format +msgid "The {name} “{obj}” was changed successfully." +msgstr "{name} „{obj}“ jo se wuspěšnje změnił." + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" +"Zapiski muse se wubraś, aby akcije na nje nałožowało. Zapiski njejsu se " +"změnili." + +msgid "No action selected." +msgstr "Žedna akcija wubrana." + +#, python-format +msgid "The %(name)s “%(obj)s” was deleted successfully." +msgstr "%(name)s „%(obj)s“ jo se wuspěšnje wulašował." + +#, python-format +msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" +msgstr "%(name)s z ID „%(key)s“ njeeksistěrujo. Jo se snaź wulašowało?" + +#, python-format +msgid "Add %s" +msgstr "%s pśidaś" + +#, python-format +msgid "Change %s" +msgstr "%s změniś" + +#, python-format +msgid "View %s" +msgstr "%s pokazaś" + +msgid "Database error" +msgstr "Zmólka datoweje banki" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "%(count)s %(name)s jo se wuspěšnje změnił." +msgstr[1] "%(count)s %(name)s stej se wuspěšnje změniłej." +msgstr[2] "%(count)s %(name)s su se wuspěšnje změnili." +msgstr[3] "%(count)s %(name)s jo se wuspěšnje změniło." + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "%(total_count)s wubrany" +msgstr[1] "Wšykne %(total_count)s wubranej" +msgstr[2] "Wšykne %(total_count)s wubrane" +msgstr[3] "Wšykne %(total_count)s wubranych" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "0 z %(cnt)s wubranych" + +#, python-format +msgid "Change history: %s" +msgstr "Změnowa historija: %s" + +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "%(class_name)s %(instance)s" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" +"Aby se %(class_name)s %(instance)s lašowało, muse se slědujuce šćitane " +"objekty lašowaś: %(related_objects)s" + +msgid "Django site admin" +msgstr "Administrator sedła Django" + +msgid "Django administration" +msgstr "Administracija Django" + +msgid "Site administration" +msgstr "Sedłowa administracija" + +msgid "Log in" +msgstr "Pśizjawiś" + +#, python-format +msgid "%(app)s administration" +msgstr "Administracija %(app)s" + +msgid "Page not found" +msgstr "Bok njejo se namakał" + +msgid "We’re sorry, but the requested page could not be found." +msgstr "Jo nam luto, ale pominany bok njedajo se namakaś." + +msgid "Home" +msgstr "Startowy bok" + +msgid "Server error" +msgstr "Serwerowa zmólka" + +msgid "Server error (500)" +msgstr "Serwerowa zmólka (500)" + +msgid "Server Error (500)" +msgstr "Serwerowa zmólka (500)" + +msgid "" +"There’s been an error. It’s been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" +"Zmólka jo nastała. Jo se sedłowym administratoram pśez e-mail k wěsći dała a " +"by dejała se skóro wótpóraś. Źěkujom se za wašu sćerpmosć." + +msgid "Run the selected action" +msgstr "Wubranu akciju wuwjasć" + +msgid "Go" +msgstr "Start" + +msgid "Click here to select the objects across all pages" +msgstr "Klikniśo how, aby objekty wšych bokow wubrał" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "Wubjeŕśo wšykne %(total_count)s %(module_name)s" + +msgid "Clear selection" +msgstr "Wuběrk lašowaś" + +msgid "Breadcrumbs" +msgstr "Klěbowe srjodki" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "Modele w nałoženju %(name)s" + +msgid "Add" +msgstr "Pśidaś" + +msgid "View" +msgstr "Pokazaś" + +msgid "You don’t have permission to view or edit anything." +msgstr "Njamaśo pšawo něco pokazaś abo wobźěłaś" + +msgid "" +"First, enter a username and password. Then, you’ll be able to edit more user " +"options." +msgstr "" +"Zapódajśo nejpjerwjej wužywarske mě a gronidło. Pótom móžośo dalšne " +"wužywarske nastajenja wobźěłowaś." + +msgid "Enter a username and password." +msgstr "Zapódajśo wužywarske mě a gronidło." + +msgid "Change password" +msgstr "Gronidło změniś" + +msgid "Please correct the error below." +msgid_plural "Please correct the errors below." +msgstr[0] "Pšosym korigěrujśo slědujucu zmólku." +msgstr[1] "Pšosym korigěrujśo slědujucej zmólce." +msgstr[2] "Pšosym korigěrujśo slědujuce zmólki." +msgstr[3] "Pšosym korigěrujśo slědujuce zmólki." + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "Zapódajśo nowe gronidło za wužywarja %(username)s." + +msgid "Skip to main content" +msgstr "Dalej ku głownemu wopśimjeśeju" + +msgid "Welcome," +msgstr "Witajśo," + +msgid "View site" +msgstr "Sedło pokazaś" + +msgid "Documentation" +msgstr "Dokumentacija" + +msgid "Log out" +msgstr "Wótzjawiś" + +#, python-format +msgid "Add %(name)s" +msgstr "%(name)s pśidaś" + +msgid "History" +msgstr "Historija" + +msgid "View on site" +msgstr "Na sedle pokazaś" + +msgid "Filter" +msgstr "Filtrowaś" + +msgid "Hide counts" +msgstr "Licby schowaś" + +msgid "Show counts" +msgstr "Licby pokazaś" + +msgid "Clear all filters" +msgstr "Wšykne filtry lašowaś" + +msgid "Remove from sorting" +msgstr "Ze sortěrowanja wótpóraś" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "Sortěrowański rěd: %(priority_number)s" + +msgid "Toggle sorting" +msgstr "Sortěrowanje pśešaltowaś" + +msgid "Toggle theme (current theme: auto)" +msgstr "Drastwu změniś (auto)" + +msgid "Toggle theme (current theme: light)" +msgstr "Drastwu změniś (swětły)" + +msgid "Toggle theme (current theme: dark)" +msgstr "Drastwu změniś (śamny)" + +msgid "Delete" +msgstr "Lašowaś" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" +"Gaž se %(object_name)s '%(escaped_object)s' lašujo, se pśisłušne objekty " +"wulašuju, ale wašo konto njama pšawo slědujuce typy objektow lašowaś: " + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" +"Aby se %(object_name)s '%(escaped_object)s' lašujo, muse se slědujuce " +"šćitane pśisłušne objekty lašowaś:" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" +"Cośo napšawdu %(object_name)s „%(escaped_object)s“ lašowaś? Wšykne slědujuce " +"pśisłušne zapiski se wulašuju: " + +msgid "Objects" +msgstr "Objekty" + +msgid "Yes, I’m sure" +msgstr "Jo, som se wěsty" + +msgid "No, take me back" +msgstr "Ně, pšosym slědk" + +msgid "Delete multiple objects" +msgstr "Někotare objekty lašowaś" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" +"Gaž lašujośo wubrany %(objects_name)s, se pśisłušne objekty wulašuju, ale " +"wašo konto njama pšawo slědujuce typy objektow lašowaś: " + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" +"Aby wubrany %(objects_name)s lašowało, muse se slědujuce šćitane pśisłušne " +"objekty lašowaś:" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" +"Cośo napšawdu wubrany %(objects_name)s lašowaś? Wšykne slědujuce objekty a " +"jich pśisłušne zapiski se wulašuju:" + +msgid "Delete?" +msgstr "Lašowaś?" + +#, python-format +msgid " By %(filter_title)s " +msgstr " Pó %(filter_title)s " + +msgid "Summary" +msgstr "Zespominanje" + +msgid "Recent actions" +msgstr "Nejnowše akcije" + +msgid "My actions" +msgstr "Móje akcije" + +msgid "None available" +msgstr "Žeden k dispoziciji" + +msgid "Added:" +msgstr "Pśidany:" + +msgid "Changed:" +msgstr "Změnjony:" + +msgid "Deleted:" +msgstr "Wulašowany:" + +msgid "Unknown content" +msgstr "Njeznate wopśimjeśe" + +msgid "" +"Something’s wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" +"Něco jo z wašeju instalaciju datoweje banki kśiwje šło. Pśeznańśo se, až " +"wótpowědne tabele datoweje banki su se napórali a pótom, až datowa banka " +"dajo se wót wótpówědnego wužywarja cytaś." + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" +"Sćo ako %(username)s awtentificěrowany, ale njamaśo pśistup na toś ten bok. " +"Cośo se pla drugego konta pśizjawiś?" + +msgid "Forgotten your password or username?" +msgstr "Sćo swójo gronidło abo wužywarske mě zabył?" + +msgid "Toggle navigation" +msgstr "Nawigaciju pśešaltowaś" + +msgid "Sidebar" +msgstr "Bocnica" + +msgid "Start typing to filter…" +msgstr "Pišćo, aby filtrował …" + +msgid "Filter navigation items" +msgstr "Nawigaciske zapiski filtrowaś" + +msgid "Date/time" +msgstr "Datum/cas" + +msgid "User" +msgstr "Wužywaŕ" + +msgid "Action" +msgstr "Akcija" + +msgid "entry" +msgid_plural "entries" +msgstr[0] "zapisk" +msgstr[1] "zapiska" +msgstr[2] "zapiski" +msgstr[3] "zapiskow" + +msgid "" +"This object doesn’t have a change history. It probably wasn’t added via this " +"admin site." +msgstr "" +"Toś ten objekt njama změnowu historiju. Jo se nejskerjej pśez toś to " +"administratorowe sedło pśidał." + +msgid "Show all" +msgstr "Wšykne pokazaś" + +msgid "Save" +msgstr "Składowaś" + +msgid "Popup closing…" +msgstr "Wuskokujuce wokno se zacynja…" + +msgid "Search" +msgstr "Pytaś" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "%(counter)s wuslědk" +msgstr[1] "%(counter)s wuslědka" +msgstr[2] "%(counter)s wuslědki" +msgstr[3] "%(counter)s wuslědkow" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "%(full_result_count)s dogromady" + +msgid "Save as new" +msgstr "Ako nowy składowaś" + +msgid "Save and add another" +msgstr "Składowaś a dalšny pśidaś" + +msgid "Save and continue editing" +msgstr "Składowaś a dalej wobźěłowaś" + +msgid "Save and view" +msgstr "Składowaś a pokazaś" + +msgid "Close" +msgstr "Zacyniś" + +#, python-format +msgid "Change selected %(model)s" +msgstr "Wubrane %(model)s změniś" + +#, python-format +msgid "Add another %(model)s" +msgstr "Dalšny %(model)s pśidaś" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "Wubrane %(model)s lašowaś" + +#, python-format +msgid "View selected %(model)s" +msgstr "Wubrany %(model)s pokazaś" + +msgid "Thanks for spending some quality time with the web site today." +msgstr "" +"Wjeliki źěk, až sćo sebje brał źinsa cas za pśeglědowanje kwality websedła." + +msgid "Log in again" +msgstr "Hyšći raz pśizjawiś" + +msgid "Password change" +msgstr "Gronidło změniś" + +msgid "Your password was changed." +msgstr "Wašo gronidło jo se změniło." + +msgid "" +"Please enter your old password, for security’s sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" +"Pšosym zapódajśo k swójej wěstośe swójo stare gronidło a pótom swójo nowe " +"gronidło dwójcy, aby my mógli pśeglědowaś, lěc sćo jo korektnje zapisał." + +msgid "Change my password" +msgstr "Mójo gronidło změniś" + +msgid "Password reset" +msgstr "Gronidło jo se slědk stajiło" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "Wašo gronidło jo se póstajiło. Móžośo pókšacowaś a se něnto pśizjawiś." + +msgid "Password reset confirmation" +msgstr "Wobkšuśenje slědkstajenja gronidła" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" +"Pšosym zapódajśo swójo nowe gronidło dwójcy, aby my mógli pśeglědowaś, lěc " +"sći jo korektnje zapisał." + +msgid "New password:" +msgstr "Nowe gronidło:" + +msgid "Confirm password:" +msgstr "Gronidło wobkšuśiś:" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"Wótkaz za slědkstajenje gronidła jo njepłaśiwy był, snaź dokulaž jo se južo " +"wužył. Pšosym pšosćo wó nowe slědkstajenje gronidła." + +msgid "" +"We’ve emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" +"Smy wam instrukcije za nastajenje wašogo gronidła pśez e-mail pósłali, jolic " +"konto ze zapódaneju e-mailoweju adresu eksistěrujo. Wy by dejał ju skóro " +"dostaś." + +msgid "" +"If you don’t receive an email, please make sure you’ve entered the address " +"you registered with, and check your spam folder." +msgstr "" +"Jolic mejlku njedostawaśo, pśeznańśo se, až sćo adresu zapódał, z kótarejuž " +"sćo zregistrěrował, a pśeglědajśo swój spamowy zarědnik." + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" +"Dostawaśo toś tu mejlku, dokulaž sćo za swójo wužywarske konto na " +"%(site_name)s wó slědkstajenje gronidła pšosył." + +msgid "Please go to the following page and choose a new password:" +msgstr "Pšosym źiśo k slědujucemu bokoju a wubjeŕśo nowe gronidło:" + +msgid "Your username, in case you’ve forgotten:" +msgstr "Wašo wužywarske mě, jolic sćo jo zabył:" + +msgid "Thanks for using our site!" +msgstr "Wjeliki źěk za wužywanje našogo sedła!" + +#, python-format +msgid "The %(site_name)s team" +msgstr "Team %(site_name)s" + +msgid "" +"Forgotten your password? Enter your email address below, and we’ll email " +"instructions for setting a new one." +msgstr "" +"Sćo swójo gronidło zabył? Zapódajśo dołojce swóju e-mailowu adresu a " +"pósćelomy wam instrukcije za nastajenje nowego gronidła pśez e-mail." + +msgid "Email address:" +msgstr "E-mailowa adresa:" + +msgid "Reset my password" +msgstr "Mójo gronidło slědk stajiś" + +msgid "Select all objects on this page for an action" +msgstr "Wubjeŕśo wšykne objekty na toś tom boku za akciju" + +msgid "All dates" +msgstr "Wšykne daty" + +#, python-format +msgid "Select %s" +msgstr "%s wubraś" + +#, python-format +msgid "Select %s to change" +msgstr "%s wubraś, aby se změniło" + +#, python-format +msgid "Select %s to view" +msgstr "%s wubraś, kótaryž ma se pokazaś" + +msgid "Date:" +msgstr "Datum:" + +msgid "Time:" +msgstr "Cas:" + +msgid "Lookup" +msgstr "Pytanje" + +msgid "Currently:" +msgstr "Tuchylu:" + +msgid "Change:" +msgstr "Změniś:" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/dsb/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/dsb/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..b97684825e5c965ea1ea39b94a44b1fa03140cea GIT binary patch literal 6609 zcmb`LU5sQ!6@Uw96h=WnK}3WCS=fc`p4r)DV0&3$8FrWbncZ<`bVU-(?e3cC+kN|1 zdw-_s5eykH@BlFq5y`B?^~D%8(QF7|A53t!4a7tf6My300}uG12{AtS;)CD0x4Nfi zb{3HJrt5yUs!p9-b?Vfqy8YKH3ePL9Y0|Z%W9KW?l;;b%alP>&rS5=l!n@&lA6AM- zb+6-ID58g4einX|{6j8ZceL;l$`>4;bbJnuQ2sr5F?<d!{5S-;C~!1BqQ&? z)bUDKAb%}HMBU)>n;c6}`nMHc0JlSaY9}|*vjjA-}9s((Yn9C;Bge z((Xzq{k|58+%1rw8sjGV%24F)f!~6A;5Xr)pvbpqEd5%5l7AG6{;$Iw@L5=fZ$g@= z!bfsm3ST0BHT({I6}I6tM!yQa?)V3IHTid3{vwS3De~9DPr~gk|2da$LXm$0UIULg zz6zz?Z=mS^hvNm8=6bGyS5iI>rQHKiEJ5Q-1Y*7BU%anQw9=SZP|0Cq5{>e@3c)=C9y)T9`j>{lJSDT>NbpoP7-3@t_ zI_&r`8|0RKh)FvgJbNsJ|W4?<}-1Et+V5K%Sn>c0xbPnMvxd&cp3 z_yYNt;5Xm|lPLASfTH);j=yu|e}NBE{x+1Dup4I)xo<=9>+iy6;P>H=;3&pkf`5im z|79j$Sc5WN-?8QR6<43S{G!W$&G8AxryZYle9rL&$74|Jd>qPqe&EVqcKnIsE3W>e zFCBjcnU2iIZibjIyY@Izo%xew#m~k`dr2%0wTmQcLHwtGebzmQ zuWfYCvd#~ZZX#)tT-!+!|F)2rf^1Cyb)($4#P`I1#TVp~v1}lHhIAcCY=4NfpCt3P znRF}Z0n!vnF7cZZX+kpYlGuJrKLf?4;%9e}?k9<@ZztVG8YT6wN%wGXzX0wd;U4N9 zS9TcgB;7$eKw{~rJ4v$N6iMP|a!I_9Ym6km+`n$%L45W;S0L+KV&f*#Zqing+ORP; z!KPT-IlW2 zJMsgyE1gf{MD1Ge{J=wr-Vm!vFRYqCP1dcAjf3{|{a!MZoAp~mxnwvOWNl*;X37G; z+SG~F)l8lCf`DS}CED_qlA7$-N2X;LOjeI*-g-ssep5BAiiy-7Q;AY9>Z(0{kVroA zYhG79;Ma`W?}b^_{xs;S{b^{_lowU&+`DSZuZ8}6JyBCOlm>^a4Y?(ztRJ+g_97X& zuG=)yUfp;#nVi@}3ntPsxYGKv4CMU_>x!xSVeNgXU0-w|x4|LXQHQIE6?+`X%;q50 zQ!`$YMl!@1(@ydRGj&?bq}jk{>wc{HC3T|%KV}~0v^O;UrOX~JuiKxo*tU$Wbe)U( z;k-0$X+O+VRO};+E3h5yF*IsIU6mvd}2 z1uH#rK5~vd%1!p3JxZfktT=1)d&|lI)NE?<;%?hu0~|XMgNhk=p39t4*K8*r;<^S_ zv;R}uerUiyOX{epg?R@aG%@}!eG~t!d#s&-q!((hD)C`+HY;5x5We;Ji-~S|HI`W@ z^XrB4hA(j=jIA-lg$vsXVJ|I&d?fbna)`SLa z6i22QrFrji(+qVi4fB_-ZxB=SlPom$EwgVf>$0dDGIZACwVFCUU8u0oY@C#oSE)p1 zp`@8KoyV;LSXG=yrvg}2++WiL9#&Umi@LztUR69>&%L)G536f(|1IFhtI7wCRp4n* z)3RYw*V$H4;J&sz+dK;FA!{o7(YnCHnyP;MF7U9X%7yO&Tw6mxFA&wwC=Lz9Yo)WG zU*Nt*oNa*8?wZm=>^icu6nI!u)&ft;hRm=@SdN2f9WLw7>2TS~gsv)e zvpHP0GL@@J`_njFI5dZ9I8~hDF)y%X)ll%hux9w&M8hdhCw!?b~k~;~F{W#Yu5C^1?Xq5*wBE zl+VI3fj(-3Iek~l57M^1H?~n_5%2d(HFNi7Q8lr7d~AHI$Zab+!uiyjH^o`wwaWUS z?O?kZn)s}!jrAmHmq$mvcDt0wd;B@`NU3UDqxk^(2%M79T3i|3G%~esYWK=mx0J?4 zCh=Yq(plndStsU^WV9W4ez-#-OB9=A=jUhl6z^P-lb6kzsJJ_<+8R4pS>IXllR zU|boQ4${aAihFF-ipx4|XW4k?wjDZu+_^E_uw`s)=guwq9zCWJ$+P2Rx2$Bh>PH{# zS8bzeoT{yxc8m;8fQy5}VJEH7v+h}IOylfTXRYaSFyh3M>oz)MR=tJ^8$32l$FJE6 z=cg5c#z4X!65z$_sPKj)Rs?wAKu3e4z|dE5zoG0ul+Z&@7`OZ-jJ zmQ?f$s$P6Xws*YSWL;8l~XAyx+hzZv={Vt3_S)NztnBJ?6}(KT5rolUTB@|6ZM z#8W5eCXM>Bvwzaf4!WE?WDL`%my@QN;bfF$^MJ`oH}D&B-sL`ZdO50c;BBaBtQgv= znm%;`OZQIlfsvJAS*!L2r zI`BXiOyBc|%4TfECf?8&#k6gDi{g@pa^LbeCyN7d;6446A9}jE&f=5^z#&!-77z)TH!% zM!M}aiN}K}VB+{!fe6&VF>n#D#$OhJ-yt%{i1cC$PxJ|V`Vb;b6CtVF-2~s_EbsCx zqNKNEtM~)Xpl5J_g!fo+@>Lbh-jc`17mYFWdv>PY&HPKp%m|?>>q@rh&gf-4P`tER zPxp@7m{8d4?*rn-M`b+G>16_K?yEyhN_r}dyD}hWo5hfI$fS1CPQ$}4B_g&|W2Qkf z_L_A&)UlP`N#3)RHe`#=%~;a=EnnSz{i2tUkMpoc@qL6rj%Smwp7!~)!hDso%_Z9{ z6suj, 2016,2020-2023 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-09-18 15:04-0300\n" +"PO-Revision-Date: 2023-12-04 07:59+0000\n" +"Last-Translator: Michael Wolf , 2016,2020-2023\n" +"Language-Team: Lower Sorbian (http://app.transifex.com/django/django/" +"language/dsb/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: dsb\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || " +"n%100==4 ? 2 : 3);\n" + +#, javascript-format +msgid "Available %s" +msgstr "K dispoziciji stojece %s" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" +"To jo lisćina k dispoziciji stojecych %s. Klikniśo na šypku „Wubraś“ mjazy " +"kašćikoma, aby někotare z nich w slědujucem kašćiku wubrał. " + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "" +"Zapišćo do toś togo póla, aby zapiski z lisćiny k dispoziciji stojecych %s " +"wufiltrował. " + +msgid "Filter" +msgstr "Filtrowaś" + +msgid "Choose all" +msgstr "Wšykne wubraś" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "Klikniśo, aby wšykne %s naraz wubrał." + +msgid "Choose" +msgstr "Wubraś" + +msgid "Remove" +msgstr "Wótpóraś" + +#, javascript-format +msgid "Chosen %s" +msgstr "Wubrane %s" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" +"To jo lisćina wubranych %s. Klikniśo na šypku „Wótpóraś“ mjazy kašćikoma, " +"aby někotare z nich w slědujucem kašćiku wótpórał." + +#, javascript-format +msgid "Type into this box to filter down the list of selected %s." +msgstr "" +"Zapišćo do toś togo póla, aby zapiski z lisćiny wubranych %s wufiltrował. " + +msgid "Remove all" +msgstr "Wšykne wótpóraś" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "Klikniśo, aby wšykne wubrane %s naraz wótpórał." + +#, javascript-format +msgid "%s selected option not visible" +msgid_plural "%s selected options not visible" +msgstr[0] "%s wubrane nastajenje njewidobne" +msgstr[1] "%s wubranej nastajeni njewidobnej" +msgstr[2] "%s wubrane nastajenja njewidobne" +msgstr[3] "%s wubranych nastajenjow njewidobne" + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "%(sel)s z %(cnt)s wubrany" +msgstr[1] "%(sel)s z %(cnt)s wubranej" +msgstr[2] "%(sel)s z %(cnt)s wubrane" +msgstr[3] "%(sel)s z %(cnt)s wubranych" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" +"Maśo njeskładowane změny za jadnotliwe wobźěłujobne póla. Jolic akciju " +"wuwjeźośo, se waše njeskładowane změny zgubiju." + +msgid "" +"You have selected an action, but you haven’t saved your changes to " +"individual fields yet. Please click OK to save. You’ll need to re-run the " +"action." +msgstr "" +"Sćo akciju wubrał, ale njejsćo hyšći swóje změny za jadnotliwe póla " +"składował, Pšosym klikniśo na W pórěźe, aby składował. Musyśo akciju znowego " +"wuwjasć." + +msgid "" +"You have selected an action, and you haven’t made any changes on individual " +"fields. You’re probably looking for the Go button rather than the Save " +"button." +msgstr "" +"Sćo akciju wubrał, ale njejsćo jadnotliwe póla změnił. Nejskerjej pytaśo " +"skerjej za tłocaškom Start ako za tłocaškom Składowaś." + +msgid "Now" +msgstr "Něnto" + +msgid "Midnight" +msgstr "Połnoc" + +msgid "6 a.m." +msgstr "6:00 góź. dopołdnja" + +msgid "Noon" +msgstr "Połdnjo" + +msgid "6 p.m." +msgstr "6:00 wótpołdnja" + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "Glědajśo: Waš cas jo wó %s góźinu pśéd serwerowym casom." +msgstr[1] "Glědajśo: Waš cas jo wó %s góźinje pśéd serwerowym casom." +msgstr[2] "Glědajśo: Waš cas jo wó %s góźiny pśéd serwerowym casom." +msgstr[3] "Glědajśo: Waš cas jo wó %s góźin pśéd serwerowym casom." + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "Glědajśo: Waš cas jo wó %s góźinu za serwerowym casom." +msgstr[1] "Glědajśo: Waš cas jo wó %s góźinje za serwerowym casom." +msgstr[2] "Glědajśo: Waš cas jo wó %s góźiny za serwerowym casom." +msgstr[3] "Glědajśo: Waš cas jo wó %s góźin za serwerowym casom." + +msgid "Choose a Time" +msgstr "Wubjeŕśo cas" + +msgid "Choose a time" +msgstr "Wubjeŕśo cas" + +msgid "Cancel" +msgstr "Pśetergnuś" + +msgid "Today" +msgstr "Źinsa" + +msgid "Choose a Date" +msgstr "Wubjeŕśo datum" + +msgid "Yesterday" +msgstr "Cora" + +msgid "Tomorrow" +msgstr "Witśe" + +msgid "January" +msgstr "Januar" + +msgid "February" +msgstr "Februar" + +msgid "March" +msgstr "Měrc" + +msgid "April" +msgstr "Apryl" + +msgid "May" +msgstr "Maj" + +msgid "June" +msgstr "Junij" + +msgid "July" +msgstr "Julij" + +msgid "August" +msgstr "Awgust" + +msgid "September" +msgstr "September" + +msgid "October" +msgstr "Oktober" + +msgid "November" +msgstr "Nowember" + +msgid "December" +msgstr "December" + +msgctxt "abbrev. month January" +msgid "Jan" +msgstr "Jan." + +msgctxt "abbrev. month February" +msgid "Feb" +msgstr "Feb." + +msgctxt "abbrev. month March" +msgid "Mar" +msgstr "Měr." + +msgctxt "abbrev. month April" +msgid "Apr" +msgstr "Apr." + +msgctxt "abbrev. month May" +msgid "May" +msgstr "Maj" + +msgctxt "abbrev. month June" +msgid "Jun" +msgstr "Jun." + +msgctxt "abbrev. month July" +msgid "Jul" +msgstr "Jul." + +msgctxt "abbrev. month August" +msgid "Aug" +msgstr "Awg." + +msgctxt "abbrev. month September" +msgid "Sep" +msgstr "Sep." + +msgctxt "abbrev. month October" +msgid "Oct" +msgstr "Okt." + +msgctxt "abbrev. month November" +msgid "Nov" +msgstr "Now." + +msgctxt "abbrev. month December" +msgid "Dec" +msgstr "Dec." + +msgid "Sunday" +msgstr "Njeźela" + +msgid "Monday" +msgstr "Pónjeźele" + +msgid "Tuesday" +msgstr "Wałtora" + +msgid "Wednesday" +msgstr "Srjoda" + +msgid "Thursday" +msgstr "Stwórtk" + +msgid "Friday" +msgstr "Pětk" + +msgid "Saturday" +msgstr "Sobota" + +msgctxt "abbrev. day Sunday" +msgid "Sun" +msgstr "Nje" + +msgctxt "abbrev. day Monday" +msgid "Mon" +msgstr "Pón" + +msgctxt "abbrev. day Tuesday" +msgid "Tue" +msgstr "Wał" + +msgctxt "abbrev. day Wednesday" +msgid "Wed" +msgstr "Srj" + +msgctxt "abbrev. day Thursday" +msgid "Thur" +msgstr "Stw" + +msgctxt "abbrev. day Friday" +msgid "Fri" +msgstr "Pět" + +msgctxt "abbrev. day Saturday" +msgid "Sat" +msgstr "Sob" + +msgctxt "one letter Sunday" +msgid "S" +msgstr "Nj" + +msgctxt "one letter Monday" +msgid "M" +msgstr "Pó" + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "Wa" + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "Sr" + +msgctxt "one letter Thursday" +msgid "T" +msgstr "St" + +msgctxt "one letter Friday" +msgid "F" +msgstr "Pě" + +msgctxt "one letter Saturday" +msgid "S" +msgstr "So" + +msgid "Show" +msgstr "Pokazaś" + +msgid "Hide" +msgstr "Schowaś" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/el/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/el/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..0f888163e61af48439318dfe68d6bebae40b8594 GIT binary patch literal 22968 zcmdU$3zXbdeaEj)G`_(XYV{v#$gb>eLJ+~_5iki5B_xm_4Qp4i$T2~2RDPafLDME zVCEF~esB;x4k6wL-U^C;Z=rMXdpRh&F9gM(Ay9OUfud(Scm{YQsPX;|6n#GhF9M$g z-w3XLwR1(V2tE`1HmGsF2a4XGfaiiwg3ks|hv=)p6`=b09H@R@`x>to$AD_L1Qb6{ z0`>lE@EGtsP<*@s6y5I!HSUcdEOWa+wf_W&sN91fs^s>A8vje6=J{1n{Qo|v`u`lB z{~Xk~&qV1}??_PkzmPvNk<-98fUCg>%!5_%MsOYYYj6j+4rT5KzX@vmSNxIh?^sat zIS~}Sr-G8hIuMq+0Z??l4@9KyYEW{%4b*(6K+&-uR6kz?HIF$^{e1&efBy=;3H&t( zN$yPuQFeD0D88%*C8t49?MmP@xD8wcp2#G-!FPe;&$Zy`;4TmrxxWYB4E`9DpLkt_ z?tmwNec*$j`0)?mJHYOR*a|oXUI2ayTm$|R6u-_!xRUEvz;}b+0yVF<{;}7`6#-X+ zn%`Pb^2varZxoc=HiP2d4FPwB_qT$Y|DB-veE`(_r@^;^kAb_u{{Wu_ZhfQg?>cZR z_a6pN1doO}@>6TU%fSM88u)cke0jyOp6^RR$?07Ihd}jP0YÐ37?>_{Ju6qJL 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/el/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/el/LC_MESSAGES/django.po new file mode 100644 index 0000000000..ec1dc945a6 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/el/LC_MESSAGES/django.po @@ -0,0 +1,737 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Antonis Christofides , 2021 +# Dimitris Glezos , 2011 +# Giannis Meletakis , 2015 +# Jannis Leidel , 2011 +# Nick Mavrakis , 2016-2018,2021 +# Nick Mavrakis , 2016 +# Pãnoș , 2014 +# Pãnoș , 2014,2016,2019-2020 +# Yorgos Pagles , 2011-2012 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-01-15 09:00+0100\n" +"PO-Revision-Date: 2021-03-30 03:21+0000\n" +"Last-Translator: Antonis Christofides \n" +"Language-Team: Greek (http://www.transifex.com/django/django/language/el/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: el\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "%(verbose_name_plural)s: Διαγραφή επιλεγμένων" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "Επιτυχώς διεγράφησαν %(count)d %(items)s." + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "Αδύνατη η διαγραφή του %(name)s" + +msgid "Are you sure?" +msgstr "Είστε σίγουρος;" + +msgid "Administration" +msgstr "Διαχείριση" + +msgid "All" +msgstr "Όλα" + +msgid "Yes" +msgstr "Ναι" + +msgid "No" +msgstr "Όχι" + +msgid "Unknown" +msgstr "Άγνωστο" + +msgid "Any date" +msgstr "Οποιαδήποτε ημερομηνία" + +msgid "Today" +msgstr "Σήμερα" + +msgid "Past 7 days" +msgstr "Τελευταίες 7 ημέρες" + +msgid "This month" +msgstr "Αυτό το μήνα" + +msgid "This year" +msgstr "Αυτό το χρόνο" + +msgid "No date" +msgstr "Καθόλου ημερομηνία" + +msgid "Has date" +msgstr "Έχει ημερομηνία" + +msgid "Empty" +msgstr "Χωρίς τιμή" + +msgid "Not empty" +msgstr "Με τιμή" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" +"Παρακαλώ δώστε το σωστό %(username)s και συνθηματικό για λογαριασμό " +"προσωπικού. Και στα δύο πεδία μπορεί να έχει σημασία η διάκριση κεφαλαίων/" +"μικρών." + +msgid "Action:" +msgstr "Ενέργεια:" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "Να προστεθεί %(verbose_name)s" + +msgid "Remove" +msgstr "Αφαίρεση" + +msgid "Addition" +msgstr "Προσθήκη" + +msgid "Change" +msgstr "Αλλαγή" + +msgid "Deletion" +msgstr "Διαγραφή" + +msgid "action time" +msgstr "ώρα ενέργειας" + +msgid "user" +msgstr "χρήστης" + +msgid "content type" +msgstr "τύπος περιεχομένου" + +msgid "object id" +msgstr "ταυτότητα αντικειμένου" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/library/functions.html#repr) +msgid "object repr" +msgstr "αναπαράσταση αντικειμένου" + +msgid "action flag" +msgstr "σημαία ενέργειας" + +msgid "change message" +msgstr "μήνυμα τροποποίησης" + +msgid "log entry" +msgstr "καταχώριση αρχείου καταγραφής" + +msgid "log entries" +msgstr "καταχωρίσεις αρχείου καταγραφής" + +#, python-format +msgid "Added “%(object)s”." +msgstr "Προστέθηκε «%(object)s»." + +#, python-format +msgid "Changed “%(object)s” — %(changes)s" +msgstr "Τροποποιήθηκε «%(object)s» — %(changes)s" + +#, python-format +msgid "Deleted “%(object)s.”" +msgstr "Διαγράφηκε «%(object)s»." + +msgid "LogEntry Object" +msgstr "Αντικείμενο LogEntry" + +#, python-brace-format +msgid "Added {name} “{object}”." +msgstr "Προστέθηκε {name} “{object}”." + +msgid "Added." +msgstr "Προστέθηκε." + +msgid "and" +msgstr "και" + +#, python-brace-format +msgid "Changed {fields} for {name} “{object}”." +msgstr "{name} «{object}»: Αλλαγή {fields}." + +#, python-brace-format +msgid "Changed {fields}." +msgstr "Αλλαγή {fields}." + +#, python-brace-format +msgid "Deleted {name} “{object}”." +msgstr "Διεγράφη {name} «{object}»." + +msgid "No fields changed." +msgstr "Δεν άλλαξε κανένα πεδίο." + +msgid "None" +msgstr "Κανένα" + +msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." +msgstr "" +"Κρατήστε πατημένο το «Control» («Command» σε Mac) για να επιλέξετε " +"περισσότερα από ένα αντικείμενα." + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully." +msgstr "Προστέθηκε {name} «{obj}»." + +msgid "You may edit it again below." +msgstr "Μπορεί να πραγματοποιηθεί περαιτέρω επεξεργασία παρακάτω." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was added successfully. You may add another {name} below." +msgstr "" +"Προστέθηκε {name} «{obj}». Μπορεί να πραγματοποιηθεί νέα πρόσθεση παρακάτω." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may edit it again below." +msgstr "" +"Το αντικείμενο ({name}) «{obj}» τροποποιήθηκε. Μπορεί να πραγματοποιηθεί " +"περαιτέρω επεξεργασία παρακάτω." + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully. You may edit it again below." +msgstr "" +"Προστέθηκε {name} «{obj}». Μπορεί να πραγματοποιηθεί περαιτέρω επεξεργασία " +"παρακάτω." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may add another {name} " +"below." +msgstr "" +"Το αντικείμενο ({name}) «{obj}» τροποποιήθηκε. Μπορεί να προστεθεί επιπλέον " +"{name} παρακάτω." + +#, python-brace-format +msgid "The {name} “{obj}” was changed successfully." +msgstr "Το αντικείμενο ({name}) «{obj}» τροποποιήθηκε." + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" +"Καμία αλλαγή δεν πραγματοποιήθηκε γιατί δεν έχετε επιλέξει αντικείμενο. " +"Επιλέξτε ένα ή περισσότερα αντικείμενα για να πραγματοποιήσετε ενέργειες σ' " +"αυτά." + +msgid "No action selected." +msgstr "Δεν έχει επιλεγεί ενέργεια." + +#, python-format +msgid "The %(name)s “%(obj)s” was deleted successfully." +msgstr "Διεγράφη το αντικείμενο (%(name)s) «%(obj)s»" + +#, python-format +msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" +msgstr "Δεν υπάρχει %(name)s με ID «%(key)s». Ίσως να έχει διαγραφεί." + +#, python-format +msgid "Add %s" +msgstr "Να προστεθεί %s" + +#, python-format +msgid "Change %s" +msgstr "%s: Τροποποίηση" + +#, python-format +msgid "View %s" +msgstr "%s: Προβολή" + +msgid "Database error" +msgstr "Σφάλμα στη βάση δεδομένων" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "%(count)s %(name)s άλλαξε επιτυχώς." +msgstr[1] "%(count)s %(name)s άλλαξαν επιτυχώς." + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "Επιλέχθηκε %(total_count)s" +msgstr[1] "Επιλέχθηκαν και τα %(total_count)s" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "Επιλέχθηκαν 0 από %(cnt)s" + +#, python-format +msgid "Change history: %s" +msgstr "Ιστορικό αλλαγών: %s" + +#. Translators: Model verbose name and instance representation, +#. suitable to be an item in a list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "%(class_name)s %(instance)s" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" +"Η διαγραφή του αντικειμένου (%(class_name)s) %(instance)s θα απαιτούσε τη " +"διαγραφή των παρακάτω προστατευόμενων συσχετισμένων αντικειμένων: " +"%(related_objects)s" + +msgid "Django site admin" +msgstr "Ιστότοπος διαχείρισης Django" + +msgid "Django administration" +msgstr "Διαχείριση Django" + +msgid "Site administration" +msgstr "Διαχείριση του ιστότοπου" + +msgid "Log in" +msgstr "Σύνδεση" + +#, python-format +msgid "%(app)s administration" +msgstr "Διαχείριση %(app)s" + +msgid "Page not found" +msgstr "Η σελίδα δεν βρέθηκε" + +msgid "We’re sorry, but the requested page could not be found." +msgstr "Λυπούμαστε, αλλά η σελίδα που ζητήθηκε δεν βρέθηκε." + +msgid "Home" +msgstr "Αρχική" + +msgid "Server error" +msgstr "Σφάλμα στο server" + +msgid "Server error (500)" +msgstr "Σφάλμα στο server (500)" + +msgid "Server Error (500)" +msgstr "Σφάλμα στο server (500)" + +msgid "" +"There’s been an error. It’s been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" +"Παρουσιάστηκε σφάλμα. Εστάλη στους διαχειριστές με email και πιθανότατα θα " +"διορθωθεί σύντομα. Ευχαριστούμε για την υπομονή σας." + +msgid "Run the selected action" +msgstr "Εκτέλεση της επιλεγμένης ενέργειας" + +msgid "Go" +msgstr "Μετάβαση" + +msgid "Click here to select the objects across all pages" +msgstr "Κάντε κλικ εδώ για να επιλέξετε τα αντικείμενα σε όλες τις σελίδες" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "Επιλέξτε και τα %(total_count)s αντικείμενα (%(module_name)s)" + +msgid "Clear selection" +msgstr "Καθαρισμός επιλογής" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "Μοντέλα στην εφαρμογή %(name)s" + +msgid "Add" +msgstr "Προσθήκη" + +msgid "View" +msgstr "Προβολή" + +msgid "You don’t have permission to view or edit anything." +msgstr "Δεν έχετε δικαίωμα να δείτε ή να επεξεργαστείτε κάτι." + +msgid "" +"First, enter a username and password. Then, you’ll be able to edit more user " +"options." +msgstr "" +"Καταρχήν προσδιορίστε όνομα χρήστη και συνθηματικό. Κατόπιν θα σας δοθεί η " +"δυνατότητα να εισαγάγετε περισσότερες πληροφορίες για το χρήστη." + +msgid "Enter a username and password." +msgstr "Προσδιορίστε όνομα χρήστη και συνθηματικό." + +msgid "Change password" +msgstr "Αλλαγή συνθηματικού" + +msgid "Please correct the error below." +msgstr "Παρακαλούμε διορθώστε το παρακάτω λάθος." + +msgid "Please correct the errors below." +msgstr "Παρακαλοϋμε διορθώστε τα παρακάτω λάθη." + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "" +"Προσδιορίστε νέο συνθηματικό για το χρήστη %(username)s." + +msgid "Welcome," +msgstr "Καλώς ήρθατε," + +msgid "View site" +msgstr "Μετάβαση στην εφαρμογή" + +msgid "Documentation" +msgstr "Τεκμηρίωση" + +msgid "Log out" +msgstr "Αποσύνδεση" + +#, python-format +msgid "Add %(name)s" +msgstr "%(name)s: προσθήκη" + +msgid "History" +msgstr "Ιστορικό" + +msgid "View on site" +msgstr "Προβολή στον ιστότοπο" + +msgid "Filter" +msgstr "Φίλτρο" + +msgid "Clear all filters" +msgstr "Καθαρισμός όλων των φίλτρων" + +msgid "Remove from sorting" +msgstr "Αφαίρεση από την ταξινόμηση" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "Προτεραιότητα ταξινόμησης: %(priority_number)s" + +msgid "Toggle sorting" +msgstr "Εναλλαγή ταξινόμησης" + +msgid "Delete" +msgstr "Διαγραφή" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" +"Επιλέξατε τη διαγραφή του αντικειμένου '%(escaped_object)s' τύπου " +"%(object_name)s. Αυτό συνεπάγεται τη διαγραφή συσχετισμένων αντικειμενων για " +"τα οποία δεν έχετε δικάιωμα διαγραφής. Οι τύποι των αντικειμένων αυτών είναι:" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" +"Η διαγραφή του αντικειμένου (%(object_name)s) «%(escaped_object)s» απαιτεί " +"τη διαγραφή των παρακάτω προστατευόμενων αντικειμένων:" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" +"Επιβεβαιώστε ότι επιθυμείτε τη διαγραφή των επιλεγμένων αντικειμένων " +"(%(object_name)s \"%(escaped_object)s\"). Αν προχωρήσετε με τη διαγραφή, όλα " +"τα παρακάτω συσχετισμένα αντικείμενα θα διαγραφούν επίσης:" + +msgid "Objects" +msgstr "Αντικείμενα" + +msgid "Yes, I’m sure" +msgstr "Ναι" + +msgid "No, take me back" +msgstr "Όχι" + +msgid "Delete multiple objects" +msgstr "Διαγραφή πολλαπλών αντικειμένων" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" +"Η διαγραφή των επιλεγμένων αντικειμένων τύπου «%(objects_name)s» θα είχε " +"αποτέλεσμα τη διαγραφή των ακόλουθων συσχετισμένων αντικειμένων για τα οποία " +"δεν έχετε το διακαίωμα διαγραφής:" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" +"Η διαγραφή των επιλεγμένων αντικειμένων τύπου «%(objects_name)s» απαιτεί τη " +"διαγραφή των παρακάτω προστατευμένων συσχετισμένων αντικειμένων:" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" +"Επιβεβαιώστε ότι επιθυμείτε τη διαγραφή των επιλεγμένων αντικειμένων τύπου " +"«%(objects_name)s». Αν προχωρήσετε με τη διαγραφή, όλα τα παρακάτω " +"συσχετισμένα αντικείμενα θα διαγραφούν επίσης:" + +msgid "Delete?" +msgstr "Διαγραφή;" + +#, python-format +msgid " By %(filter_title)s " +msgstr " Ανά %(filter_title)s " + +msgid "Summary" +msgstr "Περίληψη" + +msgid "Recent actions" +msgstr "Πρόσφατες ενέργειες" + +msgid "My actions" +msgstr "Οι ενέργειές μου" + +msgid "None available" +msgstr "Κανένα διαθέσιμο" + +msgid "Unknown content" +msgstr "Άγνωστο περιεχόμενο" + +msgid "" +"Something’s wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" +"Υπάρχει κάποιο πρόβλημα στη βάση δεδομένων. Βεβαιωθείτε πως οι κατάλληλοι " +"πίνακες έχουν δημιουργηθεί και πως υπάρχουν τα κατάλληλα δικαιώματα " +"πρόσβασης." + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" +"Έχετε ταυτοποιηθεί ως %(username)s, αλλά δεν έχετε δικαίωμα πρόσβασης σ' " +"αυτή τη σελίδα. Θέλετε να συνδεθείτε με άλλο λογαριασμό;" + +msgid "Forgotten your password or username?" +msgstr "Ξεχάσατε το συνθηματικό ή το όνομα χρήστη σας;" + +msgid "Toggle navigation" +msgstr "Εναλλαγή προβολής πλοήγησης" + +msgid "Date/time" +msgstr "Ημερομηνία/ώρα" + +msgid "User" +msgstr "Χρήστης" + +msgid "Action" +msgstr "Ενέργεια" + +msgid "" +"This object doesn’t have a change history. It probably wasn’t added via this " +"admin site." +msgstr "" +"Αυτό το αντικείμενο δεν έχει ιστορικό αλλαγών. Πιθανότατα δεν προστέθηκε " +"μέσω του παρόντος διαχειριστικού ιστότοπου." + +msgid "Show all" +msgstr "Εμφάνιση όλων" + +msgid "Save" +msgstr "Αποθήκευση" + +msgid "Popup closing…" +msgstr "Κλείσιμο popup..." + +msgid "Search" +msgstr "Αναζήτηση" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "%(counter)s αποτέλεσμα" +msgstr[1] "%(counter)s αποτελέσματα" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "%(full_result_count)s συνολικά" + +msgid "Save as new" +msgstr "Αποθήκευση ως νέου" + +msgid "Save and add another" +msgstr "Αποθήκευση και προσθήκη καινούργιου" + +msgid "Save and continue editing" +msgstr "Αποθήκευση και συνέχεια επεξεργασίας" + +msgid "Save and view" +msgstr "Αποθήκευση και προβολή" + +msgid "Close" +msgstr "Κλείσιμο" + +#, python-format +msgid "Change selected %(model)s" +msgstr "Να τροποποιηθεί το επιλεγμένο αντικείμενο (%(model)s)" + +#, python-format +msgid "Add another %(model)s" +msgstr "Να προστεθεί %(model)s" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "Να διαγραφεί το επιλεγμένο αντικείμενο (%(model)s)" + +msgid "Thanks for spending some quality time with the Web site today." +msgstr "Ευχαριστούμε που διαθέσατε χρόνο στον ιστότοπο." + +msgid "Log in again" +msgstr "Επανασύνδεση" + +msgid "Password change" +msgstr "Αλλαγή συνθηματικού" + +msgid "Your password was changed." +msgstr "Το συνθηματικό σας αλλάχθηκε." + +msgid "" +"Please enter your old password, for security’s sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" +"Δώστε το παλιό σας συνθηματικό και ακολούθως το νέο σας συνθηματικό δύο " +"φορές ώστε να ελέγξουμε ότι το πληκτρολογήσατε σωστά." + +msgid "Change my password" +msgstr "Αλλαγή του συνθηματικού μου" + +msgid "Password reset" +msgstr "Επαναφορά συνθηματικού" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "Το συνθηματικό σας ορίστηκε. Μπορείτε τώρα να συνδεθείτε." + +msgid "Password reset confirmation" +msgstr "Επιβεβαίωση επαναφοράς συνθηματικού" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" +"Δώστε το νέο συνθηματικό σας δύο φορές ώστε να ελέγξουμε ότι το " +"πληκτρολογήσατε σωστά." + +msgid "New password:" +msgstr "Νέο συνθηματικό:" + +msgid "Confirm password:" +msgstr "Επιβεβαίωση συνθηματικού:" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"Ο σύνδεσμος που χρησιμοποιήσατε για την επαναφορά του συνθηματικού δεν είναι " +"σωστός, ίσως γιατί έχει ήδη χρησιμοποιηθεί. Πραγματοποιήστε εξαρχής τη " +"διαδικασία αίτησης επαναφοράς του συνθηματικού." + +msgid "" +"We’ve emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" +"Σας στείλαμε email με οδηγίες ορισμού συνθηματικού. Θα πρέπει να το λάβετε " +"σύντομα." + +msgid "" +"If you don’t receive an email, please make sure you’ve entered the address " +"you registered with, and check your spam folder." +msgstr "" +"Εάν δεν λάβετε email, παρακαλούμε σιγουρευτείτε ότι έχετε εισαγάγει τη " +"διεύθυνση με την οποία έχετε εγγραφεί, και ελέγξτε το φάκελο ανεπιθύμητης " +"αλληλογραφίας." + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" +"Λαμβάνετε αυτό το email επειδή ζητήσατε επαναφορά συνθηματικού για το " +"λογαριασμό σας στον ιστότοπο %(site_name)s." + +msgid "Please go to the following page and choose a new password:" +msgstr "" +"Παρακαλούμε επισκεφθείτε την ακόλουθη σελίδα και επιλέξτε νέο συνθηματικό: " + +msgid "Your username, in case you’ve forgotten:" +msgstr "Το όνομα χρήστη, σε περίπτωση που δεν το θυμάστε:" + +msgid "Thanks for using our site!" +msgstr "Ευχαριστούμε που χρησιμοποιήσατε τον ιστότοπό μας!" + +#, python-format +msgid "The %(site_name)s team" +msgstr "Η ομάδα του ιστότοπου %(site_name)s" + +msgid "" +"Forgotten your password? Enter your email address below, and we’ll email " +"instructions for setting a new one." +msgstr "" +"Ξεχάσατε το συνθηματικό σας; Εισαγάγετε το email σας και θα σας στείλουμε " +"οδηγίες για να ορίσετε καινούργιο." + +msgid "Email address:" +msgstr "Διεύθυνση email:" + +msgid "Reset my password" +msgstr "Επαναφορά του συνθηματικού μου" + +msgid "All dates" +msgstr "Όλες οι ημερομηνίες" + +#, python-format +msgid "Select %s" +msgstr "Επιλέξτε αντικείμενο (%s)" + +#, python-format +msgid "Select %s to change" +msgstr "Επιλέξτε αντικείμενο (%s) προς αλλαγή" + +#, python-format +msgid "Select %s to view" +msgstr "Επιλέξτε αντικείμενο (%s) για προβολή" + +msgid "Date:" +msgstr "Ημ/νία:" + +msgid "Time:" +msgstr "Ώρα:" + +msgid "Lookup" +msgstr "Αναζήτηση" + +msgid "Currently:" +msgstr "Τώρα:" + +msgid "Change:" +msgstr "Επεξεργασία:" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/el/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/el/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..5548ab048a952eb4f1b3ecb408b56110a887f8ce GIT binary patch literal 6509 zcmchaZH!!18OIMe3NDBUf^Sq0g<>n6*=>bVrxd7##a6czx=@G)y}NUEXJF>u_1-(X z-7jYQ0&Qd4qzd81swG8$KQHI@t!pyRDt`CSZjg4VQjZB{c<>whs8V-;d%=%^Qx1O(@~3|1 z`o9OSr2nSt|Ha|o!A~&$4~PG8cm>Kj82=pjaqwpFOJEMX1>6B%4ptrh0OU^{@vd{Oy$|Xu20(aB@H%^pu?YJt%-Qd;qzXx6;@}THF0P?3^boeW9E&U6i*z-4s zmwYm{e}%)_!EMar zb-3N(gCHrb9(DL_hmSk-92Oi7I(!1eO#55oP(aSO()HJYk_!@tH`2aL6V7gNqvytS7>+B)=P(<^&fbL?J3m> zN-dDMzlA1#>!L}1N{y4Buo}f`%dl4}dwpf2S4C>8=l7ek+FA^P$T-lRzSoOedcCDeOD}HimF?Qd z_*PlD)c>T81Kn@cX|G&nSbMP!*d?d7Hs(W935JcGM>Ji%Aa<|mH;6^&OAJ|hzjn^4Pfa?8tN`o#K(y|dZ0fJgn@@FQ4WMJ zwaW~}sobt2g1yC3r1^`BMwd$wOb=+U#lbmy{)#u+@JSR@jP4tCQB?8=Wobp1e5;}_ z*uy!>!HD)a3Nya$7pFNny)q4yl`tA2)Mw%mgN*DRj|7_KCdw^qRMXE37P%<+kQSvB zy_ZEnf$-=JDuLLodPj#0Mc{6Rxb``Az@4VMa4ugvbIT!<_?h!e0wVbDjK zj_Ps{SO*LQL@P|+57E^)W_jq*mq9j`nO$N{I+uHQ^AOUD&5KxDkg>37Ae<~QP>-58 zr+1c(7nw9R^aI}%_GEp-dh*^kXk$1u*|3^gmr~PWSk+HAU7iqAD8;r+HJI5pU`-Zv zEks+3+ck}pFrkl>2%Ul&dKjux+MUQ!>1% zz=t;z6Xd!(ED`9L?$)uMz?ZR}*0Eh)T$Pl_>{>KhwUUd*dW+RC63O0H$=<42I=I^u z{B(G?+8G8D z;gX1EE9EJL}|e6$@K@7yIAE9R=q)!?KNH{ukR0yc~Y+~#_>?TvvXu*B)3SuGc~mV zWw*G~lsngS^la<7Z{bkua$Ox;2~*=^6;&#)W3wmj94dPyf0HC;7@2tU!@b?vjSF&O z+kgqP_xb%nfl{5<8~aLe)5yFw<&K@@YUq`--9cE1^4cG=-DvarO*(zuyxP|{Zr1D8 zZ0cx!SR|A6vHFqbheuMYk0n#dOj1kEC9}!tWGxzwZvtBbYh`TKyVKB742w@Y+bW;bO z&?tWzo~Afmjcw;4a?TpX9IFv%?9}4FchLU~DyH%9Y;qQL&NaVeP`WrL8E+lNeOSvx z>dzy1W-ksrBz}1TlOS^Ok{7IXO`oUTxyC*xL^~F{ZRsw&*6{XtGKcnqawe6W;8X+v zmYx=qRC3C8YRNEsAqE$-Ht^={#JF%Lk&X~S(U75s-Oxr1Jw)g`3ChQ4fEB^IZIKKEx)F_ES=?Ev{ZpeWH?|6F3Lz$690V zxQ*!v%e>9=wt<$cJ03$ zO)5Fb1{C_V42p~78nT)w-B2O^=R9eRS@4MX)LjD-MFczdt5qTeHYE^i-cNw4TYg^Ab;dtfY=j^}wjqJSl#J zD$f}l+)UKhg=!Lt8My_SUKAUP8Rhed6D-;tr{T;we6S21t`Z<3iF(+HiYe&eh6N=G z2^-=AP8J8v)2Thn82yfMOx=|zzZfgWCH%!`;u6lF!F@hSit~MHGd(${68l-C68j, 2011 +# Fotis Athineos , 2021 +# glogiotatidis , 2011 +# Jannis Leidel , 2011 +# Nikolas Demiridis , 2014 +# Nick Mavrakis , 2016 +# Pãnoș , 2014 +# Pãnoș , 2016 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-01-15 09:00+0100\n" +"PO-Revision-Date: 2021-08-04 06:47+0000\n" +"Last-Translator: Fotis Athineos \n" +"Language-Team: Greek (http://www.transifex.com/django/django/language/el/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: el\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, javascript-format +msgid "Available %s" +msgstr "Διαθέσιμο %s" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" +"Αυτή είναι η λίστα των διαθέσιμων %s. Μπορείτε να επιλέξετε κάποια, από το " +"παρακάτω πεδίο και πατώντας το βέλος \"Επιλογή\" μεταξύ των δύο πεδίων." + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "" +"Πληκτρολογήστε σε αυτό το πεδίο για να φιλτράρετε τη λίστα των διαθέσιμων %s." + +msgid "Filter" +msgstr "Φίλτρο" + +msgid "Choose all" +msgstr "Επιλογή όλων" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "Πατήστε για επιλογή όλων των %s με τη μία." + +msgid "Choose" +msgstr "Επιλογή" + +msgid "Remove" +msgstr "Αφαίρεση" + +#, javascript-format +msgid "Chosen %s" +msgstr "Επιλέχθηκε %s" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" +"Αυτή είναι η λίστα των επιλεγμένων %s. Μπορείτε να αφαιρέσετε μερικά " +"επιλέγοντας τα απο το κουτί παρακάτω και μετά κάνοντας κλίκ στο βελάκι " +"\"Αφαίρεση\" ανάμεσα στα δύο κουτιά." + +msgid "Remove all" +msgstr "Αφαίρεση όλων" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "Κλίκ για να αφαιρεθούν όλα τα επιλεγμένα %s με τη μία." + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "%(sel)s από %(cnt)s επιλεγμένα" +msgstr[1] "%(sel)s από %(cnt)s επιλεγμένα" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" +"Έχετε μη αποθηκευμένες αλλαγές σε μεμονωμένα επεξεργάσιμα πεδία. Άν " +"εκτελέσετε μια ενέργεια, οι μη αποθηκευμένες αλλάγες θα χαθούν" + +msgid "" +"You have selected an action, but you haven’t saved your changes to " +"individual fields yet. Please click OK to save. You’ll need to re-run the " +"action." +msgstr "" +"Έχετε επιλέξει μια ενέργεια, αλλά δεν έχετε αποθηκεύσει τις αλλαγές στα " +"εκάστωτε πεδία ακόμα. Παρακαλώ πατήστε ΟΚ για να τις αποθηκεύσετε. Θα " +"χρειαστεί να εκτελέσετε ξανά την ενέργεια." + +msgid "" +"You have selected an action, and you haven’t made any changes on individual " +"fields. You’re probably looking for the Go button rather than the Save " +"button." +msgstr "" +"Έχετε επιλέξει μια ενέργεια, και δεν έχετε κάνει καμία αλλαγή στα εκάστοτε " +"πεδία. Πιθανών θέλετε το κουμπί Go αντί του κουμπιού Αποθήκευσης." + +msgid "Now" +msgstr "Τώρα" + +msgid "Midnight" +msgstr "Μεσάνυχτα" + +msgid "6 a.m." +msgstr "6 π.μ." + +msgid "Noon" +msgstr "Μεσημέρι" + +msgid "6 p.m." +msgstr "6 μ.μ." + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "Σημείωση: Είστε %s ώρα μπροστά από την ώρα του εξυπηρετητή." +msgstr[1] "Σημείωση: Είστε %s ώρες μπροστά από την ώρα του εξυπηρετητή." + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "Σημείωση: Είστε %s ώρα πίσω από την ώρα του εξυπηρετητή" +msgstr[1] "Σημείωση: Είστε %s ώρες πίσω από την ώρα του εξυπηρετητή." + +msgid "Choose a Time" +msgstr "Επιλέξτε Χρόνο" + +msgid "Choose a time" +msgstr "Επιλέξτε χρόνο" + +msgid "Cancel" +msgstr "Ακύρωση" + +msgid "Today" +msgstr "Σήμερα" + +msgid "Choose a Date" +msgstr "Επιλέξτε μια Ημερομηνία" + +msgid "Yesterday" +msgstr "Χθές" + +msgid "Tomorrow" +msgstr "Αύριο" + +msgid "January" +msgstr "Ιανουάριος" + +msgid "February" +msgstr "Φεβρουάριος" + +msgid "March" +msgstr "Μάρτιος" + +msgid "April" +msgstr "Απρίλιος" + +msgid "May" +msgstr "Μάιος" + +msgid "June" +msgstr "Ιούνιος" + +msgid "July" +msgstr "Ιούλιος" + +msgid "August" +msgstr "Αύγουστος" + +msgid "September" +msgstr "Σεπτέμβριος" + +msgid "October" +msgstr "Οκτώβριος" + +msgid "November" +msgstr "Νοέμβριος" + +msgid "December" +msgstr "Δεκέμβριος" + +msgctxt "abbrev. month January" +msgid "Jan" +msgstr "Ιαν" + +msgctxt "abbrev. month February" +msgid "Feb" +msgstr "Φεβ" + +msgctxt "abbrev. month March" +msgid "Mar" +msgstr "Μάρ" + +msgctxt "abbrev. month April" +msgid "Apr" +msgstr "Απρ" + +msgctxt "abbrev. month May" +msgid "May" +msgstr "Μάι" + +msgctxt "abbrev. month June" +msgid "Jun" +msgstr "Ιούν" + +msgctxt "abbrev. month July" +msgid "Jul" +msgstr "Ιούλ" + +msgctxt "abbrev. month August" +msgid "Aug" +msgstr "Αύγ" + +msgctxt "abbrev. month September" +msgid "Sep" +msgstr "Σεπ" + +msgctxt "abbrev. month October" +msgid "Oct" +msgstr "Οκτ" + +msgctxt "abbrev. month November" +msgid "Nov" +msgstr "Νοέ" + +msgctxt "abbrev. month December" +msgid "Dec" +msgstr "Δεκ" + +msgctxt "one letter Sunday" +msgid "S" +msgstr "Κ" + +msgctxt "one letter Monday" +msgid "M" +msgstr "Δ" + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "Τ" + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "Τ" + +msgctxt "one letter Thursday" +msgid "T" +msgstr "Π" + +msgctxt "one letter Friday" +msgid "F" +msgstr "Π" + +msgctxt "one letter Saturday" +msgid "S" +msgstr "Σ" + +msgid "Show" +msgstr "Προβολή" + +msgid "Hide" +msgstr "Απόκρυψη" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/en/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/en/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..08a7b68596a8a494a33644935e4ca6d40be6447f GIT binary patch literal 356 zcmYL^T}#6-6ow~yl}oR^$c0zxnQ2R<#t+1;!eGTQs`s%yW*IdZNha=x`1kxRo+7R< zJcL6Ya^CzLAAOG~2gC_+N*odwM4y5ZWM(uUoJsz&^Zmzz!*d&8TR@&V)BOZ^1J;Pp-3(L-q)*BYxOFWyXKqhBsF BVW0p2 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/en/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/en/LC_MESSAGES/django.po new file mode 100644 index 0000000000..c216532a03 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/en/LC_MESSAGES/django.po @@ -0,0 +1,978 @@ +# This file is distributed under the same license as the Django package. +# +msgid "" +msgstr "" +"Project-Id-Version: Django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-05-22 11:46-0300\n" +"PO-Revision-Date: 2010-05-13 15:35+0200\n" +"Last-Translator: Django team\n" +"Language-Team: English \n" +"Language: en\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: contrib/admin/actions.py:17 +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "" + +#: contrib/admin/actions.py:54 +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "" + +#: contrib/admin/actions.py:64 contrib/admin/options.py:2177 +#, python-format +msgid "Cannot delete %(name)s" +msgstr "" + +#: contrib/admin/actions.py:66 contrib/admin/options.py:2179 +msgid "Are you sure?" +msgstr "" + +#: contrib/admin/apps.py:13 +msgid "Administration" +msgstr "" + +#: contrib/admin/filters.py:153 contrib/admin/filters.py:295 +#: contrib/admin/filters.py:364 contrib/admin/filters.py:432 +#: contrib/admin/filters.py:607 contrib/admin/filters.py:701 +msgid "All" +msgstr "" + +#: contrib/admin/filters.py:365 +msgid "Yes" +msgstr "" + +#: contrib/admin/filters.py:366 +msgid "No" +msgstr "" + +#: contrib/admin/filters.py:380 +msgid "Unknown" +msgstr "" + +#: contrib/admin/filters.py:490 +msgid "Any date" +msgstr "" + +#: contrib/admin/filters.py:492 +msgid "Today" +msgstr "" + +#: contrib/admin/filters.py:499 +msgid "Past 7 days" +msgstr "" + +#: contrib/admin/filters.py:506 +msgid "This month" +msgstr "" + +#: contrib/admin/filters.py:513 +msgid "This year" +msgstr "" + +#: contrib/admin/filters.py:523 +msgid "No date" +msgstr "" + +#: contrib/admin/filters.py:524 +msgid "Has date" +msgstr "" + +#: contrib/admin/filters.py:702 +msgid "Empty" +msgstr "" + +#: contrib/admin/filters.py:703 +msgid "Not empty" +msgstr "" + +#: contrib/admin/forms.py:14 +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" + +#: contrib/admin/helpers.py:30 +msgid "Action:" +msgstr "" + +#: contrib/admin/helpers.py:428 +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "" + +#: contrib/admin/helpers.py:432 +msgid "Remove" +msgstr "" + +#: contrib/admin/models.py:18 +msgid "Addition" +msgstr "" + +#: contrib/admin/models.py:19 contrib/admin/templates/admin/app_list.html:28 +#: contrib/admin/templates/admin/edit_inline/stacked.html:16 +#: contrib/admin/templates/admin/edit_inline/tabular.html:36 +msgid "Change" +msgstr "" + +#: contrib/admin/models.py:20 +msgid "Deletion" +msgstr "" + +#: contrib/admin/models.py:50 +msgid "action time" +msgstr "" + +#: contrib/admin/models.py:57 +msgid "user" +msgstr "" + +#: contrib/admin/models.py:62 +msgid "content type" +msgstr "" + +#: contrib/admin/models.py:66 +msgid "object id" +msgstr "" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/library/functions.html#repr) +#: contrib/admin/models.py:69 +msgid "object repr" +msgstr "" + +#: contrib/admin/models.py:71 +msgid "action flag" +msgstr "" + +#: contrib/admin/models.py:74 +msgid "change message" +msgstr "" + +#: contrib/admin/models.py:79 +msgid "log entry" +msgstr "" + +#: contrib/admin/models.py:80 +msgid "log entries" +msgstr "" + +#: contrib/admin/models.py:89 +#, python-format +msgid "Added “%(object)s”." +msgstr "" + +#: contrib/admin/models.py:91 +#, python-format +msgid "Changed “%(object)s” — %(changes)s" +msgstr "" + +#: contrib/admin/models.py:96 +#, python-format +msgid "Deleted “%(object)s.”" +msgstr "" + +#: contrib/admin/models.py:98 +msgid "LogEntry Object" +msgstr "" + +#: contrib/admin/models.py:127 +#, python-brace-format +msgid "Added {name} “{object}”." +msgstr "" + +#: contrib/admin/models.py:132 +msgid "Added." +msgstr "" + +#: contrib/admin/models.py:140 contrib/admin/options.py:2433 +msgid "and" +msgstr "" + +#: contrib/admin/models.py:147 +#, python-brace-format +msgid "Changed {fields} for {name} “{object}”." +msgstr "" + +#: contrib/admin/models.py:153 +#, python-brace-format +msgid "Changed {fields}." +msgstr "" + +#: contrib/admin/models.py:163 +#, python-brace-format +msgid "Deleted {name} “{object}”." +msgstr "" + +#: contrib/admin/models.py:169 +msgid "No fields changed." +msgstr "" + +#: contrib/admin/options.py:243 contrib/admin/options.py:287 +msgid "None" +msgstr "" + +#: contrib/admin/options.py:339 +msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." +msgstr "" + +#: contrib/admin/options.py:995 +msgid "Select this object for an action - {}" +msgstr "" + +#: contrib/admin/options.py:1405 contrib/admin/options.py:1434 +#, python-brace-format +msgid "The {name} “{obj}” was added successfully." +msgstr "" + +#: contrib/admin/options.py:1407 +msgid "You may edit it again below." +msgstr "" + +#: contrib/admin/options.py:1420 +#, python-brace-format +msgid "" +"The {name} “{obj}” was added successfully. You may add another {name} below." +msgstr "" + +#: contrib/admin/options.py:1482 +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may edit it again below." +msgstr "" + +#: contrib/admin/options.py:1516 +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may add another {name} " +"below." +msgstr "" + +#: contrib/admin/options.py:1533 +#, python-brace-format +msgid "The {name} “{obj}” was changed successfully." +msgstr "" + +#: contrib/admin/options.py:1611 contrib/admin/options.py:1996 +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" + +#: contrib/admin/options.py:1631 +msgid "No action selected." +msgstr "" + +#: contrib/admin/options.py:1662 +#, python-format +msgid "The %(name)s “%(obj)s” was deleted successfully." +msgstr "" + +#: contrib/admin/options.py:1764 +#, python-format +msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" +msgstr "" + +#: contrib/admin/options.py:1875 +#, python-format +msgid "Add %s" +msgstr "" + +#: contrib/admin/options.py:1877 +#, python-format +msgid "Change %s" +msgstr "" + +#: contrib/admin/options.py:1879 +#, python-format +msgid "View %s" +msgstr "" + +#: contrib/admin/options.py:1966 +msgid "Database error" +msgstr "" + +#: contrib/admin/options.py:2056 +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "" +msgstr[1] "" + +#: contrib/admin/options.py:2087 +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "" +msgstr[1] "" + +#: contrib/admin/options.py:2093 +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "" + +#: contrib/admin/options.py:2235 +#, python-format +msgid "Change history: %s" +msgstr "" + +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. +#: contrib/admin/options.py:2427 +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "" + +#: contrib/admin/options.py:2436 +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" + +#: contrib/admin/sites.py:39 contrib/admin/templates/admin/base_site.html:3 +msgid "Django site admin" +msgstr "" + +#: contrib/admin/sites.py:42 contrib/admin/templates/admin/base_site.html:6 +msgid "Django administration" +msgstr "" + +#: contrib/admin/sites.py:45 +msgid "Site administration" +msgstr "" + +#: contrib/admin/sites.py:422 contrib/admin/templates/admin/login.html:63 +#: contrib/admin/templates/registration/password_reset_complete.html:15 +#: contrib/admin/tests.py:143 +msgid "Log in" +msgstr "" + +#: contrib/admin/sites.py:577 +#, python-format +msgid "%(app)s administration" +msgstr "" + +#: contrib/admin/templates/admin/404.html:4 +#: contrib/admin/templates/admin/404.html:8 +msgid "Page not found" +msgstr "" + +#: contrib/admin/templates/admin/404.html:10 +msgid "We’re sorry, but the requested page could not be found." +msgstr "" + +#: contrib/admin/templates/admin/500.html:6 +#: contrib/admin/templates/admin/app_index.html:10 +#: contrib/admin/templates/admin/auth/user/change_password.html:10 +#: contrib/admin/templates/admin/base.html:76 +#: contrib/admin/templates/admin/change_form.html:18 +#: contrib/admin/templates/admin/change_list.html:32 +#: contrib/admin/templates/admin/delete_confirmation.html:14 +#: contrib/admin/templates/admin/delete_selected_confirmation.html:14 +#: contrib/admin/templates/admin/invalid_setup.html:6 +#: contrib/admin/templates/admin/object_history.html:6 +#: contrib/admin/templates/registration/logged_out.html:4 +#: contrib/admin/templates/registration/password_change_done.html:13 +#: contrib/admin/templates/registration/password_change_form.html:14 +#: contrib/admin/templates/registration/password_reset_complete.html:6 +#: contrib/admin/templates/registration/password_reset_confirm.html:7 +#: contrib/admin/templates/registration/password_reset_done.html:6 +#: contrib/admin/templates/registration/password_reset_form.html:7 +msgid "Home" +msgstr "" + +#: contrib/admin/templates/admin/500.html:7 +msgid "Server error" +msgstr "" + +#: contrib/admin/templates/admin/500.html:11 +msgid "Server error (500)" +msgstr "" + +#: contrib/admin/templates/admin/500.html:14 +msgid "Server Error (500)" +msgstr "" + +#: contrib/admin/templates/admin/500.html:15 +msgid "" +"There’s been an error. It’s been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" + +#: contrib/admin/templates/admin/actions.html:8 +msgid "Run the selected action" +msgstr "" + +#: contrib/admin/templates/admin/actions.html:8 +msgid "Go" +msgstr "" + +#: contrib/admin/templates/admin/actions.html:16 +msgid "Click here to select the objects across all pages" +msgstr "" + +#: contrib/admin/templates/admin/actions.html:16 +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "" + +#: contrib/admin/templates/admin/actions.html:18 +msgid "Clear selection" +msgstr "" + +#: contrib/admin/templates/admin/app_index.html:8 +#: contrib/admin/templates/admin/base.html:73 +msgid "Breadcrumbs" +msgstr "" + +#: contrib/admin/templates/admin/app_list.html:8 +#, python-format +msgid "Models in the %(name)s application" +msgstr "" + +#: contrib/admin/templates/admin/app_list.html:19 +msgid "Add" +msgstr "" + +#: contrib/admin/templates/admin/app_list.html:26 +#: contrib/admin/templates/admin/edit_inline/stacked.html:16 +#: contrib/admin/templates/admin/edit_inline/tabular.html:36 +msgid "View" +msgstr "" + +#: contrib/admin/templates/admin/app_list.html:39 +msgid "You don’t have permission to view or edit anything." +msgstr "" + +#: contrib/admin/templates/admin/auth/user/add_form.html:6 +msgid "" +"First, enter a username and password. Then, you’ll be able to edit more user " +"options." +msgstr "" + +#: contrib/admin/templates/admin/auth/user/add_form.html:8 +msgid "Enter a username and password." +msgstr "" + +#: contrib/admin/templates/admin/auth/user/change_password.html:14 +#: contrib/admin/templates/admin/auth/user/change_password.html:52 +#: contrib/admin/templates/admin/base.html:57 +#: contrib/admin/templates/registration/password_change_done.html:4 +#: contrib/admin/templates/registration/password_change_form.html:5 +msgid "Change password" +msgstr "" + +#: contrib/admin/templates/admin/auth/user/change_password.html:18 +msgid "Set password" +msgstr "" + +#: contrib/admin/templates/admin/auth/user/change_password.html:25 +#: contrib/admin/templates/admin/change_form.html:43 +#: contrib/admin/templates/admin/change_list.html:52 +#: contrib/admin/templates/admin/login.html:23 +#: contrib/admin/templates/registration/password_change_form.html:25 +msgid "Please correct the error below." +msgid_plural "Please correct the errors below." +msgstr[0] "" +msgstr[1] "" + +#: contrib/admin/templates/admin/auth/user/change_password.html:29 +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "" + +#: contrib/admin/templates/admin/auth/user/change_password.html:35 +msgid "" +"This action will enable password-based authentication for " +"this user." +msgstr "" + +#: contrib/admin/templates/admin/auth/user/change_password.html:71 +msgid "Disable password-based authentication" +msgstr "" + +#: contrib/admin/templates/admin/auth/user/change_password.html:73 +msgid "Enable password-based authentication" +msgstr "" + +#: contrib/admin/templates/admin/base.html:28 +msgid "Skip to main content" +msgstr "" + +#: contrib/admin/templates/admin/base.html:43 +msgid "Welcome," +msgstr "" + +#: contrib/admin/templates/admin/base.html:48 +msgid "View site" +msgstr "" + +#: contrib/admin/templates/admin/base.html:53 +#: contrib/admin/templates/registration/password_change_done.html:4 +#: contrib/admin/templates/registration/password_change_form.html:5 +msgid "Documentation" +msgstr "" + +#: contrib/admin/templates/admin/base.html:61 +#: contrib/admin/templates/registration/password_change_done.html:7 +#: contrib/admin/templates/registration/password_change_form.html:8 +msgid "Log out" +msgstr "" + +#: contrib/admin/templates/admin/change_form.html:21 +#: contrib/admin/templates/admin/change_list_object_tools.html:8 +#, python-format +msgid "Add %(name)s" +msgstr "" + +#: contrib/admin/templates/admin/change_form_object_tools.html:5 +#: contrib/admin/templates/admin/object_history.html:10 +msgid "History" +msgstr "" + +#: contrib/admin/templates/admin/change_form_object_tools.html:7 +#: contrib/admin/templates/admin/edit_inline/stacked.html:18 +#: contrib/admin/templates/admin/edit_inline/tabular.html:38 +msgid "View on site" +msgstr "" + +#: contrib/admin/templates/admin/change_list.html:77 +msgid "Filter" +msgstr "" + +#: contrib/admin/templates/admin/change_list.html:80 +msgid "Hide counts" +msgstr "" + +#: contrib/admin/templates/admin/change_list.html:81 +msgid "Show counts" +msgstr "" + +#: contrib/admin/templates/admin/change_list.html:84 +msgid "Clear all filters" +msgstr "" + +#: contrib/admin/templates/admin/change_list_results.html:16 +msgid "Remove from sorting" +msgstr "" + +#: contrib/admin/templates/admin/change_list_results.html:17 +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "" + +#: contrib/admin/templates/admin/change_list_results.html:18 +msgid "Toggle sorting" +msgstr "" + +#: contrib/admin/templates/admin/color_theme_toggle.html:3 +msgid "Toggle theme (current theme: auto)" +msgstr "" + +#: contrib/admin/templates/admin/color_theme_toggle.html:4 +msgid "Toggle theme (current theme: light)" +msgstr "" + +#: contrib/admin/templates/admin/color_theme_toggle.html:5 +msgid "Toggle theme (current theme: dark)" +msgstr "" + +#: contrib/admin/templates/admin/delete_confirmation.html:18 +#: contrib/admin/templates/admin/submit_line.html:14 +msgid "Delete" +msgstr "" + +#: contrib/admin/templates/admin/delete_confirmation.html:25 +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" + +#: contrib/admin/templates/admin/delete_confirmation.html:30 +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" + +#: contrib/admin/templates/admin/delete_confirmation.html:35 +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" + +#: contrib/admin/templates/admin/delete_confirmation.html:37 +#: contrib/admin/templates/admin/delete_selected_confirmation.html:31 +msgid "Objects" +msgstr "" + +#: contrib/admin/templates/admin/delete_confirmation.html:44 +#: contrib/admin/templates/admin/delete_selected_confirmation.html:42 +msgid "Yes, I’m sure" +msgstr "" + +#: contrib/admin/templates/admin/delete_confirmation.html:45 +#: contrib/admin/templates/admin/delete_selected_confirmation.html:43 +msgid "No, take me back" +msgstr "" + +#: contrib/admin/templates/admin/delete_selected_confirmation.html:17 +msgid "Delete multiple objects" +msgstr "" + +#: contrib/admin/templates/admin/delete_selected_confirmation.html:23 +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" + +#: contrib/admin/templates/admin/delete_selected_confirmation.html:26 +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" + +#: contrib/admin/templates/admin/delete_selected_confirmation.html:29 +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" + +#: contrib/admin/templates/admin/edit_inline/tabular.html:22 +msgid "Delete?" +msgstr "" + +#: contrib/admin/templates/admin/filter.html:4 +#, python-format +msgid " By %(filter_title)s " +msgstr "" + +#: contrib/admin/templates/admin/includes/object_delete_summary.html:2 +msgid "Summary" +msgstr "" + +#: contrib/admin/templates/admin/index.html:23 +msgid "Recent actions" +msgstr "" + +#: contrib/admin/templates/admin/index.html:24 +msgid "My actions" +msgstr "" + +#: contrib/admin/templates/admin/index.html:28 +msgid "None available" +msgstr "" + +#: contrib/admin/templates/admin/index.html:33 +msgid "Added:" +msgstr "" + +#: contrib/admin/templates/admin/index.html:33 +msgid "Changed:" +msgstr "" + +#: contrib/admin/templates/admin/index.html:33 +msgid "Deleted:" +msgstr "" + +#: contrib/admin/templates/admin/index.html:43 +msgid "Unknown content" +msgstr "" + +#: contrib/admin/templates/admin/invalid_setup.html:12 +msgid "" +"Something’s wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" + +#: contrib/admin/templates/admin/login.html:39 +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" + +#: contrib/admin/templates/admin/login.html:59 +msgid "Forgotten your password or username?" +msgstr "" + +#: contrib/admin/templates/admin/nav_sidebar.html:2 +msgid "Toggle navigation" +msgstr "" + +#: contrib/admin/templates/admin/nav_sidebar.html:3 +msgid "Sidebar" +msgstr "" + +#: contrib/admin/templates/admin/nav_sidebar.html:5 +msgid "Start typing to filter…" +msgstr "" + +#: contrib/admin/templates/admin/nav_sidebar.html:6 +msgid "Filter navigation items" +msgstr "" + +#: contrib/admin/templates/admin/object_history.html:22 +msgid "Date/time" +msgstr "" + +#: contrib/admin/templates/admin/object_history.html:23 +msgid "User" +msgstr "" + +#: contrib/admin/templates/admin/object_history.html:24 +msgid "Action" +msgstr "" + +#: contrib/admin/templates/admin/object_history.html:49 +msgid "entry" +msgid_plural "entries" +msgstr[0] "" +msgstr[1] "" + +#: contrib/admin/templates/admin/object_history.html:52 +msgid "" +"This object doesn’t have a change history. It probably wasn’t added via this " +"admin site." +msgstr "" + +#: contrib/admin/templates/admin/pagination.html:10 +#: contrib/admin/templates/admin/search_form.html:9 +msgid "Show all" +msgstr "" + +#: contrib/admin/templates/admin/pagination.html:11 +#: contrib/admin/templates/admin/submit_line.html:4 +msgid "Save" +msgstr "" + +#: contrib/admin/templates/admin/popup_response.html:3 +msgid "Popup closing…" +msgstr "" + +#: contrib/admin/templates/admin/search_form.html:7 +msgid "Search" +msgstr "" + +#: contrib/admin/templates/admin/search_form.html:9 +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "" +msgstr[1] "" + +#: contrib/admin/templates/admin/search_form.html:9 +#, python-format +msgid "%(full_result_count)s total" +msgstr "" + +#: contrib/admin/templates/admin/submit_line.html:5 +msgid "Save as new" +msgstr "" + +#: contrib/admin/templates/admin/submit_line.html:6 +msgid "Save and add another" +msgstr "" + +#: contrib/admin/templates/admin/submit_line.html:7 +msgid "Save and continue editing" +msgstr "" + +#: contrib/admin/templates/admin/submit_line.html:7 +msgid "Save and view" +msgstr "" + +#: contrib/admin/templates/admin/submit_line.html:10 +msgid "Close" +msgstr "" + +#: contrib/admin/templates/admin/widgets/related_widget_wrapper.html:11 +#, python-format +msgid "Change selected %(model)s" +msgstr "" + +#: contrib/admin/templates/admin/widgets/related_widget_wrapper.html:19 +#, python-format +msgid "Add another %(model)s" +msgstr "" + +#: contrib/admin/templates/admin/widgets/related_widget_wrapper.html:27 +#, python-format +msgid "Delete selected %(model)s" +msgstr "" + +#: contrib/admin/templates/admin/widgets/related_widget_wrapper.html:34 +#, python-format +msgid "View selected %(model)s" +msgstr "" + +#: contrib/admin/templates/registration/logged_out.html:10 +msgid "Thanks for spending some quality time with the web site today." +msgstr "" + +#: contrib/admin/templates/registration/logged_out.html:12 +msgid "Log in again" +msgstr "" + +#: contrib/admin/templates/registration/password_change_done.html:14 +#: contrib/admin/templates/registration/password_change_form.html:15 +msgid "Password change" +msgstr "" + +#: contrib/admin/templates/registration/password_change_done.html:19 +msgid "Your password was changed." +msgstr "" + +#: contrib/admin/templates/registration/password_change_form.html:30 +msgid "" +"Please enter your old password, for security’s sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" + +#: contrib/admin/templates/registration/password_change_form.html:58 +#: contrib/admin/templates/registration/password_reset_confirm.html:37 +msgid "Change my password" +msgstr "" + +#: contrib/admin/templates/registration/password_reset_complete.html:7 +#: contrib/admin/templates/registration/password_reset_done.html:7 +#: contrib/admin/templates/registration/password_reset_form.html:8 +msgid "Password reset" +msgstr "" + +#: contrib/admin/templates/registration/password_reset_complete.html:13 +msgid "Your password has been set. You may go ahead and log in now." +msgstr "" + +#: contrib/admin/templates/registration/password_reset_confirm.html:8 +msgid "Password reset confirmation" +msgstr "" + +#: contrib/admin/templates/registration/password_reset_confirm.html:16 +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" + +#: contrib/admin/templates/registration/password_reset_confirm.html:24 +msgid "New password:" +msgstr "" + +#: contrib/admin/templates/registration/password_reset_confirm.html:31 +msgid "Confirm password:" +msgstr "" + +#: contrib/admin/templates/registration/password_reset_confirm.html:43 +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" + +#: contrib/admin/templates/registration/password_reset_done.html:13 +msgid "" +"We’ve emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" + +#: contrib/admin/templates/registration/password_reset_done.html:15 +msgid "" +"If you don’t receive an email, please make sure you’ve entered the address " +"you registered with, and check your spam folder." +msgstr "" + +#: contrib/admin/templates/registration/password_reset_email.html:2 +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" + +#: contrib/admin/templates/registration/password_reset_email.html:4 +msgid "Please go to the following page and choose a new password:" +msgstr "" + +#: contrib/admin/templates/registration/password_reset_email.html:8 +msgid "Your username, in case you’ve forgotten:" +msgstr "" + +#: contrib/admin/templates/registration/password_reset_email.html:10 +msgid "Thanks for using our site!" +msgstr "" + +#: contrib/admin/templates/registration/password_reset_email.html:12 +#, python-format +msgid "The %(site_name)s team" +msgstr "" + +#: contrib/admin/templates/registration/password_reset_form.html:14 +msgid "" +"Forgotten your password? Enter your email address below, and we’ll email " +"instructions for setting a new one." +msgstr "" + +#: contrib/admin/templates/registration/password_reset_form.html:21 +msgid "Email address:" +msgstr "" + +#: contrib/admin/templates/registration/password_reset_form.html:27 +msgid "Reset my password" +msgstr "" + +#: contrib/admin/templatetags/admin_list.py:100 +msgid "Select all objects on this page for an action" +msgstr "" + +#: contrib/admin/templatetags/admin_list.py:434 +msgid "All dates" +msgstr "" + +#: contrib/admin/views/main.py:147 +#, python-format +msgid "Select %s" +msgstr "" + +#: contrib/admin/views/main.py:149 +#, python-format +msgid "Select %s to change" +msgstr "" + +#: contrib/admin/views/main.py:151 +#, python-format +msgid "Select %s to view" +msgstr "" + +#: contrib/admin/widgets.py:98 +msgid "Date:" +msgstr "" + +#: contrib/admin/widgets.py:99 +msgid "Time:" +msgstr "" + +#: contrib/admin/widgets.py:163 +msgid "Lookup" +msgstr "" + +#: contrib/admin/widgets.py:389 +msgid "Currently:" +msgstr "" + +#: contrib/admin/widgets.py:390 +msgid "Change:" +msgstr "" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/en/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/en/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..08a7b68596a8a494a33644935e4ca6d40be6447f GIT binary patch literal 356 zcmYL^T}#6-6ow~yl}oR^$c0zxnQ2R<#t+1;!eGTQs`s%yW*IdZNha=x`1kxRo+7R< zJcL6Ya^CzLAAOG~2gC_+N*odwM4y5ZWM(uUoJsz&^Zmzz!*d&8TR@&V)BOZ^1J;Pp-3(L-q)*BYxOFWyXKqhBsF BVW0p2 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/en/LC_MESSAGES/djangojs.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/en/LC_MESSAGES/djangojs.po new file mode 100644 index 0000000000..443c0b9558 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/en/LC_MESSAGES/djangojs.po @@ -0,0 +1,383 @@ +# This file is distributed under the same license as the Django package. +# +msgid "" +msgstr "" +"Project-Id-Version: Django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-05-22 11:46-0300\n" +"PO-Revision-Date: 2010-05-13 15:35+0200\n" +"Last-Translator: Django team\n" +"Language-Team: English \n" +"Language: en\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: contrib/admin/static/admin/js/SelectFilter2.js:38 +#, javascript-format +msgid "Available %s" +msgstr "" + +#: contrib/admin/static/admin/js/SelectFilter2.js:44 +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" + +#: contrib/admin/static/admin/js/SelectFilter2.js:60 +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "" + +#: contrib/admin/static/admin/js/SelectFilter2.js:65 +#: contrib/admin/static/admin/js/SelectFilter2.js:110 +msgid "Filter" +msgstr "" + +#: contrib/admin/static/admin/js/SelectFilter2.js:69 +msgid "Choose all" +msgstr "" + +#: contrib/admin/static/admin/js/SelectFilter2.js:69 +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "" + +#: contrib/admin/static/admin/js/SelectFilter2.js:75 +msgid "Choose" +msgstr "" + +#: contrib/admin/static/admin/js/SelectFilter2.js:77 +msgid "Remove" +msgstr "" + +#: contrib/admin/static/admin/js/SelectFilter2.js:83 +#, javascript-format +msgid "Chosen %s" +msgstr "" + +#: contrib/admin/static/admin/js/SelectFilter2.js:89 +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" + +#: contrib/admin/static/admin/js/SelectFilter2.js:105 +#, javascript-format +msgid "Type into this box to filter down the list of selected %s." +msgstr "" + +#: contrib/admin/static/admin/js/SelectFilter2.js:120 +msgid "Remove all" +msgstr "" + +#: contrib/admin/static/admin/js/SelectFilter2.js:120 +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "" + +#: contrib/admin/static/admin/js/SelectFilter2.js:211 +#, javascript-format +msgid "%s selected option not visible" +msgid_plural "%s selected options not visible" +msgstr[0] "" +msgstr[1] "" + +#: contrib/admin/static/admin/js/actions.js:67 +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "" +msgstr[1] "" + +#: contrib/admin/static/admin/js/actions.js:161 +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" + +#: contrib/admin/static/admin/js/actions.js:174 +msgid "" +"You have selected an action, but you haven’t saved your changes to " +"individual fields yet. Please click OK to save. You’ll need to re-run the " +"action." +msgstr "" + +#: contrib/admin/static/admin/js/actions.js:175 +msgid "" +"You have selected an action, and you haven’t made any changes on individual " +"fields. You’re probably looking for the Go button rather than the Save " +"button." +msgstr "" + +#: contrib/admin/static/admin/js/admin/DateTimeShortcuts.js:13 +#: contrib/admin/static/admin/js/admin/DateTimeShortcuts.js:110 +msgid "Now" +msgstr "" + +#: contrib/admin/static/admin/js/admin/DateTimeShortcuts.js:14 +msgid "Midnight" +msgstr "" + +#: contrib/admin/static/admin/js/admin/DateTimeShortcuts.js:15 +msgid "6 a.m." +msgstr "" + +#: contrib/admin/static/admin/js/admin/DateTimeShortcuts.js:16 +msgid "Noon" +msgstr "" + +#: contrib/admin/static/admin/js/admin/DateTimeShortcuts.js:17 +msgid "6 p.m." +msgstr "" + +#: contrib/admin/static/admin/js/admin/DateTimeShortcuts.js:78 +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "" +msgstr[1] "" + +#: contrib/admin/static/admin/js/admin/DateTimeShortcuts.js:86 +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "" +msgstr[1] "" + +#: contrib/admin/static/admin/js/admin/DateTimeShortcuts.js:128 +msgid "Choose a Time" +msgstr "" + +#: contrib/admin/static/admin/js/admin/DateTimeShortcuts.js:158 +msgid "Choose a time" +msgstr "" + +#: contrib/admin/static/admin/js/admin/DateTimeShortcuts.js:175 +#: contrib/admin/static/admin/js/admin/DateTimeShortcuts.js:333 +msgid "Cancel" +msgstr "" + +#: contrib/admin/static/admin/js/admin/DateTimeShortcuts.js:238 +#: contrib/admin/static/admin/js/admin/DateTimeShortcuts.js:318 +msgid "Today" +msgstr "" + +#: contrib/admin/static/admin/js/admin/DateTimeShortcuts.js:255 +msgid "Choose a Date" +msgstr "" + +#: contrib/admin/static/admin/js/admin/DateTimeShortcuts.js:312 +msgid "Yesterday" +msgstr "" + +#: contrib/admin/static/admin/js/admin/DateTimeShortcuts.js:324 +msgid "Tomorrow" +msgstr "" + +#: contrib/admin/static/admin/js/calendar.js:11 +msgid "January" +msgstr "" + +#: contrib/admin/static/admin/js/calendar.js:12 +msgid "February" +msgstr "" + +#: contrib/admin/static/admin/js/calendar.js:13 +msgid "March" +msgstr "" + +#: contrib/admin/static/admin/js/calendar.js:14 +msgid "April" +msgstr "" + +#: contrib/admin/static/admin/js/calendar.js:15 +msgid "May" +msgstr "" + +#: contrib/admin/static/admin/js/calendar.js:16 +msgid "June" +msgstr "" + +#: contrib/admin/static/admin/js/calendar.js:17 +msgid "July" +msgstr "" + +#: contrib/admin/static/admin/js/calendar.js:18 +msgid "August" +msgstr "" + +#: contrib/admin/static/admin/js/calendar.js:19 +msgid "September" +msgstr "" + +#: contrib/admin/static/admin/js/calendar.js:20 +msgid "October" +msgstr "" + +#: contrib/admin/static/admin/js/calendar.js:21 +msgid "November" +msgstr "" + +#: contrib/admin/static/admin/js/calendar.js:22 +msgid "December" +msgstr "" + +#: contrib/admin/static/admin/js/calendar.js:25 +msgctxt "abbrev. month January" +msgid "Jan" +msgstr "" + +#: contrib/admin/static/admin/js/calendar.js:26 +msgctxt "abbrev. month February" +msgid "Feb" +msgstr "" + +#: contrib/admin/static/admin/js/calendar.js:27 +msgctxt "abbrev. month March" +msgid "Mar" +msgstr "" + +#: contrib/admin/static/admin/js/calendar.js:28 +msgctxt "abbrev. month April" +msgid "Apr" +msgstr "" + +#: contrib/admin/static/admin/js/calendar.js:29 +msgctxt "abbrev. month May" +msgid "May" +msgstr "" + +#: contrib/admin/static/admin/js/calendar.js:30 +msgctxt "abbrev. month June" +msgid "Jun" +msgstr "" + +#: contrib/admin/static/admin/js/calendar.js:31 +msgctxt "abbrev. month July" +msgid "Jul" +msgstr "" + +#: contrib/admin/static/admin/js/calendar.js:32 +msgctxt "abbrev. month August" +msgid "Aug" +msgstr "" + +#: contrib/admin/static/admin/js/calendar.js:33 +msgctxt "abbrev. month September" +msgid "Sep" +msgstr "" + +#: contrib/admin/static/admin/js/calendar.js:34 +msgctxt "abbrev. month October" +msgid "Oct" +msgstr "" + +#: contrib/admin/static/admin/js/calendar.js:35 +msgctxt "abbrev. month November" +msgid "Nov" +msgstr "" + +#: contrib/admin/static/admin/js/calendar.js:36 +msgctxt "abbrev. month December" +msgid "Dec" +msgstr "" + +#: contrib/admin/static/admin/js/calendar.js:39 +msgid "Sunday" +msgstr "" + +#: contrib/admin/static/admin/js/calendar.js:40 +msgid "Monday" +msgstr "" + +#: contrib/admin/static/admin/js/calendar.js:41 +msgid "Tuesday" +msgstr "" + +#: contrib/admin/static/admin/js/calendar.js:42 +msgid "Wednesday" +msgstr "" + +#: contrib/admin/static/admin/js/calendar.js:43 +msgid "Thursday" +msgstr "" + +#: contrib/admin/static/admin/js/calendar.js:44 +msgid "Friday" +msgstr "" + +#: contrib/admin/static/admin/js/calendar.js:45 +msgid "Saturday" +msgstr "" + +#: contrib/admin/static/admin/js/calendar.js:48 +msgctxt "abbrev. day Sunday" +msgid "Sun" +msgstr "" + +#: contrib/admin/static/admin/js/calendar.js:49 +msgctxt "abbrev. day Monday" +msgid "Mon" +msgstr "" + +#: contrib/admin/static/admin/js/calendar.js:50 +msgctxt "abbrev. day Tuesday" +msgid "Tue" +msgstr "" + +#: contrib/admin/static/admin/js/calendar.js:51 +msgctxt "abbrev. day Wednesday" +msgid "Wed" +msgstr "" + +#: contrib/admin/static/admin/js/calendar.js:52 +msgctxt "abbrev. day Thursday" +msgid "Thur" +msgstr "" + +#: contrib/admin/static/admin/js/calendar.js:53 +msgctxt "abbrev. day Friday" +msgid "Fri" +msgstr "" + +#: contrib/admin/static/admin/js/calendar.js:54 +msgctxt "abbrev. day Saturday" +msgid "Sat" +msgstr "" + +#: contrib/admin/static/admin/js/calendar.js:57 +msgctxt "one letter Sunday" +msgid "S" +msgstr "" + +#: contrib/admin/static/admin/js/calendar.js:58 +msgctxt "one letter Monday" +msgid "M" +msgstr "" + +#: contrib/admin/static/admin/js/calendar.js:59 +msgctxt "one letter Tuesday" +msgid "T" +msgstr "" + +#: contrib/admin/static/admin/js/calendar.js:60 +msgctxt "one letter Wednesday" +msgid "W" +msgstr "" + +#: contrib/admin/static/admin/js/calendar.js:61 +msgctxt "one letter Thursday" +msgid "T" +msgstr "" + +#: contrib/admin/static/admin/js/calendar.js:62 +msgctxt "one letter Friday" +msgid "F" +msgstr "" + +#: contrib/admin/static/admin/js/calendar.js:63 +msgctxt "one letter Saturday" +msgid "S" +msgstr "" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/en_AU/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/en_AU/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..c86ec5d03092a83b47ec0c7ec5130725697ff585 GIT binary patch literal 16191 zcmeI24~!huea8n3#9RUaJB0u63_g4p-|g9MFy?Gyo3pVEwsCz2E+o{Q+nu`|yt}i^ z%-(q+E)IpJCZQz-LJ6UNf32OLQSJWsG8DNNd0`@ zd$YH`+7wC@r0PcZ+t2)Y^XB({@ArQ1_h#UaG zzy2`n;rIzC{l5zJ{BJ{*`yP~De+$*_7ond26SxGP_CBY_DtH0M>!Ggif%{+^-U45R zPr?dDoq!AJ#7E(+Q1-ik%4P2*P(t0Ht>Y>bWVzR6z^s{)3RN3O)&Oq2LhI^Zy8{oqqyl|38B&|5yI}^H9(Ip+Ejl zDE~j19}SUScp+R44g7hS!xZj>FTsOw70x^ipMiS*>rl@<^?cW!^P%)z4Al>-ASMm2 zhSGB!(v`s^R6l7{SQI@f-mtS|M)vdlY<}nrnOVU*YQgK70?yFF@V*Pf-2vV}Jd)pL20}K9n7oLg~E{>bV=?Lbw^~ z{tv+gunbRwQ&7+U7*sny0cHP(p~`>GpML`Cxqs@9{~XHCpNH>;{|*U3!90SKffvIZ zZiGAG*Wf|e!(dQcz8~uOe+l*6e}J;%%Wxt52|OM4taSZ;9+aLRgztlwL-q3xsPT@>68&x7BEH^Y}8f5EORoL%mPviIXq{qr}ThoS2I7bv}7 zh0^D^b*|j0P2;? z7`X*e|7ja{2%hki|EiC*X{>3pzTtN5{GqY%EB^R=_$YEe@_BzQheJq=T#sCW+=M)U z6x#?p>hq5x=OT|IUqsd;2a(Sr@+tMVwrPi;3V$DwKYko}5cwR^gJ=w0fINa+jr<MIqU}ltn`@oIeuUiZ&s`2bgFKBKk4z!jTF4-Btq#~0A^Yu~`#A%g?2qq(_xXKc zZ`b}9`*$H_WU)WL41NSjkOPReEyxFu(~#ZBV~DnQIoNo2o8R9Emm(E^dVR{3LL z8*&k{1i1z|5edwdZPVK~5!do4-IK?8E$Yuq(AyU_o9u*@dfbS!JPq?WX>ht+3$tub zBdn`fZ(rQV@~~0nK-ZF1Be$ph_31D(vDQTeE_qY;!3T^Tv4{Ka2bc*w;*}BmjKJb~|zP(YqKRbNj5mQN`ta13j zL%E6e(cF^R8Ku>*nVC2@YDFcgMR`vr|zzo@9~l7+u8Vx2c}}YUyps z_|2%fpQe`lMcaON+M2+hw}_oyNA^7pw2iEUdBo!zZKJ(l1HINxTJ*2qnGPGd$rEof zgW72A9#r_vMZJAdRt}p{Wly2OMeB?#h?#W5L{h6I({W>x?ym8a3jGk(Gcz4iW;`mo z1Dm~xrx*6_s8RUuF&^nu!uJ~$DHEq}MTvF6NZ6pWispAZbHt8=z`^up#anNm?mN%|7mGQ{fP<=3##ay+090wMw=hW2VP)1$WO(*;423+3tZC-H!pw zwiOxvH&Tnj)P(ehiyg%orP?=H;AQXI%(A^xZN$S z80%HkDBW`8&}gPfZevf!KYcUtr9MAy{P?0!!X*Mw#MGVYDOF?Q#)c zpa@=Xvv1z&W8OhiForkY%cgYSb8z12N~jDJ2{yP7tS}3R8YPVc1!nlBVXujOvqgGRgC(;oPox zt|7P<&scY?LhFocymi>9+c->SOmqXbDbtZt#uZRzm9}hZkXbWjQEr2PvtZJQO2OtN z*rMb_^Y9ioj|5v1B1a{eZYcH;N-=4TxHBL{?U{O=iA^~VgCjKC!}35^c(x7C3G!U! z0b3Fx>(&W7!B-NOAf-_`iWy^+v6>DTBCH~EJ=`00(g2!58QTj)Q+2U-2U}MfO`q-JDQCbSN+Nrob&@Vi+vZxEIB}fpZ8d}KO1?-6 zZS_Q1pHq@6GuJua-`*~?2zGRN`f#u#;m=>|w4$VQw*R1;uxAw9kkVZ`w?T>x_xL^VN6UEab8_Y)WJpZ z26E!UX!Woy?AuOemv2(E~@!KX{S2d zYpR8dH$zv28gE5381N&t+)CrT%^1i`Mh80orp*i)8<&2Hnh>2C0J7)I+@@^GTC!YC z$f#xo-Qi$o(rh(NnQV)E;P8RRf?bShvUWdwIIJgAk%yT`lR7p^6@55|)0plIbyv%c zhR(orwFIL~#P-K(!sv%~5i@fVXQR>ExUu!t`&W;BBP*NcPoRoYqoyo&e0Z=PTCH}m{|6@*{mhkGfLo; zMJ(cymWe)|7K;zJHt$-0&w7jCZc+tBa+XJ7-PTo%NLnk0t;LPKb|D`(rovi`jhZYy z;_;fIMmeO}8tPRh)37G{=rp61^Oce@e$Xo)kBEq~av1xBl6~rtD{d{f?L%>XV#$$j zK&1PdFK%vNiLDsdHI9ngZ3^*LpWms_<~y|A&VNO$egozF^!esnbJQC;kN-cl=Z&j8 zR*O>QSDKFKSS2qS=q0l?pE;XGO*~)uii@c7ESKQA(VV22nTkV~_t-dIuT*~>pDB4{Bzob&0vi6@o+GfFpu*)IZ2}12&dvnH_7`mMS#DqvA03?7xc}&^$N@SQ3SRm(~_0kf!*63)yhP?fnc}nO&(3nY1^&Xa-80eB8+9HDZ&L4 zsL~Y~Q5j3g-Kq3ZsWJtzAk*+M@?mdYm*fnXm{fuO^{YbrHc#)3$Q1N&ms_hoI}vMi z-=LRQt{aQgmXgePzAJ+pqD(Siw$dKX^P(%zO(AUyTa;xIBl$y5!bf*9duU6rAb8u#@`uK&zKc6mg59PB)OO z_4akeX{$#%bFTug9hbyv;w^gEU`K8fR*A-Ts9_D|VmRmQySrX9`%9X}G?(BGWN#tS z9i8Ysd({}pmBH(yRIeq5O~tOPdv@87Gq^pQj4OjzwkET|v1Hiv?7Vhx zS2Pu?=-@_tYuKzizWbbu;Th7ndV?O{b$|Gw~M(i8gpMX?0?k!%)e;xjdbpd#_Vqr|Ifc@{5OQ! B!k_>E literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/en_AU/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/en_AU/LC_MESSAGES/django.po new file mode 100644 index 0000000000..dfe62a07c5 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/en_AU/LC_MESSAGES/django.po @@ -0,0 +1,724 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Tom Fifield , 2014 +# Tom Fifield , 2021 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-09-21 10:22+0200\n" +"PO-Revision-Date: 2021-09-22 07:21+0000\n" +"Last-Translator: Transifex Bot <>\n" +"Language-Team: English (Australia) (http://www.transifex.com/django/django/" +"language/en_AU/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: en_AU\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "Delete selected %(verbose_name_plural)s" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "Successfully deleted %(count)d %(items)s." + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "Cannot delete %(name)s" + +msgid "Are you sure?" +msgstr "Are you sure?" + +msgid "Administration" +msgstr "Administration" + +msgid "All" +msgstr "All" + +msgid "Yes" +msgstr "Yes" + +msgid "No" +msgstr "No" + +msgid "Unknown" +msgstr "Unknown" + +msgid "Any date" +msgstr "Any date" + +msgid "Today" +msgstr "Today" + +msgid "Past 7 days" +msgstr "Past 7 days" + +msgid "This month" +msgstr "This month" + +msgid "This year" +msgstr "This year" + +msgid "No date" +msgstr "No date" + +msgid "Has date" +msgstr "Has date" + +msgid "Empty" +msgstr "Empty" + +msgid "Not empty" +msgstr "Not empty" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." + +msgid "Action:" +msgstr "Action:" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "Add another %(verbose_name)s" + +msgid "Remove" +msgstr "Remove" + +msgid "Addition" +msgstr "Addition" + +msgid "Change" +msgstr "Change" + +msgid "Deletion" +msgstr "Deletion" + +msgid "action time" +msgstr "action time" + +msgid "user" +msgstr "user" + +msgid "content type" +msgstr "content type" + +msgid "object id" +msgstr "object id" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/library/functions.html#repr) +msgid "object repr" +msgstr "object repr" + +msgid "action flag" +msgstr "action flag" + +msgid "change message" +msgstr "change message" + +msgid "log entry" +msgstr "log entry" + +msgid "log entries" +msgstr "log entries" + +#, python-format +msgid "Added “%(object)s”." +msgstr "Added “%(object)s”." + +#, python-format +msgid "Changed “%(object)s” — %(changes)s" +msgstr "Changed “%(object)s” — %(changes)s" + +#, python-format +msgid "Deleted “%(object)s.”" +msgstr "Deleted “%(object)s.”" + +msgid "LogEntry Object" +msgstr "LogEntry Object" + +#, python-brace-format +msgid "Added {name} “{object}”." +msgstr "Added {name} “{object}”." + +msgid "Added." +msgstr "Added." + +msgid "and" +msgstr "and" + +#, python-brace-format +msgid "Changed {fields} for {name} “{object}”." +msgstr "Changed {fields} for {name} “{object}”." + +#, python-brace-format +msgid "Changed {fields}." +msgstr "Changed {fields}." + +#, python-brace-format +msgid "Deleted {name} “{object}”." +msgstr "Deleted {name} “{object}”." + +msgid "No fields changed." +msgstr "No fields changed." + +msgid "None" +msgstr "None" + +msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." +msgstr "Hold down “Control”, or “Command” on a Mac, to select more than one." + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully." +msgstr "The {name} “{obj}” was added successfully." + +msgid "You may edit it again below." +msgstr "You may edit it again below." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was added successfully. You may add another {name} below." +msgstr "" +"The {name} “{obj}” was added successfully. You may add another {name} below." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may edit it again below." +msgstr "" +"The {name} “{obj}” was changed successfully. You may edit it again below." + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully. You may edit it again below." +msgstr "" +"The {name} “{obj}” was added successfully. You may edit it again below." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may add another {name} " +"below." +msgstr "" +"The {name} “{obj}” was changed successfully. You may add another {name} " +"below." + +#, python-brace-format +msgid "The {name} “{obj}” was changed successfully." +msgstr "The {name} “{obj}” was changed successfully." + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." + +msgid "No action selected." +msgstr "No action selected." + +#, python-format +msgid "The %(name)s “%(obj)s” was deleted successfully." +msgstr "The %(name)s “%(obj)s” was deleted successfully." + +#, python-format +msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" +msgstr "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" + +#, python-format +msgid "Add %s" +msgstr "Add %s" + +#, python-format +msgid "Change %s" +msgstr "Change %s" + +#, python-format +msgid "View %s" +msgstr "View %s" + +msgid "Database error" +msgstr "Database error" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "%(count)s %(name)s was changed successfully." +msgstr[1] "%(count)s %(name)s were changed successfully." + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "%(total_count)s selected" +msgstr[1] "All %(total_count)s selected" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "0 of %(cnt)s selected" + +#, python-format +msgid "Change history: %s" +msgstr "Change history: %s" + +#. Translators: Model verbose name and instance representation, +#. suitable to be an item in a list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "%(class_name)s %(instance)s" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" + +msgid "Django site admin" +msgstr "Django site admin" + +msgid "Django administration" +msgstr "Django administration" + +msgid "Site administration" +msgstr "Site administration" + +msgid "Log in" +msgstr "Log in" + +#, python-format +msgid "%(app)s administration" +msgstr "%(app)s administration" + +msgid "Page not found" +msgstr "Page not found" + +msgid "We’re sorry, but the requested page could not be found." +msgstr "We’re sorry, but the requested page could not be found." + +msgid "Home" +msgstr "Home" + +msgid "Server error" +msgstr "Server error" + +msgid "Server error (500)" +msgstr "Server error (500)" + +msgid "Server Error (500)" +msgstr "Server Error (500)" + +msgid "" +"There’s been an error. It’s been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" +"There’s been an error. It’s been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." + +msgid "Run the selected action" +msgstr "Run the selected action" + +msgid "Go" +msgstr "Go" + +msgid "Click here to select the objects across all pages" +msgstr "Click here to select the objects across all pages" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "Select all %(total_count)s %(module_name)s" + +msgid "Clear selection" +msgstr "Clear selection" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "Models in the %(name)s application" + +msgid "Add" +msgstr "Add" + +msgid "View" +msgstr "View" + +msgid "You don’t have permission to view or edit anything." +msgstr "You don’t have permission to view or edit anything." + +msgid "" +"First, enter a username and password. Then, you’ll be able to edit more user " +"options." +msgstr "" +"First, enter a username and password. Then, you’ll be able to edit more user " +"options." + +msgid "Enter a username and password." +msgstr "Enter a username and password." + +msgid "Change password" +msgstr "Change password" + +msgid "Please correct the error below." +msgstr "Please correct the error below." + +msgid "Please correct the errors below." +msgstr "Please correct the errors below." + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "Enter a new password for the user %(username)s." + +msgid "Welcome," +msgstr "Welcome," + +msgid "View site" +msgstr "View site" + +msgid "Documentation" +msgstr "Documentation" + +msgid "Log out" +msgstr "Log out" + +#, python-format +msgid "Add %(name)s" +msgstr "Add %(name)s" + +msgid "History" +msgstr "History" + +msgid "View on site" +msgstr "View on site" + +msgid "Filter" +msgstr "Filter" + +msgid "Clear all filters" +msgstr "Clear all filters" + +msgid "Remove from sorting" +msgstr "Remove from sorting" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "Sorting priority: %(priority_number)s" + +msgid "Toggle sorting" +msgstr "Toggle sorting" + +msgid "Delete" +msgstr "Delete" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" + +msgid "Objects" +msgstr "Objects" + +msgid "Yes, I’m sure" +msgstr "Yes, I’m sure" + +msgid "No, take me back" +msgstr "No, take me back" + +msgid "Delete multiple objects" +msgstr "Delete multiple objects" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" + +msgid "Delete?" +msgstr "Delete?" + +#, python-format +msgid " By %(filter_title)s " +msgstr " By %(filter_title)s " + +msgid "Summary" +msgstr "Summary" + +msgid "Recent actions" +msgstr "Recent actions" + +msgid "My actions" +msgstr "My actions" + +msgid "None available" +msgstr "None available" + +msgid "Unknown content" +msgstr "Unknown content" + +msgid "" +"Something’s wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" +"Something’s wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" +"You are authenticated as %(username)s, but are not authorised to access this " +"page. Would you like to login to a different account?" + +msgid "Forgotten your password or username?" +msgstr "Forgotten your password or username?" + +msgid "Toggle navigation" +msgstr "Toggle navigation" + +msgid "Start typing to filter…" +msgstr "" + +msgid "Filter navigation items" +msgstr "" + +msgid "Date/time" +msgstr "Date/time" + +msgid "User" +msgstr "User" + +msgid "Action" +msgstr "Action" + +msgid "" +"This object doesn’t have a change history. It probably wasn’t added via this " +"admin site." +msgstr "" +"This object doesn’t have a change history. It probably wasn’t added via this " +"admin site." + +msgid "Show all" +msgstr "Show all" + +msgid "Save" +msgstr "Save" + +msgid "Popup closing…" +msgstr "Popup closing…" + +msgid "Search" +msgstr "Search" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "%(counter)s result" +msgstr[1] "%(counter)s results" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "%(full_result_count)s total" + +msgid "Save as new" +msgstr "Save as new" + +msgid "Save and add another" +msgstr "Save and add another" + +msgid "Save and continue editing" +msgstr "Save and continue editing" + +msgid "Save and view" +msgstr "Save and view" + +msgid "Close" +msgstr "Close" + +#, python-format +msgid "Change selected %(model)s" +msgstr "Change selected %(model)s" + +#, python-format +msgid "Add another %(model)s" +msgstr "Add another %(model)s" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "Delete selected %(model)s" + +msgid "Thanks for spending some quality time with the web site today." +msgstr "" + +msgid "Log in again" +msgstr "Log in again" + +msgid "Password change" +msgstr "Password change" + +msgid "Your password was changed." +msgstr "Your password was changed." + +msgid "" +"Please enter your old password, for security’s sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" +"Please enter your old password, for security’s sake, and then enter your new " +"password twice so we can verify you typed it in correctly." + +msgid "Change my password" +msgstr "Change my password" + +msgid "Password reset" +msgstr "Password reset" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "Your password has been set. You may go ahead and log in now." + +msgid "Password reset confirmation" +msgstr "Password reset confirmation" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." + +msgid "New password:" +msgstr "New password:" + +msgid "Confirm password:" +msgstr "Confirm password:" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." + +msgid "" +"We’ve emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" +"We’ve emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." + +msgid "" +"If you don’t receive an email, please make sure you’ve entered the address " +"you registered with, and check your spam folder." +msgstr "" +"If you don’t receive an email, please make sure you’ve entered the address " +"you registered with, and check your spam folder." + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." + +msgid "Please go to the following page and choose a new password:" +msgstr "Please go to the following page and choose a new password:" + +msgid "Your username, in case you’ve forgotten:" +msgstr "Your username, in case you’ve forgotten:" + +msgid "Thanks for using our site!" +msgstr "Thanks for using our site!" + +#, python-format +msgid "The %(site_name)s team" +msgstr "The %(site_name)s team" + +msgid "" +"Forgotten your password? Enter your email address below, and we’ll email " +"instructions for setting a new one." +msgstr "" +"Forgotten your password? Enter your email address below, and we’ll email " +"instructions for setting a new one." + +msgid "Email address:" +msgstr "Email address:" + +msgid "Reset my password" +msgstr "Reset my password" + +msgid "All dates" +msgstr "All dates" + +#, python-format +msgid "Select %s" +msgstr "Select %s" + +#, python-format +msgid "Select %s to change" +msgstr "Select %s to change" + +#, python-format +msgid "Select %s to view" +msgstr "Select %s to view" + +msgid "Date:" +msgstr "Date:" + +msgid "Time:" +msgstr "Time:" + +msgid "Lookup" +msgstr "Lookup" + +msgid "Currently:" +msgstr "Currently:" + +msgid "Change:" +msgstr "Change:" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/en_AU/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/en_AU/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..077e7840fa67c8b268dc4b0fbc583f23e00c9619 GIT binary patch literal 5001 zcmeH}O^g&p6vs;$6bJkQ1ys-iS=v6AXs<5f8?L2QL~w;z_;eMH7t&5s()Qo zuc}_X_o}+iFHF78khUT(qkJu6hlwdXkWS8J>;do;cpdnO<(DA->}y;87F>Yx54QY^ z`Ovn13_gnT=U@q3j6taVI7spaq;aS4fCxJYlAfnQ((@IN=6@4>4SXAX z863eNH19VcjrScMo4_AI>bD4wbKr9D4EPz?1P@~HCE!=!Qt&)@C-|4;!uhZf$_}^~ z+-3PVNc|%4cJKv|`n?O1{1@O|;7{Np@K4Kma1zNc1F3%4mh<3kC?5f7o+rQ)*D&@x zNdCX>ro{gAo>5SZT|x#`M*IL_X0@% zpL`rAoV)~lKFgyqwgr!1efe9rQ;CAzW!de}rhUTNR6 zAlZWAa0T*x$S?!jfV>)E1!dNr#d^Q%`UGkvh6}uq|dh3wGO2P7kq~> zU8R!O=qj1+k{|aCrHTjhy~=TJG_SY*=7aLRbH)b*nX`Q9!BQ) zVI6T1&|-OAM*$agDO|E=D1%8Ea9U1gW?86y^}@U?>z;D2YS@`YCzDn0*DW?)F`6te z5gW>a?8S<*X%e|&9fGC07jpbfU2@+GVd*LtT@KE~>u-p5$0wm~NM3H+DDqT|x;D6{ z;vvd<3hVH7iwi6TEs9sjX;zM}Oaf&kEE+(lEKN&7hGsV{&Cy+knHiOu_VY!JY!v)Y zjS>_6mqyw}c$9QQlisYrwxX_SpAIVl-3-(g~tOyTmkIibX1!bY_D{*E8`k)v?U(YOFF1 z*JbEfOyQL5Y3Q6sDZKPFbxx=h zUV57BIh6u?TX1rvaC}`>tt6^@rQ_2rg=ddA&O6k$dusRNT&1%!g_oWtd#0qoo|fq| zC51Pp73?Mrf}H0A4}qS_ch?oPqPjwNT~U~bwnVCUNo^EMUQ$=8M?pxErEbYmBrmT# zBwdwMA7TdreGDHxXSeG-B7+b+EXUnr*hV@%A)7idP9dy$uCpzwg-%K5c>2J&Ga)BE z5_RZnmgB=i!&zr&gOknj?D|}G{n{a<^ga<9rxXYk`oicS$8kvTycfqD-)wYaD{?g{ zXOuKs&_mTCQIk$dibjs_R5ctFb>2UQk82=&PYm$>x-re%;9#rO%Aih#UR6$ID!MV4 zDBXc?hZ>aX=-9!*fplSaVdupaW-~+S?TA^apdyZ}95-^x3^sk?sZF#?gHW2$gQdK) z@uD0}SCxUYQ&qH!b34a3mOV4Ab&kh#r4RTKly&ktXoNYgnsG549p1!~*U^5(SB&!P zz^3#SFB-F#kl9Pf>?LIO5;A)U;a9$d(1nBU7IcZA+XCGS=n_C*eEPc6x12uO^m(Sw OaGn)d5x)|ChuFV9^)a9T literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/en_AU/LC_MESSAGES/djangojs.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/en_AU/LC_MESSAGES/djangojs.po new file mode 100644 index 0000000000..c4e52eb147 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/en_AU/LC_MESSAGES/djangojs.po @@ -0,0 +1,266 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Tom Fifield , 2014 +# Tom Fifield , 2021 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-01-15 09:00+0100\n" +"PO-Revision-Date: 2021-04-11 13:13+0000\n" +"Last-Translator: Tom Fifield \n" +"Language-Team: English (Australia) (http://www.transifex.com/django/django/" +"language/en_AU/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: en_AU\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, javascript-format +msgid "Available %s" +msgstr "Available %s" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "Type into this box to filter down the list of available %s." + +msgid "Filter" +msgstr "Filter" + +msgid "Choose all" +msgstr "Choose all" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "Click to choose all %s at once." + +msgid "Choose" +msgstr "Choose" + +msgid "Remove" +msgstr "Remove" + +#, javascript-format +msgid "Chosen %s" +msgstr "Chosen %s" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." + +msgid "Remove all" +msgstr "Remove all" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "Click to remove all chosen %s at once." + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "%(sel)s of %(cnt)s selected" +msgstr[1] "%(sel)s of %(cnt)s selected" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." + +msgid "" +"You have selected an action, but you haven’t saved your changes to " +"individual fields yet. Please click OK to save. You’ll need to re-run the " +"action." +msgstr "" +"You have selected an action, but you haven’t saved your changes to " +"individual fields yet. Please click OK to save. You’ll need to re-run the " +"action." + +msgid "" +"You have selected an action, and you haven’t made any changes on individual " +"fields. You’re probably looking for the Go button rather than the Save " +"button." +msgstr "" +"You have selected an action, and you haven’t made any changes on individual " +"fields. You’re probably looking for the Go button rather than the Save " +"button." + +msgid "Now" +msgstr "Now" + +msgid "Midnight" +msgstr "Midnight" + +msgid "6 a.m." +msgstr "6 a.m." + +msgid "Noon" +msgstr "Noon" + +msgid "6 p.m." +msgstr "6 p.m." + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "Note: You are %s hour ahead of server time." +msgstr[1] "Note: You are %s hours ahead of server time." + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "Note: You are %s hour behind server time." +msgstr[1] "Note: You are %s hours behind server time." + +msgid "Choose a Time" +msgstr "Choose a Time" + +msgid "Choose a time" +msgstr "Choose a time" + +msgid "Cancel" +msgstr "Cancel" + +msgid "Today" +msgstr "Today" + +msgid "Choose a Date" +msgstr "Choose a Date" + +msgid "Yesterday" +msgstr "Yesterday" + +msgid "Tomorrow" +msgstr "Tomorrow" + +msgid "January" +msgstr "January" + +msgid "February" +msgstr "February" + +msgid "March" +msgstr "March" + +msgid "April" +msgstr "April" + +msgid "May" +msgstr "May" + +msgid "June" +msgstr "June" + +msgid "July" +msgstr "July" + +msgid "August" +msgstr "August" + +msgid "September" +msgstr "September" + +msgid "October" +msgstr "October" + +msgid "November" +msgstr "November" + +msgid "December" +msgstr "December" + +msgctxt "abbrev. month January" +msgid "Jan" +msgstr "Jan" + +msgctxt "abbrev. month February" +msgid "Feb" +msgstr "Feb" + +msgctxt "abbrev. month March" +msgid "Mar" +msgstr "Mar" + +msgctxt "abbrev. month April" +msgid "Apr" +msgstr "Apr" + +msgctxt "abbrev. month May" +msgid "May" +msgstr "May" + +msgctxt "abbrev. month June" +msgid "Jun" +msgstr "Jun" + +msgctxt "abbrev. month July" +msgid "Jul" +msgstr "Jul" + +msgctxt "abbrev. month August" +msgid "Aug" +msgstr "Aug" + +msgctxt "abbrev. month September" +msgid "Sep" +msgstr "Sep" + +msgctxt "abbrev. month October" +msgid "Oct" +msgstr "Oct" + +msgctxt "abbrev. month November" +msgid "Nov" +msgstr "Nov" + +msgctxt "abbrev. month December" +msgid "Dec" +msgstr "Dec" + +msgctxt "one letter Sunday" +msgid "S" +msgstr "S" + +msgctxt "one letter Monday" +msgid "M" +msgstr "M" + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "T" + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "W" + +msgctxt "one letter Thursday" +msgid "T" +msgstr "T" + +msgctxt "one letter Friday" +msgid "F" +msgstr "F" + +msgctxt "one letter Saturday" +msgid "S" +msgstr "S" + +msgid "Show" +msgstr "Show" + +msgid "Hide" +msgstr "Hide" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/en_GB/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/en_GB/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..b20f7bd18c6a2d364ec554baa8332a1464055d2f GIT binary patch literal 11159 zcmeI0e~cYhb;obOBw<67@FS2w2scjFyW8x0yG~+~JlktKwi7$CW8+;X*e%)2zBli^ ziRaBc&&=D+!?+2MG^HxEK}1y{P}B&hLX;FiB}7~0k5;Wvl|Mj2QB?_$Py|Bsj|wS5 z{Ke;c=g!+7B%zfe@z0Lld7rs6ckVs+oO92;Ge3OCmM0CzW60IWfi1>-6UGQu~`ui`z^OS!KABFe-fie8dPxyN`{9ma4E~XJZcNu&K zyvlPLUPgHj+zOBRat60k{seqG{1)VA{+&Oy^8@%6_#>$HUxx32zkm~P3yo_0(@=J~ z8J>lA!RO#V!!|r~xiL?}??a7una))IVW@teC9zN^{$4fX0C_2e=}77JE7V=4EdQO{Hgu} zkfux*s{L~i6PQOl{}QUbFZuFwP;v7wkdQI|1q=8xJPuF4%b3UE*I@(RgfXN?0;ysK zkfEDTLD~BYQ2l-r@`(91yb8Vu)&5VRp8qA3-+m3%&K82>58;(i`s|0Y!y?ppVkrAP z3|0Tn;Pdb)I1Z1{`4r6HoUX(7!vBV|@D)f^GeJ-f;2a!--+~{8FF@&YCCVy}wt7xN z*{=>|-`!C5I|wz-lTdn|hPS{Dl%9VJH9!6y%3sgI-S9h5di@Gc!go@TU3PgMf_iQN zs^1Sowcqjg3n)Dw@%(dt{c}+Id>KA=fiYi!nAY6Dq&^Mz!ENvCu4df6m{(8}f)b0p*7jVmk9lfBz|{@jnfv|Fcl-{1cSkFZlc4h36@M zA3h3?Gl^uUA3*u(Cs1+nYpCZg_&^y4mv~+S<%jK1d19Y0x8Qcl1yo#q6-tk9L$&iC zQ2zZMRQoSMLc{zJPQX{7#(#}1?XnG?rMwG12cLs&_>pVNJn?T(=D8F35!>V^F zls(=Jb$=UF|23#~cS8AV4yyhMsCji7Zh<{0J7u09hidPyeEG{zaq~P>y#6Oto_Gl= zPaI(qJ`TSK8*qGEsmB9Q{dS=2at_MgpN3oDSD^C5Gmt4^UVttS!3!zB4CS|9K(+G< zRGt`{DD~L^Wrq(zjpu$S`<;cV|55ln{0u}jGdEf0i58sGb;wjPFGA&spFzdnRa0f2 zn1#v{UxmsO-+*t0V<@3GdY9*Wq3mbjMQ{enez!o4^G+x|k3i*#Q}AN=1bj36Je0q_ z1b4${q4fGWL?!c<8%n#>JsVKZ-2v6_T~O_x^7q?NdS;#<^Vk0rN}ta{(uA`mr_T15 zL(R#@kPjj?L&-F2wXdy#2m0r?X|$0BkVc@)`$Fs)qPjo?E_b?oye z8oQ3|h{h}5>5$KKC`M!t9ZVrNcAd+{I&MU6a%bhAe5<(EA$#j+mT-2_=_SY~k&`NL z%pf^(47md zkwfmR{5#>#HP6o>xBGGjYHlg-w~+%#btvcQ=pl;RBZ$@mrs-=Qiq|FNBfiEK_z&>)TFCX`8!8>(sZy(z6$#xVMVYXOAMI27$){IX!(?L>jIzE{M zJzZM~a@*_%NhfUCe9&x$dEOqx@v#1?mBTE2{n}whn^~9-;-YF`&83`cYJIV+u~=zS zq(u;O&vA4$596>|ge|i#j_qsSoV972yG=K&)km5|lqP1ML&NNA(MqdDy>i%PA$JIp zwCIKz_m;zKDb2&h)jAku>-c24^dO2%|DpHFq9ZkOug7b2S*n!VAZbaN zDEt2?vB&HW65LS@f8?(HE<#NSJDyi(T`Zht!^WCRy`k*~dA^cnt*X|B@_L`z8bd2* zKt4soaTsK_9JL~7e;hT>SmFa`r2e|I@@SyVEX^4&w(SQUoV!0w+ELaUY0)qTf+AQ7 z^3aA^mS!r3Gey)3-5Ix?uRUy!sT1|%(E1Ll>uVgbHcl7&@gNIgG%uUkvNgEnv+$^TjoI89Q4AZD0AJxghj^&HVIcolYpd@ zxzHQr+}lN7Oq0&s_@s(uy4^M7FV;=fKy}k4lWG#z%^hx416f{7Te@|7Be|)MTPC9M7Gl??JG^^G@fRiv?#))jIXL!i~3a$d(54wImEi@Quv`V z1(`!B6Z)`Aw7o%IDAA7GODvO)P?L@cPHfR5a$S#BLD~&_b$d_h^R$cMr4SYT!dy2; z(hd{C!v>we7t%qYix?~$+GB2+qMV)?^vykMtlu#Ar2KrJBfaXn<^}=VQ5d&IdjZ`_ zLicBbH*=f>XO*AZY$I9}%RKA#TrIP_hsB1XZI*elj1e9!>@9RY%*}C9u9Bm3 zq|#F}%`%b-dATwyIrLK8PKhm0k&sFuLjf$hVn&|E^2w05Vg^A zSYO|%OC{^VwOEOoI54#qg-kOi7=W#?x*B$2HR+2?GSq78E*?4`@0hizwR4+~@k zIh<>F)UI7yPYhh(j)KVtmzgI6yFb@cz@{rGH(09|i3A!Q;BqFRTGum{355&HJnL_> z3$*#ux;{G7fXW$BUDKkwabq|>*-Kl4c(jX~4>O!+4{GVPyTabwSg|-E>7OyO|&5y45Y+JQKd?qCVbSQ95ITMc6qXGO5ZHKS~JFm|YmzrEZVn z^m4B!#{_*=&wduM9ndT+9{@2c)0!NRh1$cFvC>=D!04e!d+wm+a@*3-d3|l;nniUp zU%JxLW2zuz(==I~FD8TDk~ZpQe$6{TwNumv$-Osd1MT*bQ)J2o_GD-BGOqh!($Z3& zV-tIJ5X7`^wZ$oIqS4+LE?Ku^6e+WQ-Q$B?&uTeWg==Y9yWVnH@cVBz-|khV+!t?r zRVg3P!__ifgh9`>Q%yh&qzI0qGrf#HrGA>J)d%MHZ(9ZKK>+4>D^-5xG*OuB>%htf}b8Ria& zW;qIQC{4Om*jdQ;F=VEg1&rJ<3$iKyoery8HD^yIXOeU!F`i1mtZRiiNjR8$Bi0Aj z9vRKt7f!Gc@?177_f~S4A0;Zdyg>wz&y@VhrY`^2c`k0^@o94^%q7$I@B}%7ml<

    MRTUnUNmm zc$Vt@uy(jryEn|V?QGbV+c}M$2>Z;s+R?ldwQ9EyI(cm&ZP>Bn$7(0S6w_L-@%qlb?kTpj85`s~>LGO}t5*so!W@S$R+AG1f, 2019 +# jon_atkinson , 2011-2012 +# Ross Poulton , 2011-2012 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-01-16 20:42+0100\n" +"PO-Revision-Date: 2019-04-05 10:37+0000\n" +"Last-Translator: Adam Forster \n" +"Language-Team: English (United Kingdom) (http://www.transifex.com/django/" +"django/language/en_GB/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: en_GB\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "Successfully deleted %(count)d %(items)s." + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "Cannot delete %(name)s" + +msgid "Are you sure?" +msgstr "Are you sure?" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "Delete selected %(verbose_name_plural)s" + +msgid "Administration" +msgstr "Administration" + +msgid "All" +msgstr "All" + +msgid "Yes" +msgstr "Yes" + +msgid "No" +msgstr "No" + +msgid "Unknown" +msgstr "Unknown" + +msgid "Any date" +msgstr "Any date" + +msgid "Today" +msgstr "Today" + +msgid "Past 7 days" +msgstr "Past 7 days" + +msgid "This month" +msgstr "This month" + +msgid "This year" +msgstr "This year" + +msgid "No date" +msgstr "No date" + +msgid "Has date" +msgstr "Has date" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." + +msgid "Action:" +msgstr "Action:" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "Add another %(verbose_name)s" + +msgid "Remove" +msgstr "Remove" + +msgid "Addition" +msgstr "Addition" + +msgid "Change" +msgstr "Change" + +msgid "Deletion" +msgstr "Deletion" + +msgid "action time" +msgstr "action time" + +msgid "user" +msgstr "user" + +msgid "content type" +msgstr "content type" + +msgid "object id" +msgstr "object id" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/library/functions.html#repr) +msgid "object repr" +msgstr "object repr" + +msgid "action flag" +msgstr "action flag" + +msgid "change message" +msgstr "change message" + +msgid "log entry" +msgstr "log entry" + +msgid "log entries" +msgstr "log entries" + +#, python-format +msgid "Added \"%(object)s\"." +msgstr "Added \"%(object)s\"." + +#, python-format +msgid "Changed \"%(object)s\" - %(changes)s" +msgstr "Changed \"%(object)s\" - %(changes)s" + +#, python-format +msgid "Deleted \"%(object)s.\"" +msgstr "Deleted \"%(object)s.\"" + +msgid "LogEntry Object" +msgstr "LogEntry Object" + +#, python-brace-format +msgid "Added {name} \"{object}\"." +msgstr "Added {name} \"{object}\"." + +msgid "Added." +msgstr "Added." + +msgid "and" +msgstr "and" + +#, python-brace-format +msgid "Changed {fields} for {name} \"{object}\"." +msgstr "" + +#, python-brace-format +msgid "Changed {fields}." +msgstr "" + +#, python-brace-format +msgid "Deleted {name} \"{object}\"." +msgstr "" + +msgid "No fields changed." +msgstr "No fields changed." + +msgid "None" +msgstr "None" + +msgid "" +"Hold down \"Control\", or \"Command\" on a Mac, to select more than one." +msgstr "" + +#, python-brace-format +msgid "The {name} \"{obj}\" was added successfully." +msgstr "" + +msgid "You may edit it again below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was added successfully. You may add another {name} " +"below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was changed successfully. You may edit it again below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was added successfully. You may edit it again below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was changed successfully. You may add another {name} " +"below." +msgstr "" + +#, python-brace-format +msgid "The {name} \"{obj}\" was changed successfully." +msgstr "" + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." + +msgid "No action selected." +msgstr "No action selected." + +#, python-format +msgid "The %(name)s \"%(obj)s\" was deleted successfully." +msgstr "The %(name)s \"%(obj)s\" was deleted successfully." + +#, python-format +msgid "%(name)s with ID \"%(key)s\" doesn't exist. Perhaps it was deleted?" +msgstr "" + +#, python-format +msgid "Add %s" +msgstr "Add %s" + +#, python-format +msgid "Change %s" +msgstr "Change %s" + +#, python-format +msgid "View %s" +msgstr "" + +msgid "Database error" +msgstr "Database error" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "%(count)s %(name)s was changed successfully." +msgstr[1] "%(count)s %(name)s were changed successfully." + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "%(total_count)s selected" +msgstr[1] "All %(total_count)s selected" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "0 of %(cnt)s selected" + +#, python-format +msgid "Change history: %s" +msgstr "Change history: %s" + +#. Translators: Model verbose name and instance representation, +#. suitable to be an item in a list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" + +msgid "Django site admin" +msgstr "Django site admin" + +msgid "Django administration" +msgstr "Django administration" + +msgid "Site administration" +msgstr "Site administration" + +msgid "Log in" +msgstr "Log in" + +#, python-format +msgid "%(app)s administration" +msgstr "" + +msgid "Page not found" +msgstr "Page not found" + +msgid "We're sorry, but the requested page could not be found." +msgstr "We're sorry, but the requested page could not be found." + +msgid "Home" +msgstr "Home" + +msgid "Server error" +msgstr "Server error" + +msgid "Server error (500)" +msgstr "Server error (500)" + +msgid "Server Error (500)" +msgstr "Server Error (500)" + +msgid "" +"There's been an error. It's been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" + +msgid "Run the selected action" +msgstr "Run the selected action" + +msgid "Go" +msgstr "Go" + +msgid "Click here to select the objects across all pages" +msgstr "Click here to select the objects across all pages" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "Select all %(total_count)s %(module_name)s" + +msgid "Clear selection" +msgstr "Clear selection" + +msgid "" +"First, enter a username and password. Then, you'll be able to edit more user " +"options." +msgstr "" +"First, enter a username and password. Then, you'll be able to edit more user " +"options." + +msgid "Enter a username and password." +msgstr "Enter a username and password." + +msgid "Change password" +msgstr "Change password" + +msgid "Please correct the error below." +msgstr "" + +msgid "Please correct the errors below." +msgstr "" + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "Enter a new password for the user %(username)s." + +msgid "Welcome," +msgstr "Welcome," + +msgid "View site" +msgstr "" + +msgid "Documentation" +msgstr "Documentation" + +msgid "Log out" +msgstr "Log out" + +#, python-format +msgid "Add %(name)s" +msgstr "Add %(name)s" + +msgid "History" +msgstr "History" + +msgid "View on site" +msgstr "View on site" + +msgid "Filter" +msgstr "Filter" + +msgid "Remove from sorting" +msgstr "Remove from sorting" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "Sorting priority: %(priority_number)s" + +msgid "Toggle sorting" +msgstr "Toggle sorting" + +msgid "Delete" +msgstr "Delete" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" + +msgid "Objects" +msgstr "" + +msgid "Yes, I'm sure" +msgstr "Yes, I'm sure" + +msgid "No, take me back" +msgstr "" + +msgid "Delete multiple objects" +msgstr "Delete multiple objects" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" + +msgid "View" +msgstr "" + +msgid "Delete?" +msgstr "Delete?" + +#, python-format +msgid " By %(filter_title)s " +msgstr " By %(filter_title)s " + +msgid "Summary" +msgstr "" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "" + +msgid "Add" +msgstr "Add" + +msgid "You don't have permission to view or edit anything." +msgstr "" + +msgid "Recent actions" +msgstr "" + +msgid "My actions" +msgstr "" + +msgid "None available" +msgstr "None available" + +msgid "Unknown content" +msgstr "Unknown content" + +msgid "" +"Something's wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" +"Something's wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" + +msgid "Forgotten your password or username?" +msgstr "Forgotten your password or username?" + +msgid "Date/time" +msgstr "Date/time" + +msgid "User" +msgstr "User" + +msgid "Action" +msgstr "Action" + +msgid "" +"This object doesn't have a change history. It probably wasn't added via this " +"admin site." +msgstr "" +"This object doesn't have a change history. It probably wasn't added via this " +"admin site." + +msgid "Show all" +msgstr "Show all" + +msgid "Save" +msgstr "Save" + +msgid "Popup closing…" +msgstr "" + +msgid "Search" +msgstr "Search" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "%(counter)s result" +msgstr[1] "%(counter)s results" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "%(full_result_count)s total" + +msgid "Save as new" +msgstr "Save as new" + +msgid "Save and add another" +msgstr "Save and add another" + +msgid "Save and continue editing" +msgstr "Save and continue editing" + +msgid "Save and view" +msgstr "" + +msgid "Close" +msgstr "" + +#, python-format +msgid "Change selected %(model)s" +msgstr "" + +#, python-format +msgid "Add another %(model)s" +msgstr "" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "" + +msgid "Thanks for spending some quality time with the Web site today." +msgstr "Thanks for spending some quality time with the Web site today." + +msgid "Log in again" +msgstr "Log in again" + +msgid "Password change" +msgstr "Password change" + +msgid "Your password was changed." +msgstr "Your password was changed." + +msgid "" +"Please enter your old password, for security's sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" +"Please enter your old password, for security's sake, and then enter your new " +"password twice so we can verify you typed it in correctly." + +msgid "Change my password" +msgstr "Change my password" + +msgid "Password reset" +msgstr "Password reset" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "Your password has been set. You may go ahead and log in now." + +msgid "Password reset confirmation" +msgstr "Password reset confirmation" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." + +msgid "New password:" +msgstr "New password:" + +msgid "Confirm password:" +msgstr "Confirm password:" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." + +msgid "" +"We've emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" + +msgid "" +"If you don't receive an email, please make sure you've entered the address " +"you registered with, and check your spam folder." +msgstr "" + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" + +msgid "Please go to the following page and choose a new password:" +msgstr "Please go to the following page and choose a new password:" + +msgid "Your username, in case you've forgotten:" +msgstr "Your username, in case you've forgotten:" + +msgid "Thanks for using our site!" +msgstr "Thanks for using our site!" + +#, python-format +msgid "The %(site_name)s team" +msgstr "The %(site_name)s team" + +msgid "" +"Forgotten your password? Enter your email address below, and we'll email " +"instructions for setting a new one." +msgstr "" + +msgid "Email address:" +msgstr "" + +msgid "Reset my password" +msgstr "Reset my password" + +msgid "All dates" +msgstr "All dates" + +#, python-format +msgid "Select %s" +msgstr "Select %s" + +#, python-format +msgid "Select %s to change" +msgstr "Select %s to change" + +#, python-format +msgid "Select %s to view" +msgstr "" + +msgid "Date:" +msgstr "Date:" + +msgid "Time:" +msgstr "Time:" + +msgid "Lookup" +msgstr "Lookup" + +msgid "Currently:" +msgstr "" + +msgid "Change:" +msgstr "" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/en_GB/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/en_GB/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..0967a3893dd597f760a560f9d6b02cdd63e4a267 GIT binary patch literal 3147 zcmeH{O>7)B6vqc>`B)%83oT!QN2Roh%1m|xN!m$+XhTxcHY7?mNQDFP?s#_{JoYl< z&1R21!3|XcAt5342uMhXJ14kt;|8iYA&%UUkl_D3lWc$}9Jry3_U&(MKR^H9v&TOj zJMv+G=jqaZ2S;JI@4z3P?wvs}1HJ>^4Sohb0Df7vzb^SL_#pbf11sPU;C%%Yv0!v8mwG%W+oI92rg3;hhip2T95^;jB1)s+ z;+9ZaG_<7AJeU`zDRnU4u{M__NRU(Mu%-QYE{&g{Rr76fmYRMF39Zph!jVO!D45?F z&tz)1q#uWCF?;B?sI-$=@Ty8=u&ffJ+8r0XX05?rKUni~OK^x_y@T$0N9BZ{>qycn z$C51)d$Nh>y6sUa20P+%n@Va7%JL}F=BX(u<3lv;HZ`QSeG(?&9z#u5U;5FhqAI6I zWEq?q()A^Lcy-segy}Mm_7%08@K8}%j{m5rD9pbpvWXZ3b(>n&9n=S1iIlNrj_b!+ zZX-wj;2iJ4X#gBhhrqn&*A}2Bm{JUQ%9l~(o^zO-2~?dsu_)Jnos|@0 z(ZSN-M0=&>n3-@-wkrzOdQ7S3idT@l9M$X%28%r#wr z8Z=+lz8NXgvM*tdY4=21hIJ{@m=;VMC$U3g8%E(iqpSEB6Pu3HSjV|;JTcMl_anzk zsFvK0nl_y%lH7qV<4s8O*5ykR0Cp(UFk9TwJNK+mkAv%+APguGF{)y=O$;Vc%2(F e^xPcP#%C)B-qQ!&?}vBz;T?W>hyP#i@IL_>&5wHk literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/en_GB/LC_MESSAGES/djangojs.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/en_GB/LC_MESSAGES/djangojs.po new file mode 100644 index 0000000000..03cf67991d --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/en_GB/LC_MESSAGES/djangojs.po @@ -0,0 +1,218 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# jon_atkinson , 2012 +# Ross Poulton , 2011-2012 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-05-17 23:12+0200\n" +"PO-Revision-Date: 2017-09-19 16:41+0000\n" +"Last-Translator: Jannis Leidel \n" +"Language-Team: English (United Kingdom) (http://www.transifex.com/django/" +"django/language/en_GB/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: en_GB\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, javascript-format +msgid "Available %s" +msgstr "Available %s" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "Type into this box to filter down the list of available %s." + +msgid "Filter" +msgstr "Filter" + +msgid "Choose all" +msgstr "Choose all" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "Click to choose all %s at once." + +msgid "Choose" +msgstr "Choose" + +msgid "Remove" +msgstr "Remove" + +#, javascript-format +msgid "Chosen %s" +msgstr "Chosen %s" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." + +msgid "Remove all" +msgstr "Remove all" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "Click to remove all chosen %s at once." + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "%(sel)s of %(cnt)s selected" +msgstr[1] "%(sel)s of %(cnt)s selected" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." + +msgid "" +"You have selected an action, but you haven't saved your changes to " +"individual fields yet. Please click OK to save. You'll need to re-run the " +"action." +msgstr "" +"You have selected an action, but you haven't saved your changes to " +"individual fields yet. Please click OK to save. You'll need to re-run the " +"action." + +msgid "" +"You have selected an action, and you haven't made any changes on individual " +"fields. You're probably looking for the Go button rather than the Save " +"button." +msgstr "" +"You have selected an action, and you haven't made any changes on individual " +"fields. You're probably looking for the Go button rather than the Save " +"button." + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "" +msgstr[1] "" + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "" +msgstr[1] "" + +msgid "Now" +msgstr "Now" + +msgid "Choose a Time" +msgstr "" + +msgid "Choose a time" +msgstr "Choose a time" + +msgid "Midnight" +msgstr "Midnight" + +msgid "6 a.m." +msgstr "6 a.m." + +msgid "Noon" +msgstr "Noon" + +msgid "6 p.m." +msgstr "" + +msgid "Cancel" +msgstr "Cancel" + +msgid "Today" +msgstr "Today" + +msgid "Choose a Date" +msgstr "" + +msgid "Yesterday" +msgstr "Yesterday" + +msgid "Tomorrow" +msgstr "Tomorrow" + +msgid "January" +msgstr "" + +msgid "February" +msgstr "" + +msgid "March" +msgstr "" + +msgid "April" +msgstr "" + +msgid "May" +msgstr "" + +msgid "June" +msgstr "" + +msgid "July" +msgstr "" + +msgid "August" +msgstr "" + +msgid "September" +msgstr "" + +msgid "October" +msgstr "" + +msgid "November" +msgstr "" + +msgid "December" +msgstr "" + +msgctxt "one letter Sunday" +msgid "S" +msgstr "" + +msgctxt "one letter Monday" +msgid "M" +msgstr "" + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "" + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "" + +msgctxt "one letter Thursday" +msgid "T" +msgstr "" + +msgctxt "one letter Friday" +msgid "F" +msgstr "" + +msgctxt "one letter Saturday" +msgid "S" +msgstr "" + +msgid "Show" +msgstr "Show" + +msgid "Hide" +msgstr "Hide" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/eo/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/eo/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..b05f1212def73d1ebb6654d3f512ef9cf11546fe GIT binary patch literal 14194 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/eo/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/eo/LC_MESSAGES/django.po new file mode 100644 index 0000000000..ddc5901fdd --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/eo/LC_MESSAGES/django.po @@ -0,0 +1,728 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Batist D 🐍 , 2012-2013 +# Batist D 🐍 , 2013-2019 +# Claude Paroz , 2016 +# Dinu Gherman , 2011 +# kristjan , 2012 +# Matthieu Desplantes , 2021 +# Meiyer , 2022 +# Nikolay Korotkiy , 2017 +# Adamo Mesha , 2012 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2022-05-17 05:10-0500\n" +"PO-Revision-Date: 2022-05-25 07:05+0000\n" +"Last-Translator: Meiyer , 2022\n" +"Language-Team: Esperanto (http://www.transifex.com/django/django/language/" +"eo/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: eo\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "Forigi elektitajn %(verbose_name_plural)sn" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "Sukcese forigis %(count)d %(items)s." + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "Ne povas forigi %(name)s" + +msgid "Are you sure?" +msgstr "Ĉu vi certas?" + +msgid "Administration" +msgstr "Administrado" + +msgid "All" +msgstr "Ĉio" + +msgid "Yes" +msgstr "Jes" + +msgid "No" +msgstr "Ne" + +msgid "Unknown" +msgstr "Nekonata" + +msgid "Any date" +msgstr "Ajna dato" + +msgid "Today" +msgstr "Hodiaŭ" + +msgid "Past 7 days" +msgstr "Lastaj 7 tagoj" + +msgid "This month" +msgstr "Ĉi tiu monato" + +msgid "This year" +msgstr "Ĉi tiu jaro" + +msgid "No date" +msgstr "Neniu dato" + +msgid "Has date" +msgstr "Havas daton" + +msgid "Empty" +msgstr "Malplena" + +msgid "Not empty" +msgstr "Ne malplena" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" +"Bonvolu enigi la ĝustajn %(username)sn kaj pasvorton por personara konto. " +"Notu, ke ambaŭ kampoj povas esti uskleco-distingaj." + +msgid "Action:" +msgstr "Ago:" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "Aldoni alian %(verbose_name)sn" + +msgid "Remove" +msgstr "Forigi" + +msgid "Addition" +msgstr "Aldono" + +msgid "Change" +msgstr "Ŝanĝi" + +msgid "Deletion" +msgstr "Forviŝo" + +msgid "action time" +msgstr "aga tempo" + +msgid "user" +msgstr "uzanto" + +msgid "content type" +msgstr "enhava tipo" + +msgid "object id" +msgstr "objekta identigaĵo" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/library/functions.html#repr) +msgid "object repr" +msgstr "objekta prezento" + +msgid "action flag" +msgstr "aga marko" + +msgid "change message" +msgstr "ŝanĝmesaĝo" + +msgid "log entry" +msgstr "protokolero" + +msgid "log entries" +msgstr "protokoleroj" + +#, python-format +msgid "Added “%(object)s”." +msgstr "Aldono de “%(object)s”" + +#, python-format +msgid "Changed “%(object)s” — %(changes)s" +msgstr "Ŝanĝo de “%(object)s” — %(changes)s" + +#, python-format +msgid "Deleted “%(object)s.”" +msgstr "Forigo de “%(object)s”" + +msgid "LogEntry Object" +msgstr "Protokolera objekto" + +#, python-brace-format +msgid "Added {name} “{object}”." +msgstr "Aldonita(j) {name} “{object}”." + +msgid "Added." +msgstr "Aldonita." + +msgid "and" +msgstr "kaj" + +#, python-brace-format +msgid "Changed {fields} for {name} “{object}”." +msgstr "Ŝanĝita(j) {fields} por {name} “{object}”." + +#, python-brace-format +msgid "Changed {fields}." +msgstr "Ŝanĝita(j) {fields}." + +#, python-brace-format +msgid "Deleted {name} “{object}”." +msgstr "Forigita(j) {name} “{object}”." + +msgid "No fields changed." +msgstr "Neniu kampo ŝanĝita." + +msgid "None" +msgstr "Neniu" + +msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." +msgstr "" + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully." +msgstr "La {name} “{obj}” estis sukcese aldonita(j)." + +msgid "You may edit it again below." +msgstr "Eblas redakti ĝin sube." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was added successfully. You may add another {name} below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may edit it again below." +msgstr "" + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully. You may edit it again below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may add another {name} " +"below." +msgstr "" + +#, python-brace-format +msgid "The {name} “{obj}” was changed successfully." +msgstr "" + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" +"Elementoj devas esti elektitaj por agi je ili. Neniu elemento estis ŝanĝita." + +msgid "No action selected." +msgstr "Neniu ago elektita." + +#, python-format +msgid "The %(name)s “%(obj)s” was deleted successfully." +msgstr "La %(name)s “%(obj)s” estis sukcese forigita(j)." + +#, python-format +msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" +msgstr "" + +#, python-format +msgid "Add %s" +msgstr "Aldoni %sn" + +#, python-format +msgid "Change %s" +msgstr "Ŝanĝi %s" + +#, python-format +msgid "View %s" +msgstr "Vidi %sn" + +msgid "Database error" +msgstr "Datumbaza eraro" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "%(count)s %(name)s estis sukcese ŝanĝita." +msgstr[1] "%(count)s %(name)s estis sukcese ŝanĝitaj." + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "%(total_count)s elektitaj" +msgstr[1] "Ĉiuj %(total_count)s elektitaj" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "0 el %(cnt)s elektita" + +#, python-format +msgid "Change history: %s" +msgstr "Ŝanĝa historio: %s" + +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "%(class_name)s %(instance)s" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" +"Forigi la %(class_name)s-n “%(instance)s” postulus forigi la sekvajn " +"protektitajn rilatajn objektojn: %(related_objects)s" + +msgid "Django site admin" +msgstr "Dĵanga reteja administrado" + +msgid "Django administration" +msgstr "Dĵanga administrado" + +msgid "Site administration" +msgstr "Reteja administrado" + +msgid "Log in" +msgstr "Ensaluti" + +#, python-format +msgid "%(app)s administration" +msgstr "Administrado de %(app)s" + +msgid "Page not found" +msgstr "Paĝo ne trovita" + +msgid "We’re sorry, but the requested page could not be found." +msgstr "Bedaŭrinde la petita paĝo ne estis trovita." + +msgid "Home" +msgstr "Ĉefpaĝo" + +msgid "Server error" +msgstr "Servila eraro" + +msgid "Server error (500)" +msgstr "Servila eraro (500)" + +msgid "Server Error (500)" +msgstr "Servila eraro (500)" + +msgid "" +"There’s been an error. It’s been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" + +msgid "Run the selected action" +msgstr "Lanĉi la elektitan agon" + +msgid "Go" +msgstr "Ek" + +msgid "Click here to select the objects across all pages" +msgstr "Klaku ĉi-tie por elekti la objektojn trans ĉiuj paĝoj" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "Elekti ĉiuj %(total_count)s %(module_name)s" + +msgid "Clear selection" +msgstr "Viŝi elekton" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "Modeloj en la aplikaĵo “%(name)s”" + +msgid "Add" +msgstr "Aldoni" + +msgid "View" +msgstr "Vidi" + +msgid "You don’t have permission to view or edit anything." +msgstr "" + +msgid "" +"First, enter a username and password. Then, you’ll be able to edit more user " +"options." +msgstr "" + +msgid "Enter a username and password." +msgstr "Enigu salutnomon kaj pasvorton." + +msgid "Change password" +msgstr "Ŝanĝi pasvorton" + +msgid "Please correct the error below." +msgstr "Bonvolu ĝustigi la eraron sube." + +msgid "Please correct the errors below." +msgstr "Bonvolu ĝustigi la erarojn sube." + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "Enigu novan pasvorton por la uzanto %(username)s." + +msgid "Welcome," +msgstr "Bonvenon," + +msgid "View site" +msgstr "Vidi retejon" + +msgid "Documentation" +msgstr "Dokumentaro" + +msgid "Log out" +msgstr "Elsaluti" + +#, python-format +msgid "Add %(name)s" +msgstr "Aldoni %(name)sn" + +msgid "History" +msgstr "Historio" + +msgid "View on site" +msgstr "Vidi sur retejo" + +msgid "Filter" +msgstr "Filtri" + +msgid "Clear all filters" +msgstr "" + +msgid "Remove from sorting" +msgstr "Forigi el ordigado" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "Ordiga prioritato: %(priority_number)s" + +msgid "Toggle sorting" +msgstr "Ŝalti ordigadon" + +msgid "Delete" +msgstr "Forigi" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" +"Foriganti la %(object_name)s '%(escaped_object)s' rezultus en foriganti " +"rilatajn objektojn, sed via konto ne havas permeson por forigi la sekvantajn " +"tipojn de objektoj:" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" +"Forigi la %(object_name)s '%(escaped_object)s' postulus forigi la sekvajn " +"protektitajn rilatajn objektojn:" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" +"Ĉu vi certas, ke vi volas forigi %(object_name)s \"%(escaped_object)s\"? " +"Ĉiuj el la sekvaj rilataj eroj estos forigitaj:" + +msgid "Objects" +msgstr "Objektoj" + +msgid "Yes, I’m sure" +msgstr "Jes, mi certas" + +msgid "No, take me back" +msgstr "Ne, reen" + +msgid "Delete multiple objects" +msgstr "Forigi plurajn objektojn" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" +"Forigi la %(objects_name)s rezultus en forigi rilatajn objektojn, sed via " +"konto ne havas permeson por forigi la sekvajn tipojn de objektoj:" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" +"Forigi la %(objects_name)s postulus forigi la sekvajn protektitajn rilatajn " +"objektojn:" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" +"Ĉu vi certas, ke vi volas forigi la elektitajn %(objects_name)s? Ĉiuj el la " +"sekvaj objektoj kaj iliaj rilataj eroj estos forigita:" + +msgid "Delete?" +msgstr "Forviŝi?" + +#, python-format +msgid " By %(filter_title)s " +msgstr " Laŭ %(filter_title)s " + +msgid "Summary" +msgstr "Resumo" + +msgid "Recent actions" +msgstr "Lastaj agoj" + +msgid "My actions" +msgstr "Miaj agoj" + +msgid "None available" +msgstr "Neniu disponebla" + +msgid "Unknown content" +msgstr "Nekonata enhavo" + +msgid "" +"Something’s wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" +"Vi estas aŭtentikigita kiel %(username)s, sed ne havas permeson aliri tiun " +"paĝon. Ĉu vi ŝatus ensaluti per alia konto?" + +msgid "Forgotten your password or username?" +msgstr "Ĉu vi forgesis vian pasvorton aŭ vian salutnomon?" + +msgid "Toggle navigation" +msgstr "Ŝalti navigadon" + +msgid "Start typing to filter…" +msgstr "" + +msgid "Filter navigation items" +msgstr "" + +msgid "Date/time" +msgstr "Dato/horo" + +msgid "User" +msgstr "Uzanto" + +msgid "Action" +msgstr "Ago" + +msgid "entry" +msgstr "" + +msgid "entries" +msgstr "" + +msgid "" +"This object doesn’t have a change history. It probably wasn’t added via this " +"admin site." +msgstr "" +"Ĉi tiu objekto ne havas historion de ŝanĝoj. Ĝi verŝajne ne estis aldonita " +"per ĉi tiu administrejo." + +msgid "Show all" +msgstr "Montri ĉion" + +msgid "Save" +msgstr "Konservi" + +msgid "Popup closing…" +msgstr "Ŝprucfenesto fermiĝas…" + +msgid "Search" +msgstr "Serĉu" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "%(counter)s resulto" +msgstr[1] "%(counter)s rezultoj" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "%(full_result_count)s entute" + +msgid "Save as new" +msgstr "Konservi kiel novan" + +msgid "Save and add another" +msgstr "Konservi kaj aldoni alian" + +msgid "Save and continue editing" +msgstr "Konservi kaj daŭre redakti" + +msgid "Save and view" +msgstr "Konservi kaj vidi" + +msgid "Close" +msgstr "Fermi" + +#, python-format +msgid "Change selected %(model)s" +msgstr "Redaktu elektitan %(model)sn" + +#, python-format +msgid "Add another %(model)s" +msgstr "Aldoni alian %(model)sn" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "Forigi elektitan %(model)sn" + +#, python-format +msgid "View selected %(model)s" +msgstr "" + +msgid "Thanks for spending some quality time with the web site today." +msgstr "" + +msgid "Log in again" +msgstr "Ensaluti denove" + +msgid "Password change" +msgstr "Pasvorta ŝanĝo" + +msgid "Your password was changed." +msgstr "Via pasvorto estis sukcese ŝanĝita." + +msgid "" +"Please enter your old password, for security’s sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" +"Bonvolu entajpi vian malnovan pasvorton pro sekureco, kaj entajpi vian novan " +"pasvorton dufoje, por ke ni estu certaj, ke vi tajpis ĝin ĝuste." + +msgid "Change my password" +msgstr "Ŝanĝi mian passvorton" + +msgid "Password reset" +msgstr "Pasvorta rekomencigo" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "Via pasvorto estis ŝanĝita. Vi povas ensaluti nun." + +msgid "Password reset confirmation" +msgstr "Konfirmo de restarigo de pasvorto" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" +"Bonvolu entajpi vian novan pasvorton dufoje, tiel ni povas konfirmi ke vi " +"ĝuste tajpis ĝin." + +msgid "New password:" +msgstr "Nova pasvorto:" + +msgid "Confirm password:" +msgstr "Konfirmi pasvorton:" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"La ligilo por restarigi pasvorton estis malvalida, eble ĉar ĝi jam estis " +"uzita. Bonvolu denove peti restarigon de pasvorto." + +msgid "" +"We’ve emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" +"Ni sendis al vi instrukciojn por starigi vian pasvorton, se ekzistas konto " +"kun la retadreso, kiun vi provizis. Vi devus ricevi ilin post mallonge." + +msgid "" +"If you don’t receive an email, please make sure you’ve entered the address " +"you registered with, and check your spam folder." +msgstr "" +"Se vi ne ricevas retmesaĝon, bonvole certiĝu ke vi entajpis la adreson per " +"kiu vi registriĝis, kaj kontrolu en via spamujo." + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" +"Vi ricevis ĉi tiun retpoŝton ĉar vi petis pasvortan rekomencigon por via " +"uzanta konto ĉe %(site_name)s." + +msgid "Please go to the following page and choose a new password:" +msgstr "Bonvolu iri al la sekvanta paĝo kaj elekti novan pasvorton:" + +msgid "Your username, in case you’ve forgotten:" +msgstr "Via uzantnomo, se vi forgesis ĝin:" + +msgid "Thanks for using our site!" +msgstr "Dankon pro uzo de nia retejo!" + +#, python-format +msgid "The %(site_name)s team" +msgstr "La %(site_name)s teamo" + +msgid "" +"Forgotten your password? Enter your email address below, and we’ll email " +"instructions for setting a new one." +msgstr "" +"Ĉu vi forgesis vian pasvorton? Entajpu vian retpoŝtadreson sube kaj ni " +"sendos al vi retpoŝte instrukciojn por ŝanĝi ĝin." + +msgid "Email address:" +msgstr "Retpoŝto:" + +msgid "Reset my password" +msgstr "Rekomencigi mian pasvorton" + +msgid "All dates" +msgstr "Ĉiuj datoj" + +#, python-format +msgid "Select %s" +msgstr "Elekti %sn" + +#, python-format +msgid "Select %s to change" +msgstr "Elekti %sn por ŝanĝi" + +#, python-format +msgid "Select %s to view" +msgstr "Elektu %sn por vidi" + +msgid "Date:" +msgstr "Dato:" + +msgid "Time:" +msgstr "Horo:" + +msgid "Lookup" +msgstr "Trarigardo" + +msgid "Currently:" +msgstr "Nuntempe:" + +msgid "Change:" +msgstr "Ŝanĝo:" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/eo/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/eo/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..6e86ac2d4e4832f8698d2d77bb51915b2169ea3b GIT binary patch literal 4595 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 RpjK6^G8L+e-&cM9{tXoFz8U}k literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/eo/LC_MESSAGES/djangojs.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/eo/LC_MESSAGES/djangojs.po new file mode 100644 index 0000000000..db9991387c --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/eo/LC_MESSAGES/djangojs.po @@ -0,0 +1,268 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Batist D 🐍 , 2012 +# Batist D 🐍 , 2014-2016 +# 977db45bb2d7151f88325d4fbeca189e_848074d <3d1ba07956d05291bf7c987ecea0a7ef_13052>, 2011 +# Meiyer , 2022 +# Adamo Mesha , 2012 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2022-05-17 05:26-0500\n" +"PO-Revision-Date: 2022-05-25 07:05+0000\n" +"Last-Translator: Meiyer , 2022\n" +"Language-Team: Esperanto (http://www.transifex.com/django/django/language/" +"eo/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: eo\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, javascript-format +msgid "Available %s" +msgstr "Disponeblaj %s" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" +"Tio ĉi estas la listo de disponeblaj %s. Vi povas aktivigi kelkajn markante " +"ilin en la suba kesto kaj klakante la sagon “Elekti” inter la du kestoj." + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "Tajpu en ĉi-tiu skatolo por filtri la liston de haveblaj %s." + +msgid "Filter" +msgstr "Filtru" + +msgid "Choose all" +msgstr "Elekti ĉiujn" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "Klaku por tuj elekti ĉiujn %sn." + +msgid "Choose" +msgstr "Elekti" + +msgid "Remove" +msgstr "Forigi" + +#, javascript-format +msgid "Chosen %s" +msgstr "Elektitaj %s" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" +"Tio ĉi estas la listo de elektitaj %s. Vi povas malaktivigi kelkajn markante " +"ilin en la suba kesto kaj klakante la sagon “Forigi” inter la du kestoj." + +msgid "Remove all" +msgstr "Forigi ĉiujn" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "Klaku por tuj forigi ĉiujn %sn elektitajn." + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "%(sel)s de %(cnt)s elektita" +msgstr[1] "%(sel)s el %(cnt)s elektitaj" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" +"Vi havas neŝirmitajn ŝanĝojn je unuopaj redakteblaj kampoj. Se vi faros " +"agon, viaj neŝirmitaj ŝanĝoj perdiĝos." + +msgid "" +"You have selected an action, but you haven’t saved your changes to " +"individual fields yet. Please click OK to save. You’ll need to re-run the " +"action." +msgstr "" + +msgid "" +"You have selected an action, and you haven’t made any changes on individual " +"fields. You’re probably looking for the Go button rather than the Save " +"button." +msgstr "" + +msgid "Now" +msgstr "Nun" + +msgid "Midnight" +msgstr "Noktomeze" + +msgid "6 a.m." +msgstr "6 a.t.m." + +msgid "Noon" +msgstr "Tagmeze" + +msgid "6 p.m." +msgstr "6 p.t.m." + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "Noto: Vi estas %s horon post la servila horo." +msgstr[1] "Noto: Vi estas %s horojn post la servila horo." + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "Noto: Vi estas %s horon antaŭ la servila horo." +msgstr[1] "Noto: Vi estas %s horojn antaŭ la servila horo." + +msgid "Choose a Time" +msgstr "Elektu horon" + +msgid "Choose a time" +msgstr "Elektu tempon" + +msgid "Cancel" +msgstr "Nuligi" + +msgid "Today" +msgstr "Hodiaŭ" + +msgid "Choose a Date" +msgstr "Elektu daton" + +msgid "Yesterday" +msgstr "Hieraŭ" + +msgid "Tomorrow" +msgstr "Morgaŭ" + +msgid "January" +msgstr "januaro" + +msgid "February" +msgstr "februaro" + +msgid "March" +msgstr "marto" + +msgid "April" +msgstr "aprilo" + +msgid "May" +msgstr "majo" + +msgid "June" +msgstr "junio" + +msgid "July" +msgstr "julio" + +msgid "August" +msgstr "aŭgusto" + +msgid "September" +msgstr "septembro" + +msgid "October" +msgstr "oktobro" + +msgid "November" +msgstr "novembro" + +msgid "December" +msgstr "decembro" + +msgctxt "abbrev. month January" +msgid "Jan" +msgstr "jan." + +msgctxt "abbrev. month February" +msgid "Feb" +msgstr "feb." + +msgctxt "abbrev. month March" +msgid "Mar" +msgstr "mar." + +msgctxt "abbrev. month April" +msgid "Apr" +msgstr "apr." + +msgctxt "abbrev. month May" +msgid "May" +msgstr "maj." + +msgctxt "abbrev. month June" +msgid "Jun" +msgstr "jun." + +msgctxt "abbrev. month July" +msgid "Jul" +msgstr "jul." + +msgctxt "abbrev. month August" +msgid "Aug" +msgstr "aŭg." + +msgctxt "abbrev. month September" +msgid "Sep" +msgstr "sep." + +msgctxt "abbrev. month October" +msgid "Oct" +msgstr "okt." + +msgctxt "abbrev. month November" +msgid "Nov" +msgstr "nov." + +msgctxt "abbrev. month December" +msgid "Dec" +msgstr "dec." + +msgctxt "one letter Sunday" +msgid "S" +msgstr "d" + +msgctxt "one letter Monday" +msgid "M" +msgstr "l" + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "m" + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "m" + +msgctxt "one letter Thursday" +msgid "T" +msgstr "ĵ" + +msgctxt "one letter Friday" +msgid "F" +msgstr "v" + +msgctxt "one letter Saturday" +msgid "S" +msgstr "s" + +msgid "" +"You have already submitted this form. Are you sure you want to submit it " +"again?" +msgstr "Vi jam forsendis tiun ĉi formularon. Ĉu vi certe volas resendi ĝin?" + +msgid "Show" +msgstr "Montri" + +msgid "Hide" +msgstr "Kaŝi" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/es/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/es/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..f1818ea1cd9e3deb5e04adc1c06e194b889779b7 GIT binary patch literal 19163 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, 2014 +# Antoni Aloy , 2011-2014 +# Claude Paroz , 2014 +# e4db27214f7e7544f2022c647b585925_bb0e321, 2015-2016 +# 8cb2d5a716c3c9a99b6d20472609a4d5_6d03802 , 2011 +# guillem , 2012 +# Ignacio José Lizarán Rus , 2019 +# Igor Támara , 2013 +# Jannis Leidel , 2011 +# Jorge Andres Bravo Meza, 2024 +# Jorge Puente Sarrín , 2014-2015 +# José Luis , 2016 +# Josue Naaman Nistal Guerra , 2014 +# Luigy, 2019 +# Marc Garcia , 2011 +# Miguel Angel Tribaldos , 2017 +# Miguel Gonzalez , 2023 +# Natalia, 2024 +# Pablo, 2015 +# Salomon Herrera, 2023 +# Uriel Medina , 2020-2023 +# Veronicabh , 2015 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-05-22 11:46-0300\n" +"PO-Revision-Date: 2024-08-07 07:05+0000\n" +"Last-Translator: Natalia, 2024\n" +"Language-Team: Spanish (http://app.transifex.com/django/django/language/" +"es/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: es\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "Eliminar %(verbose_name_plural)s seleccionado/s" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "Eliminado/s %(count)d %(items)s satisfactoriamente." + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "No se puede eliminar %(name)s" + +msgid "Are you sure?" +msgstr "¿Está seguro?" + +msgid "Administration" +msgstr "Administración" + +msgid "All" +msgstr "Todo" + +msgid "Yes" +msgstr "Sí" + +msgid "No" +msgstr "No" + +msgid "Unknown" +msgstr "Desconocido" + +msgid "Any date" +msgstr "Cualquier fecha" + +msgid "Today" +msgstr "Hoy" + +msgid "Past 7 days" +msgstr "Últimos 7 días" + +msgid "This month" +msgstr "Este mes" + +msgid "This year" +msgstr "Este año" + +msgid "No date" +msgstr "Sin fecha" + +msgid "Has date" +msgstr "Tiene fecha" + +msgid "Empty" +msgstr "Vacío" + +msgid "Not empty" +msgstr "No vacío" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" +"Por favor introduzca el %(username)s y la clave correctos para una cuenta de " +"personal. Observe que ambos campos pueden ser sensibles a mayúsculas." + +msgid "Action:" +msgstr "Acción:" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "Agregar %(verbose_name)s adicional." + +msgid "Remove" +msgstr "Eliminar" + +msgid "Addition" +msgstr "Añadido" + +msgid "Change" +msgstr "Modificar" + +msgid "Deletion" +msgstr "Borrado" + +msgid "action time" +msgstr "hora de la acción" + +msgid "user" +msgstr "usuario" + +msgid "content type" +msgstr "tipo de contenido" + +msgid "object id" +msgstr "id del objeto" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/library/functions.html#repr) +msgid "object repr" +msgstr "repr del objeto" + +msgid "action flag" +msgstr "marca de acción" + +msgid "change message" +msgstr "mensaje de cambio" + +msgid "log entry" +msgstr "entrada de registro" + +msgid "log entries" +msgstr "entradas de registro" + +#, python-format +msgid "Added “%(object)s”." +msgstr "Agregado “%(object)s”." + +#, python-format +msgid "Changed “%(object)s” — %(changes)s" +msgstr "Modificado “%(object)s” — %(changes)s" + +#, python-format +msgid "Deleted “%(object)s.”" +msgstr "Eliminado “%(object)s.”" + +msgid "LogEntry Object" +msgstr "Objeto de registro de Log" + +#, python-brace-format +msgid "Added {name} “{object}”." +msgstr "Agregado {name} “{object}”." + +msgid "Added." +msgstr "Añadido." + +msgid "and" +msgstr "y" + +#, python-brace-format +msgid "Changed {fields} for {name} “{object}”." +msgstr "Cambios en {fields} para {name} “{object}”." + +#, python-brace-format +msgid "Changed {fields}." +msgstr "Modificado {fields}." + +#, python-brace-format +msgid "Deleted {name} “{object}”." +msgstr "Eliminado {name} “{object}”." + +msgid "No fields changed." +msgstr "No ha cambiado ningún campo." + +msgid "None" +msgstr "Ninguno" + +msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." +msgstr "" +"Mantenga presionado \"Control\" o \"Comando\" en una Mac, para seleccionar " +"más de uno." + +msgid "Select this object for an action - {}" +msgstr "Seleccione este objeto para una acción - {}" + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully." +msgstr "El {name} “{obj}” fue agregado correctamente." + +msgid "You may edit it again below." +msgstr "Puede volverlo a editar otra vez a continuación." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was added successfully. You may add another {name} below." +msgstr "" +"El {name} “{obj}” se agregó correctamente. Puede agregar otro {name} a " +"continuación." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may edit it again below." +msgstr "" +"El {name} “{obj}” se cambió correctamente. Puede editarlo nuevamente a " +"continuación." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may add another {name} " +"below." +msgstr "" +"El {name} “{obj}” se cambió correctamente. Puede agregar otro {name} a " +"continuación." + +#, python-brace-format +msgid "The {name} “{obj}” was changed successfully." +msgstr "El {name} “{obj}” se cambió correctamente." + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" +"Se deben seleccionar elementos para poder realizar acciones sobre estos. No " +"se han modificado elementos." + +msgid "No action selected." +msgstr "No se seleccionó ninguna acción." + +#, python-format +msgid "The %(name)s “%(obj)s” was deleted successfully." +msgstr "El%(name)s “%(obj)s” fue eliminado con éxito." + +#, python-format +msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" +msgstr "%(name)s con el ID “%(key)s” no existe. ¿Quizás fue eliminado?" + +#, python-format +msgid "Add %s" +msgstr "Añadir %s" + +#, python-format +msgid "Change %s" +msgstr "Modificar %s" + +#, python-format +msgid "View %s" +msgstr "Vista %s" + +msgid "Database error" +msgstr "Error en la base de datos" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "%(count)s %(name)s fué modificado con éxito." +msgstr[1] "%(count)s %(name)s fueron modificados con éxito." +msgstr[2] "%(count)s %(name)s fueron modificados con éxito." + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "%(total_count)s seleccionado" +msgstr[1] "%(total_count)s seleccionados en total" +msgstr[2] "%(total_count)s seleccionados en total" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "seleccionados 0 de %(cnt)s" + +#, python-format +msgid "Change history: %s" +msgstr "Histórico de modificaciones: %s" + +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "%(class_name)s %(instance)s" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" +"La eliminación de %(class_name)s %(instance)s requeriría eliminar los " +"siguientes objetos relacionados protegidos: %(related_objects)s" + +msgid "Django site admin" +msgstr "Sitio de administración de Django" + +msgid "Django administration" +msgstr "Administración de Django" + +msgid "Site administration" +msgstr "Sitio administrativo" + +msgid "Log in" +msgstr "Iniciar sesión" + +#, python-format +msgid "%(app)s administration" +msgstr "Administración de %(app)s " + +msgid "Page not found" +msgstr "Página no encontrada" + +msgid "We’re sorry, but the requested page could not be found." +msgstr "Lo sentimos, pero no se pudo encontrar la página solicitada." + +msgid "Home" +msgstr "Inicio" + +msgid "Server error" +msgstr "Error del servidor" + +msgid "Server error (500)" +msgstr "Error del servidor (500)" + +msgid "Server Error (500)" +msgstr "Error de servidor (500)" + +msgid "" +"There’s been an error. It’s been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" +"Hubo un error. Se ha informado a los administradores del sitio por correo " +"electrónico y debería solucionarse en breve. Gracias por su paciencia." + +msgid "Run the selected action" +msgstr "Ejecutar la acción seleccionada" + +msgid "Go" +msgstr "Ir" + +msgid "Click here to select the objects across all pages" +msgstr "Pulse aquí para seleccionar los objetos a través de todas las páginas" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "Seleccionar todos los %(total_count)s %(module_name)s" + +msgid "Clear selection" +msgstr "Limpiar selección" + +msgid "Breadcrumbs" +msgstr "Migas de pan" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "Modelos en la aplicación %(name)s" + +msgid "Add" +msgstr "Añadir" + +msgid "View" +msgstr "Vista" + +msgid "You don’t have permission to view or edit anything." +msgstr "No cuenta con permiso para ver ni editar nada." + +msgid "" +"First, enter a username and password. Then, you’ll be able to edit more user " +"options." +msgstr "" +"Primero, ingrese un nombre de usuario y contraseña. Luego, podrá editar más " +"opciones del usuario." + +msgid "Enter a username and password." +msgstr "Introduzca un nombre de usuario y contraseña" + +msgid "Change password" +msgstr "Cambiar contraseña" + +msgid "Set password" +msgstr "Establecer contraseña" + +msgid "Please correct the error below." +msgid_plural "Please correct the errors below." +msgstr[0] "Por favor, corrija el siguiente error." +msgstr[1] "Por favor, corrija los siguientes errores." +msgstr[2] "Por favor, corrija los siguientes errores." + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "" +"Introduzca una nueva contraseña para el usuario %(username)s." + +msgid "" +"This action will enable password-based authentication for " +"this user." +msgstr "" +"Esta acción habilitará la autenticación basada en " +"contraseñas para este usuario." + +msgid "Disable password-based authentication" +msgstr "Deshabilitar la autenticación basada en contraseñas" + +msgid "Enable password-based authentication" +msgstr "Habilitar la autenticación basada en contraseñas" + +msgid "Skip to main content" +msgstr "Saltar al contenido principal" + +msgid "Welcome," +msgstr "Bienvenidos," + +msgid "View site" +msgstr "Ver el sitio" + +msgid "Documentation" +msgstr "Documentación" + +msgid "Log out" +msgstr "Cerrar sesión" + +#, python-format +msgid "Add %(name)s" +msgstr "Añadir %(name)s" + +msgid "History" +msgstr "Histórico" + +msgid "View on site" +msgstr "Ver en el sitio" + +msgid "Filter" +msgstr "Filtro" + +msgid "Hide counts" +msgstr "Ocultar recuentos" + +msgid "Show counts" +msgstr "Mostrar recuentos" + +msgid "Clear all filters" +msgstr "Borrar todos los filtros" + +msgid "Remove from sorting" +msgstr "Eliminar del ordenación" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "Prioridad de la ordenación: %(priority_number)s" + +msgid "Toggle sorting" +msgstr "Activar la ordenación" + +msgid "Toggle theme (current theme: auto)" +msgstr "Cambiar tema (tema actual: automático)" + +msgid "Toggle theme (current theme: light)" +msgstr "Cambiar tema (tema actual: claro)" + +msgid "Toggle theme (current theme: dark)" +msgstr "Cambiar tema (tema actual: oscuro)" + +msgid "Delete" +msgstr "Eliminar" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" +"Eliminar el %(object_name)s '%(escaped_object)s' provocaría la eliminación " +"de objetos relacionados, pero su cuenta no tiene permiso para borrar los " +"siguientes tipos de objetos:" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" +"La eliminación de %(object_name)s %(escaped_object)s requeriría eliminar los " +"siguientes objetos relacionados protegidos:" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" +"¿Está seguro de que quiere borrar los %(object_name)s " +"\"%(escaped_object)s\"? Se borrarán los siguientes objetos relacionados:" + +msgid "Objects" +msgstr "Objetos" + +msgid "Yes, I’m sure" +msgstr "Si, estoy seguro" + +msgid "No, take me back" +msgstr "No, llévame atrás" + +msgid "Delete multiple objects" +msgstr "Eliminar múltiples objetos." + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" +"La eliminación del %(objects_name)s seleccionado resultaría en el borrado de " +"objetos relacionados, pero su cuenta no tiene permisos para borrar los " +"siguientes tipos de objetos:" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" +"La eliminación de %(objects_name)s seleccionado requeriría el borrado de los " +"siguientes objetos protegidos relacionados:" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" +"¿Está usted seguro que quiere eliminar el %(objects_name)s seleccionado? " +"Todos los siguientes objetos y sus elementos relacionados serán borrados:" + +msgid "Delete?" +msgstr "¿Eliminar?" + +#, python-format +msgid " By %(filter_title)s " +msgstr " Por %(filter_title)s " + +msgid "Summary" +msgstr "Resumen" + +msgid "Recent actions" +msgstr "Acciones recientes" + +msgid "My actions" +msgstr "Mis acciones" + +msgid "None available" +msgstr "Ninguno disponible" + +msgid "Added:" +msgstr "Agregado:" + +msgid "Changed:" +msgstr "Modificado:" + +msgid "Deleted:" +msgstr "Eliminado:" + +msgid "Unknown content" +msgstr "Contenido desconocido" + +msgid "" +"Something’s wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" +"Algo anda mal con la instalación de su base de datos. Asegúrese de que se " +"hayan creado las tablas de base de datos adecuadas y asegúrese de que el " +"usuario adecuado pueda leer la base de datos." + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" +"Se ha autenticado como %(username)s, pero no está autorizado a acceder a " +"esta página. ¿Desea autenticarse con una cuenta diferente?" + +msgid "Forgotten your password or username?" +msgstr "¿Ha olvidado la contraseña o el nombre de usuario?" + +msgid "Toggle navigation" +msgstr "Activar navegación" + +msgid "Sidebar" +msgstr "Barra lateral" + +msgid "Start typing to filter…" +msgstr "Empiece a escribir para filtrar…" + +msgid "Filter navigation items" +msgstr "Filtrar elementos de navegación" + +msgid "Date/time" +msgstr "Fecha/hora" + +msgid "User" +msgstr "Usuario" + +msgid "Action" +msgstr "Acción" + +msgid "entry" +msgid_plural "entries" +msgstr[0] "entrada" +msgstr[1] "entradas" +msgstr[2] "entradas" + +msgid "" +"This object doesn’t have a change history. It probably wasn’t added via this " +"admin site." +msgstr "" +"Este objeto no tiene un historial de cambios. Probablemente no se agregó a " +"través de este sitio de administración." + +msgid "Show all" +msgstr "Mostrar todo" + +msgid "Save" +msgstr "Guardar" + +msgid "Popup closing…" +msgstr "Cerrando ventana emergente..." + +msgid "Search" +msgstr "Buscar" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "%(counter)s resultado" +msgstr[1] "%(counter)s resultados" +msgstr[2] "%(counter)s resultados" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "%(full_result_count)s total" + +msgid "Save as new" +msgstr "Guardar como nuevo" + +msgid "Save and add another" +msgstr "Guardar y añadir otro" + +msgid "Save and continue editing" +msgstr "Guardar y continuar editando" + +msgid "Save and view" +msgstr "Guardar y ver" + +msgid "Close" +msgstr "Cerrar" + +#, python-format +msgid "Change selected %(model)s" +msgstr "Cambiar %(model)s seleccionados" + +#, python-format +msgid "Add another %(model)s" +msgstr "Añadir otro %(model)s" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "Eliminar %(model)s seleccionada/o" + +#, python-format +msgid "View selected %(model)s" +msgstr "Ver seleccionado %(model)s" + +msgid "Thanks for spending some quality time with the web site today." +msgstr "Gracias por pasar un buen rato con el sitio web hoy." + +msgid "Log in again" +msgstr "Iniciar sesión de nuevo" + +msgid "Password change" +msgstr "Cambio de contraseña" + +msgid "Your password was changed." +msgstr "Su contraseña ha sido cambiada." + +msgid "" +"Please enter your old password, for security’s sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" +"Ingrese su contraseña anterior, por razones de seguridad, y luego ingrese su " +"nueva contraseña dos veces para que podamos verificar que la ingresó " +"correctamente." + +msgid "Change my password" +msgstr "Cambiar mi contraseña" + +msgid "Password reset" +msgstr "Restablecer contraseña" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "" +"Su contraseña ha sido establecida. Ahora puede continuar e iniciar sesión." + +msgid "Password reset confirmation" +msgstr "Confirmación de restablecimiento de contraseña" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" +"Por favor, introduzca su contraseña nueva dos veces para verificar que la ha " +"escrito correctamente." + +msgid "New password:" +msgstr "Contraseña nueva:" + +msgid "Confirm password:" +msgstr "Confirme contraseña:" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"El enlace de restablecimiento de contraseña era inválido, seguramente porque " +"se haya usado antes. Por favor, solicite un nuevo restablecimiento de " +"contraseña." + +msgid "" +"We’ve emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" +"Le enviamos instrucciones por correo electrónico para configurar su " +"contraseña, si existe una cuenta con el correo electrónico que ingresó. " +"Debería recibirlos en breve." + +msgid "" +"If you don’t receive an email, please make sure you’ve entered the address " +"you registered with, and check your spam folder." +msgstr "" +"Si no recibe un correo electrónico, asegúrese de haber ingresado la " +"dirección con la que se registró y verifique su carpeta de correo no deseado." + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" +"Ha recibido este correo electrónico porque ha solicitado restablecer la " +"contraseña para su cuenta en %(site_name)s." + +msgid "Please go to the following page and choose a new password:" +msgstr "Por favor, vaya a la página siguiente y escoja una nueva contraseña." + +msgid "Your username, in case you’ve forgotten:" +msgstr "Su nombre de usuario, en caso de que lo haya olvidado:" + +msgid "Thanks for using our site!" +msgstr "¡Gracias por usar nuestro sitio!" + +#, python-format +msgid "The %(site_name)s team" +msgstr "El equipo de %(site_name)s" + +msgid "" +"Forgotten your password? Enter your email address below, and we’ll email " +"instructions for setting a new one." +msgstr "" +"¿Olvidaste tu contraseña? Ingrese su dirección de correo electrónico a " +"continuación y le enviaremos las instrucciones para configurar una nueva." + +msgid "Email address:" +msgstr "Correo electrónico:" + +msgid "Reset my password" +msgstr "Restablecer mi contraseña" + +msgid "Select all objects on this page for an action" +msgstr "Seleccione todos los objetos de esta página para una acción" + +msgid "All dates" +msgstr "Todas las fechas" + +#, python-format +msgid "Select %s" +msgstr "Seleccione %s" + +#, python-format +msgid "Select %s to change" +msgstr "Seleccione %s a modificar" + +#, python-format +msgid "Select %s to view" +msgstr "Seleccione %s para ver" + +msgid "Date:" +msgstr "Fecha:" + +msgid "Time:" +msgstr "Hora:" + +msgid "Lookup" +msgstr "Buscar" + +msgid "Currently:" +msgstr "Actualmente:" + +msgid "Change:" +msgstr "Cambiar:" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/es/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/es/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..76616108bbfc474acbc2a3d0feeafdcc909f1c94 GIT binary patch literal 6347 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 S>LLDpw#2`u4)L$81@&+Lgtw;v literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/es/LC_MESSAGES/djangojs.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/es/LC_MESSAGES/djangojs.po new file mode 100644 index 0000000000..e2c5567f89 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/es/LC_MESSAGES/djangojs.po @@ -0,0 +1,336 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Antoni Aloy , 2011-2012 +# e4db27214f7e7544f2022c647b585925_bb0e321, 2015-2016 +# Jannis Leidel , 2011 +# Josue Naaman Nistal Guerra , 2014 +# Leonardo J. Caballero G. , 2011 +# Uriel Medina , 2020-2023 +# Veronicabh , 2015 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-09-18 15:04-0300\n" +"PO-Revision-Date: 2023-12-04 07:59+0000\n" +"Last-Translator: Uriel Medina , 2020-2023\n" +"Language-Team: Spanish (http://app.transifex.com/django/django/language/" +"es/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: es\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, javascript-format +msgid "Available %s" +msgstr "%s Disponibles" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" +"Esta es la lista de %s disponibles. Puede elegir algunos seleccionándolos en " +"la caja inferior y luego haciendo clic en la flecha \"Elegir\" que hay entre " +"las dos cajas." + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "Escriba en este cuadro para filtrar la lista de %s disponibles" + +msgid "Filter" +msgstr "Filtro" + +msgid "Choose all" +msgstr "Selecciona todos" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "Haga clic para seleccionar todos los %s de una vez" + +msgid "Choose" +msgstr "Elegir" + +msgid "Remove" +msgstr "Eliminar" + +#, javascript-format +msgid "Chosen %s" +msgstr "%s elegidos" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" +"Esta es la lista de los %s elegidos. Puede elmininar algunos " +"seleccionándolos en la caja inferior y luego haciendo click en la flecha " +"\"Eliminar\" que hay entre las dos cajas." + +#, javascript-format +msgid "Type into this box to filter down the list of selected %s." +msgstr "Escriba en este cuadro para filtrar la lista de %s seleccionados." + +msgid "Remove all" +msgstr "Eliminar todos" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "Haz clic para eliminar todos los %s elegidos" + +#, javascript-format +msgid "%s selected option not visible" +msgid_plural "%s selected options not visible" +msgstr[0] "%s opción seleccionada no visible" +msgstr[1] "%s opciones seleccionadas no visibles" +msgstr[2] "%s opciones seleccionadas no visibles" + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "%(sel)s de %(cnt)s seleccionado" +msgstr[1] "%(sel)s de %(cnt)s seleccionados" +msgstr[2] "%(sel)s de %(cnt)s seleccionados" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" +"Tiene cambios sin guardar en campos editables individuales. Si ejecuta una " +"acción, los cambios no guardados se perderán." + +msgid "" +"You have selected an action, but you haven’t saved your changes to " +"individual fields yet. Please click OK to save. You’ll need to re-run the " +"action." +msgstr "" +"Ha seleccionado una acción, pero aún no ha guardado los cambios en los " +"campos individuales. Haga clic en Aceptar para guardar. Deberá volver a " +"ejecutar la acción." + +msgid "" +"You have selected an action, and you haven’t made any changes on individual " +"fields. You’re probably looking for the Go button rather than the Save " +"button." +msgstr "" +"Ha seleccionado una acción y no ha realizado ningún cambio en campos " +"individuales. Probablemente esté buscando el botón 'Ir' en lugar del botón " +"'Guardar'." + +msgid "Now" +msgstr "Ahora" + +msgid "Midnight" +msgstr "Medianoche" + +msgid "6 a.m." +msgstr "6 a.m." + +msgid "Noon" +msgstr "Mediodía" + +msgid "6 p.m." +msgstr "6 p.m." + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "Nota: Usted esta a %s horas por delante de la hora del servidor." +msgstr[1] "Nota: Usted va %s horas por delante de la hora del servidor." +msgstr[2] "Nota: Usted va %s horas por delante de la hora del servidor." + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "Nota: Usted esta a %s hora de retraso de tiempo de servidor." +msgstr[1] "Nota: Usted va %s horas por detrás de la hora del servidor." +msgstr[2] "Nota: Usted va %s horas por detrás de la hora del servidor." + +msgid "Choose a Time" +msgstr "Elija una Hora" + +msgid "Choose a time" +msgstr "Elija una hora" + +msgid "Cancel" +msgstr "Cancelar" + +msgid "Today" +msgstr "Hoy" + +msgid "Choose a Date" +msgstr "Elija una Fecha" + +msgid "Yesterday" +msgstr "Ayer" + +msgid "Tomorrow" +msgstr "Mañana" + +msgid "January" +msgstr "Enero" + +msgid "February" +msgstr "Febrero" + +msgid "March" +msgstr "Marzo" + +msgid "April" +msgstr "Abril" + +msgid "May" +msgstr "Mayo" + +msgid "June" +msgstr "Junio" + +msgid "July" +msgstr "Julio" + +msgid "August" +msgstr "Agosto" + +msgid "September" +msgstr "Septiembre" + +msgid "October" +msgstr "Octubre" + +msgid "November" +msgstr "Noviembre" + +msgid "December" +msgstr "Diciembre" + +msgctxt "abbrev. month January" +msgid "Jan" +msgstr "Ene" + +msgctxt "abbrev. month February" +msgid "Feb" +msgstr "Feb" + +msgctxt "abbrev. month March" +msgid "Mar" +msgstr "Mar" + +msgctxt "abbrev. month April" +msgid "Apr" +msgstr "Abr" + +msgctxt "abbrev. month May" +msgid "May" +msgstr "May" + +msgctxt "abbrev. month June" +msgid "Jun" +msgstr "Jun" + +msgctxt "abbrev. month July" +msgid "Jul" +msgstr "Jul" + +msgctxt "abbrev. month August" +msgid "Aug" +msgstr "Ago" + +msgctxt "abbrev. month September" +msgid "Sep" +msgstr "Sep" + +msgctxt "abbrev. month October" +msgid "Oct" +msgstr "Oct" + +msgctxt "abbrev. month November" +msgid "Nov" +msgstr "Nov" + +msgctxt "abbrev. month December" +msgid "Dec" +msgstr "Dic" + +msgid "Sunday" +msgstr "Domingo" + +msgid "Monday" +msgstr "Lunes" + +msgid "Tuesday" +msgstr "Martes" + +msgid "Wednesday" +msgstr "Miércoles" + +msgid "Thursday" +msgstr "Jueves" + +msgid "Friday" +msgstr "Viernes" + +msgid "Saturday" +msgstr "Sábado" + +msgctxt "abbrev. day Sunday" +msgid "Sun" +msgstr "Dom" + +msgctxt "abbrev. day Monday" +msgid "Mon" +msgstr "Lun" + +msgctxt "abbrev. day Tuesday" +msgid "Tue" +msgstr "Mar" + +msgctxt "abbrev. day Wednesday" +msgid "Wed" +msgstr "Mie" + +msgctxt "abbrev. day Thursday" +msgid "Thur" +msgstr "Jue" + +msgctxt "abbrev. day Friday" +msgid "Fri" +msgstr "Vie" + +msgctxt "abbrev. day Saturday" +msgid "Sat" +msgstr "Sáb" + +msgctxt "one letter Sunday" +msgid "S" +msgstr "D" + +msgctxt "one letter Monday" +msgid "M" +msgstr "L" + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "M" + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "M" + +msgctxt "one letter Thursday" +msgid "T" +msgstr "J" + +msgctxt "one letter Friday" +msgid "F" +msgstr "V" + +msgctxt "one letter Saturday" +msgid "S" +msgstr "S" + +msgid "Show" +msgstr "Mostrar" + +msgid "Hide" +msgstr "Ocultar" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/es_AR/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/es_AR/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..22f0ba35b2d52b114adc0b756b8dd50de5b18d95 GIT binary patch literal 19032 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 hv-uaQ?^7sA@wVq#?BX7qhzRugg5EmI7, 2011 +# Leonardo José Guzmán , 2013 +# Natalia (Django Fellow), 2023 +# Natalia (Django Fellow), 2023 +# Ramiro Morales, 2013-2023 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-09-18 11:41-0300\n" +"PO-Revision-Date: 2023-12-04 07:05+0000\n" +"Last-Translator: Natalia (Django Fellow), 2023\n" +"Language-Team: Spanish (Argentina) (http://app.transifex.com/django/django/" +"language/es_AR/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: es_AR\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "Eliminar %(verbose_name_plural)s seleccionados/as" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "Se eliminaron con éxito %(count)d %(items)s." + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "No se puede eliminar %(name)s" + +msgid "Are you sure?" +msgstr "¿Está seguro?" + +msgid "Administration" +msgstr "Administración" + +msgid "All" +msgstr "Todos/as" + +msgid "Yes" +msgstr "Sí" + +msgid "No" +msgstr "No" + +msgid "Unknown" +msgstr "Desconocido" + +msgid "Any date" +msgstr "Cualquier fecha" + +msgid "Today" +msgstr "Hoy" + +msgid "Past 7 days" +msgstr "Últimos 7 días" + +msgid "This month" +msgstr "Este mes" + +msgid "This year" +msgstr "Este año" + +msgid "No date" +msgstr "Sin fecha" + +msgid "Has date" +msgstr "Tiene fecha" + +msgid "Empty" +msgstr "Vacío/a" + +msgid "Not empty" +msgstr "No vacío/a" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" +"Por favor introduza %(username)s y contraseña correctos de una cuenta de " +"staff. Note que puede que ambos campos sean estrictos en relación a " +"diferencias entre mayúsculas y minúsculas." + +msgid "Action:" +msgstr "Acción:" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "Agregar otro/a %(verbose_name)s" + +msgid "Remove" +msgstr "Eliminar" + +msgid "Addition" +msgstr "Agregado" + +msgid "Change" +msgstr "Modificar" + +msgid "Deletion" +msgstr "Borrado" + +msgid "action time" +msgstr "hora de la acción" + +msgid "user" +msgstr "usuario" + +msgid "content type" +msgstr "tipo de contenido" + +msgid "object id" +msgstr "id de objeto" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/library/functions.html#repr) +msgid "object repr" +msgstr "repr de objeto" + +msgid "action flag" +msgstr "marca de acción" + +msgid "change message" +msgstr "mensaje de cambio" + +msgid "log entry" +msgstr "entrada de registro" + +msgid "log entries" +msgstr "entradas de registro" + +#, python-format +msgid "Added “%(object)s”." +msgstr "Se agrega \"%(object)s”." + +#, python-format +msgid "Changed “%(object)s” — %(changes)s" +msgstr "Se modifica \"%(object)s” — %(changes)s" + +#, python-format +msgid "Deleted “%(object)s.”" +msgstr "Se elimina \"%(object)s”." + +msgid "LogEntry Object" +msgstr "Objeto LogEntry" + +#, python-brace-format +msgid "Added {name} “{object}”." +msgstr "Se agrega {name} \"{object}”." + +msgid "Added." +msgstr "Agregado." + +msgid "and" +msgstr "y" + +#, python-brace-format +msgid "Changed {fields} for {name} “{object}”." +msgstr "Se modifican {fields} en {name} \"{object}”." + +#, python-brace-format +msgid "Changed {fields}." +msgstr "Modificación de {fields}." + +#, python-brace-format +msgid "Deleted {name} “{object}”." +msgstr "Se elimina {name} \"{object}”." + +msgid "No fields changed." +msgstr "No ha modificado ningún campo." + +msgid "None" +msgstr "Ninguno" + +msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." +msgstr "" +"Mantenga presionada \"Control” (\"Command” en una Mac) para seleccionar más " +"de uno." + +msgid "Select this object for an action - {}" +msgstr "Seleccione este objeto para una acción - {}" + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully." +msgstr "Se agregó con éxito {name} \"{obj}”." + +msgid "You may edit it again below." +msgstr "Puede modificarlo/a nuevamente mas abajo." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was added successfully. You may add another {name} below." +msgstr "" +"Se agregó con éxito {name} \"{obj}”. Puede agregar otro/a {name} abajo." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may edit it again below." +msgstr "" +"Se modificó con éxito {name} \"{obj}”. Puede modificarlo/a nuevamente abajo." + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully. You may edit it again below." +msgstr "Se agregó con éxito {name} \"{obj}”. Puede modificarlo/a abajo." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may add another {name} " +"below." +msgstr "" +"Se modificó con éxito {name} \"{obj}”. Puede agregar otro {name} abajo." + +#, python-brace-format +msgid "The {name} “{obj}” was changed successfully." +msgstr "Se modificó con éxito {name} \"{obj}”." + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" +"Deben existir ítems seleccionados para poder realizar acciones sobre los " +"mismos. No se modificó ningún ítem." + +msgid "No action selected." +msgstr "No se ha seleccionado ninguna acción." + +#, python-format +msgid "The %(name)s “%(obj)s” was deleted successfully." +msgstr "Se eliminó con éxito %(name)s \"%(obj)s”." + +#, python-format +msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" +msgstr "No existe %(name)s con ID \"%(key)s”. ¿Quizá fue eliminado/a?" + +#, python-format +msgid "Add %s" +msgstr "Agregar %s" + +#, python-format +msgid "Change %s" +msgstr "Modificar %s" + +#, python-format +msgid "View %s" +msgstr "Ver %s" + +msgid "Database error" +msgstr "Error de base de datos" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "Se ha modificado con éxito %(count)s %(name)s." +msgstr[1] "Se han modificado con éxito %(count)s %(name)s." +msgstr[2] "Se han modificado con éxito %(count)s %(name)s." + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "%(total_count)s seleccionados/as" +msgstr[1] "Todos/as (%(total_count)s en total) han sido seleccionados/as" +msgstr[2] "Todos/as (%(total_count)s en total) han sido seleccionados/as" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "0 de %(cnt)s seleccionados/as" + +#, python-format +msgid "Change history: %s" +msgstr "Historia de modificaciones: %s" + +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "%(class_name)s %(instance)s" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" +"La eliminación de %(class_name)s %(instance)s provocaría la eliminación de " +"los siguientes objetos relacionados protegidos: %(related_objects)s" + +msgid "Django site admin" +msgstr "Administración de sitio Django" + +msgid "Django administration" +msgstr "Administración de Django" + +msgid "Site administration" +msgstr "Administración de sitio" + +msgid "Log in" +msgstr "Identificarse" + +#, python-format +msgid "%(app)s administration" +msgstr "Administración de %(app)s" + +msgid "Page not found" +msgstr "Página no encontrada" + +msgid "We’re sorry, but the requested page could not be found." +msgstr "Lo lamentamos, no se encontró la página solicitada." + +msgid "Home" +msgstr "Inicio" + +msgid "Server error" +msgstr "Error del servidor" + +msgid "Server error (500)" +msgstr "Error del servidor (500)" + +msgid "Server Error (500)" +msgstr "Error de servidor (500)" + +msgid "" +"There’s been an error. It’s been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" +"Ha ocurrido un error. Se ha reportado el mismo a los administradores del " +"sitio vía email y debería ser solucionado en breve. Le agradecemos por su " +"paciencia." + +msgid "Run the selected action" +msgstr "Ejecutar la acción seleccionada" + +msgid "Go" +msgstr "Ejecutar" + +msgid "Click here to select the objects across all pages" +msgstr "Haga click aquí para seleccionar los objetos de todas las páginas" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "Seleccionar lo(s)/a(s) %(total_count)s %(module_name)s existentes" + +msgid "Clear selection" +msgstr "Borrar selección" + +msgid "Breadcrumbs" +msgstr "Breadcrumbs" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "Modelos en la aplicación %(name)s" + +msgid "Add" +msgstr "Agregar" + +msgid "View" +msgstr "Ver" + +msgid "You don’t have permission to view or edit anything." +msgstr "No tiene permiso para ver o modificar nada." + +msgid "" +"First, enter a username and password. Then, you’ll be able to edit more user " +"options." +msgstr "" +"Primero introduzca un nombre de usuario y una contraseña. Luego podrá " +"configurar opciones adicionales para el usuario." + +msgid "Enter a username and password." +msgstr "Introduzca un nombre de usuario y una contraseña." + +msgid "Change password" +msgstr "Cambiar contraseña" + +msgid "Please correct the error below." +msgid_plural "Please correct the errors below." +msgstr[0] "Por favor, corrija el siguiente error." +msgstr[1] "Por favor, corrija los siguientes errores." +msgstr[2] "Por favor, corrija los siguientes errores." + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "" +"Introduzca una nueva contraseña para el usuario %(username)s." + +msgid "Skip to main content" +msgstr "Ir al contenido principal" + +msgid "Welcome," +msgstr "Bienvenido/a," + +msgid "View site" +msgstr "Ver sitio" + +msgid "Documentation" +msgstr "Documentación" + +msgid "Log out" +msgstr "Cerrar sesión" + +#, python-format +msgid "Add %(name)s" +msgstr "Agregar %(name)s" + +msgid "History" +msgstr "Historia" + +msgid "View on site" +msgstr "Ver en el sitio" + +msgid "Filter" +msgstr "Filtrar" + +msgid "Hide counts" +msgstr "Ocultar recuentos" + +msgid "Show counts" +msgstr "Mostrar recuentos" + +msgid "Clear all filters" +msgstr "Limpiar todos los filtros" + +msgid "Remove from sorting" +msgstr "Remover de ordenamiento" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "Prioridad de ordenamiento: %(priority_number)s" + +msgid "Toggle sorting" +msgstr "Alternar ordenamiento" + +msgid "Toggle theme (current theme: auto)" +msgstr "Cambiar tema (tema actual: automático)" + +msgid "Toggle theme (current theme: light)" +msgstr "Cambiar tema (tema actual: claro)" + +msgid "Toggle theme (current theme: dark)" +msgstr "Cambiar tema (tema actual: oscuro)" + +msgid "Delete" +msgstr "Eliminar" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" +"Eliminar el %(object_name)s '%(escaped_object)s' provocaría la eliminación " +"de objetos relacionados, pero su cuenta no tiene permiso para eliminar los " +"siguientes tipos de objetos:" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" +"Eliminar los %(object_name)s '%(escaped_object)s' requeriría eliminar " +"también los siguientes objetos relacionados protegidos:" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" +"¿Está seguro de que desea eliminar los %(object_name)s " +"\"%(escaped_object)s\"? Se eliminarán los siguientes objetos relacionados:" + +msgid "Objects" +msgstr "Objectos" + +msgid "Yes, I’m sure" +msgstr "Si, estoy seguro" + +msgid "No, take me back" +msgstr "No, volver" + +msgid "Delete multiple objects" +msgstr "Eliminar múltiples objetos" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" +"Eliminar el/los objetos %(objects_name)s seleccionados provocaría la " +"eliminación de objetos relacionados a los mismos, pero su cuenta de usuario " +"no tiene los permisos necesarios para eliminar los siguientes tipos de " +"objetos:" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" +"Eliminar el/los objetos %(objects_name)s seleccionados requeriría eliminar " +"también los siguientes objetos relacionados protegidos:" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" +"¿Está seguro de que desea eliminar el/los objetos %(objects_name)s?. Todos " +"los siguientes objetos e ítems relacionados a los mismos también serán " +"eliminados:" + +msgid "Delete?" +msgstr "¿Eliminar?" + +#, python-format +msgid " By %(filter_title)s " +msgstr " Por %(filter_title)s " + +msgid "Summary" +msgstr "Resumen" + +msgid "Recent actions" +msgstr "Acciones recientes" + +msgid "My actions" +msgstr "Mis acciones" + +msgid "None available" +msgstr "Ninguna disponible" + +msgid "Added:" +msgstr "Agregado:" + +msgid "Changed:" +msgstr "Cambiado:" + +msgid "Deleted:" +msgstr "Eliminado:" + +msgid "Unknown content" +msgstr "Contenido desconocido" + +msgid "" +"Something’s wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" +"Hay algún problema con su instalación de base de datos. Asegúrese de que las " +"tablas de la misma hayan sido creadas, y asegúrese de que el usuario " +"apropiado tenga permisos de lectura en la base de datos." + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" +"Ud. se halla autenticado como %(username)s, pero no está autorizado a " +"acceder a esta página ¿Desea autenticarse con una cuenta diferente?" + +msgid "Forgotten your password or username?" +msgstr "¿Olvidó su contraseña o nombre de usuario?" + +msgid "Toggle navigation" +msgstr "Alternar navegación" + +msgid "Sidebar" +msgstr "Barra lateral" + +msgid "Start typing to filter…" +msgstr "Empiece a escribir para filtrar…" + +msgid "Filter navigation items" +msgstr "Filtrar elementos de navegación" + +msgid "Date/time" +msgstr "Fecha/hora" + +msgid "User" +msgstr "Usuario" + +msgid "Action" +msgstr "Acción" + +msgid "entry" +msgid_plural "entries" +msgstr[0] "entrada" +msgstr[1] "entradas" +msgstr[2] "entradas" + +msgid "" +"This object doesn’t have a change history. It probably wasn’t added via this " +"admin site." +msgstr "" +"Este objeto no tiene historia de modificaciones. Probablemente no fue " +"añadido usando este sitio de administración." + +msgid "Show all" +msgstr "Mostrar todos" + +msgid "Save" +msgstr "Guardar" + +msgid "Popup closing…" +msgstr "Cerrando ventana emergente…" + +msgid "Search" +msgstr "Buscar" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "%(counter)s resultado" +msgstr[1] "%(counter)s resultados" +msgstr[2] "%(counter)s resultados" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "total: %(full_result_count)s" + +msgid "Save as new" +msgstr "Guardar como nuevo" + +msgid "Save and add another" +msgstr "Guardar y agregar otro" + +msgid "Save and continue editing" +msgstr "Guardar y continuar editando" + +msgid "Save and view" +msgstr "Guardar y ver" + +msgid "Close" +msgstr "Cerrar" + +#, python-format +msgid "Change selected %(model)s" +msgstr "Modificar %(model)s seleccionados/as" + +#, python-format +msgid "Add another %(model)s" +msgstr "Agregar otro/a %(model)s" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "Eliminar %(model)s seleccionados/as" + +#, python-format +msgid "View selected %(model)s" +msgstr "Ver %(model)s seleccionado/a" + +msgid "Thanks for spending some quality time with the web site today." +msgstr "Gracias por el tiempo que ha dedicado al sitio web hoy." + +msgid "Log in again" +msgstr "Identificarse de nuevo" + +msgid "Password change" +msgstr "Cambio de contraseña" + +msgid "Your password was changed." +msgstr "Su contraseña ha sido cambiada." + +msgid "" +"Please enter your old password, for security’s sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" +"Por favor, por razones de seguridad, introduzca primero su contraseña " +"antigua y luego introduzca la nueva contraseña dos veces para verificar que " +"la ha escrito correctamente." + +msgid "Change my password" +msgstr "Cambiar mi contraseña" + +msgid "Password reset" +msgstr "Recuperar contraseña" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "Su contraseña ha sido cambiada. Ahora puede continuar e ingresar." + +msgid "Password reset confirmation" +msgstr "Confirmación de reincialización de contraseña" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" +"Por favor introduzca su nueva contraseña dos veces de manera que podamos " +"verificar que la ha escrito correctamente." + +msgid "New password:" +msgstr "Contraseña nueva:" + +msgid "Confirm password:" +msgstr "Confirme contraseña:" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"El enlace de reinicialización de contraseña es inválido, posiblemente debido " +"a que ya ha sido usado. Por favor solicite una nueva reinicialización de " +"contraseña." + +msgid "" +"We’ve emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" +"Se le han enviado instrucciones sobre cómo establecer su contraseña. Si la " +"dirección de email que proveyó existe, debería recibir las mismas pronto." + +msgid "" +"If you don’t receive an email, please make sure you’ve entered the address " +"you registered with, and check your spam folder." +msgstr "" +"Si no ha recibido un email, por favor asegúrese de que ha introducido la " +"dirección de correo con la que se había registrado y verifique su carpeta de " +"Correo no deseado." + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" +"Le enviamos este email porque Ud. ha solicitado que se reestablezca la " +"contraseña para su cuenta de usuario en %(site_name)s." + +msgid "Please go to the following page and choose a new password:" +msgstr "" +"Por favor visite la página que se muestra a continuación y elija una nueva " +"contraseña:" + +msgid "Your username, in case you’ve forgotten:" +msgstr "Su nombre de usuario en caso de que lo haya olvidado:" + +msgid "Thanks for using our site!" +msgstr "¡Gracias por usar nuestro sitio!" + +#, python-format +msgid "The %(site_name)s team" +msgstr "El equipo de %(site_name)s" + +msgid "" +"Forgotten your password? Enter your email address below, and we’ll email " +"instructions for setting a new one." +msgstr "" +"¿Olvidó su contraseña? Introduzca su dirección de email abajo y le " +"enviaremos instrucciones para establecer una nueva." + +msgid "Email address:" +msgstr "Dirección de email:" + +msgid "Reset my password" +msgstr "Recuperar mi contraseña" + +msgid "Select all objects on this page for an action" +msgstr "Seleccione todos los objetos de esta página para una acción" + +msgid "All dates" +msgstr "Todas las fechas" + +#, python-format +msgid "Select %s" +msgstr "Seleccione %s" + +#, python-format +msgid "Select %s to change" +msgstr "Seleccione %s a modificar" + +#, python-format +msgid "Select %s to view" +msgstr "Seleccione %s que desea ver" + +msgid "Date:" +msgstr "Fecha:" + +msgid "Time:" +msgstr "Hora:" + +msgid "Lookup" +msgstr "Buscar" + +msgid "Currently:" +msgstr "Actualmente:" + +msgid "Change:" +msgstr "Cambiar:" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/es_AR/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/es_AR/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..168ea55d65c2c77c3b499f6e210b677ed82b4e04 GIT binary patch literal 6647 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/es_AR/LC_MESSAGES/djangojs.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/es_AR/LC_MESSAGES/djangojs.po new file mode 100644 index 0000000000..3425126cfd --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/es_AR/LC_MESSAGES/djangojs.po @@ -0,0 +1,343 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Jannis Leidel , 2011 +# Ramiro Morales, 2014-2016,2020-2023 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-09-18 15:04-0300\n" +"PO-Revision-Date: 2023-12-04 07:59+0000\n" +"Last-Translator: Ramiro Morales, 2014-2016,2020-2023\n" +"Language-Team: Spanish (Argentina) (http://app.transifex.com/django/django/" +"language/es_AR/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: es_AR\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, javascript-format +msgid "Available %s" +msgstr "%s disponibles" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" +"Esta es la lista de %s disponibles. Puede elegir algunos/as seleccionándolos/" +"as en el cuadro de abajo y luego haciendo click en la flecha \"Seleccionar\" " +"ubicada entre las dos listas." + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "Escriba en esta caja para filtrar la lista de %s disponibles." + +msgid "Filter" +msgstr "Filtro" + +msgid "Choose all" +msgstr "Seleccionar todos/as" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "Haga click para seleccionar todos/as los/as %s." + +msgid "Choose" +msgstr "Seleccionar" + +msgid "Remove" +msgstr "Eliminar" + +#, javascript-format +msgid "Chosen %s" +msgstr "%s seleccionados/as" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" +"Esta es la lista de %s seleccionados. Puede deseleccionar algunos de ellos " +"activándolos en la lista de abajo y luego haciendo click en la flecha " +"\"Eliminar\" ubicada entre las dos listas." + +#, javascript-format +msgid "Type into this box to filter down the list of selected %s." +msgstr "Escriba en este cuadro para filtrar la lista de %s seleccionados/as." + +msgid "Remove all" +msgstr "Eliminar todos/as" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "Haga clic para deselecionar todos/as los/as %s." + +#, javascript-format +msgid "%s selected option not visible" +msgid_plural "%s selected options not visible" +msgstr[0] "%s opción seleccionada no visible" +msgstr[1] "%s opciones seleccionadas no visibles" +msgstr[2] "%s opciones seleccionadas no visibles" + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "%(sel)s de %(cnt)s seleccionado/a" +msgstr[1] "%(sel)s de %(cnt)s seleccionados/as" +msgstr[2] "%(sel)s de %(cnt)s seleccionados/as" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" +"Tiene modificaciones sin guardar en campos modificables individuales. Si " +"ejecuta una acción las mismas se perderán." + +msgid "" +"You have selected an action, but you haven’t saved your changes to " +"individual fields yet. Please click OK to save. You’ll need to re-run the " +"action." +msgstr "" +"Ha seleccionado una acción pero todavía no ha grabado sus cambios en campos " +"individuales. Por favor haga click en Ok para grabarlos. Luego necesitará re-" +"ejecutar la acción." + +msgid "" +"You have selected an action, and you haven’t made any changes on individual " +"fields. You’re probably looking for the Go button rather than the Save " +"button." +msgstr "" +"Ha seleccionado una acción y no ha realizado ninguna modificación de campos " +"individuales. Es probable que deba usar el botón 'Ir' y no el botón " +"'Grabar'." + +msgid "Now" +msgstr "Ahora" + +msgid "Midnight" +msgstr "Medianoche" + +msgid "6 a.m." +msgstr "6 AM" + +msgid "Noon" +msgstr "Mediodía" + +msgid "6 p.m." +msgstr "6 PM" + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "" +"Nota: Ud. se encuentra en una zona horaria que está %s hora adelantada " +"respecto a la del servidor." +msgstr[1] "" +"Nota: Ud. se encuentra en una zona horaria que está %s horas adelantada " +"respecto a la del servidor." +msgstr[2] "" +"Nota: Ud. se encuentra en una zona horaria que está %s horas adelantada " +"respecto a la del servidor." + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "" +"Nota: Ud. se encuentra en una zona horaria que está %s hora atrasada " +"respecto a la del servidor." +msgstr[1] "" +"Nota: Ud. se encuentra en una zona horaria que está %s horas atrasada " +"respecto a la del servidor." +msgstr[2] "" +"Nota: Ud. se encuentra en una zona horaria que está %s horas atrasada " +"respecto a la del servidor." + +msgid "Choose a Time" +msgstr "Seleccione una Hora" + +msgid "Choose a time" +msgstr "Elija una hora" + +msgid "Cancel" +msgstr "Cancelar" + +msgid "Today" +msgstr "Hoy" + +msgid "Choose a Date" +msgstr "Seleccione una Fecha" + +msgid "Yesterday" +msgstr "Ayer" + +msgid "Tomorrow" +msgstr "Mañana" + +msgid "January" +msgstr "enero" + +msgid "February" +msgstr "febrero" + +msgid "March" +msgstr "marzo" + +msgid "April" +msgstr "abril" + +msgid "May" +msgstr "mayo" + +msgid "June" +msgstr "junio" + +msgid "July" +msgstr "julio" + +msgid "August" +msgstr "agosto" + +msgid "September" +msgstr "setiembre" + +msgid "October" +msgstr "octubre" + +msgid "November" +msgstr "noviembre" + +msgid "December" +msgstr "diciembre" + +msgctxt "abbrev. month January" +msgid "Jan" +msgstr "Ene" + +msgctxt "abbrev. month February" +msgid "Feb" +msgstr "Feb" + +msgctxt "abbrev. month March" +msgid "Mar" +msgstr "Mar" + +msgctxt "abbrev. month April" +msgid "Apr" +msgstr "Abr" + +msgctxt "abbrev. month May" +msgid "May" +msgstr "May" + +msgctxt "abbrev. month June" +msgid "Jun" +msgstr "Jun" + +msgctxt "abbrev. month July" +msgid "Jul" +msgstr "Jul" + +msgctxt "abbrev. month August" +msgid "Aug" +msgstr "Ago" + +msgctxt "abbrev. month September" +msgid "Sep" +msgstr "Set" + +msgctxt "abbrev. month October" +msgid "Oct" +msgstr "Oct" + +msgctxt "abbrev. month November" +msgid "Nov" +msgstr "Nov" + +msgctxt "abbrev. month December" +msgid "Dec" +msgstr "Dic" + +msgid "Sunday" +msgstr "domingo" + +msgid "Monday" +msgstr "lunes" + +msgid "Tuesday" +msgstr "martes" + +msgid "Wednesday" +msgstr "miércoles" + +msgid "Thursday" +msgstr "jueves" + +msgid "Friday" +msgstr "viernes" + +msgid "Saturday" +msgstr "sábado" + +msgctxt "abbrev. day Sunday" +msgid "Sun" +msgstr "dom" + +msgctxt "abbrev. day Monday" +msgid "Mon" +msgstr "lun" + +msgctxt "abbrev. day Tuesday" +msgid "Tue" +msgstr "mar" + +msgctxt "abbrev. day Wednesday" +msgid "Wed" +msgstr "mié" + +msgctxt "abbrev. day Thursday" +msgid "Thur" +msgstr "jue" + +msgctxt "abbrev. day Friday" +msgid "Fri" +msgstr "vie" + +msgctxt "abbrev. day Saturday" +msgid "Sat" +msgstr "sáb" + +msgctxt "one letter Sunday" +msgid "S" +msgstr "D" + +msgctxt "one letter Monday" +msgid "M" +msgstr "L" + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "M" + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "M" + +msgctxt "one letter Thursday" +msgid "T" +msgstr "J" + +msgctxt "one letter Friday" +msgid "F" +msgstr "V" + +msgctxt "one letter Saturday" +msgid "S" +msgstr "S" + +msgid "Show" +msgstr "Mostrar" + +msgid "Hide" +msgstr "Ocultar" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/es_CO/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/es_CO/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..f806074309e28c3c5941ca8f446be4a56f18652e GIT binary patch literal 15156 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, 2014 +# Axel Díaz , 2015 +# Claude Paroz , 2014 +# Ernesto Avilés Vázquez , 2015 +# franchukelly , 2011 +# guillem , 2012 +# Igor Támara , 2013 +# Jannis Leidel , 2011 +# Josue Naaman Nistal Guerra , 2014 +# Marc Garcia , 2011 +# Pablo, 2015 +# Veronicabh , 2015 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-01-19 16:49+0100\n" +"PO-Revision-Date: 2017-09-19 19:11+0000\n" +"Last-Translator: Jannis Leidel \n" +"Language-Team: Spanish (Colombia) (http://www.transifex.com/django/django/" +"language/es_CO/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: es_CO\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "Eliminado/s %(count)d %(items)s satisfactoriamente." + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "No se puede eliminar %(name)s" + +msgid "Are you sure?" +msgstr "¿Está seguro?" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "Eliminar %(verbose_name_plural)s seleccionado/s" + +msgid "Administration" +msgstr "Administración" + +msgid "All" +msgstr "Todo" + +msgid "Yes" +msgstr "Sí" + +msgid "No" +msgstr "No" + +msgid "Unknown" +msgstr "Desconocido" + +msgid "Any date" +msgstr "Cualquier fecha" + +msgid "Today" +msgstr "Hoy" + +msgid "Past 7 days" +msgstr "Últimos 7 días" + +msgid "This month" +msgstr "Este mes" + +msgid "This year" +msgstr "Este año" + +msgid "No date" +msgstr "" + +msgid "Has date" +msgstr "" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" +"Por favor ingrese el %(username)s y la clave correctos para obtener cuenta " +"de personal. Observe que ambos campos pueden ser sensibles a mayúsculas." + +msgid "Action:" +msgstr "Acción:" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "Agregar %(verbose_name)s adicional." + +msgid "Remove" +msgstr "Eliminar" + +msgid "action time" +msgstr "hora de la acción" + +msgid "user" +msgstr "usuario" + +msgid "content type" +msgstr "tipo de contenido" + +msgid "object id" +msgstr "id del objeto" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/3/library/functions.html#repr) +msgid "object repr" +msgstr "repr del objeto" + +msgid "action flag" +msgstr "marca de acción" + +msgid "change message" +msgstr "mensaje de cambio" + +msgid "log entry" +msgstr "entrada de registro" + +msgid "log entries" +msgstr "entradas de registro" + +#, python-format +msgid "Added \"%(object)s\"." +msgstr "Añadidos \"%(object)s\"." + +#, python-format +msgid "Changed \"%(object)s\" - %(changes)s" +msgstr "Cambiados \"%(object)s\" - %(changes)s" + +#, python-format +msgid "Deleted \"%(object)s.\"" +msgstr "Eliminado/a \"%(object)s.\"" + +msgid "LogEntry Object" +msgstr "Objeto de registro de Log" + +#, python-brace-format +msgid "Added {name} \"{object}\"." +msgstr "" + +msgid "Added." +msgstr "Añadido." + +msgid "and" +msgstr "y" + +#, python-brace-format +msgid "Changed {fields} for {name} \"{object}\"." +msgstr "" + +#, python-brace-format +msgid "Changed {fields}." +msgstr "" + +#, python-brace-format +msgid "Deleted {name} \"{object}\"." +msgstr "" + +msgid "No fields changed." +msgstr "No ha cambiado ningún campo." + +msgid "None" +msgstr "Ninguno" + +msgid "" +"Hold down \"Control\", or \"Command\" on a Mac, to select more than one." +msgstr "" +"Mantenga presionado \"Control\" o \"Command\" en un Mac, para seleccionar " +"más de una opción." + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was added successfully. You may edit it again below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was added successfully. You may add another {name} " +"below." +msgstr "" + +#, python-brace-format +msgid "The {name} \"{obj}\" was added successfully." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was changed successfully. You may edit it again below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was changed successfully. You may add another {name} " +"below." +msgstr "" + +#, python-brace-format +msgid "The {name} \"{obj}\" was changed successfully." +msgstr "" + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" +"Se deben seleccionar elementos para poder realizar acciones sobre estos. No " +"se han modificado elementos." + +msgid "No action selected." +msgstr "No se seleccionó ninguna acción." + +#, python-format +msgid "The %(name)s \"%(obj)s\" was deleted successfully." +msgstr "Se eliminó con éxito el %(name)s \"%(obj)s\"." + +#, python-format +msgid "%(name)s with ID \"%(key)s\" doesn't exist. Perhaps it was deleted?" +msgstr "" + +#, python-format +msgid "Add %s" +msgstr "Añadir %s" + +#, python-format +msgid "Change %s" +msgstr "Modificar %s" + +msgid "Database error" +msgstr "Error en la base de datos" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "%(count)s %(name)s fué modificado con éxito." +msgstr[1] "%(count)s %(name)s fueron modificados con éxito." + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "%(total_count)s seleccionado" +msgstr[1] "%(total_count)s seleccionados en total" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "seleccionados 0 de %(cnt)s" + +#, python-format +msgid "Change history: %s" +msgstr "Histórico de modificaciones: %s" + +#. Translators: Model verbose name and instance representation, +#. suitable to be an item in a list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "%(class_name)s %(instance)s" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" +"La eliminación de %(class_name)s %(instance)s requeriría eliminar los " +"siguientes objetos relacionados protegidos: %(related_objects)s" + +msgid "Django site admin" +msgstr "Sitio de administración de Django" + +msgid "Django administration" +msgstr "Administración de Django" + +msgid "Site administration" +msgstr "Sitio administrativo" + +msgid "Log in" +msgstr "Iniciar sesión" + +#, python-format +msgid "%(app)s administration" +msgstr "Administración de %(app)s " + +msgid "Page not found" +msgstr "Página no encontrada" + +msgid "We're sorry, but the requested page could not be found." +msgstr "Lo sentimos, pero no se encuentra la página solicitada." + +msgid "Home" +msgstr "Inicio" + +msgid "Server error" +msgstr "Error del servidor" + +msgid "Server error (500)" +msgstr "Error del servidor (500)" + +msgid "Server Error (500)" +msgstr "Error de servidor (500)" + +msgid "" +"There's been an error. It's been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" +"Ha habido un error. Ha sido comunicado al administrador del sitio por correo " +"electrónico y debería solucionarse a la mayor brevedad. Gracias por su " +"paciencia y comprensión." + +msgid "Run the selected action" +msgstr "Ejecutar la acción seleccionada" + +msgid "Go" +msgstr "Ir" + +msgid "Click here to select the objects across all pages" +msgstr "Pulse aquí para seleccionar los objetos a través de todas las páginas" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "Seleccionar todos los %(total_count)s %(module_name)s" + +msgid "Clear selection" +msgstr "Limpiar selección" + +msgid "" +"First, enter a username and password. Then, you'll be able to edit more user " +"options." +msgstr "" +"Primero introduzca un nombre de usuario y una contraseña. Luego podrá editar " +"el resto de opciones del usuario." + +msgid "Enter a username and password." +msgstr "Ingrese un nombre de usuario y contraseña" + +msgid "Change password" +msgstr "Cambiar contraseña" + +msgid "Please correct the error below." +msgstr "Por favor, corrija los siguientes errores." + +msgid "Please correct the errors below." +msgstr "Por favor, corrija los siguientes errores." + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "" +"Ingrese una nueva contraseña para el usuario %(username)s." + +msgid "Welcome," +msgstr "Bienvenido/a," + +msgid "View site" +msgstr "Ver el sitio" + +msgid "Documentation" +msgstr "Documentación" + +msgid "Log out" +msgstr "Terminar sesión" + +#, python-format +msgid "Add %(name)s" +msgstr "Añadir %(name)s" + +msgid "History" +msgstr "Histórico" + +msgid "View on site" +msgstr "Ver en el sitio" + +msgid "Filter" +msgstr "Filtro" + +msgid "Remove from sorting" +msgstr "Elimina de la ordenación" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "Prioridad de la ordenación: %(priority_number)s" + +msgid "Toggle sorting" +msgstr "Activar la ordenación" + +msgid "Delete" +msgstr "Eliminar" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" +"Eliminar el %(object_name)s '%(escaped_object)s' provocaría la eliminación " +"de objetos relacionados, pero su cuenta no tiene permiso para borrar los " +"siguientes tipos de objetos:" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" +"La eliminación de %(object_name)s %(escaped_object)s requeriría eliminar los " +"siguientes objetos relacionados protegidos:" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" +"¿Está seguro de que quiere borrar los %(object_name)s \"%(escaped_object)s" +"\"? Se borrarán los siguientes objetos relacionados:" + +msgid "Objects" +msgstr "Objetos" + +msgid "Yes, I'm sure" +msgstr "Sí, estoy seguro" + +msgid "No, take me back" +msgstr "No, llévame atrás" + +msgid "Delete multiple objects" +msgstr "Eliminar múltiples objetos." + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" +"La eliminación del %(objects_name)s seleccionado resultaría en el borrado de " +"objetos relacionados, pero su cuenta no tiene permisos para borrar los " +"siguientes tipos de objetos:" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" +"La eliminación de %(objects_name)s seleccionado requeriría el borrado de los " +"siguientes objetos protegidos relacionados:" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" +"¿Está usted seguro que quiere eliminar el %(objects_name)s seleccionado? " +"Todos los siguientes objetos y sus elementos relacionados serán borrados:" + +msgid "Change" +msgstr "Modificar" + +msgid "Delete?" +msgstr "¿Eliminar?" + +#, python-format +msgid " By %(filter_title)s " +msgstr " Por %(filter_title)s " + +msgid "Summary" +msgstr "Resumen" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "Modelos en la aplicación %(name)s" + +msgid "Add" +msgstr "Añadir" + +msgid "You don't have permission to edit anything." +msgstr "No tiene permiso para editar nada." + +msgid "Recent actions" +msgstr "" + +msgid "My actions" +msgstr "" + +msgid "None available" +msgstr "Ninguno disponible" + +msgid "Unknown content" +msgstr "Contenido desconocido" + +msgid "" +"Something's wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" +"Algo va mal con la instalación de la base de datos. Asegúrese de que las " +"tablas necesarias han sido creadas, y de que la base de datos puede ser " +"leída por el usuario apropiado." + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" +"Se ha autenticado como %(username)s, pero no está autorizado a acceder a " +"esta página. ¿Desea autenticarse con una cuenta diferente?" + +msgid "Forgotten your password or username?" +msgstr "¿Ha olvidado la contraseña o el nombre de usuario?" + +msgid "Date/time" +msgstr "Fecha/hora" + +msgid "User" +msgstr "Usuario" + +msgid "Action" +msgstr "Acción" + +msgid "" +"This object doesn't have a change history. It probably wasn't added via this " +"admin site." +msgstr "" +"Este objeto no tiene histórico de cambios. Probablemente no fue añadido " +"usando este sitio de administración." + +msgid "Show all" +msgstr "Mostrar todo" + +msgid "Save" +msgstr "Grabar" + +msgid "Popup closing..." +msgstr "" + +#, python-format +msgid "Change selected %(model)s" +msgstr "Cambiar %(model)s seleccionado" + +#, python-format +msgid "Add another %(model)s" +msgstr "Añadir otro %(model)s" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "Eliminar %(model)s seleccionada/o" + +msgid "Search" +msgstr "Buscar" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "%(counter)s resultado" +msgstr[1] "%(counter)s resultados" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "%(full_result_count)s total" + +msgid "Save as new" +msgstr "Grabar como nuevo" + +msgid "Save and add another" +msgstr "Grabar y añadir otro" + +msgid "Save and continue editing" +msgstr "Grabar y continuar editando" + +msgid "Thanks for spending some quality time with the Web site today." +msgstr "Gracias por el tiempo que ha dedicado hoy al sitio web." + +msgid "Log in again" +msgstr "Iniciar sesión de nuevo" + +msgid "Password change" +msgstr "Cambio de contraseña" + +msgid "Your password was changed." +msgstr "Su contraseña ha sido cambiada." + +msgid "" +"Please enter your old password, for security's sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" +"Por favor, ingrese su contraseña antigua, por seguridad, y después " +"introduzca la nueva contraseña dos veces para verificar que la ha escrito " +"correctamente." + +msgid "Change my password" +msgstr "Cambiar mi contraseña" + +msgid "Password reset" +msgstr "Restablecer contraseña" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "" +"Su contraseña ha sido establecida. Ahora puede seguir adelante e iniciar " +"sesión." + +msgid "Password reset confirmation" +msgstr "Confirmación de restablecimiento de contraseña" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" +"Por favor, ingrese su contraseña nueva dos veces para verificar que la ha " +"escrito correctamente." + +msgid "New password:" +msgstr "Contraseña nueva:" + +msgid "Confirm password:" +msgstr "Confirme contraseña:" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"El enlace de restablecimiento de contraseña era inválido, seguramente porque " +"se haya usado antes. Por favor, solicite un nuevo restablecimiento de " +"contraseña." + +msgid "" +"We've emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" +"Le hemos enviado por email las instrucciones para restablecer la contraseña, " +"si es que existe una cuenta con la dirección electrónica que indicó. Debería " +"recibirlas en breve." + +msgid "" +"If you don't receive an email, please make sure you've entered the address " +"you registered with, and check your spam folder." +msgstr "" +"Si no recibe un correo, por favor asegúrese de que ha introducido la " +"dirección de correo con la que se registró y verifique su carpeta de spam." + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" +"Ha recibido este correo electrónico porque ha solicitado restablecer la " +"contraseña para su cuenta en %(site_name)s." + +msgid "Please go to the following page and choose a new password:" +msgstr "Por favor, vaya a la página siguiente y escoja una nueva contraseña." + +msgid "Your username, in case you've forgotten:" +msgstr "Su nombre de usuario, en caso de haberlo olvidado:" + +msgid "Thanks for using our site!" +msgstr "¡Gracias por usar nuestro sitio!" + +#, python-format +msgid "The %(site_name)s team" +msgstr "El equipo de %(site_name)s" + +msgid "" +"Forgotten your password? Enter your email address below, and we'll email " +"instructions for setting a new one." +msgstr "" +"¿Ha olvidado su clave? Ingrese su dirección de correo electrónico a " +"continuación y le enviaremos las instrucciones para establecer una nueva." + +msgid "Email address:" +msgstr "Correo electrónico:" + +msgid "Reset my password" +msgstr "Restablecer mi contraseña" + +msgid "All dates" +msgstr "Todas las fechas" + +#, python-format +msgid "Select %s" +msgstr "Escoja %s" + +#, python-format +msgid "Select %s to change" +msgstr "Escoja %s a modificar" + +msgid "Date:" +msgstr "Fecha:" + +msgid "Time:" +msgstr "Hora:" + +msgid "Lookup" +msgstr "Buscar" + +msgid "Currently:" +msgstr "Actualmente:" + +msgid "Change:" +msgstr "Cambiar:" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/es_CO/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/es_CO/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..3d428a045b0f62ef970e57827873c5afbee80bb1 GIT binary patch literal 3895 zcmb_eTZMvvro;|# z4*dam3Gij$oxoRscLP5Jvj3C7^MOAAF9!ZpwtodagZ7`mCa?h`Jc>7gJnkJJ`~Lul zpZExWuLC~?z6xBqKnVQAkN9K1zW{dw{{S+dZE*57unOdH-vS4~=PnZBI5as4+>7>6 z81sBzl=wC93belgvfm%d{$GGsqWxR>{;v`*1j(z=e?9P0;N8F_;1X~FsDSMMH6Z(Y z3y7b1AAfKmP5@s5ehwT1?}HOw*T+D%{|v}{z5;@>_zrj+_&x9h@FfI|b=!d;@%t+9 zA>b|`>ox?w3w#myKJaEZI|lp`2pPm3xCuAUaWigC6OQ9exUa{}9Qooo_<|d8LwqXu zm5(uZKq+24FJCtnAg%`TnplU~>vlA*!+i~I*5nr4oU^d-6#qKzLdJ^e3**g%8 zWIJeU7NUOR(!ksks4r9Gso^+C(^c4e1`JX?)M+j=%&oH2M{VvwMh={9VP}mgvo?y~ zu}DX#{1`;eL%?7s(dJG}%5T<~N%5|7W@<2^S!y05Q|@sa-SfBRJHO{b};FavpK1Q+fpQ+quJPU|mR7eOIT+BYD>+OcS_tqDecGQ+?H5ev`)ljp~sok!m_CT^!quRao+TxBHuDJu! zhotGG@tF+P)#-6*3{viZ!l9JWgJ6T^!&z)rwCUJ~FvfIq*;PqX$$p*I1`;Mcns3<5 z_FGzRr}AtUEkNq3}VyoS=vp-9B@s7SMg3FrBv z+7GPJC{B~oB%N5!R97?TBa(6>siUySnRd^*e>B&)Fh(Xw>(qJy@909_;CV%MW!wui zkWLl{LA1rjWMfW5E-zRa&o@-ZFyz?G2$ku+Hu5y{4gXxhoE6KyZB442SjFa$#Hk3W`EpfLu7&S^ zVY_0-VpXnxA`Lc-Z#&(B$cEDowIP?Ov&D|!nu;i#L4C1zjKp4<-8@i{cZ, 2015 +# Jannis Leidel , 2011 +# Josue Naaman Nistal Guerra , 2014 +# Leonardo J. Caballero G. , 2011 +# Veronicabh , 2015 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-05-17 23:12+0200\n" +"PO-Revision-Date: 2017-09-20 03:01+0000\n" +"Last-Translator: Jannis Leidel \n" +"Language-Team: Spanish (Colombia) (http://www.transifex.com/django/django/" +"language/es_CO/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: es_CO\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, javascript-format +msgid "Available %s" +msgstr "%s Disponibles" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" +"Esta es la lista de %s disponibles. Puede elegir algunos seleccionándolos en " +"la caja inferior y luego haciendo clic en la flecha \"Elegir\" que hay entre " +"las dos cajas." + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "Escriba en este cuadro para filtrar la lista de %s disponibles" + +msgid "Filter" +msgstr "Filtro" + +msgid "Choose all" +msgstr "Selecciona todos" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "Haga clic para seleccionar todos los %s de una vez" + +msgid "Choose" +msgstr "Elegir" + +msgid "Remove" +msgstr "Eliminar" + +#, javascript-format +msgid "Chosen %s" +msgstr "%s elegidos" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" +"Esta es la lista de los %s elegidos. Puede eliminar algunos seleccionándolos " +"en la caja inferior y luego haciendo click en la flecha \"Eliminar\" que hay " +"entre las dos cajas." + +msgid "Remove all" +msgstr "Eliminar todos" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "Haz clic para eliminar todos los %s elegidos" + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "%(sel)s de %(cnt)s seleccionado" +msgstr[1] "%(sel)s de %(cnt)s seleccionados" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" +"Tiene cambios sin guardar en campos editables individuales. Si ejecuta una " +"acción, los cambios no guardados se perderán." + +msgid "" +"You have selected an action, but you haven't saved your changes to " +"individual fields yet. Please click OK to save. You'll need to re-run the " +"action." +msgstr "" +"Ha seleccionado una acción, pero no ha guardado los cambios en los campos " +"individuales todavía. Pulse OK para guardar. Tendrá que volver a ejecutar la " +"acción." + +msgid "" +"You have selected an action, and you haven't made any changes on individual " +"fields. You're probably looking for the Go button rather than the Save " +"button." +msgstr "" +"Ha seleccionado una acción y no ha hecho ningún cambio en campos " +"individuales. Probablemente esté buscando el botón Ejecutar en lugar del " +"botón Guardar." + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "Nota: Usted esta a %s horas por delante de la hora del servidor." +msgstr[1] "Nota: Usted va %s horas por delante de la hora del servidor." + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "Nota: Usted esta a %s hora de retraso de tiempo de servidor." +msgstr[1] "Nota: Usted va %s horas por detrás de la hora del servidor." + +msgid "Now" +msgstr "Ahora" + +msgid "Choose a Time" +msgstr "Elija una hora" + +msgid "Choose a time" +msgstr "Elija una hora" + +msgid "Midnight" +msgstr "Medianoche" + +msgid "6 a.m." +msgstr "6 a.m." + +msgid "Noon" +msgstr "Mediodía" + +msgid "6 p.m." +msgstr "6 p.m." + +msgid "Cancel" +msgstr "Cancelar" + +msgid "Today" +msgstr "Hoy" + +msgid "Choose a Date" +msgstr "Elija una fecha" + +msgid "Yesterday" +msgstr "Ayer" + +msgid "Tomorrow" +msgstr "Mañana" + +msgid "January" +msgstr "" + +msgid "February" +msgstr "" + +msgid "March" +msgstr "" + +msgid "April" +msgstr "" + +msgid "May" +msgstr "" + +msgid "June" +msgstr "" + +msgid "July" +msgstr "" + +msgid "August" +msgstr "" + +msgid "September" +msgstr "" + +msgid "October" +msgstr "" + +msgid "November" +msgstr "" + +msgid "December" +msgstr "" + +msgctxt "one letter Sunday" +msgid "S" +msgstr "" + +msgctxt "one letter Monday" +msgid "M" +msgstr "" + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "" + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "" + +msgctxt "one letter Thursday" +msgid "T" +msgstr "" + +msgctxt "one letter Friday" +msgid "F" +msgstr "" + +msgctxt "one letter Saturday" +msgid "S" +msgstr "" + +msgid "Show" +msgstr "Mostrar" + +msgid "Hide" +msgstr "Esconder" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/es_MX/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/es_MX/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..8b88505d9e18577c7cddcb0ba4508ee383f84a85 GIT binary patch literal 11517 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, 2015 +# Gustavo Jimenez , 2020 +# Jesús Bautista , 2020 +# José Rosso, 2022 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2022-05-17 05:10-0500\n" +"PO-Revision-Date: 2022-07-25 07:05+0000\n" +"Last-Translator: José Rosso\n" +"Language-Team: Spanish (Mexico) (http://www.transifex.com/django/django/" +"language/es_MX/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: es_MX\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "Eliminar %(verbose_name_plural)s seleccionados/as" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "Se eliminaron con éxito %(count)d %(items)s." + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "No se puede eliminar %(name)s " + +msgid "Are you sure?" +msgstr "¿Está seguro?" + +msgid "Administration" +msgstr "Administración" + +msgid "All" +msgstr "Todos/as" + +msgid "Yes" +msgstr "Sí" + +msgid "No" +msgstr "No" + +msgid "Unknown" +msgstr "Desconocido" + +msgid "Any date" +msgstr "Cualquier fecha" + +msgid "Today" +msgstr "Hoy" + +msgid "Past 7 days" +msgstr "Últimos 7 días" + +msgid "This month" +msgstr "Este mes" + +msgid "This year" +msgstr "Este año" + +msgid "No date" +msgstr "Sin fecha" + +msgid "Has date" +msgstr "Tiene fecha" + +msgid "Empty" +msgstr "Vacío" + +msgid "Not empty" +msgstr "" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" +"Por favor introduza %(username)s y contraseña correctos de una cuenta de " +"staff. Note que puede que ambos campos sean estrictos en relación a " +"diferencias entre mayúsculas y minúsculas." + +msgid "Action:" +msgstr "Acción:" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "Agregar otro/a %(verbose_name)s" + +msgid "Remove" +msgstr "Eliminar" + +msgid "Addition" +msgstr "Adición" + +msgid "Change" +msgstr "Modificar" + +msgid "Deletion" +msgstr "Eliminación" + +msgid "action time" +msgstr "hora de la acción" + +msgid "user" +msgstr "usuario" + +msgid "content type" +msgstr "tipo de contenido" + +msgid "object id" +msgstr "id de objeto" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/library/functions.html#repr) +msgid "object repr" +msgstr "repr de objeto" + +msgid "action flag" +msgstr "marca de acción" + +msgid "change message" +msgstr "mensaje de cambio" + +msgid "log entry" +msgstr "entrada de registro" + +msgid "log entries" +msgstr "entradas de registro" + +#, python-format +msgid "Added “%(object)s”." +msgstr "" + +#, python-format +msgid "Changed “%(object)s” — %(changes)s" +msgstr "" + +#, python-format +msgid "Deleted “%(object)s.”" +msgstr "" + +msgid "LogEntry Object" +msgstr "Objeto de registro de Log" + +#, python-brace-format +msgid "Added {name} “{object}”." +msgstr "" + +msgid "Added." +msgstr "Agregado." + +msgid "and" +msgstr "y" + +#, python-brace-format +msgid "Changed {fields} for {name} “{object}”." +msgstr "" + +#, python-brace-format +msgid "Changed {fields}." +msgstr "" + +#, python-brace-format +msgid "Deleted {name} “{object}”." +msgstr "" + +msgid "No fields changed." +msgstr "No ha modificado ningún campo." + +msgid "None" +msgstr "Ninguno" + +msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." +msgstr "" + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully." +msgstr "El {name} \"{obj}\" se agregó correctamente." + +msgid "You may edit it again below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} “{obj}” was added successfully. You may add another {name} below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may edit it again below." +msgstr "" + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully. You may edit it again below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may add another {name} " +"below." +msgstr "" + +#, python-brace-format +msgid "The {name} “{obj}” was changed successfully." +msgstr "" + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" +"Deben existir items seleccionados para poder realizar acciones sobre los " +"mismos. No se modificó ningún item." + +msgid "No action selected." +msgstr "No se ha seleccionado ninguna acción." + +#, python-format +msgid "The %(name)s “%(obj)s” was deleted successfully." +msgstr "" + +#, python-format +msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" +msgstr "" + +#, python-format +msgid "Add %s" +msgstr "Agregar %s" + +#, python-format +msgid "Change %s" +msgstr "Modificar %s" + +#, python-format +msgid "View %s" +msgstr "" + +msgid "Database error" +msgstr "Error en la base de datos" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "Se ha modificado con éxito %(count)s %(name)s." +msgstr[1] "Se han modificado con éxito %(count)s %(name)s." + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "%(total_count)s seleccionados/as" +msgstr[1] "Todos/as (%(total_count)s en total) han sido seleccionados/as" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "0 de %(cnt)s seleccionados/as" + +#, python-format +msgid "Change history: %s" +msgstr "Historia de modificaciones: %s" + +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "%(class_name)s %(instance)s" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" +"La eliminación de %(class_name)s %(instance)s provocaría la eliminación de " +"los siguientes objetos relacionados protegidos: %(related_objects)s" + +msgid "Django site admin" +msgstr "Sitio de administración de Django" + +msgid "Django administration" +msgstr "Administración de Django" + +msgid "Site administration" +msgstr "Administración del sitio" + +msgid "Log in" +msgstr "Identificarse" + +#, python-format +msgid "%(app)s administration" +msgstr "Administración de %(app)s " + +msgid "Page not found" +msgstr "Página no encontrada" + +msgid "We’re sorry, but the requested page could not be found." +msgstr "" + +msgid "Home" +msgstr "Inicio" + +msgid "Server error" +msgstr "Error del servidor" + +msgid "Server error (500)" +msgstr "Error del servidor (500)" + +msgid "Server Error (500)" +msgstr "Error de servidor (500)" + +msgid "" +"There’s been an error. It’s been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" + +msgid "Run the selected action" +msgstr "Ejecutar la acción seleccionada" + +msgid "Go" +msgstr "Ejecutar" + +msgid "Click here to select the objects across all pages" +msgstr "Haga click aquí para seleccionar los objetos de todas las páginas" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "Seleccionar lo(s)/a(s) %(total_count)s de %(module_name)s" + +msgid "Clear selection" +msgstr "Borrar selección" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "Modelos en la aplicación %(name)s" + +msgid "Add" +msgstr "Agregar" + +msgid "View" +msgstr "Vista" + +msgid "You don’t have permission to view or edit anything." +msgstr "" + +msgid "" +"First, enter a username and password. Then, you’ll be able to edit more user " +"options." +msgstr "" + +msgid "Enter a username and password." +msgstr "Introduzca un nombre de usuario y una contraseña." + +msgid "Change password" +msgstr "Cambiar contraseña" + +msgid "Please correct the error below." +msgstr "" + +msgid "Please correct the errors below." +msgstr "Por favor, corrija los siguientes errores." + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "" +"Introduzca una nueva contraseña para el usuario %(username)s." + +msgid "Welcome," +msgstr "Bienvenido," + +msgid "View site" +msgstr "Ver sitio" + +msgid "Documentation" +msgstr "Documentación" + +msgid "Log out" +msgstr "Cerrar sesión" + +#, python-format +msgid "Add %(name)s" +msgstr "Agregar %(name)s" + +msgid "History" +msgstr "Historia" + +msgid "View on site" +msgstr "Ver en el sitio" + +msgid "Filter" +msgstr "Filtrar" + +msgid "Clear all filters" +msgstr "" + +msgid "Remove from sorting" +msgstr "Elimina de la clasificación" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "Prioridad de la clasificación: %(priority_number)s" + +msgid "Toggle sorting" +msgstr "Activar la clasificación" + +msgid "Delete" +msgstr "Eliminar" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" +"Eliminar el %(object_name)s '%(escaped_object)s' provocaría la eliminación " +"de objetos relacionados, pero su cuenta no tiene permiso para eliminar los " +"siguientes tipos de objetos:" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" +"Para eliminar %(object_name)s '%(escaped_object)s' requiere eliminar los " +"siguientes objetos relacionados protegidos:" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" +"¿Está seguro de que quiere eliminar los %(object_name)s \"%(escaped_object)s" +"\"? Se eliminarán los siguientes objetos relacionados:" + +msgid "Objects" +msgstr "Objetos" + +msgid "Yes, I’m sure" +msgstr "" + +msgid "No, take me back" +msgstr "" + +msgid "Delete multiple objects" +msgstr "Eliminar múltiples objetos" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" +"Para eliminar %(objects_name)s requiere eliminar los objetos relacionado, " +"pero tu cuenta no tiene permisos para eliminar los siguientes tipos de " +"objetos:" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" +"Eliminar el seleccionado %(objects_name)s requiere eliminar los siguientes " +"objetos relacionados protegidas:" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" +"¿Está seguro que desea eliminar el seleccionado %(objects_name)s ? Todos los " +"objetos siguientes y sus elementos asociados serán eliminados:" + +msgid "Delete?" +msgstr "Eliminar?" + +#, python-format +msgid " By %(filter_title)s " +msgstr "Por %(filter_title)s" + +msgid "Summary" +msgstr "Resúmen" + +msgid "Recent actions" +msgstr "" + +msgid "My actions" +msgstr "Mis acciones" + +msgid "None available" +msgstr "Ninguna disponible" + +msgid "Unknown content" +msgstr "Contenido desconocido" + +msgid "" +"Something’s wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" + +msgid "Forgotten your password or username?" +msgstr "¿Ha olvidado su contraseña o nombre de usuario?" + +msgid "Toggle navigation" +msgstr "" + +msgid "Start typing to filter…" +msgstr "" + +msgid "Filter navigation items" +msgstr "" + +msgid "Date/time" +msgstr "Fecha/hora" + +msgid "User" +msgstr "Usuario" + +msgid "Action" +msgstr "Acción" + +msgid "entry" +msgstr "" + +msgid "entries" +msgstr "" + +msgid "" +"This object doesn’t have a change history. It probably wasn’t added via this " +"admin site." +msgstr "" + +msgid "Show all" +msgstr "Mostrar todos/as" + +msgid "Save" +msgstr "Guardar" + +msgid "Popup closing…" +msgstr "" + +msgid "Search" +msgstr "Buscar" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "%(counter)s results" +msgstr[1] "%(counter)s resultados" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "total: %(full_result_count)s" + +msgid "Save as new" +msgstr "Guardar como nuevo" + +msgid "Save and add another" +msgstr "Guardar y agregar otro" + +msgid "Save and continue editing" +msgstr "Guardar y continuar editando" + +msgid "Save and view" +msgstr "" + +msgid "Close" +msgstr "Cerrar" + +#, python-format +msgid "Change selected %(model)s" +msgstr "" + +#, python-format +msgid "Add another %(model)s" +msgstr "" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "" + +#, python-format +msgid "View selected %(model)s" +msgstr "" + +msgid "Thanks for spending some quality time with the web site today." +msgstr "" + +msgid "Log in again" +msgstr "Identificarse de nuevo" + +msgid "Password change" +msgstr "Cambio de contraseña" + +msgid "Your password was changed." +msgstr "Su contraseña ha sido cambiada." + +msgid "" +"Please enter your old password, for security’s sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" + +msgid "Change my password" +msgstr "Cambiar mi contraseña" + +msgid "Password reset" +msgstr "Recuperar contraseña" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "Se le ha enviado su contraseña. Ahora puede continuar e ingresar." + +msgid "Password reset confirmation" +msgstr "Confirmación de reincialización de contraseña" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" +"Por favor introduzca su nueva contraseña dos veces de manera que podamos " +"verificar que la ha escrito correctamente." + +msgid "New password:" +msgstr "Nueva contraseña:" + +msgid "Confirm password:" +msgstr "Confirme contraseña:" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"El enlace de reinicialización de contraseña es inválido, posiblemente debido " +"a que ya ha sido usado. Por favor solicite una nueva reinicialización de " +"contraseña." + +msgid "" +"We’ve emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" + +msgid "" +"If you don’t receive an email, please make sure you’ve entered the address " +"you registered with, and check your spam folder." +msgstr "" + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" +"Usted está recibiendo este correo electrónico porque ha solicitado un " +"restablecimiento de contraseña para la cuenta de usuario en %(site_name)s." + +msgid "Please go to the following page and choose a new password:" +msgstr "" +"Por favor visite la página que se muestra a continuación y elija una nueva " +"contraseña:" + +msgid "Your username, in case you’ve forgotten:" +msgstr "" + +msgid "Thanks for using our site!" +msgstr "¡Gracias por usar nuestro sitio!" + +#, python-format +msgid "The %(site_name)s team" +msgstr "El equipo de %(site_name)s" + +msgid "" +"Forgotten your password? Enter your email address below, and we’ll email " +"instructions for setting a new one." +msgstr "" + +msgid "Email address:" +msgstr "Correo electrónico:" + +msgid "Reset my password" +msgstr "Recuperar mi contraseña" + +msgid "All dates" +msgstr "Todas las fechas" + +#, python-format +msgid "Select %s" +msgstr "Seleccione %s" + +#, python-format +msgid "Select %s to change" +msgstr "Seleccione %s a modificar" + +#, python-format +msgid "Select %s to view" +msgstr "" + +msgid "Date:" +msgstr "Fecha:" + +msgid "Time:" +msgstr "Hora:" + +msgid "Lookup" +msgstr "Buscar" + +msgid "Currently:" +msgstr "Actualmente:" + +msgid "Change:" +msgstr "Modificar:" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/es_MX/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/es_MX/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..fbd765aecdb53e931c6ce6062543138b4a3208f5 GIT binary patch literal 3380 zcmb_eOK)5?6gF=N@Ap%}R4Ppb_vQh#FeRuVO&`ECp&1acL1*su%sAY!r?zjV(-o{> zTM2}OgaiwO5FmkA(@og1fGtvmSRlj(egP7E$8#q$38gIHD!$)b`}p`f-#NDP<1LrJ zBkdsWPMXFDdP&Vri3fLCr$RyWhGu+%r^Vk0j?{)KsCbV8g42zLl7+e0o7r+X0UmRdW1CMnhr#jgif1 zAR4x7nYU;RdI}*UWr6kMsPVfM6CiWjA4YURJ;lq)BTej%mF*A`Ix01YCMgTrnunu) zgUZ0{3rInZ%p1-FnYKcy8ZgN9rp`+$u(m34AGO)%l%Y!ShGXf)sliB2QuCOZbC2652Q~giP7YK^~2Ef$alA=z6OORwu1E`6>H9J z;0#EP=gEu8dE})g^9{&vr%tM#bs?$yw$78M%eGG%wkD_6RvXE(Q^Yw;4pUGyxiB}s zKbdWtr=g5bo;mG)c zf^{|d3>kxxdro1S7xGE4!RMhOex};A>{FOy+9kDB(ooc`$@Lz=q$8*6>a@=6jGXR- z(5ubP_WS)buxs5?r_;=KXNSR!ps4)JD*tNzrP-OO`tkb8Sc&;`Zfe<@pbQvdL)2tY zr^9ToAZ-qEB{;9b;tP!<$>U=?UaqBFvSKou<5Z~0$D2BAQ?ALl*3?>2Ix3PQ)^&YN znqK_$iwg(k@aN*Rkq<1&`I&=L+vhX($Bwf*gSM30S^75%KTBRzC;4IRd)DY3M>#pM z&X+-S=)_8)H%OL-WXC$1975gZ)(f27aYt7Kyf{o%z4yq`#29uTPvC0f10Mmf*G+XM z-8DrOx~mQCvfr`Dj@f(_I4f4OvIt;b$Ce;tvkoo>{IvPj=OmUQ`{zq+mKf8-0-}!c zciim*AtSP&csUR+G9tSz6i%HNaHQq3S1OD{skU~wVcMlZT-zkKJ~X-I$vE#(xmiiM zv+R(Xv|;4{M`5NFY$~l_hGkpOy+d-(L<07}L%CM1R=EOka62N20vCw!eC2|L8+Dwz;oEDaQH{K=Yv zeq2O^YTf$E$ex18#zI`2s8r}P*b&lT2u5Yf>wuc|Ac@J*e@;14j)-uK+Q4pCaD?|K^R;B;}EPtp)$W6q5e})Yq$?vw260z+N13We;4V1Ck&CKIJB%I0|@`TbO`Z#ZP%f7Bh3++f~3|jjx PV#hU#^yUhjOe+2Y?Wgqt literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/es_MX/LC_MESSAGES/djangojs.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/es_MX/LC_MESSAGES/djangojs.po new file mode 100644 index 0000000000..76af2f30e0 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/es_MX/LC_MESSAGES/djangojs.po @@ -0,0 +1,219 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Abraham Estrada, 2011-2012 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-05-17 23:12+0200\n" +"PO-Revision-Date: 2017-09-19 16:41+0000\n" +"Last-Translator: Jannis Leidel \n" +"Language-Team: Spanish (Mexico) (http://www.transifex.com/django/django/" +"language/es_MX/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: es_MX\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, javascript-format +msgid "Available %s" +msgstr "Disponible %s" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" +"Esta es la lista de los %s disponibles. Usted puede elegir algunos " +"seleccionándolos en el cuadro de abajo y haciendo click en la flecha " +"\"Seleccionar\" entre las dos cajas." + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "Escriba en esta casilla para filtrar la lista de %s disponibles." + +msgid "Filter" +msgstr "Filtro" + +msgid "Choose all" +msgstr "Seleccionar todos" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "Da click para seleccionar todos los %s de una vez." + +msgid "Choose" +msgstr "Seleccionar" + +msgid "Remove" +msgstr "Quitar" + +#, javascript-format +msgid "Chosen %s" +msgstr "%s seleccionados" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" +"Esta es la lista de los %s elegidos. Usted puede eliminar algunos " +"seleccionándolos en el cuadro de abajo y haciendo click en la flecha " +"\"Eliminar\" entre las dos cajas." + +msgid "Remove all" +msgstr "Eliminar todos" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "Da click para eliminar todos los %s seleccionados de una vez." + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "%(sel)s de %(cnt)s seleccionado/a" +msgstr[1] "%(sel)s de %(cnt)s seleccionados/as" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" +"Tiene modificaciones sin guardar en campos modificables individuales. Si " +"ejecuta una acción las mismas se perderán." + +msgid "" +"You have selected an action, but you haven't saved your changes to " +"individual fields yet. Please click OK to save. You'll need to re-run the " +"action." +msgstr "" +"Ha seleccionado una acción, pero todavía no ha grabado las modificaciones " +"que ha realizado en campos individuales. Por favor haga click en Aceptar " +"para grabarlas. Necesitará ejecutar la acción nuevamente." + +msgid "" +"You have selected an action, and you haven't made any changes on individual " +"fields. You're probably looking for the Go button rather than the Save " +"button." +msgstr "" +"Ha seleccionado una acción pero no ha realizado ninguna modificación en " +"campos individuales. Es probable que lo que necesite usar en realidad sea el " +"botón Ejecutar y no el botón Guardar." + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "" +msgstr[1] "" + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "" +msgstr[1] "" + +msgid "Now" +msgstr "Ahora" + +msgid "Choose a Time" +msgstr "" + +msgid "Choose a time" +msgstr "Elija una hora" + +msgid "Midnight" +msgstr "Medianoche" + +msgid "6 a.m." +msgstr "6 a.m." + +msgid "Noon" +msgstr "Mediodía" + +msgid "6 p.m." +msgstr "" + +msgid "Cancel" +msgstr "Cancelar" + +msgid "Today" +msgstr "Hoy" + +msgid "Choose a Date" +msgstr "" + +msgid "Yesterday" +msgstr "Ayer" + +msgid "Tomorrow" +msgstr "Mañana" + +msgid "January" +msgstr "" + +msgid "February" +msgstr "" + +msgid "March" +msgstr "" + +msgid "April" +msgstr "" + +msgid "May" +msgstr "" + +msgid "June" +msgstr "" + +msgid "July" +msgstr "" + +msgid "August" +msgstr "" + +msgid "September" +msgstr "" + +msgid "October" +msgstr "" + +msgid "November" +msgstr "" + +msgid "December" +msgstr "" + +msgctxt "one letter Sunday" +msgid "S" +msgstr "" + +msgctxt "one letter Monday" +msgid "M" +msgstr "" + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "" + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "" + +msgctxt "one letter Thursday" +msgid "T" +msgstr "" + +msgctxt "one letter Friday" +msgid "F" +msgstr "" + +msgctxt "one letter Saturday" +msgid "S" +msgstr "" + +msgid "Show" +msgstr "Mostrar" + +msgid "Hide" +msgstr "Ocultar" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/es_VE/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/es_VE/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..ab04e3f34e64fd576de9bdaf0cf1c72dedd1305e GIT binary patch literal 16837 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 Cqxp0I literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/es_VE/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/es_VE/LC_MESSAGES/django.po new file mode 100644 index 0000000000..c9e1509bdf --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/es_VE/LC_MESSAGES/django.po @@ -0,0 +1,698 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Eduardo , 2017 +# Hotellook, 2014 +# Leonardo J. Caballero G. , 2016 +# Yoel Acevedo, 2017 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-01-19 16:49+0100\n" +"PO-Revision-Date: 2017-09-19 19:11+0000\n" +"Last-Translator: Eduardo \n" +"Language-Team: Spanish (Venezuela) (http://www.transifex.com/django/django/" +"language/es_VE/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: es_VE\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "Eliminado %(count)d %(items)s satisfactoriamente." + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "No se puede eliminar %(name)s" + +msgid "Are you sure?" +msgstr "¿Está seguro?" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "Eliminar %(verbose_name_plural)s seleccionado" + +msgid "Administration" +msgstr "Administración" + +msgid "All" +msgstr "Todo" + +msgid "Yes" +msgstr "Sí" + +msgid "No" +msgstr "No" + +msgid "Unknown" +msgstr "Desconocido" + +msgid "Any date" +msgstr "Cualquier fecha" + +msgid "Today" +msgstr "Hoy" + +msgid "Past 7 days" +msgstr "Últimos 7 días" + +msgid "This month" +msgstr "Este mes" + +msgid "This year" +msgstr "Este año" + +msgid "No date" +msgstr "Sin fecha" + +msgid "Has date" +msgstr "Tiene fecha" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" +"Por favor, ingrese el %(username)s y la clave correctos para obtener cuenta " +"de personal. Observe que ambos campos pueden ser sensibles a mayúsculas." + +msgid "Action:" +msgstr "Acción:" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "Añadir otro %(verbose_name)s." + +msgid "Remove" +msgstr "Eliminar" + +msgid "action time" +msgstr "hora de la acción" + +msgid "user" +msgstr "usuario" + +msgid "content type" +msgstr "tipo de contenido" + +msgid "object id" +msgstr "id del objeto" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/3/library/functions.html#repr) +msgid "object repr" +msgstr "repr del objeto" + +msgid "action flag" +msgstr "marca de acción" + +msgid "change message" +msgstr "mensaje de cambio" + +msgid "log entry" +msgstr "entrada de registro" + +msgid "log entries" +msgstr "entradas de registro" + +#, python-format +msgid "Added \"%(object)s\"." +msgstr "Añadidos \"%(object)s\"." + +#, python-format +msgid "Changed \"%(object)s\" - %(changes)s" +msgstr "Cambiados \"%(object)s\" - %(changes)s" + +#, python-format +msgid "Deleted \"%(object)s.\"" +msgstr "Eliminado \"%(object)s.\"" + +msgid "LogEntry Object" +msgstr "Objeto LogEntry" + +#, python-brace-format +msgid "Added {name} \"{object}\"." +msgstr "Agregado {name} \"{object}\"." + +msgid "Added." +msgstr "Añadido." + +msgid "and" +msgstr "y" + +#, python-brace-format +msgid "Changed {fields} for {name} \"{object}\"." +msgstr "Modificado {fields} por {name} \"{object}\"." + +#, python-brace-format +msgid "Changed {fields}." +msgstr "Modificado {fields}." + +#, python-brace-format +msgid "Deleted {name} \"{object}\"." +msgstr "Eliminado {name} \"{object}\"." + +msgid "No fields changed." +msgstr "No ha cambiado ningún campo." + +msgid "None" +msgstr "Ninguno" + +msgid "" +"Hold down \"Control\", or \"Command\" on a Mac, to select more than one." +msgstr "" +"Mantenga presionado \"Control\" o \"Command\" en un Mac, para seleccionar " +"más de una opción." + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was added successfully. You may edit it again below." +msgstr "" +"El {name} \"{obj}\" fue agregado satisfactoriamente. Puede editarlo " +"nuevamente a continuación. " + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was added successfully. You may add another {name} " +"below." +msgstr "" +"El {name} \"{obj}\" fue agregado satisfactoriamente. Puede agregar otro " +"{name} a continuación. " + +#, python-brace-format +msgid "The {name} \"{obj}\" was added successfully." +msgstr "El {name} \"{obj}\" fue cambiado satisfactoriamente." + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was changed successfully. You may edit it again below." +msgstr "" +"El {name} \"{obj}\" fue cambiado satisfactoriamente. Puede editarlo " +"nuevamente a continuación. " + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was changed successfully. You may add another {name} " +"below." +msgstr "" +"El {name} \"{obj}\" fue cambiado satisfactoriamente. Puede agregar otro " +"{name} a continuación." + +#, python-brace-format +msgid "The {name} \"{obj}\" was changed successfully." +msgstr "El {name} \"{obj}\" fue cambiado satisfactoriamente." + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" +"Se deben seleccionar elementos para poder realizar acciones sobre estos. No " +"se han modificado elementos." + +msgid "No action selected." +msgstr "No se seleccionó ninguna acción." + +#, python-format +msgid "The %(name)s \"%(obj)s\" was deleted successfully." +msgstr "Se eliminó con éxito el %(name)s \"%(obj)s\"." + +#, python-format +msgid "%(name)s with ID \"%(key)s\" doesn't exist. Perhaps it was deleted?" +msgstr "%(name)s con ID \"%(key)s\" no existe. ¿Tal vez fue eliminada?" + +#, python-format +msgid "Add %s" +msgstr "Añadir %s" + +#, python-format +msgid "Change %s" +msgstr "Modificar %s" + +msgid "Database error" +msgstr "Error en la base de datos" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "%(count)s %(name)s fué modificado con éxito." +msgstr[1] "%(count)s %(name)s fueron modificados con éxito." + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "%(total_count)s seleccionado" +msgstr[1] "%(total_count)s seleccionados en total" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "0 de %(cnt)s seleccionado" + +#, python-format +msgid "Change history: %s" +msgstr "Histórico de modificaciones: %s" + +#. Translators: Model verbose name and instance representation, +#. suitable to be an item in a list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "%(class_name)s %(instance)s" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" +"La eliminación de %(class_name)s %(instance)s requeriría eliminar los " +"siguientes objetos relacionados protegidos: %(related_objects)s" + +msgid "Django site admin" +msgstr "Sitio de administración de Django" + +msgid "Django administration" +msgstr "Administración de Django" + +msgid "Site administration" +msgstr "Sitio de administración" + +msgid "Log in" +msgstr "Iniciar sesión" + +#, python-format +msgid "%(app)s administration" +msgstr "Administración de %(app)s " + +msgid "Page not found" +msgstr "Página no encontrada" + +msgid "We're sorry, but the requested page could not be found." +msgstr "Lo sentimos, pero no se encuentra la página solicitada." + +msgid "Home" +msgstr "Inicio" + +msgid "Server error" +msgstr "Error del servidor" + +msgid "Server error (500)" +msgstr "Error del servidor (500)" + +msgid "Server Error (500)" +msgstr "Error de servidor (500)" + +msgid "" +"There's been an error. It's been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" +"Ha habido un error. Ha sido comunicado al administrador del sitio por correo " +"electrónico y debería solucionarse a la mayor brevedad. Gracias por su " +"paciencia y comprensión." + +msgid "Run the selected action" +msgstr "Ejecutar la acción seleccionada" + +msgid "Go" +msgstr "Ir" + +msgid "Click here to select the objects across all pages" +msgstr "Pulse aquí para seleccionar los objetos a través de todas las páginas" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "Seleccionar todos los %(total_count)s %(module_name)s" + +msgid "Clear selection" +msgstr "Limpiar selección" + +msgid "" +"First, enter a username and password. Then, you'll be able to edit more user " +"options." +msgstr "" +"Primero introduzca un nombre de usuario y una contraseña. Luego podrá editar " +"el resto de opciones del usuario." + +msgid "Enter a username and password." +msgstr "Ingrese un nombre de usuario y contraseña" + +msgid "Change password" +msgstr "Cambiar contraseña" + +msgid "Please correct the error below." +msgstr "Por favor, corrija el siguiente error." + +msgid "Please correct the errors below." +msgstr "Por favor, corrija los siguientes errores." + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "" +"Ingrese una nueva contraseña para el usuario %(username)s." + +msgid "Welcome," +msgstr "Bienvenido," + +msgid "View site" +msgstr "Ver el sitio" + +msgid "Documentation" +msgstr "Documentación" + +msgid "Log out" +msgstr "Terminar sesión" + +#, python-format +msgid "Add %(name)s" +msgstr "Añadir %(name)s" + +msgid "History" +msgstr "Histórico" + +msgid "View on site" +msgstr "Ver en el sitio" + +msgid "Filter" +msgstr "Filtro" + +msgid "Remove from sorting" +msgstr "Elimina de la ordenación" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "Prioridad de la ordenación: %(priority_number)s" + +msgid "Toggle sorting" +msgstr "Activar la ordenación" + +msgid "Delete" +msgstr "Eliminar" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" +"Eliminar el %(object_name)s '%(escaped_object)s' provocaría la eliminación " +"de objetos relacionados, pero su cuenta no tiene permiso para borrar los " +"siguientes tipos de objetos:" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" +"Eliminar el %(object_name)s %(escaped_object)s requeriría eliminar los " +"siguientes objetos relacionados protegidos:" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" +"¿Está seguro de que quiere borrar los %(object_name)s \"%(escaped_object)s" +"\"? Se borrarán los siguientes objetos relacionados:" + +msgid "Objects" +msgstr "Objetos" + +msgid "Yes, I'm sure" +msgstr "Sí, Yo estoy seguro" + +msgid "No, take me back" +msgstr "No, llévame atrás" + +msgid "Delete multiple objects" +msgstr "Eliminar múltiples objetos" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" +"Eliminar el %(objects_name)s seleccionado resultaría en el borrado de " +"objetos relacionados, pero su cuenta no tiene permisos para borrar los " +"siguientes tipos de objetos:" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" +"Eliminar el %(objects_name)s seleccionado requeriría el borrado de los " +"siguientes objetos protegidos relacionados:" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" +"¿Está usted seguro que quiere eliminar el %(objects_name)s seleccionado? " +"Todos los siguientes objetos y sus elementos relacionados serán borrados:" + +msgid "Change" +msgstr "Modificar" + +msgid "Delete?" +msgstr "¿Eliminar?" + +#, python-format +msgid " By %(filter_title)s " +msgstr " Por %(filter_title)s " + +msgid "Summary" +msgstr "Resumen" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "Modelos en la aplicación %(name)s" + +msgid "Add" +msgstr "Añadir" + +msgid "You don't have permission to edit anything." +msgstr "No tiene permiso para editar nada." + +msgid "Recent actions" +msgstr "Acciones recientes" + +msgid "My actions" +msgstr "Mis acciones" + +msgid "None available" +msgstr "Ninguno disponible" + +msgid "Unknown content" +msgstr "Contenido desconocido" + +msgid "" +"Something's wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" +"Algo va mal con la instalación de la base de datos. Asegúrese de que las " +"tablas necesarias han sido creadas, y de que la base de datos puede ser " +"leída por el usuario apropiado." + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" +"Se ha autenticado como %(username)s, pero no está autorizado a acceder a " +"esta página. ¿Desea autenticarse con una cuenta diferente?" + +msgid "Forgotten your password or username?" +msgstr "¿Ha olvidado la contraseña o el nombre de usuario?" + +msgid "Date/time" +msgstr "Fecha/hora" + +msgid "User" +msgstr "Usuario" + +msgid "Action" +msgstr "Acción" + +msgid "" +"This object doesn't have a change history. It probably wasn't added via this " +"admin site." +msgstr "" +"Este objeto no tiene histórico de cambios. Probablemente no fue añadido " +"usando este sitio de administración." + +msgid "Show all" +msgstr "Mostrar todo" + +msgid "Save" +msgstr "Guardar" + +msgid "Popup closing..." +msgstr "Ventana emergente cerrando..." + +#, python-format +msgid "Change selected %(model)s" +msgstr "Cambiar %(model)s seleccionado" + +#, python-format +msgid "Add another %(model)s" +msgstr "Añadir otro %(model)s" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "Eliminar %(model)s seleccionado" + +msgid "Search" +msgstr "Buscar" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "%(counter)s resultado" +msgstr[1] "%(counter)s resultados" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "%(full_result_count)s total" + +msgid "Save as new" +msgstr "Guardar como nuevo" + +msgid "Save and add another" +msgstr "Guardar y añadir otro" + +msgid "Save and continue editing" +msgstr "Guardar y continuar editando" + +msgid "Thanks for spending some quality time with the Web site today." +msgstr "Gracias por el tiempo que ha dedicado hoy al sitio web." + +msgid "Log in again" +msgstr "Iniciar sesión de nuevo" + +msgid "Password change" +msgstr "Cambio de contraseña" + +msgid "Your password was changed." +msgstr "Su contraseña ha sido cambiada." + +msgid "" +"Please enter your old password, for security's sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" +"Por favor, ingrese su contraseña antigua, por seguridad, y después " +"introduzca la nueva contraseña dos veces para verificar que la ha escrito " +"correctamente." + +msgid "Change my password" +msgstr "Cambiar mi contraseña" + +msgid "Password reset" +msgstr "Restablecer contraseña" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "" +"Su contraseña ha sido establecida. Ahora puede seguir adelante e iniciar " +"sesión." + +msgid "Password reset confirmation" +msgstr "Confirmación de restablecimiento de contraseña" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" +"Por favor, ingrese su contraseña nueva dos veces para verificar que la ha " +"escrito correctamente." + +msgid "New password:" +msgstr "Contraseña nueva:" + +msgid "Confirm password:" +msgstr "Confirme contraseña:" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"El enlace de restablecimiento de contraseña era inválido, seguramente porque " +"se haya usado antes. Por favor, solicite un nuevo restablecimiento de " +"contraseña." + +msgid "" +"We've emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" +"Le hemos enviado por correo electrónico las instrucciones para restablecer " +"la contraseña, si es que existe una cuenta con la dirección electrónica que " +"indicó. Debería recibirlas en breve." + +msgid "" +"If you don't receive an email, please make sure you've entered the address " +"you registered with, and check your spam folder." +msgstr "" +"Si no recibe un correo, por favor, asegúrese de que ha introducido la " +"dirección de correo con la que se registró y verifique su carpeta de correo " +"no deseado o spam." + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" +"Ha recibido este correo electrónico porque ha solicitado restablecer la " +"contraseña para su cuenta en %(site_name)s." + +msgid "Please go to the following page and choose a new password:" +msgstr "Por favor, vaya a la página siguiente y escoja una nueva contraseña." + +msgid "Your username, in case you've forgotten:" +msgstr "Su nombre de usuario, en caso de haberlo olvidado:" + +msgid "Thanks for using our site!" +msgstr "¡Gracias por usar nuestro sitio!" + +#, python-format +msgid "The %(site_name)s team" +msgstr "El equipo de %(site_name)s" + +msgid "" +"Forgotten your password? Enter your email address below, and we'll email " +"instructions for setting a new one." +msgstr "" +"¿Ha olvidado su clave? Ingrese su dirección de correo electrónico a " +"continuación y le enviaremos las instrucciones para establecer una nueva." + +msgid "Email address:" +msgstr "Correo electrónico:" + +msgid "Reset my password" +msgstr "Restablecer mi contraseña" + +msgid "All dates" +msgstr "Todas las fechas" + +#, python-format +msgid "Select %s" +msgstr "Escoja %s" + +#, python-format +msgid "Select %s to change" +msgstr "Escoja %s a modificar" + +msgid "Date:" +msgstr "Fecha:" + +msgid "Time:" +msgstr "Hora:" + +msgid "Lookup" +msgstr "Buscar" + +msgid "Currently:" +msgstr "Actualmente:" + +msgid "Change:" +msgstr "Cambiar:" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/es_VE/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/es_VE/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..6cc0519829712fbc1408f893f18a3d985f285a5d GIT binary patch literal 4635 zcmcJRO^h5z6@Uw3AZ-3{5)%T!R1CJ)*fTr34t5yFV8`C|+IVf_nK(p3L^ad3Gi`dR zhVJUw9Un+8AOWXZ>#d} z;oX$~RF(fy@vrb6>i=HxKNatw^AzL6P?dcntm-O250Pd9U@x&2p)zvU>*JqqMCY;#bt_WHjt-{K*1UWD@fHTXLG3H&K+G0DQEnUs9r0Y4A# zhN8!L_%i$={2}}oyavC!Qz^`>?zz9@eHC|Be4yg4iVszMxZ+3XD`~Do@f3SX!i0q_ zAA)Nb;7$&wD1C~PmUwW=((ko0M?%=hC`ATg~XiS1BP zO_L9iWo?KQTkUvR&jJ$^|>7ymo43sq#JBtrX65p16E$LHa z@m-b_fzz2y4rJOd>%G%m7kH(@c7u&>`R#}{^+8=7(L=$>VHzjuWZuiOpiYiVoS05x z_1;XKGOlYAb*k@uW-Dl;Pn$4NYR7|#QkX0yMc>T2LRb=azp8`R-9nr;NkX+YL3>82 zt5fUWQ#ySa)nc zcF{W$yM5D9IqM64MP2L$FBZ657^;HUOSSAUl1Ayu7Pwx_ ze_+PzYm)ha)tzzWMX~Ei*MW{*A)@0~nMdMRv|%cIak?vuR<+Z6N=Mm)MN=AeY*?|h zkh*l%1laQlNEm$5XNL8H}8VKFj=?cozyK& z*0oH?WpQ`3w$$cD%Pn>7ex7F1vOU?do!hroK5ZjcRzIySrT!|%ckOIcyJFJ}Uuo*- zDlXxtF596`Lv1PR#Zm3ayqDG5zNx1!U2NA*rPhdF)#PAq>bb`3ky_(3wb`S3?r?K< z?qFlC(V$`NvK_@DbF8QHb_(FO%`hH)VM4$!KY0QGNHz82oj7c0-PFZcQh%ZA4YJ>z0Vy#jGasxBH$EbGL-vP7!*0IHXsn<80_%Ozh1zgRe=| zd}4dCAiipJ?u=fxOn9Qa=+nt!Uy3cc2Z&ajy`F_DrSKx67fsI;n^X@?YRVI;m;on- zG?pDAA(2_icq4nQesdq2#DmzGn>sKk?&&$@PsiPuNR-+lPTSNMVH(V5U3M1HYu-sM zfjX9_<4LH#CeJYs_PKGs+b4kY>Z7%v841Itsh{G6jaa&1xQd{pOjolv&=w~ORf`|33{M(zRC$tG}K8qspcyi#6sRkc)-!jAAV| zUaBRR+d$P}2@gxfm&9!N7XwHDGoq|4^rq`^i078tVkx;0CB59?4Mh|aA6a|VMPB@a z$c~h*!6{?MHj7yTLQ-yfp1{ZI)2?)~vgI-k**AJm>CSuf*K$j{F>(SiEiq_;RFQ}K zY^P`Clp8*_p=jla{|{A5(YH}{(Q~;pYd4Hz8)n@!?qFjlE=nlOO_cg_pUD-1MYxsm z)yXkiV{vj%Vnx}6hTXjObBBqY*jM+lrq_;RZSB|G!_1%)dl{9tA$Hsh(A>E+aYb$n zc7U;2+AOU7nAIXN;zp=w{a, 2017 +# FIRST AUTHOR , 2012 +# Hotellook, 2014 +# Leonardo J. Caballero G. , 2016 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-05-17 23:12+0200\n" +"PO-Revision-Date: 2017-09-20 03:01+0000\n" +"Last-Translator: Eduardo \n" +"Language-Team: Spanish (Venezuela) (http://www.transifex.com/django/django/" +"language/es_VE/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: es_VE\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, javascript-format +msgid "Available %s" +msgstr "Disponibles %s" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" +"Esta es la lista de %s disponibles. Puede elegir algunos seleccionándolos en " +"la caja inferior y luego haciendo clic en la flecha \"Elegir\" que hay entre " +"las dos cajas." + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "Escriba en este cuadro para filtrar la lista de %s disponibles." + +msgid "Filter" +msgstr "Filtro" + +msgid "Choose all" +msgstr "Seleccione todos" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "Haga clic para seleccionar todos los %s de una vez." + +msgid "Choose" +msgstr "Elegir" + +msgid "Remove" +msgstr "Eliminar" + +#, javascript-format +msgid "Chosen %s" +msgstr "Elegidos %s" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" +"Esta es la lista de los %s elegidos. Puede eliminar algunos seleccionándolos " +"en la caja inferior y luego haciendo clic en la flecha \"Eliminar\" que hay " +"entre las dos cajas." + +msgid "Remove all" +msgstr "Eliminar todos" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "Haga clic para eliminar todos los %s elegidos." + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "%(sel)s de %(cnt)s seleccionado" +msgstr[1] "%(sel)s de %(cnt)s seleccionados" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" +"Tiene cambios sin guardar en campos editables individuales. Si ejecuta una " +"acción, los cambios no guardados se perderán." + +msgid "" +"You have selected an action, but you haven't saved your changes to " +"individual fields yet. Please click OK to save. You'll need to re-run the " +"action." +msgstr "" +"Ha seleccionado una acción, pero no ha guardado los cambios en los campos " +"individuales todavía. Pulse OK para guardar. Tendrá que volver a ejecutar la " +"acción." + +msgid "" +"You have selected an action, and you haven't made any changes on individual " +"fields. You're probably looking for the Go button rather than the Save " +"button." +msgstr "" +"Ha seleccionado una acción y no ha hecho ningún cambio en campos " +"individuales. Probablemente esté buscando el botón Ejecutar en lugar del " +"botón Guardar." + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "Nota: Usted esta a %s hora por delante de la hora del servidor." +msgstr[1] "Nota: Usted esta a %s horas por delante de la hora del servidor." + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "Nota: Usted esta a %s hora de retraso de la hora de servidor." +msgstr[1] "Nota: Usted esta a %s horas por detrás de la hora del servidor." + +msgid "Now" +msgstr "Ahora" + +msgid "Choose a Time" +msgstr "Elija una Hora" + +msgid "Choose a time" +msgstr "Elija una hora" + +msgid "Midnight" +msgstr "Medianoche" + +msgid "6 a.m." +msgstr "6 a.m." + +msgid "Noon" +msgstr "Mediodía" + +msgid "6 p.m." +msgstr "6 p.m." + +msgid "Cancel" +msgstr "Cancelar" + +msgid "Today" +msgstr "Hoy" + +msgid "Choose a Date" +msgstr "Elija una fecha" + +msgid "Yesterday" +msgstr "Ayer" + +msgid "Tomorrow" +msgstr "Mañana" + +msgid "January" +msgstr "Enero" + +msgid "February" +msgstr "Febrero" + +msgid "March" +msgstr "Marzo" + +msgid "April" +msgstr "Abril" + +msgid "May" +msgstr "Mayo" + +msgid "June" +msgstr "Junio" + +msgid "July" +msgstr "Julio" + +msgid "August" +msgstr "Agosto" + +msgid "September" +msgstr "Septiembre" + +msgid "October" +msgstr "Octubre" + +msgid "November" +msgstr "Noviembre" + +msgid "December" +msgstr "Diciembre" + +msgctxt "one letter Sunday" +msgid "S" +msgstr "D" + +msgctxt "one letter Monday" +msgid "M" +msgstr "L" + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "M" + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "M" + +msgctxt "one letter Thursday" +msgid "T" +msgstr "J" + +msgctxt "one letter Friday" +msgid "F" +msgstr "V" + +msgctxt "one letter Saturday" +msgid "S" +msgstr "S" + +msgid "Show" +msgstr "Mostrar" + +msgid "Hide" +msgstr "Esconder" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/et/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/et/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..0a51b4a9b7b0fc8f36940f8d12236980987795f7 GIT binary patch literal 17574 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, 2011 +# Erlend Eelmets , 2020 +# Jannis Leidel , 2011 +# Janno Liivak , 2013-2015 +# Martin , 2015,2022-2024 +# Martin , 2016,2019-2020 +# Marti Raudsepp , 2016 +# Ragnar Rebase , 2019 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-05-22 11:46-0300\n" +"PO-Revision-Date: 2024-08-07 07:05+0000\n" +"Last-Translator: Martin , 2015,2022-2024\n" +"Language-Team: Estonian (http://app.transifex.com/django/django/language/" +"et/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: et\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "Kustuta valitud %(verbose_name_plural)s" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "%(count)d %(items)s kustutamine õnnestus." + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "Ei saa kustutada %(name)s" + +msgid "Are you sure?" +msgstr "Kas olete kindel?" + +msgid "Administration" +msgstr "Administreerimine" + +msgid "All" +msgstr "Kõik" + +msgid "Yes" +msgstr "Jah" + +msgid "No" +msgstr "Ei" + +msgid "Unknown" +msgstr "Tundmatu" + +msgid "Any date" +msgstr "Suvaline kuupäev" + +msgid "Today" +msgstr "Täna" + +msgid "Past 7 days" +msgstr "Viimased 7 päeva" + +msgid "This month" +msgstr "Käesolev kuu" + +msgid "This year" +msgstr "Käesolev aasta" + +msgid "No date" +msgstr "Kuupäev puudub" + +msgid "Has date" +msgstr "Kuupäev olemas" + +msgid "Empty" +msgstr "Tühi" + +msgid "Not empty" +msgstr "Täidetud" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" +"Palun sisestage personali kontole õige %(username)s ja parool. Teadke, et " +"mõlemad väljad võivad olla tõstutundlikud." + +msgid "Action:" +msgstr "Toiming:" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "Lisa veel üks %(verbose_name)s" + +msgid "Remove" +msgstr "Eemalda" + +msgid "Addition" +msgstr "Lisamine" + +msgid "Change" +msgstr "Muuda" + +msgid "Deletion" +msgstr "Kustutamine" + +msgid "action time" +msgstr "toimingu aeg" + +msgid "user" +msgstr "kasutaja" + +msgid "content type" +msgstr "sisutüüp" + +msgid "object id" +msgstr "objekti id" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/library/functions.html#repr) +msgid "object repr" +msgstr "objekti esitus" + +msgid "action flag" +msgstr "toimingu lipp" + +msgid "change message" +msgstr "muudatuse tekst" + +msgid "log entry" +msgstr "logisissekanne" + +msgid "log entries" +msgstr "logisissekanded" + +#, python-format +msgid "Added “%(object)s”." +msgstr "Lisati “%(object)s”." + +#, python-format +msgid "Changed “%(object)s” — %(changes)s" +msgstr "Muudeti “%(object)s” — %(changes)s" + +#, python-format +msgid "Deleted “%(object)s.”" +msgstr "Kustutati “%(object)s.”" + +msgid "LogEntry Object" +msgstr "Objekt LogEntry" + +#, python-brace-format +msgid "Added {name} “{object}”." +msgstr "Lisati {name} “{object}”." + +msgid "Added." +msgstr "Lisatud." + +msgid "and" +msgstr "ja" + +#, python-brace-format +msgid "Changed {fields} for {name} “{object}”." +msgstr "Muudeti {fields} -> {name} “{object}”." + +#, python-brace-format +msgid "Changed {fields}." +msgstr "Muudetud {fields}." + +#, python-brace-format +msgid "Deleted {name} “{object}”." +msgstr "Kustutati {name} “{object}”." + +msgid "No fields changed." +msgstr "Ühtegi välja ei muudetud." + +msgid "None" +msgstr "Puudub" + +msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." +msgstr "Hoia all “Control” või “Command” Macil, et valida rohkem kui üks." + +msgid "Select this object for an action - {}" +msgstr "Vali toiminguks käesolev objekt - {}" + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully." +msgstr "{name} “{obj}” lisamine õnnestus." + +msgid "You may edit it again below." +msgstr "Võite seda uuesti muuta." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was added successfully. You may add another {name} below." +msgstr "" +"{name} “{obj}” lisamine õnnestus. Allpool saate lisada järgmise {name}." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may edit it again below." +msgstr "{name} “{obj}” muutmine õnnestus. Allpool saate seda uuesti muuta." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may add another {name} " +"below." +msgstr "{name} ”{obj}” muutmine õnnestus. Allpool saate lisada uue {name}." + +#, python-brace-format +msgid "The {name} “{obj}” was changed successfully." +msgstr "{name} “{obj}” muutmine õnnestus." + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" +"Palun märgistage elemendid, millega soovite toiminguid sooritada. Ühtegi " +"elementi ei muudetud." + +msgid "No action selected." +msgstr "Toiming valimata." + +#, python-format +msgid "The %(name)s “%(obj)s” was deleted successfully." +msgstr "%(name)s “%(obj)s” kustutamine õnnestus." + +#, python-format +msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" +msgstr "%(name)s ID-ga “%(key)s” ei eksisteeri. Võib-olla on see kustutatud?" + +#, python-format +msgid "Add %s" +msgstr "Lisa %s" + +#, python-format +msgid "Change %s" +msgstr "Muuda %s" + +#, python-format +msgid "View %s" +msgstr "Vaata %s" + +msgid "Database error" +msgstr "Andmebaasi viga" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "%(count)s %(name)s muutmine õnnestus." +msgstr[1] "%(count)s %(name)s muutmine õnnestus." + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "%(total_count)s valitud" +msgstr[1] "Kõik %(total_count)s valitud" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "valitud 0/%(cnt)s" + +#, python-format +msgid "Change history: %s" +msgstr "Muudatuste ajalugu: %s" + +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "%(class_name)s %(instance)s" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" +"Et kustutada %(class_name)s %(instance)s, on vaja kustutada järgmised " +"kaitstud seotud objektid: %(related_objects)s" + +msgid "Django site admin" +msgstr "Django administreerimisliides" + +msgid "Django administration" +msgstr "Django administreerimisliides" + +msgid "Site administration" +msgstr "Saidi administreerimine" + +msgid "Log in" +msgstr "Sisene" + +#, python-format +msgid "%(app)s administration" +msgstr "%(app)s administreerimine" + +msgid "Page not found" +msgstr "Lehte ei leitud" + +msgid "We’re sorry, but the requested page could not be found." +msgstr "Vabandame, kuid soovitud lehte ei leitud." + +msgid "Home" +msgstr "Kodu" + +msgid "Server error" +msgstr "Serveri viga" + +msgid "Server error (500)" +msgstr "Serveri viga (500)" + +msgid "Server Error (500)" +msgstr "Serveri Viga (500)" + +msgid "" +"There’s been an error. It’s been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" +"Ilmnes viga. Sellest on e-posti teel teavitatud lehe administraatorit ja " +"viga parandatakse esimesel võimalusel. Täname kannatlikkuse eest." + +msgid "Run the selected action" +msgstr "Käivita valitud toiming" + +msgid "Go" +msgstr "Mine" + +msgid "Click here to select the objects across all pages" +msgstr "Kliki siin, et märgistada objektid üle kõigi lehekülgede" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "Märgista kõik %(total_count)s %(module_name)s" + +msgid "Clear selection" +msgstr "Tühjenda valik" + +msgid "Breadcrumbs" +msgstr "Lingirivi" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "Rakenduse %(name)s moodulid" + +msgid "Add" +msgstr "Lisa" + +msgid "View" +msgstr "Vaata" + +msgid "You don’t have permission to view or edit anything." +msgstr "Teil pole õigust midagi vaadata ega muuta." + +msgid "" +"First, enter a username and password. Then, you’ll be able to edit more user " +"options." +msgstr "" +"Kõigepealt sisestage kasutajatunnus ja salasõna. Seejärel saate muuta " +"täiendavaid kasutajaandmeid." + +msgid "Enter a username and password." +msgstr "Sisestage kasutajanimi ja salasõna." + +msgid "Change password" +msgstr "Muuda salasõna" + +msgid "Set password" +msgstr "Määra parool" + +msgid "Please correct the error below." +msgid_plural "Please correct the errors below." +msgstr[0] "Palun parandage allolev viga." +msgstr[1] "Palun parandage allolevad vead." + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "Sisestage uus salasõna kasutajale %(username)s" + +msgid "" +"This action will enable password-based authentication for " +"this user." +msgstr "" + +msgid "Disable password-based authentication" +msgstr "" + +msgid "Enable password-based authentication" +msgstr "" + +msgid "Skip to main content" +msgstr "Liigu põhisisu juurde" + +msgid "Welcome," +msgstr "Tere tulemast," + +msgid "View site" +msgstr "Vaata saiti" + +msgid "Documentation" +msgstr "Dokumentatsioon" + +msgid "Log out" +msgstr "Logi välja" + +#, python-format +msgid "Add %(name)s" +msgstr "Lisa %(name)s" + +msgid "History" +msgstr "Ajalugu" + +msgid "View on site" +msgstr "Näita lehel" + +msgid "Filter" +msgstr "Filtreeri" + +msgid "Hide counts" +msgstr "Peida loendused" + +msgid "Show counts" +msgstr "Näita loendusi" + +msgid "Clear all filters" +msgstr "Tühjenda kõik filtrid" + +msgid "Remove from sorting" +msgstr "Eemalda sorteerimisest" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "Sorteerimisjärk: %(priority_number)s" + +msgid "Toggle sorting" +msgstr "Sorteerimine" + +msgid "Toggle theme (current theme: auto)" +msgstr "Teema lülitamine (hetkel: automaatne)" + +msgid "Toggle theme (current theme: light)" +msgstr "Teema lülitamine (hetkel: hele)" + +msgid "Toggle theme (current theme: dark)" +msgstr "Teema lülitamine (hetkel: tume)" + +msgid "Delete" +msgstr "Kustuta" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" +"Selleks, et kustutada %(object_name)s '%(escaped_object)s', on vaja " +"kustutada lisaks ka kõik seotud objecktid, aga teil puudub õigus järgnevat " +"tüüpi objektide kustutamiseks:" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" +"Et kustutada %(object_name)s '%(escaped_object)s', on vaja kustutada " +"järgmised kaitstud seotud objektid:" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" +"Kas olete kindel, et soovite kustutada objekti %(object_name)s " +"\"%(escaped_object)s\"? Kõik järgnevad seotud objektid kustutatakse koos " +"sellega:" + +msgid "Objects" +msgstr "Objektid" + +msgid "Yes, I’m sure" +msgstr "Jah, olen kindel" + +msgid "No, take me back" +msgstr "Ei, mine tagasi" + +msgid "Delete multiple objects" +msgstr "Kustuta mitu objekti" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" +"Kui kustutada valitud %(objects_name)s, peaks kustutama ka seotud objektid, " +"aga sinu kasutajakontol pole õigusi järgmiste objektitüüpide kustutamiseks:" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" +"Et kustutada valitud %(objects_name)s, on vaja kustutada ka järgmised " +"kaitstud seotud objektid:" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" +"Kas oled kindel, et soovid kustutada valitud %(objects_name)s? Kõik " +"järgnevad objektid ja seotud objektid kustutatakse:" + +msgid "Delete?" +msgstr "Kustutan?" + +#, python-format +msgid " By %(filter_title)s " +msgstr " %(filter_title)s " + +msgid "Summary" +msgstr "Kokkuvõte" + +msgid "Recent actions" +msgstr "Hiljutised toimingud" + +msgid "My actions" +msgstr "Minu toimingud" + +msgid "None available" +msgstr "Ei leitud ühtegi" + +msgid "Added:" +msgstr "Lisatud:" + +msgid "Changed:" +msgstr "Muudetud:" + +msgid "Deleted:" +msgstr "Kustutatud:" + +msgid "Unknown content" +msgstr "Tundmatu sisu" + +msgid "" +"Something’s wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" +"On tekkinud viga seoses andmebaasiga. Veenduge, et kõik vajalikud " +"andmebaasitabelid on loodud ja andmebaas on loetav vastava kasutaja poolt." + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" +"Olete sisse logitud kasutajana %(username)s, kuid teil puudub ligipääs " +"lehele. Kas te soovite teise kontoga sisse logida?" + +msgid "Forgotten your password or username?" +msgstr "Unustasite oma parooli või kasutajanime?" + +msgid "Toggle navigation" +msgstr "Lülita navigeerimine sisse" + +msgid "Sidebar" +msgstr "Külgriba" + +msgid "Start typing to filter…" +msgstr "Filtreerimiseks alusta trükkimist..." + +msgid "Filter navigation items" +msgstr "Filtreeri navigatsioonielemente" + +msgid "Date/time" +msgstr "Kuupäev/kellaaeg" + +msgid "User" +msgstr "Kasutaja" + +msgid "Action" +msgstr "Toiming" + +msgid "entry" +msgid_plural "entries" +msgstr[0] "sissekanne" +msgstr[1] "sissekanded" + +msgid "" +"This object doesn’t have a change history. It probably wasn’t added via this " +"admin site." +msgstr "" +"Sellel objektil puudub muudatuste ajalugu. Tõenäoliselt ei lisatud objekti " +"läbi selle administreerimisliidese." + +msgid "Show all" +msgstr "Näita kõiki" + +msgid "Save" +msgstr "Salvesta" + +msgid "Popup closing…" +msgstr "Hüpikaken sulgub…" + +msgid "Search" +msgstr "Otsing" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "%(counter)s tulemus" +msgstr[1] "%(counter)s tulemust" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "Kokku %(full_result_count)s" + +msgid "Save as new" +msgstr "Salvesta uuena" + +msgid "Save and add another" +msgstr "Salvesta ja lisa uus" + +msgid "Save and continue editing" +msgstr "Salvesta ja jätka muutmist" + +msgid "Save and view" +msgstr "Salvesta ja vaata" + +msgid "Close" +msgstr "Sulge" + +#, python-format +msgid "Change selected %(model)s" +msgstr "Muuda valitud %(model)s" + +#, python-format +msgid "Add another %(model)s" +msgstr "Lisa veel üks %(model)s" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "Kustuta valitud %(model)s" + +#, python-format +msgid "View selected %(model)s" +msgstr "Vaata valitud %(model)s" + +msgid "Thanks for spending some quality time with the web site today." +msgstr "Tänan, et veetsite aega meie lehel." + +msgid "Log in again" +msgstr "Logi uuesti sisse" + +msgid "Password change" +msgstr "Salasõna muutmine" + +msgid "Your password was changed." +msgstr "Teie salasõna on vahetatud." + +msgid "" +"Please enter your old password, for security’s sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" +"Turvalisuse tagamiseks palun sisestage oma praegune salasõna ja seejärel uus " +"salasõna. Veendumaks, et uue salasõna sisestamisel ei tekkinud vigu, palun " +"sisestage see kaks korda." + +msgid "Change my password" +msgstr "Muuda salasõna" + +msgid "Password reset" +msgstr "Uue parooli loomine" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "Teie salasõna on määratud. Võite nüüd sisse logida." + +msgid "Password reset confirmation" +msgstr "Uue salasõna loomise kinnitamine" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" +"Palun sisestage uus salasõna kaks korda, et saaksime veenduda, et " +"sisestamisel ei tekkinud vigu." + +msgid "New password:" +msgstr "Uus salasõna:" + +msgid "Confirm password:" +msgstr "Kinnita salasõna:" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"Uue salasõna loomise link ei olnud korrektne. Võimalik, et seda on varem " +"kasutatud. Esitage uue salasõna taotlus uuesti." + +msgid "" +"We’ve emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" +"Saatsime teile meilile parooli muutmise juhendi. Kui teie poolt sisestatud e-" +"posti aadressiga konto on olemas, siis jõuab kiri peagi kohale." + +msgid "" +"If you don’t receive an email, please make sure you’ve entered the address " +"you registered with, and check your spam folder." +msgstr "" +"Kui te ei saa kirja kätte siis veenduge, et sisestasite just selle e-posti " +"aadressi, millega registreerisite. Kontrollige ka oma rämpsposti kausta." + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" +"Saite käesoleva kirja kuna soovisite muuta lehel %(site_name)s oma " +"kasutajakontoga seotud parooli." + +msgid "Please go to the following page and choose a new password:" +msgstr "Palun minge järmisele lehele ning sisestage uus salasõna" + +msgid "Your username, in case you’ve forgotten:" +msgstr "Teie kasutajatunnus juhuks, kui olete unustanud:" + +msgid "Thanks for using our site!" +msgstr "Täname meie lehte külastamast!" + +#, python-format +msgid "The %(site_name)s team" +msgstr "%(site_name)s meeskond" + +msgid "" +"Forgotten your password? Enter your email address below, and we’ll email " +"instructions for setting a new one." +msgstr "" +"Unustasite oma salasõna? Sisestage oma e-posti aadress ja saadame meilile " +"juhised uue saamiseks." + +msgid "Email address:" +msgstr "E-posti aadress:" + +msgid "Reset my password" +msgstr "Lähtesta mu parool" + +msgid "Select all objects on this page for an action" +msgstr "Vali toiminguks kõik objektid sellel lehel" + +msgid "All dates" +msgstr "Kõik kuupäevad" + +#, python-format +msgid "Select %s" +msgstr "Vali %s" + +#, python-format +msgid "Select %s to change" +msgstr "Vali %s mida muuta" + +#, python-format +msgid "Select %s to view" +msgstr "Vali %s vaatamiseks" + +msgid "Date:" +msgstr "Kuupäev:" + +msgid "Time:" +msgstr "Aeg:" + +msgid "Lookup" +msgstr "Otsi" + +msgid "Currently:" +msgstr "Hetkel:" + +msgid "Change:" +msgstr "Muuda:" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/et/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/et/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..aa460cd7690be626a5f3a2b90994aebbc77c1c18 GIT binary patch literal 5880 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 KbNrv}tok<{%{UPN literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/et/LC_MESSAGES/djangojs.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/et/LC_MESSAGES/djangojs.po new file mode 100644 index 0000000000..4762c478d5 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/et/LC_MESSAGES/djangojs.po @@ -0,0 +1,329 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# eallik , 2011 +# Jannis Leidel , 2011 +# Janno Liivak , 2013-2015 +# Martin , 2021,2023 +# Martin , 2016,2020 +# Ragnar Rebase , 2019 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-09-18 15:04-0300\n" +"PO-Revision-Date: 2023-12-04 07:59+0000\n" +"Last-Translator: Martin , 2021,2023\n" +"Language-Team: Estonian (http://app.transifex.com/django/django/language/" +"et/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: et\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, javascript-format +msgid "Available %s" +msgstr "Saadaval %s" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" +"Nimekiri välja \"%s\" võimalikest väärtustest. Saad valida ühe või mitu " +"kirjet allolevast kastist ning vajutades noolt \"Vali\" liigutada neid ühest " +"kastist teise." + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "Filtreeri selle kasti abil välja \"%s\" nimekirja." + +msgid "Filter" +msgstr "Filter" + +msgid "Choose all" +msgstr "Vali kõik" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "Kliki, et valida kõik %s korraga." + +msgid "Choose" +msgstr "Vali" + +msgid "Remove" +msgstr "Eemalda" + +#, javascript-format +msgid "Chosen %s" +msgstr "Valitud %s" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" +"Nimekiri välja \"%s\" valitud väärtustest. Saad valida ühe või mitu kirjet " +"allolevast kastist ning vajutades noolt \"Eemalda\" liigutada neid ühest " +"kastist teise." + +#, javascript-format +msgid "Type into this box to filter down the list of selected %s." +msgstr "Filtreeri selle kasti abil valitud \"%s\" nimekirja." + +msgid "Remove all" +msgstr "Eemalda kõik" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "Kliki, et eemaldada kõik valitud %s korraga." + +#, javascript-format +msgid "%s selected option not visible" +msgid_plural "%s selected options not visible" +msgstr[0] "%s valik ei ole nähtaval" +msgstr[1] "%s valikut ei ole nähtaval" + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "%(sel)s %(cnt)sst valitud" +msgstr[1] "%(sel)s %(cnt)sst valitud" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" +"Muudetavates lahtrites on salvestamata muudatusi. Kui sooritate mõne " +"toimingu, lähevad salvestamata muudatused kaotsi." + +msgid "" +"You have selected an action, but you haven’t saved your changes to " +"individual fields yet. Please click OK to save. You’ll need to re-run the " +"action." +msgstr "" +"Valisite toimingu, kuid pole salvestanud muudatusi lahtrites. Salvestamiseks " +"palun vajutage OK. Peate toimingu uuesti käivitama." + +msgid "" +"You have selected an action, and you haven’t made any changes on individual " +"fields. You’re probably looking for the Go button rather than the Save " +"button." +msgstr "" +"Valisite toimingu, kuid ei muutnud ühtegi lahtrit. Tõenäoliselt otsite Mine " +"mitte Salvesta nuppu." + +msgid "Now" +msgstr "Praegu" + +msgid "Midnight" +msgstr "Kesköö" + +msgid "6 a.m." +msgstr "6 hommikul" + +msgid "Noon" +msgstr "Keskpäev" + +msgid "6 p.m." +msgstr "6 õhtul" + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "Märkus: Olete %s tund serveri ajast ees." +msgstr[1] "Märkus: Olete %s tundi serveri ajast ees." + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "Märkus: Olete %s tund serveri ajast maas." +msgstr[1] "Märkus: Olete %s tundi serveri ajast maas." + +msgid "Choose a Time" +msgstr "Vali aeg" + +msgid "Choose a time" +msgstr "Vali aeg" + +msgid "Cancel" +msgstr "Tühista" + +msgid "Today" +msgstr "Täna" + +msgid "Choose a Date" +msgstr "Vali kuupäev" + +msgid "Yesterday" +msgstr "Eile" + +msgid "Tomorrow" +msgstr "Homme" + +msgid "January" +msgstr "jaanuar" + +msgid "February" +msgstr "veebruar" + +msgid "March" +msgstr "märts" + +msgid "April" +msgstr "aprill" + +msgid "May" +msgstr "mai" + +msgid "June" +msgstr "juuni" + +msgid "July" +msgstr "juuli" + +msgid "August" +msgstr "august" + +msgid "September" +msgstr "september" + +msgid "October" +msgstr "oktoober" + +msgid "November" +msgstr "november" + +msgid "December" +msgstr "detsember" + +msgctxt "abbrev. month January" +msgid "Jan" +msgstr "jaan" + +msgctxt "abbrev. month February" +msgid "Feb" +msgstr "veebr" + +msgctxt "abbrev. month March" +msgid "Mar" +msgstr "märts" + +msgctxt "abbrev. month April" +msgid "Apr" +msgstr "apr" + +msgctxt "abbrev. month May" +msgid "May" +msgstr "mai" + +msgctxt "abbrev. month June" +msgid "Jun" +msgstr "juuni" + +msgctxt "abbrev. month July" +msgid "Jul" +msgstr "juuli" + +msgctxt "abbrev. month August" +msgid "Aug" +msgstr "aug" + +msgctxt "abbrev. month September" +msgid "Sep" +msgstr "sept" + +msgctxt "abbrev. month October" +msgid "Oct" +msgstr "okt" + +msgctxt "abbrev. month November" +msgid "Nov" +msgstr "nov" + +msgctxt "abbrev. month December" +msgid "Dec" +msgstr "dets" + +msgid "Sunday" +msgstr "pühapäev" + +msgid "Monday" +msgstr "esmaspäev" + +msgid "Tuesday" +msgstr "teisipäev" + +msgid "Wednesday" +msgstr "kolmapäev" + +msgid "Thursday" +msgstr "neljapäev" + +msgid "Friday" +msgstr "reede" + +msgid "Saturday" +msgstr "laupäev" + +msgctxt "abbrev. day Sunday" +msgid "Sun" +msgstr "pühap." + +msgctxt "abbrev. day Monday" +msgid "Mon" +msgstr "esmasp." + +msgctxt "abbrev. day Tuesday" +msgid "Tue" +msgstr "teisip." + +msgctxt "abbrev. day Wednesday" +msgid "Wed" +msgstr "kolmap." + +msgctxt "abbrev. day Thursday" +msgid "Thur" +msgstr "neljap." + +msgctxt "abbrev. day Friday" +msgid "Fri" +msgstr "reede" + +msgctxt "abbrev. day Saturday" +msgid "Sat" +msgstr "laup." + +msgctxt "one letter Sunday" +msgid "S" +msgstr "P" + +msgctxt "one letter Monday" +msgid "M" +msgstr "E" + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "T" + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "K" + +msgctxt "one letter Thursday" +msgid "T" +msgstr "N" + +msgctxt "one letter Friday" +msgid "F" +msgstr "R" + +msgctxt "one letter Saturday" +msgid "S" +msgstr "L" + +msgid "Show" +msgstr "Näita" + +msgid "Hide" +msgstr "Varja" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/eu/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/eu/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..a2c9933017d4189e39cac514708df23fe80163bb GIT binary patch literal 15009 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 GBlACG$|%YJ literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/eu/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/eu/LC_MESSAGES/django.po new file mode 100644 index 0000000000..3aba9f806c --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/eu/LC_MESSAGES/django.po @@ -0,0 +1,732 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Aitzol Naberan , 2013,2016 +# Eneko Illarramendi , 2017-2019,2022 +# Jannis Leidel , 2011 +# julen, 2012-2013 +# julen, 2013 +# Urtzi Odriozola , 2017 +# Yoaira García , 2021 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2022-05-17 05:10-0500\n" +"PO-Revision-Date: 2022-07-25 07:05+0000\n" +"Last-Translator: Eneko Illarramendi \n" +"Language-Team: Basque (http://www.transifex.com/django/django/language/eu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: eu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "Ezabatu aukeratutako %(verbose_name_plural)s" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "%(count)d %(items)s elementu ezabatu dira." + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "Ezin da %(name)s ezabatu" + +msgid "Are you sure?" +msgstr "Ziur al zaude?" + +msgid "Administration" +msgstr "Kudeaketa" + +msgid "All" +msgstr "Dena" + +msgid "Yes" +msgstr "Bai" + +msgid "No" +msgstr "Ez" + +msgid "Unknown" +msgstr "Ezezaguna" + +msgid "Any date" +msgstr "Edozein data" + +msgid "Today" +msgstr "Gaur" + +msgid "Past 7 days" +msgstr "Aurreko 7 egunak" + +msgid "This month" +msgstr "Hilabete hau" + +msgid "This year" +msgstr "Urte hau" + +msgid "No date" +msgstr "Datarik ez" + +msgid "Has date" +msgstr "Data dauka" + +msgid "Empty" +msgstr "Hutsik" + +msgid "Not empty" +msgstr "" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" +"Idatzi kudeaketa gunerako %(username)s eta pasahitz zuzena. Kontuan izan " +"biek maiuskula/minuskulak desberdintzen dituztela." + +msgid "Action:" +msgstr "Ekintza:" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "Gehitu beste %(verbose_name)s bat" + +msgid "Remove" +msgstr "Kendu" + +msgid "Addition" +msgstr "Gehitzea" + +msgid "Change" +msgstr "Aldatu" + +msgid "Deletion" +msgstr "Ezabatzea" + +msgid "action time" +msgstr "Ekintza hordua" + +msgid "user" +msgstr "erabiltzailea" + +msgid "content type" +msgstr "eduki mota" + +msgid "object id" +msgstr "objetuaren id-a" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/library/functions.html#repr) +msgid "object repr" +msgstr "objeturaren adierazpena" + +msgid "action flag" +msgstr "Ekintza botoia" + +msgid "change message" +msgstr "Mezua aldatu" + +msgid "log entry" +msgstr "Log sarrera" + +msgid "log entries" +msgstr "log sarrerak" + +#, python-format +msgid "Added “%(object)s”." +msgstr "\"%(object)s\" gehituta." + +#, python-format +msgid "Changed “%(object)s” — %(changes)s" +msgstr "" + +#, python-format +msgid "Deleted “%(object)s.”" +msgstr "\"%(object)s\" ezabatuta." + +msgid "LogEntry Object" +msgstr "LogEntry objetua" + +#, python-brace-format +msgid "Added {name} “{object}”." +msgstr "{name} \"{object}\" gehituta." + +msgid "Added." +msgstr "Gehituta" + +msgid "and" +msgstr "eta" + +#, python-brace-format +msgid "Changed {fields} for {name} “{object}”." +msgstr "" + +#, python-brace-format +msgid "Changed {fields}." +msgstr "{fields} aldatuta." + +#, python-brace-format +msgid "Deleted {name} “{object}”." +msgstr "{name} \"{object}\" ezabatuta." + +msgid "No fields changed." +msgstr "Ez da eremurik aldatu." + +msgid "None" +msgstr "Bat ere ez" + +msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." +msgstr "" +"Bat baino gehiago hautatzeko, sakatu \"Kontrol\" tekla edo \"Command\" Mac " +"batean." + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully." +msgstr "" + +msgid "You may edit it again below." +msgstr "Aldaketa gehiago egin ditzazkezu jarraian." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was added successfully. You may add another {name} below." +msgstr "" +"{name} \"{obj}\" ondo gehitu da. Beste {name} bat gehitu dezakezu jarraian." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may edit it again below." +msgstr "" +"{name} \"{obj}\" ondo aldatu da. Aldaketa gehiago egin ditzazkezu jarraian." + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully. You may edit it again below." +msgstr "" +"{name} \"{obj}\" ondo gehitu da. Aldaketa gehiago egin ditzazkezu jarraian." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may add another {name} " +"below." +msgstr "" + +#, python-brace-format +msgid "The {name} “{obj}” was changed successfully." +msgstr "" + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" +"Elementuak aukeratu behar dira beraien gain ekintzak burutzeko. Ez da " +"elementurik aldatu." + +msgid "No action selected." +msgstr "Ez dago ekintzarik aukeratuta." + +#, python-format +msgid "The %(name)s “%(obj)s” was deleted successfully." +msgstr "%(name)s \"%(obj)s\" ondo ezabatu da." + +#, python-format +msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" +msgstr "" +"\"%(key)s\" ID-a duen %(name)s ez da existitzen. Agian ezabatua izan da?" + +#, python-format +msgid "Add %s" +msgstr "Gehitu %s" + +#, python-format +msgid "Change %s" +msgstr "Aldatu %s" + +#, python-format +msgid "View %s" +msgstr "%s ikusi" + +msgid "Database error" +msgstr "Errorea datu-basean" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "%(name)s %(count)s ondo aldatu da." +msgstr[1] "%(count)s %(name)s ondo aldatu dira." + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "Guztira %(total_count)s aukeratuta" +msgstr[1] "Guztira %(total_count)s aukeratuta" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "Guztira %(cnt)s, 0 aukeratuta" + +#, python-format +msgid "Change history: %s" +msgstr "Aldaketen historia: %s" + +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "%(class_name)s %(instance)s" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" +"%(class_name)s klaseko %(instance)s instantziak ezabatzeak erlazionatutako " +"objektu hauek ezabatzea eragingo du:\n" +"%(related_objects)s" + +msgid "Django site admin" +msgstr "Django kudeaketa gunea" + +msgid "Django administration" +msgstr "Django kudeaketa" + +msgid "Site administration" +msgstr "Webgunearen kudeaketa" + +msgid "Log in" +msgstr "Sartu" + +#, python-format +msgid "%(app)s administration" +msgstr "%(app)s kudeaketa" + +msgid "Page not found" +msgstr "Ez da orririk aurkitu" + +msgid "We’re sorry, but the requested page could not be found." +msgstr "Sentitzen dugu, baina eskatutako orria ezin da aurkitu." + +msgid "Home" +msgstr "Hasiera" + +msgid "Server error" +msgstr "Zerbitzariaren errorea" + +msgid "Server error (500)" +msgstr "Zerbitzariaren errorea (500)" + +msgid "Server Error (500)" +msgstr "Zerbitzariaren errorea (500)" + +msgid "" +"There’s been an error. It’s been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" + +msgid "Run the selected action" +msgstr "Burutu aukeratutako ekintza" + +msgid "Go" +msgstr "Joan" + +msgid "Click here to select the objects across all pages" +msgstr "Egin klik hemen orri guztietako objektuak aukeratzeko" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "Hautatu %(total_count)s %(module_name)s guztiak" + +msgid "Clear selection" +msgstr "Garbitu hautapena" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "%(name)s aplikazioaren modeloak" + +msgid "Add" +msgstr "Gehitu" + +msgid "View" +msgstr "Ikusi" + +msgid "You don’t have permission to view or edit anything." +msgstr "Ez duzu ezer ikusteko edo editatzeko baimenik." + +msgid "" +"First, enter a username and password. Then, you’ll be able to edit more user " +"options." +msgstr "" +"Lehenik, sartu erabiltzailea eta pasahitza bat. Gero, editatzeko aukera " +"gehiago izango dituzu. " + +msgid "Enter a username and password." +msgstr "Sartu erabiltzaile izen eta pasahitz bat." + +msgid "Change password" +msgstr "Aldatu pasahitza" + +msgid "Please correct the error below." +msgstr "Mesedez zuzendu erroreak behean." + +msgid "Please correct the errors below." +msgstr "Mesedez zuzendu erroreak behean." + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "" +"Idatzi pasahitz berria %(username)s erabiltzailearentzat." + +msgid "Welcome," +msgstr "Ongi etorri," + +msgid "View site" +msgstr "Webgunea ikusi" + +msgid "Documentation" +msgstr "Dokumentazioa" + +msgid "Log out" +msgstr "Irten" + +#, python-format +msgid "Add %(name)s" +msgstr "Gehitu %(name)s" + +msgid "History" +msgstr "Historia" + +msgid "View on site" +msgstr "Webgunean ikusi" + +msgid "Filter" +msgstr "Iragazkia" + +msgid "Clear all filters" +msgstr "Garbitu filtro guztiak." + +msgid "Remove from sorting" +msgstr "Kendu ordenaziotik" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "Ordenatzeko lehentasuna: %(priority_number)s" + +msgid "Toggle sorting" +msgstr "Txandakatu ordenazioa" + +msgid "Delete" +msgstr "Ezabatu" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" +"%(object_name)s ezabatzean bere '%(escaped_object)s' ere ezabatzen dira, " +"baina zure kontuak ez dauka baimenik objetu mota hauek ezabatzeko:" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" +"%(object_name)s '%(escaped_object)s' ezabatzeak erlazionatutako objektu " +"babestu hauek ezabatzea eskatzen du:" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" +"Ziur zaude %(object_name)s \"%(escaped_object)s\" ezabatu nahi dituzula? " +"Erlazionaturik dauden hurrengo elementuak ere ezabatuko dira:" + +msgid "Objects" +msgstr "Objetuak" + +msgid "Yes, I’m sure" +msgstr "bai, ziur nago " + +msgid "No, take me back" +msgstr "Ez, itzuli atzera" + +msgid "Delete multiple objects" +msgstr "Ezabatu hainbat objektu" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" +"Aukeratutako %(objects_name)s ezabatzeak erlazionatutako objektuak ezabatzea " +"eskatzen du baina zure kontuak ez dauka baimen nahikorik objektu mota hauek " +"ezabatzeko: " + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" +"Aukeratutako %(objects_name)s ezabatzeak erlazionatutako objektu babestu " +"hauek ezabatzea eskatzen du:" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" +"Ziur zaude aukeratutako %(objects_name)s ezabatu nahi duzula? Objektu guzti " +"hauek eta erlazionatutako elementu guztiak ezabatuko dira:" + +msgid "Delete?" +msgstr "Ezabatu?" + +#, python-format +msgid " By %(filter_title)s " +msgstr "Irizpidea: %(filter_title)s" + +msgid "Summary" +msgstr "Laburpena" + +msgid "Recent actions" +msgstr "Azken ekintzak" + +msgid "My actions" +msgstr "Nire ekintzak" + +msgid "None available" +msgstr "Ez dago ezer" + +msgid "Unknown content" +msgstr "Eduki ezezaguna" + +msgid "" +"Something’s wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" +"%(username)s bezala autentikatu zara, baina ez daukazu orrialde honetara " +"sarbidea. Nahi al duzu kontu ezberdin batez sartu?" + +msgid "Forgotten your password or username?" +msgstr "Pasahitza edo erabiltzaile-izena ahaztu duzu?" + +msgid "Toggle navigation" +msgstr "" + +msgid "Start typing to filter…" +msgstr "Hasi idazten filtratzeko..." + +msgid "Filter navigation items" +msgstr "" + +msgid "Date/time" +msgstr "Data/ordua" + +msgid "User" +msgstr "Erabiltzailea" + +msgid "Action" +msgstr "Ekintza" + +msgid "entry" +msgstr "sarrera" + +msgid "entries" +msgstr "sarrerak" + +msgid "" +"This object doesn’t have a change history. It probably wasn’t added via this " +"admin site." +msgstr "" + +msgid "Show all" +msgstr "Erakutsi dena" + +msgid "Save" +msgstr "Gorde" + +msgid "Popup closing…" +msgstr "Popup leihoa ixten..." + +msgid "Search" +msgstr "Bilatu" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "Emaitza %(counter)s " +msgstr[1] "%(counter)s emaitza" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "%(full_result_count)s guztira" + +msgid "Save as new" +msgstr "Gorde berri gisa" + +msgid "Save and add another" +msgstr "Gorde eta beste bat gehitu" + +msgid "Save and continue editing" +msgstr "Gorde eta editatzen jarraitu" + +msgid "Save and view" +msgstr "Gorde eta ikusi" + +msgid "Close" +msgstr "Itxi" + +#, python-format +msgid "Change selected %(model)s" +msgstr "Aldatu aukeratutako %(model)s" + +#, python-format +msgid "Add another %(model)s" +msgstr "Gehitu beste %(model)s" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "Ezabatu aukeratutako %(model)s" + +#, python-format +msgid "View selected %(model)s" +msgstr "" + +msgid "Thanks for spending some quality time with the web site today." +msgstr "" + +msgid "Log in again" +msgstr "Hasi saioa berriro" + +msgid "Password change" +msgstr "Aldatu pasahitza" + +msgid "Your password was changed." +msgstr "Zure pasahitza aldatu egin da." + +msgid "" +"Please enter your old password, for security’s sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" +"Mesedez, sartu zure pasahitza zaharra segurtasunagatik, gero sartu berria bi " +"aldiz, ondo idatzita dagoela ziurtatzeko. " + +msgid "Change my password" +msgstr "Nire pasahitza aldatu" + +msgid "Password reset" +msgstr "Berrezarri pasahitza" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "Zure pasahitza ezarri da. Orain aurrera egin eta sartu zaitezke." + +msgid "Password reset confirmation" +msgstr "Pasahitza berrezartzeko berrespena" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "Idatzi pasahitz berria birritan ondo idatzita dagoela ziurta dezagun." + +msgid "New password:" +msgstr "Pasahitz berria:" + +msgid "Confirm password:" +msgstr "Berretsi pasahitza:" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"Pasahitza berrezartzeko loturak baliogabea dirudi. Baliteke lotura aurretik " +"erabilita egotea. Eskatu berriro pasahitza berrezartzea." + +msgid "" +"We’ve emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" +"Zure pasahitza jartzeko aginduak bidali dizkizugu... sartu duzun posta " +"elektronikoarekin konturen bat baldin badago. Laster jasoko dituzu." + +msgid "" +"If you don’t receive an email, please make sure you’ve entered the address " +"you registered with, and check your spam folder." +msgstr "" +"Posta elektronikorik jasotzen ez baduzu, ziurtatu erregistratu duzun " +"helbidean sartu zarela, eta zure spam horria begiratu. " + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" +"Mezu hau %(site_name)s webgunean pasahitza berrezartzea eskatu duzulako jaso " +"duzu." + +msgid "Please go to the following page and choose a new password:" +msgstr "Zoaz hurrengo orrira eta aukeratu pasahitz berria:" + +msgid "Your username, in case you’ve forgotten:" +msgstr "Zure erabiltzaile-izena, ahaztu baduzu:" + +msgid "Thanks for using our site!" +msgstr "Mila esker gure webgunea erabiltzeagatik!" + +#, python-format +msgid "The %(site_name)s team" +msgstr "%(site_name)s webguneko taldea" + +msgid "" +"Forgotten your password? Enter your email address below, and we’ll email " +"instructions for setting a new one." +msgstr "" +"Pasahitza ahaztu zaizu? Sartu zure helbidea behean, eta berria jartzeko " +"argibideak bidaliko dizkizugu " + +msgid "Email address:" +msgstr "Helbide elektronikoa:" + +msgid "Reset my password" +msgstr "Berrezarri pasahitza" + +msgid "All dates" +msgstr "Data guztiak" + +#, python-format +msgid "Select %s" +msgstr "Aukeratu %s" + +#, python-format +msgid "Select %s to change" +msgstr "Aukeratu %s aldatzeko" + +#, python-format +msgid "Select %s to view" +msgstr "Aukeratu %s ikusteko" + +msgid "Date:" +msgstr "Data:" + +msgid "Time:" +msgstr "Ordua:" + +msgid "Lookup" +msgstr "Lookup" + +msgid "Currently:" +msgstr "Oraingoa:" + +msgid "Change:" +msgstr "Aldatu:" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/eu/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/eu/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..234bff63c360cce59dd8ff9891d69dc1ab42c2e3 GIT binary patch literal 4480 zcmbuBON<;x8Gy@V0%2nwF(iaXLdA*0ns|EG>-dqeH~6({ufuvRd*YCAKsD2~Gwtc= z8oI0ZG2s9b2reiAC5QtO5;r6cNF0Cz2aq^$M7$&-MFPPESsXy(0z!O$PmMhuZxREg z`RnVd`s?*Sy65#hwO1A8Y2+iw?zbs*1^(+UD$4o0l{yMn;M?IB0>1+Jsh2|gRk)k> zw?g~7f!~MkqW_11KM(vBoT2{@@SX5F{3!efd>lT&X7|9wz-7o!tx?tBRrn70>CkQm zb|FisK9nmIP}bQD3v!~5Zj@Fgho?tRb5UwZ-{415@}gnA5$ z-U5_$o`PS8r=j@!H&EiB^WM=qDLhF#htmH8=-`h+dlsWee?4#^@Mz$Pz*B+CfzJe9 z3Vb&3g}~21iQ71^8<++T0)60C;O8LjRt-eTEHZ~Yjy#DRLOzbv5sf^IFhw0hByJBN z5h6w6d>kRzS(x>d8EU(y^Y^=?1(l|KT=2ZKyYf1C#gDBcFMx5QyV5p zO)Ir}U!l&JtZh?urt4f`1GLd+jh|>Wlm0}@Pqxx(Zeg=(u{3G-w0F8)EvHSI(yfix zj$I;kW;~wTzT2?XII5%BH`UJCw(YlUu9j^pFHOF!mXp-eKA*%^T`*bIccDzT)rB&% zYSrZJF7>urP2w!+biKOhTt?+>LqG3IZF0G+?z%G9rfW?s_AG3^VRJ3liFVfI=y$HH zTeh2I@f|I@v+Bm^))(ETT5EeJ7Pwp)DnRU|uGoPe>0Rlf*z6{S=I6Usr%8dO*R`2& za8%vDZ??xiDO}&`)^>=ZB9#m6=;^(qK-r5$bCg=v zZ(4L@cfaX0(`^y$c&HnGzImb$1^?%XMkacz6S@O0B(l1OI4-jS#F*G*9ZRxiEFLEtNnDy#+c@!6x~(TRjf+UH ztm|#2=4FPJwQ2jrWe21yzip+>gcNGwT37f;nN};e8> zIIn6vObv}Qt;WODP{_9$oE{+qYoy_A-I=9(TD!{98ugSqc}ws1RPROJ5AqJE@h~+M za-#;PMsDOrjVI+Y>}EaA(#v^*!)nWueXA~$zSYUTE5?`N+S-*{ddo`lmcC}U%nQ+M zPHHwwdwb_|HqJ)fnfyT;4Az7p53+PuK=4IN)2YTV3aJ8-$LuNIvouAeSDMZM`7 zdgjtv{j%LiM71t&<%V9EKX|A<|73mPu%18KIQ-NT^OTuSn!?wcxyg#uc$YWyQf7Nj zucRrdYWkLV)F-U;og}8DFKWB~(+6a^qX!n|7Zz9|>y)Nr>rHF=4Sm`apDnGP?Rr0G z%*}0XZbn|#PuA_0%$*w@e2g^Ap0nlL{+ZR4)uo$PJQ&T-oFQm!#u>@IhW2*L&ka(O zWXC0K^1}MXXPe9QV>k6=uXUT(m$J5tc>y)_u~y=5oU);9Idds3bCcGWUEVJmIvZ5Y zVsYWP9z8D3X8MsueQ^Kr89tZQ_p@$&(&J+~`mUO?XLG#n&0CJ&`bjl|gm0=L0?VN< znO$fWY9(n0+a~IiAJXKLJ6it6gN}_ix@Gtbhav6qxO{`2vodcSjS7FxoK!DgCmC~PxvlpI<{HM zx@ewrlaA9vQ}Wrrqsh#x=9}_=n0#aB%5~$7BmG})Jw4lSQOvTIVJe}1o@LC*28MCi8Ly<^5hT;n#2cX&G%+# zdUnYFp5Z`jI@2>-d}+F-a-n9DW|J+}!)KO}7(3J2JC4b{x?_h4166og0?iJiTaP3u zGYXJC}J-Ao!|My@GyhdqNqE&o}>=vkzf_)~KE2-, 2011 +# Eneko Illarramendi , 2017,2022 +# Jannis Leidel , 2011 +# julen, 2012-2013 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2022-05-17 05:26-0500\n" +"PO-Revision-Date: 2022-07-25 07:59+0000\n" +"Last-Translator: Eneko Illarramendi \n" +"Language-Team: Basque (http://www.transifex.com/django/django/language/eu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: eu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, javascript-format +msgid "Available %s" +msgstr "%s erabilgarri" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" +"Hau da aukeran dauden %s zerrenda. Hauetako zenbait aukera ditzakezu " +"azpiko \n" +"kaxan hautatu eta kutxen artean dagoen \"Aukeratu\" gezian klik eginez." + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "Idatzi kutxa honetan erabilgarri dauden %s objektuak iragazteko." + +msgid "Filter" +msgstr "Filtroa" + +msgid "Choose all" +msgstr "Denak aukeratu" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "Egin klik %s guztiak batera aukeratzeko." + +msgid "Choose" +msgstr "Aukeratu" + +msgid "Remove" +msgstr "Kendu" + +#, javascript-format +msgid "Chosen %s" +msgstr "%s aukeratuak" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" +"Hau da aukeratutako %s zerrenda. Hauetako zenbait ezaba ditzakezu azpiko " +"kutxan hautatu eta bi kutxen artean dagoen \"Ezabatu\" gezian klik eginez." + +msgid "Remove all" +msgstr "Kendu guztiak" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "Egin klik aukeratutako %s guztiak kentzeko." + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "%(cnt)s-etik %(sel)s aukeratuta" +msgstr[1] "%(cnt)s-etik %(sel)s aukeratuta" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" +"Gorde gabeko aldaketak dauzkazu eremuetan. Ekintza bat exekutatzen baduzu, " +"gorde gabeko aldaketak galduko dira." + +msgid "" +"You have selected an action, but you haven’t saved your changes to " +"individual fields yet. Please click OK to save. You’ll need to re-run the " +"action." +msgstr "" + +msgid "" +"You have selected an action, and you haven’t made any changes on individual " +"fields. You’re probably looking for the Go button rather than the Save " +"button." +msgstr "" + +msgid "Now" +msgstr "Orain" + +msgid "Midnight" +msgstr "Gauerdia" + +msgid "6 a.m." +msgstr "6 a.m." + +msgid "Noon" +msgstr "Eguerdia" + +msgid "6 p.m." +msgstr "6 p.m." + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "Oharra: zerbitzariaren denborarekiko ordu %s aurrerago zaude" +msgstr[1] "Oharra: zerbitzariaren denborarekiko %s ordu aurrerago zaude" + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "Oharra: zerbitzariaren denborarekiko ordu %s atzerago zaude. " +msgstr[1] "Oharra: zerbitzariaren denborarekiko %s ordu atzerago zaude. " + +msgid "Choose a Time" +msgstr "Aukeratu ordu bat" + +msgid "Choose a time" +msgstr "Aukeratu ordu bat" + +msgid "Cancel" +msgstr "Atzera" + +msgid "Today" +msgstr "Gaur" + +msgid "Choose a Date" +msgstr "Aukeratu data bat" + +msgid "Yesterday" +msgstr "Atzo" + +msgid "Tomorrow" +msgstr "Bihar" + +msgid "January" +msgstr "urtarrila" + +msgid "February" +msgstr "otsaila" + +msgid "March" +msgstr "martxoa" + +msgid "April" +msgstr "apirila" + +msgid "May" +msgstr "maiatza" + +msgid "June" +msgstr "ekaina" + +msgid "July" +msgstr "uztaila" + +msgid "August" +msgstr "abuztua" + +msgid "September" +msgstr "iraila" + +msgid "October" +msgstr "urria" + +msgid "November" +msgstr "azaroa" + +msgid "December" +msgstr "abendua" + +msgctxt "abbrev. month January" +msgid "Jan" +msgstr "urt." + +msgctxt "abbrev. month February" +msgid "Feb" +msgstr "ots." + +msgctxt "abbrev. month March" +msgid "Mar" +msgstr "mar." + +msgctxt "abbrev. month April" +msgid "Apr" +msgstr "api." + +msgctxt "abbrev. month May" +msgid "May" +msgstr "mai." + +msgctxt "abbrev. month June" +msgid "Jun" +msgstr "eka." + +msgctxt "abbrev. month July" +msgid "Jul" +msgstr "uzt." + +msgctxt "abbrev. month August" +msgid "Aug" +msgstr "abu." + +msgctxt "abbrev. month September" +msgid "Sep" +msgstr "ira." + +msgctxt "abbrev. month October" +msgid "Oct" +msgstr "urr." + +msgctxt "abbrev. month November" +msgid "Nov" +msgstr "aza." + +msgctxt "abbrev. month December" +msgid "Dec" +msgstr "abe." + +msgctxt "one letter Sunday" +msgid "S" +msgstr "ig." + +msgctxt "one letter Monday" +msgid "M" +msgstr "al." + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "ar." + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "az." + +msgctxt "one letter Thursday" +msgid "T" +msgstr "og." + +msgctxt "one letter Friday" +msgid "F" +msgstr "ol." + +msgctxt "one letter Saturday" +msgid "S" +msgstr "lr." + +msgid "" +"You have already submitted this form. Are you sure you want to submit it " +"again?" +msgstr "" + +msgid "Show" +msgstr "Erakutsi" + +msgid "Hide" +msgstr "Izkutatu" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/fa/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/fa/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..86d3ee65224122d238494418c271bebefd012df2 GIT binary patch literal 20889 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/fa/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/fa/LC_MESSAGES/django.po new file mode 100644 index 0000000000..56a01609b8 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/fa/LC_MESSAGES/django.po @@ -0,0 +1,790 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Ahmad Hosseini , 2020 +# Ali Nikneshan , 2015,2020 +# ali salehi, 2023 +# Ali Vakilzade , 2015 +# Aly Ahmady , 2022 +# Amir Ajorloo , 2020 +# Arash Fazeli , 2012 +# Farshad Asadpour, 2021 +# Jannis Leidel , 2011 +# MJafar Mashhadi , 2018 +# Mohammad Hossein Mojtahedi , 2017,2019 +# Peyman Salehi , 2023 +# Pouya Abbassi, 2016 +# rahim agh , 2021 +# Reza Mohammadi , 2013-2014 +# Sajad Rahimi , 2021 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-09-18 11:41-0300\n" +"PO-Revision-Date: 2023-12-04 07:05+0000\n" +"Last-Translator: ali salehi, 2023\n" +"Language-Team: Persian (http://app.transifex.com/django/django/language/" +"fa/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: fa\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "حذف %(verbose_name_plural)s های انتخاب شده" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "%(count)d تا %(items)s با موفقیت حذف شدند." + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "امکان حذف %(name)s نیست." + +msgid "Are you sure?" +msgstr "آیا مطمئن هستید؟" + +msgid "Administration" +msgstr "مدیریت" + +msgid "All" +msgstr "همه" + +msgid "Yes" +msgstr "بله" + +msgid "No" +msgstr "خیر" + +msgid "Unknown" +msgstr "ناشناخته" + +msgid "Any date" +msgstr "هر تاریخی" + +msgid "Today" +msgstr "امروز" + +msgid "Past 7 days" +msgstr "۷ روز اخیر" + +msgid "This month" +msgstr "این ماه" + +msgid "This year" +msgstr "امسال" + +msgid "No date" +msgstr "بدون تاریخ" + +msgid "Has date" +msgstr "دارای تاریخ" + +msgid "Empty" +msgstr "خالی" + +msgid "Not empty" +msgstr "غیر خالی" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" +"لطفا %(username)s و گذرواژه را برای یک حساب کارمند وارد کنید.\n" +"توجه داشته باشید که ممکن است هر دو به کوچکی و بزرگی حروف حساس باشند." + +msgid "Action:" +msgstr "اقدام:" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "افزودن یک %(verbose_name)s دیگر" + +msgid "Remove" +msgstr "حذف" + +msgid "Addition" +msgstr "افزودن" + +msgid "Change" +msgstr "تغییر" + +msgid "Deletion" +msgstr "کاستن" + +msgid "action time" +msgstr "زمان اقدام" + +msgid "user" +msgstr "کاربر" + +msgid "content type" +msgstr "نوع محتوی" + +msgid "object id" +msgstr "شناسهٔ شیء" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/library/functions.html#repr) +msgid "object repr" +msgstr "صورت شیء" + +msgid "action flag" +msgstr "نشانه عمل" + +msgid "change message" +msgstr "پیغام تغییر" + +msgid "log entry" +msgstr "مورد اتفاقات" + +msgid "log entries" +msgstr "موارد اتفاقات" + +#, python-format +msgid "Added “%(object)s”." +msgstr "\"%(object)s\" افروده شد." + +#, python-format +msgid "Changed “%(object)s” — %(changes)s" +msgstr "تغییر یافت \"%(object)s\" - %(changes)s" + +#, python-format +msgid "Deleted “%(object)s.”" +msgstr "\"%(object)s\" حدف شد." + +msgid "LogEntry Object" +msgstr "شئ LogEntry" + +#, python-brace-format +msgid "Added {name} “{object}”." +msgstr "{name} \"{object}\" اضافه شد." + +msgid "Added." +msgstr "اضافه شد" + +msgid "and" +msgstr "و" + +#, python-brace-format +msgid "Changed {fields} for {name} “{object}”." +msgstr "{fields} برای {name} \"{object}\" تغییر یافتند." + +#, python-brace-format +msgid "Changed {fields}." +msgstr "{fields} تغییر یافتند." + +#, python-brace-format +msgid "Deleted {name} “{object}”." +msgstr "{name} \"{object}\" حذف شد." + +msgid "No fields changed." +msgstr "فیلدی تغییر نیافته است." + +msgid "None" +msgstr "هیچ" + +msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." +msgstr "" +"برای انتخاب بیش از یکی، کلید \"Control\"، یا \"Command\" روی Mac، را نگه " +"دارید." + +msgid "Select this object for an action - {}" +msgstr "" + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully." +msgstr "{name} \"{obj}\" با موفقیت اضافه شد." + +msgid "You may edit it again below." +msgstr "می‌توانید مجدداً ویرایش کنید." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was added successfully. You may add another {name} below." +msgstr "" +"{name} \"{obj}\" با موفقیت اضافه شد. شما میتوانید {name} دیگری در قسمت پایین " +"اضافه کنید." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may edit it again below." +msgstr "" +"{name} \"{obj}\" با موفقیت تغییر یافت. شما میتوانید دوباره آنرا در قسمت " +"پایین ویرایش کنید." + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully. You may edit it again below." +msgstr "" +" {name} \"{obj}\" به موفقیت اضافه شد. شما میتوانید در قسمت پایین، دوباره آن " +"را ویرایش کنید." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may add another {name} " +"below." +msgstr "" +"{name} \"{obj}\" با موفقیت تغییر یافت. شما میتوانید {name} دیگری در قسمت " +"پایین اضافه کنید." + +#, python-brace-format +msgid "The {name} “{obj}” was changed successfully." +msgstr "{name} \"{obj}\" با موفقیت تغییر یافت." + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" +"آیتم ها باید به منظور انجام عملیات بر روی آنها انتخاب شوند. هیچ آیتمی با " +"تغییر نیافته است." + +msgid "No action selected." +msgstr "فعالیتی انتخاب نشده" + +#, python-format +msgid "The %(name)s “%(obj)s” was deleted successfully." +msgstr "%(name)s·\"%(obj)s\" با موفقیت حذف شد." + +#, python-format +msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" +msgstr "%(name)s با کلید «%(key)s» وجود ندارد. ممکن است حذف شده باشد." + +#, python-format +msgid "Add %s" +msgstr "اضافه کردن %s" + +#, python-format +msgid "Change %s" +msgstr "تغییر %s" + +#, python-format +msgid "View %s" +msgstr "مشاهده %s" + +msgid "Database error" +msgstr "خطا در بانک اطلاعاتی" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "%(count)s %(name)s با موفقیت تغییر کرد." +msgstr[1] "%(count)s %(name)s با موفقیت تغییر کرد." + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "همه موارد %(total_count)s انتخاب شده" +msgstr[1] "همه موارد %(total_count)s انتخاب شده" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "0 از %(cnt)s انتخاب شده‌اند" + +#, python-format +msgid "Change history: %s" +msgstr "تاریخچهٔ تغییر: %s" + +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "%(class_name)s %(instance)s" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" +"برای حذف %(class_name)s %(instance)s لازم است اشیای حفاظت شدهٔ زیر هم حذف " +"شوند: %(related_objects)s" + +msgid "Django site admin" +msgstr "مدیریت وب‌گاه Django" + +msgid "Django administration" +msgstr "مدیریت Django" + +msgid "Site administration" +msgstr "مدیریت وب‌گاه" + +msgid "Log in" +msgstr "ورود" + +#, python-format +msgid "%(app)s administration" +msgstr "مدیریت ‎%(app)s‎" + +msgid "Page not found" +msgstr "صفحه یافت نشد" + +msgid "We’re sorry, but the requested page could not be found." +msgstr "شرمنده، صفحه مورد تقاضا یافت نشد." + +msgid "Home" +msgstr "شروع" + +msgid "Server error" +msgstr "خطای سرور" + +msgid "Server error (500)" +msgstr "خطای سرور (500)" + +msgid "Server Error (500)" +msgstr "خطای سرور (500)" + +msgid "" +"There’s been an error. It’s been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" +"مشکلی پیش آمده. این مشکل از طریق ایمیل به مدیران وب‌گاه اطلاع داده شد و به " +"زودی اصلاح می‌گردد. از صبر شما متشکریم." + +msgid "Run the selected action" +msgstr "اجرای حرکت انتخاب شده" + +msgid "Go" +msgstr "برو" + +msgid "Click here to select the objects across all pages" +msgstr "برای انتخاب موجودیت‌ها در تمام صفحات اینجا را کلیک کنید" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "انتخاب تمامی %(total_count)s %(module_name)s" + +msgid "Clear selection" +msgstr "لغو انتخاب‌ها" + +msgid "Breadcrumbs" +msgstr "" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "مدلها در برنامه %(name)s " + +msgid "Add" +msgstr "اضافه کردن" + +msgid "View" +msgstr "مشاهده" + +msgid "You don’t have permission to view or edit anything." +msgstr "شما اجازهٔ مشاهده یا ویرایش چیزی را ندارید." + +msgid "" +"First, enter a username and password. Then, you’ll be able to edit more user " +"options." +msgstr "" +"ابتدا یک نام کاربری و گذرواژه وارد کنید. سپس می توانید مشخصات دیگر کاربر را " +"ویرایش کنید." + +msgid "Enter a username and password." +msgstr "یک نام کاربری و رمز عبور را وارد کنید." + +msgid "Change password" +msgstr "تغییر گذرواژه" + +msgid "Please correct the error below." +msgid_plural "Please correct the errors below." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "برای کابر %(username)s یک گذرنامهٔ جدید وارد کنید." + +msgid "Skip to main content" +msgstr "انتقال به محتوای اصلی" + +msgid "Welcome," +msgstr "خوش آمدید،" + +msgid "View site" +msgstr "نمایش وبگاه" + +msgid "Documentation" +msgstr "مستندات" + +msgid "Log out" +msgstr "خروج" + +#, python-format +msgid "Add %(name)s" +msgstr "اضافه‌کردن %(name)s" + +msgid "History" +msgstr "تاریخچه" + +msgid "View on site" +msgstr "مشاهده در وب‌گاه" + +msgid "Filter" +msgstr "فیلتر" + +msgid "Hide counts" +msgstr "" + +msgid "Show counts" +msgstr "نمایش تعداد" + +msgid "Clear all filters" +msgstr "پاک کردن همه فیلترها" + +msgid "Remove from sorting" +msgstr "حذف از مرتب سازی" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "اولویت مرتب‌سازی: %(priority_number)s" + +msgid "Toggle sorting" +msgstr "تعویض مرتب سازی" + +msgid "Toggle theme (current theme: auto)" +msgstr "تغییر رنگ پوسته (حالت کنونی: خودکار)" + +msgid "Toggle theme (current theme: light)" +msgstr "تغییر رنگ پوسته (حالت کنونی: روشن)" + +msgid "Toggle theme (current theme: dark)" +msgstr "تغییر رنگ پوسته (حالت کنونی: تیره)" + +msgid "Delete" +msgstr "حذف" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" +"حذف %(object_name)s·'%(escaped_object)s' می تواند باعث حذف اشیاء مرتبط شود. " +"اما حساب شما دسترسی لازم برای حذف اشیای از انواع زیر را ندارد:" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" +"حذف %(object_name)s '%(escaped_object)s' نیاز به حذف موجودیت‌های مرتبط محافظت " +"شده ذیل دارد:" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" +"آیا مطمئنید که می‌خواهید %(object_name)s·\"%(escaped_object)s\" را حذف کنید؟ " +"کلیهٔ اشیای مرتبط زیر حذف خواهند شد:" + +msgid "Objects" +msgstr "اشیاء" + +msgid "Yes, I’m sure" +msgstr "بله، مطمئن هستم." + +msgid "No, take me back" +msgstr "نه، من را برگردان" + +msgid "Delete multiple objects" +msgstr "حذف اشیاء متعدد" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" +"حذف %(objects_name)s انتخاب شده منجر به حذف موجودیت‌های مرتبط خواهد شد، ولی " +"شناسه شما اجازه حذف اینگونه از موجودیت‌های ذیل را ندارد:" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" +"حذف %(objects_name)s انتخاب شده نیاز به حذف موجودیت‌های مرتبط محافظت شده ذیل " +"دارد:" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" +"آیا در خصوص حذف %(objects_name)s انتخاب شده اطمینان دارید؟ تمام موجودیت‌های " +"ذیل به همراه موارد مرتبط با آنها حذف خواهند شد:" + +msgid "Delete?" +msgstr "حذف؟" + +#, python-format +msgid " By %(filter_title)s " +msgstr "براساس %(filter_title)s " + +msgid "Summary" +msgstr "خلاصه" + +msgid "Recent actions" +msgstr "فعالیتهای اخیر" + +msgid "My actions" +msgstr "فعالیتهای من" + +msgid "None available" +msgstr "چیزی در دسترس نیست" + +msgid "Added:" +msgstr "اضافه شده:" + +msgid "Changed:" +msgstr "ویرایش شده:" + +msgid "Deleted:" +msgstr "حذف شده:" + +msgid "Unknown content" +msgstr "محتوا ناشناخته" + +msgid "" +"Something’s wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" +"در نصب بانک اطلاعاتی شما مشکلی وجود دارد. مطمئن شوید که جداول مربوطه به " +"درستی ایجاد شده‌اند و اطمینان حاصل کنید که بانک اطلاعاتی توسط کاربر مربوطه " +"قابل خواندن می باشد." + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" +"شما به عنوان %(username)sوارد شده اید. ولی اجازه مشاهده صفحه فوق را نداریدو " +"آیا مایلید با کاربر دیگری وارد شوید؟" + +msgid "Forgotten your password or username?" +msgstr "گذرواژه یا نام کاربری خود را فراموش کرده‌اید؟" + +msgid "Toggle navigation" +msgstr "تعویض جهت یابی" + +msgid "Sidebar" +msgstr "ستون کناری" + +msgid "Start typing to filter…" +msgstr "آغار به کار نوشتن برای فیلترکردن ..." + +msgid "Filter navigation items" +msgstr "فیلتر کردن آیتم های مسیریابی" + +msgid "Date/time" +msgstr "تاریخ/ساعت" + +msgid "User" +msgstr "کاربر" + +msgid "Action" +msgstr "عمل" + +msgid "entry" +msgid_plural "entries" +msgstr[0] "" +msgstr[1] "" + +msgid "" +"This object doesn’t have a change history. It probably wasn’t added via this " +"admin site." +msgstr "" +"این شیء هنوز تاریخچه تغییرات ندارد. ممکن است توسط این وب‌گاه مدیر ساخته نشده " +"باشد." + +msgid "Show all" +msgstr "نمایش همه" + +msgid "Save" +msgstr "ذخیره" + +msgid "Popup closing…" +msgstr "در حال بستن پنجره..." + +msgid "Search" +msgstr "جستجو" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "%(counter)s نتیجه" +msgstr[1] "%(counter)s نتیجه" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "در مجموع %(full_result_count)s تا" + +msgid "Save as new" +msgstr "ذخیره به عنوان جدید" + +msgid "Save and add another" +msgstr "ذخیره و ایجاد یکی دیگر" + +msgid "Save and continue editing" +msgstr "ذخیره و ادامهٔ ویرایش" + +msgid "Save and view" +msgstr "ذخیره و نمایش" + +msgid "Close" +msgstr "بستن" + +#, python-format +msgid "Change selected %(model)s" +msgstr "تغییر دادن %(model)s انتخاب شده" + +#, python-format +msgid "Add another %(model)s" +msgstr "افزدون %(model)s دیگر" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "حذف کردن %(model)s انتخاب شده" + +#, python-format +msgid "View selected %(model)s" +msgstr "نمایش %(model)sهای انتخاب شده" + +msgid "Thanks for spending some quality time with the web site today." +msgstr "" +"از شما ممنون هستیم که زمان با ارزش خود را برای این تارنما امروز صرف کرده اید" + +msgid "Log in again" +msgstr "ورود دوباره" + +msgid "Password change" +msgstr "تغییر گذرواژه" + +msgid "Your password was changed." +msgstr "گذرواژهٔ شما تغییر یافت." + +msgid "" +"Please enter your old password, for security’s sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" +"برای امنیت بیشتر٬ لطفا گذرواژه قدیمی خود را وارد کنید٬ سپس گذرواژه جدیدتان " +"را دوبار وارد کنید تا ما بتوانیم چک کنیم که به درستی تایپ کرده‌اید. " + +msgid "Change my password" +msgstr "تغییر گذرواژهٔ من" + +msgid "Password reset" +msgstr "ایجاد گذرواژهٔ جدید" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "گذرواژهٔ جدیدتان تنظیم شد. اکنون می‌توانید وارد وب‌گاه شوید." + +msgid "Password reset confirmation" +msgstr "تأیید گذرواژهٔ جدید" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" +"گذرواژهٔ جدیدتان را دوبار وارد کنید تا ما بتوانیم چک کنیم که به درستی تایپ " +"کرده‌اید." + +msgid "New password:" +msgstr "گذرواژهٔ جدید:" + +msgid "Confirm password:" +msgstr "تکرار گذرواژه:" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"پیوند ایجاد گذرواژهٔ جدید نامعتبر بود، احتمالاً به این علت که قبلاً از آن " +"استفاده شده است. لطفاً برای یک گذرواژهٔ جدید درخواست دهید." + +msgid "" +"We’ve emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" +"دستورالعمل تنظیم گذرواژه را برایتان ایمیل کردیم. اگر با ایمیلی که وارد کردید " +"اکانتی وجود داشته باشد باید به زودی این دستورالعمل‌ها را دریافت کنید." + +msgid "" +"If you don’t receive an email, please make sure you’ve entered the address " +"you registered with, and check your spam folder." +msgstr "" +"اگر ایمیلی دریافت نمی‌کنید، لطفاً بررسی کنید که آدرسی که وارد کرده‌اید همان است " +"که با آن ثبت نام کرده‌اید، و پوشهٔ اسپم خود را نیز چک کنید." + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" +"شما این ایمیل را بخاطر تقاضای تغییر رمز حساب در %(site_name)s. دریافت کرده " +"اید." + +msgid "Please go to the following page and choose a new password:" +msgstr "لطفاً به صفحهٔ زیر بروید و یک گذرواژهٔ جدید انتخاب کنید:" + +msgid "Your username, in case you’ve forgotten:" +msgstr "نام کاربری‌تان، چنانچه احیاناً یادتان رفته است:" + +msgid "Thanks for using our site!" +msgstr "ممنون از استفادهٔ شما از وب‌گاه ما" + +#, python-format +msgid "The %(site_name)s team" +msgstr "گروه %(site_name)s" + +msgid "" +"Forgotten your password? Enter your email address below, and we’ll email " +"instructions for setting a new one." +msgstr "" +"گذرواژه خود را فراموش کرده اید؟ آدرس ایمیل خود را وارد کنید و ما مراحل تعیین " +"کلمه عبور جدید را برای شما ایمیل می‌کنیم." + +msgid "Email address:" +msgstr "آدرس ایمیل:" + +msgid "Reset my password" +msgstr "ایجاد گذرواژهٔ جدید" + +msgid "Select all objects on this page for an action" +msgstr "" + +msgid "All dates" +msgstr "همهٔ تاریخ‌ها" + +#, python-format +msgid "Select %s" +msgstr "%s انتخاب کنید" + +#, python-format +msgid "Select %s to change" +msgstr "%s را برای تغییر انتخاب کنید" + +#, python-format +msgid "Select %s to view" +msgstr "%s را برای مشاهده انتخاب کنید" + +msgid "Date:" +msgstr "تاریخ:" + +msgid "Time:" +msgstr "زمان:" + +msgid "Lookup" +msgstr "جستجو" + +msgid "Currently:" +msgstr "در حال حاضر:" + +msgid "Change:" +msgstr "تغییر یافته:" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/fa/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/fa/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..2add5c779c5c97c958d439b7647cf4d3e3dfdadf GIT binary patch literal 6050 zcmc(he~esJ700hSB5uVWpcN71S}C-`%(evzPARswEEe6iwu?|hjBj@C?mU=zZ+-90 zZr2#nHQSvUTZ6V5h(r)0yR2=O{s3vCjfsi+kNjogdu>7#|IvTcM5BKg6F=v^JG-;f z<%eS8%iQ<9Kh8bp+;hJ7ym{&J!nYL9Cfe1~-mKIf!2&OyeQ#CjHgE#G1U%#LryxJ| z3pf51_zuRucH`eU`~!Fy^M7{uFNe!e*2DYQEr4E3G@!v_Joa2Fa=KF>~TvT6jxF38M<3~WYs3#pB16MLW3w{Lr zt-}JsVt*AV_U-^b4(Vhm3l9GTik&aNC)e{;hetq>e*zT#J`Li!I_=hf24;+31pf-oT%PZL9OuN3 zY4CI4v!M95jNtweTn>JQxJnYv0=qc8tY1bl#om>m_;W2N^EbKiZEn036#Y9K-Ve$- zJy7-yfwC_K#ovcPuCzMj@DYcH9e&&4V-6p8_yj0!%CkBL`xYB3+;}Z0wh>hyrrkgz zoaz?ZHM9~v{%UE~Im*@~HCAFo!9+^fsYV10q`R)a=t!B_PDkf5W zrV=&1Xk7LA^@Q;!{i;#-c!8a}r&%9Y_cQ~e`n_nd#(P}#`_;f7t|e-F7zVr&Q`URJ zruHH^tgeO4NP9KoRVALWiAGJNraxp^rmNvtexfDgsrHx{E{Zx~R?UOQ z?HftZv^SXeVQ`a;-?$S9Uf%auq8nZn$_J7OFBmr5=>Q+9{-|GVdUdRudNsDuK^(%4 zL}7(%ITMP@lyXS3rEKnu87TWcwK&NY| zU7-qex|Up>DuCT9RIUQ$>!RtvFx@R}t6PD0mpJu~+3~K~?bKDNodr5wORlCAz^;|~ zno^*r!hpD$1d{8%$cN~KzRtP+Fp#6#L_0zgql6b2u&zgk{~c zb4PKP8TCc9C||R(Ubkl5+Txm9ifeAxYi};!y8gyBJUyTG;-okbc|lzFk}xWBr)qvf zd&4z-hwYZ=^8Ki68gB62EDeT@JJ}QrH@#s~957y^tapk_P;yl*Nk+=Oy<=lzr9@Qv zLuRk+=*@j?L)~rf9rAit_w;Y;ziZ)CYfEc-w!l*p;1*@7tP`_0=^d$iey~AqW)z!b zo(}T zyKz;Z@6>BoZ|G6{)yV&Kq|@oi`Trg1bT*aFrpK9_(dp@QE^EEK@1UKX`){^fcwVQ^ zr8DU(8Yp zz=?d|98?z$o_|K;?zAXLkLyL=pMNHsVs_3+oy_*j@*9v@q&;ilVGCauE6hWt(iw4= zV=USu?xsiWe7-$9BL7%$bkd%r?QyAN|FQJhY(g)+vs-^|d`W$CM0T18;FroK2&+WB zrP8zbIm61N%Fbm|Bt=4mmnX>llsf;YjI#r|EZN8=#e3$_@H7GvQ)ExkVOruXQ4z+R zPG?j*%d=QymQAAfB&Otc zE>sR=tv`}EO&+bgSR}b9T+u1J0z=kg7>D3dSTU2emL#z|*#v&zKjc|BT&G4?xBkQP zb-Mq`ht1E*kq91lM8DQSZSFWC^cS*A@goOI9XL;Om+#7ESgyoLuB}*1rov?J82+azuqzGkS zBZ|<(l~Yb2e4oqz9Oo+(Fd~Jt;}Wa$n#k zR%b0K19I!0l^aM#S}-jy@AIGI5_dfP5v-74%m;w~>70xkD!12?WI=^91QQnJMPyGp z28d27vLxD82T{y9y7MoeYGP|01CCmgh_-2zM|827cKX?PCVgJ=y*MyXj6WTuYhjxh zo{|)cKXP~A40DocA%r9m2gMIj-YJ{4L, 2011-2012 +# Alireza Savand , 2012 +# Ali Vakilzade , 2015 +# Jannis Leidel , 2011 +# Pouya Abbassi, 2016 +# rahim agh , 2020-2021 +# Reza Mohammadi , 2014 +# Sina Cheraghi , 2011 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-01-15 09:00+0100\n" +"PO-Revision-Date: 2021-04-03 13:56+0000\n" +"Last-Translator: rahim agh \n" +"Language-Team: Persian (http://www.transifex.com/django/django/language/" +"fa/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: fa\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#, javascript-format +msgid "Available %s" +msgstr "%sی موجود" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" +"این لیست%s های در دسترس است. شما ممکن است برخی از آنها را در محل زیرانتخاب " +"نمایید و سپس روی \"انتخاب\" بین دو جعبه کلیک کنید." + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "برای غربال فهرست %sی موجود درون این جعبه تایپ کنید." + +msgid "Filter" +msgstr "غربال" + +msgid "Choose all" +msgstr "انتخاب همه" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "برای انتخاب یکجای همهٔ %s کلیک کنید." + +msgid "Choose" +msgstr "انتخاب" + +msgid "Remove" +msgstr "حذف" + +#, javascript-format +msgid "Chosen %s" +msgstr "%s انتخاب شده" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" +"این فهرست %s های انتخاب شده است. شما ممکن است برخی از انتخاب آنها را در محل " +"زیر وارد نمایید و سپس روی \"حذف\" جهت دار بین دو جعبه حذف شده است." + +msgid "Remove all" +msgstr "حذف همه" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "برای حذف یکجای همهٔ %sی انتخاب شده کلیک کنید." + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] " %(sel)s از %(cnt)s انتخاب شده‌اند" +msgstr[1] " %(sel)s از %(cnt)s انتخاب شده‌اند" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" +"شما تغییراتی در بعضی فیلدهای قابل تغییر انجام داده اید. اگر کاری انجام " +"دهید، تغییرات از دست خواهند رفت" + +msgid "" +"You have selected an action, but you haven’t saved your changes to " +"individual fields yet. Please click OK to save. You’ll need to re-run the " +"action." +msgstr "" +"شما یک اقدام را انتخاب کرده‌اید، ولی تغییراتی که در فیلدهای شخصی وارد کرده‌اید " +"هنوز ذخیره نشده‌اند. لطفاً کلید OK را برای ذخیره کردن تغییرات بزنید. لازم است " +"که اقدام را دوباره اجرا کنید." + +msgid "" +"You have selected an action, and you haven’t made any changes on individual " +"fields. You’re probably looking for the Go button rather than the Save " +"button." +msgstr "" +"شما یک اقدام را انتخاب کرده‌اید، ولی تغییراتی در فیلدهای شخصی وارد نکرده‌اید. " +"احتمالاً به جای کلید Save به دنبال کلید Go می‌گردید." + +msgid "Now" +msgstr "اکنون" + +msgid "Midnight" +msgstr "نیمه‌شب" + +msgid "6 a.m." +msgstr "۶ صبح" + +msgid "Noon" +msgstr "ظهر" + +msgid "6 p.m." +msgstr "۶ بعدازظهر" + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "توجه: شما %s ساعت از زمان سرور جلو هستید." +msgstr[1] "توجه: شما %s ساعت از زمان سرور جلو هستید." + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "توجه: شما %s ساعت از زمان سرور عقب هستید." +msgstr[1] "توجه: شما %s ساعت از زمان سرور عقب هستید." + +msgid "Choose a Time" +msgstr "یک زمان انتخاب کنید" + +msgid "Choose a time" +msgstr "یک زمان انتخاب کنید" + +msgid "Cancel" +msgstr "انصراف" + +msgid "Today" +msgstr "امروز" + +msgid "Choose a Date" +msgstr "یک تاریخ انتخاب کنید" + +msgid "Yesterday" +msgstr "دیروز" + +msgid "Tomorrow" +msgstr "فردا" + +msgid "January" +msgstr "ژانویه" + +msgid "February" +msgstr "فوریه" + +msgid "March" +msgstr "مارس" + +msgid "April" +msgstr "آوریل" + +msgid "May" +msgstr "می" + +msgid "June" +msgstr "ژوئن" + +msgid "July" +msgstr "جولای" + +msgid "August" +msgstr "آگوست" + +msgid "September" +msgstr "سپتامبر" + +msgid "October" +msgstr "اکتبر" + +msgid "November" +msgstr "نوامبر" + +msgid "December" +msgstr "دسامبر" + +msgctxt "abbrev. month January" +msgid "Jan" +msgstr "ژانویه" + +msgctxt "abbrev. month February" +msgid "Feb" +msgstr "فوریه" + +msgctxt "abbrev. month March" +msgid "Mar" +msgstr "مارس" + +msgctxt "abbrev. month April" +msgid "Apr" +msgstr "آوریل" + +msgctxt "abbrev. month May" +msgid "May" +msgstr "می" + +msgctxt "abbrev. month June" +msgid "Jun" +msgstr "ژوئن" + +msgctxt "abbrev. month July" +msgid "Jul" +msgstr "ژوئیه" + +msgctxt "abbrev. month August" +msgid "Aug" +msgstr "اوت" + +msgctxt "abbrev. month September" +msgid "Sep" +msgstr "سپتامبر" + +msgctxt "abbrev. month October" +msgid "Oct" +msgstr "اکتبر" + +msgctxt "abbrev. month November" +msgid "Nov" +msgstr "نوامبر" + +msgctxt "abbrev. month December" +msgid "Dec" +msgstr "دسامبر" + +msgctxt "one letter Sunday" +msgid "S" +msgstr "ی" + +msgctxt "one letter Monday" +msgid "M" +msgstr "د" + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "س" + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "چ" + +msgctxt "one letter Thursday" +msgid "T" +msgstr "پ" + +msgctxt "one letter Friday" +msgid "F" +msgstr "ج" + +msgctxt "one letter Saturday" +msgid "S" +msgstr "ش" + +msgid "Show" +msgstr "نمایش" + +msgid "Hide" +msgstr "پنهان کردن" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/fi/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/fi/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..86ef000b47b6a3b10028dcf328b1512459a882d4 GIT binary patch literal 17289 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 r#~f@#UcWvXTwzM>e&vKh, 2011 +# Jannis Leidel , 2011 +# Jiri Grönroos , 2021,2023 +# Klaus Dahlén, 2012 +# Nikolay Korotkiy , 2018 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-09-18 11:41-0300\n" +"PO-Revision-Date: 2023-12-04 07:05+0000\n" +"Last-Translator: Jiri Grönroos , 2021,2023\n" +"Language-Team: Finnish (http://app.transifex.com/django/django/language/" +"fi/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: fi\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "Poista valitut \"%(verbose_name_plural)s\"-kohteet" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "%(count)d \"%(items)s\"-kohdetta poistettu." + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "Ei voida poistaa: %(name)s" + +msgid "Are you sure?" +msgstr "Oletko varma?" + +msgid "Administration" +msgstr "Hallinta" + +msgid "All" +msgstr "Kaikki" + +msgid "Yes" +msgstr "Kyllä" + +msgid "No" +msgstr "Ei" + +msgid "Unknown" +msgstr "Tuntematon" + +msgid "Any date" +msgstr "Mikä tahansa päivä" + +msgid "Today" +msgstr "Tänään" + +msgid "Past 7 days" +msgstr "Viimeiset 7 päivää" + +msgid "This month" +msgstr "Tässä kuussa" + +msgid "This year" +msgstr "Tänä vuonna" + +msgid "No date" +msgstr "Ei päivämäärää" + +msgid "Has date" +msgstr "On päivämäärä" + +msgid "Empty" +msgstr "Tyhjä" + +msgid "Not empty" +msgstr "Ei tyhjä" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" +"Ole hyvä ja syötä henkilökuntatilin %(username)s ja salasana. Huomaa että " +"kummassakin kentässä isoilla ja pienillä kirjaimilla saattaa olla merkitystä." + +msgid "Action:" +msgstr "Toiminto:" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "Lisää toinen %(verbose_name)s" + +msgid "Remove" +msgstr "Poista" + +msgid "Addition" +msgstr "Lisäys" + +msgid "Change" +msgstr "Muokkaa" + +msgid "Deletion" +msgstr "Poisto" + +msgid "action time" +msgstr "tapahtumahetki" + +msgid "user" +msgstr "käyttäjä" + +msgid "content type" +msgstr "sisältötyyppi" + +msgid "object id" +msgstr "kohteen tunniste" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/library/functions.html#repr) +msgid "object repr" +msgstr "kohteen tiedot" + +msgid "action flag" +msgstr "tapahtumatyyppi" + +msgid "change message" +msgstr "selitys" + +msgid "log entry" +msgstr "lokimerkintä" + +msgid "log entries" +msgstr "lokimerkinnät" + +#, python-format +msgid "Added “%(object)s”." +msgstr "Lisätty \"%(object)s\"." + +#, python-format +msgid "Changed “%(object)s” — %(changes)s" +msgstr "Muokattu \"%(object)s\" - %(changes)s" + +#, python-format +msgid "Deleted “%(object)s.”" +msgstr "Poistettu \"%(object)s.\"" + +msgid "LogEntry Object" +msgstr "Lokimerkintätietue" + +#, python-brace-format +msgid "Added {name} “{object}”." +msgstr "Lisätty {name} \"{object}\"." + +msgid "Added." +msgstr "Lisätty." + +msgid "and" +msgstr "ja" + +#, python-brace-format +msgid "Changed {fields} for {name} “{object}”." +msgstr "Muutettu {fields} {name}-kohteelle \"{object}\"." + +#, python-brace-format +msgid "Changed {fields}." +msgstr "Muutettu {fields}." + +#, python-brace-format +msgid "Deleted {name} “{object}”." +msgstr "Poistettu {name} \"{object}\"." + +msgid "No fields changed." +msgstr "Ei muutoksia kenttiin." + +msgid "None" +msgstr "Ei arvoa" + +msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." +msgstr "" +" Pidä \"Ctrl\" (tai Macin \"Command\") pohjassa valitaksesi useita " +"vaihtoehtoja." + +msgid "Select this object for an action - {}" +msgstr "" + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully." +msgstr "{name} \"{obj}\" on lisätty." + +msgid "You may edit it again below." +msgstr "Voit muokata sitä jälleen alla." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was added successfully. You may add another {name} below." +msgstr "{name} \"{obj}\" on lisätty. Voit lisätä toisen {name}-kohteen alla." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may edit it again below." +msgstr "{name} \"{obj}\" on muokattu. Voit muokata sitä edelleen alla." + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully. You may edit it again below." +msgstr "{name} \"{obj}\" on lisätty. Voit muokata sitä edelleen alla." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may add another {name} " +"below." +msgstr "{name} \"{obj}\" on muokattu. Voit lisätä toisen {name}-kohteen alla." + +#, python-brace-format +msgid "The {name} “{obj}” was changed successfully." +msgstr "{name} \"{obj}\" on muokattu." + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" +"Kohteiden täytyy olla valittuna, jotta niihin voi kohdistaa toimintoja. " +"Kohteita ei ole muutettu." + +msgid "No action selected." +msgstr "Ei toimintoa valittuna." + +#, python-format +msgid "The %(name)s “%(obj)s” was deleted successfully." +msgstr "%(name)s \"%(obj)s\" on poistettu." + +#, python-format +msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" +msgstr "%(name)s tunnisteella \"%(key)s\" puuttuu. Se on voitu poistaa." + +#, python-format +msgid "Add %s" +msgstr "Lisää %s" + +#, python-format +msgid "Change %s" +msgstr "Muokkaa %s" + +#, python-format +msgid "View %s" +msgstr "Näytä %s" + +msgid "Database error" +msgstr "Tietokantavirhe" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "%(count)s %(name)s on muokattu." +msgstr[1] "%(count)s \"%(name)s\"-kohdetta on muokattu." + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "%(total_count)s valittu" +msgstr[1] "Kaikki %(total_count)s valittu" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "0 valittuna %(cnt)s mahdollisesta" + +#, python-format +msgid "Change history: %s" +msgstr "Muokkaushistoria: %s" + +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "%(class_name)s %(instance)s" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" +"%(class_name)s %(instance)s poistaminen vaatisi myös seuraavien suojattujen " +"liittyvien kohteiden poiston: %(related_objects)s" + +msgid "Django site admin" +msgstr "Django-sivuston ylläpito" + +msgid "Django administration" +msgstr "Djangon ylläpito" + +msgid "Site administration" +msgstr "Sivuston ylläpito" + +msgid "Log in" +msgstr "Kirjaudu sisään" + +#, python-format +msgid "%(app)s administration" +msgstr "%(app)s-ylläpito" + +msgid "Page not found" +msgstr "Sivua ei löydy" + +msgid "We’re sorry, but the requested page could not be found." +msgstr "Pahoittelemme, pyydettyä sivua ei löytynyt." + +msgid "Home" +msgstr "Etusivu" + +msgid "Server error" +msgstr "Palvelinvirhe" + +msgid "Server error (500)" +msgstr "Palvelinvirhe (500)" + +msgid "Server Error (500)" +msgstr "Palvelinvirhe (500)" + +msgid "" +"There’s been an error. It’s been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" +"Sattui virhe. Virheestä on huomautettu sivuston ylläpitäjille sähköpostitse " +"ja se korjautunee piakkoin. Kiitos kärsivällisyydestä." + +msgid "Run the selected action" +msgstr "Suorita valittu toiminto" + +msgid "Go" +msgstr "Suorita" + +msgid "Click here to select the objects across all pages" +msgstr "Klikkaa tästä valitaksesi kohteet kaikilta sivuilta" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "Valitse kaikki %(total_count)s %(module_name)s" + +msgid "Clear selection" +msgstr "Tyhjennä valinta" + +msgid "Breadcrumbs" +msgstr "Murupolut" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "Sovelluksen %(name)s mallit" + +msgid "Add" +msgstr "Lisää" + +msgid "View" +msgstr "Näytä" + +msgid "You don’t have permission to view or edit anything." +msgstr "Sinulla ei ole oikeutta näyttää tai muokata mitään." + +msgid "" +"First, enter a username and password. Then, you’ll be able to edit more user " +"options." +msgstr "" +"Syötä ensin käyttäjätunnus ja salasana. Sen jälkeen voit muokata muita " +"käyttäjän tietoja." + +msgid "Enter a username and password." +msgstr "Syötä käyttäjätunnus ja salasana." + +msgid "Change password" +msgstr "Vaihda salasana" + +msgid "Please correct the error below." +msgid_plural "Please correct the errors below." +msgstr[0] "Korjaa alla oleva virhe." +msgstr[1] "Korjaa alla olevat virheet." + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "Syötä käyttäjän %(username)s uusi salasana." + +msgid "Skip to main content" +msgstr "Siirry pääsisältöön" + +msgid "Welcome," +msgstr "Tervetuloa," + +msgid "View site" +msgstr "Näytä sivusto" + +msgid "Documentation" +msgstr "Dokumentaatio" + +msgid "Log out" +msgstr "Kirjaudu ulos" + +#, python-format +msgid "Add %(name)s" +msgstr "Lisää %(name)s" + +msgid "History" +msgstr "Muokkaushistoria" + +msgid "View on site" +msgstr "Näytä lopputulos" + +msgid "Filter" +msgstr "Suodatin" + +msgid "Hide counts" +msgstr "Piilota lukumäärät" + +msgid "Show counts" +msgstr "Näytä lukumäärät" + +msgid "Clear all filters" +msgstr "Tyhjennä kaikki suodattimet" + +msgid "Remove from sorting" +msgstr "Poista järjestämisestä" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "Järjestysprioriteetti: %(priority_number)s" + +msgid "Toggle sorting" +msgstr "Kytke järjestäminen" + +msgid "Toggle theme (current theme: auto)" +msgstr "" + +msgid "Toggle theme (current theme: light)" +msgstr "" + +msgid "Toggle theme (current theme: dark)" +msgstr "" + +msgid "Delete" +msgstr "Poista" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" +"Kohteen '%(escaped_object)s' (%(object_name)s) poisto poistaisi myös siihen " +"liittyviä kohteita, mutta sinulla ei ole oikeutta näiden kohteiden " +"poistamiseen:" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" +"%(object_name)s '%(escaped_object)s': poistettaessa joudutaan poistamaan " +"myös seuraavat suojatut siihen liittyvät kohteet:" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" +"Haluatko varmasti poistaa kohteen \"%(escaped_object)s\" (%(object_name)s)? " +"Myös seuraavat kohteet poistettaisiin samalla:" + +msgid "Objects" +msgstr "Kohteet" + +msgid "Yes, I’m sure" +msgstr "Kyllä, olen varma" + +msgid "No, take me back" +msgstr "Ei, mennään takaisin" + +msgid "Delete multiple objects" +msgstr "Poista useita kohteita" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" +"Jos valitut %(objects_name)s poistettaisiin, jouduttaisiin poistamaan niihin " +"liittyviä kohteita. Sinulla ei kuitenkaan ole oikeutta poistaa seuraavia " +"kohdetyyppejä:" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" +"Jos valitut %(objects_name)s poistetaan, pitää poistaa myös seuraavat " +"suojatut niihin liittyvät kohteet:" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" +"Haluatko varmasti poistaa valitut %(objects_name)s? Samalla poistetaan " +"kaikki alla mainitut ja niihin liittyvät kohteet:" + +msgid "Delete?" +msgstr "Poista?" + +#, python-format +msgid " By %(filter_title)s " +msgstr " %(filter_title)s " + +msgid "Summary" +msgstr "Yhteenveto" + +msgid "Recent actions" +msgstr "Viimeisimmät tapahtumat" + +msgid "My actions" +msgstr "Omat tapahtumat" + +msgid "None available" +msgstr "Ei yhtään" + +msgid "Added:" +msgstr "Lisätty:" + +msgid "Changed:" +msgstr "Muutettu:" + +msgid "Deleted:" +msgstr "Poistettu:" + +msgid "Unknown content" +msgstr "Tuntematon sisältö" + +msgid "" +"Something’s wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" +"Tietokanta-asennuksessa on jotain vialla. Varmista, että sopivat taulut on " +"luotu ja että oikea käyttäjä voi lukea tietokantaa." + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" +"Olet kirjautunut käyttäjänä %(username)s, mutta sinulla ei ole pääsyä tälle " +"sivulle. Haluaisitko kirjautua eri tilille?" + +msgid "Forgotten your password or username?" +msgstr "Unohditko salasanasi tai käyttäjätunnuksesi?" + +msgid "Toggle navigation" +msgstr "Kytke navigaatio" + +msgid "Sidebar" +msgstr "Sivupalkki" + +msgid "Start typing to filter…" +msgstr "Kirjoita suodattaaksesi..." + +msgid "Filter navigation items" +msgstr "Suodata navigaatiovaihtoehtoja" + +msgid "Date/time" +msgstr "Pvm/klo" + +msgid "User" +msgstr "Käyttäjä" + +msgid "Action" +msgstr "Tapahtuma" + +msgid "entry" +msgid_plural "entries" +msgstr[0] "merkintä" +msgstr[1] "merkintää" + +msgid "" +"This object doesn’t have a change history. It probably wasn’t added via this " +"admin site." +msgstr "" +"Tällä kohteella ei ole muutoshistoriaa. Sitä ei ole ilmeisesti lisätty tämän " +"ylläpitosivun avulla." + +msgid "Show all" +msgstr "Näytä kaikki" + +msgid "Save" +msgstr "Tallenna ja poistu" + +msgid "Popup closing…" +msgstr "Ponnahdusikkuna sulkeutuu..." + +msgid "Search" +msgstr "Haku" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "%(counter)s osuma" +msgstr[1] "%(counter)s osumaa" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "yhteensä %(full_result_count)s" + +msgid "Save as new" +msgstr "Tallenna uutena" + +msgid "Save and add another" +msgstr "Tallenna ja lisää toinen" + +msgid "Save and continue editing" +msgstr "Tallenna välillä ja jatka muokkaamista" + +msgid "Save and view" +msgstr "Tallenna ja näytä" + +msgid "Close" +msgstr "Sulje" + +#, python-format +msgid "Change selected %(model)s" +msgstr "Muuta valittuja %(model)s" + +#, python-format +msgid "Add another %(model)s" +msgstr "Lisää toinen %(model)s" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "Poista valitut %(model)s" + +#, python-format +msgid "View selected %(model)s" +msgstr "Näytä valitut %(model)s" + +msgid "Thanks for spending some quality time with the web site today." +msgstr "Kiitos sivuillamme viettämästäsi ajasta." + +msgid "Log in again" +msgstr "Kirjaudu uudelleen sisään" + +msgid "Password change" +msgstr "Salasanan vaihtaminen" + +msgid "Your password was changed." +msgstr "Salasanasi on vaihdettu." + +msgid "" +"Please enter your old password, for security’s sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" +"Syötä vanha salasanasi varmistukseksi, ja syötä sitten uusi salasanasi kaksi " +"kertaa, jotta se tulee varmasti oikein." + +msgid "Change my password" +msgstr "Vaihda salasana" + +msgid "Password reset" +msgstr "Salasanan nollaus" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "Salasanasi on asetettu. Nyt voit kirjautua sisään." + +msgid "Password reset confirmation" +msgstr "Salasanan nollauksen vahvistus" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" +"Syötä uusi salasanasi kaksi kertaa, jotta voimme varmistaa että syötit sen " +"oikein." + +msgid "New password:" +msgstr "Uusi salasana:" + +msgid "Confirm password:" +msgstr "Varmista uusi salasana:" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"Salasanan nollauslinkki oli virheellinen, mahdollisesti siksi että se on jo " +"käytetty. Ole hyvä ja pyydä uusi salasanan nollaus." + +msgid "" +"We’ve emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" +"Sinulle on lähetetty sähköpostitse ohjeet salasanasi asettamiseen, mikäli " +"antamallasi sähköpostiosoitteella on olemassa tili." + +msgid "" +"If you don’t receive an email, please make sure you’ve entered the address " +"you registered with, and check your spam folder." +msgstr "" +"Jos viestiä ei näy, ole hyvä ja varmista syöttäneesi oikea sähköpostiosoite " +"sekä tarkista sähköpostisi roskapostikansio." + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" +"Tämä viesti on lähetetty sinulle, koska olet pyytänyt %(site_name)s -" +"sivustolla salasanan palautusta." + +msgid "Please go to the following page and choose a new password:" +msgstr "Määrittele uusi salasanasi oheisella sivulla:" + +msgid "Your username, in case you’ve forgotten:" +msgstr "Käyttäjätunnuksesi siltä varalta, että olet unohtanut sen:" + +msgid "Thanks for using our site!" +msgstr "Kiitos vierailustasi sivuillamme!" + +#, python-format +msgid "The %(site_name)s team" +msgstr "Sivuston %(site_name)s ylläpitäjät" + +msgid "" +"Forgotten your password? Enter your email address below, and we’ll email " +"instructions for setting a new one." +msgstr "" +"Unohditko salasanasi? Syötä sähköpostiosoitteesi alle ja lähetämme sinulle " +"ohjeet uuden salasanan asettamiseksi." + +msgid "Email address:" +msgstr "Sähköpostiosoite:" + +msgid "Reset my password" +msgstr "Nollaa salasanani" + +msgid "Select all objects on this page for an action" +msgstr "" + +msgid "All dates" +msgstr "Kaikki päivät" + +#, python-format +msgid "Select %s" +msgstr "Valitse %s" + +#, python-format +msgid "Select %s to change" +msgstr "Valitse muokattava %s" + +#, python-format +msgid "Select %s to view" +msgstr "Valitse näytettävä %s" + +msgid "Date:" +msgstr "Pvm:" + +msgid "Time:" +msgstr "Klo:" + +msgid "Lookup" +msgstr "Etsi" + +msgid "Currently:" +msgstr "Tällä hetkellä:" + +msgid "Change:" +msgstr "Muokkaa:" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/fi/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/fi/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..e05b815d66ef9d6272d740ecdddf78adee2d5bfc GIT binary patch literal 5822 zcmbuCUyNK;8NiP?{$WKxP%CQjP+i(eXZBA^DO-w^($a3b?b2O}H5zhu=j_hexpVJ$ z@43@XAOs%>CXg6ZB1Q#CHYmnGG+Idv(XcP-iy_e$O^E*z^hF+wZzTHr?maU*J6)lP zH+$xH{(R@$?|k2PzI*nyYbsAFo|BZ1Qy#xesV020!Vk~)->uXw@Oj9e`g7pl;k#(R z5!(NTSI~Ylv@d^8DStJ5KmA(*M+0}m5&93p%i#(533vwH2s`k-@H>IeL6%l823~-o z;>(af^-5^}Ch)gV^!purC;S7H^O2(tJsS8GD0+SaUISkYdbNH%6=aT?MFiUvC#f%Xg>wzoIMk`3Pqpi1AiF!V&IPhe;W8w;Ljo9rf|O+rLf)N zxhqi4##Ny%_K_GlOyRhw&rl@h#eThKTc}8kZ4dQZ;WXuw6v=J!+(Nm&sFmkJ&V)QS zlqh^9{uW!vBYXQ4MRN02irDZ3t@O^3Zbp`QY0VjqMW42Bl$v}F^a@u z@6l8wChwrgBjZYrXy1G@sg14QuLR-OQ#Pn`+ryZF5;Ra_Pc)!8Tl6zocb17wwcbIGLPNrxtx8_BdUbEkLZN z=8Vr%+2WjS`*OlugBf#qvGMta%QSz!VRhs({II0WfctBOJzA#Q^H`R&tX}Ab7<2Km zOl@fw7fUQ8=h;`3oYRJ_F%s)VacPj#+sZK7hJ{mv7OX#Kk&(CibBSiU&1z~hrTS5@ zu2G1Q|5KyVWN)ico@Qdj`K0`9C9(lEpWCv#+qT$%!1iKLF$49bA}Dn|Iah9RQv<8} zY&|YlIcqb5SY9AO*f1P`-ciP$+AMmP#JdX9c7s6tmxsUUb<5N_E3r7q#LJds5Ti}q zbzD6+5qj9Do)v~eoY-!s$pYuQtD__-e6y4g*f`;Ce2{z3^wiLnPF^e{bD~W-R(osp z5Yijf%a~i2zO=6(*11SQ-L<}^XCrGeTZWB3bzJNy^LyHpFk;JUbf>nO=B0L}X$BO_ z>Ti+ znoW}xzU$Rv_39a$X5@k?U0>nACnKkAJ4tYe#=R-I3#^vLX~>S^0?B3hLX z_LQC+pV(a;-&38uS&!c`b@Qz^jq{A0FqyB;rzXxK@eI*u~FoR*08#vuvyL*0iSd5f{fUYv>&f@7q&jW2W7%d0F2r z+4Hrb`Y3dDoIntB2#oq|Vo8O7B~6zOUvKIdNn*%2N|nk0fa;o6>Q+Xl4f{_v^BH zU`MQPIG`tX?jPyjq&g;Y-siFDU$$DNQBNXLJIUKzvfTJyHL-7Md|Wm1hIh?8S9~=E zGyUbfT$pBUn&+&0M&8T)D^R!BR$XUpwY9dowwkW3_WPSQijvs4W`By_tP6prD<_ey zdC&2P9%FQ|KhtD0PB#lFxd=6Filrh`>&vwhE(>O(U@^B?ZeYSnl1I60tYM>8vC+Al zZ>V>%?2YL4#;IB7qJ&*~(<)^e*2Qb9GOcN|veGh`Ad@bibOf+*oM)l z(Lkbf1s98~2>t%K8O^GNljL04tjTqaLzt+;F0!#I!dMi>v!3gYYf;0k);HM|dnXMx z;x2cs2CtE~w8#{N>$=U1Bt?eEoJ1t2G4@5RrVo3DSPiGh0b9FJK7)KX{M&<96_$zuGp^_6O}P$Fb+4uJeT8*qBSM5MQC$D49m1k;dZmG z#Gnd=rCK@1k2N_bnHjX(G+)8;h5WDDcgC)vwHXT=Ec2&NOvi9boR$AQIlY`y{(~S+ z@Hb&Y=2wTKL`_SMR7WL2s(DF))FuB(RPalVBTSe`+M^-aLY+WQHAfcMeC_`NqsBtu literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/fi/LC_MESSAGES/djangojs.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/fi/LC_MESSAGES/djangojs.po new file mode 100644 index 0000000000..3cc3fbcb60 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/fi/LC_MESSAGES/djangojs.po @@ -0,0 +1,329 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Aarni Koskela, 2015,2017,2020-2022 +# Antti Kaihola , 2011 +# Jannis Leidel , 2011 +# Jiri Grönroos , 2021,2023 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-09-18 15:04-0300\n" +"PO-Revision-Date: 2023-12-04 07:59+0000\n" +"Last-Translator: Jiri Grönroos , 2021,2023\n" +"Language-Team: Finnish (http://app.transifex.com/django/django/language/" +"fi/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: fi\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, javascript-format +msgid "Available %s" +msgstr "Mahdolliset %s" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" +"Tämä on lista saatavilla olevista %s. Valitse alla olevasta laatikosta " +"haluamasi ja siirrä ne valittuihin klikkamalla \"Valitse\"-nuolta " +"laatikoiden välillä." + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "Kirjoita tähän listaan suodattaaksesi %s-listaa." + +msgid "Filter" +msgstr "Suodatin" + +msgid "Choose all" +msgstr "Valitse kaikki" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "Klikkaa valitaksesi kaikki %s kerralla." + +msgid "Choose" +msgstr "Valitse" + +msgid "Remove" +msgstr "Poista" + +#, javascript-format +msgid "Chosen %s" +msgstr "Valitut %s" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" +"Tämä on lista valituista %s. Voit poistaa valintoja valitsemalla ne " +"allaolevasta laatikosta ja siirtämällä ne takaisin valitsemattomiin " +"klikkamalla \"Poista\"-nuolta laatikoiden välillä." + +#, javascript-format +msgid "Type into this box to filter down the list of selected %s." +msgstr "" + +msgid "Remove all" +msgstr "Poista kaikki" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "Klikkaa poistaaksesi kaikki valitut %s kerralla." + +#, javascript-format +msgid "%s selected option not visible" +msgid_plural "%s selected options not visible" +msgstr[0] "" +msgstr[1] "" + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "%(sel)s valittuna %(cnt)s mahdollisesta" +msgstr[1] "%(sel)s valittuna %(cnt)s mahdollisesta" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" +"Sinulla on tallentamattomia muutoksia yksittäisissä muokattavissa kentissä. " +"Jos suoritat toiminnon, tallentamattomat muutoksesi katoavat." + +msgid "" +"You have selected an action, but you haven’t saved your changes to " +"individual fields yet. Please click OK to save. You’ll need to re-run the " +"action." +msgstr "" +"Olet valinnut toiminnon, mutta et ole vielä tallentanut muutoksiasi " +"yksittäisiin kenttiin. Paina OK tallentaaksesi. Sinun pitää suorittaa " +"toiminto uudelleen." + +msgid "" +"You have selected an action, and you haven’t made any changes on individual " +"fields. You’re probably looking for the Go button rather than the Save " +"button." +msgstr "" +"Olet valinnut toiminnon etkä ole tehnyt yhtään muutosta yksittäisissä " +"kentissä. Etsit todennäköisesti Suorita-painiketta Tallenna-painikkeen " +"sijaan." + +msgid "Now" +msgstr "Nyt" + +msgid "Midnight" +msgstr "24" + +msgid "6 a.m." +msgstr "06" + +msgid "Noon" +msgstr "12" + +msgid "6 p.m." +msgstr "18:00" + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "Huom: Olet %s tunnin palvelinaikaa edellä." +msgstr[1] "Huom: Olet %s tuntia palvelinaikaa edellä." + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "Huom: Olet %s tunnin palvelinaikaa jäljessä." +msgstr[1] "Huom: Olet %s tuntia palvelinaikaa jäljessä." + +msgid "Choose a Time" +msgstr "Valitse kellonaika" + +msgid "Choose a time" +msgstr "Valitse kellonaika" + +msgid "Cancel" +msgstr "Peruuta" + +msgid "Today" +msgstr "Tänään" + +msgid "Choose a Date" +msgstr "Valitse päivämäärä" + +msgid "Yesterday" +msgstr "Eilen" + +msgid "Tomorrow" +msgstr "Huomenna" + +msgid "January" +msgstr "tammikuu" + +msgid "February" +msgstr "helmikuu" + +msgid "March" +msgstr "maaliskuu" + +msgid "April" +msgstr "huhtikuu" + +msgid "May" +msgstr "toukokuu" + +msgid "June" +msgstr "kesäkuu" + +msgid "July" +msgstr "heinäkuu" + +msgid "August" +msgstr "elokuu" + +msgid "September" +msgstr "syyskuu" + +msgid "October" +msgstr "lokakuu" + +msgid "November" +msgstr "marraskuu" + +msgid "December" +msgstr "joulukuu" + +msgctxt "abbrev. month January" +msgid "Jan" +msgstr "Tammi" + +msgctxt "abbrev. month February" +msgid "Feb" +msgstr "Helmi" + +msgctxt "abbrev. month March" +msgid "Mar" +msgstr "Maalis" + +msgctxt "abbrev. month April" +msgid "Apr" +msgstr "Huhti" + +msgctxt "abbrev. month May" +msgid "May" +msgstr "Touko" + +msgctxt "abbrev. month June" +msgid "Jun" +msgstr "Kesä" + +msgctxt "abbrev. month July" +msgid "Jul" +msgstr "Heinä" + +msgctxt "abbrev. month August" +msgid "Aug" +msgstr "Elo" + +msgctxt "abbrev. month September" +msgid "Sep" +msgstr "Syys" + +msgctxt "abbrev. month October" +msgid "Oct" +msgstr "Loka" + +msgctxt "abbrev. month November" +msgid "Nov" +msgstr "Marras" + +msgctxt "abbrev. month December" +msgid "Dec" +msgstr "Joulu" + +msgid "Sunday" +msgstr "Sunnuntai" + +msgid "Monday" +msgstr "Maanantai" + +msgid "Tuesday" +msgstr "Tiistai" + +msgid "Wednesday" +msgstr "Keskiviikko" + +msgid "Thursday" +msgstr "Torstai" + +msgid "Friday" +msgstr "Perjantai" + +msgid "Saturday" +msgstr "Lauantai" + +msgctxt "abbrev. day Sunday" +msgid "Sun" +msgstr "Su" + +msgctxt "abbrev. day Monday" +msgid "Mon" +msgstr "Ma" + +msgctxt "abbrev. day Tuesday" +msgid "Tue" +msgstr "Ti" + +msgctxt "abbrev. day Wednesday" +msgid "Wed" +msgstr "Ke" + +msgctxt "abbrev. day Thursday" +msgid "Thur" +msgstr "To" + +msgctxt "abbrev. day Friday" +msgid "Fri" +msgstr "Pe" + +msgctxt "abbrev. day Saturday" +msgid "Sat" +msgstr "La" + +msgctxt "one letter Sunday" +msgid "S" +msgstr "Su" + +msgctxt "one letter Monday" +msgid "M" +msgstr "Ma" + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "Ti" + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "Ke" + +msgctxt "one letter Thursday" +msgid "T" +msgstr "To" + +msgctxt "one letter Friday" +msgid "F" +msgstr "Pe" + +msgctxt "one letter Saturday" +msgid "S" +msgstr "La" + +msgid "Show" +msgstr "Näytä" + +msgid "Hide" +msgstr "Piilota" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/fr/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/fr/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..2607e2777cafcbd741635e438af3a4a850b1d7e9 GIT binary patch literal 20013 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, 2021 +# Claude Paroz , 2013-2024 +# Claude Paroz , 2011,2013 +# Jannis Leidel , 2011 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-05-22 11:46-0300\n" +"PO-Revision-Date: 2024-08-07 07:05+0000\n" +"Last-Translator: Claude Paroz , 2013-2024\n" +"Language-Team: French (http://app.transifex.com/django/django/language/fr/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: fr\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "Supprimer les %(verbose_name_plural)s sélectionnés" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "La suppression de %(count)d %(items)s a réussi." + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "Impossible de supprimer %(name)s" + +msgid "Are you sure?" +msgstr "Êtes-vous sûr ?" + +msgid "Administration" +msgstr "Administration" + +msgid "All" +msgstr "Tout" + +msgid "Yes" +msgstr "Oui" + +msgid "No" +msgstr "Non" + +msgid "Unknown" +msgstr "Inconnu" + +msgid "Any date" +msgstr "Toutes les dates" + +msgid "Today" +msgstr "Aujourd’hui" + +msgid "Past 7 days" +msgstr "Les 7 derniers jours" + +msgid "This month" +msgstr "Ce mois-ci" + +msgid "This year" +msgstr "Cette année" + +msgid "No date" +msgstr "Aucune date" + +msgid "Has date" +msgstr "Possède une date" + +msgid "Empty" +msgstr "Vide" + +msgid "Not empty" +msgstr "Non vide" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" +"Veuillez compléter correctement les champs « %(username)s » et « mot de " +"passe » d'un compte autorisé. Sachez que les deux champs peuvent être " +"sensibles à la casse." + +msgid "Action:" +msgstr "Action :" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "Ajouter un objet %(verbose_name)s supplémentaire" + +msgid "Remove" +msgstr "Enlever" + +msgid "Addition" +msgstr "Ajout" + +msgid "Change" +msgstr "Modification" + +msgid "Deletion" +msgstr "Suppression" + +msgid "action time" +msgstr "date de l’action" + +msgid "user" +msgstr "utilisateur" + +msgid "content type" +msgstr "type de contenu" + +msgid "object id" +msgstr "id de l’objet" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/library/functions.html#repr) +msgid "object repr" +msgstr "représentation de l’objet" + +msgid "action flag" +msgstr "indicateur de l’action" + +msgid "change message" +msgstr "message de modification" + +msgid "log entry" +msgstr "entrée d’historique" + +msgid "log entries" +msgstr "entrées d’historique" + +#, python-format +msgid "Added “%(object)s”." +msgstr "Ajout de « %(object)s »." + +#, python-format +msgid "Changed “%(object)s” — %(changes)s" +msgstr "Modification de « %(object)s » — %(changes)s" + +#, python-format +msgid "Deleted “%(object)s.”" +msgstr "Suppression de « %(object)s »." + +msgid "LogEntry Object" +msgstr "Objet de journal" + +#, python-brace-format +msgid "Added {name} “{object}”." +msgstr "Ajout de {name} « {object} »." + +msgid "Added." +msgstr "Ajout." + +msgid "and" +msgstr "et" + +#, python-brace-format +msgid "Changed {fields} for {name} “{object}”." +msgstr "Modification de {fields} pour l'objet {name} « {object} »." + +#, python-brace-format +msgid "Changed {fields}." +msgstr "Modification de {fields}." + +#, python-brace-format +msgid "Deleted {name} “{object}”." +msgstr "Suppression de {name} « {object} »." + +msgid "No fields changed." +msgstr "Aucun champ modifié." + +msgid "None" +msgstr "Aucun(e)" + +msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." +msgstr "" +"Maintenez appuyé « Ctrl », ou « Commande (touche pomme) » sur un Mac, pour " +"en sélectionner plusieurs." + +msgid "Select this object for an action - {}" +msgstr "Choisir cet objet pour une action - {}" + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully." +msgstr "L'objet {name} « {obj} » a été ajouté avec succès." + +msgid "You may edit it again below." +msgstr "Vous pouvez l’éditer à nouveau ci-dessous." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was added successfully. You may add another {name} below." +msgstr "" +"L’objet {name} « {obj} » a été ajouté avec succès. Vous pouvez ajouter un " +"autre objet « {name} » ci-dessous." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may edit it again below." +msgstr "" +"L’objet {name} « {obj} » a été modifié avec succès. Vous pouvez l’éditer à " +"nouveau ci-dessous." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may add another {name} " +"below." +msgstr "" +"L’objet {name} « {obj} » a été modifié avec succès. Vous pouvez ajouter un " +"autre objet {name} ci-dessous." + +#, python-brace-format +msgid "The {name} “{obj}” was changed successfully." +msgstr "L’objet {name} « {obj} » a été modifié avec succès." + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" +"Des éléments doivent être sélectionnés afin d’appliquer les actions. Aucun " +"élément n’a été modifié." + +msgid "No action selected." +msgstr "Aucune action sélectionnée." + +#, python-format +msgid "The %(name)s “%(obj)s” was deleted successfully." +msgstr "L’objet %(name)s « %(obj)s » a été supprimé avec succès." + +#, python-format +msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" +msgstr "" +"%(name)s avec l’identifiant « %(key)s » n’existe pas. Peut-être a-t-il été " +"supprimé ?" + +#, python-format +msgid "Add %s" +msgstr "Ajout de %s" + +#, python-format +msgid "Change %s" +msgstr "Modification de %s" + +#, python-format +msgid "View %s" +msgstr "Affichage de %s" + +msgid "Database error" +msgstr "Erreur de base de données" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "%(count)s objet %(name)s a été modifié avec succès." +msgstr[1] "%(count)s objets %(name)s ont été modifiés avec succès." +msgstr[2] "%(count)s objets %(name)s ont été modifiés avec succès." + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "%(total_count)s sélectionné" +msgstr[1] "Tous les %(total_count)s sélectionnés" +msgstr[2] "Tous les %(total_count)s sélectionnés" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "0 sur %(cnt)s sélectionné" + +#, python-format +msgid "Change history: %s" +msgstr "Historique des changements : %s" + +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "%(class_name)s %(instance)s" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" +"Supprimer l’objet %(class_name)s « %(instance)s » provoquerait la " +"suppression des objets liés et protégés suivants : %(related_objects)s" + +msgid "Django site admin" +msgstr "Site d’administration de Django" + +msgid "Django administration" +msgstr "Administration de Django" + +msgid "Site administration" +msgstr "Site d’administration" + +msgid "Log in" +msgstr "Connexion" + +#, python-format +msgid "%(app)s administration" +msgstr "Administration de %(app)s" + +msgid "Page not found" +msgstr "Page non trouvée" + +msgid "We’re sorry, but the requested page could not be found." +msgstr "Nous sommes désolés, mais la page demandée est introuvable." + +msgid "Home" +msgstr "Accueil" + +msgid "Server error" +msgstr "Erreur du serveur" + +msgid "Server error (500)" +msgstr "Erreur du serveur (500)" + +msgid "Server Error (500)" +msgstr "Erreur du serveur (500)" + +msgid "" +"There’s been an error. It’s been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" +"Une erreur est survenue. Elle a été transmise par courriel aux " +"administrateurs du site et sera corrigée dans les meilleurs délais. Merci " +"pour votre patience." + +msgid "Run the selected action" +msgstr "Exécuter l’action sélectionnée" + +msgid "Go" +msgstr "Envoyer" + +msgid "Click here to select the objects across all pages" +msgstr "Cliquez ici pour sélectionner tous les objets sur l’ensemble des pages" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "Sélectionner tous les %(total_count)s %(module_name)s" + +msgid "Clear selection" +msgstr "Effacer la sélection" + +msgid "Breadcrumbs" +msgstr "Fil d'Ariane" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "Modèles de l’application %(name)s" + +msgid "Add" +msgstr "Ajouter" + +msgid "View" +msgstr "Afficher" + +msgid "You don’t have permission to view or edit anything." +msgstr "Vous n’avez pas la permission de voir ou de modifier quoi que ce soit." + +msgid "" +"First, enter a username and password. Then, you’ll be able to edit more user " +"options." +msgstr "" +"Saisissez tout d’abord un nom d’utilisateur et un mot de passe. Vous pourrez " +"ensuite modifier plus d’options." + +msgid "Enter a username and password." +msgstr "Saisissez un nom d’utilisateur et un mot de passe." + +msgid "Change password" +msgstr "Modifier le mot de passe" + +msgid "Set password" +msgstr "Définir un mot de passe" + +msgid "Please correct the error below." +msgid_plural "Please correct the errors below." +msgstr[0] "Corrigez l’erreur ci-dessous." +msgstr[1] "Corrigez les erreurs ci-dessous." +msgstr[2] "Corrigez les erreurs ci-dessous." + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "" +"Saisissez un nouveau mot de passe pour l’utilisateur %(username)s." + +msgid "" +"This action will enable password-based authentication for " +"this user." +msgstr "" +"Cette action va activer l'authentification par mot de passe " +"pour cet utilisateur." + +msgid "Disable password-based authentication" +msgstr "Désactiver l'authentification par mot de passe" + +msgid "Enable password-based authentication" +msgstr "Activer l'authentification par mot de passe" + +msgid "Skip to main content" +msgstr "Passer au contenu principal" + +msgid "Welcome," +msgstr "Bienvenue," + +msgid "View site" +msgstr "Voir le site" + +msgid "Documentation" +msgstr "Documentation" + +msgid "Log out" +msgstr "Déconnexion" + +#, python-format +msgid "Add %(name)s" +msgstr "Ajouter %(name)s" + +msgid "History" +msgstr "Historique" + +msgid "View on site" +msgstr "Voir sur le site" + +msgid "Filter" +msgstr "Filtre" + +msgid "Hide counts" +msgstr "Masquer les nombres" + +msgid "Show counts" +msgstr "Afficher les nombres" + +msgid "Clear all filters" +msgstr "Effacer tous les filtres" + +msgid "Remove from sorting" +msgstr "Enlever du tri" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "Priorité de tri : %(priority_number)s" + +msgid "Toggle sorting" +msgstr "Inverser le tri" + +msgid "Toggle theme (current theme: auto)" +msgstr "Changer de thème (actuellement : automatique)" + +msgid "Toggle theme (current theme: light)" +msgstr "Changer de thème (actuellement : clair)" + +msgid "Toggle theme (current theme: dark)" +msgstr "Changer de thème (actuellement : sombre)" + +msgid "Delete" +msgstr "Supprimer" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" +"Supprimer l’objet %(object_name)s « %(escaped_object)s » provoquerait la " +"suppression des objets qui lui sont liés, mais votre compte ne possède pas " +"la permission de supprimer les types d’objets suivants :" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" +"Supprimer l’objet %(object_name)s « %(escaped_object)s » provoquerait la " +"suppression des objets liés et protégés suivants :" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" +"Voulez-vous vraiment supprimer l’objet %(object_name)s " +"« %(escaped_object)s » ? Les éléments suivants sont liés à celui-ci et " +"seront aussi supprimés :" + +msgid "Objects" +msgstr "Objets" + +msgid "Yes, I’m sure" +msgstr "Oui, je suis sûr" + +msgid "No, take me back" +msgstr "Non, revenir à la page précédente" + +msgid "Delete multiple objects" +msgstr "Supprimer plusieurs objets" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" +"La suppression des objets %(objects_name)s sélectionnés provoquerait la " +"suppression d’objets liés, mais votre compte n’est pas autorisé à supprimer " +"les types d’objet suivants :" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" +"La suppression des objets %(objects_name)s sélectionnés provoquerait la " +"suppression des objets liés et protégés suivants :" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" +"Voulez-vous vraiment supprimer les objets %(objects_name)s sélectionnés ? " +"Tous les objets suivants et les éléments liés seront supprimés :" + +msgid "Delete?" +msgstr "Supprimer ?" + +#, python-format +msgid " By %(filter_title)s " +msgstr " Par %(filter_title)s " + +msgid "Summary" +msgstr "Résumé" + +msgid "Recent actions" +msgstr "Actions récentes" + +msgid "My actions" +msgstr "Mes actions" + +msgid "None available" +msgstr "Aucun(e) disponible" + +msgid "Added:" +msgstr "Ajout :" + +msgid "Changed:" +msgstr "Modif. :" + +msgid "Deleted:" +msgstr "Suppr. :" + +msgid "Unknown content" +msgstr "Contenu inconnu" + +msgid "" +"Something’s wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" +"L’installation de votre base de données est incorrecte. Vérifiez que les " +"tables utiles ont été créées, et que la base est accessible par " +"l’utilisateur concerné." + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" +"Vous êtes authentifié sous le nom %(username)s, mais vous n’êtes pas " +"autorisé à accéder à cette page. Souhaitez-vous vous connecter avec un autre " +"compte utilisateur ?" + +msgid "Forgotten your password or username?" +msgstr "Mot de passe ou nom d’utilisateur oublié ?" + +msgid "Toggle navigation" +msgstr "Basculer la navigation" + +msgid "Sidebar" +msgstr "Barre latérale" + +msgid "Start typing to filter…" +msgstr "Écrivez ici pour filtrer…" + +msgid "Filter navigation items" +msgstr "Filtrer les éléments de navigation" + +msgid "Date/time" +msgstr "Date/heure" + +msgid "User" +msgstr "Utilisateur" + +msgid "Action" +msgstr "Action" + +msgid "entry" +msgid_plural "entries" +msgstr[0] "entrée" +msgstr[1] "entrées" +msgstr[2] "entrées" + +msgid "" +"This object doesn’t have a change history. It probably wasn’t added via this " +"admin site." +msgstr "" +"Cet objet n’a pas d’historique de modification. Il n’a probablement pas été " +"ajouté au moyen de ce site d’administration." + +msgid "Show all" +msgstr "Tout afficher" + +msgid "Save" +msgstr "Enregistrer" + +msgid "Popup closing…" +msgstr "Fenêtre en cours de fermeture…" + +msgid "Search" +msgstr "Rechercher" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "%(counter)s résultat" +msgstr[1] "%(counter)s résultats" +msgstr[2] "%(counter)s résultats" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "%(full_result_count)s résultats" + +msgid "Save as new" +msgstr "Enregistrer en tant que nouveau" + +msgid "Save and add another" +msgstr "Enregistrer et ajouter un nouveau" + +msgid "Save and continue editing" +msgstr "Enregistrer et continuer les modifications" + +msgid "Save and view" +msgstr "Enregistrer et afficher" + +msgid "Close" +msgstr "Fermer" + +#, python-format +msgid "Change selected %(model)s" +msgstr "Modifier l’objet %(model)s sélectionné" + +#, python-format +msgid "Add another %(model)s" +msgstr "Ajouter un autre objet %(model)s" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "Supprimer l’objet %(model)s sélectionné" + +#, python-format +msgid "View selected %(model)s" +msgstr "Afficher l'objet %(model)s sélectionné" + +msgid "Thanks for spending some quality time with the web site today." +msgstr "Merci pour le temps que vous avez accordé à ce site aujourd’hui." + +msgid "Log in again" +msgstr "Connectez-vous à nouveau" + +msgid "Password change" +msgstr "Modification du mot de passe" + +msgid "Your password was changed." +msgstr "Votre mot de passe a été modifié." + +msgid "" +"Please enter your old password, for security’s sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" +"Pour des raisons de sécurité, saisissez votre ancien mot de passe puis votre " +"nouveau mot de passe à deux reprises afin de vérifier qu’il est correctement " +"saisi." + +msgid "Change my password" +msgstr "Modifier mon mot de passe" + +msgid "Password reset" +msgstr "Réinitialisation du mot de passe" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "" +"Votre mot de passe a été défini. Vous pouvez maintenant vous authentifier." + +msgid "Password reset confirmation" +msgstr "Confirmation de mise à jour du mot de passe" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" +"Saisissez deux fois votre nouveau mot de passe afin de vérifier qu’il est " +"correctement saisi." + +msgid "New password:" +msgstr "Nouveau mot de passe :" + +msgid "Confirm password:" +msgstr "Confirmation du mot de passe :" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"Le lien de mise à jour du mot de passe n’était pas valide, probablement en " +"raison de sa précédente utilisation. Veuillez renouveler votre demande de " +"mise à jour de mot de passe." + +msgid "" +"We’ve emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" +"Nous vous avons envoyé par courriel les instructions pour changer de mot de " +"passe, pour autant qu’un compte existe avec l’adresse que vous avez " +"indiquée. Vous devriez recevoir rapidement ce message." + +msgid "" +"If you don’t receive an email, please make sure you’ve entered the address " +"you registered with, and check your spam folder." +msgstr "" +"Si vous ne recevez pas de message, vérifiez que vous avez saisi l’adresse " +"avec laquelle vous vous êtes enregistré et contrôlez votre dossier de " +"pourriels." + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" +"Vous recevez ce message en réponse à votre demande de réinitialisation du " +"mot de passe de votre compte sur %(site_name)s." + +msgid "Please go to the following page and choose a new password:" +msgstr "" +"Veuillez vous rendre sur cette page et choisir un nouveau mot de passe :" + +msgid "Your username, in case you’ve forgotten:" +msgstr "Votre nom d’utilisateur, en cas d’oubli :" + +msgid "Thanks for using our site!" +msgstr "Merci d’utiliser notre site !" + +#, python-format +msgid "The %(site_name)s team" +msgstr "L’équipe %(site_name)s" + +msgid "" +"Forgotten your password? Enter your email address below, and we’ll email " +"instructions for setting a new one." +msgstr "" +"Mot de passe perdu ? Saisissez votre adresse électronique ci-dessous et nous " +"vous enverrons les instructions pour en créer un nouveau." + +msgid "Email address:" +msgstr "Adresse électronique :" + +msgid "Reset my password" +msgstr "Réinitialiser mon mot de passe" + +msgid "Select all objects on this page for an action" +msgstr "Sélectionner tous les objets de cette page en vue d’une action" + +msgid "All dates" +msgstr "Toutes les dates" + +#, python-format +msgid "Select %s" +msgstr "Sélectionnez %s" + +#, python-format +msgid "Select %s to change" +msgstr "Sélectionnez l’objet %s à changer" + +#, python-format +msgid "Select %s to view" +msgstr "Sélectionnez l’objet %s à afficher" + +msgid "Date:" +msgstr "Date :" + +msgid "Time:" +msgstr "Heure :" + +msgid "Lookup" +msgstr "Recherche" + +msgid "Currently:" +msgstr "Actuellement :" + +msgid "Change:" +msgstr "Modifier :" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/fr/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/fr/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..613deeb2f04f59d40f8017c9b3e4b2ae7e186036 GIT binary patch literal 6509 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, 2014-2017,2020-2023 +# Claude Paroz , 2011-2012 +# Jannis Leidel , 2011 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-09-18 15:04-0300\n" +"PO-Revision-Date: 2023-12-04 07:59+0000\n" +"Last-Translator: Claude Paroz , 2014-2017,2020-2023\n" +"Language-Team: French (http://app.transifex.com/django/django/language/fr/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: fr\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#, javascript-format +msgid "Available %s" +msgstr "%s disponible(s)" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" +"Ceci est une liste des « %s » disponibles. Vous pouvez en choisir en les " +"sélectionnant dans la zone ci-dessous, puis en cliquant sur la flèche " +"« Choisir » entre les deux zones." + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "Écrivez dans cette zone pour filtrer la liste des « %s » disponibles." + +msgid "Filter" +msgstr "Filtrer" + +msgid "Choose all" +msgstr "Tout choisir" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "Cliquez pour choisir tous les « %s » en une seule opération." + +msgid "Choose" +msgstr "Choisir" + +msgid "Remove" +msgstr "Enlever" + +#, javascript-format +msgid "Chosen %s" +msgstr "Choix des « %s »" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" +"Ceci est la liste des « %s » choisi(e)s. Vous pouvez en enlever en les " +"sélectionnant dans la zone ci-dessous, puis en cliquant sur la flèche « " +"Enlever » entre les deux zones." + +#, javascript-format +msgid "Type into this box to filter down the list of selected %s." +msgstr "" +"Écrivez dans cette zone pour filtrer la liste des « %s » sélectionné·e·s." + +msgid "Remove all" +msgstr "Tout enlever" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "Cliquez pour enlever tous les « %s » en une seule opération." + +#, javascript-format +msgid "%s selected option not visible" +msgid_plural "%s selected options not visible" +msgstr[0] "%s option sélectionnée invisible" +msgstr[1] "%s options sélectionnées invisibles" +msgstr[2] "%s options sélectionnées invisibles" + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "%(sel)s sur %(cnt)s sélectionné" +msgstr[1] "%(sel)s sur %(cnt)s sélectionnés" +msgstr[2] "%(sel)s sur %(cnt)s sélectionnés" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" +"Vous avez des modifications non sauvegardées sur certains champs éditables. " +"Si vous lancez une action, ces modifications vont être perdues." + +msgid "" +"You have selected an action, but you haven’t saved your changes to " +"individual fields yet. Please click OK to save. You’ll need to re-run the " +"action." +msgstr "" +"Vous avez sélectionné une action, mais vous n'avez pas encore enregistré " +"certains champs modifiés. Cliquez sur OK pour enregistrer. Vous devrez " +"réappliquer l'action." + +msgid "" +"You have selected an action, and you haven’t made any changes on individual " +"fields. You’re probably looking for the Go button rather than the Save " +"button." +msgstr "" +"Vous avez sélectionné une action, et vous n'avez fait aucune modification " +"sur des champs. Vous cherchez probablement le bouton Envoyer et non le " +"bouton Enregistrer." + +msgid "Now" +msgstr "Maintenant" + +msgid "Midnight" +msgstr "Minuit" + +msgid "6 a.m." +msgstr "6:00" + +msgid "Noon" +msgstr "Midi" + +msgid "6 p.m." +msgstr "18:00" + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "Note : l'heure du serveur précède votre heure de %s heure." +msgstr[1] "Note : l'heure du serveur précède votre heure de %s heures." +msgstr[2] "Note : l'heure du serveur précède votre heure de %s heures." + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "Note : votre heure précède l'heure du serveur de %s heure." +msgstr[1] "Note : votre heure précède l'heure du serveur de %s heures." +msgstr[2] "Note : votre heure précède l'heure du serveur de %s heures." + +msgid "Choose a Time" +msgstr "Choisir une heure" + +msgid "Choose a time" +msgstr "Choisir une heure" + +msgid "Cancel" +msgstr "Annuler" + +msgid "Today" +msgstr "Aujourd'hui" + +msgid "Choose a Date" +msgstr "Choisir une date" + +msgid "Yesterday" +msgstr "Hier" + +msgid "Tomorrow" +msgstr "Demain" + +msgid "January" +msgstr "Janvier" + +msgid "February" +msgstr "Février" + +msgid "March" +msgstr "Mars" + +msgid "April" +msgstr "Avril" + +msgid "May" +msgstr "Mai" + +msgid "June" +msgstr "Juin" + +msgid "July" +msgstr "Juillet" + +msgid "August" +msgstr "Août" + +msgid "September" +msgstr "Septembre" + +msgid "October" +msgstr "Octobre" + +msgid "November" +msgstr "Novembre" + +msgid "December" +msgstr "Décembre" + +msgctxt "abbrev. month January" +msgid "Jan" +msgstr "jan" + +msgctxt "abbrev. month February" +msgid "Feb" +msgstr "fév" + +msgctxt "abbrev. month March" +msgid "Mar" +msgstr "mar" + +msgctxt "abbrev. month April" +msgid "Apr" +msgstr "avr" + +msgctxt "abbrev. month May" +msgid "May" +msgstr "mai" + +msgctxt "abbrev. month June" +msgid "Jun" +msgstr "jun" + +msgctxt "abbrev. month July" +msgid "Jul" +msgstr "jui" + +msgctxt "abbrev. month August" +msgid "Aug" +msgstr "aoû" + +msgctxt "abbrev. month September" +msgid "Sep" +msgstr "sep" + +msgctxt "abbrev. month October" +msgid "Oct" +msgstr "oct" + +msgctxt "abbrev. month November" +msgid "Nov" +msgstr "nov" + +msgctxt "abbrev. month December" +msgid "Dec" +msgstr "déc" + +msgid "Sunday" +msgstr "dimanche" + +msgid "Monday" +msgstr "lundi" + +msgid "Tuesday" +msgstr "mardi" + +msgid "Wednesday" +msgstr "mercredi" + +msgid "Thursday" +msgstr "jeudi" + +msgid "Friday" +msgstr "vendredi" + +msgid "Saturday" +msgstr "samedi" + +msgctxt "abbrev. day Sunday" +msgid "Sun" +msgstr "dim" + +msgctxt "abbrev. day Monday" +msgid "Mon" +msgstr "lun" + +msgctxt "abbrev. day Tuesday" +msgid "Tue" +msgstr "mar" + +msgctxt "abbrev. day Wednesday" +msgid "Wed" +msgstr "mer" + +msgctxt "abbrev. day Thursday" +msgid "Thur" +msgstr "jeu" + +msgctxt "abbrev. day Friday" +msgid "Fri" +msgstr "ven" + +msgctxt "abbrev. day Saturday" +msgid "Sat" +msgstr "sam" + +msgctxt "one letter Sunday" +msgid "S" +msgstr "D" + +msgctxt "one letter Monday" +msgid "M" +msgstr "L" + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "M" + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "M" + +msgctxt "one letter Thursday" +msgid "T" +msgstr "J" + +msgctxt "one letter Friday" +msgid "F" +msgstr "V" + +msgctxt "one letter Saturday" +msgid "S" +msgstr "S" + +msgid "Show" +msgstr "Afficher" + +msgid "Hide" +msgstr "Masquer" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/fy/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/fy/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..cdea1d8a470a81eee89bd56a68dfdceacb631dfa GIT binary patch literal 476 zcmZ8d%Sr<=6jgLJOV=*0;KHJ55=AVg^X|c$t>)5$7MyAP-q}G0jKj4S?E#7IR z1rHpOL(YAi{OoLhZ4fqzyTpCs7V(JKASHg&;~AZeXN8e>?>LU^E@#i^gK<_t{;qB5 zl1Hqak8Bu9le4R78Cd2NB%_CnU3=7#yzE9tRB$ZhDHD>(4oIm)=TJx?$jBb?!!$kr z`%)08I+2HhkPLK)Ec4oiN=N4v+-qx1fB~8uD>$cZNM2S8**3Ot7gS@*sVUgizF=F6D8`fJ6DId3JyyW#EnCuCbB z*Um8pvWl@%28WK>PP du2|psNl;+xg$%vpE-bIT0}FdSkgaaA@e9v~jIsa# literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/fy/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/fy/LC_MESSAGES/django.po new file mode 100644 index 0000000000..52310d3d4b --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/fy/LC_MESSAGES/django.po @@ -0,0 +1,609 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-01-17 11:07+0100\n" +"PO-Revision-Date: 2015-01-18 08:31+0000\n" +"Last-Translator: Jannis Leidel \n" +"Language-Team: Western Frisian (http://www.transifex.com/projects/p/django/" +"language/fy/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: fy\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "" + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "" + +msgid "Are you sure?" +msgstr "" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "" + +msgid "Administration" +msgstr "" + +msgid "All" +msgstr "" + +msgid "Yes" +msgstr "" + +msgid "No" +msgstr "" + +msgid "Unknown" +msgstr "" + +msgid "Any date" +msgstr "" + +msgid "Today" +msgstr "" + +msgid "Past 7 days" +msgstr "" + +msgid "This month" +msgstr "" + +msgid "This year" +msgstr "" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" + +msgid "Action:" +msgstr "" + +msgid "action time" +msgstr "" + +msgid "object id" +msgstr "" + +msgid "object repr" +msgstr "" + +msgid "action flag" +msgstr "" + +msgid "change message" +msgstr "" + +msgid "log entry" +msgstr "" + +msgid "log entries" +msgstr "" + +#, python-format +msgid "Added \"%(object)s\"." +msgstr "" + +#, python-format +msgid "Changed \"%(object)s\" - %(changes)s" +msgstr "" + +#, python-format +msgid "Deleted \"%(object)s.\"" +msgstr "" + +msgid "LogEntry Object" +msgstr "" + +msgid "None" +msgstr "" + +msgid "" +"Hold down \"Control\", or \"Command\" on a Mac, to select more than one." +msgstr "" + +#, python-format +msgid "Changed %s." +msgstr "" + +msgid "and" +msgstr "" + +#, python-format +msgid "Added %(name)s \"%(object)s\"." +msgstr "" + +#, python-format +msgid "Changed %(list)s for %(name)s \"%(object)s\"." +msgstr "" + +#, python-format +msgid "Deleted %(name)s \"%(object)s\"." +msgstr "" + +msgid "No fields changed." +msgstr "" + +#, python-format +msgid "" +"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below." +msgstr "" + +#, python-format +msgid "" +"The %(name)s \"%(obj)s\" was added successfully. You may add another " +"%(name)s below." +msgstr "" + +#, python-format +msgid "The %(name)s \"%(obj)s\" was added successfully." +msgstr "" + +#, python-format +msgid "" +"The %(name)s \"%(obj)s\" was changed successfully. You may edit it again " +"below." +msgstr "" + +#, python-format +msgid "" +"The %(name)s \"%(obj)s\" was changed successfully. You may add another " +"%(name)s below." +msgstr "" + +#, python-format +msgid "The %(name)s \"%(obj)s\" was changed successfully." +msgstr "" + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" + +msgid "No action selected." +msgstr "" + +#, python-format +msgid "The %(name)s \"%(obj)s\" was deleted successfully." +msgstr "" + +#, python-format +msgid "%(name)s object with primary key %(key)r does not exist." +msgstr "" + +#, python-format +msgid "Add %s" +msgstr "" + +#, python-format +msgid "Change %s" +msgstr "" + +msgid "Database error" +msgstr "" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "" + +#, python-format +msgid "Change history: %s" +msgstr "" + +#. Translators: Model verbose name and instance representation, +#. suitable to be an item in a list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" + +msgid "Django site admin" +msgstr "" + +msgid "Django administration" +msgstr "" + +msgid "Site administration" +msgstr "" + +msgid "Log in" +msgstr "" + +#, python-format +msgid "%(app)s administration" +msgstr "" + +msgid "Page not found" +msgstr "" + +msgid "We're sorry, but the requested page could not be found." +msgstr "" + +msgid "Home" +msgstr "" + +msgid "Server error" +msgstr "" + +msgid "Server error (500)" +msgstr "" + +msgid "Server Error (500)" +msgstr "" + +msgid "" +"There's been an error. It's been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" + +msgid "Run the selected action" +msgstr "" + +msgid "Go" +msgstr "" + +msgid "Click here to select the objects across all pages" +msgstr "" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "" + +msgid "Clear selection" +msgstr "" + +msgid "" +"First, enter a username and password. Then, you'll be able to edit more user " +"options." +msgstr "" + +msgid "Enter a username and password." +msgstr "" + +msgid "Change password" +msgstr "" + +msgid "Please correct the error below." +msgstr "" + +msgid "Please correct the errors below." +msgstr "" + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "" + +msgid "Welcome," +msgstr "" + +msgid "View site" +msgstr "" + +msgid "Documentation" +msgstr "" + +msgid "Log out" +msgstr "" + +msgid "Add" +msgstr "" + +msgid "History" +msgstr "" + +msgid "View on site" +msgstr "" + +#, python-format +msgid "Add %(name)s" +msgstr "" + +msgid "Filter" +msgstr "" + +msgid "Remove from sorting" +msgstr "" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "" + +msgid "Toggle sorting" +msgstr "" + +msgid "Delete" +msgstr "" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" + +msgid "Objects" +msgstr "" + +msgid "Yes, I'm sure" +msgstr "" + +msgid "No, take me back" +msgstr "" + +msgid "Delete multiple objects" +msgstr "" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" + +msgid "Change" +msgstr "" + +msgid "Remove" +msgstr "" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "" + +msgid "Delete?" +msgstr "" + +#, python-format +msgid " By %(filter_title)s " +msgstr "" + +msgid "Summary" +msgstr "" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "" + +msgid "You don't have permission to edit anything." +msgstr "" + +msgid "Recent Actions" +msgstr "" + +msgid "My Actions" +msgstr "" + +msgid "None available" +msgstr "" + +msgid "Unknown content" +msgstr "" + +msgid "" +"Something's wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" + +msgid "Forgotten your password or username?" +msgstr "" + +msgid "Date/time" +msgstr "" + +msgid "User" +msgstr "" + +msgid "Action" +msgstr "" + +msgid "" +"This object doesn't have a change history. It probably wasn't added via this " +"admin site." +msgstr "" + +msgid "Show all" +msgstr "" + +msgid "Save" +msgstr "" + +#, python-format +msgid "Change selected %(model)s" +msgstr "" + +#, python-format +msgid "Add another %(model)s" +msgstr "" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "" + +msgid "Search" +msgstr "" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "" + +msgid "Save as new" +msgstr "" + +msgid "Save and add another" +msgstr "" + +msgid "Save and continue editing" +msgstr "" + +msgid "Thanks for spending some quality time with the Web site today." +msgstr "" + +msgid "Log in again" +msgstr "" + +msgid "Password change" +msgstr "" + +msgid "Your password was changed." +msgstr "" + +msgid "" +"Please enter your old password, for security's sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" + +msgid "Change my password" +msgstr "" + +msgid "Password reset" +msgstr "" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "" + +msgid "Password reset confirmation" +msgstr "" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" + +msgid "New password:" +msgstr "" + +msgid "Confirm password:" +msgstr "" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" + +msgid "" +"We've emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" + +msgid "" +"If you don't receive an email, please make sure you've entered the address " +"you registered with, and check your spam folder." +msgstr "" + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" + +msgid "Please go to the following page and choose a new password:" +msgstr "" + +msgid "Your username, in case you've forgotten:" +msgstr "" + +msgid "Thanks for using our site!" +msgstr "" + +#, python-format +msgid "The %(site_name)s team" +msgstr "" + +msgid "" +"Forgotten your password? Enter your email address below, and we'll email " +"instructions for setting a new one." +msgstr "" + +msgid "Email address:" +msgstr "" + +msgid "Reset my password" +msgstr "" + +msgid "All dates" +msgstr "" + +msgid "(None)" +msgstr "" + +#, python-format +msgid "Select %s" +msgstr "" + +#, python-format +msgid "Select %s to change" +msgstr "" + +msgid "Date:" +msgstr "" + +msgid "Time:" +msgstr "" + +msgid "Lookup" +msgstr "" + +msgid "Currently:" +msgstr "" + +msgid "Change:" +msgstr "" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/fy/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/fy/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..489bbab4f0f9b2ca1e5bb1fa90dbb3c412f9ae2d GIT binary patch literal 476 zcmYLF!A=`75CxUf9((R#kT?XNHhVAQC7M5nABvW@i_pjlHrRLOz5a;KTS9 zW(gusda_4;^X84;zVE&4Fm{&@!TZRa4c01r9#yQrL^oHNhKu<@rIsk z>$%mPqLL_k+@jUVkz`~O6BFjaxLBLygN7^PoQ*IcTTl(ZISrS8>yNT)UFrXDkE@oZ zBFxDwG~8266da5Lk24NB4=FWTh}CMA5@i3(;)$jiM2oHAVetCCarp%%+#q zi|tRSuFTH7OXN7=y5Ut5JtxuB#=0TQA54gpMz{GG2U}e`ucUw%Zte@~Dh-4GHho3b jP_DCCy$q(tu@8%=!8IRc932l~a~*XY?2kYl4zrzi!laC+ literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/fy/LC_MESSAGES/djangojs.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/fy/LC_MESSAGES/djangojs.po new file mode 100644 index 0000000000..ba09badf83 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/fy/LC_MESSAGES/djangojs.po @@ -0,0 +1,145 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-01-17 11:07+0100\n" +"PO-Revision-Date: 2014-10-05 20:13+0000\n" +"Last-Translator: Jannis Leidel \n" +"Language-Team: Western Frisian (http://www.transifex.com/projects/p/django/" +"language/fy/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: fy\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, javascript-format +msgid "Available %s" +msgstr "" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "" + +msgid "Filter" +msgstr "" + +msgid "Choose all" +msgstr "" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "" + +msgid "Choose" +msgstr "" + +msgid "Remove" +msgstr "" + +#, javascript-format +msgid "Chosen %s" +msgstr "" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" + +msgid "Remove all" +msgstr "" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "" + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "" +msgstr[1] "" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" + +msgid "" +"You have selected an action, but you haven't saved your changes to " +"individual fields yet. Please click OK to save. You'll need to re-run the " +"action." +msgstr "" + +msgid "" +"You have selected an action, and you haven't made any changes on individual " +"fields. You're probably looking for the Go button rather than the Save " +"button." +msgstr "" + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "" +msgstr[1] "" + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "" +msgstr[1] "" + +msgid "Now" +msgstr "" + +msgid "Clock" +msgstr "" + +msgid "Choose a time" +msgstr "" + +msgid "Midnight" +msgstr "" + +msgid "6 a.m." +msgstr "" + +msgid "Noon" +msgstr "" + +msgid "Cancel" +msgstr "" + +msgid "Today" +msgstr "" + +msgid "Calendar" +msgstr "" + +msgid "Yesterday" +msgstr "" + +msgid "Tomorrow" +msgstr "" + +msgid "" +"January February March April May June July August September October November " +"December" +msgstr "" + +msgid "S M T W T F S" +msgstr "" + +msgid "Show" +msgstr "" + +msgid "Hide" +msgstr "" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ga/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ga/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..8c029af57b53832163a22c957cdb819f8fad363d GIT binary patch literal 15075 zcmdU#dyHIHeaBCEg_u_`A%s^sHW=HEDaQu7C>P=wlkzUQ1f zb7!-Th*DAYYR`P{J@-6*=XZXu^Sk@cE1&d1!}STuizpLMHs%N5))oA4-SZ4%o(ujp zcma4n_(Jes!5hFQJkyw$gRciwe=9fzejMBaJ_M@&h0ikPDPRpe2iyWa5!?no9h?g9 z4}fZa1Qb2T!RLVQ1TO^d1U1eVK!!G71~tw)C z9X|y%&WdOIe$NJ1^8CVpHIS}m3Vc3z4Jf*ggR8*;Tnl~( z2IbaV2#Tc_fueg0D0-(swL1Wco*D3Y;89TX7NF*N52*RS0E$0f0bc-q8@w6(ckm{# z1+zW_eh-`j-+8_KjPa_Q0s1k;`=S2+TRL(7Q7u?1MWe2)`KZ1 zKHLs&2R{xnh4}%v5&R{{R+)=mY)l{A32NSZzzOh2-~sSFgkdju4E#OtG$?uA0MlLz z)wI8QJ(Qyx`efTOU{yY%yyW#ymfm-K7pvHR`ybSzLQ0v`fy}s8$ z@o_uI63jku8<>Dv-=Bf&!23Y)`6mH?4$59Uah0d*98m8s05#w0fD@tqQc!g61V8*+ z##{wze}90Gitj%MVYzwQOO5$Qa4k3o{tSe5=IG1l11^GhfPV`jQs#ARlK9aFwXT!l z`8H7U{9aJ}{TL{@`g2h0`ZB2XJ_xb}=4YVz^_-Xc_7)Vq7l-GKpw@Lc_$F{S_+juq z5EVB!to3p~4~mZWf#SzUK*`ysK&|&4P;&eLsCE4q)VNQC$t=k{1LV(a=12XGf@+_F zuLj=^J{kN5D0%x1D7p9vsPTUZJ{4TK-s{5)K|QYq#pjDb@p%VGQ*#tN7rYhJc<%+p zmrsGm!TZ2>fVGRT(coW!3Aq1aV?GCd5j+=cBjn<54oW|74bOLh;?L*6YrwC88^8-E zJzaaiTX?<(+yZ_bbaGYm@6Q3X-t)j4zzf3jP2qU~lpcHw)I1M?&j5b`ik_!1nbvPrKE65Be+X2&&w?8FFG20=eW3XC4N&{^6HxvB3zXfx zV56t!RUlhzt`4{WzK`dRfm-**O~?fJX;A!$H+%W}A}IRr10}ED3HUH5I#;~H+t>3! zt!oRY`L74h18)Mg?ze$Y2j2~fKevOh#(V}u1Xq`K8AEA$SF-eh+}CjQJHPd4B0-*c>ng z-w%EX6uk#tX-pG53hMc*pycA~pyc73pw{^yxB~n)@O<#6;rXer@_c#@sQxbo#m|et z3&E}6R`3XT4)}ghkf?AhsUiE?ucg^rC{)iVZplEM(iMKaWWD9iNMA=WdUJqO!qx>#K zw&mj#U0UZM$^pt-DZ0dK@qHI%Gey_Ul*=h>owKQcc>@I%F?%T6Det2!z5aj-@mzZN zTFRR!T}pXf%T0$eA1ZDKB~z0BDT?;_R*J4aqDZcCN{?~@+vm= zyL7{~igJ{aP(DD>g$Z;zlYyV0oTOY$(Iwq~JLL%!>4UB}dT_t5=l3Jw`S}5F0N+fx zB0N7Ad`-B29r(wTMap|A3lv>fdN3_;HRTq{sZjU(0S^o9&PBUs-CWY?#rd&b((A5y3vV>;#eAW)ojhWBrSST+TcO&vVPig)#3d@RMwI3^xl=+OxeZaL7U>MEb!?0fCOVXhidI^VpD{9aap3E9x+pbvoHXlD62_4zo02 zd)zJTLPDF_xa2-8`ZZ=R**heo6x6d!=}AJ!)24_?^2b8N4znvt*_(3t!@b+(1m1YC zYl`x&jdW%CV!cw;U9|J4(?XUv%T`ODD{CtE-;Z1mJ;pcNPO^Bfas{H|n>Ot&b4lE3 z7AN6%ZkG{+rR{2FS0|2g>t~nd@9HFt;}$`TwdKCv?ck7!jXW#hCHpoXwGfZlPyxeTT;91_vdc8RH;#SUTv4-UgJIqy?*&~N9XSc^2 zYqKXqg`3$zYFA^)SYK!LgnIGR?cz69Tck6x`=iE0#V$GudiVj}#x(}Pr0sQnt=lhp z@@qrML_e_ptQG1Jc72P(TFypBz%t8Exl`EYifNb*UU1At*^o$_Jy(N#f z;T?=8o31^38B{GYDjp2i(#UW(4FVO!)VUehPsmX_>-%C!122l|UJg|i@G&WN`Vd({ z;<>rfrfK)kFr?DDGw_;sACo&$@6Rmoudfk+9V`>QLW{^-#mSHkre?6!+t1 z!mNQVvL00;N(|aZPB0@HU42~h6G^-fo(fq&bC~F;(FSw|P((Mp)AGD>mURk=mYxq> zG~e$G!}h~*&Q{vpii7OdxVwGbmW>$+_#10k!&jtwyEl<4plHJz=VU34-~9bAUEW)Ay}wal1FBozjg_s7zHcUC7pbGUMt zEYAou^hZ9$d+rpm9?O5YkDbmJ%?#G~c;TgeK2Dp8#0q$0Z|X-K=CO)9J#Vz?>*87K zJYz4znAED>`-S={YEgq#ywbTR*ie7)(y6j?c3g7y^&Ql?j7EBK)OF*OY6+tx*PSFi z?gmQI6Hp0z=ZUeC*^W#{BZ6bn_cl%|>WHEg$J7UAhQADB_*(@5gD6vq|!f%x5LCZtF#tCMaV-Z7T zW{~Z=nUN^-+iDRkl?L=kdORh(F#+XH36px}2-;|_mD$seESy6^67j=7xV!7(wS-#? zmoNH&zK28wnS&S3wxgH$9C>*0NKU?Hu8TVj^l!pk9~UYUcJEs3I>`l7io>$|$IE=^ zzMSm4okU#_`LZWoCTgP)&UklRgv9hX{qf$F{8V@)BP3Oxa9%V*!4?TJ@d5;9K7y

      ?1UqoXMlKz|LoR-R|pS=680YG+wk@N$?SZ%*8if(V=?Q)z%tW zt$%zwJ=0d7)lAM{rs{TYo)m4nuHEa+*EeifSXihHJJX}P!IN78Be~8STG58}EB5c* zzk9T>O|^|H6jj5a$r+-Ty6wd`_cqLTh+!|6@aOF6wj(oFPQG%~PK3_I`Q+}jk;#hJ z?JH-K-jK+;ZAB{%x&!_sQGd6n+ti=;i)~vjxBhn9x^&yNO?HRfXnDPD+h%Sz>2~X7 z+--JuoAmw_++MQ&@)gF;E|=C#vTkQ^Dm4cNXF5aoOGeIO+#EZ} zPDWV7VV<{Ucdngl4^Ah|B)2WO?*=hO0o8VJ`jP3~JZrU6H;}oCowZ9NxZmLWjTR4& zKsdP>%}e4oX%umkmZ;nsYvW|)aLAQmMKOE_lST<;*E&vIT{TfgpjAyITMh|qs3o|J z;YiJd#8{~A#Nu`(yG)`_%~fABhe`!W9XmZwn}bum$V}l>!d+@-+jD)=4!yy>wvnXR z2Af6}TD{FI1E%Hj$^^f{Qm5ucjCXRRC~#}_`LXHb;0#U# z8`FxiPOn@F=6qSYc1Y~)ToC3eQ6UaBQ_iZi+QJyEh=xSE%RQ%qam;G1GY; z?>rqR-F7P8RhUpWS4LUFK&NP&z3tfXuo_CyCQbO8Fo}Rptd>)Em2!gST8RM6{>8;yOX#WoPnQX zVt&>yew9{QOTS5HSUU?_QYZA%{N>ZwI~AO@tzVh$(6CaWN*%Y$rn40kGk6O@h1YcJ zN(o3xRduRLnNzt2b{==Igu1%fKR6ZI^4=MpN06~B6`q4=3Z$3jWvII~JB8Ir@kQn)9DXYC2qu?2TE^(u@s{o3EWx0N1sFbMSBA6J zgWQE37?VD4aEB9VU)`Q@n&znCyuEe+qP$hpG+pFhOdirqK46R$;saVKMpRm95R5&# z+mQ;5Z>HY$i+O4I;7opJ>TB0zvM!%Qw?m(!jc+ZG(FirKKcQvW}L` zptPHZT}7{M_7aWe&V*Dn-ll!=jI%})(Z(7eDua9BW;0f@=Fzj>&bJ1SiSbLj>dFl2 z3#(-PD^tm`>9i^XoZBXbg>w;+eITmr@1~X=TiV^)DZ+SCt>M>Pyzly{NbCLD8W11)3jfdTFwuEsMWGBbnIW*2on(>8C__5Sp!?tq z84yhAsEr@40n=Kk#J)-Jhj~XTIG(rrHA`o#2u_F5N4@2a2KTzex|4*kc}k{No^M3> z2WN_5ZPZ0{&DCY7LF3)*+9HuylsEP2FcW+6CfnxiUGUXJMuh#us(hvxI$#MMiFYV8 zNANXwt>u1+|v3&9i%E7*+F3#Ypn6ig*wKrkl?kNGE>n9apcRLSeM=# zkAemfo@3Zryy1A{bzG`h^boPSBkXEYG5&ahP=EGKbn2hOM3hB#w~M<-B~jlq^!q1x(C1lrH~$V|uO5DUw*N zbeN|olR{%(IHve&mUM|2u2T9anQfCwchcG7#OiEV2wNbzAzQ*Z)Ss&0@<#53ffi7 z(MSS_a7gA5Tss+yvGZ_uyDiQSa&`C==m@)>Zw_A3ls! z6CIUhnd!AsD`#Mq^r*BVs`|B>t>Du@OBSqGPVX`^&Ox$RpG|qpL&23&`B^%Fi+5cd zo7}gpyunoF-!>p)vaX9`- zULU6nD>{AnRI^ttBd6G1=Rpv8{l^4~pLB!Lxge;_SRmOxw2`4iIEJSjcK~d$^Y}YL z(7SbxaPgzhh}j{rbSf7xOxmWT(oo%w5o54I?PpscNRPf3x}EZvBr4-if%L`4qgL zH8^v^4K48SO1T~m{qS;}pCbW#RH?xBx-A)nqzW*bY@pqX_~_orqpZwWXe`IbaVqH0 zk}g1t~ op{4hBkVn?ipQ2m{u5U5J8XPt8R4GVC-(p5j2o!AOu*QD=4;sRlu>b%7 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ga/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ga/LC_MESSAGES/django.po new file mode 100644 index 0000000000..252e50d065 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ga/LC_MESSAGES/django.po @@ -0,0 +1,715 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Jannis Leidel , 2011 +# Luke Blaney , 2019 +# Michael Thornhill , 2011-2012,2015 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-01-16 20:42+0100\n" +"PO-Revision-Date: 2019-06-22 21:17+0000\n" +"Last-Translator: Luke Blaney \n" +"Language-Team: Irish (http://www.transifex.com/django/django/language/ga/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ga\n" +"Plural-Forms: nplurals=5; plural=(n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : " +"4);\n" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "D'éirigh le scriosadh %(count)d %(items)s." + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "Ní féidir scriosadh %(name)s " + +msgid "Are you sure?" +msgstr "An bhfuil tú cinnte?" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "Scrios %(verbose_name_plural) roghnaithe" + +msgid "Administration" +msgstr "Riarachán" + +msgid "All" +msgstr "Gach" + +msgid "Yes" +msgstr "Tá" + +msgid "No" +msgstr "Níl" + +msgid "Unknown" +msgstr "Gan aithne" + +msgid "Any date" +msgstr "Aon dáta" + +msgid "Today" +msgstr "Inniu" + +msgid "Past 7 days" +msgstr "7 lá a chuaigh thart" + +msgid "This month" +msgstr "Táim cinnte" + +msgid "This year" +msgstr "An blian seo" + +msgid "No date" +msgstr "Gan dáta" + +msgid "Has date" +msgstr "Le dáta" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" +"Cuir isteach an %(username)s agus focal faire ceart le haghaidh cuntas " +"foirne. Tabhair faoi deara go bhféadfadh an dá réimsí a cás-íogair." + +msgid "Action:" +msgstr "Aicsean:" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "Cuir eile %(verbose_name)s" + +msgid "Remove" +msgstr "Tóg amach" + +msgid "Addition" +msgstr "" + +msgid "Change" +msgstr "Athraigh" + +msgid "Deletion" +msgstr "Scriosadh" + +msgid "action time" +msgstr "am aicsean" + +msgid "user" +msgstr "úsáideoir" + +msgid "content type" +msgstr "" + +msgid "object id" +msgstr "id oibiacht" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/library/functions.html#repr) +msgid "object repr" +msgstr "repr oibiacht" + +msgid "action flag" +msgstr "brat an aicsean" + +msgid "change message" +msgstr "teachtaireacht athrú" + +msgid "log entry" +msgstr "loga iontráil" + +msgid "log entries" +msgstr "loga iontrálacha" + +#, python-format +msgid "Added \"%(object)s\"." +msgstr "\"%(object)s\" curtha isteach." + +#, python-format +msgid "Changed \"%(object)s\" - %(changes)s" +msgstr "\"%(object)s\" - %(changes)s aithrithe" + +#, python-format +msgid "Deleted \"%(object)s.\"" +msgstr "\"%(object)s.\" scrioste" + +msgid "LogEntry Object" +msgstr "Oibiacht LogEntry" + +#, python-brace-format +msgid "Added {name} \"{object}\"." +msgstr "{name} curtha leis \"{object}\"." + +msgid "Added." +msgstr "Curtha leis." + +msgid "and" +msgstr "agus" + +#, python-brace-format +msgid "Changed {fields} for {name} \"{object}\"." +msgstr "{fields} athrithe don {name} \"{object}\"." + +#, python-brace-format +msgid "Changed {fields}." +msgstr "{fields} athrithe." + +#, python-brace-format +msgid "Deleted {name} \"{object}\"." +msgstr "{name} scrioste: \"{object}\"." + +msgid "No fields changed." +msgstr "Dada réimse aithraithe" + +msgid "None" +msgstr "Dada" + +msgid "" +"Hold down \"Control\", or \"Command\" on a Mac, to select more than one." +msgstr "" +"Coinnigh síos \"Control\", nó \"Command\" ar Mac chun níos mó ná ceann " +"amháin a roghnú." + +#, python-brace-format +msgid "The {name} \"{obj}\" was added successfully." +msgstr "Bhí {name} \"{obj}\" curtha leis go rathúil" + +msgid "You may edit it again below." +msgstr "Thig leat é a athrú arís faoi seo." + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was added successfully. You may add another {name} " +"below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was changed successfully. You may edit it again below." +msgstr "" +"D'athraigh {name} \"{obj}\" go rathúil.\n" +"Thig leat é a athrú arís faoi seo." + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was added successfully. You may edit it again below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was changed successfully. You may add another {name} " +"below." +msgstr "" +"D'athraigh {name} \"{obj}\" go rathúil.\n" +"Thig leat {name} eile a chuir leis." + +#, python-brace-format +msgid "The {name} \"{obj}\" was changed successfully." +msgstr "D'athraigh {name} \"{obj}\" go rathúil." + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" +"Ní mór Míreanna a roghnú chun caingne a dhéanamh orthu. Níl aon mhíreanna a " +"athrú." + +msgid "No action selected." +msgstr "Uimh gníomh roghnaithe." + +#, python-format +msgid "The %(name)s \"%(obj)s\" was deleted successfully." +msgstr "Bhí %(name)s \"%(obj)s\" scrioste go rathúil." + +#, python-format +msgid "%(name)s with ID \"%(key)s\" doesn't exist. Perhaps it was deleted?" +msgstr "Níl%(name)s ann le aitheantais \"%(key)s\". B'fhéidir gur scriosadh é?" + +#, python-format +msgid "Add %s" +msgstr "Cuir %s le" + +#, python-format +msgid "Change %s" +msgstr "Aithrigh %s" + +#, python-format +msgid "View %s" +msgstr "Amharc ar %s" + +msgid "Database error" +msgstr "Botún bunachar sonraí" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "%(count)s %(name)s athraithe go rathúil" +msgstr[1] "%(count)s %(name)s athraithe go rathúil" +msgstr[2] "%(count)s %(name)s athraithe go rathúil" +msgstr[3] "%(count)s %(name)s athraithe go rathúil" +msgstr[4] "%(count)s %(name)s athraithe go rathúil" + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "%(total_count)s roghnaithe" +msgstr[1] "Gach %(total_count)s roghnaithe" +msgstr[2] "Gach %(total_count)s roghnaithe" +msgstr[3] "Gach %(total_count)s roghnaithe" +msgstr[4] "Gach %(total_count)s roghnaithe" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "0 as %(cnt)s roghnaithe." + +#, python-format +msgid "Change history: %s" +msgstr "Athraigh stáir %s" + +#. Translators: Model verbose name and instance representation, +#. suitable to be an item in a list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "%(class_name)s %(instance)s" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" +"Teastaíodh scriosadh %(class_name)s %(instance)s scriosadh na rudaí a " +"bhaineann leis: %(related_objects)s" + +msgid "Django site admin" +msgstr "Riarthóir suíomh Django" + +msgid "Django administration" +msgstr "Riarachán Django" + +msgid "Site administration" +msgstr "Riaracháin an suíomh" + +msgid "Log in" +msgstr "Logáil isteach" + +#, python-format +msgid "%(app)s administration" +msgstr "%(app)s riaracháin" + +msgid "Page not found" +msgstr "Ní bhfuarthas an leathanach" + +msgid "We're sorry, but the requested page could not be found." +msgstr "Tá brón orainn, ach ní bhfuarthas an leathanach iarraite." + +msgid "Home" +msgstr "Baile" + +msgid "Server error" +msgstr "Botún freastalaí" + +msgid "Server error (500)" +msgstr "Botún freastalaí (500)" + +msgid "Server Error (500)" +msgstr "Botún Freastalaí (500)" + +msgid "" +"There's been an error. It's been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" +"Tharla earráid. Tuairiscíodh don riarthóirí suíomh tríd an ríomhphost agus " +"ba chóir a shocrú go luath. Go raibh maith agat as do foighne." + +msgid "Run the selected action" +msgstr "Rith an gníomh roghnaithe" + +msgid "Go" +msgstr "Té" + +msgid "Click here to select the objects across all pages" +msgstr "" +"Cliceáil anseo chun na hobiacht go léir a roghnú ar fud gach leathanach" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "Roghnaigh gach %(total_count)s %(module_name)s" + +msgid "Clear selection" +msgstr "Scroiseadh modhnóir" + +msgid "" +"First, enter a username and password. Then, you'll be able to edit more user " +"options." +msgstr "" +"Ar dtús, iontráil ainm úsaideoir agus focal faire. Ansin, beidh tú in ann " +"cuir in eagar níos mó roghaí úsaideoira." + +msgid "Enter a username and password." +msgstr "Cuir isteach ainm úsáideora agus focal faire." + +msgid "Change password" +msgstr "Athraigh focal faire" + +msgid "Please correct the error below." +msgstr "Ceartaigh an botún thíos le do thoil." + +msgid "Please correct the errors below." +msgstr "Le do thoil cheartú earráidí thíos." + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "" +"Iontráil focal faire nua le hadhaigh an úsaideor %(username)s." + +msgid "Welcome," +msgstr "Fáilte" + +msgid "View site" +msgstr "Breatnaigh ar an suíomh" + +msgid "Documentation" +msgstr "Doiciméadúchán" + +msgid "Log out" +msgstr "Logáil amach" + +#, python-format +msgid "Add %(name)s" +msgstr "Cuir %(name)s le" + +msgid "History" +msgstr "Stair" + +msgid "View on site" +msgstr "Breath ar suíomh" + +msgid "Filter" +msgstr "Scagaire" + +msgid "Remove from sorting" +msgstr "Bain as sórtáil" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "Sórtáil tosaíocht: %(priority_number)s" + +msgid "Toggle sorting" +msgstr "Toggle sórtáil" + +msgid "Delete" +msgstr "Cealaigh" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" +"Má scriossan tú %(object_name)s '%(escaped_object)s' scriosfaidh oibiachtí " +"gaolta. Ach níl cead ag do cuntas na oibiacht a leanúint a scriosadh:" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" +"Bheadh Scriosadh an %(object_name)s '%(escaped_object)s' a cheangal ar an " +"méid seo a leanas a scriosadh nithe cosanta a bhaineann le:" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" +"An bhfuil tú cinnte na %(object_name)s \"%(escaped_object)s\" a scroiseadh?" +"Beidh gach oibiacht a leanúint scroiste freisin:" + +msgid "Objects" +msgstr "Oibiachtaí" + +msgid "Yes, I'm sure" +msgstr "Táim cinnte" + +msgid "No, take me back" +msgstr "Ní hea, tóg ar ais mé" + +msgid "Delete multiple objects" +msgstr "Scrios na réadanna" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" +"Scriosadh an roghnaithe %(objects_name)s a bheadh mar thoradh ar na nithe " +"gaolmhara a scriosadh, ach níl cead do chuntas a scriosadh na cineálacha seo " +"a leanas na cuspóirí:" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" +"Teastaíonn scriosadh na %(objects_name)s roghnaithe scriosadh na hoibiacht " +"gaolta cosainte a leanúint:" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" +"An bhfuil tú cinnte gur mian leat a scriosadh %(objects_name)s roghnaithe? " +"Beidh gach ceann de na nithe seo a leanas agus a n-ítimí gaolta scroiste:" + +msgid "View" +msgstr "Amharc ar" + +msgid "Delete?" +msgstr "Cealaigh?" + +#, python-format +msgid " By %(filter_title)s " +msgstr " Trí %(filter_title)s " + +msgid "Summary" +msgstr "Achoimre" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "Samhlacha ins an %(name)s iarratais" + +msgid "Add" +msgstr "Cuir le" + +msgid "You don't have permission to view or edit anything." +msgstr "" + +msgid "Recent actions" +msgstr "" + +msgid "My actions" +msgstr "" + +msgid "None available" +msgstr "Dada ar fáil" + +msgid "Unknown content" +msgstr "Inneachair anaithnid" + +msgid "" +"Something's wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" +"Tá rud éigin mícheart le suitéail do bunachar sonraí. Déan cinnte go bhfuil " +"boird an bunachar sonraI cruthaithe cheana, agus déan cinnte go bhfuil do " +"úsaideoir in ann an bunacchar sonraí a léamh." + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" + +msgid "Forgotten your password or username?" +msgstr "Dearmad déanta ar do focal faire nó ainm úsaideora" + +msgid "Date/time" +msgstr "Dáta/am" + +msgid "User" +msgstr "Úsaideoir" + +msgid "Action" +msgstr "Aicsean" + +msgid "" +"This object doesn't have a change history. It probably wasn't added via this " +"admin site." +msgstr "" +"Níl stáir aitraithe ag an oibiacht seo agús is dócha ná cuir le tríd an an " +"suíomh riarachán." + +msgid "Show all" +msgstr "Taispéan gach rud" + +msgid "Save" +msgstr "Sábháil" + +msgid "Popup closing…" +msgstr "" + +msgid "Search" +msgstr "Cuardach" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "%(counter)s toradh" +msgstr[1] "%(counter)s torthaí" +msgstr[2] "%(counter)s torthaí" +msgstr[3] "%(counter)s torthaí" +msgstr[4] "%(counter)s torthaí" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "%(full_result_count)s iomlán" + +msgid "Save as new" +msgstr "Sabháil mar nua" + +msgid "Save and add another" +msgstr "Sabháil agus cuir le ceann eile" + +msgid "Save and continue editing" +msgstr "Sábhail agus lean ag cuir in eagar" + +msgid "Save and view" +msgstr "Sabháil agus amharc ar" + +msgid "Close" +msgstr "Druid" + +#, python-format +msgid "Change selected %(model)s" +msgstr "Athraigh roghnaithe %(model)s" + +#, python-format +msgid "Add another %(model)s" +msgstr "Cuir le %(model)s" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "Scrios roghnaithe %(model)s" + +msgid "Thanks for spending some quality time with the Web site today." +msgstr "Go raibh maith agat le hadhaigh do cuairt ar an suíomh idirlínn inniú." + +msgid "Log in again" +msgstr "Logáil isteacj arís" + +msgid "Password change" +msgstr "Athrú focal faire" + +msgid "Your password was changed." +msgstr "Bhí do focal faire aithraithe." + +msgid "" +"Please enter your old password, for security's sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" +"Le do thoil, iontráil do sean-focal faire, ar son slándáil, agus ansin " +"iontráil do focal faire dhá uaire cé go mbeimid in ann a seiceal go bhfuil " +"sé scríobhte isteach i gceart." + +msgid "Change my password" +msgstr "Athraigh mo focal faire" + +msgid "Password reset" +msgstr "Athsocraigh focal faire" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "Tá do focal faire réidh. Is féidir leat logáil isteach anois." + +msgid "Password reset confirmation" +msgstr "Deimhniú athshocraigh focal faire" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" +"Le do thoil, iontráil do focal faire dhá uaire cé go mbeimid in ann a " +"seiceal go bhfuil sé scríobhte isteach i gceart." + +msgid "New password:" +msgstr "Focal faire nua:" + +msgid "Confirm password:" +msgstr "Deimhnigh focal faire:" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"Bhí nasc athshocraigh an focal faire mícheart, b'fheidir mar go raibh sé " +"úsaidte cheana. Le do thoil, iarr ar athsocraigh focal faire nua." + +msgid "" +"We've emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" + +msgid "" +"If you don't receive an email, please make sure you've entered the address " +"you registered with, and check your spam folder." +msgstr "" + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" + +msgid "Please go to the following page and choose a new password:" +msgstr "" +"Le do thoil té go dtí an leathanach a leanúint agus roghmaigh focal faire " +"nua:" + +msgid "Your username, in case you've forgotten:" +msgstr "Do ainm úsaideoir, má tá dearmad déanta agat." + +msgid "Thanks for using our site!" +msgstr "Go raibh maith agat le hadhaigh do cuairt!" + +#, python-format +msgid "The %(site_name)s team" +msgstr "Foireann an %(site_name)s" + +msgid "" +"Forgotten your password? Enter your email address below, and we'll email " +"instructions for setting a new one." +msgstr "" + +msgid "Email address:" +msgstr "Seoladh ríomhphoist:" + +msgid "Reset my password" +msgstr "Athsocraigh mo focal faire" + +msgid "All dates" +msgstr "Gach dáta" + +#, python-format +msgid "Select %s" +msgstr "Roghnaigh %s" + +#, python-format +msgid "Select %s to change" +msgstr "Roghnaigh %s a athrú" + +#, python-format +msgid "Select %s to view" +msgstr "" + +msgid "Date:" +msgstr "Dáta:" + +msgid "Time:" +msgstr "Am:" + +msgid "Lookup" +msgstr "Cuardach" + +msgid "Currently:" +msgstr "Faoi láthair:" + +msgid "Change:" +msgstr "Athraigh:" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ga/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ga/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..ee000e278fc13e2dc8161c599d4e23b713519804 GIT binary patch literal 5247 zcmeHK&5s;M6)zG4VFL*XgwGI)1>0-lnfJUfc2vgh=5~-CZ+Xad*{F zUA?m-6a^%N_&8Yvg+xMVg$V3nQGyi`S)d@bf&d|LfdiKasUe&&I>%Q+Wl%uG(qyGF&jNJ!(=z9F1Z0=+1F5nRO7T_}hp9j7f z?H5A(Mc~`f{#|JQDd3-h??C@w1HKyYdMuto|1H3`0dEI>7NJnx6qlZXbyM zY!g4E=c7Q<^P51D^BC|k;1j@$z$O+!B>N?hUCec(w9 zz6Wo#?7e+-0Z_ER9udjS~1t`~t{2F^e^+GqQn_4qSD((5@OOlQ9d z?LPo-Li;a3+UHf^Q^3Cip9MaJMI`^BTWdWd;QeS{08;;R!0!Wp0VF=Z0HkA;i+NPa z3;R*2%%Of1^(g8zDwPk^z-EEOJ;fizFcpezI@eS_hDxyu*FxY-A+tjTH(kDeCe{w0 z=#a6K$u-B0ana11>=^G8EcLC**izXm3&)l=gvvyeNxr{e%R0#%cF5CbF(4+IHuOCcc-n$Smu$m zY*j|K6n4l~Rp!wCj7lUsCA9B5Rc1qWs??IL3md2S9kO+mXw^#{J7bK-kCQF_peebq zWGqijX}L(HNQlou+6`$rnbX{RE>wT*lX)alrIXhrcJHYhwbf_LfSrwv6HHT zcyvr|NN?5|_9aY4q&nh{tj2fOM;TAdptfjFKG}n^KrE6timX&1jz=dFq;U~DW%Oas z-!M$j2OZBvf`HfL2cdfsCt5>;L~W>~6dCrGSyFgz4kB3l)L!KGq$?qCODpe)=|OF-cP*I z`dV|GcP$|comMt%S!-5PGNDwd>n-=DLMF=j^fcmRt?Sh#aT5f4eg9d~KtY8FN5K@X z$&ALAbZ{46wF)lVw>sIkZZ!3+PxiHiE6KV0+E?_Je&!W@owT$C&FoCh?3D8A&Ie?o z>+T2GIcpw9`fjWxjn7G2AXZvDc^DyKrq0X0v97UR^iP$F%s=xwDP)azoM7 z2Ib`zUznS}r!jY|v9Q1w=37UO-8qLcby^gz(Xm1onQ+Fo`04V3zr<&fX&Xh3!4 z=BG1sN4~cin`U|8lUS*HrRd2#t*@=0+%;^zIXAUzw38Z|;mozTlbdd~p9!UpQ?S`Wy2a0SRvUNk&Lc&;(l$=& z*d$0iEq-^T+*rvL?}@2%S!qSqST!~;T3q*ivsnDZabABe&gjL(dHyLr$1%LPxPZ@j z`n>lpd@cB|c^W^0&!dNqPmM2AoYK)n%dP39S}2^Z|LgGRE?1f@smRJ|OS99}Wi1N9 zaH|Q+yVVx%_hl(SY%gW!YrQAG_)4|q#O?@R$|o9PvY||#(H34xb*T&a`|(h~HGrK} zhBH`5y5eyhv3t+(tlCz%S8KYe%k@2f&AGe8Vp$PeqY7NgDP6-EnSh&LM5z_59gCh& zRW;E$*tzWJyV50)}Nq^FQrE~)$ z!d^GgZwT|j*~Vc&{IeyEGsRXU&JGS1U#%`tzhx&d2(kqp%x!<}kWJ&1$5Ln=&dhjj zN2sFjv&~w;t8F}U44sBd;c^vpVn&&#$uXgeERf&?;eFtClL4J0t{U#+WxXi^8vKu@BE=a3q5l+k#^K6Q#xgv6IT2(j zqhe3u1AlapkG<&-t&!rZ?P@14@Z1B}Np%TVINbnI+AVQ25KnM4&a)K?8p1y@?oYh6 zI|v^n?unjuwG|, 2011 +# Luke Blaney , 2019 +# Michael Thornhill , 2011-2012,2015 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-05-17 11:50+0200\n" +"PO-Revision-Date: 2019-06-22 21:36+0000\n" +"Last-Translator: Luke Blaney \n" +"Language-Team: Irish (http://www.transifex.com/django/django/language/ga/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ga\n" +"Plural-Forms: nplurals=5; plural=(n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : " +"4);\n" + +#, javascript-format +msgid "Available %s" +msgstr "%s ar fáil" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" +"Is é seo an liosta %s ar fáil. Is féidir leat a roghnú roinnt ag roghnú acu " +"sa bhosca thíos agus ansin cliceáil ar an saighead \"Roghnaigh\" idir an dá " +"boscaí." + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "" +"Scríobh isteach sa bhosca seo a scagadh síos ar an liosta de %s ar fáil." + +msgid "Filter" +msgstr "Scagaire" + +msgid "Choose all" +msgstr "Roghnaigh iomlán" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "Cliceáil anseo chun %s go léir a roghnú." + +msgid "Choose" +msgstr "Roghnaigh" + +msgid "Remove" +msgstr "Bain amach" + +#, javascript-format +msgid "Chosen %s" +msgstr "Roghnófar %s" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" +"Is é seo an liosta de %s roghnaithe. Is féidir leat iad a bhaint amach má " +"roghnaionn tú cuid acu sa bhosca thíos agus ansin cliceáil ar an saighead " +"\"Bain\" idir an dá boscaí." + +msgid "Remove all" +msgstr "Scrois gach ceann" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "Cliceáil anseo chun %s go léir roghnaithe a scroiseadh." + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "%(sel)s de %(cnt)s roghnaithe" +msgstr[1] "%(sel)s de %(cnt)s roghnaithe" +msgstr[2] "%(sel)s de %(cnt)s roghnaithe" +msgstr[3] "%(sel)s de %(cnt)s roghnaithe" +msgstr[4] "%(sel)s de %(cnt)s roghnaithe" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" +"Tá aithrithe nach bhfuil sabhailte ar chuid do na réimse. Má ritheann tú " +"gníomh, caillfidh tú do chuid aithrithe." + +msgid "" +"You have selected an action, but you haven't saved your changes to " +"individual fields yet. Please click OK to save. You'll need to re-run the " +"action." +msgstr "" +"Tá gníomh roghnaithe agat, ach níl do aithrithe sabhailte ar cuid de na " +"réímse. Clic OK chun iad a sábháil. Caithfidh tú an gníomh a rith arís." + +msgid "" +"You have selected an action, and you haven't made any changes on individual " +"fields. You're probably looking for the Go button rather than the Save " +"button." +msgstr "" +"Tá gníomh roghnaithe agat, ach níl do aithrithe sabhailte ar cuid de na " +"réímse. Is dócha go bhfuil tú ag iarraidh an cnaipe Té ná an cnaipe Sábháil." + +msgid "Now" +msgstr "Anois" + +msgid "Midnight" +msgstr "Meán oíche" + +msgid "6 a.m." +msgstr "6 a.m." + +msgid "Noon" +msgstr "Nóin" + +msgid "6 p.m." +msgstr "6in" + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "Tabhair faoi deara: Tá tú %s uair a chloig roimh am an friothálaí." +msgstr[1] "Tabhair faoi deara: Tá tú %s uair a chloig roimh am an friothálaí." +msgstr[2] "Tabhair faoi deara: Tá tú %s uair a chloig roimh am an friothálaí." +msgstr[3] "Tabhair faoi deara: Tá tú %s uair a chloig roimh am an friothálaí." +msgstr[4] "Tabhair faoi deara: Tá tú %s uair a chloig roimh am an friothálaí." + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "" +"Tabhair faoi deara: Tá tú %s uair a chloig taobh thiar am an friothálaí." +msgstr[1] "" +"Tabhair faoi deara: Tá tú %s uair a chloig taobh thiar am an friothálaí." +msgstr[2] "" +"Tabhair faoi deara: Tá tú %s uair a chloig taobh thiar am an friothálaí." +msgstr[3] "" +"Tabhair faoi deara: Tá tú %s uair a chloig taobh thiar am an friothálaí." +msgstr[4] "" +"Tabhair faoi deara: Tá tú %s uair a chloig taobh thiar am an friothálaí." + +msgid "Choose a Time" +msgstr "Roghnaigh Am" + +msgid "Choose a time" +msgstr "Roghnaigh am" + +msgid "Cancel" +msgstr "Cealaigh" + +msgid "Today" +msgstr "Inniu" + +msgid "Choose a Date" +msgstr "Roghnaigh Dáta" + +msgid "Yesterday" +msgstr "Inné" + +msgid "Tomorrow" +msgstr "Amárach" + +msgid "January" +msgstr "Eanáir" + +msgid "February" +msgstr "Feabhra" + +msgid "March" +msgstr "Márta" + +msgid "April" +msgstr "Aibreán" + +msgid "May" +msgstr "Bealtaine" + +msgid "June" +msgstr "Meitheamh" + +msgid "July" +msgstr "Iúil" + +msgid "August" +msgstr "Lúnasa" + +msgid "September" +msgstr "Meán Fómhair" + +msgid "October" +msgstr "Deireadh Fómhair" + +msgid "November" +msgstr "Samhain" + +msgid "December" +msgstr "Nollaig" + +msgctxt "one letter Sunday" +msgid "S" +msgstr "D" + +msgctxt "one letter Monday" +msgid "M" +msgstr "L" + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "M" + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "C" + +msgctxt "one letter Thursday" +msgid "T" +msgstr "D" + +msgctxt "one letter Friday" +msgid "F" +msgstr "A" + +msgctxt "one letter Saturday" +msgid "S" +msgstr "S" + +msgid "Show" +msgstr "Taispeán" + +msgid "Hide" +msgstr "Folaigh" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/gd/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/gd/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..3807caa45aeca54c57e76dffc073d46a81248819 GIT binary patch literal 18871 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 2 && n < 20) ? 2 : 3;\n" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "Sguab às na %(verbose_name_plural)s a chaidh a thaghadh" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "Chaidh %(count)d %(items)s a sguabadh às." + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "Chan urrainn dhuinn %(name)s a sguabadh às" + +msgid "Are you sure?" +msgstr "A bheil thu cinnteach?" + +msgid "Administration" +msgstr "Rianachd" + +msgid "All" +msgstr "Na h-uile" + +msgid "Yes" +msgstr "Tha" + +msgid "No" +msgstr "Chan eil" + +msgid "Unknown" +msgstr "Chan eil fhios" + +msgid "Any date" +msgstr "Ceann-là sam bith" + +msgid "Today" +msgstr "An-diugh" + +msgid "Past 7 days" +msgstr "Na 7 làithean seo chaidh" + +msgid "This month" +msgstr "Am mìos seo" + +msgid "This year" +msgstr "Am bliadhna" + +msgid "No date" +msgstr "Gun cheann-là" + +msgid "Has date" +msgstr "Tha ceann-là aige" + +msgid "Empty" +msgstr "Falamh" + +msgid "Not empty" +msgstr "Neo-fhalamh" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" +"Cuir a-steach %(username)s agus facal-faire ceart airson cunntas neach-" +"obrach. Thoir an aire gum bi aire do litrichean mòra ’s beaga air an dà " +"raon, ma dh’fhaoidte." + +msgid "Action:" +msgstr "Gnìomh:" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "Cuir %(verbose_name)s eile ris" + +msgid "Remove" +msgstr "Thoir air falbh" + +msgid "Addition" +msgstr "Cur ris" + +msgid "Change" +msgstr "Atharraich" + +msgid "Deletion" +msgstr "Sguabadh às" + +msgid "action time" +msgstr "àm a’ ghnìomha" + +msgid "user" +msgstr "cleachdaiche" + +msgid "content type" +msgstr "seòrsa susbainte" + +msgid "object id" +msgstr "id an oibceict" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/library/functions.html#repr) +msgid "object repr" +msgstr "riochdachadh oibseict" + +msgid "action flag" +msgstr "bratach a’ ghnìomha" + +msgid "change message" +msgstr "teachdaireachd atharrachaidh" + +msgid "log entry" +msgstr "innteart loga" + +msgid "log entries" +msgstr "innteartan loga" + +#, python-format +msgid "Added “%(object)s”." +msgstr "Chaidh “%(object)s” a chur ris." + +#, python-format +msgid "Changed “%(object)s” — %(changes)s" +msgstr "Chaidh “%(object)s” atharrachadh – %(changes)s" + +#, python-format +msgid "Deleted “%(object)s.”" +msgstr "Chaidh “%(object)s” a sguabadh às." + +msgid "LogEntry Object" +msgstr "Oibseact innteart an loga" + +#, python-brace-format +msgid "Added {name} “{object}”." +msgstr "Chaidh {name} “{object}” a chur ris." + +msgid "Added." +msgstr "Chaidh a chur ris." + +msgid "and" +msgstr "agus" + +#, python-brace-format +msgid "Changed {fields} for {name} “{object}”." +msgstr "Chaidh {fields} atharrachadh airson {name} “{object}”." + +#, python-brace-format +msgid "Changed {fields}." +msgstr "Chaidh {fields} atharrachadh." + +#, python-brace-format +msgid "Deleted {name} “{object}”." +msgstr "Chaidh {name} “{object}” a sguabadh às." + +msgid "No fields changed." +msgstr "Cha deach raon atharrachadh." + +msgid "None" +msgstr "Chan eil gin" + +msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." +msgstr "Cum sìos “Control” no “Command” air Mac gus iomadh nì a thaghadh." + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully." +msgstr "Chaidh {name} “{obj}” a chur ris." + +msgid "You may edit it again below." +msgstr "’S urrainn dhut a dheasachadh a-rithist gu h-ìosal." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was added successfully. You may add another {name} below." +msgstr "" +"Chaidh {name} “%{obj}” a chur ris. ’S urrainn dhut {name} eile a chur ris gu " +"h-ìosal." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may edit it again below." +msgstr "" +"Chaidh {name} “{obj}” atharrachadh. ’S urrainn dhut a dheasachadh a-rithist " +"gu h-ìosal." + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully. You may edit it again below." +msgstr "" +"Chaidh {name} “{obj}” a chur ris. ’S urrainn dhut a dheasachadh a-rithist gu " +"h-ìosal." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may add another {name} " +"below." +msgstr "" +"Chaidh {name} “{obj}” atharrachadh. ’S urrainn dhut {name} eile a chur ris " +"gu h-ìosal." + +#, python-brace-format +msgid "The {name} “{obj}” was changed successfully." +msgstr "Chaidh {name} “{obj}” atharrachadh." + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" +"Feumaidh tu nithean a thaghadh mus dèan thu gnìomh orra. Cha deach nì " +"atharrachadh." + +msgid "No action selected." +msgstr "Cha deach gnìomh a thaghadh." + +#, python-format +msgid "The %(name)s “%(obj)s” was deleted successfully." +msgstr "Chaidh %(name)s “%(obj)s” a sguabadh às." + +#, python-format +msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" +msgstr "" +"Chan eil %(name)s leis an ID \"%(key)s\" ann. 'S dòcha gun deach a sguabadh " +"às?" + +#, python-format +msgid "Add %s" +msgstr "Cuir %s ris" + +#, python-format +msgid "Change %s" +msgstr "Atharraich %s" + +#, python-format +msgid "View %s" +msgstr "Seall %s" + +msgid "Database error" +msgstr "Mearachd an stòir-dhàta" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "Chaidh %(count)s %(name)s atharrachadh." +msgstr[1] "Chaidh %(count)s %(name)s atharrachadh." +msgstr[2] "Chaidh %(count)s %(name)s atharrachadh." +msgstr[3] "Chaidh %(count)s %(name)s atharrachadh." + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "Chaidh %(total_count)s a thaghadh" +msgstr[1] "Chaidh a h-uile %(total_count)s a thaghadh" +msgstr[2] "Chaidh a h-uile %(total_count)s a thaghadh" +msgstr[3] "Chaidh a h-uile %(total_count)s a thaghadh" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "Chaidh 0 à %(cnt)s a thaghadh" + +#, python-format +msgid "Change history: %s" +msgstr "Eachdraidh nan atharraichean: %s" + +#. Translators: Model verbose name and instance representation, +#. suitable to be an item in a list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "%(class_name)s %(instance)s" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" +"Gus %(class_name)s %(instance)s a sguabadh às, bhiodh againn ris na h-" +"oibseactan dàimheach dìonta seo a sguabadh às cuideachd: %(related_objects)s" + +msgid "Django site admin" +msgstr "Rianachd làraich Django" + +msgid "Django administration" +msgstr "Rianachd Django" + +msgid "Site administration" +msgstr "Rianachd na làraich" + +msgid "Log in" +msgstr "Clàraich a-steach" + +#, python-format +msgid "%(app)s administration" +msgstr "Rianachd %(app)s" + +msgid "Page not found" +msgstr "Cha deach an duilleag a lorg" + +msgid "We’re sorry, but the requested page could not be found." +msgstr "Tha sinn duilich ach cha do lorg sinn an duilleag a dh’iarr thu." + +msgid "Home" +msgstr "Dhachaigh" + +msgid "Server error" +msgstr "Mearachd an fhrithealaiche" + +msgid "Server error (500)" +msgstr "Mearachd an fhrithealaiche (500)" + +msgid "Server Error (500)" +msgstr "Mearachd an fhrithealaiche (500)" + +msgid "" +"There’s been an error. It’s been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" +"Chaidh rudeigin cearr. Fhuair rianairean na làraich aithris air a’ phost-d " +"agus tha sinn an dùil gun dèid a chàradh a dh’aithghearr. Mòran taing airson " +"d’ fhoighidinn." + +msgid "Run the selected action" +msgstr "Ruith an gnìomh a thagh thu" + +msgid "Go" +msgstr "Siuthad" + +msgid "Click here to select the objects across all pages" +msgstr "" +"Briog an-seo gus na h-oibseactan a thaghadh air feadh nan duilleagan uile" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "Tagh a h-uile %(total_count)s %(module_name)s" + +msgid "Clear selection" +msgstr "Falamhaich an taghadh" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "Modailean ann an aplacaid %(name)s" + +msgid "Add" +msgstr "Cuir ris" + +msgid "View" +msgstr "Seall" + +msgid "You don’t have permission to view or edit anything." +msgstr "Chan eil cead agad gus dad a shealltainn no a dheasachadh." + +msgid "" +"First, enter a username and password. Then, you’ll be able to edit more user " +"options." +msgstr "" +"Cuir ainm-cleachdaiche is facal-faire a-steach an toiseach. ’S urrainn dhut " +"barrachd roghainnean a’ chleachdaiche a dheasachadh an uairsin." + +msgid "Enter a username and password." +msgstr "Cuir ainm-cleachdaiche ’s facal-faire a-steach." + +msgid "Change password" +msgstr "Atharraich am facal-faire" + +msgid "Please correct the error below." +msgstr "Feuch an cuir thu a’ mhearachd gu h-ìosal gu ceart." + +msgid "Please correct the errors below." +msgstr "Feuch an cuir thu na mearachdan gu h-ìosal gu ceart." + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "" +"Cuir a-steach facal-faire ùr airson a’ chleachdaiche %(username)s." + +msgid "Welcome," +msgstr "Fàilte," + +msgid "View site" +msgstr "Seall an làrach" + +msgid "Documentation" +msgstr "Docamaideadh" + +msgid "Log out" +msgstr "Clàraich a-mach" + +#, python-format +msgid "Add %(name)s" +msgstr "Cuir %(name)s ris" + +msgid "History" +msgstr "An eachdraidh" + +msgid "View on site" +msgstr "Seall e air an làrach" + +msgid "Filter" +msgstr "Criathraich" + +msgid "Clear all filters" +msgstr "Falamhaich gach crithrag" + +msgid "Remove from sorting" +msgstr "Thoir air falbh on t-seòrsachadh" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "Prìomhachas an t-seòrsachaidh: %(priority_number)s" + +msgid "Toggle sorting" +msgstr "Toglaich an seòrsachadh" + +msgid "Delete" +msgstr "Sguab às" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" +"Nan sguabadh tu às %(object_name)s “%(escaped_object)s”, rachadh oibseactan " +"dàimheach a sguabadh às cuideachd ach chan eil cead aig a’ chunntas agad gus " +"na seòrsaichean de dh’oibseact seo a sguabadh às:" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" +"Nan sguabadh tu às %(object_name)s “%(escaped_object)s”, bhiodh againn ris " +"na h-oibseactan dàimheach dìonta seo a sguabadh às cuideachd:" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" +"A bheil thu cinnteach gu bheil thu airson %(object_name)s " +"“%(escaped_object)s” a sguabadh às? Thèid a h-uile nì dàimheach a sguabadh " +"às cuideachd:" + +msgid "Objects" +msgstr "Oibseactan" + +msgid "Yes, I’m sure" +msgstr "Tha mi cinnteach" + +msgid "No, take me back" +msgstr "Chan eil, air ais leam" + +msgid "Delete multiple objects" +msgstr "Sguab às iomadh oibseact" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" +"Nan sguabadh tu às a’ %(objects_name)s a thagh thu, rachadh oibseactan " +"dàimheach a sguabadh às cuideachd ach chan eil cead aig a’ chunntas agad gus " +"na seòrsaichean de dh’oibseact seo a sguabadh às:" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" +"Nan sguabadh tu às a’ %(objects_name)s a thagh thu, bhiodh againn ris na h-" +"oibseactan dàimheach dìonta seo a sguabadh às cuideachd:" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" +"A bheil thu cinnteach gu bheil thu airson a’ %(objects_name)s a thagh thu a " +"sguabadh às? Thèid a h-uile oibseact seo ’s na nithean dàimheach aca a " +"sguabadh às:" + +msgid "Delete?" +msgstr "A bheil thu airson a sguabadh às?" + +#, python-format +msgid " By %(filter_title)s " +msgstr " le %(filter_title)s " + +msgid "Summary" +msgstr "Gearr-chunntas" + +msgid "Recent actions" +msgstr "Gnìomhan o chionn goirid" + +msgid "My actions" +msgstr "Na gnìomhan agam" + +msgid "None available" +msgstr "Chan eil gin ann" + +msgid "Unknown content" +msgstr "Susbaint nach aithne dhuinn" + +msgid "" +"Something’s wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" +"Chaidh rudeigin cearr le stàladh an stòir-dhàta agad. Dèan cinnteach gun " +"deach na clàran stòir-dhàta iomchaidh a chruthachadh agus gur urrainn dhan " +"chleachdaiche iomchaidh an stòr-dàta a leughadh." + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" +"Chaidh do dhearbhadh mar %(username)s ach chan eil ùghdarras agad gus an " +"duilleag seo inntrigeadh. Am bu toigh leat clàradh a-steach le cunntas eile?" + +msgid "Forgotten your password or username?" +msgstr "" +"An do dhìochuimhnich thu am facal-faire no an t-ainm-cleachdaiche agad?" + +msgid "Toggle navigation" +msgstr "Toglaich an t-seòladaireachd" + +msgid "Start typing to filter…" +msgstr "Tòisich air sgrìobhadh airson criathradh…" + +msgid "Filter navigation items" +msgstr "Criathraich nithean na seòladaireachd" + +msgid "Date/time" +msgstr "Ceann-là ’s àm" + +msgid "User" +msgstr "Cleachdaiche" + +msgid "Action" +msgstr "Gnìomh" + +msgid "" +"This object doesn’t have a change history. It probably wasn’t added via this " +"admin site." +msgstr "" +"Chan eil eachdraidh nan atharraichean aig an oibseact seo. Dh’fhaoidte nach " +"deach a chur ris leis an làrach rianachd seo." + +msgid "Show all" +msgstr "Seall na h-uile" + +msgid "Save" +msgstr "Sàbhail" + +msgid "Popup closing…" +msgstr "Tha a’ phriob-uinneag ’ga dùnadh…" + +msgid "Search" +msgstr "Lorg" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "%(counter)s toradh" +msgstr[1] "%(counter)s thoradh" +msgstr[2] "%(counter)s toraidhean" +msgstr[3] "%(counter)s toradh" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "%(full_result_count)s gu h-iomlan" + +msgid "Save as new" +msgstr "Sàbhail mar fhear ùr" + +msgid "Save and add another" +msgstr "Sàbhail is cuir fear eile ris" + +msgid "Save and continue editing" +msgstr "Sàbhail is deasaich a-rithist" + +msgid "Save and view" +msgstr "Sàbhail is seall" + +msgid "Close" +msgstr "Dùin" + +#, python-format +msgid "Change selected %(model)s" +msgstr "Atharraich a’ %(model)s a thagh thu" + +#, python-format +msgid "Add another %(model)s" +msgstr "Cuir %(model)s eile ris" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "Sguab às a’ %(model)s a thagh thu" + +msgid "Thanks for spending some quality time with the web site today." +msgstr "" +"Mòran taing gun do chuir thu seachad deagh-àm air an làrach-lìn an-diugh." + +msgid "Log in again" +msgstr "Clàraich a-steach a-rithist" + +msgid "Password change" +msgstr "Atharrachadh an facail-fhaire" + +msgid "Your password was changed." +msgstr "Chaidh am facal-faire agad atharrachadh." + +msgid "" +"Please enter your old password, for security’s sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" +"Cuir a-steach an seann fhacal-faire agad ri linn tèarainteachd agus cuir a-" +"steach am facal-faire ùr agad dà thuras an uairsin ach an dearbhaich sinn " +"nach do rinn thu mearachd sgrìobhaidh." + +msgid "Change my password" +msgstr "Atharraich am facal-faire agam" + +msgid "Password reset" +msgstr "Ath-shuidheachadh an fhacail-fhaire" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "" +"Chaidh am facal-faire agad a shuidheachadh. Faodaidh tu clàradh a-steach a-" +"nis." + +msgid "Password reset confirmation" +msgstr "Dearbhadh air ath-shuidheachadh an fhacail-fhaire" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" +"Cuir a-steach am facal-faire ùr agad dà thuras ach an dearbhaich sinn nach " +"do rinn thu mearachd sgrìobhaidh." + +msgid "New password:" +msgstr "Am facal-faire ùr:" + +msgid "Confirm password:" +msgstr "Dearbhaich am facal-faire:" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"Bha an ceangal gus am facal-faire ath-suidheachadh mì-dhligheach; ’s dòcha " +"gun deach a chleachdadh mar-thà. Iarr ath-shuidheachadh an fhacail-fhaire às " +"ùr." + +msgid "" +"We’ve emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" +"Chuir sinn stiùireadh thugad air mar a dh’ath-shuidhicheas tu am facal-faire " +"agad air a’ phost-d dhan chunntas puist-d a chuir thu a-steach. Bu chòir " +"dhut fhaighinn a dh’aithghearr." + +msgid "" +"If you don’t receive an email, please make sure you’ve entered the address " +"you registered with, and check your spam folder." +msgstr "" +"Mura faigh thu post-d, dèan cinnteach gun do chuir thu a-steach an seòladh " +"puist-d leis an do chlàraich thu agus thoir sùil air pasgan an spama agad." + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" +"Fhuair thu am post-d seo air sgàth ’s gun do dh’iarr thu ath-shuidheachadh " +"an fhacail-fhaire agad airson a’ chunntais cleachdaiche agad air " +"%(site_name)s." + +msgid "Please go to the following page and choose a new password:" +msgstr "Tadhail air an duilleag seo is tagh facal-faire ùr:" + +msgid "Your username, in case you’ve forgotten:" +msgstr "" +"Seo an t-ainm-cleachdaiche agad air eagal ’s gun do dhìochuimhnich thu e:" + +msgid "Thanks for using our site!" +msgstr "Mòran taing airson an làrach againn a chleachdadh!" + +#, python-format +msgid "The %(site_name)s team" +msgstr "Sgioba %(site_name)s" + +msgid "" +"Forgotten your password? Enter your email address below, and we’ll email " +"instructions for setting a new one." +msgstr "" +"Na dhìochuimhnich thu am facal-faire agad? Cuir a-steach an seòladh puist-d " +"agad gu h-ìosal agus cuiridh sinn stiùireadh thugad gus fear ùr a " +"shuidheachadh air a’ phost-d." + +msgid "Email address:" +msgstr "Seòladh puist-d:" + +msgid "Reset my password" +msgstr "Ath-shuidhich am facal-faire agam" + +msgid "All dates" +msgstr "A h-uile ceann-là" + +#, python-format +msgid "Select %s" +msgstr "Tagh %s" + +#, python-format +msgid "Select %s to change" +msgstr "Tagh %s gus atharrachadh" + +#, python-format +msgid "Select %s to view" +msgstr "Tagh %s gus a shealltainn" + +msgid "Date:" +msgstr "Ceann-là:" + +msgid "Time:" +msgstr "Àm:" + +msgid "Lookup" +msgstr "Lorg" + +msgid "Currently:" +msgstr "An-dràsta:" + +msgid "Change:" +msgstr "Atharrachadh:" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/gd/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/gd/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..661e42e282d66ef6b6d03f0c3e44c5e02a390b38 GIT binary patch literal 5904 zcmd6qU5sQ!6~{|x`4~VE6hQ$?VAomM+w%bo(95z6v&;fA%Z6!05@S-`x2Erf+qcI1 zF|(5pvOM8~ng|#{k&H1W8zmZfP(d(iC&CMws00%uiTI$r=z|zF(dh5oTfIBeGa^DX z-gMpnty8B?o%+|QQ`Ik>)%dL9xsGzaloOP?Q?S8{=g3=?x)Qt(JPCZ#RDfZ z9z31;&wc&Z9)Aa(f&331|L*ZLjEx~b4?GpT1biRZ1b2c5!BfD}L#VHSCxTxC#m+Z;`**;PP=5w&gXdsG+V2KMzW~MVVP2@HBcS+sKPY}a z0Lu7}f)9aT0zU)JU_{1!4itMo=CucW5tM#s^Lh-t0DKsH8e9f%$N0O!AA#qBFM;m? z|LpOs)8L4D0GayrG5(vPk#jYslV_N zUQT{{jc0-)KM$1g#=%K&AGjA>1|@F34$3%BgJSnt5X#lheEToG{1spS6DZ@HcxJ7C zI*3S}3yQsQ@IvM_T&J^Wt>lf((hqV_&f@V-VZ@p=bwN_!56@%z$okJ^sMsv%dX#k3aSD7d`&U z<8OTXE581FUw;*pb^EKwzj^!zDDi#*K_u-bfl@!!*UtctbCGko^`MR3Z;B1IcHG}k zD>l}Ws&8)7%2*P2@79IW-O8LcNrG6LLOVujs<~l%X8Uf%R_&%rdBPOtQ+xOQwwpJ#=WRe2c1iK6}F}Cbfq?# zOjbv(%(RKD35CzxW-B(+GM(o3y14%Om37BPaT>lZv)ik#)U!V5R@JTD!U+SnRYZ9Z zzSN>!E^58S2*q|3=bB#;S)If=OfPA(VS$^~{QG8YxF)&lTisdnQ52^=>Dt$ETAAp$ z!^|UbtJ*LXT2kGWMe}<4qB>A6g3%16jxAO#Ix>2(>NMSL-rUxyW9xj}BOe8C(xaN9 zf9H`436HkxJMmk!*Oo0)CQ=LGPiD>cQWa%7bgT7@w&hdZX>(#x%t>TLhBzMXNJ!JB zTf{EiUGcZ(71EcFJW}Ys2?_aBR>Gt`%brg0A&ghzurvvy+a$~@c2Fl^mowL4o381^ zxoQEH9MKBX2OzpE3c6>8x(FFqS{B8dx~=)z?xCbNyO+~96j^r6K{(mspkA{@Qy)sK z$!#4Q`qmE#d(waCJ^MbjSVNrIAS-L{YHBt(R;Kl!+Y@5LxTw<9keQp7DwoCF2BIsE zM=h-rP5YePu9orzvJv1@GMriB}hPhzS$ zIW|XF+7vIyN-bU3!^OmMV&Zgq8d^)(PF@@eFk?HS|FVB#?1c2Zwd2J6QzDn=4hFEU~DzgC**tC=M=o9Y8G z_Z&7LpSKL2Oj&D_C~g8-tW94p87>QPnySTK8D~0-Y!Rt8E>|zzrDqx>gY~*PSnrQ~ zq((;i7%v(Js$51c$9z-$s}5UCSEIN%D=?8U zk)#uG%}e$E!IPaRG2JMvrf)f?nf_cBb5dj`=AJZfh%Iooujh>;Pg=A^ncY=Nz}4S_ z2YUS|cDd*+4AwL5jj5g+9E}U%bAdY)hfd&_a5v%#=IiXC$cQFh5zFmJ$S7sfrT8he z!Q*laQYj)A=Q6lVU07I(vY1n>_K!Q+f7uN4`2TWfvo}N|976M(qvs8q*+S17w)CIR zs|XfNpWP%IHwd%AI{Q|_VLy?AI8$w6hj1E({%Bnv-Xq!|A>m6b?L0A46ZSk1==N--?uUd^t z2#18pBi?&bcI}MBqTKu)|6gQ}`iV4keRjzFaBz;yFMl}#67IUVDZ~ibM*CqBVN%cA zvR|EA1w5t4dDK}6DcS^*lKEd*xjtkPUu5JS7xBDuS!}^Q;mwKZ-Ai@qm;s?Zq#9Zy z0~a~l&gAuaH1z^IPsT!|al)@8K^t+{gtC*jqd~^rG?i*$Au>stN=|)Mo%gCb57hxV t2RZp%tmKSS)#0Y 2 && n < 20) ? 2 : 3;\n" + +#, javascript-format +msgid "Available %s" +msgstr "%s ri am faighinn" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" +"Seo liosta de %s a tha ri am faighinn. Gus feadhainn a thaghadh, tagh iad sa " +"bhogsa gu h-ìosal agus briog air an t-saighead “Tagh” eadar an dà bhogsa an " +"uair sin." + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "" +"Sgrìobh sa bhogsa seo gus an liosta de %s ri am faighinn a chriathradh." + +msgid "Filter" +msgstr "Criathraich" + +msgid "Choose all" +msgstr "Tagh na h-uile" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "Briog gus a h-uile %s a thaghadh aig an aon àm." + +msgid "Choose" +msgstr "Tagh" + +msgid "Remove" +msgstr "Thoir air falbh" + +#, javascript-format +msgid "Chosen %s" +msgstr "%s a chaidh a thaghadh" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" +"Seo liosta de %s a chaidh a thaghadh. Gus feadhainn a thoirt air falbh, tagh " +"iad sa bhogsa gu h-ìosal agus briog air an t-saighead “Thoir air falbh” " +"eadar an dà bhogsa an uair sin." + +msgid "Remove all" +msgstr "Thoir air falbh na h-uile" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "Briog gus a h-uile %s a chaidh a thaghadh a thoirt air falbh." + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "Chaidh %(sel)s à %(cnt)s a thaghadh" +msgstr[1] "Chaidh %(sel)s à %(cnt)s a thaghadh" +msgstr[2] "Chaidh %(sel)s à %(cnt)s a thaghadh" +msgstr[3] "Chaidh %(sel)s à %(cnt)s a thaghadh" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" +"Tha atharraichean gun sàbhaladh agad ann an raon no dhà fa leth a ghabhas " +"deasachadh. Ma ruitheas tu gnìomh, thèid na dh’atharraich thu gun a " +"shàbhaladh air chall." + +msgid "" +"You have selected an action, but you haven’t saved your changes to " +"individual fields yet. Please click OK to save. You’ll need to re-run the " +"action." +msgstr "" +"Thagh thu gnìomh ach cha do shàbhail thu na dh’atharraich thu ann an " +"raointean fa leth. Briog air “Ceart ma-thà” gus seo a shàbhaladh. Feumaidh " +"tu an gnìomh a ruith a-rithist." + +msgid "" +"You have selected an action, and you haven’t made any changes on individual " +"fields. You’re probably looking for the Go button rather than the Save " +"button." +msgstr "" +"Thagh thu gnìomh agus cha do rinn thu atharrachadh air ran fa leth sam bith. " +"’S dòcha gu bheil thu airson am putan “Siuthad” a chleachdadh seach am putan " +"“Sàbhail”." + +msgid "Now" +msgstr "An-dràsta" + +msgid "Midnight" +msgstr "Meadhan-oidhche" + +msgid "6 a.m." +msgstr "6m" + +msgid "Noon" +msgstr "Meadhan-latha" + +msgid "6 p.m." +msgstr "6f" + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "" +"An aire: Tha thu %s uair a thìde air thoiseach àm an fhrithealaiche." +msgstr[1] "" +"An aire: Tha thu %s uair a thìde air thoiseach àm an fhrithealaiche." +msgstr[2] "" +"An aire: Tha thu %s uairean a thìde air thoiseach àm an fhrithealaiche." +msgstr[3] "" +"An aire: Tha thu %s uair a thìde air thoiseach àm an fhrithealaiche." + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "" +"An aire: Tha thu %s uair a thìde air dheireadh àm an fhrithealaiche." +msgstr[1] "" +"An aire: Tha thu %s uair a thìde air dheireadh àm an fhrithealaiche." +msgstr[2] "" +"An aire: Tha thu %s uairean a thìde air dheireadh àm an fhrithealaiche." +msgstr[3] "" +"An aire: Tha thu %s uair a thìde air dheireadh àm an fhrithealaiche." + +msgid "Choose a Time" +msgstr "Tagh àm" + +msgid "Choose a time" +msgstr "Tagh àm" + +msgid "Cancel" +msgstr "Sguir dheth" + +msgid "Today" +msgstr "An-diugh" + +msgid "Choose a Date" +msgstr "Tagh ceann-là" + +msgid "Yesterday" +msgstr "An-dè" + +msgid "Tomorrow" +msgstr "A-màireach" + +msgid "January" +msgstr "Am Faoilleach" + +msgid "February" +msgstr "An Gearran" + +msgid "March" +msgstr "Am Màrt" + +msgid "April" +msgstr "An Giblean" + +msgid "May" +msgstr "An Cèitean" + +msgid "June" +msgstr "An t-Ògmhios" + +msgid "July" +msgstr "An t-Iuchar" + +msgid "August" +msgstr "An Lùnastal" + +msgid "September" +msgstr "An t-Sultain" + +msgid "October" +msgstr "An Dàmhair" + +msgid "November" +msgstr "An t-Samhain" + +msgid "December" +msgstr "An Dùbhlachd" + +msgctxt "abbrev. month January" +msgid "Jan" +msgstr "Faoi" + +msgctxt "abbrev. month February" +msgid "Feb" +msgstr "Gearr" + +msgctxt "abbrev. month March" +msgid "Mar" +msgstr "Màrt" + +msgctxt "abbrev. month April" +msgid "Apr" +msgstr "Gibl" + +msgctxt "abbrev. month May" +msgid "May" +msgstr "Cèit" + +msgctxt "abbrev. month June" +msgid "Jun" +msgstr "Ògmh" + +msgctxt "abbrev. month July" +msgid "Jul" +msgstr "Iuch" + +msgctxt "abbrev. month August" +msgid "Aug" +msgstr "Lùna" + +msgctxt "abbrev. month September" +msgid "Sep" +msgstr "Sult" + +msgctxt "abbrev. month October" +msgid "Oct" +msgstr "Dàmh" + +msgctxt "abbrev. month November" +msgid "Nov" +msgstr "Samh" + +msgctxt "abbrev. month December" +msgid "Dec" +msgstr "Dùbh" + +msgctxt "one letter Sunday" +msgid "S" +msgstr "Dò" + +msgctxt "one letter Monday" +msgid "M" +msgstr "Lu" + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "Mà" + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "Ci" + +msgctxt "one letter Thursday" +msgid "T" +msgstr "Da" + +msgctxt "one letter Friday" +msgid "F" +msgstr "hA" + +msgctxt "one letter Saturday" +msgid "S" +msgstr "Sa" + +msgid "Show" +msgstr "Seall" + +msgid "Hide" +msgstr "Falaich" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/gl/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/gl/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..daddcd3ea4cec23bc13d446f4e8482f080d0e809 GIT binary patch literal 18542 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, 2021 +# fasouto , 2011-2012 +# fonso , 2011,2013 +# fasouto , 2017 +# Jannis Leidel , 2011 +# Leandro Regueiro , 2013 +# 948a55bc37dd6d642f1875bb84258fff_07a28cc , 2011-2012 +# Pablo, 2015 +# X Bello , 2023-2024 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-05-22 11:46-0300\n" +"PO-Revision-Date: 2024-08-07 07:05+0000\n" +"Last-Translator: X Bello , 2023-2024\n" +"Language-Team: Galician (http://app.transifex.com/django/django/language/" +"gl/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: gl\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "Borrar %(verbose_name_plural)s seleccionados." + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "Borrado exitosamente %(count)d %(items)s" + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "Non foi posíble eliminar %(name)s" + +msgid "Are you sure?" +msgstr "¿Está seguro?" + +msgid "Administration" +msgstr "Administración" + +msgid "All" +msgstr "Todo" + +msgid "Yes" +msgstr "Si" + +msgid "No" +msgstr "Non" + +msgid "Unknown" +msgstr "Descoñecido" + +msgid "Any date" +msgstr "Calquera data" + +msgid "Today" +msgstr "Hoxe" + +msgid "Past 7 days" +msgstr "Últimos 7 días" + +msgid "This month" +msgstr "Este mes" + +msgid "This year" +msgstr "Este ano" + +msgid "No date" +msgstr "Sen data" + +msgid "Has date" +msgstr "Ten data" + +msgid "Empty" +msgstr "Baleiro" + +msgid "Not empty" +msgstr "Non baleiro" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" +"Por favor, insira os %(username)s e contrasinal dunha conta de persoal. Teña " +"en conta que ambos os dous campos distingues maiúsculas e minúsculas." + +msgid "Action:" +msgstr "Acción:" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "Engadir outro %(verbose_name)s" + +msgid "Remove" +msgstr "Retirar" + +msgid "Addition" +msgstr "Engadido" + +msgid "Change" +msgstr "Modificar" + +msgid "Deletion" +msgstr "Borrado" + +msgid "action time" +msgstr "hora da acción" + +msgid "user" +msgstr "usuario" + +msgid "content type" +msgstr "tipo de contido" + +msgid "object id" +msgstr "id do obxecto" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/library/functions.html#repr) +msgid "object repr" +msgstr "repr do obxecto" + +msgid "action flag" +msgstr "código do tipo de acción" + +msgid "change message" +msgstr "cambiar mensaxe" + +msgid "log entry" +msgstr "entrada de rexistro" + +msgid "log entries" +msgstr "entradas de rexistro" + +#, python-format +msgid "Added “%(object)s”." +msgstr "Engadido %(object)s" + +#, python-format +msgid "Changed “%(object)s” — %(changes)s" +msgstr "Cambiado “%(object)s” — %(changes)s" + +#, python-format +msgid "Deleted “%(object)s.”" +msgstr "Eliminado “%(object)s.”" + +msgid "LogEntry Object" +msgstr "Obxecto LogEntry" + +#, python-brace-format +msgid "Added {name} “{object}”." +msgstr "Engadido {name} “{object}”." + +msgid "Added." +msgstr "Engadido." + +msgid "and" +msgstr "e" + +#, python-brace-format +msgid "Changed {fields} for {name} “{object}”." +msgstr "Cambiados {fields} por {name} “{object}”." + +#, python-brace-format +msgid "Changed {fields}." +msgstr "Cambiados {fields}." + +#, python-brace-format +msgid "Deleted {name} “{object}”." +msgstr "Eliminado {name} “{object}”." + +msgid "No fields changed." +msgstr "Non se modificou ningún campo." + +msgid "None" +msgstr "Ningún" + +msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." +msgstr "" +" Para seleccionar máis dunha entrada, manteña premida a tecla “Control”, ou " +"“Comando” nun Mac." + +msgid "Select this object for an action - {}" +msgstr "Seleccione este obxeto para unha acción - {}" + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully." +msgstr "Engadiuse correctamente {name} “{obj}”." + +msgid "You may edit it again below." +msgstr "Pode editalo outra vez abaixo." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was added successfully. You may add another {name} below." +msgstr "" +"Engadiuse correctamente {name} “{obj}”. Pode engadir outro {name} abaixo." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may edit it again below." +msgstr "Modificouse correctamente {name} “{obj}”. Pode editalo de novo abaixo." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may add another {name} " +"below." +msgstr "" +"Modificouse correctamente {name} “{obj}”. Pode engadir outro {name} abaixo." + +#, python-brace-format +msgid "The {name} “{obj}” was changed successfully." +msgstr "Modificouse correctamente {name} “{obj}”." + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" +"Debe seleccionar ítems para poder facer accións con eles. Ningún ítem foi " +"cambiado." + +msgid "No action selected." +msgstr "Non se elixiu ningunha acción." + +#, python-format +msgid "The %(name)s “%(obj)s” was deleted successfully." +msgstr "Eliminouse correctamente %(name)s “%(obj)s”." + +#, python-format +msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" +msgstr "Non existe %(name)s ca ID “%(key)s”. Ó mellor foi borrado?" + +#, python-format +msgid "Add %s" +msgstr "Engadir %s" + +#, python-format +msgid "Change %s" +msgstr "Modificar %s" + +#, python-format +msgid "View %s" +msgstr "Ver %s" + +msgid "Database error" +msgstr "Erro da base de datos" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "%(count)s %(name)s foi cambiado satisfactoriamente." +msgstr[1] "%(count)s %(name)s foron cambiados satisfactoriamente." + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "%(total_count)s seleccionado." +msgstr[1] "Tódolos %(total_count)s seleccionados." + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "0 de %(cnt)s seleccionados." + +#, python-format +msgid "Change history: %s" +msgstr "Histórico de cambios: %s" + +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "%(class_name)s %(instance)s" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" +"O borrado de %(class_name)s %(instance)s precisaría borrar os seguintes " +"obxetos relacionados: %(related_objects)s" + +msgid "Django site admin" +msgstr "Administración de sitio Django" + +msgid "Django administration" +msgstr "Administración de Django" + +msgid "Site administration" +msgstr "Administración do sitio" + +msgid "Log in" +msgstr "Iniciar sesión" + +#, python-format +msgid "%(app)s administration" +msgstr "administración de %(app)s " + +msgid "Page not found" +msgstr "Páxina non atopada" + +msgid "We’re sorry, but the requested page could not be found." +msgstr "Sentímolo, pero non se atopou a páxina solicitada." + +msgid "Home" +msgstr "Inicio" + +msgid "Server error" +msgstr "Erro no servidor" + +msgid "Server error (500)" +msgstr "Erro no servidor (500)" + +msgid "Server Error (500)" +msgstr "Erro no servidor (500)" + +msgid "" +"There’s been an error. It’s been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" +"Ocorreu un erro. Os administradores do sitio foron informados por email e " +"debería ser arranxado pronto. Grazas pola súa paciencia." + +msgid "Run the selected action" +msgstr "Executar a acción seleccionada" + +msgid "Go" +msgstr "Ir" + +msgid "Click here to select the objects across all pages" +msgstr "Fai clic aquí para seleccionar os obxectos en tódalas páxinas" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "Seleccionar todos os %(total_count)s %(module_name)s" + +msgid "Clear selection" +msgstr "Limpar selección" + +msgid "Breadcrumbs" +msgstr "Migas de pan" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "Modelos na aplicación %(name)s" + +msgid "Add" +msgstr "Engadir" + +msgid "View" +msgstr "Vista" + +msgid "You don’t have permission to view or edit anything." +msgstr "Non ten permiso para ver ou editar nada." + +msgid "" +"First, enter a username and password. Then, you’ll be able to edit more user " +"options." +msgstr "" +"Primeiro insira un nome de usuario e un contrasinal. Despois poderá editar " +"máis opcións de usuario." + +msgid "Enter a username and password." +msgstr "Introduza un nome de usuario e contrasinal." + +msgid "Change password" +msgstr "Cambiar contrasinal" + +msgid "Set password" +msgstr "Configurar contrasinal" + +msgid "Please correct the error below." +msgid_plural "Please correct the errors below." +msgstr[0] "Por favor corrixa o erro de abaixo." +msgstr[1] "Por favor corrixa o erro de abaixo." + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "" +"Insira un novo contrasinal para o usuario %(username)s." + +msgid "" +"This action will enable password-based authentication for " +"this user." +msgstr "" +"Esta acción vai habilitar a autentificación basada en " +"contrasinal para este usuario." + +msgid "Disable password-based authentication" +msgstr "Deshabilitar a autentificación basada en contrasinal" + +msgid "Enable password-based authentication" +msgstr "Habilitar a autentificación basada en contrasinal" + +msgid "Skip to main content" +msgstr "Saltar ó contido principal" + +msgid "Welcome," +msgstr "Benvido," + +msgid "View site" +msgstr "Ver sitio" + +msgid "Documentation" +msgstr "Documentación" + +msgid "Log out" +msgstr "Rematar sesión" + +#, python-format +msgid "Add %(name)s" +msgstr "Engadir %(name)s" + +msgid "History" +msgstr "Historial" + +msgid "View on site" +msgstr "Ver no sitio" + +msgid "Filter" +msgstr "Filtro" + +msgid "Hide counts" +msgstr "Agochar contas" + +msgid "Show counts" +msgstr "Amosar contas" + +msgid "Clear all filters" +msgstr "Borrar tódolos filtros" + +msgid "Remove from sorting" +msgstr "Eliminar da clasificación" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "Prioridade de clasificación: %(priority_number)s" + +msgid "Toggle sorting" +msgstr "Activar clasificación" + +msgid "Toggle theme (current theme: auto)" +msgstr "Escoller tema (tema actual: auto)" + +msgid "Toggle theme (current theme: light)" +msgstr "Escoller tema (tema actual: claro)" + +msgid "Toggle theme (current theme: dark)" +msgstr "Escoller tema (tema actual: escuro)" + +msgid "Delete" +msgstr "Eliminar" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" +"Borrar o %(object_name)s '%(escaped_object)s' resultaría na eliminación de " +"elementos relacionados, pero a súa conta non ten permiso para borrar os " +"seguintes tipos de elementos:" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" +"Para borrar o obxecto %(object_name)s '%(escaped_object)s' requiriríase " +"borrar os seguintes obxectos protexidos relacionados:" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" +"Seguro que quere borrar o %(object_name)s \"%(escaped_object)s\"? " +"Eliminaranse os seguintes obxectos relacionados:" + +msgid "Objects" +msgstr "Obxectos" + +msgid "Yes, I’m sure" +msgstr "Sí, estou seguro" + +msgid "No, take me back" +msgstr "Non, lévame de volta" + +msgid "Delete multiple objects" +msgstr "Eliminar múltiples obxectos" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" +"Borrar os obxectos %(objects_name)s seleccionados resultaría na eliminación " +"de obxectos relacionados, pero a súa conta non ten permiso para borrar os " +"seguintes tipos de obxecto:" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" +"Para borrar os obxectos %(objects_name)s relacionados requiriríase eliminar " +"os seguintes obxectos protexidos relacionados:" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" +"Está seguro de que quere borrar os obxectos %(objects_name)s seleccionados? " +"Serán eliminados todos os seguintes obxectos e elementos relacionados on " +"eles:" + +msgid "Delete?" +msgstr "¿Eliminar?" + +#, python-format +msgid " By %(filter_title)s " +msgstr " Por %(filter_title)s " + +msgid "Summary" +msgstr "Sumario" + +msgid "Recent actions" +msgstr "Accións recentes" + +msgid "My actions" +msgstr "As miñas accións" + +msgid "None available" +msgstr "Ningunha dispoñíbel" + +msgid "Added:" +msgstr "Engadido:" + +msgid "Changed:" +msgstr "Modificado:" + +msgid "Deleted:" +msgstr "Eliminado:" + +msgid "Unknown content" +msgstr "Contido descoñecido" + +msgid "" +"Something’s wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" +"Hai un problema coa súa instalación de base de datos. Asegúrese de que se " +"creasen as táboas axeitadas na base de datos, e de que o usuario apropiado " +"teña permisos para lela." + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" +"Está identificado como %(username)s, pero non está autorizado para acceder a " +"esta páxina. Gustaríalle identificarse con una conta diferente?" + +msgid "Forgotten your password or username?" +msgstr "¿Olvidou o usuario ou contrasinal?" + +msgid "Toggle navigation" +msgstr "Activar navegación" + +msgid "Sidebar" +msgstr "Barra lateral" + +msgid "Start typing to filter…" +msgstr "Comece a escribir para filtrar…" + +msgid "Filter navigation items" +msgstr "Filtrar ítems de navegación" + +msgid "Date/time" +msgstr "Data/hora" + +msgid "User" +msgstr "Usuario" + +msgid "Action" +msgstr "Acción" + +msgid "entry" +msgid_plural "entries" +msgstr[0] "entrada" +msgstr[1] "entradas" + +msgid "" +"This object doesn’t have a change history. It probably wasn’t added via this " +"admin site." +msgstr "" +"Este obxecto non ten histórico de cambios. Posibelmente non se creou usando " +"este sitio de administración." + +msgid "Show all" +msgstr "Amosar todo" + +msgid "Save" +msgstr "Gardar" + +msgid "Popup closing…" +msgstr "Pechando popup…" + +msgid "Search" +msgstr "Busca" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "%(counter)s resultado. " +msgstr[1] "%(counter)s resultados." + +#, python-format +msgid "%(full_result_count)s total" +msgstr "%(full_result_count)s en total" + +msgid "Save as new" +msgstr "Gardar como novo" + +msgid "Save and add another" +msgstr "Gardar e engadir outro" + +msgid "Save and continue editing" +msgstr "Gardar e seguir modificando" + +msgid "Save and view" +msgstr "Gardar e ver" + +msgid "Close" +msgstr "Pechar" + +#, python-format +msgid "Change selected %(model)s" +msgstr "Cambiar %(model)s seleccionado" + +#, python-format +msgid "Add another %(model)s" +msgstr "Engadir outro %(model)s" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "Eliminar %(model)s seleccionado" + +#, python-format +msgid "View selected %(model)s" +msgstr "Ver %(model)s seleccionado" + +msgid "Thanks for spending some quality time with the web site today." +msgstr "Grazas polo tempo que dedicou ao sitio web." + +msgid "Log in again" +msgstr "Entrar de novo" + +msgid "Password change" +msgstr "Cambiar o contrasinal" + +msgid "Your password was changed." +msgstr "Cambiouse o seu contrasinal." + +msgid "" +"Please enter your old password, for security’s sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" +"Por razóns de seguridade, introduza o contrasinal actual, e despois " +"introduza o novo contrasinal dúas veces para verificar que o escribiu " +"correctamente." + +msgid "Change my password" +msgstr "Cambiar o contrasinal" + +msgid "Password reset" +msgstr "Recuperar o contrasinal" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "" +"A túa clave foi gardada.\n" +"Xa podes entrar." + +msgid "Password reset confirmation" +msgstr "Confirmación de reseteo da contrasinal" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" +"Por favor insira a súa contrasinal dúas veces para que podamos verificar se " +"a escribiu correctamente." + +msgid "New password:" +msgstr "Contrasinal novo:" + +msgid "Confirm password:" +msgstr "Confirmar contrasinal:" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"A ligazón de reseteo da contrasinal non é válida, posiblemente porque xa foi " +"usada. Por favor pida un novo reseteo da contrasinal." + +msgid "" +"We’ve emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" +"Acabamos de enviarlle as instrucións para configurar o contrasinal ao " +"enderezo de email que nos indicou. Debería recibilas axiña." + +msgid "" +"If you don’t receive an email, please make sure you’ve entered the address " +"you registered with, and check your spam folder." +msgstr "" +"Se non recibe un email, por favor asegúrese de que escribiu a dirección ca " +"que se rexistrou, e comprobe a carpeta de spam." + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" +"Recibe este email porque solicitou restablecer o contrasinal para a súa " +"conta de usuario en %(site_name)s" + +msgid "Please go to the following page and choose a new password:" +msgstr "Por favor vaia á seguinte páxina e elixa una nova contrasinal:" + +msgid "Your username, in case you’ve forgotten:" +msgstr "No caso de que o esquecese, o seu nome de usuario é:" + +msgid "Thanks for using our site!" +msgstr "Grazas por usar o noso sitio web!" + +#, python-format +msgid "The %(site_name)s team" +msgstr "O equipo de %(site_name)s" + +msgid "" +"Forgotten your password? Enter your email address below, and we’ll email " +"instructions for setting a new one." +msgstr "" +"Esqueceu o contrasinal? Insira o seu enderezo de email embaixo e " +"enviarémoslle as instrucións para configurar un novo." + +msgid "Email address:" +msgstr "Enderezo de correo electrónico:" + +msgid "Reset my password" +msgstr "Recuperar o meu contrasinal" + +msgid "Select all objects on this page for an action" +msgstr "Seleccione tódolos obxetos desta páxina para unha acción" + +msgid "All dates" +msgstr "Todas as datas" + +#, python-format +msgid "Select %s" +msgstr "Seleccione un/unha %s" + +#, python-format +msgid "Select %s to change" +msgstr "Seleccione %s que modificar" + +#, python-format +msgid "Select %s to view" +msgstr "Seleccione %s para ver" + +msgid "Date:" +msgstr "Data:" + +msgid "Time:" +msgstr "Hora:" + +msgid "Lookup" +msgstr "Procurar" + +msgid "Currently:" +msgstr "Actualmente:" + +msgid "Change:" +msgstr "Modificar:" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/gl/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/gl/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..0fcb774aa8dd41684dee332dc3d3ad100301c484 GIT binary patch literal 6083 zcmcJT?T=hl8Nd%RD6E2tf{0ZP)!J4%v)h(ZI%T1y?e>LkyLJa$Vl+83_w3AV@7y!o zm)#CQqd`Lq8l$L)qSC|<64GcxNF#)3GhgJZ3DLyF4}LS6=pSIBzvtdFv$I1jpy6iE z{hjxF&htFyInV5$Z>)S@@hp%wke+>)QfDN84KJSGy<4f>@HKcZyy`tlkyZOV4@2pC z!j~KHeUv}%%NhcrE;w=QR}M`!{&r1S^y` zK)R^geR->A4a)jv;3@>^95#B=iAHIAo!v84c+u%pw9$)^fFQ0+Z|8aOLeAe?KlySd@ zGXLK_ufCz2=T>+V^*f-9I|8MD3w{iK34RDZ<9QxR|4Y972Vedh{4n)by}$g<%`m!3 zsVWpX{OAKp9fPk!wyg9AOZjhuBFEiOw}(Og#4+tXW#Ql$d=SkeE9{q zgYv8J0Q@JEdG5Tiv&?Au3gm`SKG`^!rWNfj@w! z;lH7L_cX$j`BEtJ_dUM~W!>NK<)@+a{~46^{leG(623_JBK#FRgOFvu4Jbj@vk^-F z&7L(lOL>=P3T1s4p!9zQiaq}pJ_R4dC|2QLp_~(gaS1Jy{vnig$G(2W^HJaaWnX^W z^9j!=KZlRKj+Io_vPn3&wE~gn2~zP^P=akJzw#B)$=!=mpoB_;fL66 z@yvOOjf?g@txRW$|KIt=<$`MQ%(Y-%^@0TQOI?k357Qzb2s(09(<@;bHY2Mxy`ec>*M65awQfz_rF(+?y(Em({=A*1ncBZ%!pJa*-ju2XCT`hC z9q2fhS`TgXL6eP@8ew;=l#Q37Vr**TVzMY~oza=otztTDqKIm3GVSuEaKf#slda5&JWds2^APE&MU&-;Y;n={vU0#;hY^c;vGGPHOf`R5 z$Lc6d(ZjMfW9qLJ^5~lWP-Cg6Ak0G4DISLE~aR@v+OH!tJ<(NT4LQ2mHK{q zV`)Ykk#It%rp;C@edO!es?!X&X-!>jQ6no@TamYs|8qs9$li2Cd6J408?JnJooqlg za$8pSdlngB*qI1a#6W(zFiIV`)pCoM6|ic&t+7MbfPL1~=WGy{3wYS3*uShz?6+e$ zJENW^)}|%?VOybb}itdLgnVwWY=BlMjdrWc+aT_?p-<8`X)eCV9EKQZ!==%j5E+mluc)!mMzOL&+Rn zE|x6QjS0F~@#IXaAxmg-&|I3;lxa2-yHe9AO_zSF0@hWR-l+oCRS(Z}h0OYf;!syO z+v}ex~}*}HK172Xrwxdy21Pt=~^){&c~LS~}L``8McXc@WI z3OVIsG;A}D<4CRJbwizw*R3gZU9H#Vc-@*R*VPWyI9@rXL$#2&(?k^2qe1l{o22-H zx(-fr;N8?I+jB`)olo0gP`y8Ir`3k5>#2p4)l*ht2^Ux8uCMDIGuwAoXYQ=-*rjK7 z*LUr?V}@tyxJk2WBQbFrnam}1y`=BAQRMVJXSoO>x3AqLn5eZ}_ug$xv12DA;&yJ@ zw%V|!Ti1sT7evU>+0x0fUVVDn^m?^SCJdMDSs6H8u5^gVkDqQw(_5$JkIo-j+tc>i z%+vv_)W$3dzgpLsJ)2GUA``}Y#e*cN&1N5L%vJAR>nGn@wn_C++;RaoRbAiR471TX z>$)9HEkt=@qUxMWx@ldO-b7ej=2~pAhW)bMM zaX~C5)j^o{9G%WLZ8!|}I4g&W1rt$}8Kd*KQv`ixea#VshUc-9aSaD+o7O*Erh zxPXx8zdT9Hre*0}8V>`O6N@L%8%xu+$wr-qSuV#6w?T-52?m3gc^5NdHp4X!Ev;Pe zdfV~~9$Mu)vtU2_n=W{XTP#&ah^DdE!UJHuS!v)&*udp= z@peWR0ch!*98#PgJfF0j9J7-g1(^(&X!Ft%OsmkYvZ*DSW$J$ zbeo~5yv+B&C=Lt>QMuzJGPPZ_D5jHHL)4kJ_$A`B{I`PFH?)SHOPr-dQuqw<2, 2011 +# fonso , 2011,2013 +# Jannis Leidel , 2011 +# Leandro Regueiro , 2013 +# X Bello , 2023 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-09-18 15:04-0300\n" +"PO-Revision-Date: 2023-12-04 07:59+0000\n" +"Last-Translator: X Bello , 2023\n" +"Language-Team: Galician (http://app.transifex.com/django/django/language/" +"gl/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: gl\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, javascript-format +msgid "Available %s" +msgstr "%s dispoñíbeis" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" +"Esta é unha lista de %s dispoñíbeis. Pode escoller algúns seleccionándoos na " +"caixa inferior e a continuación facendo clic na frecha \"Escoller\" situada " +"entre as dúas caixas." + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "Escriba nesta caixa para filtrar a lista de %s dispoñíbeis." + +msgid "Filter" +msgstr "Filtro" + +msgid "Choose all" +msgstr "Escoller todo" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "Prema para escoller todos/as os/as '%s' dunha vez." + +msgid "Choose" +msgstr "Escoller" + +msgid "Remove" +msgstr "Retirar" + +#, javascript-format +msgid "Chosen %s" +msgstr "%s escollido/a(s)" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" +"Esta é a lista de %s escollidos/as. Pode eliminar algúns seleccionándoos na " +"caixa inferior e a continuación facendo clic na frecha \"Eliminar\" situada " +"entre as dúas caixas." + +#, javascript-format +msgid "Type into this box to filter down the list of selected %s." +msgstr "Escriba nesta caixa para filtrar a lista de %s seleccionados." + +msgid "Remove all" +msgstr "Retirar todos" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "Faga clic para eliminar da lista todos/as os/as '%s' escollidos/as." + +#, javascript-format +msgid "%s selected option not visible" +msgid_plural "%s selected options not visible" +msgstr[0] "%s opción seleccionada non visible" +msgstr[1] "%s opcións seleccionadas non visibles" + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "%(sel)s de %(cnt)s escollido" +msgstr[1] "%(sel)s de %(cnt)s escollidos" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" +"Tes cambios sen guardar en campos editables individuales. Se executas unha " +"acción, os cambios non gardados perderanse." + +msgid "" +"You have selected an action, but you haven’t saved your changes to " +"individual fields yet. Please click OK to save. You’ll need to re-run the " +"action." +msgstr "" +"Escolleu unha acción, pero aínda non gardou os cambios nos campos " +"individuais. Prema OK para gardar. Despois terá que volver executar a acción." + +msgid "" +"You have selected an action, and you haven’t made any changes on individual " +"fields. You’re probably looking for the Go button rather than the Save " +"button." +msgstr "" +"Escolleu unha acción, pero aínda non gardou os cambios nos campos " +"individuais. Probablemente estea buscando o botón Ir no canto do botón " +"Gardar." + +msgid "Now" +msgstr "Agora" + +msgid "Midnight" +msgstr "Medianoite" + +msgid "6 a.m." +msgstr "6 da mañá" + +msgid "Noon" +msgstr "Mediodía" + +msgid "6 p.m." +msgstr "6 da tarde" + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "Nota: Está %s hora por diante da hora do servidor." +msgstr[1] "Nota: Está %s horas por diante da hora do servidor." + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "Nota: Está %s hora por detrás da hora do servidor." +msgstr[1] "Nota: Está %s horas por detrás da hora do servidor." + +msgid "Choose a Time" +msgstr "Escolla unha Hora" + +msgid "Choose a time" +msgstr "Escolla unha hora" + +msgid "Cancel" +msgstr "Cancelar" + +msgid "Today" +msgstr "Hoxe" + +msgid "Choose a Date" +msgstr "Escolla unha Data" + +msgid "Yesterday" +msgstr "Onte" + +msgid "Tomorrow" +msgstr "Mañá" + +msgid "January" +msgstr "Xaneiro" + +msgid "February" +msgstr "Febreiro" + +msgid "March" +msgstr "Marzo" + +msgid "April" +msgstr "Abril" + +msgid "May" +msgstr "Maio" + +msgid "June" +msgstr "Xuño" + +msgid "July" +msgstr "Xullo" + +msgid "August" +msgstr "Agosto" + +msgid "September" +msgstr "Setembro" + +msgid "October" +msgstr "Outubro" + +msgid "November" +msgstr "Novembro" + +msgid "December" +msgstr "Decembro" + +msgctxt "abbrev. month January" +msgid "Jan" +msgstr "Xan" + +msgctxt "abbrev. month February" +msgid "Feb" +msgstr "Feb" + +msgctxt "abbrev. month March" +msgid "Mar" +msgstr "Mar" + +msgctxt "abbrev. month April" +msgid "Apr" +msgstr "Abr" + +msgctxt "abbrev. month May" +msgid "May" +msgstr "Maio" + +msgctxt "abbrev. month June" +msgid "Jun" +msgstr "Xuñ" + +msgctxt "abbrev. month July" +msgid "Jul" +msgstr "Xul" + +msgctxt "abbrev. month August" +msgid "Aug" +msgstr "Ago" + +msgctxt "abbrev. month September" +msgid "Sep" +msgstr "Set" + +msgctxt "abbrev. month October" +msgid "Oct" +msgstr "Out" + +msgctxt "abbrev. month November" +msgid "Nov" +msgstr "Nov" + +msgctxt "abbrev. month December" +msgid "Dec" +msgstr "Dec" + +msgid "Sunday" +msgstr "Domingo" + +msgid "Monday" +msgstr "Luns" + +msgid "Tuesday" +msgstr "Martes" + +msgid "Wednesday" +msgstr "Mércores" + +msgid "Thursday" +msgstr "Xoves" + +msgid "Friday" +msgstr "Venres" + +msgid "Saturday" +msgstr "Sábado" + +msgctxt "abbrev. day Sunday" +msgid "Sun" +msgstr "Domingo" + +msgctxt "abbrev. day Monday" +msgid "Mon" +msgstr "Lun" + +msgctxt "abbrev. day Tuesday" +msgid "Tue" +msgstr "Mar" + +msgctxt "abbrev. day Wednesday" +msgid "Wed" +msgstr "Mér" + +msgctxt "abbrev. day Thursday" +msgid "Thur" +msgstr "Xov" + +msgctxt "abbrev. day Friday" +msgid "Fri" +msgstr "Ven" + +msgctxt "abbrev. day Saturday" +msgid "Sat" +msgstr "Sáb" + +msgctxt "one letter Sunday" +msgid "S" +msgstr "D" + +msgctxt "one letter Monday" +msgid "M" +msgstr "L" + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "M" + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "M" + +msgctxt "one letter Thursday" +msgid "T" +msgstr "X" + +msgctxt "one letter Friday" +msgid "F" +msgstr "V" + +msgctxt "one letter Saturday" +msgid "S" +msgstr "S" + +msgid "Show" +msgstr "Amosar" + +msgid "Hide" +msgstr "Esconder" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/he/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/he/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..d0993f171c3f0c7f09e640750135ba571c5435a2 GIT binary patch literal 19856 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 E3pK?iivR!s literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/he/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/he/LC_MESSAGES/django.po new file mode 100644 index 0000000000..136ffff288 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/he/LC_MESSAGES/django.po @@ -0,0 +1,771 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# 534b44a19bf18d20b71ecc4eb77c572f_db336e9 , 2011 +# Jannis Leidel , 2011 +# Meir Kriheli , 2011-2015,2017,2019-2020,2023 +# Menachem G., 2021 +# Yaron Shahrabani , 2020-2021 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-09-18 11:41-0300\n" +"PO-Revision-Date: 2023-12-04 07:05+0000\n" +"Last-Translator: Meir Kriheli , " +"2011-2015,2017,2019-2020,2023\n" +"Language-Team: Hebrew (http://app.transifex.com/django/django/language/he/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: he\n" +"Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % " +"1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;\n" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "מחק %(verbose_name_plural)s שנבחרו" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "%(count)d %(items)s נמחקו בהצלחה." + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "לא ניתן למחוק %(name)s" + +msgid "Are you sure?" +msgstr "להמשיך?" + +msgid "Administration" +msgstr "ניהול" + +msgid "All" +msgstr "הכול" + +msgid "Yes" +msgstr "כן" + +msgid "No" +msgstr "לא" + +msgid "Unknown" +msgstr "לא ידוע" + +msgid "Any date" +msgstr "כל תאריך" + +msgid "Today" +msgstr "היום" + +msgid "Past 7 days" +msgstr "בשבוע האחרון" + +msgid "This month" +msgstr "החודש" + +msgid "This year" +msgstr "השנה" + +msgid "No date" +msgstr "ללא תאריך" + +msgid "Has date" +msgstr "עם תאריך" + +msgid "Empty" +msgstr "ריק" + +msgid "Not empty" +msgstr "לא ריק" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" +"נא להזין את %(username)s והסיסמה הנכונים לחשבון איש צוות. נא לשים לב כי שני " +"השדות רגישים לאותיות גדולות/קטנות." + +msgid "Action:" +msgstr "פעולה" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "הוספת %(verbose_name)s" + +msgid "Remove" +msgstr "להסיר" + +msgid "Addition" +msgstr "הוספה" + +msgid "Change" +msgstr "שינוי" + +msgid "Deletion" +msgstr "מחיקה" + +msgid "action time" +msgstr "זמן פעולה" + +msgid "user" +msgstr "משתמש" + +msgid "content type" +msgstr "סוג תוכן" + +msgid "object id" +msgstr "מזהה אובייקט" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/library/functions.html#repr) +msgid "object repr" +msgstr "ייצוג אובייקט" + +msgid "action flag" +msgstr "דגל פעולה" + +msgid "change message" +msgstr "הערה לשינוי" + +msgid "log entry" +msgstr "רישום יומן" + +msgid "log entries" +msgstr "רישומי יומן" + +#, python-format +msgid "Added “%(object)s”." +msgstr "„%(object)s” נוסף." + +#, python-format +msgid "Changed “%(object)s” — %(changes)s" +msgstr "בוצע שינוי \"%(object)s\" — %(changes)s" + +#, python-format +msgid "Deleted “%(object)s.”" +msgstr "„%(object)s” נמחקו." + +msgid "LogEntry Object" +msgstr "אובייקט LogEntry" + +#, python-brace-format +msgid "Added {name} “{object}”." +msgstr "בוצעה הוספת {name} “{object}”." + +msgid "Added." +msgstr "נוסף." + +msgid "and" +msgstr "ו" + +#, python-brace-format +msgid "Changed {fields} for {name} “{object}”." +msgstr "בוצע שינוי {fields} עבור {name} “{object}”." + +#, python-brace-format +msgid "Changed {fields}." +msgstr " {fields} שונו." + +#, python-brace-format +msgid "Deleted {name} “{object}”." +msgstr "בוצעה מחיקת {name} “{object}”." + +msgid "No fields changed." +msgstr "אף שדה לא השתנה." + +msgid "None" +msgstr "ללא" + +msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." +msgstr "יש להחזיק \"Control\" או \"Command\" במק, כדי לבחור יותר מאחד." + +msgid "Select this object for an action - {}" +msgstr "בחירת אובייקט זה עבור פעולה - {}" + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully." +msgstr "הוספת {name} “{obj}” בוצעה בהצלחה." + +msgid "You may edit it again below." +msgstr "ניתן לערוך שוב מתחת." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was added successfully. You may add another {name} below." +msgstr "הוספת {name} “{obj}” בוצעה בהצלחה. ניתן להוסיף עוד {name} מתחת." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may edit it again below." +msgstr "שינוי {name} “{obj}” בוצע בהצלחה. ניתן לערוך שוב מתחת." + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully. You may edit it again below." +msgstr "הוספת {name} “{obj}” בוצעה בהצלחה. ניתן לערוך שוב מתחת." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may add another {name} " +"below." +msgstr "עדכון {name} \"{obj}\" בוצע בהצלחה. ניתן להוסיף עוד {name} מתחת." + +#, python-brace-format +msgid "The {name} “{obj}” was changed successfully." +msgstr "שינוי {name} \"{obj}\" בוצע בהצלחה." + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "יש לסמן פריטים כדי לבצע עליהם פעולות. לא שונו פריטים." + +msgid "No action selected." +msgstr "לא נבחרה פעולה." + +#, python-format +msgid "The %(name)s “%(obj)s” was deleted successfully." +msgstr "מחיקת %(name)s “%(obj)s” בוצעה בהצלחה." + +#, python-format +msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" +msgstr "%(name)s עם ID \"%(key)s\" לא במצאי. אולי זה נמחק?" + +#, python-format +msgid "Add %s" +msgstr "הוספת %s" + +#, python-format +msgid "Change %s" +msgstr "שינוי %s" + +#, python-format +msgid "View %s" +msgstr "צפיה ב%s" + +msgid "Database error" +msgstr "שגיאת בסיס נתונים" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "שינוי %(count)s %(name)s בוצע בהצלחה." +msgstr[1] "שינוי %(count)s %(name)s בוצע בהצלחה." +msgstr[2] "שינוי %(count)s %(name)s בוצע בהצלחה." +msgstr[3] "שינוי %(count)s %(name)s בוצע בהצלחה." + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "%(total_count)s נבחר" +msgstr[1] "כל ה־%(total_count)s נבחרו" +msgstr[2] "כל ה־%(total_count)s נבחרו" +msgstr[3] "כל ה־%(total_count)s נבחרו" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "0 מ %(cnt)s נבחרים" + +#, python-format +msgid "Change history: %s" +msgstr "היסטוריית שינוי: %s" + +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "%(class_name)s %(instance)s" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" +"מחיקת %(class_name)s %(instance)s תדרוש מחיקת האובייקטים הקשורים והמוגנים " +"הבאים: %(related_objects)s" + +msgid "Django site admin" +msgstr "ניהול אתר Django" + +msgid "Django administration" +msgstr "ניהול Django" + +msgid "Site administration" +msgstr "ניהול אתר" + +msgid "Log in" +msgstr "כניסה" + +#, python-format +msgid "%(app)s administration" +msgstr "ניהול %(app)s" + +msgid "Page not found" +msgstr "דף לא קיים" + +msgid "We’re sorry, but the requested page could not be found." +msgstr "אנו מתנצלים, העמוד המבוקש אינו קיים." + +msgid "Home" +msgstr "דף הבית" + +msgid "Server error" +msgstr "שגיאת שרת" + +msgid "Server error (500)" +msgstr "שגיאת שרת (500)" + +msgid "Server Error (500)" +msgstr "שגיאת שרת (500)" + +msgid "" +"There’s been an error. It’s been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" +"התרחשה שגיאה. היא דווחה למנהלי האתר בדוא\"ל ותתוקן בקרוב. תודה על סבלנותך." + +msgid "Run the selected action" +msgstr "הפעל את הפעולה שבחרת בה." + +msgid "Go" +msgstr "בצע" + +msgid "Click here to select the objects across all pages" +msgstr "לחיצה כאן תבחר את האובייקטים בכל העמודים" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "בחירת כל %(total_count)s ה־%(module_name)s" + +msgid "Clear selection" +msgstr "איפוס בחירה" + +msgid "Breadcrumbs" +msgstr "פירורי לחם" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "מודלים ביישום %(name)s" + +msgid "Add" +msgstr "הוספה" + +msgid "View" +msgstr "צפיה" + +msgid "You don’t have permission to view or edit anything." +msgstr "אין לך כלל הרשאות צפיה או עריכה." + +msgid "" +"First, enter a username and password. Then, you’ll be able to edit more user " +"options." +msgstr "" +"ראשית יש להזין שם משתמש וססמה. לאחר מכן ניתן יהיה לערוך אפשרויות משתמש " +"נוספות." + +msgid "Enter a username and password." +msgstr "נא לשים שם משתמש וסיסמה." + +msgid "Change password" +msgstr "שינוי סיסמה" + +msgid "Please correct the error below." +msgid_plural "Please correct the errors below." +msgstr[0] "נא לתקן את השגיאה מתחת." +msgstr[1] "נא לתקן את השגיאות מתחת." +msgstr[2] "נא לתקן את השגיאות מתחת." +msgstr[3] "נא לתקן את השגיאות מתחת." + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "יש להזין סיסמה חדשה עבור המשתמש %(username)s." + +msgid "Skip to main content" +msgstr "דילוג לתוכן העיקרי" + +msgid "Welcome," +msgstr "שלום," + +msgid "View site" +msgstr "צפיה באתר" + +msgid "Documentation" +msgstr "תיעוד" + +msgid "Log out" +msgstr "יציאה" + +#, python-format +msgid "Add %(name)s" +msgstr "הוספת %(name)s" + +msgid "History" +msgstr "היסטוריה" + +msgid "View on site" +msgstr "צפיה באתר" + +msgid "Filter" +msgstr "סינון" + +msgid "Hide counts" +msgstr "הסתרת ספירות" + +msgid "Show counts" +msgstr "הצגת ספירות" + +msgid "Clear all filters" +msgstr "ניקוי כל הסינונים" + +msgid "Remove from sorting" +msgstr "הסרה ממיון" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "עדיפות מיון: %(priority_number)s" + +msgid "Toggle sorting" +msgstr "החלף כיוון מיון" + +msgid "Toggle theme (current theme: auto)" +msgstr "החלפת ערכת נושא (נוכחית: אוטומטית)" + +msgid "Toggle theme (current theme: light)" +msgstr "החלפת ערכת נושא (נוכחית: בהירה)" + +msgid "Toggle theme (current theme: dark)" +msgstr "החלפת ערכת נושא (נוכחית: כהה)" + +msgid "Delete" +msgstr "מחיקה" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" +"מחיקת %(object_name)s '%(escaped_object)s' מצריכה מחיקת אובייקטים מקושרים, " +"אך לחשבון שלך אין הרשאות למחיקת סוגי האובייקטים הבאים:" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" +"מחיקת ה%(object_name)s '%(escaped_object)s' תדרוש מחיקת האובייקטים הקשורים " +"והמוגנים הבאים:" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" +"האם ברצונך למחוק את %(object_name)s \"%(escaped_object)s\"? כל הפריטים " +"הקשורים הבאים יימחקו:" + +msgid "Objects" +msgstr "אובייקטים" + +msgid "Yes, I’m sure" +msgstr "כן, בבטחה" + +msgid "No, take me back" +msgstr "לא, קח אותי חזרה." + +msgid "Delete multiple objects" +msgstr "מחק כמה פריטים" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" +"מחיקת ב%(objects_name)s הנבחרת תביא במחיקת אובייקטים קשורים, אבל החשבון שלך " +"אינו הרשאה למחוק את הסוגים הבאים של אובייקטים:" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" +"מחיקת ה%(objects_name)s אשר סימנת תדרוש מחיקת האובייקטים הקשורים והמוגנים " +"הבאים:" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" +"האם אתה בטוח שאתה רוצה למחוק את ה%(objects_name)s הנבחר? כל האובייקטים הבאים " +"ופריטים הקשורים להם יימחקו:" + +msgid "Delete?" +msgstr "מחיקה ?" + +#, python-format +msgid " By %(filter_title)s " +msgstr " לפי %(filter_title)s " + +msgid "Summary" +msgstr "סיכום" + +msgid "Recent actions" +msgstr "פעולות אחרונות" + +msgid "My actions" +msgstr "הפעולות שלי" + +msgid "None available" +msgstr "לא נמצאו" + +msgid "Added:" +msgstr "נוספו:" + +msgid "Changed:" +msgstr "שונו:" + +msgid "Deleted:" +msgstr "נמחקו:" + +msgid "Unknown content" +msgstr "תוכן לא ידוע" + +msgid "" +"Something’s wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" +"משהו שגוי בהתקנת בסיס הנתונים שלך. יש לוודא יצירת הטבלאות המתאימות וקיום " +"הרשאות קריאה על בסיס הנתונים עבור המשתמש המתאים." + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" +"התחברת בתור %(username)s, אך אין לך הרשאות גישה לעמוד זה. האם ברצונך להתחבר " +"בתור משתמש אחר?" + +msgid "Forgotten your password or username?" +msgstr "שכחת את שם המשתמש והסיסמה שלך ?" + +msgid "Toggle navigation" +msgstr "החלפת מצב סרגל ניווט" + +msgid "Sidebar" +msgstr "סרגל צד" + +msgid "Start typing to filter…" +msgstr "התחל להקליד כדי לסנן..." + +msgid "Filter navigation items" +msgstr "סנן פריטי ניווט" + +msgid "Date/time" +msgstr "תאריך/שעה" + +msgid "User" +msgstr "משתמש" + +msgid "Action" +msgstr "פעולה" + +msgid "entry" +msgid_plural "entries" +msgstr[0] "רשומה" +msgstr[1] "רשומה" +msgstr[2] "רשומות" +msgstr[3] "רשומות" + +msgid "" +"This object doesn’t have a change history. It probably wasn’t added via this " +"admin site." +msgstr "לאובייקט זה אין היסטוריית שינויים. כנראה לא נוסף דרך ממשק הניהול." + +msgid "Show all" +msgstr "הצג הכל" + +msgid "Save" +msgstr "שמירה" + +msgid "Popup closing…" +msgstr "חלון צץ נסגר..." + +msgid "Search" +msgstr "חיפוש" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "תוצאה %(counter)s" +msgstr[1] "%(counter)s תוצאות" +msgstr[2] "%(counter)s תוצאות" +msgstr[3] "%(counter)s תוצאות" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "%(full_result_count)s סה\"כ" + +msgid "Save as new" +msgstr "שמירה כחדש" + +msgid "Save and add another" +msgstr "שמירה והוספת אחר" + +msgid "Save and continue editing" +msgstr "שמירה והמשך עריכה" + +msgid "Save and view" +msgstr "שמירה וצפיה" + +msgid "Close" +msgstr "סגירה" + +#, python-format +msgid "Change selected %(model)s" +msgstr "שינוי %(model)s הנבחר." + +#, python-format +msgid "Add another %(model)s" +msgstr "הוספת %(model)s נוסף." + +#, python-format +msgid "Delete selected %(model)s" +msgstr "מחיקת %(model)s הנבחר." + +#, python-format +msgid "View selected %(model)s" +msgstr "צפיה ב%(model)s אשר נבחרו." + +msgid "Thanks for spending some quality time with the web site today." +msgstr "תודה על בילוי זמן איכות עם האתר." + +msgid "Log in again" +msgstr "התחבר/י שוב" + +msgid "Password change" +msgstr "שינוי סיסמה" + +msgid "Your password was changed." +msgstr "סיסמתך שונתה." + +msgid "" +"Please enter your old password, for security’s sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" +"נא להזין את הססמה הישנה שלך, למען האבטחה, ולאחר מכן את הססמה החדשה שלך " +"פעמיים כדי שנוכל לוודא שהקלדת אותה נכון." + +msgid "Change my password" +msgstr "שנה את סיסמתי" + +msgid "Password reset" +msgstr "איפוס סיסמה" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "ססמתך נשמרה. כעת ניתן להתחבר." + +msgid "Password reset confirmation" +msgstr "אימות איפוס סיסמה" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "נא להזין את סיסמתך החדשה פעמיים כדי שנוכל לוודא שהקלדת אותה כראוי." + +msgid "New password:" +msgstr "סיסמה חדשה:" + +msgid "Confirm password:" +msgstr "אימות סיסמה:" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"הקישור לאיפוס הסיסמה אינו חוקי. ייתכן והשתמשו בו כבר. נא לבקש איפוס סיסמה " +"חדש." + +msgid "" +"We’ve emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" +"שלחנו לך הוראות לקביעת הססמה, בהנחה שקיים חשבון עם כתובת הדואר האלקטרוני " +"שהזנת. ההוראות אמורות להתקבל בקרוב." + +msgid "" +"If you don’t receive an email, please make sure you’ve entered the address " +"you registered with, and check your spam folder." +msgstr "" +"אם לא קיבלת דואר אלקטרוני, נא לוודא שהזנת את הכתובת שנרשמת עימה ושההודעה לא " +"נחתה בתיקיית דואר הזבל." + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" +"הודעה זו נשלחה אליך עקב בקשתך לאיפוס הסיסמה עבור המשתמש שלך באתר " +"%(site_name)s." + +msgid "Please go to the following page and choose a new password:" +msgstr "נא להגיע לעמוד הבא ולבחור סיסמה חדשה:" + +msgid "Your username, in case you’ve forgotten:" +msgstr "שם המשתמש שלך במקרה ושכחת:" + +msgid "Thanks for using our site!" +msgstr "תודה על השימוש באתר שלנו!" + +#, python-format +msgid "The %(site_name)s team" +msgstr "צוות %(site_name)s" + +msgid "" +"Forgotten your password? Enter your email address below, and we’ll email " +"instructions for setting a new one." +msgstr "" +"שכחת את הססמה שלך? נא להזין את כתובת הדואר האלקטרוני מתחת ואנו נשלח הוראות " +"לקביעת ססמה חדשה." + +msgid "Email address:" +msgstr "כתובת דוא\"ל:" + +msgid "Reset my password" +msgstr "אפס את סיסמתי" + +msgid "Select all objects on this page for an action" +msgstr "בחירת כל האובייקטים בעמוד זה עבור פעולה" + +msgid "All dates" +msgstr "כל התאריכים" + +#, python-format +msgid "Select %s" +msgstr "בחירת %s" + +#, python-format +msgid "Select %s to change" +msgstr "בחירת %s לשינוי" + +#, python-format +msgid "Select %s to view" +msgstr "בחירת %s לצפיה" + +msgid "Date:" +msgstr "תאריך:" + +msgid "Time:" +msgstr "שעה:" + +msgid "Lookup" +msgstr "חפש" + +msgid "Currently:" +msgstr "נוכחי:" + +msgid "Change:" +msgstr "שינוי:" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/he/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/he/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..265d261b3b9b4416a6f834257f8719a6cbcd0f47 GIT binary patch literal 6893 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/he/LC_MESSAGES/djangojs.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/he/LC_MESSAGES/djangojs.po new file mode 100644 index 0000000000..1946efc775 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/he/LC_MESSAGES/djangojs.po @@ -0,0 +1,334 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# 534b44a19bf18d20b71ecc4eb77c572f_db336e9 , 2012 +# Jannis Leidel , 2011 +# Meir Kriheli , 2011-2012,2014-2015,2017,2020,2023 +# Yaron Shahrabani , 2021 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-09-18 15:04-0300\n" +"PO-Revision-Date: 2023-12-04 07:59+0000\n" +"Last-Translator: Meir Kriheli , " +"2011-2012,2014-2015,2017,2020,2023\n" +"Language-Team: Hebrew (http://app.transifex.com/django/django/language/he/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: he\n" +"Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % " +"1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;\n" + +#, javascript-format +msgid "Available %s" +msgstr "אפשרויות %s זמינות" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" +"זו רשימת %s הזמינים לבחירה. ניתן לבחור חלק ע\"י סימון בתיבה מתחת ולחיצה על " +"חץ \"בחר\" בין שתי התיבות." + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "ניתן להקליד בתיבה זו כדי לסנן %s." + +msgid "Filter" +msgstr "סינון" + +msgid "Choose all" +msgstr "בחירת הכל" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "בחירת כל ה%s בבת אחת." + +msgid "Choose" +msgstr "בחר" + +msgid "Remove" +msgstr "הסרה" + +#, javascript-format +msgid "Chosen %s" +msgstr "%s אשר נבחרו" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" +"זו רשימת %s אשר נבחרו. ניתן להסיר חלק ע\"י בחירה בתיבה מתחת ולחיצה על חץ " +"\"הסרה\" בין שתי התיבות." + +#, javascript-format +msgid "Type into this box to filter down the list of selected %s." +msgstr "ניתן להקליד בתיבה זו כדי לסנן את רשימת %s הנבחרים." + +msgid "Remove all" +msgstr "הסרת הכל" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "הסרת כל %s אשר נבחרו בבת אחת." + +#, javascript-format +msgid "%s selected option not visible" +msgid_plural "%s selected options not visible" +msgstr[0] "אפשרות נבחרת %s אינה גלויה." +msgstr[1] "%s אפשרויות נבחרות אינן גלויות." +msgstr[2] "%s אפשרויות נבחרות אינן גלויות." +msgstr[3] "%s אפשרויות נבחרות אינן גלויות." + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "%(sel)s מ %(cnt)s נבחרות" +msgstr[1] "%(sel)s מ %(cnt)s נבחרות" +msgstr[2] "%(sel)s מ %(cnt)s נבחרות" +msgstr[3] "%(sel)s מ %(cnt)s נבחרות" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" +"יש לך שינויים שלא נשמרו על שדות יחידות. אם אתה מפעיל פעולה, שינויים שלא " +"נשמרו יאבדו." + +msgid "" +"You have selected an action, but you haven’t saved your changes to " +"individual fields yet. Please click OK to save. You’ll need to re-run the " +"action." +msgstr "" +"בחרת פעולה, אך לא שמרת עדיין את השינויים לשדות בודדים. נא ללחוץ על אישור כדי " +"לשמור. יהיה עליך להפעיל את הפעולה עוד פעם." + +msgid "" +"You have selected an action, and you haven’t made any changes on individual " +"fields. You’re probably looking for the Go button rather than the Save " +"button." +msgstr "" +"בחרת פעולה, אך לא ביצעת שינויים בשדות. כנראה חיפשת את כפתור בצע במקום כפתור " +"שמירה." + +msgid "Now" +msgstr "כעת" + +msgid "Midnight" +msgstr "חצות" + +msgid "6 a.m." +msgstr "6 בבוקר" + +msgid "Noon" +msgstr "12 בצהריים" + +msgid "6 p.m." +msgstr "6 אחר הצהריים" + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "הערה: את/ה %s שעה לפני זמן השרת." +msgstr[1] "הערה: את/ה %s שעות לפני זמן השרת." +msgstr[2] "הערה: את/ה %s שעות לפני זמן השרת." +msgstr[3] "הערה: את/ה %s שעות לפני זמן השרת." + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "הערה: את/ה %s שעה אחרי זמן השרת." +msgstr[1] "הערה: את/ה %s שעות אחרי זמן השרת." +msgstr[2] "הערה: את/ה %s שעות אחרי זמן השרת." +msgstr[3] "הערה: את/ה %s שעות אחרי זמן השרת." + +msgid "Choose a Time" +msgstr "בחירת שעה" + +msgid "Choose a time" +msgstr "בחירת שעה" + +msgid "Cancel" +msgstr "ביטול" + +msgid "Today" +msgstr "היום" + +msgid "Choose a Date" +msgstr "בחירת תאריך" + +msgid "Yesterday" +msgstr "אתמול" + +msgid "Tomorrow" +msgstr "מחר" + +msgid "January" +msgstr "ינואר" + +msgid "February" +msgstr "פברואר" + +msgid "March" +msgstr "מרץ" + +msgid "April" +msgstr "אפריל" + +msgid "May" +msgstr "מאי" + +msgid "June" +msgstr "יוני" + +msgid "July" +msgstr "יולי" + +msgid "August" +msgstr "אוגוסט" + +msgid "September" +msgstr "ספטמבר" + +msgid "October" +msgstr "אוקטובר" + +msgid "November" +msgstr "נובמבר" + +msgid "December" +msgstr "דצמבר" + +msgctxt "abbrev. month January" +msgid "Jan" +msgstr "ינו׳" + +msgctxt "abbrev. month February" +msgid "Feb" +msgstr "פבר׳" + +msgctxt "abbrev. month March" +msgid "Mar" +msgstr "מרץ" + +msgctxt "abbrev. month April" +msgid "Apr" +msgstr "אפר׳" + +msgctxt "abbrev. month May" +msgid "May" +msgstr "מאי" + +msgctxt "abbrev. month June" +msgid "Jun" +msgstr "יונ׳" + +msgctxt "abbrev. month July" +msgid "Jul" +msgstr "יול׳" + +msgctxt "abbrev. month August" +msgid "Aug" +msgstr "אוג׳" + +msgctxt "abbrev. month September" +msgid "Sep" +msgstr "ספט׳" + +msgctxt "abbrev. month October" +msgid "Oct" +msgstr "אוק׳" + +msgctxt "abbrev. month November" +msgid "Nov" +msgstr "נוב׳" + +msgctxt "abbrev. month December" +msgid "Dec" +msgstr "דצמ׳" + +msgid "Sunday" +msgstr "ראשון" + +msgid "Monday" +msgstr "שני" + +msgid "Tuesday" +msgstr "שלישי" + +msgid "Wednesday" +msgstr "רביעי" + +msgid "Thursday" +msgstr "חמישי" + +msgid "Friday" +msgstr "שישי" + +msgid "Saturday" +msgstr "שבת" + +msgctxt "abbrev. day Sunday" +msgid "Sun" +msgstr "א" + +msgctxt "abbrev. day Monday" +msgid "Mon" +msgstr "ב" + +msgctxt "abbrev. day Tuesday" +msgid "Tue" +msgstr "ג" + +msgctxt "abbrev. day Wednesday" +msgid "Wed" +msgstr "ד" + +msgctxt "abbrev. day Thursday" +msgid "Thur" +msgstr "ה" + +msgctxt "abbrev. day Friday" +msgid "Fri" +msgstr "ו" + +msgctxt "abbrev. day Saturday" +msgid "Sat" +msgstr "ש" + +msgctxt "one letter Sunday" +msgid "S" +msgstr "א" + +msgctxt "one letter Monday" +msgid "M" +msgstr "ב" + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "ג" + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "ד" + +msgctxt "one letter Thursday" +msgid "T" +msgstr "ה" + +msgctxt "one letter Friday" +msgid "F" +msgstr "ו" + +msgctxt "one letter Saturday" +msgid "S" +msgstr "ש" + +msgid "Show" +msgstr "הצג" + +msgid "Hide" +msgstr "הסתר" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/hi/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/hi/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..a2c4c7d877dc37ee13f1c664f16086b56f778eb0 GIT binary patch literal 13811 zcmc(kdyHJwea8>408VfMg_bmg9v;T)#=Bk{C}eFg#+X3CV6cG@8l2ggySsyD<}UN_ zvK7#Uq{J<>PLl!=b>ldm1*OaLpWR&NasBB@&iyX<;HiA^`H$0`I|qCR z{1ABRGUq-4UIbnOJ`AdT9=sgXan@m}VDXM>1#=Yj77J*fU+Q0rb6`)>nT z%H08;2JQqO0;j;wfd34h0q#P`PlL0deu}AA!>2uj2D}!L>a9 zJ9s8|0YXvPT?#G-uLdP=D|iZc7pQeU3H}UN0#||$f|A9-9zYS{rWh|m~&g6@sZUrcRUIA*oTfwuz9pDGSGAOy91~q># zsJJ`@^5?$H*Uy8mg3{x=pzQw{w%l$6rT=)E%0lg z_%KS)wBCA9JlGQPCQyF44V0fh1H+Cqa#GfLdoJwm$|+pU+3!7u%l&?>WJ_!{9~qFF!Z#UD>6DWP}0Tq{Di8v36AKwHu|L?*5;8`TcmEd7edVL=p0#8N>Jr9H8 z_4T0i-2qD9NpLIp3@H2l6+8+3ehfCj6E1M>e`()Ma(tZU7D|1D=Wksc*83qSKV6EF zgwEXq?g8%yC&3?r^56I+p$^nRLgD@ilpa3<<*(%k`4)ICsPX>-j)L!k;^z>?po-f7 zlG5&8P;p8@555YDSAPj^0sj&FC^)n#tTzs><#`swH1{HiYVMoh2>1@j6z54A<;#uW z|9}bjC*Zvp{mbAgf+aiK;HBW#z?;Dzfa}5a!@)l@;1xU{1f|E{f{N!kEOt8hQBd}8 z2CoM11UGuk~yp(u-1C+o2 z8=)Tn&mic_!1KZPfU7{+Jqo@bygNRZLGkAEp!9wbBoyx3p!9zi{62UBPWTe|Z{Wwk zCm^Nt{0k7*xpzRVbKd2_FBgHB=57V$|A#>+6I?8nf5frn@#!q^?0A1Km~h=1pXF

      gs!rJVUCE^+J^xK8HM=O(T)*O_|YvzhBtT+rI$ zeG+&+m$-Tfmtv*3i8D~aK2s6J6Me4ax{a&ORpZj9dJz3)g$~ zz^4$v_DON{0PuU-rZva@nL@)CrwX;n zq~sf|VlinnCR&xs?8u^nlX`OG(McWQ^`z0NG&2D`P0~QpcZLx=Gi{n_vrwVWFmG)n zm895AN^Vo7;+O0k_2~q?MKh~ArPwT|HMhxN%xx+mrBq^EFgrXn3<|ZhIhEAu+nv}E<*7VKPm(aJFc!VJ<9lsCdvnX7+Vkl`8 z3)4wyXXsefxNxJFT_~>!6KSQA&XjADIIqGgC0}kP)rOxbGiE%AvP)QU46A2e$koW$ zu*8xZj=KOQAEy3K_eF3il&UA);?jqGl!+-Rot*|DCc>a3rJvomSE zl#LpA9&?*3Nuln8X$tM;O1Zep6F5Ac#&&aMZcVYCHZTeYP8TML;O4Y8QLb0>rI6XG z*OOYaGCSt3D>Mt^g+}6&dOfY{F7=1l zSX|v6x5fckUj0P9a`a{Xe_U}N)j9QrQng$ob?ODHY}bX>24y02x$Dwms|uS#|CVZ@ zT%o5#scnq8Ej2a?U+}eLCg(pzr)~snHR#)b=(IL@^@<@qhBCQfO>7*=1!SF8EV3jW zao5`}PAB1Q1Yeje#D}!iR3k2_&-z=fPV=1Z zYE8SXDVfy}+e2c;O|mdOO|=P*y`{&4WA2uezo=HO`iR;l%1Nb^@2zU8CHCbDy9rHU zypp(W)FrRlIl;DE;xW{~XhQdy7$(huM_&x(ENI2lroVy>YPR9FQ7Ki(EabAIm{R77 zO}2w92yD_S_IZ57go5XsFfoxOv3zU0S%I*yLuLk53$qGSktK#3Neu#)cPAtLi&`=0 zqgr#OTqL%spV8Esr#zM?W^Er;@@u=3*Q2I7encx^KJk|o-EyIFZu%FeQugZsT93Kg zlWMvk>3f)E`fY27MF5v~F zYmVnYh3RfP+f{K2&>=>9U4AEn0!gzr?NNgVoE1aWwA8BPr;+VR9jEy%+MfJ|qcRBlS0*+b1E9w zeWhI6<#jeK*LD{w<MrBEbLN_miGnAc{QcB+} zKRtQb=gSc-RqxJ~bId6)9-q+ZmAl$Xrtp~2x?&}g5;QY7yXU=N#D$db6P3bbc5i1R zYKRL=_EokS($YyHUa6NcJ-eTEVcYiQQg&BQrt5B7J=Gz3_{P%kok?9MgfU;TeQnw8 z$uzVa-rATfmxixxO*V#iq+@>Bwp)j9Pj;6zbXZ5UF~4qf?WMz`mkqDG+>c%{HhTF- zM)@qenQ}P1qh6>rI83MYF@I;FP$$v1mupjn)l6Eqjxn{#7Ag<#fP-WHhH|Y`_Cr(6 z=JeQ_H8V3aBW$&lw~6F|5u&*!D3(DbPF^!rUbAZ1)*H8O>6);1WONy4O_5`G2gPm7 zHt%kGgorVPnDN#vt#5i zn{2f)=4;_p*|=)mdLM4D8mjpVuJUVFtzYIAycl-c&vxd2qtkw^)Bbv={Z+mhb6l^A zo%WN=@}2ezHvest^;Hwv?zEq$L;aohE1mWsyLpMGw>tBWblQ*k2esPZ%jZuinSZ>~KG13ZK~$9GqK(}<#u0rKnvZH}&ZG3BEO&e8 zH>cPzW8VB+r~OnIfHks%F^>^IbO?na+Z`5rZD#CSo%Vh+`S~#S8GE3$EjJqH_MpQ? zZW)1UIGUBXKWvXr*>{`nEMj)|s5yx5=kk7%h0rh;$&dnnJrabzVXgalz|1*dpXtDW zr+Ic+sCtc)0;V4669O623HKc`L0MRNAZ=uVHJf~FL|8DVojWRfvG-x%;{Zc?mFtli zR6Halj>|O*oglr8G@bUZ*^0(rb7F8cL_4A%nIB0ppzcCnisQjugU*y`uUi~&4)+RZ z^xMYXL|_S;=Yl&UcNj|S34kcW3Ml-n=wS)zR>WipO^?%0o(7gP9}>UG{Cvve_EUyw ziP13gb#;n0&-M;esw0W$OF&QYJg~^9Ot{9r=7*UV3BXwBOKYI=KAy1x>!Wvig3P2Y zzhCIge>!8vmn}0DL{)Ntpgm#fj{eelAmU%hnJ9u~B`Tvc!BNr$efDyPCc#U}l@Pkn zsak`w6f`S)ZYh_cE6EmFjB!ECoFy5S?q%YODoQdN$zid>e%RA-z=RV7TtpC9NU=rG*h7ov5`&M6vs7E8K1bKT&f0}+(l$T`LGvF$Q$gh!Qp<*y4^O<=n zY>9gZDsKKGk?+puj!k(Y?QNF8Yg(`TOx6`N0rYSrEg)w1yZ^vM;AY zEjm(ZWjK3PV89#ZN2Tb1$NI^YJ1*8rCeJa4-GON#*`XICB7E95@Fkm!YVO!^`Jms4 z-NLMFFe->IgBA~HE;=wg7P4+oXj9aHzD;2@4dLX(a&b$c$u_<`0wK5KK89~CQLMzm z!Xcs?ss-qq; zoeUv`PbRKO0hzyTAbf=~FY_6)lt{$kp@B2p<*m~UC% zR^8&Ef78Uhly?!2F1XE((|3$O(eNS=cl>MB&Ao~Xy8UQCb+J19A-;}l|a#qV+u)S79t3cR%S8rG6=(XEf!K6vxv1$q6}N$0tJCS zyh#^wMgAA;9RXqcc!m@MO8Dei&06nOIsQula!#nNYvU3w5CjU?|SiL{YA`O)S zihAz>JJ0Am$08FM%X}G<_k?2?u^`AVAQjsqLm0V$_hCSE4iAip4qP&(ea_5-qevoV zkCp6RDaw*JG8%9%H};9h;?e$k-}>D#ju~Bvu`&m`b2tqz0?+kHMG*ez9>?iqB%CBe zR9om@%o#@c$PKu%Bnv=HdJ_ zVWO0Dp$2Ob4>)B(^~hb7X9Q;SC57pue2Z__<_GaCC>RLUw`DLeu9OBQg!IhfX zWhNuLIoMT!G4Pz#_J!X)@|wvIeo)j;As8kfXQePw%-V1U*6yV@y3mG;)HdA;8c9mD zU*Uzf|L46VOP@GD_y@ zP+~!E5pk5@g8dK)X->OP5GrV8Q>GCb+Gv<(rFf#W6`?G_jw!0h79S)L zFnSMiHg1DBgS(gjiyeB9yhz-$Vw%llLDA7%J#YJooc5e)CL%@V&1;x`cFAp(>lR;v zRym?CYmAg}hwDlms0D%0sG|SiMHlqFb=Z=T+j7;yBgV0-mpek{_bcKo4g@#kx03le zV-Y+Mf#tK_P7Ibey5%Qwo}t=T0maN*fP^3vLTb-sWT+T{g|9O-aRgm~aGy>+5;%Wq literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/hi/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/hi/LC_MESSAGES/django.po new file mode 100644 index 0000000000..51935397b8 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/hi/LC_MESSAGES/django.po @@ -0,0 +1,706 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# alkuma , 2013 +# Chandan kumar , 2012 +# Jannis Leidel , 2011 +# Pratik , 2013 +# Sandeep Satavlekar , 2011 +# Vaarun Sinha, 2022 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2022-05-17 05:10-0500\n" +"PO-Revision-Date: 2022-07-25 07:05+0000\n" +"Last-Translator: Vaarun Sinha\n" +"Language-Team: Hindi (http://www.transifex.com/django/django/language/hi/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hi\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "चुने हुए %(verbose_name_plural)s हटा दीजिये " + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "%(count)d %(items)s सफलतापूर्वक हटा दिया गया है |" + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "%(name)s नहीं हटा सकते" + +msgid "Are you sure?" +msgstr "क्या आप निश्चित हैं?" + +msgid "Administration" +msgstr "" + +msgid "All" +msgstr "सभी" + +msgid "Yes" +msgstr "हाँ" + +msgid "No" +msgstr "नहीं" + +msgid "Unknown" +msgstr "अनजान" + +msgid "Any date" +msgstr "कोई भी तारीख" + +msgid "Today" +msgstr "आज" + +msgid "Past 7 days" +msgstr "पिछले 7 दिन" + +msgid "This month" +msgstr "इस महीने" + +msgid "This year" +msgstr "इस साल" + +msgid "No date" +msgstr "" + +msgid "Has date" +msgstr "" + +msgid "Empty" +msgstr "" + +msgid "Not empty" +msgstr "" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" +"कृपया कर्मचारी खाते का सही %(username)s व कूटशब्द भरें। भरते समय दीर्घाक्षर और लघु अक्षर " +"का खयाल रखें।" + +msgid "Action:" +msgstr " क्रिया:" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "एक और %(verbose_name)s जोड़ें " + +msgid "Remove" +msgstr "निकालें" + +msgid "Addition" +msgstr "" + +msgid "Change" +msgstr "बदलें" + +msgid "Deletion" +msgstr "" + +msgid "action time" +msgstr "कार्य के लिए समय" + +msgid "user" +msgstr "" + +msgid "content type" +msgstr "" + +msgid "object id" +msgstr "वस्तु की आईडी " + +#. Translators: 'repr' means representation +#. (https://docs.python.org/library/functions.html#repr) +msgid "object repr" +msgstr "वस्तु का निरूपण" + +msgid "action flag" +msgstr "कार्य ध्वज" + +msgid "change message" +msgstr "परिवर्तन सन्देश" + +msgid "log entry" +msgstr "लॉग प्रविष्टि" + +msgid "log entries" +msgstr "लॉग प्रविष्टियाँ" + +#, python-format +msgid "Added “%(object)s”." +msgstr "" + +#, python-format +msgid "Changed “%(object)s” — %(changes)s" +msgstr "" + +#, python-format +msgid "Deleted “%(object)s.”" +msgstr "" + +msgid "LogEntry Object" +msgstr "LogEntry ऑब्जेक्ट" + +#, python-brace-format +msgid "Added {name} “{object}”." +msgstr "" + +msgid "Added." +msgstr "" + +msgid "and" +msgstr "और" + +#, python-brace-format +msgid "Changed {fields} for {name} “{object}”." +msgstr "" + +#, python-brace-format +msgid "Changed {fields}." +msgstr "" + +#, python-brace-format +msgid "Deleted {name} “{object}”." +msgstr "" + +msgid "No fields changed." +msgstr "कोई क्षेत्र नहीं बदला" + +msgid "None" +msgstr "कोई नहीं" + +msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." +msgstr "" + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully." +msgstr "" + +msgid "You may edit it again below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} “{obj}” was added successfully. You may add another {name} below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may edit it again below." +msgstr "" + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully. You may edit it again below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may add another {name} " +"below." +msgstr "" + +#, python-brace-format +msgid "The {name} “{obj}” was changed successfully." +msgstr "" + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "कार्रवाई हेतु आयटम सही अनुक्रम में चुने जाने चाहिए | कोई आइटम नहीं बदले गये हैं." + +msgid "No action selected." +msgstr "कोई कार्रवाई नहीं चुनी है |" + +#, python-format +msgid "The %(name)s “%(obj)s” was deleted successfully." +msgstr "" + +#, python-format +msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" +msgstr "" + +#, python-format +msgid "Add %s" +msgstr "%s बढाएं" + +#, python-format +msgid "Change %s" +msgstr "%s बदलो" + +#, python-format +msgid "View %s" +msgstr "" + +msgid "Database error" +msgstr "डेटाबेस त्रुटि" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "%(count)s %(name)s का परिवर्तन कामयाब हुआ |" +msgstr[1] "%(count)s %(name)s का परिवर्तन कामयाब हुआ |" + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "%(total_count)s चुने" +msgstr[1] "सभी %(total_count)s चुने " + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "%(cnt)s में से 0 चुने" + +#, python-format +msgid "Change history: %s" +msgstr "इतिहास बदलो: %s" + +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "%(class_name)s %(instance)s" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" + +msgid "Django site admin" +msgstr "ज्याँगो साइट प्रशासन" + +msgid "Django administration" +msgstr "ज्याँगो प्रशासन" + +msgid "Site administration" +msgstr "साइट प्रशासन" + +msgid "Log in" +msgstr "लॉगिन" + +#, python-format +msgid "%(app)s administration" +msgstr "" + +msgid "Page not found" +msgstr "पृष्ठ लापता" + +msgid "We’re sorry, but the requested page could not be found." +msgstr "" + +msgid "Home" +msgstr "गृह" + +msgid "Server error" +msgstr "सर्वर त्रुटि" + +msgid "Server error (500)" +msgstr "सर्वर त्रुटि (500)" + +msgid "Server Error (500)" +msgstr "सर्वर त्रुटि (500)" + +msgid "" +"There’s been an error. It’s been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" + +msgid "Run the selected action" +msgstr "चयनित कार्रवाई चलाइये" + +msgid "Go" +msgstr "आगे बढ़े" + +msgid "Click here to select the objects across all pages" +msgstr "सभी पृष्ठों पर मौजूद वस्तुओं को चुनने के लिए यहाँ क्लिक करें " + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "तमाम %(total_count)s %(module_name)s चुनें" + +msgid "Clear selection" +msgstr "चयन खालिज किया जाये " + +#, python-format +msgid "Models in the %(name)s application" +msgstr "%(name)s अनुप्रयोग के प्रतिरूप" + +msgid "Add" +msgstr "बढाएं" + +msgid "View" +msgstr "" + +msgid "You don’t have permission to view or edit anything." +msgstr "" + +msgid "" +"First, enter a username and password. Then, you’ll be able to edit more user " +"options." +msgstr "" + +msgid "Enter a username and password." +msgstr "उपयोगकर्ता का नाम और कूटशब्द दर्ज करें." + +msgid "Change password" +msgstr "पासवर्ड बदलें" + +msgid "Please correct the error below." +msgstr "" + +msgid "Please correct the errors below." +msgstr "" + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "%(username)s प्रवोक्ता के लिए नयी कूटशब्द दर्ज करें ।" + +msgid "Welcome," +msgstr "आपका स्वागत है," + +msgid "View site" +msgstr "" + +msgid "Documentation" +msgstr "दस्तावेज़ीकरण" + +msgid "Log out" +msgstr "लॉग आउट" + +#, python-format +msgid "Add %(name)s" +msgstr "%(name)s बढाएं" + +msgid "History" +msgstr "इतिहास" + +msgid "View on site" +msgstr "साइट पे देखें" + +msgid "Filter" +msgstr "छन्नी" + +msgid "Clear all filters" +msgstr "" + +msgid "Remove from sorting" +msgstr "श्रेणीकरण से हटाये " + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "श्रेणीकरण प्राथमिकता : %(priority_number)s" + +msgid "Toggle sorting" +msgstr "टॉगल श्रेणीकरण" + +msgid "Delete" +msgstr "मिटाएँ" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" +"%(object_name)s '%(escaped_object)s' को मिटाने पर सम्बंधित वस्तुएँ भी मिटा दी " +"जाएगी, परन्तु आप के खाते में निम्नलिखित प्रकार की वस्तुओं को मिटाने की अनुमति नहीं हैं |" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" +"%(object_name)s '%(escaped_object)s' को हटाने के लिए उनसे संबंधित निम्नलिखित " +"संरक्षित वस्तुओं को हटाने की आवश्यकता होगी:" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" +"क्या आप %(object_name)s \"%(escaped_object)s\" हटाना चाहते हैं? निम्नलिखित सभी " +"संबंधित वस्तुएँ नष्ट की जाएगी" + +msgid "Objects" +msgstr "" + +msgid "Yes, I’m sure" +msgstr "" + +msgid "No, take me back" +msgstr "" + +msgid "Delete multiple objects" +msgstr "अनेक वस्तुएं हटाएँ" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" +"चयनित %(objects_name)s हटाने पर उस से सम्बंधित वस्तुएं भी हट जाएगी, परन्तु आपके खाते में " +"वस्तुओं के निम्नलिखित प्रकार हटाने की अनुमति नहीं है:" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" +"चयनित %(objects_name)s को हटाने के पश्चात् निम्नलिखित संरक्षित संबंधित वस्तुओं को हटाने " +"की आवश्यकता होगी |" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" +"क्या आप ने पक्का तय किया हैं की चयनित %(objects_name)s को नष्ट किया जाये ? " +"निम्नलिखित सभी वस्तुएं और उनसे सम्बंधित वस्तुए भी नष्ट की जाएगी:" + +msgid "Delete?" +msgstr "मिटाएँ ?" + +#, python-format +msgid " By %(filter_title)s " +msgstr "%(filter_title)s द्वारा" + +msgid "Summary" +msgstr "" + +msgid "Recent actions" +msgstr "" + +msgid "My actions" +msgstr "" + +msgid "None available" +msgstr " कोई भी उपलब्ध नहीं" + +msgid "Unknown content" +msgstr "अज्ञात सामग्री" + +msgid "" +"Something’s wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" + +msgid "Forgotten your password or username?" +msgstr "अपना पासवर्ड या उपयोगकर्ता नाम भूल गये हैं?" + +msgid "Toggle navigation" +msgstr "" + +msgid "Start typing to filter…" +msgstr "" + +msgid "Filter navigation items" +msgstr "" + +msgid "Date/time" +msgstr "तिथि / समय" + +msgid "User" +msgstr "उपभोक्ता" + +msgid "Action" +msgstr "कार्य" + +msgid "entry" +msgstr "" + +msgid "entries" +msgstr "" + +msgid "" +"This object doesn’t have a change history. It probably wasn’t added via this " +"admin site." +msgstr "" + +msgid "Show all" +msgstr "सभी दिखाएँ" + +msgid "Save" +msgstr "सुरक्षित कीजिये" + +msgid "Popup closing…" +msgstr "" + +msgid "Search" +msgstr "खोज" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "%(counter)s परिणाम" +msgstr[1] "%(counter)s परिणाम" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "%(full_result_count)s कुल परिणाम" + +msgid "Save as new" +msgstr "नये सा सहेजें" + +msgid "Save and add another" +msgstr "सहेजें और एक और जोडें" + +msgid "Save and continue editing" +msgstr "सहेजें और संपादन करें" + +msgid "Save and view" +msgstr "" + +msgid "Close" +msgstr "" + +#, python-format +msgid "Change selected %(model)s" +msgstr "" + +#, python-format +msgid "Add another %(model)s" +msgstr "" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "" + +#, python-format +msgid "View selected %(model)s" +msgstr "" + +msgid "Thanks for spending some quality time with the web site today." +msgstr "" + +msgid "Log in again" +msgstr "फिर से लॉगिन कीजिए" + +msgid "Password change" +msgstr "कूटशब्द बदलें" + +msgid "Your password was changed." +msgstr "आपके कूटशब्द को बदला गया है" + +msgid "" +"Please enter your old password, for security’s sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" + +msgid "Change my password" +msgstr "कूटशब्द बदलें" + +msgid "Password reset" +msgstr "कूटशब्द पुनस्थाप" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "आपके कूटशब्द को स्थापित किया गया है । अब आप लॉगिन कर सकते है ।" + +msgid "Password reset confirmation" +msgstr "कूटशब्द पुष्टि" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "कृपया आपके नये कूटशब्द को दो बार दर्ज करें ताकि हम उसकी सत्याप्ती कर सकते है ।" + +msgid "New password:" +msgstr "नया कूटशब्द " + +msgid "Confirm password:" +msgstr "कूटशब्द पुष्टि कीजिए" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"कूटशब्द पुनस्थाप संपर्क अमान्य है, संभावना है कि उसे उपयोग किया गया है। कृपया फिर से कूटशब्द " +"पुनस्थाप की आवेदन करें ।" + +msgid "" +"We’ve emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" + +msgid "" +"If you don’t receive an email, please make sure you’ve entered the address " +"you registered with, and check your spam folder." +msgstr "" + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" +"आपको यह डाक इसलिए आई है क्योंकि आप ने %(site_name)s पर अपने खाते का कूटशब्द बदलने का " +"अनुरोध किया था |" + +msgid "Please go to the following page and choose a new password:" +msgstr "कृपया निम्नलिखित पृष्ठ पर नया कूटशब्द चुनिये :" + +msgid "Your username, in case you’ve forgotten:" +msgstr "" + +msgid "Thanks for using our site!" +msgstr "हमारे साइट को उपयोग करने के लिए धन्यवाद ।" + +#, python-format +msgid "The %(site_name)s team" +msgstr "%(site_name)s दल" + +msgid "" +"Forgotten your password? Enter your email address below, and we’ll email " +"instructions for setting a new one." +msgstr "" + +msgid "Email address:" +msgstr "डाक पता -" + +msgid "Reset my password" +msgstr " मेरे कूटशब्द की पुनःस्थापना" + +msgid "All dates" +msgstr "सभी तिथियों" + +#, python-format +msgid "Select %s" +msgstr "%s चुनें" + +#, python-format +msgid "Select %s to change" +msgstr "%s के बदली के लिए चयन करें" + +#, python-format +msgid "Select %s to view" +msgstr "" + +msgid "Date:" +msgstr "तिथि:" + +msgid "Time:" +msgstr "समय:" + +msgid "Lookup" +msgstr "लुक अप" + +msgid "Currently:" +msgstr "फ़िलहाल - " + +msgid "Change:" +msgstr "बदलाव -" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/hi/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/hi/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..bb755ad12f284460b42cd95628ab357c43000a67 GIT binary patch literal 4893 zcmdUx+ix7z9ml5yTIv=kv_M->dm1Uk7R=h~mIO8gl^Rl#5@IE$5`F4;=h!=8c8-}D zXJaW+9T0>nY7rtADWobw<3NFs$WkDYz`P*wQ2v2Rs2WujkA3V@rS|hXXZB*p;a0UO zEAM{iobx-s%lCH~|K)}&k9mAcL?D*@FtWWCC0+3z2Nu3Nl^9;C~^I|T0adc*2k;$ zTVQ}+?}H&Y0@)(}JIED02A%;=f#T=RYd!BV-jEckqj?^o^9>L1iv+c$yV<12APr*|{oTlk6}@*x#AMu}UvgbMGQe1%8( zNR4?Lhcg|IWXjB_jl<0(=aCKF%ysy&XPZ?}YuCK{_6JcMOvhSn%)E&pY3kUUXc?2~ z3RIx-sNG-1_B_*xy%0yu$5d`q(_T?Q9J8&0Tp2Xgyov64s@rD2w&#et+kLU^QJm}4 zdoT*Mw<`*hXttGm4;z#4)A9D$yA_BEZ*Pn3saBLJ{_>Vqagm>IK~QsG{RP^vDtONgkOnSn#Gy+lb%Z)WV!5WKxz3e-bs%Gd2M#G#wYw zx_o+%>WnmrI$^dIkkD?aL7EDhd1R71EPo4?K(Z+(1tFPFBo9F{t0~n455j1F6wU`R zwsjn4mYYqfR&%MDrXCkmY>Xv;#-x_zpF#3`o^v@3U|lvbD*W#iPuyAU<6T2Y4Z4@xE3bp&^!kgT8o>TaVMi-l@_S1RinWJRDsrkg2T%QUZ zM!D_9E+;!?th=IafMDzIT1}k@7p7?iljSvUGBx{{0sfBA|AkI7^3qV@KIk_?d-R-1 zbAMMh8-@N)=Vvp2$~4r_LNObn)w)kUr`}Mn3eRJc-_1nkz3_TQNxj&T#NfrmWNgHZskR+7cLz*^^)jfE_ z@+Yxf)}my_+{>M0c0QQZ{*(^d4fUX8LJha_e6BG%+Uay^x#){#^nqH_v`1Y;U5Km8 zqpfIkWN6opT@UnQuh+(gCQOp+1fOVuhRXGUd~_}jqGYS&KFxH#?UAYN{#|`Ju{EPp z|AC}wLgqk2-8CKMJtrHg6%9?s^Jx(K+fCZe8Y-Ey%WT{DR^=YI4JYb{+f;pI>k#AE z&F8Xsqg*;%7Eh?MxWE&G+s*K@I9VJhWYduFkAQLS4S?4m;wL-9Ug zGc5}#vKsg_-T)L7j6gU0RjspLwBnML)4i-v=8_x=k2@|!7g!JG+UD`3ZHHGlvUw9x zQ3O!ZFSw_HGGK$C5rr<16aQS#9d*ToH7j6GU5!bZ3!%VTcPeXaFA{^=u%^N{a0Nr0 zNu82C0T;~W>g|ima8)}*_}^u?SEFZL4Sf!hsm4>DErVr%LX^^4o7;Y=xmHF@O4yaz z<@$P6HLo*1t%6J2gqo1@daW$pwjHo+n*_VAV7en#1`_s{)v$GUQL3w08DY2Tubx|W zHdYg%IB)y+84UEMYPUD3{X5vNihs2h8ktVzGDhg=YQP{(ej$f5H;-sq-c7Eo-{J^~ z?n0Wpx;HBK6h&Ef=4`k2}y>l%qpIMBkG{{sktWZfx$yS zPKS&ep}d*~|67vRvdN5eQ?|=JFN*4gjANV-kB`7L##BlKi}N>9C~Dxpv7YRR=k%Y8jFBvOs9k515vJB5bzt;e4-A+zYh&A43dF z@5nz1h)a*NmU^%iv}mj1|2C1Il)|d1ENP^l7q1MRK7GCS=w+yK>7&|vO=5dqSU)eD T;Bl9Ps{h!uy-V{QhPr, 2012 +# Jannis Leidel , 2011 +# Sandeep Satavlekar , 2011 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-05-17 23:12+0200\n" +"PO-Revision-Date: 2017-09-19 16:41+0000\n" +"Last-Translator: Jannis Leidel \n" +"Language-Team: Hindi (http://www.transifex.com/django/django/language/hi/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hi\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, javascript-format +msgid "Available %s" +msgstr "उपलब्ध %s" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" +"यह उपलब्ध %s की सूची है. आप उन्हें नीचे दिए गए बॉक्स में से चयन करके कुछ को चुन सकते हैं और " +"उसके बाद दो बॉक्स के बीच \"चुनें\" तीर पर क्लिक करें." + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "इस बॉक्स में टाइप करने के लिए नीचे उपलब्ध %s की सूची को फ़िल्टर करें." + +msgid "Filter" +msgstr "छानना" + +msgid "Choose all" +msgstr "सभी चुनें" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "एक ही बार में सभी %s को चुनने के लिए क्लिक करें." + +msgid "Choose" +msgstr "चुनें" + +msgid "Remove" +msgstr "हटाना" + +#, javascript-format +msgid "Chosen %s" +msgstr "चुनें %s" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" +"यह उपलब्ध %s की सूची है. आप उन्हें नीचे दिए गए बॉक्स में से चयन करके कुछ को हटा सकते हैं और " +"उसके बाद दो बॉक्स के बीच \"हटायें\" तीर पर क्लिक करें." + +msgid "Remove all" +msgstr "सभी को हटाएँ" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "एक ही बार में सभी %s को हटाने के लिए क्लिक करें." + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "%(cnt)s में से %(sel)s चुना गया हैं" +msgstr[1] "%(cnt)s में से %(sel)s चुने गए हैं" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" +"स्वतंत्र सम्पादनक्षम क्षेत्र/स्तम्भ में किये हुए बदल अभी रक्षित नहीं हैं | अगर आप कुछ कार्रवाई " +"करते हो तो वे खो जायेंगे |" + +msgid "" +"You have selected an action, but you haven't saved your changes to " +"individual fields yet. Please click OK to save. You'll need to re-run the " +"action." +msgstr "" +"आप ने कार्रवाई तो चुनी हैं, पर स्वतंत्र सम्पादनक्षम क्षेत्र/स्तम्भ में किये हुए बदल अभी सुरक्षित " +"नहीं किये हैं| उन्हें सुरक्षित करने के लिए कृपया 'ओके' क्लिक करे | आप को चुनी हुई कार्रवाई " +"दोबारा चलानी होगी |" + +msgid "" +"You have selected an action, and you haven't made any changes on individual " +"fields. You're probably looking for the Go button rather than the Save " +"button." +msgstr "" +"आप ने कार्रवाई चुनी हैं, और आप ने स्वतंत्र सम्पादनक्षम क्षेत्र/स्तम्भ में बदल नहीं किये हैं| " +"संभवतः 'सेव' बटन के बजाय आप 'गो' बटन ढून्ढ रहे हो |" + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "" +msgstr[1] "" + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "" +msgstr[1] "" + +msgid "Now" +msgstr "अब" + +msgid "Choose a Time" +msgstr "" + +msgid "Choose a time" +msgstr "एक समय चुनें" + +msgid "Midnight" +msgstr "मध्यरात्री" + +msgid "6 a.m." +msgstr "सुबह 6 बजे" + +msgid "Noon" +msgstr "दोपहर" + +msgid "6 p.m." +msgstr "" + +msgid "Cancel" +msgstr "रद्द करें" + +msgid "Today" +msgstr "आज" + +msgid "Choose a Date" +msgstr "" + +msgid "Yesterday" +msgstr "कल (बीता)" + +msgid "Tomorrow" +msgstr "कल" + +msgid "January" +msgstr "" + +msgid "February" +msgstr "" + +msgid "March" +msgstr "" + +msgid "April" +msgstr "" + +msgid "May" +msgstr "" + +msgid "June" +msgstr "" + +msgid "July" +msgstr "" + +msgid "August" +msgstr "" + +msgid "September" +msgstr "" + +msgid "October" +msgstr "" + +msgid "November" +msgstr "" + +msgid "December" +msgstr "" + +msgctxt "one letter Sunday" +msgid "S" +msgstr "" + +msgctxt "one letter Monday" +msgid "M" +msgstr "" + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "" + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "" + +msgctxt "one letter Thursday" +msgid "T" +msgstr "" + +msgctxt "one letter Friday" +msgid "F" +msgstr "" + +msgctxt "one letter Saturday" +msgid "S" +msgstr "" + +msgid "Show" +msgstr "दिखाओ" + +msgid "Hide" +msgstr " छिपाओ" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/hr/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/hr/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..eb87cd149b88045aaa76cecdfdd2a648e68c22a6 GIT binary patch literal 14702 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, 2011,2013 +# Bojan Mihelač , 2012 +# Filip Cuk , 2016 +# Goran Zugelj , 2018 +# Jannis Leidel , 2011 +# Mislav Cimperšak , 2013,2015-2016 +# Ylodi , 2015 +# Vedran Linić , 2019 +# Ylodi , 2011 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-01-16 20:42+0100\n" +"PO-Revision-Date: 2019-02-19 06:44+0000\n" +"Last-Translator: Vedran Linić \n" +"Language-Team: Croatian (http://www.transifex.com/django/django/language/" +"hr/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hr\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "Uspješno izbrisano %(count)d %(items)s." + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "Nije moguće izbrisati %(name)s" + +msgid "Are you sure?" +msgstr "Jeste li sigurni?" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "Izbrišite odabrane %(verbose_name_plural)s" + +msgid "Administration" +msgstr "Administracija" + +msgid "All" +msgstr "Svi" + +msgid "Yes" +msgstr "Da" + +msgid "No" +msgstr "Ne" + +msgid "Unknown" +msgstr "Nepoznat pojam" + +msgid "Any date" +msgstr "Bilo koji datum" + +msgid "Today" +msgstr "Danas" + +msgid "Past 7 days" +msgstr "Prošlih 7 dana" + +msgid "This month" +msgstr "Ovaj mjesec" + +msgid "This year" +msgstr "Ova godina" + +msgid "No date" +msgstr "Nema datuma" + +msgid "Has date" +msgstr "Ima datum" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" +"Molimo unesite ispravno %(username)s i lozinku za pristup. Imajte na umu da " +"oba polja mogu biti velika i mala slova." + +msgid "Action:" +msgstr "Akcija:" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "Dodaj još jedan %(verbose_name)s" + +msgid "Remove" +msgstr "Ukloni" + +msgid "Addition" +msgstr "" + +msgid "Change" +msgstr "Promijeni" + +msgid "Deletion" +msgstr "" + +msgid "action time" +msgstr "vrijeme akcije" + +msgid "user" +msgstr "korisnik" + +msgid "content type" +msgstr "tip sadržaja" + +msgid "object id" +msgstr "id objekta" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/library/functions.html#repr) +msgid "object repr" +msgstr "repr objekta" + +msgid "action flag" +msgstr "oznaka akcije" + +msgid "change message" +msgstr "promijeni poruku" + +msgid "log entry" +msgstr "zapis" + +msgid "log entries" +msgstr "zapisi" + +#, python-format +msgid "Added \"%(object)s\"." +msgstr "Dodano \"%(object)s\"." + +#, python-format +msgid "Changed \"%(object)s\" - %(changes)s" +msgstr "Promijenjeno \"%(object)s\" - %(changes)s" + +#, python-format +msgid "Deleted \"%(object)s.\"" +msgstr "Obrisano \"%(object)s.\"" + +msgid "LogEntry Object" +msgstr "Log zapis" + +#, python-brace-format +msgid "Added {name} \"{object}\"." +msgstr "" + +msgid "Added." +msgstr "Dodano." + +msgid "and" +msgstr "i" + +#, python-brace-format +msgid "Changed {fields} for {name} \"{object}\"." +msgstr "" + +#, python-brace-format +msgid "Changed {fields}." +msgstr "" + +#, python-brace-format +msgid "Deleted {name} \"{object}\"." +msgstr "" + +msgid "No fields changed." +msgstr "Nije bilo promjena polja." + +msgid "None" +msgstr "Nijedan" + +msgid "" +"Hold down \"Control\", or \"Command\" on a Mac, to select more than one." +msgstr "" +"Držite \"Control\" ili \"Command\" na Mac-u kako bi odabrali više od jednog " +"objekta. " + +#, python-brace-format +msgid "The {name} \"{obj}\" was added successfully." +msgstr "" + +msgid "You may edit it again below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was added successfully. You may add another {name} " +"below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was changed successfully. You may edit it again below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was added successfully. You may edit it again below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was changed successfully. You may add another {name} " +"below." +msgstr "" + +#, python-brace-format +msgid "The {name} \"{obj}\" was changed successfully." +msgstr "" + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" +"Unosi moraju biti odabrani da bi se nad njima mogle izvršiti akcije. Nijedan " +"unos nije promijenjen." + +msgid "No action selected." +msgstr "Nije odabrana akcija." + +#, python-format +msgid "The %(name)s \"%(obj)s\" was deleted successfully." +msgstr "%(name)s \"%(obj)s\" uspješno izbrisan." + +#, python-format +msgid "%(name)s with ID \"%(key)s\" doesn't exist. Perhaps it was deleted?" +msgstr "" + +#, python-format +msgid "Add %s" +msgstr "Novi unos (%s)" + +#, python-format +msgid "Change %s" +msgstr "Promijeni %s" + +#, python-format +msgid "View %s" +msgstr "" + +msgid "Database error" +msgstr "Pogreška u bazi" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "%(count)s %(name)s uspješno promijenjen." +msgstr[1] "%(count)s %(name)s uspješno promijenjeno." +msgstr[2] "%(count)s %(name)s uspješno promijenjeno." + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "%(total_count)s odabrano" +msgstr[1] "Svih %(total_count)s odabrano" +msgstr[2] "Svih %(total_count)s odabrano" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "0 od %(cnt)s odabrano" + +#, python-format +msgid "Change history: %s" +msgstr "Promijeni povijest: %s" + +#. Translators: Model verbose name and instance representation, +#. suitable to be an item in a list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "%(class_name)s %(instance)s" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" +"Brisanje %(class_name)s %(instance)s bi zahtjevalo i brisanje sljedećih " +"zaštićenih povezanih objekata: %(related_objects)s" + +msgid "Django site admin" +msgstr "Django administracija stranica" + +msgid "Django administration" +msgstr "Django administracija" + +msgid "Site administration" +msgstr "Administracija stranica" + +msgid "Log in" +msgstr "Prijavi se" + +#, python-format +msgid "%(app)s administration" +msgstr "%(app)s administracija" + +msgid "Page not found" +msgstr "Stranica nije pronađena" + +msgid "We're sorry, but the requested page could not be found." +msgstr "Ispričavamo se, ali tražena stranica nije pronađena." + +msgid "Home" +msgstr "Početna" + +msgid "Server error" +msgstr "Greška na serveru" + +msgid "Server error (500)" +msgstr "Greška na serveru (500)" + +msgid "Server Error (500)" +msgstr "Greška na serveru (500)" + +msgid "" +"There's been an error. It's been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" +"Dogodila se greška. Administratori su obaviješteni putem elektroničke pošte " +"te bi greška uskoro trebala biti ispravljena. Hvala na strpljenju." + +msgid "Run the selected action" +msgstr "Izvrši odabranu akciju" + +msgid "Go" +msgstr "Idi" + +msgid "Click here to select the objects across all pages" +msgstr "Klikni ovdje da bi odabrao unose kroz sve stranice" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "Odaberi svih %(total_count)s %(module_name)s" + +msgid "Clear selection" +msgstr "Očisti odabir" + +msgid "" +"First, enter a username and password. Then, you'll be able to edit more user " +"options." +msgstr "" +"Prvo, unesite korisničko ime i lozinku. Onda možete promijeniti više " +"postavki korisnika." + +msgid "Enter a username and password." +msgstr "Unesite korisničko ime i lozinku." + +msgid "Change password" +msgstr "Promijeni lozinku" + +msgid "Please correct the error below." +msgstr "" + +msgid "Please correct the errors below." +msgstr "Molimo ispravite navedene greške." + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "Unesite novu lozinku za korisnika %(username)s." + +msgid "Welcome," +msgstr "Dobrodošli," + +msgid "View site" +msgstr "Pogledaj stranicu" + +msgid "Documentation" +msgstr "Dokumentacija" + +msgid "Log out" +msgstr "Odjava" + +#, python-format +msgid "Add %(name)s" +msgstr "Novi unos - %(name)s" + +msgid "History" +msgstr "Povijest" + +msgid "View on site" +msgstr "Pogledaj na stranicama" + +msgid "Filter" +msgstr "Filter" + +msgid "Remove from sorting" +msgstr "Odstrani iz sortiranja" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "Prioritet sortiranja: %(priority_number)s" + +msgid "Toggle sorting" +msgstr "Preklopi sortiranje" + +msgid "Delete" +msgstr "Izbriši" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" +"Brisanje %(object_name)s '%(escaped_object)s' rezultiralo bi brisanjem " +"povezanih objekta, ali vi nemate privilegije za brisanje navedenih objekta: " + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" +"Brisanje %(object_name)s '%(escaped_object)s' bi zahtijevalo i brisanje " +"sljedećih zaštićenih povezanih objekata:" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" +"Jeste li sigurni da želite izbrisati %(object_name)s \"%(escaped_object)s\"? " +"Svi navedeni objekti biti će izbrisani:" + +msgid "Objects" +msgstr "Objekti" + +msgid "Yes, I'm sure" +msgstr "Da, siguran sam" + +msgid "No, take me back" +msgstr "Ne, vrati me natrag" + +msgid "Delete multiple objects" +msgstr "Izbriši više unosa." + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" +"Brisanje odabranog %(objects_name)s rezultiralo bi brisanjem povezanih " +"objekta, ali vaš korisnički račun nema dozvolu za brisanje sljedeće vrste " +"objekata:" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" +"Brisanje odabranog %(objects_name)s će zahtijevati brisanje sljedećih " +"zaštićenih povezanih objekata:" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" +"Jeste li sigurni da želite izbrisati odabrane %(objects_name)s ? Svi " +"sljedeći objekti i povezane stavke će biti izbrisani:" + +msgid "View" +msgstr "Prikaz" + +msgid "Delete?" +msgstr "Izbriši?" + +#, python-format +msgid " By %(filter_title)s " +msgstr "Po %(filter_title)s " + +msgid "Summary" +msgstr "Sažetak" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "Modeli u aplikaciji %(name)s" + +msgid "Add" +msgstr "Novi unos" + +msgid "You don't have permission to view or edit anything." +msgstr "Nemate dozvole za pregled ili izmjenu." + +msgid "Recent actions" +msgstr "Nedavne promjene" + +msgid "My actions" +msgstr "Moje promjene" + +msgid "None available" +msgstr "Nije dostupno" + +msgid "Unknown content" +msgstr "Sadržaj nepoznat" + +msgid "" +"Something's wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" +"Nešto nije uredu sa instalacijom/postavkama baze. Provjerite jesu li " +"potrebne tablice u bazi kreirane i provjerite je li baza dostupna korisniku." + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" +"Prijavljeni ste kao %(username)s, ali nemate dopuštenje za pristup traženoj " +"stranici. Želite li se prijaviti drugim korisničkim računom?" + +msgid "Forgotten your password or username?" +msgstr "Zaboravili ste lozinku ili korisničko ime?" + +msgid "Date/time" +msgstr "Datum/vrijeme" + +msgid "User" +msgstr "Korisnik" + +msgid "Action" +msgstr "Akcija" + +msgid "" +"This object doesn't have a change history. It probably wasn't added via this " +"admin site." +msgstr "" +"Ovaj objekt nema povijest promjena. Moguće je da nije dodan korištenjem ove " +"administracije." + +msgid "Show all" +msgstr "Prikaži sve" + +msgid "Save" +msgstr "Spremi" + +msgid "Popup closing…" +msgstr "" + +msgid "Search" +msgstr "Traži" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "%(counter)s rezultat" +msgstr[1] "%(counter)s rezultata" +msgstr[2] "%(counter)s rezultata" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "%(full_result_count)s ukupno" + +msgid "Save as new" +msgstr "Spremi kao novi unos" + +msgid "Save and add another" +msgstr "Spremi i unesi novi unos" + +msgid "Save and continue editing" +msgstr "Spremi i nastavi uređivati" + +msgid "Save and view" +msgstr "" + +msgid "Close" +msgstr "Zatvori" + +#, python-format +msgid "Change selected %(model)s" +msgstr "Promijeni označene %(model)s" + +#, python-format +msgid "Add another %(model)s" +msgstr "Dodaj još jedan %(model)s" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "Obriši odabrane %(model)s" + +msgid "Thanks for spending some quality time with the Web site today." +msgstr "Hvala što ste proveli malo kvalitetnog vremena na stranicama danas." + +msgid "Log in again" +msgstr "Prijavite se ponovo" + +msgid "Password change" +msgstr "Promjena lozinke" + +msgid "Your password was changed." +msgstr "Vaša lozinka je promijenjena." + +msgid "" +"Please enter your old password, for security's sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" +"Molim unesite staru lozinku, zbog sigurnosti, i onda unesite novu lozinku " +"dvaput da bi mogli provjeriti jeste li je ispravno unijeli." + +msgid "Change my password" +msgstr "Promijeni moju lozinku" + +msgid "Password reset" +msgstr "Resetiranje lozinke" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "Vaša lozinka je postavljena. Sada se možete prijaviti." + +msgid "Password reset confirmation" +msgstr "Potvrda promjene lozinke" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" +"Molimo vas da unesete novu lozinku dvaput da bi mogli provjeriti jeste li je " +"ispravno unijeli." + +msgid "New password:" +msgstr "Nova lozinka:" + +msgid "Confirm password:" +msgstr "Potvrdi lozinku:" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"Link za resetiranje lozinke je neispravan, vjerojatno jer je već korišten. " +"Molimo zatražite novo resetiranje lozinke." + +msgid "" +"We've emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" +"Elektroničkom poštom smo vam poslali upute za postavljanje Vaše zaporke, ako " +"postoji korisnički račun s e-mail adresom koju ste unijeli. Uskoro bi ih " +"trebali primiti. " + +msgid "" +"If you don't receive an email, please make sure you've entered the address " +"you registered with, and check your spam folder." +msgstr "" +"Ako niste primili e-mail provjerite da li ste ispravno unijeli adresu s " +"kojom ste se registrirali i provjerite spam sandučić." + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" +"Primili ste ovu poruku jer ste zatražili postavljanje nove lozinke za svoj " +"korisnički račun na %(site_name)s." + +msgid "Please go to the following page and choose a new password:" +msgstr "Molimo otiđite do sljedeće stranice i odaberite novu lozinku:" + +msgid "Your username, in case you've forgotten:" +msgstr "Vaše korisničko ime, u slučaju da ste zaboravili:" + +msgid "Thanks for using our site!" +msgstr "Hvala šta koristite naše stranice!" + +#, python-format +msgid "The %(site_name)s team" +msgstr "%(site_name)s tim" + +msgid "" +"Forgotten your password? Enter your email address below, and we'll email " +"instructions for setting a new one." +msgstr "" +"Zaboravili ste lozinku? Unesite vašu e-mail adresu ispod i poslati ćemo vam " +"upute kako postaviti novu." + +msgid "Email address:" +msgstr "E-mail adresa:" + +msgid "Reset my password" +msgstr "Resetiraj moju lozinku" + +msgid "All dates" +msgstr "Svi datumi" + +#, python-format +msgid "Select %s" +msgstr "Odaberi %s" + +#, python-format +msgid "Select %s to change" +msgstr "Odaberi za promjenu - %s" + +#, python-format +msgid "Select %s to view" +msgstr "" + +msgid "Date:" +msgstr "Datum:" + +msgid "Time:" +msgstr "Vrijeme:" + +msgid "Lookup" +msgstr "Potraži" + +msgid "Currently:" +msgstr "Trenutno:" + +msgid "Change:" +msgstr "Promijeni:" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/hr/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/hr/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..e8231f69af4f81310bfafe02a6ae3b0eab02b685 GIT binary patch literal 3360 zcmbtV&5s<#6|cl5f#oY0laTO{7fWk<1>HO2z}k#G7+Bk64Qnsn0m+w0HPf{-HPcqUB1IfPNL(WU2j4&()>0HH|3Y%f1uk$vAR!L?UUiRm02`#x>gr!t z)%*CpSFij1XV=cZ30!}~xF2KpFN9bC-u6p8aJ>gS2z(#-E8r(Jeh$11^RMdp&K=eM zt-#x{zN<#6F$T_I{Rr?D;L||%`5bUB@I@fo|2uFe@NMADz<2BUKY+N!2Y9gD6(HOD z5XkcX1ik_MH}EpBi^ZFOUjW(8*TBQT9av=lM}cnwSAeYdKVS~rgz^6(2cH7hG5;5o zS^q&OvEDvBZUr`hyxs=>8h8SDC-4;TF5q8l%z-TbN{z1p=P`d17y~~Bay*{_K|y?3 z&%deXI}jwtcMFi^?f`P!_u#?)3HT~-0eA^`1;}=e!71ZO;1X~R$odz7F9BZzz7D({ zhxjt^Eg-@c4`AGf@f!@jKqJJ%?+@|=7hHsEH=fMx4h*h^KVa;_;0xx(Z!zxWNqzBo zqg=%A>N)ed2ZQ6_+~Md#4c-m>JqG8MW0+oCS7LsDq0)td>;}#6?-`F*EU2DW$&c_fED-WEHdQ?H!(i%yhS)rrylffuK&HF!+KnV?$( zn-J>*EO!RFAl!bSDAfgAZjhXbG^Vq*q)cv3$rUzJ)ZMHzs7;?$GtwrQ=-PACRjHkj zGzqU5>M{FTj`ma;+e6Yh2z8a8D9EsPKd}ULRm9gNbuHj+Ms+%VCZj4bKgGxY~~6fMmPXU?4*k5y7?4mRe@t-bDY_M#DPw$5lJK2^V*t+L;f~v z0khBJ2ojvU;d79tuTaef3=%!oNhwqKR%ud%-0X9Ta%a1!)lEvR4awiIE@b&>B)Rk+ z%1$Edya=b9|8-_k?ZrP%4MH?at$=32EAAROWa9_qXjA!^)>0)4RaFI@euneL`W15& zzEQA+MW-THR?MoD%#bQgJ^8JDuiaWh2mKb2AAJe7|pLqCugHPr(*G7HiH9 z@tcTNlIR8H3Y<%ek|EM>=gz3yIv=eTeVs&4mHi^>*cQ#Lo$f@-PDwt)i2nvHI?!ky ziW-kb&4bizwjOOf)Hu*+KrlL^#+q$z%N>jwk44SLsJYa7r1?+-*W9zR@KMJ}Q>4;c z*P@fs7?j+z3ZHpON5BTtC(*;i3V$*e`o&Vmmj-#_p^Z!IoPCX?8+ zNxh-Y#XXxXRzXc6t@RfNZgF95b!GMVcKFS>F}G}uR|d536|~5!bAB;Tr8bB8_+6oV z`}xj^=+L$t``S=0I&OM4!LOi2hq~Hd1{_|m~UfX8A z*=V<$w0AG@YvWJtW|NLmgCLFhg$tDmWEu<5X+r0~;W>ei zx(jX=ZK3WE$+ScK-+N0`4omMWw+)-y#3*qL#Z>0(rVyu-vhdPqv2tE^mD5-V=oKZ> zm)Ue3^Rd%Ig$`0n&aBirRE$;7uVN^~GpQaK9ZXS(P2n9v+)ZpUREe=@WV2G`D78U@ zr8FqP)c3^ewz4iqV7q3G-MR?ixYlJN#q+^J4S~^`(<6EHBZM}#G{nEi<|x>tN`fAM zOiZix>PJj20Zp$V0&*Ijjl{im3Ed=-1X-q}97~oEN{1zS6_QGtMjR_|?5Xp!hYIf$ znhj*mXKL$mNy%6SEg92y$%N$K6uwKQPR7rqQzhgl*c_8a7GfQRB1K2%BRLEqT4apF zY9mmRpz5?ztB5;b=sU{xIt4VTtBJ_$gp+WbWixW7ptJM&XRJ zp{f#HCtYX3rOuG07lsPIJn2!ZV1_ef&1W)2@LJk zcc=)mSVLF3fp_>`wW-c*b*}6ez2Us9bfp=hL9ANjg0?R5q35W>F<9ny, 2011 +# Bojan Mihelač , 2012 +# Davor Lučić , 2011 +# Jannis Leidel , 2011 +# Mislav Cimperšak , 2015 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-05-17 11:50+0200\n" +"PO-Revision-Date: 2017-09-19 16:41+0000\n" +"Last-Translator: Jannis Leidel \n" +"Language-Team: Croatian (http://www.transifex.com/django/django/language/" +"hr/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hr\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" + +#, javascript-format +msgid "Available %s" +msgstr "Dostupno %s" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" +"Ovo je popis dostupnih %s. Možete dodati pojedine na način da ih izaberete u " +"polju ispod i kliknete \"Izaberi\" strelicu između dva polja. " + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "Tipkajte u ovo polje da filtrirate listu dostupnih %s." + +msgid "Filter" +msgstr "Filter" + +msgid "Choose all" +msgstr "Odaberi sve" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "Kliknite da odabrete sve %s odjednom." + +msgid "Choose" +msgstr "Izaberi" + +msgid "Remove" +msgstr "Ukloni" + +#, javascript-format +msgid "Chosen %s" +msgstr "Odabrano %s" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" +"Ovo je popis odabranih %s. Možete ukloniti pojedine na način da ih izaberete " +"u polju ispod i kliknete \"Ukloni\" strelicu između dva polja. " + +msgid "Remove all" +msgstr "Ukloni sve" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "Kliknite da uklonite sve izabrane %s odjednom." + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "odabrano %(sel)s od %(cnt)s" +msgstr[1] "odabrano %(sel)s od %(cnt)s" +msgstr[2] "odabrano %(sel)s od %(cnt)s" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" +"Neke promjene nisu spremljene na pojedinim polja za uređivanje. Ako " +"pokrenete akciju, nespremljene promjene će biti izgubljene." + +msgid "" +"You have selected an action, but you haven't saved your changes to " +"individual fields yet. Please click OK to save. You'll need to re-run the " +"action." +msgstr "" +"Odabrali ste akciju, ali niste još spremili promjene na pojedinim polja. " +"Molimo kliknite OK za spremanje. Morat ćete ponovno pokrenuti akciju." + +msgid "" +"You have selected an action, and you haven't made any changes on individual " +"fields. You're probably looking for the Go button rather than the Save " +"button." +msgstr "" +"Odabrali ste akciju, a niste napravili nikakve izmjene na pojedinim poljima. " +"Vjerojatno tražite gumb Idi umjesto gumb Spremi." + +msgid "Now" +msgstr "Sada" + +msgid "Midnight" +msgstr "Ponoć" + +msgid "6 a.m." +msgstr "6 ujutro" + +msgid "Noon" +msgstr "Podne" + +msgid "6 p.m." +msgstr "6 popodne" + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +msgid "Choose a Time" +msgstr "Izaberite vrijeme" + +msgid "Choose a time" +msgstr "Izaberite vrijeme" + +msgid "Cancel" +msgstr "Odustani" + +msgid "Today" +msgstr "Danas" + +msgid "Choose a Date" +msgstr "Odaberite datum" + +msgid "Yesterday" +msgstr "Jučer" + +msgid "Tomorrow" +msgstr "Sutra" + +msgid "January" +msgstr "" + +msgid "February" +msgstr "" + +msgid "March" +msgstr "" + +msgid "April" +msgstr "" + +msgid "May" +msgstr "" + +msgid "June" +msgstr "" + +msgid "July" +msgstr "" + +msgid "August" +msgstr "" + +msgid "September" +msgstr "" + +msgid "October" +msgstr "" + +msgid "November" +msgstr "" + +msgid "December" +msgstr "" + +msgctxt "one letter Sunday" +msgid "S" +msgstr "" + +msgctxt "one letter Monday" +msgid "M" +msgstr "" + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "" + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "" + +msgctxt "one letter Thursday" +msgid "T" +msgstr "" + +msgctxt "one letter Friday" +msgid "F" +msgstr "" + +msgctxt "one letter Saturday" +msgid "S" +msgstr "" + +msgid "Show" +msgstr "Prikaži" + +msgid "Hide" +msgstr "Sakri" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/hsb/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/hsb/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..e0e9215544122ec48c0cb166726a8c410ac31488 GIT binary patch literal 18595 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 z, 2016-2023 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-09-18 11:41-0300\n" +"PO-Revision-Date: 2023-12-04 07:05+0000\n" +"Last-Translator: Michael Wolf , 2016-2023\n" +"Language-Team: Upper Sorbian (http://app.transifex.com/django/django/" +"language/hsb/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hsb\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || " +"n%100==4 ? 2 : 3);\n" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "Wubrane %(verbose_name_plural)s zhašeć" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "%(count)d %(items)s je so wuspěšnje zhašało." + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "%(name)s njeda so zhašeć." + +msgid "Are you sure?" +msgstr "Sće wěsty?" + +msgid "Administration" +msgstr "Administracija" + +msgid "All" +msgstr "Wšě" + +msgid "Yes" +msgstr "Haj" + +msgid "No" +msgstr "Ně" + +msgid "Unknown" +msgstr "Njeznaty" + +msgid "Any date" +msgstr "Někajki datum" + +msgid "Today" +msgstr "Dźensa" + +msgid "Past 7 days" +msgstr "Zańdźene 7 dnjow" + +msgid "This month" +msgstr "Tutón měsac" + +msgid "This year" +msgstr "Lětsa" + +msgid "No date" +msgstr "Žadyn datum" + +msgid "Has date" +msgstr "Ma datum" + +msgid "Empty" +msgstr "Prózdny" + +msgid "Not empty" +msgstr "Njeprózdny" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" +"Prošu zapodajće korektne %(username)s a hesło za personalne konto. Dźiwajće " +"na to, zo wobě poli móžetej mjez wulko- a małopisanjom rozeznawać." + +msgid "Action:" +msgstr "Akcija:" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "Přidajće nowe %(verbose_name)s" + +msgid "Remove" +msgstr "Wotstronić" + +msgid "Addition" +msgstr "Přidaće" + +msgid "Change" +msgstr "Změnić" + +msgid "Deletion" +msgstr "Zhašenje" + +msgid "action time" +msgstr "akciski čas" + +msgid "user" +msgstr "wužiwar" + +msgid "content type" +msgstr "wobsahowy typ" + +msgid "object id" +msgstr "objektowy id" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/library/functions.html#repr) +msgid "object repr" +msgstr "objektowa reprezentacija" + +msgid "action flag" +msgstr "akciske markěrowanje" + +msgid "change message" +msgstr "změnowa powěsć" + +msgid "log entry" +msgstr "protokolowy zapisk" + +msgid "log entries" +msgstr "protokolowe zapiski" + +#, python-format +msgid "Added “%(object)s”." +msgstr "Je so „%(object)s“ přidał." + +#, python-format +msgid "Changed “%(object)s” — %(changes)s" +msgstr "Je so „%(object)s“ změnił - %(changes)s" + +#, python-format +msgid "Deleted “%(object)s.”" +msgstr "Je so „%(object)s“ zhašał." + +msgid "LogEntry Object" +msgstr "Objekt LogEntry" + +#, python-brace-format +msgid "Added {name} “{object}”." +msgstr "Je so {name} „{object}“ přidał." + +msgid "Added." +msgstr "Přidaty." + +msgid "and" +msgstr "a" + +#, python-brace-format +msgid "Changed {fields} for {name} “{object}”." +msgstr "Je so {fields} za {name} „{object}“ změnił." + +#, python-brace-format +msgid "Changed {fields}." +msgstr "{fields} změnjene." + +#, python-brace-format +msgid "Deleted {name} “{object}”." +msgstr "Je so {name} „{object}“ zhašał." + +msgid "No fields changed." +msgstr "Žane pola změnjene." + +msgid "None" +msgstr "Žadyn" + +msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." +msgstr "" +"Dźeržće „ctrl“ abo „cmd“ na Mac stłóčeny, zo byšće wjace hač jedyn wubrał." + +msgid "Select this object for an action - {}" +msgstr "Wubjerće tutón objekt za akciju – {}" + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully." +msgstr "{name} „{obj}“ je so wuspěšnje přidał." + +msgid "You may edit it again below." +msgstr "Móžeće deleka unowa wobdźěłać." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was added successfully. You may add another {name} below." +msgstr "" +"{name} „{obj}“ je so wuspěšnje přidał. Móžeće deleka dalši {name} přidać." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may edit it again below." +msgstr "{name} „{obj}“ je so wuspěšnje změnił. Móžeće jón deleka wobdźěłować." + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully. You may edit it again below." +msgstr "{name} „{obj}“ je so wuspěšnje přidał. Móžeće jón deleka wobdźěłować." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may add another {name} " +"below." +msgstr "" +"{name} „{obj}“ je so wuspěšnje změnił. Móžeće deleka dalši {name} přidać." + +#, python-brace-format +msgid "The {name} “{obj}” was changed successfully." +msgstr "{name} „{obj}“ je so wuspěšnje změnił." + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" +"Dyrbiće zapiski wubrać, zo byšće akcije z nimi wuwjesć. Zapiski njejsu so " +"změnili." + +msgid "No action selected." +msgstr "žana akcija wubrana." + +#, python-format +msgid "The %(name)s “%(obj)s” was deleted successfully." +msgstr "%(name)s „%(obj)s“ je so wuspěšnje zhašał." + +#, python-format +msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" +msgstr "%(name)s z ID „%(key)s“ njeeksistuje. Je so snano zhašało?" + +#, python-format +msgid "Add %s" +msgstr "%s přidać" + +#, python-format +msgid "Change %s" +msgstr "%s změnić" + +#, python-format +msgid "View %s" +msgstr "%s pokazać" + +msgid "Database error" +msgstr "Zmylk datoweje banki" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "%(count)s %(name)s je so wuspěšnje změnił." +msgstr[1] "%(count)s %(name)s stej so wuspěšnje změniłoj." +msgstr[2] "%(count)s %(name)s su so wuspěšnje změnili." +msgstr[3] "%(count)s %(name)s je so wuspěšnje změniło." + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "%(total_count)s wubrany" +msgstr[1] "%(total_count)s wubranej" +msgstr[2] "%(total_count)s wubrane" +msgstr[3] "%(total_count)s wubranych" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "0 z %(cnt)s wubranych" + +#, python-format +msgid "Change history: %s" +msgstr "Změnowa historija: %s" + +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "%(class_name)s %(instance)s" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" +"Zo bychu so %(class_name)s %(instance)s zhašeli, dyrbja so slědowace škitane " +"přisłušne objekty zhašeć: %(related_objects)s" + +msgid "Django site admin" +msgstr "Administrator sydła Django" + +msgid "Django administration" +msgstr "Administracija Django" + +msgid "Site administration" +msgstr "Sydłowa administracija" + +msgid "Log in" +msgstr "Přizjewić" + +#, python-format +msgid "%(app)s administration" +msgstr "Administracija %(app)s" + +msgid "Page not found" +msgstr "Strona njeje so namakała" + +msgid "We’re sorry, but the requested page could not be found." +msgstr "Je nam žel, ale požadana strona njeda so namakać." + +msgid "Home" +msgstr "Startowa strona" + +msgid "Server error" +msgstr "Serwerowy zmylk" + +msgid "Server error (500)" +msgstr "Serwerowy zmylk (500)" + +msgid "Server Error (500)" +msgstr "Serwerowy zmylk (500)" + +msgid "" +"There’s been an error. It’s been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" +"Zmylk je wustupił. Je so sydłowym administratoram přez e-mejl zdźělił a " +"dyrbjał so bórze wotstronić. Dźakujemy so za wašu sćerpliwosć." + +msgid "Run the selected action" +msgstr "Wubranu akciju wuwjesć" + +msgid "Go" +msgstr "Start" + +msgid "Click here to select the objects across all pages" +msgstr "Klikńće tu, zo byšće objekty wšěch stronow wubrać" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "Wubjerće wšě %(total_count)s %(module_name)s" + +msgid "Clear selection" +msgstr "Wuběr wotstronić" + +msgid "Breadcrumbs" +msgstr "Chlěbowe srjódki" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "Modele w nałoženju %(name)s" + +msgid "Add" +msgstr "Přidać" + +msgid "View" +msgstr "Pokazać" + +msgid "You don’t have permission to view or edit anything." +msgstr "Nimaće prawo něšto pokazać abo wobdźěłać." + +msgid "" +"First, enter a username and password. Then, you’ll be able to edit more user " +"options." +msgstr "" +"Zapodajće najprjedy wužiwarske mjeno a hesło. Potom móžeće dalše wužiwarske " +"nastajenja wobdźěłować." + +msgid "Enter a username and password." +msgstr "Zapodajće wužiwarske mjeno a hesło." + +msgid "Change password" +msgstr "Hesło změnić" + +msgid "Please correct the error below." +msgid_plural "Please correct the errors below." +msgstr[0] "Prošu porjedźće slědowacy zmylk." +msgstr[1] "Prošu porjedźće slědowacej zmylkaj." +msgstr[2] "Prošu porjedźće slědowace zmylki." +msgstr[3] "Prošu porjedźće slědowace zmylki." + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "Zapodajće nowe hesło za %(username)s." + +msgid "Skip to main content" +msgstr "Dale k hłownemu wobsahej" + +msgid "Welcome," +msgstr "Witajće," + +msgid "View site" +msgstr "Sydło pokazać" + +msgid "Documentation" +msgstr "Dokumentacija" + +msgid "Log out" +msgstr "Wotzjewić" + +#, python-format +msgid "Add %(name)s" +msgstr "%(name)s přidać" + +msgid "History" +msgstr "Historija" + +msgid "View on site" +msgstr "Na sydle pokazać" + +msgid "Filter" +msgstr "Filtrować" + +msgid "Hide counts" +msgstr "Ličby schować" + +msgid "Show counts" +msgstr "Ličby pokazać" + +msgid "Clear all filters" +msgstr "Wšě filtry zhašeć" + +msgid "Remove from sorting" +msgstr "Ze sortěrowanja wotstronić" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "Sortěrowanski porjad: %(priority_number)s" + +msgid "Toggle sorting" +msgstr "Sortěrowanje přepinać" + +msgid "Toggle theme (current theme: auto)" +msgstr "Drastu změnić (aktualna drasta: auto)" + +msgid "Toggle theme (current theme: light)" +msgstr "Drastu změnić (aktualna drasta: swětła)" + +msgid "Toggle theme (current theme: dark)" +msgstr "Drastu změnić (aktualna drasta: ćmowa)" + +msgid "Delete" +msgstr "Zhašeć" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" +"Hdyž so %(object_name)s '%(escaped_object)s' zhašeja, so tež přisłušne " +"objekty zhašeja, ale waše konto nima prawo slědowace typy objektow zhašeć:" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" +"Zo by so %(object_name)s '%(escaped_object)s' zhašało, dyrbja so slědowace " +"přisłušne objekty zhašeć:" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" +"Chceće woprawdźe %(object_name)s \"%(escaped_object)s\" zhašeć? Wšě " +"slědowace přisłušne zapiski so zhašeja:" + +msgid "Objects" +msgstr "Objekty" + +msgid "Yes, I’m sure" +msgstr "Haj, sym sej wěsty" + +msgid "No, take me back" +msgstr "Ně, prošu wróćo" + +msgid "Delete multiple objects" +msgstr "Wjacore objekty zhašeć" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" +"Hdyž so wubrany %(objects_name)s zhaša, so přisłušne objekty zhašeja, ale " +"waše konto nima prawo slědowace typy objektow zhašeć: " + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" +"Hdyž so wubrany %(objects_name)s zhaša, so slědowace škitane přisłušne " +"objekty zhašeja:" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" +"Chceće woprawdźe wubrane %(objects_name)s zhašeć? Wšě slědowace objekty a " +"jich přisłušne zapiski so zhašeja:" + +msgid "Delete?" +msgstr "Zhašeć?" + +#, python-format +msgid " By %(filter_title)s " +msgstr "Po %(filter_title)s " + +msgid "Summary" +msgstr "Zjeće" + +msgid "Recent actions" +msgstr "Najnowše akcije" + +msgid "My actions" +msgstr "Moje akcije" + +msgid "None available" +msgstr "Žadyn k dispoziciji" + +msgid "Added:" +msgstr "Přidaty:" + +msgid "Changed:" +msgstr "Změnjeny:" + +msgid "Deleted:" +msgstr "Zhašany:" + +msgid "Unknown content" +msgstr "Njeznaty wobsah" + +msgid "" +"Something’s wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" +"Něšto je so z instalaciju datoweje banki nimokuliło. Zawěsćće, zo wotpowědne " +"tabele datoweje banki su so wutworili, a, zo datowa banka da so wot " +"wotpowědneho wužiwarja čitać." + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" +"Sće jako %(username)s awtentifikowany, ale nimaće přistup na tutu stronu. " +"Chceće so pola druheho konta přizjewić?" + +msgid "Forgotten your password or username?" +msgstr "Sće swoje hesło abo wužiwarske mjeno zabył?" + +msgid "Toggle navigation" +msgstr "Nawigaciju přepinać" + +msgid "Sidebar" +msgstr "Bóčnica" + +msgid "Start typing to filter…" +msgstr "Pisajće, zo byšće filtrował …" + +msgid "Filter navigation items" +msgstr "Nawigaciske zapiski fitrować" + +msgid "Date/time" +msgstr "Datum/čas" + +msgid "User" +msgstr "Wužiwar" + +msgid "Action" +msgstr "Akcija" + +msgid "entry" +msgid_plural "entries" +msgstr[0] "zapisk" +msgstr[1] "zapiskaj" +msgstr[2] "zapiski" +msgstr[3] "zapiskow" + +msgid "" +"This object doesn’t have a change history. It probably wasn’t added via this " +"admin site." +msgstr "" +"Tutón objekt nima změnowu historiju. Njeje so najskerje přez tute " +"administratorowe sydło přidał." + +msgid "Show all" +msgstr "Wšě pokazać" + +msgid "Save" +msgstr "Składować" + +msgid "Popup closing…" +msgstr "Wuskakowace wokno so začinja…" + +msgid "Search" +msgstr "Pytać" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "%(counter)s wuslědk" +msgstr[1] "%(counter)s wuslědkaj" +msgstr[2] "%(counter)s wuslědki" +msgstr[3] "%(counter)s wuslědkow" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "%(full_result_count)s dohromady" + +msgid "Save as new" +msgstr "Jako nowy składować" + +msgid "Save and add another" +msgstr "Skłaodwac a druhi přidać" + +msgid "Save and continue editing" +msgstr "Składować a dale wobdźěłować" + +msgid "Save and view" +msgstr "Składować a pokazać" + +msgid "Close" +msgstr "Začinić" + +#, python-format +msgid "Change selected %(model)s" +msgstr "Wubrane %(model)s změnić" + +#, python-format +msgid "Add another %(model)s" +msgstr "Druhi %(model)s přidać" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "Wubrane %(model)s zhašeć" + +#, python-format +msgid "View selected %(model)s" +msgstr "Wubrany %(model)s pokazać" + +msgid "Thanks for spending some quality time with the web site today." +msgstr "" +"Wulki dźak, zo sće sej čas brał, zo byšće kwalitu websydła dźensa " +"přepruwował." + +msgid "Log in again" +msgstr "Znowa přizjewić" + +msgid "Password change" +msgstr "Hesło změnić" + +msgid "Your password was changed." +msgstr "Waše hesło je so změniło." + +msgid "" +"Please enter your old password, for security’s sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" +"Prošu zapodajće swoje stare hesło k swojemu škitej a potom swoje nowe hesło " +"dwójce, zo bychmy móhli přepruwować, hač sće jo korektnje zapodał." + +msgid "Change my password" +msgstr "Moje hesło změnić" + +msgid "Password reset" +msgstr "Hesło wróćo stajić" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "Waše hesło je so nastajiło. Móžeće pokročować a so nětko přizjewić." + +msgid "Password reset confirmation" +msgstr "Wobkrućenje wróćostajenja hesła" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" +"Prošu zapodajće swoje hesło dwójce, zo bychmy móhli přepruwować, hač sće jo " +"korektnje zapodał." + +msgid "New password:" +msgstr "Nowe hesło:" + +msgid "Confirm password:" +msgstr "Hesło wobkrućić:" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"Wotkaz za wróćostajenje hesła bě njepłaćiwy, snano dokelž je so hižo wužił. " +"Prošu prošće wo nowe wróćostajenje hesła." + +msgid "" +"We’ve emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" +"Smy wam e-mejlku z instrukcijemi wo nastajenju wašeho hesła pósłali, jeli " +"konto ze zapodatej e-mejlowej adresu eksistuje. Wy dyrbjał ju bórze dóstać." + +msgid "" +"If you don’t receive an email, please make sure you’ve entered the address " +"you registered with, and check your spam folder." +msgstr "" +"Jeli e-mejlku njedóstawaće, přepruwujće prošu adresu, z kotrejž sće so " +"zregistrował a hladajće do swojeho spamoweho rjadowaka." + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" +"Dóstawaće tutu e-mejlku, dokelž sće wo wróćostajenje hesła za swoje " +"wužiwarske konto na at %(site_name)s prosył." + +msgid "Please go to the following page and choose a new password:" +msgstr "Prošu dźiće k slědowacej stronje a wubjerće nowe hesło:" + +msgid "Your username, in case you’ve forgotten:" +msgstr "Waše wužiwarske mjeno, jeli sće jo zabył:" + +msgid "Thanks for using our site!" +msgstr "Wulki dźak za wužiwanje našeho sydła!" + +#, python-format +msgid "The %(site_name)s team" +msgstr "Team %(site_name)s" + +msgid "" +"Forgotten your password? Enter your email address below, and we’ll email " +"instructions for setting a new one." +msgstr "" +"Sće swoje hesło zabył? Zapodajće deleka swoju e-mejlowu adresu a pósćelemy " +"wam instrukcije za postajenje noweho hesła přez e-mejl." + +msgid "Email address:" +msgstr "E-mejlowa adresa:" + +msgid "Reset my password" +msgstr "Moje hesło wróćo stajić" + +msgid "Select all objects on this page for an action" +msgstr "Wubjerće wšě objekty na tutej stronje za akciju" + +msgid "All dates" +msgstr "Wšě daty" + +#, python-format +msgid "Select %s" +msgstr "%s wubrać" + +#, python-format +msgid "Select %s to change" +msgstr "%s wubrać, zo by so změniło" + +#, python-format +msgid "Select %s to view" +msgstr "%s wubrać, kotryž ma so pokazać" + +msgid "Date:" +msgstr "Datum:" + +msgid "Time:" +msgstr "Čas:" + +msgid "Lookup" +msgstr "Pytanje" + +msgid "Currently:" +msgstr "Tuchylu:" + +msgid "Change:" +msgstr "Změnić:" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/hsb/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/hsb/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..536522fd9ad3ca02ace65535d127c7b8d9a92cf7 GIT binary patch literal 6693 zcmbuDTZ|k>6^6@r0`@{o5^!u16IV<&StmQav+Mgf>q~5}uVWA1Nftw1YNl&%6(83{}90Emke36K#&B0+hPj~g) zylafzn(D8s>eT5|r%qjZ{_t4pTMSnoX#>)g4>4Ay=ZA2^^|KE%wgbEg?g3YPgfTp_ zeVT_s5G+zS;Q2qwE8hjJn2>u9s7W@sk3j9FxA!O+N zYc$t_DdabR5MfX2{ANu9B>T32E5ThLery~!(lY^4`yBW=@HAKe-vsfCjG}g{VI1jy z7^HSU>3Xy zq6tfVH0B!cb>!EB-v+ONE|`bY9|zyo{5`lH`S*2x6`cPmxrg z3Gj;MHIUl<3MBpSX|7xo>v;lPi}Ep$+8qH&z63rAei8fxcv|BEKS-n$A$Q2iQ^#(Nz|vgilD@x#r2n?&2jC3yD-k4Tz$!@fEzO^U-$nk{;19ub z2%0a0qZo9WCyOBU^P0~8MDwS*ys7gyHGiSYf2sLf&382ar1=-kziGY?lAr&f^Z(NP zk7f$NNOr6Sv81szAldh*&ac&6ugjm*`Hh;JK!ji9<7Yv*FS;f)@tP>kC`;ovhIAN- zVrf4TnzOA)$@LliKruL^pJ|?-Kzas=Bhj@BiPpbSBn(9~CjhpIZn!9BD1K?|=%T(2 zB7GX^DJ1IiNu*;)G;YI4&m$c{$|2E(5Mu_?cFO3B*7oO;3`oABIC~N4AQJg{8`29% zBS^`0KtJqD3c#aC2oJVbmz@H~k#-;*N5a%$JCSI=p}CevqKnoGx-v)azqn&yK;B`3fm3S=pe=H2T$a$LEAr5x_4fX`aKRkS4= zyrbIhso&0pQ8ULD7p?uZ?fC0Q#< zk4?y;7YeVzCM-Lkyl0uB!H!s_WXFUPRUHfM20IoylI4U~D&yW@Im>jcnR38#%Ap1) zm2z+kWR{;%Ar~HXotIVUaZ#4Sq`~o}H!D3(oimn}MMv&km=|T)a?E>DyR_(R?1Pi4 z&Q6sAMgBM)xlMz-$0kJ(dep^9=>~Cw$ue3@hEc~0Wy|OI1!c)?%f~oObI~>YM&ys0 zXe1-%tD5A+h7M87nW3gNZaI;PqB@Iy*{aS3x`rBumuN_}9N!d&(I$A=%%SlW&Wyw|GZyQ_Un<6W1AcHxEL**E}C>O)B%+2Ews-7|0tkFnHdU!k2Nx@l(fX z2&jExJ=PjWLK})bnfAiiy4W>chJ{Z2(xn|DO)H3&#>6v6rz4X|U6-RHi~BXzEtpWm zL{olXFi|Xea@OD&G#;;8DWIn~UY$}vPjND*Q+VjDh$eLkbGxUwP>!QFMGw6-ar~wb z$35lkz)In%T~kv|Q0CEAk;1*dJlZ@`*hBg%lGQqehrX(0{Z8SbuSzf9DX_l=3wjEx z`W?lNL~*}#wCJaB?-R#1fYL@^=}GK5w6mn}&{w6`*c8}T(_UIrcw)-I2+IJ|u|2Ha zWyzR!mvsiTr&Nz-cUfmBdrFgG>@MsYLzeec1t*I1Q8WFD^n9!ZS#DM^;nl!t=_)Ts z=lmJVOurP)`00Ym@`3!R^l3?F3FV||ug~(a%;=VMW@~zE8_(>>Zrk-j2G_s|;Ror0 zCmi1vf%39EXJO(FcPG890FGl@5%>dYk2eJR6L-wy>Ptw6b`<48~tBOr&>quw%Djt@D5qnXV3_$c4YGaMpub`06kPIe1F zcP^>gimEYGZP~ngpnU?IYab5lVG))!maUPM<*SyhY2aWq=*OxhcQB};BAp5zE3$5x zt+!MS2dK70r7dFhNZ{2zze9`Yk!fqeJKJh1I1Ti?YI`=5!2t|!#tNxi)tWb*iokJI zm$^wXnzKq)#bWu^Wr@HnJB{W=HbuURS&?4zqQvSOgf%MH z`Q|0z-;r%yZ7#&!N_1e35Blu5ZB<(rpk|oQVf$-94l3)BI1F)wC+6aIt$E|F(uvPH ztyJI#o^mW|nXI76c{e)l;`~8f$yY>BWs^7`McH`S#Cg}YDs<|_J=a|DN-QVgzC8Ts z+*mBJ{EbBizLmCMZtJq8{j1nYuVQ%S&4 zh{plnRWhlHDiB>C5qVV=a}<9kD-<#mNCic)fmRo%?ok0Y_#C*LW3C2yN9cnSJ>3bXA~gm|MJc)pD!+*7?`< ztiE;r3a?e2Udq&t zvb&gDA=enJ^+r&?vFKrXAB2Z-EX9NlF!!)NVMP<{^TM@!QK5I4`0_wuS+zSade)>a zH|qgv++~2^ZTfbh6^53d2YgSrqx&>ZdWasurka-|`ZF1Mt%_w^k9TVxpDeU5R1i~= zx2_AUyK}YX0=`!e0BDPUJZ!5@gXk(-5a6FWh2%WG2O8MLsG%b&epTXKG$(@A{EbDd zYzY1uMGuxjzcr5$iw2~*;N$zCBO^#;vI+r;$w?pmj~w@7z}^I8}Oci|2-mCAeX$b z<4m}v?MzzkiQJ@ZUUvWgr)u{hVX)j}Y6$Wip z(Z<8Dn$Wrt1vmvWLmbdHj{l+RGtqWu&{k*Ae>k{>Hr?<, 2016,2020-2023 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-09-18 15:04-0300\n" +"PO-Revision-Date: 2023-12-04 07:59+0000\n" +"Last-Translator: Michael Wolf , 2016,2020-2023\n" +"Language-Team: Upper Sorbian (http://app.transifex.com/django/django/" +"language/hsb/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hsb\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || " +"n%100==4 ? 2 : 3);\n" + +#, javascript-format +msgid "Available %s" +msgstr "%s k dispoziciji" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" +"To je lisćina k dispoziciji stejacych %s. Móžeće někotre z nich w slědowacym " +"kašćiku wubrać a potom na šipk „Wubrać“ mjez kašćikomaj kliknyć." + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "" +"Zapisajće do tutoho kašćika, zo byšće někotre z lisćiny k dispoziciji " +"stejacych %s wufiltrował." + +msgid "Filter" +msgstr "Filtrować" + +msgid "Choose all" +msgstr "Wšě wubrać" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "Klikńće, zo byšće wšě %s naraz wubrał." + +msgid "Choose" +msgstr "Wubrać" + +msgid "Remove" +msgstr "Wotstronić" + +#, javascript-format +msgid "Chosen %s" +msgstr "Wubrane %s" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" +"To je lisćina wubranych %s. Móžeće někotre z nich wotstronić, hdyž je w " +"slědowacym kašćiku wuběraće a potom na šipk „Wotstronić“ mjez kašćikomaj " +"kliknjeće." + +#, javascript-format +msgid "Type into this box to filter down the list of selected %s." +msgstr "" +"Zapisajće do tutoho kašćika, zo byšće někotre z lisćiny wubranych %s " +"wufiltrował." + +msgid "Remove all" +msgstr "Wšě wotstronić" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "Klikńće, zo byšće wšě wubrane %s naraz wotstronił." + +#, javascript-format +msgid "%s selected option not visible" +msgid_plural "%s selected options not visible" +msgstr[0] "%swubrane nastajenje njewidźomne" +msgstr[1] "%swubranej nastajeni njewidźomnej" +msgstr[2] "%s wubrane nastajenja njewidźomne" +msgstr[3] "%swubranych nastajenjow njewidźomne" + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "%(sel)s z %(cnt)s wubrany" +msgstr[1] "%(sel)s z %(cnt)s wubranej" +msgstr[2] "%(sel)s z %(cnt)s wubrane" +msgstr[3] "%(sel)s z %(cnt)s wubranych" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" +"Maće njeskładowane změny za jednotliwe wobdźěłujomne pola. Jeli akciju " +"wuwjedźeće, so waše njeskładowane změny zhubja." + +msgid "" +"You have selected an action, but you haven’t saved your changes to " +"individual fields yet. Please click OK to save. You’ll need to re-run the " +"action." +msgstr "" +"Sće akciju wubrał, ale njejsće hišće swoje změny na jednoliwych polach " +"składował. Prošu klikńće na „W porjadku, zo byšće składował. Dyrbiće akciju " +"znowa wuwjesć." + +msgid "" +"You have selected an action, and you haven’t made any changes on individual " +"fields. You’re probably looking for the Go button rather than the Save " +"button." +msgstr "" +"Sće akciju wubrał, a njejsće žane změny na jednotliwych polach přewjedł. " +"Pytajće najskerje za tłóčatkom „Pósłać“ město tłóčatka „Składować“." + +msgid "Now" +msgstr "Nětko" + +msgid "Midnight" +msgstr "Połnóc" + +msgid "6 a.m." +msgstr "6:00 hodź. dopołdnja" + +msgid "Noon" +msgstr "připołdnjo" + +msgid "6 p.m." +msgstr "6 hodź. popołdnju" + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "Kedźbu: Waš čas je wo %s hodźinu před serwerowym časom." +msgstr[1] "Kedźbu: Waš čas je wo %s hodźin před serwerowym časom." +msgstr[2] "Kedźbu: Waš čas je wo %s hodźiny před serwerowym časom." +msgstr[3] "Kedźbu: Waš čas je wo %s hodźin před serwerowym časom." + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "Kedźbu: Waš čas je wo %s hodźinu za serwerowym časom." +msgstr[1] "Kedźbu: Waš čas je wo %s hodźinje za serwerowym časom." +msgstr[2] "Kedźbu: Waš čas je wo %s hodźiny za serwerowym časom." +msgstr[3] "Kedźbu: Waš čas je wo %s hodźin za serwerowym časom." + +msgid "Choose a Time" +msgstr "Wubjerće čas" + +msgid "Choose a time" +msgstr "Wubjerće čas" + +msgid "Cancel" +msgstr "Přetorhnyć" + +msgid "Today" +msgstr "Dźensa" + +msgid "Choose a Date" +msgstr "Wubjerće datum" + +msgid "Yesterday" +msgstr "Wčera" + +msgid "Tomorrow" +msgstr "Jutře" + +msgid "January" +msgstr "Januar" + +msgid "February" +msgstr "Februar" + +msgid "March" +msgstr "Měrc" + +msgid "April" +msgstr "Apryl" + +msgid "May" +msgstr "Meja" + +msgid "June" +msgstr "Junij" + +msgid "July" +msgstr "Julij" + +msgid "August" +msgstr "Awgust" + +msgid "September" +msgstr "September" + +msgid "October" +msgstr "Oktober" + +msgid "November" +msgstr "Nowember" + +msgid "December" +msgstr "December" + +msgctxt "abbrev. month January" +msgid "Jan" +msgstr "Jan." + +msgctxt "abbrev. month February" +msgid "Feb" +msgstr "Feb." + +msgctxt "abbrev. month March" +msgid "Mar" +msgstr "Měr." + +msgctxt "abbrev. month April" +msgid "Apr" +msgstr "Apr." + +msgctxt "abbrev. month May" +msgid "May" +msgstr "Meja" + +msgctxt "abbrev. month June" +msgid "Jun" +msgstr "Jun." + +msgctxt "abbrev. month July" +msgid "Jul" +msgstr "Jul." + +msgctxt "abbrev. month August" +msgid "Aug" +msgstr "Awg." + +msgctxt "abbrev. month September" +msgid "Sep" +msgstr "Sep." + +msgctxt "abbrev. month October" +msgid "Oct" +msgstr "Okt." + +msgctxt "abbrev. month November" +msgid "Nov" +msgstr "Now." + +msgctxt "abbrev. month December" +msgid "Dec" +msgstr "Dec." + +msgid "Sunday" +msgstr "Njedźela" + +msgid "Monday" +msgstr "Póndźela" + +msgid "Tuesday" +msgstr "Wutora" + +msgid "Wednesday" +msgstr "Srjeda" + +msgid "Thursday" +msgstr "Štwórtk" + +msgid "Friday" +msgstr "Pjatk" + +msgid "Saturday" +msgstr "Sobota" + +msgctxt "abbrev. day Sunday" +msgid "Sun" +msgstr "Nje" + +msgctxt "abbrev. day Monday" +msgid "Mon" +msgstr "Pón" + +msgctxt "abbrev. day Tuesday" +msgid "Tue" +msgstr "Wut" + +msgctxt "abbrev. day Wednesday" +msgid "Wed" +msgstr "Srj" + +msgctxt "abbrev. day Thursday" +msgid "Thur" +msgstr "Štw" + +msgctxt "abbrev. day Friday" +msgid "Fri" +msgstr "Pja" + +msgctxt "abbrev. day Saturday" +msgid "Sat" +msgstr "Sob" + +msgctxt "one letter Sunday" +msgid "S" +msgstr "Nj" + +msgctxt "one letter Monday" +msgid "M" +msgstr "Pó" + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "Wu" + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "Sr" + +msgctxt "one letter Thursday" +msgid "T" +msgstr "Št" + +msgctxt "one letter Friday" +msgid "F" +msgstr "Pj" + +msgctxt "one letter Saturday" +msgid "S" +msgstr "So" + +msgid "Show" +msgstr "Pokazać" + +msgid "Hide" +msgstr "Schować" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/hu/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/hu/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..a9d8e835ba02e8ae06e6fb91fe740448017c9dea GIT binary patch literal 18629 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 YzKdFB^&?aINb-x}wLLE%%cso$2ku9FA^-pY literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/hu/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/hu/LC_MESSAGES/django.po new file mode 100644 index 0000000000..ef84090a90 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/hu/LC_MESSAGES/django.po @@ -0,0 +1,786 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Ádám Krizsány , 2015 +# Akos Zsolt Hochrein , 2018 +# András Veres-Szentkirályi, 2016,2018-2020,2023 +# Balázs R, 2023 +# Istvan Farkas , 2019 +# Jannis Leidel , 2011 +# János R, 2017 +# János R, 2014 +# Kristóf Gruber <>, 2012 +# slink , 2011 +# Szilveszter Farkas , 2011 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-09-18 11:41-0300\n" +"PO-Revision-Date: 2023-12-04 07:05+0000\n" +"Last-Translator: András Veres-Szentkirályi, 2016,2018-2020,2023\n" +"Language-Team: Hungarian (http://app.transifex.com/django/django/language/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "Kiválasztott %(verbose_name_plural)s törlése" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "%(count)d %(items)s sikeresen törölve lett." + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "%(name)s törlése nem sikerült" + +msgid "Are you sure?" +msgstr "Biztos benne?" + +msgid "Administration" +msgstr "Adminisztráció" + +msgid "All" +msgstr "Mind" + +msgid "Yes" +msgstr "Igen" + +msgid "No" +msgstr "Nem" + +msgid "Unknown" +msgstr "Ismeretlen" + +msgid "Any date" +msgstr "Bármely dátum" + +msgid "Today" +msgstr "Ma" + +msgid "Past 7 days" +msgstr "Utolsó 7 nap" + +msgid "This month" +msgstr "Ez a hónap" + +msgid "This year" +msgstr "Ez az év" + +msgid "No date" +msgstr "Nincs dátuma" + +msgid "Has date" +msgstr "Van dátuma" + +msgid "Empty" +msgstr "Üres" + +msgid "Not empty" +msgstr "Nem üres" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" +"Adja meg egy adminisztrációra jogosult %(username)s és jelszavát. Vegye " +"figyelembe, hogy mindkét mező megkülönböztetheti a kis- és nagybetűket." + +msgid "Action:" +msgstr "Művelet:" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "Újabb %(verbose_name)s hozzáadása" + +msgid "Remove" +msgstr "Törlés" + +msgid "Addition" +msgstr "Hozzáadás" + +msgid "Change" +msgstr "Módosítás" + +msgid "Deletion" +msgstr "Törlés" + +msgid "action time" +msgstr "művelet időpontja" + +msgid "user" +msgstr "felhasználó" + +msgid "content type" +msgstr "tartalom típusa" + +msgid "object id" +msgstr "objektum id" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/library/functions.html#repr) +msgid "object repr" +msgstr "objektum repr" + +msgid "action flag" +msgstr "művelet jelölés" + +msgid "change message" +msgstr "üzenet módosítása" + +msgid "log entry" +msgstr "naplóbejegyzés" + +msgid "log entries" +msgstr "naplóbejegyzések" + +#, python-format +msgid "Added “%(object)s”." +msgstr "\"%(object)s\" hozzáadva." + +#, python-format +msgid "Changed “%(object)s” — %(changes)s" +msgstr "\"%(object)s\" módosítva — %(changes)s" + +#, python-format +msgid "Deleted “%(object)s.”" +msgstr "\"%(object)s\" törölve." + +msgid "LogEntry Object" +msgstr "Naplóbejegyzés objektum" + +#, python-brace-format +msgid "Added {name} “{object}”." +msgstr "\"{object}\" {name} hozzáadva." + +msgid "Added." +msgstr "Hozzáadva." + +msgid "and" +msgstr "és" + +#, python-brace-format +msgid "Changed {fields} for {name} “{object}”." +msgstr "\"{object}\" {name} {fields} módosítva." + +#, python-brace-format +msgid "Changed {fields}." +msgstr "{fields} módosítva." + +#, python-brace-format +msgid "Deleted {name} “{object}”." +msgstr "\"{object}\" {name} törölve." + +msgid "No fields changed." +msgstr "Egy mező sem változott." + +msgid "None" +msgstr "Egyik sem" + +msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." +msgstr "" +"Több elem kiválasztásához tartsa nyomva a \"Control\" gombot, vagy Mac " +"gépeken a \"Command\" gombot." + +msgid "Select this object for an action - {}" +msgstr "Objektum kijelölése egy művelethez - {}" + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully." +msgstr "A(z) \"{obj}\" {name} sikeresen hozzáadva." + +msgid "You may edit it again below." +msgstr "Alább ismét szerkesztheti." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was added successfully. You may add another {name} below." +msgstr "" +"A(z) \"{obj}\" {name} sikeresen hozzáadva. Alább hozzadhat egy új {name} " +"rekordot." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may edit it again below." +msgstr "A(z) \"{obj}\" {name} sikeresen módosítva. Alább újra szerkesztheti." + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully. You may edit it again below." +msgstr "A(z) \"{obj}\" {name} sikeresen hozzáadva. Alább újra szerkesztheti." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may add another {name} " +"below." +msgstr "" +"A(z) \"{obj}\" {name} sikeresen módosítva. Alább hozzáadhat egy új {name} " +"rekordot." + +#, python-brace-format +msgid "The {name} “{obj}” was changed successfully." +msgstr "A(z) \"{obj}\" {name} sikeresen módosítva." + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" +"A műveletek végrehajtásához ki kell választani legalább egy elemet. Semmi " +"sem lett módosítva." + +msgid "No action selected." +msgstr "Nem választott ki műveletet." + +#, python-format +msgid "The %(name)s “%(obj)s” was deleted successfully." +msgstr "A(z) \"%(obj)s\" %(name)s törölve lett." + +#, python-format +msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" +msgstr "" +"A(z) \"%(key)s\" azonosítójú %(name)s nem létezik. Esetleg törölve lett?" + +#, python-format +msgid "Add %s" +msgstr "Új %s" + +#, python-format +msgid "Change %s" +msgstr "%s módosítása" + +#, python-format +msgid "View %s" +msgstr "%s megtekintése" + +msgid "Database error" +msgstr "Adatbázishiba" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "%(count)s %(name)s sikeresen módosítva lett." +msgstr[1] "%(count)s %(name)s sikeresen módosítva lett." + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "%(total_count)s kiválasztva" +msgstr[1] "%(total_count)s kiválasztva" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "0 kiválasztva ennyiből: %(cnt)s" + +#, python-format +msgid "Change history: %s" +msgstr "Változások története: %s" + +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "%(class_name)s %(instance)s" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" +"%(instance)s %(class_name)s törlése az alábbi kapcsolódó védett objektumok " +"törlését is magával vonná: %(related_objects)s" + +msgid "Django site admin" +msgstr "Django honlapadminisztráció" + +msgid "Django administration" +msgstr "Django adminisztráció" + +msgid "Site administration" +msgstr "Honlap karbantartása" + +msgid "Log in" +msgstr "Bejelentkezés" + +#, python-format +msgid "%(app)s administration" +msgstr "%(app)s adminisztráció" + +msgid "Page not found" +msgstr "Nincs ilyen oldal" + +msgid "We’re sorry, but the requested page could not be found." +msgstr "Sajnáljuk, de a keresett oldal nem található." + +msgid "Home" +msgstr "Kezdőlap" + +msgid "Server error" +msgstr "Szerverhiba" + +msgid "Server error (500)" +msgstr "Szerverhiba (500)" + +msgid "Server Error (500)" +msgstr "Szerverhiba (500)" + +msgid "" +"There’s been an error. It’s been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" +"Hiba történt. Az oldal kezelőjét e-mailben értesítettük, a hiba rövidesen " +"javítva lesz. Köszönjük a türelmet." + +msgid "Run the selected action" +msgstr "Kiválasztott művelet futtatása" + +msgid "Go" +msgstr "Mehet" + +msgid "Click here to select the objects across all pages" +msgstr "Kattintson ide több oldalnyi objektum kiválasztásához" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "Az összes %(module_name)s kiválasztása, összesen %(total_count)s db" + +msgid "Clear selection" +msgstr "Kiválasztás törlése" + +msgid "Breadcrumbs" +msgstr "Breadcrumb navigáció" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "%(name)s alkalmazásban elérhető modellek." + +msgid "Add" +msgstr "Új" + +msgid "View" +msgstr "Megtekintés" + +msgid "You don’t have permission to view or edit anything." +msgstr "Jelenleg nincs jogosultsága bármit megtekinteni vagy szerkeszteni." + +msgid "" +"First, enter a username and password. Then, you’ll be able to edit more user " +"options." +msgstr "" +"Először adjon meg egy felhasználónevet és jelszót. A mentés után a többi " +"felhasználói adat is szerkeszthető lesz." + +msgid "Enter a username and password." +msgstr "Írjon be egy felhasználónevet és jelszót." + +msgid "Change password" +msgstr "Jelszó megváltoztatása" + +msgid "Please correct the error below." +msgid_plural "Please correct the errors below." +msgstr[0] "Kérem javítsa a lenti hibát." +msgstr[1] "Kérem javítsa a lenti hibákat." + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "" +"Adjon meg egy új jelszót %(username)s nevű felhasználónak." + +msgid "Skip to main content" +msgstr "Ugrás az oldal fő részéhez" + +msgid "Welcome," +msgstr "Üdvözlöm," + +msgid "View site" +msgstr "Honlap megtekintése" + +msgid "Documentation" +msgstr "Dokumentáció" + +msgid "Log out" +msgstr "Kijelentkezés" + +#, python-format +msgid "Add %(name)s" +msgstr "Új %(name)s" + +msgid "History" +msgstr "Történet" + +msgid "View on site" +msgstr "Megtekintés a honlapon" + +msgid "Filter" +msgstr "Szűrő" + +msgid "Hide counts" +msgstr "Számok elrejtése" + +msgid "Show counts" +msgstr "Számok megjelenítése" + +msgid "Clear all filters" +msgstr "Összes szűrő törlése" + +msgid "Remove from sorting" +msgstr "Eltávolítás a rendezésből" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "Prioritás rendezésnél: %(priority_number)s" + +msgid "Toggle sorting" +msgstr "Rendezés megfordítása" + +msgid "Toggle theme (current theme: auto)" +msgstr "Téma váltás (jelenleg: auto)" + +msgid "Toggle theme (current theme: light)" +msgstr "Téma váltás (jelenleg: világos)" + +msgid "Toggle theme (current theme: dark)" +msgstr "Téma váltás (jelenleg: sötét)" + +msgid "Delete" +msgstr "Törlés" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" +"\"%(escaped_object)s\" %(object_name)s törlése a kapcsolódó objektumok " +"törlését is eredményezi, de a hozzáférése nem engedi a következő típusú " +"objektumok törlését:" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" +"\"%(escaped_object)s\" %(object_name)s törlése az alábbi kapcsolódó " +"objektumok törlését is maga után vonja:" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" +"Biztos hogy törli a következőt: \"%(escaped_object)s\" (típus: " +"%(object_name)s)? A összes további kapcsolódó elem is törlődik:" + +msgid "Objects" +msgstr "Objektumok" + +msgid "Yes, I’m sure" +msgstr "Igen, biztos vagyok benne" + +msgid "No, take me back" +msgstr "Nem, forduljunk vissza" + +msgid "Delete multiple objects" +msgstr "Több elem törlése" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" +"A kiválasztott %(objects_name)s törlése kapcsolódó objektumok törlését vonja " +"maga után, de az alábbi objektumtípusok törléséhez nincs megfelelő " +"jogosultsága:" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" +"A kiválasztott %(objects_name)s törlése az alábbi védett kapcsolódó " +"objektumok törlését is maga után vonja:" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" +"Biztosan törölni akarja a kiválasztott %(objects_name)s objektumokat? Minden " +"alábbi objektum, és a hozzájuk kapcsolódóak is törlésre kerülnek:" + +msgid "Delete?" +msgstr "Törli?" + +#, python-format +msgid " By %(filter_title)s " +msgstr " %(filter_title)s szerint " + +msgid "Summary" +msgstr "Összegzés" + +msgid "Recent actions" +msgstr "Legutóbbi műveletek" + +msgid "My actions" +msgstr "Az én műveleteim" + +msgid "None available" +msgstr "Nincs elérhető" + +msgid "Added:" +msgstr "Hozzáadva:" + +msgid "Changed:" +msgstr "Szerkesztve:" + +msgid "Deleted:" +msgstr "Törölve:" + +msgid "Unknown content" +msgstr "Ismeretlen tartalom" + +msgid "" +"Something’s wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" +"Valami probléma van az adatbázissal. Kérjük győződjön meg róla, hogy a " +"megfelelő táblák létre lettek hozva, és hogy a megfelelő felhasználónak van " +"rájuk olvasási joga." + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" +"Jelenleg be vagy lépve mint %(username)s, de nincs jogod elérni ezt az " +"oldalt. Szeretnél belépni egy másik fiókkal?" + +msgid "Forgotten your password or username?" +msgstr "Elfelejtette jelszavát vagy felhasználónevét?" + +msgid "Toggle navigation" +msgstr "Navigáció megjelenítése/elrejtése" + +msgid "Sidebar" +msgstr "Oldalsáv" + +msgid "Start typing to filter…" +msgstr "Kezdjen el gépelni a szűréshez..." + +msgid "Filter navigation items" +msgstr "Navigációs elemek szűrése" + +msgid "Date/time" +msgstr "Dátum/idő" + +msgid "User" +msgstr "Felhasználó" + +msgid "Action" +msgstr "Művelet" + +msgid "entry" +msgid_plural "entries" +msgstr[0] "bejegyzés" +msgstr[1] "bejegyzés" + +msgid "" +"This object doesn’t have a change history. It probably wasn’t added via this " +"admin site." +msgstr "" +"Ennek az objektumnak nincs változás naplója. Valószínűleg nem az admin " +"felületen keresztül lett rögzítve." + +msgid "Show all" +msgstr "Mutassa mindet" + +msgid "Save" +msgstr "Mentés" + +msgid "Popup closing…" +msgstr "A popup bezáródik…" + +msgid "Search" +msgstr "Keresés" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "%(counter)s találat" +msgstr[1] "%(counter)s találat" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "%(full_result_count)s összesen" + +msgid "Save as new" +msgstr "Mentés újként" + +msgid "Save and add another" +msgstr "Mentés és másik hozzáadása" + +msgid "Save and continue editing" +msgstr "Mentés és a szerkesztés folytatása" + +msgid "Save and view" +msgstr "Mentés és megtekintés" + +msgid "Close" +msgstr "Bezárás" + +#, python-format +msgid "Change selected %(model)s" +msgstr "Kiválasztott %(model)s szerkesztése" + +#, python-format +msgid "Add another %(model)s" +msgstr "Újabb %(model)s hozzáadása" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "Kiválasztott %(model)s törlése" + +#, python-format +msgid "View selected %(model)s" +msgstr "Kiválasztott %(model)s megtekintése" + +msgid "Thanks for spending some quality time with the web site today." +msgstr "Köszönjük, hogy egy kis minőségi időt eltöltött ma a honlapunkon." + +msgid "Log in again" +msgstr "Jelentkezzen be újra" + +msgid "Password change" +msgstr "Jelszó megváltoztatása" + +msgid "Your password was changed." +msgstr "Megváltozott a jelszava." + +msgid "" +"Please enter your old password, for security’s sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" +"Kérjük a biztoság kedvéért adja meg a jelenlegi jelszavát, majd az újat, " +"kétszer, hogy biztosak lehessünk abban, hogy megfelelően gépelte be." + +msgid "Change my password" +msgstr "Jelszavam megváltoztatása" + +msgid "Password reset" +msgstr "Jelszó beállítása" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "Jelszava beállításra került. Most már bejelentkezhet." + +msgid "Password reset confirmation" +msgstr "Jelszó beállítás megerősítése" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" +"Írja be az új jelszavát kétszer, hogy megbizonyosodhassunk annak " +"helyességéről." + +msgid "New password:" +msgstr "Új jelszó:" + +msgid "Confirm password:" +msgstr "Jelszó megerősítése:" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"A jelszóbeállító link érvénytelen. Ennek egyik oka az lehet, hogy már " +"felhasználták. Kérem indítson új jelszóbeállítást." + +msgid "" +"We’ve emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" +"Amennyiben a megadott e-mail címhez tartozik fiók, elküldtük e-mailben a " +"leírást, hogy hogyan tudja megváltoztatni a jelszavát. Hamarosan meg kell " +"érkeznie." + +msgid "" +"If you don’t receive an email, please make sure you’ve entered the address " +"you registered with, and check your spam folder." +msgstr "" +"Ha nem kapja meg a levelet, kérjük ellenőrizze, hogy a megfelelő e-mail " +"címet adta-e meg, illetve nézze meg a levélszemét mappában is." + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" +"Azért kapja ezt az e-mailt, mert jelszavának visszaállítását kérte ezen a " +"weboldalon: %(site_name)s." + +msgid "Please go to the following page and choose a new password:" +msgstr "Kérjük látogassa meg a következő oldalt, és válasszon egy új jelszót:" + +msgid "Your username, in case you’ve forgotten:" +msgstr "A felhasználóneve, amennyiben nem emlékezne rá:" + +msgid "Thanks for using our site!" +msgstr "Köszönjük, hogy használta honlapunkat!" + +#, python-format +msgid "The %(site_name)s team" +msgstr "%(site_name)s csapat" + +msgid "" +"Forgotten your password? Enter your email address below, and we’ll email " +"instructions for setting a new one." +msgstr "" +"Elfelejtette jelszavát? Adja meg az e-mail-címet, amellyel regisztrált " +"oldalunkon, és e-mailben elküldjük a leírását, hogy hogyan tud újat " +"beállítani." + +msgid "Email address:" +msgstr "E-mail cím:" + +msgid "Reset my password" +msgstr "Jelszavam törlése" + +msgid "Select all objects on this page for an action" +msgstr "Minden objektum kijelölése egy művelethez" + +msgid "All dates" +msgstr "Minden dátum" + +#, python-format +msgid "Select %s" +msgstr "%s kiválasztása" + +#, python-format +msgid "Select %s to change" +msgstr "Válasszon ki egyet a módosításhoz (%s)" + +#, python-format +msgid "Select %s to view" +msgstr "Válasszon ki egyet a megtekintéshez (%s)" + +msgid "Date:" +msgstr "Dátum:" + +msgid "Time:" +msgstr "Idő:" + +msgid "Lookup" +msgstr "Keresés" + +msgid "Currently:" +msgstr "Jelenleg:" + +msgid "Change:" +msgstr "Módosítás:" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/hu/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/hu/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..e9bed069256cf32f7ce20a95577b3209d737b76e GIT binary patch literal 6034 zcmcJTUu+yl9mgl+3W-Yt6jDkFbP`A#Q{UQgnm@h}(!{aj{5i+OM@p3kGR$%G4PFE*;7t&JsZi8!JA|Y0 z9{{P}PLSl@1yZ}mLHw~XylA`e#e;zyvz5tfM zw?K4Zh5Iw^0Dp=6!{E=sJ75c(gVG-Y-!S|u_%QPSGWl&#{uhvc6#P6mVe;QJ`6fv1 zp93EOUo*S|QopxB8vk9xtvj-D9szfvd>o{HGa$9EfnNl#f}aInF}wv*`!`JfFDCy_ z@N+2N@~Lc|hrp{_7%PGYQGWB&jGYGm4nhPr{29iubaogd{Y`?Tr}H4yUjj*=Hc0I} zkk)+#r1@Vm{4Iz-b{8*9#r_12fbW1s@csw0@h1#Vf;8?q!+DVGeA(oyh7H3IB>B1^ zwR_H#UpIUiB!77obirSNKDZr9qkfAZ)jw<&nN^+%BO z@g_+A_cnM9tV79g3HC0Ct5BZ5eD4Gj?S&_i^5-k& zgM4hC`KEn-9_gz{9EqL@B#M9gk!ZicEa|hykZer$C!5nlHr$K!C8RGSk&b4O&LWZB z$d|u{G=o$|q6e(J&u)CsUN~tAC{9sq97dW#I)KFX z?u(>19C5Y4_wK6&8lNbTH7)IX*R8kXs-;~O@IYzab|bgyNw#-Gb<|gXhzrZN*dg8` zoM?rv$4k=6s z`5z_9RQ7=q#bHERtf=hmD_Q`n#4;=Hv?O!@$JV4!QUkshQm5p$TFjQXse)PMBlXQg z1N_rsPfI(<1b9Y9@PCqx{MQlKJ8LaPz(tMX!$@kCj%g75Hw&AOnlCt$zRFkh@Sx`zUJD#XN8Gf&cF zb=JMbLnGcVUWC3jm4#~pLa`eJz&A>Yq!GSQAK$hT>2b!#I;J zQ%#Rxaga^Axk9Av>NGUwnmMzOicG`xC_0sRaHK^SB2=-_RHQ8?s?|`oEe@mcEN&Hm zzTzx86@b3td`}nf(O;2n>H_w5Uvb6BythCf{WY2Y7U0Kyrz}H%huLAAx^r$G{ zJy@O|9tE5s0~L9+F5qLJDv#d%lO5AQ>!>gf-vZX>@EJtu_ue;2l?3H(!q%*#_$ZC7m+SjLJ>rs&?+qP6M-EjOA*IBGAhn@ zWuTibO1zFcLSq~n86O)TE8?}Ez7Al7pdO35ELNoOOME5{>LPTpm-abYw@Ra87?Uw*yf_F*QLh~@#Jvia`n>*4AR)=HM) zDNQILlnu?WKho+(@(0g_Zoq)(qfgCzG>}hz)L2NCJ?13KdI7_nqD)!V8?xT%Cd+US z$PMK~6r8AnV<~i#Bn82y(30j23>kI*ubup4rJk&O$x1i5>m_%aBeBL#qF!Ax>bS859Hv!tOp(CHw3vZ z)u?7Vkaqc=9xva+gARTI;glw!2KE@NNjJGnte%B$5K8ojG=iH}!=|y|CE3(#6Zeb( zH>J6gTV9B!*=j6Si;}yfN~9)!zpxqQk;0nNwpsE**q~j4rFB;Ek2FyDbrYk3c<_t&FgRz{EBVT=|S~L1IeO6%oGJrz zli{JArURdWT3fXULE*NY++G(GninoEk^PYew@8u*#vlc!qL32djSVu8#D#7Fw_c$G z7frf7ny}L733u)lXka?t7C|7I9DxENl9rniaX5>=nZ(ITVDTADj_qcqqUJpl;a1;l z;u4NFxyrE?__f3V6LkaGw9?3y#wXf`wB<6F$~*}3GCB(A7+{Ew41tk?9|b%wje3ki c9=#e2`=54wx{vYyj~O=4F0o1ccVwRZ7oAeP9RL6T literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/hu/LC_MESSAGES/djangojs.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/hu/LC_MESSAGES/djangojs.po new file mode 100644 index 0000000000..d21b38a1aa --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/hu/LC_MESSAGES/djangojs.po @@ -0,0 +1,329 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# András Veres-Szentkirályi, 2016,2020-2021,2023 +# Attila Nagy <>, 2012 +# Balázs R, 2023 +# Jannis Leidel , 2011 +# János R, 2011 +# Máté Őry , 2012 +# Szilveszter Farkas , 2011 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-09-18 15:04-0300\n" +"PO-Revision-Date: 2023-12-04 07:59+0000\n" +"Last-Translator: András Veres-Szentkirályi, 2016,2020-2021,2023\n" +"Language-Team: Hungarian (http://app.transifex.com/django/django/language/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, javascript-format +msgid "Available %s" +msgstr "Elérhető %s" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" +"Ez az elérhető %s listája. Úgy választhat közülük, hogy rákattint az alábbi " +"dobozban, és megnyomja a dobozok közti \"Választás\" nyilat." + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "Írjon a mezőbe az elérhető %s szűréséhez." + +msgid "Filter" +msgstr "Szűrő" + +msgid "Choose all" +msgstr "Mindet kijelölni" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "Kattintson az összes %s kiválasztásához." + +msgid "Choose" +msgstr "Választás" + +msgid "Remove" +msgstr "Eltávolítás" + +#, javascript-format +msgid "Chosen %s" +msgstr "%s kiválasztva" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" +"Ez a kiválasztott %s listája. Eltávolíthat közülük, ha rákattint, majd a két " +"doboz közti \"Eltávolítás\" nyílra kattint." + +#, javascript-format +msgid "Type into this box to filter down the list of selected %s." +msgstr "Írjon a mezőbe a kiválasztott %s szűréséhez." + +msgid "Remove all" +msgstr "Összes törlése" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "Kattintson az összes %s eltávolításához." + +#, javascript-format +msgid "%s selected option not visible" +msgid_plural "%s selected options not visible" +msgstr[0] "%s kiválasztott elem nem látható" +msgstr[1] "%s kiválasztott elem nem látható" + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "%(sel)s/%(cnt)s kijelölve" +msgstr[1] "%(sel)s/%(cnt)s kijelölve" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" +"Még el nem mentett módosításai vannak egyes szerkeszthető mezőkön. Ha most " +"futtat egy műveletet, akkor a módosítások elvesznek." + +msgid "" +"You have selected an action, but you haven’t saved your changes to " +"individual fields yet. Please click OK to save. You’ll need to re-run the " +"action." +msgstr "" +"Kiválasztott egy műveletet, de nem mentette az egyes mezőkhöz kapcsolódó " +"módosításait. Kattintson az OK gombra a mentéshez. Újra kell futtatnia az " +"műveletet." + +msgid "" +"You have selected an action, and you haven’t made any changes on individual " +"fields. You’re probably looking for the Go button rather than the Save " +"button." +msgstr "" +"Kiválasztott egy műveletet, és nem módosított egyetlen mezőt sem. " +"Feltehetően a Mehet gombot keresi a Mentés helyett." + +msgid "Now" +msgstr "Most" + +msgid "Midnight" +msgstr "Éjfél" + +msgid "6 a.m." +msgstr "Reggel 6 óra" + +msgid "Noon" +msgstr "Dél" + +msgid "6 p.m." +msgstr "Este 6 óra" + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "Megjegyzés: %s órával a szerveridő előtt jársz" +msgstr[1] "Megjegyzés: %s órával a szerveridő előtt jársz" + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "Megjegyzés: %s órával a szerveridő mögött jársz" +msgstr[1] "Megjegyzés: %s órával a szerveridő mögött jársz" + +msgid "Choose a Time" +msgstr "Válassza ki az időt" + +msgid "Choose a time" +msgstr "Válassza ki az időt" + +msgid "Cancel" +msgstr "Mégsem" + +msgid "Today" +msgstr "Ma" + +msgid "Choose a Date" +msgstr "Válassza ki a dátumot" + +msgid "Yesterday" +msgstr "Tegnap" + +msgid "Tomorrow" +msgstr "Holnap" + +msgid "January" +msgstr "január" + +msgid "February" +msgstr "február" + +msgid "March" +msgstr "március" + +msgid "April" +msgstr "április" + +msgid "May" +msgstr "május" + +msgid "June" +msgstr "június" + +msgid "July" +msgstr "július" + +msgid "August" +msgstr "augusztus" + +msgid "September" +msgstr "szeptember" + +msgid "October" +msgstr "október" + +msgid "November" +msgstr "november" + +msgid "December" +msgstr "december" + +msgctxt "abbrev. month January" +msgid "Jan" +msgstr "jan" + +msgctxt "abbrev. month February" +msgid "Feb" +msgstr "feb" + +msgctxt "abbrev. month March" +msgid "Mar" +msgstr "már" + +msgctxt "abbrev. month April" +msgid "Apr" +msgstr "ápr" + +msgctxt "abbrev. month May" +msgid "May" +msgstr "máj" + +msgctxt "abbrev. month June" +msgid "Jun" +msgstr "jún" + +msgctxt "abbrev. month July" +msgid "Jul" +msgstr "júl" + +msgctxt "abbrev. month August" +msgid "Aug" +msgstr "aug" + +msgctxt "abbrev. month September" +msgid "Sep" +msgstr "szep" + +msgctxt "abbrev. month October" +msgid "Oct" +msgstr "okt" + +msgctxt "abbrev. month November" +msgid "Nov" +msgstr "nov" + +msgctxt "abbrev. month December" +msgid "Dec" +msgstr "dec" + +msgid "Sunday" +msgstr "vasárnap" + +msgid "Monday" +msgstr "hétfő" + +msgid "Tuesday" +msgstr "kedd" + +msgid "Wednesday" +msgstr "szerda" + +msgid "Thursday" +msgstr "csütörtök" + +msgid "Friday" +msgstr "péntek" + +msgid "Saturday" +msgstr "szombat" + +msgctxt "abbrev. day Sunday" +msgid "Sun" +msgstr "vas" + +msgctxt "abbrev. day Monday" +msgid "Mon" +msgstr "hét" + +msgctxt "abbrev. day Tuesday" +msgid "Tue" +msgstr "kedd" + +msgctxt "abbrev. day Wednesday" +msgid "Wed" +msgstr "sze" + +msgctxt "abbrev. day Thursday" +msgid "Thur" +msgstr "csüt" + +msgctxt "abbrev. day Friday" +msgid "Fri" +msgstr "pén" + +msgctxt "abbrev. day Saturday" +msgid "Sat" +msgstr "szo" + +msgctxt "one letter Sunday" +msgid "S" +msgstr "V" + +msgctxt "one letter Monday" +msgid "M" +msgstr "H" + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "K" + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "S" + +msgctxt "one letter Thursday" +msgid "T" +msgstr "C" + +msgctxt "one letter Friday" +msgid "F" +msgstr "P" + +msgctxt "one letter Saturday" +msgid "S" +msgstr "S" + +msgid "Show" +msgstr "Mutat" + +msgid "Hide" +msgstr "Elrejt" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/hy/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/hy/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..1627b2d57c475ec905e2073697d53e29889ec43d GIT binary patch literal 18274 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 e#KJLI*EX_GMbzchcRK!+tmlpWOIbgDME?V-xEr, 2014 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-05-21 14:16-0300\n" +"PO-Revision-Date: 2018-11-01 20:23+0000\n" +"Last-Translator: Ruben Harutyunov \n" +"Language-Team: Armenian (http://www.transifex.com/django/django/language/" +"hy/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hy\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "Հաջողությամբ հեռացվել է %(count)d %(items)s։" + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "Հնարավոր չէ հեռացնել %(name)s" + +msgid "Are you sure?" +msgstr "Համոզված ե՞ք" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "Հեռացնել նշված %(verbose_name_plural)sը" + +msgid "Administration" +msgstr "Ադմինիստրավորում" + +msgid "All" +msgstr "Բոլորը" + +msgid "Yes" +msgstr "Այո" + +msgid "No" +msgstr "Ոչ" + +msgid "Unknown" +msgstr "Անհայտ" + +msgid "Any date" +msgstr "Ցանկացած ամսաթիվ" + +msgid "Today" +msgstr "Այսօր" + +msgid "Past 7 days" +msgstr "Անցած 7 օրերին" + +msgid "This month" +msgstr "Այս ամիս" + +msgid "This year" +msgstr "Այս տարի" + +msgid "No date" +msgstr "" + +msgid "Has date" +msgstr "" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "Մուտքագրեք անձնակազմի պրոֆիլի ճիշտ %(username)s և գաղտնաբառ։" + +msgid "Action:" +msgstr "Գործողություն" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "Ավելացնել այլ %(verbose_name)s" + +msgid "Remove" +msgstr "Հեռացնել" + +msgid "Addition" +msgstr "" + +msgid "Change" +msgstr "Փոփոխել" + +msgid "Deletion" +msgstr "" + +msgid "action time" +msgstr "գործողության ժամանակ" + +msgid "user" +msgstr "օգտագործող" + +msgid "content type" +msgstr "կոնտենտի տիպ" + +msgid "object id" +msgstr "օբյեկտի id" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/3/library/functions.html#repr) +msgid "object repr" +msgstr "օբյեկտի repr" + +msgid "action flag" +msgstr "գործողության դրոշ" + +msgid "change message" +msgstr "փոփոխել հաղորդագրությունը" + +msgid "log entry" +msgstr "log գրառում" + +msgid "log entries" +msgstr "log գրառումներ" + +#, python-format +msgid "Added \"%(object)s\"." +msgstr "%(object)s֊ը ավելացվեց " + +#, python-format +msgid "Changed \"%(object)s\" - %(changes)s" +msgstr "%(object)s֊ը փոփոխվեց ֊ %(changes)s" + +#, python-format +msgid "Deleted \"%(object)s.\"" +msgstr "%(object)s-ը հեռացվեց" + +msgid "LogEntry Object" +msgstr "LogEntry օբյեկտ" + +#, python-brace-format +msgid "Added {name} \"{object}\"." +msgstr "" + +msgid "Added." +msgstr "Ավելացվեց։" + +msgid "and" +msgstr "և" + +#, python-brace-format +msgid "Changed {fields} for {name} \"{object}\"." +msgstr "" + +#, python-brace-format +msgid "Changed {fields}." +msgstr "" + +#, python-brace-format +msgid "Deleted {name} \"{object}\"." +msgstr "" + +msgid "No fields changed." +msgstr "Ոչ մի դաշտ չփոփոխվեց։" + +msgid "None" +msgstr "Ոչինչ" + +msgid "" +"Hold down \"Control\", or \"Command\" on a Mac, to select more than one." +msgstr "" +"Սեղմեք \"Control\", կամ \"Command\" Mac֊ի մրա, մեկից ավելին ընտրելու համար։" + +#, python-brace-format +msgid "The {name} \"{obj}\" was added successfully." +msgstr "" + +msgid "You may edit it again below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was added successfully. You may add another {name} " +"below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was changed successfully. You may edit it again below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was added successfully. You may edit it again below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was changed successfully. You may add another {name} " +"below." +msgstr "" + +#, python-brace-format +msgid "The {name} \"{obj}\" was changed successfully." +msgstr "" + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" +"Օբյեկտների հետ գործողություն կատարելու համար նրանք պետք է ընտրվեն․ Ոչ մի " +"օբյեկտ չի փոփոխվել։" + +msgid "No action selected." +msgstr "Գործողությունը ընտրված չէ։" + +#, python-format +msgid "The %(name)s \"%(obj)s\" was deleted successfully." +msgstr "%(name)s %(obj)s֊ը հաջողությամբ հեռացվեց։" + +#, python-format +msgid "%(name)s with ID \"%(key)s\" doesn't exist. Perhaps it was deleted?" +msgstr "" + +#, python-format +msgid "Add %s" +msgstr "Ավելացնել %s" + +#, python-format +msgid "Change %s" +msgstr "Փոփոխել %s" + +#, python-format +msgid "View %s" +msgstr "" + +msgid "Database error" +msgstr "Տվյալների բազաի սխալ" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "%(count)s %(name)s հաջողությամբ փոփոխվեց։" +msgstr[1] "%(count)s %(name)s հաջողությամբ փոփոխվեցին։" + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "Ընտրված են %(total_count)s" +msgstr[1] "Բոլոր %(total_count)s֊ը ընտրված են " + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "%(cnt)s֊ից 0֊ն ընտրված է" + +#, python-format +msgid "Change history: %s" +msgstr "Փոփոխությունների պատմություն %s" + +#. Translators: Model verbose name and instance representation, +#. suitable to be an item in a list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "%(instance)s %(class_name)s" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" +"%(instance)s %(class_name)s֊ը հեռացնելու համար անհրաժեշտ է հեռացնել նրա հետ " +"կապված պաշտպանված օբյեկտները՝ %(related_objects)s" + +msgid "Django site admin" +msgstr "Django կայքի ադմինիստրավորման էջ" + +msgid "Django administration" +msgstr "Django ադմինիստրավորում" + +msgid "Site administration" +msgstr "Կայքի ադմինիստրավորում" + +msgid "Log in" +msgstr "Մուտք" + +#, python-format +msgid "%(app)s administration" +msgstr "%(app)s ադմինիստրավորում" + +msgid "Page not found" +msgstr "Էջը գտնված չէ" + +msgid "We're sorry, but the requested page could not be found." +msgstr "Ներողություն ենք հայցում, բայց հարցվող Էջը գտնված չէ" + +msgid "Home" +msgstr "Գլխավոր" + +msgid "Server error" +msgstr "Սերվերի սխալ" + +msgid "Server error (500)" +msgstr "Սերվերի սխալ (500)" + +msgid "Server Error (500)" +msgstr "Սերվերի սխալ (500)" + +msgid "" +"There's been an error. It's been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" +"Առաջացել է սխալ։ Ադմինիստրատորները տեղեկացվել են դրա մասին էլեկտրոնային " +"փոստի միջոցով և այն կուղղվի կարճ ժամանակահատվածի ընդացքում․ Շնորհակալ ենք " +"ձեր համբերության համար։" + +msgid "Run the selected action" +msgstr "Կատարել ընտրված գործողությունը" + +msgid "Go" +msgstr "Կատարել" + +msgid "Click here to select the objects across all pages" +msgstr "Սեղմեք այստեղ բոլոր էջերից օբյեկտներ ընտրելու համար" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "Ընտրել բոլոր %(total_count)s %(module_name)s" + +msgid "Clear selection" +msgstr "Չեղարկել ընտրությունը" + +msgid "" +"First, enter a username and password. Then, you'll be able to edit more user " +"options." +msgstr "" +"Սկզբում մուտքագրեք օգտագործողի անունը և գաղտնաբառը․ Հետո դուք " +"հնարավորություն կունենաք խմբագրել ավելին։" + +msgid "Enter a username and password." +msgstr "Մուտքագրեք օգտագործողի անունը և գաղտնաբառը։" + +msgid "Change password" +msgstr "Փոխել գաղտնաբառը" + +msgid "Please correct the error below." +msgstr "Ուղղեք ստորև նշված սխալը։" + +msgid "Please correct the errors below." +msgstr "Ուղղեք ստորև նշված սխալները․" + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "" +"Մուտքագրեք նոր գաղտնաբառ %(username)s օգտագործողի համար։" + +msgid "Welcome," +msgstr "Բարի գալուստ, " + +msgid "View site" +msgstr "Դիտել կայքը" + +msgid "Documentation" +msgstr "Դոկումենտացիա" + +msgid "Log out" +msgstr "Դուրս գալ" + +#, python-format +msgid "Add %(name)s" +msgstr "Ավելացնել %(name)s" + +msgid "History" +msgstr "Պատմություն" + +msgid "View on site" +msgstr "Դիտել կայքում" + +msgid "Filter" +msgstr "Ֆիլտրել" + +msgid "Remove from sorting" +msgstr "Հեռացնել դասակարգումից" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "Դասակարգման առաջնություն՝ %(priority_number)s" + +msgid "Toggle sorting" +msgstr "Toggle sorting" + +msgid "Delete" +msgstr "Հեռացնել" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" +"%(object_name)s '%(escaped_object)s'֊ի հեռացումը կարող է հանգեցնել նրա հետ " +"կապված օբյեկտների հեռացմանը, բայց դուք չունեք իրավունք հեռացնել այդ տիպի " +"օբյեկտներ․" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" +"%(object_name)s '%(escaped_object)s'֊ը հեռացնելու համար կարող է անհրաժեշտ " +"լինել հեռացնել նրա հետ կապված պաշտպանված օբյեկտները։" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" +"Համոզված ե՞ք, որ ուզում եք հեռացնել %(object_name)s \"%(escaped_object)s\"֊" +"ը։ նրա հետ կապված այս բոլոր օբյեկտները կհեռացվեն․" + +msgid "Objects" +msgstr "Օբյեկտներ" + +msgid "Yes, I'm sure" +msgstr "Այո, ես համոզված եմ" + +msgid "No, take me back" +msgstr "Ոչ, տարեք ենձ ետ" + +msgid "Delete multiple objects" +msgstr "Հեռացնել մի քանի օբյեկտ" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" +"%(objects_name)s֊ների հեռացումը կարող է հանգեցնել նրա հետ կապված օբյեկտների " +"հեռացմանը, բայց դուք չունեք իրավունք հեռացնել այդ տիպի օբյեկտներ․" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" +"%(objects_name)s֊ը հեռացնելու համար կարող է անհրաժեշտ լինել հեռացնել նրա հետ " +"կապված պաշտպանված օբյեկտները։" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" +"Համոզված ե՞ք, որ ուզում եք հեռացնել նշված %(objects_name)s֊ները։ Այս բոլոր " +"օբյեկտները, ինչպես նաև նրանց հետ կապված օբյեկտները կհեռացվեն․" + +msgid "View" +msgstr "" + +msgid "Delete?" +msgstr "Հեռացնե՞լ" + +#, python-format +msgid " By %(filter_title)s " +msgstr "%(filter_title)s " + +msgid "Summary" +msgstr "Ամփոփում" + +#, python-format +msgid "Models in the %(name)s application" +msgstr " %(name)s հավելվածի մոդել" + +msgid "Add" +msgstr "Ավելացնել" + +msgid "You don't have permission to view or edit anything." +msgstr "" + +msgid "Recent actions" +msgstr "" + +msgid "My actions" +msgstr "" + +msgid "None available" +msgstr "Ոչինք չկա" + +msgid "Unknown content" +msgstr "Անհայտ կոնտենտ" + +msgid "" +"Something's wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" +"Ինչ֊որ բան այն չէ ձեր տվյալների բազայի հետ։ Համոզվեք, որ համապատասխան " +"աղյուսակները ստեղծվել են և համոզվեք, որ համապատասխան օգտագործողը կարող է " +"կարդալ բազան։" + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" +"Դուք մուտք եք գործել որպես %(username)s, բայց իրավունք չունեք դիտելու այս " +"էջը։ Ցանկանում ե՞ք մուտք գործել որպես այլ օգտագործող" + +msgid "Forgotten your password or username?" +msgstr "Մոռացել ե՞ք օգտագործողի անունը կամ գաղտնաբառը" + +msgid "Date/time" +msgstr "Ամսաթիվ/Ժամանակ" + +msgid "User" +msgstr "Օգտագործող" + +msgid "Action" +msgstr "Գործողություն" + +msgid "" +"This object doesn't have a change history. It probably wasn't added via this " +"admin site." +msgstr "" +"Այս օբյեկտը չունի փոփոխման պատմություն։ Այն հավանաբար ավելացված չէ " +"ադմինիստրավորման էջից։" + +msgid "Show all" +msgstr "Ցույց տալ բոլորը" + +msgid "Save" +msgstr "Պահպանել" + +msgid "Popup closing..." +msgstr "Ելնող պատուհանը փակվում է" + +#, python-format +msgid "Change selected %(model)s" +msgstr "Փոփոխել ընտրված %(model)s տիպի օբյեկտը" + +#, python-format +msgid "View selected %(model)s" +msgstr "" + +#, python-format +msgid "Add another %(model)s" +msgstr "Ավելացնել այլ %(model)s տիպի օբյեկտ" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "Հեռացնել ընտրված %(model)s տիպի օբյեկտը" + +msgid "Search" +msgstr "Փնտրել" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "%(counter)s արդյունք" +msgstr[1] "%(counter)s արդյունքներ" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "%(full_result_count)s ընդհանուր" + +msgid "Save as new" +msgstr "Պահպանել որպես նոր" + +msgid "Save and add another" +msgstr "Պահպանել և ավելացնել նորը" + +msgid "Save and continue editing" +msgstr "Պահպանել և շարունակել խմբագրել" + +msgid "Save and view" +msgstr "" + +msgid "Close" +msgstr "" + +msgid "Thanks for spending some quality time with the Web site today." +msgstr "Շնորհակալություն մեր կայքում ինչ֊որ ժամանակ ծախսելու համար։" + +msgid "Log in again" +msgstr "Մուտք գործել նորից" + +msgid "Password change" +msgstr "Փոխել գաղտնաբառը" + +msgid "Your password was changed." +msgstr "Ձեր գաղտնաբառը փոխվել է" + +msgid "" +"Please enter your old password, for security's sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" +"Մուտքագրեք ձեր հին գաղտնաբառը։ Անվտանգության նկատառումներով մուտքագրեք ձեր " +"նոր գաղտնաբառը երկու անգամ, որպեսզի մենք համոզված լինենք, որ այն ճիշտ է " +"հավաքված։" + +msgid "Change my password" +msgstr "Փոխել իմ գաղտնաբառը" + +msgid "Password reset" +msgstr "Գաղտնաբառի փոփոխում" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "Ձեր գաղտնաբառը պահպանված է․ Կարող եք մուտք գործել։" + +msgid "Password reset confirmation" +msgstr "Գաղտնաբառի փոփոխման հաստատում" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" +"Մուտքագրեք ձեր նոր գաղտնաբառը երկու անգամ, որպեսզի մենք համոզված լինենք, որ " +"այն ճիշտ է հավաքված։" + +msgid "New password:" +msgstr "Նոր գաղտնաբառ․" + +msgid "Confirm password:" +msgstr "Նոր գաղտնաբառը նորից․" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"Գաղտնաբառի փոփոխման հղում է սխալ է, հավանաբար այն արդեն օգտագործվել է․ Դուք " +"կարող եք ստանալ նոր հղում։" + +msgid "" +"We've emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" +"Մենք ուղարկեցինք ձեր էլեկտրոնային փոստի հասցեին գաղտնաբառը փոփոխելու " +"հրահանգներ․ Դուք շուտով կստանաք դրանք։" + +msgid "" +"If you don't receive an email, please make sure you've entered the address " +"you registered with, and check your spam folder." +msgstr "" +"Եթե դուք չեք ստացել էլեկտրոնային նամակ, համոզվեք, որ հավաքել եք այն հասցեն, " +"որով գրանցվել եք և ստուգեք ձեր սպամի թղթապանակը։" + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" +"Դուք ստացել եք այս նամակը, քանի որ ցանկացել եք փոխել ձեր գաղտնաբառը " +"%(site_name)s կայքում։" + +msgid "Please go to the following page and choose a new password:" +msgstr "Բացեք հետևյալ էջը և ընտրեք նոր գաղտնաբառ։" + +msgid "Your username, in case you've forgotten:" +msgstr "Եթե դուք մոռացել եք ձեր օգտագործողի անունը․" + +msgid "Thanks for using our site!" +msgstr "Շնորհակալություն մեր կայքից օգտվելու համար։" + +#, python-format +msgid "The %(site_name)s team" +msgstr "%(site_name)s կայքի թիմ" + +msgid "" +"Forgotten your password? Enter your email address below, and we'll email " +"instructions for setting a new one." +msgstr "" +"Մոռացել ե՞ք ձեր գաղտնաբառը Մուտքագրեք ձեր էլեկտրոնային փոստի հասցեն և մենք " +"կուղարկենք ձեզ հրահանգներ նորը ստանալու համար։" + +msgid "Email address:" +msgstr "Email հասցե․" + +msgid "Reset my password" +msgstr "Փոխել գաղտնաբառը" + +msgid "All dates" +msgstr "Բոլոր ամսաթվերը" + +#, python-format +msgid "Select %s" +msgstr "Ընտրեք %s" + +#, python-format +msgid "Select %s to change" +msgstr "Ընտրեք %s փոխելու համար" + +#, python-format +msgid "Select %s to view" +msgstr "" + +msgid "Date:" +msgstr "Ամսաթիվ․" + +msgid "Time:" +msgstr "Ժամանակ․" + +msgid "Lookup" +msgstr "Որոնում" + +msgid "Currently:" +msgstr "Հիմա․" + +msgid "Change:" +msgstr "Փոփոխել" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/hy/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/hy/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..b9a8fa2cff7723069f0ced6b0f39d5f5c51e86a5 GIT binary patch literal 5636 zcmdT`TWnlM8J@PGEe^D_v|LIkQ#sskY*MXeN)Qmzk6;?}KA?F8F((mIQfKmt|p;#r9YDxL~L;-#Vj2?_E2GqdYm z$IS)81EZbuotgP>^Z(z>*|%?B_X0!PhQ0y)&FdI@4EWU>@IV_|$Jm3w3h+kY8H0;GG!1ZN`5y?j_e0-iKDYw#`LCo%tL;BCO`QN%3p4&cMU{lMFS&jZPR)!?kbn!(=! zVS@d^;9r20pT7esK2oN5)&pt00r(=Y3wQ!pGwXx5YCQ)?eoH{o8wY+Gc-+j-04d&I z&^+?94D15F3t_T<7nI5WMqmk;GUFcs?}gk1@FC!@k*s&Hej|!O_5LgHdf>YT-!u3R zga0)6FN4>iNHD`bflh6!2K7X#RHMA4&_9m83H=^)YLs_sonoPO zp9WQPdbP}0BOVO#jok%5#w#X7Ar{Uh z*B;<@s+3|6@G?PfIdnbNn+zvW%z8&`*R%7U;2R^>XZr==vA$vuM8W{K`J;B+GRnE7 zmQma~@|12Qd}YjY3t!`LzzfP8w>=Nj+>UtwFDcg7SPw-h7!hh6qFQ@J>`_q=rMw7P zzsQG)9adPs>%|!FaUH?-*}j_Fmv|MnFYyH%u){(T&k7rG9p4=;#_Wk8@bQR6mOm9F z+zx58yci@Qw~NAdD4&rCM?}bJJE^s05&D%2^Smg!zH>!p*A^YoyM7`VW%~CprNAk*|B_v4)FcW@g6AuSMXocMN6aeP;Bn(b zB5B+%#BShkQTeMF0lzEeCEEeveX4`)4-1@V9}zh2i0dS_2j9YTB9)sikhL5Jc^uIS z_kutre<%P`k>$sbI%p2qcU?RBg#i!cILvfOzZln6QwigFOf)<87uI@TAG z;mFDbS>ADAf6nR)g-yJ&=wi8Z|zu-BVR)zw08T2z`+%j zA5JiKMY zR^@A4zTEicT5_s>2m|#kw&dhhNVb27m(R%ausl8bUl*67LPID9UlFUScw zEvM*vDv#m)tgJ#~hGtjXwh!uuITYuV`YSMgp+%6^URA4Px+-U`a7|8g`4dDoEf?Yb zq8(Fo&#CC<$|7(%$>pR;C2eN0{&g;AbrALO`mxKX&cg1S*!3Zki;L8k;S(9D z;W-D#6ZLT>Phen5N5k(@j@5)p)j60u+%QPFhD}&Uok>^^k#t=Ly`~0-Rq|_0;ziCY zfn{>LgxXEX*OhBMQU4}cIz%&#gd+=8+K7CEs01CX!6iMX8ZxFRnqN_4b`d4~pW31n z*RDxa|GA|jVAp(W3F%zS$*QWy>hg|5u!R#O(>BpUK#)~Y^L#r&j;or_*AH>bSLpyg zC##y4?Z=LTC!heHI4#Ig{TK(~Xa+Q&QG{5OXF2MKaSP44TtH<}P-xP10TmDnB*BTs z+v+nRFK~IaQ!Hu&bDTuLC0q=23~;*05_wPpTwPub z4ec6in?r8jSZ%zsdEvoMCt01Qb0R185nVGopzhV=XVqE$Kg`i;rme~oZuEJ%q)-3z zsM1-Y-(gj%8d6!6r%)M16}mu{P;<<^jtbK)Gk013fj0Fcs9p0eBfa*^ba|dU(8bR(XB}!B7MXTj=BvpKT7u)@sTcb zIz=S2z~xWXJ#6-hSV6ePHuY^+{|5BYAxU1F-Z|ZJ@+G|?P4z0pLzn1ztRRJSOW}%b ziv>)VKU3}}5&yGzn}s+91|riTZ7hSV+N<8i!nMv3Ic;-&Et5mrLH2QRw0>#vpIhy< z#VzHujT0QKM3JCe#m9ew_(oZwFWdqZM}LG+FRCh7LD^CNFzE7mAEMBIfF{8dbu>-R zwMAq8IbC%c=#rfWFD8gNux{?!1_5b!iO4{LGn6ahZfi+&H19{gmHf^SWsrjjT;BM1 W@-6utwmi?|QMQav|G0WT#{Lav{i*B# literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/hy/LC_MESSAGES/djangojs.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/hy/LC_MESSAGES/djangojs.po new file mode 100644 index 0000000000..e209f5428c --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/hy/LC_MESSAGES/djangojs.po @@ -0,0 +1,219 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Ruben Harutyunov , 2018 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-05-17 11:50+0200\n" +"PO-Revision-Date: 2019-01-15 10:40+0100\n" +"Last-Translator: Ruben Harutyunov \n" +"Language-Team: Armenian (http://www.transifex.com/django/django/language/" +"hy/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hy\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, javascript-format +msgid "Available %s" +msgstr "Հասանելի %s" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" +"Սա հասանելի %s ցուցակ է։ Դուք կարող եք ընտրել նրանցից որոշները ընտրելով " +"դրանք ստորև գտնվող վանդակում և սեղմելով երկու վանդակների միջև գտնվող \"Ընտրել" +"\" սլաքը։" + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "Մուտքագրեք այս դաշտում հասանելի %s ցուցակը ֆիլտրելու համար։" + +msgid "Filter" +msgstr "Ֆիլտրել" + +msgid "Choose all" +msgstr "Ընտրել բոլորը" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "Սեղմեք բոլոր %sը ընտրելու համար։" + +msgid "Choose" +msgstr "Ընտրել" + +msgid "Remove" +msgstr "Հեռացնել" + +#, javascript-format +msgid "Chosen %s" +msgstr "Ընտրված %s" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" +"Սա հասանելի %sի ցուցակ է։ Դուք կարող եք հեռացնել նրանցից որոշները ընտրելով " +"դրանք ստորև գտնվող վանդակում և սեղմելով երկու վանդակների միջև գտնվող " +"\"Հեռացնել\" սլաքը։" + +msgid "Remove all" +msgstr "Հեռացնել բոլորը" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "Սեղմեք բոլոր %sը հեռացնելու համար։" + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "Ընտրված է %(cnt)s-ից %(sel)s-ը" +msgstr[1] "Ընտրված է %(cnt)s-ից %(sel)s-ը" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" +"Դուք ունեք չպահպանված անհատական խմբագրելի դաշտեր։ Եթե դուք կատարեք " +"գործողությունը, ձեր չպահպանված փոփոխությունները կկորեն։" + +msgid "" +"You have selected an action, but you haven't saved your changes to " +"individual fields yet. Please click OK to save. You'll need to re-run the " +"action." +msgstr "" +"Դուք ընտրել եք գործողություն, բայց դեռ չեք պահպանել անհատական խմբագրելի " +"դաշտերի փոփոխությունները Սեղմեք OK պահպանելու համար։ Անհրաժեշտ կլինի " +"վերագործարկել գործողությունը" + +msgid "" +"You have selected an action, and you haven't made any changes on individual " +"fields. You're probably looking for the Go button rather than the Save " +"button." +msgstr "" +"Դուք ընտրել եք գործողություն, բայց դեռ չեք կատարել որևէ անհատական խմբագրելի " +"դաշտերի փոփոխություն Ձեզ հավանաբար պետք է Կատարել կոճակը, Պահպանել կոճակի " +"փոխարեն" + +msgid "Now" +msgstr "Հիմա" + +msgid "Midnight" +msgstr "Կեսգիշեր" + +msgid "6 a.m." +msgstr "6 a.m." + +msgid "Noon" +msgstr "Կեսօր" + +msgid "6 p.m." +msgstr "6 p.m." + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "Ձեր ժամը առաջ է սերվերի ժամանակից %s ժամով" +msgstr[1] "Ձեր ժամը առաջ է սերվերի ժամանակից %s ժամով" + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "Ձեր ժամը հետ է սերվերի ժամանակից %s ժամով" +msgstr[1] "Ձեր ժամը հետ է սերվերի ժամանակից %s ժամով" + +msgid "Choose a Time" +msgstr "Ընտրեք ժամանակ" + +msgid "Choose a time" +msgstr "Ընտրեք ժամանակ" + +msgid "Cancel" +msgstr "Չեղարկել" + +msgid "Today" +msgstr "Այսօր" + +msgid "Choose a Date" +msgstr "Ընտրեք ամսաթիվ" + +msgid "Yesterday" +msgstr "Երեկ" + +msgid "Tomorrow" +msgstr "Վաղը" + +msgid "January" +msgstr "Հունվար" + +msgid "February" +msgstr "Փետրվար" + +msgid "March" +msgstr "Մարտ" + +msgid "April" +msgstr "Ապրիլ" + +msgid "May" +msgstr "Մայիս" + +msgid "June" +msgstr "Հունիս" + +msgid "July" +msgstr "Հուլիս" + +msgid "August" +msgstr "Օգոստոս" + +msgid "September" +msgstr "Սեպտեմբեր" + +msgid "October" +msgstr "Հոկտեմբեր" + +msgid "November" +msgstr "Նոյեմբեր" + +msgid "December" +msgstr "Դեկտեմբեր" + +msgctxt "one letter Sunday" +msgid "S" +msgstr "Կ" + +msgctxt "one letter Monday" +msgid "M" +msgstr "Ե" + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "Ե" + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "Չ" + +msgctxt "one letter Thursday" +msgid "T" +msgstr "Հ" + +msgctxt "one letter Friday" +msgid "F" +msgstr "ՈՒ" + +msgctxt "one letter Saturday" +msgid "S" +msgstr "Շ" + +msgid "Show" +msgstr "Ցույց տալ" + +msgid "Hide" +msgstr "Թաքցնել" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ia/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ia/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..06ddd422dc159a7beeeb01ff080edd4183c59089 GIT binary patch literal 11278 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, 2012 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-01-19 16:49+0100\n" +"PO-Revision-Date: 2017-09-19 16:41+0000\n" +"Last-Translator: Jannis Leidel \n" +"Language-Team: Interlingua (http://www.transifex.com/django/django/language/" +"ia/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ia\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "%(count)d %(items)s delite con successo." + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "Non pote deler %(name)s" + +msgid "Are you sure?" +msgstr "Es tu secur?" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "Deler le %(verbose_name_plural)s seligite" + +msgid "Administration" +msgstr "" + +msgid "All" +msgstr "Totes" + +msgid "Yes" +msgstr "Si" + +msgid "No" +msgstr "No" + +msgid "Unknown" +msgstr "Incognite" + +msgid "Any date" +msgstr "Omne data" + +msgid "Today" +msgstr "Hodie" + +msgid "Past 7 days" +msgstr "Ultime 7 dies" + +msgid "This month" +msgstr "Iste mense" + +msgid "This year" +msgstr "Iste anno" + +msgid "No date" +msgstr "" + +msgid "Has date" +msgstr "" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" + +msgid "Action:" +msgstr "Action:" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "Adder un altere %(verbose_name)s" + +msgid "Remove" +msgstr "Remover" + +msgid "action time" +msgstr "hora de action" + +msgid "user" +msgstr "" + +msgid "content type" +msgstr "" + +msgid "object id" +msgstr "id de objecto" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/3/library/functions.html#repr) +msgid "object repr" +msgstr "repr de objecto" + +msgid "action flag" +msgstr "marca de action" + +msgid "change message" +msgstr "message de cambio" + +msgid "log entry" +msgstr "entrata de registro" + +msgid "log entries" +msgstr "entratas de registro" + +#, python-format +msgid "Added \"%(object)s\"." +msgstr "\"%(object)s\" addite." + +#, python-format +msgid "Changed \"%(object)s\" - %(changes)s" +msgstr "\"%(object)s\" cambiate - %(changes)s" + +#, python-format +msgid "Deleted \"%(object)s.\"" +msgstr "\"%(object)s\" delite." + +msgid "LogEntry Object" +msgstr "Objecto LogEntry" + +#, python-brace-format +msgid "Added {name} \"{object}\"." +msgstr "" + +msgid "Added." +msgstr "" + +msgid "and" +msgstr "e" + +#, python-brace-format +msgid "Changed {fields} for {name} \"{object}\"." +msgstr "" + +#, python-brace-format +msgid "Changed {fields}." +msgstr "" + +#, python-brace-format +msgid "Deleted {name} \"{object}\"." +msgstr "" + +msgid "No fields changed." +msgstr "Nulle campo cambiate." + +msgid "None" +msgstr "Nulle" + +msgid "" +"Hold down \"Control\", or \"Command\" on a Mac, to select more than one." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was added successfully. You may edit it again below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was added successfully. You may add another {name} " +"below." +msgstr "" + +#, python-brace-format +msgid "The {name} \"{obj}\" was added successfully." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was changed successfully. You may edit it again below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was changed successfully. You may add another {name} " +"below." +msgstr "" + +#, python-brace-format +msgid "The {name} \"{obj}\" was changed successfully." +msgstr "" + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" +"Es necessari seliger elementos pro poter exequer actiones. Nulle elemento ha " +"essite cambiate." + +msgid "No action selected." +msgstr "Nulle action seligite." + +#, python-format +msgid "The %(name)s \"%(obj)s\" was deleted successfully." +msgstr "Le %(name)s \"%(obj)s\" ha essite delite con successo." + +#, python-format +msgid "%(name)s with ID \"%(key)s\" doesn't exist. Perhaps it was deleted?" +msgstr "" + +#, python-format +msgid "Add %s" +msgstr "Adder %s" + +#, python-format +msgid "Change %s" +msgstr "Cambiar %s" + +msgid "Database error" +msgstr "Error in le base de datos" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "%(count)s %(name)s cambiate con successo." +msgstr[1] "%(count)s %(name)s cambiate con successo." + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "%(total_count)s seligite" +msgstr[1] "Tote le %(total_count)s seligite" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "0 de %(cnt)s seligite" + +#, python-format +msgid "Change history: %s" +msgstr "Historia de cambiamentos: %s" + +#. Translators: Model verbose name and instance representation, +#. suitable to be an item in a list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" + +msgid "Django site admin" +msgstr "Administration del sito Django" + +msgid "Django administration" +msgstr "Administration de Django" + +msgid "Site administration" +msgstr "Administration del sito" + +msgid "Log in" +msgstr "Aperir session" + +#, python-format +msgid "%(app)s administration" +msgstr "" + +msgid "Page not found" +msgstr "Pagina non trovate" + +msgid "We're sorry, but the requested page could not be found." +msgstr "Regrettabilemente, le pagina requestate non poteva esser trovate." + +msgid "Home" +msgstr "Initio" + +msgid "Server error" +msgstr "Error del servitor" + +msgid "Server error (500)" +msgstr "Error del servitor (500)" + +msgid "Server Error (500)" +msgstr "Error del servitor (500)" + +msgid "" +"There's been an error. It's been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" + +msgid "Run the selected action" +msgstr "Exequer le action seligite" + +msgid "Go" +msgstr "Va" + +msgid "Click here to select the objects across all pages" +msgstr "Clicca hic pro seliger le objectos in tote le paginas" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "Seliger tote le %(total_count)s %(module_name)s" + +msgid "Clear selection" +msgstr "Rader selection" + +msgid "" +"First, enter a username and password. Then, you'll be able to edit more user " +"options." +msgstr "" +"Primo, specifica un nomine de usator e un contrasigno. Postea, tu potera " +"modificar plus optiones de usator." + +msgid "Enter a username and password." +msgstr "Specifica un nomine de usator e un contrasigno." + +msgid "Change password" +msgstr "Cambiar contrasigno" + +msgid "Please correct the error below." +msgstr "Per favor corrige le errores sequente." + +msgid "Please correct the errors below." +msgstr "" + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "" +"Specifica un nove contrasigno pro le usator %(username)s." + +msgid "Welcome," +msgstr "Benvenite," + +msgid "View site" +msgstr "" + +msgid "Documentation" +msgstr "Documentation" + +msgid "Log out" +msgstr "Clauder session" + +#, python-format +msgid "Add %(name)s" +msgstr "Adder %(name)s" + +msgid "History" +msgstr "Historia" + +msgid "View on site" +msgstr "Vider in sito" + +msgid "Filter" +msgstr "Filtro" + +msgid "Remove from sorting" +msgstr "Remover del ordination" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "Prioritate de ordination: %(priority_number)s" + +msgid "Toggle sorting" +msgstr "Alternar le ordination" + +msgid "Delete" +msgstr "Deler" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" +"Deler le %(object_name)s '%(escaped_object)s' resultarea in le deletion de " +"objectos associate, me tu conto non ha le permission de deler objectos del " +"sequente typos:" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" +"Deler le %(object_name)s '%(escaped_object)s' necessitarea le deletion del " +"sequente objectos associate protegite:" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" +"Es tu secur de voler deler le %(object_name)s \"%(escaped_object)s\"? Tote " +"le sequente objectos associate essera delite:" + +msgid "Objects" +msgstr "" + +msgid "Yes, I'm sure" +msgstr "Si, io es secur" + +msgid "No, take me back" +msgstr "" + +msgid "Delete multiple objects" +msgstr "Deler plure objectos" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" +"Deler le %(objects_name)s seligite resultarea in le deletion de objectos " +"associate, ma tu conto non ha le permission de deler objectos del sequente " +"typos:" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" +"Deler le %(objects_name)s seligite necessitarea le deletion del sequente " +"objectos associate protegite:" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" +"Es tu secur de voler deler le %(objects_name)s seligite? Tote le sequente " +"objectos e le objectos associate a illo essera delite:" + +msgid "Change" +msgstr "Cambiar" + +msgid "Delete?" +msgstr "Deler?" + +#, python-format +msgid " By %(filter_title)s " +msgstr " Per %(filter_title)s " + +msgid "Summary" +msgstr "" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "" + +msgid "Add" +msgstr "Adder" + +msgid "You don't have permission to edit anything." +msgstr "Tu non ha le permission de modificar alcun cosa." + +msgid "Recent actions" +msgstr "" + +msgid "My actions" +msgstr "" + +msgid "None available" +msgstr "Nihil disponibile" + +msgid "Unknown content" +msgstr "Contento incognite" + +msgid "" +"Something's wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" +"Il ha un problema con le installation del base de datos. Assecura te que le " +"tabellas correcte ha essite create, e que le base de datos es legibile pro " +"le usator appropriate." + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" + +msgid "Forgotten your password or username?" +msgstr "Contrasigno o nomine de usator oblidate?" + +msgid "Date/time" +msgstr "Data/hora" + +msgid "User" +msgstr "Usator" + +msgid "Action" +msgstr "Action" + +msgid "" +"This object doesn't have a change history. It probably wasn't added via this " +"admin site." +msgstr "" +"Iste objecto non ha un historia de cambiamentos. Illo probabilemente non " +"esseva addite per medio de iste sito administrative." + +msgid "Show all" +msgstr "Monstrar toto" + +msgid "Save" +msgstr "Salveguardar" + +msgid "Popup closing..." +msgstr "" + +#, python-format +msgid "Change selected %(model)s" +msgstr "" + +#, python-format +msgid "Add another %(model)s" +msgstr "" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "" + +msgid "Search" +msgstr "Cercar" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "%(counter)s resultato" +msgstr[1] "%(counter)s resultatos" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "%(full_result_count)s in total" + +msgid "Save as new" +msgstr "Salveguardar como nove" + +msgid "Save and add another" +msgstr "Salveguardar e adder un altere" + +msgid "Save and continue editing" +msgstr "Salveguardar e continuar le modification" + +msgid "Thanks for spending some quality time with the Web site today." +msgstr "Gratias pro haber passate un tempore agradabile con iste sito web." + +msgid "Log in again" +msgstr "Aperir session de novo" + +msgid "Password change" +msgstr "Cambio de contrasigno" + +msgid "Your password was changed." +msgstr "Tu contrasigno ha essite cambiate." + +msgid "" +"Please enter your old password, for security's sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" +"Per favor specifica tu ancian contrasigno, pro securitate, e postea " +"specifica tu nove contrasigno duo vices pro verificar que illo es scribite " +"correctemente." + +msgid "Change my password" +msgstr "Cambiar mi contrasigno" + +msgid "Password reset" +msgstr "Reinitialisar contrasigno" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "Tu contrasigno ha essite reinitialisate. Ora tu pote aperir session." + +msgid "Password reset confirmation" +msgstr "Confirmation de reinitialisation de contrasigno" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" +"Per favor scribe le nove contrasigno duo vices pro verificar que illo es " +"scribite correctemente." + +msgid "New password:" +msgstr "Nove contrasigno:" + +msgid "Confirm password:" +msgstr "Confirma contrasigno:" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"Le ligamine pro le reinitialisation del contrasigno esseva invalide, forsan " +"perque illo ha jam essite usate. Per favor submitte un nove demanda de " +"reinitialisation del contrasigno." + +msgid "" +"We've emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" + +msgid "" +"If you don't receive an email, please make sure you've entered the address " +"you registered with, and check your spam folder." +msgstr "" + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" + +msgid "Please go to the following page and choose a new password:" +msgstr "Per favor va al sequente pagina pro eliger un nove contrasigno:" + +msgid "Your username, in case you've forgotten:" +msgstr "Tu nomine de usator, in caso que tu lo ha oblidate:" + +msgid "Thanks for using our site!" +msgstr "Gratias pro usar nostre sito!" + +#, python-format +msgid "The %(site_name)s team" +msgstr "Le equipa de %(site_name)s" + +msgid "" +"Forgotten your password? Enter your email address below, and we'll email " +"instructions for setting a new one." +msgstr "" + +msgid "Email address:" +msgstr "" + +msgid "Reset my password" +msgstr "Reinitialisar mi contrasigno" + +msgid "All dates" +msgstr "Tote le datas" + +#, python-format +msgid "Select %s" +msgstr "Selige %s" + +#, python-format +msgid "Select %s to change" +msgstr "Selige %s a modificar" + +msgid "Date:" +msgstr "Data:" + +msgid "Time:" +msgstr "Hora:" + +msgid "Lookup" +msgstr "Recerca" + +msgid "Currently:" +msgstr "" + +msgid "Change:" +msgstr "" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ia/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ia/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..4c9eccce331d52b1577ced5951f966ba7177dc48 GIT binary patch literal 3177 zcmbtWO>Z1U5FH?VEf64q@DU^`mP{Nav)(ntN!BqUI1X{Ju@x^7$*p&$cele#_ok=E z>qT7Pk_!@w1VYLsT)805NQetJegRU1I3P}lUw{O!dS<+K;)DYu_rB?`>Q}F-Yy9iJ zJzoZRUMbt(z)7^*58wyS;K3j`0lWr$1o#c`N#J*7|A!KP0zQTDpMf>tFTlrvzXM+d z{snvuxc8yL&T-%#^iKmH1D+}S7l8N+R`J8*$7I+)T>-S?b^EwD*{)d2=3XTCmIXDjFb*F%A?@T$r3cQZ~2f)vPzX93K z07e)$fb+nQfp97K9{3sXN8l~s@)MW?{t4s|vM+2OUC#sHuI!S(OyIY_23z_m(cj(91A9=GMOC7$aHCPD$)+G z7?6>Z@qOoJNz~JNaArfOM065KlUcAJbR?5tp>IqkOCUi`rQ=@W=QFAOhD1dlk~0+f zEhLfz!z3ITSgHpL)x4Fd*^qu7ON-s(W#?4lqz%riSOzO9)~eTc!F$GN{0xJOes2kE zB3SQZxZPJ7;m`FYB`U*_T@u^8sncbXQz}Lkxy+=JI-^n^rF*PR<~Si`5gp&@LSS$$VhTMmyIm2&(~Mujl{#mK~B6tqoh zn0L?~4J2Gf$QmR4&km z9YPQz@|xoybWb8xH5kNdL&dpBaJEe1%xiPlN*Y+xK|YQsF~*DEHP);A4n)qK!)7a> zIuGJd)_XO2IJ<&k847G}CC#hK=K4 z^90Sj-fGSqZOk+pSQuWE8;Wg?*PRF(r^4nbYR5TzmI!BTi!KPQ zk#frt*F2%qV1w>kiSO2x?wU8TNB45klVMwmv_(rA`Ig`Y=7OgB&J9}A)5GDg?%1m8 z%FTLY(&@sl3X;;qv=Y-tYAZ`Ci(>_v^+s*Mz^Dc@T!a=mx#^|{iBNiuGr(rj&A;D1 z7oHrirP=ikYpjY<~J`!k*CF#Nf2wdLx(!Ga~d#pPXm64B+9kK7ecc) z*K!eiC$Ht~3*v%nB89)qa0x5A_-6J6O%(Fk2`-W_gPAxt<$e_S-FQ@0pKx2+VYu$%k>>0U~ldvU~pbq z6+lIZP&vd&R8@6+=5o@gzL@Wd2-!-JNIOb!auhCkZ+UcJ3MqUkN0$2hp-9?7>avVq z67ZNUf>k-RE|Lw2+m4Tn#mDrXWK#T7vc)DFZz@vvPF^^;V2hxmj3X9Zv4O7&f8W6f zrQBbDu^9-(D{+1-JJJd+>2gydcf5pERbNV2j2)-3J3ILx8r#pO6ank1Nbv2g)4F0u X3ftS&_5s{sS!NkCK_=lNfy?+Wn2ev0 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ia/LC_MESSAGES/djangojs.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ia/LC_MESSAGES/djangojs.po new file mode 100644 index 0000000000..8285097813 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ia/LC_MESSAGES/djangojs.po @@ -0,0 +1,216 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Martijn Dekker , 2012 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-05-17 23:12+0200\n" +"PO-Revision-Date: 2017-09-19 16:41+0000\n" +"Last-Translator: Jannis Leidel \n" +"Language-Team: Interlingua (http://www.transifex.com/django/django/language/" +"ia/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ia\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, javascript-format +msgid "Available %s" +msgstr "%s disponibile" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" +"Ecce le lista de %s disponibile. Tu pote seliger alcunes in le quadro " +"sequente; postea clicca le flecha \"Seliger\" inter le duo quadros." + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "Scribe in iste quadro pro filtrar le lista de %s disponibile." + +msgid "Filter" +msgstr "Filtrar" + +msgid "Choose all" +msgstr "Seliger totes" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "Clicca pro seliger tote le %s immediatemente." + +msgid "Choose" +msgstr "Seliger" + +msgid "Remove" +msgstr "Remover" + +#, javascript-format +msgid "Chosen %s" +msgstr "Le %s seligite" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" +"Ecce le lista de %s seligite. Tu pote remover alcunes per seliger los in le " +"quadro sequente e cliccar le flecha \"Remover\" inter le duo quadros." + +msgid "Remove all" +msgstr "Remover totes" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "Clicca pro remover tote le %s seligite immediatemente." + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "%(sel)s de %(cnt)s seligite" +msgstr[1] "%(sel)s de %(cnt)s seligite" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" +"Il ha cambiamentos non salveguardate in certe campos modificabile. Si tu " +"exeque un action, iste cambiamentos essera perdite." + +msgid "" +"You have selected an action, but you haven't saved your changes to " +"individual fields yet. Please click OK to save. You'll need to re-run the " +"action." +msgstr "" +"Tu ha seligite un action, ma tu non ha salveguardate le cambiamentos in " +"certe campos. Per favor clicca OK pro salveguardar los. Tu debera re-exequer " +"le action." + +msgid "" +"You have selected an action, and you haven't made any changes on individual " +"fields. You're probably looking for the Go button rather than the Save " +"button." +msgstr "" +"Tu ha seligite un action, e tu non ha facite cambiamentos in alcun campo. Tu " +"probabilemente cerca le button Va e non le button Salveguardar." + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "" +msgstr[1] "" + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "" +msgstr[1] "" + +msgid "Now" +msgstr "Ora" + +msgid "Choose a Time" +msgstr "" + +msgid "Choose a time" +msgstr "Selige un hora" + +msgid "Midnight" +msgstr "Medienocte" + +msgid "6 a.m." +msgstr "6 a.m." + +msgid "Noon" +msgstr "Mediedie" + +msgid "6 p.m." +msgstr "" + +msgid "Cancel" +msgstr "Cancellar" + +msgid "Today" +msgstr "Hodie" + +msgid "Choose a Date" +msgstr "" + +msgid "Yesterday" +msgstr "Heri" + +msgid "Tomorrow" +msgstr "Deman" + +msgid "January" +msgstr "" + +msgid "February" +msgstr "" + +msgid "March" +msgstr "" + +msgid "April" +msgstr "" + +msgid "May" +msgstr "" + +msgid "June" +msgstr "" + +msgid "July" +msgstr "" + +msgid "August" +msgstr "" + +msgid "September" +msgstr "" + +msgid "October" +msgstr "" + +msgid "November" +msgstr "" + +msgid "December" +msgstr "" + +msgctxt "one letter Sunday" +msgid "S" +msgstr "" + +msgctxt "one letter Monday" +msgid "M" +msgstr "" + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "" + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "" + +msgctxt "one letter Thursday" +msgid "T" +msgstr "" + +msgctxt "one letter Friday" +msgid "F" +msgstr "" + +msgctxt "one letter Saturday" +msgid "S" +msgstr "" + +msgid "Show" +msgstr "Monstrar" + +msgid "Hide" +msgstr "Celar" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/id/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/id/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..8dbc5b5eb63cb5ba0355a129da8296c1e7437d64 GIT binary patch literal 17412 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 Lvl3raP1^h~WVADS literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/id/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/id/LC_MESSAGES/django.po new file mode 100644 index 0000000000..a49fd66792 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/id/LC_MESSAGES/django.po @@ -0,0 +1,787 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Bayu Satiyo , 2024 +# Claude Paroz , 2014 +# Fery Setiawan , 2015-2019,2021-2023 +# Jannis Leidel , 2011 +# M Asep Indrayana , 2015 +# oon arfiandwi (OonID) , 2016,2020 +# rodin , 2011-2013 +# rodin , 2013-2017 +# sag​e , 2019 +# Sutrisno Efendi , 2015 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-05-22 11:46-0300\n" +"PO-Revision-Date: 2013-04-25 07:05+0000\n" +"Last-Translator: Bayu Satiyo , 2024\n" +"Language-Team: Indonesian (http://app.transifex.com/django/django/language/" +"id/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: id\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "Hapus %(verbose_name_plural)s yang dipilih" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "Sukses menghapus %(count)d %(items)s." + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "Tidak dapat menghapus %(name)s" + +msgid "Are you sure?" +msgstr "Yakin?" + +msgid "Administration" +msgstr "Administrasi" + +msgid "All" +msgstr "Semua" + +msgid "Yes" +msgstr "Ya" + +msgid "No" +msgstr "Tidak" + +msgid "Unknown" +msgstr "Tidak diketahui" + +msgid "Any date" +msgstr "Kapanpun" + +msgid "Today" +msgstr "Hari ini" + +msgid "Past 7 days" +msgstr "Tujuh hari terakhir" + +msgid "This month" +msgstr "Bulan ini" + +msgid "This year" +msgstr "Tahun ini" + +msgid "No date" +msgstr "Tidak ada tanggal" + +msgid "Has date" +msgstr "Ada tanggal" + +msgid "Empty" +msgstr "Kosong" + +msgid "Not empty" +msgstr "Tidak kosong" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" +"Masukkan nama pengguna %(username)s dan sandi yang benar untuk akun staf. " +"Huruf besar/kecil pada bidang ini berpengaruh." + +msgid "Action:" +msgstr "Aksi:" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "Tambahkan %(verbose_name)s lagi" + +msgid "Remove" +msgstr "Hapus" + +msgid "Addition" +msgstr "Tambahan" + +msgid "Change" +msgstr "Ubah" + +msgid "Deletion" +msgstr "Penghapusan" + +msgid "action time" +msgstr "waktu aksi" + +msgid "user" +msgstr "pengguna" + +msgid "content type" +msgstr "jenis isi" + +msgid "object id" +msgstr "id objek" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/library/functions.html#repr) +msgid "object repr" +msgstr "representasi objek" + +msgid "action flag" +msgstr "jenis aksi" + +msgid "change message" +msgstr "ganti pesan" + +msgid "log entry" +msgstr "entri pencatatan" + +msgid "log entries" +msgstr "entri pencatatan" + +#, python-format +msgid "Added “%(object)s”." +msgstr "“%(object)s” ditambahkan." + +#, python-format +msgid "Changed “%(object)s” — %(changes)s" +msgstr "“%(object)s” diubah — %(changes)s" + +#, python-format +msgid "Deleted “%(object)s.”" +msgstr "“%(object)s” dihapus." + +msgid "LogEntry Object" +msgstr "Objek LogEntry" + +#, python-brace-format +msgid "Added {name} “{object}”." +msgstr "{name} “{object}” ditambahkan." + +msgid "Added." +msgstr "Ditambahkan." + +msgid "and" +msgstr "dan" + +#, python-brace-format +msgid "Changed {fields} for {name} “{object}”." +msgstr "{fields} diubah untuk {name} “{object}”." + +#, python-brace-format +msgid "Changed {fields}." +msgstr "{fields} berubah." + +#, python-brace-format +msgid "Deleted {name} “{object}”." +msgstr "{name} “{object}” dihapus." + +msgid "No fields changed." +msgstr "Tidak ada bidang yang berubah." + +msgid "None" +msgstr "None" + +msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." +msgstr "" +"Tekan “Control”, atau “Command” pada Mac, untuk memilih lebih dari satu." + +msgid "Select this object for an action - {}" +msgstr "Pilih objek ini untuk suatu aksi - {}" + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully." +msgstr "{name} “{obj}” berhasil ditambahkan." + +msgid "You may edit it again below." +msgstr "Anda dapat menyunting itu kembali di bawah." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was added successfully. You may add another {name} below." +msgstr "" +"{name} “{obj}” berhasil ditambahkan. Anda dapat menambahkan {name} lain di " +"bawah." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may edit it again below." +msgstr "" +"{name} “{obj}” berhasil diubah. Anda dapat mengeditnya kembali di bawah." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may add another {name} " +"below." +msgstr "" +"{name} “{obj}” berhasil diubah. Anda dapat menambahkan {name} lain di bawah." + +#, python-brace-format +msgid "The {name} “{obj}” was changed successfully." +msgstr "{name} “{obj}” berhasil diubah." + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" +"Objek harus dipilih sebelum dimanipulasi. Tidak ada objek yang berubah." + +msgid "No action selected." +msgstr "Tidak ada aksi yang dipilih." + +#, python-format +msgid "The %(name)s “%(obj)s” was deleted successfully." +msgstr "%(name)s “%(obj)s” berhasil dihapus." + +#, python-format +msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" +msgstr "%(name)s dengan ID “%(key)s” tidak ada. Mungkin telah dihapus?" + +#, python-format +msgid "Add %s" +msgstr "Tambahkan %s" + +#, python-format +msgid "Change %s" +msgstr "Ubah %s" + +#, python-format +msgid "View %s" +msgstr "Lihat %s" + +msgid "Database error" +msgstr "Galat basis data" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "%(count)s %(name)s berhasil diubah." + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "%(total_count)s dipilih" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "0 dari %(cnt)s dipilih" + +#, python-format +msgid "Change history: %s" +msgstr "Ubah riwayat: %s" + +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "%(class_name)s %(instance)s" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" +"Menghapus %(class_name)s %(instance)s memerlukan penghapusanobjek " +"terlindungi yang terkait sebagai berikut: %(related_objects)s" + +msgid "Django site admin" +msgstr "Admin situs Django" + +msgid "Django administration" +msgstr "Administrasi Django" + +msgid "Site administration" +msgstr "Administrasi situs" + +msgid "Log in" +msgstr "Masuk" + +#, python-format +msgid "%(app)s administration" +msgstr "Administrasi %(app)s" + +msgid "Page not found" +msgstr "Laman tidak ditemukan" + +msgid "We’re sorry, but the requested page could not be found." +msgstr "Maaf, laman yang Anda minta tidak ditemukan." + +msgid "Home" +msgstr "Beranda" + +msgid "Server error" +msgstr "Galat server" + +msgid "Server error (500)" +msgstr "Galat server (500)" + +msgid "Server Error (500)" +msgstr "Galat Server (500)" + +msgid "" +"There’s been an error. It’s been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" +"Terjadi sebuah galat dan telah dilaporkan ke administrator situs melalui " +"surel untuk diperbaiki. Terima kasih atas pengertian Anda." + +msgid "Run the selected action" +msgstr "Jalankan aksi terpilih" + +msgid "Go" +msgstr "Buka" + +msgid "Click here to select the objects across all pages" +msgstr "Klik di sini untuk memilih semua objek pada semua laman" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "Pilih seluruh %(total_count)s %(module_name)s" + +msgid "Clear selection" +msgstr "Bersihkan pilihan" + +msgid "Breadcrumbs" +msgstr "Breadcrumbs" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "Model pada aplikasi %(name)s" + +msgid "Add" +msgstr "Tambah" + +msgid "View" +msgstr "Lihat" + +msgid "You don’t have permission to view or edit anything." +msgstr "Anda tidak memiliki izin untuk melihat atau mengedit apa pun." + +msgid "" +"First, enter a username and password. Then, you’ll be able to edit more user " +"options." +msgstr "" +"Pertama-tama, masukkan nama pengguna dan sandi. Anda akan dapat mengubah " +"opsi pengguna lebih lengkap setelah itu." + +msgid "Enter a username and password." +msgstr "Masukkan nama pengguna dan sandi." + +msgid "Change password" +msgstr "Ganti sandi" + +msgid "Set password" +msgstr "" + +msgid "Please correct the error below." +msgid_plural "Please correct the errors below." +msgstr[0] "Harap perbaiki kesalahan dibawah." + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "Masukkan sandi baru untuk pengguna %(username)s." + +msgid "" +"This action will enable password-based authentication for " +"this user." +msgstr "" + +msgid "Disable password-based authentication" +msgstr "" + +msgid "Enable password-based authentication" +msgstr "" + +msgid "Skip to main content" +msgstr "Lewati ke isi utama" + +msgid "Welcome," +msgstr "Selamat datang," + +msgid "View site" +msgstr "Lihat situs" + +msgid "Documentation" +msgstr "Dokumentasi" + +msgid "Log out" +msgstr "Keluar" + +#, python-format +msgid "Add %(name)s" +msgstr "Tambahkan %(name)s" + +msgid "History" +msgstr "Riwayat" + +msgid "View on site" +msgstr "Lihat di situs" + +msgid "Filter" +msgstr "Filter" + +msgid "Hide counts" +msgstr "Sembunyikan hitungan" + +msgid "Show counts" +msgstr "Tampilkan hitungan" + +msgid "Clear all filters" +msgstr "Hapus semua penyaringan" + +msgid "Remove from sorting" +msgstr "Dihapus dari pengurutan" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "Prioritas pengurutan: %(priority_number)s" + +msgid "Toggle sorting" +msgstr "Ubah pengurutan" + +msgid "Toggle theme (current theme: auto)" +msgstr "Ganti tema (tema saat ini: otomatis)" + +msgid "Toggle theme (current theme: light)" +msgstr "Ganti tema (tema saat ini: terang)" + +msgid "Toggle theme (current theme: dark)" +msgstr "Ganti tema (tema saat ini: gelap)" + +msgid "Delete" +msgstr "Hapus" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" +"Menghapus %(object_name)s '%(escaped_object)s' akan menghapus objek lain " +"yang terkait, tetapi akun Anda tidak memiliki izin untuk menghapus objek " +"dengan tipe berikut:" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" +"Menghapus %(object_name)s '%(escaped_object)s' memerlukan penghapusan objek " +"terlindungi yang terkait sebagai berikut:" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" +"Yakin ingin menghapus %(object_name)s \"%(escaped_object)s\"? Semua objek " +"lain yang terkait juga akan dihapus:" + +msgid "Objects" +msgstr "Objek" + +msgid "Yes, I’m sure" +msgstr "Ya, saya yakin" + +msgid "No, take me back" +msgstr "Tidak, bawa saya kembali" + +msgid "Delete multiple objects" +msgstr "Hapus beberapa objek sekaligus" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" +"Menghapus %(objects_name)s terpilih akan menghapus objek yang terkait, " +"tetapi akun Anda tidak memiliki izin untuk menghapus objek dengan tipe " +"berikut:" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" +"Menghapus %(objects_name)s terpilih memerlukan penghapusan objek terlindungi " +"yang terkait sebagai berikut:" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" +"Yakin akan menghapus %(objects_name)s terpilih? Semua objek berikut beserta " +"objek terkait juga akan dihapus:" + +msgid "Delete?" +msgstr "Hapus?" + +#, python-format +msgid " By %(filter_title)s " +msgstr " Berdasarkan %(filter_title)s " + +msgid "Summary" +msgstr "Ringkasan" + +msgid "Recent actions" +msgstr "Tindakan terbaru" + +msgid "My actions" +msgstr "Tindakan saya" + +msgid "None available" +msgstr "Tidak ada yang tersedia" + +msgid "Added:" +msgstr "Ditambahkan:" + +msgid "Changed:" +msgstr "Berubah:" + +msgid "Deleted:" +msgstr "Dihapus:" + +msgid "Unknown content" +msgstr "Konten tidak diketahui" + +msgid "" +"Something’s wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" +"Ada masalah dengan instalasi basis data Anda. Pastikan tabel yang sesuai " +"pada basis data telah dibuat dan dapat dibaca oleh pengguna yang sesuai." + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" +"Anda diautentikasi sebagai %(username)s, tapi tidak diperbolehkan untuk " +"mengakses halaman ini. Ingin mencoba mengakses menggunakan akun yang lain?" + +msgid "Forgotten your password or username?" +msgstr "Lupa nama pengguna atau sandi?" + +msgid "Toggle navigation" +msgstr "Alihkan navigasi" + +msgid "Sidebar" +msgstr "Sidebar" + +msgid "Start typing to filter…" +msgstr "Mulai mengetik untuk menyaring..." + +msgid "Filter navigation items" +msgstr "Navigasi pencarian barang" + +msgid "Date/time" +msgstr "Tanggal/waktu" + +msgid "User" +msgstr "Pengguna" + +msgid "Action" +msgstr "Aksi" + +msgid "entry" +msgid_plural "entries" +msgstr[0] "masukan" + +msgid "" +"This object doesn’t have a change history. It probably wasn’t added via this " +"admin site." +msgstr "" +"Objek ini tidak memiliki riwayat perubahan. Mungkin objek ini tidak " +"ditambahkan melalui situs administrasi ini." + +msgid "Show all" +msgstr "Tampilkan semua" + +msgid "Save" +msgstr "Simpan" + +msgid "Popup closing…" +msgstr "Menutup jendela sembulan..." + +msgid "Search" +msgstr "Cari" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "%(counter)s buah" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "%(full_result_count)s total" + +msgid "Save as new" +msgstr "Simpan sebagai baru" + +msgid "Save and add another" +msgstr "Simpan dan tambahkan lagi" + +msgid "Save and continue editing" +msgstr "Simpan dan terus mengedit" + +msgid "Save and view" +msgstr "Simpan dan tampilkan" + +msgid "Close" +msgstr "Tutup" + +#, python-format +msgid "Change selected %(model)s" +msgstr "Ubah %(model)s yang dipilih" + +#, python-format +msgid "Add another %(model)s" +msgstr "Tambahkan %(model)s yang lain" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "Hapus %(model)s yang dipilih" + +#, python-format +msgid "View selected %(model)s" +msgstr "Menampilkan %(model)s terpilih" + +msgid "Thanks for spending some quality time with the web site today." +msgstr "" +"Terima kasih untuk meluangkan waktu berkualitas dengan jaringan situs hari " +"ini." + +msgid "Log in again" +msgstr "Masuk kembali" + +msgid "Password change" +msgstr "Ubah sandi" + +msgid "Your password was changed." +msgstr "Sandi Anda telah diubah." + +msgid "" +"Please enter your old password, for security’s sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" +"Masukkan sandi lama Anda, demi alasan keamanan, dan masukkan sandi baru Anda " +"dua kali untuk memastikan Anda tidak salah mengetikkannya." + +msgid "Change my password" +msgstr "Ubah sandi saya" + +msgid "Password reset" +msgstr "Setel ulang sandi" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "Sandi Anda telah diperbarui. Silakan masuk." + +msgid "Password reset confirmation" +msgstr "Konfirmasi penyetelan ulang sandi" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" +"Masukkan sandi baru dua kali untuk memastikan Anda tidak salah " +"mengetikkannya." + +msgid "New password:" +msgstr "Sandi baru:" + +msgid "Confirm password:" +msgstr "Konfirmasi sandi:" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"Tautan penyetelan ulang sandi tidak valid. Kemungkinan karena tautan " +"tersebut telah dipakai sebelumnya. Ajukan permintaan penyetelan sandi sekali " +"lagi." + +msgid "" +"We’ve emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" +"Kami telah mengirimi Anda surel berisi petunjuk untuk mengatur sandi Anda, " +"jika ada akun dengan alamat surel yang sesuai. Anda seharusnya menerima " +"surel tersebut sesaat lagi." + +msgid "" +"If you don’t receive an email, please make sure you’ve entered the address " +"you registered with, and check your spam folder." +msgstr "" +"Jika Anda tidak menerima surel, pastikan Anda telah memasukkan alamat yang " +"digunakan saat pendaftaran serta periksa folder spam Anda." + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" +"Anda menerima email ini karena Anda meminta penyetelan ulang sandi untuk " +"akun pengguna di %(site_name)s." + +msgid "Please go to the following page and choose a new password:" +msgstr "Kunjungi laman di bawah ini dan ketikkan sandi baru:" + +msgid "Your username, in case you’ve forgotten:" +msgstr "Nama pengguna Anda, jika lupa:" + +msgid "Thanks for using our site!" +msgstr "Terima kasih telah menggunakan situs kami!" + +#, python-format +msgid "The %(site_name)s team" +msgstr "Tim %(site_name)s" + +msgid "" +"Forgotten your password? Enter your email address below, and we’ll email " +"instructions for setting a new one." +msgstr "" +"Lupa sandi Anda? Masukkan alamat surel Anda di bawah ini dan kami akan " +"mengirimkan petunjuk untuk mengatur sandi baru Anda." + +msgid "Email address:" +msgstr "Alamat email:" + +msgid "Reset my password" +msgstr "Setel ulang sandi saya" + +msgid "Select all objects on this page for an action" +msgstr "Pilih semua objek di halaman ini untuk suatu aksi" + +msgid "All dates" +msgstr "Semua tanggal" + +#, python-format +msgid "Select %s" +msgstr "Pilih %s" + +#, python-format +msgid "Select %s to change" +msgstr "Pilih %s untuk diubah" + +#, python-format +msgid "Select %s to view" +msgstr "Pilih %s untuk melihat" + +msgid "Date:" +msgstr "Tanggal:" + +msgid "Time:" +msgstr "Waktu:" + +msgid "Lookup" +msgstr "Cari" + +msgid "Currently:" +msgstr "Saat ini:" + +msgid "Change:" +msgstr "Ubah:" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/id/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/id/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..d51b5514aeb6853aff3cdcea39db2b7b3a02fc7a GIT binary patch literal 5275 zcmb`KUu+yl9mj`o{BvmwEl>)D4hA;~@tx03goQ6V9yKovqz3BJGCx%2tr zv_UYw+0X9$+u!{D?fAEMRIV_TCDeORr}r^-2|QlG1?6k6W9$L&DexiiSK#Zxcj7|4 z7Z)_K`~34X_+~sG_Rl9g9|3Pg`#H~#cy53bXx|3k1b!O47kmP|54;Ax5&VVcZ$SLm z3%HPoe+J(G{>?xC)AQdT$yGt;YrzSS*0~L&d3S-2f%kxIu<-pq1!?@VAb#wZxL_&v zJCNjj0VFy93er0N0>1>(;+KIdAiZ}#2GRSf;4yF>Y=9YvAG?OjSHbUrUjZM*;wktd zco+DwTcBfb8+;dd+4C9jZan`OdMlo?BqNPrin+N$@>*e)=}XIQT=5^z%GO`~IWnUqGmay#&4m zeA&0(dV4wUPLTZJZV;lg{ho(CANE`Y52F7fSO*^mNw44X{60wU{}D*<`uk zQ4gR(9c&);y{L8651_&|*a=k1KQpMLS1M42^I^K5LM45XFOWY{A^Qyq*^CO=fJznh zgQye}??W9F^4%k-`%sUfQcRMa2L)zx@k%zLd`E@i1@7VU(SzW_sFV{aPf?-xq8K87 zqcV+3zH~o5ppbp394f(PLGsxe>V8!6pE*>DPmW3j>MhIEfn3H1b8go8)Pat+xJ85P zSQ)Zc?AsZ~O=^|VTpPb1G<;a*^dT_x{3On-DR>{bd9es-3++1q6SgbldZVm6a<+zArG;?9O!CPu< zdC;H9#B55}kD=x4ona?sM<#*H*oq9YLS%imqGF5Z(<+qgtkACQY!Ua_*+NU!6j>+2 zwa=O=)T$dGA|!LuZ8KN0&b+9`wBvD&3{230K-J5twc4BQ{%HU@Pd+yhBFw zOqY3WPoai(-jT?A!T%^xsiIet$b@i@wn+@h&D#A`V$1MUOZuZ-<9^+F84t}?xuZSx z`CrZ*#5&xs#xBVmZcLJpQ$_+IFzgqaiw=ePv{QZG5758=)K$w95h7YN8Byr2L^jb7 zKUAA4EJO^!WgO;Cu^0|tPcsuB!uvcn#@TM&z|mo(M_{AET1?Lbo~aQprk)l_Q}#j7 zR}v3{_-^rX%nhk68wv<@UMC>$OIzb>u@t#1-HM-ICB@VHf%HfjT4FUcXR?|VrF5lg zMg%K#`O>`=B12_eh8t++%(@eqmK#yDlX!fkEd>z*M3c#Fjfo)0{pmk;mpB_=9%WHo!!pX z>J!WGU#TH3GGBvRxov0CSSWprA~wsVUHEW&rFwK{9KCB@X4O-=V?w0=20t1oJCwA+ zRXDL07nz8wD<(_w2G^;3%ok>l@$z<|er#fR$O%QJhDRWHNUCBLF?^NX4P_zUhA(m` zdORs~2ab*tjOZ#hd$d-s56&@kj45)O+sC$PVvdLxY)M!Vvo*J{yYe>ryMs1}B76^Gk+2pVq>B@r#UGs7 z?T#-Za1et51n$TbM=!j6LnJ&@0Y2$4BwkT&9#YZ)2*hjGSPW;E@fys8LToMKp;)&fBiVOZxK?g26tuCSU64U= zcoc=-c1SwXgKpi2A+Rd%84Irp6%P=d(KL@mTwoABr#&(u1i_$GXuN&WInN{w7LYK* zWQh-LxkT;NWpy4sChO2O{{PZC<=#-*(-e0KUbG~0(_^bhPrXr%plio}`xuOfx{><* zZ0Lo|lz5#MR=Y5Psz+xd;K_i4m_n$?ga$C@qE?cf2R5`gEC~3)G#1vSk&!x!ga!l! zjGfA?2m~EgV0)h8I}Ra`wve|G z2@H;ZkI3{l639v`Qngzq-FGubr0PioWe(j{OALi-;eRa(Ip<_J?hI2!xrCP*IT&dJ zGH*by+KtD?kz, 2015-2016,2021-2023 +# Jannis Leidel , 2011 +# oon arfiandwi (OonID) , 2020 +# rodin , 2011-2012 +# rodin , 2014,2016 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-09-18 15:04-0300\n" +"PO-Revision-Date: 2023-12-04 07:59+0000\n" +"Last-Translator: Fery Setiawan , 2015-2016,2021-2023\n" +"Language-Team: Indonesian (http://app.transifex.com/django/django/language/" +"id/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: id\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#, javascript-format +msgid "Available %s" +msgstr "%s yang tersedia" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" +"Berikut adalah daftar %s yang tersedia. Anda dapat memilih satu atau lebih " +"dengan memilihnya pada kotak di bawah, lalu mengeklik tanda panah \"Pilih\" " +"di antara kedua kotak." + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "Ketik pada kotak ini untuk menyaring daftar %s yang tersedia." + +msgid "Filter" +msgstr "Filter" + +msgid "Choose all" +msgstr "Pilih semua" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "Pilih untuk memilih seluruh %s sekaligus." + +msgid "Choose" +msgstr "Pilih" + +msgid "Remove" +msgstr "Hapus" + +#, javascript-format +msgid "Chosen %s" +msgstr "%s terpilih" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" +"Berikut adalah daftar %s yang terpilih. Anda dapat menghapus satu atau lebih " +"dengan memilihnya pada kotak di bawah, lalu mengeklik tanda panah \"Hapus\" " +"di antara kedua kotak." + +#, javascript-format +msgid "Type into this box to filter down the list of selected %s." +msgstr "Ketik di dalam kotak utnuk menyaring daftar dar %s terpilih." + +msgid "Remove all" +msgstr "Hapus semua" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "Klik untuk menghapus semua pilihan %s sekaligus." + +#, javascript-format +msgid "%s selected option not visible" +msgid_plural "%s selected options not visible" +msgstr[0] "%s pilihan terpilih tidak muncul" + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "%(sel)s dari %(cnt)s terpilih" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" +"Beberapa perubahan bidang yang Anda lakukan belum tersimpan. Perubahan yang " +"telah dilakukan akan hilang." + +msgid "" +"You have selected an action, but you haven’t saved your changes to " +"individual fields yet. Please click OK to save. You’ll need to re-run the " +"action." +msgstr "" +"Anda telah memilih tindakan, tetapi Anda belum menyimpan perubahan ke masing-" +"masing bidang. Silakan klik OK untuk menyimpan. Anda harus menjalankan " +"kembali tindakan tersebut." + +msgid "" +"You have selected an action, and you haven’t made any changes on individual " +"fields. You’re probably looking for the Go button rather than the Save " +"button." +msgstr "" +"Anda telah memilih tindakan, dan Anda belum membuat perubahan apa pun di " +"setiap bidang. Anda mungkin mencari tombol Buka daripada tombol Simpan." + +msgid "Now" +msgstr "Sekarang" + +msgid "Midnight" +msgstr "Tengah malam" + +msgid "6 a.m." +msgstr "6 pagi" + +msgid "Noon" +msgstr "Siang" + +msgid "6 p.m." +msgstr "18.00" + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "Catatan: Waktu Anda lebih cepat %s jam dibandingkan waktu server." + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "Catatan: Waktu Anda lebih lambat %s jam dibandingkan waktu server." + +msgid "Choose a Time" +msgstr "Pilih Waktu" + +msgid "Choose a time" +msgstr "Pilih waktu" + +msgid "Cancel" +msgstr "Batal" + +msgid "Today" +msgstr "Hari ini" + +msgid "Choose a Date" +msgstr "Pilih Tanggal" + +msgid "Yesterday" +msgstr "Kemarin" + +msgid "Tomorrow" +msgstr "Besok" + +msgid "January" +msgstr "Januari" + +msgid "February" +msgstr "Februari" + +msgid "March" +msgstr "Maret" + +msgid "April" +msgstr "April" + +msgid "May" +msgstr "Mei" + +msgid "June" +msgstr "Juni" + +msgid "July" +msgstr "Juli" + +msgid "August" +msgstr "Agustus" + +msgid "September" +msgstr "September" + +msgid "October" +msgstr "Oktober" + +msgid "November" +msgstr "November" + +msgid "December" +msgstr "Desember" + +msgctxt "abbrev. month January" +msgid "Jan" +msgstr "Jan" + +msgctxt "abbrev. month February" +msgid "Feb" +msgstr "Feb" + +msgctxt "abbrev. month March" +msgid "Mar" +msgstr "Mar" + +msgctxt "abbrev. month April" +msgid "Apr" +msgstr "Apr" + +msgctxt "abbrev. month May" +msgid "May" +msgstr "Mei" + +msgctxt "abbrev. month June" +msgid "Jun" +msgstr "Jun" + +msgctxt "abbrev. month July" +msgid "Jul" +msgstr "Jul" + +msgctxt "abbrev. month August" +msgid "Aug" +msgstr "Agu" + +msgctxt "abbrev. month September" +msgid "Sep" +msgstr "Sep" + +msgctxt "abbrev. month October" +msgid "Oct" +msgstr "Okt" + +msgctxt "abbrev. month November" +msgid "Nov" +msgstr "Nov" + +msgctxt "abbrev. month December" +msgid "Dec" +msgstr "Des" + +msgid "Sunday" +msgstr "" + +msgid "Monday" +msgstr "" + +msgid "Tuesday" +msgstr "" + +msgid "Wednesday" +msgstr "" + +msgid "Thursday" +msgstr "" + +msgid "Friday" +msgstr "" + +msgid "Saturday" +msgstr "" + +msgctxt "abbrev. day Sunday" +msgid "Sun" +msgstr "" + +msgctxt "abbrev. day Monday" +msgid "Mon" +msgstr "" + +msgctxt "abbrev. day Tuesday" +msgid "Tue" +msgstr "" + +msgctxt "abbrev. day Wednesday" +msgid "Wed" +msgstr "" + +msgctxt "abbrev. day Thursday" +msgid "Thur" +msgstr "" + +msgctxt "abbrev. day Friday" +msgid "Fri" +msgstr "" + +msgctxt "abbrev. day Saturday" +msgid "Sat" +msgstr "" + +msgctxt "one letter Sunday" +msgid "S" +msgstr "M" + +msgctxt "one letter Monday" +msgid "M" +msgstr "S" + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "S" + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "R" + +msgctxt "one letter Thursday" +msgid "T" +msgstr "K" + +msgctxt "one letter Friday" +msgid "F" +msgstr "J" + +msgctxt "one letter Saturday" +msgid "S" +msgstr "S" + +msgid "Show" +msgstr "Bentangkan" + +msgid "Hide" +msgstr "Ciutkan" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/io/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/io/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..abe5bb50d40d8998e8c56b2c35d860268bc84aed GIT binary patch literal 12624 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, 2014 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-01-19 16:49+0100\n" +"PO-Revision-Date: 2017-09-20 01:58+0000\n" +"Last-Translator: Jannis Leidel \n" +"Language-Team: Ido (http://www.transifex.com/django/django/language/io/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: io\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "%(count)d %(items)s eliminesis sucesoze." + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "Onu ne povas eliminar %(name)s" + +msgid "Are you sure?" +msgstr "Ka vu esas certa?" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "Eliminar selektita %(verbose_name_plural)s" + +msgid "Administration" +msgstr "" + +msgid "All" +msgstr "Omni" + +msgid "Yes" +msgstr "Yes" + +msgid "No" +msgstr "No" + +msgid "Unknown" +msgstr "Nekonocato" + +msgid "Any date" +msgstr "Irga dato" + +msgid "Today" +msgstr "Hodie" + +msgid "Past 7 days" +msgstr "7 antea dii" + +msgid "This month" +msgstr "Ca monato" + +msgid "This year" +msgstr "Ca yaro" + +msgid "No date" +msgstr "" + +msgid "Has date" +msgstr "" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" +"Skribez la korekta %(username)s e pasvorto di kelka staff account. Remarkez " +"ke both feldi darfas rikonocar miniskulo e mayuskulo." + +msgid "Action:" +msgstr "Ago:" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "Agregar altra %(verbose_name)s" + +msgid "Remove" +msgstr "Eliminar" + +msgid "action time" +msgstr "horo dil ago" + +msgid "user" +msgstr "" + +msgid "content type" +msgstr "" + +msgid "object id" +msgstr "id dil objekto" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/3/library/functions.html#repr) +msgid "object repr" +msgstr "repr dil objekto" + +msgid "action flag" +msgstr "flago dil ago" + +msgid "change message" +msgstr "chanjar mesajo" + +msgid "log entry" +msgstr "logo informo" + +msgid "log entries" +msgstr "logo informi" + +#, python-format +msgid "Added \"%(object)s\"." +msgstr "\"%(object)s\" agregesis." + +#, python-format +msgid "Changed \"%(object)s\" - %(changes)s" +msgstr "\"%(object)s\" chanjesis - %(changes)s" + +#, python-format +msgid "Deleted \"%(object)s.\"" +msgstr "\"%(object)s\" eliminesis." + +msgid "LogEntry Object" +msgstr "LogEntry Objekto" + +#, python-brace-format +msgid "Added {name} \"{object}\"." +msgstr "" + +msgid "Added." +msgstr "" + +msgid "and" +msgstr "e" + +#, python-brace-format +msgid "Changed {fields} for {name} \"{object}\"." +msgstr "" + +#, python-brace-format +msgid "Changed {fields}." +msgstr "" + +#, python-brace-format +msgid "Deleted {name} \"{object}\"." +msgstr "" + +msgid "No fields changed." +msgstr "Nula feldo chanjesis." + +msgid "None" +msgstr "Nula" + +msgid "" +"Hold down \"Control\", or \"Command\" on a Mac, to select more than one." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was added successfully. You may edit it again below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was added successfully. You may add another {name} " +"below." +msgstr "" + +#, python-brace-format +msgid "The {name} \"{obj}\" was added successfully." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was changed successfully. You may edit it again below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was changed successfully. You may add another {name} " +"below." +msgstr "" + +#, python-brace-format +msgid "The {name} \"{obj}\" was changed successfully." +msgstr "" + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" +"Onu devas selektar la objekti por aplikar oli irga ago. Nula objekto " +"chanjesis." + +msgid "No action selected." +msgstr "Nula ago selektesis." + +#, python-format +msgid "The %(name)s \"%(obj)s\" was deleted successfully." +msgstr "La %(name)s \"%(obj)s\" eliminesis sucesoze." + +#, python-format +msgid "%(name)s with ID \"%(key)s\" doesn't exist. Perhaps it was deleted?" +msgstr "" + +#, python-format +msgid "Add %s" +msgstr "Agregar %s" + +#, python-format +msgid "Change %s" +msgstr "Chanjar %s" + +msgid "Database error" +msgstr "Eroro del datumaro" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "%(count)s %(name)s chanjesis sucesoze." +msgstr[1] "%(count)s %(name)s chanjesis sucesoze." + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "%(total_count)s selektita" +msgstr[1] "La %(total_count)s selektita" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "Selektita 0 di %(cnt)s" + +#, python-format +msgid "Change history: %s" +msgstr "Modifikuro historio: %s" + +#. Translators: Model verbose name and instance representation, +#. suitable to be an item in a list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "%(class_name)s %(instance)s" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" +"Por eliminar %(class_name)s %(instance)s on mustas eliminar la sequanta " +"protektita objekti relatita: %(related_objects)s" + +msgid "Django site admin" +msgstr "Django situo admin" + +msgid "Django administration" +msgstr "Django administreyo" + +msgid "Site administration" +msgstr "Administrayo dil ret-situo" + +msgid "Log in" +msgstr "Startar sesiono" + +#, python-format +msgid "%(app)s administration" +msgstr "" + +msgid "Page not found" +msgstr "La pagino ne renkontresis" + +msgid "We're sorry, but the requested page could not be found." +msgstr "Pardonez, ma la demandita pagino ne renkontresis." + +msgid "Home" +msgstr "Hemo" + +msgid "Server error" +msgstr "Eroro del servilo" + +msgid "Server error (500)" +msgstr "Eroro del servilo (500)" + +msgid "Server Error (500)" +msgstr "Eroro del servilo (500)" + +msgid "" +"There's been an error. It's been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" +"Eroro eventis. Ico informesis per e-posto a la administranti dil ret-situo e " +"la eroro esos korektigata balde. Danko pro vua pacienteso." + +msgid "Run the selected action" +msgstr "Exekutar la selektita ago" + +msgid "Go" +msgstr "Irar" + +msgid "Click here to select the objects across all pages" +msgstr "Kliktez hike por selektar la objekti di omna pagini" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "Selektar omna %(total_count)s %(module_name)s" + +msgid "Clear selection" +msgstr "Desfacar selekto" + +msgid "" +"First, enter a username and password. Then, you'll be able to edit more user " +"options." +msgstr "" +"Unesme, skribez uzer-nomo ed pasvorto. Pos, vu povos modifikar altra uzer-" +"selekto." + +msgid "Enter a username and password." +msgstr "Skribez uzer-nomo ed pasvorto." + +msgid "Change password" +msgstr "Chanjar pasvorto" + +msgid "Please correct the error below." +msgstr "Korektigez la eroro infre." + +msgid "Please correct the errors below." +msgstr "Korektigez la erori infre." + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "Skribez nova pasvorto por la uzero %(username)s." + +msgid "Welcome," +msgstr "Bonvenez," + +msgid "View site" +msgstr "" + +msgid "Documentation" +msgstr "Dokumento" + +msgid "Log out" +msgstr "Klozar sesiono" + +#, python-format +msgid "Add %(name)s" +msgstr "Agregar %(name)s" + +msgid "History" +msgstr "Historio" + +msgid "View on site" +msgstr "Vidar en la ret-situo" + +msgid "Filter" +msgstr "Filtrar" + +msgid "Remove from sorting" +msgstr "Eskartar de klasifiko" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "Precedo dil klasifiko: %(priority_number)s" + +msgid "Toggle sorting" +msgstr "Aktivar/desaktivar klasifiko" + +msgid "Delete" +msgstr "Eliminar" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" +"Eliminar la %(object_name)s '%(escaped_object)s' eliminos relatita objekti, " +"ma vua account ne havas permiso por eliminar la sequanta objekti:" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" +"Eliminar la %(object_name)s '%(escaped_object)s' eliminus la sequanta " +"protektita objekti relatita:" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" +"Ka vu volas eliminar la %(object_name)s \"%(escaped_object)s\"? Omna " +"sequanta objekti relatita eliminesos:" + +msgid "Objects" +msgstr "" + +msgid "Yes, I'm sure" +msgstr "Yes, me esas certa" + +msgid "No, take me back" +msgstr "" + +msgid "Delete multiple objects" +msgstr "Eliminar multopla objekti" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" +"Eliminar la selektita %(objects_name)s eliminos relatita objekti, ma vua " +"account ne havas permiso por eliminar la sequanta objekti:" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" +"Eliminar la selektita %(objects_name)s eliminos la sequanta protektita " +"objekti relatita:" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" +"Ka vu volas eliminar la selektita %(objects_name)s? Omna sequanta objekti ed " +"olia relatita objekti eliminesos:" + +msgid "Change" +msgstr "Modifikar" + +msgid "Delete?" +msgstr "Ka eliminar?" + +#, python-format +msgid " By %(filter_title)s " +msgstr "Per %(filter_title)s " + +msgid "Summary" +msgstr "" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "Modeli en la %(name)s apliko" + +msgid "Add" +msgstr "Agregar" + +msgid "You don't have permission to edit anything." +msgstr "Vu ne havas permiso por facar modifiki." + +msgid "Recent actions" +msgstr "" + +msgid "My actions" +msgstr "" + +msgid "None available" +msgstr "Nulo disponebla" + +msgid "Unknown content" +msgstr "Nekonocata kontenajo" + +msgid "" +"Something's wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" +"Vua datumaro instaluro esas defektiva. Verifikez ke la datumaro tabeli " +"kreadesis e ke la uzero havas permiso por lektar la datumaro." + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" + +msgid "Forgotten your password or username?" +msgstr "Ka vu obliviis vua pasvorto od uzer-nomo?" + +msgid "Date/time" +msgstr "Dato/horo" + +msgid "User" +msgstr "Uzero" + +msgid "Action" +msgstr "Ago" + +msgid "" +"This object doesn't have a change history. It probably wasn't added via this " +"admin site." +msgstr "" +"Ica objekto ne havas chanjo-historio. Olu forsan ne agregesis per ica " +"administrala ret-situo." + +msgid "Show all" +msgstr "Montrar omni" + +msgid "Save" +msgstr "Salvar" + +msgid "Popup closing..." +msgstr "" + +#, python-format +msgid "Change selected %(model)s" +msgstr "" + +#, python-format +msgid "Add another %(model)s" +msgstr "" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "" + +msgid "Search" +msgstr "Serchar" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "%(counter)s resulto" +msgstr[1] "%(counter)s resulti" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "%(full_result_count)s totala" + +msgid "Save as new" +msgstr "Salvar kom nova" + +msgid "Save and add another" +msgstr "Salvar ed agregar altra" + +msgid "Save and continue editing" +msgstr "Salvar e durar la modifiko" + +msgid "Thanks for spending some quality time with the Web site today." +msgstr "Danko pro vua spensita tempo en la ret-situo hodie." + +msgid "Log in again" +msgstr "Ristartar sesiono" + +msgid "Password change" +msgstr "Pasvorto chanjo" + +msgid "Your password was changed." +msgstr "Vua pasvorto chanjesis." + +msgid "" +"Please enter your old password, for security's sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" +"Por kauciono, skribez vua anta pasvorto e pos skribez vua nova pasvorto " +"dufoye por verifikar ke olu skribesis korekte." + +msgid "Change my password" +msgstr "Modifikar mea pasvorto" + +msgid "Password reset" +msgstr "Pasvorto chanjo" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "Vua pasvorto chanjesis. Vu darfas startar sesiono nun." + +msgid "Password reset confirmation" +msgstr "Pasvorto chanjo konfirmo" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" +"Skribez vua nova pasvorto dufoye por verifikar ke olu skribesis korekte." + +msgid "New password:" +msgstr "Nova pasvorto:" + +msgid "Confirm password:" +msgstr "Konfirmez pasvorto:" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"La link por chanjar pasvorto ne esis valida, forsan pro ke olu ja uzesis. " +"Demandez nova pasvorto chanjo." + +msgid "" +"We've emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" + +msgid "" +"If you don't receive an email, please make sure you've entered the address " +"you registered with, and check your spam folder." +msgstr "" +"Se vu ne recevas mesajo, verifikez ke vu skribis la sama e-posto adreso " +"uzita por vua registro e lektez vua spam mesaji." + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" +"Vu esas recevanta ica mesajo pro ke vu demandis pasvorto chanjo por vua " +"uzero account che %(site_name)s." + +msgid "Please go to the following page and choose a new password:" +msgstr "Irez al sequanta pagino e selektez nova pasvorto:" + +msgid "Your username, in case you've forgotten:" +msgstr "Vua uzernomo, se vu obliviis olu:" + +msgid "Thanks for using our site!" +msgstr "Danko pro uzar nia ret-situo!" + +#, python-format +msgid "The %(site_name)s team" +msgstr "La equipo di %(site_name)s" + +msgid "" +"Forgotten your password? Enter your email address below, and we'll email " +"instructions for setting a new one." +msgstr "" +"Ka vu obliviis vua pasvorto? Skribez vua e-posto adreso infre e ni sendos " +"instrucioni por kreadar nova pasvorto." + +msgid "Email address:" +msgstr "E-postala adreso:" + +msgid "Reset my password" +msgstr "Chanjar mea pasvorto" + +msgid "All dates" +msgstr "Omna dati" + +#, python-format +msgid "Select %s" +msgstr "Selektar %s" + +#, python-format +msgid "Select %s to change" +msgstr "Selektar %s por chanjar" + +msgid "Date:" +msgstr "Dato:" + +msgid "Time:" +msgstr "Horo:" + +msgid "Lookup" +msgstr "Serchado" + +msgid "Currently:" +msgstr "Aktuale" + +msgid "Change:" +msgstr "Chanjo:" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/io/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/io/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..fba64da89f8fb8d99dd31e965014a6bd1a0d0105 GIT binary patch literal 464 zcmYLE!A=4(6x8TxkDfi$!~+E1wj~mI(vO)*>gO7K3R-OZ<&Ms9NV3fhTa$Z{_NVb$Fx6w?M z)&-dOTxamK&OIbnkZAgvK;J1D&~^tj*j$V8-NYnJY+?TnRGD zEU7I*Cr`Hlfkh)k6F~WCMbhjeU(@* zsBNHSA+_m}bRnHrq4$;yp>yaa(*OVf literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/io/LC_MESSAGES/djangojs.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/io/LC_MESSAGES/djangojs.po new file mode 100644 index 0000000000..d7be82ec53 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/io/LC_MESSAGES/djangojs.po @@ -0,0 +1,145 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-01-17 11:07+0100\n" +"PO-Revision-Date: 2014-10-05 20:11+0000\n" +"Last-Translator: Jannis Leidel \n" +"Language-Team: Ido (http://www.transifex.com/projects/p/django/language/" +"io/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: io\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, javascript-format +msgid "Available %s" +msgstr "" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "" + +msgid "Filter" +msgstr "" + +msgid "Choose all" +msgstr "" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "" + +msgid "Choose" +msgstr "" + +msgid "Remove" +msgstr "" + +#, javascript-format +msgid "Chosen %s" +msgstr "" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" + +msgid "Remove all" +msgstr "" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "" + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "" +msgstr[1] "" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" + +msgid "" +"You have selected an action, but you haven't saved your changes to " +"individual fields yet. Please click OK to save. You'll need to re-run the " +"action." +msgstr "" + +msgid "" +"You have selected an action, and you haven't made any changes on individual " +"fields. You're probably looking for the Go button rather than the Save " +"button." +msgstr "" + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "" +msgstr[1] "" + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "" +msgstr[1] "" + +msgid "Now" +msgstr "" + +msgid "Clock" +msgstr "" + +msgid "Choose a time" +msgstr "" + +msgid "Midnight" +msgstr "" + +msgid "6 a.m." +msgstr "" + +msgid "Noon" +msgstr "" + +msgid "Cancel" +msgstr "" + +msgid "Today" +msgstr "" + +msgid "Calendar" +msgstr "" + +msgid "Yesterday" +msgstr "" + +msgid "Tomorrow" +msgstr "" + +msgid "" +"January February March April May June July August September October November " +"December" +msgstr "" + +msgid "S M T W T F S" +msgstr "" + +msgid "Show" +msgstr "" + +msgid "Hide" +msgstr "" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/is/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/is/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..553296860530c3d37bca2f335b2cc9b770a3af40 GIT binary patch literal 16804 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/is/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/is/LC_MESSAGES/django.po new file mode 100644 index 0000000000..868a4528c6 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/is/LC_MESSAGES/django.po @@ -0,0 +1,720 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Dagur Ammendrup , 2019 +# Hafsteinn Einarsson , 2011-2012 +# Jannis Leidel , 2011 +# 479d446b5da12875beba10cac54e9faf_a7ca1e7 , 2013 +# Thordur Sigurdsson , 2016-2020 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-07-14 19:53+0200\n" +"PO-Revision-Date: 2020-07-14 22:38+0000\n" +"Last-Translator: Transifex Bot <>\n" +"Language-Team: Icelandic (http://www.transifex.com/django/django/language/" +"is/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: is\n" +"Plural-Forms: nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);\n" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "Eyddi %(count)d %(items)s." + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "Get ekki eytt %(name)s" + +msgid "Are you sure?" +msgstr "Ertu viss?" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "Eyða völdum %(verbose_name_plural)s" + +msgid "Administration" +msgstr "Vefstjórn" + +msgid "All" +msgstr "Allt" + +msgid "Yes" +msgstr "Já" + +msgid "No" +msgstr "Nei" + +msgid "Unknown" +msgstr "Óþekkt" + +msgid "Any date" +msgstr "Allar dagsetningar" + +msgid "Today" +msgstr "Dagurinn í dag" + +msgid "Past 7 days" +msgstr "Síðustu 7 dagar" + +msgid "This month" +msgstr "Þessi mánuður" + +msgid "This year" +msgstr "Þetta ár" + +msgid "No date" +msgstr "Engin dagsetning" + +msgid "Has date" +msgstr "Hefur dagsetningu" + +msgid "Empty" +msgstr "Tómt" + +msgid "Not empty" +msgstr "Ekki tómt" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" +"Vinsamlegast sláðu inn rétt %(username)s og lykilorð fyrir starfsmanna " +"aðgang. Takið eftir að í báðum reitum skipta há- og lágstafir máli." + +msgid "Action:" +msgstr "Aðgerð:" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "Bæta við öðrum %(verbose_name)s" + +msgid "Remove" +msgstr "Fjarlægja" + +msgid "Addition" +msgstr "Viðbót" + +msgid "Change" +msgstr "Breyta" + +msgid "Deletion" +msgstr "Eyðing" + +msgid "action time" +msgstr "tími aðgerðar" + +msgid "user" +msgstr "notandi" + +msgid "content type" +msgstr "efnistag" + +msgid "object id" +msgstr "kenni hlutar" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/library/functions.html#repr) +msgid "object repr" +msgstr "framsetning hlutar" + +msgid "action flag" +msgstr "aðgerðarveifa" + +msgid "change message" +msgstr "breyta skilaboði" + +msgid "log entry" +msgstr "kladdafærsla" + +msgid "log entries" +msgstr "kladdafærslur" + +#, python-format +msgid "Added “%(object)s”." +msgstr "Bætti við „%(object)s“." + +#, python-format +msgid "Changed “%(object)s” — %(changes)s" +msgstr "Breytti „%(object)s“ — %(changes)s" + +#, python-format +msgid "Deleted “%(object)s.”" +msgstr "Eyddi „%(object)s.“" + +msgid "LogEntry Object" +msgstr "LogEntry hlutur" + +#, python-brace-format +msgid "Added {name} “{object}”." +msgstr "Bætti við {name} „{object}“." + +msgid "Added." +msgstr "Bætti við." + +msgid "and" +msgstr "og" + +#, python-brace-format +msgid "Changed {fields} for {name} “{object}”." +msgstr "Breytti {fields} fyrir {name} „{object}“." + +#, python-brace-format +msgid "Changed {fields}." +msgstr "Breytti {fields}." + +#, python-brace-format +msgid "Deleted {name} “{object}”." +msgstr "Eyddi {name} „{object}“." + +msgid "No fields changed." +msgstr "Engum reitum breytt." + +msgid "None" +msgstr "Ekkert" + +msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." +msgstr "" +"Haltu inni „Control“, eða „Command“ á Mac til þess að velja fleira en eitt." + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully." +msgstr "{name} „{obj}“ var bætt við." + +msgid "You may edit it again below." +msgstr "Þú mátt breyta þessu aftur hér að neðan." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was added successfully. You may add another {name} below." +msgstr "" +"{name} „{obj}“ hefur verið bætt við. Þú getur bætt við öðru {name} að neðan." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may edit it again below." +msgstr "{name} „{obj}“ hefur verið breytt. Þú getur breytt því aftur að neðan." + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully. You may edit it again below." +msgstr "" +"{name} „{obj}“ hefur verið bætt við. Þú getur breytt því aftur að neðan." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may add another {name} " +"below." +msgstr "" +"{name} \"{obj}\" hefur verið breytt. Þú getur bætt við öðru {name} að neðan." + +#, python-brace-format +msgid "The {name} “{obj}” was changed successfully." +msgstr "{name} „{obj}“ hefur verið breytt." + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" +"Hlutir verða að vera valdir til að framkvæma aðgerðir á þeim. Engu hefur " +"verið breytt." + +msgid "No action selected." +msgstr "Engin aðgerð valin." + +#, python-format +msgid "The %(name)s “%(obj)s” was deleted successfully." +msgstr "%(name)s „%(obj)s“ var eytt." + +#, python-format +msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" +msgstr "%(name)s með ID \"%(key)s\" er ekki til. Var því mögulega eytt?" + +#, python-format +msgid "Add %s" +msgstr "Bæta við %s" + +#, python-format +msgid "Change %s" +msgstr "Breyta %s" + +#, python-format +msgid "View %s" +msgstr "Skoða %s" + +msgid "Database error" +msgstr "Gagnagrunnsvilla" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "%(count)s %(name)s var breytt." +msgstr[1] "%(count)s %(name)s var breytt." + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "Allir %(total_count)s valdir" +msgstr[1] "Allir %(total_count)s valdir" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "0 af %(cnt)s valin" + +#, python-format +msgid "Change history: %s" +msgstr "Breytingarsaga: %s" + +#. Translators: Model verbose name and instance representation, +#. suitable to be an item in a list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "%(class_name)s %(instance)s" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" +"Að eyða %(class_name)s %(instance)s þyrfti að eyða eftirfarandi tengdum " +"hlutum: %(related_objects)s" + +msgid "Django site admin" +msgstr "Django vefstjóri" + +msgid "Django administration" +msgstr "Django vefstjórn" + +msgid "Site administration" +msgstr "Vefstjóri" + +msgid "Log in" +msgstr "Skrá inn" + +#, python-format +msgid "%(app)s administration" +msgstr "%(app)s vefstjórn" + +msgid "Page not found" +msgstr "Síða fannst ekki" + +msgid "We’re sorry, but the requested page could not be found." +msgstr "Því miður fannst umbeðin síða ekki." + +msgid "Home" +msgstr "Heim" + +msgid "Server error" +msgstr "Kerfisvilla" + +msgid "Server error (500)" +msgstr "Kerfisvilla (500)" + +msgid "Server Error (500)" +msgstr "Kerfisvilla (500)" + +msgid "" +"There’s been an error. It’s been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" +"Villa kom upp. Hún hefur verið tilkynnt til vefstjóra með tölvupósti og ætti " +"að lagast fljótlega. Þökkum þolinmæðina." + +msgid "Run the selected action" +msgstr "Keyra valda aðgerð" + +msgid "Go" +msgstr "Áfram" + +msgid "Click here to select the objects across all pages" +msgstr "Smelltu hér til að velja alla hluti" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "Velja alla %(total_count)s %(module_name)s" + +msgid "Clear selection" +msgstr "Hreinsa val" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "Módel í appinu %(name)s" + +msgid "Add" +msgstr "Bæta við" + +msgid "View" +msgstr "Skoða" + +msgid "You don’t have permission to view or edit anything." +msgstr "Þú hefur ekki réttindi til að skoða eða breyta neinu." + +msgid "" +"First, enter a username and password. Then, you’ll be able to edit more user " +"options." +msgstr "" +"Fyrst, settu inn notendanafn og lykilorð. Svo geturðu breytt öðrum " +"notendamöguleikum." + +msgid "Enter a username and password." +msgstr "Sláðu inn notandanafn og lykilorð." + +msgid "Change password" +msgstr "Breyta lykilorði" + +msgid "Please correct the error below." +msgstr "Vinsamlegast lagfærðu villuna fyrir neðan." + +msgid "Please correct the errors below." +msgstr "Vinsamlegast leiðréttu villurnar hér að neðan." + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "Settu inn nýtt lykilorð fyrir notandann %(username)s." + +msgid "Welcome," +msgstr "Velkomin(n)," + +msgid "View site" +msgstr "Skoða vef" + +msgid "Documentation" +msgstr "Skjölun" + +msgid "Log out" +msgstr "Skrá út" + +#, python-format +msgid "Add %(name)s" +msgstr "Bæta við %(name)s" + +msgid "History" +msgstr "Saga" + +msgid "View on site" +msgstr "Skoða á vef" + +msgid "Filter" +msgstr "Sía" + +msgid "Clear all filters" +msgstr "Hreinsa allar síur" + +msgid "Remove from sorting" +msgstr "Taka úr röðun" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "Forgangur röðunar: %(priority_number)s" + +msgid "Toggle sorting" +msgstr "Röðun af/á" + +msgid "Delete" +msgstr "Eyða" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" +"Eyðing á %(object_name)s „%(escaped_object)s“ hefði í för með sér eyðingu á " +"tengdum hlutum en þú hefur ekki réttindi til að eyða eftirfarandi hlutum:" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" +"Að eyða %(object_name)s „%(escaped_object)s“ þyrfti að eyða eftirfarandi " +"tengdum hlutum:" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" +"Ertu viss um að þú viljir eyða %(object_name)s „%(escaped_object)s“? Öllu " +"eftirfarandi verður eytt:" + +msgid "Objects" +msgstr "Hlutir" + +msgid "Yes, I’m sure" +msgstr "Já ég er viss." + +msgid "No, take me back" +msgstr "Nei, fara til baka" + +msgid "Delete multiple objects" +msgstr "Eyða mörgum hlutum." + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" +"Að eyða völdu %(objects_name)s leiðir til þess að skyldum hlutum er eytt, en " +"þinn aðgangur hefur ekki réttindi til að eyða eftirtöldum hlutum:" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" +"Að eyða völdum %(objects_name)s myndi leiða til þess að eftirtöldum skyldum " +"hlutum yrði eytt:" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" +"Ertu viss um að þú viljir eyða völdum %(objects_name)s? Öllum eftirtöldum " +"hlutum og skyldum hlutum verður eytt:" + +msgid "Delete?" +msgstr "Eyða?" + +#, python-format +msgid " By %(filter_title)s " +msgstr " Eftir %(filter_title)s " + +msgid "Summary" +msgstr "Samantekt" + +msgid "Recent actions" +msgstr "Nýlegar aðgerðir" + +msgid "My actions" +msgstr "Mínar aðgerðir" + +msgid "None available" +msgstr "Engin fáanleg" + +msgid "Unknown content" +msgstr "Óþekkt innihald" + +msgid "" +"Something’s wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" +"Eitthvað er að gagnagrunnsuppsetningu. Gakktu úr skugga um að allar töflur " +"séu til staðar og að notandinn hafi aðgang að grunninum." + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" +"Þú ert skráður inn sem %(username)s, en ert ekki með réttindi að þessari " +"síðu. Viltu skrá þig inn sem annar notandi?" + +msgid "Forgotten your password or username?" +msgstr "Gleymt notandanafn eða lykilorð?" + +msgid "Toggle navigation" +msgstr "" + +msgid "Date/time" +msgstr "Dagsetning/tími" + +msgid "User" +msgstr "Notandi" + +msgid "Action" +msgstr "Aðgerð" + +msgid "" +"This object doesn’t have a change history. It probably wasn’t added via this " +"admin site." +msgstr "" +"Þessi hlutur hefur enga breytingasögu. Hann var líklega ekki búinn til á " +"þessu stjórnunarsvæði." + +msgid "Show all" +msgstr "Sýna allt" + +msgid "Save" +msgstr "Vista" + +msgid "Popup closing…" +msgstr "Sprettigluggi lokast..." + +msgid "Search" +msgstr "Leita" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "%(counter)s niðurstaða" +msgstr[1] "%(counter)s niðurstöður" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "%(full_result_count)s í heildina" + +msgid "Save as new" +msgstr "Vista sem nýtt" + +msgid "Save and add another" +msgstr "Vista og búa til nýtt" + +msgid "Save and continue editing" +msgstr "Vista og halda áfram að breyta" + +msgid "Save and view" +msgstr "Vista og skoða" + +msgid "Close" +msgstr "Loka" + +#, python-format +msgid "Change selected %(model)s" +msgstr "Breyta völdu %(model)s" + +#, python-format +msgid "Add another %(model)s" +msgstr "Bæta við %(model)s" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "Eyða völdu %(model)s" + +msgid "Thanks for spending some quality time with the Web site today." +msgstr "Takk fyrir að verja tíma í vefsíðuna í dag." + +msgid "Log in again" +msgstr "Skráðu þig inn aftur" + +msgid "Password change" +msgstr "Breyta lykilorði" + +msgid "Your password was changed." +msgstr "Lykilorði þínu var breytt" + +msgid "" +"Please enter your old password, for security’s sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" +"Vinsamlegast skrifaðu gamla lykilorðið þitt til öryggis. Sláðu svo nýja " +"lykilorðið tvisvar inn svo að hægt sé að ganga úr skugga um að þú hafir ekki " +"gert innsláttarvillu." + +msgid "Change my password" +msgstr "Breyta lykilorðinu mínu" + +msgid "Password reset" +msgstr "Endurstilla lykilorð" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "Lykilorðið var endurstillt. Þú getur núna skráð þig inn á vefsvæðið." + +msgid "Password reset confirmation" +msgstr "Staðfesting endurstillingar lykilorðs" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" +"Vinsamlegast settu inn nýja lykilorðið tvisvar til að forðast " +"innsláttarvillur." + +msgid "New password:" +msgstr "Nýtt lykilorð:" + +msgid "Confirm password:" +msgstr "Staðfestu lykilorð:" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"Endurstilling lykilorðs tókst ekki. Slóðin var ógild. Hugsanlega hefur hún " +"nú þegar verið notuð. Vinsamlegast biddu um nýja endurstillingu." + +msgid "" +"We’ve emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" +"Við höfum sent þér tölvupóst með leiðbeiningum til að endurstilla lykilorðið " +"þitt, sé aðgangur til með netfanginu sem þú slóst inn. Þú ættir að fá " +"leiðbeiningarnar fljótlega. " + +msgid "" +"If you don’t receive an email, please make sure you’ve entered the address " +"you registered with, and check your spam folder." +msgstr "" +"Ef þú færð ekki tölvupóstinn, gakktu úr skugga um að netfangið sem þú slóst " +"inn sé það sama og þú notaðir til að stofna aðganginn og að það hafi ekki " +"lent í spamsíu." + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" +"Þú ert að fá þennan tölvupóst því þú baðst um endurstillingu á lykilorði " +"fyrir aðganginn þinn á %(site_name)s." + +msgid "Please go to the following page and choose a new password:" +msgstr "Vinsamlegast farðu á eftirfarandi síðu og veldu nýtt lykilorð:" + +msgid "Your username, in case you’ve forgotten:" +msgstr "Notandanafnið þitt ef þú skyldir hafa gleymt því:" + +msgid "Thanks for using our site!" +msgstr "Takk fyrir að nota vefinn okkar!" + +#, python-format +msgid "The %(site_name)s team" +msgstr "%(site_name)s hópurinn" + +msgid "" +"Forgotten your password? Enter your email address below, and we’ll email " +"instructions for setting a new one." +msgstr "" +"Hefurðu gleymt lykilorðinu þínu? Sláðu inn netfangið þitt hér að neðan og " +"við sendum þér tölvupóst með leiðbeiningum til að setja nýtt lykilorð. " + +msgid "Email address:" +msgstr "Netfang:" + +msgid "Reset my password" +msgstr "Endursstilla lykilorðið mitt" + +msgid "All dates" +msgstr "Allar dagsetningar" + +#, python-format +msgid "Select %s" +msgstr "Veldu %s" + +#, python-format +msgid "Select %s to change" +msgstr "Veldu %s til að breyta" + +#, python-format +msgid "Select %s to view" +msgstr "Veldu %s til að skoða" + +msgid "Date:" +msgstr "Dagsetning:" + +msgid "Time:" +msgstr "Tími:" + +msgid "Lookup" +msgstr "Fletta upp" + +msgid "Currently:" +msgstr "Eins og er:" + +msgid "Change:" +msgstr "Breyta:" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/is/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/is/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..29c2bc12ac009b2f2f7d1016be981cf0d3623716 GIT binary patch literal 5174 zcmb`KO^h5z6~_xQAz>2|;*dZ>LMod$Yvau9N1U}8XA?X2PGTo(Ti&sQ1wqtI*L2rT zch%5cJ-Y)DvV~B>!61?#@g-+4E^tDEQzSSb4j_aC;(+-0zwVmZ z@px@4nbuVQx?a7idiCnn$Go$t^fiWOH_`)?-p$x?VhJxiCvIkJ2Y3>E5BMX;pMvl>{YzT zv@e6VfN!|`w;bOB(FOY+coTRQq;|gV%6|xc9Qli29lRHfP0bgr4E`3p8~mH&t(YXze*h%; zjLX-+4AU+u&p1Prw=Q4^DpHokjULNPgeuI0aI_Pl7a0bB_C5`3sJRLF(ryNcx`! zzW@e~e*$TKI`1#+{VYiKoB*lbmq56Hy$O=uDoEox3!Vjk0KNsjj6sqe{{~6#=1q*v zgLi_|?@{n8;LG4Q!9Rlm_!=gG;_j~?wflFM|EJ@B9B;zp(D-k0yd9)^ce(sMj`utH zLynJtm_|0?xYco+W7%;M#L{QeF2CIoBDR%Y?jc`{yYFd`Y@#@P7-<3t?qJ)I9z?1j zJ%U8*|7j$O$1)Q6l^%)~s2sgIb<>$aBkv`(`v@YR}+}|YnDAF@XGnBzY^G*+~ z6M80*Xf7W|qL`+5nnI%WNqZbUnAYOiyd{z0)`XiD-@K)%Ej}TTO)EWit+H7zDp7^a z@(y87CsrZbllp05*`BUYp=gAXZ%)`=p_?*fdjn$<>A(fwC+twJuA-rw9nOV$-9+lV zu~0SJ+#24@o8ux3A?CtzgI+3ZZ@)a2k?G339I8d_b+vu6DWisrSxq+LRKz`2Q=vuv zdF4rVK%#QwSLO{FDD7QWvm2{+i%}mm%j{6o8uGxA+))nXFSaNVniGIlO2}{Vv(Ao$O;7FxW6LdG%lJ}8U1+fzn)Xjzd!K} z%Ol|-}B(}mt zqY=w)g-1r)fajZG3GY#PzCD((OO6!u_oEU%MvD47R0$s=MQ)!efukkZxk}i+t`KVp z@u+sbyOr=BQOAAUY&5c?|aoh5vX6uCX61dfyp_LLI7n9=Z?vL=y8sq(SIhssA}SCML&PO~bXnVOj{Pi-$x&GP9T z)hBjro5C~pqDXAH9t)j>!kW0s>w$?qEP_SlV@yecW%iUUWV@F{MI}$8j`maG%W_?c zsLJ=_1jTl#ntV%OZKpapxxBnwvDBt&$(2geM3aTFeLy{LU{WQMTgMjmFU+qGYq~Nu zwikgaHSEGZRpnN$*vU>Pl-@;4Gft$PJ6f-mcdqMEUo9Dz=XKL~*sQC3XG7V6p;a6a zV~4{u7Gb$&;wY(d-O01b+{`Xse9mpbA1&qF@>V6F%ZMb1PMocUEL-)n3%HKdvQ?o&>C*+``Rt6ff_GJRjvd2x zm=PcU*JvK;vSct0%I?66(7r2abBimuxZsXd9wZyYkPD={ADUBYZ zX=Rs|vhx~8?sYYgMmO99H6UA7;n2Ae8?M%b&d&F5LGYSjrfswH`BiW*C2YQzohv3f zjaagN9m+1ELUtNEmw@x~+mPa-1#fmKT+(965|NRSZTo{97l?-83GyG zl|DkNGHR>FvDV^UM6j2_+{?`CN2LA#SeLtSU>)qeih-wS<+1D}PR`iJ$+XyxRVxqE z+=(mXuKwCe5dXQ;MKO@8x}9aGxSySgF@Cr|kS)01tuQq0%NUK~PFWPlc3WYJuoiHH z_bhe*L6e1Rg|cbnd_=`qX>IHxSly@|qO|y$sEJri@IZ@BMO`Pn5Aw`^{>)Hr(DvKQyp z=e|JvRM*o#^-+lo%YwX literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/is/LC_MESSAGES/djangojs.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/is/LC_MESSAGES/djangojs.po new file mode 100644 index 0000000000..5ddb17c0c3 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/is/LC_MESSAGES/djangojs.po @@ -0,0 +1,267 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# gudbergur , 2012 +# Hafsteinn Einarsson , 2011-2012 +# Jannis Leidel , 2011 +# Matt R, 2018 +# Thordur Sigurdsson , 2016-2017,2020-2021 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-01-15 09:00+0100\n" +"PO-Revision-Date: 2021-04-06 17:37+0000\n" +"Last-Translator: Thordur Sigurdsson \n" +"Language-Team: Icelandic (http://www.transifex.com/django/django/language/" +"is/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: is\n" +"Plural-Forms: nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);\n" + +#, javascript-format +msgid "Available %s" +msgstr "Fáanleg %s" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" +"Þetta er listi af því %s sem er í boði. Þú getur ákveðið hluti með því að " +"velja þá í boxinu að neðan og ýta svo á \"Velja\" örina milli boxana tveggja." + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "Skrifaðu í boxið til að sía listann af því %s sem er í boði." + +msgid "Filter" +msgstr "Sía" + +msgid "Choose all" +msgstr "Velja öll" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "Smelltu til að velja allt %s í einu." + +msgid "Choose" +msgstr "Veldu" + +msgid "Remove" +msgstr "Fjarlægja" + +#, javascript-format +msgid "Chosen %s" +msgstr "Valin %s" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" +"Þetta er listinn af völdu %s. Þú getur fjarlægt hluti með því að velja þá í " +"boxinu að neðan og ýta svo á \"Eyða\" örina á milli boxana tveggja." + +msgid "Remove all" +msgstr "Eyða öllum" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "Smelltu til að fjarlægja allt valið %s í einu." + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] " %(sel)s í %(cnt)s valin" +msgstr[1] " %(sel)s í %(cnt)s valin" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" +"Enn eru óvistaðar breytingar í reitum. Ef þú keyrir aðgerð munu breytingar " +"ekki verða vistaðar." + +msgid "" +"You have selected an action, but you haven’t saved your changes to " +"individual fields yet. Please click OK to save. You’ll need to re-run the " +"action." +msgstr "" +"Þú hefur valið aðgerð en hefur ekki vistað breytingar á reitum. Vinsamlegast " +"veldu 'Í lagi' til að vista. Þú þarft að endurkeyra aðgerðina." + +msgid "" +"You have selected an action, and you haven’t made any changes on individual " +"fields. You’re probably looking for the Go button rather than the Save " +"button." +msgstr "" +"Þú hefur valið aðgerð en hefur ekki gert breytingar á reitum. Þú ert líklega " +"að leita að 'Fara' hnappnum frekar en 'Vista' hnappnum." + +msgid "Now" +msgstr "Núna" + +msgid "Midnight" +msgstr "Miðnætti" + +msgid "6 a.m." +msgstr "6 f.h." + +msgid "Noon" +msgstr "Hádegi" + +msgid "6 p.m." +msgstr "6 e.h." + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "Athugaðu að þú ert %s klukkustund á undan tíma vefþjóns." +msgstr[1] "Athugaðu að þú ert %s klukkustundum á undan tíma vefþjóns." + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "Athugaðu að þú ert %s klukkustund á eftir tíma vefþjóns." +msgstr[1] "Athugaðu að þú ert %s klukkustundum á eftir tíma vefþjóns." + +msgid "Choose a Time" +msgstr "Veldu tíma" + +msgid "Choose a time" +msgstr "Veldu tíma" + +msgid "Cancel" +msgstr "Hætta við" + +msgid "Today" +msgstr "Í dag" + +msgid "Choose a Date" +msgstr "Veldu dagsetningu" + +msgid "Yesterday" +msgstr "Í gær" + +msgid "Tomorrow" +msgstr "Á morgun" + +msgid "January" +msgstr "janúar" + +msgid "February" +msgstr "febrúar" + +msgid "March" +msgstr "mars" + +msgid "April" +msgstr "apríl" + +msgid "May" +msgstr "maí" + +msgid "June" +msgstr "júní" + +msgid "July" +msgstr "júlí" + +msgid "August" +msgstr "ágúst" + +msgid "September" +msgstr "september" + +msgid "October" +msgstr "október" + +msgid "November" +msgstr "nóvember" + +msgid "December" +msgstr "desember" + +msgctxt "abbrev. month January" +msgid "Jan" +msgstr "Jan" + +msgctxt "abbrev. month February" +msgid "Feb" +msgstr "Feb" + +msgctxt "abbrev. month March" +msgid "Mar" +msgstr "Mar" + +msgctxt "abbrev. month April" +msgid "Apr" +msgstr "Apr" + +msgctxt "abbrev. month May" +msgid "May" +msgstr "Maí" + +msgctxt "abbrev. month June" +msgid "Jun" +msgstr "Jún" + +msgctxt "abbrev. month July" +msgid "Jul" +msgstr "Júl" + +msgctxt "abbrev. month August" +msgid "Aug" +msgstr "Ágú" + +msgctxt "abbrev. month September" +msgid "Sep" +msgstr "Sep" + +msgctxt "abbrev. month October" +msgid "Oct" +msgstr "Okt" + +msgctxt "abbrev. month November" +msgid "Nov" +msgstr "Nóv" + +msgctxt "abbrev. month December" +msgid "Dec" +msgstr "Des" + +msgctxt "one letter Sunday" +msgid "S" +msgstr "S" + +msgctxt "one letter Monday" +msgid "M" +msgstr "M" + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "Þ" + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "M" + +msgctxt "one letter Thursday" +msgid "T" +msgstr "F" + +msgctxt "one letter Friday" +msgid "F" +msgstr "F" + +msgctxt "one letter Saturday" +msgid "S" +msgstr "L" + +msgid "Show" +msgstr "Sýna" + +msgid "Hide" +msgstr "Fela" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/it/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/it/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..a099863f8df9887ab476f72be143b2f32aacbe6b GIT binary patch literal 18505 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 OZ<`, 2018-2019 +# Davide Targa , 2021 +# Denis Darii , 2011 +# Flavio Curella , 2013 +# Franky Bonanno, 2023 +# Jannis Leidel , 2011 +# Luciano De Falco Alfano, 2016 +# Marco Bonetti, 2014 +# Mirco Grillo , 2018,2020 +# Nicola Larosa , 2013 +# palmux , 2014-2015,2021 +# Paolo Melchiorre , 2022-2023 +# Mattia Procopio , 2015 +# Stefano Brentegani , 2015 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-09-18 11:41-0300\n" +"PO-Revision-Date: 2023-12-04 07:05+0000\n" +"Last-Translator: Franky Bonanno, 2023\n" +"Language-Team: Italian (http://app.transifex.com/django/django/language/" +"it/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: it\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "Cancella %(verbose_name_plural)s selezionati" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "Cancellati/e con successo %(count)d %(items)s." + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "Impossibile cancellare %(name)s " + +msgid "Are you sure?" +msgstr "Confermi?" + +msgid "Administration" +msgstr "Amministrazione" + +msgid "All" +msgstr "Tutti" + +msgid "Yes" +msgstr "Sì" + +msgid "No" +msgstr "No" + +msgid "Unknown" +msgstr "Sconosciuto" + +msgid "Any date" +msgstr "Qualsiasi data" + +msgid "Today" +msgstr "Oggi" + +msgid "Past 7 days" +msgstr "Ultimi 7 giorni" + +msgid "This month" +msgstr "Questo mese" + +msgid "This year" +msgstr "Quest'anno" + +msgid "No date" +msgstr "Senza data" + +msgid "Has date" +msgstr "Ha la data" + +msgid "Empty" +msgstr "Vuoto" + +msgid "Not empty" +msgstr "Non vuoto" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" +"Inserisci %(username)s e password corretti per un account di staff. Nota che " +"entrambi i campi distinguono maiuscole e minuscole." + +msgid "Action:" +msgstr "Azione:" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "Aggiungi un altro %(verbose_name)s." + +msgid "Remove" +msgstr "Elimina" + +msgid "Addition" +msgstr "Aggiunta " + +msgid "Change" +msgstr "Modifica" + +msgid "Deletion" +msgstr "Eliminazione" + +msgid "action time" +msgstr "momento dell'azione" + +msgid "user" +msgstr "utente" + +msgid "content type" +msgstr "content type" + +msgid "object id" +msgstr "id dell'oggetto" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/library/functions.html#repr) +msgid "object repr" +msgstr "rappr. dell'oggetto" + +msgid "action flag" +msgstr "flag di azione" + +msgid "change message" +msgstr "messaggio di modifica" + +msgid "log entry" +msgstr "voce di log" + +msgid "log entries" +msgstr "voci di log" + +#, python-format +msgid "Added “%(object)s”." +msgstr "\"%(object)s\" aggiunto." + +#, python-format +msgid "Changed “%(object)s” — %(changes)s" +msgstr "%(object)s%(changes)s modificati" + +#, python-format +msgid "Deleted “%(object)s.”" +msgstr "\"%(object)s\" cancellato." + +msgid "LogEntry Object" +msgstr "Oggetto LogEntry" + +#, python-brace-format +msgid "Added {name} “{object}”." +msgstr "Aggiunto {name} \"{object}\"." + +msgid "Added." +msgstr "Aggiunto." + +msgid "and" +msgstr "e" + +#, python-brace-format +msgid "Changed {fields} for {name} “{object}”." +msgstr "Modificati {fields} per {name} \"{object}\"." + +#, python-brace-format +msgid "Changed {fields}." +msgstr "Modificati {fields}." + +#, python-brace-format +msgid "Deleted {name} “{object}”." +msgstr "Eliminato {name} \"{object}\"." + +msgid "No fields changed." +msgstr "Nessun campo modificato." + +msgid "None" +msgstr "Nessuno" + +msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." +msgstr "" +"Tieni premuto \"Control\", o \"Command\" su Mac, per selezionarne più di uno." + +msgid "Select this object for an action - {}" +msgstr "Seleziona questo oggetto per intraprendere un'azione - {}" + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully." +msgstr "Il {name} \"{obj}\" è stato aggiunto con successo." + +msgid "You may edit it again below." +msgstr "Puoi modificarlo di nuovo qui sotto." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was added successfully. You may add another {name} below." +msgstr "" +"Il {name} \"{obj}\" è stato aggiunto con successo. Puoi aggiungere un altro " +"{name} qui sotto." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may edit it again below." +msgstr "" +"Il {name} \"{obj}\" è stato modificato con successo. Puoi modificarlo " +"nuovamente qui sotto." + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully. You may edit it again below." +msgstr "" +"Il {name} \"{obj}\" è stato aggiunto con successo. Puoi modificarlo " +"nuovamente qui sotto." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may add another {name} " +"below." +msgstr "" +"Il {name} \"{obj}\" è stato modificato con successo. Puoi aggiungere un " +"altro {name} qui sotto." + +#, python-brace-format +msgid "The {name} “{obj}” was changed successfully." +msgstr "Il {name} \"{obj}\" è stato modificato con successo." + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" +"Occorre selezionare degli oggetti per potervi eseguire azioni. Nessun " +"oggetto è stato cambiato." + +msgid "No action selected." +msgstr "Nessuna azione selezionata." + +#, python-format +msgid "The %(name)s “%(obj)s” was deleted successfully." +msgstr "%(name)s \"%(obj)s\" cancellato correttamente." + +#, python-format +msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" +msgstr "" +"%(name)s con ID \"%(key)s\" non esiste. Probabilmente è stato cancellato?" + +#, python-format +msgid "Add %s" +msgstr "Aggiungi %s" + +#, python-format +msgid "Change %s" +msgstr "Modifica %s" + +#, python-format +msgid "View %s" +msgstr "Vista %s" + +msgid "Database error" +msgstr "Errore del database" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "%(count)s %(name)s modificato correttamente." +msgstr[1] "%(count)s %(name)s modificati correttamente." +msgstr[2] "%(count)s %(name)s modificati correttamente." + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "%(total_count)s selezionato" +msgstr[1] "Tutti i %(total_count)s selezionati" +msgstr[2] "Tutti i %(total_count)s selezionati" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "0 di %(cnt)s selezionati" + +#, python-format +msgid "Change history: %s" +msgstr "Tracciato delle modifiche: %s" + +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "%(class_name)s %(instance)s" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" +"La cancellazione di %(class_name)s %(instance)s richiederebbe l'eliminazione " +"dei seguenti oggetti protetti correlati: %(related_objects)s" + +msgid "Django site admin" +msgstr "Amministrazione sito Django" + +msgid "Django administration" +msgstr "Amministrazione Django" + +msgid "Site administration" +msgstr "Amministrazione sito" + +msgid "Log in" +msgstr "Accedi" + +#, python-format +msgid "%(app)s administration" +msgstr "Amministrazione %(app)s" + +msgid "Page not found" +msgstr "Pagina non trovata" + +msgid "We’re sorry, but the requested page could not be found." +msgstr "Spiacenti, ma la pagina richiesta non è stata trovata." + +msgid "Home" +msgstr "Pagina iniziale" + +msgid "Server error" +msgstr "Errore del server" + +msgid "Server error (500)" +msgstr "Errore del server (500)" + +msgid "Server Error (500)" +msgstr "Errore del server (500)" + +msgid "" +"There’s been an error. It’s been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" +"Si è verificato un errore. Gli amministratori del sito ne sono stati " +"informati per email, e vi porranno rimedio a breve. Grazie per la vostra " +"pazienza." + +msgid "Run the selected action" +msgstr "Esegui l'azione selezionata" + +msgid "Go" +msgstr "Vai" + +msgid "Click here to select the objects across all pages" +msgstr "Clicca qui per selezionare gli oggetti da tutte le pagine." + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "Seleziona tutti %(total_count)s %(module_name)s" + +msgid "Clear selection" +msgstr "Annulla la selezione" + +msgid "Breadcrumbs" +msgstr "Breadcrumbs" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "Modelli nell'applicazione %(name)s" + +msgid "Add" +msgstr "Aggiungi" + +msgid "View" +msgstr "Vista" + +msgid "You don’t have permission to view or edit anything." +msgstr "Non hai i permessi per visualizzare o modificare nulla." + +msgid "" +"First, enter a username and password. Then, you’ll be able to edit more user " +"options." +msgstr "" +"Prima di tutto inserisci nome utente e password. Poi potrai modificare le " +"altre impostazioni utente." + +msgid "Enter a username and password." +msgstr "Inserisci nome utente e password." + +msgid "Change password" +msgstr "Modifica password" + +msgid "Please correct the error below." +msgid_plural "Please correct the errors below." +msgstr[0] "Si prega di correggere l'errore sottostante." +msgstr[1] "Si prega di correggere gli errori sottostanti." +msgstr[2] "Si prega di correggere gli errori sottostanti." + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "" +"Inserisci una nuova password per l'utente %(username)s." + +msgid "Skip to main content" +msgstr "Passa al contenuto principale" + +msgid "Welcome," +msgstr "Benvenuto," + +msgid "View site" +msgstr "Visualizza il sito" + +msgid "Documentation" +msgstr "Documentazione" + +msgid "Log out" +msgstr "Annulla l'accesso" + +#, python-format +msgid "Add %(name)s" +msgstr "Aggiungi %(name)s" + +msgid "History" +msgstr "Storia" + +msgid "View on site" +msgstr "Vedi sul sito" + +msgid "Filter" +msgstr "Filtra" + +msgid "Hide counts" +msgstr "Nascondi i conteggi " + +msgid "Show counts" +msgstr "Mostra i conteggi " + +msgid "Clear all filters" +msgstr "Cancella tutti i filtri" + +msgid "Remove from sorting" +msgstr "Elimina dall'ordinamento" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "Priorità d'ordinamento: %(priority_number)s" + +msgid "Toggle sorting" +msgstr "Abilita/disabilita ordinamento" + +msgid "Toggle theme (current theme: auto)" +msgstr "Cambia tema (tema corrente: auto)" + +msgid "Toggle theme (current theme: light)" +msgstr "Cambia tema (tema corrente: chiaro)" + +msgid "Toggle theme (current theme: dark)" +msgstr "Cambia tema (tema corrente: scuro)" + +msgid "Delete" +msgstr "Cancella" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" +"La cancellazione di %(object_name)s '%(escaped_object)s' causerebbe la " +"cancellazione di oggetti collegati, ma questo account non ha i permessi per " +"cancellare i seguenti tipi di oggetti:" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" +"La cancellazione di %(object_name)s '%(escaped_object)s' richiederebbe " +"l'eliminazione dei seguenti oggetti protetti correlati:" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" +"Sicuro di voler cancellare %(object_name)s \"%(escaped_object)s\"? Tutti i " +"seguenti oggetti collegati verranno cancellati:" + +msgid "Objects" +msgstr "Oggetti" + +msgid "Yes, I’m sure" +msgstr "Sì, sono sicuro" + +msgid "No, take me back" +msgstr "No, torna indietro" + +msgid "Delete multiple objects" +msgstr "Cancella più oggetti" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" +"Per eliminare l'elemento %(objects_name)s selezionato è necessario rimuovere " +"anche gli oggetti correlati, ma il tuo account non dispone " +"dell'autorizzazione a eliminare i seguenti tipi di oggetti:" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" +"L'eliminazione dell'elemento %(objects_name)s selezionato richiederebbe la " +"rimozione dei seguenti oggetti protetti correlati:" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" +"Confermi la cancellazione dell'elemento %(objects_name)s selezionato? " +"Saranno rimossi tutti i seguenti oggetti e le loro voci correlate:" + +msgid "Delete?" +msgstr "Cancellare?" + +#, python-format +msgid " By %(filter_title)s " +msgstr " Per %(filter_title)s " + +msgid "Summary" +msgstr "Riepilogo" + +msgid "Recent actions" +msgstr "Azioni recenti" + +msgid "My actions" +msgstr "Le mie azioni" + +msgid "None available" +msgstr "Nulla disponibile" + +msgid "Added:" +msgstr "Aggiunto" + +msgid "Changed:" +msgstr "Cambiato " + +msgid "Deleted:" +msgstr "Eliminato " + +msgid "Unknown content" +msgstr "Contenuto sconosciuto" + +msgid "" +"Something’s wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" +"Qualcosa non è andato a buon fine nell'installazione del database. " +"Assicurati che le tabelle del database siano state create, e che il database " +"sia leggibile dall'utente corretto." + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" +"Ti sei autenticato come %(username)s, ma non sei autorizzato ad accedere a " +"questa pagina. Vorresti autenticarti con un altro account?" + +msgid "Forgotten your password or username?" +msgstr "Hai dimenticato la password o lo username?" + +msgid "Toggle navigation" +msgstr "Abilita/disabilita navigazione" + +msgid "Sidebar" +msgstr "Barra laterale" + +msgid "Start typing to filter…" +msgstr "Inizia a scrivere per filtrare..." + +msgid "Filter navigation items" +msgstr "Filtra gli oggetti di navigazione" + +msgid "Date/time" +msgstr "Data/ora" + +msgid "User" +msgstr "Utente" + +msgid "Action" +msgstr "Azione" + +msgid "entry" +msgid_plural "entries" +msgstr[0] "voce" +msgstr[1] "voci" +msgstr[2] "voci" + +msgid "" +"This object doesn’t have a change history. It probably wasn’t added via this " +"admin site." +msgstr "" +"Questo oggetto non ha cambiamenti registrati. Probabilmente non è stato " +"creato con questo sito di amministrazione." + +msgid "Show all" +msgstr "Mostra tutto" + +msgid "Save" +msgstr "Salva" + +msgid "Popup closing…" +msgstr "Chiusura popup..." + +msgid "Search" +msgstr "Cerca" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "%(counter)s risultato" +msgstr[1] "%(counter)s risultati" +msgstr[2] "%(counter)s risultati" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "%(full_result_count)s in tutto" + +msgid "Save as new" +msgstr "Salva come nuovo" + +msgid "Save and add another" +msgstr "Salva e aggiungi un altro" + +msgid "Save and continue editing" +msgstr "Salva e continua le modifiche" + +msgid "Save and view" +msgstr "Salva e visualizza" + +msgid "Close" +msgstr "Chiudi" + +#, python-format +msgid "Change selected %(model)s" +msgstr "Modifica la selezione %(model)s" + +#, python-format +msgid "Add another %(model)s" +msgstr "Aggiungi un altro %(model)s" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "Elimina la selezione %(model)s" + +#, python-format +msgid "View selected %(model)s" +msgstr "Visualizza il %(model)s selezionato" + +msgid "Thanks for spending some quality time with the web site today." +msgstr "Grazie per avere trascorso del tempo di qualità sul sito oggi." + +msgid "Log in again" +msgstr "Accedi di nuovo" + +msgid "Password change" +msgstr "Cambio password" + +msgid "Your password was changed." +msgstr "La tua password è stata cambiata." + +msgid "" +"Please enter your old password, for security’s sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" +"Inserisci la password attuale, per ragioni di sicurezza, e poi la nuova " +"password due volte, per verificare di averla scritta correttamente." + +msgid "Change my password" +msgstr "Modifica la mia password" + +msgid "Password reset" +msgstr "Reimposta la password" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "La tua password è stata impostata. Ora puoi effettuare l'accesso." + +msgid "Password reset confirmation" +msgstr "Conferma reimpostazione password" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" +"Inserisci la nuova password due volte, per verificare di averla scritta " +"correttamente." + +msgid "New password:" +msgstr "Nuova password:" + +msgid "Confirm password:" +msgstr "Conferma la password:" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"Il link per la reimpostazione della password non era valido, forse perché " +"era già stato usato. Richiedi una nuova reimpostazione della password." + +msgid "" +"We’ve emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" +"Abbiamo inviato istruzioni per impostare la password, se esiste un account " +"valido all'indirizzo email che hai indicato. Dovresti riceverle a breve." + +msgid "" +"If you don’t receive an email, please make sure you’ve entered the address " +"you registered with, and check your spam folder." +msgstr "" +"Se non ricevi un messaggio email, accertati di aver inserito l'indirizzo con " +"cui ti sei registrato, e controlla la cartella dello spam." + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" +"Ricevi questa mail perché hai richiesto di reimpostare la password del tuo " +"account utente presso %(site_name)s." + +msgid "Please go to the following page and choose a new password:" +msgstr "Vai alla pagina seguente e scegli una nuova password:" + +msgid "Your username, in case you’ve forgotten:" +msgstr "Il tuo nome utente, in caso tu l'abbia dimenticato:" + +msgid "Thanks for using our site!" +msgstr "Grazie per aver usato il nostro sito!" + +#, python-format +msgid "The %(site_name)s team" +msgstr "Il team di %(site_name)s" + +msgid "" +"Forgotten your password? Enter your email address below, and we’ll email " +"instructions for setting a new one." +msgstr "" +"Password dimenticata? Inserisci il tuo indirizzo email qui sotto e ti " +"invieremo le istruzioni per impostarne una nuova." + +msgid "Email address:" +msgstr "Indirizzo email:" + +msgid "Reset my password" +msgstr "Reimposta la mia password" + +msgid "Select all objects on this page for an action" +msgstr "" +"Seleziona tutti gli oggetti di questa pagina per intraprendere un'azione " + +msgid "All dates" +msgstr "Tutte le date" + +#, python-format +msgid "Select %s" +msgstr "Scegli %s" + +#, python-format +msgid "Select %s to change" +msgstr "Scegli %s da modificare" + +#, python-format +msgid "Select %s to view" +msgstr "Seleziona %s per visualizzarlo" + +msgid "Date:" +msgstr "Data:" + +msgid "Time:" +msgstr "Ora:" + +msgid "Lookup" +msgstr "Consultazione" + +msgid "Currently:" +msgstr "Attualmente:" + +msgid "Change:" +msgstr "Modifica:" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/it/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/it/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..5b0c2810a05f9ceb1f6d1c67c8ca54ed954f1f25 GIT binary patch literal 5640 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 Yv2a;7w`^f`T-~D<)j@TL9s;KNH}!ZKtpET3 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/it/LC_MESSAGES/djangojs.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/it/LC_MESSAGES/djangojs.po new file mode 100644 index 0000000000..73a00fda48 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/it/LC_MESSAGES/djangojs.po @@ -0,0 +1,287 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Denis Darii , 2011 +# Jannis Leidel , 2011 +# Luciano De Falco Alfano, 2016 +# Marco Bonetti, 2014 +# Mirco Grillo , 2020 +# Nicola Larosa , 2011-2012 +# palmux , 2015,2021 +# Paolo Melchiorre , 2022-2023 +# Stefano Brentegani , 2015 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-03-17 03:19-0500\n" +"PO-Revision-Date: 2023-04-25 07:59+0000\n" +"Last-Translator: Paolo Melchiorre , 2022-2023\n" +"Language-Team: Italian (http://www.transifex.com/django/django/language/" +"it/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: it\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, javascript-format +msgid "Available %s" +msgstr "%s disponibili" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" +"Questa è la lista dei %s disponibili. Puoi sceglierne alcuni selezionandoli " +"nella casella qui sotto e poi facendo clic sulla freccia \"Scegli\" tra le " +"due caselle." + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "Scrivi in questa casella per filtrare l'elenco dei %s disponibili." + +msgid "Filter" +msgstr "Filtro" + +msgid "Choose all" +msgstr "Scegli tutto" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "Fai clic per scegliere tutti i %s in una volta." + +msgid "Choose" +msgstr "Scegli" + +msgid "Remove" +msgstr "Elimina" + +#, javascript-format +msgid "Chosen %s" +msgstr "%s scelti" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" +"Questa è la lista dei %s scelti. Puoi eliminarne alcuni selezionandoli nella " +"casella qui sotto e poi facendo clic sulla freccia \"Elimina\" tra le due " +"caselle." + +#, javascript-format +msgid "Type into this box to filter down the list of selected %s." +msgstr "Scrivi in questa casella per filtrare l'elenco dei %s selezionati." + +msgid "Remove all" +msgstr "Elimina tutti" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "Fai clic per eliminare tutti i %s in una volta." + +#, javascript-format +msgid "%s selected option not visible" +msgid_plural "%s selected options not visible" +msgstr[0] "%s opzione selezionata non visibile" +msgstr[1] "%s opzioni selezionate non visibili" +msgstr[2] "%s opzioni selezionate non visibili" + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "%(sel)s di %(cnt)s selezionato" +msgstr[1] "%(sel)s di %(cnt)s selezionati" +msgstr[2] "%(sel)s di %(cnt)s selezionati" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" +"Ci sono aggiornamenti non salvati su singoli campi modificabili. Se esegui " +"un'azione, le modifiche non salvate andranno perse." + +msgid "" +"You have selected an action, but you haven’t saved your changes to " +"individual fields yet. Please click OK to save. You’ll need to re-run the " +"action." +msgstr "" +"Hai selezionato un'azione, ma non hai ancora salvato le modifiche apportate " +"a campi singoli. Fai clic su OK per salvare. Poi dovrai rieseguire l'azione." + +msgid "" +"You have selected an action, and you haven’t made any changes on individual " +"fields. You’re probably looking for the Go button rather than the Save " +"button." +msgstr "" +"Hai selezionato un'azione e non hai ancora apportato alcuna modifica ai " +"campi singoli. Probabilmente stai cercando il pulsante Vai, invece di Salva." + +msgid "Now" +msgstr "Adesso" + +msgid "Midnight" +msgstr "Mezzanotte" + +msgid "6 a.m." +msgstr "6 del mattino" + +msgid "Noon" +msgstr "Mezzogiorno" + +msgid "6 p.m." +msgstr "6 del pomeriggio" + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "Nota: Sei %s ora in anticipo rispetto al server." +msgstr[1] "Nota: Sei %s ore in anticipo rispetto al server." +msgstr[2] "Nota: Sei %s ore in anticipo rispetto al server." + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "Nota: Sei %s ora in ritardo rispetto al server." +msgstr[1] "Nota: Sei %s ore in ritardo rispetto al server." +msgstr[2] "Nota: Sei %s ore in ritardo rispetto al server." + +msgid "Choose a Time" +msgstr "Scegli un orario" + +msgid "Choose a time" +msgstr "Scegli un orario" + +msgid "Cancel" +msgstr "Annulla" + +msgid "Today" +msgstr "Oggi" + +msgid "Choose a Date" +msgstr "Scegli una data" + +msgid "Yesterday" +msgstr "Ieri" + +msgid "Tomorrow" +msgstr "Domani" + +msgid "January" +msgstr "Gennaio" + +msgid "February" +msgstr "Febbraio" + +msgid "March" +msgstr "Marzo" + +msgid "April" +msgstr "Aprile" + +msgid "May" +msgstr "Maggio" + +msgid "June" +msgstr "Giugno" + +msgid "July" +msgstr "Luglio" + +msgid "August" +msgstr "Agosto" + +msgid "September" +msgstr "Settembre" + +msgid "October" +msgstr "Ottobre" + +msgid "November" +msgstr "Novembre" + +msgid "December" +msgstr "Dicembre" + +msgctxt "abbrev. month January" +msgid "Jan" +msgstr "Gen" + +msgctxt "abbrev. month February" +msgid "Feb" +msgstr "Feb" + +msgctxt "abbrev. month March" +msgid "Mar" +msgstr "Mar" + +msgctxt "abbrev. month April" +msgid "Apr" +msgstr "Apr" + +msgctxt "abbrev. month May" +msgid "May" +msgstr "Mag" + +msgctxt "abbrev. month June" +msgid "Jun" +msgstr "Giu" + +msgctxt "abbrev. month July" +msgid "Jul" +msgstr "Lug" + +msgctxt "abbrev. month August" +msgid "Aug" +msgstr "Ago" + +msgctxt "abbrev. month September" +msgid "Sep" +msgstr "Set" + +msgctxt "abbrev. month October" +msgid "Oct" +msgstr "Ott" + +msgctxt "abbrev. month November" +msgid "Nov" +msgstr "Nov" + +msgctxt "abbrev. month December" +msgid "Dec" +msgstr "Dic" + +msgctxt "one letter Sunday" +msgid "S" +msgstr "D" + +msgctxt "one letter Monday" +msgid "M" +msgstr "L" + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "Ma" + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "Me" + +msgctxt "one letter Thursday" +msgid "T" +msgstr "G" + +msgctxt "one letter Friday" +msgid "F" +msgstr "V" + +msgctxt "one letter Saturday" +msgid "S" +msgstr "S" + +msgid "Show" +msgstr "Mostra" + +msgid "Hide" +msgstr "Nascondi" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ja/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ja/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..ec8a37829730c80953ab1bb626fd370b907ced94 GIT binary patch literal 19945 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, 2020 +# Claude Paroz , 2016 +# Goto Hayato , 2019 +# Hiroki Sawano, 2022 +# Jannis Leidel , 2011 +# Masaya, 2023 +# Shinichi Katsumata , 2019 +# Shinya Okano , 2012-2018,2021,2023 +# TANIGUCHI Taichi, 2022 +# Takuro Onoue , 2020 +# Takuya N , 2020 +# Tetsuya Morimoto , 2011 +# 上田慶祐 , 2015 +# 余田大輝, 2024 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-05-22 11:46-0300\n" +"PO-Revision-Date: 2024-08-07 07:05+0000\n" +"Last-Translator: 余田大輝, 2024\n" +"Language-Team: Japanese (http://app.transifex.com/django/django/language/" +"ja/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ja\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "選択された %(verbose_name_plural)s の削除" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "%(count)d 個の %(items)s を削除しました。" + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "%(name)s が削除できません" + +msgid "Are you sure?" +msgstr "よろしいですか?" + +msgid "Administration" +msgstr "管理" + +msgid "All" +msgstr "全て" + +msgid "Yes" +msgstr "はい" + +msgid "No" +msgstr "いいえ" + +msgid "Unknown" +msgstr "不明" + +msgid "Any date" +msgstr "いつでも" + +msgid "Today" +msgstr "今日" + +msgid "Past 7 days" +msgstr "過去 7 日間" + +msgid "This month" +msgstr "今月" + +msgid "This year" +msgstr "今年" + +msgid "No date" +msgstr "日付なし" + +msgid "Has date" +msgstr "日付あり" + +msgid "Empty" +msgstr "空" + +msgid "Not empty" +msgstr "空でない" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" +"スタッフアカウントの正しい%(username)sとパスワードを入力してください。どちら" +"のフィールドも大文字と小文字は区別されます。" + +msgid "Action:" +msgstr "操作:" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "%(verbose_name)s の追加" + +msgid "Remove" +msgstr "削除" + +msgid "Addition" +msgstr "追加" + +msgid "Change" +msgstr "変更" + +msgid "Deletion" +msgstr "削除" + +msgid "action time" +msgstr "操作時刻" + +msgid "user" +msgstr "ユーザー" + +msgid "content type" +msgstr "コンテンツタイプ" + +msgid "object id" +msgstr "オブジェクト ID" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/library/functions.html#repr) +msgid "object repr" +msgstr "オブジェクトの文字列表現" + +msgid "action flag" +msgstr "操作種別" + +msgid "change message" +msgstr "変更メッセージ" + +msgid "log entry" +msgstr "ログエントリー" + +msgid "log entries" +msgstr "ログエントリー" + +#, python-format +msgid "Added “%(object)s”." +msgstr "“%(object)s” を追加しました。" + +#, python-format +msgid "Changed “%(object)s” — %(changes)s" +msgstr "“%(object)s” を変更しました — %(changes)s" + +#, python-format +msgid "Deleted “%(object)s.”" +msgstr "“%(object)s” を削除しました。" + +msgid "LogEntry Object" +msgstr "ログエントリー オブジェクト" + +#, python-brace-format +msgid "Added {name} “{object}”." +msgstr "{name} “{object}” を追加しました。" + +msgid "Added." +msgstr "追加されました。" + +msgid "and" +msgstr "と" + +#, python-brace-format +msgid "Changed {fields} for {name} “{object}”." +msgstr "{name} “{object}” の {fields} を変更しました。" + +#, python-brace-format +msgid "Changed {fields}." +msgstr "{fields} を変更しました。" + +#, python-brace-format +msgid "Deleted {name} “{object}”." +msgstr "{name} “{object}” を削除しました。" + +msgid "No fields changed." +msgstr "変更はありませんでした。" + +msgid "None" +msgstr "None" + +msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." +msgstr "" +"複数選択するときには Control キーを押したまま選択してください。Mac は " +"Command キーを使ってください" + +msgid "Select this object for an action - {}" +msgstr "アクション用にこのオブジェクトを選択 - {}" + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully." +msgstr "{name} “{obj}” を追加しました。" + +msgid "You may edit it again below." +msgstr "以下で再度編集できます。" + +#, python-brace-format +msgid "" +"The {name} “{obj}” was added successfully. You may add another {name} below." +msgstr "{name} “{obj}” を追加しました。別の {name} を以下から追加できます。" + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may edit it again below." +msgstr "{name} “{obj}” を変更しました。以下から再度編集できます。" + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may add another {name} " +"below." +msgstr "{name} “{obj}” を変更しました。 別の {name} を以下から追加できます。" + +#, python-brace-format +msgid "The {name} “{obj}” was changed successfully." +msgstr "{name} “{obj}” を変更しました。" + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" +"操作を実行するには、対象を選択する必要があります。何も変更されませんでした。" + +msgid "No action selected." +msgstr "操作が選択されていません。" + +#, python-format +msgid "The %(name)s “%(obj)s” was deleted successfully." +msgstr "%(name)s “%(obj)s” を削除しました。" + +#, python-format +msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" +msgstr "" +"ID “%(key)s” の%(name)sは見つかりませんでした。削除された可能性があります。" + +#, python-format +msgid "Add %s" +msgstr "%s を追加" + +#, python-format +msgid "Change %s" +msgstr "%s を変更" + +#, python-format +msgid "View %s" +msgstr "%sを表示" + +msgid "Database error" +msgstr "データベースエラー" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "%(count)s 個の %(name)s を変更しました。" + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "%(total_count)s 個選択されました" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "%(cnt)s個の内ひとつも選択されていません" + +#, python-format +msgid "Change history: %s" +msgstr "変更履歴: %s" + +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "%(class_name)s %(instance)s" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" +"%(class_name)s %(instance)s を削除するには以下の保護された関連オブジェクトを" +"削除することになります: %(related_objects)s" + +msgid "Django site admin" +msgstr "Django サイト管理" + +msgid "Django administration" +msgstr "Django 管理サイト" + +msgid "Site administration" +msgstr "サイト管理" + +msgid "Log in" +msgstr "ログイン" + +#, python-format +msgid "%(app)s administration" +msgstr "%(app)s 管理" + +msgid "Page not found" +msgstr "ページが見つかりません" + +msgid "We’re sorry, but the requested page could not be found." +msgstr "申し訳ありませんが、お探しのページは見つかりませんでした。" + +msgid "Home" +msgstr "ホーム" + +msgid "Server error" +msgstr "サーバーエラー" + +msgid "Server error (500)" +msgstr "サーバーエラー (500)" + +msgid "Server Error (500)" +msgstr "サーバーエラー (500)" + +msgid "" +"There’s been an error. It’s been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" +"エラーが発生しました。サイト管理者にメールで報告されたので、修正されるまでし" +"ばらくお待ちください。" + +msgid "Run the selected action" +msgstr "選択された操作を実行" + +msgid "Go" +msgstr "実行" + +msgid "Click here to select the objects across all pages" +msgstr "全ページの項目を選択するにはここをクリック" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "%(total_count)s個ある%(module_name)s を全て選択" + +msgid "Clear selection" +msgstr "選択を解除" + +msgid "Breadcrumbs" +msgstr "パンくずリスト" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "%(name)s アプリケーション内のモデル" + +msgid "Add" +msgstr "追加" + +msgid "View" +msgstr "表示" + +msgid "You don’t have permission to view or edit anything." +msgstr "表示または変更のためのパーミッションがありません。" + +msgid "" +"First, enter a username and password. Then, you’ll be able to edit more user " +"options." +msgstr "" +"まずユーザー名とパスワードを登録してください。その後詳細情報が編集可能になり" +"ます。" + +msgid "Enter a username and password." +msgstr "ユーザー名とパスワードを入力してください。" + +msgid "Change password" +msgstr "パスワードの変更" + +msgid "Set password" +msgstr "パスワードを設定" + +msgid "Please correct the error below." +msgid_plural "Please correct the errors below." +msgstr[0] "下記のエラーを修正してください。" + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "" +"%(username)sさんの新しいパスワードを入力してください。" + +msgid "" +"This action will enable password-based authentication for " +"this user." +msgstr "" +"このアクションは、このユーザーに対するパスワードによる認証を有効にします。" + +msgid "Disable password-based authentication" +msgstr "パスワードによる認証の無効化" + +msgid "Enable password-based authentication" +msgstr "パスワードによる認証の有効化" + +msgid "Skip to main content" +msgstr "スキップしてメインコンテンツへ" + +msgid "Welcome," +msgstr "ようこそ" + +msgid "View site" +msgstr "サイトを表示" + +msgid "Documentation" +msgstr "ドキュメント" + +msgid "Log out" +msgstr "ログアウト" + +#, python-format +msgid "Add %(name)s" +msgstr "%(name)s を追加" + +msgid "History" +msgstr "履歴" + +msgid "View on site" +msgstr "サイト上で表示" + +msgid "Filter" +msgstr "フィルター" + +msgid "Hide counts" +msgstr "件数を非表示" + +msgid "Show counts" +msgstr "件数を表示" + +msgid "Clear all filters" +msgstr "全てのフィルターを解除" + +msgid "Remove from sorting" +msgstr "ソート条件から外します" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "ソート優先順位: %(priority_number)s" + +msgid "Toggle sorting" +msgstr "昇順降順を切り替えます" + +msgid "Toggle theme (current theme: auto)" +msgstr "テーマを切り替え (現在のテーマ: 自動)" + +msgid "Toggle theme (current theme: light)" +msgstr "テーマを切り替え (現在のテーマ: ライト)" + +msgid "Toggle theme (current theme: dark)" +msgstr "テーマを切り替え (現在のテーマ: ダーク)" + +msgid "Delete" +msgstr "削除" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" +"%(object_name)s '%(escaped_object)s' の削除時に関連づけられたオブジェクトも削" +"除しようとしましたが、あなたのアカウントには以下のタイプのオブジェクトを削除" +"するパーミッションがありません:" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" +"%(object_name)s '%(escaped_object)s' を削除するには以下の保護された関連オブ" +"ジェクトを削除することになります:" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" +"%(object_name)s \"%(escaped_object)s\"を削除しますか? 関連づけられている以下" +"のオブジェクトも全て削除されます:" + +msgid "Objects" +msgstr "オブジェクト" + +msgid "Yes, I’m sure" +msgstr "はい、大丈夫です" + +msgid "No, take me back" +msgstr "戻る" + +msgid "Delete multiple objects" +msgstr "複数のオブジェクトを削除します" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" +"選択した %(objects_name)s を削除すると関連するオブジェクトも削除しますが、あ" +"なたのアカウントは以下のオブジェクト型を削除する権限がありません:" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" +"選択した %(objects_name)s を削除すると以下の保護された関連オブジェクトを削除" +"することになります:" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" +"本当に選択した %(objects_name)s を削除しますか? 以下の全てのオブジェクトと関" +"連する要素が削除されます:" + +msgid "Delete?" +msgstr "削除しますか?" + +#, python-format +msgid " By %(filter_title)s " +msgstr "%(filter_title)s で絞り込む" + +msgid "Summary" +msgstr "概要" + +msgid "Recent actions" +msgstr "最近行った操作" + +msgid "My actions" +msgstr "自分の操作" + +msgid "None available" +msgstr "利用不可" + +msgid "Added:" +msgstr "追加されました:" + +msgid "Changed:" +msgstr "変更されました:" + +msgid "Deleted:" +msgstr "削除されました:" + +msgid "Unknown content" +msgstr "不明なコンテント" + +msgid "" +"Something’s wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" +"データベースのインストールに問題があります。適切なデータベーステーブルが作ら" +"れているか、適切なユーザーがデータベースを読み込み可能かを確認してください。" + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" +"あなたは %(username)s として認証されましたが、このページへのアクセス許可があ" +"りません。他のアカウントでログインしますか?" + +msgid "Forgotten your password or username?" +msgstr "パスワードまたはユーザー名を忘れましたか?" + +msgid "Toggle navigation" +msgstr "ナビゲーションを切り替えます" + +msgid "Sidebar" +msgstr "サイドバー" + +msgid "Start typing to filter…" +msgstr "絞り込みの入力..." + +msgid "Filter navigation items" +msgstr "ナビゲーション項目の絞り込み" + +msgid "Date/time" +msgstr "日付/時刻" + +msgid "User" +msgstr "ユーザー" + +msgid "Action" +msgstr "操作" + +msgid "entry" +msgid_plural "entries" +msgstr[0] "エントリー" + +msgid "" +"This object doesn’t have a change history. It probably wasn’t added via this " +"admin site." +msgstr "" +"このオブジェクトには変更履歴がありません。おそらくこの管理サイトで追加したも" +"のではありません。" + +msgid "Show all" +msgstr "全件表示" + +msgid "Save" +msgstr "保存" + +msgid "Popup closing…" +msgstr "ポップアップを閉じています..." + +msgid "Search" +msgstr "検索" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "結果 %(counter)s" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "全 %(full_result_count)s 件" + +msgid "Save as new" +msgstr "新規保存" + +msgid "Save and add another" +msgstr "保存してもう一つ追加" + +msgid "Save and continue editing" +msgstr "保存して編集を続ける" + +msgid "Save and view" +msgstr "保存して表示" + +msgid "Close" +msgstr "閉じる" + +#, python-format +msgid "Change selected %(model)s" +msgstr "選択された %(model)s の変更" + +#, python-format +msgid "Add another %(model)s" +msgstr "%(model)s の追加" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "選択された %(model)s を削除" + +#, python-format +msgid "View selected %(model)s" +msgstr "選択された %(model)s を表示" + +msgid "Thanks for spending some quality time with the web site today." +msgstr "ご利用ありがとうございました。" + +msgid "Log in again" +msgstr "もう一度ログイン" + +msgid "Password change" +msgstr "パスワードの変更" + +msgid "Your password was changed." +msgstr "あなたのパスワードは変更されました" + +msgid "" +"Please enter your old password, for security’s sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" +"セキュリティ上の理由から元のパスワードの入力が必要です。新しいパスワードは正" +"しく入力したか確認できるように二度入力してください。" + +msgid "Change my password" +msgstr "パスワードの変更" + +msgid "Password reset" +msgstr "パスワードをリセット" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "パスワードがセットされました。ログインしてください。" + +msgid "Password reset confirmation" +msgstr "パスワードリセットの確認" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "確認のために、新しいパスワードを二回入力してください。" + +msgid "New password:" +msgstr "新しいパスワード:" + +msgid "Confirm password:" +msgstr "新しいパスワード (確認用) :" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"パスワードリセットのリンクが不正です。おそらくこのリンクは既に使われていま" +"す。もう一度パスワードリセットしてください。" + +msgid "" +"We’ve emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" +"入力されたメールアドレスを持つアカウントが存在する場合、パスワードを設定する" +"ためのメールを送信しました。すぐに届くはずです。" + +msgid "" +"If you don’t receive an email, please make sure you’ve entered the address " +"you registered with, and check your spam folder." +msgstr "" +"メールが届かない場合は、登録したメールアドレスを入力したか確認し、スパムフォ" +"ルダに入っていないか確認してください。" + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" +"このメールは %(site_name)s で、あなたのアカウントのパスワードリセットが要求さ" +"れたため、送信されました。" + +msgid "Please go to the following page and choose a new password:" +msgstr "次のページで新しいパスワードを選んでください:" + +msgid "Your username, in case you’ve forgotten:" +msgstr "あなたのユーザー名 (もし忘れていたら):" + +msgid "Thanks for using our site!" +msgstr "ご利用ありがとうございました!" + +#, python-format +msgid "The %(site_name)s team" +msgstr " %(site_name)s チーム" + +msgid "" +"Forgotten your password? Enter your email address below, and we’ll email " +"instructions for setting a new one." +msgstr "" +"パスワードを忘れましたか? メールアドレスを以下に入力すると、新しいパスワード" +"の設定方法をお知らせします。" + +msgid "Email address:" +msgstr "メールアドレス:" + +msgid "Reset my password" +msgstr "パスワードをリセット" + +msgid "Select all objects on this page for an action" +msgstr "アクション用にこのページのすべてのオブジェクトを選択" + +msgid "All dates" +msgstr "いつでも" + +#, python-format +msgid "Select %s" +msgstr "%s を選択" + +#, python-format +msgid "Select %s to change" +msgstr "変更する %s を選択" + +#, python-format +msgid "Select %s to view" +msgstr "表示する%sを選択" + +msgid "Date:" +msgstr "日付:" + +msgid "Time:" +msgstr "時刻:" + +msgid "Lookup" +msgstr "検索" + +msgid "Currently:" +msgstr "現在の値:" + +msgid "Change:" +msgstr "変更後:" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ja/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ja/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..513b0a2b05da0d0975814b2e309e3c7bc13a919a GIT binary patch literal 6233 zcmb`Jd2AHd9mgMK(-OC#DJdyQp?PuZ0D)Z}+zU=P%@rSkO*1L(uwKJ$L>nBVn&vwxfxc%9*DLz{^<_!-7_((^;O;rj5ij4c5_0-pmXeU33avXzqS zL7Lhk`w{R9=zmA{BQ^5a7K7|6Xu8H~@yhk3cM8 zfzNxK3LZy)26z~}0;a$=IQ?<(1IgckGtmE=>`#I7pFsa9@GIal*?&>?cY-uO2R;c7 zN?rkJ-LF8}|1Xl0r+WK52~LN+0i<;sK$;%~zY4w#J_a6unGJ=Npko4FH(mvZj(l08<<5I4Jzl1ykUI#bB$uxfof+{8zq}1UzB_aMEWs=->pM1 z*S#nw=%O4)D!LctPXpR|G#n4M3XRUfLNx#Sx_qFR&5_S^&R;!$kkGS(70!GF1QYD0m*CTm?AOP@UhRw3^#asy`Lu@fm5mu!PHNjS;JJY7cR&^eviWa3tlvb+Ub z<5;mZ?HV45t0u?KiVL1lO~j#tD<$C%x&BBh89!pCo)o-2BU4n>I%#Q=tD3t-yS@u{ zCG>8tz%-0#JW3&z^LVwFM%D1Jfl2Mc>K2$oZ@0R2j^)A(v5Ax_X2G~dGDkk8MxM*= zsZrW6$%_%)yC-!rfJM^66K7HaK0sny^SY72<6Pp_szUINrLMLO|<%?NMtqf!!cBM9@fk+Ig-i zQ7o-_FP+#SBBokyY4km_vBOoFwkvV8t8wK{-6~XQ$3fFgE5wxcc0+W9ID*E#x)lJ* z#9nm@0A*tTOb75#KHwhe0M2%qI1=}=H$V^NBVPUnkjG{6VqyjGR2)g_nic2nry_uR zrQH2^1n>>181Sog01p*Ie*F&Mp<+mu?*Ldif`T4ERlh^535Y9ayG1{Md&P8o1|ZE; zNL%pLp)X4S4;4eQ#srO?} z`3eg~qFuH0m7PiarwB#$p{Uw&sw;*mtj3ojO~Iw(^XOe2!U(R@qIwM9uP|Q)7WIIv6#2;8Oln4#9G=m)-Fnssfnqr=gTt)C9AC&2UQTy!J$==bU zNOPHR6uKU}!LbpAE_a7}gXcbPYG2K;u5`4, 2021 +# Jannis Leidel , 2011 +# Shinya Okano , 2012,2014-2016,2023 +# Taichi Taniguchi, 2022 +# Takuro Onoue , 2020 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-09-18 15:04-0300\n" +"PO-Revision-Date: 2023-12-04 07:59+0000\n" +"Last-Translator: Shinya Okano , 2012,2014-2016,2023\n" +"Language-Team: Japanese (http://app.transifex.com/django/django/language/" +"ja/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ja\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#, javascript-format +msgid "Available %s" +msgstr "利用可能 %s" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" +"これが使用可能な %s のリストです。下のボックスで項目を選択し、2つのボックス間" +"の \"選択\"の矢印をクリックして、いくつかを選択することができます。" + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "使用可能な %s のリストを絞り込むには、このボックスに入力します。" + +msgid "Filter" +msgstr "フィルター" + +msgid "Choose all" +msgstr "全て選択" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "クリックするとすべての %s を選択します。" + +msgid "Choose" +msgstr "選択" + +msgid "Remove" +msgstr "削除" + +#, javascript-format +msgid "Chosen %s" +msgstr "選択された %s" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" +"これが選択された %s のリストです。下のボックスで選択し、2つのボックス間の " +"\"削除\"矢印をクリックして一部を削除することができます。" + +#, javascript-format +msgid "Type into this box to filter down the list of selected %s." +msgstr "選択された%sのリストを絞り込むには、このボックスに入力します。" + +msgid "Remove all" +msgstr "すべて削除" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "クリックするとすべての %s を選択から削除します。" + +#, javascript-format +msgid "%s selected option not visible" +msgid_plural "%s selected options not visible" +msgstr[0] "選択された%s件のオプションは非表示です。" + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "%(cnt)s個中%(sel)s個選択" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" +"フィールドに未保存の変更があります。操作を実行すると未保存の変更は失われま" +"す。" + +msgid "" +"You have selected an action, but you haven’t saved your changes to " +"individual fields yet. Please click OK to save. You’ll need to re-run the " +"action." +msgstr "" +"操作を選択しましたが、フィールドに未保存の変更があります。OKをクリックして保" +"存してください。その後、操作を再度実行する必要があります。" + +msgid "" +"You have selected an action, and you haven’t made any changes on individual " +"fields. You’re probably looking for the Go button rather than the Save " +"button." +msgstr "" +"操作を選択しましたが、フィールドに変更はありませんでした。もしかして保存ボタ" +"ンではなくて実行ボタンをお探しですか。" + +msgid "Now" +msgstr "現在" + +msgid "Midnight" +msgstr "0時" + +msgid "6 a.m." +msgstr "午前 6 時" + +msgid "Noon" +msgstr "12時" + +msgid "6 p.m." +msgstr "午後 6 時" + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "ノート: あなたの環境はサーバー時間より、%s時間進んでいます。" + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "ノート: あなたの環境はサーバー時間より、%s時間遅れています。" + +msgid "Choose a Time" +msgstr "時間を選択" + +msgid "Choose a time" +msgstr "時間を選択" + +msgid "Cancel" +msgstr "キャンセル" + +msgid "Today" +msgstr "今日" + +msgid "Choose a Date" +msgstr "日付を選択" + +msgid "Yesterday" +msgstr "昨日" + +msgid "Tomorrow" +msgstr "明日" + +msgid "January" +msgstr "1月" + +msgid "February" +msgstr "2月" + +msgid "March" +msgstr "3月" + +msgid "April" +msgstr "4月" + +msgid "May" +msgstr "5月" + +msgid "June" +msgstr "6月" + +msgid "July" +msgstr "7月" + +msgid "August" +msgstr "8月" + +msgid "September" +msgstr "9月" + +msgid "October" +msgstr "10月" + +msgid "November" +msgstr "11月" + +msgid "December" +msgstr "12月" + +msgctxt "abbrev. month January" +msgid "Jan" +msgstr "1月" + +msgctxt "abbrev. month February" +msgid "Feb" +msgstr "2月" + +msgctxt "abbrev. month March" +msgid "Mar" +msgstr "3月" + +msgctxt "abbrev. month April" +msgid "Apr" +msgstr "4月" + +msgctxt "abbrev. month May" +msgid "May" +msgstr "5月" + +msgctxt "abbrev. month June" +msgid "Jun" +msgstr "6月" + +msgctxt "abbrev. month July" +msgid "Jul" +msgstr "7月" + +msgctxt "abbrev. month August" +msgid "Aug" +msgstr "8月" + +msgctxt "abbrev. month September" +msgid "Sep" +msgstr "9月" + +msgctxt "abbrev. month October" +msgid "Oct" +msgstr "10月" + +msgctxt "abbrev. month November" +msgid "Nov" +msgstr "11月" + +msgctxt "abbrev. month December" +msgid "Dec" +msgstr "12月" + +msgid "Sunday" +msgstr "日曜日" + +msgid "Monday" +msgstr "月曜日" + +msgid "Tuesday" +msgstr "火曜日" + +msgid "Wednesday" +msgstr "水曜日" + +msgid "Thursday" +msgstr "木曜日" + +msgid "Friday" +msgstr "金曜日" + +msgid "Saturday" +msgstr "土曜日" + +msgctxt "abbrev. day Sunday" +msgid "Sun" +msgstr "日" + +msgctxt "abbrev. day Monday" +msgid "Mon" +msgstr "月" + +msgctxt "abbrev. day Tuesday" +msgid "Tue" +msgstr "火" + +msgctxt "abbrev. day Wednesday" +msgid "Wed" +msgstr "水" + +msgctxt "abbrev. day Thursday" +msgid "Thur" +msgstr "木" + +msgctxt "abbrev. day Friday" +msgid "Fri" +msgstr "金" + +msgctxt "abbrev. day Saturday" +msgid "Sat" +msgstr "土" + +msgctxt "one letter Sunday" +msgid "S" +msgstr "日" + +msgctxt "one letter Monday" +msgid "M" +msgstr "月" + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "火" + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "水" + +msgctxt "one letter Thursday" +msgid "T" +msgstr "木" + +msgctxt "one letter Friday" +msgid "F" +msgstr "金" + +msgctxt "one letter Saturday" +msgid "S" +msgstr "土" + +msgid "Show" +msgstr "表示" + +msgid "Hide" +msgstr "非表示" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ka/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ka/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..ed45180dd7220974c01d2e46054156db6a4cb804 GIT binary patch literal 20101 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ka/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ka/LC_MESSAGES/django.po new file mode 100644 index 0000000000..75aee9c582 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ka/LC_MESSAGES/django.po @@ -0,0 +1,699 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# André Bouatchidzé , 2013-2015 +# David A. , 2011 +# Jannis Leidel , 2011 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-01-16 20:42+0100\n" +"PO-Revision-Date: 2019-01-18 00:36+0000\n" +"Last-Translator: Ramiro Morales\n" +"Language-Team: Georgian (http://www.transifex.com/django/django/language/" +"ka/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ka\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "%(count)d %(items)s წარმატებით წაიშალა." + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "%(name)s ვერ იშლება" + +msgid "Are you sure?" +msgstr "დარწმუნებული ხართ?" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "არჩეული %(verbose_name_plural)s-ის წაშლა" + +msgid "Administration" +msgstr "ადმინისტრირება" + +msgid "All" +msgstr "ყველა" + +msgid "Yes" +msgstr "კი" + +msgid "No" +msgstr "არა" + +msgid "Unknown" +msgstr "გაურკვეველი" + +msgid "Any date" +msgstr "ნებისმიერი თარიღი" + +msgid "Today" +msgstr "დღეს" + +msgid "Past 7 days" +msgstr "ბოლო 7 დღე" + +msgid "This month" +msgstr "მიმდინარე თვე" + +msgid "This year" +msgstr "მიმდინარე წელი" + +msgid "No date" +msgstr "" + +msgid "Has date" +msgstr "" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" +"გთხოვთ, შეიყვანოთ სწორი %(username)s და პაროლი პერსონალის ანგარიშისთვის. " +"იქონიეთ მხედველობაში, რომ ორივე ველი ითვალისწინებს მთავრულს." + +msgid "Action:" +msgstr "მოქმედება:" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "კიდევ ერთი %(verbose_name)s-ის დამატება" + +msgid "Remove" +msgstr "წაშლა" + +msgid "Addition" +msgstr "" + +msgid "Change" +msgstr "შეცვლა" + +msgid "Deletion" +msgstr "" + +msgid "action time" +msgstr "მოქმედების დრო" + +msgid "user" +msgstr "" + +msgid "content type" +msgstr "" + +msgid "object id" +msgstr "ობიექტის id" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/library/functions.html#repr) +msgid "object repr" +msgstr "ობიექტის წარმ." + +msgid "action flag" +msgstr "მოქმედების დროშა" + +msgid "change message" +msgstr "შეცვლის შეტყობინება" + +msgid "log entry" +msgstr "ლოგის ერთეული" + +msgid "log entries" +msgstr "ლოგის ერთეულები" + +#, python-format +msgid "Added \"%(object)s\"." +msgstr "დამატებულია \"%(object)s\"." + +#, python-format +msgid "Changed \"%(object)s\" - %(changes)s" +msgstr "შეცვლილია \"%(object)s\" - %(changes)s" + +#, python-format +msgid "Deleted \"%(object)s.\"" +msgstr "წაშლილია \"%(object)s.\"" + +msgid "LogEntry Object" +msgstr "ჟურნალის ჩანაწერის ობიექტი" + +#, python-brace-format +msgid "Added {name} \"{object}\"." +msgstr "" + +msgid "Added." +msgstr "" + +msgid "and" +msgstr "და" + +#, python-brace-format +msgid "Changed {fields} for {name} \"{object}\"." +msgstr "" + +#, python-brace-format +msgid "Changed {fields}." +msgstr "" + +#, python-brace-format +msgid "Deleted {name} \"{object}\"." +msgstr "" + +msgid "No fields changed." +msgstr "არცერთი ველი არ შეცვლილა." + +msgid "None" +msgstr "არცერთი" + +msgid "" +"Hold down \"Control\", or \"Command\" on a Mac, to select more than one." +msgstr "" + +#, python-brace-format +msgid "The {name} \"{obj}\" was added successfully." +msgstr "" + +msgid "You may edit it again below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was added successfully. You may add another {name} " +"below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was changed successfully. You may edit it again below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was added successfully. You may edit it again below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was changed successfully. You may add another {name} " +"below." +msgstr "" + +#, python-brace-format +msgid "The {name} \"{obj}\" was changed successfully." +msgstr "" + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" +"ობიექტებზე მოქმედებების შესასრულებლად ისინი არჩეული უნდა იყოს. არცერთი " +"ობიექტი არჩეული არ არის." + +msgid "No action selected." +msgstr "მოქმედება არჩეული არ არის." + +#, python-format +msgid "The %(name)s \"%(obj)s\" was deleted successfully." +msgstr "%(name)s \"%(obj)s\" წარმატებით წაიშალა." + +#, python-format +msgid "%(name)s with ID \"%(key)s\" doesn't exist. Perhaps it was deleted?" +msgstr "" + +#, python-format +msgid "Add %s" +msgstr "დავამატოთ %s" + +#, python-format +msgid "Change %s" +msgstr "შევცვალოთ %s" + +#, python-format +msgid "View %s" +msgstr "" + +msgid "Database error" +msgstr "მონაცემთა ბაზის შეცდომა" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "%(count)s %(name)s წარმატებით შეიცვალა." +msgstr[1] "%(count)s %(name)s წარმატებით შეიცვალა." + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "%(total_count)s-ია არჩეული" +msgstr[1] "%(total_count)s-ია არჩეული" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "%(cnt)s-დან არცერთი არჩეული არ არის" + +#, python-format +msgid "Change history: %s" +msgstr "ცვლილებების ისტორია: %s" + +#. Translators: Model verbose name and instance representation, +#. suitable to be an item in a list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "%(class_name)s %(instance)s" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" + +msgid "Django site admin" +msgstr "Django-ს ადმინისტრირების საიტი" + +msgid "Django administration" +msgstr "Django-ს ადმინისტრირება" + +msgid "Site administration" +msgstr "საიტის ადმინისტრირება" + +msgid "Log in" +msgstr "შესვლა" + +#, python-format +msgid "%(app)s administration" +msgstr "%(app)s ადმინისტრირება" + +msgid "Page not found" +msgstr "გვერდი ვერ მოიძებნა" + +msgid "We're sorry, but the requested page could not be found." +msgstr "უკაცრავად, მოთხოვნილი გვერდი ვერ მოიძებნა." + +msgid "Home" +msgstr "საწყისი გვერდი" + +msgid "Server error" +msgstr "სერვერის შეცდომა" + +msgid "Server error (500)" +msgstr "სერვერის შეცდომა (500)" + +msgid "Server Error (500)" +msgstr "სერვერის შეცდომა (500)" + +msgid "" +"There's been an error. It's been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" +"მოხდა შეცდომა. ინფორმაცია მასზე გადაეცა საიტის ადმინისტრატორებს ელ. ფოსტით " +"და ის უნდა შესწორდეს უმოკლეს ვადებში. გმადლობთ მოთმინებისთვის." + +msgid "Run the selected action" +msgstr "არჩეული მოქმედების შესრულება" + +msgid "Go" +msgstr "გადასვლა" + +msgid "Click here to select the objects across all pages" +msgstr "ყველა გვერდზე არსებული ობიექტის მოსანიშნად დააწკაპეთ აქ" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "ყველა %(total_count)s %(module_name)s-ის მონიშვნა" + +msgid "Clear selection" +msgstr "მონიშვნის გასუფთავება" + +msgid "" +"First, enter a username and password. Then, you'll be able to edit more user " +"options." +msgstr "" +"ჯერ შეიყვანეთ მომხმარებლის სახელი და პაროლი. ამის შემდეგ თქვენ გექნებათ " +"მომხმარებლის სხვა ოპციების რედაქტირების შესაძლებლობა." + +msgid "Enter a username and password." +msgstr "შეიყვანეთ მომხმარებლის სახელი და პაროლი" + +msgid "Change password" +msgstr "პაროლის შეცვლა" + +msgid "Please correct the error below." +msgstr "" + +msgid "Please correct the errors below." +msgstr "გთხოვთ, შეასწოროთ ქვემოთმოყვანილი შეცდომები." + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "" +"შეიყვანეთ ახალი პაროლი მომხმარებლისათვის %(username)s." + +msgid "Welcome," +msgstr "კეთილი იყოს თქვენი მობრძანება," + +msgid "View site" +msgstr "საიტის ნახვა" + +msgid "Documentation" +msgstr "დოკუმენტაცია" + +msgid "Log out" +msgstr "გამოსვლა" + +#, python-format +msgid "Add %(name)s" +msgstr "დავამატოთ %(name)s" + +msgid "History" +msgstr "ისტორია" + +msgid "View on site" +msgstr "წარმოდგენა საიტზე" + +msgid "Filter" +msgstr "ფილტრი" + +msgid "Remove from sorting" +msgstr "დალაგებიდან მოშორება" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "დალაგების პრიორიტეტი: %(priority_number)s" + +msgid "Toggle sorting" +msgstr "დალაგების გადართვა" + +msgid "Delete" +msgstr "წავშალოთ" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" +"ობიექტების წაშლა: %(object_name)s '%(escaped_object)s' გამოიწვევს " +"დაკავშირებული ობიექტების წაშლას, მაგრამ თქვენ არა გაქვთ შემდეგი ტიპების " +"ობიექტების წაშლის უფლება:" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" +"%(object_name)s ტიპის '%(escaped_object)s' ობიექტის წაშლა მოითხოვს ასევე " +"შემდეგი დაკავშირებული ობიექტების წაშლას:" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" +"ნამდვილად გსურთ, წაშალოთ %(object_name)s \"%(escaped_object)s\"? ყველა " +"ქვემოთ მოყვანილი დაკავშირებული ობიექტი წაშლილი იქნება:" + +msgid "Objects" +msgstr "ობიექტები" + +msgid "Yes, I'm sure" +msgstr "კი, ნამდვილად" + +msgid "No, take me back" +msgstr "არა, დამაბრუნეთ უკან" + +msgid "Delete multiple objects" +msgstr "რამდენიმე ობიექტის წაშლა" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" +"%(objects_name)s ტიპის ობიექტის წაშლა ითხოვს ასევე შემდეგი ობიექტების " +"წაშლას, მაგრამ თქვენ არ გაქვთ ამის ნებართვა:" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" +"არჩეული %(objects_name)s ობიექტის წაშლა მოითხოვს ასევე შემდეგი დაცული " +"დაკავშირეული ობიექტების წაშლას:" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" +"დარწმუნებული ხართ, რომ გსურთ %(objects_name)s ობიექტის წაშლა? ყველა შემდეგი " +"ობიექტი, და მათზე დამოკიდებული ჩანაწერები წაშლილი იქნება:" + +msgid "View" +msgstr "" + +msgid "Delete?" +msgstr "წავშალოთ?" + +#, python-format +msgid " By %(filter_title)s " +msgstr " %(filter_title)s მიხედვით " + +msgid "Summary" +msgstr "შეჯამება" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "მოდელები %(name)s აპლიკაციაში" + +msgid "Add" +msgstr "დამატება" + +msgid "You don't have permission to view or edit anything." +msgstr "" + +msgid "Recent actions" +msgstr "" + +msgid "My actions" +msgstr "" + +msgid "None available" +msgstr "არ არის მისაწვდომი" + +msgid "Unknown content" +msgstr "უცნობი შიგთავსი" + +msgid "" +"Something's wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" +"თქვენი მონაცემთა ბაზის ინსტალაცია არაკორექტულია. დარწმუნდით, რომ მონაცემთა " +"ბაზის შესაბამისი ცხრილები შექმნილია, და მონაცემთა ბაზის წაკითხვა შეუძლია " +"შესაბამის მომხმარებელს." + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" + +msgid "Forgotten your password or username?" +msgstr "დაგავიწყდათ თქვენი პაროლი ან მომხმარებლის სახელი?" + +msgid "Date/time" +msgstr "თარიღი/დრო" + +msgid "User" +msgstr "მომხმარებელი" + +msgid "Action" +msgstr "მოქმედება" + +msgid "" +"This object doesn't have a change history. It probably wasn't added via this " +"admin site." +msgstr "" +"ამ ობიექტს ცვლილებების ისტორია არა აქვს. როგორც ჩანს, იგი არ იყო დამატებული " +"ადმინისტრირების საიტის მეშვეობით." + +msgid "Show all" +msgstr "ვაჩვენოთ ყველა" + +msgid "Save" +msgstr "შევინახოთ" + +msgid "Popup closing…" +msgstr "" + +msgid "Search" +msgstr "ძებნა" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "%(counter)s შედეგი" +msgstr[1] "%(counter)s შედეგი" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "სულ %(full_result_count)s" + +msgid "Save as new" +msgstr "შევინახოთ, როგორც ახალი" + +msgid "Save and add another" +msgstr "შევინახოთ და დავამატოთ ახალი" + +msgid "Save and continue editing" +msgstr "შევინახოთ და გავაგრძელოთ რედაქტირება" + +msgid "Save and view" +msgstr "" + +msgid "Close" +msgstr "" + +#, python-format +msgid "Change selected %(model)s" +msgstr "მონიშნული %(model)s-ის შეცვლა" + +#, python-format +msgid "Add another %(model)s" +msgstr "" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "მონიშნული %(model)s-ის წაშლა" + +msgid "Thanks for spending some quality time with the Web site today." +msgstr "გმადლობთ, რომ დღეს ამ საიტთან მუშაობას დაუთმეთ დრო." + +msgid "Log in again" +msgstr "ხელახლა შესვლა" + +msgid "Password change" +msgstr "პაროლის შეცვლა" + +msgid "Your password was changed." +msgstr "თქვენი პაროლი შეიცვალა." + +msgid "" +"Please enter your old password, for security's sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" +"გთხოვთ, უსაფრთხოების დაცვის მიზნით, შეიყვანოთ თქვენი ძველი პაროლი, შემდეგ კი " +"ახალი პაროლი ორჯერ, რათა დარწმუნდეთ, რომ იგი შეყვანილია სწორად." + +msgid "Change my password" +msgstr "შევცვალოთ ჩემი პაროლი" + +msgid "Password reset" +msgstr "პაროლის აღდგენა" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "" +"თქვენი პაროლი დაყენებულია. ახლა შეგიძლიათ გადახვიდეთ შემდეგ გვერდზე და " +"შეხვიდეთ სისტემაში." + +msgid "Password reset confirmation" +msgstr "პაროლი შეცვლის დამოწმება" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" +"გთხოვთ, შეიყვანეთ თქვენი ახალი პაროლი ორჯერ, რათა დავრწმუნდეთ, რომ იგი " +"სწორად ჩაბეჭდეთ." + +msgid "New password:" +msgstr "ახალი პაროლი:" + +msgid "Confirm password:" +msgstr "პაროლის დამოწმება:" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"პაროლის აღდგენის ბმული არასწორი იყო, შესაძლოა იმის გამო, რომ იგი უკვე ყოფილა " +"გამოყენებული. გთხოვთ, კიდევ ერთხელ სცადოთ პაროლის აღდგენა." + +msgid "" +"We've emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" + +msgid "" +"If you don't receive an email, please make sure you've entered the address " +"you registered with, and check your spam folder." +msgstr "" + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" +"თქვენ მიიღეთ ეს წერილი იმიტომ, რომ გააკეთეთ პაროლის თავიდან დაყენების " +"მოთხოვნა თქვენი მომხმარებლის ანგარიშისთვის %(site_name)s-ზე." + +msgid "Please go to the following page and choose a new password:" +msgstr "გთხოვთ, გადახვიდეთ შემდეგ გვერდზე და აირჩიოთ ახალი პაროლი:" + +msgid "Your username, in case you've forgotten:" +msgstr "თქვენი მომხმარებლის სახელი (თუ დაგავიწყდათ):" + +msgid "Thanks for using our site!" +msgstr "გმადლობთ, რომ იყენებთ ჩვენს საიტს!" + +#, python-format +msgid "The %(site_name)s team" +msgstr "%(site_name)s საიტის გუნდი" + +msgid "" +"Forgotten your password? Enter your email address below, and we'll email " +"instructions for setting a new one." +msgstr "" +"დაგავიწყდათ თქვენი პაროლი? შეიყვანეთ თქვენი ელ. ფოსტის მისამართი ქვემოთ და " +"ჩვენ გამოგიგზავნით მითითებებს ახალი პაროლის დასაყენებლად." + +msgid "Email address:" +msgstr "ელ. ფოსტის მისამართი:" + +msgid "Reset my password" +msgstr "აღვადგინოთ ჩემი პაროლი" + +msgid "All dates" +msgstr "ყველა თარიღი" + +#, python-format +msgid "Select %s" +msgstr "ავირჩიოთ %s" + +#, python-format +msgid "Select %s to change" +msgstr "აირჩიეთ %s შესაცვლელად" + +#, python-format +msgid "Select %s to view" +msgstr "" + +msgid "Date:" +msgstr "თარიღი;" + +msgid "Time:" +msgstr "დრო:" + +msgid "Lookup" +msgstr "ძიება" + +msgid "Currently:" +msgstr "ამჟამად:" + +msgid "Change:" +msgstr "შეცვლა:" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ka/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ka/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..a66299c892fe35522ccf7a1f8f69741b3f38507a GIT binary patch literal 5516 zcmds)%aa>d6~;RdNHT<1Fwa1^GgT(zvRfm$h&_>U3Yf%>Ato+IP^5|~szMZ zbhk#HEMOrhid81W&LoaQX-EQu=ZX!*f(3s7OIYyGAHXgv!h+wqrzMRi^29hrQI)Qd zzWX?j?|$dpmi@Q8ZoM4v+{5RSeD1s@2o8b&2IU#PBM6RzJK(#)zkqjw|0w7GEb%q) zy{x|u&VhHllMi?R{4{tE_!;m4P~uqdRxkl?2ftO$p9H_o{5xO+{4>a35MnHTHBjO& zgW|u!*Cp^_@M-X`;JZM_m&EOXC%|um!smD374VOs_)>nPWzKAGL^AY$1?EVEl1%CJaYJcE^iu0i8PyyKr{s1mx_b0Fo-tnOz zxEowQKwkEx<_vx9qzB}AAD>U~`IJm}kiM+bnEr-@Rids&p&C z7dE0eiB=P94(7p1ls0V=taO~qZ3!kaMckdv62G6@)H@_`^MWayX?hnEB?-$WDvTpi zC0H5nXSVA$tl!5}y{BfU;-s)y@NnF+!P&T##%rA-_=3C+}NzzPMo%GDC}(0esJEOv;;YD@L0$7gGMLL4Sz+)nk3E< zsBNNM+E@G`yV2%Y%G`CWS=}s)8K-OF+BI?NL#(=skWF0QMDS%NHBHgFv@;7@!v$o^ zFj}=m-(n-#i@r0s+q^Q9)TBI9MrHBdA|n;%%^0~>v>7y9*9q^SvAJ$JG7VOUesXHY zZQm}Y<@$P}nR*6~+nlD7aMC`Vi1r&_3`8?gvxr@K#Ot?N8l?9YrW>{B(^TpZrE8Xp zmBOGEZ^W%$l#tsdt=wyKFCDp_xm9k@rb(Rh;+I8>t^dVU?@k@}d%)%iI&ZvBER0@M|{9sY~6o zoR;w6>=j}!;F{gIN!|MHE?S4}`R{w16aFu87kti?1Mi!-c5*041n=eIaO3OWB zc_}64bFg9h`NU5vaoTnd;FGTPqBR>fY}Bor)7E8cF(+T_6vcXdX{q1uR|*Lkx9!DB z({-2hP-93+|D_Aj(xJJtXU;w}J$|iHom+8fVN+;v3+kq@7mKC!B#P4$QvNKr#mTQW zPKC=;JIU3yS@=-ebS+*5b+f!07ZaX!b0L~Lm-MnI2~WAKo7YXc?x*?5qbH0GPcEkO zCu@gJ%<=2te@?>D;F-~2Yc#lOJPb#JS4V?Oqrpp~!IjbAITrcl@jpU0Cu&hs-qmA_cVUwnO*fNNj5xi-JYZ!YlqJ>Y+sX!m?#d@9d(BifHAl~IML z1QFoNo|J(j5CtAA{ltH>eQEb9er%LWBtlVy!HH0ex9Y~L`pURc(xJchk%m%c{<$!w zOA6%2S;|2#F%o0WqGu+c4ocz4ObA#$%Z7+e(zg)-MAuIJKZ=SpoB8B!$Q@*^%!j`I za^1XWh$6P7iGcs(e6!wXSc-(#3nu(0DhnOvWFl%QxysL~awXSL@0nTfX_-ymbqhvr z->gcgpIXj(nZ2a~K$tVCSd+sje`!6A^R};qO0ehfTUrl_DKBOeqBvYfy+T)*APqf3 z2`MhW1ei!yvibtBU-OY}(hoOqvC78Mi=%P({P0MTq<1i(J*36C6wF!It2o@%XY8>q zRQ1?g8wRkSw(Sw!RCjzC$eDibM>GY;#$Gy+RehDP$`Y>`$*#6+uu8hgo?6H@5#?6t znUtdjQ?pN_(^uWq#usi8!T3N>S-dh?YeZb=W~P$Rh{ww&kF2JQfbf zh#@92#z@rgf4}leLmy$A|3Jx${Cd4n`jQUaD6Hxx1Dv43oaA~g`O%q#(gV=$_z6wv z*Z-!W^hgwbq5-MoFk~POqw6-C($b%YZIKKaUYZb_(f_KCW+V&34Yl1pdychB, 2013,2015 +# David A. , 2011 +# Jannis Leidel , 2011 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-05-17 11:50+0200\n" +"PO-Revision-Date: 2017-09-19 16:41+0000\n" +"Last-Translator: Jannis Leidel \n" +"Language-Team: Georgian (http://www.transifex.com/django/django/language/" +"ka/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ka\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" + +#, javascript-format +msgid "Available %s" +msgstr "მისაწვდომი %s" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" +"ეს არის მისაწვდომი %s-ის სია. ზოგიერთი მათგანის ასარჩევად, მონიშვნით ისინი " +"ქვედა სარკმელში და დააწკაპუნეთ ორ სარკმელს შორის მდებარე ისარზე \"არჩევა\" ." + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "აკრიფეთ ამ სარკმელში მისაწვდომი %s-ის სიის გასაფილტრად." + +msgid "Filter" +msgstr "ფილტრი" + +msgid "Choose all" +msgstr "ავირჩიოთ ყველა" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "დააწკაპუნეთ ერთდროულად ყველა %s-ის ასარჩევად." + +msgid "Choose" +msgstr "არჩევა" + +msgid "Remove" +msgstr "წავშალოთ" + +#, javascript-format +msgid "Chosen %s" +msgstr "არჩეული %s" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" +"ეს არის არჩეული %s-ის სია. ზოგიერთი მათგანის მოსაშორებლად, მონიშვნით ისინი " +"ქვედა სარკმელში და დააწკაპუნეთ ორ სარკმელს შორის მდებარე ისარზე \"მოშორება" +"\" ." + +msgid "Remove all" +msgstr "ყველას მოშორება" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "დააწკაპუნეთ ყველა არჩეული %s-ის ერთდროულად მოსაშორებლად." + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "%(cnt)s-დან არჩეულია %(sel)s" +msgstr[1] "%(cnt)s-დან არჩეულია %(sel)s" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" +"ცალკეულ ველებში შეუნახავი ცვლილებები გაქვთ! თუ მოქმედებას შეასრულებთ, " +"შეუნახავი ცვლილებები დაიკარაგება." + +msgid "" +"You have selected an action, but you haven't saved your changes to " +"individual fields yet. Please click OK to save. You'll need to re-run the " +"action." +msgstr "" +"აგირჩევიათ მოქმედება, მაგრამ ცალკეული ველები ჯერ არ შეგინახიათ! გთხოვთ, " +"შენახვისთვის დააჭიროთ OK. მოქმედების ხელახლა გაშვება მოგიწევთ." + +msgid "" +"You have selected an action, and you haven't made any changes on individual " +"fields. You're probably looking for the Go button rather than the Save " +"button." +msgstr "" +"აგირჩევიათ მოქმედება, მაგრამ ცალკეულ ველებში ცვლილებები არ გაგიკეთებიათ! " +"სავარაუდოდ, ეძებთ ღილაკს \"Go\", და არა \"შენახვა\"" + +msgid "Now" +msgstr "ახლა" + +msgid "Midnight" +msgstr "შუაღამე" + +msgid "6 a.m." +msgstr "დილის 6 სთ" + +msgid "Noon" +msgstr "შუადღე" + +msgid "6 p.m." +msgstr "" + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "შენიშვნა: თქვენ ხართ %s საათით წინ სერვერის დროზე." +msgstr[1] "შენიშვნა: თქვენ ხართ %s საათით წინ სერვერის დროზე." + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "შენიშვნა: თქვენ ხართ %s საათით უკან სერვერის დროზე." +msgstr[1] "შენიშვნა: თქვენ ხართ %s საათით უკან სერვერის დროზე." + +msgid "Choose a Time" +msgstr "" + +msgid "Choose a time" +msgstr "ავირჩიოთ დრო" + +msgid "Cancel" +msgstr "უარი" + +msgid "Today" +msgstr "დღეს" + +msgid "Choose a Date" +msgstr "" + +msgid "Yesterday" +msgstr "გუშინ" + +msgid "Tomorrow" +msgstr "ხვალ" + +msgid "January" +msgstr "" + +msgid "February" +msgstr "" + +msgid "March" +msgstr "" + +msgid "April" +msgstr "" + +msgid "May" +msgstr "" + +msgid "June" +msgstr "" + +msgid "July" +msgstr "" + +msgid "August" +msgstr "" + +msgid "September" +msgstr "" + +msgid "October" +msgstr "" + +msgid "November" +msgstr "" + +msgid "December" +msgstr "" + +msgctxt "one letter Sunday" +msgid "S" +msgstr "" + +msgctxt "one letter Monday" +msgid "M" +msgstr "" + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "" + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "" + +msgctxt "one letter Thursday" +msgid "T" +msgstr "" + +msgctxt "one letter Friday" +msgid "F" +msgstr "" + +msgctxt "one letter Saturday" +msgid "S" +msgstr "" + +msgid "Show" +msgstr "ვაჩვენოთ" + +msgid "Hide" +msgstr "დავმალოთ" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/kab/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/kab/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..d095721bce64c57a116dd52df7d9fdece6a7aadf GIT binary patch literal 3531 zcmZvdTWlRi8Gt8Hpf!|UD80}ElQyLZ@!CG7jgw7W=OlJ6Bu*^*xFHfknsau%XLELE zoxSArSjr29C#ZyIxIDC|C0ryV9?}=uA_S-sYCwoSAdo<+8Uzm@RUkk@h!?(pcb%Au z)&BF%^`HMTJNw3+H+@C%97P^LI`2@*z%SlJ!E^h&mEu)*P`n4;3*QNK)4!wPZuoxs zr@7h-wqUidQCfr_tX9?d@uY4l>NR3#m_5H^t{@Pzt)WZ8j8Qahwp=bf@1&Q;RoP< zAg{WOPO3@ObK8{qD-?g9#z?W_5)}Q2#GQJAs`}hpxRi{Me7kBQcO?8WDRW21k*PAhLfOk?&&{BKB=QAEqLCkXXv&)lhrk z93pp~?7t5YdnHzz&n%S#n++)OK8!rFrEh_{#Nh}sj~qlkfk+NNhCGh!K;&E7iEMp* z8skmJhqew-e+ZHLLmr9y!&ObGN8xTn&QJ^4gUGqj2q9GWBJxO%`wToLklI6;bLM_^KTQBKqN6V1o&eL@vsU%+wR(SheF=2d1#haiglH+L_g( zwA6W-**SH%Z(L{_=yj9l!!!$;wyzGSZY|1^>jU(ZS!P`kk9;+63ez>Y)i%r0OqzDG zh!R`X7`Cx3XjGU}^J%Y4SXmplkeDdeCI~W{=e{};#f8n((NrBXd2Q!0JV~>WI+mjG zWE$$oRY=PMrh{@_EsnIQf|9FKcDTjJQ>i+Y)@n|r&Z^VhbGBFHYRQCFyR^`2Y3Tx* zwY$1kN8x%Kqik_wxN7QN9gEt2rWSgJEk?Oown=)y0v73HblncMV(6AaQwPH=y z>w_3`By%e^yI`{>fGhoUs0~?Li3*ndZ#GxTBr$}e(~okUq^{`K)e$OHhp79ilVXlq zbpw|Uom$Na=o1lfNuAEoSU0NL8T$yQAWySwG_Jd4p^LuNnLS_Hys!Zd5T;&Q#z7UV zuC3!Wq0ZR2M>@vUSx!_Pdc78#aI;=z-w;`1Rgi04jMlA+Ngj2$|CoY^WLo*X`3 zPfxXGys4Jg+NWE4{73igo@z}^G0|JL7b4NQbzW=Ao7$sWE&nm*@r<1$r(P#BE{_dI z&)19PwU@qaU7!!y_&f(a(FeLV9+;j@W@ZkCa)c*{$K$MYVM)-ujx~v|Pnhl~wt8p3 zDAxVS$>DG~!AI%xXw5z;3npvFHW4?gCkLiGxod3k_~OEi7_=s)#`p>)nqG%!`ns@B z7L)6-iQIlUxEZHzcC~ZF+k0c4Y_?`IZ^8A_AabFv_jaS=x|zOar?I8D%uMVZNwXyP zwOg;6`Rw$5T~}v!I=y{Xw|4Cx&7!1|% z4V!FOrxPv*qs|&WcIi% zt}J}D+Aq~=Y8b_w!2k$@Nig#rgpu}GG{m5 z-iu8VBd5#%J3b$ASD~oPbK|&3Z5R^5DlmN0l|tDAFLb@liXFs!tu=IT!m5?dwIHm4%oDET4D&YlS)@iz>)fa}Jf49KXo_(5T& z1SHArc~N=B#E}kcs7p~|D>bb+L4pHN@bN* Jqp+oN;J?tM4u=2$ literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/kab/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/kab/LC_MESSAGES/django.po new file mode 100644 index 0000000000..b3d89582e8 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/kab/LC_MESSAGES/django.po @@ -0,0 +1,631 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-01-19 16:49+0100\n" +"PO-Revision-Date: 2017-10-06 11:59+0000\n" +"Last-Translator: Muḥend Belqasem \n" +"Language-Team: Kabyle (http://www.transifex.com/django/django/language/" +"kab/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: kab\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "" + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "" + +msgid "Are you sure?" +msgstr "Tebɣiḍ?" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "" + +msgid "Administration" +msgstr "Tadbelt" + +msgid "All" +msgstr "Akkw" + +msgid "Yes" +msgstr "Ih" + +msgid "No" +msgstr "Uhu" + +msgid "Unknown" +msgstr "Arussin" + +msgid "Any date" +msgstr "Yal azemz" + +msgid "Today" +msgstr "Ass-a" + +msgid "Past 7 days" +msgstr "Di 7 n wussan ineggura" + +msgid "This month" +msgstr "Aggur-agi" + +msgid "This year" +msgstr "Aseggass-agi" + +msgid "No date" +msgstr "Ulac azemz" + +msgid "Has date" +msgstr "Ɣur-s azemz" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" + +msgid "Action:" +msgstr "Tigawt:" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "" + +msgid "Remove" +msgstr "Kkes" + +msgid "action time" +msgstr "akud n tigawt" + +msgid "user" +msgstr "aseqdac" + +msgid "content type" +msgstr "anaw n ugbur" + +msgid "object id" +msgstr "asulay n tɣawsa" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/3/library/functions.html#repr) +msgid "object repr" +msgstr "" + +msgid "action flag" +msgstr "anay n tigawt" + +msgid "change message" +msgstr "" + +msgid "log entry" +msgstr "anekcum n uɣmis" + +msgid "log entries" +msgstr "inekcam n uɣmis" + +#, python-format +msgid "Added \"%(object)s\"." +msgstr "" + +#, python-format +msgid "Changed \"%(object)s\" - %(changes)s" +msgstr "" + +#, python-format +msgid "Deleted \"%(object)s.\"" +msgstr "" + +msgid "LogEntry Object" +msgstr "" + +#, python-brace-format +msgid "Added {name} \"{object}\"." +msgstr "" + +msgid "Added." +msgstr "yettwarna." + +msgid "and" +msgstr "akked" + +#, python-brace-format +msgid "Changed {fields} for {name} \"{object}\"." +msgstr "" + +#, python-brace-format +msgid "Changed {fields}." +msgstr "" + +#, python-brace-format +msgid "Deleted {name} \"{object}\"." +msgstr "" + +msgid "No fields changed." +msgstr "" + +msgid "None" +msgstr "Ula yiwen" + +msgid "" +"Hold down \"Control\", or \"Command\" on a Mac, to select more than one." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was added successfully. You may edit it again below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was added successfully. You may add another {name} " +"below." +msgstr "" + +#, python-brace-format +msgid "The {name} \"{obj}\" was added successfully." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was changed successfully. You may edit it again below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was changed successfully. You may add another {name} " +"below." +msgstr "" + +#, python-brace-format +msgid "The {name} \"{obj}\" was changed successfully." +msgstr "" + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" + +msgid "No action selected." +msgstr "" + +#, python-format +msgid "The %(name)s \"%(obj)s\" was deleted successfully." +msgstr "" + +#, python-format +msgid "%(name)s with ID \"%(key)s\" doesn't exist. Perhaps it was deleted?" +msgstr "" + +#, python-format +msgid "Add %s" +msgstr "Rnu %s" + +#, python-format +msgid "Change %s" +msgstr "" + +msgid "Database error" +msgstr "Agul n database" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "" + +#, python-format +msgid "Change history: %s" +msgstr "" + +#. Translators: Model verbose name and instance representation, +#. suitable to be an item in a list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" + +msgid "Django site admin" +msgstr "" + +msgid "Django administration" +msgstr "" + +msgid "Site administration" +msgstr "Asmel n tedbelt" + +msgid "Log in" +msgstr "Kcem" + +#, python-format +msgid "%(app)s administration" +msgstr "" + +msgid "Page not found" +msgstr "Asebtar ulac-it" + +msgid "We're sorry, but the requested page could not be found." +msgstr "Ad nesḥissef imi asebter i d-sutreḍ ulac-it." + +msgid "Home" +msgstr "Agejdan" + +msgid "Server error" +msgstr "Tuccḍa n uqeddac" + +msgid "Server error (500)" +msgstr "" + +msgid "Server Error (500)" +msgstr "" + +msgid "" +"There's been an error. It's been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" + +msgid "Run the selected action" +msgstr "" + +msgid "Go" +msgstr "Ẓer" + +msgid "Click here to select the objects across all pages" +msgstr "" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "" + +msgid "Clear selection" +msgstr "" + +msgid "" +"First, enter a username and password. Then, you'll be able to edit more user " +"options." +msgstr "" + +msgid "Enter a username and password." +msgstr "" + +msgid "Change password" +msgstr "Beddel awal n tbaḍnit" + +msgid "Please correct the error below." +msgstr "" + +msgid "Please correct the errors below." +msgstr "" + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "" + +msgid "Welcome," +msgstr "Anṣuf," + +msgid "View site" +msgstr "Wali asmel" + +msgid "Documentation" +msgstr "Tasemlit" + +msgid "Log out" +msgstr "Asenser" + +#, python-format +msgid "Add %(name)s" +msgstr "" + +msgid "History" +msgstr "Amazray" + +msgid "View on site" +msgstr "Wali deg usmel" + +msgid "Filter" +msgstr "Tastayt" + +msgid "Remove from sorting" +msgstr "" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "" + +msgid "Toggle sorting" +msgstr "" + +msgid "Delete" +msgstr "Mḥu" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" + +msgid "Objects" +msgstr "Tiɣawsiwin" + +msgid "Yes, I'm sure" +msgstr "" + +msgid "No, take me back" +msgstr "" + +msgid "Delete multiple objects" +msgstr "" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" + +msgid "Change" +msgstr "Beddel" + +msgid "Delete?" +msgstr "Kkes?" + +#, python-format +msgid " By %(filter_title)s " +msgstr "" + +msgid "Summary" +msgstr "Agzul" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "" + +msgid "Add" +msgstr "Rnu" + +msgid "You don't have permission to edit anything." +msgstr "" + +msgid "Recent actions" +msgstr "" + +msgid "My actions" +msgstr "Tigawin-iw" + +msgid "None available" +msgstr "" + +msgid "Unknown content" +msgstr "" + +msgid "" +"Something's wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" + +msgid "Forgotten your password or username?" +msgstr "" + +msgid "Date/time" +msgstr "Azemz/asrag" + +msgid "User" +msgstr "Amseqdac" + +msgid "Action" +msgstr "Tigawt" + +msgid "" +"This object doesn't have a change history. It probably wasn't added via this " +"admin site." +msgstr "" + +msgid "Show all" +msgstr "Sken akk" + +msgid "Save" +msgstr "Sekles" + +msgid "Popup closing..." +msgstr "" + +#, python-format +msgid "Change selected %(model)s" +msgstr "" + +#, python-format +msgid "Add another %(model)s" +msgstr "" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "" + +msgid "Search" +msgstr "Anadi" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "" + +msgid "Save as new" +msgstr "Sekles d amaynut:" + +msgid "Save and add another" +msgstr "" + +msgid "Save and continue editing" +msgstr "" + +msgid "Thanks for spending some quality time with the Web site today." +msgstr "" + +msgid "Log in again" +msgstr "" + +msgid "Password change" +msgstr "Abeddel n wawal uffir" + +msgid "Your password was changed." +msgstr "" + +msgid "" +"Please enter your old password, for security's sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" + +msgid "Change my password" +msgstr "" + +msgid "Password reset" +msgstr "Awennez n wawal uffir" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "" + +msgid "Password reset confirmation" +msgstr "Asentem n uwennez n wawal uffir" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" + +msgid "New password:" +msgstr "Awal n tbaḍnit amaynut:" + +msgid "Confirm password:" +msgstr "Sentem awal uffir" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" + +msgid "" +"We've emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" + +msgid "" +"If you don't receive an email, please make sure you've entered the address " +"you registered with, and check your spam folder." +msgstr "" + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" + +msgid "Please go to the following page and choose a new password:" +msgstr "" + +msgid "Your username, in case you've forgotten:" +msgstr "" + +msgid "Thanks for using our site!" +msgstr "" + +#, python-format +msgid "The %(site_name)s team" +msgstr "" + +msgid "" +"Forgotten your password? Enter your email address below, and we'll email " +"instructions for setting a new one." +msgstr "" + +msgid "Email address:" +msgstr "Tansa e-mail :" + +msgid "Reset my password" +msgstr "Wennez awal-iw uffir" + +msgid "All dates" +msgstr "Izemzen merra" + +#, python-format +msgid "Select %s" +msgstr "Fren %s" + +#, python-format +msgid "Select %s to change" +msgstr "" + +msgid "Date:" +msgstr "Azemz:" + +msgid "Time:" +msgstr "Akud:" + +msgid "Lookup" +msgstr "Anadi" + +msgid "Currently:" +msgstr "Tura:" + +msgid "Change:" +msgstr "Beddel:" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/kab/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/kab/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..755849a2d60e60254a816167e1dc31040d3a991d GIT binary patch literal 1844 zcmaKqO>7%Q6vqczXzKFSmai5lQy@~JXzjHrakL>7u2ZW?>n2LJph{fE-m$&e-B~j` z8^<{!aYCFZCj=6z-~va43Kuw`_EIh!5h52ZaDW>eK>VLQ`9MO9_RVkJ%=?&q^L{*W z_&tX4JmhJ}xqBEZfmiOugfVf5u_|~JydSJtUIOofzGC%j-~-TKw|Z#V2Oq@#!1682 zcfkVoKLU?}pMewL7nWaxl);2dQ4?H%{tJvK&NL>XYgq-!|2#29nWC#EQI3ij)$oW$Z1+&JOMccpxjbIcH|a0l*T`{ zi`aUXBGD>M7n)1Wi~BVw7u`ZVRYoe@ZP>?88o6ak{aA!*p0|5KXVNTO^Bd0Gz8xj& zNbOuy?KB8g*W+`o(Cl5)7ZB#-HO0`d1`2^RN{JyY(APO;g}Ev3 z+|)9o-iGEI1;3je!4)5dJGb8X*G|4IV)oiNhmX23Kc{|=BKTj%#6=Xbx)~d+NBD_a TmN|mewq+CvwuE^2(~$iG9x{-_ literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/kab/LC_MESSAGES/djangojs.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/kab/LC_MESSAGES/djangojs.po new file mode 100644 index 0000000000..57f70c99ea --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/kab/LC_MESSAGES/djangojs.po @@ -0,0 +1,204 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-05-17 23:12+0200\n" +"PO-Revision-Date: 2017-10-06 08:10+0000\n" +"Last-Translator: Muḥend Belqasem \n" +"Language-Team: Kabyle (http://www.transifex.com/django/django/language/" +"kab/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: kab\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, javascript-format +msgid "Available %s" +msgstr "Yella %s" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "" + +msgid "Filter" +msgstr "Tastayt" + +msgid "Choose all" +msgstr "Fren akk" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "" + +msgid "Choose" +msgstr "Fren" + +msgid "Remove" +msgstr "kkes" + +#, javascript-format +msgid "Chosen %s" +msgstr "Ifren %s" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" + +msgid "Remove all" +msgstr "Kkes akk" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "" + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "%(sel)s si %(cnt)s yettwafren" +msgstr[1] "%(sel)s si %(cnt)s ttwafernen" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" + +msgid "" +"You have selected an action, but you haven't saved your changes to " +"individual fields yet. Please click OK to save. You'll need to re-run the " +"action." +msgstr "" + +msgid "" +"You have selected an action, and you haven't made any changes on individual " +"fields. You're probably looking for the Go button rather than the Save " +"button." +msgstr "" + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "" +msgstr[1] "" + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "" +msgstr[1] "" + +msgid "Now" +msgstr "Tura" + +msgid "Choose a Time" +msgstr "Fren akud:" + +msgid "Choose a time" +msgstr "Fren akud" + +msgid "Midnight" +msgstr "Ttnaṣfa n yiḍ" + +msgid "6 a.m." +msgstr "6 f.t." + +msgid "Noon" +msgstr "Ttnaṣfa n uzal" + +msgid "6 p.m." +msgstr "6 m.d." + +msgid "Cancel" +msgstr "Sefsex" + +msgid "Today" +msgstr "Ass-a" + +msgid "Choose a Date" +msgstr "Fren azemz" + +msgid "Yesterday" +msgstr "Iḍelli" + +msgid "Tomorrow" +msgstr "Azekka" + +msgid "January" +msgstr "Yennayer" + +msgid "February" +msgstr "Fuṛaṛ" + +msgid "March" +msgstr "Meɣres" + +msgid "April" +msgstr "Yebrir" + +msgid "May" +msgstr "Mayyu" + +msgid "June" +msgstr "Yunyu" + +msgid "July" +msgstr "Yulyu" + +msgid "August" +msgstr "Ɣuct" + +msgid "September" +msgstr "Ctamber" + +msgid "October" +msgstr "Tuber" + +msgid "November" +msgstr "Wamber" + +msgid "December" +msgstr "Dujamber" + +msgctxt "one letter Sunday" +msgid "S" +msgstr "" + +msgctxt "one letter Monday" +msgid "M" +msgstr "" + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "" + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "" + +msgctxt "one letter Thursday" +msgid "T" +msgstr "" + +msgctxt "one letter Friday" +msgid "F" +msgstr "" + +msgctxt "one letter Saturday" +msgid "S" +msgstr "" + +msgid "Show" +msgstr "Sken" + +msgid "Hide" +msgstr "Ffer" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/kk/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/kk/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..abc3c54e8bdd09b2e719ac9fdfd72cfa633f6a5a GIT binary patch literal 12845 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/kk/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/kk/LC_MESSAGES/django.po new file mode 100644 index 0000000000..6d9625afd8 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/kk/LC_MESSAGES/django.po @@ -0,0 +1,695 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Baurzhan Muftakhidinov , 2015 +# Leo Trubach , 2017 +# Nurlan Rakhimzhanov , 2011 +# yun_man_ger , 2011 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-01-16 20:42+0100\n" +"PO-Revision-Date: 2019-01-18 00:36+0000\n" +"Last-Translator: Ramiro Morales\n" +"Language-Team: Kazakh (http://www.transifex.com/django/django/language/kk/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: kk\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "Таңдалған %(count)d %(items)s элемент өшірілді." + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "%(name)s өшіру мүмкін емес" + +msgid "Are you sure?" +msgstr "Осыған сенімдісіз бе?" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "Таңдалған %(verbose_name_plural)s өшірілді" + +msgid "Administration" +msgstr "" + +msgid "All" +msgstr "Барлығы" + +msgid "Yes" +msgstr "Иә" + +msgid "No" +msgstr "Жоқ" + +msgid "Unknown" +msgstr "Белгісіз" + +msgid "Any date" +msgstr "Кез келген күн" + +msgid "Today" +msgstr "Бүгін" + +msgid "Past 7 days" +msgstr "Өткен 7 күн" + +msgid "This month" +msgstr "Осы ай" + +msgid "This year" +msgstr "Осы жыл" + +msgid "No date" +msgstr "Күні жоқ" + +msgid "Has date" +msgstr "Күні бар" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" + +msgid "Action:" +msgstr "Әрекет:" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "Тағы басқа %(verbose_name)s кос" + +msgid "Remove" +msgstr "Өшіру" + +msgid "Addition" +msgstr "" + +msgid "Change" +msgstr "Өзгетру" + +msgid "Deletion" +msgstr "" + +msgid "action time" +msgstr "әрекет уақыты" + +msgid "user" +msgstr "" + +msgid "content type" +msgstr "" + +msgid "object id" +msgstr "объекттің id-i" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/library/functions.html#repr) +msgid "object repr" +msgstr "объекттің repr-i" + +msgid "action flag" +msgstr "әрекет белгісі" + +msgid "change message" +msgstr "хабарламаны өзгерту" + +msgid "log entry" +msgstr "Жорнал жазуы" + +msgid "log entries" +msgstr "Жорнал жазулары" + +#, python-format +msgid "Added \"%(object)s\"." +msgstr "" + +#, python-format +msgid "Changed \"%(object)s\" - %(changes)s" +msgstr "" + +#, python-format +msgid "Deleted \"%(object)s.\"" +msgstr "" + +msgid "LogEntry Object" +msgstr "" + +#, python-brace-format +msgid "Added {name} \"{object}\"." +msgstr "" + +msgid "Added." +msgstr "" + +msgid "and" +msgstr "және" + +#, python-brace-format +msgid "Changed {fields} for {name} \"{object}\"." +msgstr "" + +#, python-brace-format +msgid "Changed {fields}." +msgstr "" + +#, python-brace-format +msgid "Deleted {name} \"{object}\"." +msgstr "" + +msgid "No fields changed." +msgstr "Ешқандай толтырма өзгермеді." + +msgid "None" +msgstr "Ешнәрсе" + +msgid "" +"Hold down \"Control\", or \"Command\" on a Mac, to select more than one." +msgstr "" + +#, python-brace-format +msgid "The {name} \"{obj}\" was added successfully." +msgstr "" + +msgid "You may edit it again below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was added successfully. You may add another {name} " +"below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was changed successfully. You may edit it again below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was added successfully. You may edit it again below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was changed successfully. You may add another {name} " +"below." +msgstr "" + +#, python-brace-format +msgid "The {name} \"{obj}\" was changed successfully." +msgstr "" + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" +"Бірнәрсені өзгерту үшін бірінші оларды таңдау керек. Ешнәрсе өзгертілмеді." + +msgid "No action selected." +msgstr "Ешқандай әрекет таңдалмады." + +#, python-format +msgid "The %(name)s \"%(obj)s\" was deleted successfully." +msgstr "%(name)s \"%(obj)s\" сәтті өшірілді." + +#, python-format +msgid "%(name)s with ID \"%(key)s\" doesn't exist. Perhaps it was deleted?" +msgstr "" + +#, python-format +msgid "Add %s" +msgstr "%s қосу" + +#, python-format +msgid "Change %s" +msgstr "%s өзгету" + +#, python-format +msgid "View %s" +msgstr "" + +msgid "Database error" +msgstr "Мәліметтер базасының қатесі" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "" +"one: %(count)s %(name)s өзгертілді.\n" +"\n" +"other: %(count)s %(name)s таңдалғандарының барі өзгертілді." +msgstr[1] "" +"one: %(count)s %(name)s өзгертілді.\n" +"\n" +"other: %(count)s %(name)s таңдалғандарының барі өзгертілді." + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "" +"one: %(total_count)s таңдалды\n" +"\n" +"other: Барлығы %(total_count)s таңдалды" +msgstr[1] "" +"one: %(total_count)s таңдалды\n" +"\n" +"other: Барлығы %(total_count)s таңдалды" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "0 of %(cnt)s-ден 0 таңдалды" + +#, python-format +msgid "Change history: %s" +msgstr "Өзгерес тарихы: %s" + +#. Translators: Model verbose name and instance representation, +#. suitable to be an item in a list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" + +msgid "Django site admin" +msgstr "Даңғо сайтының әкімі" + +msgid "Django administration" +msgstr "Даңғо әкімшілігі" + +msgid "Site administration" +msgstr "Сайт әкімшілігі" + +msgid "Log in" +msgstr "Кіру" + +#, python-format +msgid "%(app)s administration" +msgstr "" + +msgid "Page not found" +msgstr "Бет табылмады" + +msgid "We're sorry, but the requested page could not be found." +msgstr "Кешірім сұраймыз, сіздің сұраған бетіңіз табылмады." + +msgid "Home" +msgstr "Негізгі" + +msgid "Server error" +msgstr "Сервердің қатесі" + +msgid "Server error (500)" +msgstr "Сервердің қатесі (500)" + +msgid "Server Error (500)" +msgstr "Сервердің қатесі (500)" + +msgid "" +"There's been an error. It's been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" + +msgid "Run the selected action" +msgstr "Таңдалған әрәкетті іске қосу" + +msgid "Go" +msgstr "Алға" + +msgid "Click here to select the objects across all pages" +msgstr "Осы беттегі барлық объекттерді таңдау үшін осы жерді шертіңіз" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "Осылардың %(total_count)s %(module_name)s барлығын таңдау" + +msgid "Clear selection" +msgstr "Белгілерді өшіру" + +msgid "" +"First, enter a username and password. Then, you'll be able to edit more user " +"options." +msgstr "" +"Алдымен, пайдаланушының атын және құпия сөзді енгізіңіз. Содан соң, тағы " +"басқа пайдаланушы параметрлерін енгізе аласыз." + +msgid "Enter a username and password." +msgstr "Пайдаланушының атын және құпия сөзді енгізіңіз." + +msgid "Change password" +msgstr "Құпия сөзді өзгерту" + +msgid "Please correct the error below." +msgstr "" + +msgid "Please correct the errors below." +msgstr "" + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "" +"%(username)s пайдаланушы үшін жаңа құпия сөзді енгізіңіз." + +msgid "Welcome," +msgstr "Қош келдіңіз," + +msgid "View site" +msgstr "" + +msgid "Documentation" +msgstr "Құжаттама" + +msgid "Log out" +msgstr "Шығу" + +#, python-format +msgid "Add %(name)s" +msgstr "%(name)s қосу" + +msgid "History" +msgstr "Тарих" + +msgid "View on site" +msgstr "Сайтта көру" + +msgid "Filter" +msgstr "Сүзгіз" + +msgid "Remove from sorting" +msgstr "" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "" + +msgid "Toggle sorting" +msgstr "" + +msgid "Delete" +msgstr "Өшіру" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" +"%(object_name)s '%(escaped_object)s' объектты өшіруы байланысты объекттерін " +"өшіруді қажет етеді, бырақ сізде осындай объектерді өшіру рұқсаты жоқ:" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" +"%(object_name)s '%(escaped_object)s' объектті өшіру осындай байлансты " +"объекттерды өшіруді қажет етеді:" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" +"%(object_name)s \"%(escaped_object)s\" объекттерді өшіруге сенімдісіз бе? " +"Бұл байланысты элементтер де өшіріледі:" + +msgid "Objects" +msgstr "" + +msgid "Yes, I'm sure" +msgstr "Иә, сенімдімін" + +msgid "No, take me back" +msgstr "" + +msgid "Delete multiple objects" +msgstr "Бірнеше объекттерді өшіру" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" +"%(objects_name)s объектты өшіруы байланысты объекттерін өшіруді қажет етеді, " +"бырақ сізде осындай объектерді өшіру рұқсаты жоқ:" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" +"Таңдалған %(objects_name)s-ді(ы) өшіру, онымен байланыстағы қорғалған " +"объектілердің барлығын жояды:" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" +"Таңдаған %(objects_name)s объектіңізді өшіруге сенімдісіз бе? Себебі, " +"таңдағын объектіліріңіз және онымен байланыстағы барлық элементтер жойылады:" + +msgid "View" +msgstr "" + +msgid "Delete?" +msgstr "Өшіру?" + +#, python-format +msgid " By %(filter_title)s " +msgstr " %(filter_title)s " + +msgid "Summary" +msgstr "" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "" + +msgid "Add" +msgstr "Қосу" + +msgid "You don't have permission to view or edit anything." +msgstr "" + +msgid "Recent actions" +msgstr "" + +msgid "My actions" +msgstr "" + +msgid "None available" +msgstr "Қол жетімдісі жоқ" + +msgid "Unknown content" +msgstr "Белгісіз мазмұн" + +msgid "" +"Something's wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" +"Дерекқор орнатуыңызда бір қате бар. Дерекқор кестелері дұрыс құрылғаның және " +"дерекқор көрсетілген дерекқор пайдаланушыда оқұ рұқсаты бар." + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" + +msgid "Forgotten your password or username?" +msgstr "" + +msgid "Date/time" +msgstr "Өшіру/Уақыт" + +msgid "User" +msgstr "Қолданушы" + +msgid "Action" +msgstr "Әрекет" + +msgid "" +"This object doesn't have a change history. It probably wasn't added via this " +"admin site." +msgstr "" +"Бұл объекттың өзгерту тарихы жоқ. Мүмкін ол бұл сайт арқылы енгізілген жоқ." + +msgid "Show all" +msgstr "Барлығын көрсету" + +msgid "Save" +msgstr "Сақтау" + +msgid "Popup closing…" +msgstr "" + +msgid "Search" +msgstr "Іздеу" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "%(counter)s нәтиже" +msgstr[1] "%(counter)s нәтиже" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "Барлығы %(full_result_count)s" + +msgid "Save as new" +msgstr "Жаңадан сақтау" + +msgid "Save and add another" +msgstr "Сақта және жаңасын қос" + +msgid "Save and continue editing" +msgstr "Сақта және өзгертуді жалғастыр" + +msgid "Save and view" +msgstr "" + +msgid "Close" +msgstr "" + +#, python-format +msgid "Change selected %(model)s" +msgstr "" + +#, python-format +msgid "Add another %(model)s" +msgstr "" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "" + +msgid "Thanks for spending some quality time with the Web site today." +msgstr "Бүгін Веб-торапқа уақыт бөлгеніңіз үшін рахмет." + +msgid "Log in again" +msgstr "Қайтадан кіріңіз" + +msgid "Password change" +msgstr "Құпия сөзді өзгерту" + +msgid "Your password was changed." +msgstr "Құпия сөзіңіз өзгертілді." + +msgid "" +"Please enter your old password, for security's sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" +"Ескі құпия сөзіңізді енгізіңіз, содан сон сенімді болу үшін жаңа құпия " +"сөзіңізді екі рет енгізіңіз." + +msgid "Change my password" +msgstr "Құпия сөзімді өзгерту" + +msgid "Password reset" +msgstr "Құпия сөзді өзгерту" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "Сіздің құпия сөзіңіз енгізілді. Жүйеге кіруіңізге болады." + +msgid "Password reset confirmation" +msgstr "Құпия сөзді өзгерту растау" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "Сенімді болу үшін жаңа құпия сөзіңізді екі рет енгізіңіз." + +msgid "New password:" +msgstr "Жаңа құпия сөз:" + +msgid "Confirm password:" +msgstr "Құпия сөз (растау):" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"Құпия сөзді өзгерту байланыс дұрыс емес, мүмкін ол осыған дейін " +"пайдаланылды. Жаңа құпия сөзді өзгерту сұрау жіберіңіз." + +msgid "" +"We've emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" + +msgid "" +"If you don't receive an email, please make sure you've entered the address " +"you registered with, and check your spam folder." +msgstr "" + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" + +msgid "Please go to the following page and choose a new password:" +msgstr "Жаңа құпия сөзді тандау үшін мынау бетке кіріңіз:" + +msgid "Your username, in case you've forgotten:" +msgstr "Егер ұмытып қалған болсаңыз, пайдалануш атыңыз:" + +msgid "Thanks for using our site!" +msgstr "Біздің веб-торабын қолданғаныңыз үшін рахмет!" + +#, python-format +msgid "The %(site_name)s team" +msgstr "%(site_name)s тобы" + +msgid "" +"Forgotten your password? Enter your email address below, and we'll email " +"instructions for setting a new one." +msgstr "" + +msgid "Email address:" +msgstr "" + +msgid "Reset my password" +msgstr "Құпия сөзді жаңала" + +msgid "All dates" +msgstr "Барлық мерзімдер" + +#, python-format +msgid "Select %s" +msgstr "%s таңда" + +#, python-format +msgid "Select %s to change" +msgstr "%s өзгерту үщін таңда" + +#, python-format +msgid "Select %s to view" +msgstr "" + +msgid "Date:" +msgstr "Күнтізбелік күн:" + +msgid "Time:" +msgstr "Уақыт:" + +msgid "Lookup" +msgstr "Іздеу" + +msgid "Currently:" +msgstr "" + +msgid "Change:" +msgstr "" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/kk/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/kk/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..0b65151380cfe72e147902f67fd2d04afa69c094 GIT binary patch literal 2387 zcmb7E-)|IE6dn|Rt%8ca7&SSXH0;LCv?YeZmKqcRkye^gjKrtgox8ik&dyzC?zYs# zq(2fv(!@x#O(=;8_C=m3k+p$R)F%_4?reSbQ4{|IeeydqL%T&nbeh?3&bjBF^PTV9 z+u!!=T(I!GfcF)=H}SrTcW4KG@canu2mSw4_ zbTYdi_$cf{K+bbG^B)I3273s|@uR?}fFA>wfD-r>kT*8~3&3;C1x3!lK99`^v3>^f zzF&ZQfWHD?0{#JHzB^EqaX0XJ;LDk919Py8K;Cy0xEuIU=C5QJ0-4{Zz(0YX0sjV` zf5NhU2l`k9t)%y7fy}A%;hLPEb?$svJARluKS-PC#2i39;f4~M5BKmiUgq)~d%NcU0sV2Vmr5mY2P3&;yxZ^Cn%!l$w)eK&FlIroN=8lf5o z{VDR5s(C?$$|@vXm2_OucvEX^4h3v>qA0JNW+v&H^Kfbi+D0wH&V+2ZNlvSOlcOoA z9UAeafQlvGE7j=KNkSy=Pnr8Z1roX745b}5Q)a0o9i*B;TJphCNY~TJ= zbR7ai+>q|iH0goDxP)wxcC3+5ox_o_Pq_AnGK?^nBDv=vzsiluh6=Sk992Bmey3T9 z>@iiO+{h_=R8DvtYQHPAEYiN-zJ9y+pxt+n`t}#!?0cgZPi{y=+8zr<5cxu@ut@KV zAn+m@k~mL39YPV9hyBEKyr8V!!k(bg6cuTYNl`D-N%4uORViQ9x>4-unVg(-G$-`R z@`6)R^`4aJJ@B*LJ+)d-Avb(t_~=$oeNJ!ghzhg}Kx(Q1)>>ZBJq=%Y!2r)RjHDhs zGj_~AuocI($}+T%1|{X+9@w|KUFJ)W`JOE6ZkZQ9!SHonLo@mwC!cjM0smRZ`k2FHwPp&)WyLN3%W>y}x7 zf7Z0x%Lu~qMbiQaEUl8cny`cp@m$&r$Ywo&m033{)V{)W5ceg@ud`a+xa)cIg;`@) z;eq>z(<8QJejxBmvZe_*oWzvVI)OTF23b z3r7$V+<{a)!xo>74mpyAHI|?6LUt=4ET)}L|JfBfqInS8#Y>x;cE~KGvqB<1b!hC$ jwl+5TCQ2tGGB+SQPvD^yxC`EVH#tVQ6DW|JAIJI!iGJa8 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/kk/LC_MESSAGES/djangojs.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/kk/LC_MESSAGES/djangojs.po new file mode 100644 index 0000000000..9c51f35b87 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/kk/LC_MESSAGES/djangojs.po @@ -0,0 +1,210 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Nurlan Rakhimzhanov , 2011 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-05-17 11:50+0200\n" +"PO-Revision-Date: 2017-09-19 16:41+0000\n" +"Last-Translator: Jannis Leidel \n" +"Language-Team: Kazakh (http://www.transifex.com/django/django/language/kk/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: kk\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" + +#, javascript-format +msgid "Available %s" +msgstr "%s бар" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "" + +msgid "Filter" +msgstr "Сүзгіш" + +msgid "Choose all" +msgstr "" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "" + +msgid "Choose" +msgstr "" + +msgid "Remove" +msgstr "Өшіру(жою)" + +#, javascript-format +msgid "Chosen %s" +msgstr "" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" + +msgid "Remove all" +msgstr "" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "" + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "%(cnt)s-ң %(sel)s-ы(і) таңдалды" +msgstr[1] "%(cnt)s-ң %(sel)s-ы(і) таңдалды" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" +"Сіздің төмендегі өзгермелі алаңдарда(fields) өзгерістеріңіз бар. Егер артық " +"әрекет жасасаңызб сіз өзгерістеріңізді жоғалтасыз." + +msgid "" +"You have selected an action, but you haven't saved your changes to " +"individual fields yet. Please click OK to save. You'll need to re-run the " +"action." +msgstr "" +"Сіз өз өзгерістеріңізді сақтамай, әрекет жасадыңыз. Өтініш, сақтау үшін ОК " +"батырмасын басыңыз және өз әрекетіңізді қайта жасап көріңіз. " + +msgid "" +"You have selected an action, and you haven't made any changes on individual " +"fields. You're probably looking for the Go button rather than the Save " +"button." +msgstr "" +"Сіз Сақтау батырмасына қарағанда, Go(Алға) батырмасын іздеп отырған " +"боларсыз, себебі ешқандай өзгеріс жасамай, әрекет жасадыңыз." + +msgid "Now" +msgstr "Қазір" + +msgid "Midnight" +msgstr "Түн жарым" + +msgid "6 a.m." +msgstr "06" + +msgid "Noon" +msgstr "Талтүс" + +msgid "6 p.m." +msgstr "" + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "" +msgstr[1] "" + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "" +msgstr[1] "" + +msgid "Choose a Time" +msgstr "" + +msgid "Choose a time" +msgstr "Уақытты таңда" + +msgid "Cancel" +msgstr "Болдырмау" + +msgid "Today" +msgstr "Бүгін" + +msgid "Choose a Date" +msgstr "" + +msgid "Yesterday" +msgstr "Кеше" + +msgid "Tomorrow" +msgstr "Ертең" + +msgid "January" +msgstr "" + +msgid "February" +msgstr "" + +msgid "March" +msgstr "" + +msgid "April" +msgstr "" + +msgid "May" +msgstr "" + +msgid "June" +msgstr "" + +msgid "July" +msgstr "" + +msgid "August" +msgstr "" + +msgid "September" +msgstr "" + +msgid "October" +msgstr "" + +msgid "November" +msgstr "" + +msgid "December" +msgstr "" + +msgctxt "one letter Sunday" +msgid "S" +msgstr "" + +msgctxt "one letter Monday" +msgid "M" +msgstr "" + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "" + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "" + +msgctxt "one letter Thursday" +msgid "T" +msgstr "" + +msgctxt "one letter Friday" +msgid "F" +msgstr "" + +msgctxt "one letter Saturday" +msgid "S" +msgstr "" + +msgid "Show" +msgstr "Көрсету" + +msgid "Hide" +msgstr "Жасыру" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/km/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/km/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..a50821c263254c50fee624fe3b7990466f0dabc4 GIT binary patch literal 10403 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 XhX6z&+GozL`v2Tuqw3Z*|F-kLiZ%N0 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/km/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/km/LC_MESSAGES/django.po new file mode 100644 index 0000000000..8b16d1fcbf --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/km/LC_MESSAGES/django.po @@ -0,0 +1,636 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Jannis Leidel , 2011 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-01-19 16:49+0100\n" +"PO-Revision-Date: 2017-09-19 16:41+0000\n" +"Last-Translator: Jannis Leidel \n" +"Language-Team: Khmer (http://www.transifex.com/django/django/language/km/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: km\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "" + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "" + +msgid "Are you sure?" +msgstr "តើលោកអ្នកប្រាកដទេ?" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "" + +msgid "Administration" +msgstr "" + +msgid "All" +msgstr "ទាំងអស់" + +msgid "Yes" +msgstr "យល់ព្រម" + +msgid "No" +msgstr "មិនយល់ព្រម" + +msgid "Unknown" +msgstr "មិន​ដឹង" + +msgid "Any date" +msgstr "កាល​បរិច្ឆេទណាមួយ" + +msgid "Today" +msgstr "ថ្ងៃនេះ" + +msgid "Past 7 days" +msgstr "៧​ថ្ងៃ​កន្លង​មក" + +msgid "This month" +msgstr "ខែ​នេះ" + +msgid "This year" +msgstr "ឆ្នាំ​នេះ" + +msgid "No date" +msgstr "" + +msgid "Has date" +msgstr "" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" + +msgid "Action:" +msgstr "" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "" + +msgid "Remove" +msgstr "លប់ចេញ" + +msgid "action time" +msgstr "ពេលវេលាប្រតិបត្តិការ" + +msgid "user" +msgstr "" + +msgid "content type" +msgstr "" + +msgid "object id" +msgstr "លេខ​សំគាល់​កម្មវិធី (object id)" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/3/library/functions.html#repr) +msgid "object repr" +msgstr "object repr" + +msgid "action flag" +msgstr "សកម្មភាព" + +msgid "change message" +msgstr "ផ្លាស់ប្តូរ" + +msgid "log entry" +msgstr "កំណត់ហេតុ" + +msgid "log entries" +msgstr "កំណត់ហេតុ" + +#, python-format +msgid "Added \"%(object)s\"." +msgstr "" + +#, python-format +msgid "Changed \"%(object)s\" - %(changes)s" +msgstr "" + +#, python-format +msgid "Deleted \"%(object)s.\"" +msgstr "" + +msgid "LogEntry Object" +msgstr "" + +#, python-brace-format +msgid "Added {name} \"{object}\"." +msgstr "" + +msgid "Added." +msgstr "" + +msgid "and" +msgstr "និង" + +#, python-brace-format +msgid "Changed {fields} for {name} \"{object}\"." +msgstr "" + +#, python-brace-format +msgid "Changed {fields}." +msgstr "" + +#, python-brace-format +msgid "Deleted {name} \"{object}\"." +msgstr "" + +msgid "No fields changed." +msgstr "ពុំមានទិន្នន័យត្រូវបានផ្លាស់ប្តូរ។" + +msgid "None" +msgstr "" + +msgid "" +"Hold down \"Control\", or \"Command\" on a Mac, to select more than one." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was added successfully. You may edit it again below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was added successfully. You may add another {name} " +"below." +msgstr "" + +#, python-brace-format +msgid "The {name} \"{obj}\" was added successfully." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was changed successfully. You may edit it again below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was changed successfully. You may add another {name} " +"below." +msgstr "" + +#, python-brace-format +msgid "The {name} \"{obj}\" was changed successfully." +msgstr "" + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" + +msgid "No action selected." +msgstr "" + +#, python-format +msgid "The %(name)s \"%(obj)s\" was deleted successfully." +msgstr "ឈ្មោះកម្មវិធី %(name)s \"%(obj)s\" ត្រូវបានលប់ដោយជោគជ័យ។" + +#, python-format +msgid "%(name)s with ID \"%(key)s\" doesn't exist. Perhaps it was deleted?" +msgstr "" + +#, python-format +msgid "Add %s" +msgstr "បន្ថែម %s" + +#, python-format +msgid "Change %s" +msgstr "ផ្លាស់ប្តូរ %s" + +msgid "Database error" +msgstr "ទិន្នន័យមូលដ្ឋានមានបញ្ហា" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "" + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "" + +#, python-format +msgid "Change history: %s" +msgstr "សកម្មភាពផ្លាស់ប្តូរកន្លងមក : %s" + +#. Translators: Model verbose name and instance representation, +#. suitable to be an item in a list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" + +msgid "Django site admin" +msgstr "ទំព័រគ្រប់គ្រងរបស់ Django" + +msgid "Django administration" +msgstr "ការ​គ្រប់គ្រង​របស់ ​Django" + +msgid "Site administration" +msgstr "ទំព័រគ្រប់គ្រង" + +msgid "Log in" +msgstr "ពិនិត្យចូល" + +#, python-format +msgid "%(app)s administration" +msgstr "" + +msgid "Page not found" +msgstr "ទំព័រ​ដែល​លោកអ្នកចង់​រក​នេះពុំមាន​នៅក្នុងម៉ាស៊ីនរបស់យើងខ្ញុំទេ" + +msgid "We're sorry, but the requested page could not be found." +msgstr "សួមអភ័យទោស ទំព័រ​ដែល​លោកអ្នកចង់​រក​នេះពុំមាន​នឹងក្នុងម៉ាស៊ីនរបស់យើងខ្ញុំទេ" + +msgid "Home" +msgstr "គេហទំព័រ" + +msgid "Server error" +msgstr "ម៉ាស៊ីនផ្តល់សេវាកម្ម​ មានបញ្ហា" + +msgid "Server error (500)" +msgstr "ម៉ាស៊ីនផ្តល់សេវាកម្ម​ មានបញ្ហា (៥០០)" + +msgid "Server Error (500)" +msgstr "ម៉ាស៊ីនផ្តល់សេវាកម្ម​ មានបញ្ហា  (៥០០)" + +msgid "" +"There's been an error. It's been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" + +msgid "Run the selected action" +msgstr "" + +msgid "Go" +msgstr "ស្វែងរក" + +msgid "Click here to select the objects across all pages" +msgstr "" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "" + +msgid "Clear selection" +msgstr "" + +msgid "" +"First, enter a username and password. Then, you'll be able to edit more user " +"options." +msgstr "" +"តំបូងសូមបំពេញ ឈ្មោះជាសមាជិក និង ពាក្យសំងាត់​។ បន្ទាប់មកលោកអ្នកអាចបំពេញបន្ថែមជំរើសផ្សេងៗទៀតបាន។ " + +msgid "Enter a username and password." +msgstr "" + +msgid "Change password" +msgstr "ផ្លាស់ប្តូរពាក្យសំងាត់" + +msgid "Please correct the error below." +msgstr "" + +msgid "Please correct the errors below." +msgstr "" + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "" + +msgid "Welcome," +msgstr "សូមស្វាគមន៏" + +msgid "View site" +msgstr "" + +msgid "Documentation" +msgstr "ឯកសារ" + +msgid "Log out" +msgstr "ចាកចេញ" + +#, python-format +msgid "Add %(name)s" +msgstr "បន្ថែម %(name)s" + +msgid "History" +msgstr "សកម្មភាព​កន្លង​មក" + +msgid "View on site" +msgstr "មើលនៅលើគេហទំព័រដោយផ្ទាល់" + +msgid "Filter" +msgstr "ស្វែងរកជាមួយ" + +msgid "Remove from sorting" +msgstr "" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "" + +msgid "Toggle sorting" +msgstr "" + +msgid "Delete" +msgstr "លប់" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" +"ការលប់ %(object_name)s '%(escaped_object)s' អាចធ្វើអោយ​កម្មវិធីដែលពាក់​ព័ន្ធបាត់បង់ ។" +" ក៏ប៉ន្តែលោកអ្នក​ពុំមាន​សិទ្ធិលប់​កម្មវិធី​ប្រភេទនេះទេ។" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" +"តើលោកអ្នកប្រាកដជាចង់លប់ %(object_name)s \"%(escaped_object)s" +"\"? ការលប់ %(object_name)s '%(escaped_object)s' អាចធ្វើអោយ​កម្មវិធីដែលពាក់​ព័ន្ធបាត់បង់។" + +msgid "Objects" +msgstr "" + +msgid "Yes, I'm sure" +msgstr "ខ្ញុំច្បាស់​ជាចង់លប់" + +msgid "No, take me back" +msgstr "" + +msgid "Delete multiple objects" +msgstr "" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" + +msgid "Change" +msgstr "ផ្លាស់ប្តូរ" + +msgid "Delete?" +msgstr "" + +#, python-format +msgid " By %(filter_title)s " +msgstr "ដោយ​  %(filter_title)s " + +msgid "Summary" +msgstr "" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "" + +msgid "Add" +msgstr "បន្ថែម" + +msgid "You don't have permission to edit anything." +msgstr "លោកអ្នកពុំមានសិទ្ធិ ផ្លាស់​ប្តូរ ទេ។" + +msgid "Recent actions" +msgstr "" + +msgid "My actions" +msgstr "" + +msgid "None available" +msgstr "គ្មាន" + +msgid "Unknown content" +msgstr "" + +msgid "" +"Something's wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" +"មូលដ្ឋាន​ទិន្នន័យ​​​ របស់លោកអ្នក មានបញ្ហា។ តើ លោកអ្នកបាន បង្កើត តារាង​ របស់មូលដ្ឋានទិន្នន័យ​" +" ហើយឬនៅ? តើ​ លោកអ្នកប្រាកដថាសមាជិកអាចអានមូលដ្ឋានទិន្នន័យនេះ​​បានឬទេ? " + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" + +msgid "Forgotten your password or username?" +msgstr "" + +msgid "Date/time" +msgstr "Date/time" + +msgid "User" +msgstr "សមាជិក" + +msgid "Action" +msgstr "សកម្មភាព" + +msgid "" +"This object doesn't have a change history. It probably wasn't added via this " +"admin site." +msgstr "" +"កម្មវិធីនេះមិនមានសកម្មភាព​កន្លងមកទេ។ ប្រហែលជាសកម្មភាពទាំងនេះមិនបានធ្វើនៅទំព័រគ្រប់គ្រងនេះ។" + +msgid "Show all" +msgstr "បង្ហាញទាំងអស់" + +msgid "Save" +msgstr "រក្សាទុក" + +msgid "Popup closing..." +msgstr "" + +#, python-format +msgid "Change selected %(model)s" +msgstr "" + +#, python-format +msgid "Add another %(model)s" +msgstr "" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "" + +msgid "Search" +msgstr "" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "សរុបទាំងអស់ %(full_result_count)s" + +msgid "Save as new" +msgstr "រក្សាទុក" + +msgid "Save and add another" +msgstr "រក្សាទុក ហើយ បន្ថែម​ថ្មី" + +msgid "Save and continue editing" +msgstr "រក្សាទុក ហើយ កែឯកសារដដែល" + +msgid "Thanks for spending some quality time with the Web site today." +msgstr "សូមថ្លែងអំណរគុណ ដែលបានចំណាយ ពេលវេលាដ៏មានតំលៃ របស់លោកអ្នកមកទស្សនាគេហទំព័ររបស់យើងខ្ញុំ" + +msgid "Log in again" +msgstr "ពិនិត្យចូលម្តងទៀត" + +msgid "Password change" +msgstr "ផ្លាស់ប្តូរពាក្យសំងាត់" + +msgid "Your password was changed." +msgstr "ពាក្យសំងាត់របស់លោកអ្នកបានផ្លាស់ប្តូរហើយ" + +msgid "" +"Please enter your old password, for security's sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "សូមបំពេញពាក្យសំងាត់ចាស់របស់លោកអ្នក។ ដើម្បីសុវត្ថភាព សូមបំពេញពាក្យសំងាត់ថ្មីខាងក្រោមពីរដង។" + +msgid "Change my password" +msgstr "ផ្លាស់ប្តូរពាក្យសំងាត់" + +msgid "Password reset" +msgstr "ពាក្យសំងាត់បានកំណត់សារជាថ្មី" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "" + +msgid "Password reset confirmation" +msgstr "" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" + +msgid "New password:" +msgstr "ពាក្យសំងាត់ថ្មី" + +msgid "Confirm password:" +msgstr "បំពេញពាក្យសំងាត់ថ្មីម្តងទៀត" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" + +msgid "" +"We've emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" + +msgid "" +"If you don't receive an email, please make sure you've entered the address " +"you registered with, and check your spam folder." +msgstr "" + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" + +msgid "Please go to the following page and choose a new password:" +msgstr "" + +msgid "Your username, in case you've forgotten:" +msgstr "ឈ្មោះជាសមាជិកក្នុងករណីភ្លេច:" + +msgid "Thanks for using our site!" +msgstr "សូមអរគុណដែលបានប្រើប្រាស់សេវាកម្មរបស់យើងខ្ញុំ" + +#, python-format +msgid "The %(site_name)s team" +msgstr "ក្រុមរបស់គេហទំព័រ %(site_name)s" + +msgid "" +"Forgotten your password? Enter your email address below, and we'll email " +"instructions for setting a new one." +msgstr "" + +msgid "Email address:" +msgstr "" + +msgid "Reset my password" +msgstr "កំណត់ពាក្យសំងាត់សារជាថ្មី" + +msgid "All dates" +msgstr "កាលបរិច្ឆេទទាំងអស់" + +#, python-format +msgid "Select %s" +msgstr "ជ្រើសរើស %s" + +#, python-format +msgid "Select %s to change" +msgstr "ជ្រើសរើស %s ដើម្បីផ្លាស់ប្តូរ" + +msgid "Date:" +msgstr "កាលបរិច្ឆេទ" + +msgid "Time:" +msgstr "ម៉ោង" + +msgid "Lookup" +msgstr "" + +msgid "Currently:" +msgstr "" + +msgid "Change:" +msgstr "" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/km/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/km/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..c0b94c12cc3f473b2b58d62b3979cd14ff82c886 GIT binary patch literal 1334 zcmaKo-)~Go6vwaMtY3*lNRUi~gvjjPTa@0apfvHLG|iHDlCeA8y?XD==H6+`gQQrb zL{KGu&P9SZk3@n$8I*{eiwa^LZD(I3~ zI3QJUJ{W*Yz*^Hj4=#mW2Xo*!xCngGe18Qlg#8+v3%&*CfbW~{pTK#rKZ7>zD`@k- zfj6K(q3dA_Bz1td!4=>aa0B=Qq~IJBxAZ{kKLxG^>rML!xDxgxX!E}}?cd-U*t0N% zjb8_%WhM)7+W)Y!3~KkYv)X^KJGTTSoW(5z#7LRgJ*>=z+THBGIqihyqr9_sm<1s_ z9dfcUak`l(@zCk6N||uNhzcS;Wrf*8!iA0O2|~qVr#C2zpi))NQ7HwE5vQL=a+o_s zS!U;OMlz1!J;@V2g~#XkCQ+OpOnuqQIWZRUX!t+y-6h~(|tpggchYw za(%~&v^(ZZA(rlEiu9`%#?Vw%<@!I`u z-WC^P$drtIa)=2LB;*JW$~+{yFb&K-VP@t7F(7v%M^uJbh0`Kukxvd+ zBOa4YRi$cvp)fKsl2^7~Fu>2|OEM}nHfkYkCKm>y!scA>!QKPYyL)*z*DZzO0yCYf zVL8RmszNPff#@WqDvJ}Yx{eon=+5al+iQTw^nfVIav&-`*?BrpQ$zY>Fv|6XLoo|! zkBpgEwsLv} z!)BADsQuS`&EEg&gW5>Kc8{}#PzGy`+GxAheWO1Z{QyB&bG)@39&R@7c);IW$o9IG zx$0S&=Cd6O0~!6o=x0X1w_Wrdn~+|GcjjlH#u!{vMJ~+@oat>$`#ftiiVS=crpIr; L%?e^-T*jO~i68Oj literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/km/LC_MESSAGES/djangojs.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/km/LC_MESSAGES/djangojs.po new file mode 100644 index 0000000000..fbe0ae1597 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/km/LC_MESSAGES/djangojs.po @@ -0,0 +1,201 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Jannis Leidel , 2011 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-05-17 23:12+0200\n" +"PO-Revision-Date: 2017-09-19 16:41+0000\n" +"Last-Translator: Jannis Leidel \n" +"Language-Team: Khmer (http://www.transifex.com/django/django/language/km/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: km\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#, javascript-format +msgid "Available %s" +msgstr "%s ដែលអាច​ជ្រើសរើសបាន" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "" + +msgid "Filter" +msgstr "ស្វែងរកជាមួយ" + +msgid "Choose all" +msgstr "ជ្រើសរើសទាំងអស់" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "" + +msgid "Choose" +msgstr "" + +msgid "Remove" +msgstr "លប់ចេញ" + +#, javascript-format +msgid "Chosen %s" +msgstr "%s ដែលបានជ្រើសរើស" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" + +msgid "Remove all" +msgstr "" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "" + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" + +msgid "" +"You have selected an action, but you haven't saved your changes to " +"individual fields yet. Please click OK to save. You'll need to re-run the " +"action." +msgstr "" + +msgid "" +"You have selected an action, and you haven't made any changes on individual " +"fields. You're probably looking for the Go button rather than the Save " +"button." +msgstr "" + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "" + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "" + +msgid "Now" +msgstr "ឥឡូវនេះ" + +msgid "Choose a Time" +msgstr "" + +msgid "Choose a time" +msgstr "ជ្រើសរើសម៉ោង" + +msgid "Midnight" +msgstr "អធ្រាត្រ" + +msgid "6 a.m." +msgstr "ម៉ោង ៦ ព្រឹក" + +msgid "Noon" +msgstr "ពេលថ្ងែត្រង់" + +msgid "6 p.m." +msgstr "" + +msgid "Cancel" +msgstr "លប់ចោល" + +msgid "Today" +msgstr "ថ្ងៃនេះ" + +msgid "Choose a Date" +msgstr "" + +msgid "Yesterday" +msgstr "ម្សិលមិញ" + +msgid "Tomorrow" +msgstr "ថ្ងៃស្អែក" + +msgid "January" +msgstr "" + +msgid "February" +msgstr "" + +msgid "March" +msgstr "" + +msgid "April" +msgstr "" + +msgid "May" +msgstr "" + +msgid "June" +msgstr "" + +msgid "July" +msgstr "" + +msgid "August" +msgstr "" + +msgid "September" +msgstr "" + +msgid "October" +msgstr "" + +msgid "November" +msgstr "" + +msgid "December" +msgstr "" + +msgctxt "one letter Sunday" +msgid "S" +msgstr "" + +msgctxt "one letter Monday" +msgid "M" +msgstr "" + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "" + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "" + +msgctxt "one letter Thursday" +msgid "T" +msgstr "" + +msgctxt "one letter Friday" +msgid "F" +msgstr "" + +msgctxt "one letter Saturday" +msgid "S" +msgstr "" + +msgid "Show" +msgstr "" + +msgid "Hide" +msgstr "" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/kn/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/kn/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..3740da20869e1bc139f8d7b780bd65d28d611e18 GIT binary patch literal 9203 zcmb`LYmgjO6~`NSh^vUfH$J$4VK=ffyNf7f!YhPCLLSCs10qGm-kILrCNtebcTbl2 zq6EqWMT4caVkt$8#DqeUP_rh1FT_Wc@1jaezo|8-Uo0)P{6cA2;_sY$yJsf5(R^?! zJ^#74&pproIo;XcUUJ^N$7dVYyScvo8qd2Q+;~1;eBSh0&wDGl415`#Lif=%!uuno%jz3%=#@DkQvariCpV%9H$%fOewH-cSI^!*hS z*Zu*Do>#%6-~|{FKaYcQ?x&#G`wb{^e*(9Ie+LQCyB%d5^)`U#f!jcl`xq$k>~Qz% zpyt7QTyAOeH0r!IM1fKxq z+zF5)-uJ*agFgc$|6Nf0`xhvFybfVP^4<-K+;Z?3xDvbx{3CcNIKrWEa1Ho2FauHH zJqmsd{4yx^{t9Y-9li=mp3Wx;;_pQuTizw$b>L;7*uM)DK70b?pI77SYA^xC{*&Mc z_yUMa-tQd#1(b9D1SOyUcKa8x5P#n3@Jdk5mB7c&AwE#_{+OgM2mb&XaOh1oFIR(- zubV*O#m7OZPZJcs9t7pwv)~Hw7ohm}FSoxO5?#Z319(07Nl?z61aAX>56bxwiXeTn z8I=6*1jX*Bz)#}m*TBnIUrLczffew*;4V<|I1iqO+&A3%FwTm<-{xx+{0S)fUjfD5 zTPWTYU}-)`4ef$Lar2j$!o;1TS82NeGz$mfImK*`hJ zz)4V&+yJ(NlArH`?*sn~-U2Qo*l};>RoCJoYX{=zFZ6dymzd zl8leCei_6S?*ll4>)r0{KhD+pxJEB*(BmT%o{1@FDxo+noHEILU52?{yOW#2s{anlUX0B1Y)ZUeN#|uwY^mqd@2@nj<}!NtNHH_@I!j1 z|Few+)X>ix`G(foFOpN?egEfXw~)F^jW=$#wg&X6_kp74@#dv|bsnCn6=`CPyyH9Sui=GL}ZJ~AEFvmn`# zg;_mVks6PkR=vI>3DQbVsa&b8F8yvC=ppHnrZfbrO zu!`FH%UhiUrX9CT+Dd|(y*0CbG!r;5%hUYVY?x+o(ysJvHQJ`>r|Ddr)N-lbI*z8p zq)`Y|yxaWDpYqed1W6JnvJA$uuo37lZU^-sV<8YmGbWo22q2!iFQ{faY#e5I`ACpf z{bo?xVQ;KRhs|8vs@IIohY2H7%QYlH9UC=cMbl9;)ygE$#Q0Uso2kV?8VzS=*54JF zW{@<(G$ny#(`pISi|M#tkLT2-)%7Z2Vdyj7U)8YXRJD8fJmL<=qxn zTa6&f?EQ6GQ*T|Eq}ixpJHRK?N`piKHGWhp@>VvJvq3Z}eh*W+Deg|y@hdh#EzC?K zrg(DD#7!}smc0+h-tD$l-t95z-5Af176-tfm4;?D#oiZe3}^=d3F0i1kqO+kW8mYKN@p0!hNOFhu?Yq(m6n8M|Z z8AV}Y(xBQ(!mK@PO<0OGe^>*3Y8Z_cv0f2+1pTparfhS*T)u)4e0-X(#-ext9U}p;wlYJ=R?xY5v zylpVAnn{Bczobw$lk6qXZ+Zj$!7e} z1*Ljy+eVeMS)3thb4g6^%!S#kWjd{Hn=Xt}CIk%uNy=suxz&DGg8R*85;v2OZjp&# z4*+$@uB|Z@P=IO@NITh*GzJtDhr*Ob^lM7dsrDk}Le#Q13A1*lw%pAis!3<1#9;1k z`E_biW4x(A8>? zrZPiSmmHA8`H0B^zkwbCX;A7}`_oR4!Exccx*9ha%VvFM$m0~jx5cCk7B~b0cZEKw zK&6fe^;N=PqaFB(H%Yh^Z&IT3wnsaocrNm`lPT}c5TY}V#6Rz@V3<}

      f+zGRaL6 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/kn/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/kn/LC_MESSAGES/django.po new file mode 100644 index 0000000000..06e63dc492 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/kn/LC_MESSAGES/django.po @@ -0,0 +1,639 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Jannis Leidel , 2011 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-01-19 16:49+0100\n" +"PO-Revision-Date: 2017-09-19 16:41+0000\n" +"Last-Translator: Jannis Leidel \n" +"Language-Team: Kannada (http://www.transifex.com/django/django/language/" +"kn/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: kn\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "" + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "" + +msgid "Are you sure?" +msgstr "ಖಚಿತಪಡಿಸುವಿರಾ? " + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "" + +msgid "Administration" +msgstr "" + +msgid "All" +msgstr "ಎಲ್ಲಾ" + +msgid "Yes" +msgstr "ಹೌದು" + +msgid "No" +msgstr "ಇಲ್ಲ" + +msgid "Unknown" +msgstr "ಗೊತ್ತಿಲ್ಲ(ದ/ದ್ದು)" + +msgid "Any date" +msgstr "ಯಾವುದೇ ದಿನಾಂಕ" + +msgid "Today" +msgstr "ಈದಿನ" + +msgid "Past 7 days" +msgstr "ಕಳೆದ ೭ ದಿನಗಳು" + +msgid "This month" +msgstr "ಈ ತಿಂಗಳು" + +msgid "This year" +msgstr "ಈ ವರ್ಷ" + +msgid "No date" +msgstr "" + +msgid "Has date" +msgstr "" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" + +msgid "Action:" +msgstr "" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "" + +msgid "Remove" +msgstr "ತೆಗೆದು ಹಾಕಿ" + +msgid "action time" +msgstr "ಕ್ರಮದ(ಕ್ರಿಯೆಯ) ಸಮಯ" + +msgid "user" +msgstr "" + +msgid "content type" +msgstr "" + +msgid "object id" +msgstr "ವಸ್ತುವಿನ ಐಡಿ" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/3/library/functions.html#repr) +msgid "object repr" +msgstr "ವಸ್ತು ಪ್ರಾತಿನಿಧ್ಯ" + +msgid "action flag" +msgstr "ಕ್ರಮದ(ಕ್ರಿಯೆಯ) ಪತಾಕೆ" + +msgid "change message" +msgstr "ಬದಲಾವಣೆಯ ಸಂದೇಶ/ಸಂದೇಶ ಬದಲಿಸಿ" + +msgid "log entry" +msgstr "ಲಾಗ್ ದಾಖಲೆ" + +msgid "log entries" +msgstr "ಲಾಗ್ ದಾಖಲೆಗಳು" + +#, python-format +msgid "Added \"%(object)s\"." +msgstr "" + +#, python-format +msgid "Changed \"%(object)s\" - %(changes)s" +msgstr "" + +#, python-format +msgid "Deleted \"%(object)s.\"" +msgstr "" + +msgid "LogEntry Object" +msgstr "" + +#, python-brace-format +msgid "Added {name} \"{object}\"." +msgstr "" + +msgid "Added." +msgstr "" + +msgid "and" +msgstr "ಮತ್ತು" + +#, python-brace-format +msgid "Changed {fields} for {name} \"{object}\"." +msgstr "" + +#, python-brace-format +msgid "Changed {fields}." +msgstr "" + +#, python-brace-format +msgid "Deleted {name} \"{object}\"." +msgstr "" + +msgid "No fields changed." +msgstr "ಯಾವುದೇ ಅಂಶಗಳು ಬದಲಾಗಲಿಲ್ಲ." + +msgid "None" +msgstr "" + +msgid "" +"Hold down \"Control\", or \"Command\" on a Mac, to select more than one." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was added successfully. You may edit it again below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was added successfully. You may add another {name} " +"below." +msgstr "" + +#, python-brace-format +msgid "The {name} \"{obj}\" was added successfully." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was changed successfully. You may edit it again below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was changed successfully. You may add another {name} " +"below." +msgstr "" + +#, python-brace-format +msgid "The {name} \"{obj}\" was changed successfully." +msgstr "" + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" + +msgid "No action selected." +msgstr "" + +#, python-format +msgid "The %(name)s \"%(obj)s\" was deleted successfully." +msgstr "%(name)s \"%(obj)s\" ಯಶಸ್ವಿಯಾಗಿ ಅಳಿಸಲಾಯಿತು." + +#, python-format +msgid "%(name)s with ID \"%(key)s\" doesn't exist. Perhaps it was deleted?" +msgstr "" + +#, python-format +msgid "Add %s" +msgstr "%s ಸೇರಿಸಿ" + +#, python-format +msgid "Change %s" +msgstr "%s ಅನ್ನು ಬದಲಿಸು" + +msgid "Database error" +msgstr "ದತ್ತಸಂಚಯದ ದೋಷ" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "" + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "" + +#, python-format +msgid "Change history: %s" +msgstr "ಬದಲಾವಣೆಗಳ ಇತಿಹಾಸ: %s" + +#. Translators: Model verbose name and instance representation, +#. suitable to be an item in a list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" + +msgid "Django site admin" +msgstr "ಜಾಂಗೋ ತಾಣದ ಆಡಳಿತಗಾರರು" + +msgid "Django administration" +msgstr "ಜಾಂಗೋ ಆಡಳಿತ" + +msgid "Site administration" +msgstr "ತಾಣ ನಿರ್ವಹಣೆ" + +msgid "Log in" +msgstr "ಒಳಗೆ ಬನ್ನಿ" + +#, python-format +msgid "%(app)s administration" +msgstr "" + +msgid "Page not found" +msgstr "ಪುಟ ಸಿಗಲಿಲ್ಲ" + +msgid "We're sorry, but the requested page could not be found." +msgstr "ಕ್ಷಮಿಸಿ, ನೀವು ಕೇಳಿದ ಪುಟ ಸಿಗಲಿಲ್ಲ" + +msgid "Home" +msgstr "ಪ್ರಾರಂಭಸ್ಥಳ(ಮನೆ)" + +msgid "Server error" +msgstr "ಸರ್ವರ್ ದೋಷ" + +msgid "Server error (500)" +msgstr "ಸರ್ವರ್ ದೋಷ(೫೦೦)" + +msgid "Server Error (500)" +msgstr "ಸರ್ವರ್ ದೋಷ(೫೦೦)" + +msgid "" +"There's been an error. It's been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" + +msgid "Run the selected action" +msgstr "" + +msgid "Go" +msgstr "ಹೋಗಿ" + +msgid "Click here to select the objects across all pages" +msgstr "" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "" + +msgid "Clear selection" +msgstr "" + +msgid "" +"First, enter a username and password. Then, you'll be able to edit more user " +"options." +msgstr "" +"ಮೊದಲು ಬಳಕೆದಾರ-ಹೆಸರು ಮತ್ತು ಪ್ರವೇಶಪದವನ್ನು ಕೊಡಿರಿ. ನಂತರ, ನೀವು ಇನ್ನಷ್ಟು ಆಯ್ಕೆಗಳನ್ನು " +"ಬದಲಿಸಬಹುದಾಗಿದೆ." + +msgid "Enter a username and password." +msgstr "" + +msgid "Change password" +msgstr "ಪ್ರವೇಶಪದ ಬದಲಿಸಿ" + +msgid "Please correct the error below." +msgstr "" + +msgid "Please correct the errors below." +msgstr "" + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "" + +msgid "Welcome," +msgstr "ಸುಸ್ವಾಗತ." + +msgid "View site" +msgstr "" + +msgid "Documentation" +msgstr "ವಿವರಮಾಹಿತಿ" + +msgid "Log out" +msgstr "ಹೊರಕ್ಕೆ ಹೋಗಿ" + +#, python-format +msgid "Add %(name)s" +msgstr "%(name)s ಸೇರಿಸಿ" + +msgid "History" +msgstr "ಚರಿತ್ರೆ" + +msgid "View on site" +msgstr "ತಾಣದಲ್ಲಿ ನೋಡಿ" + +msgid "Filter" +msgstr "ಸೋಸಕ" + +msgid "Remove from sorting" +msgstr "" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "" + +msgid "Toggle sorting" +msgstr "" + +msgid "Delete" +msgstr "ಅಳಿಸಿಹಾಕಿ" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" +"'%(escaped_object)s' %(object_name)s ಅನ್ನು ತೆಗೆದುಹಾಕುವುದರಿಂದ ಸಂಬಂಧಿತ ವಸ್ತುಗಳೂ " +"ಕಳೆದುಹೋಗುತ್ತವೆ. ಆದರೆ ನಿಮ್ಮ ಖಾತೆಗೆ ಕೆಳಕಂಡ ಬಗೆಗಳ ವಸ್ತುಗಳನ್ನು ತೆಗೆದುಹಾಕಲು " +"ಅನುಮತಿಯಿಲ್ಲ." + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" + +msgid "Objects" +msgstr "" + +msgid "Yes, I'm sure" +msgstr "ಹೌದು,ನನಗೆ ಖಚಿತವಿದೆ" + +msgid "No, take me back" +msgstr "" + +msgid "Delete multiple objects" +msgstr "" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" + +msgid "Change" +msgstr "ಬದಲಿಸಿ/ಬದಲಾವಣೆ" + +msgid "Delete?" +msgstr "" + +#, python-format +msgid " By %(filter_title)s " +msgstr "%(filter_title)s ಇಂದ" + +msgid "Summary" +msgstr "" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "" + +msgid "Add" +msgstr "ಸೇರಿಸಿ" + +msgid "You don't have permission to edit anything." +msgstr "ಯಾವುದನ್ನೂ ತಿದ್ದಲು ನಿಮಗೆ ಅನುಮತಿ ಇಲ್ಲ ." + +msgid "Recent actions" +msgstr "" + +msgid "My actions" +msgstr "" + +msgid "None available" +msgstr "ಯಾವುದೂ ಲಭ್ಯವಿಲ್ಲ" + +msgid "Unknown content" +msgstr "" + +msgid "" +"Something's wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" +"ಡಾಟಾಬೇಸನ್ನು ಇನ್ಸ್ಟಾಲ್ ಮಾಡುವಾಗ ಏನೋ ತಪ್ಪಾಗಿದೆ. ಸೂಕ್ತ ಡಾಟಾಬೇಸ್ ಕೋಷ್ಟಕಗಳು ರಚನೆಯಾಗಿ ಅರ್ಹ " +"ಬಳಕೆದಾರರು ಅವುಗಳನ್ನು ಓದಬಹುದಾಗಿದೆಯೇ ಎಂಬುದನ್ನು ಖಾತರಿ ಪಡಿಸಿಕೊಳ್ಳಿ." + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" + +msgid "Forgotten your password or username?" +msgstr "" + +msgid "Date/time" +msgstr "ದಿನಾಂಕ/ಸಮಯ" + +msgid "User" +msgstr "ಬಳಕೆದಾರ" + +msgid "Action" +msgstr "ಕ್ರಮ(ಕ್ರಿಯೆ)" + +msgid "" +"This object doesn't have a change history. It probably wasn't added via this " +"admin site." +msgstr "" +"ಈ ವಸ್ತುವಿಗೆ ಬದಲಾವಣೆಯ ಇತಿಹಾಸವಿಲ್ಲ. ಅದು ಬಹುಶಃ ಈ ಆಡಳಿತತಾಣದ ಮೂಲಕ ಸೇರಿಸಲ್ಪಟ್ಟಿಲ್ಲ." + +msgid "Show all" +msgstr "ಎಲ್ಲವನ್ನೂ ತೋರಿಸು" + +msgid "Save" +msgstr "ಉಳಿಸಿ" + +msgid "Popup closing..." +msgstr "" + +#, python-format +msgid "Change selected %(model)s" +msgstr "" + +#, python-format +msgid "Add another %(model)s" +msgstr "" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "" + +msgid "Search" +msgstr "" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "ಒಟ್ಟು %(full_result_count)s" + +msgid "Save as new" +msgstr "ಹೊಸದರಂತೆ ಉಳಿಸಿ" + +msgid "Save and add another" +msgstr "ಉಳಿಸಿ ಮತ್ತು ಇನ್ನೊಂದನ್ನು ಸೇರಿಸಿ" + +msgid "Save and continue editing" +msgstr "ಉಳಿಸಿ ಮತ್ತು ತಿದ್ದುವುದನ್ನು ಮುಂದುವರಿಸಿರಿ." + +msgid "Thanks for spending some quality time with the Web site today." +msgstr "ಈದಿನ ತಮ್ಮ ಅತ್ಯಮೂಲ್ಯವಾದ ಸಮಯವನ್ನು ನಮ್ಮ ತಾಣದಲ್ಲಿ ಕಳೆದುದಕ್ಕಾಗಿ ಧನ್ಯವಾದಗಳು." + +msgid "Log in again" +msgstr "ಮತ್ತೆ ಒಳಬನ್ನಿ" + +msgid "Password change" +msgstr "ಪ್ರವೇಶಪದ ಬದಲಾವಣೆ" + +msgid "Your password was changed." +msgstr "ನಿಮ್ಮ ಪ್ರವೇಶಪದ ಬದಲಾಯಿಸಲಾಗಿದೆ" + +msgid "" +"Please enter your old password, for security's sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" +"ಭದ್ರತೆಯ ದೃಷ್ಟಿಯಿಂದ ದಯವಿಟ್ಟು ನಿಮ್ಮ ಹಳೆಯ ಪ್ರವೇಶಪದವನ್ನು ಸೂಚಿಸಿರಿ. ಆನಂತರ ನೀವು ಸರಿಯಾಗಿ " +"ಬರೆದಿದ್ದೀರೆಂದು ನಾವು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು ಹೊಸ ಪ್ರವೇಶಪದವನ್ನು ಎರಡು ಬಾರಿ ಬರೆಯಿರಿ." + +msgid "Change my password" +msgstr "ನನ್ನ ಪ್ರವೇಶಪದ ಬದಲಿಸಿ" + +msgid "Password reset" +msgstr "ಪ್ರವೇಶಪದವನ್ನು ಬದಲಿಸುವಿಕೆ" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "" + +msgid "Password reset confirmation" +msgstr "" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" + +msgid "New password:" +msgstr "ಹೊಸ ಪ್ರವೇಶಪದ:" + +msgid "Confirm password:" +msgstr "ಪ್ರವೇಶಪದವನ್ನು ಖಚಿತಪಡಿಸಿ:" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" + +msgid "" +"We've emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" + +msgid "" +"If you don't receive an email, please make sure you've entered the address " +"you registered with, and check your spam folder." +msgstr "" + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" + +msgid "Please go to the following page and choose a new password:" +msgstr "" + +msgid "Your username, in case you've forgotten:" +msgstr "ನೀವು ಮರೆತಿದ್ದಲ್ಲಿ , ನಿಮ್ಮ ಬಳಕೆದಾರ-ಹೆಸರು" + +msgid "Thanks for using our site!" +msgstr "ನಮ್ಮ ತಾಣವನ್ನು ಬಳಸಿದ್ದಕ್ದಾಗಿ ಧನ್ಯವಾದಗಳು!" + +#, python-format +msgid "The %(site_name)s team" +msgstr "%(site_name)s ತಂಡ" + +msgid "" +"Forgotten your password? Enter your email address below, and we'll email " +"instructions for setting a new one." +msgstr "" + +msgid "Email address:" +msgstr "" + +msgid "Reset my password" +msgstr "ನನ್ನ ಪ್ರವೇಶಪದವನ್ನು ಮತ್ತೆ ನಿರ್ಧರಿಸಿ " + +msgid "All dates" +msgstr "ಎಲ್ಲಾ ದಿನಾಂಕಗಳು" + +#, python-format +msgid "Select %s" +msgstr "%s ಆಯ್ದುಕೊಳ್ಳಿ" + +#, python-format +msgid "Select %s to change" +msgstr "ಬದಲಾಯಿಸಲು %s ಆಯ್ದುಕೊಳ್ಳಿ" + +msgid "Date:" +msgstr "ದಿನಾಂಕ:" + +msgid "Time:" +msgstr "ಸಮಯ:" + +msgid "Lookup" +msgstr "" + +msgid "Currently:" +msgstr "" + +msgid "Change:" +msgstr "" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/kn/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/kn/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..fa49be6dccb87a413bfdced5aaf8859f2affd9e6 GIT binary patch literal 1847 zcmaKq%WoS+7{HfO0=PU%;Q$hWK`K%!y0+ssP#h9LLn9(;h(bUroF?9hz0G>o+Fd&h zxAYJdq;f$P5*LK1(g=mLTGR44Byi&&;D*p%;m#HK&G?ZhRE&1#x8Hp4Z}#_NhdU1I zao(qSzvUg}y>Jg3>nAt@e})giU;6T|@L}ZNU=IEXAB2DP_5Z-b$Rmdw=K**G8u$Gk%b$$a%x}lvD9N?bqsw^HvyYwiRbyHNv*)Lr6T| zsdKy#dUBP$5k?W>MHLgn99;}sqAuG?v~&zSQLRf|Q?UrO@U`c+eXk`0p*%mar7rm@ z@Z!9fT@tIfMlCHQPc`vFeaaj~|B1BX2Z2~rA_(Io@61KvB~?w_SMKNw=;awtU zn44G4FiPA?T=PBmT&otl3t?I0=H7PaRogeF?&~s9Wl<`Qopy_7+|sxxzEmE6`Gq1Y zcR|L9yAVko2QmqxvRIZ;Qumh^Yk_!W@B7tSgSqFcVPoo)i8SW2mGIWJmaHjvLCHp0 zyeYMoo)jnQNzyDA3M(rs`NYKbm(*qBT<8@&K+tzDEbGF_TxGU$ey_c;d@(m2>O^Vk zTW!)nqAn+eW*~h%VFn(>Dw%wDVa7eXXJ>LPsmMLAtD)!XT3MW3^pjzkbf;kMb_OCR=SdEF1BEj0n3kXp^$nDe{g9)9qyGjV$dTQ}Hb{ z_5<55ZAEK6#SNRDhA0}{bt{?%4ye)nV0D`)u96U7Oi-r8ZYCy-jfp~Pg!`ASw&~X`@em5{5PKG~KcGxW%#p#`emwh6Wm gSZ>@sp1oq4HXZdQz;MXLw7CF&)?R%yMBD4mzaH)ei~s-t literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/kn/LC_MESSAGES/djangojs.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/kn/LC_MESSAGES/djangojs.po new file mode 100644 index 0000000000..0a651bc57f --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/kn/LC_MESSAGES/djangojs.po @@ -0,0 +1,261 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Jannis Leidel , 2011 +# karthikbgl , 2011-2012 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-05-17 23:12+0200\n" +"PO-Revision-Date: 2017-09-19 16:41+0000\n" +"Last-Translator: Jannis Leidel \n" +"Language-Team: Kannada (http://www.transifex.com/django/django/language/" +"kn/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: kn\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#, javascript-format +msgid "Available %s" +msgstr "ಲಭ್ಯ %s " + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "" + +msgid "Filter" +msgstr "ಶೋಧಕ" + +msgid "Choose all" +msgstr "ಎಲ್ಲವನ್ನೂ ಆಯ್ದುಕೊಳ್ಳಿ" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "" + +msgid "Choose" +msgstr "" + +msgid "Remove" +msgstr "ತೆಗೆದು ಹಾಕಿ" + +#, javascript-format +msgid "Chosen %s" +msgstr "%s ಆಯ್ದುಕೊಳ್ಳಲಾಗಿದೆ" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" + +msgid "Remove all" +msgstr "ಎಲ್ಲಾ ತೆಗೆದುಹಾಕಿ" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "" + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "" +msgstr[1] "" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" +"ನೀವು ಪ್ರತ್ಯೇಕ ತಿದ್ದಬಲ್ಲ ಕ್ಷೇತ್ರಗಳಲ್ಲಿ ಬದಲಾವಣೆ ಉಳಿಸಿಲ್ಲ. ನಿಮ್ಮ ಉಳಿಸದ ಬದಲಾವಣೆಗಳು " +"ನಾಶವಾಗುತ್ತವೆ" + +msgid "" +"You have selected an action, but you haven’t saved your changes to " +"individual fields yet. Please click OK to save. You’ll need to re-run the " +"action." +msgstr "" + +msgid "" +"You have selected an action, and you haven’t made any changes on individual " +"fields. You’re probably looking for the Go button rather than the Save " +"button." +msgstr "" + +msgid "Now" +msgstr "ಈಗ" + +msgid "Midnight" +msgstr "ಮಧ್ಯರಾತ್ರಿ" + +msgid "6 a.m." +msgstr "ಬೆಳಗಿನ ೬ ಗಂಟೆ " + +msgid "Noon" +msgstr "ಮಧ್ಯಾಹ್ನ" + +msgid "6 p.m." +msgstr "" + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "" +msgstr[1] "" + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "" +msgstr[1] "" + +msgid "Choose a Time" +msgstr "" + +msgid "Choose a time" +msgstr "ಸಮಯವೊಂದನ್ನು ಆರಿಸಿ" + +msgid "Cancel" +msgstr "ರದ್ದುಗೊಳಿಸಿ" + +msgid "Today" +msgstr "ಈ ದಿನ" + +msgid "Choose a Date" +msgstr "" + +msgid "Yesterday" +msgstr "ನಿನ್ನೆ" + +msgid "Tomorrow" +msgstr "ನಾಳೆ" + +msgid "January" +msgstr "" + +msgid "February" +msgstr "" + +msgid "March" +msgstr "" + +msgid "April" +msgstr "" + +msgid "May" +msgstr "" + +msgid "June" +msgstr "" + +msgid "July" +msgstr "" + +msgid "August" +msgstr "" + +msgid "September" +msgstr "" + +msgid "October" +msgstr "" + +msgid "November" +msgstr "" + +msgid "December" +msgstr "" + +msgctxt "abbrev. month January" +msgid "Jan" +msgstr "" + +msgctxt "abbrev. month February" +msgid "Feb" +msgstr "" + +msgctxt "abbrev. month March" +msgid "Mar" +msgstr "" + +msgctxt "abbrev. month April" +msgid "Apr" +msgstr "" + +msgctxt "abbrev. month May" +msgid "May" +msgstr "" + +msgctxt "abbrev. month June" +msgid "Jun" +msgstr "" + +msgctxt "abbrev. month July" +msgid "Jul" +msgstr "" + +msgctxt "abbrev. month August" +msgid "Aug" +msgstr "" + +msgctxt "abbrev. month September" +msgid "Sep" +msgstr "" + +msgctxt "abbrev. month October" +msgid "Oct" +msgstr "" + +msgctxt "abbrev. month November" +msgid "Nov" +msgstr "" + +msgctxt "abbrev. month December" +msgid "Dec" +msgstr "" + +msgctxt "one letter Sunday" +msgid "S" +msgstr "" + +msgctxt "one letter Monday" +msgid "M" +msgstr "" + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "" + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "" + +msgctxt "one letter Thursday" +msgid "T" +msgstr "" + +msgctxt "one letter Friday" +msgid "F" +msgstr "" + +msgctxt "one letter Saturday" +msgid "S" +msgstr "" + +msgid "" +"You have already submitted this form. Are you sure you want to submit it " +"again?" +msgstr "" + +msgid "Show" +msgstr "ಪ್ರದರ್ಶನ" + +msgid "Hide" +msgstr "ಮರೆಮಾಡಲು" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ko/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ko/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..f8c12f3c524eab4d12581b1a92bf6a50787e6332 GIT binary patch literal 18721 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ko/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ko/LC_MESSAGES/django.po new file mode 100644 index 0000000000..d91718ce63 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ko/LC_MESSAGES/django.po @@ -0,0 +1,799 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Jiyoon, Ha , 2016 +# DONGHO JEONG , 2020 +# Dummy Iam, 2021 +# Geonho Kim / Leo Kim , 2019 +# Gihun Ham , 2018 +# Hang Park , 2019 +# Hoseok Lee , 2016 +# Ian Y. Choi , 2015,2019 +# Jaehong Kim , 2011 +# Jannis Leidel , 2011 +# Jay Oh , 2020 +# Le Tartuffe , 2014,2016 +# Juyoung Lim, 2024 +# LEE Hwanyong , 2023 +# Seho Noh , 2018 +# Seacbyul Lee , 2017 +# 최소영, 2024 +# Taesik Yoon , 2015 +# 정훈 이, 2021 +# 박태진, 2021 +# Yang Chan Woo , 2019 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-05-22 11:46-0300\n" +"PO-Revision-Date: 2024-08-07 07:05+0000\n" +"Last-Translator: Juyoung Lim, 2024\n" +"Language-Team: Korean (http://app.transifex.com/django/django/language/ko/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ko\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "선택된 %(verbose_name_plural)s 을/를 삭제합니다." + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "%(count)d개의 %(items)s 을/를 성공적으로 삭제하였습니다." + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "%(name)s를 삭제할 수 없습니다." + +msgid "Are you sure?" +msgstr "확실합니까?" + +msgid "Administration" +msgstr "관리" + +msgid "All" +msgstr "모두" + +msgid "Yes" +msgstr "예" + +msgid "No" +msgstr "아니오" + +msgid "Unknown" +msgstr "알 수 없습니다." + +msgid "Any date" +msgstr "언제나" + +msgid "Today" +msgstr "오늘" + +msgid "Past 7 days" +msgstr "지난 7일" + +msgid "This month" +msgstr "이번 달" + +msgid "This year" +msgstr "이번 해" + +msgid "No date" +msgstr "날짜 없음" + +msgid "Has date" +msgstr "날짜 있음" + +msgid "Empty" +msgstr "비어 있음" + +msgid "Not empty" +msgstr "비어 있지 않음" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" +"관리자 계정의 %(username)s 와 비밀번호를 입력해주세요. 대소문자를 구분해서 입" +"력해주세요." + +msgid "Action:" +msgstr "액션:" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "%(verbose_name)s 더 추가하기" + +msgid "Remove" +msgstr "삭제하기" + +msgid "Addition" +msgstr "추가" + +msgid "Change" +msgstr "변경" + +msgid "Deletion" +msgstr "삭제" + +msgid "action time" +msgstr "액션 타임" + +msgid "user" +msgstr "사용자" + +msgid "content type" +msgstr "콘텐츠 타입" + +msgid "object id" +msgstr "오브젝트 아이디" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/library/functions.html#repr) +msgid "object repr" +msgstr "오브젝트 표현" + +msgid "action flag" +msgstr "액션 플래그" + +msgid "change message" +msgstr "메시지 변경" + +msgid "log entry" +msgstr "로그 엔트리" + +msgid "log entries" +msgstr "로그 엔트리" + +#, python-format +msgid "Added “%(object)s”." +msgstr "\"%(object)s\"이/가 추가되었습니다." + +#, python-format +msgid "Changed “%(object)s” — %(changes)s" +msgstr "\"%(object)s\"이/가 \"%(changes)s\"(으)로 변경되었습니다." + +#, python-format +msgid "Deleted “%(object)s.”" +msgstr "%(object)s를 삭제했습니다." + +msgid "LogEntry Object" +msgstr "로그 엔트리 객체" + +#, python-brace-format +msgid "Added {name} “{object}”." +msgstr "{name} “{object}개체”를 추가했습니다." + +msgid "Added." +msgstr "추가되었습니다." + +msgid "and" +msgstr "또한" + +#, python-brace-format +msgid "Changed {fields} for {name} “{object}”." +msgstr "{name} “{object}개체”의 {fields}필드를 변경했습니다." + +#, python-brace-format +msgid "Changed {fields}." +msgstr "{fields}가 변경되었습니다." + +#, python-brace-format +msgid "Deleted {name} “{object}”." +msgstr "{name} “{object}개체”를 삭제했습니다." + +msgid "No fields changed." +msgstr "변경된 필드가 없습니다." + +msgid "None" +msgstr "없음" + +msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." +msgstr "" +"하나 이상을 선택하려면 \"Control\" 키를 누른 채로 선택해주세요. Mac의 경우에" +"는 \"Command\" 키를 눌러주세요." + +msgid "Select this object for an action - {}" +msgstr "작업에 대한 객체를 선택합니다." + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully." +msgstr "{name} \"{obj}\"가 성공적으로 추가되었습니다." + +msgid "You may edit it again below." +msgstr "아래 내용을 수정해야 합니다." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was added successfully. You may add another {name} below." +msgstr "" +"{name} \"{obj}\"가 성공적으로 추가되었습니다. 아래에서 다른 {name}을 추가할 " +"수 있습니다." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may edit it again below." +msgstr "" +"{name} \"{obj}\"가 성공적으로 변경되었습니다. 아래에서 다시 수정할 수 있습니" +"다." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may add another {name} " +"below." +msgstr "" +"{name} \"{obj}\"가 성공적으로 변경되었습니다. 아래에서 다른 {name}을 추가할 " +"수 있습니다." + +#, python-brace-format +msgid "The {name} “{obj}” was changed successfully." +msgstr "{name} \"{obj}\"가 성공적으로 변경되었습니다." + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" +"항목들에 액션을 적용하기 위해선 먼저 항목들이 선택되어 있어야 합니다. 아무 항" +"목도 변경되지 않았습니다." + +msgid "No action selected." +msgstr "액션이 선택되지 않았습니다." + +#, python-format +msgid "The %(name)s “%(obj)s” was deleted successfully." +msgstr "%(name)s \"%(obj)s\"이/가 성공적으로 삭제되었습니다." + +#, python-format +msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" +msgstr "" +"ID \"%(key)s\"을/를 지닌%(name)s이/가 존재하지 않습니다. 삭제된 값이 아닌지 " +"확인해주세요." + +#, python-format +msgid "Add %s" +msgstr "%s 추가" + +#, python-format +msgid "Change %s" +msgstr "%s 변경" + +#, python-format +msgid "View %s" +msgstr "뷰 %s" + +msgid "Database error" +msgstr "데이터베이스 오류" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "%(count)s개의 %(name)s이/가 변경되었습니다." + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "총 %(total_count)s개가 선택되었습니다." + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "%(cnt)s 중 아무것도 선택되지 않았습니다." + +#, python-format +msgid "Change history: %s" +msgstr "변경 히스토리: %s" + +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "%(class_name)s %(instance)s" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" +"%(class_name)s %(instance)s 을/를 삭제하려면 다음 보호상태의 연관된 오브젝트" +"들을 삭제해야 합니다: %(related_objects)s" + +msgid "Django site admin" +msgstr "Django 사이트 관리" + +msgid "Django administration" +msgstr "Django 관리" + +msgid "Site administration" +msgstr "사이트 관리" + +msgid "Log in" +msgstr "로그인" + +#, python-format +msgid "%(app)s administration" +msgstr "%(app)s 관리" + +msgid "Page not found" +msgstr "페이지를 찾을 수 없습니다." + +msgid "We’re sorry, but the requested page could not be found." +msgstr "죄송합니다, 요청한 페이지를 찾을 수 없습니다." + +msgid "Home" +msgstr "홈" + +msgid "Server error" +msgstr "서버 오류" + +msgid "Server error (500)" +msgstr "서버 오류 (500)" + +msgid "Server Error (500)" +msgstr "서버 오류 (500)" + +msgid "" +"There’s been an error. It’s been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" +"오류가 발생했습니다. 사이트 관리자들에게 이메일로 보고되었고 단시일 내에 수정" +"될 것입니다. 기다려주셔서 감사합니다." + +msgid "Run the selected action" +msgstr "선택한 액션을 실행합니다." + +msgid "Go" +msgstr "실행" + +msgid "Click here to select the objects across all pages" +msgstr "모든 페이지의 항목들을 선택하려면 여기를 클릭하세요." + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "%(total_count)s개의 %(module_name)s 모두를 선택합니다." + +msgid "Clear selection" +msgstr "선택 해제" + +msgid "Breadcrumbs" +msgstr "사용자 위치" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "%(name)s 애플리케이션의 모델" + +msgid "Add" +msgstr "추가" + +msgid "View" +msgstr "보기" + +msgid "You don’t have permission to view or edit anything." +msgstr "독자는 뷰 및 수정 권한이 없습니다." + +msgid "" +"First, enter a username and password. Then, you’ll be able to edit more user " +"options." +msgstr "" +"첫 번째로, 사용자명과 비밀번호를 입력하세요. 그 후, 독자는 더 많은 사용자 옵" +"션을 수정할 수 있습니다. " + +msgid "Enter a username and password." +msgstr "사용자 이름과 비밀번호를 입력하세요." + +msgid "Change password" +msgstr "비밀번호 변경" + +msgid "Set password" +msgstr "비밀번호 설정" + +msgid "Please correct the error below." +msgid_plural "Please correct the errors below." +msgstr[0] "아래 오류를 수정하기 바랍니다. " + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "%(username)s 새로운 비밀번호를 입력하세요." + +msgid "" +"This action will enable password-based authentication for " +"this user." +msgstr "" + +msgid "Disable password-based authentication" +msgstr "" + +msgid "Enable password-based authentication" +msgstr "" + +msgid "Skip to main content" +msgstr "메인 콘텐츠로 이동" + +msgid "Welcome," +msgstr "환영합니다," + +msgid "View site" +msgstr "사이트 보기" + +msgid "Documentation" +msgstr "문서" + +msgid "Log out" +msgstr "로그아웃" + +#, python-format +msgid "Add %(name)s" +msgstr "%(name)s 추가" + +msgid "History" +msgstr "히스토리" + +msgid "View on site" +msgstr "사이트에서 보기" + +msgid "Filter" +msgstr "필터" + +msgid "Hide counts" +msgstr "" + +msgid "Show counts" +msgstr "" + +msgid "Clear all filters" +msgstr "모든 필터 삭제" + +msgid "Remove from sorting" +msgstr "정렬에서 " + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "정렬 조건 : %(priority_number)s" + +msgid "Toggle sorting" +msgstr "정렬 " + +msgid "Toggle theme (current theme: auto)" +msgstr "테마 토글 (현재 테마:자동)" + +msgid "Toggle theme (current theme: light)" +msgstr "테마 토글 (현재 테마: 밝음)" + +msgid "Toggle theme (current theme: dark)" +msgstr "테마 토글 (현재 테마: 어두움)" + +msgid "Delete" +msgstr "삭제" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" +"%(object_name)s \"%(escaped_object)s\" 을/를 삭제하면서관련 오브젝트를 제거하" +"고자 했으나, 지금 사용하시는 계정은 다음 타입의 오브젝트를 제거할 권한이 없습" +"니다. :" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" +"%(object_name)s '%(escaped_object)s'를 삭제하려면 다음 보호상태의 연관된 오브" +"젝트들을 삭제해야 합니다." + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" +"정말로 %(object_name)s \"%(escaped_object)s\"을/를 삭제하시겠습니까? 다음의 " +"관련 항목들이 모두 삭제됩니다. :" + +msgid "Objects" +msgstr "오브젝트" + +msgid "Yes, I’m sure" +msgstr "네, 확신합니다. " + +msgid "No, take me back" +msgstr "아뇨, 돌려주세요." + +msgid "Delete multiple objects" +msgstr "여러 개의 오브젝트 삭제" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" +"연관 오브젝트 삭제로 선택한 %(objects_name)s의 삭제 중, 그러나 당신의 계정은 " +"다음 오브젝트의 삭제 권한이 없습니다. " + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" +"%(objects_name)s를 삭제하려면 다음 보호상태의 연관된 오브젝트들을 삭제해야 합" +"니다." + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" +"선택한 %(objects_name)s를 정말 삭제하시겠습니까? 다음의 오브젝트와 연관 아이" +"템들이 모두 삭제됩니다:" + +msgid "Delete?" +msgstr "삭제" + +#, python-format +msgid " By %(filter_title)s " +msgstr "%(filter_title)s (으)로" + +msgid "Summary" +msgstr "개요" + +msgid "Recent actions" +msgstr "최근 활동" + +msgid "My actions" +msgstr "나의 활동" + +msgid "None available" +msgstr "이용할 수 없습니다." + +msgid "Added:" +msgstr "추가되었습니다:" + +msgid "Changed:" +msgstr "변경:" + +msgid "Deleted:" +msgstr "삭제:" + +msgid "Unknown content" +msgstr "알 수 없는 형식입니다." + +msgid "" +"Something’s wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" +"당신의 데이터베이스 설치, 설치본에 오류가 있습니다. \n" +"적합한 데이터베이스 테이블이 생성되었는지 확인하고, 데이터베이스가 적합한 사" +"용자가 열람할 수 있는 지 확인하십시오. " + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" +"%(username)s 로 인증되어 있지만, 이 페이지에 접근 가능한 권한이 없습니다. 다" +"른 계정으로 로그인하시겠습니까?" + +msgid "Forgotten your password or username?" +msgstr "아이디 또는 비밀번호를 분실하였습니까?" + +msgid "Toggle navigation" +msgstr "토글 메뉴" + +msgid "Sidebar" +msgstr "사이드바" + +msgid "Start typing to filter…" +msgstr "필터에 타이핑 시작..." + +msgid "Filter navigation items" +msgstr "탐색 항목 필터링" + +msgid "Date/time" +msgstr "날짜/시간" + +msgid "User" +msgstr "사용자" + +msgid "Action" +msgstr "액션" + +msgid "entry" +msgid_plural "entries" +msgstr[0] "항목" + +msgid "" +"This object doesn’t have a change history. It probably wasn’t added via this " +"admin site." +msgstr "" +"이 개체는 변경 기록이 없습니다. 아마도 이 관리자 사이트를 통해 추가되지 않았" +"을 것입니다. " + +msgid "Show all" +msgstr "모두 표시" + +msgid "Save" +msgstr "저장" + +msgid "Popup closing…" +msgstr "팝업 닫는중..." + +msgid "Search" +msgstr "검색" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "결과 %(counter)s개 나옴" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "총 %(full_result_count)s건" + +msgid "Save as new" +msgstr "새로 저장" + +msgid "Save and add another" +msgstr "저장 및 다른 이름으로 추가" + +msgid "Save and continue editing" +msgstr "저장 및 편집 계속" + +msgid "Save and view" +msgstr "저장하고 조회하기" + +msgid "Close" +msgstr "닫기" + +#, python-format +msgid "Change selected %(model)s" +msgstr "선택된 %(model)s 변경" + +#, python-format +msgid "Add another %(model)s" +msgstr "%(model)s 추가" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "선택된 %(model)s 제거" + +#, python-format +msgid "View selected %(model)s" +msgstr "선택된 %(model)s 보기" + +msgid "Thanks for spending some quality time with the web site today." +msgstr "사이트를 이용해 주셔서 고맙습니다." + +msgid "Log in again" +msgstr "다시 로그인하기" + +msgid "Password change" +msgstr "비밀번호 변경" + +msgid "Your password was changed." +msgstr "비밀번호가 변경되었습니다." + +msgid "" +"Please enter your old password, for security’s sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" +"독자의 과거 비밀번호를 입력한 후, 보안을 위해 새로운 비밀번호을 두 번 입력하" +"여 옳은 입력인 지 확인할 수 있도록 하십시오." + +msgid "Change my password" +msgstr "비밀번호 변경" + +msgid "Password reset" +msgstr "비밀번호 초기화" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "비밀번호가 설정되었습니다. 이제 로그인하세요." + +msgid "Password reset confirmation" +msgstr "비밀번호 초기화 확인" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" +"새로운 비밀번호를 정확히 입력했는지 확인할 수 있도록 두 번 입력하시기 바랍니" +"다." + +msgid "New password:" +msgstr "새로운 비밀번호:" + +msgid "Confirm password:" +msgstr "새로운 비밀번호 (확인):" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"비밀번호 초기화 링크가 이미 사용되어 올바르지 않습니다. 비밀번호 초기화를 다" +"시 해주세요." + +msgid "" +"We’ve emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" +"계정이 존재한다면, 독자가 입력한 이메일로 비밀번호 설정 안내문을 발송했습니" +"다. 곧 수신할 수 있을 것입니다. " + +msgid "" +"If you don’t receive an email, please make sure you’ve entered the address " +"you registered with, and check your spam folder." +msgstr "" +"만약 이메일을 받지 못하였다면, 등록하신 이메일을 다시 확인하시거나 스팸 메일" +"함을 확인해주세요." + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" +"%(site_name)s의 계정 비밀번호를 초기화하기 위한 요청으로 이 이메일이 전송되었" +"습니다." + +msgid "Please go to the following page and choose a new password:" +msgstr "다음 페이지에서 새 비밀번호를 선택하세요." + +msgid "Your username, in case you’ve forgotten:" +msgstr "사용자명:" + +msgid "Thanks for using our site!" +msgstr "사이트를 이용해 주셔서 고맙습니다." + +#, python-format +msgid "The %(site_name)s team" +msgstr "%(site_name)s 팀" + +msgid "" +"Forgotten your password? Enter your email address below, and we’ll email " +"instructions for setting a new one." +msgstr "" +"비밀번호를 잊어버렸나요? 이메일 주소를 아래에 입력하시면 새로운 비밀번호를 설" +"정하는 절차를 이메일로 보내드리겠습니다." + +msgid "Email address:" +msgstr "이메일 주소:" + +msgid "Reset my password" +msgstr "비밀번호 초기화" + +msgid "Select all objects on this page for an action" +msgstr "작업에 대한 이 페이지의 모든 객체를 선택합니다." + +msgid "All dates" +msgstr "언제나" + +#, python-format +msgid "Select %s" +msgstr "%s 선택" + +#, python-format +msgid "Select %s to change" +msgstr "변경할 %s 선택" + +#, python-format +msgid "Select %s to view" +msgstr "보기위한 1%s 를(을) 선택" + +msgid "Date:" +msgstr "날짜:" + +msgid "Time:" +msgstr "시각:" + +msgid "Lookup" +msgstr "찾아보기" + +msgid "Currently:" +msgstr "현재:" + +msgid "Change:" +msgstr "변경:" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ko/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ko/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..85267f801e42c9c717de0c96ad41c65425236590 GIT binary patch literal 5985 zcmb`Je{2-T6~_m-q>1yRNg7BRD4Ec@frLB%0s}|gKmhYA#s-|Es7j^v-PpJIZuhji zXRy>t1`g_&q%y$-n{qb?fvet&>+Lpg0cc-crjz0RKEu=JU_dau?^sd;Mc)LpJNPF zwncF#NK^Nzb}RTG+TT>|grW&Pg#IqYtm0c>1^RQ~{oqybY49faRq&VKec-f>%NOq*5ezKa`{O z9|B2kDM)&+0BPQ{AbzYGFIq1O(!3YI0k9D~1O5i2`6&pKUR@xyzYWs*C&A6&n_v|D z5QGQ|J>c_Ua1`w)!6EQAm-o&!Ip22xB$i4?!H6{a!H-lD+?__%TTPEqTEb`G?}-$NcdJ6(3bxrnp>@gCt)GlKfiL zt_N$-ZUD*uCP@2URpale_Ka%357K#l3eq~i07<{!s_~Ch{~y6A^#2VU2QR}oG`|VP zCOuwN{1!<40z3ek;C}EYs{e5~jpnZe`@u?(;_nuC5o|_q&^?(|{FCBe75}dIFU5}) z7b6%+?|T&=0O{P1sP;0&<%(RfQt>&(Dv;#XDMnTQ7LfGXp}1SINpZj8%Zi5-Ujq?- z4DOYA2*;F9qawvPLQOstH?=4`QOGA-QRptLLkXTQs|v!ItyXpN^GhgSLE$L$Y(k;@ zN3j4C$vXkCRrJDxbii;`WUin#(lx6@`4Y-X6td+$lszcqueB(2e|DiXq0mG3BZ5*- z4fRlNe>P}*c?K2Ak#ryFp*$5uS%b0zr4EHvuC_&Tjm^z=Ub#AEIH;mS z#2gV{c&spwn`uWk4Q`kY@6v6(Eh$*#UBhPd&%mLAu-*)BaU*dEQ0 zLwhpGZnh_52-c)ou>{`TtVxd>dPl-xO{PHt`%Kfo%Mnq2$jorfqNDSKnX$N*5L%p^ zV+*TGSeyB6g9%6+%*cbcCUl$Q=OhGA>Nfn)&b1={B($ST{Ssrd<6~(8}U!NQT!$}+?~0Zn!&Xg<%hM>E8S{>@lnqOho`hSu9-pp)r<~- zG-Ti)alK2AXS5`aAd+!g+8onyEz*|RhSbo_lcp)%+HT@bz<)d8zKr8Q+|tmdPHapg z2T2=$EV8hAn8ZufvmqO&K5I@v81^m&dAD#Pyd^0#Tlf*joA;6nNIuXWxyBG!4c(Rq zTNz(F-!w&vWek7Q`3)lCx+7C#V42NLU@<=%a2D0-;lC_AX|q}DH{s%cLlFeIO|{^y?+q>Pjh*q%_j50s%byr=`>#Y8{!Rof3=iG(P7Zk^Jv@JA*gHM!_78cN zd$>2)=k?umPxrc~$0E!d8uM~lUXO9A=igTKb>75mAKn4m&D5Mjb1trO*)&Szeeu(9kptHaLCP# zxf9boe{9;lbRBIkJL6p(h_HfS;pk;cQPN}(x z=0GDl9F7_&fBagxzqvOu#NA8RyuPt~-wZEo$`MUjcN9T3#Jv;8$PnlIp?<+@vr{=P zT`otths6<3n7+#Q)+(OAFyI}ZMu?KP3*J3{4T11o3OfXCaUkTl*NfdodyAu3T>*-u z|G%QrZVM?23&5oCnR+5EZJ=Y}9Z`96i=)O3&%N) zFjuZi$MI7k#plABH18!#xxHC;e3}xFzXFn}J2APoNS0C~G8lK?#3@gYLB;&wv^R*D z9-Ij7cc9q!X1vR1D7IBfEi#?duP9aHszZBef#Q%a+8F+jn?a!>?SfSA%Lk_)J>i|3 zhEZ{uXK%d0-Ts1VGrg3-C_PXzK+>3?z$9<8!pEQ}Q+{GP^b?Vvfn, 2016 +# alexhojinpark, 2023 +# Hoseok Lee , 2016 +# Jaehong Kim , 2011 +# Jannis Leidel , 2011 +# Jay Oh , 2020 +# Le Tartuffe , 2014 +# LEE Hwanyong , 2023 +# minsung kang, 2015 +# Seoeun(Sun☀️) Hong, 2023 +# Yang Chan Woo , 2021 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-09-18 15:04-0300\n" +"PO-Revision-Date: 2023-12-04 07:59+0000\n" +"Last-Translator: alexhojinpark, 2023\n" +"Language-Team: Korean (http://app.transifex.com/django/django/language/ko/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ko\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#, javascript-format +msgid "Available %s" +msgstr "이용 가능한 %s" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" +"사용 가능한 %s 의 리스트 입니다. 아래의 상자에서 선택하고 두 상자 사이의 " +"\"선택\" 화살표를 클릭하여 몇 가지를 선택할 수 있습니다." + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "사용 가능한 %s 리스트를 필터링하려면 이 상자에 입력하세요." + +msgid "Filter" +msgstr "필터" + +msgid "Choose all" +msgstr "모두 선택" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "한번에 모든 %s 를 선택하려면 클릭하세요." + +msgid "Choose" +msgstr "선택" + +msgid "Remove" +msgstr "삭제" + +#, javascript-format +msgid "Chosen %s" +msgstr "선택된 %s" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" +"선택된 %s 리스트 입니다. 아래의 상자에서 선택하고 두 상자 사이의 \"제거\" 화" +"살표를 클릭하여 일부를 제거 할 수 있습니다." + +#, javascript-format +msgid "Type into this box to filter down the list of selected %s." +msgstr "선택된 %s의 리스트를 필터링 하려면 이 박스에 입력 하세요 ." + +msgid "Remove all" +msgstr "모두 제거" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "한번에 선택된 모든 %s 를 제거하려면 클릭하세요." + +#, javascript-format +msgid "%s selected option not visible" +msgid_plural "%s selected options not visible" +msgstr[0] "%s 선택된 옵션은 표시되지 않습니다." + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "%(sel)s개가 %(cnt)s개 중에 선택됨." + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" +"개별 편집 가능한 필드에 저장되지 않은 값이 있습니다. 액션을 수행하면 저장되" +"지 않은 값들을 잃어버리게 됩니다." + +msgid "" +"You have selected an action, but you haven’t saved your changes to " +"individual fields yet. Please click OK to save. You’ll need to re-run the " +"action." +msgstr "" +"개별 필드의 값들을 저장하지 않고 액션을 선택했습니다. OK를 누르면 저장되며, " +"액션을 한 번 더 실행해야 합니다." + +msgid "" +"You have selected an action, and you haven’t made any changes on individual " +"fields. You’re probably looking for the Go button rather than the Save " +"button." +msgstr "" +"개별 필드에 아무런 변경이 없는 상태로 액션을 선택했습니다. 저장 버튼이 아니" +"라 진행 버튼을 찾아보세요." + +msgid "Now" +msgstr "현재" + +msgid "Midnight" +msgstr "자정" + +msgid "6 a.m." +msgstr "오전 6시" + +msgid "Noon" +msgstr "정오" + +msgid "6 p.m." +msgstr "오후 6시" + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "Note: 서버 시간보다 %s 시간 빠릅니다." + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "Note: 서버 시간보다 %s 시간 늦은 시간입니다." + +msgid "Choose a Time" +msgstr "시간 선택" + +msgid "Choose a time" +msgstr "시간 선택" + +msgid "Cancel" +msgstr "취소" + +msgid "Today" +msgstr "오늘" + +msgid "Choose a Date" +msgstr "시간 선택" + +msgid "Yesterday" +msgstr "어제" + +msgid "Tomorrow" +msgstr "내일" + +msgid "January" +msgstr "1월" + +msgid "February" +msgstr "2월" + +msgid "March" +msgstr "3월" + +msgid "April" +msgstr "4월" + +msgid "May" +msgstr "5월" + +msgid "June" +msgstr "6월" + +msgid "July" +msgstr "7월" + +msgid "August" +msgstr "8월" + +msgid "September" +msgstr "9월" + +msgid "October" +msgstr "10월" + +msgid "November" +msgstr "11월" + +msgid "December" +msgstr "12월" + +msgctxt "abbrev. month January" +msgid "Jan" +msgstr "1월" + +msgctxt "abbrev. month February" +msgid "Feb" +msgstr "2월" + +msgctxt "abbrev. month March" +msgid "Mar" +msgstr "3월" + +msgctxt "abbrev. month April" +msgid "Apr" +msgstr "4월" + +msgctxt "abbrev. month May" +msgid "May" +msgstr "5월" + +msgctxt "abbrev. month June" +msgid "Jun" +msgstr "6월" + +msgctxt "abbrev. month July" +msgid "Jul" +msgstr "7월" + +msgctxt "abbrev. month August" +msgid "Aug" +msgstr "8월" + +msgctxt "abbrev. month September" +msgid "Sep" +msgstr "9월" + +msgctxt "abbrev. month October" +msgid "Oct" +msgstr "10월" + +msgctxt "abbrev. month November" +msgid "Nov" +msgstr "11월" + +msgctxt "abbrev. month December" +msgid "Dec" +msgstr "12월" + +msgid "Sunday" +msgstr "일요일" + +msgid "Monday" +msgstr "월요일" + +msgid "Tuesday" +msgstr "화요일" + +msgid "Wednesday" +msgstr "수요일" + +msgid "Thursday" +msgstr "목요일" + +msgid "Friday" +msgstr "금요일" + +msgid "Saturday" +msgstr "토요일" + +msgctxt "abbrev. day Sunday" +msgid "Sun" +msgstr "일" + +msgctxt "abbrev. day Monday" +msgid "Mon" +msgstr "월" + +msgctxt "abbrev. day Tuesday" +msgid "Tue" +msgstr "화" + +msgctxt "abbrev. day Wednesday" +msgid "Wed" +msgstr "수" + +msgctxt "abbrev. day Thursday" +msgid "Thur" +msgstr "목" + +msgctxt "abbrev. day Friday" +msgid "Fri" +msgstr "금" + +msgctxt "abbrev. day Saturday" +msgid "Sat" +msgstr "토" + +msgctxt "one letter Sunday" +msgid "S" +msgstr "일" + +msgctxt "one letter Monday" +msgid "M" +msgstr "월" + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "화" + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "수" + +msgctxt "one letter Thursday" +msgid "T" +msgstr "목" + +msgctxt "one letter Friday" +msgid "F" +msgstr "금" + +msgctxt "one letter Saturday" +msgid "S" +msgstr "토" + +msgid "Show" +msgstr "보기" + +msgid "Hide" +msgstr "감추기" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ky/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ky/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..71d5e5b3caad6ab29577cd92f87ed616d8455e4b GIT binary patch literal 20129 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 VS8!Uk@g9}=d%A8t8b^`tzX4RnC9MDe literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ky/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ky/LC_MESSAGES/django.po new file mode 100644 index 0000000000..683480cf13 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ky/LC_MESSAGES/django.po @@ -0,0 +1,711 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Belek , 2016 +# Chyngyz Monokbaev , 2016 +# Soyuzbek Orozbek uulu , 2020-2021 +# Soyuzbek Orozbek uulu , 2020 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-09-21 10:22+0200\n" +"PO-Revision-Date: 2021-11-27 14:12+0000\n" +"Last-Translator: Soyuzbek Orozbek uulu \n" +"Language-Team: Kyrgyz (http://www.transifex.com/django/django/language/ky/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ky\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "Тандалган %(verbose_name_plural)s элементтерин өчүрүү" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "%(count)d %(items)s ийгиликтүү өчүрүлдү." + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "%(name)s өчүрүү мүмкүн эмес" + +msgid "Are you sure?" +msgstr "Чечимиңиз аныкпы?" + +msgid "Administration" +msgstr "Башкаруу" + +msgid "All" +msgstr "Баары" + +msgid "Yes" +msgstr "Ооба" + +msgid "No" +msgstr "Жок" + +msgid "Unknown" +msgstr "Такталбаган" + +msgid "Any date" +msgstr "Кааалаган бир күн" + +msgid "Today" +msgstr "Бүгүн" + +msgid "Past 7 days" +msgstr "Өткөн 7 күн" + +msgid "This month" +msgstr "Бул айда" + +msgid "This year" +msgstr "Бул жылда" + +msgid "No date" +msgstr "Күн белгиленген эмес" + +msgid "Has date" +msgstr "Күн белгиленген" + +msgid "Empty" +msgstr "Бош" + +msgid "Not empty" +msgstr "Бош эмес" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" +"Сураныч кызматкердин %(username)s жана сыр сөзүн туура жазыңыз. Эки " +"талаага тең баш тамга же кичүү тамга менен жазганыңыз маанилүү экенин эске " +"тутуңуз." + +msgid "Action:" +msgstr "Аракет" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "Дагы %(verbose_name)s кошуу" + +msgid "Remove" +msgstr "Алып таштоо" + +msgid "Addition" +msgstr "Кошумча" + +msgid "Change" +msgstr "Өзгөртүү" + +msgid "Deletion" +msgstr "Өчүрүү" + +msgid "action time" +msgstr "аракет убактысы" + +msgid "user" +msgstr "колдонуучу" + +msgid "content type" +msgstr "Контент тиби" + +msgid "object id" +msgstr "объекттин id-си" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/library/functions.html#repr) +msgid "object repr" +msgstr "объекттин repr-и" + +msgid "action flag" +msgstr "аракет белгиси" + +msgid "change message" +msgstr "билдирүүнү өзгөртүү" + +msgid "log entry" +msgstr "Жазуу журналы" + +msgid "log entries" +msgstr "Жазуу журналдары" + +#, python-format +msgid "Added “%(object)s”." +msgstr "“%(object)s” кошулду" + +#, python-format +msgid "Changed “%(object)s” — %(changes)s" +msgstr "“%(object)s” — %(changes)s өзгөрдү" + +#, python-format +msgid "Deleted “%(object)s.”" +msgstr "“%(object)s.” өчүрүлдү" + +msgid "LogEntry Object" +msgstr "LogEntry обектиси" + +#, python-brace-format +msgid "Added {name} “{object}”." +msgstr "{name} “{object}” кошулду" + +msgid "Added." +msgstr "Кошулду." + +msgid "and" +msgstr "жана" + +#, python-brace-format +msgid "Changed {fields} for {name} “{object}”." +msgstr "{name} “{object}” үчүн {fields} өзгөртүлдү." + +#, python-brace-format +msgid "Changed {fields}." +msgstr "{fields} өзгөртүлдү." + +#, python-brace-format +msgid "Deleted {name} “{object}”." +msgstr "{name} “{object}” өчүрүлдү." + +msgid "No fields changed." +msgstr "Эч бир талаа өзгөртүлгөн жок" + +msgid "None" +msgstr "Эчбир" + +msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." +msgstr "Көбүрөөк тандоо үчүн “CTRL”, же макбук үчүн “Cmd” кармап туруңуз." + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully." +msgstr "{name} \"{obj}\" ийгиликтүү кошулду." + +msgid "You may edit it again below." +msgstr "Сиз муну төмөндө кайра өзгөртүшүңүз мүмкүн." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was added successfully. You may add another {name} below." +msgstr "{name} \"{obj}\" ийгиликтүү кошулду. Сиз башка {name} кошо аласыз." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may edit it again below." +msgstr "{name} “{obj}” ийгиликтүү өзгөрдү. Сиз аны төмөндө өзгөртө аласыз." + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully. You may edit it again below." +msgstr "{name} “{obj}” ийгиликтүү кошулду. Сиз аны төмөндө өзгөртө аласыз." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may add another {name} " +"below." +msgstr "" +"{name} “{obj}” ийгиликтүү өзгөрдү. Төмөндө башка {name} кошсоңуз болот." + +#, python-brace-format +msgid "The {name} “{obj}” was changed successfully." +msgstr "{name} \"{obj}\" ийгиликтүү өзгөрдү." + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" +"Нерселердин үстүнөн аракет кылуудан мурда алар тандалуусу керек. Эч " +"нерсеөзгөргөн жок." + +msgid "No action selected." +msgstr "Аракет тандалган жок." + +#, python-format +msgid "The %(name)s “%(obj)s” was deleted successfully." +msgstr "%(name)s \"%(obj)s\" ийгиликтүү өчүрүлдү" + +#, python-format +msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" +msgstr "" +"ID си %(key)s\" болгон %(name)s табылган жок. Ал өчүрүлгөн болуп жүрбөсүн?" + +#, python-format +msgid "Add %s" +msgstr "%s кошуу" + +#, python-format +msgid "Change %s" +msgstr "%s өзгөртүү" + +#, python-format +msgid "View %s" +msgstr "%s көрүү" + +msgid "Database error" +msgstr "Берилиштер базасында ката" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "%(count)s%(name)s ийгиликтүү өзгөртүлдү." + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "Бүт %(total_count)s тандалды" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "%(cnt)s нерседен эчтемке тандалган жок" + +#, python-format +msgid "Change history: %s" +msgstr "%s тарыхын өзгөртүү" + +#. Translators: Model verbose name and instance representation, +#. suitable to be an item in a list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "%(class_name)s %(instance)s" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" +"%(class_name)s %(instance)s өчүрүлүүсү үчүн %(related_objects)s да " +"өчүрүлүүсү талап кылынат." + +msgid "Django site admin" +msgstr "Жанго башкарма сайты" + +msgid "Django administration" +msgstr "Жанго башкармасы" + +msgid "Site administration" +msgstr "Сайт башкармасы" + +msgid "Log in" +msgstr "Кирүү" + +#, python-format +msgid "%(app)s administration" +msgstr "%(app)s башкармасы" + +msgid "Page not found" +msgstr "Барак табылган жок" + +msgid "We’re sorry, but the requested page could not be found." +msgstr "Кечирим сурайбыз, сиз сураган барак табылбады." + +msgid "Home" +msgstr "Башкы" + +msgid "Server error" +msgstr "Сервер катасы" + +msgid "Server error (500)" +msgstr "Сервер (500) катасы" + +msgid "Server Error (500)" +msgstr "Сервер (500) катасы" + +msgid "" +"There’s been an error. It’s been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" +"Ката кетти. Сайт башкармасына экат менен кайрылсаңыз тез арада маселе " +"чечилиши мүмкүн. Түшүнгөнүңүз үчүн рахмат." + +msgid "Run the selected action" +msgstr "Тандалган аракетти иштетиңиз" + +msgid "Go" +msgstr "Жөнө" + +msgid "Click here to select the objects across all pages" +msgstr "Барак боюнча бүт обекттерди тандоо үчүн чыкылдатыңыз" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "Бүт %(total_count)s %(module_name)s тандаңыз" + +msgid "Clear selection" +msgstr "Тандоону бошотуу" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "%(name)s колдонмосундагы моделдер" + +msgid "Add" +msgstr "Кошуу" + +msgid "View" +msgstr "Көрүү" + +msgid "You don’t have permission to view or edit anything." +msgstr "Сиз эчнерсени көрүүгө же өзгөртүүгө жеткиңиз жок." + +msgid "" +"First, enter a username and password. Then, you’ll be able to edit more user " +"options." +msgstr "" +"Оболу колдонуучу атыңызды жана сырсөздү териңиз. Ошондо гана башка " +"маалыматтарын өзгөртө аласыз." + +msgid "Enter a username and password." +msgstr "колдонуучу атыңызды жана сырсөз киргизиңиз." + +msgid "Change password" +msgstr "Сырсөз өзгөртүү" + +msgid "Please correct the error below." +msgstr "Төмөнкү катаны оңдоңуз." + +msgid "Please correct the errors below." +msgstr "Төмөнкү каталарды оңдоңуз" + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "%(username)s үчүн жаңы сырсөз териңиз." + +msgid "Welcome," +msgstr "Кош келиңиз," + +msgid "View site" +msgstr "Сайтты ачуу" + +msgid "Documentation" +msgstr "Түшүндүрмө" + +msgid "Log out" +msgstr "Чыгуу" + +#, python-format +msgid "Add %(name)s" +msgstr "%(name)s кошуу" + +msgid "History" +msgstr "Тарых" + +msgid "View on site" +msgstr "Сайтта көрүү" + +msgid "Filter" +msgstr "Чыпкалоо" + +msgid "Clear all filters" +msgstr "Бүт чыпкаларды алып салуу" + +msgid "Remove from sorting" +msgstr "Ирээттөөдөн алып салуу" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "Ирээттөө абзелдүүлүгү: %(priority_number)s" + +msgid "Toggle sorting" +msgstr "Ирээтти алмаштыруу" + +msgid "Delete" +msgstr "Өчүрүү" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" +"%(object_name)s '%(escaped_object)s өчүрүү үчүн башка байланышкан " +"обекттерди өчүрүү да талап кылынат. Бирок сиздин буга жеткиңиз жок:" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" +"%(object_name)s '%(escaped_object)s өчүрүү үчүн башка байланышкан " +"обекттерди өчүрүү да талап кылат:" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" +"Сиз чындап эле %(object_name)s \"%(escaped_object)s\" өчүрүүнү каалайсызбы? " +"Бүт байланышкан нерселер өчүрүлөт:" + +msgid "Objects" +msgstr "Обекттер" + +msgid "Yes, I’m sure" +msgstr "Ооба, мен чындап эле" + +msgid "No, take me back" +msgstr "Жок, мени аркага кайтар" + +msgid "Delete multiple objects" +msgstr "обекттерди өчүр" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" +"%(objects_name)s өчүрүү үчүн башка байланышкан обекттерди өчүрүү да талап " +"кылат. Бирок сиздин буга жеткиңиз жок:" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" +"%(objects_name)s өчүрүү үчүн башка байланышкан обекттерди өчүрүү да талап " +"кылат:" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" +"чындап эле %(objects_name)s өчүрүүнү каалайсызбы? Бүт байланышкан нерселер " +"өчүрүлөт:" + +msgid "Delete?" +msgstr "Өчүрөлүбү?" + +#, python-format +msgid " By %(filter_title)s " +msgstr "%(filter_title)s боюнча" + +msgid "Summary" +msgstr "Жалпысынан" + +msgid "Recent actions" +msgstr "Акыркы аракеттер" + +msgid "My actions" +msgstr "Менин аракеттерим" + +msgid "None available" +msgstr "Мүмкүн эмес" + +msgid "Unknown content" +msgstr "Белгисиз мазмун" + +msgid "" +"Something’s wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" +"Сиздин базаңызды орнотуу боюнча ката кетти. Керектүү база жадыбалдары " +"түзүлгөндүгүн жана тиешелүү колдонуучунун жеткиси барлыгын текшериңиз." + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" +"Сиз %(username)s катары киргенсиз, бирок сиздин бул баракка жеткиңиз жок. " +"Сиз башка колдонуучу катары киресизби?" + +msgid "Forgotten your password or username?" +msgstr "Колдонуучу атыңыз же сырсөздү унутуп калдыңызбы?" + +msgid "Toggle navigation" +msgstr "Навигацияны алмаштыруу" + +msgid "Start typing to filter…" +msgstr "чыпкалоо үчүн жазып башта" + +msgid "Filter navigation items" +msgstr "Навигация элементтерин чыпкалоо" + +msgid "Date/time" +msgstr "Күн/убакыт" + +msgid "User" +msgstr "Колдонуучу" + +msgid "Action" +msgstr "Аракет" + +msgid "" +"This object doesn’t have a change history. It probably wasn’t added via this " +"admin site." +msgstr "Бул обекттин өзгөрүү тарыхы жок." + +msgid "Show all" +msgstr "Баарын көрсөтүү" + +msgid "Save" +msgstr "Сактоо" + +msgid "Popup closing…" +msgstr "Жалтаң жабылуу..." + +msgid "Search" +msgstr "Издөө" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "жыйынтыгы:%(counter)s" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "жалпысынан %(full_result_count)s" + +msgid "Save as new" +msgstr "Жаңы катары сактоо" + +msgid "Save and add another" +msgstr "Сакта жана башкасын кош" + +msgid "Save and continue editing" +msgstr "Сакта жана өзгөртүүнү улант" + +msgid "Save and view" +msgstr "Сактап туруп көрүү" + +msgid "Close" +msgstr "Жабуу" + +#, python-format +msgid "Change selected %(model)s" +msgstr "Тандалган %(model)s өзгөртүү" + +#, python-format +msgid "Add another %(model)s" +msgstr "Башка %(model)s кошуу" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "Тандалган %(model)s обеттерин өчүрүү" + +msgid "Thanks for spending some quality time with the web site today." +msgstr "Сайтта бираз убакыт өткөргөн үчүн ыраазычылык." + +msgid "Log in again" +msgstr "Кайрадан кирүү" + +msgid "Password change" +msgstr "Сырсөз өзгөрт" + +msgid "Your password was changed." +msgstr "Сиздин сырсөз өзгөрдү." + +msgid "" +"Please enter your old password, for security’s sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" +"Коопсуздуктан улам эски сырсөздү териңиз, жана биз коошкондугун текшерүү " +"үчүн жаңы сырсөздү эки жолу териңиз." + +msgid "Change my password" +msgstr "Сырсөздү өзгөрт" + +msgid "Password reset" +msgstr "Сырсөздү кыйратуу" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "" +"Сиздин сырсөз орнотулду. Эми сиз алдыга карай жылып, кирүү аткарсаңыз болот." + +msgid "Password reset confirmation" +msgstr "Сырсөздү кыйратуу тастыктамасы" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" +"Тууралыгын жана коошкондугун текшере алышыбыз үчүн сырсөздү эки жолу териңиз." + +msgid "New password:" +msgstr "Жаңы сырсөз" + +msgid "Confirm password:" +msgstr "Сырсөз тастыктоосу:" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"Сырсөз кыйратуу шилтемеси жараксыз, мурдатан эле колдонулган болушу мүмкүн. " +"Башка шилтеме сурап көрүңүз." + +msgid "" +"We’ve emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" +"Сырсөз тууралуу сизге кат жөнөттүк. Эгер мындай аккаунт бар болсо аны тез " +"арада ала аласыз." + +msgid "" +"If you don’t receive an email, please make sure you’ve entered the address " +"you registered with, and check your spam folder." +msgstr "" +"Эгер сиз екат албасаңыз даректин тууралыган текшериңиз жана спам папкасын " +"текшериңиз." + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "Сиз %(site_name)s боюнча сырсөз сураган үчүн бул экат келди." + +msgid "Please go to the following page and choose a new password:" +msgstr "Төмөнкү баракка кириңиз да жаңы сырсөз тандаңыз." + +msgid "Your username, in case you’ve forgotten:" +msgstr "Сиздин колдонуучу атыңыз, унутуп калсаңыз керек болот." + +msgid "Thanks for using our site!" +msgstr "Биздин сайтты колдонгонуңуз үчүн рахмат!" + +#, python-format +msgid "The %(site_name)s team" +msgstr "%(site_name)s жамааты" + +msgid "" +"Forgotten your password? Enter your email address below, and we’ll email " +"instructions for setting a new one." +msgstr "Сырсөз унуттуңузбу? едарек териңиз сизге сырсөз боюнча экат жөнөтөбүз." + +msgid "Email address:" +msgstr "едарек:" + +msgid "Reset my password" +msgstr "Сырсөзүмдү кыйрат" + +msgid "All dates" +msgstr "Бүт күндөр" + +#, python-format +msgid "Select %s" +msgstr "%s тандоо" + +#, python-format +msgid "Select %s to change" +msgstr "%s обекттерин өзгөртүү үчүн тандоо" + +#, python-format +msgid "Select %s to view" +msgstr "%s обекттерин көрүү үчүн тандоо" + +msgid "Date:" +msgstr "Күн:" + +msgid "Time:" +msgstr "Убак:" + +msgid "Lookup" +msgstr "Көз чаптыруу" + +msgid "Currently:" +msgstr "Азыркы:" + +msgid "Change:" +msgstr "Өзгөртүү:" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ky/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ky/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..037e5fd78e1b45344f1eaf8b22343be4aa311799 GIT binary patch literal 5888 zcmbuBZH!!18OM)0DlWc);v49(w%7_YyIbo5Q;O8WBH*?ST`Wxu$(^0EJHyW0yWV?e zw}Xk4%`R64Lt4e=OF*;c{hI% zd?)i?x%uxL{t0{+>wk9mFNc>RtcUdvgYN*>f*%KS;ML%E@Di}*@M|FdYL1(j_5k>H z@Y`nHiIvL^4{g#9tW=i9|6yR6X4wl{~-7r_#yCR@FU>g z9bR@RF=CztuK;gzcrPgL)xZyc2SIu7C@ANb!HhKbhBa7tN7UaOX5On5|LSsXghs6eMSm|S@xIaFtq!+?lE2-coV(Y} z$3e+^=BewTR{!(205zsf+Fwh;7j0P@C@i*mfCd0&NhYJqRIeZQjzg~3n zUpxG*!&e->>hLcP{{fPIdu?ziAil40^L|ijL3sEH#-|t(qfLyf7&*o#8B+f@F@%p< zhQvoMLT5Q3&%&KNV?9ISE*F$-T{pWY%En&TIK)hwA2+o<>@!SgV`_kLJ%bW$UC>G0 zz>wO!(XEm?oAY&Uz6Ja&L-;C})TPvh^ar^<&G;N+qfEFYZ*pCif~^9uZsWGWjX9gOOA>qq>UM;6RTY>Mi&_6D?SfxBNuH!(D zSaI5`R9MzttOK;<)VAh+XsW@avHKiN-)&RPGfUcH%{9=Q3&?pMk&zsJEzyAL|H>bLk<;8JY_f|+T*D}^SX(0s~XkHbK4@vg8$Q^G(@jwQBZ^)!$CC= zyVY=g!r(GYjU|5KHP54#Wx5zlr5>#sPqoKHa8bkwvq~O3ZdN2g)80s24*Y9v{Oaz2 z|NH6h#=7bip}a4d@cc1DP5anTEKin;HLrqpQz=F^Ivj_v6Jb!GOzXN51U3Pq0c<7G zw-M-C9P@hUF_%RY%g!#bCf&=uws{=VE6s~|wHr0&G?W5LY5!VrDYjL-vsWK)M zD2X77bIL0eLNl4u)xeKS+BU-s_wIGu9y4^wu8n3t%J9&&)$C9i9=f(%pUQyUJ9MrL z?dzgt->}?$+IF`L_pamgJ67vmtJ~?T(mOLebZxnwk^#GRT0JGhlL~y|W@1RL2g5Q% z&kT014F$fe4Rx;V^5UA5L}u5D)tWuIVr{ro3nMu>+<9`iW-eabZHj)nyj$%IgZudC zWp6KLzhuIQ3d`%_eUwqqbC;P2!Z~N6RJv(<~?=q8RIhvKPSzd4K z+t{D&+m!9wsQdf#n>Jn3$JO&iFN(9nq31^xFAl=I-WAkq_ZQ5#-Vp{CYqd&E-x#^& z{u>5z<6}3ERr!eKMuO^1NbtvM-k8Y_8?TzzchYfjR$j+uZ`?ak@yh;YsnReq@s_)X z2ea3=&xx*46J~GqM}i`KJFl-Vl;f6_c|Bh5*;%QDUL`vigw-go{Rumbw)Ah->Eo8Z z%{~0Qu)jBwv&qTEbYov~GI^G9mfs=vCrM)_nP=}=?n}wDjRT4!^T~W;n(2IUPP^%h z9#F}V#=*wiij@bGbDTVxEH%ENk_VG#k`s;D#=gdk;xlb!itKrv{0!wY$zrmA)P-cR zF?0Ud`C}?MoGi1rm@MnYT;o7;LiDQS2hO79WEq|3k6~=vO4(jU-)yp|xgF;$4=pFe z$OG8Ch}KoN52fCrtwXA4T4`}xq6yr|f0Ws&oVe4DKLL=;M7m1}i`G-ZV-3IXl*nyNOBCBmDhSo1LAwrqr*F<4aQ7NLW!lEgwXbFv{j#jAp?urEgirH(t}vH5Z;t3*rs?(ySnfS*o7G zu^gk$lM_N{p&RT?PM$w1#j#2QTj@_%#w1`;^&K_VF4Ycq7AfIY+6a^IVP06+>JUfJ zJtv72K1mJPVA1!)CJbEY%nY^DOo_;m?h89ki9?OK)Z5e2u23mdmKsb?BquC2ZM8}c zgfS;91y9)QV;0R?SV5SY^uwT35mh z`mg*<*^P0p=PBJ9nmgB%)4Fj`YC@b6Kdn, 2020-2021 +# Soyuzbek Orozbek uulu , 2020 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-01-15 09:00+0100\n" +"PO-Revision-Date: 2021-04-02 11:44+0000\n" +"Last-Translator: Soyuzbek Orozbek uulu \n" +"Language-Team: Kyrgyz (http://www.transifex.com/django/django/language/ky/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ky\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#, javascript-format +msgid "Available %s" +msgstr "%s даана жеткиликтүү" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" +"Бул жеткиликтүү тизмеси %s даана . Сиз төмөндө кутудан кээ бирлерин \"Тандоо" +"\" баскычын басуу менен тандап алсаңыз болот." + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "Жеткиликтүү %s даана тизмесин чыпкалоо үчүн төмөнкү кутуга жазыңыз." + +msgid "Filter" +msgstr "Чыпкалоо" + +msgid "Choose all" +msgstr "Баарын тандоо" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "Бүт %s даананы заматта тандоо үчүн чыкылдатыңыз." + +msgid "Choose" +msgstr "Тандоо" + +msgid "Remove" +msgstr "Алып таштоо" + +#, javascript-format +msgid "Chosen %s" +msgstr "%s даана тандалды" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" +"Бул тандалган %s даана. Сиз алардын каалаганын төмөндө кутудан \"Өчүр\" " +"баскычын басуу менен өчүрө аласыз." + +msgid "Remove all" +msgstr "Баарын алып ташта" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "Тандалган %s даананын баарын өчүрүү үчүн басыңыз" + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "%(cnt)sнерседен %(sel)sтандалды" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" +"Сиз өзүнчө аймактарда сакталбаган өзгөртүүлөргө ээсиз. Эгер сиз бул аракетти " +"жасасаңыз сакталбаган өзгөрүүлөр текке кетет." + +msgid "" +"You have selected an action, but you haven’t saved your changes to " +"individual fields yet. Please click OK to save. You’ll need to re-run the " +"action." +msgstr "" +"Сиз аракетти тандадыңыз бирок өзүнчө аймактарды сактай элексиз. Сактоо үчүн " +"ОК ту басыңыз. Сиз аракетти кайталашыңыз керек." + +msgid "" +"You have selected an action, and you haven’t made any changes on individual " +"fields. You’re probably looking for the Go button rather than the Save " +"button." +msgstr "" +"Сиз аракетти тандадыңыз жана өзүнчө аймактарда өзгөртүү киргизген жоксуз. " +"Сиз Сактоонун ордуна Жөнө баскычын басууңуз керек." + +msgid "Now" +msgstr "Азыр" + +msgid "Midnight" +msgstr "Түнүчү" + +msgid "6 a.m." +msgstr "саарлап саат 6" + +msgid "Noon" +msgstr "Түш" + +msgid "6 p.m." +msgstr "Кэч саат 6" + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "Эскертүү: Сиз серверден %s саат алдыда жүрөсүз." + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "Эскертүү: Сиз серверден %s саат аркада жүрөсүз." + +msgid "Choose a Time" +msgstr "Толук убак танда" + +msgid "Choose a time" +msgstr "Кыска убак танда" + +msgid "Cancel" +msgstr "Жокко чыгар" + +msgid "Today" +msgstr "Бүгүн" + +msgid "Choose a Date" +msgstr "Күн танда" + +msgid "Yesterday" +msgstr "Кечээ" + +msgid "Tomorrow" +msgstr "Эртең" + +msgid "January" +msgstr "Январь" + +msgid "February" +msgstr "Февраль" + +msgid "March" +msgstr "Март" + +msgid "April" +msgstr "Апрель" + +msgid "May" +msgstr "Май" + +msgid "June" +msgstr "Июнь" + +msgid "July" +msgstr "Июль" + +msgid "August" +msgstr "Август" + +msgid "September" +msgstr "Сентябрь" + +msgid "October" +msgstr "Октябрь" + +msgid "November" +msgstr "Ноябрь" + +msgid "December" +msgstr "Декабрь" + +msgctxt "abbrev. month January" +msgid "Jan" +msgstr "Янв" + +msgctxt "abbrev. month February" +msgid "Feb" +msgstr "Фев" + +msgctxt "abbrev. month March" +msgid "Mar" +msgstr "Мар" + +msgctxt "abbrev. month April" +msgid "Apr" +msgstr "Апр" + +msgctxt "abbrev. month May" +msgid "May" +msgstr "Май" + +msgctxt "abbrev. month June" +msgid "Jun" +msgstr "Июн" + +msgctxt "abbrev. month July" +msgid "Jul" +msgstr "Июл" + +msgctxt "abbrev. month August" +msgid "Aug" +msgstr "Авг" + +msgctxt "abbrev. month September" +msgid "Sep" +msgstr "Сен" + +msgctxt "abbrev. month October" +msgid "Oct" +msgstr "Окт" + +msgctxt "abbrev. month November" +msgid "Nov" +msgstr "Ноя" + +msgctxt "abbrev. month December" +msgid "Dec" +msgstr "Дек" + +msgctxt "one letter Sunday" +msgid "S" +msgstr "Жек" + +msgctxt "one letter Monday" +msgid "M" +msgstr "Дүй" + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "Шей" + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "Шар" + +msgctxt "one letter Thursday" +msgid "T" +msgstr "Бей" + +msgctxt "one letter Friday" +msgid "F" +msgstr "Жума" + +msgctxt "one letter Saturday" +msgid "S" +msgstr "Ише" + +msgid "Show" +msgstr "Көрсөт" + +msgid "Hide" +msgstr "Жашыр" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/lb/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/lb/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..f989aedbeabc7e3124110249418e3ee8bd1b63c4 GIT binary patch literal 913 zcmY+C&2G~`5XToNU*-q+w#ca>VSLSnl-G^|0-<#Lzd-}S5 zF1R`~ubZ_7uFxuGt+He-HRY*v#I|y&GGc8i3DLf0J!u_Z$KlknBrhxmh ziN+Z_QfEq!6+0%&dPbkpz=_>dyeDIQ6P});t_}`qq>U3@n-!^eTV+-xI_5#|AQ4-J zq!%RG&=K>MFj^O3B%%h7*5cL1au|gn62&2XEPT!X@)}op;c^HII#4YVBb673xI4#vPSaG9!_Y9LBs;O=#HHmB|X5^Tph`QCzQ&$K#sw zb&C_4)CPK3zkIVRl=C9>vR_{cy1U)&>ls9~FxbNMNI~0lgqL(QarIFt3$@7yxipqs z^C;O78`pWh*9jT1tp++RR2K7%e&PO!jd|G*dSzu~DR#6O+L)`+EVRv)O@6s-E-L<_ z$)lysfVIvr, 2013 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-01-19 16:49+0100\n" +"PO-Revision-Date: 2017-09-19 16:40+0000\n" +"Last-Translator: Jannis Leidel \n" +"Language-Team: Luxembourgish (http://www.transifex.com/django/django/" +"language/lb/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: lb\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "" + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "" + +msgid "Are you sure?" +msgstr "" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "" + +msgid "Administration" +msgstr "" + +msgid "All" +msgstr "All" + +msgid "Yes" +msgstr "Jo" + +msgid "No" +msgstr "Nee" + +msgid "Unknown" +msgstr "Onbekannt" + +msgid "Any date" +msgstr "Iergendeen Datum" + +msgid "Today" +msgstr "Haut" + +msgid "Past 7 days" +msgstr "Läscht 7 Deeg" + +msgid "This month" +msgstr "Dëse Mount" + +msgid "This year" +msgstr "Dëst Joer" + +msgid "No date" +msgstr "" + +msgid "Has date" +msgstr "" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" + +msgid "Action:" +msgstr "Aktioun:" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "" + +msgid "Remove" +msgstr "" + +msgid "action time" +msgstr "" + +msgid "user" +msgstr "" + +msgid "content type" +msgstr "" + +msgid "object id" +msgstr "" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/3/library/functions.html#repr) +msgid "object repr" +msgstr "" + +msgid "action flag" +msgstr "" + +msgid "change message" +msgstr "" + +msgid "log entry" +msgstr "" + +msgid "log entries" +msgstr "" + +#, python-format +msgid "Added \"%(object)s\"." +msgstr "" + +#, python-format +msgid "Changed \"%(object)s\" - %(changes)s" +msgstr "" + +#, python-format +msgid "Deleted \"%(object)s.\"" +msgstr "" + +msgid "LogEntry Object" +msgstr "" + +#, python-brace-format +msgid "Added {name} \"{object}\"." +msgstr "" + +msgid "Added." +msgstr "" + +msgid "and" +msgstr "" + +#, python-brace-format +msgid "Changed {fields} for {name} \"{object}\"." +msgstr "" + +#, python-brace-format +msgid "Changed {fields}." +msgstr "" + +#, python-brace-format +msgid "Deleted {name} \"{object}\"." +msgstr "" + +msgid "No fields changed." +msgstr "" + +msgid "None" +msgstr "" + +msgid "" +"Hold down \"Control\", or \"Command\" on a Mac, to select more than one." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was added successfully. You may edit it again below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was added successfully. You may add another {name} " +"below." +msgstr "" + +#, python-brace-format +msgid "The {name} \"{obj}\" was added successfully." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was changed successfully. You may edit it again below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was changed successfully. You may add another {name} " +"below." +msgstr "" + +#, python-brace-format +msgid "The {name} \"{obj}\" was changed successfully." +msgstr "" + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" + +msgid "No action selected." +msgstr "" + +#, python-format +msgid "The %(name)s \"%(obj)s\" was deleted successfully." +msgstr "" + +#, python-format +msgid "%(name)s with ID \"%(key)s\" doesn't exist. Perhaps it was deleted?" +msgstr "" + +#, python-format +msgid "Add %s" +msgstr "" + +#, python-format +msgid "Change %s" +msgstr "" + +msgid "Database error" +msgstr "" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "" + +#, python-format +msgid "Change history: %s" +msgstr "" + +#. Translators: Model verbose name and instance representation, +#. suitable to be an item in a list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" + +msgid "Django site admin" +msgstr "" + +msgid "Django administration" +msgstr "" + +msgid "Site administration" +msgstr "" + +msgid "Log in" +msgstr "" + +#, python-format +msgid "%(app)s administration" +msgstr "" + +msgid "Page not found" +msgstr "" + +msgid "We're sorry, but the requested page could not be found." +msgstr "" + +msgid "Home" +msgstr "" + +msgid "Server error" +msgstr "" + +msgid "Server error (500)" +msgstr "" + +msgid "Server Error (500)" +msgstr "" + +msgid "" +"There's been an error. It's been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" + +msgid "Run the selected action" +msgstr "" + +msgid "Go" +msgstr "" + +msgid "Click here to select the objects across all pages" +msgstr "" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "" + +msgid "Clear selection" +msgstr "" + +msgid "" +"First, enter a username and password. Then, you'll be able to edit more user " +"options." +msgstr "" + +msgid "Enter a username and password." +msgstr "" + +msgid "Change password" +msgstr "" + +msgid "Please correct the error below." +msgstr "" + +msgid "Please correct the errors below." +msgstr "" + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "" + +msgid "Welcome," +msgstr "" + +msgid "View site" +msgstr "" + +msgid "Documentation" +msgstr "" + +msgid "Log out" +msgstr "" + +#, python-format +msgid "Add %(name)s" +msgstr "" + +msgid "History" +msgstr "" + +msgid "View on site" +msgstr "" + +msgid "Filter" +msgstr "" + +msgid "Remove from sorting" +msgstr "" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "" + +msgid "Toggle sorting" +msgstr "" + +msgid "Delete" +msgstr "Läschen" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" + +msgid "Objects" +msgstr "" + +msgid "Yes, I'm sure" +msgstr "" + +msgid "No, take me back" +msgstr "" + +msgid "Delete multiple objects" +msgstr "" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" + +msgid "Change" +msgstr "Änner" + +msgid "Delete?" +msgstr "" + +#, python-format +msgid " By %(filter_title)s " +msgstr "" + +msgid "Summary" +msgstr "" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "" + +msgid "Add" +msgstr "" + +msgid "You don't have permission to edit anything." +msgstr "" + +msgid "Recent actions" +msgstr "" + +msgid "My actions" +msgstr "" + +msgid "None available" +msgstr "" + +msgid "Unknown content" +msgstr "" + +msgid "" +"Something's wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" + +msgid "Forgotten your password or username?" +msgstr "" + +msgid "Date/time" +msgstr "" + +msgid "User" +msgstr "" + +msgid "Action" +msgstr "" + +msgid "" +"This object doesn't have a change history. It probably wasn't added via this " +"admin site." +msgstr "" + +msgid "Show all" +msgstr "" + +msgid "Save" +msgstr "" + +msgid "Popup closing..." +msgstr "" + +#, python-format +msgid "Change selected %(model)s" +msgstr "" + +#, python-format +msgid "Add another %(model)s" +msgstr "" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "" + +msgid "Search" +msgstr "" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "" + +msgid "Save as new" +msgstr "" + +msgid "Save and add another" +msgstr "" + +msgid "Save and continue editing" +msgstr "" + +msgid "Thanks for spending some quality time with the Web site today." +msgstr "" + +msgid "Log in again" +msgstr "" + +msgid "Password change" +msgstr "" + +msgid "Your password was changed." +msgstr "" + +msgid "" +"Please enter your old password, for security's sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" + +msgid "Change my password" +msgstr "" + +msgid "Password reset" +msgstr "" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "" + +msgid "Password reset confirmation" +msgstr "" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" + +msgid "New password:" +msgstr "" + +msgid "Confirm password:" +msgstr "" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" + +msgid "" +"We've emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" + +msgid "" +"If you don't receive an email, please make sure you've entered the address " +"you registered with, and check your spam folder." +msgstr "" + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" + +msgid "Please go to the following page and choose a new password:" +msgstr "" + +msgid "Your username, in case you've forgotten:" +msgstr "" + +msgid "Thanks for using our site!" +msgstr "" + +#, python-format +msgid "The %(site_name)s team" +msgstr "" + +msgid "" +"Forgotten your password? Enter your email address below, and we'll email " +"instructions for setting a new one." +msgstr "" + +msgid "Email address:" +msgstr "" + +msgid "Reset my password" +msgstr "" + +msgid "All dates" +msgstr "" + +#, python-format +msgid "Select %s" +msgstr "" + +#, python-format +msgid "Select %s to change" +msgstr "" + +msgid "Date:" +msgstr "" + +msgid "Time:" +msgstr "" + +msgid "Lookup" +msgstr "" + +msgid "Currently:" +msgstr "" + +msgid "Change:" +msgstr "" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/lb/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/lb/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..5b7937f60831ed7f8a2584d2470803c9833582d3 GIT binary patch literal 474 zcmYLFO-lnY5LNWFN6#K2cu;hjq*$z}74f4`X|a^mdv-V7M$%+SvbO#Z@BT7>i?gk? z4<4CE-c07@_vr9@53!FtMxG)MkeA2?UE~j5-r(7IwwQSLq4EgB0^XGm+F3!04{1x6 zOjYH4gmEZ!0S|QtWugDrx$FBl>j$q*s+(gq`=^MbrcYjq$ar3+=qEpCJI-mGOy+nKw=9$VJ3RFEpU z5M)%Z)FN}WFLjucvw4h_pme!hwqi3^&(x}wy9KQ_X#=h3CL}fggQ&^qc`_c3pLhSj zTP%5WHY$tzeN`AVs#TIYHPWptO_maIo)MJbs literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/lb/LC_MESSAGES/djangojs.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/lb/LC_MESSAGES/djangojs.po new file mode 100644 index 0000000000..e1c4a6abe1 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/lb/LC_MESSAGES/djangojs.po @@ -0,0 +1,145 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-01-17 11:07+0100\n" +"PO-Revision-Date: 2014-10-05 20:12+0000\n" +"Last-Translator: Jannis Leidel \n" +"Language-Team: Luxembourgish (http://www.transifex.com/projects/p/django/" +"language/lb/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: lb\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, javascript-format +msgid "Available %s" +msgstr "" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "" + +msgid "Filter" +msgstr "" + +msgid "Choose all" +msgstr "" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "" + +msgid "Choose" +msgstr "" + +msgid "Remove" +msgstr "" + +#, javascript-format +msgid "Chosen %s" +msgstr "" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" + +msgid "Remove all" +msgstr "" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "" + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "" +msgstr[1] "" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" + +msgid "" +"You have selected an action, but you haven't saved your changes to " +"individual fields yet. Please click OK to save. You'll need to re-run the " +"action." +msgstr "" + +msgid "" +"You have selected an action, and you haven't made any changes on individual " +"fields. You're probably looking for the Go button rather than the Save " +"button." +msgstr "" + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "" +msgstr[1] "" + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "" +msgstr[1] "" + +msgid "Now" +msgstr "" + +msgid "Clock" +msgstr "" + +msgid "Choose a time" +msgstr "" + +msgid "Midnight" +msgstr "" + +msgid "6 a.m." +msgstr "" + +msgid "Noon" +msgstr "" + +msgid "Cancel" +msgstr "" + +msgid "Today" +msgstr "" + +msgid "Calendar" +msgstr "" + +msgid "Yesterday" +msgstr "" + +msgid "Tomorrow" +msgstr "" + +msgid "" +"January February March April May June July August September October November " +"December" +msgstr "" + +msgid "S M T W T F S" +msgstr "" + +msgid "Show" +msgstr "" + +msgid "Hide" +msgstr "" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/lt/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/lt/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..b225f663d4ec37c05d8fe81c6e46d6d2a0da01ba GIT binary patch literal 17033 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/lt/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/lt/LC_MESSAGES/django.po new file mode 100644 index 0000000000..0c93418a63 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/lt/LC_MESSAGES/django.po @@ -0,0 +1,720 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Jannis Leidel , 2011 +# lauris , 2011 +# Matas Dailyda , 2015-2019 +# Nikolajus Krauklis , 2013 +# Simonas Kazlauskas , 2012-2013 +# sirex , 2011 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-01-16 20:42+0100\n" +"PO-Revision-Date: 2019-01-18 10:32+0000\n" +"Last-Translator: Matas Dailyda \n" +"Language-Team: Lithuanian (http://www.transifex.com/django/django/language/" +"lt/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: lt\n" +"Plural-Forms: nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < " +"11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? " +"1 : n % 1 != 0 ? 2: 3);\n" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "Sėkmingai ištrinta %(count)d %(items)s." + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "Ištrinti %(name)s negalima" + +msgid "Are you sure?" +msgstr "Ar esate tikras?" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "Ištrinti pasirinktus %(verbose_name_plural)s " + +msgid "Administration" +msgstr "Administravimas" + +msgid "All" +msgstr "Visi" + +msgid "Yes" +msgstr "Taip" + +msgid "No" +msgstr "Ne" + +msgid "Unknown" +msgstr "Nežinomas" + +msgid "Any date" +msgstr "Betkokia data" + +msgid "Today" +msgstr "Šiandien" + +msgid "Past 7 days" +msgstr "Paskutinės 7 dienos" + +msgid "This month" +msgstr "Šį mėnesį" + +msgid "This year" +msgstr "Šiais metais" + +msgid "No date" +msgstr "Nėra datos" + +msgid "Has date" +msgstr "Turi datą" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" +"Prašome įvesti tinkamą personalo paskyros %(username)s ir slaptažodį. " +"Atminkite, kad abu laukeliai yra jautrūs raidžių dydžiui." + +msgid "Action:" +msgstr "Veiksmas:" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "Pridėti dar viena %(verbose_name)s" + +msgid "Remove" +msgstr "Pašalinti" + +msgid "Addition" +msgstr "Pridėjimas" + +msgid "Change" +msgstr "Pakeisti" + +msgid "Deletion" +msgstr "Pašalinimas" + +msgid "action time" +msgstr "veiksmo laikas" + +msgid "user" +msgstr "vartotojas" + +msgid "content type" +msgstr "turinio tipas" + +msgid "object id" +msgstr "objekto id" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/library/functions.html#repr) +msgid "object repr" +msgstr "objekto repr" + +msgid "action flag" +msgstr "veiksmo žymė" + +msgid "change message" +msgstr "pakeisti žinutę" + +msgid "log entry" +msgstr "log įrašas" + +msgid "log entries" +msgstr "log įrašai" + +#, python-format +msgid "Added \"%(object)s\"." +msgstr "„%(object)s“ pridėti." + +#, python-format +msgid "Changed \"%(object)s\" - %(changes)s" +msgstr "Pakeisti „%(object)s“ - %(changes)s" + +#, python-format +msgid "Deleted \"%(object)s.\"" +msgstr "„%(object)s“ ištrinti." + +msgid "LogEntry Object" +msgstr "LogEntry objektas" + +#, python-brace-format +msgid "Added {name} \"{object}\"." +msgstr "Pridėtas {name} \"{object}\"." + +msgid "Added." +msgstr "Pridėta." + +msgid "and" +msgstr "ir" + +#, python-brace-format +msgid "Changed {fields} for {name} \"{object}\"." +msgstr "Pakeisti {fields} arba {name} \"{object}\"." + +#, python-brace-format +msgid "Changed {fields}." +msgstr "Pakeisti {fields}." + +#, python-brace-format +msgid "Deleted {name} \"{object}\"." +msgstr "Pašalintas {name} \"{object}\"." + +msgid "No fields changed." +msgstr "Nei vienas laukas nepakeistas" + +msgid "None" +msgstr "None" + +msgid "" +"Hold down \"Control\", or \"Command\" on a Mac, to select more than one." +msgstr "" +"Nuspauskite \"Control\", arba \"Command\" Mac kompiuteriuose, kad pasirinkti " +"daugiau nei vieną." + +#, python-brace-format +msgid "The {name} \"{obj}\" was added successfully." +msgstr "{name} \"{obj}\" buvo sėkmingai pridėtas." + +msgid "You may edit it again below." +msgstr "Galite tai dar kartą redaguoti žemiau." + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was added successfully. You may add another {name} " +"below." +msgstr "" +"{name} \"{obj}\" buvo sėkmingai pridėtas. Galite pridėti kitą {name} žemiau." + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was changed successfully. You may edit it again below." +msgstr "{name} \"{obj}\" buvo sėkmingai pakeistas. Galite jį koreguoti žemiau." + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was added successfully. You may edit it again below." +msgstr "" +"{name} \"{obj}\" buvo sėkmingai pridėtas. Galite jį vėl redaguoti žemiau." + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was changed successfully. You may add another {name} " +"below." +msgstr "" +"{name} \"{obj}\" buvo sėkmingai pakeistas. Galite pridėti kitą {name} žemiau." + +#, python-brace-format +msgid "The {name} \"{obj}\" was changed successfully." +msgstr "{name} \"{obj}\" buvo sėkmingai pakeistas." + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" +"Įrašai turi būti pasirinkti, kad būtų galima atlikti veiksmus. Įrašai " +"pakeisti nebuvo." + +msgid "No action selected." +msgstr "Veiksmai atlikti nebuvo." + +#, python-format +msgid "The %(name)s \"%(obj)s\" was deleted successfully." +msgstr "%(name)s \"%(obj)s\" sėkmingai ištrintas." + +#, python-format +msgid "%(name)s with ID \"%(key)s\" doesn't exist. Perhaps it was deleted?" +msgstr "%(name)s su ID \"%(key)s\" neegzistuoja. Gal tai buvo ištrinta?" + +#, python-format +msgid "Add %s" +msgstr "Pridėti %s" + +#, python-format +msgid "Change %s" +msgstr "Pakeisti %s" + +#, python-format +msgid "View %s" +msgstr "Peržiūrėti %s" + +msgid "Database error" +msgstr "Duomenų bazės klaida" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "%(count)s %(name)s sėkmingai pakeistas." +msgstr[1] "%(count)s %(name)s sėkmingai pakeisti." +msgstr[2] "%(count)s %(name)s " +msgstr[3] "%(count)s %(name)s " + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "%(total_count)s pasirinktas" +msgstr[1] "%(total_count)s pasirinkti" +msgstr[2] "Visi %(total_count)s pasirinkti" +msgstr[3] "Visi %(total_count)s pasirinkti" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "0 iš %(cnt)s pasirinkta" + +#, python-format +msgid "Change history: %s" +msgstr "Pakeitimų istorija: %s" + +#. Translators: Model verbose name and instance representation, +#. suitable to be an item in a list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "%(class_name)s %(instance)s" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" +"%(class_name)s %(instance)s šalinimas reikalautų pašalinti apsaugotus " +"susijusius objektus: %(related_objects)s" + +msgid "Django site admin" +msgstr "Django tinklalapio administravimas" + +msgid "Django administration" +msgstr "Django administravimas" + +msgid "Site administration" +msgstr "Tinklalapio administravimas" + +msgid "Log in" +msgstr "Prisijungti" + +#, python-format +msgid "%(app)s administration" +msgstr "%(app)s administravimas" + +msgid "Page not found" +msgstr "Puslapis nerastas" + +msgid "We're sorry, but the requested page could not be found." +msgstr "Atsiprašome, bet prašytas puslapis nerastas." + +msgid "Home" +msgstr "Pradinis" + +msgid "Server error" +msgstr "Serverio klaida" + +msgid "Server error (500)" +msgstr "Serverio klaida (500)" + +msgid "Server Error (500)" +msgstr "Serverio klaida (500)" + +msgid "" +"There's been an error. It's been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" +"Netikėta klaida. Apie ją buvo pranešta administratoriams el. paštu ir ji " +"turėtų būti greitai sutvarkyta. Dėkui už kantrybę." + +msgid "Run the selected action" +msgstr "Vykdyti pasirinktus veiksmus" + +msgid "Go" +msgstr "Vykdyti" + +msgid "Click here to select the objects across all pages" +msgstr "Spauskite čia norėdami pasirinkti visus įrašus" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "Pasirinkti visus %(total_count)s %(module_name)s" + +msgid "Clear selection" +msgstr "Atstatyti į pradinę būseną" + +msgid "" +"First, enter a username and password. Then, you'll be able to edit more user " +"options." +msgstr "" +"Pirmiausia įveskite naudotojo vardą ir slaptažodį. Tada galėsite keisti " +"daugiau naudotojo nustatymų." + +msgid "Enter a username and password." +msgstr "Įveskite naudotojo vardą ir slaptažodį." + +msgid "Change password" +msgstr "Keisti slaptažodį" + +msgid "Please correct the error below." +msgstr "Prašome ištaisyti žemiau esančią klaidą." + +msgid "Please correct the errors below." +msgstr "Ištaisykite žemiau esančias klaidas." + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "Įveskite naują slaptažodį naudotojui %(username)s." + +msgid "Welcome," +msgstr "Sveiki," + +msgid "View site" +msgstr "Peržiūrėti tinklalapį" + +msgid "Documentation" +msgstr "Dokumentacija" + +msgid "Log out" +msgstr "Atsijungti" + +#, python-format +msgid "Add %(name)s" +msgstr "Naujas %(name)s" + +msgid "History" +msgstr "Istorija" + +msgid "View on site" +msgstr "Matyti tinklalapyje" + +msgid "Filter" +msgstr "Filtras" + +msgid "Remove from sorting" +msgstr "Pašalinti iš rikiavimo" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "Rikiavimo prioritetas: %(priority_number)s" + +msgid "Toggle sorting" +msgstr "Perjungti rikiavimą" + +msgid "Delete" +msgstr "Ištrinti" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" +"Trinant %(object_name)s '%(escaped_object)s' turi būti ištrinti ir susiję " +"objektai, bet tavo vartotojas neturi teisių ištrinti šių objektų:" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" +"Ištrinant %(object_name)s '%(escaped_object)s' būtų ištrinti šie apsaugoti " +"ir susiję objektai:" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" +"Ar este tikri, kad norite ištrinti %(object_name)s \"%(escaped_object)s\"? " +"Visi susiję objektai bus ištrinti:" + +msgid "Objects" +msgstr "Objektai" + +msgid "Yes, I'm sure" +msgstr "Taip, esu tikras" + +msgid "No, take me back" +msgstr "Ne, grįžti atgal" + +msgid "Delete multiple objects" +msgstr "Ištrinti kelis objektus" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" +"Ištrinant pasirinktą %(objects_name)s būtų ištrinti susiję objektai, tačiau " +"jūsų vartotojas neturi reikalingų teisių ištrinti šiuos objektų tipus:" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" +"Ištrinant pasirinktus %(objects_name)s būtų ištrinti šie apsaugoti ir susiję " +"objektai:" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" +"Ar esate tikri, kad norite ištrinti pasirinktus %(objects_name)s? Sekantys " +"pasirinkti bei susiję objektai bus ištrinti:" + +msgid "View" +msgstr "Peržiūrėti" + +msgid "Delete?" +msgstr "Ištrinti?" + +#, python-format +msgid " By %(filter_title)s " +msgstr " Pagal %(filter_title)s " + +msgid "Summary" +msgstr "Santrauka" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "%(name)s aplikacijos modeliai" + +msgid "Add" +msgstr "Pridėti" + +msgid "You don't have permission to view or edit anything." +msgstr "Jūs neturite teisių peržiūrai ir redagavimui." + +msgid "Recent actions" +msgstr "Paskutiniai veiksmai" + +msgid "My actions" +msgstr "Mano veiksmai" + +msgid "None available" +msgstr "Nėra prieinamų" + +msgid "Unknown content" +msgstr "Nežinomas turinys" + +msgid "" +"Something's wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" +"Kažkas yra negerai su jūsų duomenų bazės instaliacija. Įsitikink, kad visos " +"reikalingos lentelės sukurtos ir vartotojas turi teises skaityti duomenų " +"bazę." + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" +"Jūs esate prisijungęs kaip %(username)s, bet neturite teisių patekti į šį " +"puslapį. Ar norėtumete prisijungti su kitu vartotoju?" + +msgid "Forgotten your password or username?" +msgstr "Pamiršote slaptažodį ar vartotojo vardą?" + +msgid "Date/time" +msgstr "Data/laikas" + +msgid "User" +msgstr "Naudotojas" + +msgid "Action" +msgstr "Veiksmas" + +msgid "" +"This object doesn't have a change history. It probably wasn't added via this " +"admin site." +msgstr "" +"Šis objektas neturi pakeitimų istorijos. Tikriausiai jis buvo pridėtas ne " +"per administravimo puslapį." + +msgid "Show all" +msgstr "Rodyti visus" + +msgid "Save" +msgstr "Išsaugoti" + +msgid "Popup closing…" +msgstr "Iškylantysis langas užsidaro..." + +msgid "Search" +msgstr "Ieškoti" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "%(counter)s rezultatas" +msgstr[1] "%(counter)s rezultatai" +msgstr[2] "%(counter)s rezultatai" +msgstr[3] "%(counter)s rezultatai" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "%(full_result_count)s iš viso" + +msgid "Save as new" +msgstr "Išsaugoti kaip naują" + +msgid "Save and add another" +msgstr "Išsaugoti ir pridėti naują" + +msgid "Save and continue editing" +msgstr "Išsaugoti ir tęsti redagavimą" + +msgid "Save and view" +msgstr "Išsaugoti ir peržiūrėti" + +msgid "Close" +msgstr "Uždaryti" + +#, python-format +msgid "Change selected %(model)s" +msgstr "Keisti pasirinktus %(model)s" + +#, python-format +msgid "Add another %(model)s" +msgstr "Pridėti dar vieną %(model)s" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "Pašalinti pasirinktus %(model)s" + +msgid "Thanks for spending some quality time with the Web site today." +msgstr "Dėkui už šiandien tinklalapyje turiningai praleistą laiką." + +msgid "Log in again" +msgstr "Prisijungti dar kartą" + +msgid "Password change" +msgstr "Slaptažodžio keitimas" + +msgid "Your password was changed." +msgstr "Jūsų slaptažodis buvo pakeistas." + +msgid "" +"Please enter your old password, for security's sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" +"Saugumo sumetimais įveskite seną slaptažodį ir tada du kartus naują, kad " +"įsitikinti, jog nesuklydote rašydamas" + +msgid "Change my password" +msgstr "Keisti mano slaptažodį" + +msgid "Password reset" +msgstr "Slaptažodžio atstatymas" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "Jūsų slaptažodis buvo išsaugotas. Dabas galite prisijungti." + +msgid "Password reset confirmation" +msgstr "Slaptažodžio atstatymo patvirtinimas" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" +"Įveskite naująjį slaptažodį du kartus, taip užtikrinant, jog nesuklydote " +"rašydami." + +msgid "New password:" +msgstr "Naujasis slaptažodis:" + +msgid "Confirm password:" +msgstr "Slaptažodžio patvirtinimas:" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"Slaptažodžio atstatymo nuoroda buvo negaliojanti, nes ji tikriausiai jau " +"buvo panaudota. Prašykite naujo slaptažodžio pakeitimo." + +msgid "" +"We've emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" +"Jei egzistuoja vartotojas su jūsų įvestu elektroninio pašto adresu, " +"išsiųsime jums slaptažodžio nustatymo instrukcijas . Instrukcijas turėtumėte " +"gauti netrukus." + +msgid "" +"If you don't receive an email, please make sure you've entered the address " +"you registered with, and check your spam folder." +msgstr "" +"Jei el. laiško negavote, prašome įsitikinti ar įvedėte tą el. pašto adresą " +"kuriuo registravotės ir patikrinkite savo šlamšto aplanką." + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" +"Jūs gaunate šį laišką nes prašėte paskyros slaptažodžio atkūrimo " +"%(site_name)s svetainėje." + +msgid "Please go to the following page and choose a new password:" +msgstr "Prašome eiti į šį puslapį ir pasirinkti naują slaptažodį:" + +msgid "Your username, in case you've forgotten:" +msgstr "Jūsų naudotojo vardas, jei netyčia jį užmiršote:" + +msgid "Thanks for using our site!" +msgstr "Dėkui, kad naudojatės mūsų tinklalapiu!" + +#, python-format +msgid "The %(site_name)s team" +msgstr "%(site_name)s komanda" + +msgid "" +"Forgotten your password? Enter your email address below, and we'll email " +"instructions for setting a new one." +msgstr "" +"Pamiršote slaptažodį? Įveskite savo el. pašto adresą ir mes išsiųsime laišką " +"su instrukcijomis kaip nustatyti naują slaptažodį." + +msgid "Email address:" +msgstr "El. pašto adresas:" + +msgid "Reset my password" +msgstr "Atstatyti slaptažodį" + +msgid "All dates" +msgstr "Visos datos" + +#, python-format +msgid "Select %s" +msgstr "Pasirinkti %s" + +#, python-format +msgid "Select %s to change" +msgstr "Pasirinkite %s kurį norite keisti" + +#, python-format +msgid "Select %s to view" +msgstr "Pasirinkti %s peržiūrai" + +msgid "Date:" +msgstr "Data:" + +msgid "Time:" +msgstr "Laikas:" + +msgid "Lookup" +msgstr "Paieška" + +msgid "Currently:" +msgstr "Šiuo metu:" + +msgid "Change:" +msgstr "Pakeisti:" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/lt/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/lt/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..77922d36b36361a7b19065faf5983f39435c9102 GIT binary patch literal 5183 zcmd6rO^h5z6~_zWK-dsN0){|LcyaK@;+@%<_4;ep>#+XVjn`g#wL3UOaH*NDovEGf zu2EI>tVdXiFXjLO36W?q0+ba84iQQK@gWfmhZ!UglFwX16b?u^Awdotkodpup51Y5 z919GhwAH_^>Q}E`y?XV!XJ30{+Y16^5_Ko)tM3wG4*bG>xS(9xCd6T|3%&>ZVa}g} z_oMx*yxj-ikM{5L_8)S-4nBnbKj(Za=Y1GFg8qlW_klaXPl9{EJ>V?(02t-$fIRLg;+$-Scz@LCsa66Rp^E$}#A;@~$ApXQ9 zT-eU%K(_PCAnSP^d>*_8ejO}g5LAj^gRJj2;1qZRM}4{kOdR0F3xB`X2{B0v-S#d$$nt;AON|;Cz@O{sgieZ-Q*cUqFb6zk^UE zwqY}v+d=Ms6nq$b5_|+anDc4ygJ^#q+zy7|A@Gaf3GhcCmL}fH`H!6ULzw#?0@6nMeiU^N>JzA3K9(VkGpI=m+q@T*_v&#}wt>t3 z45?4}wve~kH(WlA%KPyNZlJ&&X<;8>sbU}M80rDk$57#RF^Wp4aJ?v_a$eYt%B6(* zBtcb&mhJ@_A#F$j$tkw+kCFMd=4OfR1}A(&6sIh9g3NxkvK1AI#P$S7Ao59#7P;~RVYq2jd3amNjfF{P^+q=p_U(R zh3QzQ;#66v>n-wz>Zv-CVTf*$o(yIwij#xqRz;?x(&rG(MsJCoQgs#8lohk8W)o?< zVpfM9?Wc91#Jr5tzWF5Viuoi~VnNz^6W6X-&_S#lO)t(H6XW7lg`PDDNz03+rb#Tx zrjh~s(<$3gmUubE+snfAyBDUKYU((+E48;5?PRMyZ`QvFu0N99!Jar1DXMkzDAI9*heo91R7K5P!a72;MiNWG zlbGtfX}KKj$^vB>Y;%$xE+~+Ne@+kNZEy`T}=2T995k}z`8 zu8fbbt*sS3>(ndi5)T^BRy9DFYZwpx_~^*OnT69^>n|5eBPUJlRSdguG%MuQB|qK{ zrH-dKCaqI``m@#9!jUaGo@+(f!s)nf0_3L(9jR%*X=#N*Ke8AmR)&RHVv*gjlqjw_csP_{;lWwzwkK!VkjS}luF`+ z#C`?ZiKV2`UhTi+aXTkN9bslCW_*7`CM~bU;=tmqTkRDE()X@zKI9&3W$VseUK3(B zaht#z%_^d+ROe8KV|n-t3c>w8%1>9!sL$I;KfAz{KJ^4Z{LLyZ~+*wxta2 zhl)9yAhMjeD4nz*e}z~Hi(pI}i(i(BL-#qY+ESd*wtrpWl_AcW4us}ZBk5o7t&59D z@HUq47BumFpjC|fMVvxelNFlpzvTKqPCaCKKEl=T=SnBt1PN~@4J{L-R-J!cXtO0= zylYJ+g7SN%3>N<%s*-rm_OIVFXWc7haMu4&)j8R2Sl0wU9~Lk@KK_bj%9?^;CRrf-g^If;xSASLO)`!x8eOR zj$$B@DO&iUf;^BO*HsMCmd|S&rzU;;#+C2l3}gvUzj5W;9QWN;*tZ&t+; zyx-;IN4=M+zoFsL%qPBgZ8IP8w=2@sAfer~Rf8?;T`eM)A#rlXNPUMNNYqif<)Yrz zG5(t8&o_rp40yMtG$ufvNm}rkg;akd!X^~cghdVXU{g2+!r5B&H(IPM>Nb4RGIX)q z;wTy;1C^V-$e0b|b(*sNg#m%In?@kdJ07tLJ2Hbbg0D#DlQfD_pUf$X`D0`Apc{, 2011 +# Kostas , 2011 +# Matas Dailyda , 2015-2016 +# Povilas Balzaravičius , 2011 +# Simonas Kazlauskas , 2012 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-05-17 11:50+0200\n" +"PO-Revision-Date: 2017-09-19 16:41+0000\n" +"Last-Translator: Matas Dailyda \n" +"Language-Team: Lithuanian (http://www.transifex.com/django/django/language/" +"lt/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: lt\n" +"Plural-Forms: nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < " +"11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? " +"1 : n % 1 != 0 ? 2: 3);\n" + +#, javascript-format +msgid "Available %s" +msgstr "Galimi %s" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" +"Tai yra sąrašas prieinamų %s. Dėžutėje žemiau pažymėdami keletą iš jų ir " +"paspausdami „Pasirinkti“ rodyklę tarp dviejų dėžučių jūs galite pasirinkti " +"keletą iš jų." + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "Rašykite į šią dėžutę, kad išfiltruotumėte prieinamų %s sąrašą." + +msgid "Filter" +msgstr "Filtras" + +msgid "Choose all" +msgstr "Pasirinkti visus" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "Spustelėkite, kad iš karto pasirinktumėte visus %s." + +msgid "Choose" +msgstr "Pasirinkti" + +msgid "Remove" +msgstr "Pašalinti" + +#, javascript-format +msgid "Chosen %s" +msgstr "Pasirinktas %s" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" +"Tai yra sąrašas pasirinktų %s. Dėžutėje žemiau pažymėdami keletą iš jų ir " +"paspausdami „Pašalinti“ rodyklę tarp dviejų dėžučių jūs galite pašalinti " +"keletą iš jų." + +msgid "Remove all" +msgstr "Pašalinti visus" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "Spustelėkite, kad iš karto pašalintumėte visus pasirinktus %s." + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "pasirinktas %(sel)s iš %(cnt)s" +msgstr[1] "pasirinkti %(sel)s iš %(cnt)s" +msgstr[2] "pasirinkti %(sel)s iš %(cnt)s" +msgstr[3] "pasirinkti %(sel)s iš %(cnt)s" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" +"Turite neišsaugotų pakeitimų. Jeigu tęsite, Jūsų pakeitimai bus prarasti." + +msgid "" +"You have selected an action, but you haven't saved your changes to " +"individual fields yet. Please click OK to save. You'll need to re-run the " +"action." +msgstr "" +"Pasirinkote veiksmą, bet dar neesate išsaugoję pakeitimų. Nuspauskite Gerai " +"norėdami išsaugoti. Jus reikės iš naujo paleisti veiksmą." + +msgid "" +"You have selected an action, and you haven't made any changes on individual " +"fields. You're probably looking for the Go button rather than the Save " +"button." +msgstr "" +"Pasirinkote veiksmą, bet neesate pakeitę laukų reikšmių. Jūs greičiausiai " +"ieškote mygtuko Vykdyti, o ne mygtuko Saugoti." + +msgid "Now" +msgstr "Dabar" + +msgid "Midnight" +msgstr "Vidurnaktis" + +msgid "6 a.m." +msgstr "6 a.m." + +msgid "Noon" +msgstr "Vidurdienis" + +msgid "6 p.m." +msgstr "18:00" + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "" +"Pastaba: Jūsų laikrodis rodo %s valanda daugiau nei serverio laikrodis." +msgstr[1] "" +"Pastaba: Jūsų laikrodis rodo %s valandomis daugiau nei serverio laikrodis." +msgstr[2] "" +"Pastaba: Jūsų laikrodis rodo %s valandų daugiau nei serverio laikrodis." +msgstr[3] "" +"Pastaba: Jūsų laikrodis rodo %s valandų daugiau nei serverio laikrodis." + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "" +"Pastaba: Jūsų laikrodis rodo %s valanda mažiau nei serverio laikrodis." +msgstr[1] "" +"Pastaba: Jūsų laikrodis rodo %s valandomis mažiau nei serverio laikrodis." +msgstr[2] "" +"Pastaba: Jūsų laikrodis rodo %s valandų mažiau nei serverio laikrodis." +msgstr[3] "" +"Pastaba: Jūsų laikrodis rodo %s valandų mažiau nei serverio laikrodis." + +msgid "Choose a Time" +msgstr "Pasirinkite laiką" + +msgid "Choose a time" +msgstr "Pasirinkite laiką" + +msgid "Cancel" +msgstr "Atšaukti" + +msgid "Today" +msgstr "Šiandien" + +msgid "Choose a Date" +msgstr "Pasirinkite datą" + +msgid "Yesterday" +msgstr "Vakar" + +msgid "Tomorrow" +msgstr "Rytoj" + +msgid "January" +msgstr "Sausis" + +msgid "February" +msgstr "Vasaris" + +msgid "March" +msgstr "Kovas" + +msgid "April" +msgstr "Balandis" + +msgid "May" +msgstr "Gegužė" + +msgid "June" +msgstr "Birželis" + +msgid "July" +msgstr "Liepa" + +msgid "August" +msgstr "Rugpjūtis" + +msgid "September" +msgstr "Rugsėjis" + +msgid "October" +msgstr "Spalis" + +msgid "November" +msgstr "Lapkritis" + +msgid "December" +msgstr "Gruodis" + +msgctxt "one letter Sunday" +msgid "S" +msgstr "S" + +msgctxt "one letter Monday" +msgid "M" +msgstr "P" + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "A" + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "T" + +msgctxt "one letter Thursday" +msgid "T" +msgstr "K" + +msgctxt "one letter Friday" +msgid "F" +msgstr "Pn" + +msgctxt "one letter Saturday" +msgid "S" +msgstr "Š" + +msgid "Show" +msgstr "Parodyti" + +msgid "Hide" +msgstr "Slėpti" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/lv/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/lv/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..15ac7ec8ab746b4419cb2344cb8ae2bfdec5bb3a GIT binary patch literal 18547 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, 2011 +# Edgars Voroboks , 2023-2024 +# Edgars Voroboks , 2017,2022 +# Edgars Voroboks , 2018 +# Jannis Leidel , 2011 +# Māris Nartišs , 2016 +# Edgars Voroboks , 2019-2021 +# peterisb , 2016 +# Pēteris Caune, 2023 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-05-22 11:46-0300\n" +"PO-Revision-Date: 2024-08-07 07:05+0000\n" +"Last-Translator: Edgars Voroboks , 2023-2024\n" +"Language-Team: Latvian (http://app.transifex.com/django/django/language/" +"lv/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: lv\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : " +"2);\n" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "Izdzēst izvēlēto %(verbose_name_plural)s" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "Veiksmīgi izdzēsti %(count)d %(items)s." + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "Nevar izdzēst %(name)s" + +msgid "Are you sure?" +msgstr "Vai esat pārliecināts?" + +msgid "Administration" +msgstr "Administrācija" + +msgid "All" +msgstr "Visi" + +msgid "Yes" +msgstr "Jā" + +msgid "No" +msgstr "Nē" + +msgid "Unknown" +msgstr "Nezināms" + +msgid "Any date" +msgstr "Jebkurš datums" + +msgid "Today" +msgstr "Šodien" + +msgid "Past 7 days" +msgstr "Pēdējās 7 dienas" + +msgid "This month" +msgstr "Šomēnes" + +msgid "This year" +msgstr "Šogad" + +msgid "No date" +msgstr "Nav datums" + +msgid "Has date" +msgstr "Ir datums" + +msgid "Empty" +msgstr "Tukšs" + +msgid "Not empty" +msgstr "Nav tukšs" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" +"Lūdzu ievadi korektu %(username)s un paroli personāla kontam. Ņem vērā, ka " +"abi ievades lauki ir reģistrjutīgi." + +msgid "Action:" +msgstr "Darbība:" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "Pievienot vēl %(verbose_name)s" + +msgid "Remove" +msgstr "Dzēst" + +msgid "Addition" +msgstr "Pievienošana" + +msgid "Change" +msgstr "Izmainīt" + +msgid "Deletion" +msgstr "Dzēšana" + +msgid "action time" +msgstr "darbības laiks" + +msgid "user" +msgstr "lietotājs" + +msgid "content type" +msgstr "satura tips" + +msgid "object id" +msgstr "objekta id" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/library/functions.html#repr) +msgid "object repr" +msgstr "objekta attēlojums" + +msgid "action flag" +msgstr "darbības atzīme" + +msgid "change message" +msgstr "izmaiņas teksts" + +msgid "log entry" +msgstr "žurnāla ieraksts" + +msgid "log entries" +msgstr "žurnāla ieraksti" + +#, python-format +msgid "Added “%(object)s”." +msgstr "Pievienots “%(object)s”." + +#, python-format +msgid "Changed “%(object)s” — %(changes)s" +msgstr "Labots “%(object)s” — %(changes)s" + +#, python-format +msgid "Deleted “%(object)s.”" +msgstr "Dzēsts “%(object)s.”" + +msgid "LogEntry Object" +msgstr "LogEntry Objekts" + +#, python-brace-format +msgid "Added {name} “{object}”." +msgstr "Pievienots {name} “{object}”." + +msgid "Added." +msgstr "Pievienots." + +msgid "and" +msgstr "un" + +#, python-brace-format +msgid "Changed {fields} for {name} “{object}”." +msgstr "Mainīti {fields} priekš {name} “{object}”." + +#, python-brace-format +msgid "Changed {fields}." +msgstr "Mainīts {fields}." + +#, python-brace-format +msgid "Deleted {name} “{object}”." +msgstr "Dzēsts {name} “{object}”." + +msgid "No fields changed." +msgstr "Neviens lauks nav mainīts." + +msgid "None" +msgstr "nekas" + +msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." +msgstr "" +"Turiet nospiestu “Control”, vai “Command” uz Mac, lai iezīmētu vairāk par " +"vienu." + +msgid "Select this object for an action - {}" +msgstr "Atzīmējiet šo objektu darbībai - {}" + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully." +msgstr "{name} “{obj}” veiksmīgi pievienots." + +msgid "You may edit it again below." +msgstr "Jūs varat to atkal labot zemāk. " + +#, python-brace-format +msgid "" +"The {name} “{obj}” was added successfully. You may add another {name} below." +msgstr "{name} “{obj}” veiksmīgi pievienots. Zemāk varat pievienot vēl {name}." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may edit it again below." +msgstr "{name} “{obj}” tika veiksmīgi mainīts. Zemāk varat to labot vēlreiz." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may add another {name} " +"below." +msgstr "" +"{name} “{obj}” tika veiksmīgi mainīts. Zemāk varat pievienot vēl {name}." + +#, python-brace-format +msgid "The {name} “{obj}” was changed successfully." +msgstr "{name} “{obj}” tika veiksmīgi mainīts." + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" +"Vienumi ir jāatlasa, lai ar tiem veiktu darbības. Neviens vienums nav " +"mainīts." + +msgid "No action selected." +msgstr "Nav izvēlēta darbība." + +#, python-format +msgid "The %(name)s “%(obj)s” was deleted successfully." +msgstr "%(name)s “%(obj)s” veiksmīgi dzēsts." + +#, python-format +msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" +msgstr "%(name)s ar ID “%(key)s” neeksistē. Varbūt tas ir dzēsts?" + +#, python-format +msgid "Add %s" +msgstr "Pievienot %s" + +#, python-format +msgid "Change %s" +msgstr "Labot %s" + +#, python-format +msgid "View %s" +msgstr "Apskatīt %s" + +msgid "Database error" +msgstr "Datubāzes kļūda" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "%(count)s %(name)s tika veiksmīgi mainīti." +msgstr[1] "%(count)s %(name)s tika veiksmīgi mainīts." +msgstr[2] "%(count)s %(name)s tika veiksmīgi mainīti." + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "%(total_count)s izvēlēti" +msgstr[1] "%(total_count)s izvēlēts" +msgstr[2] "%(total_count)s izvēlēti" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "0 no %(cnt)s izvēlēti" + +#, python-format +msgid "Change history: %s" +msgstr "Izmaiņu vēsture: %s" + +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "%(class_name)s %(instance)s" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" +"%(class_name)s %(instance)s dzēšanai ir nepieciešams izdzēst sekojošus " +"aizsargātus saistītos objektus: %(related_objects)s" + +msgid "Django site admin" +msgstr "Django administrācijas lapa" + +msgid "Django administration" +msgstr "Django administrācija" + +msgid "Site administration" +msgstr "Lapas administrācija" + +msgid "Log in" +msgstr "Pieslēgties" + +#, python-format +msgid "%(app)s administration" +msgstr "%(app)s administrācija" + +msgid "Page not found" +msgstr "Lapa nav atrasta" + +msgid "We’re sorry, but the requested page could not be found." +msgstr "Atvainojiet, pieprasītā lapa neeksistē." + +msgid "Home" +msgstr "Sākums" + +msgid "Server error" +msgstr "Servera kļūda" + +msgid "Server error (500)" +msgstr "Servera kļūda (500)" + +msgid "Server Error (500)" +msgstr "Servera kļūda (500)" + +msgid "" +"There’s been an error. It’s been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" +"Notika kļūda. Lapas administratoriem ir nosūtīts e-pasts un kļūda tuvākajā " +"laikā tiks novērsta. Paldies par pacietību." + +msgid "Run the selected action" +msgstr "Izpildīt izvēlēto darbību" + +msgid "Go" +msgstr "Aiziet!" + +msgid "Click here to select the objects across all pages" +msgstr "Spiest šeit, lai iezīmētu objektus no visām lapām" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "Izvēlēties visus %(total_count)s %(module_name)s" + +msgid "Clear selection" +msgstr "Atcelt iezīmēto" + +msgid "Breadcrumbs" +msgstr "Atpakaļceļi" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "Modeļi %(name)s lietotnē" + +msgid "Add" +msgstr "Pievienot" + +msgid "View" +msgstr "Apskatīt" + +msgid "You don’t have permission to view or edit anything." +msgstr "Jums nav tiesību neko skatīt vai labot." + +msgid "" +"First, enter a username and password. Then, you’ll be able to edit more user " +"options." +msgstr "" +"Vispirms ievadiet lietotāja vārdu un paroli. Tad varēsiet labot pārējos " +"lietotāja uzstādījumus." + +msgid "Enter a username and password." +msgstr "Ievadi lietotājvārdu un paroli." + +msgid "Change password" +msgstr "Paroles maiņa" + +msgid "Set password" +msgstr "Iestatīt paroli" + +msgid "Please correct the error below." +msgid_plural "Please correct the errors below." +msgstr[0] "Lūdzu, izlabojiet zemāk norādītās kļūdas." +msgstr[1] "Lūdzu, izlabojiet zemāk norādīto kļūdu." +msgstr[2] "Lūdzu, izlabojiet zemāk norādītās kļūdas." + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "Ievadiet jaunu paroli lietotājam %(username)s." + +msgid "" +"This action will enable password-based authentication for " +"this user." +msgstr "" +"Šī darbība šim lietotājam iespējos paroles bāzētu " +"autentifikāciju." + +msgid "Disable password-based authentication" +msgstr "Atspējot paroles bāzētu autentifikāciju" + +msgid "Enable password-based authentication" +msgstr "Iespējot paroles bāzētu autentifikāciju" + +msgid "Skip to main content" +msgstr "Pāriet uz galveno saturu" + +msgid "Welcome," +msgstr "Sveicināti," + +msgid "View site" +msgstr "Apskatīt lapu" + +msgid "Documentation" +msgstr "Dokumentācija" + +msgid "Log out" +msgstr "Atslēgties" + +#, python-format +msgid "Add %(name)s" +msgstr "Pievienot %(name)s" + +msgid "History" +msgstr "Vēsture" + +msgid "View on site" +msgstr "Apskatīt lapā" + +msgid "Filter" +msgstr "Filtrs" + +msgid "Hide counts" +msgstr "Slēpt skaitu" + +msgid "Show counts" +msgstr "Rādīt skaitu" + +msgid "Clear all filters" +msgstr "Notīrīt visus filtrus" + +msgid "Remove from sorting" +msgstr "Izņemt no kārtošanas" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "Kārtošanas prioritāte: %(priority_number)s" + +msgid "Toggle sorting" +msgstr "Pārslēgt kārtošanu" + +msgid "Toggle theme (current theme: auto)" +msgstr "Pārslēgt motīvu (pašreizējais motīvs: automātisks)" + +msgid "Toggle theme (current theme: light)" +msgstr "Pārslēgt motīvu (pašreizējais motīvs: gaišs)" + +msgid "Toggle theme (current theme: dark)" +msgstr "Pārslēgt motīvu (pašreizējais motīvs: tumšs)" + +msgid "Delete" +msgstr "Dzēst" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" +"Izdzēšot objektu %(object_name)s '%(escaped_object)s', tiks dzēsti visi " +"saistītie objekti, bet jums nav tiesību dzēst sekojošus objektu tipus:" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" +"%(object_name)s '%(escaped_object)s' dzēšanai ir nepieciešams izdzēst " +"sekojošus aizsargātus saistītos objektus:" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" +"Vai esat pārliecināts, ka vēlaties dzēst %(object_name)s " +"\"%(escaped_object)s\"? Tiks dzēsti arī sekojoši saistītie objekti:" + +msgid "Objects" +msgstr "Objekti" + +msgid "Yes, I’m sure" +msgstr "Jā, esmu pārliecināts" + +msgid "No, take me back" +msgstr "Nē, ved mani atpakaļ" + +msgid "Delete multiple objects" +msgstr "Dzēst vairākus objektus" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" +"Izdzēšot izvēlēto %(objects_name)s, tiks dzēsti visi saistītie objekti, bet " +"jums nav tiesību dzēst sekojošus objektu tipus:" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" +"Izvēlēto %(objects_name)s objektu dzēšanai ir nepieciešams izdzēst sekojošus " +"aizsargātus saistītos objektus:" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" +"Vai esat pārliecināts, ka vēlaties dzēst izvēlētos %(objects_name)s " +"objektus? Visi sekojošie objekti un tiem piesaistītie objekti tiks izdzēsti:" + +msgid "Delete?" +msgstr "Dzēst?" + +#, python-format +msgid " By %(filter_title)s " +msgstr " Pēc %(filter_title)s " + +msgid "Summary" +msgstr "Kopsavilkums" + +msgid "Recent actions" +msgstr "Nesenās darbības" + +msgid "My actions" +msgstr "Manas darbības" + +msgid "None available" +msgstr "Nav pieejams" + +msgid "Added:" +msgstr "Pievienots:" + +msgid "Changed:" +msgstr "Mainīts:" + +msgid "Deleted:" +msgstr "Izdzēsts:" + +msgid "Unknown content" +msgstr "Nezināms saturs" + +msgid "" +"Something’s wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" +"Problēma ar datubāzes instalāciju. Pārliecinieties, ka attiecīgās tabulas ir " +"izveidotas un attiecīgajam lietotājam ir tiesības tai piekļūt." + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" +"Jūs esat autentificējies kā %(username)s, bet jums nav tiesību piekļūt šai " +"lapai. Vai vēlaties pieteikties citā kontā?" + +msgid "Forgotten your password or username?" +msgstr "Aizmirsi paroli vai lietotājvārdu?" + +msgid "Toggle navigation" +msgstr "Pārslēgt navigāciju" + +msgid "Sidebar" +msgstr "Sānjosla" + +msgid "Start typing to filter…" +msgstr "Sāciet rakstīt, lai atlasītu…" + +msgid "Filter navigation items" +msgstr "Atlasīt navigācijas vienības" + +msgid "Date/time" +msgstr "Datums/laiks" + +msgid "User" +msgstr "Lietotājs" + +msgid "Action" +msgstr "Darbība" + +msgid "entry" +msgid_plural "entries" +msgstr[0] "ieraksti" +msgstr[1] "ieraksts" +msgstr[2] "ieraksti" + +msgid "" +"This object doesn’t have a change history. It probably wasn’t added via this " +"admin site." +msgstr "" +"Objektam nav izmaiņu vēstures. Tas visdrīzāk netika pievienots, izmantojot " +"šo administrācijas rīku." + +msgid "Show all" +msgstr "Rādīt visu" + +msgid "Save" +msgstr "Saglabāt" + +msgid "Popup closing…" +msgstr "Logs aizveras..." + +msgid "Search" +msgstr "Meklēt" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "%(counter)s rezultāti" +msgstr[1] "%(counter)s rezultāts" +msgstr[2] "%(counter)s rezultāti" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "kopā - %(full_result_count)s" + +msgid "Save as new" +msgstr "Saglabāt kā jaunu" + +msgid "Save and add another" +msgstr "Saglabāt un pievienot vēl vienu" + +msgid "Save and continue editing" +msgstr "Saglabāt un turpināt labošanu" + +msgid "Save and view" +msgstr "Saglabāt un apskatīt" + +msgid "Close" +msgstr "Aizvērt" + +#, python-format +msgid "Change selected %(model)s" +msgstr "Mainīt izvēlēto %(model)s" + +#, python-format +msgid "Add another %(model)s" +msgstr "Pievienot citu %(model)s" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "Dzēst izvēlēto %(model)s" + +#, python-format +msgid "View selected %(model)s" +msgstr "Apskatīt atzīmētos %(model)s" + +msgid "Thanks for spending some quality time with the web site today." +msgstr "Paldies, ka šodien vietnei veltījāt kvalitatīvu laiku." + +msgid "Log in again" +msgstr "Pieslēgties vēlreiz" + +msgid "Password change" +msgstr "Paroles maiņa" + +msgid "Your password was changed." +msgstr "Jūsu parole tika nomainīta." + +msgid "" +"Please enter your old password, for security’s sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" +"Drošības nolūkos ievadiet veco paroli un pēc tam divreiz jauno paroli, lai " +"mēs varētu pārbaudīt, ka tā ir ievadīta pareizi." + +msgid "Change my password" +msgstr "Nomainīt manu paroli" + +msgid "Password reset" +msgstr "Paroles atiestatīšana" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "Jūsu parole ir iestatīta. Varat pieslēgties." + +msgid "Password reset confirmation" +msgstr "Paroles atiestatīšanas apstiprinājums" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" +"Lūdzu ievadiet jauno paroli divreiz, lai varētu pārbaudīt, ka tā ir " +"uzrakstīta pareizi." + +msgid "New password:" +msgstr "Jaunā parole:" + +msgid "Confirm password:" +msgstr "Apstiprināt paroli:" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"Paroles atiestatīšanas saite bija nekorekta, iespējams, tā jau ir izmantota. " +"Lūdzu pieprasiet paroles pārstatīšanu vēlreiz." + +msgid "" +"We’ve emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" +"Ja sistēmā ir konts ar jūsu e-pasta adresi, tad mēs jums tikko nosūtījām e-" +"pasta ziņojumu ar paroles iestatīšanas instrukciju. Jums to tūlīt vajadzētu " +"saņemt." + +msgid "" +"If you don’t receive an email, please make sure you’ve entered the address " +"you registered with, and check your spam folder." +msgstr "" +"Ja nesaņemat e-pastu, lūdzu, pārliecinieties, vai esat ievadījis reģistrētu " +"adresi un pārbaudiet savu mēstuļu mapi." + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" +"Jūs saņemat šo e-pasta ziņojumu, jo pieprasījāt atiestatīt lietotāja konta " +"paroli vietnē %(site_name)s." + +msgid "Please go to the following page and choose a new password:" +msgstr "Lūdzu apmeklējiet sekojošo lapu un ievadiet jaunu paroli:" + +msgid "Your username, in case you’ve forgotten:" +msgstr "Jūsu lietotājvārds, gadījumā ja tas ir aizmirsts:" + +msgid "Thanks for using our site!" +msgstr "Paldies par mūsu lapas lietošanu!" + +#, python-format +msgid "The %(site_name)s team" +msgstr "%(site_name)s komanda" + +msgid "" +"Forgotten your password? Enter your email address below, and we’ll email " +"instructions for setting a new one." +msgstr "" +"Aizmirsāt savu paroli? Ievadiet jūsu e-pasta adresi un jums tiks nosūtīta " +"instrukcija, kā iestatīt jaunu paroli." + +msgid "Email address:" +msgstr "E-pasta adrese:" + +msgid "Reset my password" +msgstr "Paroles atiestatīšana" + +msgid "Select all objects on this page for an action" +msgstr "Atlasiet visus šīs lapas objektus darbībai" + +msgid "All dates" +msgstr "Visi datumi" + +#, python-format +msgid "Select %s" +msgstr "Izvēlēties %s" + +#, python-format +msgid "Select %s to change" +msgstr "Izvēlēties %s, lai izmainītu" + +#, python-format +msgid "Select %s to view" +msgstr "Izvēlēties %s, lai apskatītu" + +msgid "Date:" +msgstr "Datums:" + +msgid "Time:" +msgstr "Laiks:" + +msgid "Lookup" +msgstr "Pārlūkot" + +msgid "Currently:" +msgstr "Valūta:" + +msgid "Change:" +msgstr "Izmaiņa:" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/lv/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/lv/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..e3f9a509d313c3162c9b54cb4fb2d75e36a87713 GIT binary patch literal 6446 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/lv/LC_MESSAGES/djangojs.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/lv/LC_MESSAGES/djangojs.po new file mode 100644 index 0000000000..0f1979a762 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/lv/LC_MESSAGES/djangojs.po @@ -0,0 +1,335 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Edgars Voroboks , 2023 +# Edgars Voroboks , 2017,2022 +# Jannis Leidel , 2011 +# Edgars Voroboks , 2020-2021 +# peterisb , 2016 +# Pēteris Caune, 2023 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-09-18 15:04-0300\n" +"PO-Revision-Date: 2023-12-04 07:59+0000\n" +"Last-Translator: Edgars Voroboks , 2023\n" +"Language-Team: Latvian (http://app.transifex.com/django/django/language/" +"lv/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: lv\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : " +"2);\n" + +#, javascript-format +msgid "Available %s" +msgstr "Pieejams %s" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" +"Šis ir saraksts ar pieejamajiem %s. Tev ir jāizvēlas atbilstošās vērtības " +"atzīmējot izvēlēs zemāk esošajā sarakstā un pēc tam spiežot pogu " +"\"Izvēlēties\", lai pārvietotu starp izvēļu sarakstiem." + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "" +"Raksti šajā logā, lai filtrētu zemāk esošo sarakstu ar pieejamajiem %s." + +msgid "Filter" +msgstr "Filtrs" + +msgid "Choose all" +msgstr "Izvēlēties visu" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "Izvēlies, lai pievienotu visas %s izvēles vienā reizē." + +msgid "Choose" +msgstr "Izvēlies" + +msgid "Remove" +msgstr "Izņemt" + +#, javascript-format +msgid "Chosen %s" +msgstr "Izvēlies %s" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" +"Šis ir saraksts ar izvēlētajiem %s. Tev ir jāizvēlas atbilstošās vērtības " +"atzīmējot izvēlēs zemāk esošajā sarakstā un pēc tam spiežot pogu \"Izņemt\", " +"lai izņemtu no izvēlēto ierakstu saraksta." + +#, javascript-format +msgid "Type into this box to filter down the list of selected %s." +msgstr "Rakstiet šajā laukā, lai filtrētu atlasīto %s sarakstu." + +msgid "Remove all" +msgstr "Izņemt visu" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "Izvēlies, lai izņemtu visas %s izvēles vienā reizē." + +#, javascript-format +msgid "%s selected option not visible" +msgid_plural "%s selected options not visible" +msgstr[0] "%s atlasītās opcijas nav redzamas" +msgstr[1] "%s atlasītā opcija nav redzama" +msgstr[2] "%s atlasītās opcijas nav redzamas" + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "%(sel)s no %(cnt)s izvēlēts" +msgstr[1] "%(sel)s no %(cnt)s izvēlēti" +msgstr[2] "%(sel)s no %(cnt)s izvēlēti" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" +"Jūs neesat saglabājis izmaiņas rediģējamiem laukiem. Ja jūs tagad " +"izpildīsiet izvēlēto darbību, šīs izmaiņas netiks saglabātas." + +msgid "" +"You have selected an action, but you haven’t saved your changes to " +"individual fields yet. Please click OK to save. You’ll need to re-run the " +"action." +msgstr "" +"Jūs esiet izvēlējies veikt darbību, bet neesiet saglabājis veiktās izmaiņas. " +"Lūdzu nospiediet OK, lai saglabātu. Šo darbību jums nāksies izpildīt vēlreiz." + +msgid "" +"You have selected an action, and you haven’t made any changes on individual " +"fields. You’re probably looking for the Go button rather than the Save " +"button." +msgstr "" +"Jūs esiet izvēlējies veikt darbību un neesiet mainījis nevienu lauku. Jūs " +"droši vien meklējiet pogu 'Aiziet' nevis 'Saglabāt'." + +msgid "Now" +msgstr "Tagad" + +msgid "Midnight" +msgstr "Pusnakts" + +msgid "6 a.m." +msgstr "06.00" + +msgid "Noon" +msgstr "Pusdienas laiks" + +msgid "6 p.m." +msgstr "6:00" + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "Piezīme: Tavs laiks ir %s stundas pirms servera laika." +msgstr[1] "Piezīme: Tavs laiks ir %s stundu pirms servera laika." +msgstr[2] "Piezīme: Tavs laiks ir %s stundas pirms servera laika." + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "Piezīme: Tavs laiks ir %s stundas pēc servera laika." +msgstr[1] "Piezīme: Tavs laiks ir %s stundu pēc servera laika." +msgstr[2] "Piezīme: Tavs laiks ir %s stundas pēc servera laika." + +msgid "Choose a Time" +msgstr "Izvēlies laiku" + +msgid "Choose a time" +msgstr "Izvēlieties laiku" + +msgid "Cancel" +msgstr "Atcelt" + +msgid "Today" +msgstr "Šodien" + +msgid "Choose a Date" +msgstr "Izvēlies datumu" + +msgid "Yesterday" +msgstr "Vakar" + +msgid "Tomorrow" +msgstr "Rīt" + +msgid "January" +msgstr "janvāris" + +msgid "February" +msgstr "februāris" + +msgid "March" +msgstr "marts" + +msgid "April" +msgstr "aprīlis" + +msgid "May" +msgstr "maijs" + +msgid "June" +msgstr "jūnijs" + +msgid "July" +msgstr "jūlijs" + +msgid "August" +msgstr "augusts" + +msgid "September" +msgstr "septembris" + +msgid "October" +msgstr "oktobris" + +msgid "November" +msgstr "novembris" + +msgid "December" +msgstr "decembris" + +msgctxt "abbrev. month January" +msgid "Jan" +msgstr "Jan" + +msgctxt "abbrev. month February" +msgid "Feb" +msgstr "Feb" + +msgctxt "abbrev. month March" +msgid "Mar" +msgstr "Mar" + +msgctxt "abbrev. month April" +msgid "Apr" +msgstr "Apr" + +msgctxt "abbrev. month May" +msgid "May" +msgstr "Mai" + +msgctxt "abbrev. month June" +msgid "Jun" +msgstr "Jūn" + +msgctxt "abbrev. month July" +msgid "Jul" +msgstr "Jūl" + +msgctxt "abbrev. month August" +msgid "Aug" +msgstr "Aug" + +msgctxt "abbrev. month September" +msgid "Sep" +msgstr "Sep" + +msgctxt "abbrev. month October" +msgid "Oct" +msgstr "Okt" + +msgctxt "abbrev. month November" +msgid "Nov" +msgstr "Nov" + +msgctxt "abbrev. month December" +msgid "Dec" +msgstr "Dec" + +msgid "Sunday" +msgstr "Svētdiena" + +msgid "Monday" +msgstr "Pirmdiena" + +msgid "Tuesday" +msgstr "Otrdiena" + +msgid "Wednesday" +msgstr "Trešdiena" + +msgid "Thursday" +msgstr "Ceturtdiena" + +msgid "Friday" +msgstr "Piektdiena" + +msgid "Saturday" +msgstr "Sestdiena" + +msgctxt "abbrev. day Sunday" +msgid "Sun" +msgstr "Sv" + +msgctxt "abbrev. day Monday" +msgid "Mon" +msgstr "Pr" + +msgctxt "abbrev. day Tuesday" +msgid "Tue" +msgstr "Ot" + +msgctxt "abbrev. day Wednesday" +msgid "Wed" +msgstr "Tr" + +msgctxt "abbrev. day Thursday" +msgid "Thur" +msgstr "Ce" + +msgctxt "abbrev. day Friday" +msgid "Fri" +msgstr "Pi" + +msgctxt "abbrev. day Saturday" +msgid "Sat" +msgstr "Se" + +msgctxt "one letter Sunday" +msgid "S" +msgstr "Sv" + +msgctxt "one letter Monday" +msgid "M" +msgstr "Pr" + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "O" + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "T" + +msgctxt "one letter Thursday" +msgid "T" +msgstr "C" + +msgctxt "one letter Friday" +msgid "F" +msgstr "Pk" + +msgctxt "one letter Saturday" +msgid "S" +msgstr "Se" + +msgid "Show" +msgstr "Parādīt" + +msgid "Hide" +msgstr "Slēpt" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/mk/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/mk/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..9f4d6e436a2cc003cc086ed3f5d794c99b39b5ff GIT binary patch literal 17948 zcmc(ldyw5_dB z8Ug~As$9#02@s*oRNGDxvSu3~w1fQNw6bd^{j|WdV-MJIMGr>22=YXex=YhK418V+7p!m27 z{0(p@-v1bdWO zXMjJ7=-%uckGeC#w}I~h#rH~(KesO8jiBb`!KL6hi0a&zLH^uczNEsJK=J$6pw{~~ zsChpG#mA38$@!n4);k4e7J>^vt-Bt4CwK#>`*rXZ@blo!;E88C_ov_|z#(w)Sq@>@!fgVjj|3E7RZ#rw051dY0kz)OK=Jp_;Emv`;Jd*qP+|!zfX9OW z0BW7@fa3Ru;ML%(;Bnvzgwyk@LD72@l--{MHUCdQ>2WgNe;K@h^S=V6zgI!=``@6} zJMpd920R(m^XGx6!Yu?bp&J0T?gv51w*l0=E%AI9)Oy?E`CXv=_F?d3a4&cs_yXv` zZ-X`P7vKi4iV+6DuYy|dm!Q^p)7yi5=YisH0VsVBfUxea2E|tn#567s%ATJDCEo<7 z^`8Nyr+uLO<$r3>;o@8mpR}FD7*X=6o3B%%70G4X@sYO(#M&g=w1Ly z-|qn>|3Ji5@%~y+{9g@<-c6wR&w>|&1yFJR3@AEZ0(XE1!DZk|j0KCX3Vs~C4_pcU z43s<<`=GDQp!EBxi1&h``v@q0zW|DlFM*nO02DtjMf^Ib>#u;4r{458x z?pjdmZ3cD!R#1F@8SDqY23mZAqJQEd=X$|+fgZdL%z+h9dVU4Obnc%(@%6^V$PAtX zN{$Vn^gIY^ehFl%yA9NO&w!VLuYlt3Y=VKM-2xEN-Fonkz$&;4Jomlujh&tY|B&;4 z>v8Vq;QcTu`k(6y&+h`4asDzWIerEze$GZ{`Ney{E#Puc{`E+_{!LK&JPdvWdvD6C^~-+4uGfdrSmI5#mP9Rb$5cI z^D>BwxWnN4j=_fs(p8*azQVcR0(XG2^VdPyWow=LZLkiC{x`sPfIkI~ z1y5fW);|N(^<|*^b7RDD5Y@RSLCN(kP;#7%a~uN>GVWm9z!+idVqC#c%*rqI5nuY; z$@nY-R!#SS+o>-;+ZkF%Hv16ceuh5pW_-?$!q>ULJ&d<8b~A7z`&`er>hK#FZ)RM@ z&__0qzkZr=5u?VCouxZ{9%kImc)L#GNB*#hu|A$>z!Mm_lGUL8c%2Zo8YVwZKg&3f zp7dG4K+Q8gzsHs180RoDl-c)SsOG9FKWk28LUF~nHM zxQ-z|)91th_I&~0=P^FR*v7b;v4K%#Jji&2aVDe4IEf)&9A+HPIF+%5A-~gSG2>P{ z3ck8D9t-62`Y6|>pVQKVHuM~Sl(Cg@A48vB#%jiujHem;TpPe*_z8}WWz37$J_+uK z#~+J$FZfo*V~mf)YpWuj1%5CdD<&Uc+{XBQ#-j{<2rKsxBhNUW@du2j82a4B_+7?k zo%qYg{rp8k`9dwJY^mjIg=BHnyZMVUqoW*Ta>aZpU#(R#wS2k6`10GoaB79p3NrJ>QKE<81I{Pa#Bf-JUgjCypmMw zg<49W?UFbU^(|q>mXw=Xxt1w#&#-y5niP_3Ey=mng@T{+X1^~FaW`vXwI0cuGFBT5 zxYaqRf^y!rd0E_vWJtTmUuXWv9M5T z(hKGOd{K3q3LGJ)!o`o}mXW_5QMN8D#!u5zNDpC4;sU>+Du~EVvKUl9RL*Ri~ zOP4-ZPO7DaH9wNsmiW=6Qp{JYcwtx4Xyt&~_-Im9YDksV$!?pA#0hDh`893xdYAcs zR0T1-_T$vRa(6L}SF7aDaLcVNXX`~mG!)x)#Z11yog4+NI^fn7M{DD5U5PsFGrp9J zHA9=6Trsb%SGl)>YF#c3Upjx0PD4pru_RvXYZ6FrS}sj4_6NcrR325?szSb887|jqNh!Epx~@lnbd6PW zOxDd8bE=+LdCF8pIV(aAf>7nQTv6dN#ppR2A;Bz?Ee(>s3}I zi}h+vRk9fvgeSEGC8IRr4NDdYM$?u^6Z6GBzrGxctcB%Zg8E`x)#t7*4-?}Nd}cTk zPs;V0E~2u^xWCq#3C_z~>!a=(wIWqzhLBQXw?@ZDtqHz&&3MX%Ti@ns18#kpzj&`H zMW3#j{=iV%S`4l)qngat#1|7kn8|KsZYi-ZpV@|o%Vk_(uNp@z7A3U1dmXyE6CyePODqVrE=Ek%h-)0m;tw;JX#<1 zSvm`9-{I}gxQ$5`#+pvDF)5a}C0rHwp-Q<3XB9;n*D#fDZ=5#PgXcAaAUM3+MA5M? z0Ou$9^OjQP(pzeOo>mi)U43N4JU2DmwzG(N_!CJd*e!embuO5@EjD zsqSroHSzUAvs>SkR8YEKryk0$NQ##(TGrpcc*PQqAZ+(Sf7O2CZIatGQXW&!<~B9c ze`}kyiG)!bF-<>8XRUNje~rVK7Z7Nnd9%$|fhL^X+D8r|#;nzsX$j^^d9;$Jvr}Y- z2Y>?Qx-E-T61DIla~3-YG#|=q&y~qpW*;0kziB6~wB6@61!H?wELZY1^~{UX<1M9n zaZnpIx2cw?5PsvMh$bV1o>%U)scmNxhYEx0&?1HRSZV zoYJd}Q7t{6TiVy?IPErSNv3F*N7IC23B(ujrLA7O)O=}MrjSPwqx91G!GZ!Zn?W{3 z(FhYV1t~$7Nxodq^?4uTNeyN~vgs2GK#)=Hpa0;ZSOA1m8##C&-hp**(_B@tQRKB4CQapq9YI>C-^osnsbff zO$i%%F^=Vn#M?+X94DUKW;O`}ZgZKm%J=Xv)jo~$>q}cp6igRU*_b+CbJyb_?gmAt zz7&Xt6gROQPVDH$q>#n&d)$pu0IdU*E90R_l}krG!@XrIe1jUTS|O=aF8bU}NmZlA zUj+qH5F1~26FcAx)G~F5kUgkykiewvxjU?)X(FhpxbY`~hUtxIz;Jx@p_TjmjkYxU z!hr}ntWYQqtDI69eJ(#Vgbgh@n*Xjc7INhhJk8o!EAObWu%;e$VNa7#T)^4lz lCX>bhdErL;_|UkuK#u8}FB^Ga)!r#5xOjxAMbJ*!|a z*CeYG11XafmCOhcV!0S?sPy0t-A}i@5sJ5zKh%KqSh30waqxtuR7TQfalnNN;fD&D z;q=({t2ALQq;lGeY8C6a=yyspi4!N7qLRlk(&KR#_98x?OOFVsiW4VpL#3?uF1=Uf zdT&T7+WQRnoVD-sHd@s6UQ->;=Xx)%4_A9Pmk0d34cGQ=Ot$4UwRbJPHQ+DozwpA| z{$;%vF7y4%2l|)2x1Z0vt7%AjH&-&HDjB<686aV+K$iXb{MK@zysf%5-(!z5vou^s zl-|vxEzQd&cu$^OuxO-K8y#4(WNd7#k9Tsk3PZ^)eMHTYz+(!9NMT8F>ypLuuDR-( zbuDR@_Vv$O6JoP>GdddZwd9uClF@TIWXudclC5+4p%E-Lx?erdm7xzaE73l{ir+V9Wj zeCcAp%J=&Lzx0xM&Np^9UThqi-rksO?8hCu-%d8}YwT}4-BI_e|f# z@kC>f=i(lovGmFeBNlqs9T>IP1HcC@4(MAc%N2W8?q+>5NP51-TcQl^U8q+&cc4xiWm~!Ht*)JN4 zv%U$1Lgzcs#v#787`@uvd&!PjM8 zt%aL3rp%Cg5QfPL8xdf7Dgmq=k@XlpDapV-&mTw~k>f+tJMf7hQR{{9OwJKu@AQNe z1s^QT-yyLm5lA16eeiuCa4jZTS~vF{osfh>n@~a2Rj#p1#Gi-wS9BnIK$)Xd0<%e* zM^7|!1zym0qCTiGVPuu(+ESO13h8CaUOhLSV8Wr8anQOYIatsEg5wc*7Rx9d;wi3c z{%hPdZ%Vm03rCM?23Z@|7{7HU+fB8-%Wgc0H=+z(hT}cc6Tw%x7Bb89o$yFHlf16+ zIP+i^MPj#S)4aOZ(mo#G8js1zm=e+~ex_(rhL%x-?zxZSuq2hj*hUc@E+K;-Fb}oc z(zjTXBPdO|#v`V~eYPs6PssVqamZ3#ibeRHsU4W47$BK&^+8+yp1>QV6hM2#q-KSB zWd3Lwfdy>ghjd%%VafE}9Nw;k6R$)qr!f*8r+FHk8;KRH=0Y)igLT>_9-VQI=7IK< z+Io*~-q3uU@Q`<;=V*DZ7yI4w&>7h&jd`|tddJ_mUyfoqj{J)*Er3HL>hjFQ(dkjM|0vMOX;>^3CQZq+zNrruRGX7ldW)Qx ztx`o!PR}X=`FnN|I${84>d@o=C3oFf7tO+92Rl7l|4TCZ4S_&agQorvjgPOub?!gR|>PX{1%5jIGqbX@z>d zzSmu$I@z#J0S@7RHY5M)T!!kWjCHg=*KO4E+_d{QNmP+)T^quwxSGQ&AkS{$>=8< z7T+(0>IryLxmNne&t2mI=|x5~pV2kxqpPySil*LB8Si$csqm=}dW~Omy6Jb2ps;Z6 zp#|qa*Q)fmPjgTE3kqo9+p5>TPM%*6P32Fd)8>tQ&Ed3a6zf~V6m+0awSJdW9Nojh z+yVkt?1@8!IdxJ@Tea_CBIw37$Q^c@dMnMT3X&MYD($(2%+b~$Ng--qjY?DB9m=AT z{c5ynu)8d7P8pa9oh_?lj_HZUb23Sg7QRDXQ^rfp)p#MaE9l7fRGMRHPKu(*#!o_D zHHTOAd73OHTK_;YwWmYRF{Aaw$x$FZttqeLH?LG(oj-fA<{rJ7h~_cAEUF>VY{uFw z8aGt1VO^B06{JyYD5J0wwMWrFP=yM$6oo?C775d}65Tz;gL~|c(k-VCJ-=cZN9gmk z>+A-kEP4?u98Id4!@}tv-)^Q&HjBdVF2%n&6+E|2f{FqkCLkQj`z+kick3B?OCo`I zhAqXR8jnd1ExN7ORHGx8w;Fm33v~Jo*S!8@0jwj5B!AGjl#3cH{$Y4B(4atQCuXj# zRKU~FS6Dap8(X%oCs)E@IE=PoB2^?dxb|WrB&ntiCG_r&j$Vtva4He&U=B0C9B-n@ zw9VnGBQdzflStFPgK73%-4hj8GwPcX6@nfmi6>z%XOtqRs4%a7fr~OR@sM1J5(~pH` zQJJ(V?MQ8wS4CDEOk0N5z!(upW@w+FO(hd&(Nw2^coKv<>dIW@Tns8`qt9CfvlJN% zp+taIc+b*IDD5vC%nz&;PEDnvrQou7VBZ(H!PO<$EZoZn0_{|@sk4PB3DpHYWv#o! z59;U?Sqn;(F2kwG;RfEi z-{VWk?m04Aj6r+BAu+m}9+Rb$v>wxzCK$@fLfZt~K|PBC#jK*&ip}z&+}8dk#NIE> zxE3pED|^SR*!g6f)xk~d)QsuYT6m0wecFn2zdY{#$-LuTNl=QSbvs_8Z|itFe@K7r zCpuri%uY1?=x(jKmC^LA6BdlDAI0W?sg{GRGIm!gRcy1~ev!mTypFR_Ri0^UiJfK%~mTpvD znhLRILv2IbKC_u_+g~`cxT1X0^3qc*+V+Ev)TQ*Na51LiyKcQ|vY&`L{sW;wm%vOb zf~u}6BC@g77_@9+s$i!sVq1WwK42o&R|TZrgutM`P)trQTak{6lYvT zd$W>tFjl>p65(*;H`Mx+js8=OjI=p1>J_awdj?!kl@U_3eVokNf^T3WQ)i=E1?m`?X3 zyj_s{;WSvl_JvZe-gvXTG$eV0g=Bx}kJI)ZqN}YF_hx`OozvvA1qcMm!rJhR8XreS z`;kiQC_CR3uI({}Sgh-(2DPZh9@A(D9x^I=09`384yyg6xtm%N{Ue^v67XTGA!pEA z6KTeF1Ct8(=B1D+>`ed}yz*g+ ziEf)u#V==;`@`*rprA~l-d#P1Jj~pt$2E26A+gb?FT$ydK^DMFh&gomVPzC@X|!cTD6QVa36N?O%?+b-~|yfwHs7Lpfv@>}}v z7mN9)8RnRisbqwSJSt#PXT)lr3)Hdvy==jD#OZCy*l>L}5?To~q& zFvuoeBcYT@SsZbm?RsC+IJhdf4V`>oRz{H4)#wvh79C=-y`fTyK^9v(=oHIHq(DLk z`aJ;m+X%!KXNgHnj83NMJPNjI}jsSV&$L3%t zO)1Ng4I7fX_) zS8zK`UQL}IR3M0d@qnu}(-{o!aBb6AVa{nRWO+eLTH7NY^a52`Lpj0nm8ErMJ1*~q dXZz{gnVca~4rs1;Z@p2QF, 2021 +# dekomote , 2015 +# Jannis Leidel , 2011 +# Martino Nikolovski, 2022 +# Vasil Vangelovski , 2016-2017,2019,2021 +# Vasil Vangelovski , 2013-2015 +# Vasil Vangelovski , 2011-2013 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2022-05-17 05:10-0500\n" +"PO-Revision-Date: 2022-05-25 07:05+0000\n" +"Last-Translator: Martino Nikolovski, 2022\n" +"Language-Team: Macedonian (http://www.transifex.com/django/django/language/" +"mk/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: mk\n" +"Plural-Forms: nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;\n" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "Избриши ги избраните %(verbose_name_plural)s" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "Успешно беа избришани %(count)d %(items)s." + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "Не може да се избрише %(name)s" + +msgid "Are you sure?" +msgstr "Сигурни сте?" + +msgid "Administration" +msgstr "Администрација" + +msgid "All" +msgstr "Сите" + +msgid "Yes" +msgstr "Да" + +msgid "No" +msgstr "Не" + +msgid "Unknown" +msgstr "Непознато" + +msgid "Any date" +msgstr "Било кој датум" + +msgid "Today" +msgstr "Денеска" + +msgid "Past 7 days" +msgstr "Последните 7 дена" + +msgid "This month" +msgstr "Овој месец" + +msgid "This year" +msgstr "Оваа година" + +msgid "No date" +msgstr "Нема датум" + +msgid "Has date" +msgstr "Има датум" + +msgid "Empty" +msgstr "Празно" + +msgid "Not empty" +msgstr "" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" +"Ве молиме внесете ги точните %(username)s и лозинка за член на сајтот. " +"Внимавајте, двете полиња се осетливи на големи и мали букви." + +msgid "Action:" +msgstr "Акција:" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "Додади уште %(verbose_name)s" + +msgid "Remove" +msgstr "Отстрани" + +msgid "Addition" +msgstr "Додавање" + +msgid "Change" +msgstr "Измени" + +msgid "Deletion" +msgstr "Бришење" + +msgid "action time" +msgstr "време на акција" + +msgid "user" +msgstr "корисник" + +msgid "content type" +msgstr "тип на содржина" + +msgid "object id" +msgstr "идентификационен број на објект" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/library/functions.html#repr) +msgid "object repr" +msgstr "репрезентација на објект" + +msgid "action flag" +msgstr "знакче за акција" + +msgid "change message" +msgstr "измени ја пораката" + +msgid "log entry" +msgstr "ставка во записникот" + +msgid "log entries" +msgstr "ставки во записникот" + +#, python-format +msgid "Added “%(object)s”." +msgstr "Додадено “%(object)s”." + +#, python-format +msgid "Changed “%(object)s” — %(changes)s" +msgstr "" + +#, python-format +msgid "Deleted “%(object)s.”" +msgstr "Избришано “%(object)s.”" + +msgid "LogEntry Object" +msgstr "Запис во дневник" + +#, python-brace-format +msgid "Added {name} “{object}”." +msgstr "" + +msgid "Added." +msgstr "Додадено." + +msgid "and" +msgstr "и" + +#, python-brace-format +msgid "Changed {fields} for {name} “{object}”." +msgstr "" + +#, python-brace-format +msgid "Changed {fields}." +msgstr "Изменети {fields}." + +#, python-brace-format +msgid "Deleted {name} “{object}”." +msgstr "Избришан {name} “{object}”." + +msgid "No fields changed." +msgstr "Не е изменето ниедно поле." + +msgid "None" +msgstr "Ништо" + +msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." +msgstr "Држете “Control” или “Command” на Mac за да изберете повеќе." + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully." +msgstr "Успешно беше додадено {name} “{obj}”." + +msgid "You may edit it again below." +msgstr "Можете повторно да го промените подолу." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was added successfully. You may add another {name} below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may edit it again below." +msgstr "" + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully. You may edit it again below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may add another {name} " +"below." +msgstr "" + +#, python-brace-format +msgid "The {name} “{obj}” was changed successfully." +msgstr "" + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" +"Мора да се одберат предмети за да се изврши акција врз нив. Ниеден предмет " +"не беше променет." + +msgid "No action selected." +msgstr "Ниедна акција не е одбрана." + +#, python-format +msgid "The %(name)s “%(obj)s” was deleted successfully." +msgstr "" + +#, python-format +msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" +msgstr "" + +#, python-format +msgid "Add %s" +msgstr "Додади %s" + +#, python-format +msgid "Change %s" +msgstr "Измени %s" + +#, python-format +msgid "View %s" +msgstr "Погледни %s" + +msgid "Database error" +msgstr "Грешка во базата на податоци" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "%(count)s ставка %(name)s беше успешно изменета." +msgstr[1] "%(count)s ставки %(name)s беа успешно изменети." + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "%(total_count)s одбран" +msgstr[1] "Сите %(total_count)s одбрани" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "0 од %(cnt)s избрани" + +#, python-format +msgid "Change history: %s" +msgstr "Историја на измени: %s" + +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "%(class_name)s %(instance)s" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" +"Бришењето на %(class_name)s %(instance)s бара бришење на следните заштитени " +"поврзани објекти: %(related_objects)s" + +msgid "Django site admin" +msgstr "Администрација на Џанго сајт" + +msgid "Django administration" +msgstr "Џанго администрација" + +msgid "Site administration" +msgstr "Администрација на сајт" + +msgid "Log in" +msgstr "Најава" + +#, python-format +msgid "%(app)s administration" +msgstr "Администрација на %(app)s" + +msgid "Page not found" +msgstr "Страницата не е најдена" + +msgid "We’re sorry, but the requested page could not be found." +msgstr "Се извинуваме, страница која ја побаравте не е пронајдена" + +msgid "Home" +msgstr "Дома" + +msgid "Server error" +msgstr "Грешка со серверот" + +msgid "Server error (500)" +msgstr "Грешка со серверот (500)" + +msgid "Server Error (500)" +msgstr "Грешка со серверот (500)" + +msgid "" +"There’s been an error. It’s been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" +"Наидовте на грешка. Известени се администраторите на страницата преку имејл " +"и би требало наскоро да биде поправена. Ви благодариме на трпението." + +msgid "Run the selected action" +msgstr "Изврши ја избраната акција" + +msgid "Go" +msgstr "Оди" + +msgid "Click here to select the objects across all pages" +msgstr "Кликнете тука за да изберете објекти низ сите страници" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "Избери ги сите %(total_count)s %(module_name)s" + +msgid "Clear selection" +msgstr "Откажи го изборот" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "Модели во %(name)s апликација" + +msgid "Add" +msgstr "Додади" + +msgid "View" +msgstr "Погледни" + +msgid "You don’t have permission to view or edit anything." +msgstr "Немате дозвола да прегледате или промените ништо" + +msgid "" +"First, enter a username and password. Then, you’ll be able to edit more user " +"options." +msgstr "" +"Прво внесете корисничко име и лозинка па потоа ќе можете да уредувате повеќе " +"опции за корисникот" + +msgid "Enter a username and password." +msgstr "Внесете корисничко име и лозинка." + +msgid "Change password" +msgstr "Промени лозинка" + +msgid "Please correct the error below." +msgstr "Ве молиме поправете ја грешката подолу." + +msgid "Please correct the errors below." +msgstr "Ве молам поправете ги грешките подолу." + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "Внесете нова лозинка за корисникот %(username)s." + +msgid "Welcome," +msgstr "Добредојдовте," + +msgid "View site" +msgstr "Посети го сајтот" + +msgid "Documentation" +msgstr "Документација" + +msgid "Log out" +msgstr "Одјава" + +#, python-format +msgid "Add %(name)s" +msgstr "Додади %(name)s" + +msgid "History" +msgstr "Историја" + +msgid "View on site" +msgstr "Погледни на сајтот" + +msgid "Filter" +msgstr "Филтер" + +msgid "Clear all filters" +msgstr "Ресетирај ги сите филтри" + +msgid "Remove from sorting" +msgstr "Отстрани од сортирање" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "Приоритет на сортирање: %(priority_number)s" + +msgid "Toggle sorting" +msgstr "Вклучи/исклучи сортирање" + +msgid "Delete" +msgstr "Избриши" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" +"Бришење на %(object_name)s '%(escaped_object)s' ќе резултира со бришење на " +"поврзаните објекти, но со вашата сметка немате доволно привилегии да ги " +"бришете следните типови на објекти:" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" +"Бришење на %(object_name)s '%(escaped_object)s' ќе резултира со бришење на " +"следниве заштитени објекти:" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" +"Сигурне сте дека сакате да ги бришете %(object_name)s „%(escaped_object)s“? " +"Сите овие ставки ќе бидат избришани:" + +msgid "Objects" +msgstr "Предмети" + +msgid "Yes, I’m sure" +msgstr "Да, сигурен сум" + +msgid "No, take me back" +msgstr "Не, врати ме назад" + +msgid "Delete multiple objects" +msgstr "Избриши повеќе ставки" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" +"Бришење на избраните %(objects_name)s ќе резултира со бришење на поврзани " +"објекти, но немате одобрување да ги избришете следниве типови објекти:" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" +"Бришење на избраните %(objects_name)s бара бришење на следните поврзани " +"објекти кои се заштитени:" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" +"Дали сте сигурни дека сакате да го избришете избраниот %(objects_name)s? " +"Сите овие објекти и оние поврзани со нив ќе бидат избришани:" + +msgid "Delete?" +msgstr "Избриши?" + +#, python-format +msgid " By %(filter_title)s " +msgstr " Според %(filter_title)s " + +msgid "Summary" +msgstr "Резиме" + +msgid "Recent actions" +msgstr "Последни акции" + +msgid "My actions" +msgstr "Мои акции" + +msgid "None available" +msgstr "Ништо не е достапно" + +msgid "Unknown content" +msgstr "Непозната содржина" + +msgid "" +"Something’s wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" +"Нешто не е во ред со инсталацијата на базата на податоци. Уверете се дека " +"соодветните табели се создадени, и дека базата на податоци е пристапна до " +"соодветниот корисник." + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" +"Најавени сте како %(username)s, но не сте авторизирани да пристапите до " +"оваа страна. Сакате ли да се најавите како друг корисник?" + +msgid "Forgotten your password or username?" +msgstr "Ја заборавивте вашата лозинка или корисничко име?" + +msgid "Toggle navigation" +msgstr "" + +msgid "Start typing to filter…" +msgstr "Започнете со пишување за да филтрирате..." + +msgid "Filter navigation items" +msgstr "" + +msgid "Date/time" +msgstr "Датум/час" + +msgid "User" +msgstr "Корисник" + +msgid "Action" +msgstr "Акција" + +msgid "entry" +msgstr "" + +msgid "entries" +msgstr "" + +msgid "" +"This object doesn’t have a change history. It probably wasn’t added via this " +"admin site." +msgstr "" + +msgid "Show all" +msgstr "Прикажи ги сите" + +msgid "Save" +msgstr "Сними" + +msgid "Popup closing…" +msgstr "Попапот се затвара..." + +msgid "Search" +msgstr "Барај" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "%(counter)s резултат" +msgstr[1] "%(counter)s резултати" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "вкупно %(full_result_count)s" + +msgid "Save as new" +msgstr "Сними како нова" + +msgid "Save and add another" +msgstr "Сними и додади уште" + +msgid "Save and continue editing" +msgstr "Сними и продолжи со уредување" + +msgid "Save and view" +msgstr "Сними и прегледај" + +msgid "Close" +msgstr "Затвори" + +#, python-format +msgid "Change selected %(model)s" +msgstr "Промени ги избраните %(model)s" + +#, python-format +msgid "Add another %(model)s" +msgstr "Додади уште %(model)s" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "Избриши ги избраните %(model)s" + +#, python-format +msgid "View selected %(model)s" +msgstr "" + +msgid "Thanks for spending some quality time with the web site today." +msgstr "" + +msgid "Log in again" +msgstr "Најавете се повторно" + +msgid "Password change" +msgstr "Измена на лозинка" + +msgid "Your password was changed." +msgstr "Вашата лозинка беше сменета." + +msgid "" +"Please enter your old password, for security’s sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" + +msgid "Change my password" +msgstr "Промени ја мојата лозинка" + +msgid "Password reset" +msgstr "Ресетирање на лозинка" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "Вашата лозинка беше поставена. Сега можете да се најавите." + +msgid "Password reset confirmation" +msgstr "Одобрување за ресетирање на лозинка" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" +"Ве молам внесете ја вашата нова лозинка двапати за да може да бидете сигурни " +"дека правилно сте ја внеле." + +msgid "New password:" +msgstr "Нова лозинка:" + +msgid "Confirm password:" +msgstr "Потврди лозинка:" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"Врската за ресетирање на лозинката беше невалидна, најверојатно бидејќи веќе " +"била искористена. Ве молам повторно побарајте ресетирање на вашата лозинката." + +msgid "" +"We’ve emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" + +msgid "" +"If you don’t receive an email, please make sure you’ve entered the address " +"you registered with, and check your spam folder." +msgstr "" + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" +"Го примате овој email бидејќи побаравте ресетирање на лозинка како корисник " +"на %(site_name)s." + +msgid "Please go to the following page and choose a new password:" +msgstr "Ве молам одете на следната страница и внесете нова лозинка:" + +msgid "Your username, in case you’ve forgotten:" +msgstr "Вашето корисничко име, во случај да сте заборавиле:" + +msgid "Thanks for using our site!" +msgstr "Ви благодариме што го користите овој сајт!" + +#, python-format +msgid "The %(site_name)s team" +msgstr "Тимот на %(site_name)s" + +msgid "" +"Forgotten your password? Enter your email address below, and we’ll email " +"instructions for setting a new one." +msgstr "" +"Ја заборавивте вашата лозинка? Внесете го вашиот имејл и ќе ви пратиме " +"инструкции да подесите нова лозинка. " + +msgid "Email address:" +msgstr "Email адреса:" + +msgid "Reset my password" +msgstr "Ресетирај ја мојата лозинка" + +msgid "All dates" +msgstr "Сите датуми" + +#, python-format +msgid "Select %s" +msgstr "Изберете %s" + +#, python-format +msgid "Select %s to change" +msgstr "Изберете %s за измена" + +#, python-format +msgid "Select %s to view" +msgstr "Изберете %s за прегледување" + +msgid "Date:" +msgstr "Датум:" + +msgid "Time:" +msgstr "Време:" + +msgid "Lookup" +msgstr "Побарај" + +msgid "Currently:" +msgstr "Моментално:" + +msgid "Change:" +msgstr "Измени:" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/mk/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/mk/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..c87ddf6d38087f458e431ae5e43c61d77e969d69 GIT binary patch literal 4719 zcmc(gU2Ggz6~`|n6ma=0(DKb~Ai<&CwbzIcZDJsG>n0IyqGU;F5TfJVYwskpGuF(k z9ZLxEL5U?ED8+37=H=TrJ)wAp7$0Q({B=r=fV*DL#It9UQlAF*g13Sv9nOJofd00l zp8($iecsVOb=U#l3jdnJUpjmd?1TS1@Xg>W;77o}f?L5mQ2r)x*x@KB=kEs*QHQ}d zf?slU-C+~tRV^lQApu3t3@H0ffL{b31#95T?)xWEF7mrT(fc`2&fCKzcJ2qo&Lg1c zX@K*f4}J&yJBTXv7@Ot1C&8WIMNszr7Mucq555aLjF8|_@IBzy96j&opMdX%zX;v| zz6gGm-24fA0D2Om-UdDc-Y#;W*qJj)9$o@P{~sOwH-~+3I-BcPmf%;9lR?0FQ#L^bd5g2Nwygh)LD@~Yocq{nI+YA0**erT(!KoCy4I~um z1o#{9Ti`9=5tIpj+2JD&>kcOz`VIq-V{Fa=bq_=GwN(h74>9E24=_l%8f1ux?_+#| zA&=CX)RNpgc`(J^0m;u@!r&n+HjlC%kjXtC2k&<4_k&Vn@@y`^){HFs8AFaIKpItr z@m>ZYvOY^ZBsXOSZmEwlcvWAb_pCR7adrRwK*bW7CSJjs1>jv3phQ zK2tZXaTBXiGak3Scvg-2K?=RcZy2@D3oUP7JD64b+M!WnUR-Z7&#E!M5&DzOR6Q6) zAyaCq`r)Xpy;z*p&8Qt~uW7u7#4|DRw28I2Q(j*d(>E@x$4%1@8yix)zUXw}^@Guj z+Fws2iNHY{CgR996y3+Mtiuzmr&OwX--aWE(&Ec5seWVH|dN)Mov#>BF%P_l-D(C zCC{rCxhnV%Eh<9vuPllhlt(RUMPj$A%}yCyrczUhpLorB!d97XL^Fj)>&8<(Y!Yfw z)JbJEJ?gj}CP0G_d*P(vvW6&c_|tx)?FHI2{M25z3Eu>bq^$Q&=vlVL?T{#Iub%o* zc#p8+S81B@xkBTlHcHa6ib7T<<#;_B`C*rO0MD6 zn(a6d$y%>ut!-Y-e8@Dyg8h&>5JyL8N2R@u(qR)PxKh=Pqr@TVJ7}h&I4zAOlYXOg zZ+kK+)uO8IJFvfW&`kRxT9Q6f)kA|rmC|6PRQZ&yRH{Qe?jGdn`@EN=rCRKTN#LbX zT-A2%PnhHS-YC_(K7&L!+4d$)sb;)ZRgZaf(}+T!p!PS@bgDWqFf%h#PDO=mE7zme zKw;Z51Wv<1>)61yzOlVy_pf?UDG&CIL}6+|%%EVZIyJ}BfvLdr!<~}rI5Fw)7iy!W z9jkJ3)`W>m_lNbU!L6z49piqwVrf;kj`bY~+OZduMx(fuRCPFI$z*tFr!JPm{d7}Z z8PvnWx}vvk)de}I?}Dyu)1TFYx~eNX`&8D=u4T{WC$diVLbk{sqWD>4i`muX--Qxl zMW(yH%y!NGPJTK+g|0>Z8rc%tma-ctzRITsl|7a%@vWQPkmcp<3c@GzQ!1O!7G;6p zQei`)vZtZ1!+9?2Ldfyif^1$xX!sotJe@s%6aO-@3)%B>YR_h!y%zsU*46pRtjnnj zI_ssJ0`$26Vca>q>S7*V6&tQ)9cxRmwFsBBxA?xInIDJ^EVfBZI{93A1KRMA@Hh(! z6IV3elp6U(Syt}>^Bi~GhC|#Zgg=B}N!&Wi46-7waJ;WDny-CufE-u@7F+W8-H-3&}O{(<2f70qXl*<3apMU?H3q(Thj4P5$ z5LdE})cFZgB21y_&aDtbYYUam=RZ=m<^ z^P|)jX$EOXkxYo9G9z!dMU;0`Dx9vxUrOIexAE7DVM36U8X5WF-aXrW!lOT zf|I!u?6sW%iB%ov#8T1V!XPzGJ+rr?H}^K2&4ph2Q2t#}b=4NC?J>o9-TYkEp=O`v z!}sBrL9S=F(f~|6=u_A)3{!hsqAr@k@OY}IZNfb?Gjav$)UF*>qCn!aQHIjABUyu?lidWk493QNS9g6mw5aNXOdF9In lPN%-{@>$NcKgU8n|61F7F^_7yXx~dJyP&ck<0w5}{R7L+r@a6G literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/mk/LC_MESSAGES/djangojs.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/mk/LC_MESSAGES/djangojs.po new file mode 100644 index 0000000000..bd72010279 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/mk/LC_MESSAGES/djangojs.po @@ -0,0 +1,262 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Jannis Leidel , 2011 +# Vasil Vangelovski , 2016 +# Vasil Vangelovski , 2014 +# Vasil Vangelovski , 2011-2012 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-01-15 09:00+0100\n" +"PO-Revision-Date: 2021-01-15 11:28+0000\n" +"Last-Translator: Transifex Bot <>\n" +"Language-Team: Macedonian (http://www.transifex.com/django/django/language/" +"mk/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: mk\n" +"Plural-Forms: nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;\n" + +#, javascript-format +msgid "Available %s" +msgstr "Достапно %s" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" +"Ова е листа на достапни %s. Можете да изберете неколку кликајќи на нив во " +"полето подолу и со кликање на стрелката \"Одбери\" помеѓу двете полиња." + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "Пишувајте во ова поле за да ја филтрирате листата на достапни %s." + +msgid "Filter" +msgstr "Филтер" + +msgid "Choose all" +msgstr "Одбери ги сите ги сите" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "Кликнете за да ги одберете сите %s од еднаш." + +msgid "Choose" +msgstr "Одбери" + +msgid "Remove" +msgstr "Отстрани" + +#, javascript-format +msgid "Chosen %s" +msgstr "Одбрано %s" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" +"Ова е листа на избрани %s. Можете да отстраните неколку кликајќи на нив во " +"полето подолу и со кликање на стрелката \"Отстрани\" помеѓу двете полиња." + +msgid "Remove all" +msgstr "Отстрани ги сите" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "Кликнете за да ги отстраните сите одбрани %s одеднаш." + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "избрано %(sel)s од %(cnt)s" +msgstr[1] "одбрани %(sel)s од %(cnt)s" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" +"Имате незачувани промени на поединечни полиња. Ако извршите акција вашите " +"незачувани промени ќе бидат изгубени." + +msgid "" +"You have selected an action, but you haven’t saved your changes to " +"individual fields yet. Please click OK to save. You’ll need to re-run the " +"action." +msgstr "" + +msgid "" +"You have selected an action, and you haven’t made any changes on individual " +"fields. You’re probably looking for the Go button rather than the Save " +"button." +msgstr "" + +msgid "Now" +msgstr "Сега" + +msgid "Midnight" +msgstr "Полноќ" + +msgid "6 a.m." +msgstr "6 наутро" + +msgid "Noon" +msgstr "Пладне" + +msgid "6 p.m." +msgstr "6 попладне" + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "Забелешка: Вие сте %s час понапред од времето на серверот." +msgstr[1] "Забелешка: Вие сте %s часа понапред од времето на серверот." + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "Забелешка: Вие сте %s час поназад од времето на серверот." +msgstr[1] "Забелешка: Вие сте %s часа поназад од времето на серверот." + +msgid "Choose a Time" +msgstr "Одбери време" + +msgid "Choose a time" +msgstr "Одбери време" + +msgid "Cancel" +msgstr "Откажи" + +msgid "Today" +msgstr "Денеска" + +msgid "Choose a Date" +msgstr "Одбери датум" + +msgid "Yesterday" +msgstr "Вчера" + +msgid "Tomorrow" +msgstr "Утре" + +msgid "January" +msgstr "Јануари" + +msgid "February" +msgstr "Февруари" + +msgid "March" +msgstr "Март" + +msgid "April" +msgstr "Април" + +msgid "May" +msgstr "Мај" + +msgid "June" +msgstr "Јуни" + +msgid "July" +msgstr "Јули" + +msgid "August" +msgstr "Август" + +msgid "September" +msgstr "Септември" + +msgid "October" +msgstr "Октомври" + +msgid "November" +msgstr "Ноември" + +msgid "December" +msgstr "Декември" + +msgctxt "abbrev. month January" +msgid "Jan" +msgstr "" + +msgctxt "abbrev. month February" +msgid "Feb" +msgstr "" + +msgctxt "abbrev. month March" +msgid "Mar" +msgstr "" + +msgctxt "abbrev. month April" +msgid "Apr" +msgstr "" + +msgctxt "abbrev. month May" +msgid "May" +msgstr "" + +msgctxt "abbrev. month June" +msgid "Jun" +msgstr "" + +msgctxt "abbrev. month July" +msgid "Jul" +msgstr "" + +msgctxt "abbrev. month August" +msgid "Aug" +msgstr "" + +msgctxt "abbrev. month September" +msgid "Sep" +msgstr "" + +msgctxt "abbrev. month October" +msgid "Oct" +msgstr "" + +msgctxt "abbrev. month November" +msgid "Nov" +msgstr "" + +msgctxt "abbrev. month December" +msgid "Dec" +msgstr "" + +msgctxt "one letter Sunday" +msgid "S" +msgstr "Н" + +msgctxt "one letter Monday" +msgid "M" +msgstr "П" + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "В" + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "С" + +msgctxt "one letter Thursday" +msgid "T" +msgstr "Ч" + +msgctxt "one letter Friday" +msgid "F" +msgstr "П" + +msgctxt "one letter Saturday" +msgid "S" +msgstr "С" + +msgid "Show" +msgstr "Прикажи" + +msgid "Hide" +msgstr "Сокриј" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ml/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ml/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..f75d3d6ae29bd43cee3e22dd03f7309c8eec04f4 GIT binary patch literal 20830 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, 2014 +# Hrishikesh , 2019-2020 +# Jannis Leidel , 2011 +# JOMON THOMAS LOBO , 2019 +# Junaid , 2012 +# MUHAMMED RAMEEZ , 2019 +# Rajeesh Nair , 2011-2013 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-07-14 19:53+0200\n" +"PO-Revision-Date: 2020-07-14 22:38+0000\n" +"Last-Translator: Transifex Bot <>\n" +"Language-Team: Malayalam (http://www.transifex.com/django/django/language/" +"ml/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ml\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "%(count)d %(items)sവിജയകയരമായി നീക്കം ചെയ്തു." + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "%(name)s നീക്കം ചെയ്യാന്‍ കഴിയില്ല." + +msgid "Are you sure?" +msgstr "തീര്‍ച്ചയാണോ?" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "തെരഞ്ഞെടുത്ത %(verbose_name_plural)s നീക്കം ചെയ്യുക." + +msgid "Administration" +msgstr "കാര്യനിർവഹണം" + +msgid "All" +msgstr "മുഴുവനും" + +msgid "Yes" +msgstr "അതെ" + +msgid "No" +msgstr "അല്ല" + +msgid "Unknown" +msgstr "അറിയില്ല" + +msgid "Any date" +msgstr "ഏതെങ്കിലും തീയ്യതി" + +msgid "Today" +msgstr "ഇന്ന്" + +msgid "Past 7 days" +msgstr "കഴിഞ്ഞ 7 ദിവസങ്ങൾ" + +msgid "This month" +msgstr "ഈ മാസം" + +msgid "This year" +msgstr "ഈ വര്‍ഷം" + +msgid "No date" +msgstr "തിയ്യതിയില്ല " + +msgid "Has date" +msgstr "തിയ്യതിയുണ്ട്" + +msgid "Empty" +msgstr "കാലി" + +msgid "Not empty" +msgstr "കാലിയല്ല" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" +"ദയവായി സ്റ്റാഫ് അക്കൗണ്ടിനുവേണ്ടിയുള്ള ശരിയായ %(username)s പാസ്‌വേഡ് എന്നിവ നൽകുക. രണ്ടു " +"കള്ളികളിലും അക്ഷരങ്ങള്‍ വലിയക്ഷരമോ ചെറിയക്ഷരമോ എന്നത് പ്രധാനമാണെന്നത് ശ്രദ്ധിയ്ക്കുക." + +msgid "Action:" +msgstr "ആക്ഷന്‍" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "മറ്റൊരു %(verbose_name)s കൂടി ചേര്‍ക്കുക" + +msgid "Remove" +msgstr "കളയുക" + +msgid "Addition" +msgstr "ചേർക്കുക" + +msgid "Change" +msgstr "മാറ്റുക" + +msgid "Deletion" +msgstr "കളയുക" + +msgid "action time" +msgstr "നടന്ന സമയം" + +msgid "user" +msgstr "ഉപയോക്താവ്" + +msgid "content type" +msgstr "കണ്ടന്റ് ടൈപ്പ്" + +msgid "object id" +msgstr "ഒബ്ജക്റ്റിന്റെ ഐഡി" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/library/functions.html#repr) +msgid "object repr" +msgstr "ഒബ്ജെക്ട് റെപ്രസന്റേഷൻ" + +msgid "action flag" +msgstr "ആക്ഷന്‍ ഫ്ളാഗ്" + +msgid "change message" +msgstr "സന്ദേശം മാറ്റുക" + +msgid "log entry" +msgstr "ലോഗ് എൻട്രി" + +msgid "log entries" +msgstr "ലോഗ് എൻട്രികള്‍" + +#, python-format +msgid "Added “%(object)s”." +msgstr "“%(object)s” ചേർത്തു." + +#, python-format +msgid "Changed “%(object)s” — %(changes)s" +msgstr "“%(object)s” മാറ്റം വരുത്തി — %(changes)s" + +#, python-format +msgid "Deleted “%(object)s.”" +msgstr "" + +msgid "LogEntry Object" +msgstr "ലോഗ്‌എന്‍ട്രി ഒബ്ജെക്റ്റ്" + +#, python-brace-format +msgid "Added {name} “{object}”." +msgstr "" + +msgid "Added." +msgstr "ചേര്‍ത്തു." + +msgid "and" +msgstr "കൂടാതെ" + +#, python-brace-format +msgid "Changed {fields} for {name} “{object}”." +msgstr "" + +#, python-brace-format +msgid "Changed {fields}." +msgstr "" + +#, python-brace-format +msgid "Deleted {name} “{object}”." +msgstr "" + +msgid "No fields changed." +msgstr "ഒരു മാറ്റവുമില്ല." + +msgid "None" +msgstr "ഒന്നുമില്ല" + +msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." +msgstr "" + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully." +msgstr "" + +msgid "You may edit it again below." +msgstr "താഴെ നിങ്ങൾക്കിത് വീണ്ടും എഡിറ്റുചെയ്യാം" + +#, python-brace-format +msgid "" +"The {name} “{obj}” was added successfully. You may add another {name} below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may edit it again below." +msgstr "" + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully. You may edit it again below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may add another {name} " +"below." +msgstr "" + +#, python-brace-format +msgid "The {name} “{obj}” was changed successfully." +msgstr "" + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "ആക്ഷന്‍ നടപ്പിലാക്കേണ്ട വകകള്‍ തെരഞ്ഞെടുക്കണം. ഒന്നിലും മാറ്റങ്ങൾ വരുത്തിയിട്ടില്ല." + +msgid "No action selected." +msgstr "ആക്ഷനൊന്നും തെരഞ്ഞെടുത്തിട്ടില്ല." + +#, python-format +msgid "The %(name)s “%(obj)s” was deleted successfully." +msgstr "" + +#, python-format +msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" +msgstr "" + +#, python-format +msgid "Add %s" +msgstr "%s ചേര്‍ക്കുക" + +#, python-format +msgid "Change %s" +msgstr "%s മാറ്റാം" + +#, python-format +msgid "View %s" +msgstr "%s കാണുക" + +msgid "Database error" +msgstr "ഡേറ്റാബേസ് എറർ." + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "%(count)s %(name)s ല്‍ മാറ്റം വരുത്തി." +msgstr[1] "%(count)s %(name)s വിജയകരമായി മാറ്റി" + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "%(total_count)s തെരഞ്ഞെടുത്തു." +msgstr[1] "%(total_count)sമൊത്തമായി തെരഞ്ഞെടുത്തു." + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "%(cnt)s ല്‍ 0 തിരഞ്ഞെടുത്തിരിക്കുന്നു" + +#, python-format +msgid "Change history: %s" +msgstr "%s ലെ മാറ്റങ്ങള്‍." + +#. Translators: Model verbose name and instance representation, +#. suitable to be an item in a list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "%(class_name)s %(instance)s" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" +" %(class_name)s %(instance)s നീക്കം ചെയ്യണമെങ്കിൽ അതിനോട് ബന്ധപ്പെട്ടതായ താഴെപ്പറയുന്ന " +"എല്ലാ വസ്തുക്കളും നീക്കം ചെയ്യുന്നതാണ്: %(related_objects)s" + +msgid "Django site admin" +msgstr "ജാംഗോ സൈറ്റ് അഡ്മിന്‍" + +msgid "Django administration" +msgstr "ജാംഗോ കാര്യനിർവഹണം" + +msgid "Site administration" +msgstr "സൈറ്റ് കാര്യനിർവഹണം" + +msgid "Log in" +msgstr "ലോഗിൻ" + +#, python-format +msgid "%(app)s administration" +msgstr "%(app)s കാര്യനിർവഹണം" + +msgid "Page not found" +msgstr "പേജ് കണ്ടെത്താനായില്ല" + +msgid "We’re sorry, but the requested page could not be found." +msgstr "ക്ഷമിക്കണം, ആവശ്യപ്പെട്ട പേജ് കണ്ടെത്താന്‍ കഴിഞ്ഞില്ല." + +msgid "Home" +msgstr "പൂമുഖം" + +msgid "Server error" +msgstr "സെര്‍വറിൽ എന്തോ പ്രശ്നം" + +msgid "Server error (500)" +msgstr "സെര്‍വറിൽ എന്തോ പ്രശ്നം (500)" + +msgid "Server Error (500)" +msgstr "സെര്‍വറിൽ എന്തോ പ്രശ്നം (500)" + +msgid "" +"There’s been an error. It’s been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" + +msgid "Run the selected action" +msgstr "തെരഞ്ഞെടുത്ത ആക്ഷന്‍ നടപ്പിലാക്കുക" + +msgid "Go" +msgstr "തുടരുക" + +msgid "Click here to select the objects across all pages" +msgstr "എല്ലാ പേജിലേയും ഒബ്ജക്റ്റുകൾ തെരഞ്ഞെടുക്കാന്‍ ഇവിടെ ക്ലിക് ചെയ്യുക." + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "മുഴുവന്‍ %(total_count)s %(module_name)s ഉം തെരഞ്ഞെടുക്കുക" + +msgid "Clear selection" +msgstr "തെരഞ്ഞെടുത്തത് റദ്ദാക്കുക." + +#, python-format +msgid "Models in the %(name)s application" +msgstr "%(name)s മാതൃകയിലുള്ള" + +msgid "Add" +msgstr "ചേര്‍ക്കുക" + +msgid "View" +msgstr "കാണുക" + +msgid "You don’t have permission to view or edit anything." +msgstr "നിങ്ങൾക്ക് ഒന്നും കാണാനോ തിരുത്താനോ ഉള്ള അനുമതിയില്ല." + +msgid "" +"First, enter a username and password. Then, you’ll be able to edit more user " +"options." +msgstr "" +"ആദ്യമായി ഒരു യൂസർനെയിമും പാസ്‌‌വേഡും നൽകുക. തുടർന്ന്, നിങ്ങൾക്ക് കൂടുതൽ കാര്യങ്ങളിൽ മാറ്റം " +"വരുത്താവുന്നതാണ്" + +msgid "Enter a username and password." +msgstr "Enter a username and password." + +msgid "Change password" +msgstr "പാസ് വേര്‍ഡ് മാറ്റുക." + +msgid "Please correct the error below." +msgstr "താഴെ പറയുന്ന തെറ്റുകൾ തിരുത്തുക " + +msgid "Please correct the errors below." +msgstr "ദയവായി താഴെയുള്ള തെറ്റുകള്‍ പരിഹരിക്കുക." + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "%(username)s ന് പുതിയ പാസ് വേര്‍ഡ് നല്കുക." + +msgid "Welcome," +msgstr "സ്വാഗതം, " + +msgid "View site" +msgstr "സൈറ്റ് കാണുക " + +msgid "Documentation" +msgstr "സഹായക്കുറിപ്പുകള്‍" + +msgid "Log out" +msgstr "പുറത്ത് കടക്കുക." + +#, python-format +msgid "Add %(name)s" +msgstr "%(name)s ചേര്‍ക്കുക" + +msgid "History" +msgstr "ചരിത്രം" + +msgid "View on site" +msgstr "View on site" + +msgid "Filter" +msgstr "അരിപ്പ" + +msgid "Clear all filters" +msgstr "എല്ലാ ഫിൽറ്ററുകളും ഒഴിവാക്കുക" + +msgid "Remove from sorting" +msgstr "ക്രമീകരണത്തില്‍ നിന്നും ഒഴിവാക്കുക" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "ക്രമീകരണത്തിനുള്ള മുന്‍ഗണന: %(priority_number)s" + +msgid "Toggle sorting" +msgstr "ക്രമീകരണം വിപരീത ദിശയിലാക്കുക." + +msgid "Delete" +msgstr "നീക്കം ചെയ്യുക" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" +"%(object_name)s '%(escaped_object)s ഡിലീറ്റ് ചെയ്യുമ്പോള്‍ അതുമായി ബന്ധമുള്ള " +"വസ്തുക്കളുംഡിലീറ്റ് ആവും. പക്ഷേ നിങ്ങള്‍ക്ക് താഴെ പറഞ്ഞ തരം വസ്തുക്കള്‍ ഡിലീറ്റ് ചെയ്യാനുള്ള അനുമതി " +"ഇല്ല:" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" +"തിരഞ്ഞെടുക്കപ്പെട്ട %(object_name)s '%(escaped_object)s' നീക്കം ചെയ്യണമെങ്കിൽ അതിനോട് " +"ബന്ധപ്പെട്ടതായ താഴെപ്പറയുന്ന എല്ലാ വസ്തുക്കളും നീക്കം ചെയ്യുന്നതാണ്:" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" +"%(object_name)s \"%(escaped_object)s\" നീക്കം ചെയ്യണമെന്ന് ഉറപ്പാണോ?അതുമായി ബന്ധമുള്ള " +"താഴെപ്പറയുന്ന വസ്തുക്കളെല്ലാം നീക്കം ചെയ്യുന്നതാണ്:" + +msgid "Objects" +msgstr "വസ്തുക്കൾ" + +msgid "Yes, I’m sure" +msgstr "അതെ, എനിക്കുറപ്പാണ്" + +msgid "No, take me back" +msgstr "ഇല്ല, എന്നെ തിരിച്ചെടുക്കൂ" + +msgid "Delete multiple objects" +msgstr "ഒന്നിലേറെ വസ്തുക്കള്‍ നീക്കം ചെയ്യുക" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" +"തിരഞ്ഞെടുക്കപ്പെട്ട %(objects_name)s നീക്കം ചെയ്താൽ അതിനോട് ബന്ധപ്പെട്ടതായ താഴെപ്പറയുന്ന " +"എല്ലാ വസ്തുക്കളും നീക്കം ചെയ്യുന്നതാണ്, പക്ഷെ അതിനുളള അവകാശം അക്കൗണ്ടിനില്ല:" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" +"തിരഞ്ഞെടുക്കപ്പെട്ട %(objects_name)s നീക്കം ചെയ്യണമെങ്കിൽ അതിനോട് ബന്ധപ്പെട്ടതായ " +"താഴെപ്പറയുന്ന എല്ലാ വസ്തുക്കളും നീക്കം ചെയ്യുന്നതാണ്:" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" +"തിരഞ്ഞെടുക്കപ്പെട്ട %(objects_name)s നീക്കം ചെയ്യണമെന്നു ഉറപ്പാണോ ? തിരഞ്ഞെടുക്കപ്പെട്ടതും " +"അതിനോട് ബന്ധപ്പെട്ടതും ആയ എല്ലാ താഴെപ്പറയുന്ന വസ്തുക്കളും നീക്കം ചെയ്യുന്നതാണ്:" + +msgid "Delete?" +msgstr "ഡിലീറ്റ് ചെയ്യട്ടെ?" + +#, python-format +msgid " By %(filter_title)s " +msgstr "%(filter_title)s ആൽ" + +msgid "Summary" +msgstr "ചുരുക്കം" + +msgid "Recent actions" +msgstr "സമീപകാല പ്രവൃത്തികൾ" + +msgid "My actions" +msgstr "എന്റെ പ്രവർത്തനം" + +msgid "None available" +msgstr "ഒന്നും ലഭ്യമല്ല" + +msgid "Unknown content" +msgstr "ഉള്ളടക്കം അറിയില്ല." + +msgid "" +"Something’s wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" +"താങ്കൾ ലോഗിൻ ചെയ്തിരിക്കുന്ന %(username)s, നു ഈ പേജ് കാണാൻ അനുവാദം ഇല്ല . താങ്കൾ " +"മറ്റൊരു അക്കൗണ്ടിൽ ലോഗിൻ ചെയ്യാന് ആഗ്രഹിക്കുന്നുവോ ?" + +msgid "Forgotten your password or username?" +msgstr "രഹസ്യവാക്കോ ഉപയോക്തൃനാമമോ മറന്നുപോയോ?" + +msgid "Toggle navigation" +msgstr "" + +msgid "Date/time" +msgstr "തീയതി/സമയം" + +msgid "User" +msgstr "ഉപയോക്താവ്" + +msgid "Action" +msgstr "പ്രവർത്തി" + +msgid "" +"This object doesn’t have a change history. It probably wasn’t added via this " +"admin site." +msgstr "" + +msgid "Show all" +msgstr "എല്ലാം കാണട്ടെ" + +msgid "Save" +msgstr "സേവ് ചെയ്യണം" + +msgid "Popup closing…" +msgstr "പോപ്പ് അപ്പ് അടക്കുക " + +msgid "Search" +msgstr "പരതുക" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "%(counter)s results" +msgstr[1] "%(counter)s ഫലം" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "ആകെ %(full_result_count)s" + +msgid "Save as new" +msgstr "പുതിയതായി സേവ് ചെയ്യണം" + +msgid "Save and add another" +msgstr "സേവ് ചെയ്ത ശേഷം വേറെ ചേര്‍ക്കണം" + +msgid "Save and continue editing" +msgstr "സേവ് ചെയ്ത ശേഷം മാറ്റം വരുത്താം" + +msgid "Save and view" +msgstr "സേവ് ചെയ്‌തതിന്‌ ശേഷം കാണുക " + +msgid "Close" +msgstr "അടയ്ക്കുക" + +#, python-format +msgid "Change selected %(model)s" +msgstr "" + +#, python-format +msgid "Add another %(model)s" +msgstr "" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "തിരഞ്ഞെടുത്തത് ഇല്ലാതാക്കുക%(model)s" + +msgid "Thanks for spending some quality time with the Web site today." +msgstr "ഈ വെബ് സൈറ്റില്‍ കുറെ നല്ല സമയം ചെലവഴിച്ചതിനു നന്ദി." + +msgid "Log in again" +msgstr "വീണ്ടും ലോഗ്-ഇന്‍ ചെയ്യുക." + +msgid "Password change" +msgstr "പാസ് വേര്‍ഡ് മാറ്റം" + +msgid "Your password was changed." +msgstr "നിങ്ങളുടെ പാസ് വേര്‍ഡ് മാറ്റിക്കഴിഞ്ഞു." + +msgid "" +"Please enter your old password, for security’s sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" + +msgid "Change my password" +msgstr "എന്റെ പാസ് വേര്‍ഡ് മാറ്റണം" + +msgid "Password reset" +msgstr "പാസ് വേര്‍ഡ് പുനസ്ഥാപിക്കല്‍" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "നിങ്ങളുടെ പാസ് വേര്‍ഡ് തയ്യാര്‍. ഇനി ലോഗ്-ഇന്‍ ചെയ്യാം." + +msgid "Password reset confirmation" +msgstr "പാസ് വേര്‍ഡ് പുനസ്ഥാപിക്കല്‍ ഉറപ്പാക്കല്‍" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" +"ദയവായി നിങ്ങളുടെ പുതിയ പാസ് വേര്‍ഡ് രണ്ടു തവണ നല്കണം. ശരിയായാണ് ടൈപ്പു ചെയ്തത് എന്നു " +"ഉറപ്പിക്കാനാണ്." + +msgid "New password:" +msgstr "പുതിയ പാസ് വേര്‍ഡ്:" + +msgid "Confirm password:" +msgstr "പാസ് വേര്‍ഡ് ഉറപ്പാക്കൂ:" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"പാസ് വേര്‍ഡ് പുനസ്ഥാപിക്കാന്‍ നല്കിയ ലിങ്ക് യോഗ്യമല്ല. ഒരു പക്ഷേ, അതു മുന്പ് തന്നെ ഉപയോഗിച്ചു " +"കഴിഞ്ഞതാവാം. പുതിയ ഒരു ലിങ്കിന് അപേക്ഷിക്കൂ." + +msgid "" +"We’ve emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" + +msgid "" +"If you don’t receive an email, please make sure you’ve entered the address " +"you registered with, and check your spam folder." +msgstr "" + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" +"നിങ്ങളുൾ പാസ് വേർഡ്‌ മാറ്റാനുള്ള നിർദേശങ്ങൾ %(site_name)s ഇൽ ആവശ്യപ്പെട്ടതുകൊണ്ടാണ് ഈ " +"ഇമെയിൽ സന്ദേശം ലഭിച്ചദ്." + +msgid "Please go to the following page and choose a new password:" +msgstr "ദയവായി താഴെ പറയുന്ന പേജ് സന്ദര്‍ശിച്ച് പുതിയ പാസ് വേര്‍ഡ് തെരഞ്ഞെടുക്കുക:" + +msgid "Your username, in case you’ve forgotten:" +msgstr "" + +msgid "Thanks for using our site!" +msgstr "ഞങ്ങളുടെ സൈറ്റ് ഉപയോഗിച്ചതിന് നന്ദി!" + +#, python-format +msgid "The %(site_name)s team" +msgstr "%(site_name)s പക്ഷം" + +msgid "" +"Forgotten your password? Enter your email address below, and we’ll email " +"instructions for setting a new one." +msgstr "" + +msgid "Email address:" +msgstr "ഇമെയിൽ വിലാസം:" + +msgid "Reset my password" +msgstr "എന്റെ പാസ് വേര്‍ഡ് പുനസ്ഥാപിക്കൂ" + +msgid "All dates" +msgstr "എല്ലാ തീയതികളും" + +#, python-format +msgid "Select %s" +msgstr "%s തെരഞ്ഞെടുക്കൂ" + +#, python-format +msgid "Select %s to change" +msgstr "മാറ്റാനുള്ള %s തെരഞ്ഞെടുക്കൂ" + +#, python-format +msgid "Select %s to view" +msgstr "%s കാണാൻ തിരഞ്ഞെടുക്കുക" + +msgid "Date:" +msgstr "തിയ്യതി:" + +msgid "Time:" +msgstr "സമയം:" + +msgid "Lookup" +msgstr "തിരയുക" + +msgid "Currently:" +msgstr "നിലവിൽ:" + +msgid "Change:" +msgstr "മാറ്റം:" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ml/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ml/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..0abc5e79c0de9a00e92dabdd34bd9e9343e9ae20 GIT binary patch literal 6200 zcmeH~Uu+yl9mfYqp|}A`L(891m>N=&Hg|TCrc{?0ktVg02scr3q!fh2`flvou(xaN z?%DARN+LCcKcOY6fmT%`)KUTsP52HFQ{r{AR1HgL;Z=y-OlQ0n90PVlYZ;R26= zS22E|7|($#89!Q#e^B5v;5(QI^I{#Eep;NQRxgZ~6?0dIi$)!;~hqoAC> z8-zsd2j2#Mt{688Y=Qh#n@&_nK;bh3%DzM3XTbZxI(VU2-w1P|-vSEXPl9sZ4my!@ zHz;y`78E{B@FCC#zX`qu!b&~JW;yR$;AZe7DEoc~PJw>{SAqK>5GgU7(1gV*Ckk@FQ$`27Qv^H;vp&94IG{Iwuk)D}?m-dU{g zE9QOhX6C1h@pr%>^!gsS3HqKxpFwG}Q`!!%S>@2A~LlSj^xSdzSx2hnW~Ad0n-%!v#VC-MwA zu)X-`wqpDNP;4#FpaUB-^16m5xm`ZES*@obzO@ggvhgjtRcT_IkI>|)&^}7T)#_TB z*m*5Y{2-6mUmh*p>NSZ8)+Rcd(5u%p!jxAgOd~bTMc3}oUbS6ScjzgBty8fdsI8sJ zPLisv)1DuAMduiXO?zj6!Y5yp&dlM5{W`W=MqD~{- zuA)6(IIf`^;48==QZBthf9` z^GjPs2Y!O3C$!h+;HuTX?ah`xNusvV5PF!PEThd&32Pi7Zj@J=Zg{*QSb&Oawb|zqNquD)T4GJa;y66 zltE=8H5L1b*1S*HDAUbo#%Z*mJ=J|CAr^(5L{`fqjyqujG%>LkP8yOmgn84S_M06q z(5C69Hr*zC6Eu^m-Z`OX*&263tgO98>PO)^nTjvtG~<&(Qvuq*b>o9$T2d2{tvCr*U2-cMQYn9C>cHOde-(E-X) zWoNUp-^2;3)O7Ozc8CV{nyDyGD`Ux|->lr#nM^A6sHO+@?5^xJ)4q^aq|VgzhT#pv zmEld5^&9o@aBb7Z+lF}tKIJ88r5<}>5_oA8*R*~2C(J>8SCr~4pMWBq?0A!=Qa4_^ zrpLU%o29k&npT=l)rN*Kf}GF0 zKV=FrzMW?;+SzA&Jqyp}*^lh_OrAZRXXoo?fYIhS>_saWTb(^#@4hQKrgxrbhW*8>)-Kp$2^aLX z7NRa<7na2RVp}e~1rNenr!3Veaa;C?eV5+aYf1UVcd}n163f}$co$Cc&J?T&gEMx4 zUSzJSWjV75CxXg_Gn$-~yZcINh|{gtE>#2h4wbUaIrGk!>h&t|U8^XeawN}A+o(H^ zYEM~#Pg{+hOkEpv=gW^5DQ!}{V$%9|=?ECh7Jmum+5)_KB^tLlNkqf(dp;gm1caPeYF1;Pg**2qWWLX1X zUp!Rq6=ObcT_JJoqUvF*CjB|*zjw#|++aO-xf@1*-l{s&VWR*EmRW2x-=S3lXq)Y|L zSV-LZf>(Th-bqlnO6;V`(1qQ|{Ct`Gm!9Mjw2UUHppv$>Hi$@&+hQX*-(|sBhk$d( ziZ0Cdm(wR0zhJ#~*6~7W_jLiW+{#XxvLr~Y5SdGk@I?mB{%1CzSVxa5keI~D%xx7DRCw@SGfLN#%45d@?LR(9%MAr4ODS!PL~g+ByCL~Oj;rdIRP9#Wp(2Mt%PGReNlE1LRe?Ab%^PYvJ zPLVw}!tDJ`BrPxL#m_b|pX&EVUuEF4p%(zh^t~^(iW!AM$xZ$hps%;;Yi~J_8F^AbPd((#(c}ssY39t|$Nr2VtSn z;<_M&FqB^Q6kj)IOWB, 2014 +# Jannis Leidel , 2011 +# MUHAMMED RAMEEZ , 2019 +# Rajeesh Nair , 2012 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-05-11 20:56+0200\n" +"PO-Revision-Date: 2020-05-13 00:53+0000\n" +"Last-Translator: Transifex Bot <>\n" +"Language-Team: Malayalam (http://www.transifex.com/django/django/language/" +"ml/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ml\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, javascript-format +msgid "Available %s" +msgstr "ലഭ്യമായ %s" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" +"ഇതാണ് ലഭ്യമായ %s പട്ടിക. അതില്‍ ചിലത് തിരഞ്ഞെടുക്കാന്‍ താഴെ കളത്തില്‍ നിന്നും ഉചിതമായവ സെലക്ട് " +"ചെയ്ത ശേഷം രണ്ടു കളങ്ങള്‍ക്കുമിടയിലെ \"തെരഞ്ഞെടുക്കൂ\" അടയാളത്തില്‍ ക്ലിക് ചെയ്യുക." + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "ലഭ്യമായ %s പട്ടികയെ ഫില്‍ട്ടര്‍ ചെയ്തെടുക്കാന്‍ ഈ ബോക്സില്‍ ടൈപ്പ് ചെയ്യുക." + +msgid "Filter" +msgstr "Filter" + +msgid "Choose all" +msgstr "എല്ലാം തെരഞ്ഞെടുക്കുക" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "%s എല്ലാം ഒന്നിച്ച് തെരഞ്ഞെടുക്കാന്‍ ക്ലിക് ചെയ്യുക." + +msgid "Choose" +msgstr "തെരഞ്ഞെടുക്കൂ" + +msgid "Remove" +msgstr "നീക്കം ചെയ്യൂ" + +#, javascript-format +msgid "Chosen %s" +msgstr "തെരഞ്ഞെടുത്ത %s" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" +"തെരഞ്ഞെടുക്കപ്പെട്ട %s പട്ടികയാണിത്. അവയില്‍ ചിലത് ഒഴിവാക്കണമെന്നുണ്ടെങ്കില്‍ താഴെ കളത്തില്‍ " +"നിന്നും അവ സെലക്ട് ചെയ്ത് കളങ്ങള്‍ക്കിടയിലുള്ള \"നീക്കം ചെയ്യൂ\" എന്ന അടയാളത്തില്‍ ക്ലിക് ചെയ്യുക." + +msgid "Remove all" +msgstr "എല്ലാം നീക്കം ചെയ്യുക" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "തെരഞ്ഞെടുക്കപ്പെട്ട %s എല്ലാം ഒരുമിച്ച് നീക്കം ചെയ്യാന്‍ ക്ലിക് ചെയ്യുക." + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "%(cnt)sല്‍ %(sel)s തെരഞ്ഞെടുത്തു" +msgstr[1] "%(cnt)sല്‍ %(sel)s എണ്ണം തെരഞ്ഞെടുത്തു" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" +"വരുത്തിയ മാറ്റങ്ങള്‍ സേവ് ചെയ്തിട്ടില്ല. ഒരു ആക്ഷന്‍ പ്രയോഗിച്ചാല്‍ സേവ് ചെയ്യാത്ത മാറ്റങ്ങളെല്ലാം " +"നഷ്ടപ്പെടും." + +msgid "" +"You have selected an action, but you haven’t saved your changes to " +"individual fields yet. Please click OK to save. You’ll need to re-run the " +"action." +msgstr "" + +msgid "" +"You have selected an action, and you haven’t made any changes on individual " +"fields. You’re probably looking for the Go button rather than the Save " +"button." +msgstr "" + +msgid "Now" +msgstr "ഇപ്പോള്‍" + +msgid "Midnight" +msgstr "അര്‍ധരാത്രി" + +msgid "6 a.m." +msgstr "6 a.m." + +msgid "Noon" +msgstr "ഉച്ച" + +msgid "6 p.m." +msgstr "6 p.m" + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "ഒർക്കുക: സെർവർ സമയത്തിനെക്കാളും നിങ്ങൾ %s സമയം മുൻപിലാണ്." +msgstr[1] "ഒർക്കുക: സെർവർ സമയത്തിനെക്കാളും നിങ്ങൾ %s സമയം മുൻപിലാണ്." + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "ഒർക്കുക: സെർവർ സമയത്തിനെക്കാളും നിങ്ങൾ %s സമയം പിന്നിലാണ്." +msgstr[1] "ഒർക്കുക: സെർവർ സമയത്തിനെക്കാളും നിങ്ങൾ %s സമയം പിന്നിലാണ്." + +msgid "Choose a Time" +msgstr "സമയം തിരഞ്ഞെടുക്കുക" + +msgid "Choose a time" +msgstr "സമയം തെരഞ്ഞെടുക്കൂ" + +msgid "Cancel" +msgstr "റദ്ദാക്കൂ" + +msgid "Today" +msgstr "ഇന്ന്" + +msgid "Choose a Date" +msgstr "ഒരു തീയതി തിരഞ്ഞെടുക്കുക" + +msgid "Yesterday" +msgstr "ഇന്നലെ" + +msgid "Tomorrow" +msgstr "നാളെ" + +msgid "January" +msgstr "ജനുവരി" + +msgid "February" +msgstr "ഫെബ്രുവരി" + +msgid "March" +msgstr "മാർച്ച്" + +msgid "April" +msgstr "ഏപ്രിൽ" + +msgid "May" +msgstr "മെയ്" + +msgid "June" +msgstr "ജൂൺ" + +msgid "July" +msgstr "ജൂലൈ" + +msgid "August" +msgstr "ആഗസ്റ്റ്" + +msgid "September" +msgstr "സെപ്റ്റംബർ" + +msgid "October" +msgstr "ഒക്ടോബർ" + +msgid "November" +msgstr "നവംബർ" + +msgid "December" +msgstr "ഡിസംബര്" + +msgctxt "one letter Sunday" +msgid "S" +msgstr "ഞ്ഞ‍" + +msgctxt "one letter Monday" +msgid "M" +msgstr "തി" + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "ചൊ" + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "ബു" + +msgctxt "one letter Thursday" +msgid "T" +msgstr "വ്യാ" + +msgctxt "one letter Friday" +msgid "F" +msgstr "വെ" + +msgctxt "one letter Saturday" +msgid "S" +msgstr "ശ" + +msgid "Show" +msgstr "കാണട്ടെ" + +msgid "Hide" +msgstr "മറയട്ടെ" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/mn/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/mn/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..cf857e049ec58588d43ab868614a3f7d6cd1baa5 GIT binary patch literal 22236 zcmc(l3y@sZdFKycf>FR2f;ZR>_LXc|BWtE5VH4ZKLx6;h48mF@%wkOBR`;Em_Vi=u zhs0RH9!VLH4Fb#H*u;PhEU)YW5+j}?2`{#@n|M?1hRS2NDkMu$YnQh+F1t3B%2Jix z-~T)3-oD*4BOXpwS~~OZd+#~l`Ofz~=l08|z3rQh&kt$8Lp%33oIBwd=RSXu?mBn< zJDqzMI0^n6@HX(h;Dg}jz!$&|foGoT@2>+t#q}4!v%!Z!jei-0wEI8c3E*qsao};M zIj5;k0QLNIQ2pNvil5a1F9&~{>v2&1b_e_#_;#-Mf$sqS2o&8%z!Sko!}F)X8@T>H z_y^$mzvbM?;19sx1UsPC_cx&N32OXnAVb{or+YjDJca8O;Jd+dK&|IWa0PfR$kNvE>sbeik4>QZT?>l80w{TW5fmT0 zz-8cFp!oSA_&)HzhUfna6d%X4$m_v(fY*UHfscXz1df0YL-c;|lrwz)8IYmw5Gej$ z1SPjuLGkx1P<$N&6BmFdfSUIbP<)Pp;OjL5PTV|g2%nbxnsdPDE?ZY^zmg- z>-ZXY8TbwGZQ$R6UjbhQMX!i4YMw)&?C1xe#UA_)BmY+<_1^?^B@W`_G`(`In&h{2NgE_$4U$9`}CF-+Mt!%0(a| zc4vcH=Vw68e=R6FB~biNfTH&$Q1osEKMZ~k90Gp~E(QMy)H>cDc{!g0N(%Utl z=odlBV*(W2>p}5z3wQv$7Zklsi#>mn;Bu~S2Q}_6cs}?e5EZ+(p|p>J?*}naw;61K z<6sW_AE4y-&JQ?uDVPUWfscY$fG>j^z||O?Aeh54d+y_c-KLMr3pM%oNyAZN)F(|r2 zpw_h-6kivBCxaV6^}7Z<5gZM8UAVsk)cS4$<73b(C_DQVlWE?QR(LyE2JYl~Ew~c= z5s0a}e*k|EJbjQkzy^q_-A_RA@k>yA{4*#$oiya_=(j=H(F#y@cmaqi-RD8+VJ8@Y z4}h|}KLJk$|2rr<{aL`*z!SNC2gW1)o&m~VKMejEI1K&>JRYXS*N;K1?|*}c+?{}N zy#rhc68hZvpys~{#C6>cPY#a-jIT5R@I{LFw!F zLGiN>`~r9n_(|~pf$s!AiP0kxcNO?5xCi_cSQ+;7KM9`3b?Y48e-9}Cxf7IJ4uH3U z&xPytEb<7~SAf&tsW^r7^)2uW@Ig>^^*ku~{23@ZzXVyT`@i6O!IcCd&2uTJ=LIkV z%b@t)3#$J;pzP!&Q0x2$Q2FxMHC|6=fZ~4;jKDRZ?Dh-cdKz5I^@E`J`8ikvPrZO# z2JQq8fEQm#+&;#+e*~}O`kyZf@sPm-T#tiV*B#&o!0&?6>kmLw=Kd!rzRz6e<3bM9 zd{=|-1E;_;T-t^&SurxSxTD%&qvex3_Wd zS6okln38K;>fAQ)QLqVq@G{T;onV#gzW~1huG_$O@UOs=!ACDgx8N+O>(710$MG>x z_A~)52EPI>1MdZ4-Tf&DOYYQ-J|A5JDsMdmE(MQ(vWHhe$@w2a(L46v`Z#kcD7#w` zuGfMQ*Vlrm-hCPTDfoTx?cl>#_~!?}7r1^AWa;jko6rULci^9ci#KD#;4i=&xCtYY z+;)M|&kF%x0pG^;v7hzpIsr6)0N=&^OT%?OT;Blx7WZ!lC69+dt?y64V?cdQq^-7Z z-X?G6J7RK&Xo%l^fwqdKPmQ*pMtE`mp0=F!80~%Md+cG?ZJvuOG}Lo3=hU%z~u?-31iH9vd-Og{Vg@;FU)^(5_K znmz|wTps}k!uM_94DCGHcW5`!&Y|f;+OjxsGI&1ia+*HJd9c5C@%KvF z)#2Ww;6t=a!*v3mPriW7@coA%uI%dJx&?k9eE(9w=L7yB_^I&yX>bv3iuMCqiMEmU z2ehYX57G*>PtZ=HM+Vs@yJ=^Nq%qYQCawO9x8TMl)Y6 zaG__lR<&uj!}IO=MpPKfS4ZPw)Myn7aicNPDwij7^LCEw@zHz7b%@vFMyuRR2xM-F z15w}Ndu&O#Y1W$gGS3p8O3kro{krItsk@dAjK`D98?Q{=9TjVFqx#C!oy{n|p5^AE zjd6V}KhcOv%}A>##^tyf7uP_?=%v&fJSgzQU05zh3qD*G)kb()F!6MU6ilcW8VtJ& zi%=;R>E~JX7Y&1awbmSq>pZK};01B3XZP;5xW2X4h=XGE5RvZ?og1{$9ks1rgv}dR zYA!sq_50f*5<3|FA+tm-?io%&O@}6 zes&`o!vbsd$>Gec%49Tw<880ii%GBk>&*HR8}amp!w3vwq!gEnjT;bbeIe`cW4e8F z>F9oo!LaT?m<40Hfk}p;%vX-{^(c>$d|cs?-SI3ckgP423gZzL9m_`ieN%ZV^+LVY zK={y@$d6)aYs=WTTU)D+lVY^?I$Y%Xnq8REg~y zkIjbzL=~b)X`&oQVaDYCJYw_%1D6=#(t)hIZJ8*y>Up`O@3$u4g8t{b6@3Is3_pi! zCIbVjviqY1+-Q5PRW4$b*R@KBv8dH)NU!5e)N4%(P^tBX^xfCO{>gf4P2XyH( z<+&@v&0I<#d1&D~36(kbNvm@LMAiJZ(x`Fc6ASn2jpkqkkH*FPM54`Oadl9JMZw?` zQGP3dgg_P-sTV3W+|hWgO(=sln6_3Qtu>o*)th6&Ped3_=2){(r!|omiWzd86&fj! z^f+is+#Y*odSUYS8K8KYH?M`4#VQluzoj(J%W#$u9- z$*VDuuc(YD#`T#ZIn0^Aj*&C!$qyt)J@b^pNu|Z6&TmG@z#Xfpel~)(#R8uLvc#cO=9%^ zv0*ad!d;&6hGBPkjsM|Ux{93cnJz(}=DQ4DUPCn!Y9)@g<_qKWt;Y5z%5TF9WxiZe z{F)PbRvT_3i8oT=GJ<6kx%34{pxeF1f#YW1CDvq_+OLJ7&FEwBHwjg*svM%iRmu*WY6ld=kRd34OCrNy z@Y+JFUTRL_1C6MG0=<2+W?aT%)W0AnL~tBH^6ch6m0l*v!dQ*+t1mDQyN$Jp)kySxJ@K$`(vEo z{h;lJx;HU4h_y43+>34sjcax$&bnopD4MjU{fT21j6yvIX`EEQU+=;ka z6v+m1i>_PI&DK1Tf>^&fQbKRq>IeJj!&P0b~HY<|e z?EEP~tLRv}W%VQj9fi426uj}(%sU{R{w=NN=p+|fQC$_Jk}QfJO%->UzG6_OJNfPjF@vo=?Ukq z5Ol`;S06$%2Xq!G@*z?uXC-13N3U%qBuvVve2M8TOFUV8HD1l5!aS2C1GgEc9Cn-K zgZv#GrIhb(43axZ+6o<-6oqj#Kzi2Ug8~pVqI|1aTb_)Vze_P+AAg-L<%#s7Y)l+2)uhmE zb)rWFrpf*OMf9w|QGB^t$BN#Nk}ZQ|n;Mh5I&P>9M(bG*_c?-e8kA>ksDx^%siGP_ z31HbG(XUzEv^;esQGAJh7&r{FFZFgKIpm_NOb}wNTq3Q}r(7FV1yARwSQ;5&8)CJO zt!$04knDBlIdIq}?UBvRAM@2oORhN^rARifo3g59aO=fj2}|DMWtIeLF&ILzR-BfU zA=K;Wk1l@WnW}*zciwtB7B0hXrxTR*ykC6||*^!27T#UAVv{FP~#QjrE#N%ZJt%hdvwEbwD&6743{;(G?Z~hc+}u zOU0p!TBD7j&9&iZ(ZENwVCYt`zH46XX;&{=0kt3Eco>g*M(_$<1N zebCV6dcNAALaNn=qs^^)rBxjti!RDH$H!We`O!g!p7jxWR!3VbY-lqndpO!axm7Ed zaGZg$W^-bA@R zN1;O;cT^g~QPrP}HqJZi9Jcm4Bt37S8ZACATD|<7MGk}Od+RjR*~`Bvm%M!H>~0@y zKhv4w?`(U2d#1ggN8LA05Xiob;+Zea zrhSmvd*5l%>j-3K_{(E|^(K3x3wzfEi6fnz(WN_R#TQJpNdVvx~+1`(EvP(%`&%vBIad%P? z6thodO#Wy~SQEAH$nXbW2ii}zpJS=`0rqdK&T<>i=<-tV!?3q=H5>BtjB^ARPfjEVzXB;-p8y%)=m3gTc$LXA9kucIwUsAl=nzZ zVl!wd$tNgGiNk!z^-F<_)436KKA~*JUbEaDy}B4og(_&%(AFFo9zVTrO^^sBofF8>Rilq?C$ znnDC-cmj!)og29`leq)=`;}7Y!DM>iJxD9a@}Kxh=(eE2yl%g2@J`>kCT4~tGrVLN z6ItcD?k%4J7x-;Nw;$_L>QlPR8V~WjkJPX#nQS3~cPTKZ^3B#P^YJ@3n32C9B|6A* z_9{Lt5M7f9<-?K`!9QOqC9L;r!&_5ESeUqm!ERb)p;O9=`QH!ENi^LF%$hLOlz2~k z&PDUSJ%;rpSG?8Lw4b(h`$WX-Dsm8oym#8XintoG+A#68H&4#T)Lb2fESF(c{$q(P z?u|smjGT_w`V2?_B?L{K(jRA8+t4Q%QZu~@Nj}NeXCmJcqW^!V8 zx!qja=bec?1flh)>|e?5=7iJK=3aLdNeJ)(&CFUEUDdxX%&xske57qZ*M2gs0y2v0 zW^+98c8rKRNxqos52rNK!p3k=pEapI`y9XP8_*``_X%4T8lwI}h5RseX&P>@>fqMg zWY*rDQTtxj$X$L66`FjyHC^IbmgtqoGJ$sxal9^D3SX)mdloqlbAF+j zN>n3mVG690rN-${QN{oU1$Z!;dVt#)oPH_eXCZfFS&8`@^;bs;-j?ZjpD&^Pp3jJCcVja4j-KiZm6}tcG&FE9TB5TTeoe6?D`I{> z5fP81vgbRubZ%w(C&hB84K>JqaKRuc^a-2{j*=Li@ua(bsoHg^Cp1EPyj1v-kx44e z7_c3Bu``oJNE`|dQWrLfnGh8+iZW{@&|o8y8^m?cV#S1&#i?(j$U~~BRc1cVq=$@} zOi5PjC8ZLicT}$DNI*lFAWQ?PM3QX`If65lt4~F%)6AU_J!4^Tigko4AQxo|ekD$A z=)wvVVPzf3KFfCeGJ6QfI=*fleONMgu=_;m+s*s%J=gvYia}I8f;9OsEKR?ztty@+ zQIdosjxM9^S+7H{ecbsF0}oPF&w97Va_@qoZO651vx5{rsC|$isAv6gcUTfNefNnr zm6g~QF{s}|9JabYjL1sNZ;{MeP#SSrRvPptr)5=AzG=|tVF6q#)R>J}tkZ6S{Y5s% zWY2(7f<0XpljIU!{xTrBk(FJ}{i5_0zai7hk7mL(Ryl=fp%Af@=P5a1`^mwh!fq8>X%O zgnOk1a~BgTo zFZpQpujP4jPiqqtcZWzzdJ;|Mj3mPLS*|HduCW03N-jxpg!`DGSqZChAXSf|QjW>) zHIXV4V-?CP{?K=BASFaY*n;|_Fv6iU%q#3zVw9DLLfR)A9K1Y31&p>r{J1w^(=(g~ zZ_yMhN*r*^S0C!Fu5oSU3bq;io$rPohLgF32F9ywuaMO<*1F1;SPF9Sm7^_iZZ}&R zO6g2@JqwcfEo+|3j*fSC*-2#fysGb{lGoKksuSj_%NUgnp#Gj}X(3zmf>SA5zZg4eXR&z{QvNq( z$qR}^_*jJZ)Wkr0t7dOXChUv>`>dFpJ9f1Hk%K`=JREg5OR;b`snxX5nLryCNkRtU zR!6k>lDvR8i^^}tO%^==#LBuI>Q@JCuW<5$K-MWYJa=|HrW~6)> z4#Rbb)S0#vXEXSd=G3aK4)od22Pp*|`E?@rZt09m4jz4Z{ji|L+Bn$lobRU;vXf6Ds1+s|5crn=C-T#Kmj_qGpU z8KPix4sy271*V|Qrfs8q9GzkxNvdK(b;df)C_1+V8%d_T%N`m(fvDdD_0(HFBh5=< zG0P7dhTh)+LKhJ)v|oZf290%v{F_GEG8|f0w8CxQSJ8yQfxBX6=1N z2!&bIJS;01a|pN@n?q3CG!1&f+)$1W&SZI8vp6XTY_rbCRIg&As)JQQPW0dnViH^eY0%LVhrgN99knlMZkSdpXiuXh&0!jO|R#&0WU zUHd`qa=fiwcsI_^b55+{OyNjYU=>7~+L&4iGg%SUY^M5g?QdxU3!nZJ(qg$kcASm| zBpDhz{2&fXBccDWMKQVi@;6UMFX2`C9U5kngv9-iH4eW8N=j@gN3trTOGyc>`}_jr zmwaQtA|)(vTdT?q%%<6@GM|aLNIX$lP*%}@zO)a~%l#N^C+pc$ z1KnQuv|3X#dH6j6 z5QJW^!upk2VskHKEu{ME9&khS}8*efz_;WFz8ZTc&6Vwq!2C zo+VKUG?bF`HYXv6^&=xfg4t-Wp~MusFQD*lNw$Y0JEO92u9a);N>KM8AMKO-PSX$i zJdhsDOVoV=L*zXrZ3o_%@RpvRFcId+7QR^V%I+z{6{5P*lQ1z|OEi2TA}*>G^!m7z|7HJGrnNek(oao;-q5C5fA}4(BvMu`*>z1^NFE D)a+nX literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/mn/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/mn/LC_MESSAGES/django.po new file mode 100644 index 0000000000..c5d0cb4487 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/mn/LC_MESSAGES/django.po @@ -0,0 +1,776 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Ankhbayar , 2013 +# Jannis Leidel , 2011 +# jargalan , 2011 +# Turmunkh Batkhuyag, 2023 +# Zorig, 2016 +# Анхбаяр Анхаа , 2013-2016,2018-2019,2021,2023 +# Баясгалан Цэвлээ , 2011,2017 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-09-18 11:41-0300\n" +"PO-Revision-Date: 2023-12-25 07:05+0000\n" +"Last-Translator: Turmunkh Batkhuyag, 2023\n" +"Language-Team: Mongolian (http://app.transifex.com/django/django/language/" +"mn/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: mn\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "Сонгосон %(verbose_name_plural)s-ийг устгах" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "%(items)s ээс %(count)d-ийг амжилттай устгалаа." + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "%(name)s устгаж чадахгүй." + +msgid "Are you sure?" +msgstr "Итгэлтэй байна уу?" + +msgid "Administration" +msgstr "Удирдлага" + +msgid "All" +msgstr "Бүгд " + +msgid "Yes" +msgstr "Тийм" + +msgid "No" +msgstr "Үгүй" + +msgid "Unknown" +msgstr "Тодорхойгүй" + +msgid "Any date" +msgstr "Бүх өдөр" + +msgid "Today" +msgstr "Өнөөдөр" + +msgid "Past 7 days" +msgstr "Өнгөрсөн долоо хоног" + +msgid "This month" +msgstr "Энэ сар" + +msgid "This year" +msgstr "Энэ жил" + +msgid "No date" +msgstr "Огноогүй" + +msgid "Has date" +msgstr "Огноотой" + +msgid "Empty" +msgstr "Хоосон" + +msgid "Not empty" +msgstr "Хоосон биш" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" +"Ажилтан хэрэглэгчийн %(username)s ба нууц үгийг зөв оруулна уу. Хоёр талбарт " +"том жижигээр үсгээр бичих ялгаатай." + +msgid "Action:" +msgstr "Үйлдэл:" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "Өөр %(verbose_name)s нэмэх " + +msgid "Remove" +msgstr "Хасах" + +msgid "Addition" +msgstr "Нэмэгдсэн" + +msgid "Change" +msgstr "Өөрчлөх" + +msgid "Deletion" +msgstr "Устгагдсан" + +msgid "action time" +msgstr "үйлдлийн хугацаа" + +msgid "user" +msgstr "хэрэглэгч" + +msgid "content type" +msgstr "агуулгын төрөл" + +msgid "object id" +msgstr "обектийн id" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/library/functions.html#repr) +msgid "object repr" +msgstr "обектийн хамаарал" + +msgid "action flag" +msgstr "үйлдэлийн тэмдэг" + +msgid "change message" +msgstr "өөрчлөлтийн мэдээлэл" + +msgid "log entry" +msgstr "лог өгөгдөл" + +msgid "log entries" +msgstr "лог өгөгдөлүүд" + +#, python-format +msgid "Added “%(object)s”." +msgstr "Нэмэгдсэн \"%(object)s\"." + +#, python-format +msgid "Changed “%(object)s” — %(changes)s" +msgstr "Өөрчлөгдсөн \"%(object)s\"— %(changes)s" + +#, python-format +msgid "Deleted “%(object)s.”" +msgstr "Устгагдсан \"%(object)s\"." + +msgid "LogEntry Object" +msgstr "Лог бүртгэлийн обект" + +#, python-brace-format +msgid "Added {name} “{object}”." +msgstr "Нэмсэн {name} “{object}”." + +msgid "Added." +msgstr "Нэмэгдсэн." + +msgid "and" +msgstr "ба" + +#, python-brace-format +msgid "Changed {fields} for {name} “{object}”." +msgstr "Changed {fields} for {name} “{object}”." + +#, python-brace-format +msgid "Changed {fields}." +msgstr "Өөрчлөгдсөн {fields}." + +#, python-brace-format +msgid "Deleted {name} “{object}”." +msgstr "Устгасан {name} “{object}”." + +msgid "No fields changed." +msgstr "Өөрчилсөн талбар алга байна." + +msgid "None" +msgstr "Хоосон" + +msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." +msgstr "" +"Нэгээс олныг сонгохын тулд \"Control\" эсвэл Mac компьютер дээр \"Command\" " +"товчоо дарна уу." + +msgid "Select this object for an action - {}" +msgstr "Сонголтоо хийхийн тулд энэ объектыг сонгоно уу - {}" + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully." +msgstr "{name} “{obj}” амжилттай нэмэгдлээ." + +msgid "You may edit it again below." +msgstr "Та дараахийг дахин засах боломжтой" + +#, python-brace-format +msgid "" +"The {name} “{obj}” was added successfully. You may add another {name} below." +msgstr "" +"{name} “{obj}” амжилттай нэмэгдлээ. Та доорх {name}-ийг нэмэх боломжтой." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may edit it again below." +msgstr "" +"{name} \"{obj}\" амжилттай өөрчлөгдлөө. Та доорх талбаруудыг дахин засварлах " +"боломжтой." + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully. You may edit it again below." +msgstr "" +" {name} \"{obj}\" амжилттай нэмэгдлээ. Та доор дахин шинэчлэх боломжтой." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may add another {name} " +"below." +msgstr "" +"\"{name}\" \"{obj}\" амжилттай өөрчлөгдлөө. Доорх {name}-г нэмж оруулна уу." + +#, python-brace-format +msgid "The {name} “{obj}” was changed successfully." +msgstr "{name} \" {obj} \" амжилттай өөрчлөгдлөө." + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" +"Үйлдэл хийхийн тулд Та ядаж 1-ийг сонгох хэрэгтэй. Өөрчилөлт хийгдсэнгүй." + +msgid "No action selected." +msgstr "Үйлдэл сонгоогүй." + +#, python-format +msgid "The %(name)s “%(obj)s” was deleted successfully." +msgstr "%(name)s “%(obj)s” амжилттай устгагдлаа." + +#, python-format +msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" +msgstr "“%(key)s” ID-тай %(name)sбайхгүй байна. Магадгүй устсан уу?" + +#, python-format +msgid "Add %s" +msgstr "%s-ийг нэмэх" + +#, python-format +msgid "Change %s" +msgstr "%s-ийг өөрчлөх" + +#, python-format +msgid "View %s" +msgstr "%s харах " + +msgid "Database error" +msgstr "Өгөгдлийн сангийн алдаа" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "%(count)s %(name)s-ийг амжилттай өөрчиллөө." +msgstr[1] "%(count)s %(name)s-ийг амжилттай өөрчиллөө." + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "Бүгд %(total_count)s сонгогдсон" +msgstr[1] "Бүгд %(total_count)s сонгогдсон" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "%(cnt)s оос 0 сонгосон" + +#, python-format +msgid "Change history: %s" +msgstr "Өөрчлөлтийн түүх: %s" + +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "%(instance)s %(class_name)s" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" +" %(class_name)s төрлийн %(instance)s-ийг устгах гэж байна. Эхлээд дараах " +"холбоотой хамгаалагдсан обектуудыг устгах шаардлагатай: %(related_objects)s" + +msgid "Django site admin" +msgstr "Сайтын удирдлага" + +msgid "Django administration" +msgstr "Удирдлага" + +msgid "Site administration" +msgstr "Сайтын удирдлага" + +msgid "Log in" +msgstr "Нэвтрэх" + +#, python-format +msgid "%(app)s administration" +msgstr "%(app)s удирдлага" + +msgid "Page not found" +msgstr "Хуудас олдсонгүй." + +msgid "We’re sorry, but the requested page could not be found." +msgstr "Уучлаарай, хүссэн хуудас олдсонгүй." + +msgid "Home" +msgstr "Нүүр" + +msgid "Server error" +msgstr "Серверийн алдаа" + +msgid "Server error (500)" +msgstr "Серверийн алдаа (500)" + +msgid "Server Error (500)" +msgstr "Серверийн алдаа (500)" + +msgid "" +"There’s been an error. It’s been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" +"Алдаа гарсан байна. И-мэйлээр админуудад мэдэгдэгдсэн бөгөөд тун удахгүй " +"засах болно. Хамтран ажилласанд баярлалаа." + +msgid "Run the selected action" +msgstr "Сонгосон үйлдэлийг ажилуулах" + +msgid "Go" +msgstr "Гүйцэтгэх" + +msgid "Click here to select the objects across all pages" +msgstr "Бүх хуудаснууд дээрх объектуудыг сонгох" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "Бүгдийг сонгох %(total_count)s %(module_name)s" + +msgid "Clear selection" +msgstr "Сонгосонг цэвэрлэх" + +msgid "Breadcrumbs" +msgstr "Талхны үүрмэг" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "%(name)s хэрэглүүр дэх моделууд." + +msgid "Add" +msgstr "Нэмэх" + +msgid "View" +msgstr "Харах" + +msgid "You don’t have permission to view or edit anything." +msgstr "Та ямар ч харах эсвэл засах эрхгүй байна." + +msgid "" +"First, enter a username and password. Then, you’ll be able to edit more user " +"options." +msgstr "" +"Эхлээд, хэрэглэгчийн нэр болон нууц үгээ оруулна уу. Дараа нь, та бусад " +"хэрэглэгчийн сонголтуудыг засварлах боломжтой болно." + +msgid "Enter a username and password." +msgstr "Хэрэглэгчийн нэр ба нууц үгээ оруулна." + +msgid "Change password" +msgstr "Нууц үг өөрчлөх" + +msgid "Please correct the error below." +msgid_plural "Please correct the errors below." +msgstr[0] "Та доорх алдаануудыг засна уу." +msgstr[1] "Та доорх алдаануудыг засна уу." + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "%(username)s.хэрэглэгчид шинэ нууц үг оруулна уу." + +msgid "Skip to main content" +msgstr "Үндсэн агуулга руу шилжих" + +msgid "Welcome," +msgstr "Тавтай морилно уу" + +msgid "View site" +msgstr "Сайтаас харах" + +msgid "Documentation" +msgstr "Баримтжуулалт" + +msgid "Log out" +msgstr "Гарах" + +#, python-format +msgid "Add %(name)s" +msgstr "%(name)s нэмэх" + +msgid "History" +msgstr "Түүх" + +msgid "View on site" +msgstr "Сайтаас харах" + +msgid "Filter" +msgstr "Шүүлтүүр" + +msgid "Hide counts" +msgstr "Тооцоог нуух" + +msgid "Show counts" +msgstr "Тооцоог харуулах" + +msgid "Clear all filters" +msgstr "Бүх шүүлтүүрийг арилгах" + +msgid "Remove from sorting" +msgstr "Эрэмблэлтээс хасах" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "Эрэмблэх урьтамж: %(priority_number)s" + +msgid "Toggle sorting" +msgstr "Эрэмбэлэлтийг харуул" + +msgid "Toggle theme (current theme: auto)" +msgstr "Загварыг сэлгэх (одоогийн загвар: авто)" + +msgid "Toggle theme (current theme: light)" +msgstr "Загварыг сэлгэх (одоогийн загвар: өдрийн)" + +msgid "Toggle theme (current theme: dark)" +msgstr "Загварыг сэлгэх (одоогийн горим: шөнийн)" + +msgid "Delete" +msgstr "Устгах" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" +"%(object_name)s '%(escaped_object)s'-ийг устгавал холбогдох объект нь устах " +"ч бүртгэл тань дараах төрлийн объектуудийг устгах зөвшөөрөлгүй байна:" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" +" %(object_name)s обектийг устгаж байна. '%(escaped_object)s' холбоотой " +"хамгаалагдсан обектуудыг заавал утсгах хэрэгтэй :" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" +"Та %(object_name)s \"%(escaped_object)s\"-ийг устгахдаа итгэлтэй байна уу? " +"Үүнийг устгавал дараах холбогдох зүйлс нь бүгд устана:" + +msgid "Objects" +msgstr "Бичлэгүүд" + +msgid "Yes, I’m sure" +msgstr "Тийм, би итгэлтэй." + +msgid "No, take me back" +msgstr "Үгүй, намайг буцаа" + +msgid "Delete multiple objects" +msgstr "Олон обектууд устгах" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" +"Сонгосон %(objects_name)s обектуудыг устгасанаар хамаатай бүх обкетууд устах " +"болно. Гэхдээ таньд эрх эдгээр төрлийн обектуудыг утсгах эрх байхгүй байна: " + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" +"%(objects_name)s обектуудыг утсгаж байна дараах холбоотой хамгаалагдсан " +"обектуудыг устгах шаардлагатай:" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" +"Та %(objects_name)s ийг устгах гэж байна итгэлтэй байна? Дараах обектууд " +"болон холбоотой зүйлс хамт устагдах болно:" + +msgid "Delete?" +msgstr "Устгах уу?" + +#, python-format +msgid " By %(filter_title)s " +msgstr " %(filter_title)s -ээр" + +msgid "Summary" +msgstr "Хураангуй" + +msgid "Recent actions" +msgstr "Сүүлд хийсэн үйлдлүүд" + +msgid "My actions" +msgstr "Миний үйлдлүүд" + +msgid "None available" +msgstr "Үйлдэл алга" + +msgid "Added:" +msgstr "Нэмсэн:" + +msgid "Changed:" +msgstr "Өөрчилсөн:" + +msgid "Deleted:" +msgstr "Устгасан:" + +msgid "Unknown content" +msgstr "Тодорхойгүй агуулга" + +msgid "" +"Something’s wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" +"Таны өгөгдлийн санг суулгахад ямар нэг алдаа гарлаа байна. Өгөгдлийн сангийн " +"тохирох хүснэгтүүдийг үүсгэсэн эсэхийг шалгаад, өгөгдлийн санг тохирох " +"хэрэглэгч унших боломжтой эсэхийг шалгаарай." + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" +"Та %(username)s нэрээр нэвтэрсэн байна гэвч энэ хуудасхуу хандах эрх " +"байхгүй байна. Та өөр эрхээр логин хийх үү?" + +msgid "Forgotten your password or username?" +msgstr "Таны мартсан нууц үг эсвэл нэрвтэр нэр?" + +msgid "Toggle navigation" +msgstr "Жолоодлого солбих" + +msgid "Sidebar" +msgstr "Хажуугийн самбар" + +msgid "Start typing to filter…" +msgstr "Шүүхийн тулд бичиж эхлэх..." + +msgid "Filter navigation items" +msgstr "Жолоодлогын зүйлсийг шүүх" + +msgid "Date/time" +msgstr "Огноо/цаг" + +msgid "User" +msgstr "Хэрэглэгч" + +msgid "Action" +msgstr "Үйлдэл" + +msgid "entry" +msgid_plural "entries" +msgstr[0] "оролт" +msgstr[1] "оролт" + +msgid "" +"This object doesn’t have a change history. It probably wasn’t added via this " +"admin site." +msgstr "" +"Энэ объектод өөрчлөлтийн түүх байхгүй байна. Админ сайтаар нэмээгүй байх " +"магадлалтай." + +msgid "Show all" +msgstr "Бүгдийг харуулах" + +msgid "Save" +msgstr "Хадгалах" + +msgid "Popup closing…" +msgstr "Хааж байна..." + +msgid "Search" +msgstr "Хайлт" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "%(counter)s үр дүн" +msgstr[1] "%(counter)s үр дүн" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "Нийт %(full_result_count)s" + +msgid "Save as new" +msgstr "Шинээр хадгалах" + +msgid "Save and add another" +msgstr "Хадгалаад өөрийг нэмэх" + +msgid "Save and continue editing" +msgstr "Хадгалаад нэмж засах" + +msgid "Save and view" +msgstr "Хадгалаад харах." + +msgid "Close" +msgstr "Хаах" + +#, python-format +msgid "Change selected %(model)s" +msgstr "Сонгосон %(model)s-ийг өөрчлөх" + +#, python-format +msgid "Add another %(model)s" +msgstr "Өөр %(model)s нэмэх" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "Сонгосон %(model)s устгах" + +#, python-format +msgid "View selected %(model)s" +msgstr "View selected %(model)s" + +msgid "Thanks for spending some quality time with the web site today." +msgstr "Өнөөдөр вэб сайтад цаг заваа зарцуулсанд баярлалаа." + +msgid "Log in again" +msgstr "Ахин нэвтрэх " + +msgid "Password change" +msgstr "Нууц үгийн өөрчлөлт" + +msgid "Your password was changed." +msgstr "Нууц үг тань өөрчлөгдлөө." + +msgid "" +"Please enter your old password, for security’s sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" +"Та аюулгүй байдлын үүднээс хуучин нууц үгээ оруулна уу, тэгээд шинэ нууц " +"үгээ хоёр удаа оруулнаар бид бичсэн эсэхийг баталгаажуулах боломжтой." + +msgid "Change my password" +msgstr "Нууц үгээ солих" + +msgid "Password reset" +msgstr "Нууц үг шинэчилэх" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "Та нууц үгтэй боллоо. Одоо бүртгэлд нэвтрэх боломжтой." + +msgid "Password reset confirmation" +msgstr "Нууц үг шинэчилэхийг баталгаажуулах" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" +"Шинэ нууц үгээ хоёр удаа оруулна уу. Ингэснээр нууц үгээ зөв бичиж байгаа " +"эсэхийг тань шалгах юм. " + +msgid "New password:" +msgstr "Шинэ нууц үг:" + +msgid "Confirm password:" +msgstr "Нууц үгээ батлах:" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"Нууц үг авах холбоос болохгүй байна. Үүнийг аль хэдийнэ хэрэглэснээс болсон " +"байж болзошгүй. Шинэ нууц үг авахаар хүсэлт гаргана уу. " + +msgid "" +"We’ve emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" +"Бид таны нууц үг тохируулах зааварчилгааг и-мэйлээр илгээлээ. Хэрэв таны " +"оруулсан и-мэйл дээр акаунт байвал хурдан авах ёстой." + +msgid "" +"If you don’t receive an email, please make sure you’ve entered the address " +"you registered with, and check your spam folder." +msgstr "" +"Хэрэв та имэйл аваагүй бол та бүртгэлтэй хаяг оруулсан эсэхийг шалгана уу, " +"мөн спам хавтасыг шалгана уу." + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" +"%(site_name)s сайтанд бүртгүүлсэн эрхийн нууц үгийг сэргээх хүсэлт гаргасан " +"учир энэ имэйл ийг та хүлээн авсан болно. " + +msgid "Please go to the following page and choose a new password:" +msgstr "Дараах хуудас руу орон шинэ нууц үг сонгоно уу:" + +msgid "Your username, in case you’ve forgotten:" +msgstr "Та хэрэглэгчийн нэрээ мартсан бол:" + +msgid "Thanks for using our site!" +msgstr "Манай сайтыг хэрэглэсэнд баярлалаа!" + +#, python-format +msgid "The %(site_name)s team" +msgstr "%(site_name)s баг" + +msgid "" +"Forgotten your password? Enter your email address below, and we’ll email " +"instructions for setting a new one." +msgstr "" +"Нууц үгээ мартсан уу? Доор имэйл хаягаа оруулна уу, бид шинэ нууц үг " +"тохируулах зааврыг имэйлээр илгээнэ." + +msgid "Email address:" +msgstr "Имэйл хаяг:" + +msgid "Reset my password" +msgstr "Нууц үгээ шинэчлэх" + +msgid "Select all objects on this page for an action" +msgstr "Энэ хуудас дээрх бүх объектуудыг үйлдэл хийхийн тулд сонгоно уу" + +msgid "All dates" +msgstr "Бүх огноо" + +#, python-format +msgid "Select %s" +msgstr "%s-г сонго" + +#, python-format +msgid "Select %s to change" +msgstr "Өөрчлөх %s-г сонгоно уу" + +#, python-format +msgid "Select %s to view" +msgstr "Харахын тулд %s сонгоно уу" + +msgid "Date:" +msgstr "Огноо:" + +msgid "Time:" +msgstr "Цаг:" + +msgid "Lookup" +msgstr "Хайх" + +msgid "Currently:" +msgstr "Одоогийнх:" + +msgid "Change:" +msgstr "Өөрчилөлт:" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/mn/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/mn/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..9f58362d57dbe0934779cd5a9ea9aae87f892c61 GIT binary patch literal 5228 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 BV4DB{ literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/mn/LC_MESSAGES/djangojs.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/mn/LC_MESSAGES/djangojs.po new file mode 100644 index 0000000000..5fda297502 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/mn/LC_MESSAGES/djangojs.po @@ -0,0 +1,218 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Tsolmon , 2012 +# Zorig, 2014,2018 +# Анхбаяр Анхаа , 2011-2012,2015,2019 +# Ганзориг БП , 2011 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-05-17 11:50+0200\n" +"PO-Revision-Date: 2019-02-13 09:19+0000\n" +"Last-Translator: Анхбаяр Анхаа \n" +"Language-Team: Mongolian (http://www.transifex.com/django/django/language/" +"mn/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: mn\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, javascript-format +msgid "Available %s" +msgstr "Боломжтой %s" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" +"Энэ %s жагсаалт нь боломжит утгын жагсаалт. Та аль нэгийг нь сонгоод \"Сонгох" +"\" дээр дарж нөгөө хэсэгт оруулах боломжтой." + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "Энэ нүдэнд бичээд дараах %s жагсаалтаас шүүнэ үү. " + +msgid "Filter" +msgstr "Шүүлтүүр" + +msgid "Choose all" +msgstr "Бүгдийг нь сонгох" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "Бүгдийг сонгох бол %s дарна уу" + +msgid "Choose" +msgstr "Сонгох" + +msgid "Remove" +msgstr "Хас" + +#, javascript-format +msgid "Chosen %s" +msgstr "Сонгогдсон %s" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" +"Энэ %s сонгогдсон утгуудыг жагсаалт. Та аль нэгийг нь хасахыг хүсвэл сонгоох " +"\"Хас\" дээр дарна уу." + +msgid "Remove all" +msgstr "Бүгдийг арилгах" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "%s ийн сонгоод бүгдийг нь арилгана" + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "%(sel)s ээс %(cnt)s сонгосон" +msgstr[1] "%(sel)s ээс %(cnt)s сонгосон" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" +"Хадгалаагүй өөрчлөлтүүд байна. Энэ үйлдэлийг хийвэл өөрчлөлтүүд устах болно." + +msgid "" +"You have selected an action, but you haven't saved your changes to " +"individual fields yet. Please click OK to save. You'll need to re-run the " +"action." +msgstr "" +"Та 1 үйлдлийг сонгосон байна, гэвч та өөрийн өөрчлөлтүүдээ тодорхой " +"талбаруудад нь оруулагүй байна. OK дарж сануулна уу. Энэ үйлдлийг та дахин " +"хийх шаардлагатай." + +msgid "" +"You have selected an action, and you haven't made any changes on individual " +"fields. You're probably looking for the Go button rather than the Save " +"button." +msgstr "" +"Та 1 үйлдлийг сонгосон байна бас та ямарваа өөрчлөлт оруулсангүй. Та Save " +"товчлуур биш Go товчлуурыг хайж байгаа бололтой." + +msgid "Now" +msgstr "Одоо" + +msgid "Midnight" +msgstr "Шөнө дунд" + +msgid "6 a.m." +msgstr "06 цаг" + +msgid "Noon" +msgstr "Үд дунд" + +msgid "6 p.m." +msgstr "18 цаг" + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "Та серверийн цагаас %s цагийн түрүүнд явж байна" +msgstr[1] "Та серверийн цагаас %s цагийн түрүүнд явж байна" + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "Та серверийн цагаас %s цагаар хоцорч байна" +msgstr[1] "Та серверийн цагаас %s цагаар хоцорч байна" + +msgid "Choose a Time" +msgstr "Цаг сонгох" + +msgid "Choose a time" +msgstr "Цаг сонгох" + +msgid "Cancel" +msgstr "Болих" + +msgid "Today" +msgstr "Өнөөдөр" + +msgid "Choose a Date" +msgstr "Өдөр сонгох" + +msgid "Yesterday" +msgstr "Өчигдөр" + +msgid "Tomorrow" +msgstr "Маргааш" + +msgid "January" +msgstr "1-р сар" + +msgid "February" +msgstr "2-р сар" + +msgid "March" +msgstr "3-р сар" + +msgid "April" +msgstr "4-р сар" + +msgid "May" +msgstr "5-р сар" + +msgid "June" +msgstr "6-р сар" + +msgid "July" +msgstr "7-р сар" + +msgid "August" +msgstr "8-р сар" + +msgid "September" +msgstr "9-р сар" + +msgid "October" +msgstr "10-р сар" + +msgid "November" +msgstr "11-р сар" + +msgid "December" +msgstr "12-р сар" + +msgctxt "one letter Sunday" +msgid "S" +msgstr "Н" + +msgctxt "one letter Monday" +msgid "M" +msgstr "Д" + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "М" + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "Л" + +msgctxt "one letter Thursday" +msgid "T" +msgstr "П" + +msgctxt "one letter Friday" +msgid "F" +msgstr "Ба" + +msgctxt "one letter Saturday" +msgid "S" +msgstr "Бя" + +msgid "Show" +msgstr "Үзэх" + +msgid "Hide" +msgstr "Нуух" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/mr/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/mr/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..51f8c63d965677ed59b9234e991d50564073a15f GIT binary patch literal 21488 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" +msgstr "सर्व्हर त्रुटी (500)" + +msgid "" +"There’s been an error. It’s been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" +"त्रुटी आली आहे व ती विपत्राद्वारे सांकेतिकस्थळ व्यवस्थापकांकडे कळविण्यात आली आहे आणि लवकरच " +"ती सुधारली जाईल. आपल्या सहनशीलतेसाठी धन्यवाद." + +msgid "Run the selected action" +msgstr "निवडलेली क्रिया चालवा" + +msgid "Go" +msgstr "जा" + +msgid "Click here to select the objects across all pages" +msgstr "पानावरील सर्व वस्तूंची निवड करण्यासाठी येथे टिचकी मारा" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "सर्व %(total_count)s %(module_name)s निवडा" + +msgid "Clear selection" +msgstr "निवड काढा" + +msgid "Breadcrumbs" +msgstr "ब्रेडक्रम्ब्स" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "" + +msgid "Add" +msgstr "जोडा" + +msgid "View" +msgstr "पहा" + +msgid "You don’t have permission to view or edit anything." +msgstr "तुम्हाला काहीही पाहण्याची किंवा संपादित करण्याची परवानगी नाही." + +msgid "" +"First, enter a username and password. Then, you’ll be able to edit more user " +"options." +msgstr "" +"पहिलं, वापरकर्तानाव आणि गुप्तशब्द नमूद करा. मग, आपण अधिक वापरकर्ता पर्यायांचे संपादन करू " +"शकता." + +msgid "Enter a username and password." +msgstr "वापरकर्तानाव आणि गुप्तशब्द नमूद करा." + +msgid "Change password" +msgstr "गुप्तशब्द बदला" + +msgid "Please correct the error below." +msgid_plural "Please correct the errors below." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "%(username)s वापरकर्त्यासाठी नवीन गुप्तशब्द नमूद करा " + +msgid "Skip to main content" +msgstr "मुख्य सामुग्रीवर जा" + +msgid "Welcome," +msgstr "स्वागत आहे," + +msgid "View site" +msgstr "संकेतस्थळ पहा" + +msgid "Documentation" +msgstr "दस्तऐवज" + +msgid "Log out" +msgstr "बाहेर पडा" + +#, python-format +msgid "Add %(name)s" +msgstr "" + +msgid "History" +msgstr "इतिहास" + +msgid "View on site" +msgstr "संकेतस्थळावर पहा" + +msgid "Filter" +msgstr "गाळणी" + +msgid "Hide counts" +msgstr "गणना लपवा" + +msgid "Show counts" +msgstr "गणना दाखवा" + +msgid "Clear all filters" +msgstr "सर्व गाळण्या साफ करा" + +msgid "Remove from sorting" +msgstr "सोडवा सोडवा" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "" + +msgid "Toggle sorting" +msgstr "" + +msgid "Toggle theme (current theme: auto)" +msgstr "थीम खुंटी बदला (सध्याची थीम: स्वयंप्रेरित)" + +msgid "Toggle theme (current theme: light)" +msgstr "थीम खुंटी बदला (सध्याची थीम: उजेड)" + +msgid "Toggle theme (current theme: dark)" +msgstr "थीम खुंटी बदला (सध्याची थीम: काळोख)" + +msgid "Delete" +msgstr "घालवा" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" +"\"%(escaped_object)s\" %(object_name)sनावाच्या वस्तू घालवताना त्याच्या संबंधित " +"वस्तूही घालवाव्या लागतील" + +msgid "Objects" +msgstr "" + +msgid "Yes, I’m sure" +msgstr "होय, मला खात्री आहे" + +msgid "No, take me back" +msgstr "नको, मला मागे न्या" + +msgid "Delete multiple objects" +msgstr "एकाधिक वस्तू घालवा" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" +"निवडलेले %(objects_name)s घालवण्यासाठी खालील संरक्षित संबंधित वस्तू डिलीट करणे आवश्यक " +"आहे." + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" +"तुम्हाला खात्री आहे की तुम्ही निवडलेले %(objects_name)s हटवायला याची खात्री आहे का? " +"खात्री आहे की खालील वस्तूंचे आणि त्यांच्या संबंधित घटक हटवले जातील:" + +msgid "Delete?" +msgstr "घालवायचं ?" + +#, python-format +msgid " By %(filter_title)s " +msgstr "" + +msgid "Summary" +msgstr "सारांश" + +msgid "Recent actions" +msgstr "अलीकडच्या क्रिया" + +msgid "My actions" +msgstr "माझ्या क्रिया" + +msgid "None available" +msgstr "काहीही उपलब्ध नाही" + +msgid "Added:" +msgstr "जोडले गेले:" + +msgid "Changed:" +msgstr "बदलले." + +msgid "Deleted:" +msgstr "घालवले." + +msgid "Unknown content" +msgstr "अज्ञात सामुग्री" + +msgid "" +"Something’s wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" +"तुमच्या माहितीगठ्ठा स्थापनेत काहीतरी चुक आहे. खात्री करा की योग्य डेटाबेस तक्ते तयार केलेले " +"आहेत आणि खात्री करा की योग्य वापरकर्त्या माहितीगठ्ठा वाचू शकतो." + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" +"तुम्ही %(username)s म्हणून प्रमाणित केले आहे, परंतु हे पानात शिरकाव करण्यास अधिकृत नाही. " +"तुम्हाला वेगळ्या खात्यात प्रवेश करायला आवडेल का?" + +msgid "Forgotten your password or username?" +msgstr "तुमचा गुप्तशब्द किंवा वापरकर्तानाव विसरलात का?" + +msgid "Toggle navigation" +msgstr "टॉगल नेविगेशन" + +msgid "Sidebar" +msgstr "बाजूभिंत" + +msgid "Start typing to filter…" +msgstr "प्रविष्ट करण्यासाठी टाइप करण्याची सुरुवात करा ..." + +msgid "Filter navigation items" +msgstr "" + +msgid "Date/time" +msgstr "दिनांक/वेळ" + +msgid "User" +msgstr "वापरकर्ता" + +msgid "Action" +msgstr "क्रिया" + +msgid "entry" +msgid_plural "entries" +msgstr[0] "" +msgstr[1] "" + +msgid "" +"This object doesn’t have a change history. It probably wasn’t added via this " +"admin site." +msgstr "" +"या वस्तूचा कोणताही बदलाचा इतिहास नाही. कदाचित तो व्यवस्थापक मार्गे नव्हता जोडला गेला " +"असावा." + +msgid "Show all" +msgstr "सर्व दाखवा" + +msgid "Save" +msgstr "साठवा" + +msgid "Popup closing…" +msgstr "पॉपअप बंद होत आहे..." + +msgid "Search" +msgstr "शोधा" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "" + +msgid "Save as new" +msgstr "नवीन म्हणून साठवा" + +msgid "Save and add another" +msgstr "साठवा आणि आणखी एक जोडा" + +msgid "Save and continue editing" +msgstr "साठवा आणि संपादन सुरू ठेवा" + +msgid "Save and view" +msgstr "साठवा आणि पहा" + +msgid "Close" +msgstr "बंद" + +#, python-format +msgid "Change selected %(model)s" +msgstr "निवडलेले %(model)s बदला" + +#, python-format +msgid "Add another %(model)s" +msgstr "अजून एक %(model)s जोडा" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "निवडलेले %(model)s घालवा" + +#, python-format +msgid "View selected %(model)s" +msgstr "निवडलेले %(model)s पहा" + +msgid "Thanks for spending some quality time with the web site today." +msgstr "आज संकेतस्थळावर अमुल्य वेळ घालवल्याबद्दल धन्यवाद." + +msgid "Log in again" +msgstr "पुन्हा प्रवेश करा" + +msgid "Password change" +msgstr "गुप्तशब्द बदला" + +msgid "Your password was changed." +msgstr "तुमचा गुप्तशब्द बदलला गेला आहे." + +msgid "" +"Please enter your old password, for security’s sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" +"सुरक्षेसाठी कृपया आपला जुना गुप्तशब्द नमूद करा, आणि नंतर आपला नवीन गुप्तशब्द दोनदा नमूद " +"करा जेणेकरून तुम्ही गुप्तशब्द अचूक नमूद केला आहे की नाही ह्याची आम्ही पडताळणी करू." + +msgid "Change my password" +msgstr "माझा गुप्तशब्द बदला" + +msgid "Password reset" +msgstr "गुप्तशब्द पुन्हस्थापना" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "तुमचा गुप्तशब्द जोडला आहे. आपण आता प्रवेश करू शकता." + +msgid "Password reset confirmation" +msgstr "गुप्तशब्द पुन्हस्थापना निश्चित" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" +"कृपया आपला नवीन गुप्तशब्द दोनदा नमूद करा, जेणेकरून तुम्ही तो योग्य नमूद केला आहे का याची " +"आम्ही पडताळणी करू." + +msgid "New password:" +msgstr "नवीन गुप्तशब्द:" + +msgid "Confirm password:" +msgstr "निश्चित गुप्तशब्द:" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"गुप्तशब्द पुन्हस्थापना दुवा अवैध आहे, कदाचित तो आधीच वापरला गेलेला आहे. कृपया नवीन गुप्तशब्द " +"पुन्हस्थापनेची विनंती करा." + +msgid "" +"We’ve emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" +"आपल्याला आपला गुप्तशब्द पुन्हस्थापीत करण्याच्या सूचना विपत्र केल्या आहेत, जर नमूद केलेल्या " +"विपत्रासह खाते उपलब्ध असेल तर आपल्याला ते लवकरच मिळायला पाहीजे." + +msgid "" +"If you don’t receive an email, please make sure you’ve entered the address " +"you registered with, and check your spam folder." +msgstr "" +"जर तुम्हाला विपत्र मिळत नसेल तर कृपया खाते नोंदवलेला विपत्र तुम्ही योग्य नमूद केलाय का " +"याची खात्री करा आणि तुमचा स्पॅम फोल्डर तपासा." + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" +"तुम्हाला हा विपत्र मिळत आहे कारण तुम्ही %(site_name)s या संकेतस्थळावरील तुमच्या " +"वापरकर्ता खात्यासाठी गुप्तशब्द पुन्हस्थापनेची विनंती केली होती." + +msgid "Please go to the following page and choose a new password:" +msgstr "कृपया खालील पानावर जा आणि नवीन गुप्तशब्द निवडा." + +msgid "Your username, in case you’ve forgotten:" +msgstr "तुमचे वापरकर्तानाव, जर तुम्ही विसरला असाल तर:" + +msgid "Thanks for using our site!" +msgstr "आमच्या संकेतस्थळाचा वापर केल्याबद्दल आभार!" + +#, python-format +msgid "The %(site_name)s team" +msgstr "%(site_name)s संघ" + +msgid "" +"Forgotten your password? Enter your email address below, and we’ll email " +"instructions for setting a new one." +msgstr "" +"तुमचा गुप्तशब्द विसरलात का? तुमचा विपत्रपत्ता खाली नमूद करा. नवीन गुप्तशब्द " +"ठरवण्यासाठीच्या सूचना आम्ही तुम्हाला विपत्र करू." + +msgid "Email address:" +msgstr "विपत्र पत्ता:" + +msgid "Reset my password" +msgstr "माझा गुप्तशब्द पुन्हस्थापन करा" + +msgid "Select all objects on this page for an action" +msgstr "क्रिया करण्यासाठी या पानावरील सर्व घटक निवडा." + +msgid "All dates" +msgstr "सर्व दिनांक" + +#, python-format +msgid "Select %s" +msgstr "%s निवडा" + +#, python-format +msgid "Select %s to change" +msgstr "बदलण्यासाठी %s निवडा" + +#, python-format +msgid "Select %s to view" +msgstr "पाहण्यासाठी %s निवडा" + +msgid "Date:" +msgstr "दिनांक:" + +msgid "Time:" +msgstr "वेळ:" + +msgid "Lookup" +msgstr "शोध" + +msgid "Currently:" +msgstr "सध्या:" + +msgid "Change:" +msgstr "बदला:" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/mr/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/mr/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..183b3d14e9fb10c1d39cdf7eb3080abd7a0a7b50 GIT binary patch literal 468 zcmYLF!A=4(5Y^~ukDfi$!~+C}wnPFJF-C+01Cfx`d)+Nd$!@!8i{OWN@#Fj!XTiWr zUOF#*Go9Dpi}UXj#3}L;d5t_n-XJS~1MyesFmHG-roX)+tl zRcT#-sn2u@PwUJ>Yz2vCuQ3dqk^#N&EQ1oH#dsSS2i_r^3)X2c&KMeDu0C}&^XR(; z&VaSCMetUGA)<-&0b(bO&t- zGL=q-r6#py2&JHOv)MF5HBm3rwwc(1miwHZmUJJF=KmvT;b=XYj;F)p5AY_72G#^+ zaI>!xBL=k%w9KV8J(4V?^D6Y;;t_O@zUsY&axgTBO|{7c>3-;NSXGe1MYDYEWDX\n" +"Language-Team: Marathi (http://www.transifex.com/projects/p/django/language/" +"mr/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: mr\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, javascript-format +msgid "Available %s" +msgstr "" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "" + +msgid "Filter" +msgstr "" + +msgid "Choose all" +msgstr "" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "" + +msgid "Choose" +msgstr "" + +msgid "Remove" +msgstr "" + +#, javascript-format +msgid "Chosen %s" +msgstr "" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" + +msgid "Remove all" +msgstr "" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "" + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "" +msgstr[1] "" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" + +msgid "" +"You have selected an action, but you haven't saved your changes to " +"individual fields yet. Please click OK to save. You'll need to re-run the " +"action." +msgstr "" + +msgid "" +"You have selected an action, and you haven't made any changes on individual " +"fields. You're probably looking for the Go button rather than the Save " +"button." +msgstr "" + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "" +msgstr[1] "" + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "" +msgstr[1] "" + +msgid "Now" +msgstr "" + +msgid "Clock" +msgstr "" + +msgid "Choose a time" +msgstr "" + +msgid "Midnight" +msgstr "" + +msgid "6 a.m." +msgstr "" + +msgid "Noon" +msgstr "" + +msgid "Cancel" +msgstr "" + +msgid "Today" +msgstr "" + +msgid "Calendar" +msgstr "" + +msgid "Yesterday" +msgstr "" + +msgid "Tomorrow" +msgstr "" + +msgid "" +"January February March April May June July August September October November " +"December" +msgstr "" + +msgid "S M T W T F S" +msgstr "" + +msgid "Show" +msgstr "" + +msgid "Hide" +msgstr "" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ms/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ms/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..f558c1be6eb481d8ef1c94cdf501dbc2959c0985 GIT binary patch literal 16840 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ms/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ms/LC_MESSAGES/django.po new file mode 100644 index 0000000000..e69439eb60 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ms/LC_MESSAGES/django.po @@ -0,0 +1,721 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Jafry Hisham, 2021 +# Mariusz Felisiak , 2021 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-09-21 10:22+0200\n" +"PO-Revision-Date: 2021-12-06 07:41+0000\n" +"Last-Translator: Mariusz Felisiak \n" +"Language-Team: Malay (http://www.transifex.com/django/django/language/ms/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ms\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "Padam pilihan %(verbose_name_plural)s" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "%(count)d %(items)s berjaya dipadamkan" + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "%(name)s tidak boleh dipadamkan" + +msgid "Are you sure?" +msgstr "Adakah anda pasti?" + +msgid "Administration" +msgstr "Pentadbiran" + +msgid "All" +msgstr "Semua" + +msgid "Yes" +msgstr "Ya" + +msgid "No" +msgstr "Tidak" + +msgid "Unknown" +msgstr "Tidak diketahui" + +msgid "Any date" +msgstr "Sebarang tarikh" + +msgid "Today" +msgstr "Hari ini" + +msgid "Past 7 days" +msgstr "7 hari lalu" + +msgid "This month" +msgstr "Bulan ini" + +msgid "This year" +msgstr "Tahun ini" + +msgid "No date" +msgstr "Tiada tarikh" + +msgid "Has date" +msgstr "Mempunyai tarikh" + +msgid "Empty" +msgstr "Kosong" + +msgid "Not empty" +msgstr "Tidak kosong" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" +"Sila masukkan %(username)s dan kata-laluan bagi akaun staf. Kedua-dua medan " +"berkemungkinan kes-sensitif." + +msgid "Action:" +msgstr "Tindakan" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "Tambah %(verbose_name)s" + +msgid "Remove" +msgstr "Buang" + +msgid "Addition" +msgstr "Tambahan" + +msgid "Change" +msgstr "Tukar" + +msgid "Deletion" +msgstr "Pemadaman" + +msgid "action time" +msgstr "masa tindakan" + +msgid "user" +msgstr "pengguna" + +msgid "content type" +msgstr "jenis kandungan" + +msgid "object id" +msgstr "id objek" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/library/functions.html#repr) +msgid "object repr" +msgstr "repr objek" + +msgid "action flag" +msgstr "bendera tindakan" + +msgid "change message" +msgstr "tukar mesej" + +msgid "log entry" +msgstr "entri log" + +msgid "log entries" +msgstr "entri log" + +#, python-format +msgid "Added “%(object)s”." +msgstr "\"%(object)s\" ditambah" + +#, python-format +msgid "Changed “%(object)s” — %(changes)s" +msgstr "\"%(object)s\" ditukar - %(changes)s" + +#, python-format +msgid "Deleted “%(object)s.”" +msgstr "\"%(object)s\" dipadam." + +msgid "LogEntry Object" +msgstr "Objek EntriLog" + +#, python-brace-format +msgid "Added {name} “{object}”." +msgstr "{name} “{object}” ditambah." + +msgid "Added." +msgstr "Ditambah." + +msgid "and" +msgstr "dan" + +#, python-brace-format +msgid "Changed {fields} for {name} “{object}”." +msgstr "“{object}” {name} untuk {fields} telah ditukar." + +#, python-brace-format +msgid "Changed {fields}." +msgstr "{fields} telah ditukar." + +#, python-brace-format +msgid "Deleted {name} “{object}”." +msgstr "“{object}” {name} telah dipadamkan" + +msgid "No fields changed." +msgstr "Tiada medan diubah." + +msgid "None" +msgstr "Tiada" + +msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." +msgstr "" +"Tekan \"Control\", atau \"Command pada Mac untuk memilih lebih daripada satu." + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully." +msgstr "{name} \"{obj}\" telah berjaya ditambah." + +msgid "You may edit it again below." +msgstr "Anda boleh edit semula dibawah." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was added successfully. You may add another {name} below." +msgstr "" +"{name} \"{obj}\" telah berjaya ditambah. Anda boleh menambah {name} lain " +"dibawah." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may edit it again below." +msgstr "{name} \"{obj}\" berjaya diubah. Anda boleh edit semula dibawah." + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully. You may edit it again below." +msgstr "{name} \"{obj}\" berjaya ditambah. Anda boleh edit semula dibawah." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may add another {name} " +"below." +msgstr "{name} \"{obj}\" berjaya diubah. Anda boleh tambah {name} lain dibawah" + +#, python-brace-format +msgid "The {name} “{obj}” was changed successfully." +msgstr "{name} \"{obj}\" berjaya diubah." + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" +"Item-item perlu dipilih mengikut turutan untuk tindakan lanjut. Tiada item-" +"item yang diubah." + +msgid "No action selected." +msgstr "Tiada tindakan dipilih." + +#, python-format +msgid "The %(name)s “%(obj)s” was deleted successfully." +msgstr "%(name)s \"%(obj)s\" berjaya dipadam." + +#, python-format +msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" +msgstr "" +"%(name)s dengan ID \"%(key)s\" tidak wujud. Mungkin ia telah dipadamkan?" + +#, python-format +msgid "Add %s" +msgstr "Tambah %s" + +#, python-format +msgid "Change %s" +msgstr "Tukar %s" + +#, python-format +msgid "View %s" +msgstr "Lihat %s" + +msgid "Database error" +msgstr "Masalah pangkalan data" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "%(count)s %(name)s berjaya ditukar." + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "Kesemua %(total_count)s dipilih" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "0 daripada %(cnt)s dipilih" + +#, python-format +msgid "Change history: %s" +msgstr "Sejarah penukaran: %s" + +#. Translators: Model verbose name and instance representation, +#. suitable to be an item in a list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "%(class_name)s %(instance)s" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" +"Memadam %(class_name)s %(instance)s memerlukan pemadaman objek berkaitan " +"yang dilindungi: %(related_objects)s" + +msgid "Django site admin" +msgstr "Pentadbiran laman Django" + +msgid "Django administration" +msgstr "Pentadbiran Django" + +msgid "Site administration" +msgstr "Pentadbiran laman" + +msgid "Log in" +msgstr "Log masuk" + +#, python-format +msgid "%(app)s administration" +msgstr "Pentadbiran %(app)s" + +msgid "Page not found" +msgstr "Laman tidak dijumpai" + +msgid "We’re sorry, but the requested page could not be found." +msgstr "Maaf, tetapi laman yang diminta tidak dijumpai." + +msgid "Home" +msgstr "Utama" + +msgid "Server error" +msgstr "Masalah pelayan" + +msgid "Server error (500)" +msgstr "Masalah pelayan (500)" + +msgid "Server Error (500)" +msgstr "Masalah pelayan (500)" + +msgid "" +"There’s been an error. It’s been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" +"Terdapat masalah. Ia telah dilaporkan kepada pentadbir laman melalui emel " +"dan sepatutnya dibaiki sebentar lagi. Kesabaran anda amat dihargai." + +msgid "Run the selected action" +msgstr "Jalankan tindakan yang dipilih" + +msgid "Go" +msgstr "Teruskan" + +msgid "Click here to select the objects across all pages" +msgstr "Klik disini untuk memilih objek-objek disemua laman" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "Pilih kesemua %(total_count)s%(module_name)s" + +msgid "Clear selection" +msgstr "Padam pilihan" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "Model didalam aplikasi %(name)s" + +msgid "Add" +msgstr "Tambah" + +msgid "View" +msgstr "Lihat" + +msgid "You don’t have permission to view or edit anything." +msgstr "Anda tidak mempunyai kebenaran untuk melihat atau edit apa-apa." + +msgid "" +"First, enter a username and password. Then, you’ll be able to edit more user " +"options." +msgstr "" +"Pertama sekali, masukkan nama pengguna dan kata laluan. Selepas itu, anda " +"boleh edit pilihan pengguna yang lain" + +msgid "Enter a username and password." +msgstr "Masukkan nama pengguna dan kata laluan." + +msgid "Change password" +msgstr "Tukar kata laluan" + +msgid "Please correct the error below." +msgstr "Sila betulkan ralat di bawah." + +msgid "Please correct the errors below." +msgstr "Sila betulkan ralat-ralat di bawah." + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "Masukkan kata lalauan bagi pengguna %(username)s" + +msgid "Welcome," +msgstr "Selamat datang," + +msgid "View site" +msgstr "Lihat laman" + +msgid "Documentation" +msgstr "Dokumentasi" + +msgid "Log out" +msgstr "Log keluar" + +#, python-format +msgid "Add %(name)s" +msgstr "Tambah %(name)s" + +msgid "History" +msgstr "Sejarah" + +msgid "View on site" +msgstr "Lihat di laman" + +msgid "Filter" +msgstr "Tapis" + +msgid "Clear all filters" +msgstr "Kosongkan kesemua tapisan" + +msgid "Remove from sorting" +msgstr "Buang daripada penyusunan" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "Keutamaan susunan: %(priority_number)s" + +msgid "Toggle sorting" +msgstr "Togol penyusunan" + +msgid "Delete" +msgstr "Buang" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" +"Memadam %(object_name)s '%(escaped_object)s' akan menyebabkan pembuangan " +"objek-objek yang berkaitan, tetapi akaun anda tidak mempunyai kebenaran " +"untuk memadam jenis-jenis objek-objek berikut:" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" +"Membuang %(object_name)s '%(escaped_object)s' memerlukan pembuangan objek-" +"objek berkaitan yang dilindungi:" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" +"Adakah anda pasti anda ingin membuang %(object_name)s \"%(escaped_object)s" +"\"? Semua item-item berkaitan berikut akan turut dibuang:" + +msgid "Objects" +msgstr "Objek-objek" + +msgid "Yes, I’m sure" +msgstr "Ya, saya pasti" + +msgid "No, take me back" +msgstr "Tidak, bawa saya kembali" + +msgid "Delete multiple objects" +msgstr "Buang pelbagai objek" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" +"Membuang %(objects_name)s akan menyebabkan pembuangan objek-objek yang " +"berkaitan, tetapi akaun anda tidak mempunyai kebenaran to membuang jenis " +"objek-objek berikut:" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" +"Membuang %(objects_name)s memerlukan pembuangan objek-objek berkaitan yang " +"dilindungi:" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" +"Adakah anda pasti untuk membuang %(objects_name)s yang dipilih? Segala objek-" +"objek berikut dan item-item yang berkaitan akan turut dibuang:" + +msgid "Delete?" +msgstr "Buang?" + +#, python-format +msgid " By %(filter_title)s " +msgstr "Daripada %(filter_title)s" + +msgid "Summary" +msgstr "Rumusan" + +msgid "Recent actions" +msgstr "Tindakan terkini" + +msgid "My actions" +msgstr "Tindakan saya" + +msgid "None available" +msgstr "Tiada yang tersedia" + +msgid "Unknown content" +msgstr "Kandungan tidak diketahui" + +msgid "" +"Something’s wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" +"Nampaknya ada masalah dengan pemasangan pangkalan data anda. Pastikan jadual " +"pangkalan yang bersesuaian telah di cipta, dan pastikan pangkalan data " +"tersebut boleh dibaca oleh pengguna yang bersesuaian." + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" +"Anda telah disahkan sebagai %(username)s, tetapi anda tidak dibenarkan untuk " +"mengakses ruangan ini. Adakah anda ingin log masuk menggunakan akaun lain?" + +msgid "Forgotten your password or username?" +msgstr "Terlupa kata laluan atau nama pengguna anda?" + +msgid "Toggle navigation" +msgstr "Togol navigasi" + +msgid "Start typing to filter…" +msgstr "Mulakan menaip untuk menapis..." + +msgid "Filter navigation items" +msgstr "Tapis item-item navigasi" + +msgid "Date/time" +msgstr "Tarikh/masa" + +msgid "User" +msgstr "Pengguna" + +msgid "Action" +msgstr "Tindakan" + +msgid "" +"This object doesn’t have a change history. It probably wasn’t added via this " +"admin site." +msgstr "" +"Objek ini tidak mempunyai sejarah penukaran. Ini mungkin bermaksud ia tidak " +"ditambah menggunakan laman admin ini." + +msgid "Show all" +msgstr "Tunjuk semua" + +msgid "Save" +msgstr "Simpan" + +msgid "Popup closing…" +msgstr "Popup sedang ditutup..." + +msgid "Search" +msgstr "Cari" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "%(counter)s keputusan" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "%(full_result_count)s jumlah" + +msgid "Save as new" +msgstr "Simpan sebagai baru" + +msgid "Save and add another" +msgstr "Simpan dan tambah lagi" + +msgid "Save and continue editing" +msgstr "Simpan dan teruskan mengedit" + +msgid "Save and view" +msgstr "Simpan dan lihat" + +msgid "Close" +msgstr "Tutup" + +#, python-format +msgid "Change selected %(model)s" +msgstr "Tukar %(model)s yang dipilih" + +#, python-format +msgid "Add another %(model)s" +msgstr "Tambah %(model)s" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "Buang %(model)s pilihan" + +msgid "Thanks for spending some quality time with the web site today." +msgstr "Terima kasih kerana meluangkan masa di laman sesawang ini hari ini." + +msgid "Log in again" +msgstr "Log masuk semula" + +msgid "Password change" +msgstr "Pertukaran kata laluan" + +msgid "Your password was changed." +msgstr "Kata laluan anda telah ditukarkan" + +msgid "" +"Please enter your old password, for security’s sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" +"Untuk tujuan keselamatan, sila masukkan kata laluan lama, kemudian masukkan " +"kata laluan baru dua kali supaya kami dapat memastikan anda memasukkannya " +"dengan betul." + +msgid "Change my password" +msgstr "Tukar kata laluan saya" + +msgid "Password reset" +msgstr "Tetap semula kata laluan" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "Kata laluan anda telah ditetapkan. Sila log masuk." + +msgid "Password reset confirmation" +msgstr "Pengesahan tetapan semula kata laluan" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" +"Sila masukkan kata laluan baru anda dua kali supaya kami adpat memastikan " +"anda memasukkannya dengan betul." + +msgid "New password:" +msgstr "Kata laluan baru:" + +msgid "Confirm password:" +msgstr "Sahkan kata laluan:" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"Pautan tetapan semula kata laluan tidak sah, mungkin kerana ia telah " +"digunakan. Sila minta tetapan semula kata laluan yang baru." + +msgid "" +"We’ve emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" +"Kami telah menghantar panduan untuk menetapkan kata laluan anda melalui " +"emel, sekiranya emel yang anda masukkan itu wujud. Anda sepatutnya " +"menerimanya sebentar lagi." + +msgid "" +"If you don’t receive an email, please make sure you’ve entered the address " +"you registered with, and check your spam folder." +msgstr "" +"Jika anda tidak menerima emel, sila pastikan anda telah memasukkan alamat " +"emel yang telah didaftarkan, dan semak folder spam anda." + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" +"Anda menerima emel ini kerana anda telah memohon untuk menetapkan semula " +"kata laluan bagi akaun pengguna di %(site_name)s" + +msgid "Please go to the following page and choose a new password:" +msgstr "Sila ke ruangan berikut dan pilih kata laluan baru:" + +msgid "Your username, in case you’ve forgotten:" +msgstr "Nama pengguna anda, sekiranya anda terlupa:" + +msgid "Thanks for using our site!" +msgstr "Terima kasih kerana menggunakan laman kami!" + +#, python-format +msgid "The %(site_name)s team" +msgstr "Pasukan %(site_name)s" + +msgid "" +"Forgotten your password? Enter your email address below, and we’ll email " +"instructions for setting a new one." +msgstr "" +"Lupa kata laluan anda? Masukkan alamat emel anda dibawah, dan kami akan " +"menghantar cara untuk menetapkan kata laluan baru." + +msgid "Email address:" +msgstr "Alamat emel:" + +msgid "Reset my password" +msgstr "Tetap semula kata laluan saya" + +msgid "All dates" +msgstr "Semua tarikh" + +#, python-format +msgid "Select %s" +msgstr "Pilih %s" + +#, python-format +msgid "Select %s to change" +msgstr "Pilih %s untuk diubah" + +#, python-format +msgid "Select %s to view" +msgstr "Pilih %s untuk lihat" + +msgid "Date:" +msgstr "Tarikh:" + +msgid "Time:" +msgstr "Masa:" + +msgid "Lookup" +msgstr "Carian" + +msgid "Currently:" +msgstr "Kini:" + +msgid "Change:" +msgstr "Tukar:" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ms/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ms/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..65e0050970c461715fa270eec9f60bdca3666597 GIT binary patch literal 5018 zcmbuCU94P19l!@&0dK{RqWA?k))rgn?(J={)U8$eb?JwQjHN}kOYtfqahGuLc#;_4HGoJ`0*l7Bp4q^{te-3{F zpM#IXy$mAr{t3!>uW;KBUxU)`W^T{G+u+miWjKQOGx*2hAK)k8>+nJg}^zeW(nAOC`wto{wf-Wxtx`{O3a6lyb+_S*xuLWWRxLQGQk1RjDSzXZiU=ipY@ zgL~j3Q2h9E;P0V~`%2)eQ1tj~sJ{Uves2c;J@6k;=6@T?JlB0lsRg(R-VF~xnI{YU zE|hV90A;>Mq3HPpl>W~^@x$}*1^6O-4u12)^*HZ9$&c$lqEs7hf->GBd={R9FTuCq zui*2WYrVfgFhu_c1G|AMf#(B#U>3L<_?^Iq0>2;lLr56aj{+ZsEOGT%s6QU~WN3dX z)SnJSRPB&kxWt!R!t(+YTO|)aOZhwn^DDpJ23wTRQDpspnIievq(~mfg$t@&m1l{) z_-i{w@>4GH`{cSeJV*@Wx~oQ&t2#UjWDnaz5gYeX_EE(DlZ$YvFH&S}ekn8(0!4bL zZJ~Yuet~j(sLQ&PwIT75>rTp7D7&S?CHWwi?2~fMQzUnGQtqHge(j>j`jkCRF5FvR z+qUO6-jVBcMQ_{Q^97GI*j`~Hb**=MwP__SwO5Y>2S=HU)xok~=7l=AYFuo(vDMph zb=dfxjn&~nn&vh@8-2tSQ?-surfS7>Ew1|J)>nhYt~b<0s(aON+Qc!<+7vovmXF|ayzIi6n8W-7p~%KpTR zCo##>#Om%iWRdfI>6&Qgt0B7S1?-5^HEl43H(vK7XhBYIsS{-j9?cNy+G5QjBeNH4 zsiwQlTUS(SJR9U8@bgj1N zivCpRY)&r9aFSUALmp37Bu>+&SGd>o%0)0{)GQKP_}(B2wNT=ILa&UAWp)Lvb4)G9qTwvs{pK|WGkM&4@Z|pLHEp1mqsR*H_M_;{jPOw^$^mR zs+ZF@lD2GJL40zVf_iL=mOc|(liNBs^y!o0J?THuo^|gnqtTq%W>(hP)vlRRtn~Gy zS9XYvTv2UP6VDu9sZ^HXrW{>qJUh~wLxnC&BF&4IGTm-wS6ezseKFA0X4v39+g@#t z4R*&48G=#9ncwx!fd+tPH~vMEYg5{>0cTFXlE zlD5vE%yNE>Cx>O{0DU$eH}y=(VEbAjJpy|AZ!_wKuPam{_zrZBNOQ}w9sy2F6OLEVJ6 zauXhtjmO+3rIBH(xd!TF?1sAZMLE=oO_-eR6bboW^M%GgX4sk$>XvwR{q2VQSek2#Tv)#U%PhLta`uHi8v#0Su+qd5uFF>Zu0)6SS=t(UyIy2puASVodO1qra> z`P}9unLP{-A>Q3usYs_Lxz598}aC;$Ke literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ms/LC_MESSAGES/djangojs.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ms/LC_MESSAGES/djangojs.po new file mode 100644 index 0000000000..6d86502864 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ms/LC_MESSAGES/djangojs.po @@ -0,0 +1,264 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Jafry Hisham, 2021 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-01-15 09:00+0100\n" +"PO-Revision-Date: 2021-11-16 13:42+0000\n" +"Last-Translator: Jafry Hisham\n" +"Language-Team: Malay (http://www.transifex.com/django/django/language/ms/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ms\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#, javascript-format +msgid "Available %s" +msgstr "%s tersedia" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" +"Ini adalah senarai %s yang tersedia. Anda boleh memilih beberapa dengan " +"memilihnya di dalam kotak dibawah dan kemudian klik pada anak panah \"Pilih" +"\" diantara dua kotak itu." + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "Taip didalam kotak untuk menapis senarai %s yang tersedia." + +msgid "Filter" +msgstr "Tapis" + +msgid "Choose all" +msgstr "Pilih semua" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "Klik untuk memlih semua %s serentak." + +msgid "Choose" +msgstr "Pilih" + +msgid "Remove" +msgstr "Buang" + +#, javascript-format +msgid "Chosen %s" +msgstr "%s dipilh" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" +"Ini adalah senarai %s yang dipilih. Anda boleh membuangnya dengan memilihnya " +"pada kotak dibawah dan kemudian klik pada anak panah \"Buang\" diantara dua " +"kotak itu." + +msgid "Remove all" +msgstr "Buang semua" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "Klik untuk membuang serentak semua %s yang dipilih." + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "%(sel)s daripada %(cnt)s dipilih" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" +"Anda mempunyai perubahan yang belum disimpan pada medan-medan individu yang " +"boleh di-edit. Sekiranya anda melakukan sebarang tindakan, penukaran yang " +"tidak disimpan akan hilang." + +msgid "" +"You have selected an action, but you haven’t saved your changes to " +"individual fields yet. Please click OK to save. You’ll need to re-run the " +"action." +msgstr "" +"Anda telah memlih tindakan, tetapi anda belum menyimpan perubahan yang " +"dilakukan pada medan-medan individu. Sila klik OK to untuk simpan. Anda " +"perlu melakukan semula tindakan tersebut." + +msgid "" +"You have selected an action, and you haven’t made any changes on individual " +"fields. You’re probably looking for the Go button rather than the Save " +"button." +msgstr "" +"Anda telah memilih sesuatu tindakan, dan belum membuat perubahan pada medan-" +"medan individu. Anda mungkin sedang mencari butang Pergi dan bukannya butang " +"Simpan." + +msgid "Now" +msgstr "Sekarang" + +msgid "Midnight" +msgstr "Tengah malam" + +msgid "6 a.m." +msgstr "6 pagi" + +msgid "Noon" +msgstr "Tengahari" + +msgid "6 p.m." +msgstr "6 malam" + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "Nota: Anda %s jam ke depan daripada masa pelayan." + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "Nota: Anda %s jam ke belakang daripada masa pelayan." + +msgid "Choose a Time" +msgstr "Pilih Masa" + +msgid "Choose a time" +msgstr "Pilih masa" + +msgid "Cancel" +msgstr "Batal" + +msgid "Today" +msgstr "Hari ini" + +msgid "Choose a Date" +msgstr "Pilih Tarikh" + +msgid "Yesterday" +msgstr "Semalam" + +msgid "Tomorrow" +msgstr "Esok" + +msgid "January" +msgstr "Januari" + +msgid "February" +msgstr "Februari" + +msgid "March" +msgstr "Mac" + +msgid "April" +msgstr "Arpil" + +msgid "May" +msgstr "Mei" + +msgid "June" +msgstr "Jun" + +msgid "July" +msgstr "Julai" + +msgid "August" +msgstr "Ogos" + +msgid "September" +msgstr "September" + +msgid "October" +msgstr "Oktober" + +msgid "November" +msgstr "November" + +msgid "December" +msgstr "Disember" + +msgctxt "abbrev. month January" +msgid "Jan" +msgstr "Jan" + +msgctxt "abbrev. month February" +msgid "Feb" +msgstr "Feb" + +msgctxt "abbrev. month March" +msgid "Mar" +msgstr "Mar" + +msgctxt "abbrev. month April" +msgid "Apr" +msgstr "Apr" + +msgctxt "abbrev. month May" +msgid "May" +msgstr "Mei" + +msgctxt "abbrev. month June" +msgid "Jun" +msgstr "Jun" + +msgctxt "abbrev. month July" +msgid "Jul" +msgstr "Jul" + +msgctxt "abbrev. month August" +msgid "Aug" +msgstr "Ogo" + +msgctxt "abbrev. month September" +msgid "Sep" +msgstr "Sep" + +msgctxt "abbrev. month October" +msgid "Oct" +msgstr "Okt" + +msgctxt "abbrev. month November" +msgid "Nov" +msgstr "Nov" + +msgctxt "abbrev. month December" +msgid "Dec" +msgstr "Dis" + +msgctxt "one letter Sunday" +msgid "S" +msgstr "A" + +msgctxt "one letter Monday" +msgid "M" +msgstr "I" + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "Se" + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "R" + +msgctxt "one letter Thursday" +msgid "T" +msgstr "K" + +msgctxt "one letter Friday" +msgid "F" +msgstr "J" + +msgctxt "one letter Saturday" +msgid "S" +msgstr "Sa" + +msgid "Show" +msgstr "Tunjuk" + +msgid "Hide" +msgstr "Sorok" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/my/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/my/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..c22fe6cd049bf318295dc51d1c2bf7a9d76d5f4f GIT binary patch literal 3677 zcmb7_S&tpX6@bf_EyE6hu+v~e#!Jt=W7cUe*w|y^$P*mTH6$StY37z^8hRPJ`+9r@ zLOlo&HXy)Y5K9t)5CRDYV=3TZXL(5;c!=^ADN-V}#18-=@tp5e)t!woF|Dcl)u}pl zwmRMO--}N_q}29XTmN#3sz9Jo^k8X!Sj({cI)rJA0WR6 z&xS{!od2U+|0}#0`E$qrzzdMSgkoQvp;R9@8;adapxCF8}IlmsFsDIq+>t8{s*I6{%74Rk~=Qcu#Zv=8ZiZD$)%b?`Tb$#pcSXs%qfpHUK6=RSgeb9R( zwgyA)PWl4#rcawt9;wBT%uK24pwxZ^gX@}ke#lIEt>3L&30E`Z{%8Y}uf#6-N-m^m zo{JnWgx4@6?==jcG52ww4AU1}x9JzD%>YBbFLFOK&!(|5%2H(!s7>v*4DZGQBvBd_ zWgc3MI98kD*lUNSW;5-Ync6%NrsLW{j@boof|FU^4dyH*U2ifhim5Db_p}zsf!f^3 zbDfrPH&9!`GJG&Bw5Rht%SF_UGD@_Wv8`iWA{gAMwmd`}nHSCvdP_FeNw8;A7*4_{ zMx~wWq6pO1C@yubwq@#W8?3rJ!~BkH+>26!tW(15;m)M`X~tiw)h?Z6d$k%3P73&(z&^LQF!MTEGl+V+wd zc9JB_yQ)Qny(CM^2|Mi)jA~JzK((@V*j2mJhtq5-Rl5t4yidntB)3}qg3Aljw%VCz z4-vJ$z3tzt^MW1-ytb)f-!46w<)uGTj7M$%uFiPjx3a+N+j&pR-<)exN?&dx@YXa3 zZ}*#n{@{=|cw2DG(5mKOvx%a=OYe=u<~+Tjo?dfRlc#S-Sd@M%57QzJ>6O6yNtn`b z-VPnLb?mJp8pMsU5eK4lPqu+G>3Am`*M3WfN#Nbp$rDYB^iP!KWYB0#O-&8ZuxSzP z(fbC-xM6eZA$G?bNw=}0Z)E$(@ND*j1I@n8)RT7cTir?0EA_szF&T$Zx>jy8FLb$n zcWbME$E=?C+M{!SI33H{Q92%YcRU!CGhqf^((T(Bck(dyw`O@#1YSC6#A5y6TF*|` zH`n&5x_YawKB}ujb@f?YJzZBH*VTu0^`sG}>*{!2Rm@LSFF^67x;kKve_B_+t*bxv ztR4HVJ!#{*daAB|Ustc!)hBg@^H+Lim}BOs+4?i_qWZRp^H?u_4v76XZMepgJ+ZhR zma&67k|xH=OgK#H3r%2^;+&XY8SD4xckS7X$OT6)8vFbr;*rxQHEF(FCNzQ~9CUwU zY}gnVIY$sA@;$T{v0=)1RBn%Uu%4&`ksp>dYRC;7@9iMYXfek*4aCIeDlv0rVHq29 z%pA5?yNH%}BfK|EnO>dox%ldxEFUx-^Mui~?ZO=UMD#tH2~~UZ^h{-Z+m+cH!xb6Q zoZJU_@|M^Z;5MlR4vCt%9FrWZZ+`h>*;Yo{mS)3;tC3w^*c@nK%)WuIBTxp8SeaLf zZjkx6H+b({_|^g~Yb#Qj_I2+hd$|3bsgQU^1~$xTvudMSs6-U@R%~Cm3`mFE(IrU= z!uP|vaUDPdp=cBM7*CufL|Z(Z(NSX4z9}c|N^?vyLC-sx4UFR)XRn#xdEIE=Hv3Po zo_?yHuK08R3jgo1Q!v~=Yt(An{;Nz?Y$s5mPfq2N#uncGtYAw`pJ, 2013-2015 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-01-19 16:49+0100\n" +"PO-Revision-Date: 2017-09-19 16:40+0000\n" +"Last-Translator: Jannis Leidel \n" +"Language-Team: Burmese (http://www.transifex.com/django/django/language/" +"my/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: my\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "" + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "" + +msgid "Are you sure?" +msgstr "" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "" + +msgid "Administration" +msgstr "စီမံခန့်ခွဲမှု" + +msgid "All" +msgstr "အားလုံး" + +msgid "Yes" +msgstr "ဟုတ်" + +msgid "No" +msgstr "မဟုတ်" + +msgid "Unknown" +msgstr "အမည်မသိ" + +msgid "Any date" +msgstr "နှစ်သက်ရာရက်စွဲ" + +msgid "Today" +msgstr "ယနေ့" + +msgid "Past 7 days" +msgstr "" + +msgid "This month" +msgstr "ယခုလ" + +msgid "This year" +msgstr "ယခုနှစ်" + +msgid "No date" +msgstr "" + +msgid "Has date" +msgstr "" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" + +msgid "Action:" +msgstr "လုပ်ဆောင်ချက်:" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "" + +msgid "Remove" +msgstr "ဖယ်ရှား" + +msgid "action time" +msgstr "" + +msgid "user" +msgstr "" + +msgid "content type" +msgstr "" + +msgid "object id" +msgstr "" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/3/library/functions.html#repr) +msgid "object repr" +msgstr "" + +msgid "action flag" +msgstr "" + +msgid "change message" +msgstr "" + +msgid "log entry" +msgstr "" + +msgid "log entries" +msgstr "" + +#, python-format +msgid "Added \"%(object)s\"." +msgstr "" + +#, python-format +msgid "Changed \"%(object)s\" - %(changes)s" +msgstr "" + +#, python-format +msgid "Deleted \"%(object)s.\"" +msgstr "" + +msgid "LogEntry Object" +msgstr "" + +#, python-brace-format +msgid "Added {name} \"{object}\"." +msgstr "" + +msgid "Added." +msgstr "" + +msgid "and" +msgstr "နှင့်" + +#, python-brace-format +msgid "Changed {fields} for {name} \"{object}\"." +msgstr "" + +#, python-brace-format +msgid "Changed {fields}." +msgstr "" + +#, python-brace-format +msgid "Deleted {name} \"{object}\"." +msgstr "" + +msgid "No fields changed." +msgstr "" + +msgid "None" +msgstr "တစ်ခုမှမဟုတ်" + +msgid "" +"Hold down \"Control\", or \"Command\" on a Mac, to select more than one." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was added successfully. You may edit it again below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was added successfully. You may add another {name} " +"below." +msgstr "" + +#, python-brace-format +msgid "The {name} \"{obj}\" was added successfully." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was changed successfully. You may edit it again below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was changed successfully. You may add another {name} " +"below." +msgstr "" + +#, python-brace-format +msgid "The {name} \"{obj}\" was changed successfully." +msgstr "" + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" + +msgid "No action selected." +msgstr "" + +#, python-format +msgid "The %(name)s \"%(obj)s\" was deleted successfully." +msgstr "" + +#, python-format +msgid "%(name)s with ID \"%(key)s\" doesn't exist. Perhaps it was deleted?" +msgstr "" + +#, python-format +msgid "Add %s" +msgstr "ထည့်သွင်း %s" + +#, python-format +msgid "Change %s" +msgstr "ပြောင်းလဲ %s" + +msgid "Database error" +msgstr "အချက်အလက်အစုအမှား" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "" + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "" + +#, python-format +msgid "Change history: %s" +msgstr "မှတ်တမ်းပြောင်းလဲ: %s" + +#. Translators: Model verbose name and instance representation, +#. suitable to be an item in a list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" + +msgid "Django site admin" +msgstr "" + +msgid "Django administration" +msgstr "ဒီဂျန်ဂိုစီမံခန့်ခွဲမှု" + +msgid "Site administration" +msgstr "ဆိုက်စီမံခန့်ခွဲမှု" + +msgid "Log in" +msgstr "ဖွင့်ဝင်" + +#, python-format +msgid "%(app)s administration" +msgstr "" + +msgid "Page not found" +msgstr "" + +msgid "We're sorry, but the requested page could not be found." +msgstr "" + +msgid "Home" +msgstr "ပင်မ" + +msgid "Server error" +msgstr "ဆာဗာအမှားပြ" + +msgid "Server error (500)" +msgstr "ဆာဗာအမှားပြ (၅၀၀)" + +msgid "Server Error (500)" +msgstr "ဆာဗာအမှားပြ (၅၀၀)" + +msgid "" +"There's been an error. It's been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" + +msgid "Run the selected action" +msgstr "" + +msgid "Go" +msgstr "သွား" + +msgid "Click here to select the objects across all pages" +msgstr "" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "" + +msgid "Clear selection" +msgstr "" + +msgid "" +"First, enter a username and password. Then, you'll be able to edit more user " +"options." +msgstr "" + +msgid "Enter a username and password." +msgstr "" + +msgid "Change password" +msgstr "စကားဝှက်ပြောင်း" + +msgid "Please correct the error below." +msgstr "" + +msgid "Please correct the errors below." +msgstr "" + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "" + +msgid "Welcome," +msgstr "ကြိုဆို၊ " + +msgid "View site" +msgstr "" + +msgid "Documentation" +msgstr "စာရွက်စာတမ်း" + +msgid "Log out" +msgstr "ဖွင့်ထွက်" + +#, python-format +msgid "Add %(name)s" +msgstr "" + +msgid "History" +msgstr "မှတ်တမ်း" + +msgid "View on site" +msgstr "" + +msgid "Filter" +msgstr "စီစစ်မှု" + +msgid "Remove from sorting" +msgstr "" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "" + +msgid "Toggle sorting" +msgstr "" + +msgid "Delete" +msgstr "ပယ်ဖျက်" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" + +msgid "Objects" +msgstr "" + +msgid "Yes, I'm sure" +msgstr "" + +msgid "No, take me back" +msgstr "" + +msgid "Delete multiple objects" +msgstr "" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" + +msgid "Change" +msgstr "ပြောင်းလဲ" + +msgid "Delete?" +msgstr "ပယ်ဖျက်?" + +#, python-format +msgid " By %(filter_title)s " +msgstr "" + +msgid "Summary" +msgstr "အကျဉ်းချုပ်" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "" + +msgid "Add" +msgstr "ထည့်သွင်း" + +msgid "You don't have permission to edit anything." +msgstr "" + +msgid "Recent actions" +msgstr "" + +msgid "My actions" +msgstr "" + +msgid "None available" +msgstr "" + +msgid "Unknown content" +msgstr "" + +msgid "" +"Something's wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" + +msgid "Forgotten your password or username?" +msgstr "" + +msgid "Date/time" +msgstr "ရက်စွဲ/အချိန်" + +msgid "User" +msgstr "အသုံးပြုသူ" + +msgid "Action" +msgstr "လုပ်ဆောင်ချက်" + +msgid "" +"This object doesn't have a change history. It probably wasn't added via this " +"admin site." +msgstr "" + +msgid "Show all" +msgstr "" + +msgid "Save" +msgstr "သိမ်းဆည်း" + +msgid "Popup closing..." +msgstr "" + +#, python-format +msgid "Change selected %(model)s" +msgstr "" + +#, python-format +msgid "Add another %(model)s" +msgstr "" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "" + +msgid "Search" +msgstr "ရှာဖွေ" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "" + +msgid "Save as new" +msgstr "" + +msgid "Save and add another" +msgstr "" + +msgid "Save and continue editing" +msgstr "" + +msgid "Thanks for spending some quality time with the Web site today." +msgstr "" + +msgid "Log in again" +msgstr "" + +msgid "Password change" +msgstr "" + +msgid "Your password was changed." +msgstr "" + +msgid "" +"Please enter your old password, for security's sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" + +msgid "Change my password" +msgstr "စကားဝှက်ပြောင်း" + +msgid "Password reset" +msgstr "" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "" + +msgid "Password reset confirmation" +msgstr "" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" + +msgid "New password:" +msgstr "" + +msgid "Confirm password:" +msgstr "" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" + +msgid "" +"We've emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" + +msgid "" +"If you don't receive an email, please make sure you've entered the address " +"you registered with, and check your spam folder." +msgstr "" + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" + +msgid "Please go to the following page and choose a new password:" +msgstr "" + +msgid "Your username, in case you've forgotten:" +msgstr "" + +msgid "Thanks for using our site!" +msgstr "" + +#, python-format +msgid "The %(site_name)s team" +msgstr "" + +msgid "" +"Forgotten your password? Enter your email address below, and we'll email " +"instructions for setting a new one." +msgstr "" + +msgid "Email address:" +msgstr "အီးမေးလ်လိပ်စာ:" + +msgid "Reset my password" +msgstr "" + +msgid "All dates" +msgstr "ရက်စွဲအားလုံး" + +#, python-format +msgid "Select %s" +msgstr "ရွေးချယ် %s" + +#, python-format +msgid "Select %s to change" +msgstr "ပြောင်းလဲရန် %s ရွေးချယ်" + +msgid "Date:" +msgstr "ရက်စွဲ:" + +msgid "Time:" +msgstr "အချိန်:" + +msgid "Lookup" +msgstr "ပြန်ကြည့်" + +msgid "Currently:" +msgstr "လက်ရှိ:" + +msgid "Change:" +msgstr "ပြောင်းလဲ:" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/my/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/my/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..000b8bcb2dd32a1ec40f47d057804348251ae5c6 GIT binary patch literal 3268 zcmdUvTaOe)6vtZyF9Tk{`z4_S*KkSC&a85q6$7kn#IU--k%Y(IncCUL?ygODFT=bw z1~riwA%amc1Ro6xUShxi^5O^Z$wVI{X=3~gCcgNqs-Bq@CW4U{JJbEII_K0m|8uFi zvV75Thv#wLr+9zk9pat8jStV(+Z|^kxDC7$?0`$btk}O_;4$!C6?_bg z2&(a2Q2RYq;3ZJU{~6T&uYzmAKMMIOlzZUif|KAOlGO2kT4McO1uwGy6V&qad@ytF zb$B{#Ha1-HfIaaE}YkA5Z7n?MDR;zqzL?kkki6jkWE?aRdXWr zI$d&!3Zzl9$Sw7^ze@xRv#8b)y)0u2vmcR~e~PFm!jz{l50ux7+AeHoMi$qPn5> ze05!gr?ksUQnwy^Q4)BmifiH(FN(-$mt=|p@d9kvZVk+~>_^k;Mb1R6Ij<$%y7a=D z*ghABGLd5SOq$NthKJkjb~)7^{b_li+)&}L&8Z7PaeO%J46i9o?3~!q&%Ro&l*Uw) z$_Q4}xF%A0ARV3!JU<#`0=+nq>6SO@lVpnnjNo2D9*o5Ic`CjZ+oMg$}x+WKLMP&z#!NH+j6Mo, 2013 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-05-17 23:12+0200\n" +"PO-Revision-Date: 2017-09-19 16:41+0000\n" +"Last-Translator: Jannis Leidel \n" +"Language-Team: Burmese (http://www.transifex.com/django/django/language/" +"my/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: my\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#, javascript-format +msgid "Available %s" +msgstr "%s ကိုရယူနိုင်" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" +"%s သည်ရယူနိုင်သောစာရင်းဖြစ်။ အောက်ဖော်ပြပါဘူးများတွင်အချို့ကိုရွေးချယ်နိုင်ပြီးဘူးနှစ်ခုကြားရှိ\"ရွေး" +"\"များကိုကလစ်နှိပ်။" + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "ယခုဘူးထဲတွင်စာသားရိုက်ထည့်ပြီး %s ရယူနိုင်သောစာရင်းကိုစိစစ်နိုင်။" + +msgid "Filter" +msgstr "စီစစ်မှု" + +msgid "Choose all" +msgstr "အားလံုးရွေး" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "%s အားလံုးကိုတစ်ကြိမ်တည်းဖြင့်ရွေးချယ်ရန်ကလစ်နှိပ်။" + +msgid "Choose" +msgstr "ရွေး" + +msgid "Remove" +msgstr "ဖယ်ရှား" + +#, javascript-format +msgid "Chosen %s" +msgstr "%s ရွေးပြီး" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" +"%s သည်ရယူနိုင်သောစာရင်းဖြစ်။ အောက်ဖော်ပြပါဘူးများတွင်အချို့ကိုဖယ်ရှားနိုင်ပြီးဘူးနှစ်ခုကြားရှိ\"ဖယ်ရှား" +"\"ကိုကလစ်နှိပ်။" + +msgid "Remove all" +msgstr "အားလံုးဖယ်ရှား" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "%s အားလံုးကိုတစ်ကြိမ်တည်းဖြင့်ဖယ်ရှားရန်ကလစ်နှိပ်။" + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "%(cnt)s မှ %(sel)s ရွေးချယ်ပြီး" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" + +msgid "" +"You have selected an action, but you haven't saved your changes to " +"individual fields yet. Please click OK to save. You'll need to re-run the " +"action." +msgstr "" + +msgid "" +"You have selected an action, and you haven't made any changes on individual " +"fields. You're probably looking for the Go button rather than the Save " +"button." +msgstr "" + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "" + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "" + +msgid "Now" +msgstr "ယခု" + +msgid "Choose a Time" +msgstr "" + +msgid "Choose a time" +msgstr "အချိန်ရွေးပါ" + +msgid "Midnight" +msgstr "သန်းခေါင်" + +msgid "6 a.m." +msgstr "မနက်၆နာရီ" + +msgid "Noon" +msgstr "မွန်းတည့်" + +msgid "6 p.m." +msgstr "" + +msgid "Cancel" +msgstr "ပယ်ဖျက်" + +msgid "Today" +msgstr "ယနေ့" + +msgid "Choose a Date" +msgstr "" + +msgid "Yesterday" +msgstr "မနေ့" + +msgid "Tomorrow" +msgstr "မနက်ဖြန်" + +msgid "January" +msgstr "" + +msgid "February" +msgstr "" + +msgid "March" +msgstr "" + +msgid "April" +msgstr "" + +msgid "May" +msgstr "" + +msgid "June" +msgstr "" + +msgid "July" +msgstr "" + +msgid "August" +msgstr "" + +msgid "September" +msgstr "" + +msgid "October" +msgstr "" + +msgid "November" +msgstr "" + +msgid "December" +msgstr "" + +msgctxt "one letter Sunday" +msgid "S" +msgstr "" + +msgctxt "one letter Monday" +msgid "M" +msgstr "" + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "" + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "" + +msgctxt "one letter Thursday" +msgid "T" +msgstr "" + +msgctxt "one letter Friday" +msgid "F" +msgstr "" + +msgctxt "one letter Saturday" +msgid "S" +msgstr "" + +msgid "Show" +msgstr "ပြသ" + +msgid "Hide" +msgstr "ဖုံးကွယ်" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/nb/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/nb/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..ea77ddde43fddf5181704344e043d6a5e49b6909 GIT binary patch literal 16244 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/nb/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/nb/LC_MESSAGES/django.po new file mode 100644 index 0000000000..3f6445ee43 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/nb/LC_MESSAGES/django.po @@ -0,0 +1,720 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Jannis Leidel , 2011 +# jensadne , 2013-2014 +# Jon , 2015-2016 +# Jon , 2017-2020 +# Jon , 2013 +# Jon , 2011,2013 +# Sigurd Gartmann , 2012 +# Tommy Strand , 2013 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-07-14 19:53+0200\n" +"PO-Revision-Date: 2020-09-04 13:37+0000\n" +"Last-Translator: Jon \n" +"Language-Team: Norwegian Bokmål (http://www.transifex.com/django/django/" +"language/nb/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: nb\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "Slettet %(count)d %(items)s." + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "Kan ikke slette %(name)s" + +msgid "Are you sure?" +msgstr "Er du sikker?" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "Slett valgte %(verbose_name_plural)s" + +msgid "Administration" +msgstr "Administrasjon" + +msgid "All" +msgstr "Alle" + +msgid "Yes" +msgstr "Ja" + +msgid "No" +msgstr "Nei" + +msgid "Unknown" +msgstr "Ukjent" + +msgid "Any date" +msgstr "Når som helst" + +msgid "Today" +msgstr "I dag" + +msgid "Past 7 days" +msgstr "Siste syv dager" + +msgid "This month" +msgstr "Denne måneden" + +msgid "This year" +msgstr "I år" + +msgid "No date" +msgstr "Ingen dato" + +msgid "Has date" +msgstr "Har dato" + +msgid "Empty" +msgstr "Tom" + +msgid "Not empty" +msgstr "Ikke tom" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" +"Vennligst oppgi gyldig %(username)s og passord til en " +"administrasjonsbrukerkonto. Merk at det er forskjell på små og store " +"bokstaver." + +msgid "Action:" +msgstr "Handling:" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "Legg til ny %(verbose_name)s" + +msgid "Remove" +msgstr "Fjern" + +msgid "Addition" +msgstr "Tillegg" + +msgid "Change" +msgstr "Endre" + +msgid "Deletion" +msgstr "Sletting" + +msgid "action time" +msgstr "tid for handling" + +msgid "user" +msgstr "bruker" + +msgid "content type" +msgstr "innholdstype" + +msgid "object id" +msgstr "objekt-ID" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/library/functions.html#repr) +msgid "object repr" +msgstr "objekt-repr" + +msgid "action flag" +msgstr "handlingsflagg" + +msgid "change message" +msgstr "endre melding" + +msgid "log entry" +msgstr "logginnlegg" + +msgid "log entries" +msgstr "logginnlegg" + +#, python-format +msgid "Added “%(object)s”." +msgstr "La til \"%(object)s\"." + +#, python-format +msgid "Changed “%(object)s” — %(changes)s" +msgstr "Endret \"%(object)s\" — %(changes)s" + +#, python-format +msgid "Deleted “%(object)s.”" +msgstr "Slettet \"%(object)s\"." + +msgid "LogEntry Object" +msgstr "LogEntry-objekt" + +#, python-brace-format +msgid "Added {name} “{object}”." +msgstr "La til {name} \"{object}\"." + +msgid "Added." +msgstr "Lagt til." + +msgid "and" +msgstr "og" + +#, python-brace-format +msgid "Changed {fields} for {name} “{object}”." +msgstr "Endret {fields} for {name} \"{object}\"." + +#, python-brace-format +msgid "Changed {fields}." +msgstr "Endret {fields}." + +#, python-brace-format +msgid "Deleted {name} “{object}”." +msgstr "Slettet {name} \"{object}\"." + +msgid "No fields changed." +msgstr "Ingen felt endret." + +msgid "None" +msgstr "Ingen" + +msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." +msgstr "" +"Hold nede «Control», eller «Command» på en Mac, for å velge mer enn én." + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully." +msgstr "{name} \"{obj}\" ble lagt til." + +msgid "You may edit it again below." +msgstr "Du kan endre det igjen nedenfor." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was added successfully. You may add another {name} below." +msgstr "{name} \"{obj}\" ble lagt til. Du kan legge til en ny {name} nedenfor." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may edit it again below." +msgstr "{name} \"{obj}\" ble endret. Du kan redigere videre nedenfor." + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully. You may edit it again below." +msgstr "{name} \"{obj}\" ble lagt til. Du kan redigere videre nedenfor." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may add another {name} " +"below." +msgstr "{name} \"{obj}\" ble endret. Du kan legge til en ny {name} nedenfor." + +#, python-brace-format +msgid "The {name} “{obj}” was changed successfully." +msgstr "{name} \"{obj}\" ble endret." + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" +"Du må velge objekter for å utføre handlinger på dem. Ingen objekter har " +"blitt endret." + +msgid "No action selected." +msgstr "Ingen handling valgt." + +#, python-format +msgid "The %(name)s “%(obj)s” was deleted successfully." +msgstr "%(name)s \"%(obj)s\" ble slettet." + +#, python-format +msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" +msgstr "%(name)s med ID \"%(key)s\" eksisterer ikke. Kanskje det ble slettet?" + +#, python-format +msgid "Add %s" +msgstr "Legg til ny %s" + +#, python-format +msgid "Change %s" +msgstr "Endre %s" + +#, python-format +msgid "View %s" +msgstr "Se %s" + +msgid "Database error" +msgstr "Databasefeil" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "%(count)s %(name)s ble endret." +msgstr[1] "%(count)s %(name)s ble endret." + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "%(total_count)s valgt" +msgstr[1] "Alle %(total_count)s valgt" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "0 av %(cnt)s valgt" + +#, python-format +msgid "Change history: %s" +msgstr "Endringshistorikk: %s" + +#. Translators: Model verbose name and instance representation, +#. suitable to be an item in a list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "%(class_name)s %(instance)s" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" +"Sletting av %(class_name)s «%(instance)s» krever sletting av følgende " +"beskyttede relaterte objekter: %(related_objects)s" + +msgid "Django site admin" +msgstr "Django administrasjonsside" + +msgid "Django administration" +msgstr "Django-administrasjon" + +msgid "Site administration" +msgstr "Nettstedsadministrasjon" + +msgid "Log in" +msgstr "Logg inn" + +#, python-format +msgid "%(app)s administration" +msgstr "%(app)s-administrasjon" + +msgid "Page not found" +msgstr "Fant ikke siden" + +msgid "We’re sorry, but the requested page could not be found." +msgstr "Beklager, men siden du spør etter finnes ikke." + +msgid "Home" +msgstr "Hjem" + +msgid "Server error" +msgstr "Tjenerfeil" + +msgid "Server error (500)" +msgstr "Tjenerfeil (500)" + +msgid "Server Error (500)" +msgstr "Tjenerfeil (500)" + +msgid "" +"There’s been an error. It’s been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" +"Det har oppstått en feil. Feilen er blitt rapportert til administrator via e-" +"post, og vil bli fikset snart. Takk for din tålmodighet." + +msgid "Run the selected action" +msgstr "Utfør den valgte handlingen" + +msgid "Go" +msgstr "Gå" + +msgid "Click here to select the objects across all pages" +msgstr "Trykk her for å velge samtlige objekter fra alle sider" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "Velg alle %(total_count)s %(module_name)s" + +msgid "Clear selection" +msgstr "Nullstill valg" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "Modeller i %(name)s-applikasjonen" + +msgid "Add" +msgstr "Legg til" + +msgid "View" +msgstr "Se" + +msgid "You don’t have permission to view or edit anything." +msgstr "Du har ikke tillatelse til å vise eller endre noe." + +msgid "" +"First, enter a username and password. Then, you’ll be able to edit more user " +"options." +msgstr "" +"Skriv først inn brukernavn og passord. Deretter vil du få mulighet til å " +"endre flere brukerinnstillinger." + +msgid "Enter a username and password." +msgstr "Skriv inn brukernavn og passord." + +msgid "Change password" +msgstr "Endre passord" + +msgid "Please correct the error below." +msgstr "Vennligst korriger feilen under." + +msgid "Please correct the errors below." +msgstr "Vennligst korriger feilene under." + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "Skriv inn et nytt passord for brukeren %(username)s." + +msgid "Welcome," +msgstr "Velkommen," + +msgid "View site" +msgstr "Vis nettsted" + +msgid "Documentation" +msgstr "Dokumentasjon" + +msgid "Log out" +msgstr "Logg ut" + +#, python-format +msgid "Add %(name)s" +msgstr "Legg til ny %(name)s" + +msgid "History" +msgstr "Historikk" + +msgid "View on site" +msgstr "Vis på nettsted" + +msgid "Filter" +msgstr "Filtrering" + +msgid "Clear all filters" +msgstr "Fjern alle filtre" + +msgid "Remove from sorting" +msgstr "Fjern fra sortering" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "Sorteringsprioritet: %(priority_number)s" + +msgid "Toggle sorting" +msgstr "Slå av og på sortering" + +msgid "Delete" +msgstr "Slett" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" +"Om du sletter %(object_name)s «%(escaped_object)s», vil også relaterte " +"objekter slettes, men du har ikke tillatelse til å slette følgende " +"objekttyper:" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" +"Sletting av %(object_name)s «%(escaped_object)s» krever sletting av følgende " +"beskyttede relaterte objekter:" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" +"Er du sikker på at du vil slette %(object_name)s «%(escaped_object)s»? Alle " +"de følgende relaterte objektene vil bli slettet:" + +msgid "Objects" +msgstr "Objekter" + +msgid "Yes, I’m sure" +msgstr "Ja, jeg er sikker" + +msgid "No, take me back" +msgstr "Nei, ta meg tilbake" + +msgid "Delete multiple objects" +msgstr "Slett flere objekter" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" +"Sletting av det valgte %(objects_name)s ville resultere i sletting av " +"relaterte objekter, men kontoen din har ikke tillatelse til å slette " +"følgende objekttyper:" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" +"Sletting av det valgte %(objects_name)s ville kreve sletting av følgende " +"beskyttede relaterte objekter:" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" +"Er du sikker på vil slette det valgte %(objects_name)s? De følgende " +"objektene og deres relaterte objekter vil bli slettet:" + +msgid "Delete?" +msgstr "Slette?" + +#, python-format +msgid " By %(filter_title)s " +msgstr "Etter %(filter_title)s " + +msgid "Summary" +msgstr "Oppsummering" + +msgid "Recent actions" +msgstr "Siste handlinger" + +msgid "My actions" +msgstr "Mine handlinger" + +msgid "None available" +msgstr "Ingen tilgjengelige" + +msgid "Unknown content" +msgstr "Ukjent innhold" + +msgid "" +"Something’s wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" +"Noe er galt med databaseinstallasjonen din. Sørg for at databasetabellene er " +"opprettet og at brukeren har de nødvendige rettighetene." + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" +"Du er logget inn som %(username)s, men er ikke autorisert til å få tilgang " +"til denne siden. Ønsker du å logge inn med en annen konto?" + +msgid "Forgotten your password or username?" +msgstr "Glemt brukernavnet eller passordet ditt?" + +msgid "Toggle navigation" +msgstr "Veksle navigasjon" + +msgid "Date/time" +msgstr "Dato/tid" + +msgid "User" +msgstr "Bruker" + +msgid "Action" +msgstr "Handling" + +msgid "" +"This object doesn’t have a change history. It probably wasn’t added via this " +"admin site." +msgstr "" +"Dette objektet har ingen endringshistorikk. Det ble sannsynligvis ikke lagt " +"til på denne administrasjonssiden." + +msgid "Show all" +msgstr "Vis alle" + +msgid "Save" +msgstr "Lagre" + +msgid "Popup closing…" +msgstr "Lukker popup..." + +msgid "Search" +msgstr "Søk" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "%(counter)s resultat" +msgstr[1] "%(counter)s resultater" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "%(full_result_count)s totalt" + +msgid "Save as new" +msgstr "Lagre som ny" + +msgid "Save and add another" +msgstr "Lagre og legg til ny" + +msgid "Save and continue editing" +msgstr "Lagre og fortsett å redigere" + +msgid "Save and view" +msgstr "Lagre og se" + +msgid "Close" +msgstr "Lukk" + +#, python-format +msgid "Change selected %(model)s" +msgstr "Endre valgt %(model)s" + +#, python-format +msgid "Add another %(model)s" +msgstr "Legg til ny %(model)s" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "Slett valgte %(model)s" + +msgid "Thanks for spending some quality time with the Web site today." +msgstr "Takk for i dag." + +msgid "Log in again" +msgstr "Logg inn igjen" + +msgid "Password change" +msgstr "Endre passord" + +msgid "Your password was changed." +msgstr "Ditt passord ble endret." + +msgid "" +"Please enter your old password, for security’s sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" +"Av sikkerhetsgrunner må du oppgi ditt gamle passord. Deretter oppgir du det " +"nye passordet ditt to ganger, slik at vi kan kontrollere at det er korrekt." + +msgid "Change my password" +msgstr "Endre passord" + +msgid "Password reset" +msgstr "Nullstill passord" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "Passordet ditt er satt. Du kan nå logge inn." + +msgid "Password reset confirmation" +msgstr "Bekreftelse på nullstilt passord" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" +"Oppgi det nye passordet to ganger, for å sikre at det er skrevet korrekt." + +msgid "New password:" +msgstr "Nytt passord:" + +msgid "Confirm password:" +msgstr "Gjenta nytt passord:" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"Nullstillingslenken er ugyldig, kanskje fordi den allerede har vært brukt. " +"Vennligst nullstill passordet ditt på nytt." + +msgid "" +"We’ve emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" +"Vi har sendt deg en e-post med instruksjoner for nullstilling av passord, " +"hvis en konto finnes på den e-postadressen du oppga. Du bør motta den om " +"kort tid." + +msgid "" +"If you don’t receive an email, please make sure you’ve entered the address " +"you registered with, and check your spam folder." +msgstr "" +"Hvis du ikke mottar en e-post, sjekk igjen at du har oppgitt den adressen du " +"er registrert med og sjekk spam-mappen din." + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" +"Du mottar denne e-posten fordi du har bedt om nullstilling av passordet ditt " +"på %(site_name)s." + +msgid "Please go to the following page and choose a new password:" +msgstr "Vennligst gå til følgende side og velg et nytt passord:" + +msgid "Your username, in case you’ve forgotten:" +msgstr "Brukernavnet ditt, i tilfelle du har glemt det:" + +msgid "Thanks for using our site!" +msgstr "Takk for at du bruker siden vår!" + +#, python-format +msgid "The %(site_name)s team" +msgstr "Hilsen %(site_name)s" + +msgid "" +"Forgotten your password? Enter your email address below, and we’ll email " +"instructions for setting a new one." +msgstr "" +"Glemt passordet ditt? Oppgi e-postadressen din under, så sender vi deg en e-" +"post med instruksjoner for nullstilling av passord." + +msgid "Email address:" +msgstr "E-postadresse:" + +msgid "Reset my password" +msgstr "Nullstill mitt passord" + +msgid "All dates" +msgstr "Alle datoer" + +#, python-format +msgid "Select %s" +msgstr "Velg %s" + +#, python-format +msgid "Select %s to change" +msgstr "Velg %s du ønsker å endre" + +#, python-format +msgid "Select %s to view" +msgstr "Velg %s å se" + +msgid "Date:" +msgstr "Dato:" + +msgid "Time:" +msgstr "Tid:" + +msgid "Lookup" +msgstr "Oppslag" + +msgid "Currently:" +msgstr "Nåværende:" + +msgid "Change:" +msgstr "Endre:" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/nb/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/nb/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..6b1d74e4a1d00c82f941b997012a64d09c923632 GIT binary patch literal 4939 zcmbuDQEVJX8OH}WXmMIf5*kQo=)|pyO|xg8+Zy+RXBtRe`A@Toa=Pu`q zlSVMQ+2790H?!Y-^UXJ7zkQ_eEr#?Y@_m%w&)5}W0S}~WA7t#a;0xe~z#n`548)JU z<;%YU??U;vzWk2opTN6O|5wldcpk!F6R1B9ei(cZydNxr4}lxtonYqqJcu8A5f4)B zW$+I08@~J<&+mcw1lt8a0R8}^aenCA-vFOO`KMqNJcdE2y#%?ctC_*14+*p zLDKUTkiP$2@SEW4;Mc(g3_{=i1xVxl8jmyJ??CEz6pz=yli;i1PrwfN3X(7{f?oxx-}gb1e-r#9_wzoQ??dEE1UknA)CeiS_I%S#~HX%)l}Yz?IE zZF}y3WS8eXUjiRM`4#YC@JAro@m&xmW`73hJAVgBkAM3zyC?t79iDf29tLSWkAc+x z1W5fR!HeKDcpl6^`p%mm$-f1X{4YV0{|$(xV1EEf-#>yR_ZRSG@NeK(z!xxil0S4f zAMY@@it-7N^!^g~HLwA`4*nCg;HyXS@$QCkXxzh|_j(@pJn4DLbINnZGw>{VKIZv2 zh-G9;o=a$W{jJMz(cVx^{@>y|0U{%DQaVq+u0VGnp`bR*4gf^7%NF?1E6P z?n0LI*@a9=wk}M)iD#d!$DxX&rezyiD?F?$^D8>z!q8-SQ)h;YrW7IBGnJ+*4X5c8 z50-`Mw=c|VvKg!JwuU`ew42X*L-*Kb-D&IuM7$c8soJoA!C4wOfFOhPT4f=V0i}T68x8Wvax7 zsb!0_$=iyzRu4jazj`V9hE!*U3c@BgD9HQL7Wt(_id5#l!8e~K>rwxK_SpAIVl-46 z8JH~BE;r4HVwuW6dayxc7+V*n29{ZCIF)I*5kotT$4BbLP@#q`p;KFAqE<7qTjXu6 zY?HfSSip0<-i5~kqU2b^ARZO)GS)PRPzAhTzio-3oY) zi6h>jwm(+8fw)Ssvw)YeCLdD@;8@ErrWEkTw1VBFg_HA&iQ(vl%4prXR#dk>TDK)^ zMq8q=wXZgFlKbka&CH}ESsj(EX7a|$XJx4J>Sx&{qjzxV1#4ljElr9YR_5UjwvnE= zEIZoRU_FiEFnB79(x9r#eB#n(a9MU^5)J4yEA#oe`BE_VNKjhjrAN#2a}UoUOO;1KKobD;zYVYkPe7b3Er#w5`>-CD3I>!xp zwOH5f*<7mu5<$I5)8ZkCX}uARv{wl~?U-ClRqaLwnGq(k?wy ztptnL<>*@tX@aw=u0urSGGDC4cBpWftJ=h+Br_rjD%!MDRCHW1U7A0`^Vg+m#ZN8q z(#)BO;T=MBhxd!FNFsalhPj3E+#D+{(sSRvq8caBjznZj;>g`Cmb*36w`^M`k$Z5Q z6d{c43zoMM-D=5{obBdyIP@gjCY{`%PbYD!#VHi-?eZ>$cGn1Zyr-gV<1micKAFaj zH1KE|hP$clmtB?VzRSkouCdkH!4AzgF|HX&Om~f#?iwi`c)?XeK=0B#8Dd?UR++D6 z9GeCg4Z2g1j_{cLmJvX);z3g8_QZHiwBCEDaiKvlU>ke8Y_pYLDYl%sD`XXCl#v_7 zcAT@H$DZF&T8?1VU|@B)U!gaBAcoaW6Yio#8SL_3(@QKP%$QacfQ1;JXo9 z!y#fKsn}M_#9d4=boOdUTu|-6E$Jd*$OsBH@pi-pyTOVWE!x{P493K6&%Kj236AqH z!R9_qHlr42v1kWzj=L#J6&kd|sPXWGhWX%gq=#{4f#boZxDlp8skE=KD|sH(&+Y97 zEhRb~iF=A0`l5(%PWw6-{igb~pvq(qT#OGUas zF>CtR%D6rF-RuT)x+BK&%r^GkfDH%6z?aEqRNvx6_Znud3tVQPz)cNu9!CLb?ngEI z&D@QXT=4@2#0qgMI`}AE8R&L^kU@W%P;j8gK!Jhcf(r|D>|&?UreYPgj(;X>;U7s= Hw#ohr_@^H2 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/nb/LC_MESSAGES/djangojs.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/nb/LC_MESSAGES/djangojs.po new file mode 100644 index 0000000000..1e6ddb658b --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/nb/LC_MESSAGES/djangojs.po @@ -0,0 +1,269 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Eirik Krogstad , 2014 +# Jannis Leidel , 2011 +# Jon, 2015-2016 +# Jon, 2014 +# Jon, 2020-2021 +# Jon, 2011-2012 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-01-15 09:00+0100\n" +"PO-Revision-Date: 2021-03-18 14:20+0000\n" +"Last-Translator: Jon\n" +"Language-Team: Norwegian Bokmål (http://www.transifex.com/django/django/" +"language/nb/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: nb\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, javascript-format +msgid "Available %s" +msgstr "Tilgjengelige %s" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" +"Dette er listen over tilgjengelige %s. Du kan velge noen ved å markere de i " +"boksen under og så klikke på \"Velg\"-pilen mellom de to boksene." + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "Skriv i dette feltet for å filtrere ned listen av tilgjengelige %s." + +msgid "Filter" +msgstr "Filter" + +msgid "Choose all" +msgstr "Velg alle" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "Klikk for å velge alle %s samtidig" + +msgid "Choose" +msgstr "Velg" + +msgid "Remove" +msgstr "Slett" + +#, javascript-format +msgid "Chosen %s" +msgstr "Valgte %s" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" +"Dette er listen over valgte %s. Du kan fjerne noen ved å markere de i boksen " +"under og så klikke på \"Fjern\"-pilen mellom de to boksene." + +msgid "Remove all" +msgstr "Fjern alle" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "Klikk for å fjerne alle valgte %s samtidig" + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "%(sel)s av %(cnt)s valgt" +msgstr[1] "%(sel)s av %(cnt)s valgt" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" +"Du har ulagrede endringer i individuelle felter. Hvis du utfører en " +"handling, vil dine ulagrede endringer gå tapt." + +msgid "" +"You have selected an action, but you haven’t saved your changes to " +"individual fields yet. Please click OK to save. You’ll need to re-run the " +"action." +msgstr "" +"Du har valgt en handling, men du har ikke lagret endringene dine i " +"individuelle felter enda. Vennligst trykk OK for å lagre. Du må utføre " +"handlingen på nytt." + +msgid "" +"You have selected an action, and you haven’t made any changes on individual " +"fields. You’re probably looking for the Go button rather than the Save " +"button." +msgstr "" +"Du har valgt en handling, og har ikke gjort noen endringer i individuelle " +"felter. Du ser mest sannsynlig etter Gå-knappen, ikke Lagre-knappen." + +msgid "Now" +msgstr "Nå" + +msgid "Midnight" +msgstr "Midnatt" + +msgid "6 a.m." +msgstr "06:00" + +msgid "Noon" +msgstr "12:00" + +msgid "6 p.m." +msgstr "18:00" + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "Merk: Du er %s time foran server-tid." +msgstr[1] "Merk: Du er %s timer foran server-tid." + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "Merk: Du er %s time bak server-tid." +msgstr[1] "Merk: Du er %s timer bak server-tid." + +msgid "Choose a Time" +msgstr "Velg et klokkeslett" + +msgid "Choose a time" +msgstr "Velg et klokkeslett" + +msgid "Cancel" +msgstr "Avbryt" + +msgid "Today" +msgstr "I dag" + +msgid "Choose a Date" +msgstr "Velg en dato" + +msgid "Yesterday" +msgstr "I går" + +msgid "Tomorrow" +msgstr "I morgen" + +msgid "January" +msgstr "Januar" + +msgid "February" +msgstr "Februar" + +msgid "March" +msgstr "Mars" + +msgid "April" +msgstr "April" + +msgid "May" +msgstr "Mai" + +msgid "June" +msgstr "Juni" + +msgid "July" +msgstr "Juli" + +msgid "August" +msgstr "August" + +msgid "September" +msgstr "September" + +msgid "October" +msgstr "Oktober" + +msgid "November" +msgstr "November" + +msgid "December" +msgstr "Desember" + +msgctxt "abbrev. month January" +msgid "Jan" +msgstr "Jan" + +msgctxt "abbrev. month February" +msgid "Feb" +msgstr "Feb" + +msgctxt "abbrev. month March" +msgid "Mar" +msgstr "Mar" + +msgctxt "abbrev. month April" +msgid "Apr" +msgstr "Apr" + +msgctxt "abbrev. month May" +msgid "May" +msgstr "Mai" + +msgctxt "abbrev. month June" +msgid "Jun" +msgstr "Jun" + +msgctxt "abbrev. month July" +msgid "Jul" +msgstr "Jul" + +msgctxt "abbrev. month August" +msgid "Aug" +msgstr "Aug" + +msgctxt "abbrev. month September" +msgid "Sep" +msgstr "Sep" + +msgctxt "abbrev. month October" +msgid "Oct" +msgstr "Okt" + +msgctxt "abbrev. month November" +msgid "Nov" +msgstr "Nov" + +msgctxt "abbrev. month December" +msgid "Dec" +msgstr "Des" + +msgctxt "one letter Sunday" +msgid "S" +msgstr "S" + +msgctxt "one letter Monday" +msgid "M" +msgstr "M" + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "T" + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "O" + +msgctxt "one letter Thursday" +msgid "T" +msgstr "T" + +msgctxt "one letter Friday" +msgid "F" +msgstr "F" + +msgctxt "one letter Saturday" +msgid "S" +msgstr "L" + +msgid "Show" +msgstr "Vis" + +msgid "Hide" +msgstr "Skjul" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ne/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ne/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..d10471430acb2bdcae906a6074a3c53bd473bf64 GIT binary patch literal 15772 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 jh`1a4SUwc`0Q=ykWJZwac literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ne/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ne/LC_MESSAGES/django.po new file mode 100644 index 0000000000..ab9e55a064 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ne/LC_MESSAGES/django.po @@ -0,0 +1,688 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Sagar Chalise , 2011 +# Santosh Purbey , 2020 +# Shrawan Poudel , 2021 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-09-21 10:22+0200\n" +"PO-Revision-Date: 2021-11-22 06:50+0000\n" +"Last-Translator: Shrawan Poudel \n" +"Language-Team: Nepali (http://www.transifex.com/django/django/language/ne/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ne\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "%(verbose_name_plural)s छानिएको मेट्नुहोस" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "सफलतापूर्वक मेटियो %(count)d %(items)s ।" + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "%(name)s मेट्न सकिएन " + +msgid "Are you sure?" +msgstr "के तपाई पक्का हुनुहुन्छ ?" + +msgid "Administration" +msgstr "प्रशासन " + +msgid "All" +msgstr "सबै" + +msgid "Yes" +msgstr "हो" + +msgid "No" +msgstr "होइन" + +msgid "Unknown" +msgstr "अज्ञात" + +msgid "Any date" +msgstr "कुनै मिति" + +msgid "Today" +msgstr "आज" + +msgid "Past 7 days" +msgstr "पूर्व ७ दिन" + +msgid "This month" +msgstr "यो महिना" + +msgid "This year" +msgstr "यो साल" + +msgid "No date" +msgstr "मिति छैन" + +msgid "Has date" +msgstr "मिति छ" + +msgid "Empty" +msgstr "खाली" + +msgid "Not empty" +msgstr "खाली छैन" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" +"कृपया स्टाफ खाताको लागि सही %(username)s र पासवर्ड राख्नु होस । दुवै खाली ठाउँ केस " +"सेन्सिटिव हुन सक्छन् ।" + +msgid "Action:" +msgstr "कार्य:" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "अर्को %(verbose_name)s थप्नुहोस ।" + +msgid "Remove" +msgstr "हटाउनुहोस" + +msgid "Addition" +msgstr "थप" + +msgid "Change" +msgstr "फेर्नुहोस" + +msgid "Deletion" +msgstr "हटाइयो" + +msgid "action time" +msgstr "कार्य समय" + +msgid "user" +msgstr "प्रयोग कर्ता" + +msgid "content type" +msgstr "" + +msgid "object id" +msgstr "वस्तु परिचय" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/library/functions.html#repr) +msgid "object repr" +msgstr "" + +msgid "action flag" +msgstr "एक्सन फ्ल्याग" + +msgid "change message" +msgstr "सन्देश परिवर्तन गर्नुहोस" + +msgid "log entry" +msgstr "लग" + +msgid "log entries" +msgstr "लगहरु" + +#, python-format +msgid "Added “%(object)s”." +msgstr "थपियो “%(object)s”." + +#, python-format +msgid "Changed “%(object)s” — %(changes)s" +msgstr "बदलियो “%(object)s” — %(changes)s" + +#, python-format +msgid "Deleted “%(object)s.”" +msgstr "हटाईयो “%(object)s.”" + +msgid "LogEntry Object" +msgstr "लग ईन्ट्री वस्तु" + +#, python-brace-format +msgid "Added {name} “{object}”." +msgstr "थपियो  {name} “{object}”." + +msgid "Added." +msgstr "थपिएको छ ।" + +msgid "and" +msgstr "र" + +#, python-brace-format +msgid "Changed {fields} for {name} “{object}”." +msgstr "" + +#, python-brace-format +msgid "Changed {fields}." +msgstr "" + +#, python-brace-format +msgid "Deleted {name} “{object}”." +msgstr "" + +msgid "No fields changed." +msgstr "कुनै फाँट फेरिएन ।" + +msgid "None" +msgstr "शुन्य" + +msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." +msgstr "" + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully." +msgstr "" + +msgid "You may edit it again below." +msgstr "तपाईं तल फेरि सम्पादन गर्न सक्नुहुन्छ।" + +#, python-brace-format +msgid "" +"The {name} “{obj}” was added successfully. You may add another {name} below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may edit it again below." +msgstr "" + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully. You may edit it again below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may add another {name} " +"below." +msgstr "" + +#, python-brace-format +msgid "The {name} “{obj}” was changed successfully." +msgstr "" + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "कार्य गर्नका निम्ति वस्तु छान्नु पर्दछ । कुनैपनि छस्तु छानिएको छैन । " + +msgid "No action selected." +msgstr "कार्य छानिएको छैन ।" + +#, python-format +msgid "The %(name)s “%(obj)s” was deleted successfully." +msgstr "" + +#, python-format +msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" +msgstr "" + +#, python-format +msgid "Add %s" +msgstr "%s थप्नुहोस" + +#, python-format +msgid "Change %s" +msgstr "%s परिवर्तित ।" + +#, python-format +msgid "View %s" +msgstr "" + +msgid "Database error" +msgstr "डाटाबेस त्रुटि" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "%(count)s %(name)s सफलतापूर्वक परिवर्तन भयो ।" +msgstr[1] "%(count)s %(name)sहरु सफलतापूर्वक परिवर्तन भयो ।" + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "%(total_count)s चयन भयो" +msgstr[1] "सबै %(total_count)s चयन भयो" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "%(cnt)s को ० चयन गरियो" + +#, python-format +msgid "Change history: %s" +msgstr "इतिहास फेर्नुहोस : %s" + +#. Translators: Model verbose name and instance representation, +#. suitable to be an item in a list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "%(class_name)s %(instance)s" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" + +msgid "Django site admin" +msgstr "ज्याङ्गो साइट प्रशासन" + +msgid "Django administration" +msgstr "ज्याङ्गो प्रशासन" + +msgid "Site administration" +msgstr "साइट प्रशासन" + +msgid "Log in" +msgstr "लगिन" + +#, python-format +msgid "%(app)s administration" +msgstr "" + +msgid "Page not found" +msgstr "पृष्ठ भेटिएन" + +msgid "We’re sorry, but the requested page could not be found." +msgstr "हामी क्षमाप्रार्थी छौं, तर अनुरोध गरिएको पृष्ठ फेला पार्न सकिएन।" + +msgid "Home" +msgstr "गृह" + +msgid "Server error" +msgstr "सर्भर त्रुटि" + +msgid "Server error (500)" +msgstr "सर्भर त्रुटि (५००)" + +msgid "Server Error (500)" +msgstr "सर्भर त्रुटि (५००)" + +msgid "" +"There’s been an error. It’s been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" +"त्यहाँ त्रुटि रहेको छ। यो ईमेल मार्फत साइट प्रशासकहरूलाई सूचित गरिएको छ र तुरुन्तै ठिक " +"गर्नुपर्नेछ। तपाईको धैर्यताको लागि धन्यबाद।" + +msgid "Run the selected action" +msgstr "छानिएको कार्य गर्नुहोस ।" + +msgid "Go" +msgstr "बढ्नुहोस" + +msgid "Click here to select the objects across all pages" +msgstr "सबै पृष्ठभरमा वस्तु छान्न यहाँ थिच्नुहोस ।" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "%(total_count)s %(module_name)s सबै छान्नुहोस " + +msgid "Clear selection" +msgstr "चुनेको कुरा हटाउनुहोस ।" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "%(name)s एप्लिकेसनमा भएको मोडेलहरु" + +msgid "Add" +msgstr "थप्नुहोस " + +msgid "View" +msgstr "" + +msgid "You don’t have permission to view or edit anything." +msgstr "तपाईंसँग केहि पनि हेर्न वा सम्पादन गर्न अनुमति छैन।" + +msgid "" +"First, enter a username and password. Then, you’ll be able to edit more user " +"options." +msgstr "" +"पहिले, प्रयोगकर्ता नाम र पासवर्ड प्रविष्ट गर्नुहोस्। त्यसो भए, तपाई बढि उपयोगकर्ता " +"विकल्पहरू सम्पादन गर्न सक्षम हुनुहुनेछ।" + +msgid "Enter a username and password." +msgstr "प्रयोगकर्ता नाम र पासवर्ड राख्नुहोस।" + +msgid "Change password" +msgstr "पासवर्ड फेर्नुहोस " + +msgid "Please correct the error below." +msgstr "कृपया तल त्रुटि सुधार गर्नुहोस्।" + +msgid "Please correct the errors below." +msgstr "कृपया तलका त्रुटी सुधार्नु होस ।" + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "प्रयोगकर्ता %(username)s को लागि नयाँ पासवर्ड राख्नुहोस ।" + +msgid "Welcome," +msgstr "स्वागतम्" + +msgid "View site" +msgstr "साइट हेर्नु होस ।" + +msgid "Documentation" +msgstr "विस्तृत विवरण" + +msgid "Log out" +msgstr "लग आउट" + +#, python-format +msgid "Add %(name)s" +msgstr "%(name)s थप्नुहोस" + +msgid "History" +msgstr "इतिहास" + +msgid "View on site" +msgstr "साइटमा हेर्नुहोस" + +msgid "Filter" +msgstr "छान्नुहोस" + +msgid "Clear all filters" +msgstr "" + +msgid "Remove from sorting" +msgstr "" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "" + +msgid "Toggle sorting" +msgstr "" + +msgid "Delete" +msgstr "मेट्नुहोस" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" + +msgid "Objects" +msgstr "" + +msgid "Yes, I’m sure" +msgstr "" + +msgid "No, take me back" +msgstr "" + +msgid "Delete multiple objects" +msgstr "वहु वस्तुहरु मेट्नुहोस ।" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "%(objects_name)s " + +msgid "Delete?" +msgstr "मेट्नुहुन्छ ?" + +#, python-format +msgid " By %(filter_title)s " +msgstr " %(filter_title)s द्वारा" + +msgid "Summary" +msgstr "" + +msgid "Recent actions" +msgstr "भर्खरका कार्यहरू" + +msgid "My actions" +msgstr "मेरो कार्यहरू" + +msgid "None available" +msgstr "कुनै पनि उपलब्ध छैन ।" + +msgid "Unknown content" +msgstr "अज्ञात सामग्री" + +msgid "" +"Something’s wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" +"तपाईंको डाटाबेस स्थापनामा केहि गलत छ। निश्चित गर्नुहोस् कि उपयुक्त डाटाबेस टेबलहरू सिर्जना " +"गरिएको छ, र यो सुनिश्चित गर्नुहोस् कि उपयुक्त डाटाबेस उपयुक्त प्रयोगकर्ताद्वारा पढ्न योग्य " +"छ।" + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" +"तपाईं यस %(username)s रूपमा प्रमाणिकरण हुनुहुन्छ, तर यस पृष्ठ पहुँच गर्न अधिकृत हुनुहुन्न। के " +"तपाइँ बिभिन्न खातामा लगईन गर्न चाहानुहुन्छ?" + +msgid "Forgotten your password or username?" +msgstr "पासवर्ड अथवा प्रयोगकर्ता नाम भुल्नुभयो ।" + +msgid "Toggle navigation" +msgstr "" + +msgid "Start typing to filter…" +msgstr "" + +msgid "Filter navigation items" +msgstr "" + +msgid "Date/time" +msgstr "मिति/समय" + +msgid "User" +msgstr "प्रयोगकर्ता" + +msgid "Action" +msgstr "कार्य:" + +msgid "" +"This object doesn’t have a change history. It probably wasn’t added via this " +"admin site." +msgstr "" + +msgid "Show all" +msgstr "सबै देखाउनुहोस" + +msgid "Save" +msgstr "बचत गर्नुहोस" + +msgid "Popup closing…" +msgstr "" + +msgid "Search" +msgstr "खोज्नुहोस" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "%(counter)s नतिजा" +msgstr[1] "%(counter)s नतिजाहरु" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "जम्मा %(full_result_count)s" + +msgid "Save as new" +msgstr "नयाँ रुपमा बचत गर्नुहोस" + +msgid "Save and add another" +msgstr "बचत गरेर अर्को थप्नुहोस" + +msgid "Save and continue editing" +msgstr "बचत गरेर संशोधन जारी राख्नुहोस" + +msgid "Save and view" +msgstr "" + +msgid "Close" +msgstr "" + +#, python-format +msgid "Change selected %(model)s" +msgstr "" + +#, python-format +msgid "Add another %(model)s" +msgstr "" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "" + +msgid "Thanks for spending some quality time with the web site today." +msgstr "" + +msgid "Log in again" +msgstr "पुन: लगिन गर्नुहोस" + +msgid "Password change" +msgstr "पासवर्ड फेरबदल" + +msgid "Your password was changed." +msgstr "तपाइको पासवर्ड फेरिएको छ ।" + +msgid "" +"Please enter your old password, for security’s sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" + +msgid "Change my password" +msgstr "मेरो पासवर्ड फेर्नुहोस " + +msgid "Password reset" +msgstr "पासवर्डपून: राख्नुहोस । " + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "तपाइको पासवर्ड राखियो । कृपया लगिन गर्नुहोस ।" + +msgid "Password reset confirmation" +msgstr "पासवर्ड पुनर्स्थापना पुष्टि" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "ठीक तरिकाले राखिएको पुष्टि गर्न कृपया नयाँ पासवर्ड दोहोर्याएर राख्नुहोस ।" + +msgid "New password:" +msgstr "नयाँ पासवर्ड :" + +msgid "Confirm password:" +msgstr "पासवर्ड पुष्टि:" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "पासवर्ड पुनर्स्थापना प्रयोग भइसकेको छ । कृपया नयाँ पासवर्ड रिसेट माग्नुहोस ।" + +msgid "" +"We’ve emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" + +msgid "" +"If you don’t receive an email, please make sure you’ve entered the address " +"you registered with, and check your spam folder." +msgstr "" + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" +" %(site_name)s को लागि तपाइले पासवर्ड पुन: राख्न आग्रह गरेको हुनाले ई-मेल पाउनुहुदैंछ । " + +msgid "Please go to the following page and choose a new password:" +msgstr "कृपया उक्त पृष्ठमा जानुहोस र नयाँ पासवर्ड राख्नुहोस :" + +msgid "Your username, in case you’ve forgotten:" +msgstr "तपाईंको प्रयोगकर्ता नाम, यदि तपाईंले बिर्सनुभयो भने:" + +msgid "Thanks for using our site!" +msgstr "हाम्रो साइट प्रयोग गरेकोमा धन्यवाद" + +#, python-format +msgid "The %(site_name)s team" +msgstr "%(site_name)s टोली" + +msgid "" +"Forgotten your password? Enter your email address below, and we’ll email " +"instructions for setting a new one." +msgstr "" +"तपाईँको पासवर्ड बिर्सनुभयो? तल तपाईंको ईमेल ठेगाना राख्नुहोस् र हामी नयाँ सेट गर्न ईमेल " +"निर्देशनहरू दिनेछौं।" + +msgid "Email address:" +msgstr "ई-मेल ठेगाना :" + +msgid "Reset my password" +msgstr "मेरो पासवर्ड पुन: राख्नुहोस ।" + +msgid "All dates" +msgstr "सबै मिति" + +#, python-format +msgid "Select %s" +msgstr "%s छान्नुहोस" + +#, python-format +msgid "Select %s to change" +msgstr "%s परिवर्तन गर्न छान्नुहोस ।" + +#, python-format +msgid "Select %s to view" +msgstr "" + +msgid "Date:" +msgstr "मिति:" + +msgid "Time:" +msgstr "समय:" + +msgid "Lookup" +msgstr "खोज तलास" + +msgid "Currently:" +msgstr "अहिले :" + +msgid "Change:" +msgstr "फेर्नु होस :" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ne/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ne/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..820885722a24f51b798ec671a28202510a97f65e GIT binary patch literal 5362 zcmd^>O^h5z6~_w_KC%V^CVU1+t%Z|y?4F%nz-!Ig2v}llz=`DyC^<#FJGDD)db(HL zJv&};AmPi2EI=qYF?N&)(&HHC%K{B>I+g5PDn`H5WiQ|^R+u!*2)1S zS~K(Ss(SV6U;p>&)%<1W&1V(QB;Swm{p4Geng;j1l^>p0!8!0X@a^E_O%A8PchR0M z+XqWr0N+jjmrH!0#AR@T{tUbY{1$iz_!xL6_zO_{zXIM2{sDX^_~)|ySMUMauY+}P z0V7`3IZ)<31&aS?K|bmwetrV}3j8s6Hp??+`J!x;{P%z^M4P{VgGk< z9^CU@rHb#cs0YulJ-(t(!yXho*BbP!n=i}5MQhH*#x@MR>@OQLmYr+2yd?n1T% zqeYW-3^uZQ)`>OKO63oFvx8{bU&?|w+Gq7!FAbu*GTrhUv@S_#O z*^6M%2-bo|+YedWgpJf{a~B!8n#7BotaTm6u@!$gCLK}vONiXgGA1WJZRuoD8M$AW zxUtIC)G*S+)KX?Pq$lZ#n3xp)&lW4u$%K{s$O+YS7&RV-oLlXGx1eF&AfWzM``G1aZ)2pD}JIE znm*ZO^g$$$msEN`x6-1ZR+i${XPFnRwEY$1)s5e(>3hv8c6zFrWvjL6=}xCp$;4@} zY);99X}7H&gyrn%$V~5k75QZ`5X&DF`EznFSxOge`(lrx3|_Ks zu0gcOuWHOLxK*v?roopiv7BFgY_z1S=cnlAxVl>8OnCXmOgG55iKFw&&K@1(cfbI% z9zTi1k9y$}C0s-16GAjVDNN20n`&)MJMB@Va z?6T+ohYiQo#rc0in;T_Ac1cMn@+WL%x}vtoYQ}oUYYQtmTNEqG+!Ho!$0fHESJG-s zv7^`4W}DIE)%l`Jk#xnWoAWlD*JM1$=rp}J6tltcpn)Gqkg76533dg;?m&*yGxTmO zSfiG9TK8c~g5j-Io^38zDxU>%d)&azZZ@UG5M57}@+` zkDM6Eq%o7+fv|VTFfFc*bB-Xhe{L_8Q3c$M@n-fd$DAt?{~PzVCE+*PC5Pxcb_di( zIl<$c(A~cS-MyE0Z5XLnn_}$5+Ze{n?hci^n)H3z&O=>7O?di$MF-x9w95hHW5d0x xc38Ob_-~B%$R4%`??#5sv`nFa3glbQiPdM!ayGkUE3WuUqH=5`L+l@fe*+UY5ySuh literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ne/LC_MESSAGES/djangojs.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ne/LC_MESSAGES/djangojs.po new file mode 100644 index 0000000000..d55bd9fb54 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ne/LC_MESSAGES/djangojs.po @@ -0,0 +1,213 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Paras Nath Chaudhary , 2012 +# Sagar Chalise , 2011 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-05-17 23:12+0200\n" +"PO-Revision-Date: 2017-10-07 02:46+0000\n" +"Last-Translator: Sagar Chalise \n" +"Language-Team: Nepali (http://www.transifex.com/django/django/language/ne/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ne\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, javascript-format +msgid "Available %s" +msgstr "उपलब्ध %s" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" +"यो उपलब्ध %s को सुची हो। तपाईंले यी मध्य केही बक्सबाट चयन गरी बक्स बीच्को \"छान्नुहोस " +"\" तीरमा क्लिक गरी छान्नसक्नुहुन्छ । " + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr " उपलब्ध %s को सुचिबाट छान्न यो बक्समा टाइप गर्नुहोस " + +msgid "Filter" +msgstr "छान्नुहोस" + +msgid "Choose all" +msgstr "सबै छान्नुहोस " + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "एकै क्लिकमा सबै %s छान्नुहोस " + +msgid "Choose" +msgstr "छान्नुहोस " + +msgid "Remove" +msgstr "हटाउनुहोस" + +#, javascript-format +msgid "Chosen %s" +msgstr "छानिएको %s" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" +"यो छानिएका %s को सुची हो । तपाईंले यी मध्य केही बक्सबाट चयन गरी बक्स बीच्को " +"\"हटाउनुहोस\" तीरमा क्लिक गरी हटाउन सक्नुहुन्छ । " + +msgid "Remove all" +msgstr "सबै हटाउनुहोस " + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "एकै क्लिकमा सबै छानिएका %s हटाउनुहोस ।" + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "%(cnt)s को %(sel)s चयन गरियो" +msgstr[1] "%(cnt)s को %(sel)s चयन गरियो" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "तपाइको फेरबदल बचत भएको छैन । कार्य भएमा बचत नभएका फेरबदल हराउने छन् ।" + +msgid "" +"You have selected an action, but you haven't saved your changes to " +"individual fields yet. Please click OK to save. You'll need to re-run the " +"action." +msgstr "" +"तपाइले कार्य छाने पनि फेरबदलहरु बचत गर्नु भएको छैन । कृपया बचत गर्न हुन्छ थिच्नुहोस । कार्य " +"पुन: सञ्चालन गर्नुपर्नेछ ।" + +msgid "" +"You have selected an action, and you haven't made any changes on individual " +"fields. You're probably looking for the Go button rather than the Save " +"button." +msgstr "" +"तपाइले कार्य छाने पनि फाँटहरुमा फेरबदलहरु गर्नु भएको छैन । बचत गर्नु भन्दा पनि अघि बढ्नुहोस " +"।" + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "सूचना: तपाईँ सर्भर समय भन्दा %s घण्टा अगाडि हुनुहुन्छ ।" +msgstr[1] "सूचना: तपाईँ सर्भर समय भन्दा %s घण्टा अगाडि हुनुहुन्छ ।" + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "सूचना: तपाईँ सर्भर समय भन्दा %s घण्टा पछाडि हुनुहुन्छ ।" +msgstr[1] "सूचना: तपाईँ सर्भर समय भन्दा %s घण्टा पछाडि हुनुहुन्छ ।" + +msgid "Now" +msgstr "यतिखेर" + +msgid "Choose a Time" +msgstr "समय छान्नु होस ।" + +msgid "Choose a time" +msgstr "समय चयन गर्नुहोस" + +msgid "Midnight" +msgstr "मध्यरात" + +msgid "6 a.m." +msgstr "बिहान ६ बजे" + +msgid "Noon" +msgstr "मध्यान्ह" + +msgid "6 p.m." +msgstr "बेलुकी ६ बजे" + +msgid "Cancel" +msgstr "रद्द गर्नुहोस " + +msgid "Today" +msgstr "आज" + +msgid "Choose a Date" +msgstr "मिति छान्नु होस ।" + +msgid "Yesterday" +msgstr "हिजो" + +msgid "Tomorrow" +msgstr "भोलि" + +msgid "January" +msgstr "" + +msgid "February" +msgstr "" + +msgid "March" +msgstr "" + +msgid "April" +msgstr "" + +msgid "May" +msgstr "" + +msgid "June" +msgstr "" + +msgid "July" +msgstr "" + +msgid "August" +msgstr "" + +msgid "September" +msgstr "" + +msgid "October" +msgstr "" + +msgid "November" +msgstr "" + +msgid "December" +msgstr "" + +msgctxt "one letter Sunday" +msgid "S" +msgstr "" + +msgctxt "one letter Monday" +msgid "M" +msgstr "" + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "" + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "" + +msgctxt "one letter Thursday" +msgid "T" +msgstr "" + +msgctxt "one letter Friday" +msgid "F" +msgstr "" + +msgctxt "one letter Saturday" +msgid "S" +msgstr "" + +msgid "Show" +msgstr "देखाउनुहोस " + +msgid "Hide" +msgstr "लुकाउनुहोस " diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/nl/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/nl/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..b2181e2e71a3ad3928c44e326c4dad2e76f8dd88 GIT binary patch literal 18565 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/nl/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/nl/LC_MESSAGES/django.po new file mode 100644 index 0000000000..ee971ddff0 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/nl/LC_MESSAGES/django.po @@ -0,0 +1,799 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Bas Peschier , 2013 +# Claude Paroz , 2017 +# Evelijn Saaltink , 2016 +# Harro van der Klauw , 2012 +# Ilja Maas , 2015 +# Jannis Leidel , 2011 +# 6a27f10aef159701c7a5ff07f0fb0a78_05545ed , 2011-2012 +# dokterbob , 2015 +# Meteor0id, 2019-2020 +# 8de006b1b0894aab6aef71979dcd8bd6_5c6b207 , 2014-2015 +# Tino de Bruijn , 2011 +# Tonnes , 2017,2019-2020,2022-2024 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-05-22 11:46-0300\n" +"PO-Revision-Date: 2024-08-07 07:05+0000\n" +"Last-Translator: Tonnes , 2017,2019-2020,2022-2024\n" +"Language-Team: Dutch (http://app.transifex.com/django/django/language/nl/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: nl\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "Geselecteerde %(verbose_name_plural)s verwijderen" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "%(count)d %(items)s met succes verwijderd." + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "%(name)s kan niet worden verwijderd " + +msgid "Are you sure?" +msgstr "Weet u het zeker?" + +msgid "Administration" +msgstr "Beheer" + +msgid "All" +msgstr "Alle" + +msgid "Yes" +msgstr "Ja" + +msgid "No" +msgstr "Nee" + +msgid "Unknown" +msgstr "Onbekend" + +msgid "Any date" +msgstr "Elke datum" + +msgid "Today" +msgstr "Vandaag" + +msgid "Past 7 days" +msgstr "Afgelopen zeven dagen" + +msgid "This month" +msgstr "Deze maand" + +msgid "This year" +msgstr "Dit jaar" + +msgid "No date" +msgstr "Geen datum" + +msgid "Has date" +msgstr "Heeft datum" + +msgid "Empty" +msgstr "Leeg" + +msgid "Not empty" +msgstr "Niet leeg" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" +"Voer de correcte %(username)s en wachtwoord voor een stafaccount in. Let op " +"dat beide velden hoofdlettergevoelig zijn." + +msgid "Action:" +msgstr "Actie:" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "Nog een %(verbose_name)s toevoegen" + +msgid "Remove" +msgstr "Verwijderen" + +msgid "Addition" +msgstr "Toevoeging" + +msgid "Change" +msgstr "Wijzigen" + +msgid "Deletion" +msgstr "Verwijdering" + +msgid "action time" +msgstr "actietijd" + +msgid "user" +msgstr "gebruiker" + +msgid "content type" +msgstr "inhoudstype" + +msgid "object id" +msgstr "object-id" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/library/functions.html#repr) +msgid "object repr" +msgstr "object-repr" + +msgid "action flag" +msgstr "actievlag" + +msgid "change message" +msgstr "wijzigingsbericht" + +msgid "log entry" +msgstr "logboekvermelding" + +msgid "log entries" +msgstr "logboekvermeldingen" + +#, python-format +msgid "Added “%(object)s”." +msgstr "‘%(object)s’ toegevoegd." + +#, python-format +msgid "Changed “%(object)s” — %(changes)s" +msgstr "‘%(object)s’ gewijzigd - %(changes)s" + +#, python-format +msgid "Deleted “%(object)s.”" +msgstr "‘%(object)s’ verwijderd." + +msgid "LogEntry Object" +msgstr "LogEntry-object" + +#, python-brace-format +msgid "Added {name} “{object}”." +msgstr "{name} ‘{object}’ toegevoegd." + +msgid "Added." +msgstr "Toegevoegd." + +msgid "and" +msgstr "en" + +#, python-brace-format +msgid "Changed {fields} for {name} “{object}”." +msgstr "{fields} voor {name} ‘{object}’ gewijzigd." + +#, python-brace-format +msgid "Changed {fields}." +msgstr "{fields} gewijzigd." + +#, python-brace-format +msgid "Deleted {name} “{object}”." +msgstr "{name} ‘{object}’ verwijderd." + +msgid "No fields changed." +msgstr "Geen velden gewijzigd." + +msgid "None" +msgstr "Geen" + +msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." +msgstr "" +"Houd ‘Control’, of ‘Command’ op een Mac, ingedrukt om meerdere items te " +"selecteren." + +msgid "Select this object for an action - {}" +msgstr "Selecteer dit object voor een actie - {}" + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully." +msgstr "De {name} ‘{obj}’ is met succes toegevoegd." + +msgid "You may edit it again below." +msgstr "U kunt deze hieronder weer bewerken." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was added successfully. You may add another {name} below." +msgstr "" +"De {name} ‘{obj}’ is met succes toegevoegd. U kunt hieronder nog een {name} " +"toevoegen." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may edit it again below." +msgstr "" +"De {name} ‘{obj}’ is met succes gewijzigd. U kunt deze hieronder nogmaals " +"bewerken." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may add another {name} " +"below." +msgstr "" +"De {name} ‘{obj}’ is met succes gewijzigd. U kunt hieronder nog een {name} " +"toevoegen." + +#, python-brace-format +msgid "The {name} “{obj}” was changed successfully." +msgstr "De {name} ‘{obj}’ is met succes gewijzigd." + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" +"Er moeten items worden geselecteerd om acties op uit te voeren. Er zijn geen " +"items gewijzigd." + +msgid "No action selected." +msgstr "Geen actie geselecteerd." + +#, python-format +msgid "The %(name)s “%(obj)s” was deleted successfully." +msgstr "De %(name)s ‘%(obj)s’ is met succes verwijderd." + +#, python-format +msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" +msgstr "%(name)s met ID ‘%(key)s’ bestaat niet. Misschien is deze verwijderd?" + +#, python-format +msgid "Add %s" +msgstr "%s toevoegen" + +#, python-format +msgid "Change %s" +msgstr "%s wijzigen" + +#, python-format +msgid "View %s" +msgstr "%s weergeven" + +msgid "Database error" +msgstr "Databasefout" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "%(count)s %(name)s is met succes gewijzigd." +msgstr[1] "%(count)s %(name)s zijn met succes gewijzigd." + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "%(total_count)s geselecteerd" +msgstr[1] "Alle %(total_count)s geselecteerd" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "0 van de %(cnt)s geselecteerd" + +#, python-format +msgid "Change history: %s" +msgstr "Wijzigingsgeschiedenis: %s" + +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "%(class_name)s %(instance)s" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" +"Het verwijderen van %(class_name)s %(instance)s vereist het verwijderen van " +"de volgende beschermde gerelateerde objecten: %(related_objects)s" + +msgid "Django site admin" +msgstr "Django-websitebeheer" + +msgid "Django administration" +msgstr "Django-beheer" + +msgid "Site administration" +msgstr "Websitebeheer" + +msgid "Log in" +msgstr "Aanmelden" + +#, python-format +msgid "%(app)s administration" +msgstr "%(app)s-beheer" + +msgid "Page not found" +msgstr "Pagina niet gevonden" + +msgid "We’re sorry, but the requested page could not be found." +msgstr "Het spijt ons, maar de opgevraagde pagina kon niet worden gevonden." + +msgid "Home" +msgstr "Voorpagina" + +msgid "Server error" +msgstr "Serverfout" + +msgid "Server error (500)" +msgstr "Serverfout (500)" + +msgid "Server Error (500)" +msgstr "Serverfout (500)" + +msgid "" +"There’s been an error. It’s been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" +"Er heeft zich een fout voorgedaan. Dit is via e-mail bij de " +"websitebeheerders gemeld en zou snel verholpen moeten zijn. Bedankt voor uw " +"geduld." + +msgid "Run the selected action" +msgstr "De geselecteerde actie uitvoeren" + +msgid "Go" +msgstr "Uitvoeren" + +msgid "Click here to select the objects across all pages" +msgstr "Klik hier om alle objecten op alle pagina's te selecteren" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "Alle %(total_count)s %(module_name)s selecteren" + +msgid "Clear selection" +msgstr "Selectie wissen" + +msgid "Breadcrumbs" +msgstr "Broodkruimels" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "Modellen in de %(name)s-toepassing" + +msgid "Add" +msgstr "Toevoegen" + +msgid "View" +msgstr "Weergeven" + +msgid "You don’t have permission to view or edit anything." +msgstr "U hebt geen rechten om iets te bekijken of te bewerken." + +msgid "" +"First, enter a username and password. Then, you’ll be able to edit more user " +"options." +msgstr "" +"Vul allereerst een gebruikersnaam en wachtwoord in. Daarna kunt u meer " +"gebruikersopties bewerken." + +msgid "Enter a username and password." +msgstr "Voer een gebruikersnaam en wachtwoord in." + +msgid "Change password" +msgstr "Wachtwoord wijzigen" + +msgid "Set password" +msgstr "Wachtwoord instellen" + +msgid "Please correct the error below." +msgid_plural "Please correct the errors below." +msgstr[0] "Corrigeer de onderstaande fout." +msgstr[1] "Corrigeer de onderstaande fouten." + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "" +"Voer een nieuw wachtwoord in voor de gebruiker %(username)s." + +msgid "" +"This action will enable password-based authentication for " +"this user." +msgstr "" +"Deze actie schakelt op wachtwoord gebaseerde authenticatie in voor deze gebruiker." + +msgid "Disable password-based authentication" +msgstr "Op wachtwoord gebaseerde authenticatie uitschakelen" + +msgid "Enable password-based authentication" +msgstr "Op wachtwoord gebaseerde authenticatie inschakelen" + +msgid "Skip to main content" +msgstr "Naar hoofdinhoud" + +msgid "Welcome," +msgstr "Welkom," + +msgid "View site" +msgstr "Website bekijken" + +msgid "Documentation" +msgstr "Documentatie" + +msgid "Log out" +msgstr "Afmelden" + +#, python-format +msgid "Add %(name)s" +msgstr "%(name)s toevoegen" + +msgid "History" +msgstr "Geschiedenis" + +msgid "View on site" +msgstr "Weergeven op website" + +msgid "Filter" +msgstr "Filter" + +msgid "Hide counts" +msgstr "Aantallen verbergen" + +msgid "Show counts" +msgstr "Aantallen tonen" + +msgid "Clear all filters" +msgstr "Alle filters wissen" + +msgid "Remove from sorting" +msgstr "Verwijderen uit sortering" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "Sorteerprioriteit: %(priority_number)s" + +msgid "Toggle sorting" +msgstr "Sortering aan/uit" + +msgid "Toggle theme (current theme: auto)" +msgstr "Thema wisselen (huidige thema: auto)" + +msgid "Toggle theme (current theme: light)" +msgstr "Thema wisselen (huidige thema: licht)" + +msgid "Toggle theme (current theme: dark)" +msgstr "Thema wisselen (huidige thema: donker)" + +msgid "Delete" +msgstr "Verwijderen" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" +"Het verwijderen van %(object_name)s '%(escaped_object)s' zou ook " +"gerelateerde objecten verwijderen, maar uw account heeft geen rechten om de " +"volgende typen objecten te verwijderen:" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" +"Het verwijderen van %(object_name)s '%(escaped_object)s' vereist het " +"verwijderen van de volgende gerelateerde objecten:" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" +"Weet u zeker dat u %(object_name)s '%(escaped_object)s' wilt verwijderen? " +"Alle volgende gerelateerde objecten worden verwijderd:" + +msgid "Objects" +msgstr "Objecten" + +msgid "Yes, I’m sure" +msgstr "Ja, ik weet het zeker" + +msgid "No, take me back" +msgstr "Nee, teruggaan" + +msgid "Delete multiple objects" +msgstr "Meerdere objecten verwijderen" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" +"Het verwijderen van de geselecteerde %(objects_name)s zou ook gerelateerde " +"objecten verwijderen, maar uw account heeft geen rechten om de volgende " +"typen objecten te verwijderen:" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" +"Het verwijderen van de geselecteerde %(objects_name)s vereist het " +"verwijderen van de volgende beschermde gerelateerde objecten:" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" +"Weet u zeker dat u de geselecteerde %(objects_name)s wilt verwijderen? Alle " +"volgende objecten en hun aanverwante items zullen worden verwijderd:" + +msgid "Delete?" +msgstr "Verwijderen?" + +#, python-format +msgid " By %(filter_title)s " +msgstr " Op %(filter_title)s " + +msgid "Summary" +msgstr "Samenvatting" + +msgid "Recent actions" +msgstr "Recente acties" + +msgid "My actions" +msgstr "Mijn acties" + +msgid "None available" +msgstr "Geen beschikbaar" + +msgid "Added:" +msgstr "Toegevoegd:" + +msgid "Changed:" +msgstr "Gewijzigd:" + +msgid "Deleted:" +msgstr "Verwijderd:" + +msgid "Unknown content" +msgstr "Onbekende inhoud" + +msgid "" +"Something’s wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" +"Er is iets mis met de installatie van uw database. Zorg ervoor dat de juiste " +"databasetabellen zijn aangemaakt en dat de database voor de juiste gebruiker " +"leesbaar is." + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" +"U bent geverifieerd als %(username)s, maar niet bevoegd om deze pagina te " +"bekijken. Wilt u zich aanmelden bij een andere account?" + +msgid "Forgotten your password or username?" +msgstr "Wachtwoord of gebruikersnaam vergeten?" + +msgid "Toggle navigation" +msgstr "Navigatie aan/uit" + +msgid "Sidebar" +msgstr "Zijbalk" + +msgid "Start typing to filter…" +msgstr "Begin met typen om te filteren…" + +msgid "Filter navigation items" +msgstr "Navigatie-items filteren" + +msgid "Date/time" +msgstr "Datum/tijd" + +msgid "User" +msgstr "Gebruiker" + +msgid "Action" +msgstr "Actie" + +msgid "entry" +msgid_plural "entries" +msgstr[0] "vermelding" +msgstr[1] "vermeldingen" + +msgid "" +"This object doesn’t have a change history. It probably wasn’t added via this " +"admin site." +msgstr "" +"Dit object heeft geen wijzigingsgeschiedenis. Het is mogelijk niet via de " +"beheerwebsite toegevoegd." + +msgid "Show all" +msgstr "Alles tonen" + +msgid "Save" +msgstr "Opslaan" + +msgid "Popup closing…" +msgstr "Pop-up sluiten…" + +msgid "Search" +msgstr "Zoeken" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "%(counter)s resultaat" +msgstr[1] "%(counter)s resultaten" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "%(full_result_count)s totaal" + +msgid "Save as new" +msgstr "Opslaan als nieuw item" + +msgid "Save and add another" +msgstr "Opslaan en nieuwe toevoegen" + +msgid "Save and continue editing" +msgstr "Opslaan en opnieuw bewerken" + +msgid "Save and view" +msgstr "Opslaan en weergeven" + +msgid "Close" +msgstr "Sluiten" + +#, python-format +msgid "Change selected %(model)s" +msgstr "Geselecteerde %(model)s wijzigen" + +#, python-format +msgid "Add another %(model)s" +msgstr "Nog een %(model)s toevoegen" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "Geselecteerde %(model)s verwijderen" + +#, python-format +msgid "View selected %(model)s" +msgstr "Geselecteerde %(model)s weergeven" + +msgid "Thanks for spending some quality time with the web site today." +msgstr "Bedankt voor het vandaag wat tijd besteden aan de website." + +msgid "Log in again" +msgstr "Opnieuw aanmelden" + +msgid "Password change" +msgstr "Wachtwoordwijziging" + +msgid "Your password was changed." +msgstr "Uw wachtwoord is gewijzigd." + +msgid "" +"Please enter your old password, for security’s sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" +"Voer omwille van beveiliging uw oude en twee keer uw nieuwe wachtwoord in, " +"zodat we kunnen controleren of u geen typefouten hebt gemaakt." + +msgid "Change my password" +msgstr "Mijn wachtwoord wijzigen" + +msgid "Password reset" +msgstr "Wachtwoord hersteld" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "Uw wachtwoord is ingesteld. U kunt nu verdergaan en zich aanmelden." + +msgid "Password reset confirmation" +msgstr "Bevestiging wachtwoord herstellen" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" +"Voer het nieuwe wachtwoord twee keer in, zodat we kunnen controleren of er " +"geen typefouten zijn gemaakt." + +msgid "New password:" +msgstr "Nieuw wachtwoord:" + +msgid "Confirm password:" +msgstr "Bevestig wachtwoord:" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"De link voor het herstellen van het wachtwoord is ongeldig, waarschijnlijk " +"omdat de link al eens is gebruikt. Vraag opnieuw een wachtwoord aan." + +msgid "" +"We’ve emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" +"We hebben u instructies gestuurd voor het instellen van uw wachtwoord, als " +"er een account bestaat met het door u ingevoerde e-mailadres. U zou deze " +"straks moeten ontvangen." + +msgid "" +"If you don’t receive an email, please make sure you’ve entered the address " +"you registered with, and check your spam folder." +msgstr "" +"Als u geen e-mail ontvangt, controleer dan of u het e-mailadres hebt " +"ingevoerd waarmee u zich hebt geregistreerd, en controleer uw spam-map." + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" +"U ontvangt deze e-mail, omdat u een aanvraag voor opnieuw instellen van het " +"wachtwoord voor uw account op %(site_name)s hebt gedaan." + +msgid "Please go to the following page and choose a new password:" +msgstr "Ga naar de volgende pagina en kies een nieuw wachtwoord:" + +msgid "Your username, in case you’ve forgotten:" +msgstr "Uw gebruikersnaam, mocht u deze vergeten zijn:" + +msgid "Thanks for using our site!" +msgstr "Bedankt voor het gebruik van onze website!" + +#, python-format +msgid "The %(site_name)s team" +msgstr "Het %(site_name)s-team" + +msgid "" +"Forgotten your password? Enter your email address below, and we’ll email " +"instructions for setting a new one." +msgstr "" +"Wachtwoord vergeten? Vul hieronder uw e-mailadres in, en we sturen " +"instructies voor het instellen van een nieuw wachtwoord." + +msgid "Email address:" +msgstr "E-mailadres:" + +msgid "Reset my password" +msgstr "Mijn wachtwoord opnieuw instellen" + +msgid "Select all objects on this page for an action" +msgstr "Selecteer alle objecten op deze pagina voor een actie" + +msgid "All dates" +msgstr "Alle datums" + +#, python-format +msgid "Select %s" +msgstr "Selecteer %s" + +#, python-format +msgid "Select %s to change" +msgstr "Selecteer %s om te wijzigen" + +#, python-format +msgid "Select %s to view" +msgstr "Selecteer %s om te bekijken" + +msgid "Date:" +msgstr "Datum:" + +msgid "Time:" +msgstr "Tijd:" + +msgid "Lookup" +msgstr "Opzoeken" + +msgid "Currently:" +msgstr "Huidig:" + +msgid "Change:" +msgstr "Wijzigen:" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/nl/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/nl/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..69485a263ee4edf32193096baffbd57448d41110 GIT binary patch literal 6122 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, 2013 +# Evelijn Saaltink , 2016 +# Harro van der Klauw , 2012 +# Ilja Maas , 2015 +# Jannis Leidel , 2011 +# 6a27f10aef159701c7a5ff07f0fb0a78_05545ed , 2011-2012 +# Meteor0id, 2019-2020 +# 8de006b1b0894aab6aef71979dcd8bd6_5c6b207 , 2015 +# Tonnes , 2019-2020,2022-2023 +# wunki , 2011 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-09-18 15:04-0300\n" +"PO-Revision-Date: 2023-12-04 07:59+0000\n" +"Last-Translator: Tonnes , 2019-2020,2022-2023\n" +"Language-Team: Dutch (http://app.transifex.com/django/django/language/nl/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: nl\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, javascript-format +msgid "Available %s" +msgstr "Beschikbare %s" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" +"Dit is de lijst met beschikbare %s. U kunt er een aantal kiezen door ze in " +"het vak hieronder te selecteren en daarna op de pijl 'Kiezen' tussen de twee " +"vakken te klikken." + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "Typ in dit vak om de lijst met beschikbare %s te filteren." + +msgid "Filter" +msgstr "Filter" + +msgid "Choose all" +msgstr "Alle kiezen" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "Klik om alle %s te kiezen." + +msgid "Choose" +msgstr "Kiezen" + +msgid "Remove" +msgstr "Verwijderen" + +#, javascript-format +msgid "Chosen %s" +msgstr "Gekozen %s" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" +"Dit is de lijst met gekozen %s. U kunt er een aantal verwijderen door ze in " +"het vak hieronder te selecteren en daarna op de pijl 'Verwijderen' tussen de " +"twee vakken te klikken." + +#, javascript-format +msgid "Type into this box to filter down the list of selected %s." +msgstr "Typ in dit vak om de lijst met geselecteerde %s te filteren." + +msgid "Remove all" +msgstr "Alle verwijderen" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "Klik om alle gekozen %s tegelijk te verwijderen." + +#, javascript-format +msgid "%s selected option not visible" +msgid_plural "%s selected options not visible" +msgstr[0] "%s geselecteerde optie niet zichtbaar" +msgstr[1] "%s geselecteerde opties niet zichtbaar" + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "%(sel)s van de %(cnt)s geselecteerd" +msgstr[1] "%(sel)s van de %(cnt)s geselecteerd" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" +"U hebt niet-opgeslagen wijzigingen op afzonderlijke bewerkbare velden. Als u " +"een actie uitvoert, gaan uw wijzigingen verloren." + +msgid "" +"You have selected an action, but you haven’t saved your changes to " +"individual fields yet. Please click OK to save. You’ll need to re-run the " +"action." +msgstr "" +"U hebt een actie geselecteerd, maar uw wijzigingen in afzonderlijke velden " +"nog niet opgeslagen. Klik op OK om deze op te slaan. U dient de actie " +"opnieuw uit te voeren." + +msgid "" +"You have selected an action, and you haven’t made any changes on individual " +"fields. You’re probably looking for the Go button rather than the Save " +"button." +msgstr "" +"U hebt een actie geselecteerd, en geen wijzigingen in afzonderlijke velden " +"aangebracht. Waarschijnlijk zoekt u de knop Gaan in plaats van de knop " +"Opslaan." + +msgid "Now" +msgstr "Nu" + +msgid "Midnight" +msgstr "Middernacht" + +msgid "6 a.m." +msgstr "6 uur 's ochtends" + +msgid "Noon" +msgstr "12 uur 's middags" + +msgid "6 p.m." +msgstr "6 uur 's avonds" + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "Let op: u ligt %s uur voor ten opzichte van de servertijd." +msgstr[1] "Let op: u ligt %s uur voor ten opzichte van de servertijd." + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "Let op: u ligt %s uur achter ten opzichte van de servertijd." +msgstr[1] "Let op: u ligt %s uur achter ten opzichte van de servertijd." + +msgid "Choose a Time" +msgstr "Kies een tijdstip" + +msgid "Choose a time" +msgstr "Kies een tijd" + +msgid "Cancel" +msgstr "Annuleren" + +msgid "Today" +msgstr "Vandaag" + +msgid "Choose a Date" +msgstr "Kies een datum" + +msgid "Yesterday" +msgstr "Gisteren" + +msgid "Tomorrow" +msgstr "Morgen" + +msgid "January" +msgstr "januari" + +msgid "February" +msgstr "februari" + +msgid "March" +msgstr "maart" + +msgid "April" +msgstr "april" + +msgid "May" +msgstr "mei" + +msgid "June" +msgstr "juni" + +msgid "July" +msgstr "juli" + +msgid "August" +msgstr "augustus" + +msgid "September" +msgstr "september" + +msgid "October" +msgstr "oktober" + +msgid "November" +msgstr "november" + +msgid "December" +msgstr "december" + +msgctxt "abbrev. month January" +msgid "Jan" +msgstr "jan" + +msgctxt "abbrev. month February" +msgid "Feb" +msgstr "feb" + +msgctxt "abbrev. month March" +msgid "Mar" +msgstr "mrt" + +msgctxt "abbrev. month April" +msgid "Apr" +msgstr "apr" + +msgctxt "abbrev. month May" +msgid "May" +msgstr "mei" + +msgctxt "abbrev. month June" +msgid "Jun" +msgstr "jun" + +msgctxt "abbrev. month July" +msgid "Jul" +msgstr "jul" + +msgctxt "abbrev. month August" +msgid "Aug" +msgstr "aug" + +msgctxt "abbrev. month September" +msgid "Sep" +msgstr "sep" + +msgctxt "abbrev. month October" +msgid "Oct" +msgstr "okt" + +msgctxt "abbrev. month November" +msgid "Nov" +msgstr "nov" + +msgctxt "abbrev. month December" +msgid "Dec" +msgstr "dec" + +msgid "Sunday" +msgstr "zondag" + +msgid "Monday" +msgstr "maandag" + +msgid "Tuesday" +msgstr "dinsdag" + +msgid "Wednesday" +msgstr "woensdag" + +msgid "Thursday" +msgstr "donderdag" + +msgid "Friday" +msgstr "vrijdag" + +msgid "Saturday" +msgstr "zaterdag" + +msgctxt "abbrev. day Sunday" +msgid "Sun" +msgstr "zo" + +msgctxt "abbrev. day Monday" +msgid "Mon" +msgstr "ma" + +msgctxt "abbrev. day Tuesday" +msgid "Tue" +msgstr "di" + +msgctxt "abbrev. day Wednesday" +msgid "Wed" +msgstr "wo" + +msgctxt "abbrev. day Thursday" +msgid "Thur" +msgstr "do" + +msgctxt "abbrev. day Friday" +msgid "Fri" +msgstr "vr" + +msgctxt "abbrev. day Saturday" +msgid "Sat" +msgstr "za" + +msgctxt "one letter Sunday" +msgid "S" +msgstr "Z" + +msgctxt "one letter Monday" +msgid "M" +msgstr "M" + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "D" + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "W" + +msgctxt "one letter Thursday" +msgid "T" +msgstr "D" + +msgctxt "one letter Friday" +msgid "F" +msgstr "V" + +msgctxt "one letter Saturday" +msgid "S" +msgstr "Z" + +msgid "Show" +msgstr "Tonen" + +msgid "Hide" +msgstr "Verbergen" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/nn/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/nn/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..779cf097472ad340102e1069d2b904f8ffa216de GIT binary patch literal 16504 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/nn/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/nn/LC_MESSAGES/django.po new file mode 100644 index 0000000000..4a7c846f80 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/nn/LC_MESSAGES/django.po @@ -0,0 +1,736 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# hgrimelid , 2011-2012 +# Jannis Leidel , 2011 +# jensadne , 2013 +# Sigurd Gartmann , 2012 +# Sivert Olstad, 2021-2022 +# velmont , 2012 +# Vibeke Uthaug, 2021 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2022-05-17 05:10-0500\n" +"PO-Revision-Date: 2022-07-25 07:05+0000\n" +"Last-Translator: Sivert Olstad\n" +"Language-Team: Norwegian Nynorsk (http://www.transifex.com/django/django/" +"language/nn/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: nn\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "Slett valgte %(verbose_name_plural)s" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "Sletta %(count)d %(items)s." + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "Kan ikkje slette %(name)s" + +msgid "Are you sure?" +msgstr "Er du sikker?" + +msgid "Administration" +msgstr "Administrasjon" + +msgid "All" +msgstr "Alle" + +msgid "Yes" +msgstr "Ja" + +msgid "No" +msgstr "Nei" + +msgid "Unknown" +msgstr "Ukjend" + +msgid "Any date" +msgstr "Når som helst" + +msgid "Today" +msgstr "I dag" + +msgid "Past 7 days" +msgstr "Siste sju dagar" + +msgid "This month" +msgstr "Denne månaden" + +msgid "This year" +msgstr "I år" + +msgid "No date" +msgstr "Ingen dato" + +msgid "Has date" +msgstr "Har dato" + +msgid "Empty" +msgstr "Tom" + +msgid "Not empty" +msgstr "Ikkje tom" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" +"Oppgje korrekt %(username)s og passord for ein administrasjonsbrukarkonto. " +"Merk at det er skilnad på små og store bokstavar." + +msgid "Action:" +msgstr "Handling:" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "Opprett ny %(verbose_name)s." + +msgid "Remove" +msgstr "Fjern" + +msgid "Addition" +msgstr "Tillegg" + +msgid "Change" +msgstr "Endre" + +msgid "Deletion" +msgstr "Sletting" + +msgid "action time" +msgstr "tid for handling" + +msgid "user" +msgstr "brukar" + +msgid "content type" +msgstr "innhaldstype" + +msgid "object id" +msgstr "objekt-ID" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/library/functions.html#repr) +msgid "object repr" +msgstr "objekt repr" + +msgid "action flag" +msgstr "handlingsflagg" + +msgid "change message" +msgstr "endre melding" + +msgid "log entry" +msgstr "logginnlegg" + +msgid "log entries" +msgstr "logginnlegg" + +#, python-format +msgid "Added “%(object)s”." +msgstr "Oppretta “%(object)s”." + +#, python-format +msgid "Changed “%(object)s” — %(changes)s" +msgstr "Endra “%(object)s” — %(changes)s" + +#, python-format +msgid "Deleted “%(object)s.”" +msgstr "Sletta “%(object)s”." + +msgid "LogEntry Object" +msgstr "LogEntry-objekt" + +#, python-brace-format +msgid "Added {name} “{object}”." +msgstr "Oppretta {name} “{object}”." + +msgid "Added." +msgstr "Oppretta." + +msgid "and" +msgstr "og" + +#, python-brace-format +msgid "Changed {fields} for {name} “{object}”." +msgstr "Endra {fields} for {name} “{object}”." + +#, python-brace-format +msgid "Changed {fields}." +msgstr "Endra {fields}." + +#, python-brace-format +msgid "Deleted {name} “{object}”." +msgstr "Sletta {name} “{object}”." + +msgid "No fields changed." +msgstr "Ingen felt endra." + +msgid "None" +msgstr "Ingen" + +msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." +msgstr "" +"Hald nede “Control”, eller “Command” på ein Mac, for å velge meir enn éin." + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully." +msgstr "{name} “{obj}” vart oppretta." + +msgid "You may edit it again below." +msgstr "Du kan endre det att nedanfor." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was added successfully. You may add another {name} below." +msgstr "" +"{name} “{obj}” vart oppretta. Du kan opprette enda ein {name} nedanfor." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may edit it again below." +msgstr "{name} “{obj}” vart endra. Du kan redigere vidare nedanfor." + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully. You may edit it again below." +msgstr "{name} “{obj}” vart oppretta. Du kan redigere vidare nedanfor." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may add another {name} " +"below." +msgstr "{name} “{obj}” vart endra. Du kan opprette enda ein {name} nedanfor." + +#, python-brace-format +msgid "The {name} “{obj}” was changed successfully." +msgstr "{name} “{obj}” vart endra." + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" +"Objekt må vere valde for at dei skal kunne utførast handlingar på. Ingen " +"object er endra." + +msgid "No action selected." +msgstr "Inga valt handling." + +#, python-format +msgid "The %(name)s “%(obj)s” was deleted successfully." +msgstr "%(name)s “%(obj)s” vart sletta." + +#, python-format +msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" +msgstr "" +"%(name)s med ID “%(key)s” eksisterer ikkje. Kanskje den har vorte sletta?" + +#, python-format +msgid "Add %s" +msgstr "Opprett %s" + +#, python-format +msgid "Change %s" +msgstr "Rediger %s" + +#, python-format +msgid "View %s" +msgstr "Sjå %s" + +msgid "Database error" +msgstr "Databasefeil" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "%(count)s %(name)s vart endra." +msgstr[1] "%(count)s %(name)s vart endra." + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "%(total_count)s valde" +msgstr[1] "Alle %(total_count)s valde" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "Ingen av %(cnt)s valde" + +#, python-format +msgid "Change history: %s" +msgstr "Endringshistorikk: %s" + +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "%(class_name)s %(instance)s" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" +"Sletting av %(class_name)s «%(instance)s» krev sletting av følgande beskytta " +"relaterte objekt: %(related_objects)s" + +msgid "Django site admin" +msgstr "Django administrasjonsside" + +msgid "Django administration" +msgstr "Django-administrasjon" + +msgid "Site administration" +msgstr "Nettstadsadministrasjon" + +msgid "Log in" +msgstr "Logg inn" + +#, python-format +msgid "%(app)s administration" +msgstr "%(app)s-administrasjon" + +msgid "Page not found" +msgstr "Fann ikkje sida" + +msgid "We’re sorry, but the requested page could not be found." +msgstr "Sida du spør etter finst ikkje." + +msgid "Home" +msgstr "Heim" + +msgid "Server error" +msgstr "Tenarfeil" + +msgid "Server error (500)" +msgstr "Tenarfeil (500)" + +msgid "Server Error (500)" +msgstr "Tenarfeil (500)" + +msgid "" +"There’s been an error. It’s been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" +"Det har oppstått ein feil. Det er rapportert til dei som administrerer " +"nettsida med e-mail og burde bli fiksa snarast. Takk for tolmodigheita." + +msgid "Run the selected action" +msgstr "Utfør den valde handlinga" + +msgid "Go" +msgstr "Gå" + +msgid "Click here to select the objects across all pages" +msgstr "Klikk her for å velje objekt på tvers av alle sider" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "Velg alle %(total_count)s %(module_name)s" + +msgid "Clear selection" +msgstr "Nullstill utval" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "Modellar i %(name)s-applikasjonen" + +msgid "Add" +msgstr "Opprett" + +msgid "View" +msgstr "Sjå" + +msgid "You don’t have permission to view or edit anything." +msgstr "Du har ikkje løyve til å sjå eller redigere noko." + +msgid "" +"First, enter a username and password. Then, you’ll be able to edit more user " +"options." +msgstr "" +"Skriv først inn brukernamn og passord. Deretter vil du få høve til å endre " +"fleire brukarinnstillingar." + +msgid "Enter a username and password." +msgstr "Skriv inn nytt brukarnamn og passord." + +msgid "Change password" +msgstr "Endre passord" + +msgid "Please correct the error below." +msgstr "Korriger feilen under." + +msgid "Please correct the errors below." +msgstr "Korriger feila under." + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "Skriv inn eit nytt passord for brukaren %(username)s." + +msgid "Welcome," +msgstr "Velkommen," + +msgid "View site" +msgstr "Vis nettstad" + +msgid "Documentation" +msgstr "Dokumentasjon" + +msgid "Log out" +msgstr "Logg ut" + +#, python-format +msgid "Add %(name)s" +msgstr "Opprett %(name)s" + +msgid "History" +msgstr "Historikk" + +msgid "View on site" +msgstr "Vis på nettstad" + +msgid "Filter" +msgstr "Filtrering" + +msgid "Clear all filters" +msgstr "Fjern alle filter" + +msgid "Remove from sorting" +msgstr "Fjern frå sortering" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "Sorteringspriorite: %(priority_number)s" + +msgid "Toggle sorting" +msgstr "Slår av eller på sortering" + +msgid "Delete" +msgstr "Slett" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" +"Dersom du slettar %(object_name)s '%(escaped_object)s', vil også slette " +"relaterte objekt, men du har ikkje løyve til å slette følgande objekttypar:" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" +"Sletting av %(object_name)s '%(escaped_object)s' krevar sletting av " +"følgjande beskytta relaterte objekt:" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" +"Er du sikker på at du vil slette %(object_name)s \"%(escaped_object)s\"? " +"Alle dei følgjande relaterte objekta vil bli sletta:" + +msgid "Objects" +msgstr "Objekt" + +msgid "Yes, I’m sure" +msgstr "Ja, eg er sikker" + +msgid "No, take me back" +msgstr "Nei, ta meg attende" + +msgid "Delete multiple objects" +msgstr "Slett fleire objekt" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" +"Sletting av %(objects_name)s vil føre til at relaterte objekt blir sletta, " +"men kontoen din manglar løyve til å slette følgjande objekttypar:" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" +"Sletting av %(objects_name)s krevar sletting av følgjande beskytta relaterte " +"objekt:" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" +"Er du sikker på at du vil slette dei valgte objekta %(objects_name)s? " +"Følgjande objekt og deira relaterte objekt vil bli sletta:" + +msgid "Delete?" +msgstr "Slette?" + +#, python-format +msgid " By %(filter_title)s " +msgstr "Etter %(filter_title)s " + +msgid "Summary" +msgstr "Oppsummering" + +msgid "Recent actions" +msgstr "Siste handlingar" + +msgid "My actions" +msgstr "Mine handlingar" + +msgid "None available" +msgstr "Ingen tilgjengelege" + +msgid "Unknown content" +msgstr "Ukjent innhald" + +msgid "" +"Something’s wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" +"Noko er gale med databaseinstallasjonen din. Syt for at databasetabellane er " +"oppretta og at brukaren har dei naudsynte løyve." + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" +"Du er stadfesta som %(username)s, men er ikkje autentisert til å få tilgang " +"til denne sida. Ynskjer du å logge inn med ein annan konto?" + +msgid "Forgotten your password or username?" +msgstr "Gløymd brukarnamn eller passord?" + +msgid "Toggle navigation" +msgstr "Veksl navigasjon" + +msgid "Start typing to filter…" +msgstr "Begynn å skrive for å filtrere..." + +msgid "Filter navigation items" +msgstr "Filtrer navigasjonselement" + +msgid "Date/time" +msgstr "Dato/tid" + +msgid "User" +msgstr "Brukar" + +msgid "Action" +msgstr "Handling" + +msgid "entry" +msgstr "" + +msgid "entries" +msgstr "" + +msgid "" +"This object doesn’t have a change history. It probably wasn’t added via this " +"admin site." +msgstr "" +"Dette objektet har ingen endringshistorikk. Det blei sannsynlegvis ikkje " +"oppretta av denne administratoren. " + +msgid "Show all" +msgstr "Vis alle" + +msgid "Save" +msgstr "Lagre" + +msgid "Popup closing…" +msgstr "Lukkar popup…" + +msgid "Search" +msgstr "Søk" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "%(counter)s resultat" +msgstr[1] "%(counter)s resultat" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "%(full_result_count)s totalt" + +msgid "Save as new" +msgstr "Lagre som ny" + +msgid "Save and add another" +msgstr "Lagre og opprett ny" + +msgid "Save and continue editing" +msgstr "Lagre og hald fram å redigere" + +msgid "Save and view" +msgstr "Lagre og sjå" + +msgid "Close" +msgstr "Lukk" + +#, python-format +msgid "Change selected %(model)s" +msgstr "Endre valt %(model)s" + +#, python-format +msgid "Add another %(model)s" +msgstr "Opprett ny %(model)s" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "Slett valde %(model)s" + +#, python-format +msgid "View selected %(model)s" +msgstr "" + +msgid "Thanks for spending some quality time with the web site today." +msgstr "Takk for at du brukte litt kvalitetstid på nettsida i dag. " + +msgid "Log in again" +msgstr "Logg inn att" + +msgid "Password change" +msgstr "Endre passord" + +msgid "Your password was changed." +msgstr "Passordet ditt vart endret." + +msgid "" +"Please enter your old password, for security’s sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" +"Av sikkerheitsgrunnar må du oppgje det gamle passordet ditt. Oppgje så det " +"nye passordet ditt to gongar, sånn at vi kan kontrollere at det er korrekt." + +msgid "Change my password" +msgstr "Endre passord" + +msgid "Password reset" +msgstr "Nullstill passord" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "Passordet ditt er sett. Du kan logge inn." + +msgid "Password reset confirmation" +msgstr "Stadfesting på nullstilt passord" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" +"Oppgje det nye passordet ditt to gonger, for å sikre at du oppgjev det " +"korrekt." + +msgid "New password:" +msgstr "Nytt passord:" + +msgid "Confirm password:" +msgstr "Gjenta nytt passord:" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"Nullstillingslinken er ugyldig, kanskje fordi den allereie har vore brukt. " +"Nullstill passordet ditt på nytt." + +msgid "" +"We’ve emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" +"Dersom det eksisterer ein brukarkonto med e-postadressa du skreiv inn vil " +"det bli sendt ein e-post med instruksjonar for å nullstille passordet til " +"den e-postadressa. Du burde motta den snart. " + +msgid "" +"If you don’t receive an email, please make sure you’ve entered the address " +"you registered with, and check your spam folder." +msgstr "" +"Om du ikkje mottar ein e-post, ver vennleg og sørg for at du skreiv inn e-" +"postadressa du er registrert med og sjekk spam-filteret. " + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" +"Du får denne e-posten fordi du har bedt om å nullstille passordet for " +"brukarkontoen din på %(site_name)s." + +msgid "Please go to the following page and choose a new password:" +msgstr "Gå til følgjande side og velg eit nytt passord:" + +msgid "Your username, in case you’ve forgotten:" +msgstr "Brukarnamnet ditt, i tilfelle du har gløymt det:" + +msgid "Thanks for using our site!" +msgstr "Takk for at du brukar sida vår!" + +#, python-format +msgid "The %(site_name)s team" +msgstr "Helsing %(site_name)s" + +msgid "" +"Forgotten your password? Enter your email address below, and we’ll email " +"instructions for setting a new one." +msgstr "" +"Gløymt passordet ditt? Oppgje e-postadressa di under, så sender me deg ein e-" +"post med instruksjonar for nullstilling av passord." + +msgid "Email address:" +msgstr "E-postadresse:" + +msgid "Reset my password" +msgstr "Nullstill passordet" + +msgid "All dates" +msgstr "Alle datoar" + +#, python-format +msgid "Select %s" +msgstr "Velg %s" + +#, python-format +msgid "Select %s to change" +msgstr "Velg %s du ønskar å redigere" + +#, python-format +msgid "Select %s to view" +msgstr "Velg %s du ønskar å sjå" + +msgid "Date:" +msgstr "Dato:" + +msgid "Time:" +msgstr "Tid:" + +msgid "Lookup" +msgstr "Oppslag" + +msgid "Currently:" +msgstr "Noverande:" + +msgid "Change:" +msgstr "Endre:" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/nn/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/nn/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..d94421cf9de32e00d1a0220ae894f22f0902ca9b GIT binary patch literal 4939 zcmbuDUyK_^9mfZ7p~#zF%Kv_wIESZ+Dag*3WW012VSZ8BWNYy1tcUS5E7L@LPDw#FQ`0$`2KdsKA&SH zkvj71XXpQKfAgE){O;a7SbB*eJ&t^c^1B(kOf2DnboDmI9s$1wz88GW@fRR|?ANaR zTksB)|KQ4hb^Hf-C+h#@_+Q5Zm~0O9_k-^T9|9i$eef8#4c-oBj$Z}wW6$70qCE$` z4}8IuzvuXU5KFLY;CsMVL7L}BuKma0=TZI{*Z}XvB-GvoslNqj-Ya;Z3%d%EoX>zH z=eI#x|7Gw+@CV@Y;3_7eb$L%Mi?L_HGRkjZ6Y2X7eW2h`#|4n|0 z8s~wu?hH$1O(;WsCH13Fg3#y7y&}bWe781o;!lPy_oE@?m5j`9Wmb|IZ+k zJ$lHbPfAclZmaZ8dtX6bKqmX71d|=7$K4z40VT2#N@S~?UR)v{b^@99auxX$GVSLm zVf)yl$aFS8?JBVa3}(gVU3m>WiTrU_rgKTQOZ!9VlgN)DuTTMr_Lma*NlHt|WDCcU zk0FzNm67Rul8>VV^%iMY2QqST0ziISZx#rfD&s(i9IYIV8Qyp>PK zMI57=3(GZD@!7_x-N;1uW!{di#pu0mo3bU7rZlW7nfkwKwJ1`b?$iOT+1N{MmgW z`mJ~7P1%W5a7)w9?%FTDdRq_JPRnZ2z{Olq4x}$umpxnbt9Q_`(TP%ypY2ErUxJ><-LXG!%Pa5sk| z@9o^mc%TQx7tPcsyDU@KB27n@)e*4c(TRl8xMeOJ9&4R%KwHCFq3N?wbY?Av8-X%aVqt2j zlQcz}e`E2`iSHLL#n^!A%veC^Sf7 z?@&9Os@;ZPCEr=X%T$x|DJ5{KW$aT*cw<^YZ_>iZdDTQP^ip-QuBH{$)h6re!e(?N zO7(rUS>AJBU89qklzKKMdp0t8edW_KP(}6A?1Is|xb(cOz`G<(iW64h!7h%Gp1UY} z+E}lahEd>sHVad)p(}ju!j5-Q_9N=*(QQ`YE9I4CZyCQbUpY}(dF0_T(%gBGTCZV* zN@HQQsqlJ)Tfy?3IJF``vkEg2O0OYBQsLX$3}hI={I-Wmo3zUpI@b0oOG|^nz_&C_ z)RtHLmQI!m`9_G{L`zC7EzZ@pYG?MoWZ5szZNN6Af+%oJ6>jAfyVQ$Cq)yXmG^w;} zPc^FEsl9%*R$ChHjB4os{<*?WH6uF~xWbj1yAWqa#9mdKBt=CpFQ#iNr+M+ZwxIZt zHNL!fdTty|i2gXz=!&-fxyvTR?Q(L8Z(QSj8Se_ZAoGhp6^V_4 zDD>IBPVHT3lmfwtiHu{Nc_~4Q@pb%TdTc(E, 2011 +# Jannis Leidel , 2011 +# Sivert Olstad, 2021 +# velmont , 2012 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-01-15 09:00+0100\n" +"PO-Revision-Date: 2021-11-10 23:27+0000\n" +"Last-Translator: Sivert Olstad\n" +"Language-Team: Norwegian Nynorsk (http://www.transifex.com/django/django/" +"language/nn/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: nn\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, javascript-format +msgid "Available %s" +msgstr "Tilgjengelege %s" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" +"Dette er lista over tilgjengelege %s. Du kan velja nokon ved å markera dei i " +"boksen under og so klikka på «Velg»-pila mellom dei to boksane." + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "Skriv i dette feltet for å filtrera ned lista av tilgjengelege %s." + +msgid "Filter" +msgstr "Filter" + +msgid "Choose all" +msgstr "Velg alle" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "Klikk for å velja alle %s samtidig." + +msgid "Choose" +msgstr "Vel" + +msgid "Remove" +msgstr "Slett" + +#, javascript-format +msgid "Chosen %s" +msgstr "Valde %s" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" +"Dette er lista over valte %s. Du kan fjerna nokon ved å markera dei i boksen " +"under og so klikka på «Fjern»-pila mellom dei to boksane." + +msgid "Remove all" +msgstr "Fjern alle" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "Klikk for å fjerna alle valte %s samtidig." + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "%(sel)s av %(cnt)s vald" +msgstr[1] "%(sel)s av %(cnt)s valde" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" +"Det er endringar som ikkje er lagra i individuelt redigerbare felt. " +"Endringar som ikkje er lagra vil gå tapt." + +msgid "" +"You have selected an action, but you haven’t saved your changes to " +"individual fields yet. Please click OK to save. You’ll need to re-run the " +"action." +msgstr "" +"Du har vald ei handling, men du har framleis ikkje lagra endringar for " +"individuelle felt. Klikk OK for å lagre. Du må gjere handlinga på nytt." + +msgid "" +"You have selected an action, and you haven’t made any changes on individual " +"fields. You’re probably looking for the Go button rather than the Save " +"button." +msgstr "" +"Du har vald ei handling og du har ikkje gjort endringar i individuelle felt. " +"Du ser sannsynlegvis etter Gå vidare-knappen - ikkje Lagre-knappen." + +msgid "Now" +msgstr "No" + +msgid "Midnight" +msgstr "Midnatt" + +msgid "6 a.m." +msgstr "06:00" + +msgid "Noon" +msgstr "12:00" + +msgid "6 p.m." +msgstr "18:00" + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "Merk: Du er %s time framanfor tjenar-tid." +msgstr[1] "Merk: Du er %s timar framanfor tjenar-tid." + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "Merk: Du er %s time bak tjenar-tid." +msgstr[1] "Merk: Du er %s timar bak tjenar-tid." + +msgid "Choose a Time" +msgstr "Velg eit klokkeslett" + +msgid "Choose a time" +msgstr "Velg eit klokkeslett" + +msgid "Cancel" +msgstr "Avbryt" + +msgid "Today" +msgstr "I dag" + +msgid "Choose a Date" +msgstr "Velg ein dato" + +msgid "Yesterday" +msgstr "I går" + +msgid "Tomorrow" +msgstr "I morgon" + +msgid "January" +msgstr "Januar" + +msgid "February" +msgstr "Februar" + +msgid "March" +msgstr "Mars" + +msgid "April" +msgstr "April" + +msgid "May" +msgstr "Mai" + +msgid "June" +msgstr "Juni" + +msgid "July" +msgstr "Juli" + +msgid "August" +msgstr "August" + +msgid "September" +msgstr "September" + +msgid "October" +msgstr "Oktober" + +msgid "November" +msgstr "November" + +msgid "December" +msgstr "Desember" + +msgctxt "abbrev. month January" +msgid "Jan" +msgstr "Jan" + +msgctxt "abbrev. month February" +msgid "Feb" +msgstr "Feb" + +msgctxt "abbrev. month March" +msgid "Mar" +msgstr "Mar" + +msgctxt "abbrev. month April" +msgid "Apr" +msgstr "Apr" + +msgctxt "abbrev. month May" +msgid "May" +msgstr "Mai" + +msgctxt "abbrev. month June" +msgid "Jun" +msgstr "Jun" + +msgctxt "abbrev. month July" +msgid "Jul" +msgstr "Jul" + +msgctxt "abbrev. month August" +msgid "Aug" +msgstr "Aug" + +msgctxt "abbrev. month September" +msgid "Sep" +msgstr "Sep" + +msgctxt "abbrev. month October" +msgid "Oct" +msgstr "Okt" + +msgctxt "abbrev. month November" +msgid "Nov" +msgstr "Nov" + +msgctxt "abbrev. month December" +msgid "Dec" +msgstr "Des" + +msgctxt "one letter Sunday" +msgid "S" +msgstr "S" + +msgctxt "one letter Monday" +msgid "M" +msgstr "M" + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "T" + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "O" + +msgctxt "one letter Thursday" +msgid "T" +msgstr "T" + +msgctxt "one letter Friday" +msgid "F" +msgstr "F" + +msgctxt "one letter Saturday" +msgid "S" +msgstr "L" + +msgid "Show" +msgstr "Vis" + +msgid "Hide" +msgstr "Skjul" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/os/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/os/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..dbf509f59e4f8bed8737727995a50431dd2ef9ea GIT binary patch literal 14978 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 VdVh!@q;d}TP6&g2vR9Mle*x&7ET8}Y literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/os/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/os/LC_MESSAGES/django.po new file mode 100644 index 0000000000..aae9d9c22d --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/os/LC_MESSAGES/django.po @@ -0,0 +1,665 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Soslan Khubulov , 2013 +# Soslan Khubulov , 2013 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-01-19 16:49+0100\n" +"PO-Revision-Date: 2017-09-19 16:40+0000\n" +"Last-Translator: Jannis Leidel \n" +"Language-Team: Ossetic (http://www.transifex.com/django/django/language/" +"os/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: os\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "%(count)d %(items)s хафт ӕрцыдысты." + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "Нӕ уайы схафын %(name)s" + +msgid "Are you sure?" +msgstr "Ӕцӕг дӕ фӕнды?" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "Схафын ӕвзӕрст %(verbose_name_plural)s" + +msgid "Administration" +msgstr "" + +msgid "All" +msgstr "Иууылдӕр" + +msgid "Yes" +msgstr "О" + +msgid "No" +msgstr "Нӕ" + +msgid "Unknown" +msgstr "Ӕнӕбӕрӕг" + +msgid "Any date" +msgstr "Цыфӕнды бон" + +msgid "Today" +msgstr "Абон" + +msgid "Past 7 days" +msgstr "Фӕстаг 7 бон" + +msgid "This month" +msgstr "Ацы мӕй" + +msgid "This year" +msgstr "Ацы аз" + +msgid "No date" +msgstr "" + +msgid "Has date" +msgstr "" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" +"Дӕ хорзӕхӕй, раст кусӕджы аккаунты %(username)s ӕмӕ пароль бафысс. Дӕ сӕры " +"дар уый, ӕмӕ дыууӕ дӕр гӕнӕн ис стыр ӕмӕ гыццыл дамгъӕ ӕвзарой." + +msgid "Action:" +msgstr "Ми:" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "Бафтауын ӕндӕр %(verbose_name)s" + +msgid "Remove" +msgstr "Схафын" + +msgid "action time" +msgstr "мийы рӕстӕг" + +msgid "user" +msgstr "" + +msgid "content type" +msgstr "" + +msgid "object id" +msgstr "объекты бӕрӕггӕнӕн" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/3/library/functions.html#repr) +msgid "object repr" +msgstr "объекты хуыз" + +msgid "action flag" +msgstr "мийы флаг" + +msgid "change message" +msgstr "фыстӕг фӕивын" + +msgid "log entry" +msgstr "логы иуӕг" + +msgid "log entries" +msgstr "логы иуӕгтӕ" + +#, python-format +msgid "Added \"%(object)s\"." +msgstr "Ӕфтыд ӕрцыд \"%(object)s\"." + +#, python-format +msgid "Changed \"%(object)s\" - %(changes)s" +msgstr "Ивд ӕрцыд \"%(object)s\" - %(changes)s" + +#, python-format +msgid "Deleted \"%(object)s.\"" +msgstr "Хафт ӕрцыд \"%(object)s.\"" + +msgid "LogEntry Object" +msgstr "ЛогыИуӕг Объект" + +#, python-brace-format +msgid "Added {name} \"{object}\"." +msgstr "" + +msgid "Added." +msgstr "" + +msgid "and" +msgstr "ӕмӕ" + +#, python-brace-format +msgid "Changed {fields} for {name} \"{object}\"." +msgstr "" + +#, python-brace-format +msgid "Changed {fields}." +msgstr "" + +#, python-brace-format +msgid "Deleted {name} \"{object}\"." +msgstr "" + +msgid "No fields changed." +msgstr "Ивд бынат нӕй." + +msgid "None" +msgstr "Никӕцы" + +msgid "" +"Hold down \"Control\", or \"Command\" on a Mac, to select more than one." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was added successfully. You may edit it again below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was added successfully. You may add another {name} " +"below." +msgstr "" + +#, python-brace-format +msgid "The {name} \"{obj}\" was added successfully." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was changed successfully. You may edit it again below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was changed successfully. You may add another {name} " +"below." +msgstr "" + +#, python-brace-format +msgid "The {name} \"{obj}\" was changed successfully." +msgstr "" + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" +"Иуӕгтӕ хъуамӕ ӕвзӕрст уой, цӕмӕй цын исты ми бакӕнай. Ницы иуӕг ӕрцыд ивд." + +msgid "No action selected." +msgstr "Ницы ми у ӕвзӕрст." + +#, python-format +msgid "The %(name)s \"%(obj)s\" was deleted successfully." +msgstr "%(name)s \"%(obj)s\" хафт ӕрцыд." + +#, python-format +msgid "%(name)s with ID \"%(key)s\" doesn't exist. Perhaps it was deleted?" +msgstr "" + +#, python-format +msgid "Add %s" +msgstr "Бафтауын %s" + +#, python-format +msgid "Change %s" +msgstr "Фӕивын %s" + +msgid "Database error" +msgstr "Бӕрӕгдоны рӕдыд" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "%(count)s %(name)s ивд ӕрцыд." +msgstr[1] "%(count)s %(name)s ивд ӕрцыдысты." + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "%(total_count)s у ӕвзӕрст" +msgstr[1] "%(total_count)s дӕр иууылдӕр сты ӕвзӕрст" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "%(cnt)s-ӕй 0 у ӕвзӕрст" + +#, python-format +msgid "Change history: %s" +msgstr "Ивынты истори: %s" + +#. Translators: Model verbose name and instance representation, +#. suitable to be an item in a list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "%(class_name)s %(instance)s" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" + +msgid "Django site admin" +msgstr "Django сайты админ" + +msgid "Django administration" +msgstr "Django администраци" + +msgid "Site administration" +msgstr "Сайты администраци" + +msgid "Log in" +msgstr "Бахизын" + +#, python-format +msgid "%(app)s administration" +msgstr "" + +msgid "Page not found" +msgstr "Фарс нӕ зыны" + +msgid "We're sorry, but the requested page could not be found." +msgstr "Хатыр, фӕлӕ домд фарс нӕ зыны." + +msgid "Home" +msgstr "Хӕдзар" + +msgid "Server error" +msgstr "Серверы рӕдыд" + +msgid "Server error (500)" +msgstr "Серверы рӕдыд (500)" + +msgid "Server Error (500)" +msgstr "Серверы Рӕдыд (500)" + +msgid "" +"There's been an error. It's been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" +"Рӕдыд разынд. Уый тыххӕй сайты администратормӕ электрон фыстӕг ӕрвыст ӕрцыд " +"ӕмӕ йӕ тагъд сраст кӕндзысты. Бузныг кӕй лӕууыс." + +msgid "Run the selected action" +msgstr "Бакӕнын ӕвзӕрст ми" + +msgid "Go" +msgstr "Бацӕуын" + +msgid "Click here to select the objects across all pages" +msgstr "Ам ныххӕц цӕмӕй алы фарсы объекттӕ равзарын" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "Равзарын %(total_count)s %(module_name)s иууылдӕр" + +msgid "Clear selection" +msgstr "Ӕвзӕрст асыгъдӕг кӕнын" + +msgid "" +"First, enter a username and password. Then, you'll be able to edit more user " +"options." +msgstr "" +"Фыццаг бафысс фӕсномыг ӕмӕ пароль. Стӕй дӕ бон уыдзӕн фылдӕр архайӕджы " +"фадӕттӕ ивын." + +msgid "Enter a username and password." +msgstr "Бафысс фӕсномыг ӕмӕ пароль." + +msgid "Change password" +msgstr "Пароль фӕивын" + +msgid "Please correct the error below." +msgstr "Дӕ хорзӕхӕй, бындӕр цы рӕдыдтытӕ ис, уыдон сраст кӕн." + +msgid "Please correct the errors below." +msgstr "" + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "Бафысс ног пароль архайӕг %(username)s-ӕн." + +msgid "Welcome," +msgstr "Ӕгас цу," + +msgid "View site" +msgstr "" + +msgid "Documentation" +msgstr "Документаци" + +msgid "Log out" +msgstr "Рахизын" + +#, python-format +msgid "Add %(name)s" +msgstr "Бафтауын %(name)s" + +msgid "History" +msgstr "Истори" + +msgid "View on site" +msgstr "Сайты фенын" + +msgid "Filter" +msgstr "Фӕрсудзӕн" + +msgid "Remove from sorting" +msgstr "Радӕй айсын" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "Рады приоритет: %(priority_number)s" + +msgid "Toggle sorting" +msgstr "Рад аивын" + +msgid "Delete" +msgstr "Схафын" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" +"%(object_name)s '%(escaped_object)s' хафыны тыххӕй баст объекттӕ дӕр хафт " +"ӕрцӕудзысты, фӕлӕ дӕ аккаунтӕн нӕй бар ацы объекты хуызтӕ хафын:" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" +"%(object_name)s '%(escaped_object)s' хафын домы ацы хъахъхъӕд баст объекттӕ " +"хафын дӕр:" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" +"Ӕцӕг дӕ фӕнды %(object_name)s \"%(escaped_object)s\" схафын? Ацы баст иуӕгтӕ " +"иууылдӕр хафт ӕрцӕудзысты:" + +msgid "Objects" +msgstr "" + +msgid "Yes, I'm sure" +msgstr "О, ӕцӕг мӕ фӕнды" + +msgid "No, take me back" +msgstr "" + +msgid "Delete multiple objects" +msgstr "Цалдӕр объекты схафын" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" +"Ӕвзӕрст %(objects_name)s хафыны тыххӕй йемӕ баст объекттӕ дӕр схафт " +"уыдзысты, фӕлӕ дӕ аккаунтӕн нӕй бар ацы объекты хуызтӕ хафын:" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" +"Ӕвзӕрст %(objects_name)s хафын домы ацы хъахъхъӕд баст объекттӕ хафын дӕр:" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" +"Ӕцӕг дӕ фӕнды ӕвзӕрст %(objects_name)s схафын? ацы объекттӕ иууылдӕр, ӕмӕ " +"семӕ баст иуӕгтӕ хафт ӕрцӕудзысты:" + +msgid "Change" +msgstr "Фӕивын" + +msgid "Delete?" +msgstr "Хъӕуы схафын?" + +#, python-format +msgid " By %(filter_title)s " +msgstr "%(filter_title)s-мӕ гӕсгӕ" + +msgid "Summary" +msgstr "" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "Моделтӕ %(name)s ӕфтуаны" + +msgid "Add" +msgstr "Бафтауын" + +msgid "You don't have permission to edit anything." +msgstr "Нӕй дын бар исты ивын." + +msgid "Recent actions" +msgstr "" + +msgid "My actions" +msgstr "" + +msgid "None available" +msgstr "Ницы ис" + +msgid "Unknown content" +msgstr "Ӕнӕбӕрӕг мидис" + +msgid "" +"Something's wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" +"Дӕ бӕрӕгдоны цыдӕр раст ӕвӕрд нӕу. Сбӕрӕг кӕн, хъӕугӕ бӕрӕгдоны таблицӕтӕ " +"конд кӕй сты ӕмӕ амынд архайӕгӕн бӕрӕгдон фӕрсыны бар кӕй ис, уый." + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" + +msgid "Forgotten your password or username?" +msgstr "Дӕ пароль кӕнӕ дӕ фӕсномыг ферох кодтай?" + +msgid "Date/time" +msgstr "Бон/рӕстӕг" + +msgid "User" +msgstr "Архайӕг" + +msgid "Action" +msgstr "Ми" + +msgid "" +"This object doesn't have a change history. It probably wasn't added via this " +"admin site." +msgstr "Ацы объектӕн ивдтыты истори нӕй. Уӕццӕгӕн ацы админӕй ӕфтыд нӕ уыд." + +msgid "Show all" +msgstr "Иууылдӕр равдисын" + +msgid "Save" +msgstr "Нывӕрын" + +msgid "Popup closing..." +msgstr "" + +#, python-format +msgid "Change selected %(model)s" +msgstr "" + +#, python-format +msgid "Add another %(model)s" +msgstr "" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "" + +msgid "Search" +msgstr "Агурын" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "%(counter)s фӕстиуӕг" +msgstr[1] "%(counter)s фӕстиуӕджы" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "%(full_result_count)s иумӕ" + +msgid "Save as new" +msgstr "Нывӕрын куыд ног" + +msgid "Save and add another" +msgstr "Нывӕрын ӕмӕ ног бафтауын" + +msgid "Save and continue editing" +msgstr "Нывӕрын ӕмӕ дарддӕр ивын" + +msgid "Thanks for spending some quality time with the Web site today." +msgstr "Бузныг дӕ рӕстӕг абон ацы веб сайтимӕ кӕй арвыстай." + +msgid "Log in again" +msgstr "Ногӕй бахизын" + +msgid "Password change" +msgstr "Пароль ивын" + +msgid "Your password was changed." +msgstr "Дӕ пароль ивд ӕрцыд." + +msgid "" +"Please enter your old password, for security's sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" +"Дӕ хорзӕхӕй, ӕдасдзинады тыххӕй, бафысс дӕ зӕронд пароль ӕмӕ стӕй та дыууӕ " +"хатт дӕ нӕуӕг пароль, цӕмӕй мах сбӕлвырд кӕнӕм раст ӕй кӕй ныффыстай, уый." + +msgid "Change my password" +msgstr "Мӕ пароль фӕивын" + +msgid "Password reset" +msgstr "Пароль рацаразын" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "Дӕ пароль ӕвӕрд ӕрцыд. Дӕ бон у дарддӕр ацӕуын ӕмӕ бахизын." + +msgid "Password reset confirmation" +msgstr "Пароль ӕвӕрыны бӕлвырдгӕнӕн" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" +"Дӕ хорзӕхӕй, дӕ ног пароль дыууӕ хатт бафысс, цӕмӕй мах сбӕрӕг кӕнӕм раст ӕй " +"кӕй ныффыстай, уый." + +msgid "New password:" +msgstr "Ног пароль:" + +msgid "Confirm password:" +msgstr "Бӕлвырд пароль:" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"Парол ӕвӕрыны ӕрвитӕн раст нӕ уыд. Уӕццӕгӕн уый тыххӕй, ӕмӕ нырид пайдагонд " +"ӕрцыд. Дӕ хорзӕхӕй, ӕрдом ног пароль ӕвӕрын." + +msgid "" +"We've emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" + +msgid "" +"If you don't receive an email, please make sure you've entered the address " +"you registered with, and check your spam folder." +msgstr "" +"Кӕд ницы фыстӕг райстай, уӕд, дӕ хорзӕхӕй, сбӕрӕг кӕн цы электрон постимӕ " +"срегистраци кодтай, уый бацамыдтай, ӕви нӕ, ӕмӕ абӕрӕг кӕн дӕ спамтӕ." + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" +"Ды райстай ацы фыстӕг, уымӕн ӕмӕ %(site_name)s-ы дӕ архайӕджы аккаунтӕн " +"пароль сӕвӕрын ӕрдомдтай." + +msgid "Please go to the following page and choose a new password:" +msgstr "Дӕ хорзӕхӕй, ацу ацы фарсмӕ ӕмӕ равзар дӕ ног пароль:" + +msgid "Your username, in case you've forgotten:" +msgstr "Дӕ фӕсномыг, кӕд дӕ ферох ис:" + +msgid "Thanks for using our site!" +msgstr "Бузныг нӕ сайтӕй нын кӕй пайда кӕныс!" + +#, python-format +msgid "The %(site_name)s team" +msgstr "%(site_name)s-ы бал" + +msgid "" +"Forgotten your password? Enter your email address below, and we'll email " +"instructions for setting a new one." +msgstr "" +"Ферох дӕ ис дӕ пароль? Дӕ пароль бындӕр бафысс, ӕмӕ дӕм мах email-ӕй ног " +"пароль сывӕрыны амынд арвитдзыстӕм." + +msgid "Email address:" +msgstr "Email адрис:" + +msgid "Reset my password" +msgstr "Мӕ пароль ногӕй сӕвӕрын" + +msgid "All dates" +msgstr "Бонтӕ иууылдӕр" + +#, python-format +msgid "Select %s" +msgstr "Равзарын %s" + +#, python-format +msgid "Select %s to change" +msgstr "Равзарын %s ивынӕн" + +msgid "Date:" +msgstr "Бон:" + +msgid "Time:" +msgstr "Рӕстӕг:" + +msgid "Lookup" +msgstr "Акӕсын" + +msgid "Currently:" +msgstr "Нырыккон:" + +msgid "Change:" +msgstr "Ивд:" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/os/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/os/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..7af0f7931e4e5d102314e82d76aeba18447da8ba GIT binary patch literal 3806 zcmbtVTWl0n7#~@cvcw19e3`KiMng=9#z$X#GBMHbKWFw<3L4#X_S-q2YO;19ri zfxiHs0saPj4!GtH6=y4O72bCO?*ZG6Cjqd^X;{9njlYb6hREGdQ2z)of4}cr+ z{weTTUPk^N3IUwmXAMJk!TnAo1 z1HZ@m9|(fbTDV&I{Rn&u@7IB}z6(LV2JQ!LfZuA6FXO#^jiylx0kR&LOFjUZmymR$ z7{rf0597I8{%Zb0>m=v(z$frfeUMXo6wi}**5RQKTA@9Fhje)i4@!_VKMtf1&6w8O z=5f2-Vdjy(hf@B2q=VhXb8)xAO(%cp$W;$6~aae}fM|P}5snWts*M(7<`y~z=%I=p0gFE+( z6-m_!t}}|{_@9iFF#p6zWX(}6CGvuJYpKx!N6BcJPx?{S_??ptU|CU86|JbJc9?r; z6NMvXhfFlII%*J&nHk>_&K9ZPXk_4Q^3j4UI`2>)OlOc|R2?wLTEkYhXxhll?W`xY z+2nFoa77yPILd4xr1&}EN|pCQ%BYV8j}!dGO5Aid!QG zHEtlsM!9dW0h^m1S5v|IUnAYfUopqvI~=jF=yKgHDrQQO22w>wrCeDGp0#{=7OR@< z%SpNvu0deQcX_0e1qx{#1>yOIHsFe*xC8WkS^Z7!dgx1%WsgFB5j)5W!u9n&Z_vu> zFBbL~qH}Y+GaiSbevl7a6tix( zO^@%;6FXRa&qED z_&9?_bCByPZswD$-}AU{Wmwyg?-!CC9i>vq@F}8|<0D2!89?x$kp>kYLC9XZb!Lt+|_qG8Ii?JkYwA_ zmS3ZpWWtLL*hSa0^*zGPdr9UL|u%a?iem)c|+?Jw>b|$ImH0$WI1kvZeAq3@%}T3InYx!TDez9Ea63eFyUmi`cqK4wQUM z3uf!Vn_gBbSc*E2oQSP7Y}8y2Cs1urLHH|D^b6tfplq<<)Y1%7Sy?#A$hj&csn4he zIFd%;B*-peVGct)=kn(akNj4~^NlayUp2(=CkmYfy&V;0c5LaXlR69xGZ#0NB zs<4)*zS@km=*Wo(R0v6b0eKdyT!Koy*NUWMUq)Zi3#t?z&8@ttLbFs>Qd-s< z1!dVgVvXY^uLnwfkuGjZgISY(q}o+enmY_uXAp~`R81*6t{mL^GLXDa)KOJUCaO12 SA5H~d%A0gb-BT*6q5TcX$#mra literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/os/LC_MESSAGES/djangojs.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/os/LC_MESSAGES/djangojs.po new file mode 100644 index 0000000000..ec6c9c4591 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/os/LC_MESSAGES/djangojs.po @@ -0,0 +1,217 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Soslan Khubulov , 2013 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-05-17 23:12+0200\n" +"PO-Revision-Date: 2017-09-19 16:41+0000\n" +"Last-Translator: Jannis Leidel \n" +"Language-Team: Ossetic (http://www.transifex.com/django/django/language/" +"os/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: os\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, javascript-format +msgid "Available %s" +msgstr "Уӕвӕг %s" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" +"Уӕвӕг %s-ты номхыгъд. Дӕ бон у искӕцытӕ дзы рауӕлдай кӕнай, куы сӕ равзарай " +"бындӕр къӕртты ӕмӕ дыууӕ къӕртты ӕхсӕн \"Равзарын\"-ы ӕгънӕгыл куы ныххӕцай, " +"уӕд." + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "Бафысс ацы къӕртты, уӕвӕг %s-ты номхыгъд фӕрсудзынӕн." + +msgid "Filter" +msgstr "Фӕрсудзӕн" + +msgid "Choose all" +msgstr "Равзарын алкӕцыдӕр" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "Ныххӕц, алы %s равзарынӕн." + +msgid "Choose" +msgstr "Равзарын" + +msgid "Remove" +msgstr "Схафын" + +#, javascript-format +msgid "Chosen %s" +msgstr "Ӕвзӕрст %s" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" +"Ай у ӕвзӕрст %s-ты номхыгъд. Сӕ хафынӕн сӕ дӕ бон у бындӕр къӕртты равзарын " +"ӕмӕ дыууӕ ӕгънӕджы ӕхсӕн \"Схфын\"-ыл ныххӕцын." + +msgid "Remove all" +msgstr "Схафын алкӕцыдӕр" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "Ныххӕц, алы ӕвзӕрст %s схафынӕн." + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "%(cnt)s-ӕй %(sel)s ӕвзӕрст" +msgstr[1] "%(cnt)s-ӕй %(sel)s ӕвзӕрст" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" +"Ӕнӕвӕрд ивдтытӕ баззадысты ивыны бынӕтты. Кӕд исты ми саразай, уӕд дӕ " +"ӕнӕвӕрд ивдтытӕ фесӕфдзысты." + +msgid "" +"You have selected an action, but you haven't saved your changes to " +"individual fields yet. Please click OK to save. You'll need to re-run the " +"action." +msgstr "" +"Ды равзӕрстай цыдӕр ми, фӕлӕ ивӕн бынӕтты цы фӕивтай, уыдон нӕ бавӕрдтай. Дӕ " +"хорзӕхӕй, ныххӕц Хорзыл цӕмӕй бавӕрд уой. Стӕй дын хъӕудзӕн ацы ми ногӕй " +"бакӕнын." + +msgid "" +"You have selected an action, and you haven't made any changes on individual " +"fields. You're probably looking for the Go button rather than the Save " +"button." +msgstr "" +"Ды равзӕртай цыдӕр ми, фӕлӕ ивӕн бынӕтты ницы баивтай. Уӕццӕгӕн дӕ Ацӕуыны " +"ӕгънӕг хъӕуы, Бавӕрыны нӕ фӕлӕ." + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "" +msgstr[1] "" + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "" +msgstr[1] "" + +msgid "Now" +msgstr "Ныр" + +msgid "Choose a Time" +msgstr "" + +msgid "Choose a time" +msgstr "Рӕстӕг равзарын" + +msgid "Midnight" +msgstr "Ӕмбисӕхсӕв" + +msgid "6 a.m." +msgstr "6 ӕ.р." + +msgid "Noon" +msgstr "Ӕмбисбон" + +msgid "6 p.m." +msgstr "" + +msgid "Cancel" +msgstr "Раздӕхын" + +msgid "Today" +msgstr "Абон" + +msgid "Choose a Date" +msgstr "" + +msgid "Yesterday" +msgstr "Знон" + +msgid "Tomorrow" +msgstr "Сом" + +msgid "January" +msgstr "" + +msgid "February" +msgstr "" + +msgid "March" +msgstr "" + +msgid "April" +msgstr "" + +msgid "May" +msgstr "" + +msgid "June" +msgstr "" + +msgid "July" +msgstr "" + +msgid "August" +msgstr "" + +msgid "September" +msgstr "" + +msgid "October" +msgstr "" + +msgid "November" +msgstr "" + +msgid "December" +msgstr "" + +msgctxt "one letter Sunday" +msgid "S" +msgstr "" + +msgctxt "one letter Monday" +msgid "M" +msgstr "" + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "" + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "" + +msgctxt "one letter Thursday" +msgid "T" +msgstr "" + +msgctxt "one letter Friday" +msgid "F" +msgstr "" + +msgctxt "one letter Saturday" +msgid "S" +msgstr "" + +msgid "Show" +msgstr "Равдисын" + +msgid "Hide" +msgstr "Айсын" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/pa/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/pa/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..e25e29a7fd1b85e2f9f8d3837c051fa84d9d9c19 GIT binary patch literal 8629 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/pa/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/pa/LC_MESSAGES/django.po new file mode 100644 index 0000000000..0041893834 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/pa/LC_MESSAGES/django.po @@ -0,0 +1,706 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# A S Alam, 2018 +# A S Alam, 2022 +# Jannis Leidel , 2011 +# Satnam S Virdi , 2021 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-01-17 02:13-0600\n" +"PO-Revision-Date: 2023-04-25 07:05+0000\n" +"Last-Translator: A S Alam, 2022\n" +"Language-Team: Panjabi (Punjabi) (http://www.transifex.com/django/django/" +"language/pa/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: pa\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "ਚੁਣੇ %(verbose_name_plural)s ਹਟਾਓ" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "%(count)d %(items)s ਠੀਕ ਤਰ੍ਹਾਂ ਹਟਾਈਆਂ ਗਈਆਂ।" + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "%(name)s ਨੂੰ ਹਟਾਇਆ ਨਹੀਂ ਜਾ ਸਕਦਾ" + +msgid "Are you sure?" +msgstr "ਕੀ ਤੁਸੀਂ ਇਹ ਚਾਹੁੰਦੇ ਹੋ?" + +msgid "Administration" +msgstr "ਪ੍ਰਸ਼ਾਸਨ" + +msgid "All" +msgstr "ਸਭ" + +msgid "Yes" +msgstr "ਹਾਂ" + +msgid "No" +msgstr "ਨਹੀਂ" + +msgid "Unknown" +msgstr "ਅਣਜਾਣ" + +msgid "Any date" +msgstr "ਕੋਈ ਵੀ ਮਿਤੀ" + +msgid "Today" +msgstr "ਅੱਜ" + +msgid "Past 7 days" +msgstr "ਪਿਛਲੇ ੭ ਦਿਨ" + +msgid "This month" +msgstr "ਇਹ ਮਹੀਨੇ" + +msgid "This year" +msgstr "ਇਹ ਸਾਲ" + +msgid "No date" +msgstr "ਕੋਈ ਮਿਤੀ ਨਹੀਂ" + +msgid "Has date" +msgstr "ਮਿਤੀ ਹੈ" + +msgid "Empty" +msgstr "ਖਾਲੀ" + +msgid "Not empty" +msgstr "" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" + +msgid "Action:" +msgstr "ਕਾਰਵਾਈ:" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "%(verbose_name)s ਹੋਰ ਸ਼ਾਮਲ" + +msgid "Remove" +msgstr "ਹਟਾਓ" + +msgid "Addition" +msgstr "" + +msgid "Change" +msgstr "ਬਦਲੋ" + +msgid "Deletion" +msgstr "" + +msgid "action time" +msgstr "ਕਾਰਵਾਈ ਸਮਾਂ" + +msgid "user" +msgstr "ਵਰਤੋਂਕਾਰ" + +msgid "content type" +msgstr "ਸਮੱਗਰੀ ਕਿਸਮ" + +msgid "object id" +msgstr "ਆਬਜੈਕਟ id" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/library/functions.html#repr) +msgid "object repr" +msgstr "ਆਬਜੈਕਟ repr" + +msgid "action flag" +msgstr "ਕਾਰਵਾਈ ਫਲੈਗ" + +msgid "change message" +msgstr "ਸੁਨੇਹਾ ਬਦਲੋ" + +msgid "log entry" +msgstr "ਲਾਗ ਐਂਟਰੀ" + +msgid "log entries" +msgstr "ਲਾਗ ਐਂਟਰੀਆਂ" + +#, python-format +msgid "Added “%(object)s”." +msgstr "" + +#, python-format +msgid "Changed “%(object)s” — %(changes)s" +msgstr "" + +#, python-format +msgid "Deleted “%(object)s.”" +msgstr "" + +msgid "LogEntry Object" +msgstr "" + +#, python-brace-format +msgid "Added {name} “{object}”." +msgstr "" + +msgid "Added." +msgstr "" + +msgid "and" +msgstr "ਅਤੇ" + +#, python-brace-format +msgid "Changed {fields} for {name} “{object}”." +msgstr "" + +#, python-brace-format +msgid "Changed {fields}." +msgstr "" + +#, python-brace-format +msgid "Deleted {name} “{object}”." +msgstr "" + +msgid "No fields changed." +msgstr "ਕੋਈ ਖੇਤਰ ਨਹੀਂ ਬਦਲਿਆ।" + +msgid "None" +msgstr "ਕੋਈ ਨਹੀਂ" + +msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." +msgstr "" + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully." +msgstr "" + +msgid "You may edit it again below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} “{obj}” was added successfully. You may add another {name} below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may edit it again below." +msgstr "" + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully. You may edit it again below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may add another {name} " +"below." +msgstr "" + +#, python-brace-format +msgid "The {name} “{obj}” was changed successfully." +msgstr "" + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" + +msgid "No action selected." +msgstr "ਕੋਈ ਕਾਰਵਾਈ ਨਹੀਂ ਚੁਣੀ ਗਈ।" + +#, python-format +msgid "The %(name)s “%(obj)s” was deleted successfully." +msgstr "" + +#, python-format +msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" +msgstr "" + +#, python-format +msgid "Add %s" +msgstr "%s ਸ਼ਾਮਲ" + +#, python-format +msgid "Change %s" +msgstr "%s ਬਦਲੋ" + +#, python-format +msgid "View %s" +msgstr "%s ਵੇਖੋ" + +msgid "Database error" +msgstr "ਡਾਟਾਬੇਸ ਗਲਤੀ" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "%(count)s %(name)s ਠੀਕ ਤਰ੍ਹਾਂ ਬਦਲਿਆ ਗਿਆ।" +msgstr[1] "%(count)s %(name)s ਠੀਕ ਤਰ੍ਹਾਂ ਬਦਲੇ ਗਏ ਹਨ।" + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "%(total_count)s ਚੁਣਿਆ।" +msgstr[1] "%(total_count)s ਚੁਣੇ" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "" + +#, python-format +msgid "Change history: %s" +msgstr "ਅਤੀਤ ਬਦਲੋ: %s" + +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" + +msgid "Django site admin" +msgstr "ਡੀਜਾਂਗੋ ਸਾਈਟ ਐਡਮਿਨ" + +msgid "Django administration" +msgstr "ਡੀਜਾਂਗੋ ਪਰਸ਼ਾਸ਼ਨ" + +msgid "Site administration" +msgstr "ਸਾਈਟ ਪਰਬੰਧ" + +msgid "Log in" +msgstr "ਲਾਗ ਇਨ" + +#, python-format +msgid "%(app)s administration" +msgstr "" + +msgid "Page not found" +msgstr "ਸਫ਼ਾ ਨਹੀਂ ਲੱਭਿਆ" + +msgid "We’re sorry, but the requested page could not be found." +msgstr "" + +msgid "Home" +msgstr "ਘਰ" + +msgid "Server error" +msgstr "ਸਰਵਰ ਗਲਤੀ" + +msgid "Server error (500)" +msgstr "ਸਰਵਰ ਗਲਤੀ (500)" + +msgid "Server Error (500)" +msgstr "ਸਰਵਰ ਗਲਤੀ (500)" + +msgid "" +"There’s been an error. It’s been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" + +msgid "Run the selected action" +msgstr "ਚੁਣੀ ਕਾਰਵਾਈ ਕਰੋ" + +msgid "Go" +msgstr "ਜਾਓ" + +msgid "Click here to select the objects across all pages" +msgstr "ਸਭ ਸਫ਼ਿਆਂ ਵਿੱਚੋਂ ਆਬਜੈਕਟ ਚੁਣਨ ਲਈ ਇੱਥੇ ਕਲਿੱਕ ਕਰੋ" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "ਸਭ %(total_count)s %(module_name)s ਚੁਣੋ" + +msgid "Clear selection" +msgstr "ਚੋਣ ਸਾਫ਼ ਕਰੋ" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "" + +msgid "Add" +msgstr "ਸ਼ਾਮਲ" + +msgid "View" +msgstr "" + +msgid "You don’t have permission to view or edit anything." +msgstr "" + +msgid "" +"First, enter a username and password. Then, you’ll be able to edit more user " +"options." +msgstr "" + +msgid "Enter a username and password." +msgstr "" + +msgid "Change password" +msgstr "ਪਾਸਵਰਡ ਬਦਲੋ" + +msgid "Please correct the error below." +msgid_plural "Please correct the errors below." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "ਯੂਜ਼ਰ %(username)s ਲਈ ਨਵਾਂ ਪਾਸਵਰਡ ਦਿਓ।" + +msgid "Skip to main content" +msgstr "" + +msgid "Welcome," +msgstr "ਜੀ ਆਇਆਂ ਨੂੰ, " + +msgid "View site" +msgstr "" + +msgid "Documentation" +msgstr "ਡੌਕੂਮੈਂਟੇਸ਼ਨ" + +msgid "Log out" +msgstr "ਲਾਗ ਆਉਟ" + +msgid "Breadcrumbs" +msgstr "" + +#, python-format +msgid "Add %(name)s" +msgstr "%(name)s ਸ਼ਾਮਲ" + +msgid "History" +msgstr "ਅਤੀਤ" + +msgid "View on site" +msgstr "ਸਾਈਟ ਉੱਤੇ ਜਾਓ" + +msgid "Filter" +msgstr "ਫਿਲਟਰ" + +msgid "Clear all filters" +msgstr "" + +msgid "Remove from sorting" +msgstr "" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "" + +msgid "Toggle sorting" +msgstr "" + +msgid "Toggle theme (current theme: auto)" +msgstr "" + +msgid "Toggle theme (current theme: light)" +msgstr "" + +msgid "Toggle theme (current theme: dark)" +msgstr "" + +msgid "Delete" +msgstr "ਹਟਾਓ" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" + +msgid "Objects" +msgstr "" + +msgid "Yes, I’m sure" +msgstr "" + +msgid "No, take me back" +msgstr "" + +msgid "Delete multiple objects" +msgstr "ਕਈ ਆਬਜੈਕਟ ਹਟਾਓ" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" + +msgid "Delete?" +msgstr "ਹਟਾਉਣਾ?" + +#, python-format +msgid " By %(filter_title)s " +msgstr " %(filter_title)s ਵਲੋਂ " + +msgid "Summary" +msgstr "" + +msgid "Recent actions" +msgstr "" + +msgid "My actions" +msgstr "" + +msgid "None available" +msgstr "ਕੋਈ ਉਪਲੱਬਧ ਨਹੀਂ" + +msgid "Unknown content" +msgstr "ਅਣਜਾਣ ਸਮੱਗਰੀ" + +msgid "" +"Something’s wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" + +msgid "Forgotten your password or username?" +msgstr "" + +msgid "Toggle navigation" +msgstr "" + +msgid "Sidebar" +msgstr "" + +msgid "Start typing to filter…" +msgstr "" + +msgid "Filter navigation items" +msgstr "" + +msgid "Date/time" +msgstr "ਮਿਤੀ/ਸਮਾਂ" + +msgid "User" +msgstr "ਯੂਜ਼ਰ" + +msgid "Action" +msgstr "ਕਾਰਵਾਈ" + +msgid "entry" +msgid_plural "entries" +msgstr[0] "" +msgstr[1] "" + +msgid "" +"This object doesn’t have a change history. It probably wasn’t added via this " +"admin site." +msgstr "" + +msgid "Show all" +msgstr "ਸਭ ਵੇਖੋ" + +msgid "Save" +msgstr "ਸੰਭਾਲੋ" + +msgid "Popup closing…" +msgstr "" + +msgid "Search" +msgstr "ਖੋਜ" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "%(full_result_count)s ਕੁੱਲ" + +msgid "Save as new" +msgstr "ਨਵੇਂ ਵਜੋਂ ਵੇਖੋ" + +msgid "Save and add another" +msgstr "ਸੰਭਾਲੋ ਤੇ ਹੋਰ ਸ਼ਾਮਲ" + +msgid "Save and continue editing" +msgstr "ਸੰਭਾਲੋ ਤੇ ਸੋਧਣਾ ਜਾਰੀ ਰੱਖੋ" + +msgid "Save and view" +msgstr "" + +msgid "Close" +msgstr "" + +#, python-format +msgid "Change selected %(model)s" +msgstr "" + +#, python-format +msgid "Add another %(model)s" +msgstr "" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "" + +#, python-format +msgid "View selected %(model)s" +msgstr "" + +msgid "Thanks for spending some quality time with the web site today." +msgstr "" + +msgid "Log in again" +msgstr "ਫੇਰ ਲਾਗਇਨ ਕਰੋ" + +msgid "Password change" +msgstr "ਪਾਸਵਰਡ ਬਦਲੋ" + +msgid "Your password was changed." +msgstr "ਤੁਹਾਡਾ ਪਾਸਵਰਡ ਬਦਲਿਆ ਗਿਆ ਹੈ।" + +msgid "" +"Please enter your old password, for security’s sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" + +msgid "Change my password" +msgstr "ਮੇਰਾ ਪਾਸਵਰਡ ਬਦਲੋ" + +msgid "Password reset" +msgstr "ਪਾਸਵਰਡ ਮੁੜ-ਸੈੱਟ" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "ਤੁਹਾਡਾ ਪਾਸਵਰਡ ਸੈੱਟ ਕੀਤਾ ਗਿਆ ਹੈ। ਤੁਸੀਂ ਜਾਰੀ ਰੱਖ ਕੇ ਹੁਣੇ ਲਾਗਇਨ ਕਰ ਸਕਦੇ ਹੋ।" + +msgid "Password reset confirmation" +msgstr "ਪਾਸਵਰਡ ਮੁੜ-ਸੈੱਟ ਕਰਨ ਪੁਸ਼ਟੀ" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" +"ਆਪਣਾ ਨਵਾਂ ਪਾਸਵਰਡ ਦੋ ਵਾਰ ਦਿਉ ਤਾਂ ਕਿ ਅਸੀਂ ਜਾਂਚ ਕਰ ਸਕੀਏ ਕਿ ਤੁਸੀਂ ਠੀਕ ਤਰ੍ਹਾਂ ਲਿਖਿਆ ਹੈ।" + +msgid "New password:" +msgstr "ਨਵਾਂ ਪਾਸਵਰਡ:" + +msgid "Confirm password:" +msgstr "ਪਾਸਵਰਡ ਪੁਸ਼ਟੀ:" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"ਪਾਸਵਰਡ ਰੀ-ਸੈੱਟ ਲਿੰਕ ਗਲਤ ਹੈ, ਸੰਭਵ ਤੌਰ ਉੱਤੇ ਇਹ ਪਹਿਲਾਂ ਹੀ ਵਰਤਿਆ ਜਾ ਚੁੱਕਾ ਹੈ। ਨਵਾਂ ਪਾਸਵਰਡ ਰੀ-" +"ਸੈੱਟ ਲਈ ਬੇਨਤੀ ਭੇਜੋ ਜੀ।" + +msgid "" +"We’ve emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" + +msgid "" +"If you don’t receive an email, please make sure you’ve entered the address " +"you registered with, and check your spam folder." +msgstr "" + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" + +msgid "Please go to the following page and choose a new password:" +msgstr "ਅੱਗੇ ਦਿੱਤੇ ਸਫ਼ੇ ਉੱਤੇ ਜਾਉ ਤੇ ਨਵਾਂ ਪਾਸਵਰਡ ਚੁਣੋ:" + +msgid "Your username, in case you’ve forgotten:" +msgstr "" + +msgid "Thanks for using our site!" +msgstr "ਸਾਡੀ ਸਾਈਟ ਵਰਤਣ ਲਈ ਧੰਨਵਾਦ ਜੀ!" + +#, python-format +msgid "The %(site_name)s team" +msgstr "%(site_name)s ਟੀਮ" + +msgid "" +"Forgotten your password? Enter your email address below, and we’ll email " +"instructions for setting a new one." +msgstr "" + +msgid "Email address:" +msgstr "" + +msgid "Reset my password" +msgstr "ਮੇਰਾ ਪਾਸਵਰਡ ਮੁੜ-ਸੈੱਟ ਕਰੋ" + +msgid "All dates" +msgstr "ਸਭ ਮਿਤੀਆਂ" + +#, python-format +msgid "Select %s" +msgstr "%s ਚੁਣੋ" + +#, python-format +msgid "Select %s to change" +msgstr "ਬਦਲਣ ਲਈ %s ਚੁਣੋ" + +#, python-format +msgid "Select %s to view" +msgstr "" + +msgid "Date:" +msgstr "ਮਿਤੀ:" + +msgid "Time:" +msgstr "ਸਮਾਂ:" + +msgid "Lookup" +msgstr "ਖੋਜ" + +msgid "Currently:" +msgstr "" + +msgid "Change:" +msgstr "" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/pa/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/pa/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..08925e49507be2976a080ed9cc8a45ecc0626210 GIT binary patch literal 1148 zcmY+BJ7^R^7{^zQuk{^K5iQ0dkf3`nP{N)kn3#}&r$@X9Rx-Jp+-=yKS$5}gN#z41 z1`&i13sEc#$(|a~fS`q1SlHQE*ocgU*w|R5^*?)i2^pCA&HtP4x%;!TW8T0zfPEZ$ z0s9E{sZBVr?t;DZ-58EdGILMjP+-5AN2Q_e?Z;$DtH*|KvSLI zF;LqRF|#p;KwWn<*4IIu&jry&w6^2ikFERBv+u&zz3X|jZ+jsms?pYHAzC`W{@xfV znpJ;C;|!sRTEaL#NgbDtxr}rLMnB~x<{JG~Ap%Aykxq@RDK~lu7}uVIjw_jO3^`?H z%*iIDYIX2$vC>1_Ry|mQ!?qf)ZtlD zs!~5-GB;Wrw0hV5bggmbTLZi#$_}sCq<74bYYp4Pqh`Ua`_#1tgT+}3SS#4oK@j-6|Sh}8x_7(;gbHFc!~5PoaZBP4>p9o zQsGAx-iG;+YTi=eGu4b=mN(kEf{j{*FI4zR*9o7t>dvX~eN=Y_sqaMPmQ?emrOW9e y3otK6MbI8R5v<#N->$2}U`94L&q1_Cdf4iymGCjl%TdvJ%nJcvObmM;!Nz~abZQO& literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/pa/LC_MESSAGES/djangojs.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/pa/LC_MESSAGES/djangojs.po new file mode 100644 index 0000000000..ed55c46ea4 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/pa/LC_MESSAGES/djangojs.po @@ -0,0 +1,253 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Jannis Leidel , 2011 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-01-15 09:00+0100\n" +"PO-Revision-Date: 2021-01-15 11:28+0000\n" +"Last-Translator: Transifex Bot <>\n" +"Language-Team: Panjabi (Punjabi) (http://www.transifex.com/django/django/" +"language/pa/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: pa\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, javascript-format +msgid "Available %s" +msgstr "ਉਪਲੱਬਧ %s" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "" + +msgid "Filter" +msgstr "ਫਿਲਟਰ" + +msgid "Choose all" +msgstr "ਸਭ ਚੁਣੋ" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "" + +msgid "Choose" +msgstr "" + +msgid "Remove" +msgstr "ਹਟਾਓ" + +#, javascript-format +msgid "Chosen %s" +msgstr "%s ਚੁਣੋ" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" + +msgid "Remove all" +msgstr "" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "" + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "" +msgstr[1] "" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" + +msgid "" +"You have selected an action, but you haven’t saved your changes to " +"individual fields yet. Please click OK to save. You’ll need to re-run the " +"action." +msgstr "" + +msgid "" +"You have selected an action, and you haven’t made any changes on individual " +"fields. You’re probably looking for the Go button rather than the Save " +"button." +msgstr "" + +msgid "Now" +msgstr "ਹੁਣੇ" + +msgid "Midnight" +msgstr "ਅੱਧੀ-ਰਾਤ" + +msgid "6 a.m." +msgstr "6 ਸਵੇਰ" + +msgid "Noon" +msgstr "ਦੁਪਹਿਰ" + +msgid "6 p.m." +msgstr "" + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "" +msgstr[1] "" + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "" +msgstr[1] "" + +msgid "Choose a Time" +msgstr "" + +msgid "Choose a time" +msgstr "ਸਮਾਂ ਚੁਣੋ" + +msgid "Cancel" +msgstr "ਰੱਦ ਕਰੋ" + +msgid "Today" +msgstr "ਅੱਜ" + +msgid "Choose a Date" +msgstr "" + +msgid "Yesterday" +msgstr "ਕੱਲ੍ਹ" + +msgid "Tomorrow" +msgstr "ਭਲਕੇ" + +msgid "January" +msgstr "" + +msgid "February" +msgstr "" + +msgid "March" +msgstr "" + +msgid "April" +msgstr "" + +msgid "May" +msgstr "" + +msgid "June" +msgstr "" + +msgid "July" +msgstr "" + +msgid "August" +msgstr "" + +msgid "September" +msgstr "" + +msgid "October" +msgstr "" + +msgid "November" +msgstr "" + +msgid "December" +msgstr "" + +msgctxt "abbrev. month January" +msgid "Jan" +msgstr "" + +msgctxt "abbrev. month February" +msgid "Feb" +msgstr "" + +msgctxt "abbrev. month March" +msgid "Mar" +msgstr "" + +msgctxt "abbrev. month April" +msgid "Apr" +msgstr "" + +msgctxt "abbrev. month May" +msgid "May" +msgstr "" + +msgctxt "abbrev. month June" +msgid "Jun" +msgstr "" + +msgctxt "abbrev. month July" +msgid "Jul" +msgstr "" + +msgctxt "abbrev. month August" +msgid "Aug" +msgstr "" + +msgctxt "abbrev. month September" +msgid "Sep" +msgstr "" + +msgctxt "abbrev. month October" +msgid "Oct" +msgstr "" + +msgctxt "abbrev. month November" +msgid "Nov" +msgstr "" + +msgctxt "abbrev. month December" +msgid "Dec" +msgstr "" + +msgctxt "one letter Sunday" +msgid "S" +msgstr "" + +msgctxt "one letter Monday" +msgid "M" +msgstr "" + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "" + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "" + +msgctxt "one letter Thursday" +msgid "T" +msgstr "" + +msgctxt "one letter Friday" +msgid "F" +msgstr "" + +msgctxt "one letter Saturday" +msgid "S" +msgstr "" + +msgid "Show" +msgstr "ਵੇਖੋ" + +msgid "Hide" +msgstr "ਓਹਲੇ" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/pl/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/pl/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..4507529f5a41d756eddd0c44faa813000e9cd304 GIT binary patch literal 19372 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, 2011 +# Janusz Harkot , 2014-2015 +# Karol , 2012 +# 0d5641585fd67fbdb97037c19ab83e4c_18c98b0 , 2011 +# 0d5641585fd67fbdb97037c19ab83e4c_18c98b0 , 2011 +# Maciej Olko , 2016-2022 +# Maciej Olko , 2023 +# Maciej Olko , 2015 +# Mariusz Felisiak , 2020,2022-2024 +# Ola Sitarska , 2013 +# Ola Sitarska , 2013 +# Roman Barczyński, 2014 +# Tomasz Kajtoch , 2017 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-05-22 11:46-0300\n" +"PO-Revision-Date: 2024-08-07 07:05+0000\n" +"Last-Translator: Mariusz Felisiak , " +"2020,2022-2024\n" +"Language-Team: Polish (http://app.transifex.com/django/django/language/pl/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: pl\n" +"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && " +"(n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && " +"n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "Usuń wybrane(-nych) %(verbose_name_plural)s" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "Pomyślnie usunięto %(count)d %(items)s." + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "Nie można usunąć %(name)s" + +msgid "Are you sure?" +msgstr "Jesteś pewien?" + +msgid "Administration" +msgstr "Administracja" + +msgid "All" +msgstr "Wszystko" + +msgid "Yes" +msgstr "Tak" + +msgid "No" +msgstr "Nie" + +msgid "Unknown" +msgstr "Nieznany" + +msgid "Any date" +msgstr "Dowolna data" + +msgid "Today" +msgstr "Dzisiaj" + +msgid "Past 7 days" +msgstr "Ostatnie 7 dni" + +msgid "This month" +msgstr "Ten miesiąc" + +msgid "This year" +msgstr "Ten rok" + +msgid "No date" +msgstr "Brak daty" + +msgid "Has date" +msgstr "Posiada datę" + +msgid "Empty" +msgstr "Puste" + +msgid "Not empty" +msgstr "Niepuste" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" +"Wprowadź poprawne dane w polach „%(username)s” i „hasło” dla konta " +"należącego do zespołu. Uwaga: wielkość liter może mieć znaczenie." + +msgid "Action:" +msgstr "Akcja:" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "Dodaj kolejne(go)(-ną)(-ny) %(verbose_name)s" + +msgid "Remove" +msgstr "Usuń" + +msgid "Addition" +msgstr "Dodanie" + +msgid "Change" +msgstr "Zmień" + +msgid "Deletion" +msgstr "Usunięcie" + +msgid "action time" +msgstr "czas akcji" + +msgid "user" +msgstr "użytkownik" + +msgid "content type" +msgstr "typ zawartości" + +msgid "object id" +msgstr "id obiektu" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/library/functions.html#repr) +msgid "object repr" +msgstr "reprezentacja obiektu" + +msgid "action flag" +msgstr "flaga akcji" + +msgid "change message" +msgstr "zmień wiadomość" + +msgid "log entry" +msgstr "log" + +msgid "log entries" +msgstr "logi" + +#, python-format +msgid "Added “%(object)s”." +msgstr "Dodano „%(object)s”." + +#, python-format +msgid "Changed “%(object)s” — %(changes)s" +msgstr "Zmieniono „%(object)s” — %(changes)s " + +#, python-format +msgid "Deleted “%(object)s.”" +msgstr "Usunięto „%(object)s”." + +msgid "LogEntry Object" +msgstr "Obiekt LogEntry" + +#, python-brace-format +msgid "Added {name} “{object}”." +msgstr "Dodano {name} „{object}”." + +msgid "Added." +msgstr "Dodano." + +msgid "and" +msgstr "i" + +#, python-brace-format +msgid "Changed {fields} for {name} “{object}”." +msgstr "Zmodyfikowano {fields} w {name} „{object}”." + +#, python-brace-format +msgid "Changed {fields}." +msgstr "Zmodyfikowano {fields}." + +#, python-brace-format +msgid "Deleted {name} “{object}”." +msgstr "Usunięto {name} „{object}”." + +msgid "No fields changed." +msgstr "Żadne pole nie zostało zmienione." + +msgid "None" +msgstr "Brak" + +msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." +msgstr "" +"Przytrzymaj wciśnięty klawisz „Ctrl” lub „Command” na Macu, aby zaznaczyć " +"więcej niż jeden wybór." + +msgid "Select this object for an action - {}" +msgstr "Wybierz ten obiekt do wykonania akcji - {}" + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully." +msgstr "{name} „{obj}” został(a)(-ło) dodany(-na)(-ne) pomyślnie." + +msgid "You may edit it again below." +msgstr "Poniżej możesz ponownie edytować." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was added successfully. You may add another {name} below." +msgstr "" +"{name} „{obj}” został(a)(-ło) dodany(-na)(-ne) pomyślnie. Można dodać " +"kolejne(go)(-ną)(-ny) {name} poniżej." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may edit it again below." +msgstr "" +"{name} „{obj}” został(a)(-ło) pomyślnie zmieniony(-na)(-ne). Można edytować " +"go/ją/je ponownie poniżej." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may add another {name} " +"below." +msgstr "" +"{name} „{obj}” został(a)(-ło) pomyślnie zmieniony(-na)(-ne). Można dodać " +"kolejny(-nego)(-ną)(-ne) {name} poniżej." + +#, python-brace-format +msgid "The {name} “{obj}” was changed successfully." +msgstr "{name} „{obj}” został(a)(-ło) pomyślnie zmieniony(-na)(-ne)." + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" +"Wykonanie akcji wymaga wybrania obiektów. Żaden obiekt nie został zmieniony." + +msgid "No action selected." +msgstr "Nie wybrano akcji." + +#, python-format +msgid "The %(name)s “%(obj)s” was deleted successfully." +msgstr "%(name)s „%(obj)s” usunięty(-ta)(-te) pomyślnie." + +#, python-format +msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" +msgstr "" +"%(name)s z ID „%(key)s” nie istnieje. Może został(a)(-ło) usunięty(-ta)(-te)?" + +#, python-format +msgid "Add %s" +msgstr "Dodaj %s" + +#, python-format +msgid "Change %s" +msgstr "Zmień %s" + +#, python-format +msgid "View %s" +msgstr "Zobacz %s" + +msgid "Database error" +msgstr "Błąd bazy danych" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "%(count)s %(name)s został(a)(-ło) pomyślnie zmieniony(-na)(-ne)." +msgstr[1] "%(count)s %(name)s zostały(-ło) pomyślnie zmienione(-nych)." +msgstr[2] "%(count)s %(name)s zostało pomyślnie zmienionych." +msgstr[3] "%(count)s %(name)s zostało pomyślnie zmienione." + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "Wybrano %(total_count)s" +msgstr[1] "Wybrano %(total_count)s" +msgstr[2] "Wybrano %(total_count)s" +msgstr[3] "Wybrano wszystkie %(total_count)s" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "Wybrano 0 z %(cnt)s" + +#, python-format +msgid "Change history: %s" +msgstr "Historia zmian: %s" + +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "%(class_name)s %(instance)s" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" +"Usunięcie %(class_name)s %(instance)s może wiązać się z usunięciem " +"następujących chronionych obiektów pokrewnych: %(related_objects)s" + +msgid "Django site admin" +msgstr "Administracja stroną Django" + +msgid "Django administration" +msgstr "Administracja Django" + +msgid "Site administration" +msgstr "Administracja stroną" + +msgid "Log in" +msgstr "Zaloguj się" + +#, python-format +msgid "%(app)s administration" +msgstr "%(app)s: administracja" + +msgid "Page not found" +msgstr "Strona nie została znaleziona" + +msgid "We’re sorry, but the requested page could not be found." +msgstr "Przykro nam, ale żądana strona nie została znaleziona." + +msgid "Home" +msgstr "Strona główna" + +msgid "Server error" +msgstr "Błąd serwera" + +msgid "Server error (500)" +msgstr "Błąd serwera (500)" + +msgid "Server Error (500)" +msgstr "Błąd Serwera (500)" + +msgid "" +"There’s been an error. It’s been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" +"Niestety wystąpił błąd. Zostało to zgłoszone administratorom strony poprzez " +"email i niebawem powinno zostać naprawione. Dziękujemy za cierpliwość." + +msgid "Run the selected action" +msgstr "Wykonaj wybraną akcję" + +msgid "Go" +msgstr "Wykonaj" + +msgid "Click here to select the objects across all pages" +msgstr "Kliknij by wybrać obiekty na wszystkich stronach" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "Wybierz wszystkie(-kich) %(total_count)s %(module_name)s" + +msgid "Clear selection" +msgstr "Wyczyść wybór" + +msgid "Breadcrumbs" +msgstr "Breadcrumbs" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "Modele w aplikacji %(name)s" + +msgid "Add" +msgstr "Dodaj" + +msgid "View" +msgstr "Zobacz" + +msgid "You don’t have permission to view or edit anything." +msgstr "Nie masz uprawnień do oglądania ani edycji niczego." + +msgid "" +"First, enter a username and password. Then, you’ll be able to edit more user " +"options." +msgstr "" +"Najpierw podaj nazwę użytkownika i hasło. Następnie będziesz mógł edytować " +"więcej opcji użytkownika." + +msgid "Enter a username and password." +msgstr "Podaj nazwę użytkownika i hasło." + +msgid "Change password" +msgstr "Zmień hasło" + +msgid "Set password" +msgstr "Ustaw hasło" + +msgid "Please correct the error below." +msgid_plural "Please correct the errors below." +msgstr[0] "Prosimy poprawić poniższy błąd." +msgstr[1] "Prosimy poprawić poniższe błędy." +msgstr[2] "Prosimy poprawić poniższe błędy." +msgstr[3] "Prosimy poprawić poniższe błędy." + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "Podaj nowe hasło dla użytkownika %(username)s." + +msgid "" +"This action will enable password-based authentication for " +"this user." +msgstr "" +"To działanie włączy uwierzytelnianie oparte na haśle dla " +"tego użytkownika. " + +msgid "Disable password-based authentication" +msgstr "Wyłącz uwierzytelnianie oparte na haśle" + +msgid "Enable password-based authentication" +msgstr "Włącz uwierzytelnianie oparte na haśle" + +msgid "Skip to main content" +msgstr "Przejdź do głównej treści" + +msgid "Welcome," +msgstr "Witaj," + +msgid "View site" +msgstr "Pokaż stronę" + +msgid "Documentation" +msgstr "Dokumentacja" + +msgid "Log out" +msgstr "Wyloguj się" + +#, python-format +msgid "Add %(name)s" +msgstr "Dodaj %(name)s" + +msgid "History" +msgstr "Historia" + +msgid "View on site" +msgstr "Pokaż na stronie" + +msgid "Filter" +msgstr "Filtruj" + +msgid "Hide counts" +msgstr "Ukryj ilości" + +msgid "Show counts" +msgstr "Pokaż ilości" + +msgid "Clear all filters" +msgstr "Wyczyść wszystkie filtry" + +msgid "Remove from sorting" +msgstr "Usuń z sortowania" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "Priorytet sortowania: %(priority_number)s " + +msgid "Toggle sorting" +msgstr "Przełącz sortowanie" + +msgid "Toggle theme (current theme: auto)" +msgstr "Przełącz motyw (bieżący motyw: auto)" + +msgid "Toggle theme (current theme: light)" +msgstr "Przełącz motyw (bieżący motyw: jasny)" + +msgid "Toggle theme (current theme: dark)" +msgstr "Przełącz motyw (bieżący motyw: ciemny)" + +msgid "Delete" +msgstr "Usuń" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" +"Usunięcie %(object_name)s „%(escaped_object)s” wiązałoby się z usunięciem " +"obiektów z nim/nią powiązanych, ale niestety nie posiadasz uprawnień do " +"usunięcia obiektów następujących typów:" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" +"Usunięcie %(object_name)s „%(escaped_object)s” wymagałoby skasowania " +"następujących chronionych obiektów, które są z nim/nią powiązane:" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" +"Czy chcesz skasować %(object_name)s „%(escaped_object)s”? Następujące " +"obiekty powiązane zostaną usunięte:" + +msgid "Objects" +msgstr "Obiekty" + +msgid "Yes, I’m sure" +msgstr "Tak, na pewno" + +msgid "No, take me back" +msgstr "Nie, zabierz mnie stąd" + +msgid "Delete multiple objects" +msgstr "Usuwanie wielu obiektów" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" +"Usunięcie wybranych(-nego)(-nej) %(objects_name)s spowoduje skasowanie " +"obiektów, które są z nim(i)/nią powiązane. Niestety nie posiadasz uprawnień " +"do usunięcia następujących typów obiektów:" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" +"Usunięcie wybranych(-nego)(-nej) %(objects_name)s wymaga skasowania " +"następujących chronionych obiektów, które są z nim(i)/nią powiązane:" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" +"Czy chcesz skasować zaznaczone(go)(-ną)(-ny)(-nych) %(objects_name)s? " +"Następujące obiekty oraz obiekty od nich zależne zostaną skasowane:" + +msgid "Delete?" +msgstr "Usunąć?" + +#, python-format +msgid " By %(filter_title)s " +msgstr " Według pola %(filter_title)s " + +msgid "Summary" +msgstr "Podsumowanie" + +msgid "Recent actions" +msgstr "Ostatnie działania" + +msgid "My actions" +msgstr "Moje działania" + +msgid "None available" +msgstr "Brak dostępnych" + +msgid "Added:" +msgstr "Dodano:" + +msgid "Changed:" +msgstr "Zmieniono:" + +msgid "Deleted:" +msgstr "Usunięto:" + +msgid "Unknown content" +msgstr "Zawartość nieznana" + +msgid "" +"Something’s wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" +"Instalacja Twojej bazy danych jest niepoprawna. Upewnij się, że odpowiednie " +"tabele zostały utworzone i odpowiedni użytkownik jest uprawniony do ich " +"odczytu." + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" +"Jesteś uwierzytelniony jako %(username)s, ale nie jesteś upoważniony do " +"dostępu do tej strony. Czy chciałbyś zalogować się na inne konto?" + +msgid "Forgotten your password or username?" +msgstr "Nie pamiętasz swojego hasła lub nazwy użytkownika?" + +msgid "Toggle navigation" +msgstr "Przełącz nawigację" + +msgid "Sidebar" +msgstr "Pasek boczny" + +msgid "Start typing to filter…" +msgstr "Zacznij pisać, aby odfiltrować…" + +msgid "Filter navigation items" +msgstr "Filtruj elementy nawigacji" + +msgid "Date/time" +msgstr "Data/czas" + +msgid "User" +msgstr "Użytkownik" + +msgid "Action" +msgstr "Akcja" + +msgid "entry" +msgid_plural "entries" +msgstr[0] "wpis" +msgstr[1] "wpisy" +msgstr[2] "wpisów" +msgstr[3] "wpisu" + +msgid "" +"This object doesn’t have a change history. It probably wasn’t added via this " +"admin site." +msgstr "" +"Ten obiekt nie ma historii zmian. Najprawdopodobniej nie został on dodany " +"poprzez panel administracyjny." + +msgid "Show all" +msgstr "Pokaż wszystko" + +msgid "Save" +msgstr "Zapisz" + +msgid "Popup closing…" +msgstr "Zamykanie okna..." + +msgid "Search" +msgstr "Szukaj" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "%(counter)s wynik" +msgstr[1] "%(counter)s wyniki" +msgstr[2] "%(counter)s wyników" +msgstr[3] "%(counter)s wyników" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "%(full_result_count)s łącznie" + +msgid "Save as new" +msgstr "Zapisz jako nowy" + +msgid "Save and add another" +msgstr "Zapisz i dodaj nowy" + +msgid "Save and continue editing" +msgstr "Zapisz i kontynuuj edycję" + +msgid "Save and view" +msgstr "Zapisz i obejrzyj" + +msgid "Close" +msgstr "Zamknij" + +#, python-format +msgid "Change selected %(model)s" +msgstr "Zmień wybraną(-ne)(-nego)(-ny) %(model)s" + +#, python-format +msgid "Add another %(model)s" +msgstr "Dodaj kolejne(go)(-ną)(-ny) %(model)s" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "Usuń wybraną(-ne)(-nego)(-ny) %(model)s" + +#, python-format +msgid "View selected %(model)s" +msgstr "Obejrzyj wybraną(-ne)(-nego)(-ny) %(model)s" + +msgid "Thanks for spending some quality time with the web site today." +msgstr "Dzięki za spędzenie cennego czasu ze stroną." + +msgid "Log in again" +msgstr "Zaloguj się ponownie" + +msgid "Password change" +msgstr "Zmiana hasła" + +msgid "Your password was changed." +msgstr "Twoje hasło zostało zmienione." + +msgid "" +"Please enter your old password, for security’s sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" +"Podaj swoje stare hasło, ze względów bezpieczeństwa, a później wpisz " +"dwukrotnie Twoje nowe hasło, abyśmy mogli zweryfikować, że zostało wpisane " +"poprawnie." + +msgid "Change my password" +msgstr "Zmień hasło" + +msgid "Password reset" +msgstr "Zresetuj hasło" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "Twoje hasło zostało ustawione. Możesz się teraz zalogować." + +msgid "Password reset confirmation" +msgstr "Potwierdzenie zresetowania hasła" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" +"Podaj dwukrotnie nowe hasło, by można było zweryfikować, czy zostało wpisane " +"poprawnie." + +msgid "New password:" +msgstr "Nowe hasło:" + +msgid "Confirm password:" +msgstr "Potwierdź hasło:" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"Link pozwalający na reset hasła jest niepoprawny - być może dlatego, że " +"został już raz użyty. Możesz ponownie zażądać zresetowania hasła." + +msgid "" +"We’ve emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" +"Instrukcja pozwalająca ustawić nowe hasło dla podanego adresu e-mail została " +"wysłana. Niebawem powinna się pojawić na twoim koncie pocztowym." + +msgid "" +"If you don’t receive an email, please make sure you’ve entered the address " +"you registered with, and check your spam folder." +msgstr "" +"W przypadku nieotrzymania wiadomości e-mail: upewnij się czy adres " +"wprowadzony jest zgodny z tym podanym podczas rejestracji i sprawdź " +"zawartość folderu SPAM na swoim koncie." + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" +"Otrzymujesz tę wiadomość, gdyż skorzystano z opcji resetu hasła dla Twojego " +"konta na stronie %(site_name)s." + +msgid "Please go to the following page and choose a new password:" +msgstr "" +"Aby wprowadzić nowe hasło, proszę przejść na stronę, której adres widnieje " +"poniżej:" + +msgid "Your username, in case you’ve forgotten:" +msgstr "Twoja nazwa użytkownika, na wypadek, gdybyś zapomniał(a):" + +msgid "Thanks for using our site!" +msgstr "Dzięki za korzystanie z naszej strony!" + +#, python-format +msgid "The %(site_name)s team" +msgstr "Zespół %(site_name)s" + +msgid "" +"Forgotten your password? Enter your email address below, and we’ll email " +"instructions for setting a new one." +msgstr "" +"Nie pamiętasz swojego hasła? Wprowadź w poniższym polu swój adres e-mail, a " +"wyślemy ci instrukcję opisującą sposób ustawienia nowego hasła." + +msgid "Email address:" +msgstr "Adres e-mail:" + +msgid "Reset my password" +msgstr "Zresetuj moje hasło" + +msgid "Select all objects on this page for an action" +msgstr "Wybierz wszystkie obiekty na tej stronie do wykonania akcji" + +msgid "All dates" +msgstr "Wszystkie daty" + +#, python-format +msgid "Select %s" +msgstr "Wybierz %s" + +#, python-format +msgid "Select %s to change" +msgstr "Wybierz %s do zmiany" + +#, python-format +msgid "Select %s to view" +msgstr "Wybierz %s do obejrzenia" + +msgid "Date:" +msgstr "Data:" + +msgid "Time:" +msgstr "Czas:" + +msgid "Lookup" +msgstr "Szukaj" + +msgid "Currently:" +msgstr "Aktualny:" + +msgid "Change:" +msgstr "Zmień:" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/pl/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/pl/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..7eb9375adac023e3f2824586c359d96e962842d6 GIT binary patch literal 6655 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/pl/LC_MESSAGES/djangojs.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/pl/LC_MESSAGES/djangojs.po new file mode 100644 index 0000000000..7b9641caf6 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/pl/LC_MESSAGES/djangojs.po @@ -0,0 +1,356 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# angularcircle, 2011 +# Darek, 2022 +# Jannis Leidel , 2011 +# Janusz Harkot , 2014-2015 +# 0d5641585fd67fbdb97037c19ab83e4c_18c98b0 , 2011 +# Maciej Olko , 2016,2018,2020 +# Maciej Olko , 2023 +# Mariusz Felisiak , 2021,2023 +# Roman Barczyński, 2012 +# Tomasz Kajtoch , 2016-2017 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-09-18 15:04-0300\n" +"PO-Revision-Date: 2023-12-04 07:59+0000\n" +"Last-Translator: Mariusz Felisiak , 2021,2023\n" +"Language-Team: Polish (http://app.transifex.com/django/django/language/pl/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: pl\n" +"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && " +"(n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && " +"n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n" + +#, javascript-format +msgid "Available %s" +msgstr "Dostępne %s" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" +"To lista dostępnych %s. Aby wybrać pozycje, zaznacz je i kliknij strzałkę " +"„Wybierz” pomiędzy listami." + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "Wpisz coś tutaj, aby wyfiltrować listę dostępnych %s." + +msgid "Filter" +msgstr "Filtr" + +msgid "Choose all" +msgstr "Wybierz wszystkie" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "Kliknij, aby wybrać jednocześnie wszystkie %s." + +msgid "Choose" +msgstr "Wybierz" + +msgid "Remove" +msgstr "Usuń" + +#, javascript-format +msgid "Chosen %s" +msgstr "Wybrane %s" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" +"To lista wybranych %s. Aby usunąć, zaznacz pozycje wybrane do usunięcia i " +"kliknij strzałkę „Usuń” pomiędzy listami." + +#, javascript-format +msgid "Type into this box to filter down the list of selected %s." +msgstr "Wpisz coś tutaj, aby wyfiltrować listę wybranych %s." + +msgid "Remove all" +msgstr "Usuń wszystkie" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "Kliknij, aby usunąć jednocześnie wszystkie wybrane %s." + +#, javascript-format +msgid "%s selected option not visible" +msgid_plural "%s selected options not visible" +msgstr[0] "%s wybrana opcja jest ukryta" +msgstr[1] "%s wybrane opcje są ukryte" +msgstr[2] "%s wybranych opcji jest ukrytych" +msgstr[3] "%s wybranych opcji jest ukrytych" + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "Wybrano %(sel)s z %(cnt)s" +msgstr[1] "Wybrano %(sel)s z %(cnt)s" +msgstr[2] "Wybrano %(sel)s z %(cnt)s" +msgstr[3] "Wybrano %(sel)s z %(cnt)s" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" +"Zmiany w niektórych polach nie zostały zachowane. Po wykonaniu akcji, zmiany " +"te zostaną utracone." + +msgid "" +"You have selected an action, but you haven’t saved your changes to " +"individual fields yet. Please click OK to save. You’ll need to re-run the " +"action." +msgstr "" +"Wybrano akcję, lecz część zmian w polach nie została zachowana. Kliknij OK, " +"aby zapisać. Aby wykonać akcję, należy ją ponownie uruchomić." + +msgid "" +"You have selected an action, and you haven’t made any changes on individual " +"fields. You’re probably looking for the Go button rather than the Save " +"button." +msgstr "" +"Wybrano akcję, lecz nie dokonano żadnych zmian w polach. Prawdopodobnie " +"szukasz przycisku „Wykonaj”, a nie „Zapisz”." + +msgid "Now" +msgstr "Teraz" + +msgid "Midnight" +msgstr "Północ" + +msgid "6 a.m." +msgstr "6 rano" + +msgid "Noon" +msgstr "Południe" + +msgid "6 p.m." +msgstr "6 po południu" + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "" +"Uwaga: Czas lokalny jest przesunięty o %s godzinę do przodu w stosunku do " +"czasu serwera." +msgstr[1] "" +"Uwaga: Czas lokalny jest przesunięty o %s godziny do przodu w stosunku do " +"czasu serwera." +msgstr[2] "" +"Uwaga: Czas lokalny jest przesunięty o %s godzin do przodu w stosunku do " +"czasu serwera." +msgstr[3] "" +"Uwaga: Czas lokalny jest przesunięty o %s godzin do przodu w stosunku do " +"czasu serwera." + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "" +"Uwaga: Czas lokalny jest przesunięty o %s godzinę do tyłu w stosunku do " +"czasu serwera." +msgstr[1] "" +"Uwaga: Czas lokalny jest przesunięty o %s godziny do tyłu w stosunku do " +"czasu serwera." +msgstr[2] "" +"Uwaga: Czas lokalny jest przesunięty o %s godzin do tyłu w stosunku do czasu " +"serwera." +msgstr[3] "" +"Uwaga: Czas lokalny jest przesunięty o %s godzin do tyłu w stosunku do czasu " +"serwera." + +msgid "Choose a Time" +msgstr "Wybierz Czas" + +msgid "Choose a time" +msgstr "Wybierz czas" + +msgid "Cancel" +msgstr "Anuluj" + +msgid "Today" +msgstr "Dzisiaj" + +msgid "Choose a Date" +msgstr "Wybierz Datę" + +msgid "Yesterday" +msgstr "Wczoraj" + +msgid "Tomorrow" +msgstr "Jutro" + +msgid "January" +msgstr "Styczeń" + +msgid "February" +msgstr "Luty" + +msgid "March" +msgstr "Marzec" + +msgid "April" +msgstr "Kwiecień" + +msgid "May" +msgstr "Maj" + +msgid "June" +msgstr "Czerwiec" + +msgid "July" +msgstr "Lipiec" + +msgid "August" +msgstr "Sierpień" + +msgid "September" +msgstr "Wrzesień" + +msgid "October" +msgstr "Październik" + +msgid "November" +msgstr "Listopad" + +msgid "December" +msgstr "Grudzień" + +msgctxt "abbrev. month January" +msgid "Jan" +msgstr "Sty" + +msgctxt "abbrev. month February" +msgid "Feb" +msgstr "Lut" + +msgctxt "abbrev. month March" +msgid "Mar" +msgstr "Mar" + +msgctxt "abbrev. month April" +msgid "Apr" +msgstr "Kwi" + +msgctxt "abbrev. month May" +msgid "May" +msgstr "Maj" + +msgctxt "abbrev. month June" +msgid "Jun" +msgstr "Cze" + +msgctxt "abbrev. month July" +msgid "Jul" +msgstr "Lip" + +msgctxt "abbrev. month August" +msgid "Aug" +msgstr "Sie" + +msgctxt "abbrev. month September" +msgid "Sep" +msgstr "Wrz" + +msgctxt "abbrev. month October" +msgid "Oct" +msgstr "Paź" + +msgctxt "abbrev. month November" +msgid "Nov" +msgstr "Lis" + +msgctxt "abbrev. month December" +msgid "Dec" +msgstr "Gru" + +msgid "Sunday" +msgstr "Niedziela" + +msgid "Monday" +msgstr "Poniedziałek" + +msgid "Tuesday" +msgstr "Wtorek" + +msgid "Wednesday" +msgstr "Środa" + +msgid "Thursday" +msgstr "Czwartek" + +msgid "Friday" +msgstr "Piątek" + +msgid "Saturday" +msgstr "Sobota" + +msgctxt "abbrev. day Sunday" +msgid "Sun" +msgstr "Nd" + +msgctxt "abbrev. day Monday" +msgid "Mon" +msgstr "Pon" + +msgctxt "abbrev. day Tuesday" +msgid "Tue" +msgstr "Wt" + +msgctxt "abbrev. day Wednesday" +msgid "Wed" +msgstr "Śr" + +msgctxt "abbrev. day Thursday" +msgid "Thur" +msgstr "Czw" + +msgctxt "abbrev. day Friday" +msgid "Fri" +msgstr "Pt" + +msgctxt "abbrev. day Saturday" +msgid "Sat" +msgstr "So" + +msgctxt "one letter Sunday" +msgid "S" +msgstr "N" + +msgctxt "one letter Monday" +msgid "M" +msgstr "P" + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "W" + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "Ś" + +msgctxt "one letter Thursday" +msgid "T" +msgstr "C" + +msgctxt "one letter Friday" +msgid "F" +msgstr "P" + +msgctxt "one letter Saturday" +msgid "S" +msgstr "S" + +msgid "Show" +msgstr "Pokaż" + +msgid "Hide" +msgstr "Ukryj" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/pt/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/pt/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..cf5303ac3b4f5400523bc26345bfd0bc3118703a GIT binary patch literal 18681 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/pt/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/pt/LC_MESSAGES/django.po new file mode 100644 index 0000000000..3451a0e888 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/pt/LC_MESSAGES/django.po @@ -0,0 +1,792 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# emansije , 2023 +# Henrique Azevedo , 2018,2023 +# Jannis Leidel , 2011 +# jorgecarleitao , 2015 +# Nuno Mariz , 2013,2015,2017-2018,2023 +# 12574c6d66324e145c1d19e02acecb73_84badd8 <4e8d94859927eab3b50486d21249c068_5346>, 2011 +# Raúl Pedro Fernandes Santos, 2014 +# Rui Dinis Silva, 2017 +# Sofia Matias, 2023 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-09-18 11:41-0300\n" +"PO-Revision-Date: 2023-12-04 07:05+0000\n" +"Last-Translator: emansije , 2023\n" +"Language-Team: Portuguese (http://app.transifex.com/django/django/language/" +"pt/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: pt\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "Remover %(verbose_name_plural)s selecionados" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "Foram removidos com sucesso %(count)d %(items)s." + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "Não é possível remover %(name)s " + +msgid "Are you sure?" +msgstr "Tem a certeza?" + +msgid "Administration" +msgstr "Administração" + +msgid "All" +msgstr "Todos" + +msgid "Yes" +msgstr "Sim" + +msgid "No" +msgstr "Não" + +msgid "Unknown" +msgstr "Desconhecido" + +msgid "Any date" +msgstr "Qualquer data" + +msgid "Today" +msgstr "Hoje" + +msgid "Past 7 days" +msgstr "Últimos 7 dias" + +msgid "This month" +msgstr "Este mês" + +msgid "This year" +msgstr "Este ano" + +msgid "No date" +msgstr "Sem data" + +msgid "Has date" +msgstr "Tem data" + +msgid "Empty" +msgstr "Vazio" + +msgid "Not empty" +msgstr "Não está vazio" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" +"Por favor introduza o %(username)s e password corretos para a conta de " +"equipa. Tenha em atenção às maiúsculas e minúsculas." + +msgid "Action:" +msgstr "Ação:" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "Adicionar outro %(verbose_name)s" + +msgid "Remove" +msgstr "Remover" + +msgid "Addition" +msgstr "Adição" + +msgid "Change" +msgstr "Modificar" + +msgid "Deletion" +msgstr "Eliminação" + +msgid "action time" +msgstr "hora da ação" + +msgid "user" +msgstr "utilizador" + +msgid "content type" +msgstr "tipo de conteúdo" + +msgid "object id" +msgstr "id do objeto" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/library/functions.html#repr) +msgid "object repr" +msgstr "repr do objeto" + +msgid "action flag" +msgstr "flag de ação" + +msgid "change message" +msgstr "modificar mensagem" + +msgid "log entry" +msgstr "entrada de log" + +msgid "log entries" +msgstr "entradas de log" + +#, python-format +msgid "Added “%(object)s”." +msgstr "Adicionado \"%(object)s\"" + +#, python-format +msgid "Changed “%(object)s” — %(changes)s" +msgstr "Modificado \"%(object)s\" — %(changes)s" + +#, python-format +msgid "Deleted “%(object)s.”" +msgstr "Removido \"%(object)s.\"" + +msgid "LogEntry Object" +msgstr "Objeto LogEntry" + +#, python-brace-format +msgid "Added {name} “{object}”." +msgstr "Adicionado {name} \"{object}\"" + +msgid "Added." +msgstr "Adicionado." + +msgid "and" +msgstr "e" + +#, python-brace-format +msgid "Changed {fields} for {name} “{object}”." +msgstr "Alterado {fields} para {name} “{object}”." + +#, python-brace-format +msgid "Changed {fields}." +msgstr "Foi modificado {fields}." + +#, python-brace-format +msgid "Deleted {name} “{object}”." +msgstr "Removido {name} \"{object}\"" + +msgid "No fields changed." +msgstr "Nenhum campo foi modificado." + +msgid "None" +msgstr "Nenhum" + +msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." +msgstr "" +"Mantenha premida a tecla “Control”, ou “Command” no Mac, para selecionar " +"mais do que uma." + +msgid "Select this object for an action - {}" +msgstr "Selecionar este objecto para uma ação - {}" + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully." +msgstr "O {name} “{obj}” foi adicionado com sucesso." + +msgid "You may edit it again below." +msgstr "Pode editar novamente abaixo." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was added successfully. You may add another {name} below." +msgstr "" +"O {name} “{obj}” foi adicionado com sucesso. Pode adicionar outro {name} " +"abaixo." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may edit it again below." +msgstr "" +"O {name} “{obj}” foi adicionado com sucesso. Pode editar novamente abaixo." + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully. You may edit it again below." +msgstr "" +"O {name} “{obj}” foi adicionado com sucesso. Pode editar novamente abaixo. " + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may add another {name} " +"below." +msgstr "" +"O {name} “{obj}” foi alterado com sucesso. Pode adicionar outro {name} " +"abaixo." + +#, python-brace-format +msgid "The {name} “{obj}” was changed successfully." +msgstr "O {name} “{obj}” foi alterado com sucesso." + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" +"Os itens devem ser selecionados de forma a efectuar ações sobre eles. Nenhum " +"item foi modificado." + +msgid "No action selected." +msgstr "Nenhuma ação selecionada." + +#, python-format +msgid "The %(name)s “%(obj)s” was deleted successfully." +msgstr "O %(name)s “%(obj)s” foi apagado com sucesso." + +#, python-format +msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" +msgstr "%(name)s com o ID “%(key)s” não existe. Talvez tenha sido apagado?" + +#, python-format +msgid "Add %s" +msgstr "Adicionar %s" + +#, python-format +msgid "Change %s" +msgstr "Modificar %s" + +#, python-format +msgid "View %s" +msgstr "View %s " + +msgid "Database error" +msgstr "Erro de base de dados" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "%(count)s %(name)s foi modificado com sucesso." +msgstr[1] "%(count)s %(name)s foram modificados com sucesso." +msgstr[2] "%(count)s %(name)s foram modificados com sucesso." + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "%(total_count)s selecionado" +msgstr[1] "Todos %(total_count)s selecionados" +msgstr[2] "Todos %(total_count)s selecionados" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "0 de %(cnt)s selecionados" + +#, python-format +msgid "Change history: %s" +msgstr "Histórico de modificações: %s" + +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "%(class_name)s %(instance)s" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" +"Remover %(class_name)s %(instance)s exigiria a remoção dos seguintes objetos " +"relacionados protegidos: %(related_objects)s" + +msgid "Django site admin" +msgstr "Site de administração do Django" + +msgid "Django administration" +msgstr "Administração do Django" + +msgid "Site administration" +msgstr "Administração do site" + +msgid "Log in" +msgstr "Entrar" + +#, python-format +msgid "%(app)s administration" +msgstr "Administração de %(app)s" + +msgid "Page not found" +msgstr "Página não encontrada" + +msgid "We’re sorry, but the requested page could not be found." +msgstr "Pedimos desculpa mas a página solicitada não foi encontrada. " + +msgid "Home" +msgstr "Início" + +msgid "Server error" +msgstr "Erro do servidor" + +msgid "Server error (500)" +msgstr "Erro do servidor (500)" + +msgid "Server Error (500)" +msgstr "Erro do servidor (500)" + +msgid "" +"There’s been an error. It’s been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" +"Ocorreu um erro. Foi comunicado por email aos administradores da página e " +"deverá ser corrigido em breve. Obrigado pela sua compreensão. " + +msgid "Run the selected action" +msgstr "Executar a acção selecionada" + +msgid "Go" +msgstr "Ir" + +msgid "Click here to select the objects across all pages" +msgstr "Clique aqui para selecionar os objetos em todas as páginas" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "Selecionar todos %(total_count)s %(module_name)s" + +msgid "Clear selection" +msgstr "Remover seleção" + +msgid "Breadcrumbs" +msgstr "Marcas de navegação" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "Modelos na aplicação %(name)s" + +msgid "Add" +msgstr "Adicionar" + +msgid "View" +msgstr "View" + +msgid "You don’t have permission to view or edit anything." +msgstr "Não tem permissões para visualizar ou editar nada. " + +msgid "" +"First, enter a username and password. Then, you’ll be able to edit more user " +"options." +msgstr "" +"Primeiro, introduza o nome de utilizador e senha. Depois, poderá editar " +"mais opções de utilizador. " + +msgid "Enter a username and password." +msgstr "Introduza o utilizador e palavra-passe." + +msgid "Change password" +msgstr "Modificar palavra-passe" + +msgid "Please correct the error below." +msgid_plural "Please correct the errors below." +msgstr[0] "Por favor, corrija o erro abaixo" +msgstr[1] "Por favor, corrija os erros abaixo." +msgstr[2] "Por favor, corrija os erros abaixo." + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "" +"Introduza uma nova palavra-passe para o utilizador %(username)s." + +msgid "Skip to main content" +msgstr "Ir para o conteúdo principal" + +msgid "Welcome," +msgstr "Bem-vindo," + +msgid "View site" +msgstr "Ver site" + +msgid "Documentation" +msgstr "Documentação" + +msgid "Log out" +msgstr "Sair" + +#, python-format +msgid "Add %(name)s" +msgstr "Adicionar %(name)s" + +msgid "History" +msgstr "História" + +msgid "View on site" +msgstr "Ver no site" + +msgid "Filter" +msgstr "Filtro" + +msgid "Hide counts" +msgstr "Ocultar contagem" + +msgid "Show counts" +msgstr "Mostrar contagem" + +msgid "Clear all filters" +msgstr "Limpar todos os filtros" + +msgid "Remove from sorting" +msgstr "Remover da ordenação" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "Prioridade de ordenação: %(priority_number)s" + +msgid "Toggle sorting" +msgstr "Altenar ordenação" + +msgid "Toggle theme (current theme: auto)" +msgstr "Mudar tema (tema corrente: auto)" + +msgid "Toggle theme (current theme: light)" +msgstr "Mudar tema (tema corrente: claro)" + +msgid "Toggle theme (current theme: dark)" +msgstr "Mudar tema (tema corrente: escuro)" + +msgid "Delete" +msgstr "Remover" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" +"A remoção de %(object_name)s '%(escaped_object)s' resultará na remoção dos " +"objetos relacionados, mas a sua conta não tem permissão de remoção dos " +"seguintes tipos de objetos:" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" +"Remover o %(object_name)s ' %(escaped_object)s ' exigiria a remoção dos " +"seguintes objetos protegidos relacionados:" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" +"Tem a certeza que deseja remover %(object_name)s \"%(escaped_object)s\"? " +"Todos os items relacionados seguintes irão ser removidos:" + +msgid "Objects" +msgstr "Objectos" + +msgid "Yes, I’m sure" +msgstr "Sim, tenho a certeza" + +msgid "No, take me back" +msgstr "Não, retrocede" + +msgid "Delete multiple objects" +msgstr "Remover múltiplos objetos." + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" +"Remover o %(objects_name)s selecionado poderia resultar na remoção de " +"objetos relacionados, mas a sua conta não tem permissão para remover os " +"seguintes tipos de objetos:" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" +"Remover o %(objects_name)s selecionado exigiria remover os seguintes objetos " +"protegidos relacionados:" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" +"Tem certeza de que deseja remover %(objects_name)s selecionado? Todos os " +"objetos seguintes e seus itens relacionados serão removidos:" + +msgid "Delete?" +msgstr "Remover?" + +#, python-format +msgid " By %(filter_title)s " +msgstr " Por %(filter_title)s " + +msgid "Summary" +msgstr "Sumário" + +msgid "Recent actions" +msgstr "Ações recentes" + +msgid "My actions" +msgstr "As minhas ações" + +msgid "None available" +msgstr "Nenhum disponível" + +msgid "Added:" +msgstr "Adicionado:" + +msgid "Changed:" +msgstr "Alterado:" + +msgid "Deleted:" +msgstr "Apagado:" + +msgid "Unknown content" +msgstr "Conteúdo desconhecido" + +msgid "" +"Something’s wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" +"Há algo de errado com a instalação da base de dados. Certifique-se de que as " +"tabelas adequadas da base de dados foram criadas e de que a base de dados " +"pode ser lida pelo utilizador adequado." + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" +"Está autenticado como %(username)s, mas não está autorizado a aceder a esta " +"página. Deseja autenticar-se com uma conta diferente?" + +msgid "Forgotten your password or username?" +msgstr "Esqueceu-se da sua palavra-passe ou utilizador?" + +msgid "Toggle navigation" +msgstr "Alternar navegação" + +msgid "Sidebar" +msgstr "Barra lateral" + +msgid "Start typing to filter…" +msgstr "Começe a digitar para filtrar…" + +msgid "Filter navigation items" +msgstr "Filtrar itens de navegação" + +msgid "Date/time" +msgstr "Data/hora" + +msgid "User" +msgstr "Utilizador" + +msgid "Action" +msgstr "Ação" + +msgid "entry" +msgid_plural "entries" +msgstr[0] "entrada" +msgstr[1] "entradas" +msgstr[2] "entradas" + +msgid "" +"This object doesn’t have a change history. It probably wasn’t added via this " +"admin site." +msgstr "" +"Este objeto não tem um histórico de alterações. Provavelmente não foi " +"adicionado através da página de administração." + +msgid "Show all" +msgstr "Mostrar todos" + +msgid "Save" +msgstr "Gravar" + +msgid "Popup closing…" +msgstr "Encerramento de popup…" + +msgid "Search" +msgstr "Pesquisar" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "%(counter)s resultado" +msgstr[1] "%(counter)s resultados" +msgstr[2] "%(counter)s resultados" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "%(full_result_count)s no total" + +msgid "Save as new" +msgstr "Gravar como novo" + +msgid "Save and add another" +msgstr "Gravar e adicionar outro" + +msgid "Save and continue editing" +msgstr "Gravar e continuar a editar" + +msgid "Save and view" +msgstr "Gravar e ver" + +msgid "Close" +msgstr "Fechar" + +#, python-format +msgid "Change selected %(model)s" +msgstr "Alterar %(model)s selecionado." + +#, python-format +msgid "Add another %(model)s" +msgstr "Adicionar outro %(model)s" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "Remover %(model)s seleccionado" + +#, python-format +msgid "View selected %(model)s" +msgstr "Vista selecionada %(model)s" + +msgid "Thanks for spending some quality time with the web site today." +msgstr "Obrigado por passar algum tempo de qualidade com a página Web hoje." + +msgid "Log in again" +msgstr "Entrar novamente" + +msgid "Password change" +msgstr "Modificação da palavra-passe" + +msgid "Your password was changed." +msgstr "A sua palavra-passe foi modificada." + +msgid "" +"Please enter your old password, for security’s sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" +"Por razões de segurança, introduza a sua palavra-passe antiga e, em seguida, " +"introduza a sua nova palavra-passe duas vezes para podermos verificar se a " +"digitou corretamente." + +msgid "Change my password" +msgstr "Modificar a minha palavra-passe" + +msgid "Password reset" +msgstr "Palavra-passe de reinicialização" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "A sua palavra-passe foi atribuída. Pode entrar agora." + +msgid "Password reset confirmation" +msgstr "Confirmação da reinicialização da palavra-passe" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" +"Por favor, introduza a sua nova palavra-passe duas vezes para verificarmos " +"se está correcta." + +msgid "New password:" +msgstr "Nova palavra-passe:" + +msgid "Confirm password:" +msgstr "Confirmação da palavra-passe:" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"O endereço de reinicialização da palavra-passe é inválido, possivelmente " +"porque já foi usado. Por favor requisite uma nova reinicialização da palavra-" +"passe." + +msgid "" +"We’ve emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" +"Enviámos-lhe um e-mail com instruções para definir a sua palavra-passe, caso " +"exista uma conta com o e-mail que introduziu. Deverá recebê-las em breve." + +msgid "" +"If you don’t receive an email, please make sure you’ve entered the address " +"you registered with, and check your spam folder." +msgstr "" +"Se não receber uma mensagem de correio eletrónico, certifique-se de que " +"introduziu o endereço com que se registou e verifique a sua pasta de spam." + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" +"Está a receber este email porque pediu para redefinir a palavra-chave para o " +"seu utilizador no site %(site_name)s." + +msgid "Please go to the following page and choose a new password:" +msgstr "Por favor siga a seguinte página e escolha a sua nova palavra-passe:" + +msgid "Your username, in case you’ve forgotten:" +msgstr "Seu nome de utilizador, caso se tenha esquecido:" + +msgid "Thanks for using our site!" +msgstr "Obrigado pela sua visita ao nosso site!" + +#, python-format +msgid "The %(site_name)s team" +msgstr "A equipa do %(site_name)s" + +msgid "" +"Forgotten your password? Enter your email address below, and we’ll email " +"instructions for setting a new one." +msgstr "" +"Esqueceu-se da sua palavra-passe? Introduza o seu endereço de correio " +"eletrónico abaixo e enviar-lhe-emos instruções para definir uma nova palavra-" +"passe." + +msgid "Email address:" +msgstr "Endereço de email:" + +msgid "Reset my password" +msgstr "Reinicializar a minha palavra-passe" + +msgid "Select all objects on this page for an action" +msgstr "Marque todos os itens nesta página para executar uma operação" + +msgid "All dates" +msgstr "Todas as datas" + +#, python-format +msgid "Select %s" +msgstr "Selecionar %s" + +#, python-format +msgid "Select %s to change" +msgstr "Selecione %s para modificar" + +#, python-format +msgid "Select %s to view" +msgstr "Selecione %s para ver" + +msgid "Date:" +msgstr "Data:" + +msgid "Time:" +msgstr "Hora:" + +msgid "Lookup" +msgstr "Procurar" + +msgid "Currently:" +msgstr "Atualmente:" + +msgid "Change:" +msgstr "Modificar:" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/pt/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/pt/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..3473883d4bd4243a7ce35ee1a526721a6f2b21db GIT binary patch literal 5392 zcmc(jZ-`w-6~M>(taXjG*3|#jY1+h%&3pSN&7Zz>lWej{leC*nvTHR6g?aDJzIW?= zcV6$G-E55cRzGN=wHid|mzZKKSSpA{k%G7)Qm~*Osz_)t7(WOt=!c35#oxJi-tOCN zOacYHdFTG_nVCCx=FFKhXY-N2bAxu!6|<74yEpd52IhaxwPAk z_m|uQ#ZCvkJ_Tu_9)e;=>lypF2InN;_Aftiv|Q z)YUGpKj1kHWjtT-G*H&L1!di1$P%a&ioc(R(*NV|GCTt>!7qKFEPwdcvcDFT?{++M zDDQvS>tBP?&o{jOwC6MMNy@(uABSTsg3R+pDC7A(lzuPz@;^iIufKV{%3{cT>M(=5 zq4@icJbwzMpBKFT3(sG9zUcXq=kGjU_WYygE1s7;|Kj;q&(}Tw?)ir2zdYZBxQV&} zrxI2?Z}hy$bHH$R%^sh^(c=Il1mBQN%-e6hE)}GQwlw zA6`|MzgVwN`hvUR9SH7K#MCWtCn9Tu>5DZ0h3#b@+=nnlwHFcpS%>ULBo@l`X=FQc z5W#f{Uy%Lx03z4D$X&=dazAn>atPUg3?Wy$a7i_c$i9|XvmTK>B7V?+)lp>c)%pr$ z5A8#4MbmXnM4PrXfmk=S$(&8JOs;n2woK&u8|#K`hjDOS-CnurTxo;DZeC3_Gbi>q zR+!C0tf!_;mM1dBY1_@p7pB|1F`X9^pJ|7w=9jgtj>436nAN6l`D=weI%c7_VyWv` z-B|EG7RD`kwWGth=%V3HFt5nXYs1v2iFH$!)VI^?N;g`Eg%cVzY&LIcBVW(vo#u6$ z*3^{-wd4iMBl14-Hb+#N?3yFWlT@rYSXomVvw~4qlrI^m!qZYs$HiG&7jdh?eRX*e$tnc2 zRTaI^QQ=`#RWF!Scvw~CV@U+v%hS4DOZ&Cma)IEZw=Lv z#680KR6Q6}AF@e`i`I4U2>$H`j@hnDvg%~o3WMsNyp>jGTwMP%wdG%}e>>iTdVJB_)+lls26Bi!BUaJbc) zuCsHK^fFTAHoA%17P)QXHoBRP;#O{2wmM@?r>>7MC>+YBRu8tbtXm%%GTm-1lP`s{ z_JnjdR8FCX$oDYR&4xA(Odg!vw>;UA+VH?$+}Fm8mdH`pnLUvWbt4nTJ7lXTsm;bd zJF~yKeYu@{Yt|;!eR0zT#M8Ro-Uzd$k=AuL8#of>iHWNFUD8SGI_?%~I<|R-E+5AR zV?8#ehxMsbx_BDdsCS{#R^K7z8#eH?UXO@1hlk6yyYvVRMt2M>r4s?CV}Gi_vY5bK zqdL82{i=+lQDh`7!jn@IVcK=^;&XFW@&%uhu#5JkO&7H}_{s-UCMKp&J>ZglwY{v$ zS?&Ut`o>}4e1`I9ZgtlrMqA%|*-pDuk^&~5cZ{C1CyR7tsd0H4`96KyvIBZv`Pzg% z$-Yh;=?fW!4dscWB4I+)ID)CpQf4^R^C+W?pi{IV%CwziGTia$#q)xYn+;7hb|DGb zv~9^g^&L>*szGQZTQPM##i5<+**tY*Hp$}IBy>zMTRdClI!xHmIL=s0&5@qi$Sj^; zJm<7=MV7)mk|OiDp1#P1{$HKtY}2dG5=*DoH_2;s#U%gNeaVS{zl^uUk*D%37p=@; zdg))!ucsH!He_E;TS@$AHpyNRC!25`0*J%$Gou%uWz$GzV#Kw@!I$=0NJeqQ1r}df z-U}we#nMe>0w_B_4qO!nkBx4c@B~iO0C-T5`AMx*5zvfY*W0e^G@*|i+wirVTk#@^ z-<1cnyo;8H)7x!tXEfew|7|cwa}v7VRyx3urN%oZZZDowGg#z&uVx}_vGX)395XB} zPy`Q2{xJ5{jH{0F2g=eXrZ^Bf^xe^&JTNg|NHwRS<{%;`OmvKqo2JtRODUkN&@=%l zrCy>^xnVbnVN)^em3!hZ8QIoda!vkR!tO*J2^~s2M!bW8g)&PSpc-!^;%_vq g5kV-DKqO&EVh{mlPMlF(O-&d7Ce%^>|L>^!53US~1ONa4 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/pt/LC_MESSAGES/djangojs.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/pt/LC_MESSAGES/djangojs.po new file mode 100644 index 0000000000..7b37cadada --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/pt/LC_MESSAGES/djangojs.po @@ -0,0 +1,331 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Jannis Leidel , 2011 +# Nuno Mariz , 2011-2012,2015,2017,2023 +# 12574c6d66324e145c1d19e02acecb73_84badd8 <4e8d94859927eab3b50486d21249c068_5346>, 2011 +# Raúl Pedro Fernandes Santos, 2014 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-09-18 15:04-0300\n" +"PO-Revision-Date: 2023-12-04 07:59+0000\n" +"Last-Translator: Nuno Mariz , 2011-2012,2015,2017,2023\n" +"Language-Team: Portuguese (http://app.transifex.com/django/django/language/" +"pt/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: pt\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, javascript-format +msgid "Available %s" +msgstr "Disponível %s" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" +"Esta é a lista de %s disponíveis. Poderá escolher alguns, selecionando-os na " +"caixa abaixo e clicando na seta \"Escolher\" entre as duas caixas." + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "Digite nesta caixa para filtrar a lista de %s disponíveis." + +msgid "Filter" +msgstr "Filtrar" + +msgid "Choose all" +msgstr "Escolher todos" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "Clique para escolher todos os %s de uma vez." + +msgid "Choose" +msgstr "Escolher" + +msgid "Remove" +msgstr "Remover" + +#, javascript-format +msgid "Chosen %s" +msgstr "Escolhido %s" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" +"Esta é a lista de %s escolhidos. Poderá remover alguns, selecionando-os na " +"caixa abaixo e clicando na seta \"Remover\" entre as duas caixas." + +#, javascript-format +msgid "Type into this box to filter down the list of selected %s." +msgstr "" + +msgid "Remove all" +msgstr "Remover todos" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "Clique para remover todos os %s escolhidos de uma vez." + +#, javascript-format +msgid "%s selected option not visible" +msgid_plural "%s selected options not visible" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "%(sel)s de %(cnt)s selecionado" +msgstr[1] "%(sel)s de %(cnt)s selecionados" +msgstr[2] "%(sel)s de %(cnt)s selecionados" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" +"Tem mudanças por guardar nos campos individuais. Se usar uma ação, as suas " +"mudanças por guardar serão perdidas." + +msgid "" +"You have selected an action, but you haven’t saved your changes to " +"individual fields yet. Please click OK to save. You’ll need to re-run the " +"action." +msgstr "" + +msgid "" +"You have selected an action, and you haven’t made any changes on individual " +"fields. You’re probably looking for the Go button rather than the Save " +"button." +msgstr "" + +msgid "Now" +msgstr "Agora" + +msgid "Midnight" +msgstr "Meia-noite" + +msgid "6 a.m." +msgstr "6 a.m." + +msgid "Noon" +msgstr "Meio-dia" + +msgid "6 p.m." +msgstr "6 p.m." + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "" +"Nota: O seu fuso horário está %s hora adiantado em relação ao servidor." +msgstr[1] "" +"Nota: O seu fuso horário está %s horas adiantado em relação ao servidor." +msgstr[2] "" +"Nota: O seu fuso horário está %s horas adiantado em relação ao servidor." + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "" +"Nota: O use fuso horário está %s hora atrasado em relação ao servidor." +msgstr[1] "" +"Nota: O use fuso horário está %s horas atrasado em relação ao servidor." +msgstr[2] "" +"Nota: O use fuso horário está %s horas atrasado em relação ao servidor." + +msgid "Choose a Time" +msgstr "Escolha a Hora" + +msgid "Choose a time" +msgstr "Escolha a hora" + +msgid "Cancel" +msgstr "Cancelar" + +msgid "Today" +msgstr "Hoje" + +msgid "Choose a Date" +msgstr "Escolha a Data" + +msgid "Yesterday" +msgstr "Ontem" + +msgid "Tomorrow" +msgstr "Amanhã" + +msgid "January" +msgstr "Janeiro" + +msgid "February" +msgstr "Fevereiro" + +msgid "March" +msgstr "Março" + +msgid "April" +msgstr "Abril" + +msgid "May" +msgstr "Maio" + +msgid "June" +msgstr "Junho" + +msgid "July" +msgstr "Julho" + +msgid "August" +msgstr "Agosto" + +msgid "September" +msgstr "Setembro" + +msgid "October" +msgstr "Outubro" + +msgid "November" +msgstr "Novembro" + +msgid "December" +msgstr "Dezembro" + +msgctxt "abbrev. month January" +msgid "Jan" +msgstr "Jan" + +msgctxt "abbrev. month February" +msgid "Feb" +msgstr "Fev" + +msgctxt "abbrev. month March" +msgid "Mar" +msgstr "Mar" + +msgctxt "abbrev. month April" +msgid "Apr" +msgstr "Abr" + +msgctxt "abbrev. month May" +msgid "May" +msgstr "Mai" + +msgctxt "abbrev. month June" +msgid "Jun" +msgstr "Jun" + +msgctxt "abbrev. month July" +msgid "Jul" +msgstr "Jul" + +msgctxt "abbrev. month August" +msgid "Aug" +msgstr "Ago" + +msgctxt "abbrev. month September" +msgid "Sep" +msgstr "Set" + +msgctxt "abbrev. month October" +msgid "Oct" +msgstr "Out" + +msgctxt "abbrev. month November" +msgid "Nov" +msgstr "Nov" + +msgctxt "abbrev. month December" +msgid "Dec" +msgstr "Dez" + +msgid "Sunday" +msgstr "Domingo" + +msgid "Monday" +msgstr "Segunda-feira" + +msgid "Tuesday" +msgstr "Terça-feira" + +msgid "Wednesday" +msgstr "Quarta-feira" + +msgid "Thursday" +msgstr "Quinta-feira" + +msgid "Friday" +msgstr "Sexta-feira" + +msgid "Saturday" +msgstr "Sábado" + +msgctxt "abbrev. day Sunday" +msgid "Sun" +msgstr "Dom" + +msgctxt "abbrev. day Monday" +msgid "Mon" +msgstr "Seg" + +msgctxt "abbrev. day Tuesday" +msgid "Tue" +msgstr "Ter" + +msgctxt "abbrev. day Wednesday" +msgid "Wed" +msgstr "Qua" + +msgctxt "abbrev. day Thursday" +msgid "Thur" +msgstr "Qui" + +msgctxt "abbrev. day Friday" +msgid "Fri" +msgstr "Sex" + +msgctxt "abbrev. day Saturday" +msgid "Sat" +msgstr "Sáb" + +msgctxt "one letter Sunday" +msgid "S" +msgstr "D" + +msgctxt "one letter Monday" +msgid "M" +msgstr "S" + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "T" + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "Q" + +msgctxt "one letter Thursday" +msgid "T" +msgstr "Q" + +msgctxt "one letter Friday" +msgid "F" +msgstr "S" + +msgctxt "one letter Saturday" +msgid "S" +msgstr "S" + +msgid "Show" +msgstr "Mostrar" + +msgid "Hide" +msgstr "Ocultar" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/pt_BR/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/pt_BR/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..1a2a3b986c2cc9f34812fa89974bff0e93448228 GIT binary patch literal 18810 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 jUrh4qF!wh)U(}y%^$+}IqF;-, 2014 +# Bruce de Sá , 2019 +# bruno.devpod , 2014 +# Carlos Cadu “Cadu” Leite , 2019 +# Carlos Cadu “Cadu” Leite , 2019 +# Filipe Cifali , 2016 +# dudanogueira , 2012 +# Eduardo Felipe Castegnaro , 2024 +# Elyézer Rezende , 2013 +# Fábio C. Barrionuevo da Luz , 2015 +# Fabio Cerqueira , 2019 +# Francisco Petry Rauber , 2016 +# Gabriel da Mota , 2023 +# Gladson , 2013 +# Guilherme Ferreira , 2017 +# fa9e10542e458baef0599ae856e43651_13d2225, 2012-2013 +# Jannis Leidel , 2011 +# João Paulo Andrade , 2018 +# Jonas Rodrigues, 2023 +# Lucas Infante , 2015 +# Luiz Boaretto , 2017 +# Marssal Jr. , 2022 +# Marcelo Moro Brondani , 2018 +# Marco Rougeth , 2015 +# Otávio Reis , 2018 +# Raysa Dutra, 2016 +# R.J Lelis , 2019 +# Samuel Nogueira Bacelar , 2020 +# Sergio Garcia , 2015 +# Tomaz Marcelino Cunha Neto , 2022 +# Vinícius Damaceno , 2019 +# Vinícius Muniz de Melo , 2019 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-05-22 11:46-0300\n" +"PO-Revision-Date: 2024-08-07 07:05+0000\n" +"Last-Translator: Eduardo Felipe Castegnaro , 2024\n" +"Language-Team: Portuguese (Brazil) (http://app.transifex.com/django/django/" +"language/pt_BR/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: pt_BR\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "Remover %(verbose_name_plural)s selecionados" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "Removido %(count)d %(items)s com sucesso." + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "Não é possível remover %(name)s " + +msgid "Are you sure?" +msgstr "Tem certeza?" + +msgid "Administration" +msgstr "Administração" + +msgid "All" +msgstr "Todos" + +msgid "Yes" +msgstr "Sim" + +msgid "No" +msgstr "Não" + +msgid "Unknown" +msgstr "Desconhecido" + +msgid "Any date" +msgstr "Qualquer data" + +msgid "Today" +msgstr "Hoje" + +msgid "Past 7 days" +msgstr "Últimos 7 dias" + +msgid "This month" +msgstr "Este mês" + +msgid "This year" +msgstr "Este ano" + +msgid "No date" +msgstr "Sem data" + +msgid "Has date" +msgstr "Tem data" + +msgid "Empty" +msgstr "Vazio" + +msgid "Not empty" +msgstr "Não está vazio" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" +"Por favor, insira um %(username)s e senha corretos para uma conta de equipe. " +"Note que ambos campos são sensíveis a maiúsculas e minúsculas." + +msgid "Action:" +msgstr "Ação:" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "Adicionar outro(a) %(verbose_name)s" + +msgid "Remove" +msgstr "Remover" + +msgid "Addition" +msgstr "Adição" + +msgid "Change" +msgstr "Modificar" + +msgid "Deletion" +msgstr "Remoção" + +msgid "action time" +msgstr "hora da ação" + +msgid "user" +msgstr "usuário" + +msgid "content type" +msgstr "tipo de conteúdo" + +msgid "object id" +msgstr "id do objeto" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/library/functions.html#repr) +msgid "object repr" +msgstr "repr do objeto" + +msgid "action flag" +msgstr "flag de ação" + +msgid "change message" +msgstr "modificar mensagem" + +msgid "log entry" +msgstr "entrada de log" + +msgid "log entries" +msgstr "entradas de log" + +#, python-format +msgid "Added “%(object)s”." +msgstr "Adicionado “%(object)s”." + +#, python-format +msgid "Changed “%(object)s” — %(changes)s" +msgstr "Alterado “%(object)s” — %(changes)s" + +#, python-format +msgid "Deleted “%(object)s.”" +msgstr "Removido “%(object)s.”" + +msgid "LogEntry Object" +msgstr "Objeto LogEntry" + +#, python-brace-format +msgid "Added {name} “{object}”." +msgstr "Adicionado {name} “{object}”." + +msgid "Added." +msgstr "Adicionado." + +msgid "and" +msgstr "e" + +#, python-brace-format +msgid "Changed {fields} for {name} “{object}”." +msgstr "Alterado {fields} para {name} “{object}”." + +#, python-brace-format +msgid "Changed {fields}." +msgstr "Alterado {fields}." + +#, python-brace-format +msgid "Deleted {name} “{object}”." +msgstr "Removido {name} “{object}”." + +msgid "No fields changed." +msgstr "Nenhum campo modificado." + +msgid "None" +msgstr "Nenhum" + +msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." +msgstr "Pressione “Control”, ou “Command” no Mac, para selecionar mais de um." + +msgid "Select this object for an action - {}" +msgstr "Selecione esse objeto para uma ação - {}" + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully." +msgstr "O {name} “{obj}” foi adicionado com sucesso." + +msgid "You may edit it again below." +msgstr "Você pode editá-lo novamente abaixo." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was added successfully. You may add another {name} below." +msgstr "" +"O {name} “{obj}” foi adicionado com sucesso. Você pode adicionar outro " +"{name} abaixo." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may edit it again below." +msgstr "" +"O {name} “{obj}” foi alterado com sucesso. Você pode alterá-lo novamente " +"abaixo." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may add another {name} " +"below." +msgstr "" +"O {name} “{obj}” foi alterado com sucesso. Você talvez adicione outro " +"{name} abaixo." + +#, python-brace-format +msgid "The {name} “{obj}” was changed successfully." +msgstr "O {name} “{obj}” foi alterado com sucesso." + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" +"Os itens devem ser selecionados em ordem a fim de executar ações sobre eles. " +"Nenhum item foi modificado." + +msgid "No action selected." +msgstr "Nenhuma ação selecionada." + +#, python-format +msgid "The %(name)s “%(obj)s” was deleted successfully." +msgstr "O %(name)s “%(obj)s” foi removido com sucesso." + +#, python-format +msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" +msgstr "O %(name)s com ID “%(key)s” não existe. Talvez tenha sido removido." + +#, python-format +msgid "Add %s" +msgstr "Adicionar %s" + +#, python-format +msgid "Change %s" +msgstr "Modificar %s" + +#, python-format +msgid "View %s" +msgstr "Visualizar %s" + +msgid "Database error" +msgstr "Erro no banco de dados" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "%(count)s %(name)s modificado com sucesso." +msgstr[1] "%(count)s %(name)s modificados com sucesso." +msgstr[2] "%(count)s %(name)s modificados com sucesso." + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "%(total_count)s selecionado" +msgstr[1] "Todos %(total_count)s selecionados" +msgstr[2] "Todos %(total_count)s selecionados" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "0 de %(cnt)s selecionados" + +#, python-format +msgid "Change history: %s" +msgstr "Histórico de modificações: %s" + +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "%(class_name)s %(instance)s" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" +"Remover o %(class_name)s %(instance)s exigiria remover os seguintes objetos " +"protegidos relacionados: %(related_objects)s" + +msgid "Django site admin" +msgstr "Site de administração do Django" + +msgid "Django administration" +msgstr "Administração do Django" + +msgid "Site administration" +msgstr "Administração do Site" + +msgid "Log in" +msgstr "Acessar" + +#, python-format +msgid "%(app)s administration" +msgstr "%(app)s administração" + +msgid "Page not found" +msgstr "Página não encontrada" + +msgid "We’re sorry, but the requested page could not be found." +msgstr "Lamentamos, mas a página requisitada não pode ser encontrada." + +msgid "Home" +msgstr "Início" + +msgid "Server error" +msgstr "Erro no servidor" + +msgid "Server error (500)" +msgstr "Erro no servidor (500)" + +msgid "Server Error (500)" +msgstr "Erro no Servidor (500)" + +msgid "" +"There’s been an error. It’s been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" +"Ocorreu um erro. Este foi reportado para os administradores do site via " +"email e deve ser corrigido logo. Obirgado por sua paciência." + +msgid "Run the selected action" +msgstr "Executar ação selecionada" + +msgid "Go" +msgstr "Ir" + +msgid "Click here to select the objects across all pages" +msgstr "Clique aqui para selecionar os objetos de todas as páginas" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "Selecionar todos %(total_count)s %(module_name)s" + +msgid "Clear selection" +msgstr "Limpar seleção" + +msgid "Breadcrumbs" +msgstr "Marcas de navegação" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "Modelos na aplicação %(name)s" + +msgid "Add" +msgstr "Adicionar" + +msgid "View" +msgstr "Visualizar" + +msgid "You don’t have permission to view or edit anything." +msgstr "Você não tem permissão para ver ou editar nada." + +msgid "" +"First, enter a username and password. Then, you’ll be able to edit more user " +"options." +msgstr "" +"Primeiro, informe um nome de usuário e senha. Então, você poderá editar " +"outras opções do usuário." + +msgid "Enter a username and password." +msgstr "Digite um nome de usuário e senha." + +msgid "Change password" +msgstr "Alterar senha" + +msgid "Set password" +msgstr "Definir senha" + +msgid "Please correct the error below." +msgid_plural "Please correct the errors below." +msgstr[0] "Por favor corrija o erro abaixo." +msgstr[1] "Por favor corrija os erros abaixo." +msgstr[2] "Por favor corrija os erros abaixo." + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "Informe uma nova senha para o usuário %(username)s." + +msgid "" +"This action will enable password-based authentication for " +"this user." +msgstr "" +"Esta ação irá habilitarautenticação baseada em senha para " +"este usuário." + +msgid "Disable password-based authentication" +msgstr "Desabilitar autenticação baseada em senha" + +msgid "Enable password-based authentication" +msgstr "Habilitar autenticação baseada em senha" + +msgid "Skip to main content" +msgstr "Ir para o conteúdo principal" + +msgid "Welcome," +msgstr "Bem-vindo(a)," + +msgid "View site" +msgstr "Ver o site" + +msgid "Documentation" +msgstr "Documentação" + +msgid "Log out" +msgstr "Encerrar sessão" + +#, python-format +msgid "Add %(name)s" +msgstr "Adicionar %(name)s" + +msgid "History" +msgstr "Histórico" + +msgid "View on site" +msgstr "Ver no site" + +msgid "Filter" +msgstr "Filtro" + +msgid "Hide counts" +msgstr "Esconder contagem" + +msgid "Show counts" +msgstr "Mostrar contagem" + +msgid "Clear all filters" +msgstr "Limpar todos os filtros" + +msgid "Remove from sorting" +msgstr "Remover da ordenação" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "Prioridade da ordenação: %(priority_number)s" + +msgid "Toggle sorting" +msgstr "Alternar ordenção" + +msgid "Toggle theme (current theme: auto)" +msgstr "Alternar tema (tema atual: automático)" + +msgid "Toggle theme (current theme: light)" +msgstr "Alternar tema (tema atual: claro)" + +msgid "Toggle theme (current theme: dark)" +msgstr "Alternar tema (tema atual: escuro)" + +msgid "Delete" +msgstr "Remover" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" +"A remoção de '%(object_name)s' %(escaped_object)s pode resultar na remoção " +"de objetos relacionados, mas sua conta não tem a permissão para remoção dos " +"seguintes tipos de objetos:" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" +"Remover o %(object_name)s ' %(escaped_object)s ' exigiria remover os " +"seguintes objetos protegidos relacionados:" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" +"Você tem certeza que quer remover %(object_name)s \"%(escaped_object)s\"? " +"Todos os seguintes itens relacionados serão removidos:" + +msgid "Objects" +msgstr "Objetos" + +msgid "Yes, I’m sure" +msgstr "Sim, eu tenho certeza" + +msgid "No, take me back" +msgstr "Não, me leve de volta" + +msgid "Delete multiple objects" +msgstr "Remover múltiplos objetos" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" +"Remover o %(objects_name)s selecionado pode resultar na remoção de objetos " +"relacionados, mas sua conta não tem permissão para remover os seguintes " +"tipos de objetos:" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" +"Remover o %(objects_name)s selecionado exigiria remover os seguintes objetos " +"relacionados protegidos:" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" +"Tem certeza de que deseja remover o %(objects_name)s selecionado? Todos os " +"seguintes objetos e seus itens relacionados serão removidos:" + +msgid "Delete?" +msgstr "Remover?" + +#, python-format +msgid " By %(filter_title)s " +msgstr "Por %(filter_title)s " + +msgid "Summary" +msgstr "Resumo" + +msgid "Recent actions" +msgstr "Ações recentes" + +msgid "My actions" +msgstr "Minhas Ações" + +msgid "None available" +msgstr "Nenhum disponível" + +msgid "Added:" +msgstr "Adicionado:" + +msgid "Changed:" +msgstr "Alterado:" + +msgid "Deleted:" +msgstr "Removido:" + +msgid "Unknown content" +msgstr "Conteúdo desconhecido" + +msgid "" +"Something’s wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" +"Alguma coisa está errada com sua estalação do banco de dados. Certifique-se " +"que as tabelas apropriadas foram criadas, e certifique-se que o banco de " +"dados pode ser acessado pelo usuário apropriado." + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" +"Você está autenticado como %(username)s, mas não está autorizado a acessar " +"esta página. Você gostaria de realizar login com uma conta diferente?" + +msgid "Forgotten your password or username?" +msgstr "Esqueceu sua senha ou nome de usuário?" + +msgid "Toggle navigation" +msgstr "Alternar navegação" + +msgid "Sidebar" +msgstr "Barra Lateral" + +msgid "Start typing to filter…" +msgstr "Comece a digitar para filtrar…" + +msgid "Filter navigation items" +msgstr "Filtrar itens de navegação" + +msgid "Date/time" +msgstr "Data/hora" + +msgid "User" +msgstr "Usuário" + +msgid "Action" +msgstr "Ação" + +msgid "entry" +msgid_plural "entries" +msgstr[0] "entrada" +msgstr[1] "entradas" +msgstr[2] "entradas" + +msgid "" +"This object doesn’t have a change history. It probably wasn’t added via this " +"admin site." +msgstr "" +"Este objeto não tem histórico de alterações. Provavelmente não adicionado " +"por este site de administração." + +msgid "Show all" +msgstr "Mostrar tudo" + +msgid "Save" +msgstr "Salvar" + +msgid "Popup closing…" +msgstr "Popup fechando…" + +msgid "Search" +msgstr "Pesquisar" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "%(counter)s resultado" +msgstr[1] "%(counter)s resultados" +msgstr[2] "%(counter)s resultados" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "%(full_result_count)s total" + +msgid "Save as new" +msgstr "Salvar como novo" + +msgid "Save and add another" +msgstr "Salvar e adicionar outro(a)" + +msgid "Save and continue editing" +msgstr "Salvar e continuar editando" + +msgid "Save and view" +msgstr "Salvar e visualizar" + +msgid "Close" +msgstr "Fechar" + +#, python-format +msgid "Change selected %(model)s" +msgstr "Alterar %(model)s selecionado" + +#, python-format +msgid "Add another %(model)s" +msgstr "Adicionar outro %(model)s" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "Remover %(model)s selecionado" + +#, python-format +msgid "View selected %(model)s" +msgstr "Visualizar %(model)s selecionados" + +msgid "Thanks for spending some quality time with the web site today." +msgstr "Obrigado por passar algum tempo de qualidade com o site hoje." + +msgid "Log in again" +msgstr "Acessar novamente" + +msgid "Password change" +msgstr "Alterar senha" + +msgid "Your password was changed." +msgstr "Sua senha foi alterada." + +msgid "" +"Please enter your old password, for security’s sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" +"Informe sua senha antiga por favor, por motivos de segurança, e então " +"informe sua nova senha duas vezes para que possamos verificar se você " +"digitou tudo corretamente." + +msgid "Change my password" +msgstr "Alterar minha senha" + +msgid "Password reset" +msgstr "Recuperar senha" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "Sua senha foi definida. Você pode prosseguir e se autenticar agora." + +msgid "Password reset confirmation" +msgstr "Confirmação de recuperação de senha" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" +"Por favor, informe sua nova senha duas vezes para que possamos verificar se " +"você a digitou corretamente." + +msgid "New password:" +msgstr "Nova senha:" + +msgid "Confirm password:" +msgstr "Confirme a senha:" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"O link para a recuperação de senha era inválido, possivelmente porque já foi " +"utilizado. Por favor, solicite uma nova recuperação de senha." + +msgid "" +"We’ve emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" +"Nos te enviamos um email com instruções para configurar sua senha, se uma " +"conta existe com o email fornecido. Você receberá a mensagem em breve." + +msgid "" +"If you don’t receive an email, please make sure you’ve entered the address " +"you registered with, and check your spam folder." +msgstr "" +"Se você não recebeu um email, por favor certifique-se que você forneceu o " +"endereço que você está cadastrado, e verifique sua pasta de spam." + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" +"Você está recebendo este email porque solicitou a redefinição da senha da " +"sua conta em %(site_name)s." + +msgid "Please go to the following page and choose a new password:" +msgstr "Por favor, acesse a seguinte página e escolha uma nova senha:" + +msgid "Your username, in case you’ve forgotten:" +msgstr "Seu nome de usuário, caso tenha esquecido:" + +msgid "Thanks for using our site!" +msgstr "Obrigado por usar nosso site!" + +#, python-format +msgid "The %(site_name)s team" +msgstr "Equipe %(site_name)s" + +msgid "" +"Forgotten your password? Enter your email address below, and we’ll email " +"instructions for setting a new one." +msgstr "" +"Esqueceu sua senha? Forneça seu endereço de email abaixo, e nos te " +"enviaremos um email com instruções para configurar uma nova." + +msgid "Email address:" +msgstr "Endereço de email:" + +msgid "Reset my password" +msgstr "Reinicializar minha senha" + +msgid "Select all objects on this page for an action" +msgstr "Selecione todos os objetos nessa página para uma ação" + +msgid "All dates" +msgstr "Todas as datas" + +#, python-format +msgid "Select %s" +msgstr "Selecione %s" + +#, python-format +msgid "Select %s to change" +msgstr "Selecione %s para modificar" + +#, python-format +msgid "Select %s to view" +msgstr "Selecione %s para visualizar" + +msgid "Date:" +msgstr "Data:" + +msgid "Time:" +msgstr "Hora:" + +msgid "Lookup" +msgstr "Procurar" + +msgid "Currently:" +msgstr "Atualmente:" + +msgid "Change:" +msgstr "Alterar:" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/pt_BR/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/pt_BR/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..e8fe18a5f0c3a344e547219ee1510917d845d0ef GIT binary patch literal 6329 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, 2014 +# andrewsmedina , 2016 +# Eduardo Cereto Carvalho, 2011 +# Eduardo Felipe Castegnaro , 2024 +# Gabriel da Mota , 2023 +# fa9e10542e458baef0599ae856e43651_13d2225, 2012 +# Jannis Leidel , 2011 +# Jonas Rodrigues, 2023 +# Lucas Infante , 2015 +# Marssal Jr. , 2022 +# Rafael Fontenelle , 2021 +# Renata Barbosa Almeida , 2016 +# Samuel Nogueira Bacelar , 2020 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-05-22 11:46-0300\n" +"PO-Revision-Date: 2024-08-07 07:59+0000\n" +"Last-Translator: Eduardo Felipe Castegnaro , 2024\n" +"Language-Team: Portuguese (Brazil) (http://app.transifex.com/django/django/" +"language/pt_BR/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: pt_BR\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#, javascript-format +msgid "Available %s" +msgstr "%s disponíveis" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" +"Esta é a lista de %s disponíveis. Você pode escolhê-los(as) selecionando-" +"os(as) abaixo e clicando na seta \"Escolher\" entre as duas caixas." + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "Digite nessa caixa para filtrar a lista de %s disponíveis." + +msgid "Filter" +msgstr "Filtro" + +msgid "Choose all" +msgstr "Escolher todos" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "Clique para escolher todos os %s de uma só vez" + +msgid "Choose" +msgstr "Escolher" + +msgid "Remove" +msgstr "Remover" + +#, javascript-format +msgid "Chosen %s" +msgstr "%s escolhido(s)" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" +"Esta é a lista de %s disponíveis. Você pode removê-los(as) selecionando-" +"os(as) abaixo e clicando na seta \"Remover\" entre as duas caixas." + +#, javascript-format +msgid "Type into this box to filter down the list of selected %s." +msgstr "Digite nesta caixa para filtrar a lista de selecionados %s." + +msgid "Remove all" +msgstr "Remover todos" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "Clique para remover de uma só vez todos os %s escolhidos." + +#, javascript-format +msgid "%s selected option not visible" +msgid_plural "%s selected options not visible" +msgstr[0] "%s opção selecionada não visível" +msgstr[1] "%s opções selecionadas não visíveis" +msgstr[2] "%s opções selecionadas não visíveis" + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "%(sel)s de %(cnt)s selecionado" +msgstr[1] "%(sel)s de %(cnt)s selecionados" +msgstr[2] "%(sel)s de %(cnt)s selecionados" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" +"Você tem alterações não salvas em campos editáveis individuais. Se você " +"executar uma ação suas alterações não salvas serão perdidas." + +msgid "" +"You have selected an action, but you haven’t saved your changes to " +"individual fields yet. Please click OK to save. You’ll need to re-run the " +"action." +msgstr "" +"Você selecionou uma ação, mas você ainda não salvou suas alterações nos " +"campos individuais. Por favor clique OK para salvar. você precisará de rodar " +"novamente a ação." + +msgid "" +"You have selected an action, and you haven’t made any changes on individual " +"fields. You’re probably looking for the Go button rather than the Save " +"button." +msgstr "" +"Você selecionou uma ação sem fazer mudanças nos campos individuais. Você " +"provavelmente está procurando pelo botão Ir ao invés do botão Salvar." + +msgid "Now" +msgstr "Agora" + +msgid "Midnight" +msgstr "Meia-noite" + +msgid "6 a.m." +msgstr "6 da manhã" + +msgid "Noon" +msgstr "Meio-dia" + +msgid "6 p.m." +msgstr "6 da tarde" + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "Nota: Você está %s hora à frente do horário do servidor." +msgstr[1] "Nota: Você está %s horas à frente do horário do servidor." +msgstr[2] "Nota: Você está %s horas à frente do horário do servidor." + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "Nota: Você está %s hora atrás do tempo do servidor." +msgstr[1] "Nota: Você está %s horas atrás do horário do servidor." +msgstr[2] "Nota: Você está %s horas atrás do horário do servidor." + +msgid "Choose a Time" +msgstr "Escolha um horário" + +msgid "Choose a time" +msgstr "Escolha uma hora" + +msgid "Cancel" +msgstr "Cancelar" + +msgid "Today" +msgstr "Hoje" + +msgid "Choose a Date" +msgstr "Escolha uma data" + +msgid "Yesterday" +msgstr "Ontem" + +msgid "Tomorrow" +msgstr "Amanhã" + +msgid "January" +msgstr "Janeiro" + +msgid "February" +msgstr "Fevereiro" + +msgid "March" +msgstr "Março" + +msgid "April" +msgstr "Abril" + +msgid "May" +msgstr "Maio" + +msgid "June" +msgstr "Junho" + +msgid "July" +msgstr "Julho" + +msgid "August" +msgstr "Agosto" + +msgid "September" +msgstr "Setembro" + +msgid "October" +msgstr "Outubro" + +msgid "November" +msgstr "Novembro" + +msgid "December" +msgstr "Dezembro" + +msgctxt "abbrev. month January" +msgid "Jan" +msgstr "Jan" + +msgctxt "abbrev. month February" +msgid "Feb" +msgstr "Fev" + +msgctxt "abbrev. month March" +msgid "Mar" +msgstr "Mar" + +msgctxt "abbrev. month April" +msgid "Apr" +msgstr "Abr" + +msgctxt "abbrev. month May" +msgid "May" +msgstr "Mai" + +msgctxt "abbrev. month June" +msgid "Jun" +msgstr "Jun" + +msgctxt "abbrev. month July" +msgid "Jul" +msgstr "Jul" + +msgctxt "abbrev. month August" +msgid "Aug" +msgstr "Ago" + +msgctxt "abbrev. month September" +msgid "Sep" +msgstr "Set" + +msgctxt "abbrev. month October" +msgid "Oct" +msgstr "Out" + +msgctxt "abbrev. month November" +msgid "Nov" +msgstr "Nov" + +msgctxt "abbrev. month December" +msgid "Dec" +msgstr "Dez" + +msgid "Sunday" +msgstr "Domingo" + +msgid "Monday" +msgstr "Segunda-feira" + +msgid "Tuesday" +msgstr "Terça-feira" + +msgid "Wednesday" +msgstr "Quarta-feira" + +msgid "Thursday" +msgstr "Quinta-feira" + +msgid "Friday" +msgstr "Sexta-feira" + +msgid "Saturday" +msgstr "Sábado" + +msgctxt "abbrev. day Sunday" +msgid "Sun" +msgstr "Dom" + +msgctxt "abbrev. day Monday" +msgid "Mon" +msgstr "Seg" + +msgctxt "abbrev. day Tuesday" +msgid "Tue" +msgstr "Ter" + +msgctxt "abbrev. day Wednesday" +msgid "Wed" +msgstr "Qua" + +msgctxt "abbrev. day Thursday" +msgid "Thur" +msgstr "Qui" + +msgctxt "abbrev. day Friday" +msgid "Fri" +msgstr "Sex" + +msgctxt "abbrev. day Saturday" +msgid "Sat" +msgstr "Sáb" + +msgctxt "one letter Sunday" +msgid "S" +msgstr "D" + +msgctxt "one letter Monday" +msgid "M" +msgstr "S" + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "T" + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "Q" + +msgctxt "one letter Thursday" +msgid "T" +msgstr "Q" + +msgctxt "one letter Friday" +msgid "F" +msgstr "S" + +msgctxt "one letter Saturday" +msgid "S" +msgstr "S" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ro/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ro/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..4fe6d2eed1597d05516df76cf68d539c6cc9b984 GIT binary patch literal 15157 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ro/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ro/LC_MESSAGES/django.po new file mode 100644 index 0000000000..f328477f0e --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ro/LC_MESSAGES/django.po @@ -0,0 +1,758 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Bogdan Mateescu, 2018-2019 +# Daniel Ursache-Dogariu, 2011,2022 +# Denis Darii , 2011,2014 +# Eugenol Man , 2020 +# Ionel Cristian Mărieș , 2012 +# Jannis Leidel , 2011 +# Mihai Fotea , 2020 +# Razvan Stefanescu , 2015-2017 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-01-17 02:13-0600\n" +"PO-Revision-Date: 2023-04-25 07:05+0000\n" +"Last-Translator: Daniel Ursache-Dogariu, 2011,2022\n" +"Language-Team: Romanian (http://www.transifex.com/django/django/language/" +"ro/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ro\n" +"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" +"2:1));\n" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "Elimină %(verbose_name_plural)s selectate" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "%(count)d %(items)s șterse cu succes." + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "Nu se poate șterge %(name)s" + +msgid "Are you sure?" +msgstr "Sigur?" + +msgid "Administration" +msgstr "Administrare" + +msgid "All" +msgstr "Toate" + +msgid "Yes" +msgstr "Da" + +msgid "No" +msgstr "Nu" + +msgid "Unknown" +msgstr "Necunoscut" + +msgid "Any date" +msgstr "Orice dată" + +msgid "Today" +msgstr "Astăzi" + +msgid "Past 7 days" +msgstr "Ultimele 7 zile" + +msgid "This month" +msgstr "Luna aceasta" + +msgid "This year" +msgstr "Anul acesta" + +msgid "No date" +msgstr "Fără dată" + +msgid "Has date" +msgstr "Are dată" + +msgid "Empty" +msgstr "Gol" + +msgid "Not empty" +msgstr "Nu este gol" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" +"Introduceți vă rog un %(username)s și parola corectă pentru un cont de " +"membru. De remarcat că ambele pot conține majuscule." + +msgid "Action:" +msgstr "Acțiune:" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "Adăugati încă un/o %(verbose_name)s" + +msgid "Remove" +msgstr "Elimină" + +msgid "Addition" +msgstr "Adăugare" + +msgid "Change" +msgstr "Schimbare" + +msgid "Deletion" +msgstr "Ștergere" + +msgid "action time" +msgstr "timp acțiune" + +msgid "user" +msgstr "utilizator" + +msgid "content type" +msgstr "tip de conținut" + +msgid "object id" +msgstr "id obiect" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/library/functions.html#repr) +msgid "object repr" +msgstr "repr obiect" + +msgid "action flag" +msgstr "marcaj acțiune" + +msgid "change message" +msgstr "mesaj schimbare" + +msgid "log entry" +msgstr "intrare jurnal" + +msgid "log entries" +msgstr "intrări jurnal" + +#, python-format +msgid "Added “%(object)s”." +msgstr "Adăugat %(object)s" + +#, python-format +msgid "Changed “%(object)s” — %(changes)s" +msgstr "Schimbat “%(object)s” — %(changes)s" + +#, python-format +msgid "Deleted “%(object)s.”" +msgstr "Șters “%(object)s.”" + +msgid "LogEntry Object" +msgstr "Obiect LogEntry" + +#, python-brace-format +msgid "Added {name} “{object}”." +msgstr "Adăugat {name} “{object}”." + +msgid "Added." +msgstr "Adăugat." + +msgid "and" +msgstr "și" + +#, python-brace-format +msgid "Changed {fields} for {name} “{object}”." +msgstr "{fields} schimbat pentru {name} “{object}”." + +#, python-brace-format +msgid "Changed {fields}." +msgstr "S-au schimbat {fields}." + +#, python-brace-format +msgid "Deleted {name} “{object}”." +msgstr "Șters {name} “{object}”." + +msgid "No fields changed." +msgstr "Niciun câmp modificat." + +msgid "None" +msgstr "Nimic" + +msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." +msgstr "" + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully." +msgstr "{name} \"{obj}\" a fost adăugat cu succes." + +msgid "You may edit it again below." +msgstr "Poți edita din nou mai jos." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was added successfully. You may add another {name} below." +msgstr "" +"{name} \"{obj}\" a fost adăugat cu succes. Poți adăuga alt {name} mai jos." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may edit it again below." +msgstr "" +"{name} \"{obj}\" a fost modificat cu succes. Poți să editezi în continuare " +"mai jos." + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully. You may edit it again below." +msgstr "" +"{name} \"{obj}\" a fost adăugat cu succes. Poți să editezi în continuare mai " +"jos." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may add another {name} " +"below." +msgstr "" +"{name} \"{obj}\" a fost modificat cu succes. Poți adăuga alt {name} mai jos." + +#, python-brace-format +msgid "The {name} “{obj}” was changed successfully." +msgstr "{name} \"{obj}\" a fost schimbat cu succes." + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" +"Itemii trebuie selectați pentru a putea îndeplini sarcini asupra lor. Niciun " +"item nu a fost modificat." + +msgid "No action selected." +msgstr "Nicio acțiune selectată." + +#, python-format +msgid "The %(name)s “%(obj)s” was deleted successfully." +msgstr "" + +#, python-format +msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" +msgstr "" + +#, python-format +msgid "Add %s" +msgstr "Adaugă %s" + +#, python-format +msgid "Change %s" +msgstr "Schimbă %s" + +#, python-format +msgid "View %s" +msgstr "Vizualizează %s" + +msgid "Database error" +msgstr "Eroare de bază de date" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "%(count)s %(name)s s-a modificat cu succes." +msgstr[1] "%(count)s %(name)s s-au modificat cu succes." +msgstr[2] "%(count)s de %(name)s s-au modificat cu succes." + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "%(total_count)s selectat(ă)" +msgstr[1] "Toate %(total_count)s selectate" +msgstr[2] "Toate %(total_count)s selectate" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "0 din %(cnt)s selectat" + +#, python-format +msgid "Change history: %s" +msgstr "Istoric schimbări: %s" + +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "%(class_name)s %(instance)s" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" +"Ștergerea %(class_name)s %(instance)s ar necesita ștergerea următoarelor " +"obiecte asociate protejate: %(related_objects)s" + +msgid "Django site admin" +msgstr "Administrare site Django" + +msgid "Django administration" +msgstr "Administrare Django" + +msgid "Site administration" +msgstr "Administrare site" + +msgid "Log in" +msgstr "Autentificare" + +#, python-format +msgid "%(app)s administration" +msgstr "administrare %(app)s" + +msgid "Page not found" +msgstr "Pagină inexistentă" + +msgid "We’re sorry, but the requested page could not be found." +msgstr "Din păcate nu am găsit pagina solicitată" + +msgid "Home" +msgstr "Acasă" + +msgid "Server error" +msgstr "Eroare de server" + +msgid "Server error (500)" +msgstr "Eroare de server (500)" + +msgid "Server Error (500)" +msgstr "Eroare server (500)" + +msgid "" +"There’s been an error. It’s been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" + +msgid "Run the selected action" +msgstr "Pornește acțiunea selectată" + +msgid "Go" +msgstr "Start" + +msgid "Click here to select the objects across all pages" +msgstr "Clic aici pentru a selecta obiectele la nivelul tuturor paginilor" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "Selectați toate %(total_count)s %(module_name)s" + +msgid "Clear selection" +msgstr "Deselectați" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "Modele în aplicația %(name)s" + +msgid "Add" +msgstr "Adaugă" + +msgid "View" +msgstr "Vizualizează" + +msgid "You don’t have permission to view or edit anything." +msgstr "" + +msgid "" +"First, enter a username and password. Then, you’ll be able to edit more user " +"options." +msgstr "" + +msgid "Enter a username and password." +msgstr "Introduceți un nume de utilizator și o parolă." + +msgid "Change password" +msgstr "Schimbă parola" + +msgid "Please correct the error below." +msgid_plural "Please correct the errors below." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "" +"Introduceți o parolă nouă pentru utilizatorul %(username)s." + +msgid "Skip to main content" +msgstr "" + +msgid "Welcome," +msgstr "Bun venit," + +msgid "View site" +msgstr "Vizualizare site" + +msgid "Documentation" +msgstr "Documentație" + +msgid "Log out" +msgstr "Deconectează-te" + +msgid "Breadcrumbs" +msgstr "" + +#, python-format +msgid "Add %(name)s" +msgstr "Adaugă %(name)s" + +msgid "History" +msgstr "Istoric" + +msgid "View on site" +msgstr "Vizualizează pe site" + +msgid "Filter" +msgstr "Filtru" + +msgid "Clear all filters" +msgstr "Șterge toate filtrele" + +msgid "Remove from sorting" +msgstr "Elimină din sortare" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "Prioritate sortare: %(priority_number)s" + +msgid "Toggle sorting" +msgstr "Alternează sortarea" + +msgid "Toggle theme (current theme: auto)" +msgstr "" + +msgid "Toggle theme (current theme: light)" +msgstr "" + +msgid "Toggle theme (current theme: dark)" +msgstr "" + +msgid "Delete" +msgstr "Șterge" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" +"Ștergerea %(object_name)s '%(escaped_object)s' va duce și la ștergerea " +"obiectelor asociate, însă contul dumneavoastră nu are permisiunea de a " +"șterge următoarele tipuri de obiecte:" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" +"Ștergerea %(object_name)s '%(escaped_object)s' ar putea necesita și " +"ștergerea următoarelor obiecte protejate asociate:" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" +"Sigur doriți ștergerea %(object_name)s \"%(escaped_object)s\"? Următoarele " +"itemuri asociate vor fi șterse:" + +msgid "Objects" +msgstr "Obiecte" + +msgid "Yes, I’m sure" +msgstr "Da, sunt sigur" + +msgid "No, take me back" +msgstr "Nu, vreau să mă întorc" + +msgid "Delete multiple objects" +msgstr "Ștergeți obiecte multiple" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" +"Ștergerea %(objects_name)s conform selecției ar putea duce la ștergerea " +"obiectelor asociate, însă contul dvs. de utilizator nu are permisiunea de a " +"șterge următoarele tipuri de obiecte:" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" +"Ştergerea %(objects_name)s conform selecției ar necesita și ștergerea " +"următoarelor obiecte protejate asociate:" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" +"Sigur doriţi să ștergeți %(objects_name)s conform selecției? Toate obiectele " +"următoare alături de cele asociate lor vor fi șterse:" + +msgid "Delete?" +msgstr "Elimină?" + +#, python-format +msgid " By %(filter_title)s " +msgstr "După %(filter_title)s " + +msgid "Summary" +msgstr "Sumar" + +msgid "Recent actions" +msgstr "Acțiuni recente" + +msgid "My actions" +msgstr "Acțiunile mele" + +msgid "None available" +msgstr "Niciuna" + +msgid "Unknown content" +msgstr "Conținut necunoscut" + +msgid "" +"Something’s wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" +"Sunteți autentificat ca %(username)s, dar nu sunteți autorizat să accesați " +"această pagină. Doriți să vă autentificați cu un alt cont?" + +msgid "Forgotten your password or username?" +msgstr "Ați uitat parola sau utilizatorul ?" + +msgid "Toggle navigation" +msgstr "Comutare navigație" + +msgid "Sidebar" +msgstr "" + +msgid "Start typing to filter…" +msgstr "Începeți să scrieți pentru filtrare..." + +msgid "Filter navigation items" +msgstr "" + +msgid "Date/time" +msgstr "Dată/oră" + +msgid "User" +msgstr "Utilizator" + +msgid "Action" +msgstr "Acțiune" + +msgid "entry" +msgid_plural "entries" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +msgid "" +"This object doesn’t have a change history. It probably wasn’t added via this " +"admin site." +msgstr "" + +msgid "Show all" +msgstr "Arată totul" + +msgid "Save" +msgstr "Salvează" + +msgid "Popup closing…" +msgstr "Fereastra se închide..." + +msgid "Search" +msgstr "Caută" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "%(counter)s rezultat" +msgstr[1] "%(counter)s rezultate" +msgstr[2] "%(counter)s de rezultate" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "%(full_result_count)s în total" + +msgid "Save as new" +msgstr "Salvați ca nou" + +msgid "Save and add another" +msgstr "Salvați și mai adăugați" + +msgid "Save and continue editing" +msgstr "Salvați și continuați editarea" + +msgid "Save and view" +msgstr "Salvează și vizualizează" + +msgid "Close" +msgstr "Închide" + +#, python-format +msgid "Change selected %(model)s" +msgstr "Modifică %(model)s selectat" + +#, python-format +msgid "Add another %(model)s" +msgstr "Adaugă alt %(model)s" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "Șterge %(model)s selectat" + +#, python-format +msgid "View selected %(model)s" +msgstr "" + +msgid "Thanks for spending some quality time with the web site today." +msgstr "" + +msgid "Log in again" +msgstr "Reautentificare" + +msgid "Password change" +msgstr "Schimbare parolă" + +msgid "Your password was changed." +msgstr "Parola a fost schimbată." + +msgid "" +"Please enter your old password, for security’s sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" +"Vă rog introduceți parola veche, pentru securitate, apoi introduceți parola " +"nouă de doua ori pentru a verifica dacă a fost scrisă corect. " + +msgid "Change my password" +msgstr "Schimbă-mi parola" + +msgid "Password reset" +msgstr "Resetare parolă" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "" +"Parola dumneavoastră a fost stabilită. Acum puteți continua să vă " +"autentificați." + +msgid "Password reset confirmation" +msgstr "Confirmare resetare parolă" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" +"Introduceți parola de două ori, pentru a putea verifica dacă ați scris-o " +"corect." + +msgid "New password:" +msgstr "Parolă nouă:" + +msgid "Confirm password:" +msgstr "Confirmare parolă:" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"Link-ul de resetare a parolei a fost nevalid, probabil din cauză că acesta a " +"fost deja utilizat. Solicitați o nouă resetare a parolei." + +msgid "" +"We’ve emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" +"Am trimis instrucțiuni pentru a seta parola, daca există un cont cu email-ul " +"introdus. O sa-l primiți cât de curând." + +msgid "" +"If you don’t receive an email, please make sure you’ve entered the address " +"you registered with, and check your spam folder." +msgstr "" +"Dacă nu ați primit un email, verificați vă rog dacă ați introdus adresa cu " +"care v-ați înregistrat și verificați si folderul Spam." + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" +"Primiți acest email deoarece ați cerut o resetare a parolei pentru contul de " +"utilizator de la %(site_name)s." + +msgid "Please go to the following page and choose a new password:" +msgstr "Mergeți la următoarea pagină și alegeți o parolă nouă:" + +msgid "Your username, in case you’ve forgotten:" +msgstr "Numele tău de utilizator, în caz că l-ai uitat:" + +msgid "Thanks for using our site!" +msgstr "Mulțumiri pentru utilizarea sitului nostru!" + +#, python-format +msgid "The %(site_name)s team" +msgstr "Echipa %(site_name)s" + +msgid "" +"Forgotten your password? Enter your email address below, and we’ll email " +"instructions for setting a new one." +msgstr "" +"Ați uitat parola ? Introduceți adresa de email mai jos și vă vom trimite " +"instrucțiuni pentru o parolă nouă." + +msgid "Email address:" +msgstr "Adresă e-mail:" + +msgid "Reset my password" +msgstr "Resetează-mi parola" + +msgid "All dates" +msgstr "Toate datele" + +#, python-format +msgid "Select %s" +msgstr "Selectează %s" + +#, python-format +msgid "Select %s to change" +msgstr "Selectează %s pentru schimbare" + +#, python-format +msgid "Select %s to view" +msgstr "Selecteză %s pentru a vizualiza" + +msgid "Date:" +msgstr "Dată:" + +msgid "Time:" +msgstr "Oră:" + +msgid "Lookup" +msgstr "Căutare" + +msgid "Currently:" +msgstr "În prezent:" + +msgid "Change:" +msgstr "Schimbă:" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ro/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ro/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..59f694e3a8c4764e634e4683ed36109f3231dd18 GIT binary patch literal 4639 zcmbuBL2O({8OH}23U#404WX1aFg1-?)9iXTZIiOb4JL_Or`g7`mz0QJX5X9Lo%Fq# z)x3GT-Y8NlS<0bsK?JE$1c+3ETLco75JD8mF3JH3i3{R_P!1q2NF2Cv;Q!5=^{x|R z8u9FTznytA-+c3Z-^@3Eeq`VG7@lWQo^L|C?+1St_zUnO zsJ|EL?}Hyl{db}Mr@+5}pFsQH0{<0w9|ljMeLwgB_yqWQa0Z+Km%xvKX<#3u`QHE` zf?WYW3VtipzZ>{Ah=2Bdyl4sUfF$Q9AdUMe_zmz~un9f{q4Yfhseb~J+#ZO3wvHF+ z`36XOz6Fw;tKe1e8u%Tsf(AR2!F9t7V8e-8G*20k7De;xP- z@F41c4fTJA`omD-Q)r(7KMl@<*Ws&G@HN!`@nE6v%WwizVyhsgW*0(TfaHfR2$8H0 zlD=<-_A4O%+10=wfe^`Vg0!Arf}aC7!5Q#2NOB&4P~riQ<~;<`yib8N?g&WpJQp|* zQoluz?EMn>5O@}(ao+@QfD!mZ@P2$G`9B7||3dv;kmSDy;-B5Z3#MRy1WEpFkmURw zybgZ*lZE`!!^QV1cmnOmL6SQF9e5ce|NIlY0=~7MF_@X{f281nz=MI020j+}c;KPH z&tUAG580I-n2=Ra9z~f!c@l-5#|n78$mdU^kPW|x0(HC}J`B=xw18jp5&SNPI@yAr zFQJfK4^agVmgOI^9aLncqRO5DA4h??*enW1fyr16h0cY;DD+fOzJT&9$}|c+pDn=V zK=Kv&m13A4if!80^gM+^u?yEiU@4QyY{pHSA1+1O;U^ko?$g*)x;2FD<9# zRCezR)jxP=-jZFV;}0Zu_pbe7)vuTVI~O@a7FhL$3Lty2HQ94TzqKwpHoGe0_;+2& z6P3ZzZ7wDpT=DBq#c<@4%%qaHh9QcS?$FSbEA2(J%sSSQm;o193chF_k<&syK3xRL zG%RY-sU_V&q7TjP28Ls}%qqJowe9DzMj;CRPmKx_{V$D7jPPih)R5k+IqXR+8IkJ9 zeza=*Zu=;~mg8h*ntoMHo7F4#TZLof(Tg;_SpAYLK>Q_ zEZe-$t}xAnV!19R-Q6HER?Z(&Bg-tey~-qR!q8shJ0%SiRA^yKn9Nm}(fB1D+{Txz zg6sAzO|~_Rrnbgp+nR7WIeFjOj@I1w+|kzT<~F0A&B>n4T;ARIs*H8f{3=_q<|2;q z@^V~0FKvdHsq^?E0>ezL%AT>V+{ijAE`KfWWaXx*^Qo0{oTT)An5&Jy8_t@G1)M{1Ms2CViKEwQppw$Mol{nbv2WKfAr z`U1x3PA)pK+>|1%^Hq}yjV`>@b*@*Rn;Q%U6-Q!KTdvcPxkBF&k}!VGnz`Aj#&YBI zcxAOpb?T(iPHL!z%~$76uDiKjB9xw|c(a*w3tw+8m7gE?qq*ABmQU-*#5jTK{P~u0 z+j`cyHB&1|ZbedFGB(ZXT=#r6TX<%k7e5zDdSRhmEB5%_9d^mgN{(_fl2oj+p3$mB30vpb zXP34%*kU3(=tOUBcr4tg4K-tTuQ=niMG{LS<#wNZd+>loLZn8>@_mpRN4a_XvrJT~ zwAk)Y2&u3lH(O{Nk~96nxoLB@m_^tgk}dlLjrQd{@o$YcagpoOJMVa8=u(A}J_HG-3sMWYBCSs5J^< z+QlShtYBV7bx+kqM)#i`ij7RSw{B#vONjB!8%j&I7QwU>QMeYsqG1h?8#W=`IIQqi z9xYy_jyeoz z<*jQ@(bd4f>*fk#>R8#zp@G2lL1D*_7A>GyU%vki!fU)( zTr~=1M)TghYhGU5B~$_pP6;xJT$iw!AW>tR9+?!2<%|XQarJ7$S_(Hmgja=~XJ^?O LJH^hh2LAp7A@e7o literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ro/LC_MESSAGES/djangojs.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ro/LC_MESSAGES/djangojs.po new file mode 100644 index 0000000000..e681dde5b8 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ro/LC_MESSAGES/djangojs.po @@ -0,0 +1,228 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Bogdan Mateescu, 2018-2019 +# Daniel Ursache-Dogariu, 2011 +# Denis Darii , 2011 +# Eugenol Man , 2020 +# Ionel Cristian Mărieș , 2012 +# Jannis Leidel , 2011 +# razvan ionescu , 2015 +# Razvan Stefanescu , 2016-2017 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-05-11 20:56+0200\n" +"PO-Revision-Date: 2020-07-15 11:16+0000\n" +"Last-Translator: Eugenol Man \n" +"Language-Team: Romanian (http://www.transifex.com/django/django/language/" +"ro/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ro\n" +"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" +"2:1));\n" + +#, javascript-format +msgid "Available %s" +msgstr "%s disponibil" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" +"Aceasta este o listă cu %s disponibile. Le puteți alege selectând mai multe " +"in chenarul de mai jos și apăsând pe săgeata \"Alege\" dintre cele două " +"chenare." + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "Scrie în acest chenar pentru a filtra lista de %s disponibile." + +msgid "Filter" +msgstr "Filtru" + +msgid "Choose all" +msgstr "Alege toate" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "Click pentru a alege toate %s." + +msgid "Choose" +msgstr "Alege" + +msgid "Remove" +msgstr "Elimină" + +#, javascript-format +msgid "Chosen %s" +msgstr "%s alese" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" +"Aceasta este lista de %s alese. Puteți elimina din ele selectându-le in " +"chenarul de mai jos și apasand pe săgeata \"Elimină\" dintre cele două " +"chenare." + +msgid "Remove all" +msgstr "Elimină toate" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "Click pentru a elimina toate %s alese." + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "%(sel)s din %(cnt)s selectate" +msgstr[1] "%(sel)s din %(cnt)s selectate" +msgstr[2] "de %(sel)s din %(cnt)s selectate" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" +"Aveţi modificări nesalvate în cîmpuri individuale editabile. Dacă executaţi " +"o acțiune, modificările nesalvate vor fi pierdute." + +msgid "" +"You have selected an action, but you haven’t saved your changes to " +"individual fields yet. Please click OK to save. You’ll need to re-run the " +"action." +msgstr "" +"Ai selectat o acțiune dar nu ai salvat modificările făcute în câmpuri " +"individuale. Te rugăm apasa Ok pentru a salva. Va trebui sa reiei acțiunea." + +msgid "" +"You have selected an action, and you haven’t made any changes on individual " +"fields. You’re probably looking for the Go button rather than the Save " +"button." +msgstr "" +"Ai selectat o acțiune și nu ai făcut modificări. Probabil că dorești butonul " +"de Go mai putin cel de Salvează." + +msgid "Now" +msgstr "Acum" + +msgid "Midnight" +msgstr "Miezul nopții" + +msgid "6 a.m." +msgstr "6 a.m." + +msgid "Noon" +msgstr "Amiază" + +msgid "6 p.m." +msgstr "6 p.m." + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "Notă: Sunteți cu %s oră înaintea orei serverului." +msgstr[1] "Notă: Sunteți cu %s ore înaintea orei serverului." +msgstr[2] "Notă: Sunteți cu %s de ore înaintea orei serverului." + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "Notă: Sunteți cu %s oră în urma orei serverului." +msgstr[1] "Notă: Sunteți cu %s ore în urma orei serverului." +msgstr[2] "Notă: Sunteți cu %s de ore în urma orei serverului." + +msgid "Choose a Time" +msgstr "Alege o oră" + +msgid "Choose a time" +msgstr "Alege o oră" + +msgid "Cancel" +msgstr "Anulează" + +msgid "Today" +msgstr "Astăzi" + +msgid "Choose a Date" +msgstr "Alege o dată" + +msgid "Yesterday" +msgstr "Ieri" + +msgid "Tomorrow" +msgstr "Mâine" + +msgid "January" +msgstr "Ianuarie" + +msgid "February" +msgstr "Februarie" + +msgid "March" +msgstr "Martie" + +msgid "April" +msgstr "Aprilie" + +msgid "May" +msgstr "Mai" + +msgid "June" +msgstr "Iunie" + +msgid "July" +msgstr "Iulie" + +msgid "August" +msgstr "August" + +msgid "September" +msgstr "Septembrie" + +msgid "October" +msgstr "Octombrie" + +msgid "November" +msgstr "Noiembrie" + +msgid "December" +msgstr "Decembrie" + +msgctxt "one letter Sunday" +msgid "S" +msgstr "D" + +msgctxt "one letter Monday" +msgid "M" +msgstr "L" + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "M" + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "M" + +msgctxt "one letter Thursday" +msgid "T" +msgstr "J" + +msgctxt "one letter Friday" +msgid "F" +msgstr "V" + +msgctxt "one letter Saturday" +msgid "S" +msgstr "S" + +msgid "Show" +msgstr "Arată" + +msgid "Hide" +msgstr "Ascunde" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ru/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ru/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..f95653f5a06057a5372030f0c16d632076550ed9 GIT binary patch literal 24187 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 qv_GCQhFgnJGb6>l, 2013 +# Denis Darii , 2011 +# Dimmus , 2011 +# Eugene , 2016-2017 +# crazyzubr , 2020 +# Sergey , 2016 +# Jannis Leidel , 2011 +# SeryiMysh , 2020 +# Алексей Борискин , 2012-2015,2022-2024 +# Дмитрий , 2019 +# Bobsans , 2018 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-05-22 11:46-0300\n" +"PO-Revision-Date: 2024-08-07 07:05+0000\n" +"Last-Translator: Алексей Борискин , 2012-2015,2022-2024\n" +"Language-Team: Russian (http://app.transifex.com/django/django/language/" +"ru/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ru\n" +"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || " +"(n%100>=11 && n%100<=14)? 2 : 3);\n" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "Удалить выбранные %(verbose_name_plural)s" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "Успешно удалены %(count)d %(items)s." + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "Не удается удалить %(name)s" + +msgid "Are you sure?" +msgstr "Вы уверены?" + +msgid "Administration" +msgstr "Администрирование" + +msgid "All" +msgstr "Все" + +msgid "Yes" +msgstr "Да" + +msgid "No" +msgstr "Нет" + +msgid "Unknown" +msgstr "Неизвестно" + +msgid "Any date" +msgstr "Любая дата" + +msgid "Today" +msgstr "Сегодня" + +msgid "Past 7 days" +msgstr "Последние 7 дней" + +msgid "This month" +msgstr "Этот месяц" + +msgid "This year" +msgstr "Этот год" + +msgid "No date" +msgstr "Дата не указана" + +msgid "Has date" +msgstr "Дата указана" + +msgid "Empty" +msgstr "Пусто" + +msgid "Not empty" +msgstr "Не пусто" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" +"Пожалуйста, введите корректные %(username)s и пароль учётной записи. Оба " +"поля могут быть чувствительны к регистру." + +msgid "Action:" +msgstr "Действие:" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "Добавить еще один %(verbose_name)s" + +msgid "Remove" +msgstr "Удалить" + +msgid "Addition" +msgstr "Добавление" + +msgid "Change" +msgstr "Изменить" + +msgid "Deletion" +msgstr "Удаление" + +msgid "action time" +msgstr "время действия" + +msgid "user" +msgstr "пользователь" + +msgid "content type" +msgstr "тип содержимого" + +msgid "object id" +msgstr "идентификатор объекта" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/library/functions.html#repr) +msgid "object repr" +msgstr "представление объекта" + +msgid "action flag" +msgstr "тип действия" + +msgid "change message" +msgstr "сообщение об изменении" + +msgid "log entry" +msgstr "запись в журнале" + +msgid "log entries" +msgstr "записи в журнале" + +#, python-format +msgid "Added “%(object)s”." +msgstr "Добавлено “%(object)s“." + +#, python-format +msgid "Changed “%(object)s” — %(changes)s" +msgstr "Изменено “%(object)s“ - %(changes)s" + +#, python-format +msgid "Deleted “%(object)s.”" +msgstr "Удалено “%(object)s.“" + +msgid "LogEntry Object" +msgstr "Запись в журнале" + +#, python-brace-format +msgid "Added {name} “{object}”." +msgstr "Добавлен {name} “{object}“." + +msgid "Added." +msgstr "Добавлено." + +msgid "and" +msgstr "и" + +#, python-brace-format +msgid "Changed {fields} for {name} “{object}”." +msgstr "Изменено {fields} у {name} “{object}“." + +#, python-brace-format +msgid "Changed {fields}." +msgstr "Изменено {fields}." + +#, python-brace-format +msgid "Deleted {name} “{object}”." +msgstr "Удален {name} “{object}“." + +msgid "No fields changed." +msgstr "Ни одно поле не изменено." + +msgid "None" +msgstr "Нет" + +msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." +msgstr "" +"Удерживайте “Control“ (или “Command“ на Mac), чтобы выбрать несколько " +"значений." + +msgid "Select this object for an action - {}" +msgstr "Выбрать этот объект, чтобы применить к нему действие - {}" + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully." +msgstr "{name} \"{obj}\" был успешно добавлен." + +msgid "You may edit it again below." +msgstr "Вы можете снова изменить этот объект ниже." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was added successfully. You may add another {name} below." +msgstr "" +"{name} “{obj}“ был успешно добавлен. Вы можете добавить еще один {name} ниже." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may edit it again below." +msgstr "" +"{name} “{obj}“ был изменен успешно. Вы можете отредактировать его снова ниже." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may add another {name} " +"below." +msgstr "{name} “{obj}“ был изменен. Вы можете добавить еще один {name} ниже." + +#, python-brace-format +msgid "The {name} “{obj}” was changed successfully." +msgstr "{name} “{obj}“ был успешно изменен." + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" +"Чтобы произвести действия над объектами, необходимо их выбрать. Объекты не " +"были изменены." + +msgid "No action selected." +msgstr "Действие не выбрано." + +#, python-format +msgid "The %(name)s “%(obj)s” was deleted successfully." +msgstr "%(name)s “%(obj)s“ был успешно удален." + +#, python-format +msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" +msgstr "%(name)s с ID “%(key)s“ не существует. Возможно оно было удалено?" + +#, python-format +msgid "Add %s" +msgstr "Добавить %s" + +#, python-format +msgid "Change %s" +msgstr "Изменить %s" + +#, python-format +msgid "View %s" +msgstr "Просмотреть %s" + +msgid "Database error" +msgstr "Ошибка базы данных" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "%(count)s %(name)s был успешно изменен." +msgstr[1] "%(count)s %(name)s были успешно изменены." +msgstr[2] "%(count)s %(name)s были успешно изменены." +msgstr[3] "%(count)s %(name)s были успешно изменены." + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "Выбран %(total_count)s" +msgstr[1] "Выбраны все %(total_count)s" +msgstr[2] "Выбраны все %(total_count)s" +msgstr[3] "Выбраны все %(total_count)s" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "Выбрано 0 объектов из %(cnt)s " + +#, python-format +msgid "Change history: %s" +msgstr "История изменений: %s" + +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "%(class_name)s %(instance)s" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" +"Удаление объекта %(instance)s типа %(class_name)s будет требовать удаления " +"следующих связанных объектов: %(related_objects)s" + +msgid "Django site admin" +msgstr "Административный сайт Django" + +msgid "Django administration" +msgstr "Администрирование Django" + +msgid "Site administration" +msgstr "Администрирование сайта" + +msgid "Log in" +msgstr "Войти" + +#, python-format +msgid "%(app)s administration" +msgstr "Администрирование приложения «%(app)s»" + +msgid "Page not found" +msgstr "Страница не найдена" + +msgid "We’re sorry, but the requested page could not be found." +msgstr "К сожалению, запрашиваемая вами страница не найдена." + +msgid "Home" +msgstr "Начало" + +msgid "Server error" +msgstr "Ошибка сервера" + +msgid "Server error (500)" +msgstr "Ошибка сервера (500)" + +msgid "Server Error (500)" +msgstr "Ошибка сервера (500)" + +msgid "" +"There’s been an error. It’s been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" +"Произошла ошибка. О ней сообщено администраторам сайта по электронной почте, " +"ошибка должна быть вскоре исправлена. Благодарим вас за терпение." + +msgid "Run the selected action" +msgstr "Выполнить выбранное действие" + +msgid "Go" +msgstr "Выполнить" + +msgid "Click here to select the objects across all pages" +msgstr "Нажмите здесь, чтобы выбрать объекты на всех страницах" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "Выбрать все %(module_name)s (%(total_count)s)" + +msgid "Clear selection" +msgstr "Снять выделение" + +msgid "Breadcrumbs" +msgstr "Хлебные крошки" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "Модели в приложении %(name)s" + +msgid "Add" +msgstr "Добавить" + +msgid "View" +msgstr "Просмотреть" + +msgid "You don’t have permission to view or edit anything." +msgstr "У вас недостаточно полномочий для просмотра или изменения чего либо." + +msgid "" +"First, enter a username and password. Then, you’ll be able to edit more user " +"options." +msgstr "" +"Сначала введите имя пользователя и пароль. Затем вы сможете ввести больше " +"информации о пользователе." + +msgid "Enter a username and password." +msgstr "Введите имя пользователя и пароль." + +msgid "Change password" +msgstr "Изменить пароль" + +msgid "Set password" +msgstr "Задать пароль" + +msgid "Please correct the error below." +msgid_plural "Please correct the errors below." +msgstr[0] "Пожалуйста, исправьте ошибку ниже." +msgstr[1] "Пожалуйста, исправьте ошибки ниже." +msgstr[2] "Пожалуйста, исправьте ошибки ниже." +msgstr[3] "Пожалуйста, исправьте ошибки ниже." + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "Введите новый пароль для пользователя %(username)s." + +msgid "" +"This action will enable password-based authentication for " +"this user." +msgstr "" +"Это действие разрешит парольную аутентификацию для этого " +"пользователя." + +msgid "Disable password-based authentication" +msgstr "Запретить аутентификацию по паролю" + +msgid "Enable password-based authentication" +msgstr "Разрешить аутентификацию по паролю" + +msgid "Skip to main content" +msgstr "К основному" + +msgid "Welcome," +msgstr "Добро пожаловать," + +msgid "View site" +msgstr "Открыть сайт" + +msgid "Documentation" +msgstr "Документация" + +msgid "Log out" +msgstr "Выйти" + +#, python-format +msgid "Add %(name)s" +msgstr "Добавить %(name)s" + +msgid "History" +msgstr "История" + +msgid "View on site" +msgstr "Смотреть на сайте" + +msgid "Filter" +msgstr "Фильтр" + +msgid "Hide counts" +msgstr "Скрыть счётчики" + +msgid "Show counts" +msgstr "Показать счётчики" + +msgid "Clear all filters" +msgstr "Сбросить все фильтры" + +msgid "Remove from sorting" +msgstr "Удалить из сортировки" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "Приоритет сортировки: %(priority_number)s" + +msgid "Toggle sorting" +msgstr "Сортировать в другом направлении" + +msgid "Toggle theme (current theme: auto)" +msgstr "Переключить тему (текущая: выбрана автоматически)" + +msgid "Toggle theme (current theme: light)" +msgstr "Переключить тему (текущая: светлая)" + +msgid "Toggle theme (current theme: dark)" +msgstr "Переключить тему (текущая: тёмная)" + +msgid "Delete" +msgstr "Удалить" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" +"Удаление %(object_name)s '%(escaped_object)s' приведет к удалению связанных " +"объектов, но ваша учетная запись не имеет прав для удаления следующих типов " +"объектов:" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" +"Удаление %(object_name)s '%(escaped_object)s' потребует удаления следующих " +"связанных защищенных объектов:" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" +"Вы уверены, что хотите удалить %(object_name)s \"%(escaped_object)s\"? Все " +"следующие связанные объекты также будут удалены:" + +msgid "Objects" +msgstr "Объекты" + +msgid "Yes, I’m sure" +msgstr "Да, я уверен" + +msgid "No, take me back" +msgstr "Нет, отменить и вернуться к выбору" + +msgid "Delete multiple objects" +msgstr "Удалить несколько объектов" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" +"Удаление выбранной %(objects_name)s приведет к удалению связанных объектов, " +"но ваша учетная запись не имеет прав на удаление следующих типов объектов:" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" +"Удаление %(objects_name)s потребует удаления следующих связанных защищенных " +"объектов:" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" +"Вы уверены, что хотите удалить %(objects_name)s? Все следующие объекты и " +"связанные с ними элементы будут удалены:" + +msgid "Delete?" +msgstr "Удалить?" + +#, python-format +msgid " By %(filter_title)s " +msgstr "%(filter_title)s" + +msgid "Summary" +msgstr "Краткая статистика" + +msgid "Recent actions" +msgstr "Последние действия" + +msgid "My actions" +msgstr "Мои действия" + +msgid "None available" +msgstr "Недоступно" + +msgid "Added:" +msgstr "Создано:" + +msgid "Changed:" +msgstr "Изменено:" + +msgid "Deleted:" +msgstr "Удалено:" + +msgid "Unknown content" +msgstr "Неизвестный тип" + +msgid "" +"Something’s wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" +"Ваша база данных неправильно настроена. Убедитесь, что соответствующие " +"таблицы были созданы, и что соответствующему пользователю разрешен к ним " +"доступ." + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" +"Вы вошли в систему как %(username)s, однако у вас недостаточно прав для " +"просмотра данной страницы. Возможно, вы хотели бы войти в систему, используя " +"другую учётную запись?" + +msgid "Forgotten your password or username?" +msgstr "Забыли свой пароль или имя пользователя?" + +msgid "Toggle navigation" +msgstr "Переключить навигацию" + +msgid "Sidebar" +msgstr "Боковая панель" + +msgid "Start typing to filter…" +msgstr "Начните печатать для фильтрации..." + +msgid "Filter navigation items" +msgstr "Фильтр элементов навигации" + +msgid "Date/time" +msgstr "Дата и время" + +msgid "User" +msgstr "Пользователь" + +msgid "Action" +msgstr "Действие" + +msgid "entry" +msgid_plural "entries" +msgstr[0] "запись" +msgstr[1] "записи" +msgstr[2] "записей" +msgstr[3] "записей" + +msgid "" +"This object doesn’t have a change history. It probably wasn’t added via this " +"admin site." +msgstr "" +"Данный объект не имеет истории изменений. Возможно, он был добавлен не через " +"данный административный сайт." + +msgid "Show all" +msgstr "Показать все" + +msgid "Save" +msgstr "Сохранить" + +msgid "Popup closing…" +msgstr "Всплывающее окно закрывается..." + +msgid "Search" +msgstr "Найти" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "%(counter)s результат" +msgstr[1] "%(counter)s результата" +msgstr[2] "%(counter)s результатов" +msgstr[3] "%(counter)s результатов" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "%(full_result_count)s всего" + +msgid "Save as new" +msgstr "Сохранить как новый объект" + +msgid "Save and add another" +msgstr "Сохранить и добавить другой объект" + +msgid "Save and continue editing" +msgstr "Сохранить и продолжить редактирование" + +msgid "Save and view" +msgstr "Сохранить и просмотреть" + +msgid "Close" +msgstr "Закрыть" + +#, python-format +msgid "Change selected %(model)s" +msgstr "Изменить выбранный объект типа \"%(model)s\"" + +#, python-format +msgid "Add another %(model)s" +msgstr "Добавить ещё один объект типа \"%(model)s\"" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "Удалить выбранный объект типа \"%(model)s\"" + +#, python-format +msgid "View selected %(model)s" +msgstr "Просмотреть выбранный объект типа \"%(model)s\"" + +msgid "Thanks for spending some quality time with the web site today." +msgstr "Благодарим вас за время, проведенное на этом сайте." + +msgid "Log in again" +msgstr "Войти снова" + +msgid "Password change" +msgstr "Изменение пароля" + +msgid "Your password was changed." +msgstr "Ваш пароль был изменен." + +msgid "" +"Please enter your old password, for security’s sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" +"В целях безопасности, пожалуйста, введите свой старый пароль, затем введите " +"новый пароль дважды, чтобы мы могли убедиться в правильности написания." + +msgid "Change my password" +msgstr "Изменить мой пароль" + +msgid "Password reset" +msgstr "Восстановление пароля" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "Ваш пароль был сохранен. Теперь вы можете войти." + +msgid "Password reset confirmation" +msgstr "Подтверждение восстановления пароля" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" +"Пожалуйста, введите новый пароль дважды, чтобы мы могли убедиться в " +"правильности написания." + +msgid "New password:" +msgstr "Новый пароль:" + +msgid "Confirm password:" +msgstr "Подтвердите пароль:" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"Неверная ссылка для восстановления пароля. Возможно, ей уже воспользовались. " +"Пожалуйста, попробуйте восстановить пароль еще раз." + +msgid "" +"We’ve emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" +"Мы отправили вам инструкцию по установке нового пароля на указанный адрес " +"электронной почты (если в нашей базе данных есть такой адрес). Вы должны " +"получить ее в ближайшее время." + +msgid "" +"If you don’t receive an email, please make sure you’ve entered the address " +"you registered with, and check your spam folder." +msgstr "" +"Если вы не получили письмо, пожалуйста, убедитесь, что вы ввели адрес с " +"которым Вы зарегистрировались, и проверьте папку со спамом." + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" +"Вы получили это письмо, потому что вы (или кто-то другой) запросили " +"восстановление пароля от учётной записи на сайте %(site_name)s, которая " +"связана с этим адресом электронной почты." + +msgid "Please go to the following page and choose a new password:" +msgstr "Пожалуйста, перейдите на эту страницу и введите новый пароль:" + +msgid "Your username, in case you’ve forgotten:" +msgstr "Ваше имя пользователя (на случай, если вы его забыли):" + +msgid "Thanks for using our site!" +msgstr "Спасибо, что используете наш сайт!" + +#, python-format +msgid "The %(site_name)s team" +msgstr "Команда сайта %(site_name)s" + +msgid "" +"Forgotten your password? Enter your email address below, and we’ll email " +"instructions for setting a new one." +msgstr "" +"Забыли пароль? Введите свой адрес электронной почты ниже, и мы вышлем вам " +"инструкцию, как установить новый пароль." + +msgid "Email address:" +msgstr "Адрес электронной почты:" + +msgid "Reset my password" +msgstr "Восстановить мой пароль" + +msgid "Select all objects on this page for an action" +msgstr "Выбрать все объекты на этой странице, чтобы применить к ним действие" + +msgid "All dates" +msgstr "Все даты" + +#, python-format +msgid "Select %s" +msgstr "Выберите %s" + +#, python-format +msgid "Select %s to change" +msgstr "Выберите %s для изменения" + +#, python-format +msgid "Select %s to view" +msgstr "Выберите %s для просмотра" + +msgid "Date:" +msgstr "Дата:" + +msgid "Time:" +msgstr "Время:" + +msgid "Lookup" +msgstr "Поиск" + +msgid "Currently:" +msgstr "Сейчас:" + +msgid "Change:" +msgstr "Изменить:" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ru/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ru/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..6bf7a814714dc791237fd494d6273157594d8238 GIT binary patch literal 8392 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, 2020 +# Denis Darii , 2011 +# Dimmus , 2011 +# Eugene , 2012 +# Eugene , 2016 +# crazyzubr , 2020 +# Jannis Leidel , 2011 +# Panasoft, 2021 +# Алексей Борискин , 2012,2014-2015,2022-2023 +# Андрей Щуров , 2016 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-09-18 15:04-0300\n" +"PO-Revision-Date: 2023-12-04 07:59+0000\n" +"Last-Translator: Алексей Борискин , " +"2012,2014-2015,2022-2023\n" +"Language-Team: Russian (http://app.transifex.com/django/django/language/" +"ru/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ru\n" +"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || " +"(n%100>=11 && n%100<=14)? 2 : 3);\n" + +#, javascript-format +msgid "Available %s" +msgstr "Доступные %s" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" +"Это список всех доступных %s. Вы можете выбрать некоторые из них, выделив их " +"в поле ниже и кликнув \"Выбрать\", либо двойным щелчком." + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "" +"Начните вводить текст в этом поле, чтобы отфитровать список доступных %s." + +msgid "Filter" +msgstr "Фильтр" + +msgid "Choose all" +msgstr "Выбрать все" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "Нажмите, чтобы выбрать все %s сразу." + +msgid "Choose" +msgstr "Выбрать" + +msgid "Remove" +msgstr "Удалить" + +#, javascript-format +msgid "Chosen %s" +msgstr "Выбранные %s" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" +"Это список выбранных %s. Вы можете удалить некоторые из них, выделив их в " +"поле ниже и кликнув \"Удалить\", либо двойным щелчком." + +#, javascript-format +msgid "Type into this box to filter down the list of selected %s." +msgstr "" +"Набирайте символы в этом поле, чтобы отфильтровать список выбранных %s." + +msgid "Remove all" +msgstr "Удалить все" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "Нажмите чтобы удалить все %s сразу." + +#, javascript-format +msgid "%s selected option not visible" +msgid_plural "%s selected options not visible" +msgstr[0] "%s выбранный объект не виден" +msgstr[1] "%s выбранных объекта не видны" +msgstr[2] "%s выбранных объектов не видны" +msgstr[3] "%s выбранных объектов не видны" + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "Выбран %(sel)s из %(cnt)s" +msgstr[1] "Выбрано %(sel)s из %(cnt)s" +msgstr[2] "Выбрано %(sel)s из %(cnt)s" +msgstr[3] "Выбрано %(sel)s из %(cnt)s" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" +"Имеются несохраненные изменения в отдельных полях для редактирования. Если " +"вы запустите действие, несохраненные изменения будут потеряны." + +msgid "" +"You have selected an action, but you haven’t saved your changes to " +"individual fields yet. Please click OK to save. You’ll need to re-run the " +"action." +msgstr "" +"Вы выбрали действие, но еще не сохранили изменения, внесенные в некоторых " +"полях для редактирования. Нажмите OK, чтобы сохранить изменения. После " +"сохранения вам придется запустить действие еще раз." + +msgid "" +"You have selected an action, and you haven’t made any changes on individual " +"fields. You’re probably looking for the Go button rather than the Save " +"button." +msgstr "" +"Вы выбрали действие и не внесли изменений в данные. Возможно, вы хотели " +"воспользоваться кнопкой \"Выполнить\", а не кнопкой \"Сохранить\". Если это " +"так, то нажмите \"Отмена\", чтобы вернуться в интерфейс редактирования." + +msgid "Now" +msgstr "Сейчас" + +msgid "Midnight" +msgstr "Полночь" + +msgid "6 a.m." +msgstr "6 утра" + +msgid "Noon" +msgstr "Полдень" + +msgid "6 p.m." +msgstr "6 вечера" + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "Внимание: Ваше локальное время опережает время сервера на %s час." +msgstr[1] "Внимание: Ваше локальное время опережает время сервера на %s часа." +msgstr[2] "Внимание: Ваше локальное время опережает время сервера на %s часов." +msgstr[3] "Внимание: Ваше локальное время опережает время сервера на %s часов." + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "" +"Внимание: Ваше локальное время отстаёт от времени сервера на %s час." +msgstr[1] "" +"Внимание: Ваше локальное время отстаёт от времени сервера на %s часа." +msgstr[2] "" +"Внимание: Ваше локальное время отстаёт от времени сервера на %s часов." +msgstr[3] "" +"Внимание: Ваше локальное время отстаёт от времени сервера на %s часов." + +msgid "Choose a Time" +msgstr "Выберите время" + +msgid "Choose a time" +msgstr "Выберите время" + +msgid "Cancel" +msgstr "Отмена" + +msgid "Today" +msgstr "Сегодня" + +msgid "Choose a Date" +msgstr "Выберите дату" + +msgid "Yesterday" +msgstr "Вчера" + +msgid "Tomorrow" +msgstr "Завтра" + +msgid "January" +msgstr "Январь" + +msgid "February" +msgstr "Февраль" + +msgid "March" +msgstr "Март" + +msgid "April" +msgstr "Апрель" + +msgid "May" +msgstr "Май" + +msgid "June" +msgstr "Июнь" + +msgid "July" +msgstr "Июль" + +msgid "August" +msgstr "Август" + +msgid "September" +msgstr "Сентябрь" + +msgid "October" +msgstr "Октябрь" + +msgid "November" +msgstr "Ноябрь" + +msgid "December" +msgstr "Декабрь" + +msgctxt "abbrev. month January" +msgid "Jan" +msgstr "Янв" + +msgctxt "abbrev. month February" +msgid "Feb" +msgstr "Фев" + +msgctxt "abbrev. month March" +msgid "Mar" +msgstr "Мар" + +msgctxt "abbrev. month April" +msgid "Apr" +msgstr "Апр" + +msgctxt "abbrev. month May" +msgid "May" +msgstr "Май" + +msgctxt "abbrev. month June" +msgid "Jun" +msgstr "Июн" + +msgctxt "abbrev. month July" +msgid "Jul" +msgstr "Июл" + +msgctxt "abbrev. month August" +msgid "Aug" +msgstr "Авг" + +msgctxt "abbrev. month September" +msgid "Sep" +msgstr "Сен" + +msgctxt "abbrev. month October" +msgid "Oct" +msgstr "Окт" + +msgctxt "abbrev. month November" +msgid "Nov" +msgstr "Ноя" + +msgctxt "abbrev. month December" +msgid "Dec" +msgstr "Дек" + +msgid "Sunday" +msgstr "Воскресенье" + +msgid "Monday" +msgstr "Понедельник" + +msgid "Tuesday" +msgstr "Вторник" + +msgid "Wednesday" +msgstr "Среда" + +msgid "Thursday" +msgstr "Четверг" + +msgid "Friday" +msgstr "Пятница" + +msgid "Saturday" +msgstr "Суббота" + +msgctxt "abbrev. day Sunday" +msgid "Sun" +msgstr "Вс" + +msgctxt "abbrev. day Monday" +msgid "Mon" +msgstr "Пн" + +msgctxt "abbrev. day Tuesday" +msgid "Tue" +msgstr "Вт" + +msgctxt "abbrev. day Wednesday" +msgid "Wed" +msgstr "Ср" + +msgctxt "abbrev. day Thursday" +msgid "Thur" +msgstr "Чт" + +msgctxt "abbrev. day Friday" +msgid "Fri" +msgstr "Пт" + +msgctxt "abbrev. day Saturday" +msgid "Sat" +msgstr "Сб" + +msgctxt "one letter Sunday" +msgid "S" +msgstr "В" + +msgctxt "one letter Monday" +msgid "M" +msgstr "П" + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "В" + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "С" + +msgctxt "one letter Thursday" +msgid "T" +msgstr "Ч" + +msgctxt "one letter Friday" +msgid "F" +msgstr "П" + +msgctxt "one letter Saturday" +msgid "S" +msgstr "С" + +msgid "Show" +msgstr "Показать" + +msgid "Hide" +msgstr "Скрыть" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/sk/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/sk/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..597165e2cff9135b1b0f41f4cb7c5a9f682302be GIT binary patch literal 18706 zcmc(ldyr(+UB@p0LRj;}ybOsPqRY;PncfE=WY}eR>;jvx%gQVu5F~fH@66oo?t7d2 z=-Hl?grE_LkVs6TB;+wkKvrGUfJWEs8q+h;@=-=jS!z{?Qd$+?CS_U1{Nv|)&bi$^ z!|noklwEuFdmrbV`#Zn$d!KpgtkXUi@LQ(6p0@3UL2$+?LGZR0>uC@iczF=K3haTe z2Hyvs4L%Cq3Vs1R4}8Nb-18maHQc`)ya;>@)cB`BrVjoKJOlg|cq(}6SwWyrodN3o zD?#-?8x%cTJnjKs!+jG}zn}E@9`HrnKM1}Q{4l6_4}oWbhyDA{f_HKMdGM#e%f3Gd zUIO;P?*soF)cU>xS~@|E{}#xQ;Ph8Id@cAg?#~B*0K62`dTs>I2X6;iT5umY27Uw- zears&pMo0yRd5UVAK>ZWxhz`aHh}BEH-lQw4p4MVgX(uXDEjK4_^}@p9ru76z=uK6 zvkd+q_$U7Tzks6SbQXC4d?|P*crW-k_)TyYe2hsy1-|UHuKyDtLxazOqVF$2@$DZ# z(f18dbe#ebmxE`3`tG%$=$r#ZX9C^~{xtZ*;8S1%p8C2VcmbG!qOSzCAMXIQj`x7q zf$s-T1HTHs6Z{8I^ED7gedlwav#jG@1GB{ z)jv{^j9Q4|js6g9kmn3lu-@ z1;zh|Kt2^b=JAg~rVjoc6y0Z?=l1<|pycFD9yft{e<3LO+y-jDc7ghC2#SAA@XcTW zJ^(%ro(gW;;O4y?yodX};6>nHf{0LX<`^~rJP+IsJ_w3$e+FtF{~6T2yb2}@&jmH_ z1gLdw0Y%s4;7h>Wp!(ego(ax*ywg8F2x@)zg1>hP`wC(Lg6qzAbVi`$qy(P;9|Ug! zcaFQ~9|y1D{&&H5gQrfoeZ3Dno%>IKF9aV2&j1gD(u3awwQpYpwZ1Q?uD z1E_hf2Hy$p0}p^-2LBY?eSx#rXQPadbN?Pt^Sl{h6o0M;MgNVU=4pdxfd|2tgYN}* zf*%Jrfd2?;9WVJ2_x;y`8TS{1ur&B(P~ZPsQ2d*|*!6!KsQKqW$x8{|4j%OPe*?aY z`>%o_7+&J&?1QpHUjp^re+0$9{{+P^F?4N%g)c60;zyAuT@Bb4hIr%22{;!-2f?onRfDeLy2JQvJOWnFY z18(E~LjE)0ouKA`=0~#{NKS3fp59W?fc(@EjNN8l-72b5f8 z{`o!N4|D$jD7rr5aT%2S|CPso1GT=>cDZ@DwCmJf==Vn2&(f}^eU5e=?d`P9H2t)O zU#FqI!KZ0j!{fA1(M11G)7VNIyZ#s`S)ZrDj^HMme&SE{`+Y8cmv%qxH~hn2_1N>c z!Q+p66ugD@Nt*WN2Wa{sBEbypJlaFF_tW&7rTrWYmfPRE`TrfX_qbcDH@mq$=ZPmD_`mYwhL7{IetAHrfkl z2WXP7>L(e~Pr9U^bU{D1FZev|7irS__t7@dZl>w?JG7i8SvW*{Ij#Er0vG4feunn* zw7Y1s75e=)tzoZR{BjA`hIRujp?!f?{T}4v*J#qK-=sZ8)9*>zPtw-whTn^5bF|B8 zAE!M+lkShxK0~{J_6phuX-hQyIhCLfTXg{z z{(2eQN6Y+u3I343UiA2T9zO(L(gS|UfNI5ev9@ftxkJ0?Zvbjtwq!C zr~_+veue9g`uo>;T=2Nx;~C%w{PkHLZv*epwYjoq){o7`ts=_qDB_|OZOl!uek|;C zxCk5VIEnKj3yU~ScwBFVd45L{w$*L@Se)cVnAEw^yR=LS``Eu<2y;`P50km5Ve+zG zkMexBY_*8>j@LQLqLcTIGA7TWylfTK1S5|`fo8wM^|+&=rbvsh#k-28xR^J)c9^H{ zet7*@GwN;3pT7H}rjbT@^7P#g6(%~sa%*O9l+A~o+{A^^DjHEMDx$^|^Vs`no=p`&asCn+vN)M(p`yul#mRj>K?fTtg%L4!0gQX^R4);YRupC?WRsj-;gx;j zNR%PDsukCp28oU&BksA~@&VWDS(?Lq=IDfTNZM5`YwY@a2BW%{2HoR4fLc+?qTnV46a#7%T@!Syt9m9V?(RckkyLQ$fVv5imGM6wY8sFl14Kc%hx5j+WN6BM+MM*)*F=iy}&#I9Bu+%y9LM zsS|aYGL9)$kfTwi;R11w<93M)kt4=+P*|3gHm=Am`|_x;#=&tmO`=+GO&VOQ$VT4# z+PFdNrSL81+IpYh+7#>3NEZ?rD(o(7Z(*dyMYMg=ZsQsiJfT3L*&Wu$M{K!eLV;`G zEg!o!#SHJ7wIMrU~++dDnzT06l8Uzw7i#~QoFuf83FEVznESiH{ z+(?6Gka1Wdsx#k6S0-f@il6}b?F>-$b$*zLVuH%g&wkfSnVP_PKd~kT7T`Nxpu<$`I-(+Nj1EhYSbjG(tE1{p&?b7ovnO&+VNcRgM-V6SD8YOoqXVkkN3CeBGEv1sTt}o*v!J1gAwY;{dsal{Lln4bvpuEC zfIJ&UCX~KamSNm$ZN1FmqK6LTCT9bke6wa$#@eXwA|+UG6hQnO`agwUmXr1Ql<;ef zVV(^3rk%25>V#&*3{T(vXmA5MP2BI*hue1AjXapyEN#Q1OqPge2#pzyYi}r>HVhQg z%@R!GtnGi660{$*+0gJI!p5W}l7s=)>>6XccjIWm-{tZu!8D<1eI8KWrU-j*rR6)F zUj58X;rc5cU7O|EoUCjOk}p4@y85WVnUOfRp{x@|Os32JeD8vw-*;c#!AzKgcR^5w zNSU1qY|XZ)ec9MWn>TOVwu!6ioeO$>N2gJ?Q!qWBE+~+87v9QGWASIgESMg+XY8oY z@~4||N6f(2NMsSTqzI<5;1H>8Mi>|5gRRMRb{5OyLT_6TXpyYp_-Z(X%92a2ux?q} z$znW?OqCk|w1}}r%qoc!sh$({p)1e?gF*00>6LZ6Gd(M`qm#?0)}Yu*n&FG7v`7(e zb$v%dVy5CjFkOThR;bruXflWx(bM7s8ep zugBORo;Pa7cvGfKB*MTySCbSV9Yqws#@<1mc&Ibk0eKp4&F!=npwVsntd7>3%iXi1=*;s{SGBq``s~A4b zq7EvhD9rf@E4w2V!ZgcGHx6AiXRU8OZ*x@q>1=#Jdpyqsct10uDb|H`Fc=YaMC}vG z-Nxw5yGv(6M+$V-QiR@8SG5umilV18n1r5$%7vItvP6@$ua;J;QT{tUoI$V;rJM}* zNeB6VZjMlXm>5(~D!1i36a-mTAsS%C>H65fI}d8sgoP=p=NHjj1Xz97`H~BRywB$p3bHb&(4yD*x1Le zY|4^QOWNXiRvBs$=uNR!JP0Yh zsaNTbE-vvLYy&~?`mqsDVd=<*V`ciSWx!it@u9<-TVlp=9)Dn!9d0PbMQGQKmW%R6 z$-k0^mN!Ej2r)wZ3pBBN$P@&+TzN8ZA(EMGg>%)lt>=+<25vqwnmlKB0w1Qxkw*dB zfH&6vF`^;5)?W7lZ&%_*b%k}y0?`%h%~Dm%Cw4U^Zi+G$h$c@;PZ$4IRB~T=QH!zIF4~3mBWsl`M5)A5MJI zOt;c**feAFMbVkuw2APiM*K#;G8-Mx*iDY&3R-^jro6dnYeH#8)Y$k+%=Q7 zLeoEzccPW0Br=QCvZAEFbllS{`o_=fd+0=c(`WWQTA%+md)q^?ZvSYGX-=EfN=BbH zd&hm6c2E5Hct>k_CvBC1$^}i?56`CD9j|?CaJ=>~iI+WAEB9kYcc&}Il9ZgA^r(T$ z=)=pTfApD0Yu(-qLe^gjZdzH2il&Y!SD(H44u^b)J{&tyA6`AjUYpG#lem*Q{{aoY zqFIka_djWG7B|9`M=BgFefWSfhwEdO-xs!4mimY3R2|D4=hf(e0!fMO0aL0N_UXGn zHax<6nBsvZPx^-_#KC4~%9ITZUmYEEI_l_^z$Y<@w3mIy)O5hyMt`X&+r412`Ji;lRNI<_ z64Y{k|A8$q-B;gLsxTsDe(aRcO+Un^`#->L&ZQ*}k;Zq3S-C9SvOtZXrH+3HAkOrn3xmG$;kFs{P7Ts7l#EKg)Sy0J zS!`~chNRu&A101|->KiT83joAE)X-q2G;IqEaAa(q=AA`J8Y$9kwQj)$vIII?jLBe z6|{jh5Kk&L)XYu&rIjUoIs0BnZisErk%?u7+LwV()*P6wXP-VY3*W+Q|}?yEUR zw{aj*&eOT|R3_~tytB6T8Jl<9B@9);l6vwl!l}H|e=<*JV)(UcO~;*_njXn@ca%rp zF?WUmkGb_!XPkEm8*KlajbvB5sgrwvlW z5M$E__hY3Jx*c+s*jlSjTCN=HAMO(KE988Z!^vuvRipAIGeV8BNNd#HDP=}@k1^7L zrMsjg=e&-qPKb66ZNmMGe=wZT?WgvX`IeYg8h)-lm#CkwmQR%7k>%*c|M zT(X8eD5$6>{lmC}kkJIUR0upH*wh)0&en``i<)|7|0z@PffX*1=vVwd;`m=0{NgdZ zht3-~AYfx~4e82KOEs4`Sy|$2lW>d^d}Z#QH0hBxXFhdKpoaNtripks?c@pIP%>H2xTiv3^O-WE?-CyVeD{)nO34^ULmg6QjO>#vtZoMO# zaA%$p3UwmSauk%3&%B%NM<+wRi4*CN|1LieCux&tu#z6mKZ$u}#D*$rfbszkSYskn z(e>Qp6|Cm8j6LRi)exejKt%F!!|tda1B zt3d@t`;7d{m0?}l={!Qt1}U%{Y9vO*D`mA1CZr&?*g?M%=MUjuNO@R4ymW5RW=9MHP7y6W0x8NK;D9 zlKMqr>i$v|>iDaYKDa3hFbJxgBD*heO}eZyo5F7|+;(I3S9W+{hAXwi$}?XX+$f`} z$*K#8#aJk@9wg1H-lffqc-n6?F_ts{n=n7xX)&c{u(*0w?6_Edw6ZZ(CVZ331Ro>u z8eWQrZfa}uwNX7YE^gYGW3Id0uy?V)h>g(@9#;a$&eS+w76StxVLHywYf z5juUX5|H6*cP#9Z8)}vaEYZj6bKzAleI8VGbtl8OR@|zxG%`@nzsf~kiKkRP(t$Wm zkgXbH*Q-bh7U6&JG4N3)t`#b0a4IQ_%6?&KA{;5^oYNz0X%k0gFS`q{1sEv8Kkrs zwqtDLP|P@U#<~$BxE~2$Lv~vjz^Lv#7vO@E3J#rHY19`vztB2IDviVGc`jOl^uk+poMH z@uC70YlRn4f82!oP+5hC&SS5sgK#GO@S25Kn*=Fj*DhvRT{$_~2(w!r$_l{Huq_kX zQV#U9RH5#-Gdnv+X%X#G5JS>heXQgh)GDM8qo4cSJ{o!+YaNXEo~(5^`*UCG4rL0d zQ9#?9A#inO&<2J{=mS)h<*X^Ir`=e8he42!?4qJuNMy8dHyBY_I}XwdS&wm5#0zh9RlbmA2?_Gp3Z!Tl?mG#q zVtyrDg!fovg_Sn<^LcLjWGSr832Zu69hexUcLZlH0!?s}_PCc4J))^{MOq?#_oujF z>XZs&aSBS{h=61MY=Qt<;@5vylG^{sC-ql&zM5|f*a%jo7e@&`(p5n^#OMzqRK$`a zlb;DuE-!MG7eUMHfdDaNHJdC@gTI=^N259l?~8JZ%^aDC*npVRh8#A+a)kt&dHNvD z)xxcldXA>fNxS2<<%MN|Jfj@RxUsbg@u>0;yz;JLn3bus98Oi)Q5mGF>Ot}{>DEl rt0!!!8(#+eks*J3F{|925(d-jM5hdN)E+JJN@hm^fP1`ZA;JFvEm)P% literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/sk/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/sk/LC_MESSAGES/django.po new file mode 100644 index 0000000000..f0ae985eb6 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/sk/LC_MESSAGES/django.po @@ -0,0 +1,791 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Adam Zahradník, 2023 +# Jannis Leidel , 2011 +# 18f25ad6fa9930fc67cb11aca9d16a27, 2012-2013 +# Marian Andre , 2013-2015,2017 +# 29cf7e517570e1bc05a1509565db92ae_2a01508, 2011 +# Martin Tóth , 2017,2023 +# Miroslav Bendik , 2023 +# Peter Kuma, 2021 +# Peter Stríž , 2020 +# Zbynek Drlik , 2019 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-09-18 11:41-0300\n" +"PO-Revision-Date: 2023-12-04 07:05+0000\n" +"Last-Translator: Martin Tóth , 2017,2023\n" +"Language-Team: Slovak (http://app.transifex.com/django/django/language/sk/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: sk\n" +"Plural-Forms: nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n " +">= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);\n" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "Odstrániť označené %(verbose_name_plural)s" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "Úspešne odstránených %(count)d %(items)s." + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "Nedá sa odstrániť %(name)s" + +msgid "Are you sure?" +msgstr "Ste si istý?" + +msgid "Administration" +msgstr "Správa" + +msgid "All" +msgstr "Všetko" + +msgid "Yes" +msgstr "Áno" + +msgid "No" +msgstr "Nie" + +msgid "Unknown" +msgstr "Neznámy" + +msgid "Any date" +msgstr "Ľubovoľný dátum" + +msgid "Today" +msgstr "Dnes" + +msgid "Past 7 days" +msgstr "Posledných 7 dní" + +msgid "This month" +msgstr "Tento mesiac" + +msgid "This year" +msgstr "Tento rok" + +msgid "No date" +msgstr "Bez dátumu" + +msgid "Has date" +msgstr "S dátumom" + +msgid "Empty" +msgstr "Prázdna hodnota" + +msgid "Not empty" +msgstr "Neprázdna hodnota" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" +"Zadajte prosím správne %(username)s a heslo pre účet personálu - „staff " +"account“. Obe polia môžu obsahovať veľké a malé písmená." + +msgid "Action:" +msgstr "Akcia:" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "Pridať ďalší %(verbose_name)s" + +msgid "Remove" +msgstr "Odstrániť" + +msgid "Addition" +msgstr "Pridávanie" + +msgid "Change" +msgstr "Zmeniť" + +msgid "Deletion" +msgstr "Odstránenie" + +msgid "action time" +msgstr "čas akcie" + +msgid "user" +msgstr "používateľ" + +msgid "content type" +msgstr "typ obsahu" + +msgid "object id" +msgstr "identifikátor objektu" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/library/functions.html#repr) +msgid "object repr" +msgstr "reprezentácia objektu" + +msgid "action flag" +msgstr "príznak akcie" + +msgid "change message" +msgstr "zmeniť správu" + +msgid "log entry" +msgstr "položka záznamu" + +msgid "log entries" +msgstr "položky záznamu" + +#, python-format +msgid "Added “%(object)s”." +msgstr "Pridané „%(object)s“." + +#, python-format +msgid "Changed “%(object)s” — %(changes)s" +msgstr "Zmenené „%(object)s“ — %(changes)s " + +#, python-format +msgid "Deleted “%(object)s.”" +msgstr "Odstránené „%(object)s“." + +msgid "LogEntry Object" +msgstr "Objekt LogEntry" + +#, python-brace-format +msgid "Added {name} “{object}”." +msgstr "Pridaný {name} „{object}“." + +msgid "Added." +msgstr "Pridaný." + +msgid "and" +msgstr "a" + +#, python-brace-format +msgid "Changed {fields} for {name} “{object}”." +msgstr "Zmenené {fields} pre {name} „{object}“." + +#, python-brace-format +msgid "Changed {fields}." +msgstr "Zmenené {fields}." + +#, python-brace-format +msgid "Deleted {name} “{object}”." +msgstr "Odstránený {name} „{object}“." + +msgid "No fields changed." +msgstr "Polia nezmenené." + +msgid "None" +msgstr "Žiadne" + +msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." +msgstr "" +"Ak chcete vybrať viac ako jednu položku na Mac, podržte „Control“, alebo " +"„Command“" + +msgid "Select this object for an action - {}" +msgstr "Vybrať tento objekt pre akciu - {}" + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully." +msgstr "Objekt {name} „{obj}“ bol úspešne pridaný." + +msgid "You may edit it again below." +msgstr "Ďalšie zmeny môžete urobiť nižšie." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was added successfully. You may add another {name} below." +msgstr "" +"Objekt {name} „{obj}“ bol úspešne pridaný. Môžete pridať ďaľší {name} nižšie." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may edit it again below." +msgstr "" +"Objekt {name} „{obj}“ bol úspešne zmenený. Ďalšie zmeny môžete urobiť nižšie." + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully. You may edit it again below." +msgstr "" +"Objekt {name} „{obj}“ bol úspešne pridaný. Ďalšie zmeny môžete urobiť nižšie." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may add another {name} " +"below." +msgstr "" +"Objekt {name} „{obj}“ bol úspešne zmenený. Môžete pridať ďaľší {name} nižšie." + +#, python-brace-format +msgid "The {name} “{obj}” was changed successfully." +msgstr "Objekt {name} „{obj}“ bol úspešne zmenený." + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" +"Položky musia byť vybrané, ak chcete na nich vykonať akcie. Neboli vybrané " +"žiadne položky." + +msgid "No action selected." +msgstr "Nebola vybraná žiadna akcia." + +#, python-format +msgid "The %(name)s “%(obj)s” was deleted successfully." +msgstr "Objekt %(name)s „%(obj)s“ bol úspešne odstránený." + +#, python-format +msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" +msgstr "Objekt %(name)s s ID „%(key)s“ neexistuje. Možno bol odstránený?" + +#, python-format +msgid "Add %s" +msgstr "Pridať %s" + +#, python-format +msgid "Change %s" +msgstr "Zmeniť %s" + +#, python-format +msgid "View %s" +msgstr "Zobraziť%s" + +msgid "Database error" +msgstr "Chyba databázy" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "%(count)s %(name)s bola úspešne zmenená." +msgstr[1] "%(count)s %(name)s boli úspešne zmenené." +msgstr[2] "%(count)s %(name)s bolo úspešne zmenených." +msgstr[3] "%(count)s %(name)s bolo úspešne zmenených." + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "%(total_count)s vybraná" +msgstr[1] "Všetky %(total_count)s vybrané" +msgstr[2] "Všetkých %(total_count)s vybraných" +msgstr[3] "Všetkých %(total_count)s vybraných" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "0 z %(cnt)s vybraných" + +#, python-format +msgid "Change history: %s" +msgstr "Zoznam zmien: %s" + +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "%(class_name)s %(instance)s" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" +"Vymazanie %(class_name)s %(instance)s vyžaduje vymazanie nasledovných " +"súvisiacich chránených objektov: %(related_objects)s" + +msgid "Django site admin" +msgstr "Správa Django stránky" + +msgid "Django administration" +msgstr "Správa Django" + +msgid "Site administration" +msgstr "Správa stránky" + +msgid "Log in" +msgstr "Prihlásenie" + +#, python-format +msgid "%(app)s administration" +msgstr "%(app)s správa" + +msgid "Page not found" +msgstr "Stránka nenájdená" + +msgid "We’re sorry, but the requested page could not be found." +msgstr "Ľutujeme, ale požadovaná stránka nebola nájdená." + +msgid "Home" +msgstr "Domov" + +msgid "Server error" +msgstr "Chyba servera" + +msgid "Server error (500)" +msgstr "Chyba servera (500)" + +msgid "Server Error (500)" +msgstr "Chyba servera (500)" + +msgid "" +"There’s been an error. It’s been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" +"Došlo k chybe. Chyba bola nahlásená správcovi webu prostredníctvom e-mailu a " +"zanedlho by mala byť odstránená. Ďakujeme za vašu trpezlivosť." + +msgid "Run the selected action" +msgstr "Vykonať vybranú akciu" + +msgid "Go" +msgstr "Vykonať" + +msgid "Click here to select the objects across all pages" +msgstr "Kliknite sem pre výber objektov na všetkých stránkach" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "Vybrať všetkých %(total_count)s %(module_name)s" + +msgid "Clear selection" +msgstr "Zrušiť výber" + +msgid "Breadcrumbs" +msgstr "Mininavigácia" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "Modely v %(name)s aplikácii" + +msgid "Add" +msgstr "Pridať" + +msgid "View" +msgstr "Zobraziť" + +msgid "You don’t have permission to view or edit anything." +msgstr "Nemáte právo na zobrazenie alebo vykonávanie zmien." + +msgid "" +"First, enter a username and password. Then, you’ll be able to edit more user " +"options." +msgstr "" +"Najskôr zadajte používateľské meno a heslo. Potom budete môcť upraviť viac " +"používateľských nastavení." + +msgid "Enter a username and password." +msgstr "Zadajte používateľské meno a heslo." + +msgid "Change password" +msgstr "Zmeniť heslo" + +msgid "Please correct the error below." +msgid_plural "Please correct the errors below." +msgstr[0] "Prosím, opravte chybu uvedenú nižšie." +msgstr[1] "Prosím, opravte chyby uvedené nižšie." +msgstr[2] "Prosím, opravte chyby uvedené nižšie." +msgstr[3] "Prosím, opravte chyby uvedené nižšie." + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "Zadajte nové heslo pre používateľa %(username)s." + +msgid "Skip to main content" +msgstr "Preskočiť na hlavný obsah" + +msgid "Welcome," +msgstr "Vitajte," + +msgid "View site" +msgstr "Pozrieť stránku" + +msgid "Documentation" +msgstr "Dokumentácia" + +msgid "Log out" +msgstr "Odhlásiť" + +#, python-format +msgid "Add %(name)s" +msgstr "Pridať %(name)s" + +msgid "History" +msgstr "Zmeny" + +msgid "View on site" +msgstr "Pozrieť na stránke" + +msgid "Filter" +msgstr "Filtrovať" + +msgid "Hide counts" +msgstr "Skryť počet" + +msgid "Show counts" +msgstr "Zobraziť počet" + +msgid "Clear all filters" +msgstr "Zrušiť všetky filtre" + +msgid "Remove from sorting" +msgstr "Odstrániť z triedenia" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "Triedenie priority: %(priority_number)s " + +msgid "Toggle sorting" +msgstr "Prepnúť triedenie" + +msgid "Toggle theme (current theme: auto)" +msgstr "Prepnúť vzhľad (aktuálne: automatický)" + +msgid "Toggle theme (current theme: light)" +msgstr "Prepnúť vzhľad (aktuálne: svetlý)" + +msgid "Toggle theme (current theme: dark)" +msgstr "Prepnúť vzhľad (aktuálne: tmavý)" + +msgid "Delete" +msgstr "Odstrániť" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" +"Odstránenie objektu %(object_name)s „%(escaped_object)s“ by malo za následok " +"aj odstránenie súvisiacich objektov. Váš účet však nemá oprávnenie na " +"odstránenie nasledujúcich typov objektov:" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" +"Vymazanie %(object_name)s „%(escaped_object)s“ vyžaduje vymazanie " +"nasledovných súvisiacich chránených objektov:" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" +"Ste si istý, že chcete odstrániť objekt %(object_name)s " +"„%(escaped_object)s“? Všetky nasledujúce súvisiace objekty budú odstránené:" + +msgid "Objects" +msgstr "Objekty" + +msgid "Yes, I’m sure" +msgstr "Áno, som si istý" + +msgid "No, take me back" +msgstr "Nie, chcem sa vrátiť" + +msgid "Delete multiple objects" +msgstr "Odstrániť viacero objektov" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" +"Odstránenie označených %(objects_name)s by spôsobilo odstránenie súvisiacich " +"objektov, ale váš účet nemá oprávnenie na odstránenie nasledujúcich typov " +"objektov:" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" +"Vymazanie označených %(objects_name)s vyžaduje vymazanie nasledujúcich " +"chránených súvisiacich objektov:" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" +"Ste si istý, že chcete odstrániť označené %(objects_name)s? Odstránia sa " +"všetky nasledujúce objekty a ich súvisiace položky:" + +msgid "Delete?" +msgstr "Odstrániť?" + +#, python-format +msgid " By %(filter_title)s " +msgstr "Podľa %(filter_title)s " + +msgid "Summary" +msgstr "Súhrn" + +msgid "Recent actions" +msgstr "Posledné akcie" + +msgid "My actions" +msgstr "Moje akcie" + +msgid "None available" +msgstr "Nedostupné" + +msgid "Added:" +msgstr "Pridaný:" + +msgid "Changed:" +msgstr "Zmenený:" + +msgid "Deleted:" +msgstr "Odstránený:" + +msgid "Unknown content" +msgstr "Neznámy obsah" + +msgid "" +"Something’s wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" +"Niečo nie je v poriadku s vašou inštaláciou databázy. Zabezpečte, aby boli " +"vytvorené potrebné databázové tabuľky a taktiež zabezpečte, aby príslušný " +"používateľ mohol čítať databázu." + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" +"Ste prihlásený ako %(username)s, ale nemáte práva k tejto stránke. Chcete sa " +"prihlásiť do iného účtu?" + +msgid "Forgotten your password or username?" +msgstr "Zabudli ste heslo alebo používateľské meno?" + +msgid "Toggle navigation" +msgstr "Prepnúť navigáciu" + +msgid "Sidebar" +msgstr "Bočný panel" + +msgid "Start typing to filter…" +msgstr "Filtrovať začnete písaním textu…" + +msgid "Filter navigation items" +msgstr "Filtrovať položky navigácie" + +msgid "Date/time" +msgstr "Dátum a čas" + +msgid "User" +msgstr "Používateľ" + +msgid "Action" +msgstr "Akcia" + +msgid "entry" +msgid_plural "entries" +msgstr[0] "záznam" +msgstr[1] "záznamy" +msgstr[2] "záznamov" +msgstr[3] "záznamov" + +msgid "" +"This object doesn’t have a change history. It probably wasn’t added via this " +"admin site." +msgstr "" +"Tento objekt nemá zoznam zmien. Pravdepodobne nebol pridaný prostredníctvom " +"tejto správcovskej stránky." + +msgid "Show all" +msgstr "Zobraziť všetky" + +msgid "Save" +msgstr "Uložiť" + +msgid "Popup closing…" +msgstr "Vyskakovacie okno sa zatvára…" + +msgid "Search" +msgstr "Vyhľadávanie" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "%(counter)s výsledok" +msgstr[1] "%(counter)s výsledky" +msgstr[2] "%(counter)s výsledkov" +msgstr[3] "%(counter)s výsledkov" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "%(full_result_count)s spolu" + +msgid "Save as new" +msgstr "Uložiť ako nový" + +msgid "Save and add another" +msgstr "Uložiť a pridať ďalší" + +msgid "Save and continue editing" +msgstr "Uložiť a pokračovať v úpravách" + +msgid "Save and view" +msgstr "Uložiť a zobraziť" + +msgid "Close" +msgstr "Zatvoriť" + +#, python-format +msgid "Change selected %(model)s" +msgstr "Zmeniť vybrané %(model)s" + +#, python-format +msgid "Add another %(model)s" +msgstr "Pridať ďalší %(model)s" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "Odstrániť vybrané %(model)s" + +#, python-format +msgid "View selected %(model)s" +msgstr "Zobraziť vybrané %(model)s" + +msgid "Thanks for spending some quality time with the web site today." +msgstr "" +"Ďakujeme, že ste dnes strávili pár pekných okamihov na tejto webovej stránke." + +msgid "Log in again" +msgstr "Znova sa prihlásiť" + +msgid "Password change" +msgstr "Zmena hesla" + +msgid "Your password was changed." +msgstr "Vaše heslo bolo zmenené." + +msgid "" +"Please enter your old password, for security’s sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" +"Z bezpečnostných dôvodov zadajte staré heslo a potom nové heslo dvakrát, aby " +"sme mohli overiť, že ste ho zadali správne." + +msgid "Change my password" +msgstr "Zmeniť moje heslo" + +msgid "Password reset" +msgstr "Obnovenie hesla" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "Vaše heslo bolo nastavené. Môžete pokračovať a prihlásiť sa." + +msgid "Password reset confirmation" +msgstr "Potvrdenie obnovenia hesla" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" +"Zadajte nové heslo dvakrát, aby sme mohli overiť, že ste ho zadali správne." + +msgid "New password:" +msgstr "Nové heslo:" + +msgid "Confirm password:" +msgstr "Potvrdenie hesla:" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"Odkaz na obnovenie hesla je neplatný, pretože už bol pravdepodobne raz " +"použitý. Prosím, požiadajte znovu o obnovu hesla." + +msgid "" +"We’ve emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" +"Poslali sme vám e-mailom inštrukcie pre nastavenie hesla, ak existuje konto " +"so zadanou emailovou adresou. Čoskoro by ste ich mali dostať." + +msgid "" +"If you don’t receive an email, please make sure you’ve entered the address " +"you registered with, and check your spam folder." +msgstr "" +"Ak vám nepríde e-mail, uistite sa, že ste zadali adresu, s ktorou ste sa " +"registrovali a skontrolujte svoj spamový priečinok." + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" +"Tento e-mail ste dostali preto, lebo ste požiadali o obnovenie hesla pre " +"užívateľský účet na %(site_name)s." + +msgid "Please go to the following page and choose a new password:" +msgstr "Prosím, choďte na túto stránku a zvoľte si nové heslo:" + +msgid "Your username, in case you’ve forgotten:" +msgstr "Ak ste náhodou zabudli, vaše používateľské meno je:" + +msgid "Thanks for using our site!" +msgstr "Ďakujeme, že používate našu stránku!" + +#, python-format +msgid "The %(site_name)s team" +msgstr "Tím %(site_name)s" + +msgid "" +"Forgotten your password? Enter your email address below, and we’ll email " +"instructions for setting a new one." +msgstr "" +"Zabudli ste heslo? Zadajte vašu e-mailovú adresu nižšie a my vám pošleme " +"inštrukcie pre nastavenie nového hesla." + +msgid "Email address:" +msgstr "E-mailová adresa:" + +msgid "Reset my password" +msgstr "Obnova môjho hesla" + +msgid "Select all objects on this page for an action" +msgstr "Vybrať všetky objekty na tejto strane pre akciu" + +msgid "All dates" +msgstr "Všetky dátumy" + +#, python-format +msgid "Select %s" +msgstr "Vybrať %s" + +#, python-format +msgid "Select %s to change" +msgstr "Vybrať %s na úpravu" + +#, python-format +msgid "Select %s to view" +msgstr "Pre zobrazenie %s zvolte" + +msgid "Date:" +msgstr "Dátum:" + +msgid "Time:" +msgstr "Čas:" + +msgid "Lookup" +msgstr "Vyhľadanie" + +msgid "Currently:" +msgstr "Aktuálne:" + +msgid "Change:" +msgstr "Zmeniť:" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/sk/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/sk/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..7e9530138b7431e9e0031db0cbeab37161badd7c GIT binary patch literal 6305 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/sk/LC_MESSAGES/djangojs.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/sk/LC_MESSAGES/djangojs.po new file mode 100644 index 0000000000..e4b2fd45e2 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/sk/LC_MESSAGES/djangojs.po @@ -0,0 +1,337 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Adam Zahradník, 2023 +# Dimitris Glezos , 2012 +# Jannis Leidel , 2011 +# 18f25ad6fa9930fc67cb11aca9d16a27, 2012 +# Marian Andre , 2012,2015 +# 29cf7e517570e1bc05a1509565db92ae_2a01508, 2011 +# Martin Tóth , 2017,2023 +# Peter Kuma, 2021 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-09-18 15:04-0300\n" +"PO-Revision-Date: 2023-12-04 07:59+0000\n" +"Last-Translator: Martin Tóth , 2017,2023\n" +"Language-Team: Slovak (http://app.transifex.com/django/django/language/sk/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: sk\n" +"Plural-Forms: nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n " +">= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);\n" + +#, javascript-format +msgid "Available %s" +msgstr "Dostupné %s" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" +"Toto je zoznam dostupných %s. Pre výber je potrebné označiť ich v poli a " +"následne kliknutím na šípku „Vybrať“ presunúť." + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "Píšte do tohto poľa pre vyfiltrovanie dostupných %s." + +msgid "Filter" +msgstr "Filtrovať" + +msgid "Choose all" +msgstr "Vybrať všetko" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "Kliknite sem pre vybratie všetkých %s naraz." + +msgid "Choose" +msgstr "Vybrať" + +msgid "Remove" +msgstr "Odstrániť" + +#, javascript-format +msgid "Chosen %s" +msgstr "Vybrané %s" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" +"Toto je zoznam dostupných %s. Pre vymazanie je potrebné označiť ich v poli a " +"následne kliknutím na šípku „Vymazať“ vymazať." + +#, javascript-format +msgid "Type into this box to filter down the list of selected %s." +msgstr "Píšte do tohto poľa pre vyfiltrovanie označených %s." + +msgid "Remove all" +msgstr "Odstrániť všetky" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "Kliknite sem pre vymazanie vybratých %s naraz." + +#, javascript-format +msgid "%s selected option not visible" +msgid_plural "%s selected options not visible" +msgstr[0] "%s označená možnosť sa nezobrazuje" +msgstr[1] "%s označené možnosti sa nezobrazujú" +msgstr[2] "%s označených možností sa nezobrazuje" +msgstr[3] "%s označených možností sa nezobrazuje" + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "%(sel)s z %(cnt)s vybrané" +msgstr[1] "%(sel)s z %(cnt)s vybrané" +msgstr[2] "%(sel)s z %(cnt)s vybraných" +msgstr[3] "%(sel)s z %(cnt)s vybraných" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" +"Vrámci jednotlivých editovateľných polí máte neuložené zmeny. Ak vykonáte " +"akciu, vaše zmeny budú stratené." + +msgid "" +"You have selected an action, but you haven’t saved your changes to " +"individual fields yet. Please click OK to save. You’ll need to re-run the " +"action." +msgstr "" +"Vybrali ste akciu, ale neuložili ste jednotlivé polia. Prosím, uložte zmeny " +"kliknutím na OK. Akciu budete musieť vykonať znova." + +msgid "" +"You have selected an action, and you haven’t made any changes on individual " +"fields. You’re probably looking for the Go button rather than the Save " +"button." +msgstr "" +"Vybrali ste akciu, ale neurobili ste žiadne zmeny v jednotlivých poliach. " +"Pravdepodobne ste chceli použiť tlačidlo Vykonať namiesto Uložiť." + +msgid "Now" +msgstr "Teraz" + +msgid "Midnight" +msgstr "Polnoc" + +msgid "6 a.m." +msgstr "6:00" + +msgid "Noon" +msgstr "Poludnie" + +msgid "6 p.m." +msgstr "18:00" + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "Poznámka: Ste %s hodinu pred časom servera." +msgstr[1] "Poznámka: Ste %s hodiny pred časom servera." +msgstr[2] "Poznámka: Ste %s hodín pred časom servera." +msgstr[3] "Poznámka: Ste %s hodín pred časom servera." + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "Poznámka: Ste %s hodinu za časom servera." +msgstr[1] "Poznámka: Ste %s hodiny za časom servera." +msgstr[2] "Poznámka: Ste %s hodín za časom servera." +msgstr[3] "Poznámka: Ste %s hodín za časom servera." + +msgid "Choose a Time" +msgstr "Vybrať Čas" + +msgid "Choose a time" +msgstr "Vybrať čas" + +msgid "Cancel" +msgstr "Zrušiť" + +msgid "Today" +msgstr "Dnes" + +msgid "Choose a Date" +msgstr "Vybrať Dátum" + +msgid "Yesterday" +msgstr "Včera" + +msgid "Tomorrow" +msgstr "Zajtra" + +msgid "January" +msgstr "január" + +msgid "February" +msgstr "február" + +msgid "March" +msgstr "marec" + +msgid "April" +msgstr "apríl" + +msgid "May" +msgstr "máj" + +msgid "June" +msgstr "jún" + +msgid "July" +msgstr "júl" + +msgid "August" +msgstr "august" + +msgid "September" +msgstr "september" + +msgid "October" +msgstr "október" + +msgid "November" +msgstr "november" + +msgid "December" +msgstr "december" + +msgctxt "abbrev. month January" +msgid "Jan" +msgstr "jan." + +msgctxt "abbrev. month February" +msgid "Feb" +msgstr "feb." + +msgctxt "abbrev. month March" +msgid "Mar" +msgstr "mar." + +msgctxt "abbrev. month April" +msgid "Apr" +msgstr "apr." + +msgctxt "abbrev. month May" +msgid "May" +msgstr "máj" + +msgctxt "abbrev. month June" +msgid "Jun" +msgstr "jún" + +msgctxt "abbrev. month July" +msgid "Jul" +msgstr "júl" + +msgctxt "abbrev. month August" +msgid "Aug" +msgstr "aug." + +msgctxt "abbrev. month September" +msgid "Sep" +msgstr "sep." + +msgctxt "abbrev. month October" +msgid "Oct" +msgstr "okt." + +msgctxt "abbrev. month November" +msgid "Nov" +msgstr "nov." + +msgctxt "abbrev. month December" +msgid "Dec" +msgstr "dec." + +msgid "Sunday" +msgstr "nedeľa" + +msgid "Monday" +msgstr "pondelok" + +msgid "Tuesday" +msgstr "utorok" + +msgid "Wednesday" +msgstr "streda" + +msgid "Thursday" +msgstr "štvrtok" + +msgid "Friday" +msgstr "piatok" + +msgid "Saturday" +msgstr "sobota" + +msgctxt "abbrev. day Sunday" +msgid "Sun" +msgstr "ne" + +msgctxt "abbrev. day Monday" +msgid "Mon" +msgstr "po" + +msgctxt "abbrev. day Tuesday" +msgid "Tue" +msgstr "ut" + +msgctxt "abbrev. day Wednesday" +msgid "Wed" +msgstr "st" + +msgctxt "abbrev. day Thursday" +msgid "Thur" +msgstr "št" + +msgctxt "abbrev. day Friday" +msgid "Fri" +msgstr "pi" + +msgctxt "abbrev. day Saturday" +msgid "Sat" +msgstr "so" + +msgctxt "one letter Sunday" +msgid "S" +msgstr "N" + +msgctxt "one letter Monday" +msgid "M" +msgstr "P" + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "U" + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "S" + +msgctxt "one letter Thursday" +msgid "T" +msgstr "Š" + +msgctxt "one letter Friday" +msgid "F" +msgstr "P" + +msgctxt "one letter Saturday" +msgid "S" +msgstr "S" + +msgid "Show" +msgstr "Zobraziť" + +msgid "Hide" +msgstr "Skryť" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/sl/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/sl/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..0c262d29286af65b11b4fd28c6489b56f179bd62 GIT binary patch literal 15077 zcmc(l3y>vMdB=~4in|JkiVu7o&~%szI?@gFce4^du3DW77@55d1$!w=7!PBiAZU<95DE`XwD}D90`NHDLKl50?e+Sj?I0l~uo&v%`a|x(^uLZ@*Ye3OG4{E&u zsD3wtqT@F3dEg;X>pcjr2fqSp-G2sO0{$elpZIKJuH$n(F7SBpKJX^+LGWsD-ShptH-gfGw}R^bUQqnJJG6faJcIAgf#T!e zfuj2{Q0x5|Wb5W9pvFHL=D{Mf7DV*sC7{;d1Ztn>g5v*nQ2lp>`u(8RZG`Ug3!zYmlg9t5?|&w?8F1yJjK z9b5p-?<-UA|P^AOkv9|5)R^HCDXc-0P;%H8@J*onP6yO} zdZ6gJDYV}Xik`ay-XH2e18P4HgZDlOdO=Lj9C*3sYY&th-wysc_y8#Vnny^8$UF=- z!Eb{ax8)U{U;9Aq`x;Puk3rGZ4)sf*_;f3X$jm*U=KB*+{QgeB$3Tty5vcwB43u2| z3)Fs&UvJFy;E7-Xz6+Fn{Q{JHPuk$;KOGc3TS4*dGEjQ650w73L9KHWD80J_)Hi0LGA@LFwI%;7Q;IK>4KyL9P2RsQJGI-T*!h&VdIJ_9fs~!CSz! zXM20T1Jpc!0ZOia4@#cj2j$QH8Nh;@1{X^IZ-F~V{W0)<${Cc4D6rXJ@@9eZZVKCXd;?5FKRh3yNGI;p2hW=+H&U*nNZ0iIz6ZzC z@appVHXprE5eIw=I1}FQ2>8i>g4a+!K=~kLJ>_>PlD+KVwUphIi1J>_8z_2iqg+an ztOpe7&U+{=ik@{I%+7#2z>SofD4(WC=Mu{AQC>kgmvRrKdY%_vp@Q#R{^=gA&i zKGEUbQu0tISWEeXvG4uieH(Zc<%N_JDDS7-OnDPU&y^I}=4JZenWB7{Qs|?4?8S?A z-G;fOQ^xthGATRp#=@F)8=_v1m#EQA(xfQ!s7$hy>Ut+Cii2s?Rkw8;lC&tJw9bdx zvVK~+>d?Lr6}H}t()qYyi+;Tx7sXt^(^;&o+BweSC+;2ROrFO@zf)Edj8%yO&3@4L zI9O3rW@Xf&&Ec@Nh&yq;j2mWKr(=)VIAyarTI+6Gqak(2jBO64&9(-!G#d2t+x8!Y zgDB0)W}MU3%^GnBHmT>Rb`a;YSrG?@su5OQuX%2?kKcUn_1SC-GH-nR<`36=ql3h+ zzg#wK#BHV#l`+eti&k%D8(dw?`tU!zEJSH(%gjPfT*emipw6#T$@PqN8{(oK_2R}s z->|VbW2+UXV21|GWt~p8kfig7qr)l<$ zu!w~$Z&bZjevj?1QUX8UbQpoe=aRV7C~mBo?VUKvZ3G*=NwT)9@sr2~w|A0y+oDv+ zF0;Pg31!HadY%=qhdFxDJi4&GgNm8$Svr^G-66TG-p}(mEjx?T=8~w4W}_muah_+n zKI2Vg(v964%}!SW*e(W`^g6K(D^~TZY}5}7RH7#9HjHch!Ct4IN3sgvZ)?C~nt<=t zkZDvpyRoQY9e$t`@(Em&UC8>K2HJ9MKY@Dw?Yy$yu)_&E+b`uU(7?L$pSF?3MY_JU z&1ewYUYvK6qCg8*IFOM)C>MKiAvaMmZ8^DPDiS(Wtokiw^P4X7|Huk#_>vYuFij)ND16FvT3|9G;REI?zFmJ&~_o= zJ4@%ctlOYZAEPeZ6e?@O393ftS1TV@Gncx|Ab?GyK{D^C@gAT0yeKCuG&(9)pTzEK z#_5C<>+zfK_7NhQ#ed+x;zm;1ZiYEJTC<))TfwqfKA)9koO*Sv=&@|9T4U?6I&HO{ zDNd2&ai$TQh+7kGiwm(Q#&=L6llNUjFC6=dxOC3Jb2dxknt4rTE+eCHVf8W}3e060 zPIBj*3$cwXWy%u2QI8YMB}%QEe8S=^o{Gv{^mU)tLA*rKMnO)G()DpgvxkaaMkz6K_o8+I(&}{$X7wGt83lEkR#Hw+l}%?vk&Li4lceIrwvV6;Kc2<{ip*4R%x&ExlUyk;#unga+zV|wejKo zLSvOIsl(|s=_IB1DyJ#qsOzeGm4|U2#deakZFM+K(gBM$2oPlK$!td!T8{{DGOH#X zqK-~0s>U*?Z`7;}2BtJN#`~-Y{cZ)(N$hau<%TL0NwPJ&vmDjtaS#40`gr?r8y!3H zXL(@rxrbdvdIxzX%T z+iA9tRyb7C{UlE2Dw&{uWNi)!qGFl<7@GU&tnWIx9#_YmI!ZQSu9i^9cGz3K=<{ue zc4rcV2}hl0LVxj@icsRTf>h0qRK}o$hK{fq{W(U~5@g`x+JsGr4rvu2Y`wMWJ+})+gCh2ZNO0t(;yrYt#pChI z?^)fnJ$1$Km*|HMa_Atlg(fsce5l#09V0|qCn3z!r<2VqxuCOcBy)3Ux%1P`;+-kDQ8Ypx*gn%tL1X~FeVmQUMlDW{^A-4*4q zGI{jS1Ov}Ldy=1X=$y{?+0EoW{PDD%=@84)1cTVnEX&^XrcGq0HLf_xiRR+#Y8dJ! zPh|z2Fu|sxvuWd+T|0N}813h*+SHouKAKJLgG+VJ-IS6%&X`A}1l4A3@7jT-;t;yyM>AJI~ zrZ#Ur%Wkz(mM;GDY(CE#eV$`)xS?t~m!`96I%nerYmD8Sp`0r(ezy%T73)bWqJz5! zHcxP?qBa+9W#=K?Z;_63RP7hN_{iauTdH1;vrb!ay6V+0`K$Uzs||=&ACYN5vf6-T z)d8NOY}EnH;Rtt~yc9L!vYid8jg2bf_R)3iXqCEzy4CKY3yw%>M&t6!=wxXYjW|Yi zWUeX_yZVrXwzzq$#-`!^T1k+e*9uj_hO7nk9C#p8nc?~RKnHeTBl99O>^w)cN24YqzImM5)wf!q2yn% z@F-0tIC$A3UyjM!$e3VaQjm5)qxVTw8n*g%wz!%`1)(%;B_v>jc!?=3`Lu3a63$Ky zj>dk{G~p^6b;H-MvYuz`=o)==f4zJSQPpN2Y?ALGZ5Y-uX_9B=azcG7iI#o4 z6iEcsYCzM9OW6Ri`A?FcD2I-D6C$m%}z=D$l+x8!jbpUL+(1WUE&m~cBdL>_|PC$wh+#ab=w{0 zh`U?;pyJq;;<~E+=qvAwrS8}<%N+Bsa(GF2*n}xj2bWom80vkK)+2|J38%57IkbZ2 zaKEcxdXFu=+|*XRe*Ud#2wY;Lzusy+Qtg!ZlQ`>LWmgjjHN~meH0hFMaLYYFQ3+5{ z&^Q=1at>t43I1Wk6aI!2Sg#fE8gjv&w957?uK%xiKAPVNDsA8`j$Q$_a*9H%7zyV` zoIz5rJk~hzm1`Rbb-4Wj!nb+!=pn8w#0s1%4yOL=F~O_m(RbNO9FDH#wh5yfkXWWk z8^_=F7u&A$j>%qjwGoOU-!DbAb&o$W+T zmgIQU;-v3=$rv%nwVNIJGH$ITZ*lHETZ&w25$YWg|mb&X>Q{s&{$*ULoge`0vW6TqdlQa?_ z{3W=g(jnH1_G%7}Nj(&wFp$V@x!;xokx@t~l>_i61sS#i1`DQ~rNZ3FSO6bz+jV|Ra-55Nfhb`wc0u?2=tDp z+HhkxdmrR%1&vRmC6YWh+kihSIF(cOpkT@jncgvfncW_rsGw$YZkoDEF;eWKN+!Cq zk&m?E#Yk_Yw-Hr77(?ArZ3iNyTut4ZrwZH7>4>XnaN3eW60M=0<70s`^j35b$#lS8 zj?qDTrGqZFSD#_jq4E!dm^=l6A)V?By|J)EFCo(iZW4W(ZACS^hafW>O%oK*efa0h z6dfeea++bjq>WMAM-S!gni(#Gzh&{EfNf(CwNX@;$m-T_DVtB-|H?>uZBCADw(s^5 zb!%ifdDK9yqTI>OS&vgjEFI=?M_Rc^C7AL+VfJCq(ZX&)XZ_wk1;dh=RmO?=I>B_{ ziZ|4XpHew|0un=a6n99FP&_G%I7Uo#c0RUGDRKk;j+A^)!}U+F8~?&ESiCgIm5z|s zNQHvtpnb!Hbf>I|z~|zw{u7Ho%FHySsa!-mg@uU5*rA0qc36)mh&ru)3*X^;Ni5_|?X_@S4}c2}O@R$jpG_BpCp zN>)rvNZS3C7xAn0sgm2}1O3H39;+Q4`7%m_$C`0h97==vlP#BXD^6WrfY>94oVJ{{ zq&wenR>APu1joR9x~7lO@MW@E{o4LOBaFDcTh^MS;#l`@b*1bwshei>H09Pn=9gy z2)IAzD0YctB-LtnvYs?69Al+Yp>ABE2(MK&f7;IM1}s8HxrocPE>5?IbPLf+x%m$r z)xaMIR`jDXjfQ;^by{VzL0op|wL4x)(Z7HQ(J6go_E*^^(#JdS_hJV+NxQd}bAyg= zRfTs?=uY(?zCuUGUGk>coD(?0OeV}8=VZyikpdd1?5NTP#2Uo0G6JIvL#dKVF>pXO zS7mm`Na$Q(p1?TtAGZh>q#PlpEma!ApVM(=vMa)HaQYSwx42W)QBqM`nH84S?na$H zH#np`KDi?ilH+CzU4)`cNeba-lOtUgSrwuD(aUY$oj4lA%d98emR&o3*6hVh5IfH* z^JWd^#j)bP8+m`8@aVUYag^S@+F8zvN(5K#UJNMweG8v*gpY`Y0aDWmZ|H;lFuQF-%FBPvJA8xKWu!Y#Pfm d-DG8jNgCnA9GM;or*;W1s$+CyDq7p-e*iWGaa{la literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/sl/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/sl/LC_MESSAGES/django.po new file mode 100644 index 0000000000..3993498390 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/sl/LC_MESSAGES/django.po @@ -0,0 +1,774 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Andrej Marsetič, 2022-2023 +# Jannis Leidel , 2011 +# Primoz Verdnik , 2017 +# zejn , 2013,2016 +# zejn , 2011-2013 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-09-18 11:41-0300\n" +"PO-Revision-Date: 2023-12-04 07:05+0000\n" +"Last-Translator: Andrej Marsetič, 2022-2023\n" +"Language-Team: Slovenian (http://app.transifex.com/django/django/language/" +"sl/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: sl\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || " +"n%100==4 ? 2 : 3);\n" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "Izbriši izbrano: %(verbose_name_plural)s" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "Uspešno izbrisano %(count)d %(items)s." + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "Ni mogoče izbrisati %(name)s" + +msgid "Are you sure?" +msgstr "Ste prepričani?" + +msgid "Administration" +msgstr "Administracija" + +msgid "All" +msgstr "Vse" + +msgid "Yes" +msgstr "Da" + +msgid "No" +msgstr "Ne" + +msgid "Unknown" +msgstr "Neznano" + +msgid "Any date" +msgstr "Kadarkoli" + +msgid "Today" +msgstr "Danes" + +msgid "Past 7 days" +msgstr "Zadnjih 7 dni" + +msgid "This month" +msgstr "Ta mesec" + +msgid "This year" +msgstr "Letos" + +msgid "No date" +msgstr "Brez datuma" + +msgid "Has date" +msgstr "Z datumom" + +msgid "Empty" +msgstr "Prazno" + +msgid "Not empty" +msgstr "Ni prazno" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" +"Vnesite veljavno %(username)s in geslo za račun osebja. Opomba: obe polji " +"upoštevata velikost črk." + +msgid "Action:" +msgstr "Dejanje:" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "Dodaj še en %(verbose_name)s" + +msgid "Remove" +msgstr "Odstrani" + +msgid "Addition" +msgstr "Dodatek" + +msgid "Change" +msgstr "Spremeni" + +msgid "Deletion" +msgstr "Izbris" + +msgid "action time" +msgstr "čas dejanja" + +msgid "user" +msgstr "uporabnik" + +msgid "content type" +msgstr "vrsta vsebine" + +msgid "object id" +msgstr "id objekta" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/library/functions.html#repr) +msgid "object repr" +msgstr "predstavitev objekta" + +msgid "action flag" +msgstr "zastavica dejanja" + +msgid "change message" +msgstr "spremeni sporočilo" + +msgid "log entry" +msgstr "dnevniški vnos" + +msgid "log entries" +msgstr "dnevniški vnosi" + +#, python-format +msgid "Added “%(object)s”." +msgstr "" + +#, python-format +msgid "Changed “%(object)s” — %(changes)s" +msgstr "" + +#, python-format +msgid "Deleted “%(object)s.”" +msgstr "Izbrisan “%(object)s.”" + +msgid "LogEntry Object" +msgstr "Dnevniški vnos" + +#, python-brace-format +msgid "Added {name} “{object}”." +msgstr "Dodan {name} “{object}”." + +msgid "Added." +msgstr "Dodano." + +msgid "and" +msgstr "in" + +#, python-brace-format +msgid "Changed {fields} for {name} “{object}”." +msgstr "" + +#, python-brace-format +msgid "Changed {fields}." +msgstr "Spremenjena polja {fields}." + +#, python-brace-format +msgid "Deleted {name} “{object}”." +msgstr "Izbrisan {name} “{object}”." + +msgid "No fields changed." +msgstr "Nobeno polje ni bilo spremenjeno." + +msgid "None" +msgstr "Brez vrednosti" + +msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." +msgstr "" + +msgid "Select this object for an action - {}" +msgstr "" + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully." +msgstr "" + +msgid "You may edit it again below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} “{obj}” was added successfully. You may add another {name} below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may edit it again below." +msgstr "" + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully. You may edit it again below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may add another {name} " +"below." +msgstr "" + +#, python-brace-format +msgid "The {name} “{obj}” was changed successfully." +msgstr "" + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" +"Izbrati morate vnose, nad katerimi želite izvesti operacijo. Noben vnos ni " +"bil spremenjen." + +msgid "No action selected." +msgstr "Brez dejanja." + +#, python-format +msgid "The %(name)s “%(obj)s” was deleted successfully." +msgstr "" + +#, python-format +msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" +msgstr "" + +#, python-format +msgid "Add %s" +msgstr "Dodaj %s" + +#, python-format +msgid "Change %s" +msgstr "Spremeni %s" + +#, python-format +msgid "View %s" +msgstr "Pogled %s" + +msgid "Database error" +msgstr "Napaka v podatkovni bazi" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "%(count)s %(name)s je bil uspešno spremenjen." +msgstr[1] "%(count)s %(name)s sta bila uspešno spremenjena." +msgstr[2] "%(count)s %(name)s so bili uspešno spremenjeni." +msgstr[3] "%(count)s %(name)s je bilo uspešno spremenjenih." + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "%(total_count)s izbran" +msgstr[1] "%(total_count)s izbrana" +msgstr[2] "Vsi %(total_count)s izbrani" +msgstr[3] "Vseh %(total_count)s izbranih" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "0 od %(cnt)s izbranih" + +#, python-format +msgid "Change history: %s" +msgstr "Zgodovina sprememb: %s" + +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "%(class_name)s %(instance)s" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" +"Brisanje %(class_name)s %(instance)s bi zahtevalo brisanje naslednjih " +"zaščitenih povezanih objektov: %(related_objects)s" + +msgid "Django site admin" +msgstr "Django administrativni vmesnik" + +msgid "Django administration" +msgstr "Django administracija" + +msgid "Site administration" +msgstr "Administracija strani" + +msgid "Log in" +msgstr "Prijavite se" + +#, python-format +msgid "%(app)s administration" +msgstr "Administracija %(app)s" + +msgid "Page not found" +msgstr "Strani ni mogoče najti" + +msgid "We’re sorry, but the requested page could not be found." +msgstr "Opravičujemo se, a zahtevane strani ni mogoče najti." + +msgid "Home" +msgstr "Domov" + +msgid "Server error" +msgstr "Napaka na strežniku" + +msgid "Server error (500)" +msgstr "Napaka na strežniku (500)" + +msgid "Server Error (500)" +msgstr "Napaka na strežniku (500)" + +msgid "" +"There’s been an error. It’s been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" +"Prišlo je do nepričakovane napake. Napaka je bila preko e-pošte javljena " +"administratorjem spletne strani in naj bo bila v kratkem odpravljena. Hvala " +"za potrpljenje." + +msgid "Run the selected action" +msgstr "Izvedi izbrano dejanje" + +msgid "Go" +msgstr "Pojdi" + +msgid "Click here to select the objects across all pages" +msgstr "Kliknite tu za izbiro vseh vnosov na vseh straneh" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "Izberi vse %(total_count)s %(module_name)s" + +msgid "Clear selection" +msgstr "Počisti izbiro" + +msgid "Breadcrumbs" +msgstr "Navigacijska sled" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "Model v %(name)s aplikaciji" + +msgid "Add" +msgstr "Dodaj" + +msgid "View" +msgstr "Pogled" + +msgid "You don’t have permission to view or edit anything." +msgstr "Nimate dovoljenja za ogled ali urejanje česarkoli." + +msgid "" +"First, enter a username and password. Then, you’ll be able to edit more user " +"options." +msgstr "" +"Najprej vnesite uporabniško ime in geslo. Nato boste lahko urejali več " +"uporabniških možnosti." + +msgid "Enter a username and password." +msgstr "Vnesite uporabniško ime in geslo." + +msgid "Change password" +msgstr "Spremeni geslo" + +msgid "Please correct the error below." +msgid_plural "Please correct the errors below." +msgstr[0] "Popravite spodnjo napako." +msgstr[1] "Prosim popravite spodnji napaki." +msgstr[2] "Prosim popravite spodnje napake." +msgstr[3] "Prosim popravite spodnje napake." + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "Vpišite novo geslo za uporabnika %(username)s." + +msgid "Skip to main content" +msgstr "Preskoči na glavno vsebino" + +msgid "Welcome," +msgstr "Dobrodošli," + +msgid "View site" +msgstr "Poglej stran" + +msgid "Documentation" +msgstr "Dokumentacija" + +msgid "Log out" +msgstr "Odjava" + +#, python-format +msgid "Add %(name)s" +msgstr "Dodaj %(name)s" + +msgid "History" +msgstr "Zgodovina" + +msgid "View on site" +msgstr "Poglej na strani" + +msgid "Filter" +msgstr "Filter" + +msgid "Hide counts" +msgstr "" + +msgid "Show counts" +msgstr "" + +msgid "Clear all filters" +msgstr "Počisti vse filtre" + +msgid "Remove from sorting" +msgstr "Odstrani iz razvrščanja" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "Prioriteta razvrščanja: %(priority_number)s" + +msgid "Toggle sorting" +msgstr "Preklopi razvrščanje" + +msgid "Toggle theme (current theme: auto)" +msgstr "Preklopi temo (trenutna tema: samodejno)" + +msgid "Toggle theme (current theme: light)" +msgstr "Preklopi temo (trenutna tema: svetla)" + +msgid "Toggle theme (current theme: dark)" +msgstr "Preklop teme (trenutna tema: temna)" + +msgid "Delete" +msgstr "Izbriši" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" +"Izbris %(object_name)s '%(escaped_object)s' bi pomenil izbris povezanih " +"objektov, vendar nimate dovoljenja za izbris naslednjih tipov objektov:" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" +"Brisanje %(object_name)s '%(escaped_object)s' bi zahtevalo brisanje " +"naslednjih zaščitenih povezanih objektov:" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" +"Ste prepričani, da želite izbrisati %(object_name)s \"%(escaped_object)s\"? " +"Vsi naslednji povezani elementi bodo izbrisani:" + +msgid "Objects" +msgstr "Objekti" + +msgid "Yes, I’m sure" +msgstr "Da, prepričan sem" + +msgid "No, take me back" +msgstr "Ne, vrni me nazaj" + +msgid "Delete multiple objects" +msgstr "Izbriši več objektov" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" +"Brisanje naslendjih %(objects_name)s bi imelo za posledico izbris naslednjih " +"povezanih objektov, vendar vaš račun nima pravic za izbris naslednjih tipov " +"objektov:" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" +"Brisanje izbranih %(objects_name)s zahteva brisanje naslednjih zaščitenih " +"povezanih objektov:" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" +"Ali res želite izbrisati izbrane %(objects_name)s? Vsi naslednji objekti in " +"njihovi povezani vnosi bodo izbrisani:" + +msgid "Delete?" +msgstr "Izbrišem?" + +#, python-format +msgid " By %(filter_title)s " +msgstr " Po %(filter_title)s " + +msgid "Summary" +msgstr "Povzetek" + +msgid "Recent actions" +msgstr "Nedavna dejanja" + +msgid "My actions" +msgstr "Moja dejanja" + +msgid "None available" +msgstr "Ni na voljo" + +msgid "Added:" +msgstr "" + +msgid "Changed:" +msgstr "" + +msgid "Deleted:" +msgstr "" + +msgid "Unknown content" +msgstr "Neznana vsebina" + +msgid "" +"Something’s wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" +"Prijavljeni ste kot %(username)s in nimate pravic za dostop do te strani. Bi " +"se želeli prijaviti z drugim računom?" + +msgid "Forgotten your password or username?" +msgstr "Ste pozabili geslo ali uporabniško ime?" + +msgid "Toggle navigation" +msgstr "Preklopi navigacijo" + +msgid "Sidebar" +msgstr "Stranska vrstica" + +msgid "Start typing to filter…" +msgstr "Za filtriranje začnite tipkati ..." + +msgid "Filter navigation items" +msgstr "Filtrirajte navigacijske elemente" + +msgid "Date/time" +msgstr "Datum/čas" + +msgid "User" +msgstr "Uporabnik" + +msgid "Action" +msgstr "Dejanje" + +msgid "entry" +msgid_plural "entries" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +msgid "" +"This object doesn’t have a change history. It probably wasn’t added via this " +"admin site." +msgstr "" + +msgid "Show all" +msgstr "Prikaži vse" + +msgid "Save" +msgstr "Shrani" + +msgid "Popup closing…" +msgstr "" + +msgid "Search" +msgstr "Išči" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "%(counter)s zadetkov" +msgstr[1] "%(counter)s zadetek" +msgstr[2] "%(counter)s zadetka" +msgstr[3] "%(counter)s zadetki" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "%(full_result_count)s skupno" + +msgid "Save as new" +msgstr "Shrani kot novo" + +msgid "Save and add another" +msgstr "Shrani in dodaj še eno" + +msgid "Save and continue editing" +msgstr "Shrani in nadaljuj z urejanjem" + +msgid "Save and view" +msgstr "Shrani in poglej" + +msgid "Close" +msgstr "Zapri" + +#, python-format +msgid "Change selected %(model)s" +msgstr "Spremeni izbran %(model)s" + +#, python-format +msgid "Add another %(model)s" +msgstr "Dodaj še en %(model)s " + +#, python-format +msgid "Delete selected %(model)s" +msgstr "Izbriši izbran %(model)s" + +#, python-format +msgid "View selected %(model)s" +msgstr "Poglej izbran %(model)s" + +msgid "Thanks for spending some quality time with the web site today." +msgstr "Hvala, ker ste si danes vzeli nekaj časa za to spletno stran." + +msgid "Log in again" +msgstr "Ponovna prijava" + +msgid "Password change" +msgstr "Sprememba gesla" + +msgid "Your password was changed." +msgstr "Vaše geslo je bilo spremenjeno." + +msgid "" +"Please enter your old password, for security’s sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" +"Zaradi varnosti vnesite svoje staro geslo in nato dvakrat vnesite novo " +"geslo, da bomo lahko preverili, ali ste ga pravilno vnesli." + +msgid "Change my password" +msgstr "Spremeni moje geslo" + +msgid "Password reset" +msgstr "Ponastavitev gesla" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "Vaše geslo je bilo nastavljeno. Zdaj se lahko prijavite." + +msgid "Password reset confirmation" +msgstr "Potrdite ponastavitev gesla" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "Vnesite vaše novo geslo dvakrat, da se izognete tipkarskim napakam." + +msgid "New password:" +msgstr "Novo geslo:" + +msgid "Confirm password:" +msgstr "Potrditev gesla:" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"Povezava za ponastavitev gesla ni bila veljavna, morda je bila že " +"uporabljena. Prosimo zahtevajte novo ponastavitev gesla." + +msgid "" +"We’ve emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" +"Po e-pošti smo vam poslali navodila za nastavitev gesla, če obstaja račun z " +"e-pošto, ki ste jo vnesli. Prejeti bi jih morali kmalu." + +msgid "" +"If you don’t receive an email, please make sure you’ve entered the address " +"you registered with, and check your spam folder." +msgstr "" +"Če ne prejmete e-poštnega sporočila, preverite, ali ste vnesli naslov, s " +"katerim ste se registrirali, in preverite mapo z vsiljeno pošto." + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" +"To e-pošto ste prejeli, ker je ste zahtevali ponastavitev gesla za vaš " +"uporabniški račun na %(site_name)s." + +msgid "Please go to the following page and choose a new password:" +msgstr "Prosimo pojdite na sledečo stran in izberite novo geslo:" + +msgid "Your username, in case you’ve forgotten:" +msgstr "Vaše uporabniško ime, če ste ga pozabili:" + +msgid "Thanks for using our site!" +msgstr "Hvala, ker uporabljate našo stran!" + +#, python-format +msgid "The %(site_name)s team" +msgstr "Ekipa strani %(site_name)s" + +msgid "" +"Forgotten your password? Enter your email address below, and we’ll email " +"instructions for setting a new one." +msgstr "" +"Ste pozabili geslo? Spodaj vnesite svoj e-poštni naslov in poslali vam bomo " +"navodila za nastavitev novega." + +msgid "Email address:" +msgstr "E-poštni naslov:" + +msgid "Reset my password" +msgstr "Ponastavi moje geslo" + +msgid "Select all objects on this page for an action" +msgstr "" + +msgid "All dates" +msgstr "Vsi datumi" + +#, python-format +msgid "Select %s" +msgstr "Izberite %s" + +#, python-format +msgid "Select %s to change" +msgstr "Izberite %s, ki ga želite spremeniti" + +#, python-format +msgid "Select %s to view" +msgstr "" + +msgid "Date:" +msgstr "Datum:" + +msgid "Time:" +msgstr "Ura:" + +msgid "Lookup" +msgstr "Poizvedba" + +msgid "Currently:" +msgstr "Trenutno:" + +msgid "Change:" +msgstr "Spremembe:" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/sl/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/sl/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..f01b6b48ce4ab10c72affabfca48766a01ed81b6 GIT binary patch literal 6146 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/sl/LC_MESSAGES/djangojs.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/sl/LC_MESSAGES/djangojs.po new file mode 100644 index 0000000000..08a77f67ec --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/sl/LC_MESSAGES/djangojs.po @@ -0,0 +1,328 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Andrej Marsetič, 2022,2024 +# Jannis Leidel , 2011 +# zejn , 2016 +# zejn , 2011-2012 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-05-22 11:46-0300\n" +"PO-Revision-Date: 2024-08-07 07:59+0000\n" +"Last-Translator: Andrej Marsetič, 2022,2024\n" +"Language-Team: Slovenian (http://app.transifex.com/django/django/language/" +"sl/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: sl\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || " +"n%100==4 ? 2 : 3);\n" + +#, javascript-format +msgid "Available %s" +msgstr "Možne %s" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" +"To je seznam možnih %s. Izbrane lahko izberete z izbiro v spodnjem okvirju " +"in s klikom na puščico \"Izberi\" med okvirjema." + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "Z vpisom niza v to polje, zožite izbor %s." + +msgid "Filter" +msgstr "Filtriraj" + +msgid "Choose all" +msgstr "Izberi vse" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "Kliknite za izbor vseh %s hkrati." + +msgid "Choose" +msgstr "Izberi" + +msgid "Remove" +msgstr "Odstrani" + +#, javascript-format +msgid "Chosen %s" +msgstr "Izbran %s" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" +"To je seznam možnih %s. Odvečne lahko odstranite z izbiro v okvirju in " +"klikom na puščico \"Odstrani\" med okvirjema." + +#, javascript-format +msgid "Type into this box to filter down the list of selected %s." +msgstr "Vnesite v to polje, da filtrirate seznam izbranih %s ." + +msgid "Remove all" +msgstr "Odstrani vse" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "Kliknite za odstranitev vseh %s hkrati." + +#, javascript-format +msgid "%s selected option not visible" +msgid_plural "%s selected options not visible" +msgstr[0] " %s izbrana možnosti ni vidna" +msgstr[1] " %s izbrani možnosti nista vidni" +msgstr[2] " %s izbrane možnosti niso vidne" +msgstr[3] " %s izbrane možnosti niso vidne" + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "%(sel)s od %(cnt)s izbranih" +msgstr[1] "%(sel)s od %(cnt)s izbran" +msgstr[2] "%(sel)s od %(cnt)s izbrana" +msgstr[3] "%(sel)s od %(cnt)s izbrani" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" +"Na nekaterih poljih, kjer je omogočeno urejanje, so neshranjene spremembe. V " +"primeru nadaljevanja bodo neshranjene spremembe trajno izgubljene." + +msgid "" +"You have selected an action, but you haven’t saved your changes to " +"individual fields yet. Please click OK to save. You’ll need to re-run the " +"action." +msgstr "" +"Izbrali ste dejanje, vendar še niste shranili sprememb posameznih polj. Za " +"shranjevanje kliknite V redu. Akcijo boste morali ponovno zagnati." + +msgid "" +"You have selected an action, and you haven’t made any changes on individual " +"fields. You’re probably looking for the Go button rather than the Save " +"button." +msgstr "" +"Izbrali ste dejanje in niste spremenili posameznih polj. Verjetno iščete " +"gumb Pojdi in ne gumb Shrani." + +msgid "Now" +msgstr "Takoj" + +msgid "Midnight" +msgstr "Polnoč" + +msgid "6 a.m." +msgstr "Ob 6h" + +msgid "Noon" +msgstr "Opoldne" + +msgid "6 p.m." +msgstr "Ob 18h" + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "Opomba: glede na čas na strežniku ste %s uro naprej." +msgstr[1] "Opomba: glede na čas na strežniku ste %s uri naprej." +msgstr[2] "Opomba: glede na čas na strežniku ste %s ure naprej." +msgstr[3] "Opomba: glede na čas na strežniku ste %s ur naprej." + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "Opomba: glede na čas na strežniku ste %s uro zadaj." +msgstr[1] "Opomba: glede na čas na strežniku ste %s uri zadaj." +msgstr[2] "Opomba: glede na čas na strežniku ste %s ure zadaj." +msgstr[3] "Opomba: glede na čas na strežniku ste %s ur zadaj." + +msgid "Choose a Time" +msgstr "Izberite čas" + +msgid "Choose a time" +msgstr "Izbor časa" + +msgid "Cancel" +msgstr "Prekliči" + +msgid "Today" +msgstr "Danes" + +msgid "Choose a Date" +msgstr "Izberite datum" + +msgid "Yesterday" +msgstr "Včeraj" + +msgid "Tomorrow" +msgstr "Jutri" + +msgid "January" +msgstr "januar" + +msgid "February" +msgstr "februar" + +msgid "March" +msgstr "marec" + +msgid "April" +msgstr "april" + +msgid "May" +msgstr "maj" + +msgid "June" +msgstr "junij" + +msgid "July" +msgstr "julij" + +msgid "August" +msgstr "avgust" + +msgid "September" +msgstr "september" + +msgid "October" +msgstr "oktober" + +msgid "November" +msgstr "november" + +msgid "December" +msgstr "december" + +msgctxt "abbrev. month January" +msgid "Jan" +msgstr "Jan" + +msgctxt "abbrev. month February" +msgid "Feb" +msgstr "Feb" + +msgctxt "abbrev. month March" +msgid "Mar" +msgstr "Mar" + +msgctxt "abbrev. month April" +msgid "Apr" +msgstr "Apr" + +msgctxt "abbrev. month May" +msgid "May" +msgstr "Maj" + +msgctxt "abbrev. month June" +msgid "Jun" +msgstr "Jun" + +msgctxt "abbrev. month July" +msgid "Jul" +msgstr "Jul" + +msgctxt "abbrev. month August" +msgid "Aug" +msgstr "Aug" + +msgctxt "abbrev. month September" +msgid "Sep" +msgstr "Sep" + +msgctxt "abbrev. month October" +msgid "Oct" +msgstr "Okt" + +msgctxt "abbrev. month November" +msgid "Nov" +msgstr "Nov" + +msgctxt "abbrev. month December" +msgid "Dec" +msgstr "Dec" + +msgid "Sunday" +msgstr "Nedelja" + +msgid "Monday" +msgstr "Ponedeljek" + +msgid "Tuesday" +msgstr "Torek" + +msgid "Wednesday" +msgstr "Sreda" + +msgid "Thursday" +msgstr "Četrtek" + +msgid "Friday" +msgstr "Petek" + +msgid "Saturday" +msgstr "Sobota" + +msgctxt "abbrev. day Sunday" +msgid "Sun" +msgstr "Ned" + +msgctxt "abbrev. day Monday" +msgid "Mon" +msgstr "Pon" + +msgctxt "abbrev. day Tuesday" +msgid "Tue" +msgstr "Tor" + +msgctxt "abbrev. day Wednesday" +msgid "Wed" +msgstr "Sre" + +msgctxt "abbrev. day Thursday" +msgid "Thur" +msgstr "Čet" + +msgctxt "abbrev. day Friday" +msgid "Fri" +msgstr "Pet" + +msgctxt "abbrev. day Saturday" +msgid "Sat" +msgstr "Sob" + +msgctxt "one letter Sunday" +msgid "S" +msgstr "N" + +msgctxt "one letter Monday" +msgid "M" +msgstr "P" + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "T" + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "S" + +msgctxt "one letter Thursday" +msgid "T" +msgstr "Č" + +msgctxt "one letter Friday" +msgid "F" +msgstr "P" + +msgctxt "one letter Saturday" +msgid "S" +msgstr "S" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/sq/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/sq/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..292f2cb3ec4fcef43106321b1785c2a37994f592 GIT binary patch literal 18886 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%0AD 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/sq/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/sq/LC_MESSAGES/django.po new file mode 100644 index 0000000000..9e571d047d --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/sq/LC_MESSAGES/django.po @@ -0,0 +1,790 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Besnik Bleta , 2011,2015 +# Besnik Bleta , 2020,2022-2024 +# Besnik Bleta , 2015,2018-2019 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-05-22 11:46-0300\n" +"PO-Revision-Date: 2024-08-07 07:05+0000\n" +"Last-Translator: Besnik Bleta , 2020,2022-2024\n" +"Language-Team: Albanian (http://app.transifex.com/django/django/language/" +"sq/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: sq\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "Fshiji %(verbose_name_plural)s e përzgjedhur" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "U fshinë me sukses %(count)d %(items)s." + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "S’mund të fshijë %(name)s" + +msgid "Are you sure?" +msgstr "Jeni i sigurt?" + +msgid "Administration" +msgstr "Administrim" + +msgid "All" +msgstr "Krejt" + +msgid "Yes" +msgstr "Po" + +msgid "No" +msgstr "Jo" + +msgid "Unknown" +msgstr "E panjohur" + +msgid "Any date" +msgstr "Çfarëdo date" + +msgid "Today" +msgstr "Sot" + +msgid "Past 7 days" +msgstr "7 ditët e shkuara" + +msgid "This month" +msgstr "Këtë muaj" + +msgid "This year" +msgstr "Këtë vit" + +msgid "No date" +msgstr "Pa datë" + +msgid "Has date" +msgstr "Ka datë" + +msgid "Empty" +msgstr "E zbrazët" + +msgid "Not empty" +msgstr "Jo e zbrazët" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" +"Ju lutemi, jepni %(username)s dhe fjalëkalimin e saktë për një llogari " +"ekipi. Kini parasysh se që të dy fushat mund të jenë të ndjeshme ndaj " +"shkrimit me shkronja të mëdha ose të vogla." + +msgid "Action:" +msgstr "Veprim:" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "Shtoni një tjetër %(verbose_name)s" + +msgid "Remove" +msgstr "Hiqe" + +msgid "Addition" +msgstr "Shtim" + +msgid "Change" +msgstr "Ndryshoje" + +msgid "Deletion" +msgstr "Fshirje" + +msgid "action time" +msgstr "kohë veprimi" + +msgid "user" +msgstr "përdorues" + +msgid "content type" +msgstr "lloj lënde" + +msgid "object id" +msgstr "id objekti" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/library/functions.html#repr) +msgid "object repr" +msgstr "paraqitje objekti" + +msgid "action flag" +msgstr "shenjë veprimi" + +msgid "change message" +msgstr "mesazh ndryshimi" + +msgid "log entry" +msgstr "zë regjistrimi" + +msgid "log entries" +msgstr "zëra regjistrimi" + +#, python-format +msgid "Added “%(object)s”." +msgstr "U shtua “%(object)s”." + +#, python-format +msgid "Changed “%(object)s” — %(changes)s" +msgstr "U ndryshua “%(object)s” — %(changes)s" + +#, python-format +msgid "Deleted “%(object)s.”" +msgstr "U fshi “%(object)s.”" + +msgid "LogEntry Object" +msgstr "Objekt LogEntry" + +#, python-brace-format +msgid "Added {name} “{object}”." +msgstr "U shtua {name} “{object}”." + +msgid "Added." +msgstr "U shtua." + +msgid "and" +msgstr "dhe " + +#, python-brace-format +msgid "Changed {fields} for {name} “{object}”." +msgstr "U ndryshuan {fields} për {name} “{object}”." + +#, python-brace-format +msgid "Changed {fields}." +msgstr "U ndryshuan {fields}." + +#, python-brace-format +msgid "Deleted {name} “{object}”." +msgstr "U fshi {name} “{object}”." + +msgid "No fields changed." +msgstr "S’u ndryshua ndonjë fushë." + +msgid "None" +msgstr "Asnjë" + +msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." +msgstr "" +"Që të përzgjidhni më shumë se një, mbani të shtypur “Control”, ose “Command” " +"në një Mac." + +msgid "Select this object for an action - {}" +msgstr "Përzgjidheni këtë objekt për një veprim - {}" + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully." +msgstr "{name} “{obj}” u shtua me sukses." + +msgid "You may edit it again below." +msgstr "Mund ta ripërpunoni më poshtë." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was added successfully. You may add another {name} below." +msgstr "" +"{name} “{obj}” u shtua me sukses. Mund të shtoni {name} tjetër më poshtë." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may edit it again below." +msgstr "" +"{name} “{obj}” u ndryshua me sukses. Mund ta përpunoni sërish më poshtë." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may add another {name} " +"below." +msgstr "" +"{name} “{obj}” u ndryshua me sukses. Mund të shtoni {name} tjetër më poshtë." + +#, python-brace-format +msgid "The {name} “{obj}” was changed successfully." +msgstr "{name} “{obj}” u ndryshua me sukses." + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" +"Duhen përzgjedhur objekte që të kryhen veprime mbi ta. S’u ndryshua ndonjë " +"objekt." + +msgid "No action selected." +msgstr "S’u përzgjodh ndonjë veprim." + +#, python-format +msgid "The %(name)s “%(obj)s” was deleted successfully." +msgstr "%(name)s “%(obj)s” u fshi me sukses." + +#, python-format +msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" +msgstr "%(name)s me “%(key)s” ID s’ekziston. Mos qe fshirë vallë?" + +#, python-format +msgid "Add %s" +msgstr "Shtoni %s" + +#, python-format +msgid "Change %s" +msgstr "Ndrysho %s" + +#, python-format +msgid "View %s" +msgstr "Shiheni %s" + +msgid "Database error" +msgstr "Gabim baze të dhënash" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "%(count)s %(name)s u ndryshua me sukses." +msgstr[1] "%(count)s %(name)s u ndryshuan me sukses." + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "%(total_count)s i përzgjedhur" +msgstr[1] "Krejt %(total_count)s të përzgjedhurat" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "0 nga %(cnt)s të përzgjedhur" + +#, python-format +msgid "Change history: %s" +msgstr "Ndryshoni historikun: %s" + +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "%(class_name)s %(instance)s" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" +"Fshirja e %(class_name)s %(instance)s do të lypte fshirjen e objekteve " +"vijuese të mbrojtura që kanë lidhje me ta: %(related_objects)s" + +msgid "Django site admin" +msgstr "Përgjegjës sajti Django" + +msgid "Django administration" +msgstr "Administrim i Django-s" + +msgid "Site administration" +msgstr "Administrim sajti" + +msgid "Log in" +msgstr "Hyni" + +#, python-format +msgid "%(app)s administration" +msgstr "Administrim %(app)s" + +msgid "Page not found" +msgstr "S’u gjet faqe" + +msgid "We’re sorry, but the requested page could not be found." +msgstr "Na ndjeni, por faqja e kërkuar s’u gjet dot." + +msgid "Home" +msgstr "Hyrje" + +msgid "Server error" +msgstr "Gabim shërbyesi" + +msgid "Server error (500)" +msgstr "Gabim shërbyesi (500)" + +msgid "Server Error (500)" +msgstr "Gabim Shërbyesi (500)" + +msgid "" +"There’s been an error. It’s been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" +"Pati një gabim. U është njoftuar përgjegjësve të sajtit përmes email-i dhe " +"do të duhej ndrequr pa humbur kohë. Faleminderit për durimin." + +msgid "Run the selected action" +msgstr "Xhiro veprimin e përzgjedhur" + +msgid "Go" +msgstr "Shko tek" + +msgid "Click here to select the objects across all pages" +msgstr "Klikoni këtu që të përzgjidhni objektet nëpër krejt faqet" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "Përzgjidhni krejt %(total_count)s %(module_name)s" + +msgid "Clear selection" +msgstr "Spastroje përzgjedhjen" + +msgid "Breadcrumbs" +msgstr "" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "Modele te aplikacioni %(name)s" + +msgid "Add" +msgstr "Shtoni" + +msgid "View" +msgstr "Shiheni" + +msgid "You don’t have permission to view or edit anything." +msgstr "S’keni leje të shihni apo të përpunoni gjë." + +msgid "" +"First, enter a username and password. Then, you’ll be able to edit more user " +"options." +msgstr "" +"Së pari, jepni një emër përdoruesi dhe një fjalëkalim. Mandej, do të jeni në " +"gjendje të përpunoni më tepër mundësi përdoruesi." + +msgid "Enter a username and password." +msgstr "Jepni emër përdoruesi dhe fjalëkalim." + +msgid "Change password" +msgstr "Ndryshoni fjalëkalimin" + +msgid "Set password" +msgstr "Caktoni fjalëkalim" + +msgid "Please correct the error below." +msgid_plural "Please correct the errors below." +msgstr[0] "Ju lutemi, ndreqni gabimin më poshtë." +msgstr[1] "Ju lutemi, ndreqni gabimet më poshtë." + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "" +"Jepni një fjalëkalim të ri për përdoruesin %(username)s." + +msgid "" +"This action will enable password-based authentication for " +"this user." +msgstr "" +"Ky veprim do të aktivizojë për këtë përdorues mirëfilltësim " +"me bazë fjalëkalimin." + +msgid "Disable password-based authentication" +msgstr "Çaktivizo mirëfilltësim me bazë fjalëkalimin" + +msgid "Enable password-based authentication" +msgstr "Aktivizo mirëfilltësim me bazë fjalëkalimin" + +msgid "Skip to main content" +msgstr "Kalo te lënda bazë" + +msgid "Welcome," +msgstr "Mirë se vini," + +msgid "View site" +msgstr "Shihni sajtin" + +msgid "Documentation" +msgstr "Dokumentim" + +msgid "Log out" +msgstr "Dilni" + +#, python-format +msgid "Add %(name)s" +msgstr "Shto %(name)s" + +msgid "History" +msgstr "Historik" + +msgid "View on site" +msgstr "Shiheni në sajt" + +msgid "Filter" +msgstr "Filtër" + +msgid "Hide counts" +msgstr "Fshihi numrat" + +msgid "Show counts" +msgstr "Shfaqi numrat" + +msgid "Clear all filters" +msgstr "Spastroji krejt filtrat" + +msgid "Remove from sorting" +msgstr "Hiqe prej renditjeje" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "Përparësi renditjesh: %(priority_number)s" + +msgid "Toggle sorting" +msgstr "Shfaq/fshih renditjen" + +msgid "Toggle theme (current theme: auto)" +msgstr "Ndërroni temën (temë e tanishme: auto)" + +msgid "Toggle theme (current theme: light)" +msgstr "Ndërroni temën (temë e tanishme: e çelët)" + +msgid "Toggle theme (current theme: dark)" +msgstr "Ndërroni temën (temë e tanishme: e errët)" + +msgid "Delete" +msgstr "Fshije" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" +"Fshirja e %(object_name)s '%(escaped_object)s' do të shpinte në fshirjen e " +"objekteve të lidhur me të, por llogaria juaj nuk ka leje për fshirje të " +"objekteve të llojeve të mëposhtëm:" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" +"Fshirja e %(object_name)s '%(escaped_object)s' do të kërkonte fshirjen e " +"objekteve të mbrojtur vijues, të lidhur me të:" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" +"Jeni i sigurt se doni të fshihet %(object_name)s \"%(escaped_object)s\"? " +"Krejt objektet vijues të lidhur me të do të fshihen:" + +msgid "Objects" +msgstr "Objekte" + +msgid "Yes, I’m sure" +msgstr "Po, jam i sigurt" + +msgid "No, take me back" +msgstr "Jo, kthemëni mbrapsht" + +msgid "Delete multiple objects" +msgstr "Fshini disa objekte njëherësh" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" +"Fshirja e %(objects_name)s të përzgjedhur do të shpjerë në fshirjen e " +"objekteve të lidhur me të, por llogaria juaj nuk ka leje të fshijë llojet " +"vijuese të objekteve:" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" +"Fshirja e %(objects_name)s të përzgjedhur do të kërkonte fshirjen e " +"objekteve të mbrojtur vijues, të lidhur me të:" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" +"Jeni i sigurt se doni të fshihen %(objects_name)s e përzgjedhur? Krejt " +"objektet vijues dhe gjëra të lidhura me ta do të fshihen:" + +msgid "Delete?" +msgstr "Të fshihet?" + +#, python-format +msgid " By %(filter_title)s " +msgstr " Nga %(filter_title)s " + +msgid "Summary" +msgstr "Përmbledhje" + +msgid "Recent actions" +msgstr "Veprime së fundi" + +msgid "My actions" +msgstr "Veprimet e mia" + +msgid "None available" +msgstr "Asnjë i passhëm" + +msgid "Added:" +msgstr "U shtua më:" + +msgid "Changed:" +msgstr "U ndryshua më:" + +msgid "Deleted:" +msgstr "U fshi më:" + +msgid "Unknown content" +msgstr "Lëndë e panjohur" + +msgid "" +"Something’s wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" +"Diç është gabim me instalimin tuaj të bazës së të dhënave. Sigurohuni që " +"janë krijuar tabelat e duhura të bazës së të dhënave dhe sigurohuni që baza " +"e të dhënave është e lexueshme nga përdoruesi i duhur." + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" +"Jeni mirëfilltësuar si %(username)s, por s’jeni i autorizuar të hyni në këtë " +"faqe. Do të donit të hyni në një llogari tjetër?" + +msgid "Forgotten your password or username?" +msgstr "Harruat fjalëkalimin ose emrin tuaj të përdoruesit?" + +msgid "Toggle navigation" +msgstr "Shfaqni/fshihni lëvizjen" + +msgid "Sidebar" +msgstr "Anështyllë" + +msgid "Start typing to filter…" +msgstr "Që të bëhet filtrim, filloni të shtypni…" + +msgid "Filter navigation items" +msgstr "Filtroni elementë lëvizjeje" + +msgid "Date/time" +msgstr "Datë/kohë" + +msgid "User" +msgstr "Përdorues" + +msgid "Action" +msgstr "Veprim" + +msgid "entry" +msgid_plural "entries" +msgstr[0] "zë" +msgstr[1] "zëra" + +msgid "" +"This object doesn’t have a change history. It probably wasn’t added via this " +"admin site." +msgstr "" +"Ky objekt nuk ka historik ndryshimesh. Gjasat janë të mos ketë qenë shtuar " +"përmes këtij sajti admin." + +msgid "Show all" +msgstr "Shfaqi krejt" + +msgid "Save" +msgstr "Ruaje" + +msgid "Popup closing…" +msgstr "Mbyllje flluske…" + +msgid "Search" +msgstr "Kërko" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "%(counter)s përfundim" +msgstr[1] "%(counter)s përfundime" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "%(full_result_count)s gjithsej" + +msgid "Save as new" +msgstr "Ruaje si të ri" + +msgid "Save and add another" +msgstr "Ruajeni dhe shtoni një tjetër" + +msgid "Save and continue editing" +msgstr "Ruajeni dhe vazhdoni përpunimin" + +msgid "Save and view" +msgstr "Ruajeni dhe shiheni" + +msgid "Close" +msgstr "Mbylle" + +#, python-format +msgid "Change selected %(model)s" +msgstr "Ndryshoni %(model)s e përzgjedhur" + +#, python-format +msgid "Add another %(model)s" +msgstr "Shtoni një %(model)s tjetër" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "Fshije %(model)s e përzgjedhur" + +#, python-format +msgid "View selected %(model)s" +msgstr "Shihni %(model)s e përzgjedhur" + +msgid "Thanks for spending some quality time with the web site today." +msgstr "Faleminderit që harxhoni pak kohë me sajtin sot." + +msgid "Log in again" +msgstr "Hyni sërish" + +msgid "Password change" +msgstr "Ndryshim fjalëkalimi" + +msgid "Your password was changed." +msgstr "Fjalëkalimi juaj u ndryshua." + +msgid "" +"Please enter your old password, for security’s sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" +"Ju lutemi, për hir të sigurisë, jepni fjalëkalimin tuaj të vjetër,dhe mandej " +"jepeni dy herë fjalëkalimin tuaj të ri, që të mund të verifikojmë se i keni " +"shtypur saktë." + +msgid "Change my password" +msgstr "Ndrysho fjalëkalimin tim" + +msgid "Password reset" +msgstr "Ricaktim fjalëkalimi" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "" +"Fjalëkalimi juaj u caktua. Mund të vazhdoni më tej dhe të bëni hyrjen tani." + +msgid "Password reset confirmation" +msgstr "Ripohim ricaktimi fjalëkalimi" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" +"Ju lutemi, jepeni fjalëkalimin tuaj dy herë, që kështu të mund të " +"verifikojmë që e shtypët saktë." + +msgid "New password:" +msgstr "Fjalëkalim i ri:" + +msgid "Confirm password:" +msgstr "Ripohoni fjalëkalimin:" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"Lidhja për ricaktimin e fjalëkalimit qe e pavlefshme, ndoshta ngaqë është " +"përdorur tashmë një herë. Ju lutemi, kërkoni një ricaktim të ri fjalëkalimi." + +msgid "" +"We’ve emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" +"Ju kemi dërguar me email udhëzime për caktimin e fjalëkalimit tuaj, nëse " +"ekziston një llogari me email-in që dhatë. Duhet t’ju vijnë pas pak." + +msgid "" +"If you don’t receive an email, please make sure you’ve entered the address " +"you registered with, and check your spam folder." +msgstr "" +"Nëse s’merrni ndonjë email, ju lutemi, sigurohuni se keni dhënë adresën me " +"të cilën u regjistruat, dhe kontrolloni edhe te dosja e mesazheve të " +"padëshiruar." + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" +"Këtë email po e merrni ngaqë kërkuat ricaktim fjalëkalimi për llogarinë tuaj " +"si përdorues te %(site_name)s." + +msgid "Please go to the following page and choose a new password:" +msgstr "Ju lutemi, shkoni te faqja vijuese dhe zgjidhni një fjalëkalim të ri:" + +msgid "Your username, in case you’ve forgotten:" +msgstr "Emri juaj i përdoruesit, në rast se e keni harruar:" + +msgid "Thanks for using our site!" +msgstr "Faleminderit që përdorni sajtin tonë!" + +#, python-format +msgid "The %(site_name)s team" +msgstr "Ekipi i %(site_name)s" + +msgid "" +"Forgotten your password? Enter your email address below, and we’ll email " +"instructions for setting a new one." +msgstr "" +"Harruat fjalëkalimin tuaj? Jepni më poshtë adresën tuaj email, dhe do t’ju " +"dërgojmë me email udhëzime për caktimin e një të riu." + +msgid "Email address:" +msgstr "Adresë email:" + +msgid "Reset my password" +msgstr "Ricakto fjalëkalimin tim" + +msgid "Select all objects on this page for an action" +msgstr "Përzgjidhni për një veprim krejt objektet në këtë faqe" + +msgid "All dates" +msgstr "Krejt datat" + +#, python-format +msgid "Select %s" +msgstr "Përzgjidhni %s" + +#, python-format +msgid "Select %s to change" +msgstr "Përzgjidhni %s për ta ndryshuar" + +#, python-format +msgid "Select %s to view" +msgstr "Përzgjidhni %s për parje" + +msgid "Date:" +msgstr "Datë:" + +msgid "Time:" +msgstr "Kohë:" + +msgid "Lookup" +msgstr "Kërkim" + +msgid "Currently:" +msgstr "Tani:" + +msgid "Change:" +msgstr "Ndryshim:" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/sq/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/sq/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..a1c8182bd9f70112a7a764478aa18d0ee321f639 GIT binary patch literal 6122 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/sq/LC_MESSAGES/djangojs.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/sq/LC_MESSAGES/djangojs.po new file mode 100644 index 0000000000..bda26157a5 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/sq/LC_MESSAGES/djangojs.po @@ -0,0 +1,328 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Besnik Bleta , 2011-2012,2015 +# Besnik Bleta , 2020-2023 +# Besnik Bleta , 2015,2017 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-09-18 15:04-0300\n" +"PO-Revision-Date: 2023-12-04 07:59+0000\n" +"Last-Translator: Besnik Bleta , 2020-2023\n" +"Language-Team: Albanian (http://app.transifex.com/django/django/language/" +"sq/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: sq\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, javascript-format +msgid "Available %s" +msgstr "%s i gatshëm" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" +"Kjo është lista e %s të gatshëm. Mund të zgjidhni disa duke i përzgjedhur te " +"kutiza më poshtë dhe mandej duke klikuar mbi shigjetën \"Zgjidhe\" mes dy " +"kutizave." + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "Shkruani brenda kutizës që të filtrohet lista e %s të passhme." + +msgid "Filter" +msgstr "Filtro" + +msgid "Choose all" +msgstr "Zgjidheni krejt" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "Klikoni që të zgjidhen krejt %s njëherësh." + +msgid "Choose" +msgstr "Zgjidhni" + +msgid "Remove" +msgstr "Hiqe" + +#, javascript-format +msgid "Chosen %s" +msgstr "U zgjodh %s" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" +"Kjo është lista e %s të gatshme. Mund të hiqni disa duke i përzgjedhur te " +"kutiza më poshtë e mandej duke klikuar mbi shigjetën \"Hiqe\" mes dy " +"kutizave." + +#, javascript-format +msgid "Type into this box to filter down the list of selected %s." +msgstr "Shtypni në këtë kuadrat, që të filtroni listën e %s të përzgjedhur." + +msgid "Remove all" +msgstr "Hiqi krejt" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "Klikoni që të hiqen krejt %s e zgjedhura njëherësh." + +#, javascript-format +msgid "%s selected option not visible" +msgid_plural "%s selected options not visible" +msgstr[0] "%s mundësi e përzgjedhur jo e dukshme" +msgstr[1] "%s mundësi të përzgjedhura jo të dukshme" + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "U përzgjodh %(sel)s nga %(cnt)s" +msgstr[1] "U përzgjodhën %(sel)s nga %(cnt)s" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" +"Keni ndryshime të paruajtura te fusha individuale të ndryshueshme. Nëse " +"kryeni një veprim, ndryshimet e paruajtura do të humbin." + +msgid "" +"You have selected an action, but you haven’t saved your changes to " +"individual fields yet. Please click OK to save. You’ll need to re-run the " +"action." +msgstr "" +"Keni përzgjedhur një veprim, por s’keni ruajtur ende ndryshimet që bëtë te " +"fusha individuale. Ju lutemi, klikoni OK që të bëhet ruajtja. Do t’ju duhet " +"ta ribëni veprimin." + +msgid "" +"You have selected an action, and you haven’t made any changes on individual " +"fields. You’re probably looking for the Go button rather than the Save " +"button." +msgstr "" +"Keni përzgjedhur një veprim, dhe nuk keni bërë ndonjë ndryshim te fusha " +"individuale. Ndoshta po kërkonit për butonin Shko, në vend se për butonin " +"Ruaje." + +msgid "Now" +msgstr "Tani" + +msgid "Midnight" +msgstr "Mesnatë" + +msgid "6 a.m." +msgstr "6 a.m." + +msgid "Noon" +msgstr "Mesditë" + +msgid "6 p.m." +msgstr "6 p.m." + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "Shënim: Jeni %s orë para kohës së shërbyesit." +msgstr[1] "Shënim: Jeni %s orë para kohës së shërbyesit." + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "Shënim: Jeni %s orë pas kohës së shërbyesit." +msgstr[1] "Shënim: Jeni %s orë pas kohës së shërbyesit." + +msgid "Choose a Time" +msgstr "Zgjidhni një Kohë" + +msgid "Choose a time" +msgstr "Zgjidhni një kohë" + +msgid "Cancel" +msgstr "Anuloje" + +msgid "Today" +msgstr "Sot" + +msgid "Choose a Date" +msgstr "Zgjidhni një Datë" + +msgid "Yesterday" +msgstr "Dje" + +msgid "Tomorrow" +msgstr "Nesër" + +msgid "January" +msgstr "Janar" + +msgid "February" +msgstr "Shkurt" + +msgid "March" +msgstr "Mars" + +msgid "April" +msgstr "Prill" + +msgid "May" +msgstr "Maj" + +msgid "June" +msgstr "Qershor" + +msgid "July" +msgstr "Korrik" + +msgid "August" +msgstr "Gusht" + +msgid "September" +msgstr "Shtator" + +msgid "October" +msgstr "Tetor" + +msgid "November" +msgstr "Nëntor" + +msgid "December" +msgstr "Dhjetor" + +msgctxt "abbrev. month January" +msgid "Jan" +msgstr "Jan" + +msgctxt "abbrev. month February" +msgid "Feb" +msgstr "Shk" + +msgctxt "abbrev. month March" +msgid "Mar" +msgstr "Mar" + +msgctxt "abbrev. month April" +msgid "Apr" +msgstr "Pri" + +msgctxt "abbrev. month May" +msgid "May" +msgstr "Maj" + +msgctxt "abbrev. month June" +msgid "Jun" +msgstr "Qer" + +msgctxt "abbrev. month July" +msgid "Jul" +msgstr "Kor" + +msgctxt "abbrev. month August" +msgid "Aug" +msgstr "Gus" + +msgctxt "abbrev. month September" +msgid "Sep" +msgstr "Sht" + +msgctxt "abbrev. month October" +msgid "Oct" +msgstr "Tet" + +msgctxt "abbrev. month November" +msgid "Nov" +msgstr "Nën" + +msgctxt "abbrev. month December" +msgid "Dec" +msgstr "Dhje" + +msgid "Sunday" +msgstr "E diel" + +msgid "Monday" +msgstr "E hënë" + +msgid "Tuesday" +msgstr "E martë" + +msgid "Wednesday" +msgstr "E mërkurë" + +msgid "Thursday" +msgstr "E enjte" + +msgid "Friday" +msgstr "E premte" + +msgid "Saturday" +msgstr "E shtunë" + +msgctxt "abbrev. day Sunday" +msgid "Sun" +msgstr "Die" + +msgctxt "abbrev. day Monday" +msgid "Mon" +msgstr "Hën" + +msgctxt "abbrev. day Tuesday" +msgid "Tue" +msgstr "Mar" + +msgctxt "abbrev. day Wednesday" +msgid "Wed" +msgstr "Mër" + +msgctxt "abbrev. day Thursday" +msgid "Thur" +msgstr "Enj" + +msgctxt "abbrev. day Friday" +msgid "Fri" +msgstr "Pre" + +msgctxt "abbrev. day Saturday" +msgid "Sat" +msgstr "Sht" + +msgctxt "one letter Sunday" +msgid "S" +msgstr "D" + +msgctxt "one letter Monday" +msgid "M" +msgstr "H" + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "M" + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "M" + +msgctxt "one letter Thursday" +msgid "T" +msgstr "E" + +msgctxt "one letter Friday" +msgid "F" +msgstr "P" + +msgctxt "one letter Saturday" +msgid "S" +msgstr "S" + +msgid "Show" +msgstr "Shfaqe" + +msgid "Hide" +msgstr "Fshihe" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/sr/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/sr/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..f794a8ccad27f06477be7ba4f03151e0a61fdb79 GIT binary patch literal 23216 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 DLgK+p literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/sr/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/sr/LC_MESSAGES/django.po new file mode 100644 index 0000000000..1c9d7f945b --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/sr/LC_MESSAGES/django.po @@ -0,0 +1,792 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Branko Kokanovic , 2018 +# Igor Jerosimić, 2019,2021,2023-2024 +# Jannis Leidel , 2011 +# Janos Guljas , 2011-2012 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-05-22 11:46-0300\n" +"PO-Revision-Date: 2024-08-07 07:05+0000\n" +"Last-Translator: Igor Jerosimić, 2019,2021,2023-2024\n" +"Language-Team: Serbian (http://app.transifex.com/django/django/language/" +"sr/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: sr\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "Бриши означене објекте класе %(verbose_name_plural)s" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "Успешно обрисано: %(count)d %(items)s." + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "Несуспело брисање %(name)s" + +msgid "Are you sure?" +msgstr "Да ли сте сигурни?" + +msgid "Administration" +msgstr "Администрација" + +msgid "All" +msgstr "Сви" + +msgid "Yes" +msgstr "Да" + +msgid "No" +msgstr "Не" + +msgid "Unknown" +msgstr "Непознато" + +msgid "Any date" +msgstr "Сви датуми" + +msgid "Today" +msgstr "Данас" + +msgid "Past 7 days" +msgstr "Последњих 7 дана" + +msgid "This month" +msgstr "Овај месец" + +msgid "This year" +msgstr "Ова година" + +msgid "No date" +msgstr "Нема датума" + +msgid "Has date" +msgstr "Има датум" + +msgid "Empty" +msgstr "Празно" + +msgid "Not empty" +msgstr "Није празно" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" +"Молим вас унесите исправно %(username)s и лозинку. Обратите пажњу да мала и " +"велика слова представљају различите карактере." + +msgid "Action:" +msgstr "Радња:" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "Додај још један објекат класе %(verbose_name)s." + +msgid "Remove" +msgstr "Обриши" + +msgid "Addition" +msgstr "Додавања" + +msgid "Change" +msgstr "Измени" + +msgid "Deletion" +msgstr "Брисања" + +msgid "action time" +msgstr "време радње" + +msgid "user" +msgstr "корисник" + +msgid "content type" +msgstr "тип садржаја" + +msgid "object id" +msgstr "id објекта" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/library/functions.html#repr) +msgid "object repr" +msgstr "опис објекта" + +msgid "action flag" +msgstr "ознака радње" + +msgid "change message" +msgstr "опис измене" + +msgid "log entry" +msgstr "запис у логовима" + +msgid "log entries" +msgstr "записи у логовима" + +#, python-format +msgid "Added “%(object)s”." +msgstr "Додат објекат класе „%(object)s“." + +#, python-format +msgid "Changed “%(object)s” — %(changes)s" +msgstr "Промењен објекат класе „%(object)s“ - %(changes)s" + +#, python-format +msgid "Deleted “%(object)s.”" +msgstr "Уклоњен објекат класе „%(object)s“." + +msgid "LogEntry Object" +msgstr "Објекат уноса лога" + +#, python-brace-format +msgid "Added {name} “{object}”." +msgstr "Додат објекат {name} \"{object}\"." + +msgid "Added." +msgstr "Додато." + +msgid "and" +msgstr "и" + +#, python-brace-format +msgid "Changed {fields} for {name} “{object}”." +msgstr "Измењена поља {fields} за {name} \"{object}\"." + +#, python-brace-format +msgid "Changed {fields}." +msgstr "Измењена поља {fields}." + +#, python-brace-format +msgid "Deleted {name} “{object}”." +msgstr "Обрисан објекат {name} \"{object}\"." + +msgid "No fields changed." +msgstr "Без измена у пољима." + +msgid "None" +msgstr "Ништа" + +msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." +msgstr "" +"Држите „Control“, или „Command“ на Mac-у да бисте обележили више од једне " +"ставке." + +msgid "Select this object for an action - {}" +msgstr "Изабери овај објекат за радњу - {}" + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully." +msgstr "Објекат {name} \"{obj}\" успешно додат." + +msgid "You may edit it again below." +msgstr "Можете га изменити опет испод" + +#, python-brace-format +msgid "" +"The {name} “{obj}” was added successfully. You may add another {name} below." +msgstr "" +"Објекат {name} \"{obj}\" успешно додат. Можете додати још један {name} испод." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may edit it again below." +msgstr "" +"Објекат {name} \"{obj}\" успешно измењен. Можете га опет изменити испод." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may add another {name} " +"below." +msgstr "" +"Објекат {name} \"{obj}\" успешно измењен. Можете додати још један {name} " +"испод." + +#, python-brace-format +msgid "The {name} “{obj}” was changed successfully." +msgstr "Објекат {name} \"{obj}\" успешно измењен." + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" +"Потребно је изабрати објекте да би се извршила акција над њима. Ниједан " +"објекат није промењен." + +msgid "No action selected." +msgstr "Није изабрана ниједна акција." + +#, python-format +msgid "The %(name)s “%(obj)s” was deleted successfully." +msgstr "Објекат „%(obj)s“ класе %(name)s је успешно обрисан." + +#, python-format +msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" +msgstr "%(name)s са идентификацијом \"%(key)s\" не постоји. Можда је избрисан?" + +#, python-format +msgid "Add %s" +msgstr "Додај објекат класе %s" + +#, python-format +msgid "Change %s" +msgstr "Измени објекат класе %s" + +#, python-format +msgid "View %s" +msgstr "Преглед %s" + +msgid "Database error" +msgstr "Грешка у бази података" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "Успешно промењен %(count)s %(name)s." +msgstr[1] "Успешно промењена %(count)s %(name)s." +msgstr[2] "Успешно промењених %(count)s %(name)s." + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "%(total_count)s изабран" +msgstr[1] "Сва %(total_count)s изабрана" +msgstr[2] "Свих %(total_count)s изабраних" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "0 од %(cnt)s изабрано" + +#, python-format +msgid "Change history: %s" +msgstr "Историјат измена: %s" + +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "%(class_name)s %(instance)s" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" +"Да би избрисали %(class_name)s%(instance)s потребно је брисати и следеће " +"заштићене повезане објекте: %(related_objects)s" + +msgid "Django site admin" +msgstr "Django администрација сајта" + +msgid "Django administration" +msgstr "Django администрација" + +msgid "Site administration" +msgstr "Администрација система" + +msgid "Log in" +msgstr "Пријава" + +#, python-format +msgid "%(app)s administration" +msgstr "%(app)s администрација" + +msgid "Page not found" +msgstr "Страница није пронађена" + +msgid "We’re sorry, but the requested page could not be found." +msgstr "Жао нам је, тражена страница није пронађена." + +msgid "Home" +msgstr "Почетна" + +msgid "Server error" +msgstr "Грешка на серверу" + +msgid "Server error (500)" +msgstr "Грешка на серверу (500)" + +msgid "Server Error (500)" +msgstr "Грешка на серверу (500)" + +msgid "" +"There’s been an error. It’s been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" +"Десила се грешка. Пријављена је администраторима сајта преко е-поште и " +"требало би да ускоро буде исправљена. Хвала Вам на стрпљењу." + +msgid "Run the selected action" +msgstr "Покрени одабрану радњу" + +msgid "Go" +msgstr "Почни" + +msgid "Click here to select the objects across all pages" +msgstr "Изабери све објекте на овој страници." + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "Изабери све %(module_name)s од %(total_count)s укупно." + +msgid "Clear selection" +msgstr "Поништи избор" + +msgid "Breadcrumbs" +msgstr "Мрвице" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "Модели у апликацији %(name)s" + +msgid "Add" +msgstr "Додај" + +msgid "View" +msgstr "Преглед" + +msgid "You don’t have permission to view or edit anything." +msgstr "Немате дозволе да погледате или измените било шта." + +msgid "" +"First, enter a username and password. Then, you’ll be able to edit more user " +"options." +msgstr "" +"Прво унесите корисничко име и лозинку. Потом ћете моћи да мењате још " +"корисничких подешавања." + +msgid "Enter a username and password." +msgstr "Унесите корисничко име и лозинку" + +msgid "Change password" +msgstr "Промена лозинке" + +msgid "Set password" +msgstr "Постави лозинку" + +msgid "Please correct the error below." +msgid_plural "Please correct the errors below." +msgstr[0] "Молимо исправите грешку испод." +msgstr[1] "Молимо исправите грешке испод." +msgstr[2] "Молимо исправите грешке испод." + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "Унесите нову лозинку за корисника %(username)s." + +msgid "" +"This action will enable password-based authentication for " +"this user." +msgstr "" +" Ова акција ћеомогућити аутентификацију засновану на " +"лозинки за овог корисника." + +msgid "Disable password-based authentication" +msgstr "Онемогући аутентификацију засновану на лозинки" + +msgid "Enable password-based authentication" +msgstr "Омогући аутентификацију засновану на лозинки" + +msgid "Skip to main content" +msgstr "Пређи на главни садржај" + +msgid "Welcome," +msgstr "Добродошли," + +msgid "View site" +msgstr "Погледај сајт" + +msgid "Documentation" +msgstr "Документација" + +msgid "Log out" +msgstr "Одјава" + +#, python-format +msgid "Add %(name)s" +msgstr "Додај објекат класе %(name)s" + +msgid "History" +msgstr "Историјат" + +msgid "View on site" +msgstr "Преглед на сајту" + +msgid "Filter" +msgstr "Филтер" + +msgid "Hide counts" +msgstr "Сакриј бројање" + +msgid "Show counts" +msgstr "Прикажи бројање" + +msgid "Clear all filters" +msgstr "Обриши све филтере" + +msgid "Remove from sorting" +msgstr "Избаци из сортирања" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "Приоритет сортирања: %(priority_number)s" + +msgid "Toggle sorting" +msgstr "Укључи/искључи сортирање" + +msgid "Toggle theme (current theme: auto)" +msgstr "Укључи/искључи тему (тренутна тема: ауто)" + +msgid "Toggle theme (current theme: light)" +msgstr "Укључи/искључи тему (тренутна тема: светла)" + +msgid "Toggle theme (current theme: dark)" +msgstr "Укључи/искључи тему (тренутна тема: тамна)" + +msgid "Delete" +msgstr "Обриши" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" +"Уклањање %(object_name)s „%(escaped_object)s“ повлачи уклањање свих објеката " +"који су повезани са овим објектом, али ваш налог нема дозволе за брисање " +"следећих типова објеката:" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" +"Да би избрисали изабран %(object_name)s „%(escaped_object)s“ потребно је " +"брисати и следеће заштићене повезане објекте:" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" +"Да сигурни да желите да обришете %(object_name)s „%(escaped_object)s“? " +"Следећи објекти који су у вези са овим објектом ће такође бити обрисани:" + +msgid "Objects" +msgstr "Објекти" + +msgid "Yes, I’m sure" +msgstr "Да, сигуран сам" + +msgid "No, take me back" +msgstr "Не, хоћу назад" + +msgid "Delete multiple objects" +msgstr "Брисање више објеката" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" +"Да би избрисали изабране %(objects_name)s потребно је брисати и заштићене " +"повезане објекте, међутим ваш налог нема дозволе за брисање следећих типова " +"објеката:" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" +"Да би избрисали изабране %(objects_name)s потребно је брисати и следеће " +"заштићене повезане објекте:" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" +"Да ли сте сигурни да желите да избришете изабране %(objects_name)s? Сви " +"следећи објекти и објекти са њима повезани ће бити избрисани:" + +msgid "Delete?" +msgstr "Брисање?" + +#, python-format +msgid " By %(filter_title)s " +msgstr " %(filter_title)s " + +msgid "Summary" +msgstr "Сумарно" + +msgid "Recent actions" +msgstr "Скорашње акције" + +msgid "My actions" +msgstr "Моје акције" + +msgid "None available" +msgstr "Нема података" + +msgid "Added:" +msgstr "Додато:" + +msgid "Changed:" +msgstr "Измењено:" + +msgid "Deleted:" +msgstr "Обрисано:" + +msgid "Unknown content" +msgstr "Непознат садржај" + +msgid "" +"Something’s wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" +"Нешто није уреду са вашом базом података. Проверите да ли постоје " +"одговарајуће табеле и да ли одговарајући корисник има приступ бази." + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" +"Пријављени сте као %(username)s, али немате овлашћења да приступите овој " +"страни. Да ли желите да се пријавите под неким другим налогом?" + +msgid "Forgotten your password or username?" +msgstr "Заборавили сте лозинку или корисничко име?" + +msgid "Toggle navigation" +msgstr "Укључи/искључи мени" + +msgid "Sidebar" +msgstr "Бочна трака" + +msgid "Start typing to filter…" +msgstr "Почните да куцате да бисте филтрирали…" + +msgid "Filter navigation items" +msgstr "Филтрирајте ставке навигације" + +msgid "Date/time" +msgstr "Датум/време" + +msgid "User" +msgstr "Корисник" + +msgid "Action" +msgstr "Радња" + +msgid "entry" +msgid_plural "entries" +msgstr[0] "унос" +msgstr[1] "уноса" +msgstr[2] "уноса" + +msgid "" +"This object doesn’t have a change history. It probably wasn’t added via this " +"admin site." +msgstr "" +"Овај објекат нема забележен историјат измена. Вероватно није додат кроз овај " +"сајт за администрацију." + +msgid "Show all" +msgstr "Прикажи све" + +msgid "Save" +msgstr "Сачувај" + +msgid "Popup closing…" +msgstr "Попуп се затвара..." + +msgid "Search" +msgstr "Претрага" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "%(counter)s резултат" +msgstr[1] "%(counter)s резултата" +msgstr[2] "%(counter)s резултата" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "укупно %(full_result_count)s" + +msgid "Save as new" +msgstr "Сачувај као нови" + +msgid "Save and add another" +msgstr "Сачувај и додај следећи" + +msgid "Save and continue editing" +msgstr "Сачувај и настави са изменама" + +msgid "Save and view" +msgstr "Сними и погледај" + +msgid "Close" +msgstr "Затвори" + +#, python-format +msgid "Change selected %(model)s" +msgstr "Измени одабрани модел %(model)s" + +#, python-format +msgid "Add another %(model)s" +msgstr "Додај још један модел %(model)s" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "Обриши одабрани модел %(model)s" + +#, python-format +msgid "View selected %(model)s" +msgstr "Изабран приказ %(model)s" + +msgid "Thanks for spending some quality time with the web site today." +msgstr "Хвала што сте данас провели време на овом сајту." + +msgid "Log in again" +msgstr "Поновна пријава" + +msgid "Password change" +msgstr "Измена лозинке" + +msgid "Your password was changed." +msgstr "Ваша лозинка је измењена." + +msgid "" +"Please enter your old password, for security’s sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" +"Из безбедносних разлога прво унесите своју стару лозинку, а нову затим " +"унесите два пута да бисмо могли да проверимо да ли сте је правилно унели." + +msgid "Change my password" +msgstr "Измени моју лозинку" + +msgid "Password reset" +msgstr "Ресетовање лозинке" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "Ваша лозинка је постављена. Можете се пријавити." + +msgid "Password reset confirmation" +msgstr "Потврда ресетовања лозинке" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" +"Унесите нову лозинку два пута како бисмо могли да проверимо да ли сте је " +"правилно унели." + +msgid "New password:" +msgstr "Нова лозинка:" + +msgid "Confirm password:" +msgstr "Потврда лозинке:" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"Линк за ресетовање лозинке није важећи, вероватно зато што је већ " +"искоришћен. Поново затражите ресетовање лозинке." + +msgid "" +"We’ve emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" +"Послали смо Вам упутства за постављање лозинке, уколико налог са овом " +"адресом постоји. Требало би да их добијете ускоро." + +msgid "" +"If you don’t receive an email, please make sure you’ve entered the address " +"you registered with, and check your spam folder." +msgstr "" +"Ако не добијете поруку, проверите да ли сте унели добру адресу са којом сте " +"се и регистровали и проверите фасциклу за нежељену пошту." + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" +"Примате ову поруку зато што сте затражили ресетовање лозинке за кориснички " +"налог на сајту %(site_name)s." + +msgid "Please go to the following page and choose a new password:" +msgstr "Идите на следећу страницу и поставите нову лозинку." + +msgid "Your username, in case you’ve forgotten:" +msgstr "Ваше корисничко име, уколико сте заборавили:" + +msgid "Thanks for using our site!" +msgstr "Хвала што користите наш сајт!" + +#, python-format +msgid "The %(site_name)s team" +msgstr "Екипа сајта %(site_name)s" + +msgid "" +"Forgotten your password? Enter your email address below, and we’ll email " +"instructions for setting a new one." +msgstr "" +"Заборавили сте лозинку? Унесите адресу е-поште испод и послаћемо Вам на њу " +"упутства за постављање нове лозинке." + +msgid "Email address:" +msgstr "Адреса е-поште:" + +msgid "Reset my password" +msgstr "Ресетуј моју лозинку" + +msgid "Select all objects on this page for an action" +msgstr "Изаберите све објекте на овој страници за радњу" + +msgid "All dates" +msgstr "Сви датуми" + +#, python-format +msgid "Select %s" +msgstr "Одабери објекат класе %s" + +#, python-format +msgid "Select %s to change" +msgstr "Одабери објекат класе %s за измену" + +#, python-format +msgid "Select %s to view" +msgstr "Одабери %s за преглед" + +msgid "Date:" +msgstr "Датум:" + +msgid "Time:" +msgstr "Време:" + +msgid "Lookup" +msgstr "Претражи" + +msgid "Currently:" +msgstr "Тренутно:" + +msgid "Change:" +msgstr "Измена:" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/sr/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/sr/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..bdd3fc35afe6d449ded642779ada611e76f1202d GIT binary patch literal 7234 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 eBs!{iQTyQv, 2018 +# Igor Jerosimić, 2021,2023 +# Jannis Leidel , 2011 +# Janos Guljas , 2011-2012 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-09-18 15:04-0300\n" +"PO-Revision-Date: 2023-12-04 07:59+0000\n" +"Last-Translator: Igor Jerosimić, 2021,2023\n" +"Language-Team: Serbian (http://app.transifex.com/django/django/language/" +"sr/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: sr\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#, javascript-format +msgid "Available %s" +msgstr "Доступни %s" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" +"Ово је листа доступних „%s“. Можете изабрати елементе тако што ћете их " +"изабрати у листи и кликнути на „Изабери“." + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "Филтрирајте листу доступних елемената „%s“." + +msgid "Filter" +msgstr "Филтер" + +msgid "Choose all" +msgstr "Изабери све" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "Изаберите све „%s“ одједном." + +msgid "Choose" +msgstr "Изабери" + +msgid "Remove" +msgstr "Уклони" + +#, javascript-format +msgid "Chosen %s" +msgstr "Изабрано „%s“" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" +"Ово је листа изабраних „%s“. Можете уклонити елементе тако што ћете их " +"изабрати у листи и кликнути на „Уклони“." + +#, javascript-format +msgid "Type into this box to filter down the list of selected %s." +msgstr "Унесите ово поље да бисте филтрирали листу изабраних %s." + +msgid "Remove all" +msgstr "Уклони све" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "Уклоните све изабране „%s“ одједном." + +#, javascript-format +msgid "%s selected option not visible" +msgid_plural "%s selected options not visible" +msgstr[0] "%s изабрана опција није видљива" +msgstr[1] "%s изабране опције нису видљиве" +msgstr[2] "%s изабраних опција није видљиво" + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "%(sel)s од %(cnt)s изабран" +msgstr[1] "%(sel)s од %(cnt)s изабрана" +msgstr[2] "%(sel)s од %(cnt)s изабраних" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" +"Имате несачиване измене. Ако покренете акцију, измене ће бити изгубљене." + +msgid "" +"You have selected an action, but you haven’t saved your changes to " +"individual fields yet. Please click OK to save. You’ll need to re-run the " +"action." +msgstr "" +"Изабрали сте акцију, али нисте сачували ваше промене у појединачна поља. " +"Кликните на OK да сачувате промене. Биће неопходно да поново покренете " +"акцију." + +msgid "" +"You have selected an action, and you haven’t made any changes on individual " +"fields. You’re probably looking for the Go button rather than the Save " +"button." +msgstr "" +"Изабрали сте акцију и нисте направили ниједну промену на појединачним " +"пољима. Вероватно тражите Крени дугме уместо Сачувај." + +msgid "Now" +msgstr "Тренутно време" + +msgid "Midnight" +msgstr "Поноћ" + +msgid "6 a.m." +msgstr "18ч" + +msgid "Noon" +msgstr "Подне" + +msgid "6 p.m." +msgstr "18ч" + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "Обавештење: %s сат сте испред серверског времена." +msgstr[1] "Обавештење: %s сата сте испред серверског времена." +msgstr[2] "Обавештење: %s сати сте испред серверског времена." + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "Обавештење: %s сат сте иза серверског времена." +msgstr[1] "Обавештење: %s сата сте иза серверског времена." +msgstr[2] "Обавештење: %s сати сте иза серверског времена." + +msgid "Choose a Time" +msgstr "Одаберите време" + +msgid "Choose a time" +msgstr "Одабир времена" + +msgid "Cancel" +msgstr "Поништи" + +msgid "Today" +msgstr "Данас" + +msgid "Choose a Date" +msgstr "Одаберите датум" + +msgid "Yesterday" +msgstr "Јуче" + +msgid "Tomorrow" +msgstr "Сутра" + +msgid "January" +msgstr "Јануар" + +msgid "February" +msgstr "Фебруар" + +msgid "March" +msgstr "Март" + +msgid "April" +msgstr "Април" + +msgid "May" +msgstr "Мај" + +msgid "June" +msgstr "Јун" + +msgid "July" +msgstr "Јул" + +msgid "August" +msgstr "Август" + +msgid "September" +msgstr "Септембар" + +msgid "October" +msgstr "Октобар" + +msgid "November" +msgstr "Новембар" + +msgid "December" +msgstr "Децембар" + +msgctxt "abbrev. month January" +msgid "Jan" +msgstr "јан" + +msgctxt "abbrev. month February" +msgid "Feb" +msgstr "феб" + +msgctxt "abbrev. month March" +msgid "Mar" +msgstr "март" + +msgctxt "abbrev. month April" +msgid "Apr" +msgstr "апр" + +msgctxt "abbrev. month May" +msgid "May" +msgstr "мај" + +msgctxt "abbrev. month June" +msgid "Jun" +msgstr "јун" + +msgctxt "abbrev. month July" +msgid "Jul" +msgstr "јул" + +msgctxt "abbrev. month August" +msgid "Aug" +msgstr "авг" + +msgctxt "abbrev. month September" +msgid "Sep" +msgstr "сеп" + +msgctxt "abbrev. month October" +msgid "Oct" +msgstr "окт" + +msgctxt "abbrev. month November" +msgid "Nov" +msgstr "нов" + +msgctxt "abbrev. month December" +msgid "Dec" +msgstr "дец" + +msgid "Sunday" +msgstr "недеља" + +msgid "Monday" +msgstr "понедељак" + +msgid "Tuesday" +msgstr "уторак" + +msgid "Wednesday" +msgstr "среда" + +msgid "Thursday" +msgstr "четвртак" + +msgid "Friday" +msgstr "петак" + +msgid "Saturday" +msgstr "субота" + +msgctxt "abbrev. day Sunday" +msgid "Sun" +msgstr "нед" + +msgctxt "abbrev. day Monday" +msgid "Mon" +msgstr "пон" + +msgctxt "abbrev. day Tuesday" +msgid "Tue" +msgstr "уто" + +msgctxt "abbrev. day Wednesday" +msgid "Wed" +msgstr "сре" + +msgctxt "abbrev. day Thursday" +msgid "Thur" +msgstr "чет" + +msgctxt "abbrev. day Friday" +msgid "Fri" +msgstr "пет" + +msgctxt "abbrev. day Saturday" +msgid "Sat" +msgstr "суб" + +msgctxt "one letter Sunday" +msgid "S" +msgstr "Н" + +msgctxt "one letter Monday" +msgid "M" +msgstr "П" + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "У" + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "С" + +msgctxt "one letter Thursday" +msgid "T" +msgstr "Ч" + +msgctxt "one letter Friday" +msgid "F" +msgstr "П" + +msgctxt "one letter Saturday" +msgid "S" +msgstr "С" + +msgid "Show" +msgstr "Покажи" + +msgid "Hide" +msgstr "Сакриј" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/sr_Latn/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/sr_Latn/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..65c851bf901564118d2b2c80243e6ed5ceea9753 GIT binary patch literal 12383 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 U5jDL(C0lUwINjo-B%x*g7n7_efB*mh literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/sr_Latn/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/sr_Latn/LC_MESSAGES/django.po new file mode 100644 index 0000000000..4c3d304a3c --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/sr_Latn/LC_MESSAGES/django.po @@ -0,0 +1,694 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Igor Jerosimić, 2019 +# Jannis Leidel , 2011 +# Janos Guljas , 2011-2012 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-01-16 20:42+0100\n" +"PO-Revision-Date: 2019-06-27 12:37+0000\n" +"Last-Translator: Igor Jerosimić\n" +"Language-Team: Serbian (Latin) (http://www.transifex.com/django/django/" +"language/sr@latin/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: sr@latin\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "Uspešno obrisano: %(count)d %(items)s." + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "Nesuspelo brisanje %(name)s" + +msgid "Are you sure?" +msgstr "Da li ste sigurni?" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "Briši označene objekte klase %(verbose_name_plural)s" + +msgid "Administration" +msgstr "Administracija" + +msgid "All" +msgstr "Svi" + +msgid "Yes" +msgstr "Da" + +msgid "No" +msgstr "Ne" + +msgid "Unknown" +msgstr "Nepoznato" + +msgid "Any date" +msgstr "Svi datumi" + +msgid "Today" +msgstr "Danas" + +msgid "Past 7 days" +msgstr "Poslednjih 7 dana" + +msgid "This month" +msgstr "Ovaj mesec" + +msgid "This year" +msgstr "Ova godina" + +msgid "No date" +msgstr "Nema datuma" + +msgid "Has date" +msgstr "Ima datum" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" +"Molim vas unesite ispravno %(username)s i lozinku. Obratite pažnju da mala i " +"velika slova predstavljaju različite karaktere." + +msgid "Action:" +msgstr "Radnja:" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "Dodaj još jedan objekat klase %(verbose_name)s." + +msgid "Remove" +msgstr "Obriši" + +msgid "Addition" +msgstr "Dodavanja" + +msgid "Change" +msgstr "Izmeni" + +msgid "Deletion" +msgstr "Brisanja" + +msgid "action time" +msgstr "vreme radnje" + +msgid "user" +msgstr "korisnik" + +msgid "content type" +msgstr "tip sadržaja" + +msgid "object id" +msgstr "id objekta" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/library/functions.html#repr) +msgid "object repr" +msgstr "opis objekta" + +msgid "action flag" +msgstr "oznaka radnje" + +msgid "change message" +msgstr "opis izmene" + +msgid "log entry" +msgstr "zapis u logovima" + +msgid "log entries" +msgstr "zapisi u logovima" + +#, python-format +msgid "Added \"%(object)s\"." +msgstr "Dodat objekat klase „%(object)s“." + +#, python-format +msgid "Changed \"%(object)s\" - %(changes)s" +msgstr "Promenjen objekat klase „%(object)s“ - %(changes)s" + +#, python-format +msgid "Deleted \"%(object)s.\"" +msgstr "Uklonjen objekat klase „%(object)s“." + +msgid "LogEntry Object" +msgstr "Objekat unosa loga" + +#, python-brace-format +msgid "Added {name} \"{object}\"." +msgstr "Dodat objekat {name} \"{object}\"." + +msgid "Added." +msgstr "Dodato." + +msgid "and" +msgstr "i" + +#, python-brace-format +msgid "Changed {fields} for {name} \"{object}\"." +msgstr "Izmenjena polja {fields} za {name} \"{object}\"." + +#, python-brace-format +msgid "Changed {fields}." +msgstr "Izmenjena polja {fields}." + +#, python-brace-format +msgid "Deleted {name} \"{object}\"." +msgstr "Obrisan objekat {name} \"{object}\"." + +msgid "No fields changed." +msgstr "Bez izmena u poljima." + +msgid "None" +msgstr "Ništa" + +msgid "" +"Hold down \"Control\", or \"Command\" on a Mac, to select more than one." +msgstr "" + +#, python-brace-format +msgid "The {name} \"{obj}\" was added successfully." +msgstr "" + +msgid "You may edit it again below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was added successfully. You may add another {name} " +"below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was changed successfully. You may edit it again below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was added successfully. You may edit it again below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was changed successfully. You may add another {name} " +"below." +msgstr "" + +#, python-brace-format +msgid "The {name} \"{obj}\" was changed successfully." +msgstr "" + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" +"Potrebno je izabrati objekte da bi se izvršila akcija nad njima. Nijedan " +"objekat nije promenjen." + +msgid "No action selected." +msgstr "Nije izabrana nijedna akcija." + +#, python-format +msgid "The %(name)s \"%(obj)s\" was deleted successfully." +msgstr "Objekat „%(obj)s“ klase %(name)s uspešno je obrisan." + +#, python-format +msgid "%(name)s with ID \"%(key)s\" doesn't exist. Perhaps it was deleted?" +msgstr "" + +#, python-format +msgid "Add %s" +msgstr "Dodaj objekat klase %s" + +#, python-format +msgid "Change %s" +msgstr "Izmeni objekat klase %s" + +#, python-format +msgid "View %s" +msgstr "Pregled %s" + +msgid "Database error" +msgstr "Greška u bazi podataka" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "Uspešno promenjen %(count)s %(name)s." +msgstr[1] "Uspešno promenjena %(count)s %(name)s." +msgstr[2] "Uspešno promenjenih %(count)s %(name)s." + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "%(total_count)s izabran" +msgstr[1] "Sva %(total_count)s izabrana" +msgstr[2] "Svih %(total_count)s izabranih" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "0 od %(cnt)s izabrano" + +#, python-format +msgid "Change history: %s" +msgstr "Istorijat izmena: %s" + +#. Translators: Model verbose name and instance representation, +#. suitable to be an item in a list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" + +msgid "Django site admin" +msgstr "Django administracija sajta" + +msgid "Django administration" +msgstr "Django administracija" + +msgid "Site administration" +msgstr "Administracija sistema" + +msgid "Log in" +msgstr "Prijava" + +#, python-format +msgid "%(app)s administration" +msgstr "" + +msgid "Page not found" +msgstr "Stranica nije pronađena" + +msgid "We're sorry, but the requested page could not be found." +msgstr "Žao nam je, tražena stranica nije pronađena." + +msgid "Home" +msgstr "Početna" + +msgid "Server error" +msgstr "Greška na serveru" + +msgid "Server error (500)" +msgstr "Greška na serveru (500)" + +msgid "Server Error (500)" +msgstr "Greška na serveru (500)" + +msgid "" +"There's been an error. It's been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" + +msgid "Run the selected action" +msgstr "Pokreni odabranu radnju" + +msgid "Go" +msgstr "Počni" + +msgid "Click here to select the objects across all pages" +msgstr "Izaberi sve objekte na ovoj stranici." + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "Izaberi sve %(module_name)s od %(total_count)s ukupno." + +msgid "Clear selection" +msgstr "Poništi izbor" + +msgid "" +"First, enter a username and password. Then, you'll be able to edit more user " +"options." +msgstr "" +"Prvo unesite korisničko ime i lozinku. Potom ćete moći da menjate još " +"korisničkih podešavanja." + +msgid "Enter a username and password." +msgstr "Unesite korisničko ime i lozinku" + +msgid "Change password" +msgstr "Promena lozinke" + +msgid "Please correct the error below." +msgstr "" + +msgid "Please correct the errors below." +msgstr "" + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "Unesite novu lozinku za korisnika %(username)s." + +msgid "Welcome," +msgstr "Dobrodošli," + +msgid "View site" +msgstr "Pogledaj sajt" + +msgid "Documentation" +msgstr "Dokumentacija" + +msgid "Log out" +msgstr "Odjava" + +#, python-format +msgid "Add %(name)s" +msgstr "Dodaj objekat klase %(name)s" + +msgid "History" +msgstr "Istorijat" + +msgid "View on site" +msgstr "Pregled na sajtu" + +msgid "Filter" +msgstr "Filter" + +msgid "Remove from sorting" +msgstr "Izbaci iz sortiranja" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "Prioritet sortiranja: %(priority_number)s" + +msgid "Toggle sorting" +msgstr "Uključi/isključi sortiranje" + +msgid "Delete" +msgstr "Obriši" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" +"Uklanjanje %(object_name)s „%(escaped_object)s“ povlači uklanjanje svih " +"objekata koji su povezani sa ovim objektom, ali vaš nalog nema dozvole za " +"brisanje sledećih tipova objekata:" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" +"Da bi izbrisali izabran %(object_name)s „%(escaped_object)s“ potrebno je " +"brisati i sledeće zaštićene povezane objekte:" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" +"Da sigurni da želite da obrišete %(object_name)s „%(escaped_object)s“? " +"Sledeći objekti koji su u vezi sa ovim objektom će takođe biti obrisani:" + +msgid "Objects" +msgstr "" + +msgid "Yes, I'm sure" +msgstr "Da, siguran sam" + +msgid "No, take me back" +msgstr "" + +msgid "Delete multiple objects" +msgstr "Brisanje više objekata" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" +"Da bi izbrisali izabrane %(objects_name)s potrebno je brisati i zaštićene " +"povezane objekte, međutim vaš nalog nema dozvole za brisanje sledećih tipova " +"objekata:" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" +"Da bi izbrisali izabrane %(objects_name)s potrebno je brisati i sledeće " +"zaštićene povezane objekte:" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" +"Da li ste sigurni da želite da izbrišete izabrane %(objects_name)s? Svi " +"sledeći objekti i objekti sa njima povezani će biti izbrisani:" + +msgid "View" +msgstr "Pregled" + +msgid "Delete?" +msgstr "Brisanje?" + +#, python-format +msgid " By %(filter_title)s " +msgstr " %(filter_title)s " + +msgid "Summary" +msgstr "" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "" + +msgid "Add" +msgstr "Dodaj" + +msgid "You don't have permission to view or edit anything." +msgstr "Nemate dozvolu da pogledate ili izmenite bilo šta." + +msgid "Recent actions" +msgstr "" + +msgid "My actions" +msgstr "" + +msgid "None available" +msgstr "Nema podataka" + +msgid "Unknown content" +msgstr "Nepoznat sadržaj" + +msgid "" +"Something's wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" +"Nešto nije uredu sa vašom bazom podataka. Proverite da li postoje " +"odgovarajuće tabele i da li odgovarajući korisnik ima pristup bazi." + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" + +msgid "Forgotten your password or username?" +msgstr "Zaboravili ste lozinku ili korisničko ime?" + +msgid "Date/time" +msgstr "Datum/vreme" + +msgid "User" +msgstr "Korisnik" + +msgid "Action" +msgstr "Radnja" + +msgid "" +"This object doesn't have a change history. It probably wasn't added via this " +"admin site." +msgstr "" +"Ovaj objekat nema zabeležen istorijat izmena. Verovatno nije dodat kroz ovaj " +"sajt za administraciju." + +msgid "Show all" +msgstr "Prikaži sve" + +msgid "Save" +msgstr "Sačuvaj" + +msgid "Popup closing…" +msgstr "" + +msgid "Search" +msgstr "Pretraga" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "%(counter)s rezultat" +msgstr[1] "%(counter)s rezultata" +msgstr[2] "%(counter)s rezultata" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "ukupno %(full_result_count)s" + +msgid "Save as new" +msgstr "Sačuvaj kao novi" + +msgid "Save and add another" +msgstr "Sačuvaj i dodaj sledeći" + +msgid "Save and continue editing" +msgstr "Sačuvaj i nastavi sa izmenama" + +msgid "Save and view" +msgstr "Snimi i pogledaj" + +msgid "Close" +msgstr "" + +#, python-format +msgid "Change selected %(model)s" +msgstr "" + +#, python-format +msgid "Add another %(model)s" +msgstr "" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "" + +msgid "Thanks for spending some quality time with the Web site today." +msgstr "Hvala što ste danas proveli vreme na ovom sajtu." + +msgid "Log in again" +msgstr "Ponovna prijava" + +msgid "Password change" +msgstr "Izmena lozinke" + +msgid "Your password was changed." +msgstr "Vaša lozinka je izmenjena." + +msgid "" +"Please enter your old password, for security's sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" +"Iz bezbednosnih razloga prvo unesite svoju staru lozinku, a novu zatim " +"unesite dva puta da bismo mogli da proverimo da li ste je pravilno uneli." + +msgid "Change my password" +msgstr "Izmeni moju lozinku" + +msgid "Password reset" +msgstr "Resetovanje lozinke" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "Vaša lozinka je postavljena. Možete se prijaviti." + +msgid "Password reset confirmation" +msgstr "Potvrda resetovanja lozinke" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" +"Unesite novu lozinku dva puta kako bismo mogli da proverimo da li ste je " +"pravilno uneli." + +msgid "New password:" +msgstr "Nova lozinka:" + +msgid "Confirm password:" +msgstr "Potvrda lozinke:" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"Link za resetovanje lozinke nije važeći, verovatno zato što je već " +"iskorišćen. Ponovo zatražite resetovanje lozinke." + +msgid "" +"We've emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" + +msgid "" +"If you don't receive an email, please make sure you've entered the address " +"you registered with, and check your spam folder." +msgstr "" + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" + +msgid "Please go to the following page and choose a new password:" +msgstr "Idite na sledeću stranicu i postavite novu lozinku." + +msgid "Your username, in case you've forgotten:" +msgstr "Ukoliko ste zaboravili, vaše korisničko ime:" + +msgid "Thanks for using our site!" +msgstr "Hvala što koristite naš sajt!" + +#, python-format +msgid "The %(site_name)s team" +msgstr "Ekipa sajta %(site_name)s" + +msgid "" +"Forgotten your password? Enter your email address below, and we'll email " +"instructions for setting a new one." +msgstr "" + +msgid "Email address:" +msgstr "" + +msgid "Reset my password" +msgstr "Resetuj moju lozinku" + +msgid "All dates" +msgstr "Svi datumi" + +#, python-format +msgid "Select %s" +msgstr "Odaberi objekat klase %s" + +#, python-format +msgid "Select %s to change" +msgstr "Odaberi objekat klase %s za izmenu" + +#, python-format +msgid "Select %s to view" +msgstr "Odaberi %sza pregled" + +msgid "Date:" +msgstr "Datum:" + +msgid "Time:" +msgstr "Vreme:" + +msgid "Lookup" +msgstr "Pretraži" + +msgid "Currently:" +msgstr "" + +msgid "Change:" +msgstr "" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/sr_Latn/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/sr_Latn/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..1535c7199d52fbdaa092190c1ee522e327f6086f GIT binary patch literal 6021 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 Ib%Kxo0_IL-E&u=k literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/sr_Latn/LC_MESSAGES/djangojs.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/sr_Latn/LC_MESSAGES/djangojs.po new file mode 100644 index 0000000000..ec4e06e6ed --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/sr_Latn/LC_MESSAGES/djangojs.po @@ -0,0 +1,392 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Igor Jerosimić, 2019,2021,2023-2024 +# Jannis Leidel , 2011 +# Janos Guljas , 2011-2012 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-05-22 11:46-0300\n" +"PO-Revision-Date: 2024-08-07 07:59+0000\n" +"Last-Translator: Igor Jerosimić, 2019,2021,2023-2024\n" +"Language-Team: Serbian (Latin) (http://app.transifex.com/django/django/language/sr@latin/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: sr@latin\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: contrib/admin/static/admin/js/SelectFilter2.js:38 +#, javascript-format +msgid "Available %s" +msgstr "Dostupni %s" + +#: contrib/admin/static/admin/js/SelectFilter2.js:44 +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "Ovo je lista dostupnih „%s“. Možete izabrati elemente tako što ćete ih izabrati u listi i kliknuti na „Izaberi“." + +#: contrib/admin/static/admin/js/SelectFilter2.js:60 +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "Filtrirajte listu dostupnih elemenata „%s“." + +#: contrib/admin/static/admin/js/SelectFilter2.js:65 +#: contrib/admin/static/admin/js/SelectFilter2.js:110 +msgid "Filter" +msgstr "Filter" + +#: contrib/admin/static/admin/js/SelectFilter2.js:69 +msgid "Choose all" +msgstr "Izaberi sve" + +#: contrib/admin/static/admin/js/SelectFilter2.js:69 +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "Izaberite sve „%s“ odjednom." + +#: contrib/admin/static/admin/js/SelectFilter2.js:75 +msgid "Choose" +msgstr "Izaberi" + +#: contrib/admin/static/admin/js/SelectFilter2.js:77 +msgid "Remove" +msgstr "Ukloni" + +#: contrib/admin/static/admin/js/SelectFilter2.js:83 +#, javascript-format +msgid "Chosen %s" +msgstr "Izabrano „%s“" + +#: contrib/admin/static/admin/js/SelectFilter2.js:89 +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "Ovo je lista izabranih „%s“. Možete ukloniti elemente tako što ćete ih izabrati u listi i kliknuti na „Ukloni“." + +#: contrib/admin/static/admin/js/SelectFilter2.js:105 +#, javascript-format +msgid "Type into this box to filter down the list of selected %s." +msgstr "Unesite u ovo polje da biste filtrirali listu izabranih %s." + +#: contrib/admin/static/admin/js/SelectFilter2.js:120 +msgid "Remove all" +msgstr "Ukloni sve" + +#: contrib/admin/static/admin/js/SelectFilter2.js:120 +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "Uklonite sve izabrane „%s“ odjednom." + +#: contrib/admin/static/admin/js/SelectFilter2.js:211 +#, javascript-format +msgid "%s selected option not visible" +msgid_plural "%s selected options not visible" +msgstr[0] "%s izabrana opcija nije vidljiva" +msgstr[1] "%s izabrane opcije nisu vidljive" +msgstr[2] "%s izabranih opcija nije vidljivo" + +#: contrib/admin/static/admin/js/actions.js:67 +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "%(sel)s od %(cnt)s izabran" +msgstr[1] "%(sel)s od %(cnt)s izabrana" +msgstr[2] "%(sel)s od %(cnt)s izabranih" + +#: contrib/admin/static/admin/js/actions.js:161 +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "Imate nesačivane izmene. Ako pokrenete akciju, izmene će biti izgubljene." + +#: contrib/admin/static/admin/js/actions.js:174 +msgid "" +"You have selected an action, but you haven’t saved your changes to " +"individual fields yet. Please click OK to save. You’ll need to re-run the " +"action." +msgstr "Izabrali ste akciju, ali niste sačuvali vaše promene u pojedinačna polja. Kliknite na OK da sačuvate promene. Biće neophodno da ponovo pokrenete akciju." + +#: contrib/admin/static/admin/js/actions.js:175 +msgid "" +"You have selected an action, and you haven’t made any changes on individual " +"fields. You’re probably looking for the Go button rather than the Save " +"button." +msgstr "Izabrali ste akciju i niste napravili nijednu promenu na pojedinačnim poljima. Verovatno tražite Kreni dugme umesto Sačuvaj." + +#: contrib/admin/static/admin/js/admin/DateTimeShortcuts.js:13 +#: contrib/admin/static/admin/js/admin/DateTimeShortcuts.js:110 +msgid "Now" +msgstr "Trenutno vreme" + +#: contrib/admin/static/admin/js/admin/DateTimeShortcuts.js:14 +msgid "Midnight" +msgstr "Ponoć" + +#: contrib/admin/static/admin/js/admin/DateTimeShortcuts.js:15 +msgid "6 a.m." +msgstr "18č" + +#: contrib/admin/static/admin/js/admin/DateTimeShortcuts.js:16 +msgid "Noon" +msgstr "Podne" + +#: contrib/admin/static/admin/js/admin/DateTimeShortcuts.js:17 +msgid "6 p.m." +msgstr "18č" + +#: contrib/admin/static/admin/js/admin/DateTimeShortcuts.js:78 +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "Obaveštenje: Vi ste %s sat ispred serverskog vremena." +msgstr[1] "Obaveštenje: Vi ste %s sata ispred serverskog vremena." +msgstr[2] "Obaveštenje: Vi ste %s sati ispred serverskog vremena." + +#: contrib/admin/static/admin/js/admin/DateTimeShortcuts.js:86 +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "Obaveštenje: Vi ste %s sat iza serverskog vremena." +msgstr[1] "Obaveštenje: Vi ste %s sata iza serverskog vremena." +msgstr[2] "Obaveštenje: Vi ste %s sati iza serverskog vremena." + +#: contrib/admin/static/admin/js/admin/DateTimeShortcuts.js:128 +msgid "Choose a Time" +msgstr "Odaberite vreme" + +#: contrib/admin/static/admin/js/admin/DateTimeShortcuts.js:158 +msgid "Choose a time" +msgstr "Odabir vremena" + +#: contrib/admin/static/admin/js/admin/DateTimeShortcuts.js:175 +#: contrib/admin/static/admin/js/admin/DateTimeShortcuts.js:333 +msgid "Cancel" +msgstr "Poništi" + +#: contrib/admin/static/admin/js/admin/DateTimeShortcuts.js:238 +#: contrib/admin/static/admin/js/admin/DateTimeShortcuts.js:318 +msgid "Today" +msgstr "Danas" + +#: contrib/admin/static/admin/js/admin/DateTimeShortcuts.js:255 +msgid "Choose a Date" +msgstr "Odaberite datum" + +#: contrib/admin/static/admin/js/admin/DateTimeShortcuts.js:312 +msgid "Yesterday" +msgstr "Juče" + +#: contrib/admin/static/admin/js/admin/DateTimeShortcuts.js:324 +msgid "Tomorrow" +msgstr "Sutra" + +#: contrib/admin/static/admin/js/calendar.js:11 +msgid "January" +msgstr "Januar" + +#: contrib/admin/static/admin/js/calendar.js:12 +msgid "February" +msgstr "Februar" + +#: contrib/admin/static/admin/js/calendar.js:13 +msgid "March" +msgstr "Mart" + +#: contrib/admin/static/admin/js/calendar.js:14 +msgid "April" +msgstr "April" + +#: contrib/admin/static/admin/js/calendar.js:15 +msgid "May" +msgstr "Maj" + +#: contrib/admin/static/admin/js/calendar.js:16 +msgid "June" +msgstr "Jun" + +#: contrib/admin/static/admin/js/calendar.js:17 +msgid "July" +msgstr "Jul" + +#: contrib/admin/static/admin/js/calendar.js:18 +msgid "August" +msgstr "Avgust" + +#: contrib/admin/static/admin/js/calendar.js:19 +msgid "September" +msgstr "Septembar" + +#: contrib/admin/static/admin/js/calendar.js:20 +msgid "October" +msgstr "Oktobar" + +#: contrib/admin/static/admin/js/calendar.js:21 +msgid "November" +msgstr "Novembar" + +#: contrib/admin/static/admin/js/calendar.js:22 +msgid "December" +msgstr "Decembar" + +#: contrib/admin/static/admin/js/calendar.js:25 +msgctxt "abbrev. month January" +msgid "Jan" +msgstr "jan" + +#: contrib/admin/static/admin/js/calendar.js:26 +msgctxt "abbrev. month February" +msgid "Feb" +msgstr "feb" + +#: contrib/admin/static/admin/js/calendar.js:27 +msgctxt "abbrev. month March" +msgid "Mar" +msgstr "mart" + +#: contrib/admin/static/admin/js/calendar.js:28 +msgctxt "abbrev. month April" +msgid "Apr" +msgstr "apr" + +#: contrib/admin/static/admin/js/calendar.js:29 +msgctxt "abbrev. month May" +msgid "May" +msgstr "maj" + +#: contrib/admin/static/admin/js/calendar.js:30 +msgctxt "abbrev. month June" +msgid "Jun" +msgstr "jun" + +#: contrib/admin/static/admin/js/calendar.js:31 +msgctxt "abbrev. month July" +msgid "Jul" +msgstr "jul" + +#: contrib/admin/static/admin/js/calendar.js:32 +msgctxt "abbrev. month August" +msgid "Aug" +msgstr "avg" + +#: contrib/admin/static/admin/js/calendar.js:33 +msgctxt "abbrev. month September" +msgid "Sep" +msgstr "sep" + +#: contrib/admin/static/admin/js/calendar.js:34 +msgctxt "abbrev. month October" +msgid "Oct" +msgstr "okt" + +#: contrib/admin/static/admin/js/calendar.js:35 +msgctxt "abbrev. month November" +msgid "Nov" +msgstr "nov" + +#: contrib/admin/static/admin/js/calendar.js:36 +msgctxt "abbrev. month December" +msgid "Dec" +msgstr "dec" + +#: contrib/admin/static/admin/js/calendar.js:39 +msgid "Sunday" +msgstr "nedelja" + +#: contrib/admin/static/admin/js/calendar.js:40 +msgid "Monday" +msgstr "ponedeljak" + +#: contrib/admin/static/admin/js/calendar.js:41 +msgid "Tuesday" +msgstr "utorak" + +#: contrib/admin/static/admin/js/calendar.js:42 +msgid "Wednesday" +msgstr "sreda" + +#: contrib/admin/static/admin/js/calendar.js:43 +msgid "Thursday" +msgstr "četvrtak" + +#: contrib/admin/static/admin/js/calendar.js:44 +msgid "Friday" +msgstr "petak" + +#: contrib/admin/static/admin/js/calendar.js:45 +msgid "Saturday" +msgstr "subota" + +#: contrib/admin/static/admin/js/calendar.js:48 +msgctxt "abbrev. day Sunday" +msgid "Sun" +msgstr "ned" + +#: contrib/admin/static/admin/js/calendar.js:49 +msgctxt "abbrev. day Monday" +msgid "Mon" +msgstr "pon" + +#: contrib/admin/static/admin/js/calendar.js:50 +msgctxt "abbrev. day Tuesday" +msgid "Tue" +msgstr "uto" + +#: contrib/admin/static/admin/js/calendar.js:51 +msgctxt "abbrev. day Wednesday" +msgid "Wed" +msgstr "sre" + +#: contrib/admin/static/admin/js/calendar.js:52 +msgctxt "abbrev. day Thursday" +msgid "Thur" +msgstr "čet" + +#: contrib/admin/static/admin/js/calendar.js:53 +msgctxt "abbrev. day Friday" +msgid "Fri" +msgstr "pet" + +#: contrib/admin/static/admin/js/calendar.js:54 +msgctxt "abbrev. day Saturday" +msgid "Sat" +msgstr "sub" + +#: contrib/admin/static/admin/js/calendar.js:57 +msgctxt "one letter Sunday" +msgid "S" +msgstr "N" + +#: contrib/admin/static/admin/js/calendar.js:58 +msgctxt "one letter Monday" +msgid "M" +msgstr "P" + +#: contrib/admin/static/admin/js/calendar.js:59 +msgctxt "one letter Tuesday" +msgid "T" +msgstr "U" + +#: contrib/admin/static/admin/js/calendar.js:60 +msgctxt "one letter Wednesday" +msgid "W" +msgstr "S" + +#: contrib/admin/static/admin/js/calendar.js:61 +msgctxt "one letter Thursday" +msgid "T" +msgstr "Č" + +#: contrib/admin/static/admin/js/calendar.js:62 +msgctxt "one letter Friday" +msgid "F" +msgstr "P" + +#: contrib/admin/static/admin/js/calendar.js:63 +msgctxt "one letter Saturday" +msgid "S" +msgstr "S" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/sv/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/sv/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..44dc92ddcc0b8331abf7cafacbf66403a8c5d26d GIT binary patch literal 18004 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, 2022-2023 +# Alex Nordlund , 2012 +# Anders Hovmöller , 2023 +# Andreas Pelme , 2014 +# d7bcbd5f5cbecdc2b959899620582440, 2011 +# Cybjit , 2012 +# Elias Johnstone , 2022 +# Henrik Palmlund Wahlgren , 2019 +# Jannis Leidel , 2011 +# Johan Rohdin, 2021 +# Jonathan Lindén, 2015 +# Jörgen Olofsson, 2024 +# Jonathan Lindén, 2014 +# metteludwig , 2019 +# Mattias Hansson , 2016 +# Mikko Hellsing , 2011 +# Thomas Lundqvist, 2013,2016-2017 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-05-22 11:46-0300\n" +"PO-Revision-Date: 2024-08-07 07:05+0000\n" +"Last-Translator: Jörgen Olofsson, 2024\n" +"Language-Team: Swedish (http://app.transifex.com/django/django/language/" +"sv/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: sv\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "Ta bort markerade %(verbose_name_plural)s" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "Tog bort %(count)d %(items)s" + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "Kan inte ta bort %(name)s" + +msgid "Are you sure?" +msgstr "Är du säker?" + +msgid "Administration" +msgstr "Administration" + +msgid "All" +msgstr "Alla" + +msgid "Yes" +msgstr "Ja" + +msgid "No" +msgstr "Nej" + +msgid "Unknown" +msgstr "Okänt" + +msgid "Any date" +msgstr "Alla datum" + +msgid "Today" +msgstr "Idag" + +msgid "Past 7 days" +msgstr "Senaste 7 dagarna" + +msgid "This month" +msgstr "Denna månad" + +msgid "This year" +msgstr "Detta år" + +msgid "No date" +msgstr "Inget datum" + +msgid "Has date" +msgstr "Har datum" + +msgid "Empty" +msgstr "Tom" + +msgid "Not empty" +msgstr "Inte tom" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" +"Ange %(username)s och lösenord för ett personalkonto. Notera att båda fälten " +"är skiftlägeskänsliga." + +msgid "Action:" +msgstr "Åtgärd:" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "Lägg till ytterligare %(verbose_name)s" + +msgid "Remove" +msgstr "Ta bort" + +msgid "Addition" +msgstr "Tillägg" + +msgid "Change" +msgstr "Ändra" + +msgid "Deletion" +msgstr "Borttagning" + +msgid "action time" +msgstr "händelsetid" + +msgid "user" +msgstr "användare" + +msgid "content type" +msgstr "innehållstyp" + +msgid "object id" +msgstr "objektets id" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/library/functions.html#repr) +msgid "object repr" +msgstr "objektets beskrivning" + +msgid "action flag" +msgstr "händelseflagga" + +msgid "change message" +msgstr "ändra meddelande" + +msgid "log entry" +msgstr "loggpost" + +msgid "log entries" +msgstr "loggposter" + +#, python-format +msgid "Added “%(object)s”." +msgstr "Lade till \"%(object)s\"." + +#, python-format +msgid "Changed “%(object)s” — %(changes)s" +msgstr "Ändrade “%(object)s” — %(changes)s" + +#, python-format +msgid "Deleted “%(object)s.”" +msgstr "Tog bort “%(object)s.”" + +msgid "LogEntry Object" +msgstr "LogEntry-Objekt" + +#, python-brace-format +msgid "Added {name} “{object}”." +msgstr "Lade till {name} “{object}”." + +msgid "Added." +msgstr "Lagt till." + +msgid "and" +msgstr "och" + +#, python-brace-format +msgid "Changed {fields} for {name} “{object}”." +msgstr "Ändrade {fields} för {name} “{object}”." + +#, python-brace-format +msgid "Changed {fields}." +msgstr "Ändrade {fields}." + +#, python-brace-format +msgid "Deleted {name} “{object}”." +msgstr "Tog bort {name} “{object}”." + +msgid "No fields changed." +msgstr "Inga fält ändrade." + +msgid "None" +msgstr "Inget" + +msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." +msgstr "" +"Håll inne “Control”, eller “Command” på en Mac, för att välja fler än en." + +msgid "Select this object for an action - {}" +msgstr "Välj detta objekt för en åtgärd - {}" + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully." +msgstr "Lade till {name} “{obj}”." + +msgid "You may edit it again below." +msgstr "Du kan redigera det igen nedan" + +#, python-brace-format +msgid "" +"The {name} “{obj}” was added successfully. You may add another {name} below." +msgstr "Lade till {name} “{obj}”. Du kan lägga till ytterligare {name} nedan." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may edit it again below." +msgstr "Ändrade {name} “{obj}”. Du kan göra ytterligare förändringar nedan." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may add another {name} " +"below." +msgstr "Ändrade {name} “{obj}”. Du kan lägga till ytterligare {name} nedan." + +#, python-brace-format +msgid "The {name} “{obj}” was changed successfully." +msgstr "Ändrade {name} “{obj}”." + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" +"Poster måste väljas för att genomföra åtgärder. Inga poster har ändrats." + +msgid "No action selected." +msgstr "Inga åtgärder valda." + +#, python-format +msgid "The %(name)s “%(obj)s” was deleted successfully." +msgstr "Tog bort %(name)s “%(obj)s”." + +#, python-format +msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" +msgstr "%(name)s med ID “%(key)s” finns inte. Kan den ha blivit borttagen?" + +#, python-format +msgid "Add %s" +msgstr "Lägg till %s" + +#, python-format +msgid "Change %s" +msgstr "Ändra %s" + +#, python-format +msgid "View %s" +msgstr "Visa %s" + +msgid "Database error" +msgstr "Databasfel" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "%(count)s %(name)s ändrades." +msgstr[1] "%(count)s %(name)s ändrades." + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "%(total_count)s vald" +msgstr[1] "Alla %(total_count)s valda" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "0 av %(cnt)s valda" + +#, python-format +msgid "Change history: %s" +msgstr "Ändringshistorik: %s" + +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "%(class_name)s %(instance)s" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" +"Borttagning av %(class_name)s %(instance)s kräver borttagning av följande " +"skyddade relaterade objekt: %(related_objects)s" + +msgid "Django site admin" +msgstr "Django webbplatsadministration" + +msgid "Django administration" +msgstr "Django-administration" + +msgid "Site administration" +msgstr "Webbplatsadministration" + +msgid "Log in" +msgstr "Logga in" + +#, python-format +msgid "%(app)s administration" +msgstr "Administration av %(app)s" + +msgid "Page not found" +msgstr "Sidan kunde inte hittas" + +msgid "We’re sorry, but the requested page could not be found." +msgstr "Tyvärr kunde inte den begärda sidan hittas." + +msgid "Home" +msgstr "Hem" + +msgid "Server error" +msgstr "Serverfel" + +msgid "Server error (500)" +msgstr "Serverfel (500)" + +msgid "Server Error (500)" +msgstr "Serverfel (500)" + +msgid "" +"There’s been an error. It’s been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" +"Ett fel har inträffat. Felet är rapporterat till sidans administratörer via " +"e-post och bör vara åtgärdat inom kort. Tack för ditt tålamod." + +msgid "Run the selected action" +msgstr "Kör markerade operationer" + +msgid "Go" +msgstr "Utför" + +msgid "Click here to select the objects across all pages" +msgstr "Klicka här för att välja alla objekt från alla sidor" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "Välj alla %(total_count)s %(module_name)s" + +msgid "Clear selection" +msgstr "Rensa urval" + +msgid "Breadcrumbs" +msgstr "Brödsmulor" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "Modeller i applikationen %(name)s" + +msgid "Add" +msgstr "Lägg till" + +msgid "View" +msgstr "Visa" + +msgid "You don’t have permission to view or edit anything." +msgstr "Du har inte tillåtelse att se eller ändra någonting." + +msgid "" +"First, enter a username and password. Then, you’ll be able to edit more user " +"options." +msgstr "" +"Ange först ett användarnamn och ett lösenord. Därefter kan du ändra fler " +"egenskaper för användaren." + +msgid "Enter a username and password." +msgstr "Mata in användarnamn och lösenord." + +msgid "Change password" +msgstr "Ändra lösenord" + +msgid "Set password" +msgstr "Sätt lösenord" + +msgid "Please correct the error below." +msgid_plural "Please correct the errors below." +msgstr[0] "Var god rätta felet nedan." +msgstr[1] "Vad god rätta felen nedan." + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "Ange nytt lösenord för användare %(username)s." + +msgid "" +"This action will enable password-based authentication for " +"this user." +msgstr "" +"Denna åtgärd aktiverar lösenordsbaserad autentisering för " +"denna användare." + +msgid "Disable password-based authentication" +msgstr "Inaktivera lösenordsbaserad autentisering" + +msgid "Enable password-based authentication" +msgstr "Aktivera lösenordsbaserad autentisering" + +msgid "Skip to main content" +msgstr "Hoppa till huvudinnehållet" + +msgid "Welcome," +msgstr "Välkommen," + +msgid "View site" +msgstr "Visa sida" + +msgid "Documentation" +msgstr "Dokumentation" + +msgid "Log out" +msgstr "Logga ut" + +#, python-format +msgid "Add %(name)s" +msgstr "Lägg till %(name)s" + +msgid "History" +msgstr "Historik" + +msgid "View on site" +msgstr "Visa på webbplats" + +msgid "Filter" +msgstr "Filtrera" + +msgid "Hide counts" +msgstr "Dölj antal" + +msgid "Show counts" +msgstr "Visa antal" + +msgid "Clear all filters" +msgstr "Rensa alla filter" + +msgid "Remove from sorting" +msgstr "Ta bort från sortering" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "Sorteringsprioritet: %(priority_number)s" + +msgid "Toggle sorting" +msgstr "Ändra sorteringsordning" + +msgid "Toggle theme (current theme: auto)" +msgstr "Växla tema (aktuellt tema: automatiskt)" + +msgid "Toggle theme (current theme: light)" +msgstr "Växla tema (aktuellt tema: ljust)" + +msgid "Toggle theme (current theme: dark)" +msgstr "Växla tema (aktuellt tema: mörkt)" + +msgid "Delete" +msgstr "Radera" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" +"Att ta bort %(object_name)s '%(escaped_object)s' skulle innebära att " +"relaterade objekt togs bort, men ditt konto har inte rättigheter att ta bort " +"följande objekttyper:" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" +"Borttagning av %(object_name)s '%(escaped_object)s' kräver borttagning av " +"följande skyddade relaterade objekt:" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" +"Är du säker på att du vill ta bort %(object_name)s \"%(escaped_object)s\"? " +"Följande relaterade objekt kommer att tas bort:" + +msgid "Objects" +msgstr "Objekt" + +msgid "Yes, I’m sure" +msgstr "Ja, jag är säker" + +msgid "No, take me back" +msgstr "Nej, ta mig tillbaka" + +msgid "Delete multiple objects" +msgstr "Ta bort flera objekt" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" +"Borttagning av valda %(objects_name)s skulle resultera i borttagning av " +"relaterade objekt, men ditt konto har inte behörighet att ta bort följande " +"typer av objekt:" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" +"Borttagning av valda %(objects_name)s skulle kräva borttagning av följande " +"skyddade objekt:" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" +"Är du säker på att du vill ta bort valda %(objects_name)s? Alla följande " +"objekt samt relaterade objekt kommer att tas bort: " + +msgid "Delete?" +msgstr "Radera?" + +#, python-format +msgid " By %(filter_title)s " +msgstr " På %(filter_title)s " + +msgid "Summary" +msgstr "Översikt" + +msgid "Recent actions" +msgstr "Senaste Händelser" + +msgid "My actions" +msgstr "Mina händelser" + +msgid "None available" +msgstr "Inga tillgängliga" + +msgid "Added:" +msgstr "Lagt till:" + +msgid "Changed:" +msgstr "Ändrade:" + +msgid "Deleted:" +msgstr "Raderade:" + +msgid "Unknown content" +msgstr "Okänt innehåll" + +msgid "" +"Something’s wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" +"Någonting är fel med din databas-installation. Kontrollera att relevanta " +"tabeller i databasen är skapta, och kontrollera även att databasen är läsbar " +"av rätt användare." + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" +"Du är autentiserad som %(username)s men är inte behörig att komma åt denna " +"sida. Vill du logga in med ett annat konto?" + +msgid "Forgotten your password or username?" +msgstr "Har du glömt lösenordet eller användarnamnet?" + +msgid "Toggle navigation" +msgstr "Växla navigering" + +msgid "Sidebar" +msgstr "Sidopanel" + +msgid "Start typing to filter…" +msgstr "Börja skriv för att filtrera..." + +msgid "Filter navigation items" +msgstr "Filtrera navigeringsobjekt" + +msgid "Date/time" +msgstr "Datum tid" + +msgid "User" +msgstr "Användare" + +msgid "Action" +msgstr "Händelse" + +msgid "entry" +msgid_plural "entries" +msgstr[0] "post" +msgstr[1] "poster" + +msgid "" +"This object doesn’t have a change history. It probably wasn’t added via this " +"admin site." +msgstr "" +"Det här objektet har ingen förändringshistorik. Det var antagligen inte " +"tillagt via den här admin-sidan." + +msgid "Show all" +msgstr "Visa alla" + +msgid "Save" +msgstr "Spara" + +msgid "Popup closing…" +msgstr "Popup stängs..." + +msgid "Search" +msgstr "Sök" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "%(counter)s resultat" +msgstr[1] "%(counter)s resultat" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "%(full_result_count)s totalt" + +msgid "Save as new" +msgstr "Spara som ny" + +msgid "Save and add another" +msgstr "Spara och lägg till ny" + +msgid "Save and continue editing" +msgstr "Spara och fortsätt redigera" + +msgid "Save and view" +msgstr "Spara och visa" + +msgid "Close" +msgstr "Stäng" + +#, python-format +msgid "Change selected %(model)s" +msgstr "Ändra markerade %(model)s" + +#, python-format +msgid "Add another %(model)s" +msgstr "Lägg till %(model)s" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "Ta bort markerade %(model)s" + +#, python-format +msgid "View selected %(model)s" +msgstr "Visa valda %(model)s" + +msgid "Thanks for spending some quality time with the web site today." +msgstr "Tack för att du spenderade kvalitetstid med webbplatsen idag." + +msgid "Log in again" +msgstr "Logga in igen" + +msgid "Password change" +msgstr "Ändra lösenord" + +msgid "Your password was changed." +msgstr "Ditt lösenord har ändrats." + +msgid "" +"Please enter your old password, for security’s sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" +"Vänligen ange ditt gamla lösenord, för säkerhets skull, och ange därefter " +"ditt nya lösenord två gånger så att vi kan kontrollera att du skrivit rätt." + +msgid "Change my password" +msgstr "Ändra mitt lösenord" + +msgid "Password reset" +msgstr "Nollställ lösenord" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "Ditt lösenord har ändrats. Du kan nu logga in." + +msgid "Password reset confirmation" +msgstr "Bekräftelse av lösenordsnollställning" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" +"Var god fyll i ditt nya lösenord två gånger så vi kan kontrollera att du " +"skrev det rätt." + +msgid "New password:" +msgstr "Nytt lösenord:" + +msgid "Confirm password:" +msgstr "Bekräfta lösenord:" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"Länken för lösenordsnollställning var felaktig, möjligen därför att den " +"redan använts. Var god skicka en ny nollställningsförfrågan." + +msgid "" +"We’ve emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" +"Vi har via e-post skickat dig instruktioner för hur du ställer in ditt " +"lösenord, om ett konto finns med e-posten du angav. Du borde få " +"instruktionerna inom kort." + +msgid "" +"If you don’t receive an email, please make sure you’ve entered the address " +"you registered with, and check your spam folder." +msgstr "" +"Om du inte fick ett e-postmeddelande; kontrollera att e-postadressen är " +"densamma som du registrerade dig med, och kolla i din skräppost." + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" +"Du får detta e-postmeddelande för att du har begärt återställning av ditt " +"lösenord av ditt konto på %(site_name)s." + +msgid "Please go to the following page and choose a new password:" +msgstr "Var god gå till följande sida och välj ett nytt lösenord:" + +msgid "Your username, in case you’ve forgotten:" +msgstr "Ditt användarnamn, utifall du glömt det:" + +msgid "Thanks for using our site!" +msgstr "Tack för att du använder vår webbplats!" + +#, python-format +msgid "The %(site_name)s team" +msgstr "%(site_name)s-teamet" + +msgid "" +"Forgotten your password? Enter your email address below, and we’ll email " +"instructions for setting a new one." +msgstr "" +"Har du glömt ditt lösenord? Ange din e-postadress nedan, så skickar vi dig " +"instruktioner för hur du ställer in ett nytt." + +msgid "Email address:" +msgstr "E-postadress:" + +msgid "Reset my password" +msgstr "Nollställ mitt lösenord" + +msgid "Select all objects on this page for an action" +msgstr "Välj alla objekt på denna sida för en åtgärd" + +msgid "All dates" +msgstr "Alla datum" + +#, python-format +msgid "Select %s" +msgstr "Välj %s" + +#, python-format +msgid "Select %s to change" +msgstr "Välj %s att ändra" + +#, python-format +msgid "Select %s to view" +msgstr "Välj %s för visning" + +msgid "Date:" +msgstr "Datum:" + +msgid "Time:" +msgstr "Tid:" + +msgid "Lookup" +msgstr "Uppslag" + +msgid "Currently:" +msgstr "Nuvarande:" + +msgid "Change:" +msgstr "Ändra:" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/sv/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/sv/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..47d3efe969938b5e272576afdd667b5c368396ff GIT binary patch literal 5938 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/sv/LC_MESSAGES/djangojs.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/sv/LC_MESSAGES/djangojs.po new file mode 100644 index 0000000000..28bd355fbd --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/sv/LC_MESSAGES/djangojs.po @@ -0,0 +1,328 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Anders Hovmöller , 2023 +# Andreas Pelme , 2012,2024 +# Danijel Grujicic, 2023 +# Elias Johnstone , 2022 +# Jannis Leidel , 2011 +# Jörgen Olofsson, 2024 +# Jonathan Lindén, 2014 +# Mattias Hansson , 2016 +# Mattias Benjaminsson , 2011 +# Samuel Linde , 2011 +# Thomas Lundqvist, 2016 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-05-22 11:46-0300\n" +"PO-Revision-Date: 2024-08-07 07:59+0000\n" +"Last-Translator: Jörgen Olofsson, 2024\n" +"Language-Team: Swedish (http://app.transifex.com/django/django/language/" +"sv/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: sv\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, javascript-format +msgid "Available %s" +msgstr "Tillgängliga %s" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" +"Detta är listan med tillgängliga %s. Du kan välja ut vissa genom att markera " +"dem i rutan nedan och sedan klicka på \"Välj\"-knapparna mellan de två " +"rutorna." + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "Skriv i denna ruta för att filtrera listan av tillgängliga %s." + +msgid "Filter" +msgstr "Filter" + +msgid "Choose all" +msgstr "Välj alla" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "Klicka för att välja alla %s på en gång." + +msgid "Choose" +msgstr "Välj" + +msgid "Remove" +msgstr "Ta bort" + +#, javascript-format +msgid "Chosen %s" +msgstr "Välj %s" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" +"Detta är listan med utvalda %s. Du kan ta bort vissa genom att markera dem i " +"rutan nedan och sedan klicka på \"Ta bort\"-pilen mellan de två rutorna." + +#, javascript-format +msgid "Type into this box to filter down the list of selected %s." +msgstr "Skriv i denna ruta för att filtrera listan av tillgängliga %s." + +msgid "Remove all" +msgstr "Ta bort alla" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "Klicka för att ta bort alla valda %s på en gång." + +#, javascript-format +msgid "%s selected option not visible" +msgid_plural "%s selected options not visible" +msgstr[0] "%s valt alternativ inte synligt" +msgstr[1] "%s valda alternativ inte synliga" + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "%(sel)s av %(cnt)s markerade" +msgstr[1] "%(sel)s av %(cnt)s markerade" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" +"Du har ändringar som inte sparats i enskilda redigerbara fält. Om du kör en " +"operation kommer de ändringar som inte sparats att gå förlorade." + +msgid "" +"You have selected an action, but you haven’t saved your changes to " +"individual fields yet. Please click OK to save. You’ll need to re-run the " +"action." +msgstr "" +"Du har markerat en operation, men du har inte sparat sparat dina ändringar " +"till enskilda fält ännu. Var vänlig klicka OK för att spara. Du kommer att " +"behöva köra operationen på nytt." + +msgid "" +"You have selected an action, and you haven’t made any changes on individual " +"fields. You’re probably looking for the Go button rather than the Save " +"button." +msgstr "" +"Du har markerat en operation och du har inte gjort några ändringar i " +"enskilda fält. Du letar antagligen efter Utför-knappen snarare än Spara." + +msgid "Now" +msgstr "Nu" + +msgid "Midnight" +msgstr "Midnatt" + +msgid "6 a.m." +msgstr "06:00" + +msgid "Noon" +msgstr "Middag" + +msgid "6 p.m." +msgstr "6 p.m." + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "Notera: Du är %s timme före serverns tid." +msgstr[1] "Notera: Du är %s timmar före serverns tid." + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "Notera: Du är %s timme efter serverns tid." +msgstr[1] "Notera: Du är %s timmar efter serverns tid." + +msgid "Choose a Time" +msgstr "Välj en tidpunkt" + +msgid "Choose a time" +msgstr "Välj en tidpunkt" + +msgid "Cancel" +msgstr "Avbryt" + +msgid "Today" +msgstr "I dag" + +msgid "Choose a Date" +msgstr "Välj ett datum" + +msgid "Yesterday" +msgstr "I går" + +msgid "Tomorrow" +msgstr "I morgon" + +msgid "January" +msgstr "januari" + +msgid "February" +msgstr "februari" + +msgid "March" +msgstr "mars" + +msgid "April" +msgstr "april" + +msgid "May" +msgstr "maj" + +msgid "June" +msgstr "juni" + +msgid "July" +msgstr "juli" + +msgid "August" +msgstr "augusti" + +msgid "September" +msgstr "september" + +msgid "October" +msgstr "oktober" + +msgid "November" +msgstr "november" + +msgid "December" +msgstr "december" + +msgctxt "abbrev. month January" +msgid "Jan" +msgstr "jan" + +msgctxt "abbrev. month February" +msgid "Feb" +msgstr "feb" + +msgctxt "abbrev. month March" +msgid "Mar" +msgstr "mar" + +msgctxt "abbrev. month April" +msgid "Apr" +msgstr "apr" + +msgctxt "abbrev. month May" +msgid "May" +msgstr "maj" + +msgctxt "abbrev. month June" +msgid "Jun" +msgstr "jun" + +msgctxt "abbrev. month July" +msgid "Jul" +msgstr "jul" + +msgctxt "abbrev. month August" +msgid "Aug" +msgstr "aug" + +msgctxt "abbrev. month September" +msgid "Sep" +msgstr "sep" + +msgctxt "abbrev. month October" +msgid "Oct" +msgstr "okt" + +msgctxt "abbrev. month November" +msgid "Nov" +msgstr "nov" + +msgctxt "abbrev. month December" +msgid "Dec" +msgstr "dec" + +msgid "Sunday" +msgstr "Söndag" + +msgid "Monday" +msgstr "Måndag" + +msgid "Tuesday" +msgstr "Tisdag" + +msgid "Wednesday" +msgstr "Onsdag" + +msgid "Thursday" +msgstr "Torsdag" + +msgid "Friday" +msgstr "Fredag" + +msgid "Saturday" +msgstr "Lördag" + +msgctxt "abbrev. day Sunday" +msgid "Sun" +msgstr "sön" + +msgctxt "abbrev. day Monday" +msgid "Mon" +msgstr "mån" + +msgctxt "abbrev. day Tuesday" +msgid "Tue" +msgstr "tis" + +msgctxt "abbrev. day Wednesday" +msgid "Wed" +msgstr "ons" + +msgctxt "abbrev. day Thursday" +msgid "Thur" +msgstr "tors" + +msgctxt "abbrev. day Friday" +msgid "Fri" +msgstr "fre" + +msgctxt "abbrev. day Saturday" +msgid "Sat" +msgstr "lör" + +msgctxt "one letter Sunday" +msgid "S" +msgstr "S" + +msgctxt "one letter Monday" +msgid "M" +msgstr "M" + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "T" + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "O" + +msgctxt "one letter Thursday" +msgid "T" +msgstr "T" + +msgctxt "one letter Friday" +msgid "F" +msgstr "F" + +msgctxt "one letter Saturday" +msgid "S" +msgstr "L" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/sw/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/sw/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..9aa7f311c2d81d020da08b9ad7486c4c305d61a6 GIT binary patch literal 17698 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, 2023 +# DOREEN WANYAMA, 2023 +# Machaku, 2013-2014 +# Machaku, 2016 +# Millicent Atieno Obwanda , 2023 +# Natalia (Django Fellow), 2023 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-09-18 11:41-0300\n" +"PO-Revision-Date: 2023-12-25 07:05+0000\n" +"Last-Translator: DOREEN WANYAMA, 2023\n" +"Language-Team: Swahili (http://app.transifex.com/django/django/language/" +"sw/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: sw\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "Futa %(verbose_name_plural)s teule" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "Umefanikiwa kufuta %(items)s %(count)d." + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "Huwezi kufuta %(name)s" + +msgid "Are you sure?" +msgstr "Una uhakika?" + +msgid "Administration" +msgstr "Utawala" + +msgid "All" +msgstr "yote" + +msgid "Yes" +msgstr "Ndiyo" + +msgid "No" +msgstr "Hapana" + +msgid "Unknown" +msgstr "Haijulikani" + +msgid "Any date" +msgstr "Tarehe yoyote" + +msgid "Today" +msgstr "Leo" + +msgid "Past 7 days" +msgstr "Siku 7 zilizopita" + +msgid "This month" +msgstr "mwezi huu" + +msgid "This year" +msgstr "Mwaka huu" + +msgid "No date" +msgstr "Hakuna tarehe" + +msgid "Has date" +msgstr "Kuna tarehe" + +msgid "Empty" +msgstr "tupu" + +msgid "Not empty" +msgstr "si tupu" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" +"Tafadhali ingiza %(username)s na nywila sahihi kwa akaunti ya msimamizi. " +"Kumbuka kuzingatia herufi kubwa na ndogo." + +msgid "Action:" +msgstr "Tendo" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "Ongeza %(verbose_name)s" + +msgid "Remove" +msgstr "Ondoa" + +msgid "Addition" +msgstr "ongeza" + +msgid "Change" +msgstr "Badilisha" + +msgid "Deletion" +msgstr "Ufutaji" + +msgid "action time" +msgstr "muda wa tendo" + +msgid "user" +msgstr "mtumiaji" + +msgid "content type" +msgstr "aina ya maudhui" + +msgid "object id" +msgstr "Kitambulisho cha kitu" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/library/functions.html#repr) +msgid "object repr" +msgstr "`repr` ya kitu" + +msgid "action flag" +msgstr "bendera ya tendo" + +msgid "change message" +msgstr "badilisha ujumbe" + +msgid "log entry" +msgstr "ingizo kwenye kumbukumbu" + +msgid "log entries" +msgstr "maingizo kwenye kumbukumbu" + +#, python-format +msgid "Added “%(object)s”." +msgstr "“%(object)s” Imeongezwa" + +#, python-format +msgid "Changed “%(object)s” — %(changes)s" +msgstr "Kubadilishwa kwa “%(object)s” — %(changes)s" + +#, python-format +msgid "Deleted “%(object)s.”" +msgstr "Kimefutwa “%(object)s”" + +msgid "LogEntry Object" +msgstr "Kitu cha Ingizo la Kumbukumbu" + +#, python-brace-format +msgid "Added {name} “{object}”." +msgstr "Kumeongezwa {name} “{object}”." + +msgid "Added." +msgstr "Imeongezwa" + +msgid "and" +msgstr "na" + +#, python-brace-format +msgid "Changed {fields} for {name} “{object}”." +msgstr "Mabadiliko ya {fields} yamefanyika kwenye {name} “{object}”." + +#, python-brace-format +msgid "Changed {fields}." +msgstr "Mabadiliko yamefanyika katika {fields} " + +#, python-brace-format +msgid "Deleted {name} “{object}”." +msgstr " {name} “{object}” umefutwa." + +msgid "No fields changed." +msgstr "Hakuna uga uliobadilishwa." + +msgid "None" +msgstr "Hakuna" + +msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." +msgstr "" +" Shikilia 'Control', au 'Command' kwenye Mac, ili kuchagua zaidi ya moja." + +msgid "Select this object for an action - {}" +msgstr "" + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully." +msgstr "{name} “{obj}” imeongezwa kwa mafanikio." + +msgid "You may edit it again below." +msgstr "Unaweza kuihariri tena hapa chini" + +#, python-brace-format +msgid "" +"The {name} “{obj}” was added successfully. You may add another {name} below." +msgstr "" +"{name} “{obj}” imeongezwa kwa mafanikio. Unaweza kuongeza {name} nyingine " +"hapa chini." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may edit it again below." +msgstr "" +"{name} “{obj}” ilibadilishwa kwa mafanikio. Unaweza kuihariri tena hapa " +"chini." + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully. You may edit it again below." +msgstr "" +"{name} “{obj}” imeongezwa kwa mafanikio. Unaweza kuihariri tena hapa chini." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may add another {name} " +"below." +msgstr "" +"{name} “{obj} imebadilishwa kwa mafanikio. Unaweza kuongeza {name} nyingine " +"hapa chini. " + +#, python-brace-format +msgid "The {name} “{obj}” was changed successfully." +msgstr "{name} “{obj}” imebadilishwa kwa mafanikio." + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" +"Nilazima kuchagua vitu ili kufanyia kitu fulani. Hakuna kitu " +"kilichochaguliwa." + +msgid "No action selected." +msgstr "Hakuna tendo lililochaguliwa" + +#, python-format +msgid "The %(name)s “%(obj)s” was deleted successfully." +msgstr "%(name)s%(obj)s ilifutwa kwa mafanikio." + +#, python-format +msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" +msgstr "%(name)sna ID %(key)s haipo. Labda ilifutwa?" + +#, python-format +msgid "Add %s" +msgstr "Ongeza %s" + +#, python-format +msgid "Change %s" +msgstr "Badilisha %s" + +#, python-format +msgid "View %s" +msgstr "Muonekano %s" + +msgid "Database error" +msgstr "Hitilafu katika hifadhidata" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "mabadiliko ya %(name)s %(count)s yamefanikiwa." +msgstr[1] "mabadiliko ya %(name)s %(count)s yamefanikiwa." + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "%(total_count)s kuchaguliwa" +msgstr[1] "%(total_count)s (kila kitu) kuchaguliwa" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "Vilivyo chaguliwa ni 0 kati ya %(cnt)s" + +#, python-format +msgid "Change history: %s" +msgstr "Badilisha historia: %s" + +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "%(instance)s %(class_name)s" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" +"Kufutwa kwa ingizo la %(instance)s %(class_name)s kutahitaji kufutwa kwa " +"vitu vifuatavyo vyenye mahusiano vilivyokingwa: %(related_objects)s" + +msgid "Django site admin" +msgstr "Utawala wa tovuti ya django" + +msgid "Django administration" +msgstr "Utawala wa Django" + +msgid "Site administration" +msgstr "Utawala wa tovuti" + +msgid "Log in" +msgstr "Ingia" + +#, python-format +msgid "%(app)s administration" +msgstr "Utawala wa %(app)s" + +msgid "Page not found" +msgstr "Ukurasa haujapatikana" + +msgid "We’re sorry, but the requested page could not be found." +msgstr "Samahani, ukurasa uliotafutwa haukupatikana." + +msgid "Home" +msgstr "Nyumbani" + +msgid "Server error" +msgstr "Hitilafu ya seva" + +msgid "Server error (500)" +msgstr "Hitilafu ya seva (500)" + +msgid "Server Error (500)" +msgstr "Hitilafu ya seva (500)" + +msgid "" +"There’s been an error. It’s been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" +"Kumekuwa na kosa. Waendeshaji wa tovuti wamearifiwa kupitia barua pepe, na " +"linapaswa kurekebishwa hivi karibuni. Asante kwa uvumilivu wako." + +msgid "Run the selected action" +msgstr "Fanya tendo lililochaguliwa." + +msgid "Go" +msgstr "Nenda" + +msgid "Click here to select the objects across all pages" +msgstr "Bofya hapa kuchagua viumbile katika kurasa zote" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "Chagua kila %(module_name)s, (%(total_count)s). " + +msgid "Clear selection" +msgstr "Safisha chaguo" + +msgid "Breadcrumbs" +msgstr "Nyayo " + +#, python-format +msgid "Models in the %(name)s application" +msgstr "Models katika application %(name)s" + +msgid "Add" +msgstr "Ongeza" + +msgid "View" +msgstr "Muonekano" + +msgid "You don’t have permission to view or edit anything." +msgstr "Huna ruhusa ya kutazama au kuhariri kitu chochote" + +msgid "" +"First, enter a username and password. Then, you’ll be able to edit more user " +"options." +msgstr "" +"Kwanza, ingiza jina la mtumiaji na nywila. Kisha, utaweza kuhariri chaguo " +"zaidi za mtumiaji." + +msgid "Enter a username and password." +msgstr "Ingiza jina la mtumiaji na nywila." + +msgid "Change password" +msgstr "Badilisha nywila" + +msgid "Please correct the error below." +msgid_plural "Please correct the errors below." +msgstr[0] "Tafadhali sahihisha kosa lifuatalo." +msgstr[1] "Tafadhali sahihisha makosa yafuatayo" + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "ingiza nywila ya mtumiaji %(username)s." + +msgid "Skip to main content" +msgstr "Ruka hadi kwa maudhui makuu." + +msgid "Welcome," +msgstr "Karibu" + +msgid "View site" +msgstr "Tazama tovuti" + +msgid "Documentation" +msgstr "Nyaraka" + +msgid "Log out" +msgstr "Toka" + +#, python-format +msgid "Add %(name)s" +msgstr "Ongeza %(name)s" + +msgid "History" +msgstr "Historia" + +msgid "View on site" +msgstr "Ona kwenye tovuti" + +msgid "Filter" +msgstr "Chuja" + +msgid "Hide counts" +msgstr "Ficha idadi" + +msgid "Show counts" +msgstr "Onesha idadi" + +msgid "Clear all filters" +msgstr "Safisha vichungi vyote" + +msgid "Remove from sorting" +msgstr "Ondoa katika upangaji" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "Kipaumbele katika mpangilio: %(priority_number)s" + +msgid "Toggle sorting" +msgstr "Geuza mpangilio" + +msgid "Toggle theme (current theme: auto)" +msgstr "Badilisha mandhari (mandhari ya sasa: auto)" + +msgid "Toggle theme (current theme: light)" +msgstr "Badilisha mandhari (mandhari ya sasa: mwanga)" + +msgid "Toggle theme (current theme: dark)" +msgstr "Badilisha mandhari (mandhari ya sasa: giza)" + +msgid "Delete" +msgstr "Futa" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" +"Kufutwa kwa '%(escaped_object)s' %(object_name)s kutasababisha kufutwa kwa " +"vitu vinavyohuisana, lakini akaunti yako haina ruhusa ya kufuta vitu vya " +"aina zifuatazo:" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" +"Kufuta '%(escaped_object)s' %(object_name)s kutahitaji kufuta vitu " +"vifuatavyo ambavyo vinavyohuisana na vimelindwa:" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" +"Una uhakika kuwa unataka kufuta \"%(escaped_object)s\" %(object_name)s ? " +"Vitu vyote vinavyohuisana kati ya vifuatavyo vitafutwa:" + +msgid "Objects" +msgstr "Viumbile" + +msgid "Yes, I’m sure" +msgstr "Ndiyo, nina uhakika" + +msgid "No, take me back" +msgstr "Hapana, nirudishe" + +msgid "Delete multiple objects" +msgstr "Futa viumbile mbalimbali" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" +"Kufutwa kwa %(objects_name)s chaguliwa kutasababisha kufutwa kwa " +"vituvinavyohusiana, lakini akaunti yako haina ruhusa ya kufuta vitu vya " +"vifuatavyo:" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" +"Kufutwa kwa %(objects_name)s kutahitaji kufutwa kwa vitu vifuatavyo vyenye " +"uhusiano na vilivyolindwa:" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" +"Una uhakika kuwa unataka kufuta %(objects_name)s chaguliwa ? Vitu vyote kati " +"ya vifuatavyo vinavyohusiana vitafutwa:" + +msgid "Delete?" +msgstr "Futa?" + +#, python-format +msgid " By %(filter_title)s " +msgstr " Kwa %(filter_title)s" + +msgid "Summary" +msgstr "Muhtasari" + +msgid "Recent actions" +msgstr "Matendo ya karibuni" + +msgid "My actions" +msgstr "Matendo yangu" + +msgid "None available" +msgstr "Hakuna kilichopatikana" + +msgid "Added:" +msgstr "Imeongezwa:" + +msgid "Changed:" +msgstr "Kimebadilika" + +msgid "Deleted:" +msgstr "Kimefutwa" + +msgid "Unknown content" +msgstr "Maudhui hayajulikani" + +msgid "" +"Something’s wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" +"Kuna tatizo na ufungaji wa hifadhidata yako. Hakikisha meza sahihi za " +"hifadhidata zimeundwa, na hakikisha hifadhidata inaweza kusomwa na mtumiaji " +"sahihi." + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" +"Umejithibitisha kama %(username)s, lakini huna ruhusa ya kupata ukurasa huu. " +"Ungependa kuingia kwa akaunti nyingine?" + +msgid "Forgotten your password or username?" +msgstr "Umesahau jina na nenosiri lako?" + +msgid "Toggle navigation" +msgstr "Badilisha urambazaji" + +msgid "Sidebar" +msgstr "Upande wa Kando" + +msgid "Start typing to filter…" +msgstr "Anza kuchapa ili kuchuja…" + +msgid "Filter navigation items" +msgstr "Chuja vitu vya urambazaji" + +msgid "Date/time" +msgstr "Tarehe/saa" + +msgid "User" +msgstr "Mtumiaji" + +msgid "Action" +msgstr "Tendo" + +msgid "entry" +msgid_plural "entries" +msgstr[0] "ingizo" +msgstr[1] "maingizo" + +msgid "" +"This object doesn’t have a change history. It probably wasn’t added via this " +"admin site." +msgstr "" +"Hakuna historia ya mabadiliko kwa kipande hiki. Labda hakikuongezwa kupitia " +"tovuti hii ya usimamizi." + +msgid "Show all" +msgstr "Onesha yotee" + +msgid "Save" +msgstr "Hifadhi" + +msgid "Popup closing…" +msgstr "Udukizi inafungwa..." + +msgid "Search" +msgstr "Tafuta" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "tokeo %(counter)s" +msgstr[1] "matokeo %(counter)s" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "jumla %(full_result_count)s" + +msgid "Save as new" +msgstr "Hifadhi kama mpya" + +msgid "Save and add another" +msgstr "Hifadhi na ongeza" + +msgid "Save and continue editing" +msgstr "Hifadhi na endelea kuhariri" + +msgid "Save and view" +msgstr "Hifadhi kisha tazama" + +msgid "Close" +msgstr "Funga" + +#, python-format +msgid "Change selected %(model)s" +msgstr "Badili %(model)s husika" + +#, python-format +msgid "Add another %(model)s" +msgstr "Ongeza %(model)s tena" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "Futa %(model)s husika" + +#, python-format +msgid "View selected %(model)s" +msgstr "Tazama %(model)s zilizochaguliwa" + +msgid "Thanks for spending some quality time with the web site today." +msgstr "Asante kwa kutumia muda wako kenye tovuti leo." + +msgid "Log in again" +msgstr "ingia tena" + +msgid "Password change" +msgstr "Badilisha nywila" + +msgid "Your password was changed." +msgstr "Nywila yako imebadilishwa" + +msgid "" +"Please enter your old password, for security’s sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" +"Tafadhali ingiza nywila yako ya zamani, kwa usalama, na kisha ingiza nywila " +"yako mpya mara mbili ili tuweze kuthibitisha kuwa umeingiza kwa usahihi" + +msgid "Change my password" +msgstr "Badilisha nywila yangu" + +msgid "Password reset" +msgstr "Kuseti nywila upya" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "Nywila yako imesetiwa. Unaweza kuendelea na kuingia sasa." + +msgid "Password reset confirmation" +msgstr "Uthibitisho wa kuseti nywila upya" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" +"Tafadhali ingiza nywila mpya mara mbili ili tuweze kuthibitisha kuwa " +"umelichapisha kwa usahihi." + +msgid "New password:" +msgstr "Nywila mpya:" + +msgid "Confirm password:" +msgstr "Thibitisha nywila" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"Kiungo cha kuseti nywila upya ni batili, inawezekana ni kwa sababu kiungo " +"hicho tayari kimetumika. tafadhali omba upya kuseti nywila." + +msgid "" +"We’ve emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" +"Tumekutumia barua pepe na maelekezo ya kuweka nywila yako, endapo akaunti " +"inayolingana na barua pepe uliyoingiza ipo. Unapaswa kuzipokea hivi karibuni." + +msgid "" +"If you don’t receive an email, please make sure you’ve entered the address " +"you registered with, and check your spam folder." +msgstr "" +"Ikiwa hautapokea barua pepe, tafadhali hakikisha umeweka anwani " +"uliyojiandikisha nayo, na angalia folda yako ya barua taka" + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" +"Umepata barua pepe hii kwa sababu ulihitaji ku seti upya nywila ya akaunti " +"yako ya %(site_name)s." + +msgid "Please go to the following page and choose a new password:" +msgstr "Tafadhali nenda ukurasa ufuatao na uchague nywila mpya:" + +msgid "Your username, in case you’ve forgotten:" +msgstr "Jina lako la utumiaji, ikiwa umesahau:" + +msgid "Thanks for using our site!" +msgstr "Ahsante kwa kutumia tovui yetu!" + +#, python-format +msgid "The %(site_name)s team" +msgstr "timu ya %(site_name)s" + +msgid "" +"Forgotten your password? Enter your email address below, and we’ll email " +"instructions for setting a new one." +msgstr "" +"Umensahau nywila yako? Ingiza anwani yako ya barua pepe hapa chini, na " +"tutakutumia barua pepe na maelekezo ya kuweka mpya." + +msgid "Email address:" +msgstr "Anuani ya barua pepe:" + +msgid "Reset my password" +msgstr "Seti nywila yangu upya" + +msgid "Select all objects on this page for an action" +msgstr "Chagua vitu vyote kwenye ukurasa huu kwa hatua." + +msgid "All dates" +msgstr "Tarehe zote" + +#, python-format +msgid "Select %s" +msgstr "Chagua %s" + +#, python-format +msgid "Select %s to change" +msgstr "Chaguo %s kwa mabadilisho" + +#, python-format +msgid "Select %s to view" +msgstr "Chagua %s kuona" + +msgid "Date:" +msgstr "Tarehe" + +msgid "Time:" +msgstr "Saa" + +msgid "Lookup" +msgstr "`Lookup`" + +msgid "Currently:" +msgstr "Kwa sasa:" + +msgid "Change:" +msgstr "Badilisha:" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/sw/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/sw/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..12f1466cf36601c7aa3d6d866e8772ed1a6391d1 GIT binary patch literal 3647 zcmb_eNsrt_6fPia!@lp~5h)~r*t4)CbO=fq2pO^snI1%h5PIFNZr8M3)!5~BoC8Qm za7Qc$#DRz(fVd)#{0NW$Ax>Plpd2ER1K+bf3or^{vBv(omiOv=-+NUxKis)CB>5S+wn>)QUmhbi1%K+ z5{EpHq<(H|QTTwix(BbsB9Fv!2i}{d(LQ$pQ4Z?Pwk`Z_X@7%G&HFy!t$6RoTgL}n zeGsxz+jr(V*_D$U(Dt2u>+usEy6<&#(Xl6q!!%R}Cu|b#C7QP9YMyOhCu%-+F4rv( zlQ-#lE2+nGZEJ(X^he|!^=lL2BtbW^CkIcVnqM8ybm}I$9>>(idVSgBhfcYII1`E#yCNfwHAfP0uCs~GYJ%bBb3x|PCsR+y#zvRqcJryF zI$1~Bf&{FVVppneY;wY%k2NJGhd=}34cdowkSSNIQsyqz)T`QL8aouzl#H!i^xSEX zOcQw5`eEHprG?QcwF*V~(uuOGhx*dAKR5we+krYLoXL88yQE9U~WU zrMfP4!drE#u|~)!FfaN^)c8H9%Y`CWHW6*Ar#hu`6qUG>@`)Mcx4JPP8gbtnXLr~7 zRqX`3!&Ax;>eNae*bX%|mIZ^zOiWa8g0*!L<+V0DP?6)z^{{&?N}Q|3A2^gFRDJ;> z7v94-W3;6ci^|B7FlolZi&MiS+DI*jWh6b>8ab%(7jjf-AJSr?IoC~9(1|0Wo7gwZ zu}!UpFLY))$clzpBgqC*g>9DHTnZf-U!NSSnk)=zy5eqwz%}1Ldnyem^sp6N?nAYh zxfPsP!9o=}@!+`Q6k>J$9K7j^#rW1}R?5`>zn2hW-Kw&>>SR)0k4?Ms8gJn3fsFQ z*T)MnOW%CGNDEZ5tg_mgRJZ|}hNA>4=jvHE0EJPp$}Oi+$u#EFt#H_mN*+dqvyl@M z5o}l_2Gcf9osWwZR)-8m)pBk|1=hy?w`{dK7{x_gfZUNH?G+>L(DF!jQ0*?o(W|K# zVHG=M)J4o>#S|g3=#%RS|Isq#e{b7b+NwzTU#@y-wo4$XPKapDmm2j?Sd9pAJsYxy zT;?LgD^-vaM6Fzth>(^om-@_x)byC6*wDoIq85HsOhjy{D9P~%U~*hw1*DI8EdNFr ztbk4|Fe-X=qEj@WHd2F2O>DQ-#zFx5y0xAdoG2#zCmfsN_`fOE>RpWCQSH5)!hSJ*_bxQ2UA4}5>hOr*Nm`3*EHA={uyKW vjKi6V!$@RU7|BV2$Q!4PH`(gO>fIZCaN6SvDs#naI>WMpaAO=>IE{V>)l@t2 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/sw/LC_MESSAGES/djangojs.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/sw/LC_MESSAGES/djangojs.po new file mode 100644 index 0000000000..5806dd9397 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/sw/LC_MESSAGES/djangojs.po @@ -0,0 +1,217 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Machaku , 2013-2014 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-05-17 23:12+0200\n" +"PO-Revision-Date: 2017-09-23 18:54+0000\n" +"Last-Translator: Jannis Leidel \n" +"Language-Team: Swahili (http://www.transifex.com/django/django/language/" +"sw/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: sw\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, javascript-format +msgid "Available %s" +msgstr "Yaliyomo: %s" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" +"Hii ni orodha ya %s uliyochagua. Unaweza kuchagua baadhi vitu kwa kuvichagua " +"katika kisanduku hapo chini kisha kubofya mshale wa \"Chagua\" kati ya " +"visanduku viwili." + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "Chapisha katika kisanduku hiki ili kuchuja orodha ya %s iliyopo." + +msgid "Filter" +msgstr "Chuja" + +msgid "Choose all" +msgstr "Chagua vyote" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "Bofya kuchagua %s kwa pamoja." + +msgid "Choose" +msgstr "Chagua" + +msgid "Remove" +msgstr "Ondoa" + +#, javascript-format +msgid "Chosen %s" +msgstr "Chaguo la %s" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" +"Hii ni orodha ya %s uliyochagua. Unaweza kuondoa baadhi vitu kwa kuvichagua " +"katika kisanduku hapo chini kisha kubofya mshale wa \"Ondoa\" kati ya " +"visanduku viwili." + +msgid "Remove all" +msgstr "Ondoa vyote" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "Bofya ili kuondoa %s chaguliwa kwa pamoja." + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "umechagua %(sel)s kati ya %(cnt)s" +msgstr[1] "umechagua %(sel)s kati ya %(cnt)s" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" +"Umeacha kuhifadhi mabadiliko katika uga zinazoharirika. Ikiwa utafanya tendo " +"lingine, mabadiliko ambayo hayajahifadhiwa yatapotea." + +msgid "" +"You have selected an action, but you haven't saved your changes to " +"individual fields yet. Please click OK to save. You'll need to re-run the " +"action." +msgstr "" +"Umechagua tendo, lakini bado hujahifadhi mabadiliko yako katika uga husika. " +"Tafadali bofya Sawa ukitaka kuhifadhi. Utahitajika kufanya upya kitendo " + +msgid "" +"You have selected an action, and you haven't made any changes on individual " +"fields. You're probably looking for the Go button rather than the Save " +"button." +msgstr "" +"Umechagua tendo, lakini bado hujahifadhi mabadiliko yako katika uga husika. " +"Inawezekana unatafuta kitufe cha Nenda badala ya Hifadhi" + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "Kumbuka: Uko saa %s mbele ukilinganisha na majira ya seva" +msgstr[1] "Kumbuka: Uko masaa %s mbele ukilinganisha na majira ya seva" + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "Kumbuka: Uko saa %s nyuma ukilinganisha na majira ya seva" +msgstr[1] "Kumbuka: Uko masaa %s nyuma ukilinganisha na majira ya seva" + +msgid "Now" +msgstr "Sasa" + +msgid "Choose a Time" +msgstr "" + +msgid "Choose a time" +msgstr "Chagua wakati" + +msgid "Midnight" +msgstr "Usiku wa manane" + +msgid "6 a.m." +msgstr "Saa 12 alfajiri" + +msgid "Noon" +msgstr "Adhuhuri" + +msgid "6 p.m." +msgstr "" + +msgid "Cancel" +msgstr "Ghairi" + +msgid "Today" +msgstr "Leo" + +msgid "Choose a Date" +msgstr "" + +msgid "Yesterday" +msgstr "Jana" + +msgid "Tomorrow" +msgstr "Kesho" + +msgid "January" +msgstr "" + +msgid "February" +msgstr "" + +msgid "March" +msgstr "" + +msgid "April" +msgstr "" + +msgid "May" +msgstr "" + +msgid "June" +msgstr "" + +msgid "July" +msgstr "" + +msgid "August" +msgstr "" + +msgid "September" +msgstr "" + +msgid "October" +msgstr "" + +msgid "November" +msgstr "" + +msgid "December" +msgstr "" + +msgctxt "one letter Sunday" +msgid "S" +msgstr "" + +msgctxt "one letter Monday" +msgid "M" +msgstr "" + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "" + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "" + +msgctxt "one letter Thursday" +msgid "T" +msgstr "" + +msgctxt "one letter Friday" +msgid "F" +msgstr "" + +msgctxt "one letter Saturday" +msgid "S" +msgstr "" + +msgid "Show" +msgstr "Onesha" + +msgid "Hide" +msgstr "Ficha" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ta/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ta/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..398f1f2850e8e8e7b35426612c95e4a23cd6c773 GIT binary patch literal 10179 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ta/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ta/LC_MESSAGES/django.po new file mode 100644 index 0000000000..3a3cf1bb9e --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ta/LC_MESSAGES/django.po @@ -0,0 +1,643 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Jannis Leidel , 2011 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-01-19 16:49+0100\n" +"PO-Revision-Date: 2017-09-19 16:40+0000\n" +"Last-Translator: Jannis Leidel \n" +"Language-Team: Tamil (http://www.transifex.com/django/django/language/ta/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ta\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "" + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "" + +msgid "Are you sure?" +msgstr "உறுதியாக சொல்கிறீர்களா?" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "" + +msgid "Administration" +msgstr "" + +msgid "All" +msgstr "அனைத்தும்" + +msgid "Yes" +msgstr "ஆம்" + +msgid "No" +msgstr "இல்லை" + +msgid "Unknown" +msgstr "தெரியாத" + +msgid "Any date" +msgstr "எந்த தேதியும்" + +msgid "Today" +msgstr "இன்று" + +msgid "Past 7 days" +msgstr "கடந்த 7 நாட்களில்" + +msgid "This month" +msgstr "இந்த மாதம்" + +msgid "This year" +msgstr "இந்த வருடம்" + +msgid "No date" +msgstr "" + +msgid "Has date" +msgstr "" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" + +msgid "Action:" +msgstr "" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "" + +msgid "Remove" +msgstr "அழிக்க" + +msgid "action time" +msgstr "செயல் நேரம்" + +msgid "user" +msgstr "" + +msgid "content type" +msgstr "" + +msgid "object id" +msgstr "பொருள் அடையாளம்" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/3/library/functions.html#repr) +msgid "object repr" +msgstr "பொருள் உருவகித்தம்" + +msgid "action flag" +msgstr "செயர்குறி" + +msgid "change message" +msgstr "செய்தியை மாற்று" + +msgid "log entry" +msgstr "புகுபதிவு உள்ளீடு" + +msgid "log entries" +msgstr "புகுபதிவு உள்ளீடுகள்" + +#, python-format +msgid "Added \"%(object)s\"." +msgstr "" + +#, python-format +msgid "Changed \"%(object)s\" - %(changes)s" +msgstr "" + +#, python-format +msgid "Deleted \"%(object)s.\"" +msgstr "" + +msgid "LogEntry Object" +msgstr "" + +#, python-brace-format +msgid "Added {name} \"{object}\"." +msgstr "" + +msgid "Added." +msgstr "" + +msgid "and" +msgstr "மற்றும்" + +#, python-brace-format +msgid "Changed {fields} for {name} \"{object}\"." +msgstr "" + +#, python-brace-format +msgid "Changed {fields}." +msgstr "" + +#, python-brace-format +msgid "Deleted {name} \"{object}\"." +msgstr "" + +msgid "No fields changed." +msgstr "எந்த புலமும் மாறவில்லை." + +msgid "None" +msgstr "" + +msgid "" +"Hold down \"Control\", or \"Command\" on a Mac, to select more than one." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was added successfully. You may edit it again below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was added successfully. You may add another {name} " +"below." +msgstr "" + +#, python-brace-format +msgid "The {name} \"{obj}\" was added successfully." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was changed successfully. You may edit it again below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was changed successfully. You may add another {name} " +"below." +msgstr "" + +#, python-brace-format +msgid "The {name} \"{obj}\" was changed successfully." +msgstr "" + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" + +msgid "No action selected." +msgstr "" + +#, python-format +msgid "The %(name)s \"%(obj)s\" was deleted successfully." +msgstr "%(name)s \"%(obj)s\" வெற்றிகரமாக அழிக்கப்பட்டுள்ளது." + +#, python-format +msgid "%(name)s with ID \"%(key)s\" doesn't exist. Perhaps it was deleted?" +msgstr "" + +#, python-format +msgid "Add %s" +msgstr "%s யை சேர்க்க" + +#, python-format +msgid "Change %s" +msgstr "%s யை மாற்று" + +msgid "Database error" +msgstr "தகவல்சேமிப்பு பிழை" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "" + +#, python-format +msgid "Change history: %s" +msgstr "வரலாற்றை மாற்று: %s" + +#. Translators: Model verbose name and instance representation, +#. suitable to be an item in a list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" + +msgid "Django site admin" +msgstr "டிஜாங்ஙோ தள நிர்வாகி" + +msgid "Django administration" +msgstr "டிஜாங்ஙோ நிர்வாகம் " + +msgid "Site administration" +msgstr "இணைய மேலான்மை" + +msgid "Log in" +msgstr "உள்ளே போ" + +#, python-format +msgid "%(app)s administration" +msgstr "" + +msgid "Page not found" +msgstr "பக்கத்தைக் காணவில்லை" + +msgid "We're sorry, but the requested page could not be found." +msgstr "நீங்கள் விரும்பிய பக்கத்தை காண இயலவில்லை,அதற்காக நாங்கள் வருந்துகிறோம்." + +msgid "Home" +msgstr "வீடு" + +msgid "Server error" +msgstr "சேவகன் பிழை" + +msgid "Server error (500)" +msgstr "சேவையகம் தவறு(500)" + +msgid "Server Error (500)" +msgstr "சேவையகம் பிழை(500)" + +msgid "" +"There's been an error. It's been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" + +msgid "Run the selected action" +msgstr "" + +msgid "Go" +msgstr "செல்" + +msgid "Click here to select the objects across all pages" +msgstr "" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "" + +msgid "Clear selection" +msgstr "" + +msgid "" +"First, enter a username and password. Then, you'll be able to edit more user " +"options." +msgstr "" +"முதலில்,பயனர்ப்பெயர் மற்றும் கடவுச்சொல்லை உள்ளிடவும்.அதன் பிறகு தான் நீங்கள் உங்கள் பெயரின் " +"விவரங்களை திருத்த முடியும்" + +msgid "Enter a username and password." +msgstr "" + +msgid "Change password" +msgstr "கடவுச்சொல்லை மாற்று" + +msgid "Please correct the error below." +msgstr "கீழே உள்ள தவறுகளைத் திருத்துக" + +msgid "Please correct the errors below." +msgstr "" + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "" + +msgid "Welcome," +msgstr "நல்வரவு," + +msgid "View site" +msgstr "" + +msgid "Documentation" +msgstr "ஆவனமாக்கம்" + +msgid "Log out" +msgstr "வெளியேறு" + +#, python-format +msgid "Add %(name)s" +msgstr "%(name)s சேர்க்க" + +msgid "History" +msgstr "வரலாறு" + +msgid "View on site" +msgstr "தளத்தில் பார்" + +msgid "Filter" +msgstr "வடிகட்டி" + +msgid "Remove from sorting" +msgstr "" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "" + +msgid "Toggle sorting" +msgstr "" + +msgid "Delete" +msgstr "நீக்குக" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" +"நீக்கும் '%(escaped_object)s' ஆனது %(object_name)s தொடர்புடைய மற்றவற்றையும் நீக்கும். " +"ஆனால் அதை நீக்குவதற்குரிய உரிமை உங்களுக்கு இல்லை" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" +"நீங்கள் இந்த \"%(escaped_object)s\" %(object_name)s நீக்குவதில் நிச்சயமா?தொடர்புடைய " +"மற்றவையும் நீக்கப்படும். " + +msgid "Objects" +msgstr "" + +msgid "Yes, I'm sure" +msgstr "ஆம், எனக்கு உறுதி" + +msgid "No, take me back" +msgstr "" + +msgid "Delete multiple objects" +msgstr "" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" + +msgid "Change" +msgstr "மாற்றுக" + +msgid "Delete?" +msgstr "" + +#, python-format +msgid " By %(filter_title)s " +msgstr "%(filter_title)s ஆல்" + +msgid "Summary" +msgstr "" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "" + +msgid "Add" +msgstr "சேர்க்க" + +msgid "You don't have permission to edit anything." +msgstr "உங்களுக்கு மாற்றுவதற்குரிய உரிமையில்லை" + +msgid "Recent actions" +msgstr "" + +msgid "My actions" +msgstr "" + +msgid "None available" +msgstr "எதுவும் கிடைக்கவில்லை" + +msgid "Unknown content" +msgstr "" + +msgid "" +"Something's wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" +"உங்களுடைய தகவல்சேமிப்பகத்தை நிறுவுவதில் சில தவறுகள் உள்ளது. அதற்கு இணையான " +"தகவல்சேமிப்பு அட்டவணையைதயாரிக்கவும். மேலும் பயனர் படிக்கும் படியான தகவல்சேமிப்பகத்தை " +"உருவாக்கவும்." + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" + +msgid "Forgotten your password or username?" +msgstr "" + +msgid "Date/time" +msgstr "தேதி/நேரம் " + +msgid "User" +msgstr "பயனர்" + +msgid "Action" +msgstr "செயல்" + +msgid "" +"This object doesn't have a change history. It probably wasn't added via this " +"admin site." +msgstr "" +"இந்த பொருள் மாற்று வரலாற்றில் இல்லைஒரு வேளை நிர்வாகத்தளத்தின் மூலம் சேர்க்கப்படாமலிருக்கலாம்" + +msgid "Show all" +msgstr "எல்லாவற்றையும் காட்டு" + +msgid "Save" +msgstr "சேமிக்க" + +msgid "Popup closing..." +msgstr "" + +#, python-format +msgid "Change selected %(model)s" +msgstr "" + +#, python-format +msgid "Add another %(model)s" +msgstr "" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "" + +msgid "Search" +msgstr "" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "%(full_result_count)s மொத்தம்" + +msgid "Save as new" +msgstr "புதியதாக சேமி" + +msgid "Save and add another" +msgstr "சேமித்து இன்னுமொன்றைச் சேர்" + +msgid "Save and continue editing" +msgstr "சேமித்து மாற்றத்தை தொடருக" + +msgid "Thanks for spending some quality time with the Web site today." +msgstr "வலைத்தளத்தில் உங்களது பொன்னான நேரத்தை செலவழித்தமைக்கு மிகுந்த நன்றி" + +msgid "Log in again" +msgstr "மீண்டும் உள்ளே பதிவு செய்யவும்" + +msgid "Password change" +msgstr "கடவுச்சொல் மாற்று" + +msgid "Your password was changed." +msgstr "உங்களுடைய கடவுச்சொல் மாற்றபட்டது" + +msgid "" +"Please enter your old password, for security's sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" +"பாதுகாப்பு காரணங்களுக்காக , முதலில் உங்களது பழைய கடவுச்சொல்லை உள்ளிடுக. அதன் பிறகு " +"புதிய கடவுச்சொல்லை இரு முறை உள்ளிடுக. இது உங்களது உள்ளிடுதலை சரிபார்க்க உதவும். " + +msgid "Change my password" +msgstr "கடவுச் சொல்லை மாற்றவும்" + +msgid "Password reset" +msgstr "கடவுச்சொல்லை மாற்றியமை" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "" + +msgid "Password reset confirmation" +msgstr "" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" + +msgid "New password:" +msgstr "புதிய கடவுச்சொல்:" + +msgid "Confirm password:" +msgstr "கடவுச்சொலின் மாற்றத்தை உறுதிப்படுத்து:" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" + +msgid "" +"We've emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" + +msgid "" +"If you don't receive an email, please make sure you've entered the address " +"you registered with, and check your spam folder." +msgstr "" + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" + +msgid "Please go to the following page and choose a new password:" +msgstr "" + +msgid "Your username, in case you've forgotten:" +msgstr "உங்களது பயனாளர் பெயர், நீங்கள் மறந்திருந்தால்:" + +msgid "Thanks for using our site!" +msgstr "எங்களது வலைத்தளத்தை பயன் படுத்தியதற்கு மிகுந்த நன்றி" + +#, python-format +msgid "The %(site_name)s team" +msgstr "இந்த %(site_name)s -இன் குழு" + +msgid "" +"Forgotten your password? Enter your email address below, and we'll email " +"instructions for setting a new one." +msgstr "" + +msgid "Email address:" +msgstr "" + +msgid "Reset my password" +msgstr "எனது கடவுச்சொல்லை மாற்றியமை" + +msgid "All dates" +msgstr "அனைத்து தேதியும்" + +#, python-format +msgid "Select %s" +msgstr "%s யை தேர்ந்தெடு" + +#, python-format +msgid "Select %s to change" +msgstr "%s யை மாற்ற தேர்ந்தெடு" + +msgid "Date:" +msgstr "தேதி:" + +msgid "Time:" +msgstr "நேரம்:" + +msgid "Lookup" +msgstr "" + +msgid "Currently:" +msgstr "" + +msgid "Change:" +msgstr "" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ta/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ta/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..339311151934df01a30f236f83be8e2226fe6124 GIT binary patch literal 1379 zcmb7>%WD)d9LGnkuk}ei_`pXLgqD)somKmoTG3VuinXPzqQ|(K?xxHp%S`$@cqsVj zMUm1Tr3VFT53@cIL991VUOae|oc$xjZ!+E1tAXS*zvTOS&ac*%MGtEq_EGEw?1R|5 zH{rmlg4;j=?gr~?_C0V9?E7E_oCkM;&(_{wf;(U*U<>#W+yZ`Hd;bbR% z{|PQ&8|)*nC*X7ndhsTiHtC2{J^OB}l%k&nHVxeR}%HvE{RA!XdRix=qToGm3KT(Nk zQ3WJ3GF+qs5oa1&dYNe+kV4+?r1^8y?;?dWfnVsz7xH-s=_sERHs*$|i{^W%-$VS) z;H=+~$I4u1v8Kg{$v9+MMFF|Sq!cl^&PADr(1R0Y0)a!77{yio*3iP*^;W|(vF%4*PL^j<=QhtSBI`_^zLW#nE@p=m#Ar` zj^;F<*13AfgzP1yDvM&S`)(EoY4?WC<{IM>y&_AhEMz4h-FJmvFA_0WW+a@5SV#v| zREq;5>&}e(3cV!#>}!+cWFPU{do!L%7ESWSByUY)j&u@}Bqn)ol2t;y(=p6PCV6cd zvsTu4?8K`kd1I0n@FMX3U>cA-caKXhQi5;$GM{=P#eRYkv^p7 zLz681n-s;EhSR&;{}npz@;_=Z$%;$6;%Y?xCDevu&^#uC zVWM(-3lk5^&YnfPu2(y*S=$Vzj0wV_VZYOXLD3A|zy$D9-n*tyob!2LFVZA7!y>}K X, 2011 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-05-17 23:12+0200\n" +"PO-Revision-Date: 2017-09-19 16:41+0000\n" +"Last-Translator: Jannis Leidel \n" +"Language-Team: Tamil (http://www.transifex.com/django/django/language/ta/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ta\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, javascript-format +msgid "Available %s" +msgstr "%s இருக்கிறதா " + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "" + +msgid "Filter" +msgstr "வடிகட்டி" + +msgid "Choose all" +msgstr "எல்லாவற்றையும் தேர்ந்த்தெடுக்க" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "" + +msgid "Choose" +msgstr "" + +msgid "Remove" +msgstr "அழிக்க" + +#, javascript-format +msgid "Chosen %s" +msgstr "%s தேர்ந்த்தெடுக்கப்பட்ட" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" + +msgid "Remove all" +msgstr "" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "" + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "" +msgstr[1] "" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" + +msgid "" +"You have selected an action, but you haven't saved your changes to " +"individual fields yet. Please click OK to save. You'll need to re-run the " +"action." +msgstr "" + +msgid "" +"You have selected an action, and you haven't made any changes on individual " +"fields. You're probably looking for the Go button rather than the Save " +"button." +msgstr "" + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "" +msgstr[1] "" + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "" +msgstr[1] "" + +msgid "Now" +msgstr "இப்பொழுது " + +msgid "Choose a Time" +msgstr "" + +msgid "Choose a time" +msgstr "ஒரு நேரத்தை தேர்ந்த்தெடுக்க " + +msgid "Midnight" +msgstr "நடு இரவு " + +msgid "6 a.m." +msgstr "காலை 6 மணி " + +msgid "Noon" +msgstr "மதியம் " + +msgid "6 p.m." +msgstr "" + +msgid "Cancel" +msgstr "வேண்டாம் " + +msgid "Today" +msgstr "இன்று " + +msgid "Choose a Date" +msgstr "" + +msgid "Yesterday" +msgstr "நேற்று " + +msgid "Tomorrow" +msgstr "நாளை" + +msgid "January" +msgstr "" + +msgid "February" +msgstr "" + +msgid "March" +msgstr "" + +msgid "April" +msgstr "" + +msgid "May" +msgstr "" + +msgid "June" +msgstr "" + +msgid "July" +msgstr "" + +msgid "August" +msgstr "" + +msgid "September" +msgstr "" + +msgid "October" +msgstr "" + +msgid "November" +msgstr "" + +msgid "December" +msgstr "" + +msgctxt "one letter Sunday" +msgid "S" +msgstr "" + +msgctxt "one letter Monday" +msgid "M" +msgstr "" + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "" + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "" + +msgctxt "one letter Thursday" +msgid "T" +msgstr "" + +msgctxt "one letter Friday" +msgid "F" +msgstr "" + +msgctxt "one letter Saturday" +msgid "S" +msgstr "" + +msgid "Show" +msgstr "" + +msgid "Hide" +msgstr "" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/te/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/te/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..17e7dc6bd4fa0bf83cccedb63d8aba406f754ac3 GIT binary patch literal 10590 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, 2011 +# Jannis Leidel , 2011 +# ప్రవీణ్ ఇళ్ళ , 2011,2013 +# వీవెన్ , 2011 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-01-19 16:49+0100\n" +"PO-Revision-Date: 2017-09-19 16:40+0000\n" +"Last-Translator: Jannis Leidel \n" +"Language-Team: Telugu (http://www.transifex.com/django/django/language/te/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: te\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "%(count)d %(items)s జయప్రదముగా తీసేవేయబడినది." + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "%(name)s తొలగించుట వీలుకాదు" + +msgid "Are you sure?" +msgstr "మీరు ఖచ్చితంగా ఇలా చేయాలనుకుంటున్నారా?" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "ఎంచుకోన్న %(verbose_name_plural)s తీసివేయుము " + +msgid "Administration" +msgstr "" + +msgid "All" +msgstr "అన్నీ" + +msgid "Yes" +msgstr "అవును" + +msgid "No" +msgstr "కాదు" + +msgid "Unknown" +msgstr "తెలియనది" + +msgid "Any date" +msgstr "ఏ రోజైన" + +msgid "Today" +msgstr "ఈ రోజు" + +msgid "Past 7 days" +msgstr "గత 7 రోజుల గా" + +msgid "This month" +msgstr "ఈ నెల" + +msgid "This year" +msgstr "ఈ సంవత్సరం" + +msgid "No date" +msgstr "" + +msgid "Has date" +msgstr "" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" + +msgid "Action:" +msgstr "చర్య:" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "" + +msgid "Remove" +msgstr "తొలగించు" + +msgid "action time" +msgstr "పని సమయము " + +msgid "user" +msgstr "" + +msgid "content type" +msgstr "" + +msgid "object id" +msgstr "వస్తువు" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/3/library/functions.html#repr) +msgid "object repr" +msgstr "వస్తువు" + +msgid "action flag" +msgstr "పని ఫ్లాగ్" + +msgid "change message" +msgstr "సందేశము ని మార్చంది" + +msgid "log entry" +msgstr "లాగ్ ఎంట్రీ" + +msgid "log entries" +msgstr "లాగ్ ఎంట్రీలు" + +#, python-format +msgid "Added \"%(object)s\"." +msgstr "" + +#, python-format +msgid "Changed \"%(object)s\" - %(changes)s" +msgstr "" + +#, python-format +msgid "Deleted \"%(object)s.\"" +msgstr "" + +msgid "LogEntry Object" +msgstr "" + +#, python-brace-format +msgid "Added {name} \"{object}\"." +msgstr "" + +msgid "Added." +msgstr "" + +msgid "and" +msgstr "మరియు" + +#, python-brace-format +msgid "Changed {fields} for {name} \"{object}\"." +msgstr "" + +#, python-brace-format +msgid "Changed {fields}." +msgstr "" + +#, python-brace-format +msgid "Deleted {name} \"{object}\"." +msgstr "" + +msgid "No fields changed." +msgstr "క్షేత్రములు ఏమి మార్చబడలేదు" + +msgid "None" +msgstr "వొకటీ లేదు" + +msgid "" +"Hold down \"Control\", or \"Command\" on a Mac, to select more than one." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was added successfully. You may edit it again below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was added successfully. You may add another {name} " +"below." +msgstr "" + +#, python-brace-format +msgid "The {name} \"{obj}\" was added successfully." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was changed successfully. You may edit it again below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was changed successfully. You may add another {name} " +"below." +msgstr "" + +#, python-brace-format +msgid "The {name} \"{obj}\" was changed successfully." +msgstr "" + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" +"అంశములపయి తదుపరి చర్య తీసుకోనటకు వాటిని ఎంపిక చేసుకోవలెను. ప్రస్తుతం ఎటువంటి అంశములు " +"మార్చబడలేదు." + +msgid "No action selected." +msgstr "మీరు ఎటువంటి చర్య తీసుకొనలేదు " + +#, python-format +msgid "The %(name)s \"%(obj)s\" was deleted successfully." +msgstr "%(name)s \"%(obj)s\" జయప్రదంగా తీసివేయబడ్డడి" + +#, python-format +msgid "%(name)s with ID \"%(key)s\" doesn't exist. Perhaps it was deleted?" +msgstr "" + +#, python-format +msgid "Add %s" +msgstr "%sని జత చేయండి " + +#, python-format +msgid "Change %s" +msgstr "%sని మార్చుము" + +msgid "Database error" +msgstr "దత్తాంశస్థానము పొరబాటు " + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "%(count)s %(name)s జయప్రదముగా మార్చబడినవి." +msgstr[1] "%(count)s %(name)s జయప్రదముగా మార్చబడినవి." + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "%(total_count)s ఎంపికయినది." +msgstr[1] "అన్ని %(total_count)s ఎంపికయినవి." + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "0 of %(cnt)s ఎంపికయినవి." + +#, python-format +msgid "Change history: %s" +msgstr "చరిత్రం మార్చు: %s" + +#. Translators: Model verbose name and instance representation, +#. suitable to be an item in a list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" + +msgid "Django site admin" +msgstr "జాంగొ యొక్క నిర్వాహణదారులు" + +msgid "Django administration" +msgstr "జాంగొ నిర్వాహణ" + +msgid "Site administration" +msgstr "సైట్ నిర్వాహణ" + +msgid "Log in" +msgstr "ప్రవేశించండి" + +#, python-format +msgid "%(app)s administration" +msgstr "" + +msgid "Page not found" +msgstr "పుట దొరకలేదు" + +msgid "We're sorry, but the requested page could not be found." +msgstr "క్షమించండి మీరు కోరిన పుట దొరకలేడు" + +msgid "Home" +msgstr "నివాసము" + +msgid "Server error" +msgstr "సర్వర్ పొరబాటు" + +msgid "Server error (500)" +msgstr "సర్వర్ పొరబాటు (500)" + +msgid "Server Error (500)" +msgstr "సర్వర్ పొరబాటు (500)" + +msgid "" +"There's been an error. It's been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" + +msgid "Run the selected action" +msgstr "ఎంచుకున్న చర్యను నడుపు" + +msgid "Go" +msgstr "వెళ్లు" + +msgid "Click here to select the objects across all pages" +msgstr "" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "" + +msgid "Clear selection" +msgstr "ఎంపికను తుడిచివేయి" + +msgid "" +"First, enter a username and password. Then, you'll be able to edit more user " +"options." +msgstr "" + +msgid "Enter a username and password." +msgstr "ఒక వాడుకరిపేరు మరియు సంకేతపదాన్ని ప్రవేశపెట్టండి." + +msgid "Change password" +msgstr "సంకేతపదాన్ని మార్చుకోండి" + +msgid "Please correct the error below." +msgstr "క్రింద ఉన్న తప్పులు సరిదిద్దుకోండి" + +msgid "Please correct the errors below." +msgstr "" + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "" + +msgid "Welcome," +msgstr "సుస్వాగతం" + +msgid "View site" +msgstr "" + +msgid "Documentation" +msgstr "పత్రీకరణ" + +msgid "Log out" +msgstr "నిష్క్రమించండి" + +#, python-format +msgid "Add %(name)s" +msgstr "%(name)s జత చేయు" + +msgid "History" +msgstr "చరిత్ర" + +msgid "View on site" +msgstr "సైట్ లో చూడండి" + +msgid "Filter" +msgstr "వడపోత" + +msgid "Remove from sorting" +msgstr "క్రమీకరణ నుండి తొలగించు" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "" + +msgid "Toggle sorting" +msgstr "" + +msgid "Delete" +msgstr "తొలగించు" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" + +msgid "Objects" +msgstr "" + +msgid "Yes, I'm sure" +msgstr "అవును " + +msgid "No, take me back" +msgstr "" + +msgid "Delete multiple objects" +msgstr "" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" + +msgid "Change" +msgstr "మార్చు" + +msgid "Delete?" +msgstr "తొలగించాలా?" + +#, python-format +msgid " By %(filter_title)s " +msgstr "" + +msgid "Summary" +msgstr "" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "" + +msgid "Add" +msgstr "చేర్చు" + +msgid "You don't have permission to edit anything." +msgstr "మీకు ఏది మార్చటానికి అధికారము లేదు" + +msgid "Recent actions" +msgstr "" + +msgid "My actions" +msgstr "" + +msgid "None available" +msgstr "ఏమి దొరకలేదు" + +msgid "Unknown content" +msgstr "తెలియని విషయం" + +msgid "" +"Something's wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" + +msgid "Forgotten your password or username?" +msgstr "మీ సంకేతపదం లేదా వాడుకరిపేరును మర్చిపోయారా?" + +msgid "Date/time" +msgstr "తేదీ/సమయం" + +msgid "User" +msgstr "వాడుకరి" + +msgid "Action" +msgstr "చర్య" + +msgid "" +"This object doesn't have a change history. It probably wasn't added via this " +"admin site." +msgstr "" + +msgid "Show all" +msgstr "అన్నీ చూపించు" + +msgid "Save" +msgstr "భద్రపరుచు" + +msgid "Popup closing..." +msgstr "" + +#, python-format +msgid "Change selected %(model)s" +msgstr "" + +#, python-format +msgid "Add another %(model)s" +msgstr "" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "" + +msgid "Search" +msgstr "వెతుకు" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "%(counter)s ఫలితం" +msgstr[1] "%(counter)s ఫలితాలు" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "%(full_result_count)s మొత్తము" + +msgid "Save as new" +msgstr "కొత్త దాని లా దాచు" + +msgid "Save and add another" +msgstr "దాచి కొత్త దానిని కలపండి" + +msgid "Save and continue editing" +msgstr "దాచి మార్చుటా ఉందండి" + +msgid "Thanks for spending some quality time with the Web site today." +msgstr "" + +msgid "Log in again" +msgstr "మళ్ళీ ప్రవేశించండి" + +msgid "Password change" +msgstr "అనుమతి పదం మార్పు" + +msgid "Your password was changed." +msgstr "మీ అనుమతి పదం మార్చబడిండి" + +msgid "" +"Please enter your old password, for security's sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" +"దయచేసి రక్షన కోసము, మీ పాత అనుమతి పదం ఇవ్వండి , కొత్త అనుమతి పదం రెండు సార్లు ఇవ్వండి , " +"ఎం దుకంటే మీరు తప్పు ఇస్తే సరిచేయటానికి " + +msgid "Change my password" +msgstr "నా సంకేతపదాన్ని మార్చు" + +msgid "Password reset" +msgstr "అనుమతి పదం తిరిగి అమర్చు" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "మీ అనుమతి పదం మర్చుబడినది. మీరు ఇప్పుదు లాగ్ ఇన్ అవ్వచ్చు." + +msgid "Password reset confirmation" +msgstr "అనుమతి పదం తిరిగి మార్చు ఖాయం చెయండి" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" +"దయచేసి రక్షన కోసము, మీ పాత అనుమతి పదం ఇవ్వండి , కొత్త అనుమతి పదం రెండు సార్లు ఇవ్వండి , " +"ఎం దుకంటే మీరు తప్పు ఇస్తే సరిచేయటానికి " + +msgid "New password:" +msgstr "కొత్త సంకేతపదం:" + +msgid "Confirm password:" +msgstr "సంకేతపదాన్ని నిర్ధారించండి:" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" + +msgid "" +"We've emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" + +msgid "" +"If you don't receive an email, please make sure you've entered the address " +"you registered with, and check your spam folder." +msgstr "" + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" + +msgid "Please go to the following page and choose a new password:" +msgstr "" + +msgid "Your username, in case you've forgotten:" +msgstr "మీ వాడుకరిపేరు, ఒక వేళ మీరు మర్చిపోయివుంటే:" + +msgid "Thanks for using our site!" +msgstr "మా సైటుని ఉపయోగిస్తున్నందుకు ధన్యవాదములు!" + +#, python-format +msgid "The %(site_name)s team" +msgstr "%(site_name)s జట్టు" + +msgid "" +"Forgotten your password? Enter your email address below, and we'll email " +"instructions for setting a new one." +msgstr "" + +msgid "Email address:" +msgstr "ఈమెయిలు చిరునామా:" + +msgid "Reset my password" +msgstr "అనుమతిపదం తిరిగి అమర్చు" + +msgid "All dates" +msgstr "అన్నీ తేదీలు" + +#, python-format +msgid "Select %s" +msgstr "%s ని ఎన్నుకోండి" + +#, python-format +msgid "Select %s to change" +msgstr "%s ని మార్చటానికి ఎన్నుకోండి" + +msgid "Date:" +msgstr "తారీఖు:" + +msgid "Time:" +msgstr "సమయం:" + +msgid "Lookup" +msgstr "అంశ శోధన." + +msgid "Currently:" +msgstr "ప్రస్తుతం" + +msgid "Change:" +msgstr "మార్చు:" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/te/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/te/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..92b65f1794ac8a4d3d74093edea919f0946ac91b GIT binary patch literal 1362 zcmah{J7^R^7+y8L*0&%Qii|}dAv~Cn4n@b#8a`H+)eH_?9CjzbBXCxP!mKE zAr^w55Tc0aMi8{nly)|1Co&c`Vxx_%-^^|j!NP%=Z@>9p-#6@+txeMo))wrY*fZGM zvG**)fi($S1)Kt|2i{Kkec%T08K4V%0bC1wlg8fxo50@#*8o4H{4;O`_*bCm`z^iy z0bB|G6KL{(15H0?x#LXZ+Xb5V0~BX~vp}Qw6R;ilE4^>Q(B0tYft!F6K%;vKxC?kU z#h1Ws;2%@|9k>I0Eryu7W}vBSPx%obWZ1PD=Vt7U*v9)hY=o^JQ@gOx()L*3kZ70j zW!@W>tXK1nP6uI`TE;m%#{7T{2b?rVPA?NB9yq;KDI-o8QGSgtvcLu+E=*>>A1EF= z$NVyP2K=({D^=y3l2YIpcZPUPj&bKq72ic!W)nDTG7Ld4@Cb$GYA}?eyrk&yGCjw` z$d|$+dkwPxtL38ai-$@F4 zy?mi9SIFg%NQd~CZ+b4}b<*5^n%__I9p1itTMo-T$s$FIArn!+lngy`f(hYAvs{T=kqS_S3GVJTq&A zhqO;SL6kkOj0~hPB8eqHbx_Q|KniXHSbDyL(8!wcAa83rEM- zbbLj}vwH5bj-TrIt&V5x_X|CDL&sA(eyrzi;>6EDkRIDyT$l=?<9mAUx{jZNAb3Z| z)3|%3<7eg$r_H&w*u-|8ww*Ebp^oQKb@i|CC6xas{ogQ@FNs9Mm$vm2J7xxa*4lzn zqY-{%>*$d+llX-n7&BrZ{E-bqK4PyE^NAIN;T3(6juT@aCOz?Dm#po1Gdy_^^Qx&q gOa^&^0rstpki~|RM!T7mwt}`~hS7=$N>XpmAAXDQy#N3J literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/te/LC_MESSAGES/djangojs.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/te/LC_MESSAGES/djangojs.po new file mode 100644 index 0000000000..cfa35a1e0b --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/te/LC_MESSAGES/djangojs.po @@ -0,0 +1,205 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# bhaskar teja yerneni , 2011 +# Jannis Leidel , 2011 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-05-17 23:12+0200\n" +"PO-Revision-Date: 2017-09-19 16:41+0000\n" +"Last-Translator: Jannis Leidel \n" +"Language-Team: Telugu (http://www.transifex.com/django/django/language/te/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: te\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, javascript-format +msgid "Available %s" +msgstr "ఆందుబాతులోఉన్న %s " + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "" + +msgid "Filter" +msgstr "వడపోత" + +msgid "Choose all" +msgstr "అన్నీ ఎన్నుకోండి" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "" + +msgid "Choose" +msgstr "" + +msgid "Remove" +msgstr "తీసివేయండి" + +#, javascript-format +msgid "Chosen %s" +msgstr "ఎన్నుకున్న %s" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" + +msgid "Remove all" +msgstr "" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "" + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "" +msgstr[1] "" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" + +msgid "" +"You have selected an action, but you haven't saved your changes to " +"individual fields yet. Please click OK to save. You'll need to re-run the " +"action." +msgstr "" + +msgid "" +"You have selected an action, and you haven't made any changes on individual " +"fields. You're probably looking for the Go button rather than the Save " +"button." +msgstr "" + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "" +msgstr[1] "" + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "" +msgstr[1] "" + +msgid "Now" +msgstr "ఇప్పుడు" + +msgid "Choose a Time" +msgstr "" + +msgid "Choose a time" +msgstr "ఒక సమయము ఎన్నుకోండి" + +msgid "Midnight" +msgstr "ఆర్ధరాత్రి" + +msgid "6 a.m." +msgstr "6 a.m" + +msgid "Noon" +msgstr "మధ్యాహ్నము" + +msgid "6 p.m." +msgstr "" + +msgid "Cancel" +msgstr "రద్దు చేయు" + +msgid "Today" +msgstr "ఈనాడు" + +msgid "Choose a Date" +msgstr "" + +msgid "Yesterday" +msgstr "నిన్న" + +msgid "Tomorrow" +msgstr "రేపు" + +msgid "January" +msgstr "" + +msgid "February" +msgstr "" + +msgid "March" +msgstr "" + +msgid "April" +msgstr "" + +msgid "May" +msgstr "" + +msgid "June" +msgstr "" + +msgid "July" +msgstr "" + +msgid "August" +msgstr "" + +msgid "September" +msgstr "" + +msgid "October" +msgstr "" + +msgid "November" +msgstr "" + +msgid "December" +msgstr "" + +msgctxt "one letter Sunday" +msgid "S" +msgstr "" + +msgctxt "one letter Monday" +msgid "M" +msgstr "" + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "" + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "" + +msgctxt "one letter Thursday" +msgid "T" +msgstr "" + +msgctxt "one letter Friday" +msgid "F" +msgstr "" + +msgctxt "one letter Saturday" +msgid "S" +msgstr "" + +msgid "Show" +msgstr "చూపించుము" + +msgid "Hide" +msgstr "దాచు" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/tg/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/tg/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..34085cb0f09a4c173aea86d153067c41fa1565ed GIT binary patch literal 15463 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/tg/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/tg/LC_MESSAGES/django.po new file mode 100644 index 0000000000..dee2872666 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/tg/LC_MESSAGES/django.po @@ -0,0 +1,699 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Mariusz Felisiak , 2020 +# Surush Sufiew , 2020 +# Surush Sufiew , 2020 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-07-14 19:53+0200\n" +"PO-Revision-Date: 2020-07-30 18:53+0000\n" +"Last-Translator: Mariusz Felisiak \n" +"Language-Team: Tajik (http://www.transifex.com/django/django/language/tg/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: tg\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "Муваффақона нест сохтед %(count)d %(items)s." + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "Нест карда нашуд %(name)s" + +msgid "Are you sure?" +msgstr "Шумо рози ҳастед ?" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "Нест сохтани интихобшудаҳо %(verbose_name_plural)s" + +msgid "Administration" +msgstr "Маъмурият" + +msgid "All" +msgstr "Ҳама" + +msgid "Yes" +msgstr "Ҳа" + +msgid "No" +msgstr "Не" + +msgid "Unknown" +msgstr "Номуайян" + +msgid "Any date" +msgstr "Санаи бефарқ" + +msgid "Today" +msgstr "Имрӯз" + +msgid "Past 7 days" +msgstr "7 рӯзи охир" + +msgid "This month" +msgstr "Моҳи ҷорӣ" + +msgid "This year" +msgstr "Соли ҷорӣ" + +msgid "No date" +msgstr "Сана ишора нашудааст" + +msgid "Has date" +msgstr "Сана ишора шудааст" + +msgid "Empty" +msgstr "Холӣ" + +msgid "Not empty" +msgstr "Холӣ нест" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" +"Хоҳиш менамоем %(username)s ва рамзро дуруст ворид созед. Ҳарду майдон " +"метавонанд духура бошанд." + +msgid "Action:" +msgstr "Амал:" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "Боз якто %(verbose_name)s илова кардан" + +msgid "Remove" +msgstr "Нест кардан" + +msgid "Addition" +msgstr "Иловакунӣ" + +msgid "Change" +msgstr "Тағйир додан" + +msgid "Deletion" +msgstr "Несткунӣ" + +msgid "action time" +msgstr "вақти амал" + +msgid "user" +msgstr "истифодабаранда" + +msgid "content type" +msgstr "намуди контент" + +msgid "object id" +msgstr "идентификатори объект" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/library/functions.html#repr) +msgid "object repr" +msgstr "намоиши объект" + +msgid "action flag" +msgstr "намуди амал" + +msgid "change message" +msgstr "хабар оиди тағйирот" + +msgid "log entry" +msgstr "қайд дар дафтар" + +msgid "log entries" +msgstr "қайдҳо дар дафтар" + +#, python-format +msgid "Added “%(object)s”." +msgstr "Илова шуд \"%(object)s\"" + +#, python-format +msgid "Changed “%(object)s” — %(changes)s" +msgstr "" + +#, python-format +msgid "Deleted “%(object)s.”" +msgstr "" + +msgid "LogEntry Object" +msgstr "Қайд дар дафтар" + +#, python-brace-format +msgid "Added {name} “{object}”." +msgstr "" + +msgid "Added." +msgstr "Илова шуд." + +msgid "and" +msgstr "ва" + +#, python-brace-format +msgid "Changed {fields} for {name} “{object}”." +msgstr "" + +#, python-brace-format +msgid "Changed {fields}." +msgstr "Тағйир ёфт {fields}." + +#, python-brace-format +msgid "Deleted {name} “{object}”." +msgstr "" + +msgid "No fields changed." +msgstr "Ягон майдон тағйир наёфт." + +msgid "None" +msgstr "Не" + +msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." +msgstr "" + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully." +msgstr "" + +msgid "You may edit it again below." +msgstr "Шумо метавонед ин объектро дар поён аз нав тағйир диҳед." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was added successfully. You may add another {name} below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may edit it again below." +msgstr "" + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully. You may edit it again below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may add another {name} " +"below." +msgstr "" + +#, python-brace-format +msgid "The {name} “{obj}” was changed successfully." +msgstr "" + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" +"Барои иҷрои амал лозим аст, ки объектро интихоб намоед. Тағйирот барои " +"объектҳо ворид нашуданд " + +msgid "No action selected." +msgstr "Ҳеҷ амал инихоб нашудааст." + +#, python-format +msgid "The %(name)s “%(obj)s” was deleted successfully." +msgstr "" + +#, python-format +msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" +msgstr "" + +#, python-format +msgid "Add %s" +msgstr "Илова кардан %s" + +#, python-format +msgid "Change %s" +msgstr "Тағйир додан %s" + +#, python-format +msgid "View %s" +msgstr "Азназаргузаронӣ %s" + +msgid "Database error" +msgstr "Мушкилӣ дар базаи додаҳо" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "Интихоб карда шуд 0 аз %(cnt)s " + +#, python-format +msgid "Change history: %s" +msgstr "Таърихи вориди тағйирот: %s" + +#. Translators: Model verbose name and instance representation, +#. suitable to be an item in a list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "%(class_name)s %(instance)s" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" +"Несткунии объекти %(instance)s намуди %(class_name)s талаб мекунад, ки " +"объектҳои алоқамандшудаизерин низ нест карда шаванд: %(related_objects)s" + +msgid "Django site admin" +msgstr "Сомонаи маъмурии Django" + +msgid "Django administration" +msgstr "Маъмурияти Django" + +msgid "Site administration" +msgstr "Маъмурияти сомона" + +msgid "Log in" +msgstr "Ворид шудан" + +#, python-format +msgid "%(app)s administration" +msgstr "Маъмурияти барномаи «%(app)s»" + +msgid "Page not found" +msgstr "Саҳифа ёфт нашуд" + +msgid "We’re sorry, but the requested page could not be found." +msgstr "" + +msgid "Home" +msgstr "Асосӣ" + +msgid "Server error" +msgstr "Мушкилӣ дар сервер" + +msgid "Server error (500)" +msgstr "Мушкилӣ дар сервер (500)" + +msgid "Server Error (500)" +msgstr "Мушкилӣ дар сервер (500)" + +msgid "" +"There’s been an error. It’s been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" + +msgid "Run the selected action" +msgstr "Иҷрои амалҳои ихтихобшуда" + +msgid "Go" +msgstr "Иҷро кардан" + +msgid "Click here to select the objects across all pages" +msgstr "Барои интихоби объектҳо дар ҳамаи саҳифаҳо, инҷоро пахш намоед" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "Интихоби ҳамаи %(module_name)s (%(total_count)s)" + +msgid "Clear selection" +msgstr "Бекоркунии интихоб" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "Моелҳои барномаи %(name)s" + +msgid "Add" +msgstr "Илова кардан" + +msgid "View" +msgstr "Азназаргузаронӣ" + +msgid "You don’t have permission to view or edit anything." +msgstr "" + +msgid "" +"First, enter a username and password. Then, you’ll be able to edit more user " +"options." +msgstr "" + +msgid "Enter a username and password." +msgstr "Ном ва рамзро ворид созед." + +msgid "Change password" +msgstr "Тағйир додани рамз" + +msgid "Please correct the error below." +msgstr "Хоҳишмандем, хатогии зеринро ислоҳ кунед." + +msgid "Please correct the errors below." +msgstr "Хоҳишмандем, хатогиҳои зеринро ислоҳ кунед." + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "Рамзи навро ворид созед %(username)s." + +msgid "Welcome," +msgstr "Марҳамат," + +msgid "View site" +msgstr "Гузариш ба сомона" + +msgid "Documentation" +msgstr "Ҳуҷҷатнигорӣ" + +msgid "Log out" +msgstr "Баромад" + +#, python-format +msgid "Add %(name)s" +msgstr "Дохил кардани %(name)s" + +msgid "History" +msgstr "Таърих" + +msgid "View on site" +msgstr "Дар сомона дидан" + +msgid "Filter" +msgstr "Поло(Filter)" + +msgid "Clear all filters" +msgstr "" + +msgid "Remove from sorting" +msgstr "Аз қайди навъҳо баровардан" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "Бартарии навъҳо: %(priority_number)s" + +msgid "Toggle sorting" +msgstr "Навъҷудокунӣ дар дигар раванд" + +msgid "Delete" +msgstr "Нест кардан" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" +"Нест кардани %(object_name)s '%(escaped_object)s' ба нестсозии объектҳои ба " +"он алоқаманд оварда мерасонад, аммо'ҳисоби корбарӣ'-и (аккаунт) шумо иҷозати " +"нестсозии объектҳои зеринро надорад:" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" +"Нестсозии %(object_name)s '%(escaped_object)s' талаб менамояд, ки " +"объектҳоиалоқаманди муҳофизатии зерин нест карда шаванд:" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" +"Шумо боварӣ доред, ки ин элементҳо нест карда шаванд: %(object_name)s " +"\"%(escaped_object)s\"? Ҳамаи объектҳои алоқаманди зерин низ нест карда " +"мешаванд:" + +msgid "Objects" +msgstr "Объектҳо" + +msgid "Yes, I’m sure" +msgstr "" + +msgid "No, take me back" +msgstr "Не, баргаштан" + +msgid "Delete multiple objects" +msgstr "Нестсозии якчанд объектҳо" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" +"Нест кардани %(objects_name)s ба нестсозии объектҳои ба он алоқаманд оварда " +"мерасонад, аммо'ҳисоби корбарӣ'-и (аккаунт) шумо иҷозати нестсозии объектҳои " +"зеринро надорад:" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" +"Нестсозии %(objects_name)s талаб менамояд, ки объектҳоиалоқаманди " +"муҳофизатии зерин нест карда шаванд:" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" +"Шумо боварӣ доред, ки ин элементҳо нест карда шаванд: %(objects_name)s? " +"Ҳамаи объектҳои алоқаманди зерин низ нест карда мешаванд:" + +msgid "Delete?" +msgstr "Нест кардан?" + +#, python-format +msgid " By %(filter_title)s " +msgstr "%(filter_title)s" + +msgid "Summary" +msgstr "Мухтасар" + +msgid "Recent actions" +msgstr "Амалҳои охирин" + +msgid "My actions" +msgstr "Амалҳои ман" + +msgid "None available" +msgstr "Дастнорас" + +msgid "Unknown content" +msgstr "Шакли номуайян" + +msgid "" +"Something’s wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" +"Шумо ба система ҳамчун %(username)s, ворид шудед, вале салоҳияти шумобарои " +"азназаргузарониисаҳифаи мазкур нокифоя аст. Шояд шумо мехоҳед бо истифода аз " +"дигар 'ҳисоби корбарӣ' вориди система шавед." + +msgid "Forgotten your password or username?" +msgstr "Рамз ё номро фаромӯш кардед?" + +msgid "Toggle navigation" +msgstr "" + +msgid "Date/time" +msgstr "Сана ва вақт" + +msgid "User" +msgstr "Истифодабар" + +msgid "Action" +msgstr "Амал" + +msgid "" +"This object doesn’t have a change history. It probably wasn’t added via this " +"admin site." +msgstr "" + +msgid "Show all" +msgstr "Ҳамаро нишон додан" + +msgid "Save" +msgstr "Ҳифз кардан" + +msgid "Popup closing…" +msgstr "Равзанаи иловагӣ пӯшида мешавад..." + +msgid "Search" +msgstr "Ёфтан" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "%(full_result_count)s ҳамаги" + +msgid "Save as new" +msgstr "Ҳамчун объекти нав ҳифз кардан" + +msgid "Save and add another" +msgstr "Ҳифз кардан ва объекти дигар илова кардан" + +msgid "Save and continue editing" +msgstr "Ҳифз кардан ва танзимотро давом додан" + +msgid "Save and view" +msgstr "Ҳифз кардан ва аз назар гузаронидан" + +msgid "Close" +msgstr "Пӯшидан" + +#, python-format +msgid "Change selected %(model)s" +msgstr "Объекти интихобшударо тағйир додан: \"%(model)s\"" + +#, python-format +msgid "Add another %(model)s" +msgstr "Воридсозии боз як объекти \"%(model)s\"" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "Объекти зерини интихобшударо нест кардан \"%(model)s\"" + +msgid "Thanks for spending some quality time with the Web site today." +msgstr "Барои вақти дар ин сомона сарф кардаатон миннатдорем." + +msgid "Log in again" +msgstr "Аз нав ворид шудан" + +msgid "Password change" +msgstr "Тағйири рамз" + +msgid "Your password was changed." +msgstr "Рамзи шумо тағйир дода шуд." + +msgid "" +"Please enter your old password, for security’s sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" + +msgid "Change my password" +msgstr "Тағйири рамзи ман" + +msgid "Password reset" +msgstr "Барқароркунии рамз" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "Рамзи шумо ҳифз шуд. Акнун шумо метавонед ворид шавед." + +msgid "Password reset confirmation" +msgstr "Барқароркунии рамз тасдиқ карда шуд." + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" +"Хоҳиш мекунем рамзи нави худро ду маротиба(бояд ҳарду мувофиқат кунанд) " +"дохил кунед." + +msgid "New password:" +msgstr "Рамзи нав:" + +msgid "Confirm password:" +msgstr "Рамзи тасдиқӣ:" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"Суроға барои барқароркунии рамз нодуруст аст. Эҳтимол алакай як маротиба " +"истифода шудааст.Амали барқароркунии рамзро такрор намоед." + +msgid "" +"We’ve emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" + +msgid "" +"If you don’t receive an email, please make sure you’ve entered the address " +"you registered with, and check your spam folder." +msgstr "" + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" +"Шумо ин матубро гирифтед барои он, ки аз сомонаи %(site_name)s, ки бо ин " +"почтаи электронӣ алоқаманд аст,ба мо дархост барои барқароркунии рамз қабул " +"шуд." + +msgid "Please go to the following page and choose a new password:" +msgstr "Хоҳишмандем ба ин саҳифа гузаред ва рамзи навро ворид созед:" + +msgid "Your username, in case you’ve forgotten:" +msgstr "" + +msgid "Thanks for using our site!" +msgstr "Барои аз сомонаи мо истифода карданатон сипосгузорем!" + +#, python-format +msgid "The %(site_name)s team" +msgstr "Гурӯҳи ташкили %(site_name)s" + +msgid "" +"Forgotten your password? Enter your email address below, and we’ll email " +"instructions for setting a new one." +msgstr "" + +msgid "Email address:" +msgstr "Суроғаи почтаи электронӣ:" + +msgid "Reset my password" +msgstr "Барқароркунии рамзи ман" + +msgid "All dates" +msgstr "Ҳама санаҳо" + +#, python-format +msgid "Select %s" +msgstr "Интихоб кунед %s" + +#, python-format +msgid "Select %s to change" +msgstr "Интихоби %s барои тағйирот ворид сохтан " + +#, python-format +msgid "Select %s to view" +msgstr "Интихоби %s барои азназаргузаронӣ" + +msgid "Date:" +msgstr "Сана:" + +msgid "Time:" +msgstr "Вақт:" + +msgid "Lookup" +msgstr "Ҷустуҷӯ" + +msgid "Currently:" +msgstr "Ҷорӣ:" + +msgid "Change:" +msgstr "Тағйир додан:" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/tg/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/tg/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..2c0655198bdb9c02abcbc3a8dcf7867058d9f539 GIT binary patch literal 5154 zcmc&#U2Ggz6}~{AjiEm@X`!@`8$;@(@veWQM(GBlrf%IP;3l#csz?E8ynDSn>Fmrh zKi>Eul9RM*RHU{k0n$>^zes>osADJCO>CzxJRl)-*G7Fp2!TL|7akBiBEIj=-M`qP zNFXuV*>CQdd(S=RJKwqU+dDRWN8lR3eJ}2d9};31*!vOu;o7@Nh>rmuwD=J4qZmJC z$D_bcV4SyO$6^_H3+#c#6BfS(?1KGe;AY@O;5Oh-f%gG_1-u#fcZ>f7a{rsKDIUeG zz?*eQt#_!qj`*!>n;8xh_ z>@L8azyLMr1>T17s|fOwz_)>ncLjgs{}y$AI_4DgBpASDt>P9mq5;2v*X_Y@4)yE7XJa{ zy3G&=aVroeu?-vB8@7sxurcD(s^A+CeB zt-vDi*C1^T?;k`FJ`B7CBolA9xW(dK7Voxruf=UZxG|alh~2nZ&(CvUFY4(txXDK! z?oZ?9)suqR&$gAZAT-l+tn=sW9MEt0;*dNvt}o!>emfxlmxI0K}XByL{4xVPg5#YSsL*=VO5$cuW~iTkr0?2%5kk_A)=`>Ubr ziTz0_iDI#T%5gns!c%fbB!(Topgb{L4uVKokdA!BiQ7hbx6(F>+ee;R8!6v7^W4Hy zG7eejSJR6$iHR47K&M3^|?v>0){7~{v? zq7nxk-`EZ&-n2NF_)3gAVWEuwX))>+eYaGO#S=l`<8LbU^F&Y+hYE2(pJQfg3yeUF zt7@Fi8!uyGzU)R4zqqWV=SGNqQaWvvW#y3|krijUk!2KAl$@BBk@8d_cKs5UR;242 z7Zbs8Iib9uCLO;>i!TeL!OoN2DfQjb2}4YpP;pIR4tI}hfy8nZWj73}$y_TU%jo2IGt-eV6_B;bD^O3@^gkB5h$aKyb1yKsl}A ztUT-~CsL_4>AU8O;yB}BASDYx$GI`}xax(86bDxqs%W+)I z_4U86mk6I$svA(3Q=y|=eI=}Xo&@bxi^%)qh z@o`Si*H70^)=vq24h!&rcR+qQ^m)Ckuj&=J(TjSyeo8OapV2G&l7tn`^<_P)mxX?V zU<@mA-NgE7yt|?=3;hy;`o8i1znF&DS^*(veHA-hLsB~;nL+X^v~@&XKZ6+vS?IHA zuw?25q;iQV>e(BnOXj4P(lvN)ZGlH@Lg%XsW-0Qy4wui=&)7xS9Vuspeyw3)ai$$$tmAn8ZTrCEVNyw&u}m5re&I0dq*#%rWNGCNLJ^t+XAM; z^99u6l(l2k`mE?{z11)yQPf$JQj2dY>^2xAFc9#KGhERk=4yX0IQ0Xki!7^n? zpb-P6we+2p`bU_$q*1#i1Y>rkOBT))rv5AfS=N{F3Ug-lLRxV+WA!9=tqdn{_2Dm{x^&H(;hu9#M)CZ-B(zjeUH2;52ccXGM zQLt?!j{}S9X(YH*HwvS?*(xBny=R*ZWQ3enpA>UVd+D>SbD*R2y{XX92dv~GDxB`V z2q&x%*fZUZR-&S5lH`#a)SpWa8Y2_-A_UK75Zx^~rQLdsDxp9+>d}6vAX|ijB+#^1 zjP6&z4JpAR7UCFa#%C5WNSrXI3`yNx-TEi1^Q<$%L)V)C`IxF1r!;vrS|(kR2i1BR zqG=b=<4|_ndERprQBm&eG`qUM&~BKF1kF}-WLmNF2xO!$Liy~K`m^Q`1R)iX#cH)ex7a+N#+kyV0FIqHH1f9kt&nx@2r%@T}I!Y_uYyl%Hi0TES*{kf7Hkq5G!LLy~ z!v=8;v9xU^^qU)U)5rawxhIZ+2^pO`M?|6WJ7kwkLe5>(~ZHK6NI0y rC2qBdXwuGX^4UD4&{lYB%90X=PyFi7a11~`__pH1i%*r%KNSB0rJvFS literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/tg/LC_MESSAGES/djangojs.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/tg/LC_MESSAGES/djangojs.po new file mode 100644 index 0000000000..b5f4fdb428 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/tg/LC_MESSAGES/djangojs.po @@ -0,0 +1,222 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Surush Sufiew , 2020 +# Surush Sufiew , 2020 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-05-11 20:56+0200\n" +"PO-Revision-Date: 2020-05-15 01:22+0000\n" +"Last-Translator: Surush Sufiew \n" +"Language-Team: Tajik (http://www.transifex.com/django/django/language/tg/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: tg\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, javascript-format +msgid "Available %s" +msgstr "Дастрас %s" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" +"Ин руйхати %s - ҳои дастрас. Шумо метавонед якчандто аз инҳоро дар " +"майдонипоён бо пахши тугмаи \\'Интихоб кардан'\\ интихоб намоед." + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "" +"Барои баровардани рӯйхати %s. -ҳои дастрас, ба воридсозии матни лозима шурӯъ " +"кунед" + +msgid "Filter" +msgstr "Поло" + +msgid "Choose all" +msgstr "Интихоби кулл" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "Барои якбора интихоб намудани кулли %s инҷоро пахш намоед." + +msgid "Choose" +msgstr "интихоб кардан" + +msgid "Remove" +msgstr "Нест кардан" + +#, javascript-format +msgid "Chosen %s" +msgstr "%s -ҳои интихобшуда" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" +"Ин руйхати %s - ҳои интихобшуда. Шумо метавонед якчандто аз инҳоро дар " +"майдонипоён бо пахши тугмаи \\'Нест кардан'\\ нест созед." + +msgid "Remove all" +msgstr "Нест кардан ба таври кулл" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "Пахш кунед барои якбора нест кардани ҳамаи %s." + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "" +msgstr[1] "" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" +"Тағйиротҳои ҳифзнакардашуда дар майдони таҳрир мавҷуданд. Агаршумо иҷрои " +"амалро давом диҳед, онҳо нест хоҳанд шуд." + +msgid "" +"You have selected an action, but you haven’t saved your changes to " +"individual fields yet. Please click OK to save. You’ll need to re-run the " +"action." +msgstr "" +"Шумо амалро интихоб намудед, вале ҳануз тағйиротҳои ворид кардашуда ҳифз " +"нашудаанд.\"\n" +"\"Барои ҳифз намудани онҳо ба тугмаи 'ОК' пахш намоед.\"\n" +"\"Сипас шуморо лозим меояд, ки амалро такроран иҷро намоед" + +msgid "" +"You have selected an action, and you haven’t made any changes on individual " +"fields. You’re probably looking for the Go button rather than the Save " +"button." +msgstr "" +"\"Шумо амалрор интихоб намудед, вале тағйирот ворид насохтед.\"\n" +"\"Эҳтимол шумо мехостед ба ҷои тугмаи \\'Ҳифз кардан'\\, аз тугмаи \\'Иҷро " +"кардан'\\ истифода намоед.\"\n" +"\"Агар чунин бошад, он гоҳ тугмаи \\'Инкор'\\ пахш кунед, то ки ба майдони " +"таҳриркунӣ баргардед.\"" + +msgid "Now" +msgstr "Ҳозир" + +msgid "Midnight" +msgstr "Нисфишабӣ" + +msgid "6 a.m." +msgstr "6-и саҳар" + +msgid "Noon" +msgstr "Нисфирӯзӣ" + +msgid "6 p.m." +msgstr "6-и бегоҳӣ" + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "" +msgstr[1] "" + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "" +msgstr[1] "" + +msgid "Choose a Time" +msgstr "Вақтро интихоб кунед" + +msgid "Choose a time" +msgstr "Вақтро интихоб кунед" + +msgid "Cancel" +msgstr "Инкор" + +msgid "Today" +msgstr "Имрӯз" + +msgid "Choose a Date" +msgstr "Санаро интихоб кунед" + +msgid "Yesterday" +msgstr "Дирӯз" + +msgid "Tomorrow" +msgstr "Фардо" + +msgid "January" +msgstr "Январ" + +msgid "February" +msgstr "Феврал" + +msgid "March" +msgstr "Март" + +msgid "April" +msgstr "Апрел" + +msgid "May" +msgstr "Май" + +msgid "June" +msgstr "Июн" + +msgid "July" +msgstr "Июл" + +msgid "August" +msgstr "Август" + +msgid "September" +msgstr "Сентябр" + +msgid "October" +msgstr "Октябр" + +msgid "November" +msgstr "Ноябр" + +msgid "December" +msgstr "Декабр" + +msgctxt "one letter Sunday" +msgid "S" +msgstr "Я" + +msgctxt "one letter Monday" +msgid "M" +msgstr "Д" + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "С" + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "Ч" + +msgctxt "one letter Thursday" +msgid "T" +msgstr "П" + +msgctxt "one letter Friday" +msgid "F" +msgstr "Ҷ" + +msgctxt "one letter Saturday" +msgid "S" +msgstr "Ш" + +msgid "Show" +msgstr "Нишон додан" + +msgid "Hide" +msgstr "Пинҳон кардан" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/th/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/th/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..5beeadd17229f310c2706a2980fc0655d26906cb GIT binary patch literal 16394 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, 2011 +# Kowit Charoenratchatabhan , 2013-2014,2017-2019 +# piti118 , 2012 +# Suteepat Damrongyingsupab , 2011-2012 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-09-08 17:27+0200\n" +"PO-Revision-Date: 2019-09-17 01:31+0000\n" +"Last-Translator: Ramiro Morales\n" +"Language-Team: Thai (http://www.transifex.com/django/django/language/th/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: th\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "%(count)d %(items)s ถูกลบเรียบร้อยแล้ว" + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "ไม่สามารถลบ %(name)s" + +msgid "Are you sure?" +msgstr "แน่ใจหรือ" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "ลบ %(verbose_name_plural)s ที่เลือก" + +msgid "Administration" +msgstr "การจัดการ" + +msgid "All" +msgstr "ทั้งหมด" + +msgid "Yes" +msgstr "ใช่" + +msgid "No" +msgstr "ไม่ใช่" + +msgid "Unknown" +msgstr "ไม่รู้" + +msgid "Any date" +msgstr "วันไหนก็ได้" + +msgid "Today" +msgstr "วันนี้" + +msgid "Past 7 days" +msgstr "สัปดาห์ที่แล้ว" + +msgid "This month" +msgstr "เดือนนี้" + +msgid "This year" +msgstr "ปีนี้" + +msgid "No date" +msgstr "ไม่รวมวันที่" + +msgid "Has date" +msgstr "รวมวันที่" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "กรุณาใส่ %(username)s และรหัสผ่านให้ถูกต้อง มีการแยกแยะตัวพิมพ์ใหญ่-เล็ก" + +msgid "Action:" +msgstr "คำสั่ง :" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "เพิ่ม %(verbose_name)s อีก" + +msgid "Remove" +msgstr "ถอดออก" + +msgid "Addition" +msgstr "เพิ่ม" + +msgid "Change" +msgstr "เปลี่ยนแปลง" + +msgid "Deletion" +msgstr "ลบ" + +msgid "action time" +msgstr "เวลาลงมือ" + +msgid "user" +msgstr "ผู้ใช้" + +msgid "content type" +msgstr "content type" + +msgid "object id" +msgstr "อ็อบเจ็กต์ไอดี" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/library/functions.html#repr) +msgid "object repr" +msgstr "object repr" + +msgid "action flag" +msgstr "action flag" + +msgid "change message" +msgstr "เปลี่ยนข้อความ" + +msgid "log entry" +msgstr "log entry" + +msgid "log entries" +msgstr "log entries" + +#, python-format +msgid "Added “%(object)s”." +msgstr "" + +#, python-format +msgid "Changed “%(object)s” — %(changes)s" +msgstr "" + +#, python-format +msgid "Deleted “%(object)s.”" +msgstr "" + +msgid "LogEntry Object" +msgstr "อ็อบเจ็กต์ LogEntry" + +#, python-brace-format +msgid "Added {name} “{object}”." +msgstr "" + +msgid "Added." +msgstr "เพิ่มแล้ว" + +msgid "and" +msgstr "และ" + +#, python-brace-format +msgid "Changed {fields} for {name} “{object}”." +msgstr "" + +#, python-brace-format +msgid "Changed {fields}." +msgstr "เปลี่ยน {fields}." + +#, python-brace-format +msgid "Deleted {name} “{object}”." +msgstr "" + +msgid "No fields changed." +msgstr "ไม่มีฟิลด์ใดถูกเปลี่ยน" + +msgid "None" +msgstr "ไม่มี" + +msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." +msgstr "" + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully." +msgstr "" + +msgid "You may edit it again below." +msgstr "คุณสามารถแก้ไขได้อีกครั้งด้านล่าง" + +#, python-brace-format +msgid "" +"The {name} “{obj}” was added successfully. You may add another {name} below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may edit it again below." +msgstr "" + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully. You may edit it again below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may add another {name} " +"below." +msgstr "" + +#, python-brace-format +msgid "The {name} “{obj}” was changed successfully." +msgstr "" + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" +"ไม่มีรายการใดถูกเปลี่ยน\n" +"รายการจะต้องถูกเลือกก่อนเพื่อที่จะทำตามคำสั่งได้" + +msgid "No action selected." +msgstr "ไม่มีคำสั่งที่ถูกเลือก" + +#, python-format +msgid "The %(name)s “%(obj)s” was deleted successfully." +msgstr "" + +#, python-format +msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" +msgstr "" + +#, python-format +msgid "Add %s" +msgstr "เพิ่ม %s" + +#, python-format +msgid "Change %s" +msgstr "เปลี่ยน %s" + +#, python-format +msgid "View %s" +msgstr "ดู %s" + +msgid "Database error" +msgstr "เกิดความผิดพลาดที่ฐานข้อมูล" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "%(name)s จำนวน %(count)s อันได้ถูกเปลี่ยนแปลงเรียบร้อยแล้ว." + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "%(total_count)s ได้ถูกเลือก" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "เลือก 0 จาก %(cnt)s" + +#, python-format +msgid "Change history: %s" +msgstr "เปลี่ยนแปลงประวัติ: %s" + +#. Translators: Model verbose name and instance representation, +#. suitable to be an item in a list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "%(class_name)s %(instance)s" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" +"กำลังลบ %(class_name)s %(instance)s จะต้องมีการลบอ็อบเจ็คต์ป้องกันที่เกี่ยวข้อง : " +"%(related_objects)s" + +msgid "Django site admin" +msgstr "ผู้ดูแลระบบ Django" + +msgid "Django administration" +msgstr "การจัดการ Django" + +msgid "Site administration" +msgstr "การจัดการไซต์" + +msgid "Log in" +msgstr "เข้าสู่ระบบ" + +#, python-format +msgid "%(app)s administration" +msgstr "การจัดการ %(app)s" + +msgid "Page not found" +msgstr "ไม่พบหน้านี้" + +msgid "We’re sorry, but the requested page could not be found." +msgstr "" + +msgid "Home" +msgstr "หน้าหลัก" + +msgid "Server error" +msgstr "เซิร์ฟเวอร์ขัดข้อง" + +msgid "Server error (500)" +msgstr "เซิร์ฟเวอร์ขัดข้อง (500)" + +msgid "Server Error (500)" +msgstr "เซิร์ฟเวอร์ขัดข้อง (500)" + +msgid "" +"There’s been an error. It’s been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" + +msgid "Run the selected action" +msgstr "รันคำสั่งที่ถูกเลือก" + +msgid "Go" +msgstr "ไป" + +msgid "Click here to select the objects across all pages" +msgstr "คลิกที่นี่เพื่อเลือกอ็อบเจ็กต์จากหน้าทั้งหมด" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "เลือกทั้งหมด %(total_count)s %(module_name)s" + +msgid "Clear selection" +msgstr "เคลียร์ตัวเลือก" + +msgid "" +"First, enter a username and password. Then, you’ll be able to edit more user " +"options." +msgstr "" + +msgid "Enter a username and password." +msgstr "กรุณาใส่ชื่อผู้ใช้และรหัสผ่าน" + +msgid "Change password" +msgstr "เปลี่ยนรหัสผ่าน" + +msgid "Please correct the error below." +msgstr "กรุณาแก้ไขข้อผิดพลาดด้านล่าง" + +msgid "Please correct the errors below." +msgstr "กรุณาแก้ไขข้อผิดพลาดด้านล่าง" + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "ใส่รหัสผ่านใหม่สำหรับผู้ใช้ %(username)s." + +msgid "Welcome," +msgstr "ยินดีต้อนรับ," + +msgid "View site" +msgstr "ดูที่หน้าเว็บ" + +msgid "Documentation" +msgstr "เอกสารประกอบ" + +msgid "Log out" +msgstr "ออกจากระบบ" + +#, python-format +msgid "Add %(name)s" +msgstr "เพิ่ม %(name)s" + +msgid "History" +msgstr "ประวัติ" + +msgid "View on site" +msgstr "ดูที่หน้าเว็บ" + +msgid "Filter" +msgstr "ตัวกรอง" + +msgid "Remove from sorting" +msgstr "เอาออกจาก sorting" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "ลำดับการ sorting: %(priority_number)s" + +msgid "Toggle sorting" +msgstr "เปิด/ปิด sorting" + +msgid "Delete" +msgstr "ลบ" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" +"กำลังดำเนินการลบ %(object_name)s '%(escaped_object)s'และจะแสดงผลการลบ " +"แต่บัญชีของคุณไม่สามารถทำการลบข้อมูลชนิดนี้ได้" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" +"การลบ %(object_name)s '%(escaped_object)s' จำเป็นจะต้องลบอ็อบเจ็กต์ที่เกี่ยวข้องต่อไปนี้:" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" +"คุณแน่ใจหรือที่จะลบ %(object_name)s \"%(escaped_object)s\"?" +"ข้อมูลที่เกี่ยวข้องทั้งหมดจะถูกลบไปด้วย:" + +msgid "Objects" +msgstr "อ็อบเจ็กต์" + +msgid "Yes, I’m sure" +msgstr "" + +msgid "No, take me back" +msgstr "ไม่ พาฉันกลับ" + +msgid "Delete multiple objects" +msgstr "ลบหลายอ็อบเจ็กต์" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" +"การลบ %(objects_name)s ที่เลือก จะทำให้อ็อบเจ็กต์ที่เกี่ยวข้องถูกลบไปด้วย " +"แต่บัญชีของคุณไม่มีสิทธิ์ที่จะลบอ็อบเจ็กต์ชนิดนี้" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "การลบ %(objects_name)s ที่ถูกเลือก จำเป็นจะต้องลบอ็อบเจ็กต์ที่เกี่ยวข้องต่อไปนี้:" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" +"คุณแน่ใจหรือว่า ต้องการลบ %(objects_name)s ที่ถูกเลือก? เนื่องจากอ็อบเจ็กต์ " +"และรายการที่เกี่ยวข้องทั้งหมดต่อไปนี้จะถูกลบด้วย" + +msgid "View" +msgstr "ดู:" + +msgid "Delete?" +msgstr "ลบ?" + +#, python-format +msgid " By %(filter_title)s " +msgstr " โดย %(filter_title)s " + +msgid "Summary" +msgstr "สรุป" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "โมเดลในแอป %(name)s" + +msgid "Add" +msgstr "เพิ่ม" + +msgid "You don’t have permission to view or edit anything." +msgstr "" + +msgid "Recent actions" +msgstr "การกระทำล่าสุด" + +msgid "My actions" +msgstr "การกระทำของฉัน" + +msgid "None available" +msgstr "ไม่ว่าง" + +msgid "Unknown content" +msgstr "ไม่ทราบเนื้อหา" + +msgid "" +"Something’s wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" +"คุณได้ลงชื่อเป็น %(username)s แต่ไม่ได้รับอนุญาตให้เข้าถึงหน้านี้ " +"คุณต้องการลงชื่อเข้าใช้บัญชีอื่นหรือไม่?" + +msgid "Forgotten your password or username?" +msgstr "ลืมรหัสผ่านหรือชื่อผู้ใช้ของคุณหรือไม่" + +msgid "Date/time" +msgstr "วันที่/เวลา" + +msgid "User" +msgstr "ผู้ใช้" + +msgid "Action" +msgstr "คำสั่ง" + +msgid "" +"This object doesn’t have a change history. It probably wasn’t added via this " +"admin site." +msgstr "" + +msgid "Show all" +msgstr "แสดงทั้งหมด" + +msgid "Save" +msgstr "บันทึก" + +msgid "Popup closing…" +msgstr "ปิดป๊อปอัป ..." + +msgid "Search" +msgstr "ค้นหา" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "%(counter)s ผลลัพธ์" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "%(full_result_count)s ทั้งหมด" + +msgid "Save as new" +msgstr "บันทึกใหม่" + +msgid "Save and add another" +msgstr "บันทึกและเพิ่ม" + +msgid "Save and continue editing" +msgstr "บันทึกและกลับมาแก้ไข" + +msgid "Save and view" +msgstr "บันทึกและดู" + +msgid "Close" +msgstr "ปิด" + +#, python-format +msgid "Change selected %(model)s" +msgstr "เปลี่ยนแปลง %(model)s" + +#, python-format +msgid "Add another %(model)s" +msgstr "เพิ่ม %(model)sอีก" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "ลบ %(model)s" + +msgid "Thanks for spending some quality time with the Web site today." +msgstr "ขอบคุณที่สละเวลาอันมีค่าให้กับเว็บไซต์ของเราในวันนี้" + +msgid "Log in again" +msgstr "เข้าสู่ระบบอีกครั้ง" + +msgid "Password change" +msgstr "เปลี่ยนรหัสผ่าน" + +msgid "Your password was changed." +msgstr "รหัสผ่านของคุณถูกเปลี่ยนไปแล้ว" + +msgid "" +"Please enter your old password, for security’s sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" + +msgid "Change my password" +msgstr "เปลี่ยนรหัสผ่านของฉัน" + +msgid "Password reset" +msgstr "ตั้งค่ารหัสผ่านใหม่" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "รหัสผ่านของคุณได้รับการตั้งค่าแล้ว คุณสามารถเข้าสู่ระบบได้ทันที" + +msgid "Password reset confirmation" +msgstr "การยืนยันตั้งค่ารหัสผ่านใหม่" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "กรุณาใส่รหัสผ่านใหม่สองครั้ง เพื่อตรวจสอบว่าคุณได้พิมพ์รหัสอย่างถูกต้อง" + +msgid "New password:" +msgstr "รหัสผ่านใหม่:" + +msgid "Confirm password:" +msgstr "ยืนยันรหัสผ่าน:" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"การตั้งรหัสผ่านใหม่ไม่สำเร็จ เป็นเพราะว่าหน้านี้ได้ถูกใช้งานไปแล้ว กรุณาทำการตั้งรหัสผ่านใหม่อีกครั้ง" + +msgid "" +"We’ve emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" + +msgid "" +"If you don’t receive an email, please make sure you’ve entered the address " +"you registered with, and check your spam folder." +msgstr "" + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" +"คุณได้รับอีเมล์ฉบับนี้ เนื่องจากคุณส่งคำร้องขอเปลี่ยนรหัสผ่านสำหรับบัญชีผู้ใช้ของคุณที่ %(site_name)s." + +msgid "Please go to the following page and choose a new password:" +msgstr "กรุณาไปที่หน้านี้และเลือกรหัสผ่านใหม่:" + +msgid "Your username, in case you’ve forgotten:" +msgstr "" + +msgid "Thanks for using our site!" +msgstr "ขอบคุณสำหรับการใช้งานเว็บไซต์ของเรา" + +#, python-format +msgid "The %(site_name)s team" +msgstr "%(site_name)s ทีม" + +msgid "" +"Forgotten your password? Enter your email address below, and we’ll email " +"instructions for setting a new one." +msgstr "" + +msgid "Email address:" +msgstr "อีเมล:" + +msgid "Reset my password" +msgstr "ตั้งรหัสผ่านของฉันใหม่" + +msgid "All dates" +msgstr "ทุกวัน" + +#, python-format +msgid "Select %s" +msgstr "เลือก %s" + +#, python-format +msgid "Select %s to change" +msgstr "เลือก %s เพื่อเปลี่ยนแปลง" + +#, python-format +msgid "Select %s to view" +msgstr "เลือก %s เพื่อดู" + +msgid "Date:" +msgstr "วันที่ :" + +msgid "Time:" +msgstr "เวลา :" + +msgid "Lookup" +msgstr "ดูที่" + +msgid "Currently:" +msgstr "ปัจจุบัน:" + +msgid "Change:" +msgstr "เปลี่ยนเป็น:" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/th/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/th/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..71eff638706d0be66e2132078894b7ca48f1b3cd GIT binary patch literal 6250 zcmd6qU2Ggz6~_k}XmO#CLR&rxy`z9O(l>R?_PT+ot?2} zX8rM$CRB00R0-m=NvqO2p`;(Glmt>{C8Qz{JXAb06`8Y50kR@CICC)`q=3N30fLFl^co#wCeH9dcAC$NgARlL%hwwZE z3eOXu#F+!HHp)cz*`Bf`0{N-klg<1n&W5-X(AX+{w$&gYV?{9(WJq zYx($J`S=b)Rj{7hkAk0N zd=C5~_y#ER{*dD}@EeT(4L%4yKoQ5mLGU2>7ASG=y$ep@22jR(K&Ch@DEWijei)QI zFXZ-1x&4ozo1CAaAPac;RDvS4~uz83N^ zZDFo&@)Vv@d%2LqT+*YW$2#r}+z)e$&dBeq=T_XJ?*O-)3#+;1Dsf9cJi;w~C)bxP zIQ<~)YW9)TLN4Sr`&zzBKS}S>Is{x7Ykz&L!ZEdaT{TGfia}QsUAykPP0B4ciq0lA zA+UWS@_c7|bG#WR&h|;y^W9NjtJSeH=mu5oJA?HwjCBsmRXg0IYgF+XU8AIX~;fV+uihMoZZbpJHu{Nt@E65hP_(gjn@?gz(D!Y(nF<Mh$C31t*`4|QSR@bnwlym65AWo)8gK5SJwtVpWC0*``7mk?;75@pu<41 z)HfIgi4Ne$7A>npPbd8ozUu{Br8lEkC)<8d87gd9@RM9)Ix6f8s$q?Ds;st*dP#>P zG3tFIelv3Y!cZ7B;<5@R%rM?IuvOWw+e%yeIzOjbdMrz?Wa;6hzqncY7WS-lBunSB zbT(@}lcguJ)^Yru<=&moTC-Vt&M}V6c*6ufZ%pZ%S^66ZA~8w#EHRzcahAT2rB|~S z9GGx5OW)2?CbY1Sf^VcJ>uYB6VH=sjZ;j)Uah6`p(#stR3yvlT@325UkC+F!?mMA( z*(}*IhveL1+RqEy1)3dZvcjCU$?ywdE$e){C%^nu8yR}@WUZgF6eHDz1r|bn&Pati z7ZK_DdC>EU&A>N4hi@g-S*xy*xm`mOGBxFU)l`;+N(r*`Y}PsjzcXfx_@rhXaG1q< zGS@=dMM`g9E((e>*5?-5#W>PLNKQgB;GTCE5ojK3GOd-R@c5i< zpUTo#+CJ!HEqsBf>#(u=f> zZ3x>61f=z>uO-T`-59bb%^BFjdCr^+@Mp@btqxYx0b(M=F;mX2gGd&EoxWR=L#hcQ zc($`jb9Bv>l+@~YCL|z@+iUG@L_o`i;JmVSlStOekW-spBtrX8>MSXJNjRG$Sgq>e zyGj|N6o-y)_ldAaJy~=QiJKHtc5+KX^ei;}Xi2TSA1-F6E&hL0wUl}CIehcNQa#(q zwq0eLu&d}ITRTdz=mooMUOePbq2#merlEPwkC4{5bsDw3t2U;BIT3Nyz+ew3RfA<8S}KxPJ8>XhnAYD, 2011 +# Kowit Charoenratchatabhan , 2011-2012,2018 +# Perry Roper , 2017 +# Suteepat Damrongyingsupab , 2012 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-05-17 11:50+0200\n" +"PO-Revision-Date: 2018-05-06 07:50+0000\n" +"Last-Translator: Kowit Charoenratchatabhan \n" +"Language-Team: Thai (http://www.transifex.com/django/django/language/th/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: th\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#, javascript-format +msgid "Available %s" +msgstr "%sที่มีอยู่" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" +"นี่คือรายการที่ใช้ได้ของ %s คุณอาจเลือกบางรายการโดยการเลือกไว้ในกล่องด้านล่างแล้วคลิกที่ปุ่ม " +"\"เลือก\" ระหว่างสองกล่อง" + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "พิมพ์ลงในช่องนี้เพื่อกรองรายการที่ใช้ได้ของ %s" + +msgid "Filter" +msgstr "ตัวกรอง" + +msgid "Choose all" +msgstr "เลือกทั้งหมด" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "คลิกเพื่อเลือก %s ทั้งหมดในครั้งเดียว" + +msgid "Choose" +msgstr "เลือก" + +msgid "Remove" +msgstr "ลบออก" + +#, javascript-format +msgid "Chosen %s" +msgstr "%sที่ถูกเลือก" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" +"นี่คือรายการที่ถูกเลือกของ %s คุณอาจเอาบางรายการออกโดยการเลือกไว้ในกล่องด้านล่างแล้วคลิกที่ปุ่ม " +"\"เอาออก\" ระหว่างสองกล่อง" + +msgid "Remove all" +msgstr "เอาออกทั้งหมด" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "คลิกเพื่อเอา %s ออกทั้งหมดในครั้งเดียว" + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "%(sel)s จาก %(cnt)s selected" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" +"คุณยังไม่ได้บันทึกการเปลี่ยนแปลงในแต่ละฟิลด์ ถ้าคุณเรียกใช้คำสั่ง " +"ข้อมูลที่ไม่ได้บันทึกการเปลี่ยนแปลงของคุณจะหายไป" + +msgid "" +"You have selected an action, but you haven't saved your changes to " +"individual fields yet. Please click OK to save. You'll need to re-run the " +"action." +msgstr "" +"คุณได้เลือกคำสั่ง แต่คุณยังไม่ได้บันทึกการเปลี่ยนแปลงของคุณไปยังฟิลด์ กรุณาคลิก OK เพื่อบันทึก " +"คุณจะต้องเรียกใช้คำสั่งใหม่อีกครั้ง" + +msgid "" +"You have selected an action, and you haven't made any changes on individual " +"fields. You're probably looking for the Go button rather than the Save " +"button." +msgstr "" +"คุณได้เลือกคำสั่งและคุณยังไม่ได้ทำการเปลี่ยนแปลงใด ๆ ในฟิลด์ คุณอาจมองหาปุ่มไปมากกว่าปุ่มบันทึก" + +msgid "Now" +msgstr "ขณะนี้" + +msgid "Midnight" +msgstr "เที่ยงคืน" + +msgid "6 a.m." +msgstr "หกโมงเช้า" + +msgid "Noon" +msgstr "เที่ยงวัน" + +msgid "6 p.m." +msgstr "หกโมงเย็น" + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "หมายเหตุ: เวลาคุณเร็วกว่าเวลาบนเซิร์ฟเวอร์อยู่ %s ชั่วโมง." + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "หมายเหตุ: เวลาคุณช้ากว่าเวลาบนเซิร์ฟเวอร์อยู่ %s ชั่วโมง." + +msgid "Choose a Time" +msgstr "เลือกเวลา" + +msgid "Choose a time" +msgstr "เลือกเวลา" + +msgid "Cancel" +msgstr "ยกเลิก" + +msgid "Today" +msgstr "วันนี้" + +msgid "Choose a Date" +msgstr "เลือกวัน" + +msgid "Yesterday" +msgstr "เมื่อวาน" + +msgid "Tomorrow" +msgstr "พรุ่งนี้" + +msgid "January" +msgstr "มกราคม" + +msgid "February" +msgstr "กุมภาพันธ์" + +msgid "March" +msgstr "มีนาคม" + +msgid "April" +msgstr "เมษายน" + +msgid "May" +msgstr "พฤษภาคม" + +msgid "June" +msgstr "มิถุนายน" + +msgid "July" +msgstr "กรกฎาคม" + +msgid "August" +msgstr "สิงหาคม" + +msgid "September" +msgstr "กันยายน" + +msgid "October" +msgstr "ตุลาคม" + +msgid "November" +msgstr "พฤศจิกายน" + +msgid "December" +msgstr "ธันวาคม" + +msgctxt "one letter Sunday" +msgid "S" +msgstr "อา." + +msgctxt "one letter Monday" +msgid "M" +msgstr "จ." + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "อ." + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "พ." + +msgctxt "one letter Thursday" +msgid "T" +msgstr "พฤ." + +msgctxt "one letter Friday" +msgid "F" +msgstr "ศ." + +msgctxt "one letter Saturday" +msgid "S" +msgstr "ส." + +msgid "Show" +msgstr "แสดง" + +msgid "Hide" +msgstr "ซ่อน" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/tk/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/tk/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..fd8f0e1f0afe507ea27be1c1e16eeca3376d4de3 GIT binary patch literal 2845 zcmZ{l%a0UA9LGyR)bWKNC=ay&fgQ1Dm*truNLbzpEE{$p8V^`AUE5PT)!k!NHA@d6 zA<@JB0ho9I_d*~Zycwd&F41)6U}B6nFNOn&#)B8VXf!c?f8D*iEQyt={!~?0{p$DX z-`rod{9}f;1AQa9dyKII;CGMXf%fGx#-0Sf0_puXCGUeTWBw1g0$jbEv8TZG;Pc=X z5U<#9xxN>C4)a6cTJQ`==X~%*umcW&SHbPzZEzjFR0k?t<+zHZsx4|m-IamRI1Zn>R5I^=C9wg@vko5l>Bsu?%5~)9Jo7Al#bg49Ov1Qrm*Q8J%pWMmA8}P$17?I#04m z9yPKD;bE`Q1dZ%^1^o@0puLH{Iv*7}Zo-&iPj*$yb&4rRCtp&2qA}S^ZEJ!2J7I@gPQ_839rk@LqS&>i;adkTNz;t2ycmg4RxQ1h zKEFb5qe>tPo^#!RfAQ91hVE>*mWs8DQscD={PtRIg|3Uxo6mDj9>9; z6sE|0_n5Gb@55?p*_f8XN-iS@hr{c<6&nMspi^R{DNII0eBKq-PQ}LO6S3ifTPG$a zxM;QFByu$l=@RFK<4pvQ7e3*kNO==7afN4PWD$W&vc}HIFuo+&c+zS~YbO$|;s4wx z5` z@IDW5p+NLn5C)^UOS_WkI3N!g1sU_>loeUTl|Mf+vTGQ5g^ih*63;v3dl#g!l)2oW zL|Vj^bFv#7=bf>E^1YEHuwEms^UBy+@0`4(XsdS=saEI1LpyhQL%Y44y(BErF5!QJlF`ZCGe4y=Iw>~&1y4@NQ z8;+ikmusy!94xe&hc1r~y3Sy=a^}>TV~hIltPNF;6khQf@JgLKdD#tiwNTLk4)+-= z-NEyXU@7wxdk;Lqf;5n)7d*7o6y#IRAje3IDCK?!-E46 z-*k}gtRASalhVkJbagf&`ZIxeo0_b^?z?`|1Ccg3XIx%jWz9ZC*H4%SWN; zJX8v-%H{;iK5A=(h@G-pM!xEBa@c~$b;iB%qrf*XLLdt)t@;jFowdyQtim*WCvv>yBT-Nt-bsl z_p@7?jmQ1zPKpW=WV1`_=@h, 2022 +# Natalia, 2024 +# Resul , 2024 +# Rovshen Tagangylyjov, 2024 +# Welbeck Garli , 2022 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-05-22 11:46-0300\n" +"PO-Revision-Date: 2024-08-07 07:05+0000\n" +"Last-Translator: Natalia, 2024\n" +"Language-Team: Turkmen (http://app.transifex.com/django/django/language/" +"tk/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: tk\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "%(verbose_name_plural)s saýlanany poz" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "%(count)d%(items)süstünlikli pozuldy." + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "Pozmak amala aşyrylyp bilinmedi %(name)s" + +msgid "Are you sure?" +msgstr "Siz dowam etmekçimi?" + +msgid "Administration" +msgstr "Administrasiýa" + +msgid "All" +msgstr "Ählisi" + +msgid "Yes" +msgstr "Hawa" + +msgid "No" +msgstr "Ýok" + +msgid "Unknown" +msgstr "Näbelli" + +msgid "Any date" +msgstr "Islendik sene" + +msgid "Today" +msgstr "Şu gün" + +msgid "Past 7 days" +msgstr "Soňky 7 gün" + +msgid "This month" +msgstr "Şu aý" + +msgid "This year" +msgstr "Şu ýyl" + +msgid "No date" +msgstr "Senesiz" + +msgid "Has date" +msgstr "Senesi bar" + +msgid "Empty" +msgstr "Boş" + +msgid "Not empty" +msgstr "Boş däl" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" +"Administratiw bolmadyk hasap üçin dogry %(username)s we parol ulanmagyňyzy " +"sizden haýyş edýäris. Giriziljek maglumatlaryň harp ýalňyşsyz bolmagyny göz " +"öňünde tutmagy unutmaň." + +msgid "Action:" +msgstr "Hereket:" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "Başga %(verbose_name)s goş" + +msgid "Remove" +msgstr "Aýyr" + +msgid "Addition" +msgstr "Goşmak" + +msgid "Change" +msgstr "Üýtget" + +msgid "Deletion" +msgstr "Pozmaklyk" + +msgid "action time" +msgstr "hereket wagty" + +msgid "user" +msgstr "ulanyjy" + +msgid "content type" +msgstr "mazmun görnüşi" + +msgid "object id" +msgstr "obýekt id-sy" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/library/functions.html#repr) +msgid "object repr" +msgstr "obýekt repr-y" + +msgid "action flag" +msgstr "hereket belligi" + +msgid "change message" +msgstr "Habarnamany üýtget" + +msgid "log entry" +msgstr "Giriş habarnamasy" + +msgid "log entries" +msgstr "giriş habarnamalary" + +#, python-format +msgid "Added “%(object)s”." +msgstr "\"%(object)s\" goşuldy" + +#, python-format +msgid "Changed “%(object)s” — %(changes)s" +msgstr "\"%(object)s\" üýtgedildi - %(changes)s" + +#, python-format +msgid "Deleted “%(object)s.”" +msgstr "\"%(object)s\" pozuldy." + +msgid "LogEntry Object" +msgstr "GirişHabarnamasy Obýekty" + +#, python-brace-format +msgid "Added {name} “{object}”." +msgstr "Goşuldy {name} “{object}”." + +msgid "Added." +msgstr "Goşuldy." + +msgid "and" +msgstr "we" + +#, python-brace-format +msgid "Changed {fields} for {name} “{object}”." +msgstr "" + +#, python-brace-format +msgid "Changed {fields}." +msgstr "{fields} üýtgedildi." + +#, python-brace-format +msgid "Deleted {name} “{object}”." +msgstr "" + +msgid "No fields changed." +msgstr "" + +msgid "None" +msgstr "" + +msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." +msgstr "" + +msgid "Select this object for an action - {}" +msgstr "" + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully." +msgstr "" + +msgid "You may edit it again below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} “{obj}” was added successfully. You may add another {name} below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may edit it again below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may add another {name} " +"below." +msgstr "" + +#, python-brace-format +msgid "The {name} “{obj}” was changed successfully." +msgstr "" + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" + +msgid "No action selected." +msgstr "" + +#, python-format +msgid "The %(name)s “%(obj)s” was deleted successfully." +msgstr "" + +#, python-format +msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" +msgstr "" + +#, python-format +msgid "Add %s" +msgstr "" + +#, python-format +msgid "Change %s" +msgstr "" + +#, python-format +msgid "View %s" +msgstr "" + +msgid "Database error" +msgstr "" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "" + +#, python-format +msgid "Change history: %s" +msgstr "" + +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" + +msgid "Django site admin" +msgstr "" + +msgid "Django administration" +msgstr "" + +msgid "Site administration" +msgstr "" + +msgid "Log in" +msgstr "" + +#, python-format +msgid "%(app)s administration" +msgstr "" + +msgid "Page not found" +msgstr "" + +msgid "We’re sorry, but the requested page could not be found." +msgstr "" + +msgid "Home" +msgstr "" + +msgid "Server error" +msgstr "" + +msgid "Server error (500)" +msgstr "" + +msgid "Server Error (500)" +msgstr "" + +msgid "" +"There’s been an error. It’s been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" + +msgid "Run the selected action" +msgstr "" + +msgid "Go" +msgstr "" + +msgid "Click here to select the objects across all pages" +msgstr "" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "" + +msgid "Clear selection" +msgstr "" + +msgid "Breadcrumbs" +msgstr "" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "" + +msgid "Add" +msgstr "" + +msgid "View" +msgstr "" + +msgid "You don’t have permission to view or edit anything." +msgstr "" + +msgid "" +"First, enter a username and password. Then, you’ll be able to edit more user " +"options." +msgstr "" + +msgid "Enter a username and password." +msgstr "" + +msgid "Change password" +msgstr "" + +msgid "Set password" +msgstr "" + +msgid "Please correct the error below." +msgid_plural "Please correct the errors below." +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "" + +msgid "" +"This action will enable password-based authentication for " +"this user." +msgstr "" + +msgid "Disable password-based authentication" +msgstr "" + +msgid "Enable password-based authentication" +msgstr "" + +msgid "Skip to main content" +msgstr "" + +msgid "Welcome," +msgstr "" + +msgid "View site" +msgstr "" + +msgid "Documentation" +msgstr "" + +msgid "Log out" +msgstr "" + +#, python-format +msgid "Add %(name)s" +msgstr "" + +msgid "History" +msgstr "" + +msgid "View on site" +msgstr "" + +msgid "Filter" +msgstr "" + +msgid "Hide counts" +msgstr "" + +msgid "Show counts" +msgstr "" + +msgid "Clear all filters" +msgstr "" + +msgid "Remove from sorting" +msgstr "" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "" + +msgid "Toggle sorting" +msgstr "" + +msgid "Toggle theme (current theme: auto)" +msgstr "" + +msgid "Toggle theme (current theme: light)" +msgstr "" + +msgid "Toggle theme (current theme: dark)" +msgstr "" + +msgid "Delete" +msgstr "" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" + +msgid "Objects" +msgstr "" + +msgid "Yes, I’m sure" +msgstr "" + +msgid "No, take me back" +msgstr "" + +msgid "Delete multiple objects" +msgstr "" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" + +msgid "Delete?" +msgstr "" + +#, python-format +msgid " By %(filter_title)s " +msgstr "" + +msgid "Summary" +msgstr "" + +msgid "Recent actions" +msgstr "" + +msgid "My actions" +msgstr "" + +msgid "None available" +msgstr "" + +msgid "Added:" +msgstr "" + +msgid "Changed:" +msgstr "" + +msgid "Deleted:" +msgstr "" + +msgid "Unknown content" +msgstr "" + +msgid "" +"Something’s wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" + +msgid "Forgotten your password or username?" +msgstr "" + +msgid "Toggle navigation" +msgstr "" + +msgid "Sidebar" +msgstr "" + +msgid "Start typing to filter…" +msgstr "" + +msgid "Filter navigation items" +msgstr "" + +msgid "Date/time" +msgstr "" + +msgid "User" +msgstr "" + +msgid "Action" +msgstr "" + +msgid "entry" +msgid_plural "entries" +msgstr[0] "" +msgstr[1] "" + +msgid "" +"This object doesn’t have a change history. It probably wasn’t added via this " +"admin site." +msgstr "" + +msgid "Show all" +msgstr "" + +msgid "Save" +msgstr "" + +msgid "Popup closing…" +msgstr "" + +msgid "Search" +msgstr "" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "" + +msgid "Save as new" +msgstr "" + +msgid "Save and add another" +msgstr "" + +msgid "Save and continue editing" +msgstr "" + +msgid "Save and view" +msgstr "" + +msgid "Close" +msgstr "" + +#, python-format +msgid "Change selected %(model)s" +msgstr "" + +#, python-format +msgid "Add another %(model)s" +msgstr "" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "" + +#, python-format +msgid "View selected %(model)s" +msgstr "" + +msgid "Thanks for spending some quality time with the web site today." +msgstr "" + +msgid "Log in again" +msgstr "" + +msgid "Password change" +msgstr "" + +msgid "Your password was changed." +msgstr "" + +msgid "" +"Please enter your old password, for security’s sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" + +msgid "Change my password" +msgstr "" + +msgid "Password reset" +msgstr "" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "" + +msgid "Password reset confirmation" +msgstr "" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" + +msgid "New password:" +msgstr "" + +msgid "Confirm password:" +msgstr "" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" + +msgid "" +"We’ve emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" + +msgid "" +"If you don’t receive an email, please make sure you’ve entered the address " +"you registered with, and check your spam folder." +msgstr "" + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" + +msgid "Please go to the following page and choose a new password:" +msgstr "" + +msgid "Your username, in case you’ve forgotten:" +msgstr "" + +msgid "Thanks for using our site!" +msgstr "" + +#, python-format +msgid "The %(site_name)s team" +msgstr "" + +msgid "" +"Forgotten your password? Enter your email address below, and we’ll email " +"instructions for setting a new one." +msgstr "" + +msgid "Email address:" +msgstr "" + +msgid "Reset my password" +msgstr "" + +msgid "Select all objects on this page for an action" +msgstr "" + +msgid "All dates" +msgstr "" + +#, python-format +msgid "Select %s" +msgstr "" + +#, python-format +msgid "Select %s to change" +msgstr "" + +#, python-format +msgid "Select %s to view" +msgstr "" + +msgid "Date:" +msgstr "" + +msgid "Time:" +msgstr "" + +msgid "Lookup" +msgstr "" + +msgid "Currently:" +msgstr "" + +msgid "Change:" +msgstr "" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/tr/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/tr/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..75038f36b51b7a525ec59e213f6dbfae59802723 GIT binary patch literal 18745 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 qj*n17PuUTBA|;?ru~I*yCv4UuQ_z5fE(%AckH literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/tr/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/tr/LC_MESSAGES/django.po new file mode 100644 index 0000000000..be27db296e --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/tr/LC_MESSAGES/django.po @@ -0,0 +1,794 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# BouRock, 2015-2024 +# BouRock, 2014-2015 +# Caner Başaran , 2013 +# Cihad GÜNDOĞDU , 2012 +# Cihad GÜNDOĞDU , 2014 +# Cihan Okyay , 2014 +# Jannis Leidel , 2011 +# Mesut Can Gürle , 2013 +# Murat Sahin , 2011 +# Yigit Guler , 2020 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-05-22 11:46-0300\n" +"PO-Revision-Date: 2024-08-07 07:05+0000\n" +"Last-Translator: BouRock, 2015-2024\n" +"Language-Team: Turkish (http://app.transifex.com/django/django/language/" +"tr/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: tr\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "Seçili %(verbose_name_plural)s nesnelerini sil" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "%(count)d adet %(items)s başarılı olarak silindi." + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "%(name)s silinemiyor" + +msgid "Are you sure?" +msgstr "Emin misiniz?" + +msgid "Administration" +msgstr "Yönetim" + +msgid "All" +msgstr "Tümü" + +msgid "Yes" +msgstr "Evet" + +msgid "No" +msgstr "Hayır" + +msgid "Unknown" +msgstr "Bilinmiyor" + +msgid "Any date" +msgstr "Herhangi bir tarih" + +msgid "Today" +msgstr "Bugün" + +msgid "Past 7 days" +msgstr "Son 7 gün" + +msgid "This month" +msgstr "Bu ay" + +msgid "This year" +msgstr "Bu yıl" + +msgid "No date" +msgstr "Tarih yok" + +msgid "Has date" +msgstr "Tarih var" + +msgid "Empty" +msgstr "Boş" + +msgid "Not empty" +msgstr "Boş değil" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" +"Lütfen görevli hesabı için %(username)s ve parolanızı doğru girin. İki " +"alanın da büyük küçük harfe duyarlı olabildiğini unutmayın." + +msgid "Action:" +msgstr "Eylem:" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "Başka bir %(verbose_name)s ekle" + +msgid "Remove" +msgstr "Kaldır" + +msgid "Addition" +msgstr "Ekleme" + +msgid "Change" +msgstr "Değiştir" + +msgid "Deletion" +msgstr "Silme" + +msgid "action time" +msgstr "eylem zamanı" + +msgid "user" +msgstr "kullanıcı" + +msgid "content type" +msgstr "içerik türü" + +msgid "object id" +msgstr "nesne kimliği" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/library/functions.html#repr) +msgid "object repr" +msgstr "nesne kodu" + +msgid "action flag" +msgstr "eylem işareti" + +msgid "change message" +msgstr "iletiyi değiştir" + +msgid "log entry" +msgstr "günlük girdisi" + +msgid "log entries" +msgstr "günlük girdisi" + +#, python-format +msgid "Added “%(object)s”." +msgstr "“%(object)s” eklendi." + +#, python-format +msgid "Changed “%(object)s” — %(changes)s" +msgstr "“%(object)s” değiştirildi — %(changes)s" + +#, python-format +msgid "Deleted “%(object)s.”" +msgstr "“%(object)s” silindi." + +msgid "LogEntry Object" +msgstr "LogEntry Nesnesi" + +#, python-brace-format +msgid "Added {name} “{object}”." +msgstr "{name} “{object}” eklendi." + +msgid "Added." +msgstr "Eklendi." + +msgid "and" +msgstr "ve" + +#, python-brace-format +msgid "Changed {fields} for {name} “{object}”." +msgstr "{name} “{object}” için {fields} değiştirildi." + +#, python-brace-format +msgid "Changed {fields}." +msgstr "{fields} değiştirildi." + +#, python-brace-format +msgid "Deleted {name} “{object}”." +msgstr "{name} “{object}” silindi." + +msgid "No fields changed." +msgstr "Değiştirilen alanlar yok." + +msgid "None" +msgstr "Hiçbiri" + +msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." +msgstr "" +"Birden fazla seçmek için “Ctrl” veya Mac’teki “Command” tuşuna basılı tutun." + +msgid "Select this object for an action - {}" +msgstr "Bir eylem için bu nesneyi seç - {}" + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully." +msgstr "{name} “{obj}” başarılı olarak eklendi." + +msgid "You may edit it again below." +msgstr "Aşağıdan bunu tekrar düzenleyebilirsiniz." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was added successfully. You may add another {name} below." +msgstr "" +"{name} “{obj}” başarılı olarak eklendi. Aşağıda başka bir {name} " +"ekleyebilirsiniz." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may edit it again below." +msgstr "" +"{name} “{obj}” başarılı olarak değiştirildi. Aşağıda tekrar " +"düzenleyebilirsiniz." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may add another {name} " +"below." +msgstr "" +"{name} “{obj}” başarılı olarak değiştirildi. Aşağıda başka bir {name} " +"ekleyebilirsiniz." + +#, python-brace-format +msgid "The {name} “{obj}” was changed successfully." +msgstr "{name} “{obj}” başarılı olarak değiştirildi." + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" +"Bunlar üzerinde eylemlerin uygulanması için öğeler seçilmek zorundadır. Hiç " +"öğe değiştirilmedi." + +msgid "No action selected." +msgstr "Seçilen eylem yok." + +#, python-format +msgid "The %(name)s “%(obj)s” was deleted successfully." +msgstr "%(name)s “%(obj)s” başarılı olarak silindi." + +#, python-format +msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" +msgstr "“%(key)s” kimliği olan %(name)s mevcut değil. Belki silinmiş midir?" + +#, python-format +msgid "Add %s" +msgstr "%s ekle" + +#, python-format +msgid "Change %s" +msgstr "%s değiştir" + +#, python-format +msgid "View %s" +msgstr "%s göster" + +msgid "Database error" +msgstr "Veritabanı hatası" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "%(count)s adet %(name)s başarılı olarak değiştirildi." +msgstr[1] "%(count)s adet %(name)s başarılı olarak değiştirildi." + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "%(total_count)s nesne seçildi" +msgstr[1] "Tüm %(total_count)s nesne seçildi" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "0 / %(cnt)s nesne seçildi" + +#, python-format +msgid "Change history: %s" +msgstr "Değişiklik geçmişi: %s" + +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "%(class_name)s %(instance)s" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" +"%(class_name)s %(instance)s silinmesi aşağıda korunan ilgili nesnelerin de " +"silinmesini gerektirecektir: %(related_objects)s" + +msgid "Django site admin" +msgstr "Django site yöneticisi" + +msgid "Django administration" +msgstr "Django yönetimi" + +msgid "Site administration" +msgstr "Site yönetimi" + +msgid "Log in" +msgstr "Oturum aç" + +#, python-format +msgid "%(app)s administration" +msgstr "%(app)s yönetimi" + +msgid "Page not found" +msgstr "Sayfa bulunamadı" + +msgid "We’re sorry, but the requested page could not be found." +msgstr "Üzgünüz, istediğiniz sayfa bulunamadı." + +msgid "Home" +msgstr "Giriş" + +msgid "Server error" +msgstr "Sunucu hatası" + +msgid "Server error (500)" +msgstr "Sunucu hatası (500)" + +msgid "Server Error (500)" +msgstr "Sunucu Hatası (500)" + +msgid "" +"There’s been an error. It’s been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" +"Bir hata oluştu. Site yöneticilerine e-posta yoluyla bildirildi ve kısa süre " +"içinde düzeltilecektir. Sabrınız için teşekkür ederiz." + +msgid "Run the selected action" +msgstr "Seçilen eylemi çalıştır" + +msgid "Go" +msgstr "Git" + +msgid "Click here to select the objects across all pages" +msgstr "Tüm sayfalardaki nesneleri seçmek için buraya tıklayın" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "Tüm %(total_count)s %(module_name)s nesnelerini seç" + +msgid "Clear selection" +msgstr "Seçimi temizle" + +msgid "Breadcrumbs" +msgstr "İçerik haritaları" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "%(name)s uygulamasındaki modeller" + +msgid "Add" +msgstr "Ekle" + +msgid "View" +msgstr "Göster" + +msgid "You don’t have permission to view or edit anything." +msgstr "Hiçbir şeyi düzenlemek ve göstermek için izne sahip değilsiniz." + +msgid "" +"First, enter a username and password. Then, you’ll be able to edit more user " +"options." +msgstr "" +"Önce, bir kullanıcı adı ve parola girin. Ondan sonra, daha fazla kullanıcı " +"seçeneğini düzenleyebileceksiniz." + +msgid "Enter a username and password." +msgstr "Kullanıcı adı ve parola girin." + +msgid "Change password" +msgstr "Parolayı değiştir" + +msgid "Set password" +msgstr "Parola ayarla" + +msgid "Please correct the error below." +msgid_plural "Please correct the errors below." +msgstr[0] "Lütfen aşağıdaki hatayı düzeltin." +msgstr[1] "Lütfen aşağıdaki hataları düzeltin." + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "%(username)s kullanıcısı için yeni bir parola girin." + +msgid "" +"This action will enable password-based authentication for " +"this user." +msgstr "" +"Bu eylem, bu kullanıcı için parola tabanlı kimlik doğrulaması " +"etkinleştirecektir." + +msgid "Disable password-based authentication" +msgstr "Parola tabanlı kimlik doğrulamasını etkisizleştir" + +msgid "Enable password-based authentication" +msgstr "Parola tabanlı kimlik doğrulamasını etkinleştir" + +msgid "Skip to main content" +msgstr "Ana içeriğe atla" + +msgid "Welcome," +msgstr "Hoş Geldiniz," + +msgid "View site" +msgstr "Siteyi göster" + +msgid "Documentation" +msgstr "Belgeler" + +msgid "Log out" +msgstr "Oturumu kapat" + +#, python-format +msgid "Add %(name)s" +msgstr "%(name)s ekle" + +msgid "History" +msgstr "Geçmiş" + +msgid "View on site" +msgstr "Sitede görüntüle" + +msgid "Filter" +msgstr "Süz" + +msgid "Hide counts" +msgstr "Sayıları gizle" + +msgid "Show counts" +msgstr "Sayıları göster" + +msgid "Clear all filters" +msgstr "Tüm süzgeçleri temizle" + +msgid "Remove from sorting" +msgstr "Sıralamadan kaldır" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "Sıralama önceliği: %(priority_number)s" + +msgid "Toggle sorting" +msgstr "Sıralamayı değiştir" + +msgid "Toggle theme (current theme: auto)" +msgstr "Temayı değiştir (şu anki tema: otomatik)" + +msgid "Toggle theme (current theme: light)" +msgstr "Temayı değiştir (şu anki tema: açık)" + +msgid "Toggle theme (current theme: dark)" +msgstr "Temayı değiştir (şu anki tema: koyu)" + +msgid "Delete" +msgstr "Sil" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" +"%(object_name)s '%(escaped_object)s' nesnesinin silinmesi, ilgili nesnelerin " +"silinmesi ile sonuçlanacak, ancak hesabınız aşağıdaki nesnelerin türünü " +"silmek için izine sahip değil." + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" +"%(object_name)s '%(escaped_object)s' nesnesinin silinmesi, aşağıda korunan " +"ilgili nesnelerin silinmesini gerektirecek:" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" +"%(object_name)s \"%(escaped_object)s\" nesnesini silmek istediğinize emin " +"misiniz? Aşağıdaki ilgili öğelerin tümü silinecektir:" + +msgid "Objects" +msgstr "Nesneler" + +msgid "Yes, I’m sure" +msgstr "Evet, eminim" + +msgid "No, take me back" +msgstr "Hayır, beni geri götür" + +msgid "Delete multiple objects" +msgstr "Birden fazla nesneyi sil" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" +"Seçilen %(objects_name)s nesnelerinin silinmesi, ilgili nesnelerin silinmesi " +"ile sonuçlanacak, ancak hesabınız aşağıdaki nesnelerin türünü silmek için " +"izine sahip değil." + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" +"Seçilen %(objects_name)s nesnelerinin silinmesi, aşağıda korunan ilgili " +"nesnelerin silinmesini gerektirecek:" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" +"Seçilen %(objects_name)s nesnelerini silmek istediğinize emin misiniz? " +"Aşağıdaki nesnelerin tümü ve onların ilgili öğeleri silinecektir:" + +msgid "Delete?" +msgstr "Silinsin mi?" + +#, python-format +msgid " By %(filter_title)s " +msgstr " %(filter_title)s süzgecine göre" + +msgid "Summary" +msgstr "Özet" + +msgid "Recent actions" +msgstr "Son eylemler" + +msgid "My actions" +msgstr "Eylemlerim" + +msgid "None available" +msgstr "Mevcut değil" + +msgid "Added:" +msgstr "Eklendi:" + +msgid "Changed:" +msgstr "Değiştirildi:" + +msgid "Deleted:" +msgstr "Silindi:" + +msgid "Unknown content" +msgstr "Bilinmeyen içerik" + +msgid "" +"Something’s wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" +"Veritabanı kurulumunuz ile ilgili birşeyler yanlış. Uygun veritabanı " +"tablolarının oluşturulduğundan ve veritabanının uygun kullanıcı tarafından " +"okunabilir olduğundan emin olun." + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" +"%(username)s olarak kimlik doğrulamanız yapıldı, ancak bu sayfaya erişmek " +"için yetkili değilsiniz. Farklı bir hesapla oturum açmak ister misiniz?" + +msgid "Forgotten your password or username?" +msgstr "Kullanıcı adınızı veya parolanızı mı unuttunuz?" + +msgid "Toggle navigation" +msgstr "Gezinmeyi aç/kapat" + +msgid "Sidebar" +msgstr "Kenar çubuğu" + +msgid "Start typing to filter…" +msgstr "Süzmek için yazmaya başlayın..." + +msgid "Filter navigation items" +msgstr "Gezinti öğelerini süz" + +msgid "Date/time" +msgstr "Tarih/saat" + +msgid "User" +msgstr "Kullanıcı" + +msgid "Action" +msgstr "Eylem" + +msgid "entry" +msgid_plural "entries" +msgstr[0] "giriş" +msgstr[1] "giriş" + +msgid "" +"This object doesn’t have a change history. It probably wasn’t added via this " +"admin site." +msgstr "" +"Bu nesne değişme geçmişine sahip değil. Muhtemelen bu yönetici sitesi " +"aracılığıyla eklenmedi." + +msgid "Show all" +msgstr "Tümünü göster" + +msgid "Save" +msgstr "Kaydet" + +msgid "Popup closing…" +msgstr "Açılır pencere kapanıyor…" + +msgid "Search" +msgstr "Ara" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "%(counter)s sonuç" +msgstr[1] "%(counter)s sonuç" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "toplam %(full_result_count)s" + +msgid "Save as new" +msgstr "Yeni olarak kaydet" + +msgid "Save and add another" +msgstr "Kaydet ve başka birini ekle" + +msgid "Save and continue editing" +msgstr "Kaydet ve düzenlemeye devam et" + +msgid "Save and view" +msgstr "Kaydet ve göster" + +msgid "Close" +msgstr "Kapat" + +#, python-format +msgid "Change selected %(model)s" +msgstr "Seçilen %(model)s değiştir" + +#, python-format +msgid "Add another %(model)s" +msgstr "Başka bir %(model)s ekle" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "Seçilen %(model)s sil" + +#, python-format +msgid "View selected %(model)s" +msgstr "Seçilen %(model)s görüntüle" + +msgid "Thanks for spending some quality time with the web site today." +msgstr "Bugün web sitesine ayırdığınız kaliteli zaman için teşekkür ederiz." + +msgid "Log in again" +msgstr "Tekrar oturum aç" + +msgid "Password change" +msgstr "Parola değiştime" + +msgid "Your password was changed." +msgstr "Parolanız değiştirildi." + +msgid "" +"Please enter your old password, for security’s sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" +"Güvenliğiniz için, lütfen eski parolanızı girin, ve ondan sonra yeni " +"parolanızı iki kere girin böylece doğru olarak yazdığınızı doğrulayabilelim." + +msgid "Change my password" +msgstr "Parolamı değiştir" + +msgid "Password reset" +msgstr "Parolayı sıfırla" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "Parolanız ayarlandı. Şimdi devam edebilir ve oturum açabilirsiniz." + +msgid "Password reset confirmation" +msgstr "Parola sıfırlama onayı" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" +"Lütfen yeni parolanızı iki kere girin böylece böylece doğru olarak " +"yazdığınızı doğrulayabilelim." + +msgid "New password:" +msgstr "Yeni parola:" + +msgid "Confirm password:" +msgstr "Parolayı onayla:" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"Parola sıfırlama bağlantısı geçersiz olmuş, çünkü zaten kullanılmış. Lütfen " +"yeni bir parola sıfırlama isteyin." + +msgid "" +"We’ve emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" +"Eğer girdiğiniz e-posta ile bir hesabınız varsa, parolanızın ayarlanması " +"için size talimatları e-posta ile gönderdik. En kısa sürede almalısınız." + +msgid "" +"If you don’t receive an email, please make sure you’ve entered the address " +"you registered with, and check your spam folder." +msgstr "" +"Eğer bir e-posta almadıysanız, lütfen kayıt olurken girdiğiniz adresi " +"kullandığınızdan emin olun ve istenmeyen mesajlar klasörünü kontrol edin." + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" +"Bu e-postayı alıyorsunuz çünkü %(site_name)s sitesindeki kullanıcı hesabınız " +"için bir parola sıfırlama istediniz." + +msgid "Please go to the following page and choose a new password:" +msgstr "Lütfen şurada belirtilen sayfaya gidin ve yeni bir parola seçin:" + +msgid "Your username, in case you’ve forgotten:" +msgstr "Unutma ihtimalinize karşı, kullanıcı adınız:" + +msgid "Thanks for using our site!" +msgstr "Sitemizi kullandığınız için teşekkürler!" + +#, python-format +msgid "The %(site_name)s team" +msgstr "%(site_name)s ekibi" + +msgid "" +"Forgotten your password? Enter your email address below, and we’ll email " +"instructions for setting a new one." +msgstr "" +"Parolanızı mı unuttunuz? Aşağıya e-posta adresinizi girin ve yeni bir tane " +"ayarlamak için talimatları e-posta ile gönderelim." + +msgid "Email address:" +msgstr "E-posta adresi:" + +msgid "Reset my password" +msgstr "Parolamı sıfırla" + +msgid "Select all objects on this page for an action" +msgstr "Bir eylem için bu sayfadaki tüm nesneleri seç" + +msgid "All dates" +msgstr "Tüm tarihler" + +#, python-format +msgid "Select %s" +msgstr "%s seç" + +#, python-format +msgid "Select %s to change" +msgstr "Değiştirmek için %s seçin" + +#, python-format +msgid "Select %s to view" +msgstr "Göstermek için %s seçin" + +msgid "Date:" +msgstr "Tarih:" + +msgid "Time:" +msgstr "Saat:" + +msgid "Lookup" +msgstr "Arama" + +msgid "Currently:" +msgstr "Şu anda:" + +msgid "Change:" +msgstr "Değiştir:" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/tr/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/tr/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..ca1c3191790eb88e0b651324ec31eb081811530a GIT binary patch literal 6044 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, 2011 +# Metin Amiroff , 2011 +# Murat Çorlu , 2012 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-09-18 15:04-0300\n" +"PO-Revision-Date: 2023-12-04 07:59+0000\n" +"Last-Translator: BouRock, 2015-2016,2019-2023\n" +"Language-Team: Turkish (http://app.transifex.com/django/django/language/" +"tr/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: tr\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#, javascript-format +msgid "Available %s" +msgstr "Mevcut %s" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" +"Bu mevcut %s listesidir. Aşağıdaki kutudan bazılarını işaretleyerek ve ondan " +"sonra iki kutu arasındaki \"Seçin\" okuna tıklayarak seçebilirsiniz." + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "Mevcut %s listesini süzmek için bu kutu içine yazın." + +msgid "Filter" +msgstr "Süzgeç" + +msgid "Choose all" +msgstr "Tümünü seçin" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "Bir kerede tüm %s seçilmesi için tıklayın." + +msgid "Choose" +msgstr "Seçin" + +msgid "Remove" +msgstr "Kaldır" + +#, javascript-format +msgid "Chosen %s" +msgstr "Seçilen %s" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" +"Bu seçilen %s listesidir. Aşağıdaki kutudan bazılarını işaretleyerek ve " +"ondan sonra iki kutu arasındaki \"Kaldır\" okuna tıklayarak " +"kaldırabilirsiniz." + +#, javascript-format +msgid "Type into this box to filter down the list of selected %s." +msgstr "Seçilen %s listesini süzmek için bu kutu içine yazın." + +msgid "Remove all" +msgstr "Tümünü kaldır" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "Bir kerede tüm seçilen %s kaldırılması için tıklayın." + +#, javascript-format +msgid "%s selected option not visible" +msgid_plural "%s selected options not visible" +msgstr[0] "%s seçilen seçenek görünür değil" +msgstr[1] "%s seçilen seçenek görünür değil" + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "%(sel)s / %(cnt)s seçildi" +msgstr[1] "%(sel)s / %(cnt)s seçildi" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" +"Bireysel düzenlenebilir alanlarda kaydedilmemiş değişiklikleriniz var. Eğer " +"bir eylem çalıştırırsanız, kaydedilmemiş değişiklikleriniz kaybolacaktır." + +msgid "" +"You have selected an action, but you haven’t saved your changes to " +"individual fields yet. Please click OK to save. You’ll need to re-run the " +"action." +msgstr "" +"Bir eylem seçtiniz, ancak değişikliklerinizi tek tek alanlara kaydetmediniz. " +"Kaydetmek için lütfen TAMAM düğmesine tıklayın. Eylemi yeniden çalıştırmanız " +"gerekecek." + +msgid "" +"You have selected an action, and you haven’t made any changes on individual " +"fields. You’re probably looking for the Go button rather than the Save " +"button." +msgstr "" +"Bir eylem seçtiniz, ancak tek tek alanlarda herhangi bir değişiklik " +"yapmadınız. Muhtemelen Kaydet düğmesi yerine Git düğmesini arıyorsunuz." + +msgid "Now" +msgstr "Şimdi" + +msgid "Midnight" +msgstr "Geceyarısı" + +msgid "6 a.m." +msgstr "Sabah 6" + +msgid "Noon" +msgstr "Öğle" + +msgid "6 p.m." +msgstr "6 ö.s." + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "Not: Sunucu saatinin %s saat ilerisindesiniz." +msgstr[1] "Not: Sunucu saatinin %s saat ilerisindesiniz." + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "Not: Sunucu saatinin %s saat gerisindesiniz." +msgstr[1] "Not: Sunucu saatinin %s saat gerisindesiniz." + +msgid "Choose a Time" +msgstr "Bir Saat Seçin" + +msgid "Choose a time" +msgstr "Bir saat seçin" + +msgid "Cancel" +msgstr "İptal" + +msgid "Today" +msgstr "Bugün" + +msgid "Choose a Date" +msgstr "Bir Tarih Seçin" + +msgid "Yesterday" +msgstr "Dün" + +msgid "Tomorrow" +msgstr "Yarın" + +msgid "January" +msgstr "Ocak" + +msgid "February" +msgstr "Şubat" + +msgid "March" +msgstr "Mart" + +msgid "April" +msgstr "Nisan" + +msgid "May" +msgstr "Mayıs" + +msgid "June" +msgstr "Haziran" + +msgid "July" +msgstr "Temmuz" + +msgid "August" +msgstr "Ağustos" + +msgid "September" +msgstr "Eylül" + +msgid "October" +msgstr "Ekim" + +msgid "November" +msgstr "Kasım" + +msgid "December" +msgstr "Aralık" + +msgctxt "abbrev. month January" +msgid "Jan" +msgstr "Oca" + +msgctxt "abbrev. month February" +msgid "Feb" +msgstr "Şub" + +msgctxt "abbrev. month March" +msgid "Mar" +msgstr "Mar" + +msgctxt "abbrev. month April" +msgid "Apr" +msgstr "Nis" + +msgctxt "abbrev. month May" +msgid "May" +msgstr "May" + +msgctxt "abbrev. month June" +msgid "Jun" +msgstr "Haz" + +msgctxt "abbrev. month July" +msgid "Jul" +msgstr "Tem" + +msgctxt "abbrev. month August" +msgid "Aug" +msgstr "Ağu" + +msgctxt "abbrev. month September" +msgid "Sep" +msgstr "Eyl" + +msgctxt "abbrev. month October" +msgid "Oct" +msgstr "Eki" + +msgctxt "abbrev. month November" +msgid "Nov" +msgstr "Kas" + +msgctxt "abbrev. month December" +msgid "Dec" +msgstr "Ara" + +msgid "Sunday" +msgstr "Pazar" + +msgid "Monday" +msgstr "Pazartesi" + +msgid "Tuesday" +msgstr "Salı" + +msgid "Wednesday" +msgstr "Çarşamba" + +msgid "Thursday" +msgstr "Perşembe" + +msgid "Friday" +msgstr "Cuma" + +msgid "Saturday" +msgstr "Cumartesi" + +msgctxt "abbrev. day Sunday" +msgid "Sun" +msgstr "Paz" + +msgctxt "abbrev. day Monday" +msgid "Mon" +msgstr "Pzt" + +msgctxt "abbrev. day Tuesday" +msgid "Tue" +msgstr "Sal" + +msgctxt "abbrev. day Wednesday" +msgid "Wed" +msgstr "Çrş" + +msgctxt "abbrev. day Thursday" +msgid "Thur" +msgstr "Per" + +msgctxt "abbrev. day Friday" +msgid "Fri" +msgstr "Cum" + +msgctxt "abbrev. day Saturday" +msgid "Sat" +msgstr "Cmt" + +msgctxt "one letter Sunday" +msgid "S" +msgstr "P" + +msgctxt "one letter Monday" +msgid "M" +msgstr "Pt" + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "S" + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "Ç" + +msgctxt "one letter Thursday" +msgid "T" +msgstr "Pe" + +msgctxt "one letter Friday" +msgid "F" +msgstr "C" + +msgctxt "one letter Saturday" +msgid "S" +msgstr "Ct" + +msgid "Show" +msgstr "Göster" + +msgid "Hide" +msgstr "Gizle" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/tt/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/tt/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..6bfde60aa116c04fa307a7b732fb9f8aaa7b01c7 GIT binary patch literal 12952 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, 2011 +# v_ildar , 2014 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-01-19 16:49+0100\n" +"PO-Revision-Date: 2017-09-19 16:40+0000\n" +"Last-Translator: Jannis Leidel \n" +"Language-Team: Tatar (http://www.transifex.com/django/django/language/tt/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: tt\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "%(count)d %(items)s уңышлы рәвештә бетерелгән." + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "%(name)s бетереп булмады" + +msgid "Are you sure?" +msgstr "Сез инанып карар кылдыгызмы?" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "Сайланган %(verbose_name_plural)s бетерергә" + +msgid "Administration" +msgstr "" + +msgid "All" +msgstr "Барысы" + +msgid "Yes" +msgstr "Әйе" + +msgid "No" +msgstr "Юк" + +msgid "Unknown" +msgstr "Билгесез" + +msgid "Any date" +msgstr "Теләсә нинди көн һәм вакыт" + +msgid "Today" +msgstr "Бүген" + +msgid "Past 7 days" +msgstr "Соңгы 7 көн" + +msgid "This month" +msgstr "Бу ай" + +msgid "This year" +msgstr "Бу ел" + +msgid "No date" +msgstr "" + +msgid "Has date" +msgstr "" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" + +msgid "Action:" +msgstr "Гамәл:" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "Тагын бер %(verbose_name)s өстәргә" + +msgid "Remove" +msgstr "Бетерергә" + +msgid "action time" +msgstr "гамәл вакыты" + +msgid "user" +msgstr "" + +msgid "content type" +msgstr "" + +msgid "object id" +msgstr "объект идентификаторы" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/3/library/functions.html#repr) +msgid "object repr" +msgstr "объект фаразы" + +msgid "action flag" +msgstr "гамәл тибы" + +msgid "change message" +msgstr "үзгәрү белдерүе" + +msgid "log entry" +msgstr "журнал язмасы" + +msgid "log entries" +msgstr "журнал язмалары" + +#, python-format +msgid "Added \"%(object)s\"." +msgstr "" + +#, python-format +msgid "Changed \"%(object)s\" - %(changes)s" +msgstr "" + +#, python-format +msgid "Deleted \"%(object)s.\"" +msgstr "" + +msgid "LogEntry Object" +msgstr "" + +#, python-brace-format +msgid "Added {name} \"{object}\"." +msgstr "" + +msgid "Added." +msgstr "" + +msgid "and" +msgstr "һәм" + +#, python-brace-format +msgid "Changed {fields} for {name} \"{object}\"." +msgstr "" + +#, python-brace-format +msgid "Changed {fields}." +msgstr "" + +#, python-brace-format +msgid "Deleted {name} \"{object}\"." +msgstr "" + +msgid "No fields changed." +msgstr "Үзгәртелгән кырлар юк." + +msgid "None" +msgstr "Юк" + +msgid "" +"Hold down \"Control\", or \"Command\" on a Mac, to select more than one." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was added successfully. You may edit it again below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was added successfully. You may add another {name} " +"below." +msgstr "" + +#, python-brace-format +msgid "The {name} \"{obj}\" was added successfully." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was changed successfully. You may edit it again below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was changed successfully. You may add another {name} " +"below." +msgstr "" + +#, python-brace-format +msgid "The {name} \"{obj}\" was changed successfully." +msgstr "" + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" +"Элементар өстеннән гамәл кылу өчен алар сайланган булырга тиеш. Элементлар " +"үзгәртелмәгән." + +msgid "No action selected." +msgstr "Гамәл сайланмаган." + +#, python-format +msgid "The %(name)s \"%(obj)s\" was deleted successfully." +msgstr "%(name)s \"%(obj)s\" уңышлы рәвештә бетерелгән." + +#, python-format +msgid "%(name)s with ID \"%(key)s\" doesn't exist. Perhaps it was deleted?" +msgstr "" + +#, python-format +msgid "Add %s" +msgstr "%s өстәргә" + +#, python-format +msgid "Change %s" +msgstr "%s үзгәртергә" + +msgid "Database error" +msgstr "Бирелмәләр базасы хатасы" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "%(count)s %(name)s уңышлы рәвештә үзгәртелгән." + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "%(total_count)s сайланган" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "Барлык %(cnt)s объектан 0 сайланган" + +#, python-format +msgid "Change history: %s" +msgstr "Үзгәртү тарихы: %s" + +#. Translators: Model verbose name and instance representation, +#. suitable to be an item in a list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" + +msgid "Django site admin" +msgstr "Django сайты идарәсе" + +msgid "Django administration" +msgstr "Django идарәсе" + +msgid "Site administration" +msgstr "Сайт идарәсе" + +msgid "Log in" +msgstr "Керергә" + +#, python-format +msgid "%(app)s administration" +msgstr "" + +msgid "Page not found" +msgstr "Сәхифә табылмаган" + +msgid "We're sorry, but the requested page could not be found." +msgstr "Кызганычка каршы, соралган сәхифә табылмады." + +msgid "Home" +msgstr "Башбит" + +msgid "Server error" +msgstr "Сервер хатасы" + +msgid "Server error (500)" +msgstr "Сервер хатасы (500)" + +msgid "Server Error (500)" +msgstr "Сервер хатасы (500)" + +msgid "" +"There's been an error. It's been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" + +msgid "Run the selected action" +msgstr "Сайланган гамәлне башкарырга" + +msgid "Go" +msgstr "Башкарырга" + +msgid "Click here to select the objects across all pages" +msgstr "Барлык сәхифәләрдә булган объектларны сайлау өчен монда чирттерегез" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "Бөтен %(total_count)s %(module_name)s сайларга" + +msgid "Clear selection" +msgstr "Сайланганлыкны алырга" + +msgid "" +"First, enter a username and password. Then, you'll be able to edit more user " +"options." +msgstr "" +"Баштан логин һәм серсүзне кертегез. Аннан соң сез кулланучы турында күбрәк " +"мәгълүматне төзәтә алырсыз." + +msgid "Enter a username and password." +msgstr "Логин һәм серсүзне кертегез." + +msgid "Change password" +msgstr "Серсүзне үзгәртергә" + +msgid "Please correct the error below." +msgstr "Зинһар, биредәге хаталарны төзәтегез." + +msgid "Please correct the errors below." +msgstr "" + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "%(username)s кулланучы өчен яңа серсүзне кертегез." + +msgid "Welcome," +msgstr "Рәхим итегез," + +msgid "View site" +msgstr "" + +msgid "Documentation" +msgstr "Документация" + +msgid "Log out" +msgstr "Чыгарга" + +#, python-format +msgid "Add %(name)s" +msgstr "%(name)s өстәргә" + +msgid "History" +msgstr "Тарих" + +msgid "View on site" +msgstr "Сайтта карарга" + +msgid "Filter" +msgstr "Филтер" + +msgid "Remove from sorting" +msgstr "" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "" + +msgid "Toggle sorting" +msgstr "" + +msgid "Delete" +msgstr "Бетерергә" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" +"%(object_name)s '%(escaped_object)s' бетереүе аның белән бәйләнгән " +"объектларның бетерелүенә китерә ала, әмма сезнең хисап язмагызның киләсе " +"объект тибларын бетерү өчен хокуклары җитми:" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" +"%(object_name)s '%(escaped_object)s' бетерүе киләсе сакланган объектларның " +"бетерелүен таләп итә:" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" +"Сез инанып %(object_name)s \"%(escaped_object)s\" бетерергә телисезме? " +"Барлык киләсе бәйләнгән объектлар да бетерелер:" + +msgid "Objects" +msgstr "" + +msgid "Yes, I'm sure" +msgstr "Әйе, мин инандым" + +msgid "No, take me back" +msgstr "" + +msgid "Delete multiple objects" +msgstr "Берничә объектны бетерергә" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" +"Сайланган %(objects_name)s бетерүе аның белән бәйләнгән объектларның " +"бетерелүенә китерә ала, әмма сезнең хисап язмагызның киләсе объект тибларын " +"бетерү өчен хокуклары җитми:" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" +"%(objects_name)s бетерүе киләсе аның белән бәйләнгән сакланган объектларның " +"бетерелүен таләп итә:" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" +"Сез инанып %(objects_name)s бетерергә телисезме? Барлык киләсе объектлар һәм " +"алар белән бәйләнгән элементлар да бетерелер:" + +msgid "Change" +msgstr "Үзгәртергә" + +msgid "Delete?" +msgstr "Бетерергә?" + +#, python-format +msgid " By %(filter_title)s " +msgstr "%(filter_title)s буенча" + +msgid "Summary" +msgstr "" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "" + +msgid "Add" +msgstr "Өстәргә" + +msgid "You don't have permission to edit anything." +msgstr "Төзәтү өчен хокукларыгыз җитми." + +msgid "Recent actions" +msgstr "" + +msgid "My actions" +msgstr "" + +msgid "None available" +msgstr "Тарих юк" + +msgid "Unknown content" +msgstr "Билгесез тип" + +msgid "" +"Something's wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" +"Сезнең бирелмәләр базасы дөрес итем көйләнмәгән. Тиешле җәдвәлләр төзелгәнен " +"һәм тиешле кулланучының хокуклары җитәрлек булуын тикшерегез." + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" + +msgid "Forgotten your password or username?" +msgstr "" + +msgid "Date/time" +msgstr "Көн һәм вакыт" + +msgid "User" +msgstr "Кулланучы" + +msgid "Action" +msgstr "Гамәл" + +msgid "" +"This object doesn't have a change history. It probably wasn't added via this " +"admin site." +msgstr "" +"Әлеге объектның үзгәртү тарихы юк. Бу идарә итү сайты буенча өстәлмәгән " +"булуы ихтимал." + +msgid "Show all" +msgstr "Бөтенесен күрсәтергә" + +msgid "Save" +msgstr "Сакларга" + +msgid "Popup closing..." +msgstr "" + +#, python-format +msgid "Change selected %(model)s" +msgstr "" + +#, python-format +msgid "Add another %(model)s" +msgstr "" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "" + +msgid "Search" +msgstr "Эзләргә" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "%(counter)s нәтиҗә" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "барлыгы %(full_result_count)s" + +msgid "Save as new" +msgstr "Яңа объект итеп сакларга" + +msgid "Save and add another" +msgstr "Сакларга һәм бүтән объектны өстәргә" + +msgid "Save and continue editing" +msgstr "Сакларга һәм төзәтүне дәвам итәргә" + +msgid "Thanks for spending some quality time with the Web site today." +msgstr "Сайтыбызда үткәргән вакыт өчен рәхмәт." + +msgid "Log in again" +msgstr "Тагын керергә" + +msgid "Password change" +msgstr "Серсүзне үзгәртү" + +msgid "Your password was changed." +msgstr "Серсүзегез үзгәртелгән." + +msgid "" +"Please enter your old password, for security's sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" +"Хәвефсезлек сәбәпле, зинһар, үзегезнең иске серсүзне кертегез, аннан яңа " +"серсүзне ике тапкыр кертегез (дөрес язылышын тикшерү өчен)." + +msgid "Change my password" +msgstr "Серсүземне үзгәртергә" + +msgid "Password reset" +msgstr "Серсүзне торгызу" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "Серсүзегез үзгәртелгән. Сез хәзер керә аласыз." + +msgid "Password reset confirmation" +msgstr "Серсүзне торгызу раслау" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "Зинһар, тикшерү өчен яңа серсүзегезне ике тапкыр кертегез." + +msgid "New password:" +msgstr "Яңа серсуз:" + +msgid "Confirm password:" +msgstr "Серсүзне раслагыз:" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"Серсүзне торгызу өчен сылтама хаталы. Бәлки аның белән инде кулланганнар. " +"Зинһар, серсүзне тагын бер тапкыр торгызып карагыз." + +msgid "" +"We've emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" + +msgid "" +"If you don't receive an email, please make sure you've entered the address " +"you registered with, and check your spam folder." +msgstr "" + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" + +msgid "Please go to the following page and choose a new password:" +msgstr "Зинһар, бу сәхифәгә юнәлегез һәм яңа серсүзне кертегез:" + +msgid "Your username, in case you've forgotten:" +msgstr "Сезнең кулланучы исемегез (оныткан булсагыз):" + +msgid "Thanks for using our site!" +msgstr "Безнең сайтны куллану өчен рәхмәт!" + +#, python-format +msgid "The %(site_name)s team" +msgstr "%(site_name)s сайтының төркеме" + +msgid "" +"Forgotten your password? Enter your email address below, and we'll email " +"instructions for setting a new one." +msgstr "" + +msgid "Email address:" +msgstr "Эл. почта адресы:" + +msgid "Reset my password" +msgstr "Серсүземне торгызырга" + +msgid "All dates" +msgstr "Бөтен көннәр" + +#, python-format +msgid "Select %s" +msgstr "%s сайлагыз" + +#, python-format +msgid "Select %s to change" +msgstr "Үзгәртү өчен %s сайлагыз" + +msgid "Date:" +msgstr "Көн:" + +msgid "Time:" +msgstr "Вакыт:" + +msgid "Lookup" +msgstr "Эзләү" + +msgid "Currently:" +msgstr "" + +msgid "Change:" +msgstr "" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/tt/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/tt/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..16af5a0237f0815d2689f5dc2bd5d16e01743128 GIT binary patch literal 2607 zcmb7E-ES0C6dx5oSicbQ!T5E=G=MO(yA=v-#V8dNq0+#r;f3UO=kD&n?94iIx21^> z{fH?EYQShBO-#g(2Yiqc*c2$$7hm+nJ8j~lk^jL5-}HCx?6%t$Nt|}(H|O4a&iS3+ zIkSJPU-P+z>j~UX zhJ@#fL0?i=Z1sttBz>!|8iuhXLCUMiMawrEu?+a+e$Q7jvflJuY4v+<;8m*1dOHjQ zJcg|!vK9_W>u444#n2Tac-F!wf_Y5FaO9<9VS}n-NG{SP5s)Y;FATQf)uoZvfnbxO zns7lV7@<;C1Qm&L1M&jb8}i(S@Tu%c-;EtY%uSJ`dK3<#rV;YP@T3=1s2oP5s*>Ia zX|SOboFf677m<{Ajxv*U&$%--99l*#hNmGLEs|5=YH~Cpl|uu*6p*&$d!>_f_#ojV z`=`u(p8|c&wEH3{xQF)Z zLdgPk=kh&vZik)UN!>3M^4(i=-MJhN+DGJ&$1#`A?X+{d?fh=a_Y}70x8`tV4vARV z#YhCPFH{&6=q(WhUQCB12G6IL!3O55zA+syD2K1WC#W<;McPFvY6U6^B_i5fRjOXd zW`~D|9mVmyvOMLK!df=1s11J0IjdB5OQ!!o|GuT#^G+_)7Y0fO;51T4aY~+2*}5;h zpqG0e#Zv8gr?}tVwRDbim1Sh_3reAjQ7q7|K~F7`L=2S~@Eeiv?fqd?iwhLgjT!IB z_fq=0C)b<7x14_5dO8`!J(ir&bNHLqbNKGlpMYcx=5;;Gi~0&bE&W9@nv5@;Hw#Vb zvGi997n2W@v4!)=IO%K2xNgGX3ZLNbTK}ML;BT6eNhClFxSv5nyjl8FguDTBoH{aH z!MPbrpKBd8ygK&Vz86+fGugh?*Ys@iQ8J#4TKZCQS~qc?ZxFKd*9#ZHDw*IC(vr}a&bB4H7eG}nlp;@z| z5`C2w;c97q7W+2|!d}!ftRzBX2^82xUk2IJtRfa}BHE&(L;9SFd_!O3$eeE@@Po~GYLME3V?1SHTn$)*18qH-JF$9&<(AcKvXjg?PCbd{RW4tKvrYM`5%RE zBd(ikLUhy6%d9V_;vq>(xQY$P^k3?rq*l4Bv^m>~fJ#%{Q&lDiBRdJMbNq{GL|+s~ z&n=u!1?Ryt-GRtwAyoQlAlr}g->hmX#>pIpN@)c=VEU)Dj%5w(P|ghE8Lk{d%XLG# zDY#v4#aO9AM-5=ZgMjYxK(88`R87bS?zf%7&XF<#no75E2DA{-n<&z37|E8U!)(s* X_rzaOdrm3&#E{{RO@dTw{2c3FJ%44c literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/tt/LC_MESSAGES/djangojs.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/tt/LC_MESSAGES/djangojs.po new file mode 100644 index 0000000000..36e7c72eb0 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/tt/LC_MESSAGES/djangojs.po @@ -0,0 +1,208 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Azat Khasanshin , 2011 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-05-17 23:12+0200\n" +"PO-Revision-Date: 2017-09-19 16:41+0000\n" +"Last-Translator: Jannis Leidel \n" +"Language-Team: Tatar (http://www.transifex.com/django/django/language/tt/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: tt\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#, javascript-format +msgid "Available %s" +msgstr "Рөхсәт ителгән %s" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "" + +msgid "Filter" +msgstr "Фильтр" + +msgid "Choose all" +msgstr "Барысын сайларга" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "" + +msgid "Choose" +msgstr "" + +msgid "Remove" +msgstr "Бетерергә" + +#, javascript-format +msgid "Chosen %s" +msgstr "Сайланган %s" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" + +msgid "Remove all" +msgstr "" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "" + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "%(cnt)s арасыннан %(sel)s сайланган" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" +"Кайбер кырларда сакланмаган төзәтүләр кала. Сез гамәлне башкарсагыз, сезнең " +"сакланмаган үзгәртүләр югалачаклар." + +msgid "" +"You have selected an action, but you haven't saved your changes to " +"individual fields yet. Please click OK to save. You'll need to re-run the " +"action." +msgstr "" +"Сез гамәлне сайладыгыз, әмма кайбер кырлардагы төзәтүләрне сакламадыгыз. " +"Аларны саклау өчен OK төймәсенә басыгыз. Аннан соң гамәлне тагын бер тапкыр " +"башкарырга туры килер." + +msgid "" +"You have selected an action, and you haven't made any changes on individual " +"fields. You're probably looking for the Go button rather than the Save " +"button." +msgstr "" +"Сез гамәлне сайладыгыз һәм төзәтүләрне башкармадыгыз. Бәлки сез \"Сакларга\" " +"төймәсе урынына \"Башкарырга\" төймәсен кулланырга теләдегез." + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "" + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "" + +msgid "Now" +msgstr "Хәзер" + +msgid "Choose a Time" +msgstr "" + +msgid "Choose a time" +msgstr "Вакыт сайлагыз" + +msgid "Midnight" +msgstr "Төн уртасы" + +msgid "6 a.m." +msgstr "Иртәнге 6" + +msgid "Noon" +msgstr "Төш" + +msgid "6 p.m." +msgstr "" + +msgid "Cancel" +msgstr "Юкка чыгарырга" + +msgid "Today" +msgstr "Бүген" + +msgid "Choose a Date" +msgstr "" + +msgid "Yesterday" +msgstr "Кичә" + +msgid "Tomorrow" +msgstr "Иртәгә" + +msgid "January" +msgstr "" + +msgid "February" +msgstr "" + +msgid "March" +msgstr "" + +msgid "April" +msgstr "" + +msgid "May" +msgstr "" + +msgid "June" +msgstr "" + +msgid "July" +msgstr "" + +msgid "August" +msgstr "" + +msgid "September" +msgstr "" + +msgid "October" +msgstr "" + +msgid "November" +msgstr "" + +msgid "December" +msgstr "" + +msgctxt "one letter Sunday" +msgid "S" +msgstr "" + +msgctxt "one letter Monday" +msgid "M" +msgstr "" + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "" + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "" + +msgctxt "one letter Thursday" +msgid "T" +msgstr "" + +msgctxt "one letter Friday" +msgid "F" +msgstr "" + +msgctxt "one letter Saturday" +msgid "S" +msgstr "" + +msgid "Show" +msgstr "Күрсәтергә" + +msgid "Hide" +msgstr "Яшерергә" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/udm/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/udm/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..d51b11a4aa85e6eee5a332d21fe6d8f20315b151 GIT binary patch literal 622 zcmZ9IL2J}N6vs!c3PC*d>|u^dnN6ZdmswZD-4?1{TuN5-IBwo%rzSIDX5!YXy;Mb1 zP&^9t3wWqETff2t?|v3vvc-ZAe)-Q!{_o9u`Lnw6nP6N*t|3F@GLj=r93YpF*Qfdc zwfX)9xqy5{KAj`v8|o_3Jx|CL)Q6~7QJUO7k4dh01^oAqNL! zqMj?gP~<6CGB$b_rjBi;>@gTCwc<40MYj%ipwz~(kUkHk>{X zN=Zw%L8g$?J2(xd_wqLFNHx=Uu|{Q;$bcmv3Qi|!Q5i?C&z&oI7%mozj%ymq8SHhY zx(LhVnl>!M<#u6y+99mcBD@idwniIge<1Ee!9Xhq3MYG6;))LTTv+Bpsve!rg|XoJ zlVp>1&wR~=GcasJO?4_&#%cGNbpJ->6mJT~d1XY-Hnk}%r>bmI+mCy6dF)5MfcV3D r-~aO8>sR%g`n^B)C*=20yrlQ!{(csQ!x`k&}{NBl?s!yl8sF+;lc literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/udm/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/udm/LC_MESSAGES/django.po new file mode 100644 index 0000000000..df03f5f74b --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/udm/LC_MESSAGES/django.po @@ -0,0 +1,606 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-01-17 11:07+0100\n" +"PO-Revision-Date: 2015-01-18 08:31+0000\n" +"Last-Translator: Jannis Leidel \n" +"Language-Team: Udmurt (http://www.transifex.com/projects/p/django/language/" +"udm/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: udm\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "" + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "" + +msgid "Are you sure?" +msgstr "" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "" + +msgid "Administration" +msgstr "" + +msgid "All" +msgstr "" + +msgid "Yes" +msgstr "Бен" + +msgid "No" +msgstr "" + +msgid "Unknown" +msgstr "Тодымтэ" + +msgid "Any date" +msgstr "" + +msgid "Today" +msgstr "" + +msgid "Past 7 days" +msgstr "" + +msgid "This month" +msgstr "" + +msgid "This year" +msgstr "" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" + +msgid "Action:" +msgstr "" + +msgid "action time" +msgstr "" + +msgid "object id" +msgstr "" + +msgid "object repr" +msgstr "" + +msgid "action flag" +msgstr "" + +msgid "change message" +msgstr "" + +msgid "log entry" +msgstr "" + +msgid "log entries" +msgstr "" + +#, python-format +msgid "Added \"%(object)s\"." +msgstr "" + +#, python-format +msgid "Changed \"%(object)s\" - %(changes)s" +msgstr "" + +#, python-format +msgid "Deleted \"%(object)s.\"" +msgstr "" + +msgid "LogEntry Object" +msgstr "" + +msgid "None" +msgstr "" + +msgid "" +"Hold down \"Control\", or \"Command\" on a Mac, to select more than one." +msgstr "" + +#, python-format +msgid "Changed %s." +msgstr "" + +msgid "and" +msgstr "" + +#, python-format +msgid "Added %(name)s \"%(object)s\"." +msgstr "" + +#, python-format +msgid "Changed %(list)s for %(name)s \"%(object)s\"." +msgstr "" + +#, python-format +msgid "Deleted %(name)s \"%(object)s\"." +msgstr "" + +msgid "No fields changed." +msgstr "" + +#, python-format +msgid "" +"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below." +msgstr "" + +#, python-format +msgid "" +"The %(name)s \"%(obj)s\" was added successfully. You may add another " +"%(name)s below." +msgstr "" + +#, python-format +msgid "The %(name)s \"%(obj)s\" was added successfully." +msgstr "" + +#, python-format +msgid "" +"The %(name)s \"%(obj)s\" was changed successfully. You may edit it again " +"below." +msgstr "" + +#, python-format +msgid "" +"The %(name)s \"%(obj)s\" was changed successfully. You may add another " +"%(name)s below." +msgstr "" + +#, python-format +msgid "The %(name)s \"%(obj)s\" was changed successfully." +msgstr "" + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" + +msgid "No action selected." +msgstr "" + +#, python-format +msgid "The %(name)s \"%(obj)s\" was deleted successfully." +msgstr "" + +#, python-format +msgid "%(name)s object with primary key %(key)r does not exist." +msgstr "" + +#, python-format +msgid "Add %s" +msgstr "" + +#, python-format +msgid "Change %s" +msgstr "" + +msgid "Database error" +msgstr "" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "" + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "" + +#, python-format +msgid "Change history: %s" +msgstr "" + +#. Translators: Model verbose name and instance representation, +#. suitable to be an item in a list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" + +msgid "Django site admin" +msgstr "" + +msgid "Django administration" +msgstr "" + +msgid "Site administration" +msgstr "" + +msgid "Log in" +msgstr "" + +#, python-format +msgid "%(app)s administration" +msgstr "" + +msgid "Page not found" +msgstr "" + +msgid "We're sorry, but the requested page could not be found." +msgstr "" + +msgid "Home" +msgstr "" + +msgid "Server error" +msgstr "" + +msgid "Server error (500)" +msgstr "" + +msgid "Server Error (500)" +msgstr "" + +msgid "" +"There's been an error. It's been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" + +msgid "Run the selected action" +msgstr "" + +msgid "Go" +msgstr "" + +msgid "Click here to select the objects across all pages" +msgstr "" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "" + +msgid "Clear selection" +msgstr "" + +msgid "" +"First, enter a username and password. Then, you'll be able to edit more user " +"options." +msgstr "" + +msgid "Enter a username and password." +msgstr "" + +msgid "Change password" +msgstr "" + +msgid "Please correct the error below." +msgstr "" + +msgid "Please correct the errors below." +msgstr "" + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "" + +msgid "Welcome," +msgstr "" + +msgid "View site" +msgstr "" + +msgid "Documentation" +msgstr "" + +msgid "Log out" +msgstr "" + +msgid "Add" +msgstr "" + +msgid "History" +msgstr "" + +msgid "View on site" +msgstr "" + +#, python-format +msgid "Add %(name)s" +msgstr "" + +msgid "Filter" +msgstr "" + +msgid "Remove from sorting" +msgstr "" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "" + +msgid "Toggle sorting" +msgstr "" + +msgid "Delete" +msgstr "Ӵушоно" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" + +msgid "Objects" +msgstr "" + +msgid "Yes, I'm sure" +msgstr "" + +msgid "No, take me back" +msgstr "" + +msgid "Delete multiple objects" +msgstr "" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" + +msgid "Change" +msgstr "Тупатъяно" + +msgid "Remove" +msgstr "" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "" + +msgid "Delete?" +msgstr "" + +#, python-format +msgid " By %(filter_title)s " +msgstr "" + +msgid "Summary" +msgstr "" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "" + +msgid "You don't have permission to edit anything." +msgstr "" + +msgid "Recent Actions" +msgstr "" + +msgid "My Actions" +msgstr "" + +msgid "None available" +msgstr "" + +msgid "Unknown content" +msgstr "" + +msgid "" +"Something's wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" + +msgid "Forgotten your password or username?" +msgstr "" + +msgid "Date/time" +msgstr "" + +msgid "User" +msgstr "" + +msgid "Action" +msgstr "" + +msgid "" +"This object doesn't have a change history. It probably wasn't added via this " +"admin site." +msgstr "" + +msgid "Show all" +msgstr "" + +msgid "Save" +msgstr "" + +#, python-format +msgid "Change selected %(model)s" +msgstr "" + +#, python-format +msgid "Add another %(model)s" +msgstr "" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "" + +msgid "Search" +msgstr "" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "" + +msgid "Save as new" +msgstr "" + +msgid "Save and add another" +msgstr "" + +msgid "Save and continue editing" +msgstr "" + +msgid "Thanks for spending some quality time with the Web site today." +msgstr "" + +msgid "Log in again" +msgstr "" + +msgid "Password change" +msgstr "" + +msgid "Your password was changed." +msgstr "" + +msgid "" +"Please enter your old password, for security's sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" + +msgid "Change my password" +msgstr "" + +msgid "Password reset" +msgstr "" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "" + +msgid "Password reset confirmation" +msgstr "" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" + +msgid "New password:" +msgstr "" + +msgid "Confirm password:" +msgstr "" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" + +msgid "" +"We've emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" + +msgid "" +"If you don't receive an email, please make sure you've entered the address " +"you registered with, and check your spam folder." +msgstr "" + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" + +msgid "Please go to the following page and choose a new password:" +msgstr "" + +msgid "Your username, in case you've forgotten:" +msgstr "" + +msgid "Thanks for using our site!" +msgstr "" + +#, python-format +msgid "The %(site_name)s team" +msgstr "" + +msgid "" +"Forgotten your password? Enter your email address below, and we'll email " +"instructions for setting a new one." +msgstr "" + +msgid "Email address:" +msgstr "" + +msgid "Reset my password" +msgstr "" + +msgid "All dates" +msgstr "" + +msgid "(None)" +msgstr "" + +#, python-format +msgid "Select %s" +msgstr "" + +#, python-format +msgid "Select %s to change" +msgstr "" + +msgid "Date:" +msgstr "" + +msgid "Time:" +msgstr "" + +msgid "Lookup" +msgstr "" + +msgid "Currently:" +msgstr "" + +msgid "Change:" +msgstr "" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/udm/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/udm/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..af7ab53bb6735a670114ecf738e973e4f5831251 GIT binary patch literal 462 zcmYLF!A=4(5XI3XRZ0i%-OX{0*q65Q_gE^1WDJ@WHy?s z(z*aspXn5ys?0-d1&L;_F$|oN0k!ZfgA(ML@is6HyhAt_tkYziF%-gFedyZrpt}Xm zfVHtj@S7$>L=)))#7-KY%V3=#FVYz8$wcW?<>VgIVELHu%9b`u`+z+rt7N7iRZRJY5?j!6zow@p-ET+pKL=W+1-*=>\n" +"Language-Team: Udmurt (http://www.transifex.com/projects/p/django/language/" +"udm/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: udm\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#, javascript-format +msgid "Available %s" +msgstr "" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "" + +msgid "Filter" +msgstr "" + +msgid "Choose all" +msgstr "" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "" + +msgid "Choose" +msgstr "" + +msgid "Remove" +msgstr "" + +#, javascript-format +msgid "Chosen %s" +msgstr "" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" + +msgid "Remove all" +msgstr "" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "" + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" + +msgid "" +"You have selected an action, but you haven't saved your changes to " +"individual fields yet. Please click OK to save. You'll need to re-run the " +"action." +msgstr "" + +msgid "" +"You have selected an action, and you haven't made any changes on individual " +"fields. You're probably looking for the Go button rather than the Save " +"button." +msgstr "" + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "" + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "" + +msgid "Now" +msgstr "" + +msgid "Clock" +msgstr "" + +msgid "Choose a time" +msgstr "" + +msgid "Midnight" +msgstr "" + +msgid "6 a.m." +msgstr "" + +msgid "Noon" +msgstr "" + +msgid "Cancel" +msgstr "" + +msgid "Today" +msgstr "" + +msgid "Calendar" +msgstr "" + +msgid "Yesterday" +msgstr "" + +msgid "Tomorrow" +msgstr "" + +msgid "" +"January February March April May June July August September October November " +"December" +msgstr "" + +msgid "S M T W T F S" +msgstr "" + +msgid "Show" +msgstr "" + +msgid "Hide" +msgstr "" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ug/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ug/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..c517da656307a2f566ccc3df4b80ef2e6af7c54d GIT binary patch literal 22887 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ug/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ug/LC_MESSAGES/django.po new file mode 100644 index 0000000000..5af1e41f54 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ug/LC_MESSAGES/django.po @@ -0,0 +1,780 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# abdl erkin <84247764@qq.com>, 2018 +# ABDULLA , 2014 +# Abduqadir Abliz , 2023 +# Azat, 2023 +# Murat Orhun , 2023 +# Natalia (Django Fellow), 2023 +# Serpidin Uyghur, 2023 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-09-18 11:41-0300\n" +"PO-Revision-Date: 2023-12-04 07:05+0000\n" +"Last-Translator: Natalia (Django Fellow), 2023\n" +"Language-Team: Uyghur (http://app.transifex.com/django/django/language/ug/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ug\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "تاللانغان%(verbose_name_plural)sنى ئۆچۈر" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "%(count)d%(items)sمۇۋەپپەقىيەتلىك ئۆچۈرۈلدى" + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "%(name)sنى ئۆچۈرەلمەيدۇ" + +msgid "Are you sure?" +msgstr "جەزىملەشتۈرەمسىز؟" + +msgid "Administration" +msgstr "باشقۇرۇش" + +msgid "All" +msgstr "ھەممىسى" + +msgid "Yes" +msgstr "ھەئە" + +msgid "No" +msgstr "ياق" + +msgid "Unknown" +msgstr "نامەلۇم" + +msgid "Any date" +msgstr "خالىغان چېسلا" + +msgid "Today" +msgstr "بۈگۈن" + +msgid "Past 7 days" +msgstr "ئۆتكەن 7 كۈن" + +msgid "This month" +msgstr "بۇ ئاي" + +msgid "This year" +msgstr "بۇ يىل" + +msgid "No date" +msgstr "چېسلا يوق" + +msgid "Has date" +msgstr "ۋاقتى بار " + +msgid "Empty" +msgstr "بوش" + +msgid "Not empty" +msgstr "بوش ئەمەس" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" +"Please enter the correct %(username)s and password for a staff account. " +"دىققەت ھەر ئىككى بۆلەك چوڭ كىچىك يېزىلىشنى پەرقلەندۈرۈشى مۇمكىن." + +msgid "Action:" +msgstr "ھەرىكەت:" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "باشقا %(verbose_name)sنى قوشۇش" + +msgid "Remove" +msgstr "چىقىرىۋەت" + +msgid "Addition" +msgstr "قوشۇش" + +msgid "Change" +msgstr "ئۆزگەرتىش" + +msgid "Deletion" +msgstr "ئۆچۈر" + +msgid "action time" +msgstr "مەشغۇلات ۋاقتى" + +msgid "user" +msgstr "ئىشلەتكۈچى" + +msgid "content type" +msgstr "مەزمۇن تىپى" + +msgid "object id" +msgstr "ئوبىيكىت كىملىكى" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/library/functions.html#repr) +msgid "object repr" +msgstr "ئوبيېكت ۋەكىلى" + +msgid "action flag" +msgstr "ھەرىكەت بايرىقى" + +msgid "change message" +msgstr "ئۇچۇرنى ئۆزگەرتىش" + +msgid "log entry" +msgstr "خاتىرە تۈرى" + +msgid "log entries" +msgstr "خاتىرە تۈرلىرى" + +#, python-format +msgid "Added “%(object)s”." +msgstr "%(object)sقوشۇلدى" + +#, python-format +msgid "Changed “%(object)s” — %(changes)s" +msgstr "%(object)s%(changes)s گە ئۆزگەرتىلدى" + +#, python-format +msgid "Deleted “%(object)s.”" +msgstr "%(object)sئۆچۈرۈلدى" + +msgid "LogEntry Object" +msgstr "خاتىرە تۈرى ئوبيېكتى" + +#, python-brace-format +msgid "Added {name} “{object}”." +msgstr "{name} “{object}” قا قوشۇلدى" + +msgid "Added." +msgstr "قوشۇلدى." + +msgid "and" +msgstr "ۋە" + +#, python-brace-format +msgid "Changed {fields} for {name} “{object}”." +msgstr "{name} “{object}” نىڭ {fields} ئۆزگەرتىلدى" + +#, python-brace-format +msgid "Changed {fields}." +msgstr "ئۆزگەرگەن {fields}." + +#, python-brace-format +msgid "Deleted {name} “{object}”." +msgstr "ئۆچۈرۈلگەن {name} “{object}”" + +msgid "No fields changed." +msgstr "ھېچقانداق مەيدان ئۆزگەرمىدى" + +msgid "None" +msgstr "يوق" + +msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." +msgstr "Mac دىكى «كونترول» ياكى «Ctrl» نى بېسىپ ، بىردىن كۆپنى تاللاڭ." + +msgid "Select this object for an action - {}" +msgstr "مەشغۇلات ئۈچۈن ئوبيېكت تاللىنىدۇ-{}" + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully." +msgstr "{name} “{obj}” مۇۋەپپەقىيەتلىك قوشۇلدى." + +msgid "You may edit it again below." +msgstr "تۆۋەندە قايتا تەھرىرلىسىڭىز بولىدۇ." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was added successfully. You may add another {name} below." +msgstr "" +"{name} “{obj}” مۇۋەپپەقىيەتلىك قوشۇلدى. تۆۋەندە باشقا {name} قوشسىڭىز بولىدۇ." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may edit it again below." +msgstr "" +"{name} “{obj}” مۇۋەپپەقىيەتلىك ئۆزگەرتىلدى. تۆۋەندە ئۇنى قايتا تەھرىرلىسىڭىز " +"بولىدۇ." + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully. You may edit it again below." +msgstr "" +"{name} “{obj}” مۇۋەپپەقىيەتلىك قوشۇلدى. تۆۋەندە ئۇنى قايتا تەھرىرلىسىڭىز " +"بولىدۇ." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may add another {name} " +"below." +msgstr "" +"{name} “{obj}” مۇۋەپپەقىيەتلىك ئۆزگەرتىلدى. تۆۋەندە باشقا {name} قوشسىڭىز " +"بولىدۇ." + +#, python-brace-format +msgid "The {name} “{obj}” was changed successfully." +msgstr "{name} “{obj}” مۇۋەپپەقىيەتلىك ئۆزگەرتىلدى." + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" +"ھەرىكەت ئىجرا قىلىش ئۈچۈن تۈرلەر تاللىنىشى كېرەك. ھېچقانداق تۈر " +"ئۆزگەرتىلمىدى." + +msgid "No action selected." +msgstr "ھېچقانداق ھەرىكەت تاللىنمىدى." + +#, python-format +msgid "The %(name)s “%(obj)s” was deleted successfully." +msgstr "%(name)s\"%(obj)s\" مۇۋەپپەقىيەتلىك ئۆچۈرۈلدى." + +#, python-format +msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" +msgstr "ID سى \"%(key)s\" بولغان %(name)s مەۋجۇت ئەمەس. بەلكىم ئۇ ئۆچۈرۈلگەن؟" + +#, python-format +msgid "Add %s" +msgstr "%s نى قوش" + +#, python-format +msgid "Change %s" +msgstr "%sنى ئۆزگەرت" + +#, python-format +msgid "View %s" +msgstr "%sكۆرۈش" + +msgid "Database error" +msgstr "ساندان خاتالىقى" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "%(count)sنى %(name)sگە ئۆزگەرتىش مۇۋەپپىقىيەتلىك بولدى." +msgstr[1] "%(count)sنى%(name)sگە ئۆزگەرتىش مۇۋەپپىقىيەتلىك بولدى" + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "ھەممە%(total_count)sتاللاندى " +msgstr[1] "ھەممە%(total_count)sتاللاندى" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "%(cnt)s تۈردىن 0 نى تاللىدىڭىز." + +#, python-format +msgid "Change history: %s" +msgstr "تارىخنى ئۆزگەرتىش: %s" + +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "%(class_name)s%(instance)s" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" +"%(class_name)s%(instance)s نى ئۆچۈرۈش قوغدالغان تۆۋەندىكى ئۇچۇرلارنى " +"ئۆچۈرۈشنى تەلەپ قىلىدۇ: %(related_objects)s" + +msgid "Django site admin" +msgstr "جانگو تور بېكەت باشقۇرغۇچى" + +msgid "Django administration" +msgstr "جانگو باشقۇرۇش" + +msgid "Site administration" +msgstr "تور بېكەت باشقۇرۇش" + +msgid "Log in" +msgstr "كىرىش" + +#, python-format +msgid "%(app)s administration" +msgstr "%(app)s باشقۇرۇش" + +msgid "Page not found" +msgstr "بەت تېپىلمىدى" + +msgid "We’re sorry, but the requested page could not be found." +msgstr "كەچۈرۈڭ، لېكىن تەلەب قىلىنغان بەت تېپىلمىدى." + +msgid "Home" +msgstr "باش بەت" + +msgid "Server error" +msgstr "مۇلازىمېتىر خاتالىقى" + +msgid "Server error (500)" +msgstr "مۇلازىمېتىر خاتالىقى (500)" + +msgid "Server Error (500)" +msgstr "مۇلازىمېتىر خاتالىقى (500)" + +msgid "" +"There’s been an error. It’s been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" +"خاتالىق كۆرۈلدى. بۇ ئۇچۇر تور بېكەت باشقۇرغۇچىلارغا ئېلخەت ئارقىلىق " +"ئۇقتۇرۇلدى ۋە تېزدىن تۈزۈتۈلىدۇ. سەبرىڭىزگە رەھمەت." + +msgid "Run the selected action" +msgstr "تاللانغان مەشغۇلاتنى ئىجرا قىل" + +msgid "Go" +msgstr "يۆتكەل" + +msgid "Click here to select the objects across all pages" +msgstr "بارلىق بەتلەردىكى ئوبىيكتلەرنى تاللاش ئۈچۈن بۇ يەرنى چېكىڭ." + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "بارىلىق %(total_count)s%(module_name)s نى تاللا" + +msgid "Clear selection" +msgstr "تاللىغاننى تازىلا" + +msgid "Breadcrumbs" +msgstr "يول كۆرسەتكۈچى" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "%(name)s پروگراممىسىدىكى مودېللار" + +msgid "Add" +msgstr "قوش" + +msgid "View" +msgstr "كۆرۈنۈش" + +msgid "You don’t have permission to view or edit anything." +msgstr "سىزنىڭ كۆرۈش ياكى تەھرىرلەش ھوقۇقىڭىز يوق." + +msgid "" +"First, enter a username and password. Then, you’ll be able to edit more user " +"options." +msgstr "" +"ئالدى بىلەن، ئىشلەتكۈچى ئاتى ۋە ئىم كىرگۈزۈلىدۇ. ئاندىن، تېخىمۇ كۆپ " +"ئىشلەتكۈچى تاللانمىلىرىنى تەھرىرلىيەلەيسىز." + +msgid "Enter a username and password." +msgstr "ئىشلەتكۈچى ئاتى ۋە پارول كىرگۈزۈڭ." + +msgid "Change password" +msgstr "پارولنى ئۆزگەرتىش" + +msgid "Please correct the error below." +msgid_plural "Please correct the errors below." +msgstr[0] "تۆۋەندىكى خاتالىقلارنى توغرىلاڭ." +msgstr[1] "تۆۋەندىكى خاتالىقلارنى توغرىلاڭ." + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "ئىشلەتكۈچى %(username)s ئۈچۈن يېڭى پارول كىرگۈزۈڭ." + +msgid "Skip to main content" +msgstr "ئاساسلىق مەزمۇنغا ئاتلا" + +msgid "Welcome," +msgstr "مەرھابا،" + +msgid "View site" +msgstr "بېكەتنى كۆرۈش " + +msgid "Documentation" +msgstr "قوللانمىلار" + +msgid "Log out" +msgstr "چىكىنىش" + +#, python-format +msgid "Add %(name)s" +msgstr "%(name)sنى قوشۇش" + +msgid "History" +msgstr "تارىخ" + +msgid "View on site" +msgstr "بېكەتتە كۆرۈش " + +msgid "Filter" +msgstr "سۈزگۈچ" + +msgid "Hide counts" +msgstr "ساناقنى يوشۇر" + +msgid "Show counts" +msgstr "ساناقنى كۆرسەت" + +msgid "Clear all filters" +msgstr "ھەممە سۈزگۈچلەرنى تازىلا" + +msgid "Remove from sorting" +msgstr "تەرتىپلەشتىن چىقىرىۋەت" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "تەرتىپلەش دەرىجىسى: %(priority_number)s" + +msgid "Toggle sorting" +msgstr "تەرتىپلەشنى ئالماشتۇرۇش" + +msgid "Toggle theme (current theme: auto)" +msgstr "تېمىنى ئالماشتۇرۇش (ھازىرقى تېما: ئاپتوماتىك)" + +msgid "Toggle theme (current theme: light)" +msgstr "تېمىنى ئالماشتۇرۇش (ھازىرقى تېما: يورۇق)" + +msgid "Toggle theme (current theme: dark)" +msgstr "تېمىنى ئالماشتۇرۇش (ھازىرقى تېما: قارا)" + +msgid "Delete" +msgstr "ئۆچۈر" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" +"%(object_name)s%(escaped_object)s نى ئۆچۈرۈش، ئۇنىڭغا باغلىق نەرسىلەرنى " +"ئۆچۈرۈشكە زۆرۈرلىنىدۇ ، لېكىن سىزنىڭ ھېساباتىڭىزدا تۆۋەندىكى تۈرلەرنى " +"ئۆچۈرۈش ھوقۇقى يوق:" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" +"%(object_name)s 's '%(escaped_object)s' نى ئۆچۈرۈش، تۆۋەندىكى قوغداق " +"قوغدالغان ئۇچۇرلارنى ئۆچۈرۈشنى تەلەپ قىلىدۇ:" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" +"%(object_name)s %(escaped_object)s نى راستلا ئۆچۈرۈشنى خالامسىز؟ تۆۋەندىكى " +"بارلىق باغلىق تۈرلەر ئۆچۈرۈلىدۇ:" + +msgid "Objects" +msgstr "ئوبىيكتلار" + +msgid "Yes, I’m sure" +msgstr "ھەئە، شۇنداق" + +msgid "No, take me back" +msgstr "ياق، كەينىگە ياندۇر" + +msgid "Delete multiple objects" +msgstr "كۆپ ئوبىيكتنى ئ‍ۆچۈرۈش" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" +"تاللانغان %(objects_name)s نى ئۆچۈرۈش، ئۇنىڭغا باغلىق نەرسىلەرنى ئۆچۈرۈشكە " +"ئۆتۈرۈلۈدۇ، لېكىن سىزنىڭ ھېساباتىڭىزدا تۆۋەندىكى تۈرلەرنى ئۆچۈرۈش ھوقۇقى يوق:" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" +"تاللانغان %(objects_name)s نى ئۆچۈرۈش، تۆۋەندىكى قوغداق قوغدالغان ئۇچۇرلارنى " +"ئۆچۈرۈشنى تەلەپ قىلىدۇ:" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" +"تاللانغان %(objects_name)s نى راستلا ئۆچۈرۈشنى خالامسىز؟ تۆۋەندىكى بارلىق " +"نەرسىلەر ۋە ئۇلارغا باغلىق تۈرلەر ئۆچۈرۈلىدۇ:" + +msgid "Delete?" +msgstr "ئۆچۈرۈۋېتەمسىز؟" + +#, python-format +msgid " By %(filter_title)s " +msgstr "%(filter_title)s بويىچە" + +msgid "Summary" +msgstr "ئۈزۈندە" + +msgid "Recent actions" +msgstr "يېقىنقى مەشغۇلاتلار" + +msgid "My actions" +msgstr "مەشغۇلاتلىرىم" + +msgid "None available" +msgstr "ھېچنېمە يوق" + +msgid "Added:" +msgstr "قوشۇلدى:" + +msgid "Changed:" +msgstr "ئۆزگەردى:" + +msgid "Deleted:" +msgstr "ئۆچۈرۈلدى:" + +msgid "Unknown content" +msgstr "بەلگىلەنمىگەن مەزمۇن" + +msgid "" +"Something’s wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" +"سىزنىڭ مەلۇمات سانداننىڭ ئورنىتىشىدا بىرنەمە مەسىلە بار. توغرا ساندان " +"جەدۋىلى قۇرۇلغانلىقىنى جەزملەڭ، ۋە سانداننىڭ توغرا ئىشلەتكۈچى تەرىپىدىن " +"ئوقۇلىدىغانلىقىنى جەزملەڭ." + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" +"سىز %(username)s دېگەن ئىشلەتكۈچى ھېساباتى بىلەن كىرگەنسىز، لېكىن بۇ بەتكە " +"كىرىش ھوقۇقىڭىز يوق. باشقا ھېساباتقا كىرىشنى خالامسىز؟" + +msgid "Forgotten your password or username?" +msgstr "پارول ياكى ئىشلەتكۈچى ئاتىڭىزنى ئۇنتۇپ قالدىڭىزمۇ؟" + +msgid "Toggle navigation" +msgstr "يۆل باشلىغۇچنى ئالماشتۇرۇش" + +msgid "Sidebar" +msgstr "يان بالداق" + +msgid "Start typing to filter…" +msgstr " فىلتىرلاش ئۈچۈن يېزىشنى باشلاڭ…" + +msgid "Filter navigation items" +msgstr "يۆل باشقۇرۇش تۈرلەرىنى سۈزۈش" + +msgid "Date/time" +msgstr "چېسلا/ۋاقىت" + +msgid "User" +msgstr "ئىشلەتكۈچى" + +msgid "Action" +msgstr "مەشغۇلات" + +msgid "entry" +msgid_plural "entries" +msgstr[0] "تۈرى" +msgstr[1] "تۈرى" + +msgid "" +"This object doesn’t have a change history. It probably wasn’t added via this " +"admin site." +msgstr "" +"بۇ ئوبىيكتنىڭ ئۆزگەرتىش تارىخى يوق. بۇنى مۇمكىن بۇ باشقۇرۇش بېتى ئارقىلىق " +"قوشمىغان بولۇشى مۇمكىن." + +msgid "Show all" +msgstr "ھەممىنى كۆرسەت" + +msgid "Save" +msgstr "ساقلا" + +msgid "Popup closing…" +msgstr "قاڭقىشنى تاقاۋاتىدۇ…" + +msgid "Search" +msgstr "ئىزدە" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "%(counter)s نەتىجە" +msgstr[1] "%(counter)s نەتىجەسى" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "%(full_result_count)s جەمى" + +msgid "Save as new" +msgstr "يېڭىدىن ساقلاش" + +msgid "Save and add another" +msgstr "ساقلاپ يېڭىسىنى قوشۇش" + +msgid "Save and continue editing" +msgstr "تەھرىرلەشنى داۋاملاشتۇرۇپ ساقلاش" + +msgid "Save and view" +msgstr "ساقلاش ۋە كۆرۈش" + +msgid "Close" +msgstr "ياپ" + +#, python-format +msgid "Change selected %(model)s" +msgstr "تاللانغان%(model)sنى ئۆزگەرت" + +#, python-format +msgid "Add another %(model)s" +msgstr "باشقا %(model)s قوش" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "تاللىغان %(model)s نى ئۆچۈر" + +#, python-format +msgid "View selected %(model)s" +msgstr "تاللىغان %(model)s نى كۆرسەت" + +msgid "Thanks for spending some quality time with the web site today." +msgstr "بۈگۈن تور بېكەتتە ساپالىق ۋاقىت سەرىب قىلغىنىڭىزغا رەھمەت." + +msgid "Log in again" +msgstr "قايتا كىرىڭ" + +msgid "Password change" +msgstr "پارولنى ئۆزگەرتىش" + +msgid "Your password was changed." +msgstr "پارولىڭىز ئۆزگەرتىلگەن" + +msgid "" +"Please enter your old password, for security’s sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" +"بىخەتەرلىك ئۈچۈن ئەسلى پارولىڭىزنى كىرگۈزۈڭ، ئاندىن يېڭى پارولىڭىزنى ئىككى " +"قېتىم كىرگۈزۈڭ، بۇنىڭ ئارقىلىق سىز توغرا يېزىب بولغىنىڭىزنى دەلىللەيمىز." + +msgid "Change my password" +msgstr "پارولىمنى ئۆزگەرتىىمەن" + +msgid "Password reset" +msgstr "ئىمنى ئەسلىگە قايتۇرۇش" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "پارول ئۆزگەرتىلدى. داۋاملاشتۇرۇپ تىزىمغا كىرسىڭىز بولىدۇ." + +msgid "Password reset confirmation" +msgstr "پارول ئەسلىگە قايتۇرۇشنى جەزملەش" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" +"يېڭى پارولىڭىزنى ئىككى قېتىم كىرگۈزۈڭ، بۇنىڭ ئارقىلىق سىز توغرا كىرگۈزۈب " +"بولغىنىڭىزنى دەلىللەيمىز." + +msgid "New password:" +msgstr "يېڭى پارول:" + +msgid "Confirm password:" +msgstr "پارولنى جەزملە:" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"پارولنى قايتا بەلگىلەش ئۈچۈن بېرىلگەن ئۇلانما ئىناۋەتسىز بولدى، بۇ ئۇلانما " +"ئاللىبۇرۇن ئىشلىتىلگەن بولۇشى مۇمكىن. يېڭى پارولنى قايتا بەلگىلەش ئۈچۈن " +"ئىلتىماس قىلىڭ." + +msgid "" +"We’ve emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" +"سىز كىرگۈزگەن ئېلخەت ئادرېسىغا ھېسابات بولسا، پارول قويۇش ئۈچۈن سىزگە ئېلخەت " +"ئارقىلىق چۈشەندۈرۈش يوللىدۇق. سىز قىسقا ۋاقىت ئىچىدە ئۇخەتنى تاپشۇرۇب " +"ئېلىشىڭىز كېرەك." + +msgid "" +"If you don’t receive an email, please make sure you’ve entered the address " +"you registered with, and check your spam folder." +msgstr "" +"ئېلخەت تاپشۇرۇپ ئالمىغان بولسىڭىز، تىزىملىتىپ بولغان ئېلخەت ئادرېسىڭىزنى " +"توغرا كىرگۈزگەنلىكىڭىزنى جەزملەڭ ۋە ئېلخەت ئادرېسىڭىزنىڭ ئەخلەت ساندۇغىنى " +"تەكشۈرۈڭ." + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" +"سىز بۇ ئېلخەتنى تاپشۇرۇب ئالدىڭىز، چۈنكى ، %(site_name)s دىكى ئىشلەتكۈچى " +"ھېساباتىڭىزنىڭ پارولىنى قايتا بەلگىلەشنى ئىلتىماس قىلدى." + +msgid "Please go to the following page and choose a new password:" +msgstr "كىيىنكى بەتكە كىرىڭ ۋە بىر شىفرە تاللاڭ:" + +msgid "Your username, in case you’ve forgotten:" +msgstr "ئىشلەتكۈچى ئىسمىڭىز، ئۇنتۇپ قالغان ئەھۋال ئاستىدا:" + +msgid "Thanks for using our site!" +msgstr "تور بېكىتىمىزنى ئىشلەتكىنىڭىز ئۈچۈن رەھمەت!" + +#, python-format +msgid "The %(site_name)s team" +msgstr "%(site_name)s قوشۇنى" + +msgid "" +"Forgotten your password? Enter your email address below, and we’ll email " +"instructions for setting a new one." +msgstr "" +"شىفرىڭىزنى ئۇنتۇپ قالدىڭىزمۇ؟ تۆۋەنگە ئېلىكتىرونلۇق ئېلىخەت ئادرىسىڭىزنى " +"كىرگۈزۈڭ، يېڭىسىنى تەڭشەش ئۈچۈن كۆرسەتمىلىك ئېلىخەت ئەۋەتىمىز ." + +msgid "Email address:" +msgstr "ئېلخەت ئادرېسى:" + +msgid "Reset my password" +msgstr "پارولىمنى قايتا بەلگىلەش" + +msgid "Select all objects on this page for an action" +msgstr "مەشغۇلات ئۈچۈن بۇ بەتتىكى ھەممە ئوبيېكت تاللىنىدۇ" + +msgid "All dates" +msgstr "بارلىق چىسلا" + +#, python-format +msgid "Select %s" +msgstr "%sنى تاللاش" + +#, python-format +msgid "Select %s to change" +msgstr "تاللانغان %sنى ئۆزگەرتش" + +#, python-format +msgid "Select %s to view" +msgstr "تاللانغان %sنى كۆرۈش" + +msgid "Date:" +msgstr "چېسلا:" + +msgid "Time:" +msgstr "ۋاقتى:" + +msgid "Lookup" +msgstr "ئىزدە" + +msgid "Currently:" +msgstr "نۆۋەتتە:" + +msgid "Change:" +msgstr "ئۆزگەرتىش:" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ug/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ug/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..a0662270a279f66015a95bf418d4ef7104eb0cb4 GIT binary patch literal 7306 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ug/LC_MESSAGES/djangojs.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ug/LC_MESSAGES/djangojs.po new file mode 100644 index 0000000000..90c0a8801d --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ug/LC_MESSAGES/djangojs.po @@ -0,0 +1,323 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Abduqadir Abliz , 2023 +# Azat, 2023 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-09-18 15:04-0300\n" +"PO-Revision-Date: 2023-12-04 07:59+0000\n" +"Last-Translator: Abduqadir Abliz , 2023\n" +"Language-Team: Uyghur (http://app.transifex.com/django/django/language/ug/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ug\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, javascript-format +msgid "Available %s" +msgstr "ئىشلەتكىلى بولىدىغانى %s" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" +"بۇ، تاللاشقا بولىدىغان %s تىزىملىكى. تۆۋەندىكى تىزىملىكلەر ئارىسىدىن " +"بەزىلىرنى تاللاڭ ئاندىن «تاللاش» نى چېكىڭ." + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "بۇ رامكىغا يېزىش ئارقىلىق قاتناشقىلى بولىدىغان %s تىزىملىكىنى سۈزۈڭ." + +msgid "Filter" +msgstr "سۈزگۈچ" + +msgid "Choose all" +msgstr "ھەممىنى تاللا" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "بېسىب بارلىق تاللانغان %sنىڭ ھەممىسىنى تاللاڭ" + +msgid "Choose" +msgstr "تاللا" + +msgid "Remove" +msgstr "چىقىرىۋەت" + +#, javascript-format +msgid "Chosen %s" +msgstr "تاللانغانلىرى %s" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" +"بۇ، تاللانغان %s تىزىملىكى. تۆۋەندىكى تىزىملىكلەر ئارىسىدىن بەزىلىرنى " +"تاللاڭ ئاندىن «چىقىرىش» نى چېكىڭ." + +#, javascript-format +msgid "Type into this box to filter down the list of selected %s." +msgstr "بۇ رامكىغا يېزىش ئارقىلىق تاللانغان %s سۈزۈڭ." + +msgid "Remove all" +msgstr "ھەممىنى چىقىرىۋەت" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "بېسىب بارلىق تاللانغان %sنىڭ ھەممىسىنى چىقىرىۋېتىڭ" + +#, javascript-format +msgid "%s selected option not visible" +msgid_plural "%s selected options not visible" +msgstr[0] "%s تاللانغانلىرى كۆرۈنمەيدۇ" +msgstr[1] "%s تاللانغانلىرى كۆرۈنمەيدۇ" + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "%(sel)s دىن %(cnt)s سى تاللاندى" +msgstr[1] "%(sel)s دىن %(cnt)s سى تاللاندى" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" +"سىزنىڭ تېخى ساقلانمىغان ئۆزگەرتىشلىرىڭىز بار. ئەگەر سىز مەشخۇلاتىڭىزنى " +"داۋاملاشتۇرسىڭىز، ساقلانمىغان ئۆزگەرتىشلىرىڭىز يوقاب كېتىشى مۇمكىن" + +msgid "" +"You have selected an action, but you haven’t saved your changes to " +"individual fields yet. Please click OK to save. You’ll need to re-run the " +"action." +msgstr "" +"سىز بىر مەشخۇلاتنى تاللىدىڭىز، ئەمما ئۆزگەرتىشلىرىڭىزنى ساقلىمىدىڭىز. ھەئە " +"نى بېسىب ساقلاڭ. ئاندىن مەشخۇلاتىڭىزنى قايتىدىن ئېلىب بېرىڭ." + +msgid "" +"You have selected an action, and you haven’t made any changes on individual " +"fields. You’re probably looking for the Go button rather than the Save " +"button." +msgstr "" +"سىز بىر ھەرىكەتنى تاللىدىڭىز ، ھەمدە ئايرىم ساھەدە ھېچقانداق ئۆزگەرتىش ئېلىپ " +"بارمىدىڭىز. سىز «ساقلاش» كۇنۇپكىسىنى ئەمەس ، بەلكى Go كۇنۇپكىسىنى " +"ئىزدەۋاتقان بولۇشىڭىز مۇمكىن." + +msgid "Now" +msgstr "ھازىرلا" + +msgid "Midnight" +msgstr "يېرىم كېچە" + +msgid "6 a.m." +msgstr "6 a.m." + +msgid "Noon" +msgstr "چۈش" + +msgid "6 p.m." +msgstr "6 p.m." + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "ئەسكەرتىش: سىز مۇلازىمېتىر ۋاقتىدىن %s سائەت ئالدىدا." +msgstr[1] "ئەسكەرتىش: سىز مۇلازىمېتىر ۋاقتىدىن %s سائەت ئالدىدا." + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "ئەسكەرتىش: سىز مۇلازىمېتىر ۋاقتىدىن %s سائەت ئارقىدا." +msgstr[1] "ئەسكەرتىش: سىز مۇلازىمېتىر ۋاقتىدىن %s سائەت ئارقىدا." + +msgid "Choose a Time" +msgstr "بىر ۋاقىت تاللاڭ" + +msgid "Choose a time" +msgstr "بىر ۋاقىت تاللاڭ" + +msgid "Cancel" +msgstr "ۋاز كەچ" + +msgid "Today" +msgstr "بۈگۈن" + +msgid "Choose a Date" +msgstr "بىر چېسلا تاللاڭ" + +msgid "Yesterday" +msgstr "تۈنۈگۈن" + +msgid "Tomorrow" +msgstr "ئەتە" + +msgid "January" +msgstr "يانۋار" + +msgid "February" +msgstr "فېۋرال" + +msgid "March" +msgstr "مارت" + +msgid "April" +msgstr "ئاپرىل" + +msgid "May" +msgstr "ماي" + +msgid "June" +msgstr "ئىيۇن" + +msgid "July" +msgstr "ئىيۇل" + +msgid "August" +msgstr "ئاۋغۇست" + +msgid "September" +msgstr "سىنتەبىر" + +msgid "October" +msgstr "ئۆكتەبىر" + +msgid "November" +msgstr "نويابىر" + +msgid "December" +msgstr "دىكابىر" + +msgctxt "abbrev. month January" +msgid "Jan" +msgstr "يانۋار" + +msgctxt "abbrev. month February" +msgid "Feb" +msgstr "فېۋرال" + +msgctxt "abbrev. month March" +msgid "Mar" +msgstr "مارت" + +msgctxt "abbrev. month April" +msgid "Apr" +msgstr "ئاپرېل" + +msgctxt "abbrev. month May" +msgid "May" +msgstr "ماي" + +msgctxt "abbrev. month June" +msgid "Jun" +msgstr "ئىيۇن" + +msgctxt "abbrev. month July" +msgid "Jul" +msgstr "ئىيۇل" + +msgctxt "abbrev. month August" +msgid "Aug" +msgstr "ئاۋغۇست" + +msgctxt "abbrev. month September" +msgid "Sep" +msgstr "سېنتەبىر" + +msgctxt "abbrev. month October" +msgid "Oct" +msgstr "ئۆكتەبىر" + +msgctxt "abbrev. month November" +msgid "Nov" +msgstr "نويابىر" + +msgctxt "abbrev. month December" +msgid "Dec" +msgstr "دىكابىر" + +msgid "Sunday" +msgstr "يەكشەنبە" + +msgid "Monday" +msgstr "دۈشەنبە" + +msgid "Tuesday" +msgstr "سەيشەنبە" + +msgid "Wednesday" +msgstr "چارشەمبە" + +msgid "Thursday" +msgstr "پەيشەمبە" + +msgid "Friday" +msgstr "جۈمە" + +msgid "Saturday" +msgstr "شەنبە" + +msgctxt "abbrev. day Sunday" +msgid "Sun" +msgstr "ي" + +msgctxt "abbrev. day Monday" +msgid "Mon" +msgstr "د" + +msgctxt "abbrev. day Tuesday" +msgid "Tue" +msgstr "س" + +msgctxt "abbrev. day Wednesday" +msgid "Wed" +msgstr "چ" + +msgctxt "abbrev. day Thursday" +msgid "Thur" +msgstr "پ" + +msgctxt "abbrev. day Friday" +msgid "Fri" +msgstr "ج" + +msgctxt "abbrev. day Saturday" +msgid "Sat" +msgstr "ش" + +msgctxt "one letter Sunday" +msgid "S" +msgstr "S" + +msgctxt "one letter Monday" +msgid "M" +msgstr "M" + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "T" + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "W" + +msgctxt "one letter Thursday" +msgid "T" +msgstr "T" + +msgctxt "one letter Friday" +msgid "F" +msgstr "F" + +msgctxt "one letter Saturday" +msgid "S" +msgstr "S" + +msgid "Show" +msgstr "كۆرسەت" + +msgid "Hide" +msgstr "يوشۇر" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/uk/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/uk/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..e4abcc62e54fb858ec850f28a378ef466e24d72d GIT binary patch literal 22319 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, 2021 +# Oleksandr Chernihov , 2014 +# Andriy Sokolovskiy , 2015 +# Boryslav Larin , 2011 +# Denis Podlesniy , 2016 +# Igor Melnyk, 2014,2017 +# Illia Volochii , 2021-2023 +# Ivan Dmytrenko , 2019 +# Jannis Leidel , 2011 +# Kirill Gagarski , 2015 +# Max V. Stotsky , 2014 +# Mikhail Kolesnik , 2015 +# Mykola Holovetskyi, 2022 +# Mykola Zamkovoi , 2014 +# Sergiy Kuzmenko , 2011 +# tarasyyyk , 2018 +# Zoriana Zaiats, 2016 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-01-17 02:13-0600\n" +"PO-Revision-Date: 2023-04-25 07:05+0000\n" +"Last-Translator: Illia Volochii , 2021-2023\n" +"Language-Team: Ukrainian (http://www.transifex.com/django/django/language/" +"uk/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: uk\n" +"Plural-Forms: nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != " +"11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % " +"100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || " +"(n % 100 >=11 && n % 100 <=14 )) ? 2: 3);\n" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "Видалити обрані %(verbose_name_plural)s" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "Успішно видалено %(count)d %(items)s." + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "Не вдається видалити %(name)s" + +msgid "Are you sure?" +msgstr "Ви впевнені?" + +msgid "Administration" +msgstr "Адміністрування" + +msgid "All" +msgstr "Всі" + +msgid "Yes" +msgstr "Так" + +msgid "No" +msgstr "Ні" + +msgid "Unknown" +msgstr "Невідомо" + +msgid "Any date" +msgstr "Будь-яка дата" + +msgid "Today" +msgstr "Сьогодні" + +msgid "Past 7 days" +msgstr "Останні 7 днів" + +msgid "This month" +msgstr "Цього місяця" + +msgid "This year" +msgstr "Цього року" + +msgid "No date" +msgstr "Без дати" + +msgid "Has date" +msgstr "Має дату" + +msgid "Empty" +msgstr "Порожні" + +msgid "Not empty" +msgstr "Непорожні" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" +"Будь ласка, введіть правильні %(username)s і пароль для облікового запису " +"персоналу. Зауважте, що обидва поля можуть бути чутливі до регістру." + +msgid "Action:" +msgstr "Дія:" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "Додати ще %(verbose_name)s" + +msgid "Remove" +msgstr "Видалити" + +msgid "Addition" +msgstr "Додавання" + +msgid "Change" +msgstr "Змінити" + +msgid "Deletion" +msgstr "Видалення" + +msgid "action time" +msgstr "час дії" + +msgid "user" +msgstr "користувач" + +msgid "content type" +msgstr "тип вмісту" + +msgid "object id" +msgstr "id об'єкта" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/library/functions.html#repr) +msgid "object repr" +msgstr "представлення об'єкта (repr)" + +msgid "action flag" +msgstr "позначка дії" + +msgid "change message" +msgstr "змінити повідомлення" + +msgid "log entry" +msgstr "запис у журналі" + +msgid "log entries" +msgstr "записи в журналі" + +#, python-format +msgid "Added “%(object)s”." +msgstr "Додано \"%(object)s\"." + +#, python-format +msgid "Changed “%(object)s” — %(changes)s" +msgstr "Змінено \"%(object)s\" - %(changes)s" + +#, python-format +msgid "Deleted “%(object)s.”" +msgstr "Видалено \"%(object)s.\"" + +msgid "LogEntry Object" +msgstr "Об'єкт журнального запису" + +#, python-brace-format +msgid "Added {name} “{object}”." +msgstr "Додано {name} \"{object}\"." + +msgid "Added." +msgstr "Додано." + +msgid "and" +msgstr "та" + +#, python-brace-format +msgid "Changed {fields} for {name} “{object}”." +msgstr "Змінені {fields} для {name} \"{object}\"." + +#, python-brace-format +msgid "Changed {fields}." +msgstr "Змінені {fields}." + +#, python-brace-format +msgid "Deleted {name} “{object}”." +msgstr "Видалено {name} \"{object}\"." + +msgid "No fields changed." +msgstr "Поля не змінені." + +msgid "None" +msgstr "Ніщо" + +msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." +msgstr "" +"Натисність \"Control\" або \"Command\" на Mac-пристрої, щоб вибрати більше " +"аніж один." + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully." +msgstr "{name} \"{obj}\" було додано успішно." + +msgid "You may edit it again below." +msgstr "Ви можете відредагувати це знову." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was added successfully. You may add another {name} below." +msgstr "{name} \"{obj}\" було змінено успішно. Ви можете додати інше {name}." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may edit it again below." +msgstr "" +"{name} \"{obj}\" було змінено успішно. Нижче Ви можете редагувати його знову." + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully. You may edit it again below." +msgstr "{name} \"{obj}\" було додано успішно. Ви можете редагувати його знову." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may add another {name} " +"below." +msgstr "{name} \"{obj}\" було змінено успішно. Ви можете додати інше {name}." + +#, python-brace-format +msgid "The {name} “{obj}” was changed successfully." +msgstr "{name} \"{obj}\" було змінено успішно." + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" +"Для виконання дії необхідно обрати елемент. Жодний елемент не був змінений." + +msgid "No action selected." +msgstr "Дія не обрана." + +#, python-format +msgid "The %(name)s “%(obj)s” was deleted successfully." +msgstr "%(name)s \"%(obj)s\" був видалений успішно." + +#, python-format +msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" +msgstr "%(name)s з ID \"%(key)s\" не існує. Можливо, воно було видалене?" + +#, python-format +msgid "Add %s" +msgstr "Додати %s" + +#, python-format +msgid "Change %s" +msgstr "Змінити %s" + +#, python-format +msgid "View %s" +msgstr "Переглянути %s" + +msgid "Database error" +msgstr "Помилка бази даних" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "%(count)s %(name)s був успішно змінений." +msgstr[1] "%(count)s %(name)s були успішно змінені." +msgstr[2] "%(count)s %(name)s було успішно змінено." +msgstr[3] "%(count)s %(name)s було успішно змінено." + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "%(total_count)s обраний" +msgstr[1] "%(total_count)s обрані" +msgstr[2] "Усі %(total_count)s обрано" +msgstr[3] "Усі %(total_count)s обрано" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "0 з %(cnt)s обрано" + +#, python-format +msgid "Change history: %s" +msgstr "Історія змін: %s" + +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "%(class_name)s %(instance)s" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" +"Видалення %(class_name)s %(instance)s вимагатиме видалення наступних " +"захищених пов'язаних об'єктів: %(related_objects)s" + +msgid "Django site admin" +msgstr "Django сайт адміністрування" + +msgid "Django administration" +msgstr "Django адміністрування" + +msgid "Site administration" +msgstr "Адміністрування сайта" + +msgid "Log in" +msgstr "Увійти" + +#, python-format +msgid "%(app)s administration" +msgstr "Адміністрування %(app)s" + +msgid "Page not found" +msgstr "Сторінка не знайдена" + +msgid "We’re sorry, but the requested page could not be found." +msgstr "На жаль, запрошену сторінку не знайдено." + +msgid "Home" +msgstr "Домівка" + +msgid "Server error" +msgstr "Помилка сервера" + +msgid "Server error (500)" +msgstr "Помилка сервера (500)" + +msgid "Server Error (500)" +msgstr "Помилка сервера (500)" + +msgid "" +"There’s been an error. It’s been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" +"Сталася помилка. Вона була відправлена адміністраторам сайту через email і " +"має бути вирішена швидко. Дякуємо за ваше терпіння." + +msgid "Run the selected action" +msgstr "Виконати обрану дію" + +msgid "Go" +msgstr "Вперед" + +msgid "Click here to select the objects across all pages" +msgstr "Натисніть тут, щоб вибрати об'єкти на всіх сторінках" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "Обрати всі %(total_count)s %(module_name)s" + +msgid "Clear selection" +msgstr "Скинути вибір" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "Моделі у %(name)s додатку" + +msgid "Add" +msgstr "Додати" + +msgid "View" +msgstr "Переглянути" + +msgid "You don’t have permission to view or edit anything." +msgstr "Ви не маєте дозволу переглядати чи редагувати будь-чого." + +msgid "" +"First, enter a username and password. Then, you’ll be able to edit more user " +"options." +msgstr "" +"Спершу, введіть користувацьке ім'я і пароль. Тоді, ви зможете редагувати " +"більше користувацьких опцій." + +msgid "Enter a username and password." +msgstr "Введіть ім'я користувача і пароль." + +msgid "Change password" +msgstr "Змінити пароль" + +msgid "Please correct the error below." +msgid_plural "Please correct the errors below." +msgstr[0] "Будь ласка, виправте наведену нижче помилку." +msgstr[1] "Будь ласка, виправте наведені нижче помилки." +msgstr[2] "Будь ласка, виправте наведені нижче помилки." +msgstr[3] "Будь ласка, виправте наведені нижче помилки." + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "Введіть новий пароль для користувача %(username)s." + +msgid "Skip to main content" +msgstr "Перейти до основного вмісту" + +msgid "Welcome," +msgstr "Вітаємо," + +msgid "View site" +msgstr "Дивитися сайт" + +msgid "Documentation" +msgstr "Документація" + +msgid "Log out" +msgstr "Вийти" + +msgid "Breadcrumbs" +msgstr "Навігаційний рядок" + +#, python-format +msgid "Add %(name)s" +msgstr "Додати %(name)s" + +msgid "History" +msgstr "Історія" + +msgid "View on site" +msgstr "Дивитися на сайті" + +msgid "Filter" +msgstr "Відфільтрувати" + +msgid "Clear all filters" +msgstr "Очистити всі фільтри" + +msgid "Remove from sorting" +msgstr "Видалити з сортування" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "Пріорітет сортування: %(priority_number)s" + +msgid "Toggle sorting" +msgstr "Сортувати в іншому напрямку" + +msgid "Toggle theme (current theme: auto)" +msgstr "Перемкнути тему (поточна тема: автоматична)" + +msgid "Toggle theme (current theme: light)" +msgstr "Перемкнути тему (поточна тема: світла)" + +msgid "Toggle theme (current theme: dark)" +msgstr "Перемкнути тему (поточна тема: темна)" + +msgid "Delete" +msgstr "Видалити" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" +"Видалення %(object_name)s '%(escaped_object)s' призведе до видалення " +"пов'язаних об'єктів, але ваш реєстраційний запис не має дозволу видаляти " +"наступні типи об'єктів:" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" +"Видалення %(object_name)s '%(escaped_object)s' вимагатиме видалення " +"наступних пов'язаних об'єктів:" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" +"Ви впевнені, що хочете видалити %(object_name)s \"%(escaped_object)s\"? Всі " +"пов'язані записи, що перелічені, будуть видалені:" + +msgid "Objects" +msgstr "Об'єкти" + +msgid "Yes, I’m sure" +msgstr "Так, я впевнений" + +msgid "No, take me back" +msgstr "Ні, повернутись назад" + +msgid "Delete multiple objects" +msgstr "Видалити кілька об'єктів" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" +"Видалення обраних %(objects_name)s вимагатиме видалення пов'язаних об'єктів, " +"але ваш обліковий запис не має прав для видалення таких типів об'єктів:" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" +"Видалення обраних %(objects_name)s вимагатиме видалення наступних захищених " +"пов'язаних об'єктів:" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" +"Ви впевнені, що хочете видалити вибрані %(objects_name)s? Всі вказані " +"об'єкти та пов'язані з ними елементи будуть видалені:" + +msgid "Delete?" +msgstr "Видалити?" + +#, python-format +msgid " By %(filter_title)s " +msgstr "За %(filter_title)s" + +msgid "Summary" +msgstr "Резюме" + +msgid "Recent actions" +msgstr "Недавні дії" + +msgid "My actions" +msgstr "Мої дії" + +msgid "None available" +msgstr "Немає" + +msgid "Unknown content" +msgstr "Невідомий зміст" + +msgid "" +"Something’s wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" +"Щось не так з інсталяцією бази даних. Запевніться, що певні таблиці бази " +"даних були створені і що вона може бути прочитана певним користувачем." + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" +"Ви аутентифіковані як %(username)s, але вам не надано доступ до цієї " +"сторінки.\n" +"Ввійти в інший аккаунт?" + +msgid "Forgotten your password or username?" +msgstr "Забули пароль або ім'я користувача?" + +msgid "Toggle navigation" +msgstr "Увімкнути навігацію" + +msgid "Sidebar" +msgstr "Бічна панель" + +msgid "Start typing to filter…" +msgstr "Почніть писати для фільтру..." + +msgid "Filter navigation items" +msgstr "Фільтрувати навігаційні об'єкти" + +msgid "Date/time" +msgstr "Дата/час" + +msgid "User" +msgstr "Користувач" + +msgid "Action" +msgstr "Дія" + +msgid "entry" +msgid_plural "entries" +msgstr[0] "запис" +msgstr[1] "записи" +msgstr[2] "записи" +msgstr[3] "записи" + +msgid "" +"This object doesn’t have a change history. It probably wasn’t added via this " +"admin site." +msgstr "" +"Цей об'єкт не має історії змін. Напевно, він був доданий не через цей сайт " +"адміністрування." + +msgid "Show all" +msgstr "Показати всі" + +msgid "Save" +msgstr "Зберегти" + +msgid "Popup closing…" +msgstr "Закриття спливаючого вікна" + +msgid "Search" +msgstr "Пошук" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "%(counter)s результат" +msgstr[1] "%(counter)s результати" +msgstr[2] "%(counter)s результатів" +msgstr[3] "%(counter)s результатів" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "%(full_result_count)s всього" + +msgid "Save as new" +msgstr "Зберегти як нове" + +msgid "Save and add another" +msgstr "Зберегти і додати інше" + +msgid "Save and continue editing" +msgstr "Зберегти і продовжити редагування" + +msgid "Save and view" +msgstr "Зберегти і переглянути" + +msgid "Close" +msgstr "Закрити" + +#, python-format +msgid "Change selected %(model)s" +msgstr "Змінити обрану %(model)s" + +#, python-format +msgid "Add another %(model)s" +msgstr "Додати ще одну %(model)s" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "Видалити обрану %(model)s" + +#, python-format +msgid "View selected %(model)s" +msgstr "Переглянути обрану %(model)s" + +msgid "Thanks for spending some quality time with the web site today." +msgstr "Дякуємо за час, який був проведений сьогодні на сайті." + +msgid "Log in again" +msgstr "Увійти знову" + +msgid "Password change" +msgstr "Зміна паролю" + +msgid "Your password was changed." +msgstr "Ваш пароль було змінено." + +msgid "" +"Please enter your old password, for security’s sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" +"Будь ласка введіть ваш старий пароль, заради безпеки, після цього введіть " +"ваш новий пароль двічі для верифікації коректності написаного." + +msgid "Change my password" +msgstr "Змінити мій пароль" + +msgid "Password reset" +msgstr "Перевстановлення паролю" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "Пароль встановлено. Ви можете увійти зараз." + +msgid "Password reset confirmation" +msgstr "Підтвердження перевстановлення паролю" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" +"Будь ласка, введіть ваш старий пароль, задля безпеки, потім введіть ваш " +"новий пароль двічі для перевірки." + +msgid "New password:" +msgstr "Новий пароль:" + +msgid "Confirm password:" +msgstr "Підтвердіть пароль:" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"Посилання на перевстановлення паролю було помилковим. Можливо тому, що воно " +"було вже використано. Будь ласка, замовте нове перевстановлення паролю." + +msgid "" +"We’ve emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" +"Ми відправили вам інструкції для встановлення пароля, якщо обліковий запис з " +"введеною адресою існує. Ви маєте отримати їх найближчим часом." + +msgid "" +"If you don’t receive an email, please make sure you’ve entered the address " +"you registered with, and check your spam folder." +msgstr "" +"Якщо Ви не отримали електронного листа, переконайтеся, будь ласка, в " +"зареєстрованій адресі і перевірте папку \"Спам\"." + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" +"Ви отримали цей лист через те, що зробили запит на перевстановлення пароля " +"для облікового запису користувача на %(site_name)s." + +msgid "Please go to the following page and choose a new password:" +msgstr "Будь ласка, перейдіть на цю сторінку, та оберіть новий пароль:" + +msgid "Your username, in case you’ve forgotten:" +msgstr "Ваше користувацьке ім'я, у випадку, якщо ви забули:" + +msgid "Thanks for using our site!" +msgstr "Дякуємо за користування нашим сайтом!" + +#, python-format +msgid "The %(site_name)s team" +msgstr "Команда сайту %(site_name)s " + +msgid "" +"Forgotten your password? Enter your email address below, and we’ll email " +"instructions for setting a new one." +msgstr "" +"Забули пароль? Введіть свою email-адресу нижче і ми відправимо вам " +"інструкції по встановленню нового." + +msgid "Email address:" +msgstr "Email адреса:" + +msgid "Reset my password" +msgstr "Перевстановіть мій пароль" + +msgid "All dates" +msgstr "Всі дати" + +#, python-format +msgid "Select %s" +msgstr "Вибрати %s" + +#, python-format +msgid "Select %s to change" +msgstr "Виберіть %s щоб змінити" + +#, python-format +msgid "Select %s to view" +msgstr "Вибрати %s для перегляду" + +msgid "Date:" +msgstr "Дата:" + +msgid "Time:" +msgstr "Час:" + +msgid "Lookup" +msgstr "Пошук" + +msgid "Currently:" +msgstr "На даний час:" + +msgid "Change:" +msgstr "Змінено:" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/uk/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/uk/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..20523fffac9b7666266af5b12e1c92fc67d79fb8 GIT binary patch literal 5787 zcmdUxZH!b`8OKlS)R(ndty=3#^%Mo!mYJPdD5V37EwmdTUBEJ>t&NFyXYTIYGIQ_d z-aEUjX(F&t+Jvwc3vIL(sYYWoaoGa9;We7@K|kFalbUF3;s?J~jVAiZ7=O>XXO>~u zU=t489xOYw>xI zpPIJwqu{N~U$yfeS)2hs0DaElWsAQ8d!YXwd>{BW_*wAp;4<(I4tp;+U~v%Sr?&CQ zfjhzXfKS_b)nXk)gld9vg$NWm6Lx(M_$2cKU)=Pg{T5#Vh5sjZ{&PEj6Z|Ojw?R4QruSnH ze19kSb>>Z+b`$tVQ110-Q2hHhi#LBT)BiT`cIeANSzil^o|`~9_p27iLDB0FcpLa# z@Ii0}{1W&VQ1)+RQEHo~&i$*U--PnNWPUq%8T=h6{NKZfvi}r#5d0Y^ayN7N zIj{oaI&~{X7QDlv1_>E;kHvnAWxKus#1-mMJAV?y^lI47$L#voK-{LDv-pC=Ll&nk z9(A5s>0C*zqf0(W z%zlnex|xO>)xCDy2JxFT@k_gj&!tH{BxFoYydM-_OI!@lrHOC8K)+ii(v~id+(vJt zgAu)SdDV{@LU60GTf6SsYV8!71+`j_2|P3wdJXkZYqS-`>Y;JRYdFIVS1*m!M#rzZ z4Yjcz1d(e&JNjWK?wD1)X2&e{SZxggpHJ+T^;1DhJE2@w*MnB5ox1DP#Ga8Gj=Q0j>l7B}MfG>itcTsY z=hxnm*u`1Lvs-TsCe*fS9Eb%TGlsGt_EJ0Cu{h(~QHQZo_aeG4FM+3rS#MU`6c^A(M36#R!8WhVM}8U;1NqY^X&(OXp}$6T&Vq{d=Dxi#Yv z6J@#%SH}2J1PD8sjFE;5m;<=4l zRM4A8^dwuumXDRSQ;ogAUm>LM8c7o#DKw00gD5U2XLvYt#|yd{_;FpEq|Wi}rkga+ zk?maz?Yzn{=vr!LT8=^2lFhdq*u6pq=19Y9$i54?o7-e*j&Bz`c?)&2i@KHiAT=Pz zpliwIMh@&+S;&nXBNh1A&5d!E9t=GkmK*G(4F$f?hB|3GoVX>f&F#2~+A^G1(JJ*; z7zt;kle5xtuO&X=*8Gh8gxVek&rrPcn``-kG7mqH(zm`W?4VJD|9^HBQ%%S z<9Mvx*EcaSQHVvfH{$M=J$;$ZZD?2leXU)6y*)#lhaS0dyHcUpvypgpebgiE$~ty; z$9-cB&R8oM6Gm=4@OWh~zvc>`oHgQx`A7U}P^0#g^_pQXUQo2GTf2I;H(H_7$PWf# zGb(F;%uJ(!Rcm!N99Yhqq)U2WKo|A0W!lV&GA&)17WLiCOZtoOAY`!(>j!lIl?{5` zfLKbzXkm{ zZ=keF_sR+VWxcX@ZI4P`OHQVHl9}W}a*=-t*&l{vuKkDMhOe(y#9^_hlC#NddMw?S zTu7%?x;HtEQkTpmIigW+CY?@ZMagt;x-UH@{}_@Z>9OQga-Q#nWS*__3)(JBM2?6} z4{2Cu7)%+a4tjbJ`rhkM#XKTVqv784*uo*1$~rZM zEU`x=C(;AZXEXgVJL(^_dpJ0=KNN8W#ur&9&E#}4XQmwQc0m`B8JiJqylP}Wc*wYwlO51>#H6(&SuA(!?83Vpk z*>d2GlKuZExozt?oOmPb{NI+F+4z4eRZ@`}WFi!+B{M2{nFNwNm{Z9a=(DVvWFf#i zvzLl>HNm8Fa$1o!Ce}>_A;~0nND-3E6dslQAUQ2La7m7qHCqSL15(wpk~qbxl)(dJ zQ^Dred3ettdLP>vcGRL%P^Xi#R1a!>wr>SOMLnqx;B5Ll*^<7Dz;=|J6L!u>&PYwr z+01BY6rYkk={}9>lA@OoKc$zn9~hLFUqY?B_9|Af>uYaR!z2rZ@P^$$YQ)ty=<=G} z;zW9gD`qu|f@eZN{4QZ&{AcQ@eRyUutSN3{11;XbG=vZa*XeUc()mssw_lI!nbVVEnq6A`vQl;sA6P b?qeV)GdhxSr+XP6H@_3S&d6hlQ`ElzgLmjs literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/uk/LC_MESSAGES/djangojs.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/uk/LC_MESSAGES/djangojs.po new file mode 100644 index 0000000000..40e60de094 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/uk/LC_MESSAGES/djangojs.po @@ -0,0 +1,275 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Oleksandr Chernihov , 2014 +# Boryslav Larin , 2011 +# Denis Podlesniy , 2016 +# Illia Volochii , 2021 +# Jannis Leidel , 2011 +# Panasoft, 2016 +# Sergey Lysach , 2011-2012 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-01-15 09:00+0100\n" +"PO-Revision-Date: 2021-10-21 18:50+0000\n" +"Last-Translator: Illia Volochii \n" +"Language-Team: Ukrainian (http://www.transifex.com/django/django/language/" +"uk/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: uk\n" +"Plural-Forms: nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != " +"11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % " +"100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || " +"(n % 100 >=11 && n % 100 <=14 )) ? 2: 3);\n" + +#, javascript-format +msgid "Available %s" +msgstr "В наявності %s" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" +"Це список всіх доступних %s. Ви можете обрати деякі з них, виділивши їх у " +"полі нижче і натиснувшт кнопку \"Обрати\"." + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "" +"Почніть вводити текст в цьому полі щоб відфільтрувати список доступних %s." + +msgid "Filter" +msgstr "Фільтр" + +msgid "Choose all" +msgstr "Обрати всі" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "Натисніть щоб обрати всі %s відразу." + +msgid "Choose" +msgstr "Обрати" + +msgid "Remove" +msgstr "Видалити" + +#, javascript-format +msgid "Chosen %s" +msgstr "Обрано %s" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" +"Це список обраних %s. Ви можете видалити деякі з них, виділивши їх у полі " +"нижче і натиснувши кнопку \"Видалити\"." + +msgid "Remove all" +msgstr "Видалити все" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "Натисніть щоб видалити всі обрані %s відразу." + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "Обрано %(sel)s з %(cnt)s" +msgstr[1] "Обрано %(sel)s з %(cnt)s" +msgstr[2] "Обрано %(sel)s з %(cnt)s" +msgstr[3] "Обрано %(sel)s з %(cnt)s" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" +"Ви зробили якісь зміни у деяких полях. Якщо Ви виконаєте цю дію, всі " +"незбережені зміни буде втрачено." + +msgid "" +"You have selected an action, but you haven’t saved your changes to " +"individual fields yet. Please click OK to save. You’ll need to re-run the " +"action." +msgstr "" + +msgid "" +"You have selected an action, and you haven’t made any changes on individual " +"fields. You’re probably looking for the Go button rather than the Save " +"button." +msgstr "" + +msgid "Now" +msgstr "Зараз" + +msgid "Midnight" +msgstr "Північ" + +msgid "6 a.m." +msgstr "6" + +msgid "Noon" +msgstr "Полудень" + +msgid "6 p.m." +msgstr "18:00" + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "Примітка: Ви на %s годину попереду серверного часу." +msgstr[1] "Примітка: Ви на %s години попереду серверного часу." +msgstr[2] "Примітка: Ви на %s годин попереду серверного часу." +msgstr[3] "Примітка: Ви на %s годин попереду серверного часу." + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "Примітка: Ви на %s годину позаду серверного часу." +msgstr[1] "Примітка: Ви на %s години позаду серверного часу." +msgstr[2] "Примітка: Ви на %s годин позаду серверного часу." +msgstr[3] "Примітка: Ви на %s годин позаду серверного часу." + +msgid "Choose a Time" +msgstr "Оберіть час" + +msgid "Choose a time" +msgstr "Оберіть час" + +msgid "Cancel" +msgstr "Відмінити" + +msgid "Today" +msgstr "Сьогодні" + +msgid "Choose a Date" +msgstr "Оберіть дату" + +msgid "Yesterday" +msgstr "Вчора" + +msgid "Tomorrow" +msgstr "Завтра" + +msgid "January" +msgstr "січня" + +msgid "February" +msgstr "лютого" + +msgid "March" +msgstr "березня" + +msgid "April" +msgstr "квітня" + +msgid "May" +msgstr "травня" + +msgid "June" +msgstr "червня" + +msgid "July" +msgstr "липня" + +msgid "August" +msgstr "серпня" + +msgid "September" +msgstr "вересня" + +msgid "October" +msgstr "жовтня" + +msgid "November" +msgstr "листопада" + +msgid "December" +msgstr "грудня" + +msgctxt "abbrev. month January" +msgid "Jan" +msgstr "Січ." + +msgctxt "abbrev. month February" +msgid "Feb" +msgstr "Лют." + +msgctxt "abbrev. month March" +msgid "Mar" +msgstr "Берез." + +msgctxt "abbrev. month April" +msgid "Apr" +msgstr "Квіт." + +msgctxt "abbrev. month May" +msgid "May" +msgstr "Трав." + +msgctxt "abbrev. month June" +msgid "Jun" +msgstr "Черв." + +msgctxt "abbrev. month July" +msgid "Jul" +msgstr "Лип." + +msgctxt "abbrev. month August" +msgid "Aug" +msgstr "Серп." + +msgctxt "abbrev. month September" +msgid "Sep" +msgstr "Верес." + +msgctxt "abbrev. month October" +msgid "Oct" +msgstr "Жовт." + +msgctxt "abbrev. month November" +msgid "Nov" +msgstr "Листоп." + +msgctxt "abbrev. month December" +msgid "Dec" +msgstr "Груд." + +msgctxt "one letter Sunday" +msgid "S" +msgstr "Н" + +msgctxt "one letter Monday" +msgid "M" +msgstr "П" + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "В" + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "С" + +msgctxt "one letter Thursday" +msgid "T" +msgstr "Ч" + +msgctxt "one letter Friday" +msgid "F" +msgstr "П" + +msgctxt "one letter Saturday" +msgid "S" +msgstr "С" + +msgid "Show" +msgstr "Показати" + +msgid "Hide" +msgstr "Сховати" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ur/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ur/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..0735f5d6d9169ddfe833ec6e9b7227eb7588f6a0 GIT binary patch literal 13106 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, 2011 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-01-19 16:49+0100\n" +"PO-Revision-Date: 2017-09-19 16:40+0000\n" +"Last-Translator: Jannis Leidel \n" +"Language-Team: Urdu (http://www.transifex.com/django/django/language/ur/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ur\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "%(count)d %(items)s کو کامیابی سے مٹا دیا گیا۔" + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "%(name)s نہیں مٹایا جا سکتا" + +msgid "Are you sure?" +msgstr "آپ کو یقین ھے؟" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "منتخب شدہ %(verbose_name_plural)s مٹائیں" + +msgid "Administration" +msgstr "" + +msgid "All" +msgstr "تمام" + +msgid "Yes" +msgstr "ھاں" + +msgid "No" +msgstr "نھیں" + +msgid "Unknown" +msgstr "نامعلوم" + +msgid "Any date" +msgstr "کوئی تاریخ" + +msgid "Today" +msgstr "آج" + +msgid "Past 7 days" +msgstr "گزشتہ سات دن" + +msgid "This month" +msgstr "یہ مھینہ" + +msgid "This year" +msgstr "یہ سال" + +msgid "No date" +msgstr "" + +msgid "Has date" +msgstr "" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" + +msgid "Action:" +msgstr "کاروائی:" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "دوسرا %(verbose_name)s درج کریں" + +msgid "Remove" +msgstr "خارج کریں" + +msgid "action time" +msgstr "کاروائی کا وقت" + +msgid "user" +msgstr "" + +msgid "content type" +msgstr "" + +msgid "object id" +msgstr "شے کا شناختی نمبر" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/3/library/functions.html#repr) +msgid "object repr" +msgstr "شے کا نمائندہ" + +msgid "action flag" +msgstr "کاروائی کا پرچم" + +msgid "change message" +msgstr "پیغام تبدیل کریں" + +msgid "log entry" +msgstr "لاگ کا اندراج" + +msgid "log entries" +msgstr "لاگ کے اندراج" + +#, python-format +msgid "Added \"%(object)s\"." +msgstr "" + +#, python-format +msgid "Changed \"%(object)s\" - %(changes)s" +msgstr "" + +#, python-format +msgid "Deleted \"%(object)s.\"" +msgstr "" + +msgid "LogEntry Object" +msgstr "" + +#, python-brace-format +msgid "Added {name} \"{object}\"." +msgstr "" + +msgid "Added." +msgstr "" + +msgid "and" +msgstr "اور" + +#, python-brace-format +msgid "Changed {fields} for {name} \"{object}\"." +msgstr "" + +#, python-brace-format +msgid "Changed {fields}." +msgstr "" + +#, python-brace-format +msgid "Deleted {name} \"{object}\"." +msgstr "" + +msgid "No fields changed." +msgstr "کوئی خانہ تبدیل نھیں کیا گیا۔" + +msgid "None" +msgstr "کوئی نھیں" + +msgid "" +"Hold down \"Control\", or \"Command\" on a Mac, to select more than one." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was added successfully. You may edit it again below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was added successfully. You may add another {name} " +"below." +msgstr "" + +#, python-brace-format +msgid "The {name} \"{obj}\" was added successfully." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was changed successfully. You may edit it again below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} \"{obj}\" was changed successfully. You may add another {name} " +"below." +msgstr "" + +#, python-brace-format +msgid "The {name} \"{obj}\" was changed successfully." +msgstr "" + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" +"اشیاء پر کاروائی سرانجام دینے کے لئے ان کا منتخب ھونا ضروری ھے۔ کوئی شے " +"تبدیل نھیں کی گئی۔" + +msgid "No action selected." +msgstr "کوئی کاروائی منتخب نھیں کی گئی۔" + +#, python-format +msgid "The %(name)s \"%(obj)s\" was deleted successfully." +msgstr "%(name)s \"%(obj)s\" کامیابی سے مٹایا گیا تھا۔" + +#, python-format +msgid "%(name)s with ID \"%(key)s\" doesn't exist. Perhaps it was deleted?" +msgstr "" + +#, python-format +msgid "Add %s" +msgstr "%s کا اضافہ کریں" + +#, python-format +msgid "Change %s" +msgstr "%s تبدیل کریں" + +msgid "Database error" +msgstr "ڈیٹا بیس کی خرابی" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "%(count)s %(name)s کامیابی سے تبدیل کیا گیا تھا۔" +msgstr[1] "%(count)s %(name)s کامیابی سے تبدیل کیے گئے تھے۔" + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "%(total_count)s منتخب کیا گیا۔" +msgstr[1] "تمام %(total_count)s منتخب کئے گئے۔" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "%(cnt)s میں سے 0 منتخب کیا گیا۔" + +#, python-format +msgid "Change history: %s" +msgstr "%s کی تبدیلی کا تاریخ نامہ" + +#. Translators: Model verbose name and instance representation, +#. suitable to be an item in a list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" + +msgid "Django site admin" +msgstr "منتظم برائے جینگو سائٹ" + +msgid "Django administration" +msgstr "انتظامیہ برائے جینگو سائٹ" + +msgid "Site administration" +msgstr "سائٹ کی انتظامیہ" + +msgid "Log in" +msgstr "اندر جائیں" + +#, python-format +msgid "%(app)s administration" +msgstr "" + +msgid "Page not found" +msgstr "صفحہ نھیں ملا" + +msgid "We're sorry, but the requested page could not be found." +msgstr "ھم معذرت خواہ ھیں، مطلوبہ صفحہ نھیں مل سکا۔" + +msgid "Home" +msgstr "گھر" + +msgid "Server error" +msgstr "سرور کی خرابی" + +msgid "Server error (500)" +msgstr "سرور کی خرابی (500)" + +msgid "Server Error (500)" +msgstr "سرور کی خرابی (500)" + +msgid "" +"There's been an error. It's been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" + +msgid "Run the selected action" +msgstr "منتخب شدہ کاروائیاں چلائیں" + +msgid "Go" +msgstr "جاؤ" + +msgid "Click here to select the objects across all pages" +msgstr "تمام صفحات میں سے اشیاء منتخب کرنے کے لئے یہاں کلک کریں۔" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "تمام %(total_count)s %(module_name)s منتخب کریں" + +msgid "Clear selection" +msgstr "انتخاب صاف کریں" + +msgid "" +"First, enter a username and password. Then, you'll be able to edit more user " +"options." +msgstr "" +"پہلے نام صارف اور لفظ اجازت درج کریں۔ پھر آپ مزید صارف کے حقوق مدوّن کرنے کے " +"قابل ھوں گے۔" + +msgid "Enter a username and password." +msgstr "نام صارف اور لفظ اجازت درج کریں۔" + +msgid "Change password" +msgstr "لفظ اجازت تبدیل کریں" + +msgid "Please correct the error below." +msgstr "براہ کرم نیچے غلطیاں درست کریں۔" + +msgid "Please correct the errors below." +msgstr "" + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "صارف %(username)s کے لئے نیا لفظ اجازت درج کریں۔" + +msgid "Welcome," +msgstr "خوش آمدید،" + +msgid "View site" +msgstr "" + +msgid "Documentation" +msgstr "طریق استعمال" + +msgid "Log out" +msgstr "باہر جائیں" + +#, python-format +msgid "Add %(name)s" +msgstr "%(name)s کا اضافہ کریں" + +msgid "History" +msgstr "تاریخ نامہ" + +msgid "View on site" +msgstr "سائٹ پر مشاھدہ کریں" + +msgid "Filter" +msgstr "چھانٹیں" + +msgid "Remove from sorting" +msgstr "" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "" + +msgid "Toggle sorting" +msgstr "" + +msgid "Delete" +msgstr "مٹائیں" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" +"%(object_name)s '%(escaped_object)s' کو مٹانے کے نتیجے میں معتلقہ اشیاء مٹ " +"سکتی ھیں، مگر آپ کے کھاتے کو اشیاء کی مندرجہ ذیل اقسام مٹانے کا حق حاصل نھیں " +"ھے۔" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" +"%(object_name)s '%(escaped_object)s' کو مٹانے کے لئے مندرجہ ذیل محفوظ متعلقہ " +"اشیاء کو مٹانے کی ضرورت پڑ سکتی ھے۔" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" +"واقعی آپ %(object_name)s \"%(escaped_object)s\" کو مٹانا چاہتے ھیں۔ مندرجہ " +"ذیل تمام متعلقہ اجزاء مٹ جائیں گے۔" + +msgid "Objects" +msgstr "" + +msgid "Yes, I'm sure" +msgstr "ھاں، مجھے یقین ھے" + +msgid "No, take me back" +msgstr "" + +msgid "Delete multiple objects" +msgstr "متعدد اشیاء مٹائیں" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" +"منتخب شدہ %(objects_name)s کو مٹانے کے نتیجے میں متعلقہ اشیاء مٹ سکتی ھیں، " +"لیکن آپ کے کھاتے کو اشیاء کی مندرجہ ذیل اقسام کو مٹانے کا حق حاصل نھیں ھے۔" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" +"منتخب شدہ %(objects_name)s کو مٹانے کے لئے مندرجہ ذیل محفوظ شدہ اشیاء کو " +"مٹانے کی ضرورت پڑ سکتی ھے۔" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" +"واقعی آپ منتخب شدہ %(objects_name)s مٹانا چاھتے ھیں؟ مندرجہ ذیل اور ان سے " +"متعلقہ تمام اشیاء حذف ھو جائیں گی۔" + +msgid "Change" +msgstr "تدوین" + +msgid "Delete?" +msgstr "مٹاؤں؟" + +#, python-format +msgid " By %(filter_title)s " +msgstr "از %(filter_title)s" + +msgid "Summary" +msgstr "" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "" + +msgid "Add" +msgstr "اضافہ" + +msgid "You don't have permission to edit anything." +msgstr "آپ کو کوئی چیز مدوّن کرنے کا حق نھیں ھے۔" + +msgid "Recent actions" +msgstr "" + +msgid "My actions" +msgstr "" + +msgid "None available" +msgstr "کچھ دستیاب نھیں" + +msgid "Unknown content" +msgstr "نامعلوم مواد" + +msgid "" +"Something's wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" +"آپ کی ڈیٹا بیس کی تنصیب میں کوئی چیز خراب ھے۔ یقین کر لیں کہ موزون ڈیٹا بیس " +"ٹیبل بنائے گئے تھے، اور یقین کر لیں کہ ڈیٹ بیس مناسب صارف کے پڑھے جانے کے " +"قابل ھے۔" + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" + +msgid "Forgotten your password or username?" +msgstr "" + +msgid "Date/time" +msgstr "تاریخ/وقت" + +msgid "User" +msgstr "صارف" + +msgid "Action" +msgstr "کاروائی" + +msgid "" +"This object doesn't have a change history. It probably wasn't added via this " +"admin site." +msgstr "" +"اس شے کا تبدیلی کا تاریخ نامہ نھیں ھے۔ اس کا غالباً بذریعہ اس منتظم سائٹ کے " +"اضافہ نھیں کیا گیا۔" + +msgid "Show all" +msgstr "تمام دکھائیں" + +msgid "Save" +msgstr "محفوظ کریں" + +msgid "Popup closing..." +msgstr "" + +#, python-format +msgid "Change selected %(model)s" +msgstr "" + +#, python-format +msgid "Add another %(model)s" +msgstr "" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "" + +msgid "Search" +msgstr "تلاش کریں" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "%(counter)s نتیجہ" +msgstr[1] "%(counter)s نتائج" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "کل %(full_result_count)s" + +msgid "Save as new" +msgstr "بطور نیا محفوظ کریں" + +msgid "Save and add another" +msgstr "محفوظ کریں اور مزید اضافہ کریں" + +msgid "Save and continue editing" +msgstr "محفوظ کریں اور تدوین جاری رکھیں" + +msgid "Thanks for spending some quality time with the Web site today." +msgstr "ویب سائٹ پر آج کچھ معیاری وقت خرچ کرنے کے لئے شکریہ۔" + +msgid "Log in again" +msgstr "دوبارہ اندر جائیں" + +msgid "Password change" +msgstr "لفظ اجازت کی تبدیلی" + +msgid "Your password was changed." +msgstr "آپ کا لفظ اجازت تبدیل کر دیا گیا تھا۔" + +msgid "" +"Please enter your old password, for security's sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" +"براہ کرم سیکیورٹی کی خاطر اپنا پرانا لفظ اجازت درج کریں اور پھر اپنا نیا لفظ " +"اجازت دو مرتبہ درج کریں تاکہ ھم توثیق کر سکیں کہ آپ نے اسے درست درج کیا ھے۔" + +msgid "Change my password" +msgstr "میرا لفظ تبدیل کریں" + +msgid "Password reset" +msgstr "لفظ اجازت کی دوبارہ ترتیب" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "" +"آپ کا لفظ اجازت مرتب کر دیا گیا ھے۔ آپ کو آگے بڑھنے اور اندر جانے کی اجازت " +"ھے۔" + +msgid "Password reset confirmation" +msgstr "لفظ اجازت دوبارہ مرتب کرنے کی توثیق" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" +"براہ مھربانی اپنا نیا لفظ اجازت دو مرتبہ درج کریں تاکہ تاکہ ھم تصدیق کر سکیں " +"کہ تم نے اسے درست درج کیا ھے۔" + +msgid "New password:" +msgstr "نیا لفظ اجازت:" + +msgid "Confirm password:" +msgstr "لفظ اجازت کی توثیق:" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"لفظ اجازت دوبارہ مرتب کرنے کا رابطہ (لنک) غلط تھا، غالباً یہ پہلے ھی استعمال " +"کیا چکا تھا۔ براہ مھربانی نیا لفظ اجازت مرتب کرنے کی درخواست کریں۔" + +msgid "" +"We've emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" + +msgid "" +"If you don't receive an email, please make sure you've entered the address " +"you registered with, and check your spam folder." +msgstr "" + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" + +msgid "Please go to the following page and choose a new password:" +msgstr "براہ مھربانی مندرجہ ذیل صفحے پر جائیں اور نیا لفظ اجازت پسند کریں:" + +msgid "Your username, in case you've forgotten:" +msgstr "نام صارف، بھول جانے کی صورت میں:" + +msgid "Thanks for using our site!" +msgstr "ھماری سائٹ استعمال کرنے کے لئے شکریہ" + +#, python-format +msgid "The %(site_name)s team" +msgstr "%(site_name)s کی ٹیم" + +msgid "" +"Forgotten your password? Enter your email address below, and we'll email " +"instructions for setting a new one." +msgstr "" + +msgid "Email address:" +msgstr "" + +msgid "Reset my password" +msgstr "میرا لفظ اجازت دوبارہ مرتب کریں" + +msgid "All dates" +msgstr "تمام تاریخیں" + +#, python-format +msgid "Select %s" +msgstr "%s منتخب کریں" + +#, python-format +msgid "Select %s to change" +msgstr "تبدیل کرنے کے لئے %s منتخب کریں" + +msgid "Date:" +msgstr "تاریخ:" + +msgid "Time:" +msgstr "وقت:" + +msgid "Lookup" +msgstr "ڈھونڈیں" + +msgid "Currently:" +msgstr "" + +msgid "Change:" +msgstr "" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ur/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/ur/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..65de1984ff62879a8ed018bd10e4dbb0ea8e7abb GIT binary patch literal 2678 zcmb7EO>Y}j6dj;IF&~8j5+IOn7gbV~aqQ5htwSnkXiK4Kqc#O~gEa9x+e621%zPw` z1dE`=SRxCQ1{VDRbrM2@NegWjS+Ri)OWxQL0yg{x#D;Tc#&+G70wa%)-+TAt+;i{q zFFUt=uHktW?~8c9$NLgq`#yZ(`4xBo_#5yc;Pdxu+G9Wh@>&Nz4%`P!0gnJ50gff- z?*g}B{T^^TFrTb#-~(8H0OUA9vi~9QL9AziZ2t+6<9!Ca47?0n0`7-%1^6TI61WW` ziG}q~aOQl65OfFdFz{*MDc}phN#Jw9kATkrzW_b~{4&8!AlLH)kn8yw$nky$J_Y;( z$o78%@zJ(F9PjS{a=u-_zkpfbaq!Z)2w;FB08uQCgED#^=E!`w5ABEJu{%GH;zh_P zC+qekUe<|w!TPix=EnS)`%d26-R}u|k4H{{cK7F{kDu5Od0&|KJR2e-T~2GSPZ^eN zOxl8Wd)lZW^TO6fOOE3SGRU{eqO-E215Ze{JZ9OxaJ4rrQ)pwBDXn73*G@T(#MiWT zMwFc?p`9(^_k?2_Gx#n$u8ZY);lYu&&N~5>j49EfONJyP?^}+189z;$NepD4Pi4ad zAvr_&k|B!%Gnv|7AQ;#$maQJ zZQOO<#~kS=O#L06;&xk3DV|MKh=$S)$_7G)>8b z2BxQ{(>{l@3gTiq@017Pg4$pwz5{_fuqQQkV(e(Q^lUnl8g-;EBq+^PP@69<`U4f) zu;ehe-t~k(a&F?7ez0rDxeCJ7kIKAbViI$7aMJQS9CH-7sc}1S4O>6vxMeR#vJx%5 zk-=e#e~$D^+BHJiJ;N#7==h3<^R0#ECaI0qBCdV>4-n3WRkf*`8tQ5zz4T~q67L#=WU1jV(FQf!1ZbrmU8gE?qnE&N!mQcw2e2+qrQJ-EeK zT~q6=Sq|Q;Hn&tgtcEwExV#Lp0X9*Zs=6M|l4@XQ6~vHs3-%3-xoN1nj-$0MEw$cU z;dqHV0$);VFa}(KPMov363%HT_Zx6nZLirP+@i1wDO4S)S2!kuqv|MFZ$YgEYHqa_ z)dGxR(O~HMe+?JNM@$ce)zGq}bI4s|YJ`q0gUv!XhXu0Eamrk ztzlUUm-GxOu0^FoAEv{cqWM^6bL3g1zHnY$4QG+{Mr6t7oft^B*jmyM zxy$`O*G^0w^?(Xm!I{Acvh_s!XC+{^g}Qr{Q1wVE^;N>SSC~X3D1&K0O&P)>4}?HylF6?dDPA(3okAOqIoMM+E0@ zqrqt40$^HeeBrt}#yNQgH%PSwz-56-;T$&}k, 2011 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-05-17 23:12+0200\n" +"PO-Revision-Date: 2017-09-19 16:41+0000\n" +"Last-Translator: Jannis Leidel \n" +"Language-Team: Urdu (http://www.transifex.com/django/django/language/ur/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ur\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, javascript-format +msgid "Available %s" +msgstr "دستیاب %s" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "" + +msgid "Filter" +msgstr "چھانٹیں" + +msgid "Choose all" +msgstr "سب منتخب کریں" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "" + +msgid "Choose" +msgstr "" + +msgid "Remove" +msgstr "خارج کریں" + +#, javascript-format +msgid "Chosen %s" +msgstr "منتخب شدہ %s" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" + +msgid "Remove all" +msgstr "" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "" + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "%(cnt)s میں سے %(sel)s منتخب کیا گیا" +msgstr[1] "%(cnt)s میں سے %(sel)s منتخب کیے گئے" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" +"آپ کے پاس ذاتی قابل تدوین خانوں میں غیر محفوظ تبدیلیاں موجود ھیں۔ اگر آپ " +"کوئی کاروائی کریں گے تو آپ کی غیر محفوظ تبدیلیاں ضائع ھو جائیں گی۔" + +msgid "" +"You have selected an action, but you haven't saved your changes to " +"individual fields yet. Please click OK to save. You'll need to re-run the " +"action." +msgstr "" +"آپ نے ایک کاروائی منتخب کی ھے لیکن ابھی تک آپ نے ذاتی خانوں میں اپنی " +"تبدیلیاں محفوظ نہیں کی ہیں براہ مھربانی محفوط کرنے کے لئے OK پر کلک کریں۔ آپ " +"کاوائی دوبارہ چلانے کی ضرورت ھوگی۔" + +msgid "" +"You have selected an action, and you haven't made any changes on individual " +"fields. You're probably looking for the Go button rather than the Save " +"button." +msgstr "" +"آپ نے ایک کاروائی منتخب کی ھے، اور آپ نے ذاتی خانوں میں کوئی تبدیلی نہیں کی " +"غالباً آپ 'جاؤ' بٹن تلاش کر رھے ھیں بجائے 'مخفوظ کریں' بٹن کے۔" + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "" +msgstr[1] "" + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "" +msgstr[1] "" + +msgid "Now" +msgstr "اب" + +msgid "Choose a Time" +msgstr "" + +msgid "Choose a time" +msgstr "وقت منتخب کریں" + +msgid "Midnight" +msgstr "نصف رات" + +msgid "6 a.m." +msgstr "6 ص" + +msgid "Noon" +msgstr "دوپھر" + +msgid "6 p.m." +msgstr "" + +msgid "Cancel" +msgstr "منسوخ کریں" + +msgid "Today" +msgstr "آج" + +msgid "Choose a Date" +msgstr "" + +msgid "Yesterday" +msgstr "گزشتہ کل" + +msgid "Tomorrow" +msgstr "آئندہ کل" + +msgid "January" +msgstr "" + +msgid "February" +msgstr "" + +msgid "March" +msgstr "" + +msgid "April" +msgstr "" + +msgid "May" +msgstr "" + +msgid "June" +msgstr "" + +msgid "July" +msgstr "" + +msgid "August" +msgstr "" + +msgid "September" +msgstr "" + +msgid "October" +msgstr "" + +msgid "November" +msgstr "" + +msgid "December" +msgstr "" + +msgctxt "one letter Sunday" +msgid "S" +msgstr "" + +msgctxt "one letter Monday" +msgid "M" +msgstr "" + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "" + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "" + +msgctxt "one letter Thursday" +msgid "T" +msgstr "" + +msgctxt "one letter Friday" +msgid "F" +msgstr "" + +msgctxt "one letter Saturday" +msgid "S" +msgstr "" + +msgid "Show" +msgstr "دکھائیں" + +msgid "Hide" +msgstr "چھپائیں" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/uz/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/uz/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..253820c477e6e4d92329ec4d38250ee7cc6b9797 GIT binary patch literal 4634 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/uz/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/uz/LC_MESSAGES/django.po new file mode 100644 index 0000000000..8b4f8fd6b8 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/uz/LC_MESSAGES/django.po @@ -0,0 +1,724 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Alex Ibragimov, 2021 +# Anvar Ulugov , 2020 +# Bedilbek Khamidov , 2019 +# Claude Paroz , 2019 +# Nuriddin Islamov, 2021 +# Shukrullo Turgunov , 2021,2024 +# Sukhrobbek Ismatov , 2019 +# Yet Sum , 2019 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-09-18 11:41-0300\n" +"PO-Revision-Date: 2024-01-25 07:05+0000\n" +"Last-Translator: Shukrullo Turgunov , 2021,2024\n" +"Language-Team: Uzbek (http://app.transifex.com/django/django/language/uz/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: uz\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "%(verbose_name_plural)s larni o'chirish" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "%(count)d%(items)s muvaffaqiyatli o'chirildi." + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "%(name)s o'chirib bo'lmadi" + +msgid "Are you sure?" +msgstr "Ishonchingiz komilmi?" + +msgid "Administration" +msgstr "Administratsiya" + +msgid "All" +msgstr "Barchasi" + +msgid "Yes" +msgstr "Ha" + +msgid "No" +msgstr "Yo'q" + +msgid "Unknown" +msgstr "Noma'lum" + +msgid "Any date" +msgstr "Istalgan kun" + +msgid "Today" +msgstr "Bugun" + +msgid "Past 7 days" +msgstr "O'tgan 7 kun" + +msgid "This month" +msgstr "Shu oyda" + +msgid "This year" +msgstr "Shu yilda" + +msgid "No date" +msgstr "Sanasi yo'q" + +msgid "Has date" +msgstr "Sanasi bor" + +msgid "Empty" +msgstr "Bo'sh" + +msgid "Not empty" +msgstr "Bo'sh emas" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" +"Xodimlar akkaunti uchun to'g'ri %(username)s va parolni kiriting. E'tibor " +"bering, har ikkala maydon ham harf katta-kichikligini hisobga olishi mumkin." + +msgid "Action:" +msgstr "Harakat:" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "Boshqa %(verbose_name)s qo‘shish" + +msgid "Remove" +msgstr "O'chirish" + +msgid "Addition" +msgstr " Qo'shish" + +msgid "Change" +msgstr "O'zgartirish" + +msgid "Deletion" +msgstr "O'chirish" + +msgid "action time" +msgstr "harakat vaqti" + +msgid "user" +msgstr "foydalanuvchi" + +msgid "content type" +msgstr "tarkib turi" + +msgid "object id" +msgstr "obyekt identifikatori" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/library/functions.html#repr) +msgid "object repr" +msgstr "obyekt taqdimi" + +msgid "action flag" +msgstr "harakat bayrog'i" + +msgid "change message" +msgstr "xabarni o'zgartirish" + +msgid "log entry" +msgstr "jurnal yozuvi" + +msgid "log entries" +msgstr "jurnal yozuvlari" + +#, python-format +msgid "Added “%(object)s”." +msgstr "\"%(object)s\" qo'shildi." + +#, python-format +msgid "Changed “%(object)s” — %(changes)s" +msgstr "%(object)s dan %(changes)sga o'zgartirildi." + +#, python-format +msgid "Deleted “%(object)s.”" +msgstr "\"%(object)s\" o'chirildi." + +msgid "LogEntry Object" +msgstr "" + +#, python-brace-format +msgid "Added {name} “{object}”." +msgstr "" + +msgid "Added." +msgstr "" + +msgid "and" +msgstr "va" + +#, python-brace-format +msgid "Changed {fields} for {name} “{object}”." +msgstr "" + +#, python-brace-format +msgid "Changed {fields}." +msgstr "" + +#, python-brace-format +msgid "Deleted {name} “{object}”." +msgstr "" + +msgid "No fields changed." +msgstr "" + +msgid "None" +msgstr "Bo'sh" + +msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." +msgstr "" + +msgid "Select this object for an action - {}" +msgstr "" + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully." +msgstr "" + +msgid "You may edit it again below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} “{obj}” was added successfully. You may add another {name} below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may edit it again below." +msgstr "" + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully. You may edit it again below." +msgstr "" + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may add another {name} " +"below." +msgstr "" + +#, python-brace-format +msgid "The {name} “{obj}” was changed successfully." +msgstr "{name} \"{obj}\" muvaffaqiyatli o'zgartirildi." + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" + +msgid "No action selected." +msgstr "" + +#, python-format +msgid "The %(name)s “%(obj)s” was deleted successfully." +msgstr "%(name)s%(obj)smuvaffaqiyatli o'chirildi" + +#, python-format +msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" +msgstr "" + +#, python-format +msgid "Add %s" +msgstr "Qo'shish %s" + +#, python-format +msgid "Change %s" +msgstr "%sni o'zgartirish" + +#, python-format +msgid "View %s" +msgstr "Ko'rish %s" + +msgid "Database error" +msgstr "Ma'lumotlar bazasi xatoligi yuz berdi" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "" + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "" + +#, python-format +msgid "Change history: %s" +msgstr "" + +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" + +msgid "Django site admin" +msgstr "" + +msgid "Django administration" +msgstr "" + +msgid "Site administration" +msgstr "" + +msgid "Log in" +msgstr "" + +#, python-format +msgid "%(app)s administration" +msgstr "" + +msgid "Page not found" +msgstr "" + +msgid "We’re sorry, but the requested page could not be found." +msgstr "" + +msgid "Home" +msgstr "" + +msgid "Server error" +msgstr "Server xatoligi" + +msgid "Server error (500)" +msgstr "Server xatoligi (500)" + +msgid "Server Error (500)" +msgstr "Server xatoligi (500)" + +msgid "" +"There’s been an error. It’s been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" + +msgid "Run the selected action" +msgstr "Tanlangan faoliyatni ishga tushirish" + +msgid "Go" +msgstr "" + +msgid "Click here to select the objects across all pages" +msgstr "" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "" + +msgid "Clear selection" +msgstr "" + +msgid "Breadcrumbs" +msgstr "" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "" + +msgid "Add" +msgstr "Qo'shish" + +msgid "View" +msgstr "Ko'rish" + +msgid "You don’t have permission to view or edit anything." +msgstr "" + +msgid "" +"First, enter a username and password. Then, you’ll be able to edit more user " +"options." +msgstr "" + +msgid "Enter a username and password." +msgstr "Username va parolni kiritish" + +msgid "Change password" +msgstr "Parolni o'zgartirish" + +msgid "Please correct the error below." +msgid_plural "Please correct the errors below." +msgstr[0] "" + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "" + +msgid "Skip to main content" +msgstr "" + +msgid "Welcome," +msgstr "Xush kelibsiz," + +msgid "View site" +msgstr "Saytni ko'rish" + +msgid "Documentation" +msgstr "Qo'llanma" + +msgid "Log out" +msgstr "Chiqish" + +#, python-format +msgid "Add %(name)s" +msgstr "%(name)sqo'shish" + +msgid "History" +msgstr "" + +msgid "View on site" +msgstr "Saytda ko'rish" + +msgid "Filter" +msgstr "Saralash" + +msgid "Hide counts" +msgstr "" + +msgid "Show counts" +msgstr "" + +msgid "Clear all filters" +msgstr "" + +msgid "Remove from sorting" +msgstr "Tartiblashdan chiqarish" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "" + +msgid "Toggle sorting" +msgstr "" + +msgid "Toggle theme (current theme: auto)" +msgstr "" + +msgid "Toggle theme (current theme: light)" +msgstr "" + +msgid "Toggle theme (current theme: dark)" +msgstr "" + +msgid "Delete" +msgstr "O'chirish" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" + +msgid "Objects" +msgstr "" + +msgid "Yes, I’m sure" +msgstr "" + +msgid "No, take me back" +msgstr "" + +msgid "Delete multiple objects" +msgstr "" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" + +msgid "Delete?" +msgstr "O'chirasizmi?" + +#, python-format +msgid " By %(filter_title)s " +msgstr "" + +msgid "Summary" +msgstr "Xulosa" + +msgid "Recent actions" +msgstr "So'ngi harakatlar" + +msgid "My actions" +msgstr "Mening harakatlarim" + +msgid "None available" +msgstr "" + +msgid "Added:" +msgstr "" + +msgid "Changed:" +msgstr "" + +msgid "Deleted:" +msgstr "" + +msgid "Unknown content" +msgstr "" + +msgid "" +"Something’s wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" + +msgid "Forgotten your password or username?" +msgstr "" + +msgid "Toggle navigation" +msgstr "Navigatsiyani almashtirish" + +msgid "Sidebar" +msgstr "" + +msgid "Start typing to filter…" +msgstr "" + +msgid "Filter navigation items" +msgstr "" + +msgid "Date/time" +msgstr "" + +msgid "User" +msgstr "" + +msgid "Action" +msgstr "" + +msgid "entry" +msgid_plural "entries" +msgstr[0] "" + +msgid "" +"This object doesn’t have a change history. It probably wasn’t added via this " +"admin site." +msgstr "" + +msgid "Show all" +msgstr "" + +msgid "Save" +msgstr "Saqlash" + +msgid "Popup closing…" +msgstr "" + +msgid "Search" +msgstr "Izlash" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "" + +msgid "Save as new" +msgstr "" + +msgid "Save and add another" +msgstr "" + +msgid "Save and continue editing" +msgstr "" + +msgid "Save and view" +msgstr "" + +msgid "Close" +msgstr "" + +#, python-format +msgid "Change selected %(model)s" +msgstr "" + +#, python-format +msgid "Add another %(model)s" +msgstr "" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "" + +#, python-format +msgid "View selected %(model)s" +msgstr "" + +msgid "Thanks for spending some quality time with the web site today." +msgstr "" + +msgid "Log in again" +msgstr "" + +msgid "Password change" +msgstr "" + +msgid "Your password was changed." +msgstr "" + +msgid "" +"Please enter your old password, for security’s sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" + +msgid "Change my password" +msgstr "" + +msgid "Password reset" +msgstr "" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "" + +msgid "Password reset confirmation" +msgstr "" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" + +msgid "New password:" +msgstr "" + +msgid "Confirm password:" +msgstr "" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" + +msgid "" +"We’ve emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" + +msgid "" +"If you don’t receive an email, please make sure you’ve entered the address " +"you registered with, and check your spam folder." +msgstr "" + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" + +msgid "Please go to the following page and choose a new password:" +msgstr "" + +msgid "Your username, in case you’ve forgotten:" +msgstr "" + +msgid "Thanks for using our site!" +msgstr "" + +#, python-format +msgid "The %(site_name)s team" +msgstr "" + +msgid "" +"Forgotten your password? Enter your email address below, and we’ll email " +"instructions for setting a new one." +msgstr "" + +msgid "Email address:" +msgstr "" + +msgid "Reset my password" +msgstr "Parolimni tiklash" + +msgid "Select all objects on this page for an action" +msgstr "" + +msgid "All dates" +msgstr "Barcha sanalar" + +#, python-format +msgid "Select %s" +msgstr "%sni tanlash" + +#, python-format +msgid "Select %s to change" +msgstr "" + +#, python-format +msgid "Select %s to view" +msgstr "" + +msgid "Date:" +msgstr "Sana:" + +msgid "Time:" +msgstr "Vaqt:" + +msgid "Lookup" +msgstr "Izlash" + +msgid "Currently:" +msgstr "Hozirda:" + +msgid "Change:" +msgstr "O'zgartirish:" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/uz/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/uz/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..7c922f69173f5f96c983a7a856ed85df6f4bf2a4 GIT binary patch literal 3783 zcmchZ%ZnUE9LGzI8dr_)_p4lulW3;*p+=cx!ObRXHgR`DcCs;whwACt?#gsm%~n^> zWESypP(%b367e7?=)u=P1yK+LLH_{Jn;=B+BAz^W6u-ajnq(5A1_Ya}{&dy+>Q}#4 zRqc;gt~^zJCn71pPOB|2@x- zz)Laynddj2-+?0-KMr05{tDg({tn&+UJK>x!70yKkk(%WA;Oly3&F>IzvY>L_+uGf zU`~!q4 z_6jD`dar@oz&Amf_XF4ge+I7tmmx$v3|<31<@-l{|6TBEjDHDU3w{UgM{a%rDNj={ z3QMxbJOxPWC%&&iTDJfxFHeJ5n!N;W0FQdU?fD6KCC0x3N&b6q3wRuS2;6Y7kH66YY^$Ebb(vY$gaE4=(z=r;&Kxj*-1WP3cCUAZZvu*9uzCeCp}l7(H^)C?RGSJ z;6_;|^iA;@JT-jW<2yHk6dQU*E0i@upPSHVZx0@XmrbBuk9HXv`A+ep7zJol19za& zQ%AcK4IyKfqfwo1M%#!+&#e_0CvM!7%XD+j%?jVRsihr0F(6w`M*sNRRxW}pU|V^I zFx{~#Wz$7m{ug-S)3O1?2?GeWmy%4QN{a_PYZ-znTsuc@-3o*V9^<=kBAQdz26 zZSD+jmFl=iQw($AxWOs`n;HCWWoEjv{2ijz?2}?UWlLtEv}{&}wh*?@W>xCY->o9a z_6S{$?J3ee+f!)C=7nt~c=y@7inNLo#}qO^*w>f?qUmQPR8|AFT>y z6cM!$3Z?5w$k6JpXE>(IJUF9KC-QvKB3}jn(V{9u|7MYiP##T_8M2!-`yC0FQK^pN zM_%K5rK~a@nO^158RN+g$sDyv>Zr03fjTa94nzpC(6Pj3)leR(u8Ingav3RCZnqUB z(N|=!uQyGDkL+8l@0VRgqIEiF8hmnma-u#lS)aI{Pi$@6KY7nM zo{>jH?&?h|be;-lY=bWpa5_Sz&S3-x2qbh|h*;K}Qe+K&U@eqwzA168(-<4;^?HG$ z*=j`|30fu_tIQf8^^?bnwXw}3^K$_(xOYp*jZVzY`h;M+zsp3k)6XE@+nrJ5KNEZh5fJi|*kfqJwycY#Ym06)HGk zO_~ZW2`#kZm8O_2i&gjc-5qqMid+pO26}W%Mq!2WcREy4VIdSMR2jBSwH7a03936Z zP!Ii6Aiwk)&?hb7XiVhBKLT1=+a7&#t7nT!C6kQ ztHR4Km_Av&+pHmR{*P#Rqz z?qqBzYHPU8EoEx8=)-|nVNyTBm7BmCI?iLd@3+9I8jgF_Zi`fS5lrO9!o_mhs4taK z-mYwDE951H4kQvuG4L<-6_n$$ixIr6$Z$I#$HkzsstEoM)}Dyxzu0>s#HU*vqbhcx zAYy@1DfdojYH3yBzCZ_VAi8utlx63Ov&fT>^5a8|Ftt&`uB`aI62WIwTp~3IqKn`p zR#nrhkRhnmT9t+}ojez-*yb55LaqMv%, 2019 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-01-15 09:00+0100\n" +"PO-Revision-Date: 2021-12-15 16:52+0000\n" +"Last-Translator: Nuriddin Islamov\n" +"Language-Team: Uzbek (http://www.transifex.com/django/django/language/uz/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: uz\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#, javascript-format +msgid "Available %s" +msgstr "Mavjud %s" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" +"Bu mavjud %s ro'yxati. Siz ulardan ba'zilarini quyidagi maydonchada " +"belgilab, so'ng ikkala maydonlar orasidagi \"Tanlash\" ko'rsatkichiga bosish " +"orqali tanlashingiz mumkin." + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "" +"Mavjud bo'lgan %s larni ro'yxatini filtrlash uchun ushbu maydonchaga " +"kiriting." + +msgid "Filter" +msgstr "Filtrlash" + +msgid "Choose all" +msgstr "Barchasini tanlash" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "Barcha %s larni birdan tanlash uchun bosing." + +msgid "Choose" +msgstr "Tanlash" + +msgid "Remove" +msgstr "O'chirish" + +#, javascript-format +msgid "Chosen %s" +msgstr "Tanlangan %s" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" +"Bu tanlangan %s ro'yxati. Siz ulardan ba'zilarini quyidagi maydonchada " +"belgilab, so'ng ikkala maydonlar orasidagi \"O'chirish\" ko'rsatkichiga " +"bosish orqali o'chirishingiz mumkin." + +msgid "Remove all" +msgstr "Barchasini o'chirish" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "Barcha tanlangan %s larni birdan o'chirib tashlash uchun bosing." + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "%(cnt)s dan %(sel)s tanlandi" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" +"Siz alohida tahrirlash mumkin bo'lgan maydonlarda saqlanmagan " +"o‘zgarishlaringiz mavjud. Agar siz harakatni ishga tushirsangiz, saqlanmagan " +"o'zgarishlaringiz yo'qotiladi." + +msgid "" +"You have selected an action, but you haven’t saved your changes to " +"individual fields yet. Please click OK to save. You’ll need to re-run the " +"action." +msgstr "" + +msgid "" +"You have selected an action, and you haven’t made any changes on individual " +"fields. You’re probably looking for the Go button rather than the Save " +"button." +msgstr "" + +msgid "Now" +msgstr "Hozir" + +msgid "Midnight" +msgstr "Yarim tun" + +msgid "6 a.m." +msgstr "6 t.o." + +msgid "Noon" +msgstr "Kun o'rtasi" + +msgid "6 p.m." +msgstr "6 t.k." + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "Eslatma: Siz server vaqtidan %s soat oldindasiz." + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "Eslatma: Siz server vaqtidan %s soat orqadasiz." + +msgid "Choose a Time" +msgstr "Vaqtni tanlang" + +msgid "Choose a time" +msgstr "Vaqtni tanlang" + +msgid "Cancel" +msgstr "Bekor qilish" + +msgid "Today" +msgstr "Bugun" + +msgid "Choose a Date" +msgstr "Sanani tanlang" + +msgid "Yesterday" +msgstr "Kecha" + +msgid "Tomorrow" +msgstr "Ertaga" + +msgid "January" +msgstr "Yanvar" + +msgid "February" +msgstr "Fevral" + +msgid "March" +msgstr "Mart" + +msgid "April" +msgstr "Aprel" + +msgid "May" +msgstr "May" + +msgid "June" +msgstr "Iyun" + +msgid "July" +msgstr "Iyul" + +msgid "August" +msgstr "Avgust" + +msgid "September" +msgstr "Sentabr" + +msgid "October" +msgstr "Oktabr" + +msgid "November" +msgstr "Noyabr" + +msgid "December" +msgstr "Dekabr" + +msgctxt "abbrev. month January" +msgid "Jan" +msgstr "" + +msgctxt "abbrev. month February" +msgid "Feb" +msgstr "" + +msgctxt "abbrev. month March" +msgid "Mar" +msgstr "" + +msgctxt "abbrev. month April" +msgid "Apr" +msgstr "" + +msgctxt "abbrev. month May" +msgid "May" +msgstr "" + +msgctxt "abbrev. month June" +msgid "Jun" +msgstr "" + +msgctxt "abbrev. month July" +msgid "Jul" +msgstr "" + +msgctxt "abbrev. month August" +msgid "Aug" +msgstr "" + +msgctxt "abbrev. month September" +msgid "Sep" +msgstr "" + +msgctxt "abbrev. month October" +msgid "Oct" +msgstr "" + +msgctxt "abbrev. month November" +msgid "Nov" +msgstr "" + +msgctxt "abbrev. month December" +msgid "Dec" +msgstr "" + +msgctxt "one letter Sunday" +msgid "S" +msgstr "Ya" + +msgctxt "one letter Monday" +msgid "M" +msgstr "Du" + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "Se" + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "Ch" + +msgctxt "one letter Thursday" +msgid "T" +msgstr "Pa" + +msgctxt "one letter Friday" +msgid "F" +msgstr "Ju" + +msgctxt "one letter Saturday" +msgid "S" +msgstr "Sh" + +msgid "Show" +msgstr "Ko'rsatish" + +msgid "Hide" +msgstr "Bekitish" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/vi/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/vi/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..1091b6fcd50b0d8a1b6abb73a19f7bbfb5ee4fb2 GIT binary patch literal 18077 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 Sw|ma{y9PevXEmawrT+y}Br&xB literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/vi/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/vi/LC_MESSAGES/django.po new file mode 100644 index 0000000000..60fe2ce82c --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/vi/LC_MESSAGES/django.po @@ -0,0 +1,726 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# Dimitris Glezos , 2012 +# Jannis Leidel , 2011 +# Thanh Le Viet , 2013 +# Tran , 2011 +# Tran Van , 2011-2013,2016,2018 +# tinnguyen121221, 2021 +# Vuong Nguyen , 2011 +# xgenvn , 2014 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-09-21 10:22+0200\n" +"PO-Revision-Date: 2021-12-23 17:57+0000\n" +"Last-Translator: tinnguyen121221\n" +"Language-Team: Vietnamese (http://www.transifex.com/django/django/language/" +"vi/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: vi\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "Xóa các %(verbose_name_plural)s đã chọn" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "Đã xóa thành công %(count)d %(items)s ." + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "Không thể xóa %(name)s" + +msgid "Are you sure?" +msgstr "Bạn có chắc chắn không?" + +msgid "Administration" +msgstr "Quản trị website" + +msgid "All" +msgstr "Tất cả" + +msgid "Yes" +msgstr "Có" + +msgid "No" +msgstr "Không" + +msgid "Unknown" +msgstr "Chưa xác định" + +msgid "Any date" +msgstr "Bất kì ngày nào" + +msgid "Today" +msgstr "Hôm nay" + +msgid "Past 7 days" +msgstr "7 ngày trước" + +msgid "This month" +msgstr "Tháng này" + +msgid "This year" +msgstr "Năm nay" + +msgid "No date" +msgstr "Không có ngày" + +msgid "Has date" +msgstr "Có ngày" + +msgid "Empty" +msgstr "Rỗng" + +msgid "Not empty" +msgstr "Không rỗng" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" +"Bạn hãy nhập đúng %(username)s và mật khẩu. (Có phân biệt chữ hoa, thường)" + +msgid "Action:" +msgstr "Hoạt động:" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "Thêm một %(verbose_name)s " + +msgid "Remove" +msgstr "Gỡ bỏ" + +msgid "Addition" +msgstr "Thêm" + +msgid "Change" +msgstr "Thay đổi" + +msgid "Deletion" +msgstr "Xóa" + +msgid "action time" +msgstr "Thời gian tác động" + +msgid "user" +msgstr "người dùng" + +msgid "content type" +msgstr "kiểu nội dung" + +msgid "object id" +msgstr "Mã đối tượng" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/library/functions.html#repr) +msgid "object repr" +msgstr "đối tượng repr" + +msgid "action flag" +msgstr "hiệu hành động" + +msgid "change message" +msgstr "thay đổi tin nhắn" + +msgid "log entry" +msgstr "đăng nhập" + +msgid "log entries" +msgstr "mục đăng nhập" + +#, python-format +msgid "Added “%(object)s”." +msgstr "Đã thêm “%(object)s”." + +#, python-format +msgid "Changed “%(object)s” — %(changes)s" +msgstr "Đã thay đổi “%(object)s” — %(changes)s" + +#, python-format +msgid "Deleted “%(object)s.”" +msgstr "Đã xóa “%(object)s.”" + +msgid "LogEntry Object" +msgstr "LogEntry Object" + +#, python-brace-format +msgid "Added {name} “{object}”." +msgstr "Đã thêm {name} “{object}”." + +msgid "Added." +msgstr "Được thêm." + +msgid "and" +msgstr "và" + +#, python-brace-format +msgid "Changed {fields} for {name} “{object}”." +msgstr "Đã thay đổi {fields} cho {name} “{object}”." + +#, python-brace-format +msgid "Changed {fields}." +msgstr "Đã thay đổi {fields}." + +#, python-brace-format +msgid "Deleted {name} “{object}”." +msgstr "Đã xóa {name} “{object}”." + +msgid "No fields changed." +msgstr "Không có trường nào thay đổi" + +msgid "None" +msgstr "Không" + +msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." +msgstr "" +"Nhấn giữ phím “Control”, hoặc “Command” trên máy Mac, để chọn nhiều hơn một." + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully." +msgstr "{name} “{obj}” được thêm vào thành công." + +msgid "You may edit it again below." +msgstr "Bạn có thể chỉnh sửa lại bên dưới." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was added successfully. You may add another {name} below." +msgstr "" +"{name} “{obj}” được thêm vào thành công. Bạn có thể thêm một {name} khác bên " +"dưới." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may edit it again below." +msgstr "" +"{name} “{obj}” được chỉnh sửa thành công. Bạn có thể chỉnh sửa lại bên dưới." + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully. You may edit it again below." +msgstr "" +"{name} “{obj}” được thêm vào thành công. Bạn có thể chỉnh sửa lại bên dưới." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may add another {name} " +"below." +msgstr "" +"{name} “{obj}” được chỉnh sửa thành công. Bạn có thể thêm một {name} khác " +"bên dưới." + +#, python-brace-format +msgid "The {name} “{obj}” was changed successfully." +msgstr "{name} “{obj}” đã được thay đổi thành công." + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" +"Mục tiêu phải được chọn mới có thể thực hiện hành động trên chúng. Không có " +"mục tiêu nào đã được thay đổi." + +msgid "No action selected." +msgstr "Không có hoạt động nào được lựa chọn." + +#, python-format +msgid "The %(name)s “%(obj)s” was deleted successfully." +msgstr "%(name)s “%(obj)s” đã được xóa thành công." + +#, python-format +msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" +msgstr "%(name)s với ID “%(key)s” không tồn tại. Có lẽ nó đã bị xóa?" + +#, python-format +msgid "Add %s" +msgstr "Thêm %s" + +#, python-format +msgid "Change %s" +msgstr "Thay đổi %s" + +#, python-format +msgid "View %s" +msgstr "Xem %s" + +msgid "Database error" +msgstr "Cơ sở dữ liệu bị lỗi" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] " %(count)s %(name)s đã được thay đổi thành công." + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "Tất cả %(total_count)s đã được chọn" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "0 của %(cnt)s được chọn" + +#, python-format +msgid "Change history: %s" +msgstr "Lịch sử thay đổi: %s" + +#. Translators: Model verbose name and instance representation, +#. suitable to be an item in a list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "%(class_name)s %(instance)s" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" +"Xóa %(class_name)s %(instance)s sẽ tự động xóa các đối tượng liên quan sau: " +"%(related_objects)s" + +msgid "Django site admin" +msgstr "Trang web admin Django" + +msgid "Django administration" +msgstr "Trang quản trị cho Django" + +msgid "Site administration" +msgstr "Site quản trị hệ thống." + +msgid "Log in" +msgstr "Đăng nhập" + +#, python-format +msgid "%(app)s administration" +msgstr "Quản lý %(app)s" + +msgid "Page not found" +msgstr "Không tìm thấy trang nào" + +msgid "We’re sorry, but the requested page could not be found." +msgstr "Rất tiếc, không thể tìm thấy trang được yêu cầu." + +msgid "Home" +msgstr "Trang chủ" + +msgid "Server error" +msgstr "Lỗi máy chủ" + +msgid "Server error (500)" +msgstr "Lỗi máy chủ (500)" + +msgid "Server Error (500)" +msgstr "Lỗi máy chủ (500)" + +msgid "" +"There’s been an error. It’s been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" +"Có lỗi xảy ra. Lỗi sẽ được gửi đến quản trị website qua email và sẽ được " +"khắc phục sớm. Cám ơn bạn." + +msgid "Run the selected action" +msgstr "Bắt đầu hành động lựa chọn" + +msgid "Go" +msgstr "Đi đến" + +msgid "Click here to select the objects across all pages" +msgstr "Click vào đây để lựa chọn các đối tượng trên tất cả các trang" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "Hãy chọn tất cả %(total_count)s %(module_name)s" + +msgid "Clear selection" +msgstr "Xóa lựa chọn" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "Các mô models trong %(name)s" + +msgid "Add" +msgstr "Thêm vào" + +msgid "View" +msgstr "Xem" + +msgid "You don’t have permission to view or edit anything." +msgstr "Bạn không có quyền xem hoặc chỉnh sửa bất cứ gì." + +msgid "" +"First, enter a username and password. Then, you’ll be able to edit more user " +"options." +msgstr "" +"Đầu tiên, điền tên đăng nhập và mật khẩu. Sau đó, bạn mới có thể chỉnh sửa " +"nhiều hơn lựa chọn của người dùng." + +msgid "Enter a username and password." +msgstr "Điền tên đăng nhập và mật khẩu." + +msgid "Change password" +msgstr "Đổi mật khẩu" + +msgid "Please correct the error below." +msgstr "Hãy sửa lỗi sai dưới đây" + +msgid "Please correct the errors below." +msgstr "Hãy chỉnh sửa lại các lỗi sau." + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "Hãy nhập mật khẩu mới cho người sử dụng %(username)s." + +msgid "Welcome," +msgstr "Chào mừng bạn," + +msgid "View site" +msgstr "Xem trang web" + +msgid "Documentation" +msgstr "Tài liệu" + +msgid "Log out" +msgstr "Thoát" + +#, python-format +msgid "Add %(name)s" +msgstr "Thêm vào %(name)s" + +msgid "History" +msgstr "Bản ghi nhớ" + +msgid "View on site" +msgstr "Xem trên trang web" + +msgid "Filter" +msgstr "Bộ lọc" + +msgid "Clear all filters" +msgstr "Xóa tất cả bộ lọc" + +msgid "Remove from sorting" +msgstr "Bỏ khỏi sắp xếp" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "Sắp xếp theo:%(priority_number)s" + +msgid "Toggle sorting" +msgstr "Hoán đổi sắp xếp" + +msgid "Delete" +msgstr "Xóa" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" +"Xóa %(object_name)s '%(escaped_object)s' sẽ làm mất những dữ liệu có liên " +"quan. Tài khoản của bạn không được cấp quyển xóa những dữ liệu đi kèm theo." + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" +"Xóa các %(object_name)s ' %(escaped_object)s ' sẽ bắt buộc xóa các đối " +"tượng được bảo vệ sau đây:" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" +"Bạn có chắc là muốn xóa %(object_name)s \"%(escaped_object)s\"?Tất cả những " +"dữ liệu đi kèm dưới đây cũng sẽ bị mất:" + +msgid "Objects" +msgstr "Đối tượng" + +msgid "Yes, I’m sure" +msgstr "Có, tôi chắc chắn" + +msgid "No, take me back" +msgstr "Không, đưa tôi trở lại" + +msgid "Delete multiple objects" +msgstr "Xóa nhiều đối tượng" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" +"Xóa các %(objects_name)s sẽ bắt buộc xóa các đối tượng liên quan, nhưng tài " +"khoản của bạn không có quyền xóa các loại đối tượng sau đây:" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "" +"Xóa các %(objects_name)s sẽ bắt buộc xóa các đối tượng đã được bảo vệ sau " +"đây:" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" +"Bạn chắc chắn muốn xóa những lựa chọn %(objects_name)s? Tất cả những đối " +"tượng sau và những đối tượng liên quan sẽ được xóa:" + +msgid "Delete?" +msgstr "Bạn muốn xóa?" + +#, python-format +msgid " By %(filter_title)s " +msgstr "Bởi %(filter_title)s " + +msgid "Summary" +msgstr "Tóm tắt" + +msgid "Recent actions" +msgstr "Hoạt động gần đây" + +msgid "My actions" +msgstr "Hoạt động của tôi" + +msgid "None available" +msgstr "Không có sẵn" + +msgid "Unknown content" +msgstr "Không biết nội dung" + +msgid "" +"Something’s wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" +"Một vài lỗi với cơ sở dữ liệu cài đặt của bạn. Hãy chắc chắn bảng biểu dữ " +"liệu được tạo phù hợp và dữ liệu có thể được đọc bởi những người sử dụng phù " +"hợp." + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" +"Bạn đã xác thực bằng tài khoản %(username)s, nhưng không đủ quyền để truy " +"cập trang này. Bạn có muốn đăng nhập bằng một tài khoản khác?" + +msgid "Forgotten your password or username?" +msgstr "Bạn quên mật khẩu hoặc tài khoản?" + +msgid "Toggle navigation" +msgstr "" + +msgid "Start typing to filter…" +msgstr "Nhập để lọc..." + +msgid "Filter navigation items" +msgstr "" + +msgid "Date/time" +msgstr "Ngày/giờ" + +msgid "User" +msgstr "Người dùng" + +msgid "Action" +msgstr "Hành động" + +msgid "" +"This object doesn’t have a change history. It probably wasn’t added via this " +"admin site." +msgstr "" +"Đối tượng này không có một lịch sử thay đổi. Nó có lẽ đã không được thêm vào " +"qua trang web admin." + +msgid "Show all" +msgstr "Hiện tất cả" + +msgid "Save" +msgstr "Lưu lại" + +msgid "Popup closing…" +msgstr "Đang đóng cửa sổ popup ..." + +msgid "Search" +msgstr "Tìm kiếm" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "%(counter)s kết quả" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "tổng số %(full_result_count)s" + +msgid "Save as new" +msgstr "Lưu mới" + +msgid "Save and add another" +msgstr "Lưu và thêm mới" + +msgid "Save and continue editing" +msgstr "Lưu và tiếp tục chỉnh sửa" + +msgid "Save and view" +msgstr "Lưu lại và xem" + +msgid "Close" +msgstr "Đóng" + +#, python-format +msgid "Change selected %(model)s" +msgstr "Thay đổi %(model)s đã chọn" + +#, python-format +msgid "Add another %(model)s" +msgstr "Thêm %(model)s khác" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "Xóa %(model)s đã chọn" + +msgid "Thanks for spending some quality time with the web site today." +msgstr "Cảm ơn bạn đã dành thời gian với trang web." + +msgid "Log in again" +msgstr "Đăng nhập lại" + +msgid "Password change" +msgstr "Thay đổi mật khẩu" + +msgid "Your password was changed." +msgstr "Mật khẩu của bạn đã được thay đổi" + +msgid "" +"Please enter your old password, for security’s sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" +"Hãy nhập lại mật khẩu cũ và sau đó nhập mật khẩu mới hai lần để chúng tôi có " +"thể kiểm tra lại xem bạn đã gõ chính xác hay chưa." + +msgid "Change my password" +msgstr "Thay đổi mật khẩu" + +msgid "Password reset" +msgstr "Lập lại mật khẩu" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "Mật khẩu của bạn đã được lập lại. Bạn hãy thử đăng nhập." + +msgid "Password reset confirmation" +msgstr "Xác nhận việc lập lại mật khẩu" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" +"Hãy nhập mật khẩu mới hai lần để chúng tôi có thể kiểm tra xem bạn đã gõ " +"chính xác chưa" + +msgid "New password:" +msgstr "Mật khẩu mới" + +msgid "Confirm password:" +msgstr "Nhập lại mật khẩu:" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"Liên kết đặt lại mật khẩu không hợp lệ, có thể vì nó đã được sử dụng. Xin " +"vui lòng yêu cầu đặt lại mật khẩu mới." + +msgid "" +"We’ve emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" +"Chúng tôi đã gửi cho bạn hướng dẫn thiết lập mật khẩu của bạn qua email, nếu " +"tài khoản tồn tại với email bạn đã nhập. Bạn sẽ nhận được chúng sớm." + +msgid "" +"If you don’t receive an email, please make sure you’ve entered the address " +"you registered with, and check your spam folder." +msgstr "" +"Nếu bạn không nhận được email, hãy đảm bảo rằng bạn đã nhập địa chỉ mà bạn " +"đã đăng ký và kiểm tra thư mục spam của mình." + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" +"Bạn nhận được email này vì bạn đã yêu cầu làm mới lại mật khẩu cho tài khoản " +"của bạn tại %(site_name)s." + +msgid "Please go to the following page and choose a new password:" +msgstr "Hãy vào đường link dưới đây và chọn một mật khẩu mới" + +msgid "Your username, in case you’ve forgotten:" +msgstr "Tên đăng nhập của bạn, trường hợp bạn quên nó:" + +msgid "Thanks for using our site!" +msgstr "Cảm ơn bạn đã sử dụng website của chúng tôi!" + +#, python-format +msgid "The %(site_name)s team" +msgstr "Đội của %(site_name)s" + +msgid "" +"Forgotten your password? Enter your email address below, and we’ll email " +"instructions for setting a new one." +msgstr "" +"Quên mật khẩu? Nhập địa chỉ email vào ô dưới đây. Chúng tôi sẽ email cho bạn " +"hướng dẫn cách thiết lập mật khẩu mới." + +msgid "Email address:" +msgstr "Địa chỉ Email:" + +msgid "Reset my password" +msgstr "Làm lại mật khẩu" + +msgid "All dates" +msgstr "Tất cả các ngày" + +#, python-format +msgid "Select %s" +msgstr "Chọn %s" + +#, python-format +msgid "Select %s to change" +msgstr "Chọn %s để thay đổi" + +#, python-format +msgid "Select %s to view" +msgstr "Chọn %s để xem" + +msgid "Date:" +msgstr "Ngày:" + +msgid "Time:" +msgstr "Giờ:" + +msgid "Lookup" +msgstr "Tìm" + +msgid "Currently:" +msgstr "Hiện nay:" + +msgid "Change:" +msgstr "Thay đổi:" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/vi/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/vi/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..c9d57cda5cf7ba98faa34c97f47471a6b8276552 GIT binary patch literal 5302 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, 2011 +# Tran , 2011 +# Tran Van , 2013 +# tinnguyen121221, 2021 +# Vuong Nguyen , 2011 +# xgenvn , 2014 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-01-15 09:00+0100\n" +"PO-Revision-Date: 2021-12-23 17:25+0000\n" +"Last-Translator: tinnguyen121221\n" +"Language-Team: Vietnamese (http://www.transifex.com/django/django/language/" +"vi/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: vi\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#, javascript-format +msgid "Available %s" +msgstr "Có sẵn %s" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" +"Danh sách các lựa chọn đang có %s. Bạn có thể chọn bằng bách click vào mũi " +"tên \"Chọn\" nằm giữa hai hộp." + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "Bạn hãy nhập vào ô này để lọc các danh sách sau %s." + +msgid "Filter" +msgstr "Lọc" + +msgid "Choose all" +msgstr "Chọn tất cả" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "Click để chọn tất cả %s ." + +msgid "Choose" +msgstr "Chọn" + +msgid "Remove" +msgstr "Xóa" + +#, javascript-format +msgid "Chosen %s" +msgstr "Chọn %s" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" +"Danh sách bạn đã chọn %s. Bạn có thể bỏ chọn bằng cách click vào mũi tên " +"\"Xoá\" nằm giữa hai ô." + +msgid "Remove all" +msgstr "Xoá tất cả" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "Click để bỏ chọn tất cả %s" + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] " %(sel)s của %(cnt)s được chọn" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" +"Bạn chưa lưu những trường đã chỉnh sửa. Nếu bạn chọn hành động này, những " +"chỉnh sửa chưa được lưu sẽ bị mất." + +msgid "" +"You have selected an action, but you haven’t saved your changes to " +"individual fields yet. Please click OK to save. You’ll need to re-run the " +"action." +msgstr "" +"Bạn đã chọn một hành động, nhưng bạn chưa lưu các thay đổi trên các trường. " +"Vui lòng bấm OK để lưu lại. Bạn sẽ cần chạy lại hành dộng." + +msgid "" +"You have selected an action, and you haven’t made any changes on individual " +"fields. You’re probably looking for the Go button rather than the Save " +"button." +msgstr "" +"Bạn đã chọn một hành động và bạn đã không thực hiện bất kỳ thay đổi nào trên " +"các trường. Có lẽ bạn nên bấm nút Đi đến hơn là nút Lưu lại." + +msgid "Now" +msgstr "Bây giờ" + +msgid "Midnight" +msgstr "Nửa đêm" + +msgid "6 a.m." +msgstr "6 giờ sáng" + +msgid "Noon" +msgstr "Buổi trưa" + +msgid "6 p.m." +msgstr "6 giờ chiều" + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "" +"Lưu ý: Hiện tại bạn đang thấy thời gian trước %s giờ so với thời gian máy " +"chủ." + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "" +"Lưu ý: Hiện tại bạn đang thấy thời gian sau %s giờ so với thời gian máy chủ." + +msgid "Choose a Time" +msgstr "Chọn Thời gian" + +msgid "Choose a time" +msgstr "Chọn giờ" + +msgid "Cancel" +msgstr "Hủy bỏ" + +msgid "Today" +msgstr "Hôm nay" + +msgid "Choose a Date" +msgstr "Chọn Ngày" + +msgid "Yesterday" +msgstr "Hôm qua" + +msgid "Tomorrow" +msgstr "Ngày mai" + +msgid "January" +msgstr "Tháng Một" + +msgid "February" +msgstr "Tháng Hai" + +msgid "March" +msgstr "Tháng Ba" + +msgid "April" +msgstr "Tháng Tư" + +msgid "May" +msgstr "Tháng Năm" + +msgid "June" +msgstr "Tháng Sáu" + +msgid "July" +msgstr "Tháng Bảy" + +msgid "August" +msgstr "Tháng Tám" + +msgid "September" +msgstr "Tháng Chín" + +msgid "October" +msgstr "Tháng Mười" + +msgid "November" +msgstr "Tháng Mười Một" + +msgid "December" +msgstr "Tháng Mười Hai" + +msgctxt "abbrev. month January" +msgid "Jan" +msgstr "Tháng Một" + +msgctxt "abbrev. month February" +msgid "Feb" +msgstr "Tháng Hai" + +msgctxt "abbrev. month March" +msgid "Mar" +msgstr "Tháng Ba" + +msgctxt "abbrev. month April" +msgid "Apr" +msgstr "Tháng Tư" + +msgctxt "abbrev. month May" +msgid "May" +msgstr "Tháng Năm" + +msgctxt "abbrev. month June" +msgid "Jun" +msgstr "Tháng Sáu" + +msgctxt "abbrev. month July" +msgid "Jul" +msgstr "Tháng Bảy" + +msgctxt "abbrev. month August" +msgid "Aug" +msgstr "Tháng Tám" + +msgctxt "abbrev. month September" +msgid "Sep" +msgstr "Tháng Chín" + +msgctxt "abbrev. month October" +msgid "Oct" +msgstr "Tháng Mười" + +msgctxt "abbrev. month November" +msgid "Nov" +msgstr "Tháng Mười Một" + +msgctxt "abbrev. month December" +msgid "Dec" +msgstr "Tháng Mười Hai" + +msgctxt "one letter Sunday" +msgid "S" +msgstr "CN" + +msgctxt "one letter Monday" +msgid "M" +msgstr "2" + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "3" + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "4" + +msgctxt "one letter Thursday" +msgid "T" +msgstr "5" + +msgctxt "one letter Friday" +msgid "F" +msgstr "6" + +msgctxt "one letter Saturday" +msgid "S" +msgstr "7" + +msgid "Show" +msgstr "Hiện ra" + +msgid "Hide" +msgstr "Dấu đi" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/zh_Hans/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/zh_Hans/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..7bec9b7a2c756acaa0e7c70f32c07e30a5a8ea4f GIT binary patch literal 17143 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/zh_Hans/LC_MESSAGES/django.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/zh_Hans/LC_MESSAGES/django.po new file mode 100644 index 0000000000..c6fcf86e8f --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/zh_Hans/LC_MESSAGES/django.po @@ -0,0 +1,779 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# lanbla , 2021 +# Brian Wang , 2018 +# Fulong Sun , 2016 +# Huanqun Yang, 2022 +# jack yang, 2023 +# Jannis Leidel , 2011 +# Kevin Sze , 2012 +# Lele Long , 2011,2015 +# Le Yang , 2018 +# li beite , 2020 +# Liping Wang , 2016-2017 +# mozillazg , 2016 +# Ronald White , 2013-2014 +# Scott Jiang, 2023 +# Sean Lee , 2013 +# Sean Lee , 2013 +# slene , 2011 +# Suntravel Chris , 2019 +# Wentao Han , 2018,2020 +# xuyi wang , 2018 +# yf zhan , 2018 +# dykai , 2019 +# ced773123cfad7b4e8b79ca80f736af9, 2012 +# 千百度, 2024 +# LatteFang <370358679@qq.com>, 2020 +# Kevin Sze , 2012 +# 考证 李 , 2020 +# 雨翌 , 2016 +# 高乐喆 , 2023 +# Ronald White , 2013 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-05-22 11:46-0300\n" +"PO-Revision-Date: 2024-08-07 07:05+0000\n" +"Last-Translator: 千百度, 2024\n" +"Language-Team: Chinese (China) (http://app.transifex.com/django/django/" +"language/zh_CN/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: zh_CN\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "删除所选的 %(verbose_name_plural)s" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "成功删除了 %(count)d 个 %(items)s" + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "无法删除 %(name)s" + +msgid "Are you sure?" +msgstr "你确定吗?" + +msgid "Administration" +msgstr "管理" + +msgid "All" +msgstr "全部" + +msgid "Yes" +msgstr "是" + +msgid "No" +msgstr "否" + +msgid "Unknown" +msgstr "未知" + +msgid "Any date" +msgstr "任意日期" + +msgid "Today" +msgstr "今天" + +msgid "Past 7 days" +msgstr "过去7天" + +msgid "This month" +msgstr "本月" + +msgid "This year" +msgstr "今年" + +msgid "No date" +msgstr "没有日期" + +msgid "Has date" +msgstr "具有日期" + +msgid "Empty" +msgstr "空" + +msgid "Not empty" +msgstr "非空" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "" +"请输入一个正确的工作人员账户 %(username)s 和密码. 注意他们都是区分大小写的." + +msgid "Action:" +msgstr "动作" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "添加另一个 %(verbose_name)s" + +msgid "Remove" +msgstr "删除" + +msgid "Addition" +msgstr "添加" + +msgid "Change" +msgstr "修改" + +msgid "Deletion" +msgstr "删除" + +msgid "action time" +msgstr "操作时间" + +msgid "user" +msgstr "用户" + +msgid "content type" +msgstr "内容类型" + +msgid "object id" +msgstr "对象id" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/library/functions.html#repr) +msgid "object repr" +msgstr "对象表示" + +msgid "action flag" +msgstr "动作标志" + +msgid "change message" +msgstr "修改消息" + +msgid "log entry" +msgstr "日志记录" + +msgid "log entries" +msgstr "日志记录" + +#, python-format +msgid "Added “%(object)s”." +msgstr "添加了“%(object)s”。" + +#, python-format +msgid "Changed “%(object)s” — %(changes)s" +msgstr "修改了“%(object)s”—%(changes)s" + +#, python-format +msgid "Deleted “%(object)s.”" +msgstr "删除了“%(object)s”。" + +msgid "LogEntry Object" +msgstr "LogEntry对象" + +#, python-brace-format +msgid "Added {name} “{object}”." +msgstr "添加了 {name}“{object}”。" + +msgid "Added." +msgstr "已添加。" + +msgid "and" +msgstr "和" + +#, python-brace-format +msgid "Changed {fields} for {name} “{object}”." +msgstr "修改了 {name}“{object}”的 {fields}。" + +#, python-brace-format +msgid "Changed {fields}." +msgstr "已修改{fields}。" + +#, python-brace-format +msgid "Deleted {name} “{object}”." +msgstr "删除了 {name}“{object}”。" + +msgid "No fields changed." +msgstr "没有字段被修改。" + +msgid "None" +msgstr "无" + +msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." +msgstr "按住 Control 键或 Mac 上的 Command 键来选择多项。" + +msgid "Select this object for an action - {}" +msgstr "选择此对象执行操作 - {}" + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully." +msgstr "成功添加了 {name}“{obj}”。" + +msgid "You may edit it again below." +msgstr "您可以在下面再次编辑它." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was added successfully. You may add another {name} below." +msgstr "成功添加了 {name}“{obj}”。你可以在下面添加另一个 {name}。" + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may edit it again below." +msgstr "成功修改了 {name}“{obj}”。你可以在下面再次编辑它。" + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may add another {name} " +"below." +msgstr "成功修改了 {name}“{obj}”。你可以在下面添加另一个 {name}。" + +#, python-brace-format +msgid "The {name} “{obj}” was changed successfully." +msgstr "成功修改了 {name}“{obj}”。" + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "条目必须选中以对其进行操作。没有任何条目被更改。" + +msgid "No action selected." +msgstr "未选择动作" + +#, python-format +msgid "The %(name)s “%(obj)s” was deleted successfully." +msgstr "成功删除了 %(name)s“%(obj)s”。" + +#, python-format +msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" +msgstr "ID 为“%(key)s”的 %(name)s 不存在。可能已经被删除了?" + +#, python-format +msgid "Add %s" +msgstr "增加 %s" + +#, python-format +msgid "Change %s" +msgstr "修改 %s" + +#, python-format +msgid "View %s" +msgstr "查看 %s" + +msgid "Database error" +msgstr "数据库错误" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "总共 %(count)s 个 %(name)s 变更成功。" + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "选中了 %(total_count)s 个" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "%(cnt)s 个中 0 个被选" + +#, python-format +msgid "Change history: %s" +msgstr "变更历史: %s" + +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "%(class_name)s %(instance)s" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" +"删除 %(class_name)s %(instance)s 将需要删除以下受保护的相关对象: " +"%(related_objects)s" + +msgid "Django site admin" +msgstr "Django 站点管理员" + +msgid "Django administration" +msgstr "Django 管理" + +msgid "Site administration" +msgstr "站点管理" + +msgid "Log in" +msgstr "登录" + +#, python-format +msgid "%(app)s administration" +msgstr "%(app)s 管理" + +msgid "Page not found" +msgstr "页面没有找到" + +msgid "We’re sorry, but the requested page could not be found." +msgstr "非常抱歉,请求的页面不存在。" + +msgid "Home" +msgstr "首页" + +msgid "Server error" +msgstr "服务器错误" + +msgid "Server error (500)" +msgstr "服务器错误(500)" + +msgid "Server Error (500)" +msgstr "服务器错误 (500)" + +msgid "" +"There’s been an error. It’s been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" +"发生了错误,已经通过电子邮件报告给了网站管理员。我们会尽快修复,感谢您的耐心" +"等待。" + +msgid "Run the selected action" +msgstr "运行选中的动作" + +msgid "Go" +msgstr "执行" + +msgid "Click here to select the objects across all pages" +msgstr "点击此处选择所有页面中包含的对象。" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "选中所有的 %(total_count)s 个 %(module_name)s" + +msgid "Clear selection" +msgstr "清除选中" + +msgid "Breadcrumbs" +msgstr "条形导航" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "在应用程序 %(name)s 中的模型" + +msgid "Add" +msgstr "增加" + +msgid "View" +msgstr "查看" + +msgid "You don’t have permission to view or edit anything." +msgstr "你没有查看或编辑的权限。" + +msgid "" +"First, enter a username and password. Then, you’ll be able to edit more user " +"options." +msgstr "输入用户名和密码后,你将能够编辑更多的用户选项。" + +msgid "Enter a username and password." +msgstr "输入用户名和密码" + +msgid "Change password" +msgstr "修改密码" + +msgid "Set password" +msgstr "设置密码" + +msgid "Please correct the error below." +msgid_plural "Please correct the errors below." +msgstr[0] "请更正以下错误。" + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "为用户 %(username)s 输入一个新的密码。" + +msgid "" +"This action will enable password-based authentication for " +"this user." +msgstr "这将启用本用户基于密码的验证" + +msgid "Disable password-based authentication" +msgstr "禁用基于密码的验证" + +msgid "Enable password-based authentication" +msgstr "启用基于密码的验证" + +msgid "Skip to main content" +msgstr "跳到主要内容" + +msgid "Welcome," +msgstr "欢迎," + +msgid "View site" +msgstr "查看站点" + +msgid "Documentation" +msgstr "文档" + +msgid "Log out" +msgstr "注销" + +#, python-format +msgid "Add %(name)s" +msgstr "增加 %(name)s" + +msgid "History" +msgstr "历史" + +msgid "View on site" +msgstr "在站点上查看" + +msgid "Filter" +msgstr "过滤器" + +msgid "Hide counts" +msgstr "隐藏计数" + +msgid "Show counts" +msgstr "显示计数" + +msgid "Clear all filters" +msgstr "清除所有筛选" + +msgid "Remove from sorting" +msgstr "删除排序" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "排序优先级: %(priority_number)s" + +msgid "Toggle sorting" +msgstr "正逆序切换" + +msgid "Toggle theme (current theme: auto)" +msgstr "切换主题(当前主题:自动)" + +msgid "Toggle theme (current theme: light)" +msgstr "切换主题(当前主题:浅色)" + +msgid "Toggle theme (current theme: dark)" +msgstr "切换主题(当前主题:深色)" + +msgid "Delete" +msgstr "删除" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" +"删除 %(object_name)s '%(escaped_object)s' 会导致删除相关的对象,但你的帐号无" +"权删除下列类型的对象:" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" +"要删除 %(object_name)s '%(escaped_object)s', 将要求删除以下受保护的相关对象:" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" +"你确认想要删除 %(object_name)s \"%(escaped_object)s\"? 下列所有相关的项目都" +"将被删除:" + +msgid "Objects" +msgstr "对象" + +msgid "Yes, I’m sure" +msgstr "是的,我确定" + +msgid "No, take me back" +msgstr "不,返回" + +msgid "Delete multiple objects" +msgstr "删除多个对象" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" +"要删除所选的 %(objects_name)s 结果会删除相关对象, 但你的账户没有权限删除这类" +"对象:" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "要删除所选的 %(objects_name)s, 将要求删除以下受保护的相关对象:" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" +"请确认要删除选中的 %(objects_name)s 吗?以下所有对象和与它们相关的条目将都会" +"被删除:" + +msgid "Delete?" +msgstr "删除?" + +#, python-format +msgid " By %(filter_title)s " +msgstr " 以 %(filter_title)s" + +msgid "Summary" +msgstr "概览" + +msgid "Recent actions" +msgstr "最近动作" + +msgid "My actions" +msgstr "我的动作" + +msgid "None available" +msgstr "无可选的" + +msgid "Added:" +msgstr "已添加:" + +msgid "Changed:" +msgstr "已修改:" + +msgid "Deleted:" +msgstr "已删除:" + +msgid "Unknown content" +msgstr "未知内容" + +msgid "" +"Something’s wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" +"数据库设置有误。请检查所需的数据库表格是否已经创建,以及数据库用户是否具有正" +"确的权限。" + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" +"您当前以%(username)s登录,但是没有这个页面的访问权限。您想使用另外一个账号登" +"录吗?" + +msgid "Forgotten your password or username?" +msgstr "忘记了您的密码或用户名?" + +msgid "Toggle navigation" +msgstr "切换导航" + +msgid "Sidebar" +msgstr "侧边栏" + +msgid "Start typing to filter…" +msgstr "开始输入以筛选..." + +msgid "Filter navigation items" +msgstr "筛选导航项目" + +msgid "Date/time" +msgstr "日期/时间" + +msgid "User" +msgstr "用户" + +msgid "Action" +msgstr "动作" + +msgid "entry" +msgid_plural "entries" +msgstr[0] "条目" + +msgid "" +"This object doesn’t have a change history. It probably wasn’t added via this " +"admin site." +msgstr "此对象没有修改历史。它可能不是通过管理站点添加的。" + +msgid "Show all" +msgstr "显示全部" + +msgid "Save" +msgstr "保存" + +msgid "Popup closing…" +msgstr "弹窗关闭中..." + +msgid "Search" +msgstr "搜索" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "%(counter)s 条结果。" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "总共 %(full_result_count)s" + +msgid "Save as new" +msgstr "保存为新的" + +msgid "Save and add another" +msgstr "保存并增加另一个" + +msgid "Save and continue editing" +msgstr "保存并继续编辑" + +msgid "Save and view" +msgstr "保存并查看" + +msgid "Close" +msgstr "关闭" + +#, python-format +msgid "Change selected %(model)s" +msgstr "更改选中的%(model)s" + +#, python-format +msgid "Add another %(model)s" +msgstr "增加另一个 %(model)s" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "取消选中 %(model)s" + +#, python-format +msgid "View selected %(model)s" +msgstr "查看已选择的%(model)s" + +msgid "Thanks for spending some quality time with the web site today." +msgstr "感谢您今天与本网站共享一段美好时光。" + +msgid "Log in again" +msgstr "重新登录" + +msgid "Password change" +msgstr "密码修改" + +msgid "Your password was changed." +msgstr "你的密码已修改。" + +msgid "" +"Please enter your old password, for security’s sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "安全起见请输入你的旧密码。然后输入两次你的新密码以确保输入正确。" + +msgid "Change my password" +msgstr "修改我的密码" + +msgid "Password reset" +msgstr "密码重设" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "你的密码己经设置完成,现在你可以继续进行登录。" + +msgid "Password reset confirmation" +msgstr "密码重设确认" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "请输入两遍新密码,以便我们校验你输入的是否正确。" + +msgid "New password:" +msgstr "新密码:" + +msgid "Confirm password:" +msgstr "确认密码:" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "密码重置链接无效,可能是因为它已使用。可以请求一次新的密码重置。" + +msgid "" +"We’ve emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" +"如果你所输入的电子邮箱存在对应的用户,我们将通过电子邮件向你发送设置密码的操" +"作步骤说明。你应该很快就会收到。" + +msgid "" +"If you don’t receive an email, please make sure you’ve entered the address " +"you registered with, and check your spam folder." +msgstr "" +"如果你没有收到电子邮件,请检查输入的是你注册的电子邮箱地址。另外,也请检查你" +"的垃圾邮件文件夹。" + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "你收到这封邮件是因为你请求重置你在网站 %(site_name)s上的用户账户密码。" + +msgid "Please go to the following page and choose a new password:" +msgstr "请访问该页面并选择一个新密码:" + +msgid "Your username, in case you’ve forgotten:" +msgstr "提醒一下,你的用户名是:" + +msgid "Thanks for using our site!" +msgstr "感谢使用我们的站点!" + +#, python-format +msgid "The %(site_name)s team" +msgstr "%(site_name)s 团队" + +msgid "" +"Forgotten your password? Enter your email address below, and we’ll email " +"instructions for setting a new one." +msgstr "" +"忘记密码?在下面输入你的电子邮箱地址,我们将会把设置新密码的操作步骤说明通过" +"电子邮件发送给你。" + +msgid "Email address:" +msgstr "电子邮件地址:" + +msgid "Reset my password" +msgstr "重设我的密码" + +msgid "Select all objects on this page for an action" +msgstr "选择此页面上的所有对象执行操作" + +msgid "All dates" +msgstr "所有日期" + +#, python-format +msgid "Select %s" +msgstr "选择 %s" + +#, python-format +msgid "Select %s to change" +msgstr "选择 %s 来修改" + +#, python-format +msgid "Select %s to view" +msgstr "选择%s查看" + +msgid "Date:" +msgstr "日期:" + +msgid "Time:" +msgstr "时间:" + +msgid "Lookup" +msgstr "查询" + +msgid "Currently:" +msgstr "当前:" + +msgid "Change:" +msgstr "更改:" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/zh_Hans/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/zh_Hans/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..c78566a8767c6520393cbf86d5b9c5cd857ea527 GIT binary patch literal 5715 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 Bi#h-R literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/zh_Hans/LC_MESSAGES/djangojs.po b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/zh_Hans/LC_MESSAGES/djangojs.po new file mode 100644 index 0000000000..44f47c8b39 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/zh_Hans/LC_MESSAGES/djangojs.po @@ -0,0 +1,332 @@ +# This file is distributed under the same license as the Django package. +# +# Translators: +# HuanCheng Bai白宦成(Bestony) , 2018 +# Fan Xu , 2022 +# jack yang, 2023 +# Jannis Leidel , 2011 +# Kaiqi Zhu, 2023 +# Kewei Ma , 2016 +# Lele Long , 2011,2015 +# Liping Wang , 2016 +# matthew Yip , 2020 +# mozillazg , 2016 +# slene , 2011 +# Veoco , 2021 +# spaceoi , 2016 +# ced773123cfad7b4e8b79ca80f736af9, 2012 +# Kevin Sze , 2012 +# 高乐喆 , 2023 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-09-18 15:04-0300\n" +"PO-Revision-Date: 2023-12-25 07:59+0000\n" +"Last-Translator: jack yang, 2023\n" +"Language-Team: Chinese (China) (http://app.transifex.com/django/django/" +"language/zh_CN/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: zh_CN\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#, javascript-format +msgid "Available %s" +msgstr "可用 %s" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" +"这是可用的%s列表。你可以在选择框下面进行选择,然后点击两选框之间的“选择”箭" +"头。" + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "在此框中键入以过滤可用的%s列表" + +msgid "Filter" +msgstr "过滤" + +msgid "Choose all" +msgstr "全选" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "点击选择全部%s。" + +msgid "Choose" +msgstr "选择" + +msgid "Remove" +msgstr "删除" + +#, javascript-format +msgid "Chosen %s" +msgstr "选中的 %s" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" +"这是选中的 %s 的列表。你可以在选择框下面进行选择,然后点击两选框之间的“删" +"除”箭头进行删除。" + +#, javascript-format +msgid "Type into this box to filter down the list of selected %s." +msgstr "在该框中键入以过滤所选%s的列表。" + +msgid "Remove all" +msgstr "删除全部" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "删除所有已选择的%s。" + +#, javascript-format +msgid "%s selected option not visible" +msgid_plural "%s selected options not visible" +msgstr[0] "%s所选选项不可见" + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "选中了 %(cnt)s 个中的 %(sel)s 个" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "" +"你尚未保存一个可编辑栏位的变更. 如果你进行别的动作, 未保存的变更将会丢失." + +msgid "" +"You have selected an action, but you haven’t saved your changes to " +"individual fields yet. Please click OK to save. You’ll need to re-run the " +"action." +msgstr "" +"你已经选择一个动作,但是你没有保存你单独修改的地方。请点击OK保存。你需要再重" +"新跑这个动作。" + +msgid "" +"You have selected an action, and you haven’t made any changes on individual " +"fields. You’re probably looking for the Go button rather than the Save " +"button." +msgstr "" +"你已经选择一个动作,但是没有单独修改任何一处。你可以选择'Go'按键而不" +"是'Save'按键。" + +msgid "Now" +msgstr "现在" + +msgid "Midnight" +msgstr "午夜" + +msgid "6 a.m." +msgstr "上午6点" + +msgid "Noon" +msgstr "正午" + +msgid "6 p.m." +msgstr "下午6点" + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "注意:你比服务器时间超前 %s 个小时。" + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "注意:你比服务器时间滞后 %s 个小时。" + +msgid "Choose a Time" +msgstr "选择一个时间" + +msgid "Choose a time" +msgstr "选择一个时间" + +msgid "Cancel" +msgstr "取消" + +msgid "Today" +msgstr "今天" + +msgid "Choose a Date" +msgstr "选择一个日期" + +msgid "Yesterday" +msgstr "昨天" + +msgid "Tomorrow" +msgstr "明天" + +msgid "January" +msgstr "一月" + +msgid "February" +msgstr "二月" + +msgid "March" +msgstr "三月" + +msgid "April" +msgstr "四月" + +msgid "May" +msgstr "五月" + +msgid "June" +msgstr "六月" + +msgid "July" +msgstr "七月" + +msgid "August" +msgstr "八月" + +msgid "September" +msgstr "九月" + +msgid "October" +msgstr "十月" + +msgid "November" +msgstr "十一月" + +msgid "December" +msgstr "十二月" + +msgctxt "abbrev. month January" +msgid "Jan" +msgstr "一月" + +msgctxt "abbrev. month February" +msgid "Feb" +msgstr "二月" + +msgctxt "abbrev. month March" +msgid "Mar" +msgstr "三月" + +msgctxt "abbrev. month April" +msgid "Apr" +msgstr "四月" + +msgctxt "abbrev. month May" +msgid "May" +msgstr "五月" + +msgctxt "abbrev. month June" +msgid "Jun" +msgstr "六月" + +msgctxt "abbrev. month July" +msgid "Jul" +msgstr "七月" + +msgctxt "abbrev. month August" +msgid "Aug" +msgstr "八月" + +msgctxt "abbrev. month September" +msgid "Sep" +msgstr "九月" + +msgctxt "abbrev. month October" +msgid "Oct" +msgstr "十月" + +msgctxt "abbrev. month November" +msgid "Nov" +msgstr "十一月" + +msgctxt "abbrev. month December" +msgid "Dec" +msgstr "十二月" + +msgid "Sunday" +msgstr "星期日" + +msgid "Monday" +msgstr "星期一" + +msgid "Tuesday" +msgstr "星期二" + +msgid "Wednesday" +msgstr "星期三" + +msgid "Thursday" +msgstr "星期四" + +msgid "Friday" +msgstr "星期五" + +msgid "Saturday" +msgstr "星期六" + +msgctxt "abbrev. day Sunday" +msgid "Sun" +msgstr "星期日" + +msgctxt "abbrev. day Monday" +msgid "Mon" +msgstr "星期一" + +msgctxt "abbrev. day Tuesday" +msgid "Tue" +msgstr "星期二" + +msgctxt "abbrev. day Wednesday" +msgid "Wed" +msgstr "星期三" + +msgctxt "abbrev. day Thursday" +msgid "Thur" +msgstr "星期四" + +msgctxt "abbrev. day Friday" +msgid "Fri" +msgstr "星期五" + +msgctxt "abbrev. day Saturday" +msgid "Sat" +msgstr "星期六" + +msgctxt "one letter Sunday" +msgid "S" +msgstr "S" + +msgctxt "one letter Monday" +msgid "M" +msgstr "M" + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "T" + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "W" + +msgctxt "one letter Thursday" +msgid "T" +msgstr "T" + +msgctxt "one letter Friday" +msgid "F" +msgstr "F" + +msgctxt "one letter Saturday" +msgid "S" +msgstr "S" + +msgid "Show" +msgstr "显示" + +msgid "Hide" +msgstr "隐藏" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/zh_Hant/LC_MESSAGES/django.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/zh_Hant/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..da1da7026d334c5c39cee21bde0ef09dda12ceb4 GIT binary patch literal 16991 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, 2015 +# ilay , 2012 +# Jannis Leidel , 2011 +# mail6543210 , 2013-2014 +# 0a3cb7bfd0810218facdfb511e592a6d_8d19d07 , 2011 +# tcc , 2011 +# Tzu-ping Chung , 2016-2017 +# YAO WEN LIANG, 2024 +# Yeh-Yung , 2013 +# yubike, 2024 +# Yeh-Yung , 2012 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-05-22 11:46-0300\n" +"PO-Revision-Date: 2024-08-07 07:05+0000\n" +"Last-Translator: YAO WEN LIANG, 2024\n" +"Language-Team: Chinese (Taiwan) (http://app.transifex.com/django/django/" +"language/zh_TW/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: zh_TW\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "刪除所選的 %(verbose_name_plural)s" + +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "成功的刪除了 %(count)d 個 %(items)s." + +#, python-format +msgid "Cannot delete %(name)s" +msgstr "無法刪除 %(name)s" + +msgid "Are you sure?" +msgstr "你確定嗎?" + +msgid "Administration" +msgstr "管理" + +msgid "All" +msgstr "全部" + +msgid "Yes" +msgstr "是" + +msgid "No" +msgstr "否" + +msgid "Unknown" +msgstr "未知" + +msgid "Any date" +msgstr "任何日期" + +msgid "Today" +msgstr "今天" + +msgid "Past 7 days" +msgstr "過去 7 天" + +msgid "This month" +msgstr "本月" + +msgid "This year" +msgstr "今年" + +msgid "No date" +msgstr "沒有日期" + +msgid "Has date" +msgstr "有日期" + +msgid "Empty" +msgstr "空的" + +msgid "Not empty" +msgstr "非空的" + +#, python-format +msgid "" +"Please enter the correct %(username)s and password for a staff account. Note " +"that both fields may be case-sensitive." +msgstr "請輸入正確的工作人員帳號%(username)s及密碼。請注意兩者皆區分大小寫。" + +msgid "Action:" +msgstr "動作:" + +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "新增其它 %(verbose_name)s" + +msgid "Remove" +msgstr "移除" + +msgid "Addition" +msgstr "新增" + +msgid "Change" +msgstr "修改" + +msgid "Deletion" +msgstr "删除" + +msgid "action time" +msgstr "動作時間" + +msgid "user" +msgstr "使用者" + +msgid "content type" +msgstr "內容類型" + +msgid "object id" +msgstr "物件 id" + +#. Translators: 'repr' means representation +#. (https://docs.python.org/library/functions.html#repr) +msgid "object repr" +msgstr "物件 repr" + +msgid "action flag" +msgstr "動作旗標" + +msgid "change message" +msgstr "修改訊息" + +msgid "log entry" +msgstr "日誌記錄" + +msgid "log entries" +msgstr "日誌紀錄" + +#, python-format +msgid "Added “%(object)s”." +msgstr "\"%(object)s\" 已新增。" + +#, python-format +msgid "Changed “%(object)s” — %(changes)s" +msgstr "\"%(object)s\" - %(changes)s 已修改。" + +#, python-format +msgid "Deleted “%(object)s.”" +msgstr "\"%(object)s\" 已刪除。" + +msgid "LogEntry Object" +msgstr "日誌記錄物件" + +#, python-brace-format +msgid "Added {name} “{object}”." +msgstr "{name} \"{object}\" 已新增。" + +msgid "Added." +msgstr "已新增。" + +msgid "and" +msgstr "和" + +#, python-brace-format +msgid "Changed {fields} for {name} “{object}”." +msgstr "{name} \"{object}\" 的 {fields} 已修改。" + +#, python-brace-format +msgid "Changed {fields}." +msgstr "{fields} 已修改。" + +#, python-brace-format +msgid "Deleted {name} “{object}”." +msgstr "{name} \"{object}\" 已刪除。" + +msgid "No fields changed." +msgstr "沒有欄位被修改。" + +msgid "None" +msgstr "無" + +msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." +msgstr "按住 \"Control\", 或者在 Mac 上按 \"Command\", 以選取更多值" + +msgid "Select this object for an action - {}" +msgstr "選擇此對象進行操作 - {}" + +#, python-brace-format +msgid "The {name} “{obj}” was added successfully." +msgstr "{name} \"{obj}\" 已成功新增。" + +msgid "You may edit it again below." +msgstr "您可以在下面再次編輯它." + +#, python-brace-format +msgid "" +"The {name} “{obj}” was added successfully. You may add another {name} below." +msgstr "{name} \"{obj}\" 新增成功。你可以在下方加入其他 {name}。" + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may edit it again below." +msgstr "{name} \"{obj}\" 修改成功。你可以在下方再次編輯。" + +#, python-brace-format +msgid "" +"The {name} “{obj}” was changed successfully. You may add another {name} " +"below." +msgstr "{name} \"{obj}\" 修改成功。你可以在下方加入其他 {name}。" + +#, python-brace-format +msgid "The {name} “{obj}” was changed successfully." +msgstr "成功修改了 {name}“{obj}”。" + +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "必須要有項目被選中才能進行動作。沒有任何項目被修改。" + +msgid "No action selected." +msgstr "沒有動作被選取。" + +#, python-format +msgid "The %(name)s “%(obj)s” was deleted successfully." +msgstr "成功删除了 %(name)s“%(obj)s”。" + +#, python-format +msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" +msgstr "不存在 ID 為「%(key)s」的 %(name)s。或許它已被刪除?" + +#, python-format +msgid "Add %s" +msgstr "新增 %s" + +#, python-format +msgid "Change %s" +msgstr "修改 %s" + +#, python-format +msgid "View %s" +msgstr "查看 %s" + +msgid "Database error" +msgstr "資料庫錯誤" + +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "共 %(count)s %(name)s 已修改成功。" + +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "選取了 %(total_count)s 個" + +#, python-format +msgid "0 of %(cnt)s selected" +msgstr "%(cnt)s 中 0 個被選取" + +#, python-format +msgid "Change history: %s" +msgstr "修改歷史: %s" + +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. +#, python-format +msgid "%(class_name)s %(instance)s" +msgstr "%(class_name)s %(instance)s" + +#, python-format +msgid "" +"Deleting %(class_name)s %(instance)s would require deleting the following " +"protected related objects: %(related_objects)s" +msgstr "" +"刪除 %(class_name)s %(instance)s 將會同時刪除下面受保護的相關物件:" +"%(related_objects)s" + +msgid "Django site admin" +msgstr "Django 網站管理" + +msgid "Django administration" +msgstr "Django 管理" + +msgid "Site administration" +msgstr "網站管理" + +msgid "Log in" +msgstr "登入" + +#, python-format +msgid "%(app)s administration" +msgstr "%(app)s 管理" + +msgid "Page not found" +msgstr "找不到頁面" + +msgid "We’re sorry, but the requested page could not be found." +msgstr "很抱歉,請求頁面不存在。" + +msgid "Home" +msgstr "首頁" + +msgid "Server error" +msgstr "伺服器錯誤" + +msgid "Server error (500)" +msgstr "伺服器錯誤 (500)" + +msgid "Server Error (500)" +msgstr "伺服器錯誤 (500)" + +msgid "" +"There’s been an error. It’s been reported to the site administrators via " +"email and should be fixed shortly. Thanks for your patience." +msgstr "" +"存在一個錯誤。已透過電子郵件回報給網站管理員,並且應該很快就會被修正。謝謝您" +"的耐心等待。" + +msgid "Run the selected action" +msgstr "執行選取的動作" + +msgid "Go" +msgstr "執行" + +msgid "Click here to select the objects across all pages" +msgstr "點選這裡可選取全部頁面的物件" + +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "選擇全部 %(total_count)s %(module_name)s" + +msgid "Clear selection" +msgstr "清除選擇" + +msgid "Breadcrumbs" +msgstr "導覽路徑" + +#, python-format +msgid "Models in the %(name)s application" +msgstr "%(name)s 應用程式中的模型" + +msgid "Add" +msgstr "新增" + +msgid "View" +msgstr "查看" + +msgid "You don’t have permission to view or edit anything." +msgstr "你沒有查看或編輯的權限。" + +msgid "" +"First, enter a username and password. Then, you’ll be able to edit more user " +"options." +msgstr "輸入使用者名稱和密碼後,你可以編輯更多使用者選項。" + +msgid "Enter a username and password." +msgstr "輸入使用者名稱和密碼。" + +msgid "Change password" +msgstr "修改密碼" + +msgid "Set password" +msgstr "設定密碼" + +msgid "Please correct the error below." +msgid_plural "Please correct the errors below." +msgstr[0] "請修正以下錯誤。" + +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "為使用者%(username)s輸入一個新的密碼。" + +msgid "" +"This action will enable password-based authentication for " +"this user." +msgstr "這會 啟用 本用戶基於密碼的驗證" + +msgid "Disable password-based authentication" +msgstr "停用基於密碼的驗證" + +msgid "Enable password-based authentication" +msgstr "啟用基於密碼的驗證" + +msgid "Skip to main content" +msgstr "跳到主要內容" + +msgid "Welcome," +msgstr "歡迎," + +msgid "View site" +msgstr "檢視網站" + +msgid "Documentation" +msgstr "文件" + +msgid "Log out" +msgstr "登出" + +#, python-format +msgid "Add %(name)s" +msgstr "新增 %(name)s" + +msgid "History" +msgstr "歷史" + +msgid "View on site" +msgstr "在網站上檢視" + +msgid "Filter" +msgstr "過濾器" + +msgid "Hide counts" +msgstr "隱藏計數" + +msgid "Show counts" +msgstr "顯示計數" + +msgid "Clear all filters" +msgstr "清除所有篩選" + +msgid "Remove from sorting" +msgstr "從排序中移除" + +#, python-format +msgid "Sorting priority: %(priority_number)s" +msgstr "優先排序:%(priority_number)s" + +msgid "Toggle sorting" +msgstr "切換排序" + +msgid "Toggle theme (current theme: auto)" +msgstr "切換主題(當前主題:自動)" + +msgid "Toggle theme (current theme: light)" +msgstr "切換主題(當前主題:淺色)" + +msgid "Toggle theme (current theme: dark)" +msgstr "切換主題(當前主題:深色)" + +msgid "Delete" +msgstr "刪除" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" +"刪除 %(object_name)s '%(escaped_object)s' 會把相關的物件也刪除,不過你的帳號" +"並沒有刪除以下型態物件的權限:" + +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " +"following protected related objects:" +msgstr "" +"要刪除 %(object_name)s '%(escaped_object)s', 將要求刪除下面受保護的相關物件:" + +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" +"你確定想要刪除 %(object_name)s \"%(escaped_object)s\"?以下所有的相關項目都會" +"被刪除:" + +msgid "Objects" +msgstr "物件" + +msgid "Yes, I’m sure" +msgstr "是的,我確定" + +msgid "No, take me back" +msgstr "不,返回" + +msgid "Delete multiple objects" +msgstr "刪除多個物件" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would result in deleting related " +"objects, but your account doesn't have permission to delete the following " +"types of objects:" +msgstr "" +"要刪除所選的 %(objects_name)s, 結果會刪除相關物件, 但你的帳號無權刪除下面物件" +"型態:" + +#, python-format +msgid "" +"Deleting the selected %(objects_name)s would require deleting the following " +"protected related objects:" +msgstr "要刪除所選的 %(objects_name)s, 將要求刪除下面受保護的相關物件:" + +#, python-format +msgid "" +"Are you sure you want to delete the selected %(objects_name)s? All of the " +"following objects and their related items will be deleted:" +msgstr "" +"你是否確定要刪除已選的 %(objects_name)s? 下面全部物件及其相關項目都將被刪除:" + +msgid "Delete?" +msgstr "刪除?" + +#, python-format +msgid " By %(filter_title)s " +msgstr " 以 %(filter_title)s" + +msgid "Summary" +msgstr "總結" + +msgid "Recent actions" +msgstr "最近的動作" + +msgid "My actions" +msgstr "我的動作" + +msgid "None available" +msgstr "無資料" + +msgid "Added:" +msgstr "已新增。" + +msgid "Changed:" +msgstr "已修改:" + +msgid "Deleted:" +msgstr "已刪除:" + +msgid "Unknown content" +msgstr "未知內容" + +msgid "" +"Something’s wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" +"你的資料庫安裝有錯誤。確定資料庫表格已經建立,並確定資料庫可被合適的使用者讀" +"取。" + +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" +"您目前以%(username)s登入,但並沒有瀏覽此頁面的權限。您是否希望以其他帳號登" +"入?" + +msgid "Forgotten your password or username?" +msgstr "忘記您的密碼或是使用者名稱?" + +msgid "Toggle navigation" +msgstr "切換導航" + +msgid "Sidebar" +msgstr "側邊欄" + +msgid "Start typing to filter…" +msgstr "輸入內容開始篩選..." + +msgid "Filter navigation items" +msgstr "篩選導航項目" + +msgid "Date/time" +msgstr "日期/時間" + +msgid "User" +msgstr "使用者" + +msgid "Action" +msgstr "動作" + +msgid "entry" +msgid_plural "entries" +msgstr[0] "紀錄項目" + +msgid "" +"This object doesn’t have a change history. It probably wasn’t added via this " +"admin site." +msgstr "該物件沒有修改的歷史紀錄。它可能不是透過此管理網站新增的。" + +msgid "Show all" +msgstr "顯示全部" + +msgid "Save" +msgstr "儲存" + +msgid "Popup closing…" +msgstr "關閉彈跳視窗中..." + +msgid "Search" +msgstr "搜尋" + +#, python-format +msgid "%(counter)s result" +msgid_plural "%(counter)s results" +msgstr[0] "%(counter)s 結果" + +#, python-format +msgid "%(full_result_count)s total" +msgstr "總共 %(full_result_count)s" + +msgid "Save as new" +msgstr "儲存為新的" + +msgid "Save and add another" +msgstr "儲存並新增另一個" + +msgid "Save and continue editing" +msgstr "儲存並繼續編輯" + +msgid "Save and view" +msgstr "儲存並查看" + +msgid "Close" +msgstr "關閉" + +#, python-format +msgid "Change selected %(model)s" +msgstr "修改所選的 %(model)s" + +#, python-format +msgid "Add another %(model)s" +msgstr "新增其它 %(model)s" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "刪除所選的 %(model)s" + +#, python-format +msgid "View selected %(model)s" +msgstr "查看已選擇的%(model)s" + +msgid "Thanks for spending some quality time with the web site today." +msgstr "感謝您今天在網站上度過了一段美好的時光。" + +msgid "Log in again" +msgstr "重新登入" + +msgid "Password change" +msgstr "密碼修改" + +msgid "Your password was changed." +msgstr "您的密碼已修改。" + +msgid "" +"Please enter your old password, for security’s sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "為了安全上的考量,請輸入你的舊密碼,然後輸入兩次新密碼已確保輸入正確。" + +msgid "Change my password" +msgstr "修改我的密碼" + +msgid "Password reset" +msgstr "重設密碼" + +msgid "Your password has been set. You may go ahead and log in now." +msgstr "你的密碼已設置,現在可以繼續登入。" + +msgid "Password reset confirmation" +msgstr "密碼重設確認" + +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "請輸入新密碼兩次, 以便系統確認輸入無誤。" + +msgid "New password:" +msgstr "新密碼:" + +msgid "Confirm password:" +msgstr "確認密碼:" + +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "密碼重設連結無效,可能已被使用。請重新申請密碼重設。" + +msgid "" +"We’ve emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "" +"若您提交的電子郵件地址存在對應帳號,我們已寄出重設密碼的相關指示。您應該很快" +"就會收到。" + +msgid "" +"If you don’t receive an email, please make sure you’ve entered the address " +"you registered with, and check your spam folder." +msgstr "" +"如果您未收到電子郵件,請確認您輸入的電子郵件地址與您註冊時輸入的一致,並檢查" +"您的垃圾郵件匣。" + +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "這封電子郵件來自 %(site_name)s,因為您要求為帳號重新設定密碼。" + +msgid "Please go to the following page and choose a new password:" +msgstr "請到該頁面選擇一個新的密碼:" + +msgid "Your username, in case you’ve forgotten:" +msgstr "提醒一下,您的用戶名是:" + +msgid "Thanks for using our site!" +msgstr "感謝使用本網站!" + +#, python-format +msgid "The %(site_name)s team" +msgstr "%(site_name)s 團隊" + +msgid "" +"Forgotten your password? Enter your email address below, and we’ll email " +"instructions for setting a new one." +msgstr "" +"忘記您的密碼? 請在下面輸入您的電子郵件, 然後我們會寄出設定新密碼的操作指示。" + +msgid "Email address:" +msgstr "電子信箱:" + +msgid "Reset my password" +msgstr "重設我的密碼" + +msgid "Select all objects on this page for an action" +msgstr "選擇此頁面上的所有物件執行操作" + +msgid "All dates" +msgstr "所有日期" + +#, python-format +msgid "Select %s" +msgstr "選擇 %s" + +#, python-format +msgid "Select %s to change" +msgstr "選擇 %s 來修改" + +#, python-format +msgid "Select %s to view" +msgstr "選擇%s查看" + +msgid "Date:" +msgstr "日期" + +msgid "Time:" +msgstr "時間" + +msgid "Lookup" +msgstr "查找" + +msgid "Currently:" +msgstr "目前:" + +msgid "Change:" +msgstr "變動:" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/locale/zh_Hant/LC_MESSAGES/djangojs.mo b/venv/lib/python3.12/site-packages/django/contrib/admin/locale/zh_Hant/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..9368f692a2e63dfb4e8736381543d660202c83aa GIT binary patch literal 4230 zcmb`IU2Igx6~`wDX^E4jO;Y-irs>2j*c5iX1`5eis!#_f&^RExEsa{Ky1P5xz4Y$A ztNUSN9va(Vu#F9BFdv3Z2&sXk#IZqXF#dqPG!OkyrM^X~qDtL+y<4fuORK(B{hvEy zdm$D@YDYWww`bTmz`i}8_=IZpSh2*7r`GtfCt*XWsGeCJHbzZR~0A0 z2O-~5@^8RLApc&;A1eL@{0zqD6#uFC02bF^{4ww$@G0kCB!-M>M z4J1DYK(aFo4ud1$&%r1b!6f@NNcKJeH-mo!Y2CvZJOi!(Y25^v2e)DJ3GjWz--0V3 zf28DpD0w-Y_&mm+2EPEV2hSl_JHW3({@cSc{>zaB%EJmg;2Nt{Tn)k$izzv-xD|XH z<1Z=xNYPaD-5{;&1D^q32kXH1)cBu4+9y!*-d{Xfl#d?tH ztwAvZ(*Ebv{AI-n#p@upU^kWgJH(qkjb*;b5!L zIXXhX8qw*!uo9hG4E^iq6uVkr`knIV6fg1#%hOK zZG2^Y%5?D;10v;$^j+sRaxI#RvW+}X*qXO>gKhOPp5wBu?V4_ANkj0J4r|iPlrUIR z*0LO-z%~AY=2l4wJy#{U)shjeb%YrjGxXF?xoh!MXpU=!fnlz>+`=wV)-*qFi=5Ri z!g;95)r)E`h?K}Bh0U5p()KjFlQrvx3;88IE!Ymt499kOMkm|hnS!-wb}EZ!Cu`Bu zrk=^V>=ny0@o+_)ziN40v+1xrYk4-;vO-H!JRM=T3!Bq%qD$+-^?O(5Ns-mf^gWqf zTD4uC`W35#?M%5AMPPRrCa}K}n8@l5$Is0QZs-mo-Nv=51V_X3=d{lG zoH$la@MNc|BHhf;(j3>#&_vSOhjSQK2iI^E%$PhyNmF{fRu)PvB5Fe^DclYL9opUP zusD_rC%U9l3wd7jNL9iA=#dQ3fAh#nqdXE;&LY2AqBAdWWK^n4@uO4Ye_L2(JZ*Kz z6D=7}_Ns7Di)4-}E32W7=Wir}#SQzRM7rBV<+Zo!_Il(R%4Q?z<^q3xl?Z*q-!EhNQ|V z&y-s(9SV`w-SG7^ACv8Ep}S~EQ`W=t+aBgTXRrNyCWlW&G-c(!gGFY>(=sBG5Lzw{O&v!Pygs4n9h$kC z*JoWfA8%;r=;(;LWLs|&`)Fx{Jl#ADWv5|(_9uxw4XbNfwzq6s3`Ju!R?}pet}x*u zZfTsmVxQZPH#FVcOyy}i!rk)yM04cXMLpWCP1uobX39$A9C7|^Qg;_zj`MJ@nq3AC zW<;7TJLkl?nGZ#0OXFrP|89wGuE9rDeq~FOWBB6AkFVc#r2O`kO7|oyO%C`&eS9OY zOuq@?$fDq%JsTAInBRLP#IfLTSsncU z>z49>i(5*Wwk%B#_@kFuaQY~rJTvL{Uhw-SDqSOsZj*~)-j|FB))r|kMdtc79HBII zNS3jG, 2012 +# mail6543210 , 2013 +# tcc , 2011 +# Tzu-ping Chung , 2016 +# Yeh-Yung , 2012 +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-05-17 23:12+0200\n" +"PO-Revision-Date: 2017-09-19 16:41+0000\n" +"Last-Translator: Tzu-ping Chung \n" +"Language-Team: Chinese (Taiwan) (http://www.transifex.com/django/django/" +"language/zh_TW/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: zh_TW\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#, javascript-format +msgid "Available %s" +msgstr "可用 %s" + +#, javascript-format +msgid "" +"This is the list of available %s. You may choose some by selecting them in " +"the box below and then clicking the \"Choose\" arrow between the two boxes." +msgstr "" +"可用的 %s 列表。你可以在下方的方框內選擇後,點擊兩個方框中的\"選取\"箭頭以選" +"取。" + +#, javascript-format +msgid "Type into this box to filter down the list of available %s." +msgstr "輸入到這個方框以過濾可用的 %s 列表。" + +msgid "Filter" +msgstr "過濾器" + +msgid "Choose all" +msgstr "全選" + +#, javascript-format +msgid "Click to choose all %s at once." +msgstr "點擊以一次選取所有的 %s" + +msgid "Choose" +msgstr "選取" + +msgid "Remove" +msgstr "移除" + +#, javascript-format +msgid "Chosen %s" +msgstr "%s 被選" + +#, javascript-format +msgid "" +"This is the list of chosen %s. You may remove some by selecting them in the " +"box below and then clicking the \"Remove\" arrow between the two boxes." +msgstr "" +"選取的 %s 列表。你可以在下方的方框內選擇後,點擊兩個方框中的\"移除\"箭頭以移" +"除。" + +msgid "Remove all" +msgstr "全部移除" + +#, javascript-format +msgid "Click to remove all chosen %s at once." +msgstr "點擊以一次移除所有選取的 %s" + +msgid "%(sel)s of %(cnt)s selected" +msgid_plural "%(sel)s of %(cnt)s selected" +msgstr[0] "%(cnt)s 中 %(sel)s 個被選" + +msgid "" +"You have unsaved changes on individual editable fields. If you run an " +"action, your unsaved changes will be lost." +msgstr "你尚未儲存一個可編輯欄位的變更。如果你執行動作, 未儲存的變更將會遺失。" + +msgid "" +"You have selected an action, but you haven't saved your changes to " +"individual fields yet. Please click OK to save. You'll need to re-run the " +"action." +msgstr "" +"你已選了一個動作, 但有一個可編輯欄位的變更尚未儲存。請點選 OK 進行儲存。你需" +"要重新執行該動作。" + +msgid "" +"You have selected an action, and you haven't made any changes on individual " +"fields. You're probably looking for the Go button rather than the Save " +"button." +msgstr "" +"你已選了一個動作, 但沒有任何改變。你可能動到 '去' 按鈕, 而不是 '儲存' 按鈕。" + +#, javascript-format +msgid "Note: You are %s hour ahead of server time." +msgid_plural "Note: You are %s hours ahead of server time." +msgstr[0] "備註:您的電腦時間比伺服器快 %s 小時。" + +#, javascript-format +msgid "Note: You are %s hour behind server time." +msgid_plural "Note: You are %s hours behind server time." +msgstr[0] "備註:您的電腦時間比伺服器慢 %s 小時。" + +msgid "Now" +msgstr "現在" + +msgid "Choose a Time" +msgstr "選擇一個時間" + +msgid "Choose a time" +msgstr "選擇一個時間" + +msgid "Midnight" +msgstr "午夜" + +msgid "6 a.m." +msgstr "上午 6 點" + +msgid "Noon" +msgstr "中午" + +msgid "6 p.m." +msgstr "下午 6 點" + +msgid "Cancel" +msgstr "取消" + +msgid "Today" +msgstr "今天" + +msgid "Choose a Date" +msgstr "選擇一個日期" + +msgid "Yesterday" +msgstr "昨天" + +msgid "Tomorrow" +msgstr "明天" + +msgid "January" +msgstr "一月" + +msgid "February" +msgstr "二月" + +msgid "March" +msgstr "三月" + +msgid "April" +msgstr "四月" + +msgid "May" +msgstr "五月" + +msgid "June" +msgstr "六月" + +msgid "July" +msgstr "七月" + +msgid "August" +msgstr "八月" + +msgid "September" +msgstr "九月" + +msgid "October" +msgstr "十月" + +msgid "November" +msgstr "十一月" + +msgid "December" +msgstr "十二月" + +msgctxt "one letter Sunday" +msgid "S" +msgstr "日" + +msgctxt "one letter Monday" +msgid "M" +msgstr "一" + +msgctxt "one letter Tuesday" +msgid "T" +msgstr "二" + +msgctxt "one letter Wednesday" +msgid "W" +msgstr "三" + +msgctxt "one letter Thursday" +msgid "T" +msgstr "四" + +msgctxt "one letter Friday" +msgid "F" +msgstr "五" + +msgctxt "one letter Saturday" +msgid "S" +msgstr "六" + +msgid "Show" +msgstr "顯示" + +msgid "Hide" +msgstr "隱藏" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/migrations/0001_initial.py b/venv/lib/python3.12/site-packages/django/contrib/admin/migrations/0001_initial.py new file mode 100644 index 0000000000..6270e1032d --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/migrations/0001_initial.py @@ -0,0 +1,75 @@ +import django.contrib.admin.models +from django.conf import settings +from django.db import migrations, models + + +class Migration(migrations.Migration): + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ("contenttypes", "__first__"), + ] + + operations = [ + migrations.CreateModel( + name="LogEntry", + fields=[ + ( + "id", + models.AutoField( + verbose_name="ID", + serialize=False, + auto_created=True, + primary_key=True, + ), + ), + ( + "action_time", + models.DateTimeField(auto_now=True, verbose_name="action time"), + ), + ( + "object_id", + models.TextField(null=True, verbose_name="object id", blank=True), + ), + ( + "object_repr", + models.CharField(max_length=200, verbose_name="object repr"), + ), + ( + "action_flag", + models.PositiveSmallIntegerField(verbose_name="action flag"), + ), + ( + "change_message", + models.TextField(verbose_name="change message", blank=True), + ), + ( + "content_type", + models.ForeignKey( + on_delete=models.SET_NULL, + blank=True, + null=True, + to="contenttypes.ContentType", + verbose_name="content type", + ), + ), + ( + "user", + models.ForeignKey( + to=settings.AUTH_USER_MODEL, + on_delete=models.CASCADE, + verbose_name="user", + ), + ), + ], + options={ + "ordering": ["-action_time"], + "db_table": "django_admin_log", + "verbose_name": "log entry", + "verbose_name_plural": "log entries", + }, + bases=(models.Model,), + managers=[ + ("objects", django.contrib.admin.models.LogEntryManager()), + ], + ), + ] diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/migrations/0002_logentry_remove_auto_add.py b/venv/lib/python3.12/site-packages/django/contrib/admin/migrations/0002_logentry_remove_auto_add.py new file mode 100644 index 0000000000..7fcf9c0c39 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/migrations/0002_logentry_remove_auto_add.py @@ -0,0 +1,21 @@ +from django.db import migrations, models +from django.utils import timezone + + +class Migration(migrations.Migration): + dependencies = [ + ("admin", "0001_initial"), + ] + + # No database changes; removes auto_add and adds default/editable. + operations = [ + migrations.AlterField( + model_name="logentry", + name="action_time", + field=models.DateTimeField( + verbose_name="action time", + default=timezone.now, + editable=False, + ), + ), + ] diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/migrations/0003_logentry_add_action_flag_choices.py b/venv/lib/python3.12/site-packages/django/contrib/admin/migrations/0003_logentry_add_action_flag_choices.py new file mode 100644 index 0000000000..a73e55fc25 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/migrations/0003_logentry_add_action_flag_choices.py @@ -0,0 +1,19 @@ +from django.db import migrations, models + + +class Migration(migrations.Migration): + dependencies = [ + ("admin", "0002_logentry_remove_auto_add"), + ] + + # No database changes; adds choices to action_flag. + operations = [ + migrations.AlterField( + model_name="logentry", + name="action_flag", + field=models.PositiveSmallIntegerField( + choices=[(1, "Addition"), (2, "Change"), (3, "Deletion")], + verbose_name="action flag", + ), + ), + ] diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/migrations/__init__.py b/venv/lib/python3.12/site-packages/django/contrib/admin/migrations/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/migrations/__pycache__/0001_initial.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/contrib/admin/migrations/__pycache__/0001_initial.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8655cf798dd124c37703b1de5f0683fa642c5630 GIT binary patch literal 2446 zcmZ`*O>EOv9JigsaXwnw;+E2e5=ycrgT{q+LX#L!+LXcC!f1QRG+9pGOX}j-ne7yk z(y~2j~Cs`+vOu$8%ox z^n@9BAgU={F@G7;38wkAW!ayoil^S!S_ZVg4n0JJPy0av7;WLD)FOIS`l;_jqHqWx2Ff9#op`V z*xrEW@nby4cFr8uq$HrR5{u5FI68;MfAWJ(;;2oLMd$I!jnq-i#)rqq29A+U9+hpk zMMbW}?j$Q)(EE} z!rh)?HRZa6CfxM>Z4@jhqG;zgz z^8#$^ZAqL;+$~ie$r{#6_PS@-Nu#JKrGqpmlV&|YZ(&{0OIR*r%Th|X-sa zbC4$5DVt2|Rv+#zVrI^(=qlB8aB+%D2jGCZ3>OBrvFpdAdrLUm@G|gMp`dA>c?P5= zT@qJZk4|<~ko2JqNYjuNR91CaGfMRkyyDP9vsRCENEKVqF2OJnv`8-z0p(>|$!pk) zbh5jTaz(3}ibjH7O)bdN@Aj83s#rr7C@S7{7sx9XjEPWIbf}PNEvJWxAiKi=BNLWo zxDKlt20ALsUsV;2x{+m*UO+^&9x9az%>hbK!8*cvp=Q$imYkSfTm4jCTgl#+m+sDI z7fJL00S6(GId`s>=v`~lwI!ih7`FwQ9qE~ekz0jv^4QQSeq^`Fxpl?#$kX=>OSRQa zyi!&)?KX@&r0=Q13xm6z8R7fEn#c4cmMK1%{_RKj~zCqde3Q_Yir zTYqw*vnESkNl4hJ;P%(yH|8zm%Dl6rb)$@>va((_sz{p0o6=3C@L)2lBZ*FP$&fa& zzA0&HUaHjWbwi)dT)Hel!g#U*Kq$2(dGV!oc*%_}9e#d{G6AfYFSD~4@(Ma8RCCoZPvK8=&{MU=EC=)tM5n~Nu%;_I( z@yy_9M@(!jG{rk;skr^C!#1uuP8e-~M;`x_*;tKc# zU6>h+cX{|V@%tCM_g44BwF5Pn9t3#idp@}*-s{%QP`5J;apwP;WS72?3e_X|HS z|FGPQO*LXu&DfPj>`F6ss}Z~PDt3Ff?@r6d4fXC<*-t{@mhbui|IHoqdZ$}yfsA^s z&a_*daa*17{%DvV1CT@x5k+r-LTw4kySwHti8lh*sAt#x4WQl$SG^UzX3hgk|72M7 kTh{WiEc*vD{wEXvi%ISCS(fFu!p*)!qc8C9qot<@&T4d|Xo^K%ZQ-g9< zrpeikN{$di409CW7LJUTfi*U`8Cfk0BLh7~%sfEM0^G|xmQ9NNvsvt|%BbSozcla- z=|*8Up;;*6RN9eXz*8SfCkrEZBVy?S}<+RFP z2%PQuGtwb>oe=2~qId%iD)$I^IiOr~HDb_*m_ghLAx-oMr2CL(kZkKNiKPp(n>2&x zT2o%rGnZy8UP)K8wAS>A3J2(ivotY{EB4!`6A#rE-n*wxk7NPX>pK+JWaHM zLeCAI<;QQS?83QUjO0ObTS2Uzw4uVp#29}^cfO&eb9)}!hwkb8^2z-2Z=^te{0}wg B?lS-Y literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/migrations/__pycache__/0003_logentry_add_action_flag_choices.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/contrib/admin/migrations/__pycache__/0003_logentry_add_action_flag_choices.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..20549b591306aff8c39ffb5b17b037b5a52c8a21 GIT binary patch literal 909 zcmY*XF>ljA6uz?)$1!aw0STy-LM4PSQtOhgs8XQ?6+wl>mgVI5UL1$BFW5<>FoD#8 zfuUP>Hq`zQB&JS{ZUKp@Tcnny6YrcvDL34`@7;U%zW2TRIX~|ZTx{n@bIBm&j|S6K zoEYbuXdDtwI29zObs8IWgA#+hB;431+yvUTrb)B&$Q;{sb5L-LXBxPMa^fgV{ca?a zOj)tyAhKYVLx?>A=S?&Y36MJFq;7B;(z8L zb%YJ-bzGWK!#C}L?Uq&f&6E{VEc!f-5>;JaU#~GCLrA*mfTa-2J}|%6mCWZ{+0z?! z%@1@xtSS7^HC^M3Vi9F;aUN+uI&@)WJ#YC*2ne+>%H9S6`u^i2|9+lts8Z09Q2?2m z>qFX*8L-5U!8K7jEmw|ILHks(8G+z?*nrJ)KV!;a4C8tN(4J%LL(dmFRwE7_NH`=x z1X-GsaJEDj(ii%bw4hnteJe9$-G_IvFT`%rg>Z7O9NB@%(Lx3FMn}P?dpkL z9o}9U-dG-1Y6lNbE47nKP2JfYRv%v!&6^7srBc}$ndOT0`Bl0+eRIz(sPdTV8gJz4 z<%*4~R&`h&dk?Kk`{{TDo9PNd{T;F;+(ss)^cQ(_VO^)zfpfa};AHW^UxFad{RiLk B^*I0l literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/migrations/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/contrib/admin/migrations/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..bc57a6a8e064dee2751a452532c7eeed87b05129 GIT binary patch literal 208 zcmZ9FK?=e!5JelSAVLq~q8-$&xDdPb3L$M`8*L^fNeexRXYeM1$M6KwT~{V9{V+5C ze;&*$Nmh{;&7YTW-(mf0ocrb;4bhsMACZ~)GzMnUP-`VXv0CYl!%6gTWaTZ*kweii ztTgljduU_8ZA&NQ94Sqc9@oX WrFqwggIW0h#E%W;6B9yA?A;ejIXKn; literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/models.py b/venv/lib/python3.12/site-packages/django/contrib/admin/models.py new file mode 100644 index 0000000000..bb81be8297 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/models.py @@ -0,0 +1,246 @@ +import json +import warnings + +from django.conf import settings +from django.contrib.admin.utils import quote +from django.contrib.contenttypes.models import ContentType +from django.db import models +from django.urls import NoReverseMatch, reverse +from django.utils import timezone +from django.utils.deprecation import RemovedInDjango60Warning +from django.utils.text import get_text_list +from django.utils.translation import gettext +from django.utils.translation import gettext_lazy as _ + +ADDITION = 1 +CHANGE = 2 +DELETION = 3 + +ACTION_FLAG_CHOICES = [ + (ADDITION, _("Addition")), + (CHANGE, _("Change")), + (DELETION, _("Deletion")), +] + + +class LogEntryManager(models.Manager): + use_in_migrations = True + + def log_action( + self, + user_id, + content_type_id, + object_id, + object_repr, + action_flag, + change_message="", + ): + warnings.warn( + "LogEntryManager.log_action() is deprecated. Use log_actions() instead.", + RemovedInDjango60Warning, + stacklevel=2, + ) + if isinstance(change_message, list): + change_message = json.dumps(change_message) + return self.model.objects.create( + user_id=user_id, + content_type_id=content_type_id, + object_id=str(object_id), + object_repr=object_repr[:200], + action_flag=action_flag, + change_message=change_message, + ) + + def log_actions( + self, user_id, queryset, action_flag, change_message="", *, single_object=False + ): + # RemovedInDjango60Warning. + if type(self).log_action != LogEntryManager.log_action: + warnings.warn( + "The usage of log_action() is deprecated. Implement log_actions() " + "instead.", + RemovedInDjango60Warning, + stacklevel=2, + ) + return [ + self.log_action( + user_id=user_id, + content_type_id=ContentType.objects.get_for_model( + obj, for_concrete_model=False + ).id, + object_id=obj.pk, + object_repr=str(obj), + action_flag=action_flag, + change_message=change_message, + ) + for obj in queryset + ] + + if isinstance(change_message, list): + change_message = json.dumps(change_message) + + log_entry_list = [ + self.model( + user_id=user_id, + content_type_id=ContentType.objects.get_for_model( + obj, for_concrete_model=False + ).id, + object_id=obj.pk, + object_repr=str(obj)[:200], + action_flag=action_flag, + change_message=change_message, + ) + for obj in queryset + ] + + if single_object and log_entry_list: + instance = log_entry_list[0] + instance.save() + return instance + + return self.model.objects.bulk_create(log_entry_list) + + +class LogEntry(models.Model): + action_time = models.DateTimeField( + _("action time"), + default=timezone.now, + editable=False, + ) + user = models.ForeignKey( + settings.AUTH_USER_MODEL, + models.CASCADE, + verbose_name=_("user"), + ) + content_type = models.ForeignKey( + ContentType, + models.SET_NULL, + verbose_name=_("content type"), + blank=True, + null=True, + ) + object_id = models.TextField(_("object id"), blank=True, null=True) + # Translators: 'repr' means representation + # (https://docs.python.org/library/functions.html#repr) + object_repr = models.CharField(_("object repr"), max_length=200) + action_flag = models.PositiveSmallIntegerField( + _("action flag"), choices=ACTION_FLAG_CHOICES + ) + # change_message is either a string or a JSON structure + change_message = models.TextField(_("change message"), blank=True) + + objects = LogEntryManager() + + class Meta: + verbose_name = _("log entry") + verbose_name_plural = _("log entries") + db_table = "django_admin_log" + ordering = ["-action_time"] + + def __repr__(self): + return str(self.action_time) + + def __str__(self): + if self.is_addition(): + return gettext("Added “%(object)s”.") % {"object": self.object_repr} + elif self.is_change(): + return gettext("Changed “%(object)s” — %(changes)s") % { + "object": self.object_repr, + "changes": self.get_change_message(), + } + elif self.is_deletion(): + return gettext("Deleted “%(object)s.”") % {"object": self.object_repr} + + return gettext("LogEntry Object") + + def is_addition(self): + return self.action_flag == ADDITION + + def is_change(self): + return self.action_flag == CHANGE + + def is_deletion(self): + return self.action_flag == DELETION + + def get_change_message(self): + """ + If self.change_message is a JSON structure, interpret it as a change + string, properly translated. + """ + if self.change_message and self.change_message[0] == "[": + try: + change_message = json.loads(self.change_message) + except json.JSONDecodeError: + return self.change_message + messages = [] + for sub_message in change_message: + if "added" in sub_message: + if sub_message["added"]: + sub_message["added"]["name"] = gettext( + sub_message["added"]["name"] + ) + messages.append( + gettext("Added {name} “{object}”.").format( + **sub_message["added"] + ) + ) + else: + messages.append(gettext("Added.")) + + elif "changed" in sub_message: + sub_message["changed"]["fields"] = get_text_list( + [ + gettext(field_name) + for field_name in sub_message["changed"]["fields"] + ], + gettext("and"), + ) + if "name" in sub_message["changed"]: + sub_message["changed"]["name"] = gettext( + sub_message["changed"]["name"] + ) + messages.append( + gettext("Changed {fields} for {name} “{object}”.").format( + **sub_message["changed"] + ) + ) + else: + messages.append( + gettext("Changed {fields}.").format( + **sub_message["changed"] + ) + ) + + elif "deleted" in sub_message: + sub_message["deleted"]["name"] = gettext( + sub_message["deleted"]["name"] + ) + messages.append( + gettext("Deleted {name} “{object}”.").format( + **sub_message["deleted"] + ) + ) + + change_message = " ".join(msg[0].upper() + msg[1:] for msg in messages) + return change_message or gettext("No fields changed.") + else: + return self.change_message + + def get_edited_object(self): + """Return the edited object represented by this log entry.""" + return self.content_type.get_object_for_this_type(pk=self.object_id) + + def get_admin_url(self): + """ + Return the admin URL to edit the object represented by this log entry. + """ + if self.content_type and self.object_id: + url_name = "admin:%s_%s_change" % ( + self.content_type.app_label, + self.content_type.model, + ) + try: + return reverse(url_name, args=(quote(self.object_id),)) + except NoReverseMatch: + pass + return None diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/options.py b/venv/lib/python3.12/site-packages/django/contrib/admin/options.py new file mode 100644 index 0000000000..5401bcabbe --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/options.py @@ -0,0 +1,2574 @@ +import copy +import enum +import json +import re +import warnings +from functools import partial, update_wrapper +from urllib.parse import parse_qsl +from urllib.parse import quote as urlquote +from urllib.parse import urlparse + +from django import forms +from django.conf import settings +from django.contrib import messages +from django.contrib.admin import helpers, widgets +from django.contrib.admin.checks import ( + BaseModelAdminChecks, + InlineModelAdminChecks, + ModelAdminChecks, +) +from django.contrib.admin.exceptions import DisallowedModelAdminToField, NotRegistered +from django.contrib.admin.templatetags.admin_urls import add_preserved_filters +from django.contrib.admin.utils import ( + NestedObjects, + construct_change_message, + flatten_fieldsets, + get_deleted_objects, + lookup_spawns_duplicates, + model_format_dict, + model_ngettext, + quote, + unquote, +) +from django.contrib.admin.widgets import AutocompleteSelect, AutocompleteSelectMultiple +from django.contrib.auth import get_permission_codename +from django.core.exceptions import ( + FieldDoesNotExist, + FieldError, + PermissionDenied, + ValidationError, +) +from django.core.paginator import Paginator +from django.db import models, router, transaction +from django.db.models.constants import LOOKUP_SEP +from django.forms.formsets import DELETION_FIELD_NAME, all_valid +from django.forms.models import ( + BaseInlineFormSet, + inlineformset_factory, + modelform_defines_fields, + modelform_factory, + modelformset_factory, +) +from django.forms.widgets import CheckboxSelectMultiple, SelectMultiple +from django.http import HttpResponseRedirect +from django.http.response import HttpResponseBase +from django.template.response import SimpleTemplateResponse, TemplateResponse +from django.urls import reverse +from django.utils.decorators import method_decorator +from django.utils.deprecation import RemovedInDjango60Warning +from django.utils.html import format_html +from django.utils.http import urlencode +from django.utils.safestring import mark_safe +from django.utils.text import ( + capfirst, + format_lazy, + get_text_list, + smart_split, + unescape_string_literal, +) +from django.utils.translation import gettext as _ +from django.utils.translation import ngettext +from django.views.decorators.csrf import csrf_protect +from django.views.generic import RedirectView + +IS_POPUP_VAR = "_popup" +TO_FIELD_VAR = "_to_field" +IS_FACETS_VAR = "_facets" + + +class ShowFacets(enum.Enum): + NEVER = "NEVER" + ALLOW = "ALLOW" + ALWAYS = "ALWAYS" + + +HORIZONTAL, VERTICAL = 1, 2 + + +def get_content_type_for_model(obj): + # Since this module gets imported in the application's root package, + # it cannot import models from other applications at the module level. + from django.contrib.contenttypes.models import ContentType + + return ContentType.objects.get_for_model(obj, for_concrete_model=False) + + +def get_ul_class(radio_style): + return "radiolist" if radio_style == VERTICAL else "radiolist inline" + + +class IncorrectLookupParameters(Exception): + pass + + +# Defaults for formfield_overrides. ModelAdmin subclasses can change this +# by adding to ModelAdmin.formfield_overrides. + +FORMFIELD_FOR_DBFIELD_DEFAULTS = { + models.DateTimeField: { + "form_class": forms.SplitDateTimeField, + "widget": widgets.AdminSplitDateTime, + }, + models.DateField: {"widget": widgets.AdminDateWidget}, + models.TimeField: {"widget": widgets.AdminTimeWidget}, + models.TextField: {"widget": widgets.AdminTextareaWidget}, + models.URLField: {"widget": widgets.AdminURLFieldWidget}, + models.IntegerField: {"widget": widgets.AdminIntegerFieldWidget}, + models.BigIntegerField: {"widget": widgets.AdminBigIntegerFieldWidget}, + models.CharField: {"widget": widgets.AdminTextInputWidget}, + models.ImageField: {"widget": widgets.AdminFileWidget}, + models.FileField: {"widget": widgets.AdminFileWidget}, + models.EmailField: {"widget": widgets.AdminEmailInputWidget}, + models.UUIDField: {"widget": widgets.AdminUUIDInputWidget}, +} + +csrf_protect_m = method_decorator(csrf_protect) + + +class BaseModelAdmin(metaclass=forms.MediaDefiningClass): + """Functionality common to both ModelAdmin and InlineAdmin.""" + + autocomplete_fields = () + raw_id_fields = () + fields = None + exclude = None + fieldsets = None + form = forms.ModelForm + filter_vertical = () + filter_horizontal = () + radio_fields = {} + prepopulated_fields = {} + formfield_overrides = {} + readonly_fields = () + ordering = None + sortable_by = None + view_on_site = True + show_full_result_count = True + checks_class = BaseModelAdminChecks + + def check(self, **kwargs): + return self.checks_class().check(self, **kwargs) + + def __init__(self): + # Merge FORMFIELD_FOR_DBFIELD_DEFAULTS with the formfield_overrides + # rather than simply overwriting. + overrides = copy.deepcopy(FORMFIELD_FOR_DBFIELD_DEFAULTS) + for k, v in self.formfield_overrides.items(): + overrides.setdefault(k, {}).update(v) + self.formfield_overrides = overrides + + def formfield_for_dbfield(self, db_field, request, **kwargs): + """ + Hook for specifying the form Field instance for a given database Field + instance. + + If kwargs are given, they're passed to the form Field's constructor. + """ + # If the field specifies choices, we don't need to look for special + # admin widgets - we just need to use a select widget of some kind. + if db_field.choices: + return self.formfield_for_choice_field(db_field, request, **kwargs) + + # ForeignKey or ManyToManyFields + if isinstance(db_field, (models.ForeignKey, models.ManyToManyField)): + # Combine the field kwargs with any options for formfield_overrides. + # Make sure the passed in **kwargs override anything in + # formfield_overrides because **kwargs is more specific, and should + # always win. + if db_field.__class__ in self.formfield_overrides: + kwargs = {**self.formfield_overrides[db_field.__class__], **kwargs} + + # Get the correct formfield. + if isinstance(db_field, models.ForeignKey): + formfield = self.formfield_for_foreignkey(db_field, request, **kwargs) + elif isinstance(db_field, models.ManyToManyField): + formfield = self.formfield_for_manytomany(db_field, request, **kwargs) + + # For non-raw_id fields, wrap the widget with a wrapper that adds + # extra HTML -- the "add other" interface -- to the end of the + # rendered output. formfield can be None if it came from a + # OneToOneField with parent_link=True or a M2M intermediary. + if formfield and db_field.name not in self.raw_id_fields: + try: + related_modeladmin = self.admin_site.get_model_admin( + db_field.remote_field.model + ) + except NotRegistered: + wrapper_kwargs = {} + else: + wrapper_kwargs = { + "can_add_related": related_modeladmin.has_add_permission( + request + ), + "can_change_related": related_modeladmin.has_change_permission( + request + ), + "can_delete_related": related_modeladmin.has_delete_permission( + request + ), + "can_view_related": related_modeladmin.has_view_permission( + request + ), + } + formfield.widget = widgets.RelatedFieldWidgetWrapper( + formfield.widget, + db_field.remote_field, + self.admin_site, + **wrapper_kwargs, + ) + + return formfield + + # If we've got overrides for the formfield defined, use 'em. **kwargs + # passed to formfield_for_dbfield override the defaults. + for klass in db_field.__class__.mro(): + if klass in self.formfield_overrides: + kwargs = {**copy.deepcopy(self.formfield_overrides[klass]), **kwargs} + return db_field.formfield(**kwargs) + + # For any other type of field, just call its formfield() method. + return db_field.formfield(**kwargs) + + def formfield_for_choice_field(self, db_field, request, **kwargs): + """ + Get a form Field for a database Field that has declared choices. + """ + # If the field is named as a radio_field, use a RadioSelect + if db_field.name in self.radio_fields: + # Avoid stomping on custom widget/choices arguments. + if "widget" not in kwargs: + kwargs["widget"] = widgets.AdminRadioSelect( + attrs={ + "class": get_ul_class(self.radio_fields[db_field.name]), + } + ) + if "choices" not in kwargs: + kwargs["choices"] = db_field.get_choices( + include_blank=db_field.blank, blank_choice=[("", _("None"))] + ) + return db_field.formfield(**kwargs) + + def get_field_queryset(self, db, db_field, request): + """ + If the ModelAdmin specifies ordering, the queryset should respect that + ordering. Otherwise don't specify the queryset, let the field decide + (return None in that case). + """ + try: + related_admin = self.admin_site.get_model_admin(db_field.remote_field.model) + except NotRegistered: + return None + else: + ordering = related_admin.get_ordering(request) + if ordering is not None and ordering != (): + return db_field.remote_field.model._default_manager.using(db).order_by( + *ordering + ) + return None + + def formfield_for_foreignkey(self, db_field, request, **kwargs): + """ + Get a form Field for a ForeignKey. + """ + db = kwargs.get("using") + + if "widget" not in kwargs: + if db_field.name in self.get_autocomplete_fields(request): + kwargs["widget"] = AutocompleteSelect( + db_field, self.admin_site, using=db + ) + elif db_field.name in self.raw_id_fields: + kwargs["widget"] = widgets.ForeignKeyRawIdWidget( + db_field.remote_field, self.admin_site, using=db + ) + elif db_field.name in self.radio_fields: + kwargs["widget"] = widgets.AdminRadioSelect( + attrs={ + "class": get_ul_class(self.radio_fields[db_field.name]), + } + ) + kwargs["empty_label"] = ( + kwargs.get("empty_label", _("None")) if db_field.blank else None + ) + + if "queryset" not in kwargs: + queryset = self.get_field_queryset(db, db_field, request) + if queryset is not None: + kwargs["queryset"] = queryset + + return db_field.formfield(**kwargs) + + def formfield_for_manytomany(self, db_field, request, **kwargs): + """ + Get a form Field for a ManyToManyField. + """ + # If it uses an intermediary model that isn't auto created, don't show + # a field in admin. + if not db_field.remote_field.through._meta.auto_created: + return None + db = kwargs.get("using") + + if "widget" not in kwargs: + autocomplete_fields = self.get_autocomplete_fields(request) + if db_field.name in autocomplete_fields: + kwargs["widget"] = AutocompleteSelectMultiple( + db_field, + self.admin_site, + using=db, + ) + elif db_field.name in self.raw_id_fields: + kwargs["widget"] = widgets.ManyToManyRawIdWidget( + db_field.remote_field, + self.admin_site, + using=db, + ) + elif db_field.name in [*self.filter_vertical, *self.filter_horizontal]: + kwargs["widget"] = widgets.FilteredSelectMultiple( + db_field.verbose_name, db_field.name in self.filter_vertical + ) + if "queryset" not in kwargs: + queryset = self.get_field_queryset(db, db_field, request) + if queryset is not None: + kwargs["queryset"] = queryset + + form_field = db_field.formfield(**kwargs) + if ( + isinstance(form_field.widget, SelectMultiple) + and form_field.widget.allow_multiple_selected + and not isinstance( + form_field.widget, (CheckboxSelectMultiple, AutocompleteSelectMultiple) + ) + ): + msg = _( + "Hold down “Control”, or “Command” on a Mac, to select more than one." + ) + help_text = form_field.help_text + form_field.help_text = ( + format_lazy("{} {}", help_text, msg) if help_text else msg + ) + return form_field + + def get_autocomplete_fields(self, request): + """ + Return a list of ForeignKey and/or ManyToMany fields which should use + an autocomplete widget. + """ + return self.autocomplete_fields + + def get_view_on_site_url(self, obj=None): + if obj is None or not self.view_on_site: + return None + + if callable(self.view_on_site): + return self.view_on_site(obj) + elif hasattr(obj, "get_absolute_url"): + # use the ContentType lookup if view_on_site is True + return reverse( + "admin:view_on_site", + kwargs={ + "content_type_id": get_content_type_for_model(obj).pk, + "object_id": obj.pk, + }, + current_app=self.admin_site.name, + ) + + def get_empty_value_display(self): + """ + Return the empty_value_display set on ModelAdmin or AdminSite. + """ + try: + return mark_safe(self.empty_value_display) + except AttributeError: + return mark_safe(self.admin_site.empty_value_display) + + def get_exclude(self, request, obj=None): + """ + Hook for specifying exclude. + """ + return self.exclude + + def get_fields(self, request, obj=None): + """ + Hook for specifying fields. + """ + if self.fields: + return self.fields + # _get_form_for_get_fields() is implemented in subclasses. + form = self._get_form_for_get_fields(request, obj) + return [*form.base_fields, *self.get_readonly_fields(request, obj)] + + def get_fieldsets(self, request, obj=None): + """ + Hook for specifying fieldsets. + """ + if self.fieldsets: + return self.fieldsets + return [(None, {"fields": self.get_fields(request, obj)})] + + def get_inlines(self, request, obj): + """Hook for specifying custom inlines.""" + return self.inlines + + def get_ordering(self, request): + """ + Hook for specifying field ordering. + """ + return self.ordering or () # otherwise we might try to *None, which is bad ;) + + def get_readonly_fields(self, request, obj=None): + """ + Hook for specifying custom readonly fields. + """ + return self.readonly_fields + + def get_prepopulated_fields(self, request, obj=None): + """ + Hook for specifying custom prepopulated fields. + """ + return self.prepopulated_fields + + def get_queryset(self, request): + """ + Return a QuerySet of all model instances that can be edited by the + admin site. This is used by changelist_view. + """ + qs = self.model._default_manager.get_queryset() + # TODO: this should be handled by some parameter to the ChangeList. + ordering = self.get_ordering(request) + if ordering: + qs = qs.order_by(*ordering) + return qs + + def get_sortable_by(self, request): + """Hook for specifying which fields can be sorted in the changelist.""" + return ( + self.sortable_by + if self.sortable_by is not None + else self.get_list_display(request) + ) + + # RemovedInDjango60Warning: when the deprecation ends, replace with: + # def lookup_allowed(self, lookup, value, request): + def lookup_allowed(self, lookup, value, request=None): + from django.contrib.admin.filters import SimpleListFilter + + model = self.model + # Check FKey lookups that are allowed, so that popups produced by + # ForeignKeyRawIdWidget, on the basis of ForeignKey.limit_choices_to, + # are allowed to work. + for fk_lookup in model._meta.related_fkey_lookups: + # As ``limit_choices_to`` can be a callable, invoke it here. + if callable(fk_lookup): + fk_lookup = fk_lookup() + if (lookup, value) in widgets.url_params_from_lookup_dict( + fk_lookup + ).items(): + return True + + relation_parts = [] + prev_field = None + parts = lookup.split(LOOKUP_SEP) + for part in parts: + try: + field = model._meta.get_field(part) + except FieldDoesNotExist: + # Lookups on nonexistent fields are ok, since they're ignored + # later. + break + if not prev_field or ( + prev_field.is_relation + and field not in model._meta.parents.values() + and field is not model._meta.auto_field + and ( + model._meta.auto_field is None + or part not in getattr(prev_field, "to_fields", []) + ) + and (field.is_relation or not field.primary_key) + ): + relation_parts.append(part) + if not getattr(field, "path_infos", None): + # This is not a relational field, so further parts + # must be transforms. + break + prev_field = field + model = field.path_infos[-1].to_opts.model + + if len(relation_parts) <= 1: + # Either a local field filter, or no fields at all. + return True + valid_lookups = {self.date_hierarchy} + # RemovedInDjango60Warning: when the deprecation ends, replace with: + # for filter_item in self.get_list_filter(request): + list_filter = ( + self.get_list_filter(request) if request is not None else self.list_filter + ) + for filter_item in list_filter: + if isinstance(filter_item, type) and issubclass( + filter_item, SimpleListFilter + ): + valid_lookups.add(filter_item.parameter_name) + elif isinstance(filter_item, (list, tuple)): + valid_lookups.add(filter_item[0]) + else: + valid_lookups.add(filter_item) + + # Is it a valid relational lookup? + return not { + LOOKUP_SEP.join(relation_parts), + LOOKUP_SEP.join(relation_parts + [part]), + }.isdisjoint(valid_lookups) + + def to_field_allowed(self, request, to_field): + """ + Return True if the model associated with this admin should be + allowed to be referenced by the specified field. + """ + try: + field = self.opts.get_field(to_field) + except FieldDoesNotExist: + return False + + # Always allow referencing the primary key since it's already possible + # to get this information from the change view URL. + if field.primary_key: + return True + + # Allow reverse relationships to models defining m2m fields if they + # target the specified field. + for many_to_many in self.opts.many_to_many: + if many_to_many.m2m_target_field_name() == to_field: + return True + + # Make sure at least one of the models registered for this site + # references this field through a FK or a M2M relationship. + registered_models = set() + for model, admin in self.admin_site._registry.items(): + registered_models.add(model) + for inline in admin.inlines: + registered_models.add(inline.model) + + related_objects = ( + f + for f in self.opts.get_fields(include_hidden=True) + if (f.auto_created and not f.concrete) + ) + for related_object in related_objects: + related_model = related_object.related_model + remote_field = related_object.field.remote_field + if ( + any(issubclass(model, related_model) for model in registered_models) + and hasattr(remote_field, "get_related_field") + and remote_field.get_related_field() == field + ): + return True + + return False + + def has_add_permission(self, request): + """ + Return True if the given request has permission to add an object. + Can be overridden by the user in subclasses. + """ + opts = self.opts + codename = get_permission_codename("add", opts) + return request.user.has_perm("%s.%s" % (opts.app_label, codename)) + + def has_change_permission(self, request, obj=None): + """ + Return True if the given request has permission to change the given + Django model instance, the default implementation doesn't examine the + `obj` parameter. + + Can be overridden by the user in subclasses. In such case it should + return True if the given request has permission to change the `obj` + model instance. If `obj` is None, this should return True if the given + request has permission to change *any* object of the given type. + """ + opts = self.opts + codename = get_permission_codename("change", opts) + return request.user.has_perm("%s.%s" % (opts.app_label, codename)) + + def has_delete_permission(self, request, obj=None): + """ + Return True if the given request has permission to delete the given + Django model instance, the default implementation doesn't examine the + `obj` parameter. + + Can be overridden by the user in subclasses. In such case it should + return True if the given request has permission to delete the `obj` + model instance. If `obj` is None, this should return True if the given + request has permission to delete *any* object of the given type. + """ + opts = self.opts + codename = get_permission_codename("delete", opts) + return request.user.has_perm("%s.%s" % (opts.app_label, codename)) + + def has_view_permission(self, request, obj=None): + """ + Return True if the given request has permission to view the given + Django model instance. The default implementation doesn't examine the + `obj` parameter. + + If overridden by the user in subclasses, it should return True if the + given request has permission to view the `obj` model instance. If `obj` + is None, it should return True if the request has permission to view + any object of the given type. + """ + opts = self.opts + codename_view = get_permission_codename("view", opts) + codename_change = get_permission_codename("change", opts) + return request.user.has_perm( + "%s.%s" % (opts.app_label, codename_view) + ) or request.user.has_perm("%s.%s" % (opts.app_label, codename_change)) + + def has_view_or_change_permission(self, request, obj=None): + return self.has_view_permission(request, obj) or self.has_change_permission( + request, obj + ) + + def has_module_permission(self, request): + """ + Return True if the given request has any permission in the given + app label. + + Can be overridden by the user in subclasses. In such case it should + return True if the given request has permission to view the module on + the admin index page and access the module's index page. Overriding it + does not restrict access to the add, change or delete views. Use + `ModelAdmin.has_(add|change|delete)_permission` for that. + """ + return request.user.has_module_perms(self.opts.app_label) + + +class ModelAdmin(BaseModelAdmin): + """Encapsulate all admin options and functionality for a given model.""" + + list_display = ("__str__",) + list_display_links = () + list_filter = () + list_select_related = False + list_per_page = 100 + list_max_show_all = 200 + list_editable = () + search_fields = () + search_help_text = None + date_hierarchy = None + save_as = False + save_as_continue = True + save_on_top = False + paginator = Paginator + preserve_filters = True + show_facets = ShowFacets.ALLOW + inlines = () + + # Custom templates (designed to be over-ridden in subclasses) + add_form_template = None + change_form_template = None + change_list_template = None + delete_confirmation_template = None + delete_selected_confirmation_template = None + object_history_template = None + popup_response_template = None + + # Actions + actions = () + action_form = helpers.ActionForm + actions_on_top = True + actions_on_bottom = False + actions_selection_counter = True + checks_class = ModelAdminChecks + + def __init__(self, model, admin_site): + self.model = model + self.opts = model._meta + self.admin_site = admin_site + super().__init__() + + def __str__(self): + return "%s.%s" % (self.opts.app_label, self.__class__.__name__) + + def __repr__(self): + return ( + f"<{self.__class__.__qualname__}: model={self.model.__qualname__} " + f"site={self.admin_site!r}>" + ) + + def get_inline_instances(self, request, obj=None): + inline_instances = [] + for inline_class in self.get_inlines(request, obj): + inline = inline_class(self.model, self.admin_site) + if request: + if not ( + inline.has_view_or_change_permission(request, obj) + or inline.has_add_permission(request, obj) + or inline.has_delete_permission(request, obj) + ): + continue + if not inline.has_add_permission(request, obj): + inline.max_num = 0 + inline_instances.append(inline) + + return inline_instances + + def get_urls(self): + from django.urls import path + + def wrap(view): + def wrapper(*args, **kwargs): + return self.admin_site.admin_view(view)(*args, **kwargs) + + wrapper.model_admin = self + return update_wrapper(wrapper, view) + + info = self.opts.app_label, self.opts.model_name + + return [ + path("", wrap(self.changelist_view), name="%s_%s_changelist" % info), + path("add/", wrap(self.add_view), name="%s_%s_add" % info), + path( + "/history/", + wrap(self.history_view), + name="%s_%s_history" % info, + ), + path( + "/delete/", + wrap(self.delete_view), + name="%s_%s_delete" % info, + ), + path( + "/change/", + wrap(self.change_view), + name="%s_%s_change" % info, + ), + # For backwards compatibility (was the change url before 1.9) + path( + "/", + wrap( + RedirectView.as_view( + pattern_name="%s:%s_%s_change" + % ((self.admin_site.name,) + info) + ) + ), + ), + ] + + @property + def urls(self): + return self.get_urls() + + @property + def media(self): + extra = "" if settings.DEBUG else ".min" + js = [ + "vendor/jquery/jquery%s.js" % extra, + "jquery.init.js", + "core.js", + "admin/RelatedObjectLookups.js", + "actions.js", + "urlify.js", + "prepopulate.js", + "vendor/xregexp/xregexp%s.js" % extra, + ] + return forms.Media(js=["admin/js/%s" % url for url in js]) + + def get_model_perms(self, request): + """ + Return a dict of all perms for this model. This dict has the keys + ``add``, ``change``, ``delete``, and ``view`` mapping to the True/False + for each of those actions. + """ + return { + "add": self.has_add_permission(request), + "change": self.has_change_permission(request), + "delete": self.has_delete_permission(request), + "view": self.has_view_permission(request), + } + + def _get_form_for_get_fields(self, request, obj): + return self.get_form(request, obj, fields=None) + + def get_form(self, request, obj=None, change=False, **kwargs): + """ + Return a Form class for use in the admin add view. This is used by + add_view and change_view. + """ + if "fields" in kwargs: + fields = kwargs.pop("fields") + else: + fields = flatten_fieldsets(self.get_fieldsets(request, obj)) + excluded = self.get_exclude(request, obj) + exclude = [] if excluded is None else list(excluded) + readonly_fields = self.get_readonly_fields(request, obj) + exclude.extend(readonly_fields) + # Exclude all fields if it's a change form and the user doesn't have + # the change permission. + if ( + change + and hasattr(request, "user") + and not self.has_change_permission(request, obj) + ): + exclude.extend(fields) + if excluded is None and hasattr(self.form, "_meta") and self.form._meta.exclude: + # Take the custom ModelForm's Meta.exclude into account only if the + # ModelAdmin doesn't define its own. + exclude.extend(self.form._meta.exclude) + # if exclude is an empty list we pass None to be consistent with the + # default on modelform_factory + exclude = exclude or None + + # Remove declared form fields which are in readonly_fields. + new_attrs = dict.fromkeys( + f for f in readonly_fields if f in self.form.declared_fields + ) + form = type(self.form.__name__, (self.form,), new_attrs) + + defaults = { + "form": form, + "fields": fields, + "exclude": exclude, + "formfield_callback": partial(self.formfield_for_dbfield, request=request), + **kwargs, + } + + if defaults["fields"] is None and not modelform_defines_fields( + defaults["form"] + ): + defaults["fields"] = forms.ALL_FIELDS + + try: + return modelform_factory(self.model, **defaults) + except FieldError as e: + raise FieldError( + "%s. Check fields/fieldsets/exclude attributes of class %s." + % (e, self.__class__.__name__) + ) + + def get_changelist(self, request, **kwargs): + """ + Return the ChangeList class for use on the changelist page. + """ + from django.contrib.admin.views.main import ChangeList + + return ChangeList + + def get_changelist_instance(self, request): + """ + Return a `ChangeList` instance based on `request`. May raise + `IncorrectLookupParameters`. + """ + list_display = self.get_list_display(request) + list_display_links = self.get_list_display_links(request, list_display) + # Add the action checkboxes if any actions are available. + if self.get_actions(request): + list_display = ["action_checkbox", *list_display] + sortable_by = self.get_sortable_by(request) + ChangeList = self.get_changelist(request) + return ChangeList( + request, + self.model, + list_display, + list_display_links, + self.get_list_filter(request), + self.date_hierarchy, + self.get_search_fields(request), + self.get_list_select_related(request), + self.list_per_page, + self.list_max_show_all, + self.list_editable, + self, + sortable_by, + self.search_help_text, + ) + + def get_object(self, request, object_id, from_field=None): + """ + Return an instance matching the field and value provided, the primary + key is used if no field is provided. Return ``None`` if no match is + found or the object_id fails validation. + """ + queryset = self.get_queryset(request) + model = queryset.model + field = ( + model._meta.pk if from_field is None else model._meta.get_field(from_field) + ) + try: + object_id = field.to_python(object_id) + return queryset.get(**{field.name: object_id}) + except (model.DoesNotExist, ValidationError, ValueError): + return None + + def get_changelist_form(self, request, **kwargs): + """ + Return a Form class for use in the Formset on the changelist page. + """ + defaults = { + "formfield_callback": partial(self.formfield_for_dbfield, request=request), + **kwargs, + } + if defaults.get("fields") is None and not modelform_defines_fields( + defaults.get("form") + ): + defaults["fields"] = forms.ALL_FIELDS + + return modelform_factory(self.model, **defaults) + + def get_changelist_formset(self, request, **kwargs): + """ + Return a FormSet class for use on the changelist page if list_editable + is used. + """ + defaults = { + "formfield_callback": partial(self.formfield_for_dbfield, request=request), + **kwargs, + } + return modelformset_factory( + self.model, + self.get_changelist_form(request), + extra=0, + fields=self.list_editable, + **defaults, + ) + + def get_formsets_with_inlines(self, request, obj=None): + """ + Yield formsets and the corresponding inlines. + """ + for inline in self.get_inline_instances(request, obj): + yield inline.get_formset(request, obj), inline + + def get_paginator( + self, request, queryset, per_page, orphans=0, allow_empty_first_page=True + ): + return self.paginator(queryset, per_page, orphans, allow_empty_first_page) + + def log_addition(self, request, obj, message): + """ + Log that an object has been successfully added. + + The default implementation creates an admin LogEntry object. + """ + from django.contrib.admin.models import ADDITION, LogEntry + + return LogEntry.objects.log_actions( + user_id=request.user.pk, + queryset=[obj], + action_flag=ADDITION, + change_message=message, + single_object=True, + ) + + def log_change(self, request, obj, message): + """ + Log that an object has been successfully changed. + + The default implementation creates an admin LogEntry object. + """ + from django.contrib.admin.models import CHANGE, LogEntry + + return LogEntry.objects.log_actions( + user_id=request.user.pk, + queryset=[obj], + action_flag=CHANGE, + change_message=message, + single_object=True, + ) + + def log_deletion(self, request, obj, object_repr): + """ + Log that an object will be deleted. Note that this method must be + called before the deletion. + + The default implementation creates an admin LogEntry object. + """ + warnings.warn( + "ModelAdmin.log_deletion() is deprecated. Use log_deletions() instead.", + RemovedInDjango60Warning, + stacklevel=2, + ) + from django.contrib.admin.models import DELETION, LogEntry + + return LogEntry.objects.log_action( + user_id=request.user.pk, + content_type_id=get_content_type_for_model(obj).pk, + object_id=obj.pk, + object_repr=object_repr, + action_flag=DELETION, + ) + + def log_deletions(self, request, queryset): + """ + Log that objects will be deleted. Note that this method must be called + before the deletion. + + The default implementation creates admin LogEntry objects. + """ + from django.contrib.admin.models import DELETION, LogEntry + + # RemovedInDjango60Warning. + if type(self).log_deletion != ModelAdmin.log_deletion: + warnings.warn( + "The usage of log_deletion() is deprecated. Implement log_deletions() " + "instead.", + RemovedInDjango60Warning, + stacklevel=2, + ) + return [self.log_deletion(request, obj, str(obj)) for obj in queryset] + + return LogEntry.objects.log_actions( + user_id=request.user.pk, + queryset=queryset, + action_flag=DELETION, + ) + + def action_checkbox(self, obj): + """ + A list_display column containing a checkbox widget. + """ + attrs = { + "class": "action-select", + "aria-label": format_html( + _("Select this object for an action - {}"), str(obj) + ), + } + checkbox = forms.CheckboxInput(attrs, lambda value: False) + return checkbox.render(helpers.ACTION_CHECKBOX_NAME, str(obj.pk)) + + @staticmethod + def _get_action_description(func, name): + try: + return func.short_description + except AttributeError: + return capfirst(name.replace("_", " ")) + + def _get_base_actions(self): + """Return the list of actions, prior to any request-based filtering.""" + actions = [] + base_actions = (self.get_action(action) for action in self.actions or []) + # get_action might have returned None, so filter any of those out. + base_actions = [action for action in base_actions if action] + base_action_names = {name for _, name, _ in base_actions} + + # Gather actions from the admin site first + for name, func in self.admin_site.actions: + if name in base_action_names: + continue + description = self._get_action_description(func, name) + actions.append((func, name, description)) + # Add actions from this ModelAdmin. + actions.extend(base_actions) + return actions + + def _filter_actions_by_permissions(self, request, actions): + """Filter out any actions that the user doesn't have access to.""" + filtered_actions = [] + for action in actions: + callable = action[0] + if not hasattr(callable, "allowed_permissions"): + filtered_actions.append(action) + continue + permission_checks = ( + getattr(self, "has_%s_permission" % permission) + for permission in callable.allowed_permissions + ) + if any(has_permission(request) for has_permission in permission_checks): + filtered_actions.append(action) + return filtered_actions + + def get_actions(self, request): + """ + Return a dictionary mapping the names of all actions for this + ModelAdmin to a tuple of (callable, name, description) for each action. + """ + # If self.actions is set to None that means actions are disabled on + # this page. + if self.actions is None or IS_POPUP_VAR in request.GET: + return {} + actions = self._filter_actions_by_permissions(request, self._get_base_actions()) + return {name: (func, name, desc) for func, name, desc in actions} + + def get_action_choices(self, request, default_choices=models.BLANK_CHOICE_DASH): + """ + Return a list of choices for use in a form object. Each choice is a + tuple (name, description). + """ + choices = [] + default_choices + for func, name, description in self.get_actions(request).values(): + choice = (name, description % model_format_dict(self.opts)) + choices.append(choice) + return choices + + def get_action(self, action): + """ + Return a given action from a parameter, which can either be a callable, + or the name of a method on the ModelAdmin. Return is a tuple of + (callable, name, description). + """ + # If the action is a callable, just use it. + if callable(action): + func = action + action = action.__name__ + + # Next, look for a method. Grab it off self.__class__ to get an unbound + # method instead of a bound one; this ensures that the calling + # conventions are the same for functions and methods. + elif hasattr(self.__class__, action): + func = getattr(self.__class__, action) + + # Finally, look for a named method on the admin site + else: + try: + func = self.admin_site.get_action(action) + except KeyError: + return None + + description = self._get_action_description(func, action) + return func, action, description + + def get_list_display(self, request): + """ + Return a sequence containing the fields to be displayed on the + changelist. + """ + return self.list_display + + def get_list_display_links(self, request, list_display): + """ + Return a sequence containing the fields to be displayed as links + on the changelist. The list_display parameter is the list of fields + returned by get_list_display(). + """ + if ( + self.list_display_links + or self.list_display_links is None + or not list_display + ): + return self.list_display_links + else: + # Use only the first item in list_display as link + return list(list_display)[:1] + + def get_list_filter(self, request): + """ + Return a sequence containing the fields to be displayed as filters in + the right sidebar of the changelist page. + """ + return self.list_filter + + def get_list_select_related(self, request): + """ + Return a list of fields to add to the select_related() part of the + changelist items query. + """ + return self.list_select_related + + def get_search_fields(self, request): + """ + Return a sequence containing the fields to be searched whenever + somebody submits a search query. + """ + return self.search_fields + + def get_search_results(self, request, queryset, search_term): + """ + Return a tuple containing a queryset to implement the search + and a boolean indicating if the results may contain duplicates. + """ + + # Apply keyword searches. + def construct_search(field_name): + if field_name.startswith("^"): + return "%s__istartswith" % field_name.removeprefix("^") + elif field_name.startswith("="): + return "%s__iexact" % field_name.removeprefix("=") + elif field_name.startswith("@"): + return "%s__search" % field_name.removeprefix("@") + # Use field_name if it includes a lookup. + opts = queryset.model._meta + lookup_fields = field_name.split(LOOKUP_SEP) + # Go through the fields, following all relations. + prev_field = None + for path_part in lookup_fields: + if path_part == "pk": + path_part = opts.pk.name + try: + field = opts.get_field(path_part) + except FieldDoesNotExist: + # Use valid query lookups. + if prev_field and prev_field.get_lookup(path_part): + return field_name + else: + prev_field = field + if hasattr(field, "path_infos"): + # Update opts to follow the relation. + opts = field.path_infos[-1].to_opts + # Otherwise, use the field with icontains. + return "%s__icontains" % field_name + + may_have_duplicates = False + search_fields = self.get_search_fields(request) + if search_fields and search_term: + orm_lookups = [ + construct_search(str(search_field)) for search_field in search_fields + ] + term_queries = [] + for bit in smart_split(search_term): + if bit.startswith(('"', "'")) and bit[0] == bit[-1]: + bit = unescape_string_literal(bit) + or_queries = models.Q.create( + [(orm_lookup, bit) for orm_lookup in orm_lookups], + connector=models.Q.OR, + ) + term_queries.append(or_queries) + queryset = queryset.filter(models.Q.create(term_queries)) + may_have_duplicates |= any( + lookup_spawns_duplicates(self.opts, search_spec) + for search_spec in orm_lookups + ) + return queryset, may_have_duplicates + + def get_preserved_filters(self, request): + """ + Return the preserved filters querystring. + """ + match = request.resolver_match + if self.preserve_filters and match: + current_url = "%s:%s" % (match.app_name, match.url_name) + changelist_url = "admin:%s_%s_changelist" % ( + self.opts.app_label, + self.opts.model_name, + ) + if current_url == changelist_url: + preserved_filters = request.GET.urlencode() + else: + preserved_filters = request.GET.get("_changelist_filters") + + if preserved_filters: + return urlencode({"_changelist_filters": preserved_filters}) + return "" + + def construct_change_message(self, request, form, formsets, add=False): + """ + Construct a JSON structure describing changes from a changed object. + """ + return construct_change_message(form, formsets, add) + + def message_user( + self, request, message, level=messages.INFO, extra_tags="", fail_silently=False + ): + """ + Send a message to the user. The default implementation + posts a message using the django.contrib.messages backend. + + Exposes almost the same API as messages.add_message(), but accepts the + positional arguments in a different order to maintain backwards + compatibility. For convenience, it accepts the `level` argument as + a string rather than the usual level number. + """ + if not isinstance(level, int): + # attempt to get the level if passed a string + try: + level = getattr(messages.constants, level.upper()) + except AttributeError: + levels = messages.constants.DEFAULT_TAGS.values() + levels_repr = ", ".join("`%s`" % level for level in levels) + raise ValueError( + "Bad message level string: `%s`. Possible values are: %s" + % (level, levels_repr) + ) + + messages.add_message( + request, level, message, extra_tags=extra_tags, fail_silently=fail_silently + ) + + def save_form(self, request, form, change): + """ + Given a ModelForm return an unsaved instance. ``change`` is True if + the object is being changed, and False if it's being added. + """ + return form.save(commit=False) + + def save_model(self, request, obj, form, change): + """ + Given a model instance save it to the database. + """ + obj.save() + + def delete_model(self, request, obj): + """ + Given a model instance delete it from the database. + """ + obj.delete() + + def delete_queryset(self, request, queryset): + """Given a queryset, delete it from the database.""" + queryset.delete() + + def save_formset(self, request, form, formset, change): + """ + Given an inline formset save it to the database. + """ + formset.save() + + def save_related(self, request, form, formsets, change): + """ + Given the ``HttpRequest``, the parent ``ModelForm`` instance, the + list of inline formsets and a boolean value based on whether the + parent is being added or changed, save the related objects to the + database. Note that at this point save_form() and save_model() have + already been called. + """ + form.save_m2m() + for formset in formsets: + self.save_formset(request, form, formset, change=change) + + def render_change_form( + self, request, context, add=False, change=False, form_url="", obj=None + ): + app_label = self.opts.app_label + preserved_filters = self.get_preserved_filters(request) + form_url = add_preserved_filters( + {"preserved_filters": preserved_filters, "opts": self.opts}, form_url + ) + view_on_site_url = self.get_view_on_site_url(obj) + has_editable_inline_admin_formsets = False + for inline in context["inline_admin_formsets"]: + if ( + inline.has_add_permission + or inline.has_change_permission + or inline.has_delete_permission + ): + has_editable_inline_admin_formsets = True + break + context.update( + { + "add": add, + "change": change, + "has_view_permission": self.has_view_permission(request, obj), + "has_add_permission": self.has_add_permission(request), + "has_change_permission": self.has_change_permission(request, obj), + "has_delete_permission": self.has_delete_permission(request, obj), + "has_editable_inline_admin_formsets": ( + has_editable_inline_admin_formsets + ), + "has_file_field": context["adminform"].form.is_multipart() + or any( + admin_formset.formset.is_multipart() + for admin_formset in context["inline_admin_formsets"] + ), + "has_absolute_url": view_on_site_url is not None, + "absolute_url": view_on_site_url, + "form_url": form_url, + "opts": self.opts, + "content_type_id": get_content_type_for_model(self.model).pk, + "save_as": self.save_as, + "save_on_top": self.save_on_top, + "to_field_var": TO_FIELD_VAR, + "is_popup_var": IS_POPUP_VAR, + "app_label": app_label, + } + ) + if add and self.add_form_template is not None: + form_template = self.add_form_template + else: + form_template = self.change_form_template + + request.current_app = self.admin_site.name + + return TemplateResponse( + request, + form_template + or [ + "admin/%s/%s/change_form.html" % (app_label, self.opts.model_name), + "admin/%s/change_form.html" % app_label, + "admin/change_form.html", + ], + context, + ) + + def _get_preserved_qsl(self, request, preserved_filters): + query_string = urlparse(request.build_absolute_uri()).query + return parse_qsl(query_string.replace(preserved_filters, "")) + + def response_add(self, request, obj, post_url_continue=None): + """ + Determine the HttpResponse for the add_view stage. + """ + opts = obj._meta + preserved_filters = self.get_preserved_filters(request) + preserved_qsl = self._get_preserved_qsl(request, preserved_filters) + obj_url = reverse( + "admin:%s_%s_change" % (opts.app_label, opts.model_name), + args=(quote(obj.pk),), + current_app=self.admin_site.name, + ) + # Add a link to the object's change form if the user can edit the obj. + if self.has_change_permission(request, obj): + obj_repr = format_html('{}', urlquote(obj_url), obj) + else: + obj_repr = str(obj) + msg_dict = { + "name": opts.verbose_name, + "obj": obj_repr, + } + # Here, we distinguish between different save types by checking for + # the presence of keys in request.POST. + + if IS_POPUP_VAR in request.POST: + to_field = request.POST.get(TO_FIELD_VAR) + if to_field: + attr = str(to_field) + else: + attr = obj._meta.pk.attname + value = obj.serializable_value(attr) + popup_response_data = json.dumps( + { + "value": str(value), + "obj": str(obj), + } + ) + return TemplateResponse( + request, + self.popup_response_template + or [ + "admin/%s/%s/popup_response.html" + % (opts.app_label, opts.model_name), + "admin/%s/popup_response.html" % opts.app_label, + "admin/popup_response.html", + ], + { + "popup_response_data": popup_response_data, + }, + ) + + elif "_continue" in request.POST or ( + # Redirecting after "Save as new". + "_saveasnew" in request.POST + and self.save_as_continue + and self.has_change_permission(request, obj) + ): + msg = _("The {name} “{obj}” was added successfully.") + if self.has_change_permission(request, obj): + msg += " " + _("You may edit it again below.") + self.message_user(request, format_html(msg, **msg_dict), messages.SUCCESS) + if post_url_continue is None: + post_url_continue = obj_url + post_url_continue = add_preserved_filters( + { + "preserved_filters": preserved_filters, + "preserved_qsl": preserved_qsl, + "opts": opts, + }, + post_url_continue, + ) + return HttpResponseRedirect(post_url_continue) + + elif "_addanother" in request.POST: + msg = format_html( + _( + "The {name} “{obj}” was added successfully. You may add another " + "{name} below." + ), + **msg_dict, + ) + self.message_user(request, msg, messages.SUCCESS) + redirect_url = request.path + redirect_url = add_preserved_filters( + { + "preserved_filters": preserved_filters, + "preserved_qsl": preserved_qsl, + "opts": opts, + }, + redirect_url, + ) + return HttpResponseRedirect(redirect_url) + + else: + msg = format_html( + _("The {name} “{obj}” was added successfully."), **msg_dict + ) + self.message_user(request, msg, messages.SUCCESS) + return self.response_post_save_add(request, obj) + + def response_change(self, request, obj): + """ + Determine the HttpResponse for the change_view stage. + """ + + if IS_POPUP_VAR in request.POST: + opts = obj._meta + to_field = request.POST.get(TO_FIELD_VAR) + attr = str(to_field) if to_field else opts.pk.attname + value = request.resolver_match.kwargs["object_id"] + new_value = obj.serializable_value(attr) + popup_response_data = json.dumps( + { + "action": "change", + "value": str(value), + "obj": str(obj), + "new_value": str(new_value), + } + ) + return TemplateResponse( + request, + self.popup_response_template + or [ + "admin/%s/%s/popup_response.html" + % (opts.app_label, opts.model_name), + "admin/%s/popup_response.html" % opts.app_label, + "admin/popup_response.html", + ], + { + "popup_response_data": popup_response_data, + }, + ) + + opts = self.opts + preserved_filters = self.get_preserved_filters(request) + preserved_qsl = self._get_preserved_qsl(request, preserved_filters) + + msg_dict = { + "name": opts.verbose_name, + "obj": format_html('{}', urlquote(request.path), obj), + } + if "_continue" in request.POST: + msg = format_html( + _( + "The {name} “{obj}” was changed successfully. You may edit it " + "again below." + ), + **msg_dict, + ) + self.message_user(request, msg, messages.SUCCESS) + redirect_url = request.path + redirect_url = add_preserved_filters( + { + "preserved_filters": preserved_filters, + "preserved_qsl": preserved_qsl, + "opts": opts, + }, + redirect_url, + ) + return HttpResponseRedirect(redirect_url) + + elif "_addanother" in request.POST: + msg = format_html( + _( + "The {name} “{obj}” was changed successfully. You may add another " + "{name} below." + ), + **msg_dict, + ) + self.message_user(request, msg, messages.SUCCESS) + redirect_url = reverse( + "admin:%s_%s_add" % (opts.app_label, opts.model_name), + current_app=self.admin_site.name, + ) + redirect_url = add_preserved_filters( + { + "preserved_filters": preserved_filters, + "preserved_qsl": preserved_qsl, + "opts": opts, + }, + redirect_url, + ) + return HttpResponseRedirect(redirect_url) + + else: + msg = format_html( + _("The {name} “{obj}” was changed successfully."), **msg_dict + ) + self.message_user(request, msg, messages.SUCCESS) + return self.response_post_save_change(request, obj) + + def _response_post_save(self, request, obj): + if self.has_view_or_change_permission(request): + post_url = reverse( + "admin:%s_%s_changelist" % (self.opts.app_label, self.opts.model_name), + current_app=self.admin_site.name, + ) + preserved_filters = self.get_preserved_filters(request) + post_url = add_preserved_filters( + {"preserved_filters": preserved_filters, "opts": self.opts}, post_url + ) + else: + post_url = reverse("admin:index", current_app=self.admin_site.name) + return HttpResponseRedirect(post_url) + + def response_post_save_add(self, request, obj): + """ + Figure out where to redirect after the 'Save' button has been pressed + when adding a new object. + """ + return self._response_post_save(request, obj) + + def response_post_save_change(self, request, obj): + """ + Figure out where to redirect after the 'Save' button has been pressed + when editing an existing object. + """ + return self._response_post_save(request, obj) + + def response_action(self, request, queryset): + """ + Handle an admin action. This is called if a request is POSTed to the + changelist; it returns an HttpResponse if the action was handled, and + None otherwise. + """ + + # There can be multiple action forms on the page (at the top + # and bottom of the change list, for example). Get the action + # whose button was pushed. + try: + action_index = int(request.POST.get("index", 0)) + except ValueError: + action_index = 0 + + # Construct the action form. + data = request.POST.copy() + data.pop(helpers.ACTION_CHECKBOX_NAME, None) + data.pop("index", None) + + # Use the action whose button was pushed + try: + data.update({"action": data.getlist("action")[action_index]}) + except IndexError: + # If we didn't get an action from the chosen form that's invalid + # POST data, so by deleting action it'll fail the validation check + # below. So no need to do anything here + pass + + action_form = self.action_form(data, auto_id=None) + action_form.fields["action"].choices = self.get_action_choices(request) + + # If the form's valid we can handle the action. + if action_form.is_valid(): + action = action_form.cleaned_data["action"] + select_across = action_form.cleaned_data["select_across"] + func = self.get_actions(request)[action][0] + + # Get the list of selected PKs. If nothing's selected, we can't + # perform an action on it, so bail. Except we want to perform + # the action explicitly on all objects. + selected = request.POST.getlist(helpers.ACTION_CHECKBOX_NAME) + if not selected and not select_across: + # Reminder that something needs to be selected or nothing will happen + msg = _( + "Items must be selected in order to perform " + "actions on them. No items have been changed." + ) + self.message_user(request, msg, messages.WARNING) + return None + + if not select_across: + # Perform the action only on the selected objects + queryset = queryset.filter(pk__in=selected) + + response = func(self, request, queryset) + + # Actions may return an HttpResponse-like object, which will be + # used as the response from the POST. If not, we'll be a good + # little HTTP citizen and redirect back to the changelist page. + if isinstance(response, HttpResponseBase): + return response + else: + return HttpResponseRedirect(request.get_full_path()) + else: + msg = _("No action selected.") + self.message_user(request, msg, messages.WARNING) + return None + + def response_delete(self, request, obj_display, obj_id): + """ + Determine the HttpResponse for the delete_view stage. + """ + if IS_POPUP_VAR in request.POST: + popup_response_data = json.dumps( + { + "action": "delete", + "value": str(obj_id), + } + ) + return TemplateResponse( + request, + self.popup_response_template + or [ + "admin/%s/%s/popup_response.html" + % (self.opts.app_label, self.opts.model_name), + "admin/%s/popup_response.html" % self.opts.app_label, + "admin/popup_response.html", + ], + { + "popup_response_data": popup_response_data, + }, + ) + + self.message_user( + request, + _("The %(name)s “%(obj)s” was deleted successfully.") + % { + "name": self.opts.verbose_name, + "obj": obj_display, + }, + messages.SUCCESS, + ) + + if self.has_change_permission(request, None): + post_url = reverse( + "admin:%s_%s_changelist" % (self.opts.app_label, self.opts.model_name), + current_app=self.admin_site.name, + ) + preserved_filters = self.get_preserved_filters(request) + post_url = add_preserved_filters( + {"preserved_filters": preserved_filters, "opts": self.opts}, post_url + ) + else: + post_url = reverse("admin:index", current_app=self.admin_site.name) + return HttpResponseRedirect(post_url) + + def render_delete_form(self, request, context): + app_label = self.opts.app_label + + request.current_app = self.admin_site.name + context.update( + to_field_var=TO_FIELD_VAR, + is_popup_var=IS_POPUP_VAR, + media=self.media, + ) + + return TemplateResponse( + request, + self.delete_confirmation_template + or [ + "admin/{}/{}/delete_confirmation.html".format( + app_label, self.opts.model_name + ), + "admin/{}/delete_confirmation.html".format(app_label), + "admin/delete_confirmation.html", + ], + context, + ) + + def get_inline_formsets(self, request, formsets, inline_instances, obj=None): + # Edit permissions on parent model are required for editable inlines. + can_edit_parent = ( + self.has_change_permission(request, obj) + if obj + else self.has_add_permission(request) + ) + inline_admin_formsets = [] + for inline, formset in zip(inline_instances, formsets): + fieldsets = list(inline.get_fieldsets(request, obj)) + readonly = list(inline.get_readonly_fields(request, obj)) + if can_edit_parent: + has_add_permission = inline.has_add_permission(request, obj) + has_change_permission = inline.has_change_permission(request, obj) + has_delete_permission = inline.has_delete_permission(request, obj) + else: + # Disable all edit-permissions, and override formset settings. + has_add_permission = has_change_permission = has_delete_permission = ( + False + ) + formset.extra = formset.max_num = 0 + has_view_permission = inline.has_view_permission(request, obj) + prepopulated = dict(inline.get_prepopulated_fields(request, obj)) + inline_admin_formset = helpers.InlineAdminFormSet( + inline, + formset, + fieldsets, + prepopulated, + readonly, + model_admin=self, + has_add_permission=has_add_permission, + has_change_permission=has_change_permission, + has_delete_permission=has_delete_permission, + has_view_permission=has_view_permission, + ) + inline_admin_formsets.append(inline_admin_formset) + return inline_admin_formsets + + def get_changeform_initial_data(self, request): + """ + Get the initial form data from the request's GET params. + """ + initial = dict(request.GET.items()) + for k in initial: + try: + f = self.opts.get_field(k) + except FieldDoesNotExist: + continue + # We have to special-case M2Ms as a list of comma-separated PKs. + if isinstance(f, models.ManyToManyField): + initial[k] = initial[k].split(",") + return initial + + def _get_obj_does_not_exist_redirect(self, request, opts, object_id): + """ + Create a message informing the user that the object doesn't exist + and return a redirect to the admin index page. + """ + msg = _("%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?") % { + "name": opts.verbose_name, + "key": unquote(object_id), + } + self.message_user(request, msg, messages.WARNING) + url = reverse("admin:index", current_app=self.admin_site.name) + return HttpResponseRedirect(url) + + @csrf_protect_m + def changeform_view(self, request, object_id=None, form_url="", extra_context=None): + with transaction.atomic(using=router.db_for_write(self.model)): + return self._changeform_view(request, object_id, form_url, extra_context) + + def _changeform_view(self, request, object_id, form_url, extra_context): + to_field = request.POST.get(TO_FIELD_VAR, request.GET.get(TO_FIELD_VAR)) + if to_field and not self.to_field_allowed(request, to_field): + raise DisallowedModelAdminToField( + "The field %s cannot be referenced." % to_field + ) + + if request.method == "POST" and "_saveasnew" in request.POST: + object_id = None + + add = object_id is None + + if add: + if not self.has_add_permission(request): + raise PermissionDenied + obj = None + + else: + obj = self.get_object(request, unquote(object_id), to_field) + + if request.method == "POST": + if not self.has_change_permission(request, obj): + raise PermissionDenied + else: + if not self.has_view_or_change_permission(request, obj): + raise PermissionDenied + + if obj is None: + return self._get_obj_does_not_exist_redirect( + request, self.opts, object_id + ) + + fieldsets = self.get_fieldsets(request, obj) + ModelForm = self.get_form( + request, obj, change=not add, fields=flatten_fieldsets(fieldsets) + ) + if request.method == "POST": + form = ModelForm(request.POST, request.FILES, instance=obj) + formsets, inline_instances = self._create_formsets( + request, + form.instance, + change=not add, + ) + form_validated = form.is_valid() + if form_validated: + new_object = self.save_form(request, form, change=not add) + else: + new_object = form.instance + if all_valid(formsets) and form_validated: + self.save_model(request, new_object, form, not add) + self.save_related(request, form, formsets, not add) + change_message = self.construct_change_message( + request, form, formsets, add + ) + if add: + self.log_addition(request, new_object, change_message) + return self.response_add(request, new_object) + else: + self.log_change(request, new_object, change_message) + return self.response_change(request, new_object) + else: + form_validated = False + else: + if add: + initial = self.get_changeform_initial_data(request) + form = ModelForm(initial=initial) + formsets, inline_instances = self._create_formsets( + request, form.instance, change=False + ) + else: + form = ModelForm(instance=obj) + formsets, inline_instances = self._create_formsets( + request, obj, change=True + ) + + if not add and not self.has_change_permission(request, obj): + readonly_fields = flatten_fieldsets(fieldsets) + else: + readonly_fields = self.get_readonly_fields(request, obj) + admin_form = helpers.AdminForm( + form, + list(fieldsets), + # Clear prepopulated fields on a view-only form to avoid a crash. + ( + self.get_prepopulated_fields(request, obj) + if add or self.has_change_permission(request, obj) + else {} + ), + readonly_fields, + model_admin=self, + ) + media = self.media + admin_form.media + + inline_formsets = self.get_inline_formsets( + request, formsets, inline_instances, obj + ) + for inline_formset in inline_formsets: + media += inline_formset.media + + if add: + title = _("Add %s") + elif self.has_change_permission(request, obj): + title = _("Change %s") + else: + title = _("View %s") + context = { + **self.admin_site.each_context(request), + "title": title % self.opts.verbose_name, + "subtitle": str(obj) if obj else None, + "adminform": admin_form, + "object_id": object_id, + "original": obj, + "is_popup": IS_POPUP_VAR in request.POST or IS_POPUP_VAR in request.GET, + "to_field": to_field, + "media": media, + "inline_admin_formsets": inline_formsets, + "errors": helpers.AdminErrorList(form, formsets), + "preserved_filters": self.get_preserved_filters(request), + } + + # Hide the "Save" and "Save and continue" buttons if "Save as New" was + # previously chosen to prevent the interface from getting confusing. + if ( + request.method == "POST" + and not form_validated + and "_saveasnew" in request.POST + ): + context["show_save"] = False + context["show_save_and_continue"] = False + # Use the change template instead of the add template. + add = False + + context.update(extra_context or {}) + + return self.render_change_form( + request, context, add=add, change=not add, obj=obj, form_url=form_url + ) + + def add_view(self, request, form_url="", extra_context=None): + return self.changeform_view(request, None, form_url, extra_context) + + def change_view(self, request, object_id, form_url="", extra_context=None): + return self.changeform_view(request, object_id, form_url, extra_context) + + def _get_edited_object_pks(self, request, prefix): + """Return POST data values of list_editable primary keys.""" + pk_pattern = re.compile( + r"{}-\d+-{}$".format(re.escape(prefix), self.opts.pk.name) + ) + return [value for key, value in request.POST.items() if pk_pattern.match(key)] + + def _get_list_editable_queryset(self, request, prefix): + """ + Based on POST data, return a queryset of the objects that were edited + via list_editable. + """ + object_pks = self._get_edited_object_pks(request, prefix) + queryset = self.get_queryset(request) + validate = queryset.model._meta.pk.to_python + try: + for pk in object_pks: + validate(pk) + except ValidationError: + # Disable the optimization if the POST data was tampered with. + return queryset + return queryset.filter(pk__in=object_pks) + + @csrf_protect_m + def changelist_view(self, request, extra_context=None): + """ + The 'change list' admin view for this model. + """ + from django.contrib.admin.views.main import ERROR_FLAG + + app_label = self.opts.app_label + if not self.has_view_or_change_permission(request): + raise PermissionDenied + + try: + cl = self.get_changelist_instance(request) + except IncorrectLookupParameters: + # Wacky lookup parameters were given, so redirect to the main + # changelist page, without parameters, and pass an 'invalid=1' + # parameter via the query string. If wacky parameters were given + # and the 'invalid=1' parameter was already in the query string, + # something is screwed up with the database, so display an error + # page. + if ERROR_FLAG in request.GET: + return SimpleTemplateResponse( + "admin/invalid_setup.html", + { + "title": _("Database error"), + }, + ) + return HttpResponseRedirect(request.path + "?" + ERROR_FLAG + "=1") + + # If the request was POSTed, this might be a bulk action or a bulk + # edit. Try to look up an action or confirmation first, but if this + # isn't an action the POST will fall through to the bulk edit check, + # below. + action_failed = False + selected = request.POST.getlist(helpers.ACTION_CHECKBOX_NAME) + + actions = self.get_actions(request) + # Actions with no confirmation + if ( + actions + and request.method == "POST" + and "index" in request.POST + and "_save" not in request.POST + ): + if selected: + response = self.response_action( + request, queryset=cl.get_queryset(request) + ) + if response: + return response + else: + action_failed = True + else: + msg = _( + "Items must be selected in order to perform " + "actions on them. No items have been changed." + ) + self.message_user(request, msg, messages.WARNING) + action_failed = True + + # Actions with confirmation + if ( + actions + and request.method == "POST" + and helpers.ACTION_CHECKBOX_NAME in request.POST + and "index" not in request.POST + and "_save" not in request.POST + ): + if selected: + response = self.response_action( + request, queryset=cl.get_queryset(request) + ) + if response: + return response + else: + action_failed = True + + if action_failed: + # Redirect back to the changelist page to avoid resubmitting the + # form if the user refreshes the browser or uses the "No, take + # me back" button on the action confirmation page. + return HttpResponseRedirect(request.get_full_path()) + + # If we're allowing changelist editing, we need to construct a formset + # for the changelist given all the fields to be edited. Then we'll + # use the formset to validate/process POSTed data. + formset = cl.formset = None + + # Handle POSTed bulk-edit data. + if request.method == "POST" and cl.list_editable and "_save" in request.POST: + if not self.has_change_permission(request): + raise PermissionDenied + FormSet = self.get_changelist_formset(request) + modified_objects = self._get_list_editable_queryset( + request, FormSet.get_default_prefix() + ) + formset = cl.formset = FormSet( + request.POST, request.FILES, queryset=modified_objects + ) + if formset.is_valid(): + changecount = 0 + with transaction.atomic(using=router.db_for_write(self.model)): + for form in formset.forms: + if form.has_changed(): + obj = self.save_form(request, form, change=True) + self.save_model(request, obj, form, change=True) + self.save_related(request, form, formsets=[], change=True) + change_msg = self.construct_change_message( + request, form, None + ) + self.log_change(request, obj, change_msg) + changecount += 1 + if changecount: + msg = ngettext( + "%(count)s %(name)s was changed successfully.", + "%(count)s %(name)s were changed successfully.", + changecount, + ) % { + "count": changecount, + "name": model_ngettext(self.opts, changecount), + } + self.message_user(request, msg, messages.SUCCESS) + + return HttpResponseRedirect(request.get_full_path()) + + # Handle GET -- construct a formset for display. + elif cl.list_editable and self.has_change_permission(request): + FormSet = self.get_changelist_formset(request) + formset = cl.formset = FormSet(queryset=cl.result_list) + + # Build the list of media to be used by the formset. + if formset: + media = self.media + formset.media + else: + media = self.media + + # Build the action form and populate it with available actions. + if actions: + action_form = self.action_form(auto_id=None) + action_form.fields["action"].choices = self.get_action_choices(request) + media += action_form.media + else: + action_form = None + + selection_note_all = ngettext( + "%(total_count)s selected", "All %(total_count)s selected", cl.result_count + ) + + context = { + **self.admin_site.each_context(request), + "module_name": str(self.opts.verbose_name_plural), + "selection_note": _("0 of %(cnt)s selected") % {"cnt": len(cl.result_list)}, + "selection_note_all": selection_note_all % {"total_count": cl.result_count}, + "title": cl.title, + "subtitle": None, + "is_popup": cl.is_popup, + "to_field": cl.to_field, + "cl": cl, + "media": media, + "has_add_permission": self.has_add_permission(request), + "opts": cl.opts, + "action_form": action_form, + "actions_on_top": self.actions_on_top, + "actions_on_bottom": self.actions_on_bottom, + "actions_selection_counter": self.actions_selection_counter, + "preserved_filters": self.get_preserved_filters(request), + **(extra_context or {}), + } + + request.current_app = self.admin_site.name + + return TemplateResponse( + request, + self.change_list_template + or [ + "admin/%s/%s/change_list.html" % (app_label, self.opts.model_name), + "admin/%s/change_list.html" % app_label, + "admin/change_list.html", + ], + context, + ) + + def get_deleted_objects(self, objs, request): + """ + Hook for customizing the delete process for the delete view and the + "delete selected" action. + """ + return get_deleted_objects(objs, request, self.admin_site) + + @csrf_protect_m + def delete_view(self, request, object_id, extra_context=None): + with transaction.atomic(using=router.db_for_write(self.model)): + return self._delete_view(request, object_id, extra_context) + + def _delete_view(self, request, object_id, extra_context): + "The 'delete' admin view for this model." + app_label = self.opts.app_label + + to_field = request.POST.get(TO_FIELD_VAR, request.GET.get(TO_FIELD_VAR)) + if to_field and not self.to_field_allowed(request, to_field): + raise DisallowedModelAdminToField( + "The field %s cannot be referenced." % to_field + ) + + obj = self.get_object(request, unquote(object_id), to_field) + + if not self.has_delete_permission(request, obj): + raise PermissionDenied + + if obj is None: + return self._get_obj_does_not_exist_redirect(request, self.opts, object_id) + + # Populate deleted_objects, a data structure of all related objects that + # will also be deleted. + ( + deleted_objects, + model_count, + perms_needed, + protected, + ) = self.get_deleted_objects([obj], request) + + if request.POST and not protected: # The user has confirmed the deletion. + if perms_needed: + raise PermissionDenied + obj_display = str(obj) + attr = str(to_field) if to_field else self.opts.pk.attname + obj_id = obj.serializable_value(attr) + self.log_deletions(request, [obj]) + self.delete_model(request, obj) + + return self.response_delete(request, obj_display, obj_id) + + object_name = str(self.opts.verbose_name) + + if perms_needed or protected: + title = _("Cannot delete %(name)s") % {"name": object_name} + else: + title = _("Are you sure?") + + context = { + **self.admin_site.each_context(request), + "title": title, + "subtitle": None, + "object_name": object_name, + "object": obj, + "deleted_objects": deleted_objects, + "model_count": dict(model_count).items(), + "perms_lacking": perms_needed, + "protected": protected, + "opts": self.opts, + "app_label": app_label, + "preserved_filters": self.get_preserved_filters(request), + "is_popup": IS_POPUP_VAR in request.POST or IS_POPUP_VAR in request.GET, + "to_field": to_field, + **(extra_context or {}), + } + + return self.render_delete_form(request, context) + + def history_view(self, request, object_id, extra_context=None): + "The 'history' admin view for this model." + from django.contrib.admin.models import LogEntry + from django.contrib.admin.views.main import PAGE_VAR + + # First check if the user can see this history. + model = self.model + obj = self.get_object(request, unquote(object_id)) + if obj is None: + return self._get_obj_does_not_exist_redirect( + request, model._meta, object_id + ) + + if not self.has_view_or_change_permission(request, obj): + raise PermissionDenied + + # Then get the history for this object. + app_label = self.opts.app_label + action_list = ( + LogEntry.objects.filter( + object_id=unquote(object_id), + content_type=get_content_type_for_model(model), + ) + .select_related() + .order_by("action_time") + ) + + paginator = self.get_paginator(request, action_list, 100) + page_number = request.GET.get(PAGE_VAR, 1) + page_obj = paginator.get_page(page_number) + page_range = paginator.get_elided_page_range(page_obj.number) + + context = { + **self.admin_site.each_context(request), + "title": _("Change history: %s") % obj, + "subtitle": None, + "action_list": page_obj, + "page_range": page_range, + "page_var": PAGE_VAR, + "pagination_required": paginator.count > 100, + "module_name": str(capfirst(self.opts.verbose_name_plural)), + "object": obj, + "opts": self.opts, + "preserved_filters": self.get_preserved_filters(request), + **(extra_context or {}), + } + + request.current_app = self.admin_site.name + + return TemplateResponse( + request, + self.object_history_template + or [ + "admin/%s/%s/object_history.html" % (app_label, self.opts.model_name), + "admin/%s/object_history.html" % app_label, + "admin/object_history.html", + ], + context, + ) + + def get_formset_kwargs(self, request, obj, inline, prefix): + formset_params = { + "instance": obj, + "prefix": prefix, + "queryset": inline.get_queryset(request), + } + if request.method == "POST": + formset_params.update( + { + "data": request.POST.copy(), + "files": request.FILES, + "save_as_new": "_saveasnew" in request.POST, + } + ) + return formset_params + + def _create_formsets(self, request, obj, change): + "Helper function to generate formsets for add/change_view." + formsets = [] + inline_instances = [] + prefixes = {} + get_formsets_args = [request] + if change: + get_formsets_args.append(obj) + for FormSet, inline in self.get_formsets_with_inlines(*get_formsets_args): + prefix = FormSet.get_default_prefix() + prefixes[prefix] = prefixes.get(prefix, 0) + 1 + if prefixes[prefix] != 1 or not prefix: + prefix = "%s-%s" % (prefix, prefixes[prefix]) + formset_params = self.get_formset_kwargs(request, obj, inline, prefix) + formset = FormSet(**formset_params) + + def user_deleted_form(request, obj, formset, index, inline): + """Return whether or not the user deleted the form.""" + return ( + inline.has_delete_permission(request, obj) + and "{}-{}-DELETE".format(formset.prefix, index) in request.POST + ) + + # Bypass validation of each view-only inline form (since the form's + # data won't be in request.POST), unless the form was deleted. + if not inline.has_change_permission(request, obj if change else None): + for index, form in enumerate(formset.initial_forms): + if user_deleted_form(request, obj, formset, index, inline): + continue + form._errors = {} + form.cleaned_data = form.initial + formsets.append(formset) + inline_instances.append(inline) + return formsets, inline_instances + + +class InlineModelAdmin(BaseModelAdmin): + """ + Options for inline editing of ``model`` instances. + + Provide ``fk_name`` to specify the attribute name of the ``ForeignKey`` + from ``model`` to its parent. This is required if ``model`` has more than + one ``ForeignKey`` to its parent. + """ + + model = None + fk_name = None + formset = BaseInlineFormSet + extra = 3 + min_num = None + max_num = None + template = None + verbose_name = None + verbose_name_plural = None + can_delete = True + show_change_link = False + checks_class = InlineModelAdminChecks + classes = None + + def __init__(self, parent_model, admin_site): + self.admin_site = admin_site + self.parent_model = parent_model + self.opts = self.model._meta + self.has_registered_model = admin_site.is_registered(self.model) + super().__init__() + if self.verbose_name_plural is None: + if self.verbose_name is None: + self.verbose_name_plural = self.opts.verbose_name_plural + else: + self.verbose_name_plural = format_lazy("{}s", self.verbose_name) + if self.verbose_name is None: + self.verbose_name = self.opts.verbose_name + + @property + def media(self): + extra = "" if settings.DEBUG else ".min" + js = ["vendor/jquery/jquery%s.js" % extra, "jquery.init.js", "inlines.js"] + if self.filter_vertical or self.filter_horizontal: + js.extend(["SelectBox.js", "SelectFilter2.js"]) + return forms.Media(js=["admin/js/%s" % url for url in js]) + + def get_extra(self, request, obj=None, **kwargs): + """Hook for customizing the number of extra inline forms.""" + return self.extra + + def get_min_num(self, request, obj=None, **kwargs): + """Hook for customizing the min number of inline forms.""" + return self.min_num + + def get_max_num(self, request, obj=None, **kwargs): + """Hook for customizing the max number of extra inline forms.""" + return self.max_num + + def get_formset(self, request, obj=None, **kwargs): + """Return a BaseInlineFormSet class for use in admin add/change views.""" + if "fields" in kwargs: + fields = kwargs.pop("fields") + else: + fields = flatten_fieldsets(self.get_fieldsets(request, obj)) + excluded = self.get_exclude(request, obj) + exclude = [] if excluded is None else list(excluded) + exclude.extend(self.get_readonly_fields(request, obj)) + if excluded is None and hasattr(self.form, "_meta") and self.form._meta.exclude: + # Take the custom ModelForm's Meta.exclude into account only if the + # InlineModelAdmin doesn't define its own. + exclude.extend(self.form._meta.exclude) + # If exclude is an empty list we use None, since that's the actual + # default. + exclude = exclude or None + can_delete = self.can_delete and self.has_delete_permission(request, obj) + defaults = { + "form": self.form, + "formset": self.formset, + "fk_name": self.fk_name, + "fields": fields, + "exclude": exclude, + "formfield_callback": partial(self.formfield_for_dbfield, request=request), + "extra": self.get_extra(request, obj, **kwargs), + "min_num": self.get_min_num(request, obj, **kwargs), + "max_num": self.get_max_num(request, obj, **kwargs), + "can_delete": can_delete, + **kwargs, + } + + base_model_form = defaults["form"] + can_change = self.has_change_permission(request, obj) if request else True + can_add = self.has_add_permission(request, obj) if request else True + + class DeleteProtectedModelForm(base_model_form): + def hand_clean_DELETE(self): + """ + We don't validate the 'DELETE' field itself because on + templates it's not rendered using the field information, but + just using a generic "deletion_field" of the InlineModelAdmin. + """ + if self.cleaned_data.get(DELETION_FIELD_NAME, False): + using = router.db_for_write(self._meta.model) + collector = NestedObjects(using=using) + if self.instance._state.adding: + return + collector.collect([self.instance]) + if collector.protected: + objs = [] + for p in collector.protected: + objs.append( + # Translators: Model verbose name and instance + # representation, suitable to be an item in a + # list. + _("%(class_name)s %(instance)s") + % {"class_name": p._meta.verbose_name, "instance": p} + ) + params = { + "class_name": self._meta.model._meta.verbose_name, + "instance": self.instance, + "related_objects": get_text_list(objs, _("and")), + } + msg = _( + "Deleting %(class_name)s %(instance)s would require " + "deleting the following protected related objects: " + "%(related_objects)s" + ) + raise ValidationError( + msg, code="deleting_protected", params=params + ) + + def is_valid(self): + result = super().is_valid() + self.hand_clean_DELETE() + return result + + def has_changed(self): + # Protect against unauthorized edits. + if not can_change and not self.instance._state.adding: + return False + if not can_add and self.instance._state.adding: + return False + return super().has_changed() + + defaults["form"] = DeleteProtectedModelForm + + if defaults["fields"] is None and not modelform_defines_fields( + defaults["form"] + ): + defaults["fields"] = forms.ALL_FIELDS + + return inlineformset_factory(self.parent_model, self.model, **defaults) + + def _get_form_for_get_fields(self, request, obj=None): + return self.get_formset(request, obj, fields=None).form + + def get_queryset(self, request): + queryset = super().get_queryset(request) + if not self.has_view_or_change_permission(request): + queryset = queryset.none() + return queryset + + def _has_any_perms_for_target_model(self, request, perms): + """ + This method is called only when the ModelAdmin's model is for an + ManyToManyField's implicit through model (if self.opts.auto_created). + Return True if the user has any of the given permissions ('add', + 'change', etc.) for the model that points to the through model. + """ + opts = self.opts + # Find the target model of an auto-created many-to-many relationship. + for field in opts.fields: + if field.remote_field and field.remote_field.model != self.parent_model: + opts = field.remote_field.model._meta + break + return any( + request.user.has_perm( + "%s.%s" % (opts.app_label, get_permission_codename(perm, opts)) + ) + for perm in perms + ) + + def has_add_permission(self, request, obj): + if self.opts.auto_created: + # Auto-created intermediate models don't have their own + # permissions. The user needs to have the change permission for the + # related model in order to be able to do anything with the + # intermediate model. + return self._has_any_perms_for_target_model(request, ["change"]) + return super().has_add_permission(request) + + def has_change_permission(self, request, obj=None): + if self.opts.auto_created: + # Same comment as has_add_permission(). + return self._has_any_perms_for_target_model(request, ["change"]) + return super().has_change_permission(request) + + def has_delete_permission(self, request, obj=None): + if self.opts.auto_created: + # Same comment as has_add_permission(). + return self._has_any_perms_for_target_model(request, ["change"]) + return super().has_delete_permission(request, obj) + + def has_view_permission(self, request, obj=None): + if self.opts.auto_created: + # Same comment as has_add_permission(). The 'change' permission + # also implies the 'view' permission. + return self._has_any_perms_for_target_model(request, ["view", "change"]) + return super().has_view_permission(request) + + +class StackedInline(InlineModelAdmin): + template = "admin/edit_inline/stacked.html" + + +class TabularInline(InlineModelAdmin): + template = "admin/edit_inline/tabular.html" diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/sites.py b/venv/lib/python3.12/site-packages/django/contrib/admin/sites.py new file mode 100644 index 0000000000..dc67262afc --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/sites.py @@ -0,0 +1,616 @@ +from functools import update_wrapper +from weakref import WeakSet + +from django.apps import apps +from django.conf import settings +from django.contrib.admin import ModelAdmin, actions +from django.contrib.admin.exceptions import AlreadyRegistered, NotRegistered +from django.contrib.admin.views.autocomplete import AutocompleteJsonView +from django.contrib.auth import REDIRECT_FIELD_NAME +from django.contrib.auth.decorators import login_not_required +from django.core.exceptions import ImproperlyConfigured +from django.db.models.base import ModelBase +from django.http import Http404, HttpResponsePermanentRedirect, HttpResponseRedirect +from django.template.response import TemplateResponse +from django.urls import NoReverseMatch, Resolver404, resolve, reverse, reverse_lazy +from django.utils.decorators import method_decorator +from django.utils.functional import LazyObject +from django.utils.module_loading import import_string +from django.utils.text import capfirst +from django.utils.translation import gettext as _ +from django.utils.translation import gettext_lazy +from django.views.decorators.cache import never_cache +from django.views.decorators.common import no_append_slash +from django.views.decorators.csrf import csrf_protect +from django.views.i18n import JavaScriptCatalog + +all_sites = WeakSet() + + +class AdminSite: + """ + An AdminSite object encapsulates an instance of the Django admin application, ready + to be hooked in to your URLconf. Models are registered with the AdminSite using the + register() method, and the get_urls() method can then be used to access Django view + functions that present a full admin interface for the collection of registered + models. + """ + + # Text to put at the end of each page's . + site_title = gettext_lazy("Django site admin") + + # Text to put in each page's <div id="site-name">. + site_header = gettext_lazy("Django administration") + + # Text to put at the top of the admin index page. + index_title = gettext_lazy("Site administration") + + # URL for the "View site" link at the top of each admin page. + site_url = "/" + + enable_nav_sidebar = True + + empty_value_display = "-" + + login_form = None + index_template = None + app_index_template = None + login_template = None + logout_template = None + password_change_template = None + password_change_done_template = None + + final_catch_all_view = True + + def __init__(self, name="admin"): + self._registry = {} # model_class class -> admin_class instance + self.name = name + self._actions = {"delete_selected": actions.delete_selected} + self._global_actions = self._actions.copy() + all_sites.add(self) + + def __repr__(self): + return f"{self.__class__.__name__}(name={self.name!r})" + + def check(self, app_configs): + """ + Run the system checks on all ModelAdmins, except if they aren't + customized at all. + """ + if app_configs is None: + app_configs = apps.get_app_configs() + app_configs = set(app_configs) # Speed up lookups below + + errors = [] + modeladmins = ( + o for o in self._registry.values() if o.__class__ is not ModelAdmin + ) + for modeladmin in modeladmins: + if modeladmin.model._meta.app_config in app_configs: + errors.extend(modeladmin.check()) + return errors + + def register(self, model_or_iterable, admin_class=None, **options): + """ + Register the given model(s) with the given admin class. + + The model(s) should be Model classes, not instances. + + If an admin class isn't given, use ModelAdmin (the default admin + options). If keyword arguments are given -- e.g., list_display -- + apply them as options to the admin class. + + If a model is already registered, raise AlreadyRegistered. + + If a model is abstract, raise ImproperlyConfigured. + """ + admin_class = admin_class or ModelAdmin + if isinstance(model_or_iterable, ModelBase): + model_or_iterable = [model_or_iterable] + for model in model_or_iterable: + if model._meta.abstract: + raise ImproperlyConfigured( + "The model %s is abstract, so it cannot be registered with admin." + % model.__name__ + ) + + if self.is_registered(model): + registered_admin = str(self.get_model_admin(model)) + msg = "The model %s is already registered " % model.__name__ + if registered_admin.endswith(".ModelAdmin"): + # Most likely registered without a ModelAdmin subclass. + msg += "in app %r." % registered_admin.removesuffix(".ModelAdmin") + else: + msg += "with %r." % registered_admin + raise AlreadyRegistered(msg) + + # Ignore the registration if the model has been + # swapped out. + if not model._meta.swapped: + # If we got **options then dynamically construct a subclass of + # admin_class with those **options. + if options: + # For reasons I don't quite understand, without a __module__ + # the created class appears to "live" in the wrong place, + # which causes issues later on. + options["__module__"] = __name__ + admin_class = type( + "%sAdmin" % model.__name__, (admin_class,), options + ) + + # Instantiate the admin class to save in the registry + self._registry[model] = admin_class(model, self) + + def unregister(self, model_or_iterable): + """ + Unregister the given model(s). + + If a model isn't already registered, raise NotRegistered. + """ + if isinstance(model_or_iterable, ModelBase): + model_or_iterable = [model_or_iterable] + for model in model_or_iterable: + if not self.is_registered(model): + raise NotRegistered("The model %s is not registered" % model.__name__) + del self._registry[model] + + def is_registered(self, model): + """ + Check if a model class is registered with this `AdminSite`. + """ + return model in self._registry + + def get_model_admin(self, model): + try: + return self._registry[model] + except KeyError: + raise NotRegistered(f"The model {model.__name__} is not registered.") + + def add_action(self, action, name=None): + """ + Register an action to be available globally. + """ + name = name or action.__name__ + self._actions[name] = action + self._global_actions[name] = action + + def disable_action(self, name): + """ + Disable a globally-registered action. Raise KeyError for invalid names. + """ + del self._actions[name] + + def get_action(self, name): + """ + Explicitly get a registered global action whether it's enabled or + not. Raise KeyError for invalid names. + """ + return self._global_actions[name] + + @property + def actions(self): + """ + Get all the enabled actions as an iterable of (name, func). + """ + return self._actions.items() + + def has_permission(self, request): + """ + Return True if the given HttpRequest has permission to view + *at least one* page in the admin site. + """ + return request.user.is_active and request.user.is_staff + + def admin_view(self, view, cacheable=False): + """ + Decorator to create an admin view attached to this ``AdminSite``. This + wraps the view and provides permission checking by calling + ``self.has_permission``. + + You'll want to use this from within ``AdminSite.get_urls()``: + + class MyAdminSite(AdminSite): + + def get_urls(self): + from django.urls import path + + urls = super().get_urls() + urls += [ + path('my_view/', self.admin_view(some_view)) + ] + return urls + + By default, admin_views are marked non-cacheable using the + ``never_cache`` decorator. If the view can be safely cached, set + cacheable=True. + """ + + def inner(request, *args, **kwargs): + if not self.has_permission(request): + if request.path == reverse("admin:logout", current_app=self.name): + index_path = reverse("admin:index", current_app=self.name) + return HttpResponseRedirect(index_path) + # Inner import to prevent django.contrib.admin (app) from + # importing django.contrib.auth.models.User (unrelated model). + from django.contrib.auth.views import redirect_to_login + + return redirect_to_login( + request.get_full_path(), + reverse("admin:login", current_app=self.name), + ) + return view(request, *args, **kwargs) + + if not cacheable: + inner = never_cache(inner) + # We add csrf_protect here so this function can be used as a utility + # function for any view, without having to repeat 'csrf_protect'. + if not getattr(view, "csrf_exempt", False): + inner = csrf_protect(inner) + return update_wrapper(inner, view) + + def get_urls(self): + # Since this module gets imported in the application's root package, + # it cannot import models from other applications at the module level, + # and django.contrib.contenttypes.views imports ContentType. + from django.contrib.contenttypes import views as contenttype_views + from django.urls import include, path, re_path + + def wrap(view, cacheable=False): + def wrapper(*args, **kwargs): + return self.admin_view(view, cacheable)(*args, **kwargs) + + wrapper.admin_site = self + # Used by LoginRequiredMiddleware. + wrapper.login_url = reverse_lazy("admin:login", current_app=self.name) + return update_wrapper(wrapper, view) + + # Admin-site-wide views. + urlpatterns = [ + path("", wrap(self.index), name="index"), + path("login/", self.login, name="login"), + path("logout/", wrap(self.logout), name="logout"), + path( + "password_change/", + wrap(self.password_change, cacheable=True), + name="password_change", + ), + path( + "password_change/done/", + wrap(self.password_change_done, cacheable=True), + name="password_change_done", + ), + path("autocomplete/", wrap(self.autocomplete_view), name="autocomplete"), + path("jsi18n/", wrap(self.i18n_javascript, cacheable=True), name="jsi18n"), + path( + "r/<int:content_type_id>/<path:object_id>/", + wrap(contenttype_views.shortcut), + name="view_on_site", + ), + ] + + # Add in each model's views, and create a list of valid URLS for the + # app_index + valid_app_labels = [] + for model, model_admin in self._registry.items(): + urlpatterns += [ + path( + "%s/%s/" % (model._meta.app_label, model._meta.model_name), + include(model_admin.urls), + ), + ] + if model._meta.app_label not in valid_app_labels: + valid_app_labels.append(model._meta.app_label) + + # If there were ModelAdmins registered, we should have a list of app + # labels for which we need to allow access to the app_index view, + if valid_app_labels: + regex = r"^(?P<app_label>" + "|".join(valid_app_labels) + ")/$" + urlpatterns += [ + re_path(regex, wrap(self.app_index), name="app_list"), + ] + + if self.final_catch_all_view: + urlpatterns.append(re_path(r"(?P<url>.*)$", wrap(self.catch_all_view))) + + return urlpatterns + + @property + def urls(self): + return self.get_urls(), "admin", self.name + + def each_context(self, request): + """ + Return a dictionary of variables to put in the template context for + *every* page in the admin site. + + For sites running on a subpath, use the SCRIPT_NAME value if site_url + hasn't been customized. + """ + script_name = request.META["SCRIPT_NAME"] + site_url = ( + script_name if self.site_url == "/" and script_name else self.site_url + ) + return { + "site_title": self.site_title, + "site_header": self.site_header, + "site_url": site_url, + "has_permission": self.has_permission(request), + "available_apps": self.get_app_list(request), + "is_popup": False, + "is_nav_sidebar_enabled": self.enable_nav_sidebar, + "log_entries": self.get_log_entries(request), + } + + def password_change(self, request, extra_context=None): + """ + Handle the "change password" task -- both form display and validation. + """ + from django.contrib.admin.forms import AdminPasswordChangeForm + from django.contrib.auth.views import PasswordChangeView + + url = reverse("admin:password_change_done", current_app=self.name) + defaults = { + "form_class": AdminPasswordChangeForm, + "success_url": url, + "extra_context": {**self.each_context(request), **(extra_context or {})}, + } + if self.password_change_template is not None: + defaults["template_name"] = self.password_change_template + request.current_app = self.name + return PasswordChangeView.as_view(**defaults)(request) + + def password_change_done(self, request, extra_context=None): + """ + Display the "success" page after a password change. + """ + from django.contrib.auth.views import PasswordChangeDoneView + + defaults = { + "extra_context": {**self.each_context(request), **(extra_context or {})}, + } + if self.password_change_done_template is not None: + defaults["template_name"] = self.password_change_done_template + request.current_app = self.name + return PasswordChangeDoneView.as_view(**defaults)(request) + + def i18n_javascript(self, request, extra_context=None): + """ + Display the i18n JavaScript that the Django admin requires. + + `extra_context` is unused but present for consistency with the other + admin views. + """ + return JavaScriptCatalog.as_view(packages=["django.contrib.admin"])(request) + + def logout(self, request, extra_context=None): + """ + Log out the user for the given HttpRequest. + + This should *not* assume the user is already logged in. + """ + from django.contrib.auth.views import LogoutView + + defaults = { + "extra_context": { + **self.each_context(request), + # Since the user isn't logged out at this point, the value of + # has_permission must be overridden. + "has_permission": False, + **(extra_context or {}), + }, + } + if self.logout_template is not None: + defaults["template_name"] = self.logout_template + request.current_app = self.name + return LogoutView.as_view(**defaults)(request) + + @method_decorator(never_cache) + @login_not_required + def login(self, request, extra_context=None): + """ + Display the login form for the given HttpRequest. + """ + if request.method == "GET" and self.has_permission(request): + # Already logged-in, redirect to admin index + index_path = reverse("admin:index", current_app=self.name) + return HttpResponseRedirect(index_path) + + # Since this module gets imported in the application's root package, + # it cannot import models from other applications at the module level, + # and django.contrib.admin.forms eventually imports User. + from django.contrib.admin.forms import AdminAuthenticationForm + from django.contrib.auth.views import LoginView + + context = { + **self.each_context(request), + "title": _("Log in"), + "subtitle": None, + "app_path": request.get_full_path(), + "username": request.user.get_username(), + } + if ( + REDIRECT_FIELD_NAME not in request.GET + and REDIRECT_FIELD_NAME not in request.POST + ): + context[REDIRECT_FIELD_NAME] = reverse("admin:index", current_app=self.name) + context.update(extra_context or {}) + + defaults = { + "extra_context": context, + "authentication_form": self.login_form or AdminAuthenticationForm, + "template_name": self.login_template or "admin/login.html", + } + request.current_app = self.name + return LoginView.as_view(**defaults)(request) + + def autocomplete_view(self, request): + return AutocompleteJsonView.as_view(admin_site=self)(request) + + @no_append_slash + def catch_all_view(self, request, url): + if settings.APPEND_SLASH and not url.endswith("/"): + urlconf = getattr(request, "urlconf", None) + try: + match = resolve("%s/" % request.path_info, urlconf) + except Resolver404: + pass + else: + if getattr(match.func, "should_append_slash", True): + return HttpResponsePermanentRedirect( + request.get_full_path(force_append_slash=True) + ) + raise Http404 + + def _build_app_dict(self, request, label=None): + """ + Build the app dictionary. The optional `label` parameter filters models + of a specific app. + """ + app_dict = {} + + if label: + models = { + m: m_a + for m, m_a in self._registry.items() + if m._meta.app_label == label + } + else: + models = self._registry + + for model, model_admin in models.items(): + app_label = model._meta.app_label + + has_module_perms = model_admin.has_module_permission(request) + if not has_module_perms: + continue + + perms = model_admin.get_model_perms(request) + + # Check whether user has any perm for this module. + # If so, add the module to the model_list. + if True not in perms.values(): + continue + + info = (app_label, model._meta.model_name) + model_dict = { + "model": model, + "name": capfirst(model._meta.verbose_name_plural), + "object_name": model._meta.object_name, + "perms": perms, + "admin_url": None, + "add_url": None, + } + if perms.get("change") or perms.get("view"): + model_dict["view_only"] = not perms.get("change") + try: + model_dict["admin_url"] = reverse( + "admin:%s_%s_changelist" % info, current_app=self.name + ) + except NoReverseMatch: + pass + if perms.get("add"): + try: + model_dict["add_url"] = reverse( + "admin:%s_%s_add" % info, current_app=self.name + ) + except NoReverseMatch: + pass + + if app_label in app_dict: + app_dict[app_label]["models"].append(model_dict) + else: + app_dict[app_label] = { + "name": apps.get_app_config(app_label).verbose_name, + "app_label": app_label, + "app_url": reverse( + "admin:app_list", + kwargs={"app_label": app_label}, + current_app=self.name, + ), + "has_module_perms": has_module_perms, + "models": [model_dict], + } + + return app_dict + + def get_app_list(self, request, app_label=None): + """ + Return a sorted list of all the installed apps that have been + registered in this site. + """ + app_dict = self._build_app_dict(request, app_label) + + # Sort the apps alphabetically. + app_list = sorted(app_dict.values(), key=lambda x: x["name"].lower()) + + # Sort the models alphabetically within each app. + for app in app_list: + app["models"].sort(key=lambda x: x["name"]) + + return app_list + + def index(self, request, extra_context=None): + """ + Display the main admin index page, which lists all of the installed + apps that have been registered in this site. + """ + app_list = self.get_app_list(request) + + context = { + **self.each_context(request), + "title": self.index_title, + "subtitle": None, + "app_list": app_list, + **(extra_context or {}), + } + + request.current_app = self.name + + return TemplateResponse( + request, self.index_template or "admin/index.html", context + ) + + def app_index(self, request, app_label, extra_context=None): + app_list = self.get_app_list(request, app_label) + + if not app_list: + raise Http404("The requested admin page does not exist.") + + context = { + **self.each_context(request), + "title": _("%(app)s administration") % {"app": app_list[0]["name"]}, + "subtitle": None, + "app_list": app_list, + "app_label": app_label, + **(extra_context or {}), + } + + request.current_app = self.name + + return TemplateResponse( + request, + self.app_index_template + or ["admin/%s/app_index.html" % app_label, "admin/app_index.html"], + context, + ) + + def get_log_entries(self, request): + from django.contrib.admin.models import LogEntry + + return LogEntry.objects.select_related("content_type", "user") + + +class DefaultAdminSite(LazyObject): + def _setup(self): + AdminSiteClass = import_string(apps.get_app_config("admin").default_site) + self._wrapped = AdminSiteClass() + + def __repr__(self): + return repr(self._wrapped) + + +# This global object represents the default admin site, for the common case. +# You can provide your own AdminSite using the (Simple)AdminConfig.default_site +# attribute. You can also instantiate AdminSite in your own code to create a +# custom admin site. +site = DefaultAdminSite() diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/autocomplete.css b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/autocomplete.css new file mode 100644 index 0000000000..7478c2c4e6 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/autocomplete.css @@ -0,0 +1,279 @@ +select.admin-autocomplete { + width: 20em; +} + +.select2-container--admin-autocomplete.select2-container { + min-height: 30px; +} + +.select2-container--admin-autocomplete .select2-selection--single, +.select2-container--admin-autocomplete .select2-selection--multiple { + min-height: 30px; + padding: 0; +} + +.select2-container--admin-autocomplete.select2-container--focus .select2-selection, +.select2-container--admin-autocomplete.select2-container--open .select2-selection { + border-color: var(--body-quiet-color); + min-height: 30px; +} + +.select2-container--admin-autocomplete.select2-container--focus .select2-selection.select2-selection--single, +.select2-container--admin-autocomplete.select2-container--open .select2-selection.select2-selection--single { + padding: 0; +} + +.select2-container--admin-autocomplete.select2-container--focus .select2-selection.select2-selection--multiple, +.select2-container--admin-autocomplete.select2-container--open .select2-selection.select2-selection--multiple { + padding: 0; +} + +.select2-container--admin-autocomplete .select2-selection--single { + background-color: var(--body-bg); + border: 1px solid var(--border-color); + border-radius: 4px; +} + +.select2-container--admin-autocomplete .select2-selection--single .select2-selection__rendered { + color: var(--body-fg); + line-height: 30px; +} + +.select2-container--admin-autocomplete .select2-selection--single .select2-selection__clear { + cursor: pointer; + float: right; + font-weight: bold; +} + +.select2-container--admin-autocomplete .select2-selection--single .select2-selection__placeholder { + color: var(--body-quiet-color); +} + +.select2-container--admin-autocomplete .select2-selection--single .select2-selection__arrow { + height: 26px; + position: absolute; + top: 1px; + right: 1px; + width: 20px; +} + +.select2-container--admin-autocomplete .select2-selection--single .select2-selection__arrow b { + border-color: #888 transparent transparent transparent; + border-style: solid; + border-width: 5px 4px 0 4px; + height: 0; + left: 50%; + margin-left: -4px; + margin-top: -2px; + position: absolute; + top: 50%; + width: 0; +} + +.select2-container--admin-autocomplete[dir="rtl"] .select2-selection--single .select2-selection__clear { + float: left; +} + +.select2-container--admin-autocomplete[dir="rtl"] .select2-selection--single .select2-selection__arrow { + left: 1px; + right: auto; +} + +.select2-container--admin-autocomplete.select2-container--disabled .select2-selection--single { + background-color: var(--darkened-bg); + cursor: default; +} + +.select2-container--admin-autocomplete.select2-container--disabled .select2-selection--single .select2-selection__clear { + display: none; +} + +.select2-container--admin-autocomplete.select2-container--open .select2-selection--single .select2-selection__arrow b { + border-color: transparent transparent #888 transparent; + border-width: 0 4px 5px 4px; +} + +.select2-container--admin-autocomplete .select2-selection--multiple { + background-color: var(--body-bg); + border: 1px solid var(--border-color); + border-radius: 4px; + cursor: text; +} + +.select2-container--admin-autocomplete .select2-selection--multiple .select2-selection__rendered { + box-sizing: border-box; + list-style: none; + margin: 0; + padding: 0 10px 5px 5px; + width: 100%; + display: flex; + flex-wrap: wrap; +} + +.select2-container--admin-autocomplete .select2-selection--multiple .select2-selection__rendered li { + list-style: none; +} + +.select2-container--admin-autocomplete .select2-selection--multiple .select2-selection__placeholder { + color: var(--body-quiet-color); + margin-top: 5px; + float: left; +} + +.select2-container--admin-autocomplete .select2-selection--multiple .select2-selection__clear { + cursor: pointer; + float: right; + font-weight: bold; + margin: 5px; + position: absolute; + right: 0; +} + +.select2-container--admin-autocomplete .select2-selection--multiple .select2-selection__choice { + background-color: var(--darkened-bg); + border: 1px solid var(--border-color); + border-radius: 4px; + cursor: default; + float: left; + margin-right: 5px; + margin-top: 5px; + padding: 0 5px; +} + +.select2-container--admin-autocomplete .select2-selection--multiple .select2-selection__choice__remove { + color: var(--body-quiet-color); + cursor: pointer; + display: inline-block; + font-weight: bold; + margin-right: 2px; +} + +.select2-container--admin-autocomplete .select2-selection--multiple .select2-selection__choice__remove:hover { + color: var(--body-fg); +} + +.select2-container--admin-autocomplete[dir="rtl"] .select2-selection--multiple .select2-selection__choice, .select2-container--admin-autocomplete[dir="rtl"] .select2-selection--multiple .select2-selection__placeholder, .select2-container--admin-autocomplete[dir="rtl"] .select2-selection--multiple .select2-search--inline { + float: right; +} + +.select2-container--admin-autocomplete[dir="rtl"] .select2-selection--multiple .select2-selection__choice { + margin-left: 5px; + margin-right: auto; +} + +.select2-container--admin-autocomplete[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove { + margin-left: 2px; + margin-right: auto; +} + +.select2-container--admin-autocomplete.select2-container--focus .select2-selection--multiple { + border: solid var(--body-quiet-color) 1px; + outline: 0; +} + +.select2-container--admin-autocomplete.select2-container--disabled .select2-selection--multiple { + background-color: var(--darkened-bg); + cursor: default; +} + +.select2-container--admin-autocomplete.select2-container--disabled .select2-selection__choice__remove { + display: none; +} + +.select2-container--admin-autocomplete.select2-container--open.select2-container--above .select2-selection--single, .select2-container--admin-autocomplete.select2-container--open.select2-container--above .select2-selection--multiple { + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.select2-container--admin-autocomplete.select2-container--open.select2-container--below .select2-selection--single, .select2-container--admin-autocomplete.select2-container--open.select2-container--below .select2-selection--multiple { + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; +} + +.select2-container--admin-autocomplete .select2-search--dropdown { + background: var(--darkened-bg); +} + +.select2-container--admin-autocomplete .select2-search--dropdown .select2-search__field { + background: var(--body-bg); + color: var(--body-fg); + border: 1px solid var(--border-color); + border-radius: 4px; +} + +.select2-container--admin-autocomplete .select2-search--inline .select2-search__field { + background: transparent; + color: var(--body-fg); + border: none; + outline: 0; + box-shadow: none; + -webkit-appearance: textfield; +} + +.select2-container--admin-autocomplete .select2-results > .select2-results__options { + max-height: 200px; + overflow-y: auto; + color: var(--body-fg); + background: var(--body-bg); +} + +.select2-container--admin-autocomplete .select2-results__option[role=group] { + padding: 0; +} + +.select2-container--admin-autocomplete .select2-results__option[aria-disabled=true] { + color: var(--body-quiet-color); +} + +.select2-container--admin-autocomplete .select2-results__option[aria-selected=true] { + background-color: var(--selected-bg); + color: var(--body-fg); +} + +.select2-container--admin-autocomplete .select2-results__option .select2-results__option { + padding-left: 1em; +} + +.select2-container--admin-autocomplete .select2-results__option .select2-results__option .select2-results__group { + padding-left: 0; +} + +.select2-container--admin-autocomplete .select2-results__option .select2-results__option .select2-results__option { + margin-left: -1em; + padding-left: 2em; +} + +.select2-container--admin-autocomplete .select2-results__option .select2-results__option .select2-results__option .select2-results__option { + margin-left: -2em; + padding-left: 3em; +} + +.select2-container--admin-autocomplete .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option { + margin-left: -3em; + padding-left: 4em; +} + +.select2-container--admin-autocomplete .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option { + margin-left: -4em; + padding-left: 5em; +} + +.select2-container--admin-autocomplete .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option { + margin-left: -5em; + padding-left: 6em; +} + +.select2-container--admin-autocomplete .select2-results__option--highlighted[aria-selected] { + background-color: var(--primary); + color: var(--primary-fg); +} + +.select2-container--admin-autocomplete .select2-results__group { + cursor: default; + display: block; + padding: 6px; +} + +.errors .select2-selection { + border: 1px solid var(--error-fg); +} diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/base.css b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/base.css new file mode 100644 index 0000000000..ac2832601c --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/base.css @@ -0,0 +1,1179 @@ +/* + DJANGO Admin styles +*/ + +/* VARIABLE DEFINITIONS */ +html[data-theme="light"], +:root { + --primary: #79aec8; + --secondary: #417690; + --accent: #f5dd5d; + --primary-fg: #fff; + + --body-fg: #333; + --body-bg: #fff; + --body-quiet-color: #666; + --body-medium-color: #444; + --body-loud-color: #000; + + --header-color: #ffc; + --header-branding-color: var(--accent); + --header-bg: var(--secondary); + --header-link-color: var(--primary-fg); + + --breadcrumbs-fg: #c4dce8; + --breadcrumbs-link-fg: var(--body-bg); + --breadcrumbs-bg: #264b5d; + + --link-fg: #417893; + --link-hover-color: #036; + --link-selected-fg: var(--secondary); + + --hairline-color: #e8e8e8; + --border-color: #ccc; + + --error-fg: #ba2121; + + --message-success-bg: #dfd; + --message-warning-bg: #ffc; + --message-error-bg: #ffefef; + + --darkened-bg: #f8f8f8; /* A bit darker than --body-bg */ + --selected-bg: #e4e4e4; /* E.g. selected table cells */ + --selected-row: #ffc; + + --button-fg: #fff; + --button-bg: var(--secondary); + --button-hover-bg: #205067; + --default-button-bg: #205067; + --default-button-hover-bg: var(--secondary); + --close-button-bg: #747474; + --close-button-hover-bg: #333; + --delete-button-bg: #ba2121; + --delete-button-hover-bg: #a41515; + + --object-tools-fg: var(--button-fg); + --object-tools-bg: var(--close-button-bg); + --object-tools-hover-bg: var(--close-button-hover-bg); + + --font-family-primary: + "Segoe UI", + system-ui, + Roboto, + "Helvetica Neue", + Arial, + sans-serif, + "Apple Color Emoji", + "Segoe UI Emoji", + "Segoe UI Symbol", + "Noto Color Emoji"; + --font-family-monospace: + ui-monospace, + Menlo, + Monaco, + "Cascadia Mono", + "Segoe UI Mono", + "Roboto Mono", + "Oxygen Mono", + "Ubuntu Monospace", + "Source Code Pro", + "Fira Mono", + "Droid Sans Mono", + "Courier New", + monospace, + "Apple Color Emoji", + "Segoe UI Emoji", + "Segoe UI Symbol", + "Noto Color Emoji"; + + color-scheme: light; +} + +html, body { + height: 100%; +} + +body { + margin: 0; + padding: 0; + font-size: 0.875rem; + font-family: var(--font-family-primary); + color: var(--body-fg); + background: var(--body-bg); +} + +/* LINKS */ + +a:link, a:visited { + color: var(--link-fg); + text-decoration: none; + transition: color 0.15s, background 0.15s; +} + +a:focus, a:hover { + color: var(--link-hover-color); +} + +a:focus { + text-decoration: underline; +} + +a img { + border: none; +} + +a.section:link, a.section:visited { + color: var(--header-link-color); + text-decoration: none; +} + +a.section:focus, a.section:hover { + text-decoration: underline; +} + +/* GLOBAL DEFAULTS */ + +p, ol, ul, dl { + margin: .2em 0 .8em 0; +} + +p { + padding: 0; + line-height: 140%; +} + +h1,h2,h3,h4,h5 { + font-weight: bold; +} + +h1 { + margin: 0 0 20px; + font-weight: 300; + font-size: 1.25rem; +} + +h2 { + font-size: 1rem; + margin: 1em 0 .5em 0; +} + +h2.subhead { + font-weight: normal; + margin-top: 0; +} + +h3 { + font-size: 0.875rem; + margin: .8em 0 .3em 0; + color: var(--body-medium-color); + font-weight: bold; +} + +h4 { + font-size: 0.75rem; + margin: 1em 0 .8em 0; + padding-bottom: 3px; + color: var(--body-medium-color); +} + +h5 { + font-size: 0.625rem; + margin: 1.5em 0 .5em 0; + color: var(--body-quiet-color); + text-transform: uppercase; + letter-spacing: 1px; +} + +ul > li { + list-style-type: square; + padding: 1px 0; +} + +li ul { + margin-bottom: 0; +} + +li, dt, dd { + font-size: 0.8125rem; + line-height: 1.25rem; +} + +dt { + font-weight: bold; + margin-top: 4px; +} + +dd { + margin-left: 0; +} + +form { + margin: 0; + padding: 0; +} + +fieldset { + margin: 0; + min-width: 0; + padding: 0; + border: none; + border-top: 1px solid var(--hairline-color); +} + +details summary { + cursor: pointer; +} + +blockquote { + font-size: 0.6875rem; + color: #777; + margin-left: 2px; + padding-left: 10px; + border-left: 5px solid #ddd; +} + +code, pre { + font-family: var(--font-family-monospace); + color: var(--body-quiet-color); + font-size: 0.75rem; + overflow-x: auto; +} + +pre.literal-block { + margin: 10px; + background: var(--darkened-bg); + padding: 6px 8px; +} + +code strong { + color: #930; +} + +hr { + clear: both; + color: var(--hairline-color); + background-color: var(--hairline-color); + height: 1px; + border: none; + margin: 0; + padding: 0; + line-height: 1px; +} + +/* TEXT STYLES & MODIFIERS */ + +.small { + font-size: 0.6875rem; +} + +.mini { + font-size: 0.625rem; +} + +.help, p.help, form p.help, div.help, form div.help, div.help li { + font-size: 0.6875rem; + color: var(--body-quiet-color); +} + +div.help ul { + margin-bottom: 0; +} + +.help-tooltip { + cursor: help; +} + +p img, h1 img, h2 img, h3 img, h4 img, td img { + vertical-align: middle; +} + +.quiet, a.quiet:link, a.quiet:visited { + color: var(--body-quiet-color); + font-weight: normal; +} + +.clear { + clear: both; +} + +.nowrap { + white-space: nowrap; +} + +.hidden { + display: none !important; +} + +/* TABLES */ + +table { + border-collapse: collapse; + border-color: var(--border-color); +} + +td, th { + font-size: 0.8125rem; + line-height: 1rem; + border-bottom: 1px solid var(--hairline-color); + vertical-align: top; + padding: 8px; +} + +th { + font-weight: 500; + text-align: left; +} + +thead th, +tfoot td { + color: var(--body-quiet-color); + padding: 5px 10px; + font-size: 0.6875rem; + background: var(--body-bg); + border: none; + border-top: 1px solid var(--hairline-color); + border-bottom: 1px solid var(--hairline-color); +} + +tfoot td { + border-bottom: none; + border-top: 1px solid var(--hairline-color); +} + +thead th.required { + font-weight: bold; +} + +tr.alt { + background: var(--darkened-bg); +} + +tr:nth-child(odd), .row-form-errors { + background: var(--body-bg); +} + +tr:nth-child(even), +tr:nth-child(even) .errorlist, +tr:nth-child(odd) + .row-form-errors, +tr:nth-child(odd) + .row-form-errors .errorlist { + background: var(--darkened-bg); +} + +/* SORTABLE TABLES */ + +thead th { + padding: 5px 10px; + line-height: normal; + text-transform: uppercase; + background: var(--darkened-bg); +} + +thead th a:link, thead th a:visited { + color: var(--body-quiet-color); +} + +thead th.sorted { + background: var(--selected-bg); +} + +thead th.sorted .text { + padding-right: 42px; +} + +table thead th .text span { + padding: 8px 10px; + display: block; +} + +table thead th .text a { + display: block; + cursor: pointer; + padding: 8px 10px; +} + +table thead th .text a:focus, table thead th .text a:hover { + background: var(--selected-bg); +} + +thead th.sorted a.sortremove { + visibility: hidden; +} + +table thead th.sorted:hover a.sortremove { + visibility: visible; +} + +table thead th.sorted .sortoptions { + display: block; + padding: 9px 5px 0 5px; + float: right; + text-align: right; +} + +table thead th.sorted .sortpriority { + font-size: .8em; + min-width: 12px; + text-align: center; + vertical-align: 3px; + margin-left: 2px; + margin-right: 2px; +} + +table thead th.sorted .sortoptions a { + position: relative; + width: 14px; + height: 14px; + display: inline-block; + background: url(../img/sorting-icons.svg) 0 0 no-repeat; + background-size: 14px auto; +} + +table thead th.sorted .sortoptions a.sortremove { + background-position: 0 0; +} + +table thead th.sorted .sortoptions a.sortremove:after { + content: '\\'; + position: absolute; + top: -6px; + left: 3px; + font-weight: 200; + font-size: 1.125rem; + color: var(--body-quiet-color); +} + +table thead th.sorted .sortoptions a.sortremove:focus:after, +table thead th.sorted .sortoptions a.sortremove:hover:after { + color: var(--link-fg); +} + +table thead th.sorted .sortoptions a.sortremove:focus, +table thead th.sorted .sortoptions a.sortremove:hover { + background-position: 0 -14px; +} + +table thead th.sorted .sortoptions a.ascending { + background-position: 0 -28px; +} + +table thead th.sorted .sortoptions a.ascending:focus, +table thead th.sorted .sortoptions a.ascending:hover { + background-position: 0 -42px; +} + +table thead th.sorted .sortoptions a.descending { + top: 1px; + background-position: 0 -56px; +} + +table thead th.sorted .sortoptions a.descending:focus, +table thead th.sorted .sortoptions a.descending:hover { + background-position: 0 -70px; +} + +/* FORM DEFAULTS */ + +input, textarea, select, .form-row p, form .button { + margin: 2px 0; + padding: 2px 3px; + vertical-align: middle; + font-family: var(--font-family-primary); + font-weight: normal; + font-size: 0.8125rem; +} +.form-row div.help { + padding: 2px 3px; +} + +textarea { + vertical-align: top; +} + +/* +Minifiers remove the default (text) "type" attribute from "input" HTML tags. +Add input:not([type]) to make the CSS stylesheet work the same. +*/ +input:not([type]), input[type=text], input[type=password], input[type=email], +input[type=url], input[type=number], input[type=tel], textarea, select, +.vTextField { + border: 1px solid var(--border-color); + border-radius: 4px; + padding: 5px 6px; + margin-top: 0; + color: var(--body-fg); + background-color: var(--body-bg); +} + +/* +Minifiers remove the default (text) "type" attribute from "input" HTML tags. +Add input:not([type]) to make the CSS stylesheet work the same. +*/ +input:not([type]):focus, input[type=text]:focus, input[type=password]:focus, +input[type=email]:focus, input[type=url]:focus, input[type=number]:focus, +input[type=tel]:focus, textarea:focus, select:focus, .vTextField:focus { + border-color: var(--body-quiet-color); +} + +select { + height: 1.875rem; +} + +select[multiple] { + /* Allow HTML size attribute to override the height in the rule above. */ + height: auto; + min-height: 150px; +} + +/* FORM BUTTONS */ + +.button, input[type=submit], input[type=button], .submit-row input, a.button { + background: var(--button-bg); + padding: 10px 15px; + border: none; + border-radius: 4px; + color: var(--button-fg); + cursor: pointer; + transition: background 0.15s; +} + +a.button { + padding: 4px 5px; +} + +.button:active, input[type=submit]:active, input[type=button]:active, +.button:focus, input[type=submit]:focus, input[type=button]:focus, +.button:hover, input[type=submit]:hover, input[type=button]:hover { + background: var(--button-hover-bg); +} + +.button[disabled], input[type=submit][disabled], input[type=button][disabled] { + opacity: 0.4; +} + +.button.default, input[type=submit].default, .submit-row input.default { + border: none; + font-weight: 400; + background: var(--default-button-bg); +} + +.button.default:active, input[type=submit].default:active, +.button.default:focus, input[type=submit].default:focus, +.button.default:hover, input[type=submit].default:hover { + background: var(--default-button-hover-bg); +} + +.button[disabled].default, +input[type=submit][disabled].default, +input[type=button][disabled].default { + opacity: 0.4; +} + + +/* MODULES */ + +.module { + border: none; + margin-bottom: 30px; + background: var(--body-bg); +} + +.module p, .module ul, .module h3, .module h4, .module dl, .module pre { + padding-left: 10px; + padding-right: 10px; +} + +.module blockquote { + margin-left: 12px; +} + +.module ul, .module ol { + margin-left: 1.5em; +} + +.module h3 { + margin-top: .6em; +} + +.module h2, .module caption, .inline-group h2 { + margin: 0; + padding: 8px; + font-weight: 400; + font-size: 0.8125rem; + text-align: left; + background: var(--header-bg); + color: var(--header-link-color); +} + +.module caption, +.inline-group h2 { + font-size: 0.75rem; + letter-spacing: 0.5px; + text-transform: uppercase; +} + +.module table { + border-collapse: collapse; +} + +/* MESSAGES & ERRORS */ + +ul.messagelist { + padding: 0; + margin: 0; +} + +ul.messagelist li { + display: block; + font-weight: 400; + font-size: 0.8125rem; + padding: 10px 10px 10px 65px; + margin: 0 0 10px 0; + background: var(--message-success-bg) url(../img/icon-yes.svg) 40px 12px no-repeat; + background-size: 16px auto; + color: var(--body-fg); + word-break: break-word; +} + +ul.messagelist li.warning { + background: var(--message-warning-bg) url(../img/icon-alert.svg) 40px 14px no-repeat; + background-size: 14px auto; +} + +ul.messagelist li.error { + background: var(--message-error-bg) url(../img/icon-no.svg) 40px 12px no-repeat; + background-size: 16px auto; +} + +.errornote { + font-size: 0.875rem; + font-weight: 700; + display: block; + padding: 10px 12px; + margin: 0 0 10px 0; + color: var(--error-fg); + border: 1px solid var(--error-fg); + border-radius: 4px; + background-color: var(--body-bg); + background-position: 5px 12px; + overflow-wrap: break-word; +} + +ul.errorlist { + margin: 0 0 4px; + padding: 0; + color: var(--error-fg); + background: var(--body-bg); +} + +ul.errorlist li { + font-size: 0.8125rem; + display: block; + margin-bottom: 4px; + overflow-wrap: break-word; +} + +ul.errorlist li:first-child { + margin-top: 0; +} + +ul.errorlist li a { + color: inherit; + text-decoration: underline; +} + +td ul.errorlist { + margin: 0; + padding: 0; +} + +td ul.errorlist li { + margin: 0; +} + +.form-row.errors { + margin: 0; + border: none; + border-bottom: 1px solid var(--hairline-color); + background: none; +} + +.form-row.errors ul.errorlist li { + padding-left: 0; +} + +.errors input, .errors select, .errors textarea, +td ul.errorlist + input, td ul.errorlist + select, td ul.errorlist + textarea { + border: 1px solid var(--error-fg); +} + +.description { + font-size: 0.75rem; + padding: 5px 0 0 12px; +} + +/* BREADCRUMBS */ + +div.breadcrumbs { + background: var(--breadcrumbs-bg); + padding: 10px 40px; + border: none; + color: var(--breadcrumbs-fg); + text-align: left; +} + +div.breadcrumbs a { + color: var(--breadcrumbs-link-fg); +} + +div.breadcrumbs a:focus, div.breadcrumbs a:hover { + color: var(--breadcrumbs-fg); +} + +/* ACTION ICONS */ + +.viewlink, .inlineviewlink { + padding-left: 16px; + background: url(../img/icon-viewlink.svg) 0 1px no-repeat; +} + +.hidelink { + padding-left: 16px; + background: url(../img/icon-hidelink.svg) 0 1px no-repeat; +} + +.addlink { + padding-left: 16px; + background: url(../img/icon-addlink.svg) 0 1px no-repeat; +} + +.changelink, .inlinechangelink { + padding-left: 16px; + background: url(../img/icon-changelink.svg) 0 1px no-repeat; +} + +.deletelink { + padding-left: 16px; + background: url(../img/icon-deletelink.svg) 0 1px no-repeat; +} + +a.deletelink:link, a.deletelink:visited { + color: #CC3434; /* XXX Probably unused? */ +} + +a.deletelink:focus, a.deletelink:hover { + color: #993333; /* XXX Probably unused? */ + text-decoration: none; +} + +/* OBJECT TOOLS */ + +.object-tools { + font-size: 0.625rem; + font-weight: bold; + padding-left: 0; + float: right; + position: relative; + margin-top: -48px; +} + +.object-tools li { + display: block; + float: left; + margin-left: 5px; + height: 1rem; +} + +.object-tools a { + border-radius: 15px; +} + +.object-tools a:link, .object-tools a:visited { + display: block; + float: left; + padding: 3px 12px; + background: var(--object-tools-bg); + color: var(--object-tools-fg); + font-weight: 400; + font-size: 0.6875rem; + text-transform: uppercase; + letter-spacing: 0.5px; +} + +.object-tools a:focus, .object-tools a:hover { + background-color: var(--object-tools-hover-bg); +} + +.object-tools a:focus{ + text-decoration: none; +} + +.object-tools a.viewsitelink, .object-tools a.addlink { + background-repeat: no-repeat; + background-position: right 7px center; + padding-right: 26px; +} + +.object-tools a.viewsitelink { + background-image: url(../img/tooltag-arrowright.svg); +} + +.object-tools a.addlink { + background-image: url(../img/tooltag-add.svg); +} + +/* OBJECT HISTORY */ + +#change-history table { + width: 100%; +} + +#change-history table tbody th { + width: 16em; +} + +#change-history .paginator { + color: var(--body-quiet-color); + border-bottom: 1px solid var(--hairline-color); + background: var(--body-bg); + overflow: hidden; +} + +/* PAGE STRUCTURE */ + +#container { + position: relative; + width: 100%; + min-width: 980px; + padding: 0; + display: flex; + flex-direction: column; + height: 100%; +} + +#container > .main { + display: flex; + flex: 1 0 auto; +} + +.main > .content { + flex: 1 0; + max-width: 100%; +} + +.skip-to-content-link { + position: absolute; + top: -999px; + margin: 5px; + padding: 5px; + background: var(--body-bg); + z-index: 1; +} + +.skip-to-content-link:focus { + left: 0px; + top: 0px; +} + +#content { + padding: 20px 40px; +} + +.dashboard #content { + width: 600px; +} + +#content-main { + float: left; + width: 100%; +} + +#content-related { + float: right; + width: 260px; + position: relative; + margin-right: -300px; +} + +@media (forced-colors: active) { + #content-related { + border: 1px solid; + } +} + +/* COLUMN TYPES */ + +.colMS { + margin-right: 300px; +} + +.colSM { + margin-left: 300px; +} + +.colSM #content-related { + float: left; + margin-right: 0; + margin-left: -300px; +} + +.colSM #content-main { + float: right; +} + +.popup .colM { + width: auto; +} + +/* HEADER */ + +#header { + width: auto; + height: auto; + display: flex; + justify-content: space-between; + align-items: center; + padding: 10px 40px; + background: var(--header-bg); + color: var(--header-color); +} + +#header a:link, #header a:visited, #logout-form button { + color: var(--header-link-color); +} + +#header a:focus , #header a:hover { + text-decoration: underline; +} + +@media (forced-colors: active) { + #header { + border-bottom: 1px solid; + } +} + +#branding { + display: flex; +} + +#site-name { + padding: 0; + margin: 0; + margin-inline-end: 20px; + font-weight: 300; + font-size: 1.5rem; + color: var(--header-branding-color); +} + +#site-name a:link, #site-name a:visited { + color: var(--accent); +} + +#branding h2 { + padding: 0 10px; + font-size: 0.875rem; + margin: -8px 0 8px 0; + font-weight: normal; + color: var(--header-color); +} + +#branding a:hover { + text-decoration: none; +} + +#logout-form { + display: inline; +} + +#logout-form button { + background: none; + border: 0; + cursor: pointer; + font-family: var(--font-family-primary); +} + +#user-tools { + float: right; + margin: 0 0 0 20px; + text-align: right; +} + +#user-tools, #logout-form button{ + padding: 0; + font-weight: 300; + font-size: 0.6875rem; + letter-spacing: 0.5px; + text-transform: uppercase; +} + +#user-tools a, #logout-form button { + border-bottom: 1px solid rgba(255, 255, 255, 0.25); +} + +#user-tools a:focus, #user-tools a:hover, +#logout-form button:active, #logout-form button:hover { + text-decoration: none; + border-bottom: 0; +} + +#logout-form button:active, #logout-form button:hover { + margin-bottom: 1px; +} + +/* SIDEBAR */ + +#content-related { + background: var(--darkened-bg); +} + +#content-related .module { + background: none; +} + +#content-related h3 { + color: var(--body-quiet-color); + padding: 0 16px; + margin: 0 0 16px; +} + +#content-related h4 { + font-size: 0.8125rem; +} + +#content-related p { + padding-left: 16px; + padding-right: 16px; +} + +#content-related .actionlist { + padding: 0; + margin: 16px; +} + +#content-related .actionlist li { + line-height: 1.2; + margin-bottom: 10px; + padding-left: 18px; +} + +#content-related .module h2 { + background: none; + padding: 16px; + margin-bottom: 16px; + border-bottom: 1px solid var(--hairline-color); + font-size: 1.125rem; + color: var(--body-fg); +} + +.delete-confirmation form input[type="submit"] { + background: var(--delete-button-bg); + border-radius: 4px; + padding: 10px 15px; + color: var(--button-fg); +} + +.delete-confirmation form input[type="submit"]:active, +.delete-confirmation form input[type="submit"]:focus, +.delete-confirmation form input[type="submit"]:hover { + background: var(--delete-button-hover-bg); +} + +.delete-confirmation form .cancel-link { + display: inline-block; + vertical-align: middle; + height: 0.9375rem; + line-height: 0.9375rem; + border-radius: 4px; + padding: 10px 15px; + color: var(--button-fg); + background: var(--close-button-bg); + margin: 0 0 0 10px; +} + +.delete-confirmation form .cancel-link:active, +.delete-confirmation form .cancel-link:focus, +.delete-confirmation form .cancel-link:hover { + background: var(--close-button-hover-bg); +} + +/* POPUP */ +.popup #content { + padding: 20px; +} + +.popup #container { + min-width: 0; +} + +.popup #header { + padding: 10px 20px; +} + +/* PAGINATOR */ + +.paginator { + display: flex; + align-items: center; + gap: 4px; + font-size: 0.8125rem; + padding-top: 10px; + padding-bottom: 10px; + line-height: 22px; + margin: 0; + border-top: 1px solid var(--hairline-color); + width: 100%; +} + +.paginator a:link, .paginator a:visited { + padding: 2px 6px; + background: var(--button-bg); + text-decoration: none; + color: var(--button-fg); +} + +.paginator a.showall { + border: none; + background: none; + color: var(--link-fg); +} + +.paginator a.showall:focus, .paginator a.showall:hover { + background: none; + color: var(--link-hover-color); +} + +.paginator .end { + margin-right: 6px; +} + +.paginator .this-page { + padding: 2px 6px; + font-weight: bold; + font-size: 0.8125rem; + vertical-align: top; +} + +.paginator a:focus, .paginator a:hover { + color: white; + background: var(--link-hover-color); +} + +.paginator input { + margin-left: auto; +} + +.base-svgs { + display: none; +} + +.visually-hidden { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + overflow: hidden; + clip: rect(0,0,0,0); + white-space: nowrap; + border: 0; + color: var(--body-fg); + background-color: var(--body-bg); +} diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/changelists.css b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/changelists.css new file mode 100644 index 0000000000..005b7768c8 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/changelists.css @@ -0,0 +1,343 @@ +/* CHANGELISTS */ + +#changelist { + display: flex; + align-items: flex-start; + justify-content: space-between; +} + +#changelist .changelist-form-container { + flex: 1 1 auto; + min-width: 0; +} + +#changelist table { + width: 100%; +} + +.change-list .hiddenfields { display:none; } + +.change-list .filtered table { + border-right: none; +} + +.change-list .filtered { + min-height: 400px; +} + +.change-list .filtered .results, .change-list .filtered .paginator, +.filtered #toolbar, .filtered div.xfull { + width: auto; +} + +.change-list .filtered table tbody th { + padding-right: 1em; +} + +#changelist-form .results { + overflow-x: auto; + width: 100%; +} + +#changelist .toplinks { + border-bottom: 1px solid var(--hairline-color); +} + +#changelist .paginator { + color: var(--body-quiet-color); + border-bottom: 1px solid var(--hairline-color); + background: var(--body-bg); + overflow: hidden; +} + +/* CHANGELIST TABLES */ + +#changelist table thead th { + padding: 0; + white-space: nowrap; + vertical-align: middle; +} + +#changelist table thead th.action-checkbox-column { + width: 1.5em; + text-align: center; +} + +#changelist table tbody td.action-checkbox { + text-align: center; +} + +#changelist table tfoot { + color: var(--body-quiet-color); +} + +/* TOOLBAR */ + +#toolbar { + padding: 8px 10px; + margin-bottom: 15px; + border-top: 1px solid var(--hairline-color); + border-bottom: 1px solid var(--hairline-color); + background: var(--darkened-bg); + color: var(--body-quiet-color); +} + +#toolbar form input { + border-radius: 4px; + font-size: 0.875rem; + padding: 5px; + color: var(--body-fg); +} + +#toolbar #searchbar { + height: 1.1875rem; + border: 1px solid var(--border-color); + padding: 2px 5px; + margin: 0; + vertical-align: top; + font-size: 0.8125rem; + max-width: 100%; +} + +#toolbar #searchbar:focus { + border-color: var(--body-quiet-color); +} + +#toolbar form input[type="submit"] { + border: 1px solid var(--border-color); + font-size: 0.8125rem; + padding: 4px 8px; + margin: 0; + vertical-align: middle; + background: var(--body-bg); + box-shadow: 0 -15px 20px -10px rgba(0, 0, 0, 0.15) inset; + cursor: pointer; + color: var(--body-fg); +} + +#toolbar form input[type="submit"]:focus, +#toolbar form input[type="submit"]:hover { + border-color: var(--body-quiet-color); +} + +#changelist-search img { + vertical-align: middle; + margin-right: 4px; +} + +#changelist-search .help { + word-break: break-word; +} + +/* FILTER COLUMN */ + +#changelist-filter { + flex: 0 0 240px; + order: 1; + background: var(--darkened-bg); + border-left: none; + margin: 0 0 0 30px; +} + +@media (forced-colors: active) { + #changelist-filter { + border: 1px solid; + } +} + +#changelist-filter h2 { + font-size: 0.875rem; + text-transform: uppercase; + letter-spacing: 0.5px; + padding: 5px 15px; + margin-bottom: 12px; + border-bottom: none; +} + +#changelist-filter h3, +#changelist-filter details summary { + font-weight: 400; + padding: 0 15px; + margin-bottom: 10px; +} + +#changelist-filter details summary > * { + display: inline; +} + +#changelist-filter details > summary { + list-style-type: none; +} + +#changelist-filter details > summary::-webkit-details-marker { + display: none; +} + +#changelist-filter details > summary::before { + content: '→'; + font-weight: bold; + color: var(--link-hover-color); +} + +#changelist-filter details[open] > summary::before { + content: '↓'; +} + +#changelist-filter ul { + margin: 5px 0; + padding: 0 15px 15px; + border-bottom: 1px solid var(--hairline-color); +} + +#changelist-filter ul:last-child { + border-bottom: none; +} + +#changelist-filter li { + list-style-type: none; + margin-left: 0; + padding-left: 0; +} + +#changelist-filter a { + display: block; + color: var(--body-quiet-color); + word-break: break-word; +} + +#changelist-filter li.selected { + border-left: 5px solid var(--hairline-color); + padding-left: 10px; + margin-left: -15px; +} + +#changelist-filter li.selected a { + color: var(--link-selected-fg); +} + +#changelist-filter a:focus, #changelist-filter a:hover, +#changelist-filter li.selected a:focus, +#changelist-filter li.selected a:hover { + color: var(--link-hover-color); +} + +#changelist-filter #changelist-filter-extra-actions { + font-size: 0.8125rem; + margin-bottom: 10px; + border-bottom: 1px solid var(--hairline-color); +} + +/* DATE DRILLDOWN */ + +.change-list .toplinks { + display: flex; + padding-bottom: 5px; + flex-wrap: wrap; + gap: 3px 17px; + font-weight: bold; +} + +.change-list .toplinks a { + font-size: 0.8125rem; +} + +.change-list .toplinks .date-back { + color: var(--body-quiet-color); +} + +.change-list .toplinks .date-back:focus, +.change-list .toplinks .date-back:hover { + color: var(--link-hover-color); +} + +/* ACTIONS */ + +.filtered .actions { + border-right: none; +} + +#changelist table input { + margin: 0; + vertical-align: baseline; +} + +/* Once the :has() pseudo-class is supported by all browsers, the tr.selected + selector and the JS adding the class can be removed. */ +#changelist tbody tr.selected { + background-color: var(--selected-row); +} + +#changelist tbody tr:has(.action-select:checked) { + background-color: var(--selected-row); +} + +@media (forced-colors: active) { + #changelist tbody tr.selected { + background-color: SelectedItem; + } + #changelist tbody tr:has(.action-select:checked) { + background-color: SelectedItem; + } +} + +#changelist .actions { + padding: 10px; + background: var(--body-bg); + border-top: none; + border-bottom: none; + line-height: 1.5rem; + color: var(--body-quiet-color); + width: 100%; +} + +#changelist .actions span.all, +#changelist .actions span.action-counter, +#changelist .actions span.clear, +#changelist .actions span.question { + font-size: 0.8125rem; + margin: 0 0.5em; +} + +#changelist .actions:last-child { + border-bottom: none; +} + +#changelist .actions select { + vertical-align: top; + height: 1.5rem; + color: var(--body-fg); + border: 1px solid var(--border-color); + border-radius: 4px; + font-size: 0.875rem; + padding: 0 0 0 4px; + margin: 0; + margin-left: 10px; +} + +#changelist .actions select:focus { + border-color: var(--body-quiet-color); +} + +#changelist .actions label { + display: inline-block; + vertical-align: middle; + font-size: 0.8125rem; +} + +#changelist .actions .button { + font-size: 0.8125rem; + border: 1px solid var(--border-color); + border-radius: 4px; + background: var(--body-bg); + box-shadow: 0 -15px 20px -10px rgba(0, 0, 0, 0.15) inset; + cursor: pointer; + height: 1.5rem; + line-height: 1; + padding: 4px 8px; + margin: 0; + color: var(--body-fg); +} + +#changelist .actions .button:focus, #changelist .actions .button:hover { + border-color: var(--body-quiet-color); +} diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/dark_mode.css b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/dark_mode.css new file mode 100644 index 0000000000..7e12a81578 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/dark_mode.css @@ -0,0 +1,130 @@ +@media (prefers-color-scheme: dark) { + :root { + --primary: #264b5d; + --primary-fg: #f7f7f7; + + --body-fg: #eeeeee; + --body-bg: #121212; + --body-quiet-color: #d0d0d0; + --body-medium-color: #e0e0e0; + --body-loud-color: #ffffff; + + --breadcrumbs-link-fg: #e0e0e0; + --breadcrumbs-bg: var(--primary); + + --link-fg: #81d4fa; + --link-hover-color: #4ac1f7; + --link-selected-fg: #6f94c6; + + --hairline-color: #272727; + --border-color: #353535; + + --error-fg: #e35f5f; + --message-success-bg: #006b1b; + --message-warning-bg: #583305; + --message-error-bg: #570808; + + --darkened-bg: #212121; + --selected-bg: #1b1b1b; + --selected-row: #00363a; + + --close-button-bg: #333333; + --close-button-hover-bg: #666666; + + color-scheme: dark; + } + } + + +html[data-theme="dark"] { + --primary: #264b5d; + --primary-fg: #f7f7f7; + + --body-fg: #eeeeee; + --body-bg: #121212; + --body-quiet-color: #d0d0d0; + --body-medium-color: #e0e0e0; + --body-loud-color: #ffffff; + + --breadcrumbs-link-fg: #e0e0e0; + --breadcrumbs-bg: var(--primary); + + --link-fg: #81d4fa; + --link-hover-color: #4ac1f7; + --link-selected-fg: #6f94c6; + + --hairline-color: #272727; + --border-color: #353535; + + --error-fg: #e35f5f; + --message-success-bg: #006b1b; + --message-warning-bg: #583305; + --message-error-bg: #570808; + + --darkened-bg: #212121; + --selected-bg: #1b1b1b; + --selected-row: #00363a; + + --close-button-bg: #333333; + --close-button-hover-bg: #666666; + + color-scheme: dark; +} + +/* THEME SWITCH */ +.theme-toggle { + cursor: pointer; + border: none; + padding: 0; + background: transparent; + vertical-align: middle; + margin-inline-start: 5px; + margin-top: -1px; +} + +.theme-toggle svg { + vertical-align: middle; + height: 1rem; + width: 1rem; + display: none; +} + +/* +Fully hide screen reader text so we only show the one matching the current +theme. +*/ +.theme-toggle .visually-hidden { + display: none; +} + +html[data-theme="auto"] .theme-toggle .theme-label-when-auto { + display: block; +} + +html[data-theme="dark"] .theme-toggle .theme-label-when-dark { + display: block; +} + +html[data-theme="light"] .theme-toggle .theme-label-when-light { + display: block; +} + +/* ICONS */ +.theme-toggle svg.theme-icon-when-auto, +.theme-toggle svg.theme-icon-when-dark, +.theme-toggle svg.theme-icon-when-light { + fill: var(--header-link-color); + color: var(--header-bg); +} + +html[data-theme="auto"] .theme-toggle svg.theme-icon-when-auto { + display: block; +} + +html[data-theme="dark"] .theme-toggle svg.theme-icon-when-dark { + display: block; +} + +html[data-theme="light"] .theme-toggle svg.theme-icon-when-light { + display: block; +} diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/dashboard.css b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/dashboard.css new file mode 100644 index 0000000000..242b81a45f --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/dashboard.css @@ -0,0 +1,29 @@ +/* DASHBOARD */ +.dashboard td, .dashboard th { + word-break: break-word; +} + +.dashboard .module table th { + width: 100%; +} + +.dashboard .module table td { + white-space: nowrap; +} + +.dashboard .module table td a { + display: block; + padding-right: .6em; +} + +/* RECENT ACTIONS MODULE */ + +.module ul.actionlist { + margin-left: 0; +} + +ul.actionlist li { + list-style-type: none; + overflow: hidden; + text-overflow: ellipsis; +} diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/forms.css b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/forms.css new file mode 100644 index 0000000000..776a920e25 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/forms.css @@ -0,0 +1,508 @@ +@import url('widgets.css'); + +/* FORM ROWS */ + +.form-row { + overflow: hidden; + padding: 10px; + font-size: 0.8125rem; + border-bottom: 1px solid var(--hairline-color); +} + +.form-row img, .form-row input { + vertical-align: middle; +} + +.form-row label input[type="checkbox"] { + margin-top: 0; + vertical-align: 0; +} + +form .form-row p { + padding-left: 0; +} + +.flex-container { + display: flex; +} + +.form-multiline { + flex-wrap: wrap; +} + +.form-multiline > div { + padding-bottom: 10px; +} + +/* FORM LABELS */ + +label { + font-weight: normal; + color: var(--body-quiet-color); + font-size: 0.8125rem; +} + +.required label, label.required { + font-weight: bold; +} + +/* RADIO BUTTONS */ + +form div.radiolist div { + padding-right: 7px; +} + +form div.radiolist.inline div { + display: inline-block; +} + +form div.radiolist label { + width: auto; +} + +form div.radiolist input[type="radio"] { + margin: -2px 4px 0 0; + padding: 0; +} + +form ul.inline { + margin-left: 0; + padding: 0; +} + +form ul.inline li { + float: left; + padding-right: 7px; +} + +/* FIELDSETS */ + +fieldset .fieldset-heading, +fieldset .inline-heading, +:not(.inline-related) .collapse summary { + border: 1px solid var(--header-bg); + margin: 0; + padding: 8px; + font-weight: 400; + font-size: 0.8125rem; + background: var(--header-bg); + color: var(--header-link-color); +} + +/* ALIGNED FIELDSETS */ + +.aligned label { + display: block; + padding: 4px 10px 0 0; + min-width: 160px; + width: 160px; + word-wrap: break-word; +} + +.aligned label:not(.vCheckboxLabel):after { + content: ''; + display: inline-block; + vertical-align: middle; +} + +.aligned label + p, .aligned .checkbox-row + div.help, .aligned label + div.readonly { + padding: 6px 0; + margin-top: 0; + margin-bottom: 0; + margin-left: 0; + overflow-wrap: break-word; +} + +.aligned ul label { + display: inline; + float: none; + width: auto; +} + +.aligned .form-row input { + margin-bottom: 0; +} + +.colMS .aligned .vLargeTextField, .colMS .aligned .vXMLLargeTextField { + width: 350px; +} + +form .aligned ul { + margin-left: 160px; + padding-left: 10px; +} + +form .aligned div.radiolist { + display: inline-block; + margin: 0; + padding: 0; +} + +form .aligned p.help, +form .aligned div.help { + margin-top: 0; + margin-left: 160px; + padding-left: 10px; +} + +form .aligned p.date div.help.timezonewarning, +form .aligned p.datetime div.help.timezonewarning, +form .aligned p.time div.help.timezonewarning { + margin-left: 0; + padding-left: 0; + font-weight: normal; +} + +form .aligned p.help:last-child, +form .aligned div.help:last-child { + margin-bottom: 0; + padding-bottom: 0; +} + +form .aligned input + p.help, +form .aligned textarea + p.help, +form .aligned select + p.help, +form .aligned input + div.help, +form .aligned textarea + div.help, +form .aligned select + div.help { + margin-left: 160px; + padding-left: 10px; +} + +form .aligned ul li { + list-style: none; +} + +form .aligned table p { + margin-left: 0; + padding-left: 0; +} + +.aligned .vCheckboxLabel { + padding: 1px 0 0 5px; +} + +.aligned .vCheckboxLabel + p.help, +.aligned .vCheckboxLabel + div.help { + margin-top: -4px; +} + +.colM .aligned .vLargeTextField, .colM .aligned .vXMLLargeTextField { + width: 610px; +} + +fieldset .fieldBox { + margin-right: 20px; +} + +/* WIDE FIELDSETS */ + +.wide label { + width: 200px; +} + +form .wide p.help, +form .wide ul.errorlist, +form .wide div.help { + padding-left: 50px; +} + +form div.help ul { + padding-left: 0; + margin-left: 0; +} + +.colM fieldset.wide .vLargeTextField, .colM fieldset.wide .vXMLLargeTextField { + width: 450px; +} + +/* COLLAPSIBLE FIELDSETS */ + +.collapse summary .fieldset-heading, +.collapse summary .inline-heading { + background: transparent; + border: none; + color: currentColor; + display: inline; + margin: 0; + padding: 0; +} + +/* MONOSPACE TEXTAREAS */ + +fieldset.monospace textarea { + font-family: var(--font-family-monospace); +} + +/* SUBMIT ROW */ + +.submit-row { + padding: 12px 14px 12px; + margin: 0 0 20px; + background: var(--darkened-bg); + border: 1px solid var(--hairline-color); + border-radius: 4px; + overflow: hidden; + display: flex; + gap: 10px; + flex-wrap: wrap; +} + +body.popup .submit-row { + overflow: auto; +} + +.submit-row input { + height: 2.1875rem; + line-height: 0.9375rem; +} + +.submit-row input, .submit-row a { + margin: 0; +} + +.submit-row input.default { + text-transform: uppercase; +} + +.submit-row a.deletelink { + margin-left: auto; +} + +.submit-row a.deletelink { + display: block; + background: var(--delete-button-bg); + border-radius: 4px; + padding: 0.625rem 0.9375rem; + height: 0.9375rem; + line-height: 0.9375rem; + color: var(--button-fg); +} + +.submit-row a.closelink { + display: inline-block; + background: var(--close-button-bg); + border-radius: 4px; + padding: 10px 15px; + height: 0.9375rem; + line-height: 0.9375rem; + color: var(--button-fg); +} + +.submit-row a.deletelink:focus, +.submit-row a.deletelink:hover, +.submit-row a.deletelink:active { + background: var(--delete-button-hover-bg); + text-decoration: none; +} + +.submit-row a.closelink:focus, +.submit-row a.closelink:hover, +.submit-row a.closelink:active { + background: var(--close-button-hover-bg); + text-decoration: none; +} + +/* CUSTOM FORM FIELDS */ + +.vSelectMultipleField { + vertical-align: top; +} + +.vCheckboxField { + border: none; +} + +.vDateField, .vTimeField { + margin-right: 2px; + margin-bottom: 4px; +} + +.vDateField { + min-width: 6.85em; +} + +.vTimeField { + min-width: 4.7em; +} + +.vURLField { + width: 30em; +} + +.vLargeTextField, .vXMLLargeTextField { + width: 48em; +} + +.flatpages-flatpage #id_content { + height: 40.2em; +} + +.module table .vPositiveSmallIntegerField { + width: 2.2em; +} + +.vIntegerField { + width: 5em; +} + +.vBigIntegerField { + width: 10em; +} + +.vForeignKeyRawIdAdminField { + width: 5em; +} + +.vTextField, .vUUIDField { + width: 20em; +} + +/* INLINES */ + +.inline-group { + padding: 0; + margin: 0 0 30px; +} + +.inline-group thead th { + padding: 8px 10px; +} + +.inline-group .aligned label { + width: 160px; +} + +.inline-related { + position: relative; +} + +.inline-related h4, +.inline-related:not(.tabular) .collapse summary { + margin: 0; + color: var(--body-medium-color); + padding: 5px; + font-size: 0.8125rem; + background: var(--darkened-bg); + border: 1px solid var(--hairline-color); + border-left-color: var(--darkened-bg); + border-right-color: var(--darkened-bg); +} + +.inline-related h3 span.delete { + float: right; +} + +.inline-related h3 span.delete label { + margin-left: 2px; + font-size: 0.6875rem; +} + +.inline-related fieldset { + margin: 0; + background: var(--body-bg); + border: none; + width: 100%; +} + +.inline-group .tabular fieldset.module { + border: none; +} + +.inline-related.tabular fieldset.module table { + width: 100%; + overflow-x: scroll; +} + +.last-related fieldset { + border: none; +} + +.inline-group .tabular tr.has_original td { + padding-top: 2em; +} + +.inline-group .tabular tr td.original { + padding: 2px 0 0 0; + width: 0; + _position: relative; +} + +.inline-group .tabular th.original { + width: 0px; + padding: 0; +} + +.inline-group .tabular td.original p { + position: absolute; + left: 0; + height: 1.1em; + padding: 2px 9px; + overflow: hidden; + font-size: 0.5625rem; + font-weight: bold; + color: var(--body-quiet-color); + _width: 700px; +} + +.inline-group ul.tools { + padding: 0; + margin: 0; + list-style: none; +} + +.inline-group ul.tools li { + display: inline; + padding: 0 5px; +} + +.inline-group div.add-row, +.inline-group .tabular tr.add-row td { + color: var(--body-quiet-color); + background: var(--darkened-bg); + padding: 8px 10px; + border-bottom: 1px solid var(--hairline-color); +} + +.inline-group .tabular tr.add-row td { + padding: 8px 10px; + border-bottom: 1px solid var(--hairline-color); +} + +.inline-group ul.tools a.add, +.inline-group div.add-row a, +.inline-group .tabular tr.add-row td a { + background: url(../img/icon-addlink.svg) 0 1px no-repeat; + padding-left: 16px; + font-size: 0.75rem; +} + +.empty-form { + display: none; +} + +/* RELATED FIELD ADD ONE / LOOKUP */ + +.related-lookup { + margin-left: 5px; + display: inline-block; + vertical-align: middle; + background-repeat: no-repeat; + background-size: 14px; +} + +.related-lookup { + width: 1rem; + height: 1rem; + background-image: url(../img/search.svg); +} + +form .related-widget-wrapper ul { + display: inline-block; + margin-left: 0; + padding-left: 0; +} + +.clearable-file-input input { + margin-top: 0; +} diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/login.css b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/login.css new file mode 100644 index 0000000000..805a34b5bd --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/login.css @@ -0,0 +1,61 @@ +/* LOGIN FORM */ + +.login { + background: var(--darkened-bg); + height: auto; +} + +.login #header { + height: auto; + padding: 15px 16px; + justify-content: center; +} + +.login #header h1 { + font-size: 1.125rem; + margin: 0; +} + +.login #header h1 a { + color: var(--header-link-color); +} + +.login #content { + padding: 20px; +} + +.login #container { + background: var(--body-bg); + border: 1px solid var(--hairline-color); + border-radius: 4px; + overflow: hidden; + width: 28em; + min-width: 300px; + margin: 100px auto; + height: auto; +} + +.login .form-row { + padding: 4px 0; +} + +.login .form-row label { + display: block; + line-height: 2em; +} + +.login .form-row #id_username, .login .form-row #id_password { + padding: 8px; + width: 100%; + box-sizing: border-box; +} + +.login .submit-row { + padding: 1em 0 0 0; + margin: 0; + text-align: center; +} + +.login .password-reset-link { + text-align: center; +} diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/nav_sidebar.css b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/nav_sidebar.css new file mode 100644 index 0000000000..7eb0de97ab --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/nav_sidebar.css @@ -0,0 +1,150 @@ +.sticky { + position: sticky; + top: 0; + max-height: 100vh; +} + +.toggle-nav-sidebar { + z-index: 20; + left: 0; + display: flex; + align-items: center; + justify-content: center; + flex: 0 0 23px; + width: 23px; + border: 0; + border-right: 1px solid var(--hairline-color); + background-color: var(--body-bg); + cursor: pointer; + font-size: 1.25rem; + color: var(--link-fg); + padding: 0; +} + +[dir="rtl"] .toggle-nav-sidebar { + border-left: 1px solid var(--hairline-color); + border-right: 0; +} + +.toggle-nav-sidebar:hover, +.toggle-nav-sidebar:focus { + background-color: var(--darkened-bg); +} + +#nav-sidebar { + z-index: 15; + flex: 0 0 275px; + left: -276px; + margin-left: -276px; + border-top: 1px solid transparent; + border-right: 1px solid var(--hairline-color); + background-color: var(--body-bg); + overflow: auto; +} + +[dir="rtl"] #nav-sidebar { + border-left: 1px solid var(--hairline-color); + border-right: 0; + left: 0; + margin-left: 0; + right: -276px; + margin-right: -276px; +} + +.toggle-nav-sidebar::before { + content: '\00BB'; +} + +.main.shifted .toggle-nav-sidebar::before { + content: '\00AB'; +} + +.main > #nav-sidebar { + visibility: hidden; +} + +.main.shifted > #nav-sidebar { + margin-left: 0; + visibility: visible; +} + +[dir="rtl"] .main.shifted > #nav-sidebar { + margin-right: 0; +} + +#nav-sidebar .module th { + width: 100%; + overflow-wrap: anywhere; +} + +#nav-sidebar .module th, +#nav-sidebar .module caption { + padding-left: 16px; +} + +#nav-sidebar .module td { + white-space: nowrap; +} + +[dir="rtl"] #nav-sidebar .module th, +[dir="rtl"] #nav-sidebar .module caption { + padding-left: 8px; + padding-right: 16px; +} + +#nav-sidebar .current-app .section:link, +#nav-sidebar .current-app .section:visited { + color: var(--header-color); + font-weight: bold; +} + +#nav-sidebar .current-model { + background: var(--selected-row); +} + +@media (forced-colors: active) { + #nav-sidebar .current-model { + background-color: SelectedItem; + } +} + +.main > #nav-sidebar + .content { + max-width: calc(100% - 23px); +} + +.main.shifted > #nav-sidebar + .content { + max-width: calc(100% - 299px); +} + +@media (max-width: 767px) { + #nav-sidebar, #toggle-nav-sidebar { + display: none; + } + + .main > #nav-sidebar + .content, + .main.shifted > #nav-sidebar + .content { + max-width: 100%; + } +} + +#nav-filter { + width: 100%; + box-sizing: border-box; + padding: 2px 5px; + margin: 5px 0; + border: 1px solid var(--border-color); + background-color: var(--darkened-bg); + color: var(--body-fg); +} + +#nav-filter:focus { + border-color: var(--body-quiet-color); +} + +#nav-filter.no-results { + background: var(--message-error-bg); +} + +#nav-sidebar table { + width: 100%; +} diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/responsive.css b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/responsive.css new file mode 100644 index 0000000000..932e824c1c --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/responsive.css @@ -0,0 +1,967 @@ +/* Tablets */ + +input[type="submit"], button { + -webkit-appearance: none; + appearance: none; +} + +@media (max-width: 1024px) { + /* Basic */ + + html { + -webkit-text-size-adjust: 100%; + } + + td, th { + padding: 10px; + font-size: 0.875rem; + } + + .small { + font-size: 0.75rem; + } + + /* Layout */ + + #container { + min-width: 0; + } + + #content { + padding: 15px 20px 20px; + } + + div.breadcrumbs { + padding: 10px 30px; + } + + /* Header */ + + #header { + flex-direction: column; + padding: 15px 30px; + justify-content: flex-start; + } + + #site-name { + margin: 0 0 8px; + line-height: 1.2; + } + + #user-tools { + margin: 0; + font-weight: 400; + line-height: 1.85; + text-align: left; + } + + #user-tools a { + display: inline-block; + line-height: 1.4; + } + + /* Dashboard */ + + .dashboard #content { + width: auto; + } + + #content-related { + margin-right: -290px; + } + + .colSM #content-related { + margin-left: -290px; + } + + .colMS { + margin-right: 290px; + } + + .colSM { + margin-left: 290px; + } + + .dashboard .module table td a { + padding-right: 0; + } + + td .changelink, td .addlink { + font-size: 0.8125rem; + } + + /* Changelist */ + + #toolbar { + border: none; + padding: 15px; + } + + #changelist-search > div { + display: flex; + flex-wrap: nowrap; + max-width: 480px; + } + + #changelist-search label { + line-height: 1.375rem; + } + + #toolbar form #searchbar { + flex: 1 0 auto; + width: 0; + height: 1.375rem; + margin: 0 10px 0 6px; + } + + #toolbar form input[type=submit] { + flex: 0 1 auto; + } + + #changelist-search .quiet { + width: 0; + flex: 1 0 auto; + margin: 5px 0 0 25px; + } + + #changelist .actions { + display: flex; + flex-wrap: wrap; + padding: 15px 0; + } + + #changelist .actions label { + display: flex; + } + + #changelist .actions select { + background: var(--body-bg); + } + + #changelist .actions .button { + min-width: 48px; + margin: 0 10px; + } + + #changelist .actions span.all, + #changelist .actions span.clear, + #changelist .actions span.question, + #changelist .actions span.action-counter { + font-size: 0.6875rem; + margin: 0 10px 0 0; + } + + #changelist-filter { + flex-basis: 200px; + } + + .change-list .filtered .results, + .change-list .filtered .paginator, + .filtered #toolbar, + .filtered .actions, + + #changelist .paginator { + border-top-color: var(--hairline-color); /* XXX Is this used at all? */ + } + + #changelist .results + .paginator { + border-top: none; + } + + /* Forms */ + + label { + font-size: 1rem; + } + + /* + Minifiers remove the default (text) "type" attribute from "input" HTML + tags. Add input:not([type]) to make the CSS stylesheet work the same. + */ + .form-row input:not([type]), + .form-row input[type=text], + .form-row input[type=password], + .form-row input[type=email], + .form-row input[type=url], + .form-row input[type=tel], + .form-row input[type=number], + .form-row textarea, + .form-row select, + .form-row .vTextField { + box-sizing: border-box; + margin: 0; + padding: 6px 8px; + min-height: 2.25rem; + font-size: 1rem; + } + + .form-row select { + height: 2.25rem; + } + + .form-row select[multiple] { + height: auto; + min-height: 0; + } + + fieldset .fieldBox + .fieldBox { + margin-top: 10px; + padding-top: 10px; + border-top: 1px solid var(--hairline-color); + } + + textarea { + max-width: 100%; + max-height: 120px; + } + + .aligned label { + padding-top: 6px; + } + + .aligned .related-lookup, + .aligned .datetimeshortcuts, + .aligned .related-lookup + strong { + align-self: center; + margin-left: 15px; + } + + form .aligned div.radiolist { + margin-left: 2px; + } + + .submit-row { + padding: 8px; + } + + .submit-row a.deletelink { + padding: 10px 7px; + } + + .button, input[type=submit], input[type=button], .submit-row input, a.button { + padding: 7px; + } + + /* Selector */ + + .selector { + display: flex; + width: 100%; + } + + .selector .selector-filter { + display: flex; + align-items: center; + } + + .selector .selector-filter label { + margin: 0 8px 0 0; + } + + .selector .selector-filter input { + width: 100%; + min-height: 0; + flex: 1 1; + } + + .selector-available, .selector-chosen { + width: auto; + flex: 1 1; + display: flex; + flex-direction: column; + } + + .selector select { + width: 100%; + flex: 1 0 auto; + margin-bottom: 5px; + } + + .selector ul.selector-chooser { + width: 26px; + height: 52px; + padding: 2px 0; + border-radius: 20px; + transform: translateY(-10px); + } + + .selector-add, .selector-remove { + width: 20px; + height: 20px; + background-size: 20px auto; + } + + .selector-add { + background-position: 0 -120px; + } + + .selector-remove { + background-position: 0 -80px; + } + + a.selector-chooseall, a.selector-clearall { + align-self: center; + } + + .stacked { + flex-direction: column; + max-width: 480px; + } + + .stacked > * { + flex: 0 1 auto; + } + + .stacked select { + margin-bottom: 0; + } + + .stacked .selector-available, .stacked .selector-chosen { + width: auto; + } + + .stacked ul.selector-chooser { + width: 52px; + height: 26px; + padding: 0 2px; + transform: none; + } + + .stacked .selector-chooser li { + padding: 3px; + } + + .stacked .selector-add, .stacked .selector-remove { + background-size: 20px auto; + } + + .stacked .selector-add { + background-position: 0 -40px; + } + + .stacked .active.selector-add { + background-position: 0 -40px; + } + + .active.selector-add:focus, .active.selector-add:hover { + background-position: 0 -140px; + } + + .stacked .active.selector-add:focus, .stacked .active.selector-add:hover { + background-position: 0 -60px; + } + + .stacked .selector-remove { + background-position: 0 0; + } + + .stacked .active.selector-remove { + background-position: 0 0; + } + + .active.selector-remove:focus, .active.selector-remove:hover { + background-position: 0 -100px; + } + + .stacked .active.selector-remove:focus, .stacked .active.selector-remove:hover { + background-position: 0 -20px; + } + + .help-tooltip, .selector .help-icon { + display: none; + } + + .datetime input { + width: 50%; + max-width: 120px; + } + + .datetime span { + font-size: 0.8125rem; + } + + .datetime .timezonewarning { + display: block; + font-size: 0.6875rem; + color: var(--body-quiet-color); + } + + .datetimeshortcuts { + color: var(--border-color); /* XXX Redundant, .datetime span also sets #ccc */ + } + + .form-row .datetime input.vDateField, .form-row .datetime input.vTimeField { + width: 75%; + } + + .inline-group { + overflow: auto; + } + + /* Messages */ + + ul.messagelist li { + padding-left: 55px; + background-position: 30px 12px; + } + + ul.messagelist li.error { + background-position: 30px 12px; + } + + ul.messagelist li.warning { + background-position: 30px 14px; + } + + /* Login */ + + .login #header { + padding: 15px 20px; + } + + .login #site-name { + margin: 0; + } + + /* GIS */ + + div.olMap { + max-width: calc(100vw - 30px); + max-height: 300px; + } + + .olMap + .clear_features { + display: block; + margin-top: 10px; + } + + /* Docs */ + + .module table.xfull { + width: 100%; + } + + pre.literal-block { + overflow: auto; + } +} + +/* Mobile */ + +@media (max-width: 767px) { + /* Layout */ + + #header, #content { + padding: 15px; + } + + div.breadcrumbs { + padding: 10px 15px; + } + + /* Dashboard */ + + .colMS, .colSM { + margin: 0; + } + + #content-related, .colSM #content-related { + width: 100%; + margin: 0; + } + + #content-related .module { + margin-bottom: 0; + } + + #content-related .module h2 { + padding: 10px 15px; + font-size: 1rem; + } + + /* Changelist */ + + #changelist { + align-items: stretch; + flex-direction: column; + } + + #toolbar { + padding: 10px; + } + + #changelist-filter { + margin-left: 0; + } + + #changelist .actions label { + flex: 1 1; + } + + #changelist .actions select { + flex: 1 0; + width: 100%; + } + + #changelist .actions span { + flex: 1 0 100%; + } + + #changelist-filter { + position: static; + width: auto; + margin-top: 30px; + } + + .object-tools { + float: none; + margin: 0 0 15px; + padding: 0; + overflow: hidden; + } + + .object-tools li { + height: auto; + margin-left: 0; + } + + .object-tools li + li { + margin-left: 15px; + } + + /* Forms */ + + .form-row { + padding: 15px 0; + } + + .aligned .form-row, + .aligned .form-row > div { + max-width: 100vw; + } + + .aligned .form-row > div { + width: calc(100vw - 30px); + } + + .flex-container { + flex-flow: column; + } + + .flex-container.checkbox-row { + flex-flow: row; + } + + textarea { + max-width: none; + } + + .vURLField { + width: auto; + } + + fieldset .fieldBox + .fieldBox { + margin-top: 15px; + padding-top: 15px; + } + + .aligned label { + width: 100%; + min-width: auto; + padding: 0 0 10px; + } + + .aligned label:after { + max-height: 0; + } + + .aligned .form-row input, + .aligned .form-row select, + .aligned .form-row textarea { + flex: 1 1 auto; + max-width: 100%; + } + + .aligned .checkbox-row input { + flex: 0 1 auto; + margin: 0; + } + + .aligned .vCheckboxLabel { + flex: 1 0; + padding: 1px 0 0 5px; + } + + .aligned label + p, + .aligned label + div.help, + .aligned label + div.readonly { + padding: 0; + margin-left: 0; + } + + .aligned p.file-upload { + font-size: 0.8125rem; + } + + span.clearable-file-input { + margin-left: 15px; + } + + span.clearable-file-input label { + font-size: 0.8125rem; + padding-bottom: 0; + } + + .aligned .timezonewarning { + flex: 1 0 100%; + margin-top: 5px; + } + + form .aligned .form-row div.help { + width: 100%; + margin: 5px 0 0; + padding: 0; + } + + form .aligned ul, + form .aligned ul.errorlist { + margin-left: 0; + padding-left: 0; + } + + form .aligned div.radiolist { + margin-top: 5px; + margin-right: 15px; + margin-bottom: -3px; + } + + form .aligned div.radiolist:not(.inline) div + div { + margin-top: 5px; + } + + /* Related widget */ + + .related-widget-wrapper { + width: 100%; + display: flex; + align-items: flex-start; + } + + .related-widget-wrapper .selector { + order: 1; + } + + .related-widget-wrapper > a { + order: 2; + } + + .related-widget-wrapper .radiolist ~ a { + align-self: flex-end; + } + + .related-widget-wrapper > select ~ a { + align-self: center; + } + + /* Selector */ + + .selector { + flex-direction: column; + gap: 10px 0; + } + + .selector-available, .selector-chosen { + flex: 1 1 auto; + } + + .selector select { + max-height: 96px; + } + + .selector ul.selector-chooser { + display: block; + width: 52px; + height: 26px; + padding: 0 2px; + transform: none; + } + + .selector ul.selector-chooser li { + float: left; + } + + .selector-remove { + background-position: 0 0; + } + + .active.selector-remove:focus, .active.selector-remove:hover { + background-position: 0 -20px; + } + + .selector-add { + background-position: 0 -40px; + } + + .active.selector-add:focus, .active.selector-add:hover { + background-position: 0 -60px; + } + + /* Inlines */ + + .inline-group[data-inline-type="stacked"] .inline-related { + border: 1px solid var(--hairline-color); + border-radius: 4px; + margin-top: 15px; + overflow: auto; + } + + .inline-group[data-inline-type="stacked"] .inline-related > * { + box-sizing: border-box; + } + + .inline-group[data-inline-type="stacked"] .inline-related .module { + padding: 0 10px; + } + + .inline-group[data-inline-type="stacked"] .inline-related .module .form-row { + border-top: 1px solid var(--hairline-color); + border-bottom: none; + } + + .inline-group[data-inline-type="stacked"] .inline-related .module .form-row:first-child { + border-top: none; + } + + .inline-group[data-inline-type="stacked"] .inline-related h3 { + padding: 10px; + border-top-width: 0; + border-bottom-width: 2px; + display: flex; + flex-wrap: wrap; + align-items: center; + } + + .inline-group[data-inline-type="stacked"] .inline-related h3 .inline_label { + margin-right: auto; + } + + .inline-group[data-inline-type="stacked"] .inline-related h3 span.delete { + float: none; + flex: 1 1 100%; + margin-top: 5px; + } + + .inline-group[data-inline-type="stacked"] .aligned .form-row > div:not([class]) { + width: 100%; + } + + .inline-group[data-inline-type="stacked"] .aligned label { + width: 100%; + } + + .inline-group[data-inline-type="stacked"] div.add-row { + margin-top: 15px; + border: 1px solid var(--hairline-color); + border-radius: 4px; + } + + .inline-group div.add-row, + .inline-group .tabular tr.add-row td { + padding: 0; + } + + .inline-group div.add-row a, + .inline-group .tabular tr.add-row td a { + display: block; + padding: 8px 10px 8px 26px; + background-position: 8px 9px; + } + + /* Submit row */ + + .submit-row { + padding: 10px; + margin: 0 0 15px; + flex-direction: column; + gap: 8px; + } + + .submit-row input, .submit-row input.default, .submit-row a { + text-align: center; + } + + .submit-row a.closelink { + padding: 10px 0; + text-align: center; + } + + .submit-row a.deletelink { + margin: 0; + } + + /* Messages */ + + ul.messagelist li { + padding-left: 40px; + background-position: 15px 12px; + } + + ul.messagelist li.error { + background-position: 15px 12px; + } + + ul.messagelist li.warning { + background-position: 15px 14px; + } + + /* Paginator */ + + .paginator .this-page, .paginator a:link, .paginator a:visited { + padding: 4px 10px; + } + + /* Login */ + + body.login { + padding: 0 15px; + } + + .login #container { + width: auto; + max-width: 480px; + margin: 50px auto; + } + + .login #header, + .login #content { + padding: 15px; + } + + .login #content-main { + float: none; + } + + .login .form-row { + padding: 0; + } + + .login .form-row + .form-row { + margin-top: 15px; + } + + .login .form-row label { + margin: 0 0 5px; + line-height: 1.2; + } + + .login .submit-row { + padding: 15px 0 0; + } + + .login br { + display: none; + } + + .login .submit-row input { + margin: 0; + text-transform: uppercase; + } + + .errornote { + margin: 0 0 20px; + padding: 8px 12px; + font-size: 0.8125rem; + } + + /* Calendar and clock */ + + .calendarbox, .clockbox { + position: fixed !important; + top: 50% !important; + left: 50% !important; + transform: translate(-50%, -50%); + margin: 0; + border: none; + overflow: visible; + } + + .calendarbox:before, .clockbox:before { + content: ''; + position: fixed; + top: 50%; + left: 50%; + width: 100vw; + height: 100vh; + background: rgba(0, 0, 0, 0.75); + transform: translate(-50%, -50%); + } + + .calendarbox > *, .clockbox > * { + position: relative; + z-index: 1; + } + + .calendarbox > div:first-child { + z-index: 2; + } + + .calendarbox .calendar, .clockbox h2 { + border-radius: 4px 4px 0 0; + overflow: hidden; + } + + .calendarbox .calendar-cancel, .clockbox .calendar-cancel { + border-radius: 0 0 4px 4px; + overflow: hidden; + } + + .calendar-shortcuts { + padding: 10px 0; + font-size: 0.75rem; + line-height: 0.75rem; + } + + .calendar-shortcuts a { + margin: 0 4px; + } + + .timelist a { + background: var(--body-bg); + padding: 4px; + } + + .calendar-cancel { + padding: 8px 10px; + } + + .clockbox h2 { + padding: 8px 15px; + } + + .calendar caption { + padding: 10px; + } + + .calendarbox .calendarnav-previous, .calendarbox .calendarnav-next { + z-index: 1; + top: 10px; + } + + /* History */ + + table#change-history tbody th, table#change-history tbody td { + font-size: 0.8125rem; + word-break: break-word; + } + + table#change-history tbody th { + width: auto; + } + + /* Docs */ + + table.model tbody th, table.model tbody td { + font-size: 0.8125rem; + word-break: break-word; + } +} diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/responsive_rtl.css b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/responsive_rtl.css new file mode 100644 index 0000000000..33b5784842 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/responsive_rtl.css @@ -0,0 +1,111 @@ +/* TABLETS */ + +@media (max-width: 1024px) { + [dir="rtl"] .colMS { + margin-right: 0; + } + + [dir="rtl"] #user-tools { + text-align: right; + } + + [dir="rtl"] #changelist .actions label { + padding-left: 10px; + padding-right: 0; + } + + [dir="rtl"] #changelist .actions select { + margin-left: 0; + margin-right: 15px; + } + + [dir="rtl"] .change-list .filtered .results, + [dir="rtl"] .change-list .filtered .paginator, + [dir="rtl"] .filtered #toolbar, + [dir="rtl"] .filtered div.xfull, + [dir="rtl"] .filtered .actions, + [dir="rtl"] #changelist-filter { + margin-left: 0; + } + + [dir="rtl"] .inline-group ul.tools a.add, + [dir="rtl"] .inline-group div.add-row a, + [dir="rtl"] .inline-group .tabular tr.add-row td a { + padding: 8px 26px 8px 10px; + background-position: calc(100% - 8px) 9px; + } + + [dir="rtl"] .selector .selector-filter label { + margin-right: 0; + margin-left: 8px; + } + + [dir="rtl"] .object-tools li { + float: right; + } + + [dir="rtl"] .object-tools li + li { + margin-left: 0; + margin-right: 15px; + } + + [dir="rtl"] .dashboard .module table td a { + padding-left: 0; + padding-right: 16px; + } + + [dir="rtl"] .selector-add { + background-position: 0 -80px; + } + + [dir="rtl"] .selector-remove { + background-position: 0 -120px; + } + + [dir="rtl"] .active.selector-add:focus, .active.selector-add:hover { + background-position: 0 -100px; + } + + [dir="rtl"] .active.selector-remove:focus, .active.selector-remove:hover { + background-position: 0 -140px; + } +} + +/* MOBILE */ + +@media (max-width: 767px) { + [dir="rtl"] .aligned .related-lookup, + [dir="rtl"] .aligned .datetimeshortcuts { + margin-left: 0; + margin-right: 15px; + } + + [dir="rtl"] .aligned ul, + [dir="rtl"] form .aligned ul.errorlist { + margin-right: 0; + } + + [dir="rtl"] #changelist-filter { + margin-left: 0; + margin-right: 0; + } + [dir="rtl"] .aligned .vCheckboxLabel { + padding: 1px 5px 0 0; + } + + [dir="rtl"] .selector-remove { + background-position: 0 0; + } + + [dir="rtl"] .active.selector-remove:focus, .active.selector-remove:hover { + background-position: 0 -20px; + } + + [dir="rtl"] .selector-add { + background-position: 0 -40px; + } + + [dir="rtl"] .active.selector-add:focus, .active.selector-add:hover { + background-position: 0 -60px; + } +} diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/rtl.css b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/rtl.css new file mode 100644 index 0000000000..b8f60e0a34 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/rtl.css @@ -0,0 +1,291 @@ +/* GLOBAL */ + +th { + text-align: right; +} + +.module h2, .module caption { + text-align: right; +} + +.module ul, .module ol { + margin-left: 0; + margin-right: 1.5em; +} + +.viewlink, .addlink, .changelink, .hidelink { + padding-left: 0; + padding-right: 16px; + background-position: 100% 1px; +} + +.deletelink { + padding-left: 0; + padding-right: 16px; + background-position: 100% 1px; +} + +.object-tools { + float: left; +} + +thead th:first-child, +tfoot td:first-child { + border-left: none; +} + +/* LAYOUT */ + +#user-tools { + right: auto; + left: 0; + text-align: left; +} + +div.breadcrumbs { + text-align: right; +} + +#content-main { + float: right; +} + +#content-related { + float: left; + margin-left: -300px; + margin-right: auto; +} + +.colMS { + margin-left: 300px; + margin-right: 0; +} + +/* SORTABLE TABLES */ + +table thead th.sorted .sortoptions { + float: left; +} + +thead th.sorted .text { + padding-right: 0; + padding-left: 42px; +} + +/* dashboard styles */ + +.dashboard .module table td a { + padding-left: .6em; + padding-right: 16px; +} + +/* changelists styles */ + +.change-list .filtered table { + border-left: none; + border-right: 0px none; +} + +#changelist-filter { + border-left: none; + border-right: none; + margin-left: 0; + margin-right: 30px; +} + +#changelist-filter li.selected { + border-left: none; + padding-left: 10px; + margin-left: 0; + border-right: 5px solid var(--hairline-color); + padding-right: 10px; + margin-right: -15px; +} + +#changelist table tbody td:first-child, #changelist table tbody th:first-child { + border-right: none; + border-left: none; +} + +.paginator .end { + margin-left: 6px; + margin-right: 0; +} + +.paginator input { + margin-left: 0; + margin-right: auto; +} + +/* FORMS */ + +.aligned label { + padding: 0 0 3px 1em; +} + +.submit-row a.deletelink { + margin-left: 0; + margin-right: auto; +} + +.vDateField, .vTimeField { + margin-left: 2px; +} + +.aligned .form-row input { + margin-left: 5px; +} + +form .aligned ul { + margin-right: 163px; + padding-right: 10px; + margin-left: 0; + padding-left: 0; +} + +form ul.inline li { + float: right; + padding-right: 0; + padding-left: 7px; +} + +form .aligned p.help, +form .aligned div.help { + margin-left: 0; + margin-right: 160px; + padding-right: 10px; +} + +form div.help ul, +form .aligned .checkbox-row + .help, +form .aligned p.date div.help.timezonewarning, +form .aligned p.datetime div.help.timezonewarning, +form .aligned p.time div.help.timezonewarning { + margin-right: 0; + padding-right: 0; +} + +form .wide p.help, +form .wide ul.errorlist, +form .wide div.help { + padding-left: 0; + padding-right: 50px; +} + +.submit-row { + text-align: right; +} + +fieldset .fieldBox { + margin-left: 20px; + margin-right: 0; +} + +.errorlist li { + background-position: 100% 12px; + padding: 0; +} + +.errornote { + background-position: 100% 12px; + padding: 10px 12px; +} + +/* WIDGETS */ + +.calendarnav-previous { + top: 0; + left: auto; + right: 10px; + background: url(../img/calendar-icons.svg) 0 -15px no-repeat; +} + +.calendarnav-next { + top: 0; + right: auto; + left: 10px; + background: url(../img/calendar-icons.svg) 0 0 no-repeat; +} + +.calendar caption, .calendarbox h2 { + text-align: center; +} + +.selector { + float: right; +} + +.selector .selector-filter { + text-align: right; +} + +.selector-add { + background: url(../img/selector-icons.svg) 0 -64px no-repeat; +} + +.active.selector-add:focus, .active.selector-add:hover { + background-position: 0 -80px; +} + +.selector-remove { + background: url(../img/selector-icons.svg) 0 -96px no-repeat; +} + +.active.selector-remove:focus, .active.selector-remove:hover { + background-position: 0 -112px; +} + +a.selector-chooseall { + background: url(../img/selector-icons.svg) right -128px no-repeat; +} + +a.active.selector-chooseall:focus, a.active.selector-chooseall:hover { + background-position: 100% -144px; +} + +a.selector-clearall { + background: url(../img/selector-icons.svg) 0 -160px no-repeat; +} + +a.active.selector-clearall:focus, a.active.selector-clearall:hover { + background-position: 0 -176px; +} + +.inline-deletelink { + float: left; +} + +form .form-row p.datetime { + overflow: hidden; +} + +.related-widget-wrapper { + float: right; +} + +/* MISC */ + +.inline-related h2, .inline-group h2 { + text-align: right +} + +.inline-related h3 span.delete { + padding-right: 20px; + padding-left: inherit; + left: 10px; + right: inherit; + float:left; +} + +.inline-related h3 span.delete label { + margin-left: inherit; + margin-right: 2px; +} + +.inline-group .tabular td.original p { + right: 0; +} + +.selector .selector-chooser { + margin: 0; +} diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/unusable_password_field.css b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/unusable_password_field.css new file mode 100644 index 0000000000..d46eb0384c --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/unusable_password_field.css @@ -0,0 +1,19 @@ +/* Hide warnings fields if usable password is selected */ +form:has(#id_usable_password input[value="true"]:checked) .messagelist { + display: none; +} + +/* Hide password fields if unusable password is selected */ +form:has(#id_usable_password input[value="false"]:checked) .field-password1, +form:has(#id_usable_password input[value="false"]:checked) .field-password2 { + display: none; +} + +/* Select appropriate submit button */ +form:has(#id_usable_password input[value="true"]:checked) input[type="submit"].unset-password { + display: none; +} + +form:has(#id_usable_password input[value="false"]:checked) input[type="submit"].set-password { + display: none; +} diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/vendor/select2/LICENSE-SELECT2.md b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/vendor/select2/LICENSE-SELECT2.md new file mode 100644 index 0000000000..8cb8a2b12c --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/vendor/select2/LICENSE-SELECT2.md @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2012-2017 Kevin Brown, Igor Vaynberg, and Select2 contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/vendor/select2/select2.css b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/vendor/select2/select2.css new file mode 100644 index 0000000000..750b3207ae --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/vendor/select2/select2.css @@ -0,0 +1,481 @@ +.select2-container { + box-sizing: border-box; + display: inline-block; + margin: 0; + position: relative; + vertical-align: middle; } + .select2-container .select2-selection--single { + box-sizing: border-box; + cursor: pointer; + display: block; + height: 28px; + user-select: none; + -webkit-user-select: none; } + .select2-container .select2-selection--single .select2-selection__rendered { + display: block; + padding-left: 8px; + padding-right: 20px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; } + .select2-container .select2-selection--single .select2-selection__clear { + position: relative; } + .select2-container[dir="rtl"] .select2-selection--single .select2-selection__rendered { + padding-right: 8px; + padding-left: 20px; } + .select2-container .select2-selection--multiple { + box-sizing: border-box; + cursor: pointer; + display: block; + min-height: 32px; + user-select: none; + -webkit-user-select: none; } + .select2-container .select2-selection--multiple .select2-selection__rendered { + display: inline-block; + overflow: hidden; + padding-left: 8px; + text-overflow: ellipsis; + white-space: nowrap; } + .select2-container .select2-search--inline { + float: left; } + .select2-container .select2-search--inline .select2-search__field { + box-sizing: border-box; + border: none; + font-size: 100%; + margin-top: 5px; + padding: 0; } + .select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button { + -webkit-appearance: none; } + +.select2-dropdown { + background-color: white; + border: 1px solid #aaa; + border-radius: 4px; + box-sizing: border-box; + display: block; + position: absolute; + left: -100000px; + width: 100%; + z-index: 1051; } + +.select2-results { + display: block; } + +.select2-results__options { + list-style: none; + margin: 0; + padding: 0; } + +.select2-results__option { + padding: 6px; + user-select: none; + -webkit-user-select: none; } + .select2-results__option[aria-selected] { + cursor: pointer; } + +.select2-container--open .select2-dropdown { + left: 0; } + +.select2-container--open .select2-dropdown--above { + border-bottom: none; + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; } + +.select2-container--open .select2-dropdown--below { + border-top: none; + border-top-left-radius: 0; + border-top-right-radius: 0; } + +.select2-search--dropdown { + display: block; + padding: 4px; } + .select2-search--dropdown .select2-search__field { + padding: 4px; + width: 100%; + box-sizing: border-box; } + .select2-search--dropdown .select2-search__field::-webkit-search-cancel-button { + -webkit-appearance: none; } + .select2-search--dropdown.select2-search--hide { + display: none; } + +.select2-close-mask { + border: 0; + margin: 0; + padding: 0; + display: block; + position: fixed; + left: 0; + top: 0; + min-height: 100%; + min-width: 100%; + height: auto; + width: auto; + opacity: 0; + z-index: 99; + background-color: #fff; + filter: alpha(opacity=0); } + +.select2-hidden-accessible { + border: 0 !important; + clip: rect(0 0 0 0) !important; + -webkit-clip-path: inset(50%) !important; + clip-path: inset(50%) !important; + height: 1px !important; + overflow: hidden !important; + padding: 0 !important; + position: absolute !important; + width: 1px !important; + white-space: nowrap !important; } + +.select2-container--default .select2-selection--single { + background-color: #fff; + border: 1px solid #aaa; + border-radius: 4px; } + .select2-container--default .select2-selection--single .select2-selection__rendered { + color: #444; + line-height: 28px; } + .select2-container--default .select2-selection--single .select2-selection__clear { + cursor: pointer; + float: right; + font-weight: bold; } + .select2-container--default .select2-selection--single .select2-selection__placeholder { + color: #999; } + .select2-container--default .select2-selection--single .select2-selection__arrow { + height: 26px; + position: absolute; + top: 1px; + right: 1px; + width: 20px; } + .select2-container--default .select2-selection--single .select2-selection__arrow b { + border-color: #888 transparent transparent transparent; + border-style: solid; + border-width: 5px 4px 0 4px; + height: 0; + left: 50%; + margin-left: -4px; + margin-top: -2px; + position: absolute; + top: 50%; + width: 0; } + +.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__clear { + float: left; } + +.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__arrow { + left: 1px; + right: auto; } + +.select2-container--default.select2-container--disabled .select2-selection--single { + background-color: #eee; + cursor: default; } + .select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear { + display: none; } + +.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b { + border-color: transparent transparent #888 transparent; + border-width: 0 4px 5px 4px; } + +.select2-container--default .select2-selection--multiple { + background-color: white; + border: 1px solid #aaa; + border-radius: 4px; + cursor: text; } + .select2-container--default .select2-selection--multiple .select2-selection__rendered { + box-sizing: border-box; + list-style: none; + margin: 0; + padding: 0 5px; + width: 100%; } + .select2-container--default .select2-selection--multiple .select2-selection__rendered li { + list-style: none; } + .select2-container--default .select2-selection--multiple .select2-selection__clear { + cursor: pointer; + float: right; + font-weight: bold; + margin-top: 5px; + margin-right: 10px; + padding: 1px; } + .select2-container--default .select2-selection--multiple .select2-selection__choice { + background-color: #e4e4e4; + border: 1px solid #aaa; + border-radius: 4px; + cursor: default; + float: left; + margin-right: 5px; + margin-top: 5px; + padding: 0 5px; } + .select2-container--default .select2-selection--multiple .select2-selection__choice__remove { + color: #999; + cursor: pointer; + display: inline-block; + font-weight: bold; + margin-right: 2px; } + .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover { + color: #333; } + +.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice, .select2-container--default[dir="rtl"] .select2-selection--multiple .select2-search--inline { + float: right; } + +.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice { + margin-left: 5px; + margin-right: auto; } + +.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove { + margin-left: 2px; + margin-right: auto; } + +.select2-container--default.select2-container--focus .select2-selection--multiple { + border: solid black 1px; + outline: 0; } + +.select2-container--default.select2-container--disabled .select2-selection--multiple { + background-color: #eee; + cursor: default; } + +.select2-container--default.select2-container--disabled .select2-selection__choice__remove { + display: none; } + +.select2-container--default.select2-container--open.select2-container--above .select2-selection--single, .select2-container--default.select2-container--open.select2-container--above .select2-selection--multiple { + border-top-left-radius: 0; + border-top-right-radius: 0; } + +.select2-container--default.select2-container--open.select2-container--below .select2-selection--single, .select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple { + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; } + +.select2-container--default .select2-search--dropdown .select2-search__field { + border: 1px solid #aaa; } + +.select2-container--default .select2-search--inline .select2-search__field { + background: transparent; + border: none; + outline: 0; + box-shadow: none; + -webkit-appearance: textfield; } + +.select2-container--default .select2-results > .select2-results__options { + max-height: 200px; + overflow-y: auto; } + +.select2-container--default .select2-results__option[role=group] { + padding: 0; } + +.select2-container--default .select2-results__option[aria-disabled=true] { + color: #999; } + +.select2-container--default .select2-results__option[aria-selected=true] { + background-color: #ddd; } + +.select2-container--default .select2-results__option .select2-results__option { + padding-left: 1em; } + .select2-container--default .select2-results__option .select2-results__option .select2-results__group { + padding-left: 0; } + .select2-container--default .select2-results__option .select2-results__option .select2-results__option { + margin-left: -1em; + padding-left: 2em; } + .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option { + margin-left: -2em; + padding-left: 3em; } + .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option { + margin-left: -3em; + padding-left: 4em; } + .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option { + margin-left: -4em; + padding-left: 5em; } + .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option { + margin-left: -5em; + padding-left: 6em; } + +.select2-container--default .select2-results__option--highlighted[aria-selected] { + background-color: #5897fb; + color: white; } + +.select2-container--default .select2-results__group { + cursor: default; + display: block; + padding: 6px; } + +.select2-container--classic .select2-selection--single { + background-color: #f7f7f7; + border: 1px solid #aaa; + border-radius: 4px; + outline: 0; + background-image: -webkit-linear-gradient(top, white 50%, #eeeeee 100%); + background-image: -o-linear-gradient(top, white 50%, #eeeeee 100%); + background-image: linear-gradient(to bottom, white 50%, #eeeeee 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0); } + .select2-container--classic .select2-selection--single:focus { + border: 1px solid #5897fb; } + .select2-container--classic .select2-selection--single .select2-selection__rendered { + color: #444; + line-height: 28px; } + .select2-container--classic .select2-selection--single .select2-selection__clear { + cursor: pointer; + float: right; + font-weight: bold; + margin-right: 10px; } + .select2-container--classic .select2-selection--single .select2-selection__placeholder { + color: #999; } + .select2-container--classic .select2-selection--single .select2-selection__arrow { + background-color: #ddd; + border: none; + border-left: 1px solid #aaa; + border-top-right-radius: 4px; + border-bottom-right-radius: 4px; + height: 26px; + position: absolute; + top: 1px; + right: 1px; + width: 20px; + background-image: -webkit-linear-gradient(top, #eeeeee 50%, #cccccc 100%); + background-image: -o-linear-gradient(top, #eeeeee 50%, #cccccc 100%); + background-image: linear-gradient(to bottom, #eeeeee 50%, #cccccc 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFCCCCCC', GradientType=0); } + .select2-container--classic .select2-selection--single .select2-selection__arrow b { + border-color: #888 transparent transparent transparent; + border-style: solid; + border-width: 5px 4px 0 4px; + height: 0; + left: 50%; + margin-left: -4px; + margin-top: -2px; + position: absolute; + top: 50%; + width: 0; } + +.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__clear { + float: left; } + +.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__arrow { + border: none; + border-right: 1px solid #aaa; + border-radius: 0; + border-top-left-radius: 4px; + border-bottom-left-radius: 4px; + left: 1px; + right: auto; } + +.select2-container--classic.select2-container--open .select2-selection--single { + border: 1px solid #5897fb; } + .select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow { + background: transparent; + border: none; } + .select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow b { + border-color: transparent transparent #888 transparent; + border-width: 0 4px 5px 4px; } + +.select2-container--classic.select2-container--open.select2-container--above .select2-selection--single { + border-top: none; + border-top-left-radius: 0; + border-top-right-radius: 0; + background-image: -webkit-linear-gradient(top, white 0%, #eeeeee 50%); + background-image: -o-linear-gradient(top, white 0%, #eeeeee 50%); + background-image: linear-gradient(to bottom, white 0%, #eeeeee 50%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0); } + +.select2-container--classic.select2-container--open.select2-container--below .select2-selection--single { + border-bottom: none; + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; + background-image: -webkit-linear-gradient(top, #eeeeee 50%, white 100%); + background-image: -o-linear-gradient(top, #eeeeee 50%, white 100%); + background-image: linear-gradient(to bottom, #eeeeee 50%, white 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFFFFFFF', GradientType=0); } + +.select2-container--classic .select2-selection--multiple { + background-color: white; + border: 1px solid #aaa; + border-radius: 4px; + cursor: text; + outline: 0; } + .select2-container--classic .select2-selection--multiple:focus { + border: 1px solid #5897fb; } + .select2-container--classic .select2-selection--multiple .select2-selection__rendered { + list-style: none; + margin: 0; + padding: 0 5px; } + .select2-container--classic .select2-selection--multiple .select2-selection__clear { + display: none; } + .select2-container--classic .select2-selection--multiple .select2-selection__choice { + background-color: #e4e4e4; + border: 1px solid #aaa; + border-radius: 4px; + cursor: default; + float: left; + margin-right: 5px; + margin-top: 5px; + padding: 0 5px; } + .select2-container--classic .select2-selection--multiple .select2-selection__choice__remove { + color: #888; + cursor: pointer; + display: inline-block; + font-weight: bold; + margin-right: 2px; } + .select2-container--classic .select2-selection--multiple .select2-selection__choice__remove:hover { + color: #555; } + +.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice { + float: right; + margin-left: 5px; + margin-right: auto; } + +.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove { + margin-left: 2px; + margin-right: auto; } + +.select2-container--classic.select2-container--open .select2-selection--multiple { + border: 1px solid #5897fb; } + +.select2-container--classic.select2-container--open.select2-container--above .select2-selection--multiple { + border-top: none; + border-top-left-radius: 0; + border-top-right-radius: 0; } + +.select2-container--classic.select2-container--open.select2-container--below .select2-selection--multiple { + border-bottom: none; + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; } + +.select2-container--classic .select2-search--dropdown .select2-search__field { + border: 1px solid #aaa; + outline: 0; } + +.select2-container--classic .select2-search--inline .select2-search__field { + outline: 0; + box-shadow: none; } + +.select2-container--classic .select2-dropdown { + background-color: white; + border: 1px solid transparent; } + +.select2-container--classic .select2-dropdown--above { + border-bottom: none; } + +.select2-container--classic .select2-dropdown--below { + border-top: none; } + +.select2-container--classic .select2-results > .select2-results__options { + max-height: 200px; + overflow-y: auto; } + +.select2-container--classic .select2-results__option[role=group] { + padding: 0; } + +.select2-container--classic .select2-results__option[aria-disabled=true] { + color: grey; } + +.select2-container--classic .select2-results__option--highlighted[aria-selected] { + background-color: #3875d7; + color: white; } + +.select2-container--classic .select2-results__group { + cursor: default; + display: block; + padding: 6px; } + +.select2-container--classic.select2-container--open .select2-dropdown { + border-color: #5897fb; } diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/vendor/select2/select2.min.css b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/vendor/select2/select2.min.css new file mode 100644 index 0000000000..7c18ad59df --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/vendor/select2/select2.min.css @@ -0,0 +1 @@ +.select2-container{box-sizing:border-box;display:inline-block;margin:0;position:relative;vertical-align:middle}.select2-container .select2-selection--single{box-sizing:border-box;cursor:pointer;display:block;height:28px;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--single .select2-selection__rendered{display:block;padding-left:8px;padding-right:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select2-container .select2-selection--single .select2-selection__clear{position:relative}.select2-container[dir="rtl"] .select2-selection--single .select2-selection__rendered{padding-right:8px;padding-left:20px}.select2-container .select2-selection--multiple{box-sizing:border-box;cursor:pointer;display:block;min-height:32px;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--multiple .select2-selection__rendered{display:inline-block;overflow:hidden;padding-left:8px;text-overflow:ellipsis;white-space:nowrap}.select2-container .select2-search--inline{float:left}.select2-container .select2-search--inline .select2-search__field{box-sizing:border-box;border:none;font-size:100%;margin-top:5px;padding:0}.select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-dropdown{background-color:white;border:1px solid #aaa;border-radius:4px;box-sizing:border-box;display:block;position:absolute;left:-100000px;width:100%;z-index:1051}.select2-results{display:block}.select2-results__options{list-style:none;margin:0;padding:0}.select2-results__option{padding:6px;user-select:none;-webkit-user-select:none}.select2-results__option[aria-selected]{cursor:pointer}.select2-container--open .select2-dropdown{left:0}.select2-container--open .select2-dropdown--above{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--open .select2-dropdown--below{border-top:none;border-top-left-radius:0;border-top-right-radius:0}.select2-search--dropdown{display:block;padding:4px}.select2-search--dropdown .select2-search__field{padding:4px;width:100%;box-sizing:border-box}.select2-search--dropdown .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-search--dropdown.select2-search--hide{display:none}.select2-close-mask{border:0;margin:0;padding:0;display:block;position:fixed;left:0;top:0;min-height:100%;min-width:100%;height:auto;width:auto;opacity:0;z-index:99;background-color:#fff;filter:alpha(opacity=0)}.select2-hidden-accessible{border:0 !important;clip:rect(0 0 0 0) !important;-webkit-clip-path:inset(50%) !important;clip-path:inset(50%) !important;height:1px !important;overflow:hidden !important;padding:0 !important;position:absolute !important;width:1px !important;white-space:nowrap !important}.select2-container--default .select2-selection--single{background-color:#fff;border:1px solid #aaa;border-radius:4px}.select2-container--default .select2-selection--single .select2-selection__rendered{color:#444;line-height:28px}.select2-container--default .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:bold}.select2-container--default .select2-selection--single .select2-selection__placeholder{color:#999}.select2-container--default .select2-selection--single .select2-selection__arrow{height:26px;position:absolute;top:1px;right:1px;width:20px}.select2-container--default .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent transparent;border-style:solid;border-width:5px 4px 0 4px;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0}.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__clear{float:left}.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__arrow{left:1px;right:auto}.select2-container--default.select2-container--disabled .select2-selection--single{background-color:#eee;cursor:default}.select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear{display:none}.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888 transparent;border-width:0 4px 5px 4px}.select2-container--default .select2-selection--multiple{background-color:white;border:1px solid #aaa;border-radius:4px;cursor:text}.select2-container--default .select2-selection--multiple .select2-selection__rendered{box-sizing:border-box;list-style:none;margin:0;padding:0 5px;width:100%}.select2-container--default .select2-selection--multiple .select2-selection__rendered li{list-style:none}.select2-container--default .select2-selection--multiple .select2-selection__clear{cursor:pointer;float:right;font-weight:bold;margin-top:5px;margin-right:10px;padding:1px}.select2-container--default .select2-selection--multiple .select2-selection__choice{background-color:#e4e4e4;border:1px solid #aaa;border-radius:4px;cursor:default;float:left;margin-right:5px;margin-top:5px;padding:0 5px}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove{color:#999;cursor:pointer;display:inline-block;font-weight:bold;margin-right:2px}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover{color:#333}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice,.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-search--inline{float:right}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice{margin-left:5px;margin-right:auto}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove{margin-left:2px;margin-right:auto}.select2-container--default.select2-container--focus .select2-selection--multiple{border:solid black 1px;outline:0}.select2-container--default.select2-container--disabled .select2-selection--multiple{background-color:#eee;cursor:default}.select2-container--default.select2-container--disabled .select2-selection__choice__remove{display:none}.select2-container--default.select2-container--open.select2-container--above .select2-selection--single,.select2-container--default.select2-container--open.select2-container--above .select2-selection--multiple{border-top-left-radius:0;border-top-right-radius:0}.select2-container--default.select2-container--open.select2-container--below .select2-selection--single,.select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple{border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--default .select2-search--dropdown .select2-search__field{border:1px solid #aaa}.select2-container--default .select2-search--inline .select2-search__field{background:transparent;border:none;outline:0;box-shadow:none;-webkit-appearance:textfield}.select2-container--default .select2-results>.select2-results__options{max-height:200px;overflow-y:auto}.select2-container--default .select2-results__option[role=group]{padding:0}.select2-container--default .select2-results__option[aria-disabled=true]{color:#999}.select2-container--default .select2-results__option[aria-selected=true]{background-color:#ddd}.select2-container--default .select2-results__option .select2-results__option{padding-left:1em}.select2-container--default .select2-results__option .select2-results__option .select2-results__group{padding-left:0}.select2-container--default .select2-results__option .select2-results__option .select2-results__option{margin-left:-1em;padding-left:2em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-2em;padding-left:3em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-3em;padding-left:4em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-4em;padding-left:5em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-5em;padding-left:6em}.select2-container--default .select2-results__option--highlighted[aria-selected]{background-color:#5897fb;color:white}.select2-container--default .select2-results__group{cursor:default;display:block;padding:6px}.select2-container--classic .select2-selection--single{background-color:#f7f7f7;border:1px solid #aaa;border-radius:4px;outline:0;background-image:-webkit-linear-gradient(top, #fff 50%, #eee 100%);background-image:-o-linear-gradient(top, #fff 50%, #eee 100%);background-image:linear-gradient(to bottom, #fff 50%, #eee 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0)}.select2-container--classic .select2-selection--single:focus{border:1px solid #5897fb}.select2-container--classic .select2-selection--single .select2-selection__rendered{color:#444;line-height:28px}.select2-container--classic .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:bold;margin-right:10px}.select2-container--classic .select2-selection--single .select2-selection__placeholder{color:#999}.select2-container--classic .select2-selection--single .select2-selection__arrow{background-color:#ddd;border:none;border-left:1px solid #aaa;border-top-right-radius:4px;border-bottom-right-radius:4px;height:26px;position:absolute;top:1px;right:1px;width:20px;background-image:-webkit-linear-gradient(top, #eee 50%, #ccc 100%);background-image:-o-linear-gradient(top, #eee 50%, #ccc 100%);background-image:linear-gradient(to bottom, #eee 50%, #ccc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFCCCCCC', GradientType=0)}.select2-container--classic .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent transparent;border-style:solid;border-width:5px 4px 0 4px;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0}.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__clear{float:left}.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__arrow{border:none;border-right:1px solid #aaa;border-radius:0;border-top-left-radius:4px;border-bottom-left-radius:4px;left:1px;right:auto}.select2-container--classic.select2-container--open .select2-selection--single{border:1px solid #5897fb}.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow{background:transparent;border:none}.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888 transparent;border-width:0 4px 5px 4px}.select2-container--classic.select2-container--open.select2-container--above .select2-selection--single{border-top:none;border-top-left-radius:0;border-top-right-radius:0;background-image:-webkit-linear-gradient(top, #fff 0%, #eee 50%);background-image:-o-linear-gradient(top, #fff 0%, #eee 50%);background-image:linear-gradient(to bottom, #fff 0%, #eee 50%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0)}.select2-container--classic.select2-container--open.select2-container--below .select2-selection--single{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0;background-image:-webkit-linear-gradient(top, #eee 50%, #fff 100%);background-image:-o-linear-gradient(top, #eee 50%, #fff 100%);background-image:linear-gradient(to bottom, #eee 50%, #fff 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFFFFFFF', GradientType=0)}.select2-container--classic .select2-selection--multiple{background-color:white;border:1px solid #aaa;border-radius:4px;cursor:text;outline:0}.select2-container--classic .select2-selection--multiple:focus{border:1px solid #5897fb}.select2-container--classic .select2-selection--multiple .select2-selection__rendered{list-style:none;margin:0;padding:0 5px}.select2-container--classic .select2-selection--multiple .select2-selection__clear{display:none}.select2-container--classic .select2-selection--multiple .select2-selection__choice{background-color:#e4e4e4;border:1px solid #aaa;border-radius:4px;cursor:default;float:left;margin-right:5px;margin-top:5px;padding:0 5px}.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove{color:#888;cursor:pointer;display:inline-block;font-weight:bold;margin-right:2px}.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove:hover{color:#555}.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice{float:right;margin-left:5px;margin-right:auto}.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove{margin-left:2px;margin-right:auto}.select2-container--classic.select2-container--open .select2-selection--multiple{border:1px solid #5897fb}.select2-container--classic.select2-container--open.select2-container--above .select2-selection--multiple{border-top:none;border-top-left-radius:0;border-top-right-radius:0}.select2-container--classic.select2-container--open.select2-container--below .select2-selection--multiple{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--classic .select2-search--dropdown .select2-search__field{border:1px solid #aaa;outline:0}.select2-container--classic .select2-search--inline .select2-search__field{outline:0;box-shadow:none}.select2-container--classic .select2-dropdown{background-color:#fff;border:1px solid transparent}.select2-container--classic .select2-dropdown--above{border-bottom:none}.select2-container--classic .select2-dropdown--below{border-top:none}.select2-container--classic .select2-results>.select2-results__options{max-height:200px;overflow-y:auto}.select2-container--classic .select2-results__option[role=group]{padding:0}.select2-container--classic .select2-results__option[aria-disabled=true]{color:grey}.select2-container--classic .select2-results__option--highlighted[aria-selected]{background-color:#3875d7;color:#fff}.select2-container--classic .select2-results__group{cursor:default;display:block;padding:6px}.select2-container--classic.select2-container--open .select2-dropdown{border-color:#5897fb} diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/widgets.css b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/widgets.css new file mode 100644 index 0000000000..cc64811a2b --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/widgets.css @@ -0,0 +1,593 @@ +/* SELECTOR (FILTER INTERFACE) */ + +.selector { + display: flex; + flex-grow: 1; + gap: 0 10px; +} + +.selector select { + height: 17.2em; + flex: 1 0 auto; + overflow: scroll; + width: 100%; +} + +.selector-available, .selector-chosen { + text-align: center; + display: flex; + flex-direction: column; + flex: 1 1; +} + +.selector-available h2, .selector-chosen h2 { + border: 1px solid var(--border-color); + border-radius: 4px 4px 0 0; +} + +.selector-chosen .list-footer-display { + border: 1px solid var(--border-color); + border-top: none; + border-radius: 0 0 4px 4px; + margin: 0 0 10px; + padding: 8px; + text-align: center; + background: var(--primary); + color: var(--header-link-color); + cursor: pointer; +} +.selector-chosen .list-footer-display__clear { + color: var(--breadcrumbs-fg); +} + +.selector-chosen h2 { + background: var(--secondary); + color: var(--header-link-color); +} + +.selector .selector-available h2 { + background: var(--darkened-bg); + color: var(--body-quiet-color); +} + +.selector .selector-filter { + border: 1px solid var(--border-color); + border-width: 0 1px; + padding: 8px; + color: var(--body-quiet-color); + font-size: 0.625rem; + margin: 0; + text-align: left; + display: flex; +} + +.selector .selector-filter label, +.inline-group .aligned .selector .selector-filter label { + float: left; + margin: 7px 0 0; + width: 18px; + height: 18px; + padding: 0; + overflow: hidden; + line-height: 1; + min-width: auto; +} + +.selector-filter input { + flex-grow: 1; +} + +.selector .selector-available input, +.selector .selector-chosen input { + margin-left: 8px; +} + +.selector ul.selector-chooser { + align-self: center; + width: 22px; + background-color: var(--selected-bg); + border-radius: 10px; + margin: 0; + padding: 0; + transform: translateY(-17px); +} + +.selector-chooser li { + margin: 0; + padding: 3px; + list-style-type: none; +} + +.selector select { + padding: 0 10px; + margin: 0 0 10px; + border-radius: 0 0 4px 4px; +} +.selector .selector-chosen--with-filtered select { + margin: 0; + border-radius: 0; + height: 14em; +} + +.selector .selector-chosen:not(.selector-chosen--with-filtered) .list-footer-display { + display: none; +} + +.selector-add, .selector-remove { + width: 16px; + height: 16px; + display: block; + text-indent: -3000px; + overflow: hidden; + cursor: default; + opacity: 0.55; +} + +.active.selector-add, .active.selector-remove { + opacity: 1; +} + +.active.selector-add:hover, .active.selector-remove:hover { + cursor: pointer; +} + +.selector-add { + background: url(../img/selector-icons.svg) 0 -96px no-repeat; +} + +.active.selector-add:focus, .active.selector-add:hover { + background-position: 0 -112px; +} + +.selector-remove { + background: url(../img/selector-icons.svg) 0 -64px no-repeat; +} + +.active.selector-remove:focus, .active.selector-remove:hover { + background-position: 0 -80px; +} + +a.selector-chooseall, a.selector-clearall { + display: inline-block; + height: 16px; + text-align: left; + margin: 0 auto; + overflow: hidden; + font-weight: bold; + line-height: 16px; + color: var(--body-quiet-color); + text-decoration: none; + opacity: 0.55; +} + +a.active.selector-chooseall:focus, a.active.selector-clearall:focus, +a.active.selector-chooseall:hover, a.active.selector-clearall:hover { + color: var(--link-fg); +} + +a.active.selector-chooseall, a.active.selector-clearall { + opacity: 1; +} + +a.active.selector-chooseall:hover, a.active.selector-clearall:hover { + cursor: pointer; +} + +a.selector-chooseall { + padding: 0 18px 0 0; + background: url(../img/selector-icons.svg) right -160px no-repeat; + cursor: default; +} + +a.active.selector-chooseall:focus, a.active.selector-chooseall:hover { + background-position: 100% -176px; +} + +a.selector-clearall { + padding: 0 0 0 18px; + background: url(../img/selector-icons.svg) 0 -128px no-repeat; + cursor: default; +} + +a.active.selector-clearall:focus, a.active.selector-clearall:hover { + background-position: 0 -144px; +} + +/* STACKED SELECTORS */ + +.stacked { + float: left; + width: 490px; + display: block; +} + +.stacked select { + width: 480px; + height: 10.1em; +} + +.stacked .selector-available, .stacked .selector-chosen { + width: 480px; +} + +.stacked .selector-available { + margin-bottom: 0; +} + +.stacked .selector-available input { + width: 422px; +} + +.stacked ul.selector-chooser { + height: 22px; + width: 50px; + margin: 0 0 10px 40%; + background-color: #eee; + border-radius: 10px; + transform: none; +} + +.stacked .selector-chooser li { + float: left; + padding: 3px 3px 3px 5px; +} + +.stacked .selector-chooseall, .stacked .selector-clearall { + display: none; +} + +.stacked .selector-add { + background: url(../img/selector-icons.svg) 0 -32px no-repeat; + cursor: default; +} + +.stacked .active.selector-add { + background-position: 0 -32px; + cursor: pointer; +} + +.stacked .active.selector-add:focus, .stacked .active.selector-add:hover { + background-position: 0 -48px; + cursor: pointer; +} + +.stacked .selector-remove { + background: url(../img/selector-icons.svg) 0 0 no-repeat; + cursor: default; +} + +.stacked .active.selector-remove { + background-position: 0 0px; + cursor: pointer; +} + +.stacked .active.selector-remove:focus, .stacked .active.selector-remove:hover { + background-position: 0 -16px; + cursor: pointer; +} + +.selector .help-icon { + background: url(../img/icon-unknown.svg) 0 0 no-repeat; + display: inline-block; + vertical-align: middle; + margin: -2px 0 0 2px; + width: 13px; + height: 13px; +} + +.selector .selector-chosen .help-icon { + background: url(../img/icon-unknown-alt.svg) 0 0 no-repeat; +} + +.selector .search-label-icon { + background: url(../img/search.svg) 0 0 no-repeat; + display: inline-block; + height: 1.125rem; + width: 1.125rem; +} + +/* DATE AND TIME */ + +p.datetime { + line-height: 20px; + margin: 0; + padding: 0; + color: var(--body-quiet-color); + font-weight: bold; +} + +.datetime span { + white-space: nowrap; + font-weight: normal; + font-size: 0.6875rem; + color: var(--body-quiet-color); +} + +.datetime input, .form-row .datetime input.vDateField, .form-row .datetime input.vTimeField { + margin-left: 5px; + margin-bottom: 4px; +} + +table p.datetime { + font-size: 0.6875rem; + margin-left: 0; + padding-left: 0; +} + +.datetimeshortcuts .clock-icon, .datetimeshortcuts .date-icon { + position: relative; + display: inline-block; + vertical-align: middle; + height: 16px; + width: 16px; + overflow: hidden; +} + +.datetimeshortcuts .clock-icon { + background: url(../img/icon-clock.svg) 0 0 no-repeat; +} + +.datetimeshortcuts a:focus .clock-icon, +.datetimeshortcuts a:hover .clock-icon { + background-position: 0 -16px; +} + +.datetimeshortcuts .date-icon { + background: url(../img/icon-calendar.svg) 0 0 no-repeat; + top: -1px; +} + +.datetimeshortcuts a:focus .date-icon, +.datetimeshortcuts a:hover .date-icon { + background-position: 0 -16px; +} + +.timezonewarning { + font-size: 0.6875rem; + color: var(--body-quiet-color); +} + +/* URL */ + +p.url { + line-height: 20px; + margin: 0; + padding: 0; + color: var(--body-quiet-color); + font-size: 0.6875rem; + font-weight: bold; +} + +.url a { + font-weight: normal; +} + +/* FILE UPLOADS */ + +p.file-upload { + line-height: 20px; + margin: 0; + padding: 0; + color: var(--body-quiet-color); + font-size: 0.6875rem; + font-weight: bold; +} + +.file-upload a { + font-weight: normal; +} + +.file-upload .deletelink { + margin-left: 5px; +} + +span.clearable-file-input label { + color: var(--body-fg); + font-size: 0.6875rem; + display: inline; + float: none; +} + +/* CALENDARS & CLOCKS */ + +.calendarbox, .clockbox { + margin: 5px auto; + font-size: 0.75rem; + width: 19em; + text-align: center; + background: var(--body-bg); + color: var(--body-fg); + border: 1px solid var(--hairline-color); + border-radius: 4px; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15); + overflow: hidden; + position: relative; +} + +.clockbox { + width: auto; +} + +.calendar { + margin: 0; + padding: 0; +} + +.calendar table { + margin: 0; + padding: 0; + border-collapse: collapse; + background: white; + width: 100%; +} + +.calendar caption, .calendarbox h2 { + margin: 0; + text-align: center; + border-top: none; + font-weight: 700; + font-size: 0.75rem; + color: #333; + background: var(--accent); +} + +.calendar th { + padding: 8px 5px; + background: var(--darkened-bg); + border-bottom: 1px solid var(--border-color); + font-weight: 400; + font-size: 0.75rem; + text-align: center; + color: var(--body-quiet-color); +} + +.calendar td { + font-weight: 400; + font-size: 0.75rem; + text-align: center; + padding: 0; + border-top: 1px solid var(--hairline-color); + border-bottom: none; +} + +.calendar td.selected a { + background: var(--secondary); + color: var(--button-fg); +} + +.calendar td.nonday { + background: var(--darkened-bg); +} + +.calendar td.today a { + font-weight: 700; +} + +.calendar td a, .timelist a { + display: block; + font-weight: 400; + padding: 6px; + text-decoration: none; + color: var(--body-quiet-color); +} + +.calendar td a:focus, .timelist a:focus, +.calendar td a:hover, .timelist a:hover { + background: var(--primary); + color: white; +} + +.calendar td a:active, .timelist a:active { + background: var(--header-bg); + color: white; +} + +.calendarnav { + font-size: 0.625rem; + text-align: center; + color: #ccc; + margin: 0; + padding: 1px 3px; +} + +.calendarnav a:link, #calendarnav a:visited, +#calendarnav a:focus, #calendarnav a:hover { + color: var(--body-quiet-color); +} + +.calendar-shortcuts { + background: var(--body-bg); + color: var(--body-quiet-color); + font-size: 0.6875rem; + line-height: 0.6875rem; + border-top: 1px solid var(--hairline-color); + padding: 8px 0; +} + +.calendarbox .calendarnav-previous, .calendarbox .calendarnav-next { + display: block; + position: absolute; + top: 8px; + width: 15px; + height: 15px; + text-indent: -9999px; + padding: 0; +} + +.calendarnav-previous { + left: 10px; + background: url(../img/calendar-icons.svg) 0 0 no-repeat; +} + +.calendarnav-next { + right: 10px; + background: url(../img/calendar-icons.svg) 0 -15px no-repeat; +} + +.calendar-cancel { + margin: 0; + padding: 4px 0; + font-size: 0.75rem; + background: var(--close-button-bg); + border-top: 1px solid var(--border-color); + color: var(--button-fg); +} + +.calendar-cancel:focus, .calendar-cancel:hover { + background: var(--close-button-hover-bg); +} + +.calendar-cancel a { + color: var(--button-fg); + display: block; +} + +ul.timelist, .timelist li { + list-style-type: none; + margin: 0; + padding: 0; +} + +.timelist a { + padding: 2px; +} + +/* EDIT INLINE */ + +.inline-deletelink { + float: right; + text-indent: -9999px; + background: url(../img/inline-delete.svg) 0 0 no-repeat; + width: 16px; + height: 16px; + border: 0px none; +} + +.inline-deletelink:focus, .inline-deletelink:hover { + cursor: pointer; +} + +/* RELATED WIDGET WRAPPER */ +.related-widget-wrapper { + display: flex; + gap: 0 10px; + flex-grow: 1; + flex-wrap: wrap; + margin-bottom: 5px; +} + +.related-widget-wrapper-link { + opacity: .6; + filter: grayscale(1); +} + +.related-widget-wrapper-link:link { + opacity: 1; + filter: grayscale(0); +} + +/* GIS MAPS */ +.dj_map { + width: 600px; + height: 400px; +} diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/LICENSE b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/LICENSE new file mode 100644 index 0000000000..a4faaa1dfa --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/LICENSE @@ -0,0 +1,20 @@ +The MIT License (MIT) + +Copyright (c) 2014 Code Charm Ltd + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/README.txt b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/README.txt new file mode 100644 index 0000000000..bf81f35bee --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/README.txt @@ -0,0 +1,7 @@ +All icons are taken from Font Awesome (https://fontawesome.com/) project. +The Font Awesome font is licensed under the SIL OFL 1.1: +- https://scripts.sil.org/OFL + +SVG icons source: https://github.com/encharm/Font-Awesome-SVG-PNG +Font-Awesome-SVG-PNG is licensed under the MIT license (see file license +in current folder). diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/calendar-icons.svg b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/calendar-icons.svg new file mode 100644 index 0000000000..04c02741ad --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/calendar-icons.svg @@ -0,0 +1,63 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + width="15" + height="30" + viewBox="0 0 1792 3584" + version="1.1" + id="svg5" + sodipodi:docname="calendar-icons.svg" + inkscape:version="1.3.2 (091e20ef0f, 2023-11-25, custom)" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg"> + <sodipodi:namedview + id="namedview5" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:showpageshadow="2" + inkscape:pageopacity="0.0" + inkscape:pagecheckerboard="0" + inkscape:deskcolor="#d1d1d1" + showgrid="false" + inkscape:zoom="13.3" + inkscape:cx="15.526316" + inkscape:cy="20.977444" + inkscape:window-width="1920" + inkscape:window-height="1011" + inkscape:window-x="0" + inkscape:window-y="0" + inkscape:window-maximized="1" + inkscape:current-layer="svg5" /> + <defs + id="defs2"> + <g + id="previous"> + <path + d="m 1037,1395 102,-102 q 19,-19 19,-45 0,-26 -19,-45 L 832,896 1139,589 q 19,-19 19,-45 0,-26 -19,-45 L 1037,397 q -19,-19 -45,-19 -26,0 -45,19 L 493,851 q -19,19 -19,45 0,26 19,45 l 454,454 q 19,19 45,19 26,0 45,-19 z m 627,-499 q 0,209 -103,385.5 Q 1458,1458 1281.5,1561 1105,1664 896,1664 687,1664 510.5,1561 334,1458 231,1281.5 128,1105 128,896 128,687 231,510.5 334,334 510.5,231 687,128 896,128 1105,128 1281.5,231 1458,334 1561,510.5 1664,687 1664,896 Z" + id="path1" /> + </g> + <g + id="next"> + <path + d="m 845,1395 454,-454 q 19,-19 19,-45 0,-26 -19,-45 L 845,397 q -19,-19 -45,-19 -26,0 -45,19 L 653,499 q -19,19 -19,45 0,26 19,45 l 307,307 -307,307 q -19,19 -19,45 0,26 19,45 l 102,102 q 19,19 45,19 26,0 45,-19 z m 819,-499 q 0,209 -103,385.5 Q 1458,1458 1281.5,1561 1105,1664 896,1664 687,1664 510.5,1561 334,1458 231,1281.5 128,1105 128,896 128,687 231,510.5 334,334 510.5,231 687,128 896,128 1105,128 1281.5,231 1458,334 1561,510.5 1664,687 1664,896 Z" + id="path2" /> + </g> + </defs> + <use + xlink:href="#next" + x="0" + y="5376" + fill="#000000" + id="use5" + transform="translate(0,-3584)" /> + <use + xlink:href="#previous" + x="0" + y="0" + fill="#333333" + id="use2" + style="fill:#000000;fill-opacity:1" /> +</svg> diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/gis/move_vertex_off.svg b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/gis/move_vertex_off.svg new file mode 100644 index 0000000000..228854f3b0 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/gis/move_vertex_off.svg @@ -0,0 +1 @@ +<svg width="24" height="22" viewBox="0 0 847 779" xmlns="http://www.w3.org/2000/svg"><g><path fill="#EBECE6" d="M120 1h607c66 0 120 54 120 120v536c0 66-54 120-120 120h-607c-66 0-120-54-120-120v-536c0-66 54-120 120-120z"/><path fill="#9E9E93" d="M120 1h607c66 0 120 54 120 120v536c0 66-54 120-120 120h-607c-66 0-120-54-120-120v-536c0-66 54-120 120-120zm607 25h-607c-26 0-50 11-67 28-17 18-28 41-28 67v536c0 27 11 50 28 68 17 17 41 27 67 27h607c26 0 49-10 67-27 17-18 28-41 28-68v-536c0-26-11-49-28-67-18-17-41-28-67-28z"/><path stroke="#A9A8A4" stroke-width="20" d="M706 295l-68 281"/><path stroke="#E47474" stroke-width="20" d="M316 648l390-353M141 435l175 213"/><path stroke="#C9C9C9" stroke-width="20" d="M319 151l-178 284M706 295l-387-144"/><g fill="#040405"><path d="M319 111c22 0 40 18 40 40s-18 40-40 40-40-18-40-40 18-40 40-40zM141 395c22 0 40 18 40 40s-18 40-40 40c-23 0-41-18-41-40s18-40 41-40zM316 608c22 0 40 18 40 40 0 23-18 41-40 41s-40-18-40-41c0-22 18-40 40-40zM706 254c22 0 40 18 40 41 0 22-18 40-40 40s-40-18-40-40c0-23 18-41 40-41zM638 536c22 0 40 18 40 40s-18 40-40 40-40-18-40-40 18-40 40-40z"/></g></g></svg> \ No newline at end of file diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/gis/move_vertex_on.svg b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/gis/move_vertex_on.svg new file mode 100644 index 0000000000..96b87fdd70 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/gis/move_vertex_on.svg @@ -0,0 +1 @@ +<svg width="24" height="22" viewBox="0 0 847 779" xmlns="http://www.w3.org/2000/svg"><g><path fill="#F1C02A" d="M120 1h607c66 0 120 54 120 120v536c0 66-54 120-120 120h-607c-66 0-120-54-120-120v-536c0-66 54-120 120-120z"/><path fill="#9E9E93" d="M120 1h607c66 0 120 54 120 120v536c0 66-54 120-120 120h-607c-66 0-120-54-120-120v-536c0-66 54-120 120-120zm607 25h-607c-26 0-50 11-67 28-17 18-28 41-28 67v536c0 27 11 50 28 68 17 17 41 27 67 27h607c26 0 49-10 67-27 17-18 28-41 28-68v-536c0-26-11-49-28-67-18-17-41-28-67-28z"/><path stroke="#A9A8A4" stroke-width="20" d="M706 295l-68 281"/><path stroke="#E47474" stroke-width="20" d="M316 648l390-353M141 435l175 213"/><path stroke="#C9A741" stroke-width="20" d="M319 151l-178 284M706 295l-387-144"/><g fill="#040405"><path d="M319 111c22 0 40 18 40 40s-18 40-40 40-40-18-40-40 18-40 40-40zM141 395c22 0 40 18 40 40s-18 40-40 40c-23 0-41-18-41-40s18-40 41-40zM316 608c22 0 40 18 40 40 0 23-18 41-40 41s-40-18-40-41c0-22 18-40 40-40zM706 254c22 0 40 18 40 41 0 22-18 40-40 40s-40-18-40-40c0-23 18-41 40-41zM638 536c22 0 40 18 40 40s-18 40-40 40-40-18-40-40 18-40 40-40z"/></g></g></svg> \ No newline at end of file diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/icon-addlink.svg b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/icon-addlink.svg new file mode 100644 index 0000000000..8d5c6a3a9f --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/icon-addlink.svg @@ -0,0 +1,3 @@ +<svg width="13" height="13" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"> + <path fill="#5fa225" d="M1600 796v192q0 40-28 68t-68 28h-416v416q0 40-28 68t-68 28h-192q-40 0-68-28t-28-68v-416h-416q-40 0-68-28t-28-68v-192q0-40 28-68t68-28h416v-416q0-40 28-68t68-28h192q40 0 68 28t28 68v416h416q40 0 68 28t28 68z"/> +</svg> diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/icon-alert.svg b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/icon-alert.svg new file mode 100644 index 0000000000..e51ea83f5b --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/icon-alert.svg @@ -0,0 +1,3 @@ +<svg width="14" height="14" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"> + <path fill="#efb80b" d="M1024 1375v-190q0-14-9.5-23.5t-22.5-9.5h-192q-13 0-22.5 9.5t-9.5 23.5v190q0 14 9.5 23.5t22.5 9.5h192q13 0 22.5-9.5t9.5-23.5zm-2-374l18-459q0-12-10-19-13-11-24-11h-220q-11 0-24 11-10 7-10 21l17 457q0 10 10 16.5t24 6.5h185q14 0 23.5-6.5t10.5-16.5zm-14-934l768 1408q35 63-2 126-17 29-46.5 46t-63.5 17h-1536q-34 0-63.5-17t-46.5-46q-37-63-2-126l768-1408q17-31 47-49t65-18 65 18 47 49z"/> +</svg> diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/icon-calendar.svg b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/icon-calendar.svg new file mode 100644 index 0000000000..97910a9949 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/icon-calendar.svg @@ -0,0 +1,9 @@ +<svg width="16" height="32" viewBox="0 0 1792 3584" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> + <defs> + <g id="icon"> + <path d="M192 1664h288v-288h-288v288zm352 0h320v-288h-320v288zm-352-352h288v-320h-288v320zm352 0h320v-320h-320v320zm-352-384h288v-288h-288v288zm736 736h320v-288h-320v288zm-384-736h320v-288h-320v288zm768 736h288v-288h-288v288zm-384-352h320v-320h-320v320zm-352-864v-288q0-13-9.5-22.5t-22.5-9.5h-64q-13 0-22.5 9.5t-9.5 22.5v288q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5-9.5t9.5-22.5zm736 864h288v-320h-288v320zm-384-384h320v-288h-320v288zm384 0h288v-288h-288v288zm32-480v-288q0-13-9.5-22.5t-22.5-9.5h-64q-13 0-22.5 9.5t-9.5 22.5v288q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5-9.5t9.5-22.5zm384-64v1280q0 52-38 90t-90 38h-1408q-52 0-90-38t-38-90v-1280q0-52 38-90t90-38h128v-96q0-66 47-113t113-47h64q66 0 113 47t47 113v96h384v-96q0-66 47-113t113-47h64q66 0 113 47t47 113v96h128q52 0 90 38t38 90z"/> + </g> + </defs> + <use xlink:href="#icon" x="0" y="0" fill="#447e9b" /> + <use xlink:href="#icon" x="0" y="1792" fill="#003366" /> +</svg> diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/icon-changelink.svg b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/icon-changelink.svg new file mode 100644 index 0000000000..592b093bc3 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/icon-changelink.svg @@ -0,0 +1,3 @@ +<svg width="13" height="13" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"> + <path fill="#b48c08" d="M491 1536l91-91-235-235-91 91v107h128v128h107zm523-928q0-22-22-22-10 0-17 7l-542 542q-7 7-7 17 0 22 22 22 10 0 17-7l542-542q7-7 7-17zm-54-192l416 416-832 832h-416v-416zm683 96q0 53-37 90l-166 166-416-416 166-165q36-38 90-38 53 0 91 38l235 234q37 39 37 91z"/> +</svg> diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/icon-clock.svg b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/icon-clock.svg new file mode 100644 index 0000000000..bf9985d3f4 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/icon-clock.svg @@ -0,0 +1,9 @@ +<svg width="16" height="32" viewBox="0 0 1792 3584" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> + <defs> + <g id="icon"> + <path d="M1024 544v448q0 14-9 23t-23 9h-320q-14 0-23-9t-9-23v-64q0-14 9-23t23-9h224v-352q0-14 9-23t23-9h64q14 0 23 9t9 23zm416 352q0-148-73-273t-198-198-273-73-273 73-198 198-73 273 73 273 198 198 273 73 273-73 198-198 73-273zm224 0q0 209-103 385.5t-279.5 279.5-385.5 103-385.5-103-279.5-279.5-103-385.5 103-385.5 279.5-279.5 385.5-103 385.5 103 279.5 279.5 103 385.5z"/> + </g> + </defs> + <use xlink:href="#icon" x="0" y="0" fill="#447e9b" /> + <use xlink:href="#icon" x="0" y="1792" fill="#003366" /> +</svg> diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/icon-deletelink.svg b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/icon-deletelink.svg new file mode 100644 index 0000000000..4059b15544 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/icon-deletelink.svg @@ -0,0 +1,3 @@ +<svg width="14" height="14" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"> + <path fill="#dd4646" d="M1490 1322q0 40-28 68l-136 136q-28 28-68 28t-68-28l-294-294-294 294q-28 28-68 28t-68-28l-136-136q-28-28-28-68t28-68l294-294-294-294q-28-28-28-68t28-68l136-136q28-28 68-28t68 28l294 294 294-294q28-28 68-28t68 28l136 136q28 28 28 68t-28 68l-294 294 294 294q28 28 28 68z"/> +</svg> diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/icon-hidelink.svg b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/icon-hidelink.svg new file mode 100644 index 0000000000..2a8b404b60 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/icon-hidelink.svg @@ -0,0 +1,3 @@ +<svg width="13" height="13" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"> + <path fill="#2b70bf" d="m555 1335 78-141q-87-63-136-159t-49-203q0-121 61-225-229 117-381 353 167 258 427 375zm389-759q0-20-14-34t-34-14q-125 0-214.5 89.5T592 832q0 20 14 34t34 14 34-14 14-34q0-86 61-147t147-61q20 0 34-14t14-34zm363-191q0 7-1 9-105 188-315 566t-316 567l-49 89q-10 16-28 16-12 0-134-70-16-10-16-28 0-12 44-87-143-65-263.5-173T20 1029Q0 998 0 960t20-69q153-235 380-371t496-136q89 0 180 17l54-97q10-16 28-16 5 0 18 6t31 15.5 33 18.5 31.5 18.5T1291 358q16 10 16 27zm37 447q0 139-79 253.5T1056 1250l280-502q8 45 8 84zm448 128q0 35-20 69-39 64-109 145-150 172-347.5 267T896 1536l74-132q212-18 392.5-137T1664 960q-115-179-282-294l63-112q95 64 182.5 153T1772 891q20 34 20 69z"/> +</svg> diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/icon-no.svg b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/icon-no.svg new file mode 100644 index 0000000000..2e0d3832c9 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/icon-no.svg @@ -0,0 +1,3 @@ +<svg width="13" height="13" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"> + <path fill="#dd4646" d="M1277 1122q0-26-19-45l-181-181 181-181q19-19 19-45 0-27-19-46l-90-90q-19-19-46-19-26 0-45 19l-181 181-181-181q-19-19-45-19-27 0-46 19l-90 90q-19 19-19 46 0 26 19 45l181 181-181 181q-19 19-19 45 0 27 19 46l90 90q19 19 46 19 26 0 45-19l181-181 181 181q19 19 45 19 27 0 46-19l90-90q19-19 19-46zm387-226q0 209-103 385.5t-279.5 279.5-385.5 103-385.5-103-279.5-279.5-103-385.5 103-385.5 279.5-279.5 385.5-103 385.5 103 279.5 279.5 103 385.5z"/> +</svg> diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/icon-unknown-alt.svg b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/icon-unknown-alt.svg new file mode 100644 index 0000000000..1c6b99fc09 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/icon-unknown-alt.svg @@ -0,0 +1,3 @@ +<svg width="13" height="13" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"> + <path fill="#ffffff" d="M1024 1376v-192q0-14-9-23t-23-9h-192q-14 0-23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23-9t9-23zm256-672q0-88-55.5-163t-138.5-116-170-41q-243 0-371 213-15 24 8 42l132 100q7 6 19 6 16 0 25-12 53-68 86-92 34-24 86-24 48 0 85.5 26t37.5 59q0 38-20 61t-68 45q-63 28-115.5 86.5t-52.5 125.5v36q0 14 9 23t23 9h192q14 0 23-9t9-23q0-19 21.5-49.5t54.5-49.5q32-18 49-28.5t46-35 44.5-48 28-60.5 12.5-81zm384 192q0 209-103 385.5t-279.5 279.5-385.5 103-385.5-103-279.5-279.5-103-385.5 103-385.5 279.5-279.5 385.5-103 385.5 103 279.5 279.5 103 385.5z"/> +</svg> diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/icon-unknown.svg b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/icon-unknown.svg new file mode 100644 index 0000000000..50b4f97276 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/icon-unknown.svg @@ -0,0 +1,3 @@ +<svg width="13" height="13" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"> + <path fill="#666666" d="M1024 1376v-192q0-14-9-23t-23-9h-192q-14 0-23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23-9t9-23zm256-672q0-88-55.5-163t-138.5-116-170-41q-243 0-371 213-15 24 8 42l132 100q7 6 19 6 16 0 25-12 53-68 86-92 34-24 86-24 48 0 85.5 26t37.5 59q0 38-20 61t-68 45q-63 28-115.5 86.5t-52.5 125.5v36q0 14 9 23t23 9h192q14 0 23-9t9-23q0-19 21.5-49.5t54.5-49.5q32-18 49-28.5t46-35 44.5-48 28-60.5 12.5-81zm384 192q0 209-103 385.5t-279.5 279.5-385.5 103-385.5-103-279.5-279.5-103-385.5 103-385.5 279.5-279.5 385.5-103 385.5 103 279.5 279.5 103 385.5z"/> +</svg> diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/icon-viewlink.svg b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/icon-viewlink.svg new file mode 100644 index 0000000000..a1ca1d3f4e --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/icon-viewlink.svg @@ -0,0 +1,3 @@ +<svg width="13" height="13" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"> + <path fill="#2b70bf" d="M1664 960q-152-236-381-353 61 104 61 225 0 185-131.5 316.5t-316.5 131.5-316.5-131.5-131.5-316.5q0-121 61-225-229 117-381 353 133 205 333.5 326.5t434.5 121.5 434.5-121.5 333.5-326.5zm-720-384q0-20-14-34t-34-14q-125 0-214.5 89.5t-89.5 214.5q0 20 14 34t34 14 34-14 14-34q0-86 61-147t147-61q20 0 34-14t14-34zm848 384q0 34-20 69-140 230-376.5 368.5t-499.5 138.5-499.5-139-376.5-368q-20-35-20-69t20-69q140-229 376.5-368t499.5-139 499.5 139 376.5 368q20 35 20 69z"/> +</svg> diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/icon-yes.svg b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/icon-yes.svg new file mode 100644 index 0000000000..5883d877e8 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/icon-yes.svg @@ -0,0 +1,3 @@ +<svg width="13" height="13" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"> + <path fill="#70bf2b" d="M1412 734q0-28-18-46l-91-90q-19-19-45-19t-45 19l-408 407-226-226q-19-19-45-19t-45 19l-91 90q-18 18-18 46 0 27 18 45l362 362q19 19 45 19 27 0 46-19l543-543q18-18 18-45zm252 162q0 209-103 385.5t-279.5 279.5-385.5 103-385.5-103-279.5-279.5-103-385.5 103-385.5 279.5-279.5 385.5-103 385.5 103 279.5 279.5 103 385.5z"/> +</svg> diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/inline-delete.svg b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/inline-delete.svg new file mode 100644 index 0000000000..17d1ad67cd --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/inline-delete.svg @@ -0,0 +1,3 @@ +<svg width="16" height="16" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"> + <path fill="#999999" d="M1277 1122q0-26-19-45l-181-181 181-181q19-19 19-45 0-27-19-46l-90-90q-19-19-46-19-26 0-45 19l-181 181-181-181q-19-19-45-19-27 0-46 19l-90 90q-19 19-19 46 0 26 19 45l181 181-181 181q-19 19-19 45 0 27 19 46l90 90q19 19 46 19 26 0 45-19l181-181 181 181q19 19 45 19 27 0 46-19l90-90q19-19 19-46zm387-226q0 209-103 385.5t-279.5 279.5-385.5 103-385.5-103-279.5-279.5-103-385.5 103-385.5 279.5-279.5 385.5-103 385.5 103 279.5 279.5 103 385.5z"/> +</svg> diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/search.svg b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/search.svg new file mode 100644 index 0000000000..c8c69b2acc --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/search.svg @@ -0,0 +1,3 @@ +<svg width="15" height="15" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"> + <path fill="#555555" d="M1216 832q0-185-131.5-316.5t-316.5-131.5-316.5 131.5-131.5 316.5 131.5 316.5 316.5 131.5 316.5-131.5 131.5-316.5zm512 832q0 52-38 90t-90 38q-54 0-90-38l-343-342q-179 124-399 124-143 0-273.5-55.5t-225-150-150-225-55.5-273.5 55.5-273.5 150-225 225-150 273.5-55.5 273.5 55.5 225 150 150 225 55.5 273.5q0 220-124 399l343 343q37 37 37 90z"/> +</svg> diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/selector-icons.svg b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/selector-icons.svg new file mode 100644 index 0000000000..926b8e21b5 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/selector-icons.svg @@ -0,0 +1,34 @@ +<svg width="16" height="192" viewBox="0 0 1792 21504" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> + <defs> + <g id="up"> + <path d="M1412 895q0-27-18-45l-362-362-91-91q-18-18-45-18t-45 18l-91 91-362 362q-18 18-18 45t18 45l91 91q18 18 45 18t45-18l189-189v502q0 26 19 45t45 19h128q26 0 45-19t19-45v-502l189 189q19 19 45 19t45-19l91-91q18-18 18-45zm252 1q0 209-103 385.5t-279.5 279.5-385.5 103-385.5-103-279.5-279.5-103-385.5 103-385.5 279.5-279.5 385.5-103 385.5 103 279.5 279.5 103 385.5z"/> + </g> + <g id="down"> + <path d="M1412 897q0-27-18-45l-91-91q-18-18-45-18t-45 18l-189 189v-502q0-26-19-45t-45-19h-128q-26 0-45 19t-19 45v502l-189-189q-19-19-45-19t-45 19l-91 91q-18 18-18 45t18 45l362 362 91 91q18 18 45 18t45-18l91-91 362-362q18-18 18-45zm252-1q0 209-103 385.5t-279.5 279.5-385.5 103-385.5-103-279.5-279.5-103-385.5 103-385.5 279.5-279.5 385.5-103 385.5 103 279.5 279.5 103 385.5z"/> + </g> + <g id="left"> + <path d="M1408 960v-128q0-26-19-45t-45-19h-502l189-189q19-19 19-45t-19-45l-91-91q-18-18-45-18t-45 18l-362 362-91 91q-18 18-18 45t18 45l91 91 362 362q18 18 45 18t45-18l91-91q18-18 18-45t-18-45l-189-189h502q26 0 45-19t19-45zm256-64q0 209-103 385.5t-279.5 279.5-385.5 103-385.5-103-279.5-279.5-103-385.5 103-385.5 279.5-279.5 385.5-103 385.5 103 279.5 279.5 103 385.5z"/> + </g> + <g id="right"> + <path d="M1413 896q0-27-18-45l-91-91-362-362q-18-18-45-18t-45 18l-91 91q-18 18-18 45t18 45l189 189h-502q-26 0-45 19t-19 45v128q0 26 19 45t45 19h502l-189 189q-19 19-19 45t19 45l91 91q18 18 45 18t45-18l362-362 91-91q18-18 18-45zm251 0q0 209-103 385.5t-279.5 279.5-385.5 103-385.5-103-279.5-279.5-103-385.5 103-385.5 279.5-279.5 385.5-103 385.5 103 279.5 279.5 103 385.5z"/> + </g> + <g id="clearall"> + <path transform="translate(336, 336) scale(0.75)" d="M1037 1395l102-102q19-19 19-45t-19-45l-307-307 307-307q19-19 19-45t-19-45l-102-102q-19-19-45-19t-45 19l-454 454q-19 19-19 45t19 45l454 454q19 19 45 19t45-19zm627-499q0 209-103 385.5t-279.5 279.5-385.5 103-385.5-103-279.5-279.5-103-385.5 103-385.5 279.5-279.5 385.5-103 385.5 103 279.5 279.5 103 385.5z"/> + </g> + <g id="chooseall"> + <path transform="translate(336, 336) scale(0.75)" d="M845 1395l454-454q19-19 19-45t-19-45l-454-454q-19-19-45-19t-45 19l-102 102q-19 19-19 45t19 45l307 307-307 307q-19 19-19 45t19 45l102 102q19 19 45 19t45-19zm819-499q0 209-103 385.5t-279.5 279.5-385.5 103-385.5-103-279.5-279.5-103-385.5 103-385.5 279.5-279.5 385.5-103 385.5 103 279.5 279.5 103 385.5z"/> + </g> + </defs> + <use xlink:href="#up" x="0" y="0" fill="#666666" /> + <use xlink:href="#up" x="0" y="1792" fill="#447e9b" /> + <use xlink:href="#down" x="0" y="3584" fill="#666666" /> + <use xlink:href="#down" x="0" y="5376" fill="#447e9b" /> + <use xlink:href="#left" x="0" y="7168" fill="#666666" /> + <use xlink:href="#left" x="0" y="8960" fill="#447e9b" /> + <use xlink:href="#right" x="0" y="10752" fill="#666666" /> + <use xlink:href="#right" x="0" y="12544" fill="#447e9b" /> + <use xlink:href="#clearall" x="0" y="14336" fill="#666666" /> + <use xlink:href="#clearall" x="0" y="16128" fill="#447e9b" /> + <use xlink:href="#chooseall" x="0" y="17920" fill="#666666" /> + <use xlink:href="#chooseall" x="0" y="19712" fill="#447e9b" /> +</svg> diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/sorting-icons.svg b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/sorting-icons.svg new file mode 100644 index 0000000000..7c31ec9114 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/sorting-icons.svg @@ -0,0 +1,19 @@ +<svg width="14" height="84" viewBox="0 0 1792 10752" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> + <defs> + <g id="sort"> + <path d="M1408 1088q0 26-19 45l-448 448q-19 19-45 19t-45-19l-448-448q-19-19-19-45t19-45 45-19h896q26 0 45 19t19 45zm0-384q0 26-19 45t-45 19h-896q-26 0-45-19t-19-45 19-45l448-448q19-19 45-19t45 19l448 448q19 19 19 45z"/> + </g> + <g id="ascending"> + <path d="M1408 1216q0 26-19 45t-45 19h-896q-26 0-45-19t-19-45 19-45l448-448q19-19 45-19t45 19l448 448q19 19 19 45z"/> + </g> + <g id="descending"> + <path d="M1408 704q0 26-19 45l-448 448q-19 19-45 19t-45-19l-448-448q-19-19-19-45t19-45 45-19h896q26 0 45 19t19 45z"/> + </g> + </defs> + <use xlink:href="#sort" x="0" y="0" fill="#999999" /> + <use xlink:href="#sort" x="0" y="1792" fill="#447e9b" /> + <use xlink:href="#ascending" x="0" y="3584" fill="#999999" /> + <use xlink:href="#ascending" x="0" y="5376" fill="#447e9b" /> + <use xlink:href="#descending" x="0" y="7168" fill="#999999" /> + <use xlink:href="#descending" x="0" y="8960" fill="#447e9b" /> +</svg> diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/tooltag-add.svg b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/tooltag-add.svg new file mode 100644 index 0000000000..1ca64ae5b0 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/tooltag-add.svg @@ -0,0 +1,3 @@ +<svg width="13" height="13" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"> + <path fill="#ffffff" d="M1600 736v192q0 40-28 68t-68 28h-416v416q0 40-28 68t-68 28h-192q-40 0-68-28t-28-68v-416h-416q-40 0-68-28t-28-68v-192q0-40 28-68t68-28h416v-416q0-40 28-68t68-28h192q40 0 68 28t28 68v416h416q40 0 68 28t28 68z"/> +</svg> diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/tooltag-arrowright.svg b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/tooltag-arrowright.svg new file mode 100644 index 0000000000..b664d61937 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/tooltag-arrowright.svg @@ -0,0 +1,3 @@ +<svg width="13" height="13" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"> + <path fill="#ffffff" d="M1363 877l-742 742q-19 19-45 19t-45-19l-166-166q-19-19-19-45t19-45l531-531-531-531q-19-19-19-45t19-45l166-166q19-19 45-19t45 19l742 742q19 19 19 45t-19 45z"/> +</svg> diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/SelectBox.js b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/SelectBox.js new file mode 100644 index 0000000000..3db4ec7fa6 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/SelectBox.js @@ -0,0 +1,116 @@ +'use strict'; +{ + const SelectBox = { + cache: {}, + init: function(id) { + const box = document.getElementById(id); + SelectBox.cache[id] = []; + const cache = SelectBox.cache[id]; + for (const node of box.options) { + cache.push({value: node.value, text: node.text, displayed: 1}); + } + }, + redisplay: function(id) { + // Repopulate HTML select box from cache + const box = document.getElementById(id); + const scroll_value_from_top = box.scrollTop; + box.innerHTML = ''; + for (const node of SelectBox.cache[id]) { + if (node.displayed) { + const new_option = new Option(node.text, node.value, false, false); + // Shows a tooltip when hovering over the option + new_option.title = node.text; + box.appendChild(new_option); + } + } + box.scrollTop = scroll_value_from_top; + }, + filter: function(id, text) { + // Redisplay the HTML select box, displaying only the choices containing ALL + // the words in text. (It's an AND search.) + const tokens = text.toLowerCase().split(/\s+/); + for (const node of SelectBox.cache[id]) { + node.displayed = 1; + const node_text = node.text.toLowerCase(); + for (const token of tokens) { + if (!node_text.includes(token)) { + node.displayed = 0; + break; // Once the first token isn't found we're done + } + } + } + SelectBox.redisplay(id); + }, + get_hidden_node_count(id) { + const cache = SelectBox.cache[id] || []; + return cache.filter(node => node.displayed === 0).length; + }, + delete_from_cache: function(id, value) { + let delete_index = null; + const cache = SelectBox.cache[id]; + for (const [i, node] of cache.entries()) { + if (node.value === value) { + delete_index = i; + break; + } + } + cache.splice(delete_index, 1); + }, + add_to_cache: function(id, option) { + SelectBox.cache[id].push({value: option.value, text: option.text, displayed: 1}); + }, + cache_contains: function(id, value) { + // Check if an item is contained in the cache + for (const node of SelectBox.cache[id]) { + if (node.value === value) { + return true; + } + } + return false; + }, + move: function(from, to) { + const from_box = document.getElementById(from); + for (const option of from_box.options) { + const option_value = option.value; + if (option.selected && SelectBox.cache_contains(from, option_value)) { + SelectBox.add_to_cache(to, {value: option_value, text: option.text, displayed: 1}); + SelectBox.delete_from_cache(from, option_value); + } + } + SelectBox.redisplay(from); + SelectBox.redisplay(to); + }, + move_all: function(from, to) { + const from_box = document.getElementById(from); + for (const option of from_box.options) { + const option_value = option.value; + if (SelectBox.cache_contains(from, option_value)) { + SelectBox.add_to_cache(to, {value: option_value, text: option.text, displayed: 1}); + SelectBox.delete_from_cache(from, option_value); + } + } + SelectBox.redisplay(from); + SelectBox.redisplay(to); + }, + sort: function(id) { + SelectBox.cache[id].sort(function(a, b) { + a = a.text.toLowerCase(); + b = b.text.toLowerCase(); + if (a > b) { + return 1; + } + if (a < b) { + return -1; + } + return 0; + } ); + }, + select_all: function(id) { + const box = document.getElementById(id); + for (const option of box.options) { + option.selected = true; + } + } + }; + window.SelectBox = SelectBox; +} diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/SelectFilter2.js b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/SelectFilter2.js new file mode 100644 index 0000000000..6957412462 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/SelectFilter2.js @@ -0,0 +1,286 @@ +/*global SelectBox, gettext, ngettext, interpolate, quickElement, SelectFilter*/ +/* +SelectFilter2 - Turns a multiple-select box into a filter interface. + +Requires core.js and SelectBox.js. +*/ +'use strict'; +{ + window.SelectFilter = { + init: function(field_id, field_name, is_stacked) { + if (field_id.match(/__prefix__/)) { + // Don't initialize on empty forms. + return; + } + const from_box = document.getElementById(field_id); + from_box.id += '_from'; // change its ID + from_box.className = 'filtered'; + + for (const p of from_box.parentNode.getElementsByTagName('p')) { + if (p.classList.contains("info")) { + // Remove <p class="info">, because it just gets in the way. + from_box.parentNode.removeChild(p); + } else if (p.classList.contains("help")) { + // Move help text up to the top so it isn't below the select + // boxes or wrapped off on the side to the right of the add + // button: + from_box.parentNode.insertBefore(p, from_box.parentNode.firstChild); + } + } + + // <div class="selector"> or <div class="selector stacked"> + const selector_div = quickElement('div', from_box.parentNode); + // Make sure the selector div is at the beginning so that the + // add link would be displayed to the right of the widget. + from_box.parentNode.prepend(selector_div); + selector_div.className = is_stacked ? 'selector stacked' : 'selector'; + + // <div class="selector-available"> + const selector_available = quickElement('div', selector_div); + selector_available.className = 'selector-available'; + const title_available = quickElement('h2', selector_available, interpolate(gettext('Available %s') + ' ', [field_name])); + quickElement( + 'span', title_available, '', + 'class', 'help help-tooltip help-icon', + 'title', interpolate( + gettext( + 'This is the list of available %s. You may choose some by ' + + 'selecting them in the box below and then clicking the ' + + '"Choose" arrow between the two boxes.' + ), + [field_name] + ) + ); + + const filter_p = quickElement('p', selector_available, '', 'id', field_id + '_filter'); + filter_p.className = 'selector-filter'; + + const search_filter_label = quickElement('label', filter_p, '', 'for', field_id + '_input'); + + quickElement( + 'span', search_filter_label, '', + 'class', 'help-tooltip search-label-icon', + 'title', interpolate(gettext("Type into this box to filter down the list of available %s."), [field_name]) + ); + + filter_p.appendChild(document.createTextNode(' ')); + + const filter_input = quickElement('input', filter_p, '', 'type', 'text', 'placeholder', gettext("Filter")); + filter_input.id = field_id + '_input'; + + selector_available.appendChild(from_box); + const choose_all = quickElement('a', selector_available, gettext('Choose all'), 'title', interpolate(gettext('Click to choose all %s at once.'), [field_name]), 'href', '#', 'id', field_id + '_add_all_link'); + choose_all.className = 'selector-chooseall'; + + // <ul class="selector-chooser"> + const selector_chooser = quickElement('ul', selector_div); + selector_chooser.className = 'selector-chooser'; + const add_link = quickElement('a', quickElement('li', selector_chooser), gettext('Choose'), 'title', gettext('Choose'), 'href', '#', 'id', field_id + '_add_link'); + add_link.className = 'selector-add'; + const remove_link = quickElement('a', quickElement('li', selector_chooser), gettext('Remove'), 'title', gettext('Remove'), 'href', '#', 'id', field_id + '_remove_link'); + remove_link.className = 'selector-remove'; + + // <div class="selector-chosen"> + const selector_chosen = quickElement('div', selector_div, '', 'id', field_id + '_selector_chosen'); + selector_chosen.className = 'selector-chosen'; + const title_chosen = quickElement('h2', selector_chosen, interpolate(gettext('Chosen %s') + ' ', [field_name])); + quickElement( + 'span', title_chosen, '', + 'class', 'help help-tooltip help-icon', + 'title', interpolate( + gettext( + 'This is the list of chosen %s. You may remove some by ' + + 'selecting them in the box below and then clicking the ' + + '"Remove" arrow between the two boxes.' + ), + [field_name] + ) + ); + + const filter_selected_p = quickElement('p', selector_chosen, '', 'id', field_id + '_filter_selected'); + filter_selected_p.className = 'selector-filter'; + + const search_filter_selected_label = quickElement('label', filter_selected_p, '', 'for', field_id + '_selected_input'); + + quickElement( + 'span', search_filter_selected_label, '', + 'class', 'help-tooltip search-label-icon', + 'title', interpolate(gettext("Type into this box to filter down the list of selected %s."), [field_name]) + ); + + filter_selected_p.appendChild(document.createTextNode(' ')); + + const filter_selected_input = quickElement('input', filter_selected_p, '', 'type', 'text', 'placeholder', gettext("Filter")); + filter_selected_input.id = field_id + '_selected_input'; + + const to_box = quickElement('select', selector_chosen, '', 'id', field_id + '_to', 'multiple', '', 'size', from_box.size, 'name', from_box.name); + to_box.className = 'filtered'; + + const warning_footer = quickElement('div', selector_chosen, '', 'class', 'list-footer-display'); + quickElement('span', warning_footer, '', 'id', field_id + '_list-footer-display-text'); + quickElement('span', warning_footer, ' (click to clear)', 'class', 'list-footer-display__clear'); + + const clear_all = quickElement('a', selector_chosen, gettext('Remove all'), 'title', interpolate(gettext('Click to remove all chosen %s at once.'), [field_name]), 'href', '#', 'id', field_id + '_remove_all_link'); + clear_all.className = 'selector-clearall'; + + from_box.name = from_box.name + '_old'; + + // Set up the JavaScript event handlers for the select box filter interface + const move_selection = function(e, elem, move_func, from, to) { + if (elem.classList.contains('active')) { + move_func(from, to); + SelectFilter.refresh_icons(field_id); + SelectFilter.refresh_filtered_selects(field_id); + SelectFilter.refresh_filtered_warning(field_id); + } + e.preventDefault(); + }; + choose_all.addEventListener('click', function(e) { + move_selection(e, this, SelectBox.move_all, field_id + '_from', field_id + '_to'); + }); + add_link.addEventListener('click', function(e) { + move_selection(e, this, SelectBox.move, field_id + '_from', field_id + '_to'); + }); + remove_link.addEventListener('click', function(e) { + move_selection(e, this, SelectBox.move, field_id + '_to', field_id + '_from'); + }); + clear_all.addEventListener('click', function(e) { + move_selection(e, this, SelectBox.move_all, field_id + '_to', field_id + '_from'); + }); + warning_footer.addEventListener('click', function(e) { + filter_selected_input.value = ''; + SelectBox.filter(field_id + '_to', ''); + SelectFilter.refresh_filtered_warning(field_id); + SelectFilter.refresh_icons(field_id); + }); + filter_input.addEventListener('keypress', function(e) { + SelectFilter.filter_key_press(e, field_id, '_from', '_to'); + }); + filter_input.addEventListener('keyup', function(e) { + SelectFilter.filter_key_up(e, field_id, '_from'); + }); + filter_input.addEventListener('keydown', function(e) { + SelectFilter.filter_key_down(e, field_id, '_from', '_to'); + }); + filter_selected_input.addEventListener('keypress', function(e) { + SelectFilter.filter_key_press(e, field_id, '_to', '_from'); + }); + filter_selected_input.addEventListener('keyup', function(e) { + SelectFilter.filter_key_up(e, field_id, '_to', '_selected_input'); + }); + filter_selected_input.addEventListener('keydown', function(e) { + SelectFilter.filter_key_down(e, field_id, '_to', '_from'); + }); + selector_div.addEventListener('change', function(e) { + if (e.target.tagName === 'SELECT') { + SelectFilter.refresh_icons(field_id); + } + }); + selector_div.addEventListener('dblclick', function(e) { + if (e.target.tagName === 'OPTION') { + if (e.target.closest('select').id === field_id + '_to') { + SelectBox.move(field_id + '_to', field_id + '_from'); + } else { + SelectBox.move(field_id + '_from', field_id + '_to'); + } + SelectFilter.refresh_icons(field_id); + } + }); + from_box.closest('form').addEventListener('submit', function() { + SelectBox.filter(field_id + '_to', ''); + SelectBox.select_all(field_id + '_to'); + }); + SelectBox.init(field_id + '_from'); + SelectBox.init(field_id + '_to'); + // Move selected from_box options to to_box + SelectBox.move(field_id + '_from', field_id + '_to'); + + // Initial icon refresh + SelectFilter.refresh_icons(field_id); + }, + any_selected: function(field) { + // Temporarily add the required attribute and check validity. + field.required = true; + const any_selected = field.checkValidity(); + field.required = false; + return any_selected; + }, + refresh_filtered_warning: function(field_id) { + const count = SelectBox.get_hidden_node_count(field_id + '_to'); + const selector = document.getElementById(field_id + '_selector_chosen'); + const warning = document.getElementById(field_id + '_list-footer-display-text'); + selector.className = selector.className.replace('selector-chosen--with-filtered', ''); + warning.textContent = interpolate(ngettext( + '%s selected option not visible', + '%s selected options not visible', + count + ), [count]); + if(count > 0) { + selector.className += ' selector-chosen--with-filtered'; + } + }, + refresh_filtered_selects: function(field_id) { + SelectBox.filter(field_id + '_from', document.getElementById(field_id + "_input").value); + SelectBox.filter(field_id + '_to', document.getElementById(field_id + "_selected_input").value); + }, + refresh_icons: function(field_id) { + const from = document.getElementById(field_id + '_from'); + const to = document.getElementById(field_id + '_to'); + // Active if at least one item is selected + document.getElementById(field_id + '_add_link').classList.toggle('active', SelectFilter.any_selected(from)); + document.getElementById(field_id + '_remove_link').classList.toggle('active', SelectFilter.any_selected(to)); + // Active if the corresponding box isn't empty + document.getElementById(field_id + '_add_all_link').classList.toggle('active', from.querySelector('option')); + document.getElementById(field_id + '_remove_all_link').classList.toggle('active', to.querySelector('option')); + SelectFilter.refresh_filtered_warning(field_id); + }, + filter_key_press: function(event, field_id, source, target) { + const source_box = document.getElementById(field_id + source); + // don't submit form if user pressed Enter + if ((event.which && event.which === 13) || (event.keyCode && event.keyCode === 13)) { + source_box.selectedIndex = 0; + SelectBox.move(field_id + source, field_id + target); + source_box.selectedIndex = 0; + event.preventDefault(); + } + }, + filter_key_up: function(event, field_id, source, filter_input) { + const input = filter_input || '_input'; + const source_box = document.getElementById(field_id + source); + const temp = source_box.selectedIndex; + SelectBox.filter(field_id + source, document.getElementById(field_id + input).value); + source_box.selectedIndex = temp; + SelectFilter.refresh_filtered_warning(field_id); + SelectFilter.refresh_icons(field_id); + }, + filter_key_down: function(event, field_id, source, target) { + const source_box = document.getElementById(field_id + source); + // right key (39) or left key (37) + const direction = source === '_from' ? 39 : 37; + // right arrow -- move across + if ((event.which && event.which === direction) || (event.keyCode && event.keyCode === direction)) { + const old_index = source_box.selectedIndex; + SelectBox.move(field_id + source, field_id + target); + SelectFilter.refresh_filtered_selects(field_id); + SelectFilter.refresh_filtered_warning(field_id); + source_box.selectedIndex = (old_index === source_box.length) ? source_box.length - 1 : old_index; + return; + } + // down arrow -- wrap around + if ((event.which && event.which === 40) || (event.keyCode && event.keyCode === 40)) { + source_box.selectedIndex = (source_box.length === source_box.selectedIndex + 1) ? 0 : source_box.selectedIndex + 1; + } + // up arrow -- wrap around + if ((event.which && event.which === 38) || (event.keyCode && event.keyCode === 38)) { + source_box.selectedIndex = (source_box.selectedIndex === 0) ? source_box.length - 1 : source_box.selectedIndex - 1; + } + } + }; + + window.addEventListener('load', function(e) { + document.querySelectorAll('select.selectfilter, select.selectfilterstacked').forEach(function(el) { + const data = el.dataset; + SelectFilter.init(el.id, data.fieldName, parseInt(data.isStacked, 10)); + }); + }); +} diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/actions.js b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/actions.js new file mode 100644 index 0000000000..04b25e9684 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/actions.js @@ -0,0 +1,204 @@ +/*global gettext, interpolate, ngettext, Actions*/ +'use strict'; +{ + function show(selector) { + document.querySelectorAll(selector).forEach(function(el) { + el.classList.remove('hidden'); + }); + } + + function hide(selector) { + document.querySelectorAll(selector).forEach(function(el) { + el.classList.add('hidden'); + }); + } + + function showQuestion(options) { + hide(options.acrossClears); + show(options.acrossQuestions); + hide(options.allContainer); + } + + function showClear(options) { + show(options.acrossClears); + hide(options.acrossQuestions); + document.querySelector(options.actionContainer).classList.remove(options.selectedClass); + show(options.allContainer); + hide(options.counterContainer); + } + + function reset(options) { + hide(options.acrossClears); + hide(options.acrossQuestions); + hide(options.allContainer); + show(options.counterContainer); + } + + function clearAcross(options) { + reset(options); + const acrossInputs = document.querySelectorAll(options.acrossInput); + acrossInputs.forEach(function(acrossInput) { + acrossInput.value = 0; + }); + document.querySelector(options.actionContainer).classList.remove(options.selectedClass); + } + + function checker(actionCheckboxes, options, checked) { + if (checked) { + showQuestion(options); + } else { + reset(options); + } + actionCheckboxes.forEach(function(el) { + el.checked = checked; + el.closest('tr').classList.toggle(options.selectedClass, checked); + }); + } + + function updateCounter(actionCheckboxes, options) { + const sel = Array.from(actionCheckboxes).filter(function(el) { + return el.checked; + }).length; + const counter = document.querySelector(options.counterContainer); + // data-actions-icnt is defined in the generated HTML + // and contains the total amount of objects in the queryset + const actions_icnt = Number(counter.dataset.actionsIcnt); + counter.textContent = interpolate( + ngettext('%(sel)s of %(cnt)s selected', '%(sel)s of %(cnt)s selected', sel), { + sel: sel, + cnt: actions_icnt + }, true); + const allToggle = document.getElementById(options.allToggleId); + allToggle.checked = sel === actionCheckboxes.length; + if (allToggle.checked) { + showQuestion(options); + } else { + clearAcross(options); + } + } + + const defaults = { + actionContainer: "div.actions", + counterContainer: "span.action-counter", + allContainer: "div.actions span.all", + acrossInput: "div.actions input.select-across", + acrossQuestions: "div.actions span.question", + acrossClears: "div.actions span.clear", + allToggleId: "action-toggle", + selectedClass: "selected" + }; + + window.Actions = function(actionCheckboxes, options) { + options = Object.assign({}, defaults, options); + let list_editable_changed = false; + let lastChecked = null; + let shiftPressed = false; + + document.addEventListener('keydown', (event) => { + shiftPressed = event.shiftKey; + }); + + document.addEventListener('keyup', (event) => { + shiftPressed = event.shiftKey; + }); + + document.getElementById(options.allToggleId).addEventListener('click', function(event) { + checker(actionCheckboxes, options, this.checked); + updateCounter(actionCheckboxes, options); + }); + + document.querySelectorAll(options.acrossQuestions + " a").forEach(function(el) { + el.addEventListener('click', function(event) { + event.preventDefault(); + const acrossInputs = document.querySelectorAll(options.acrossInput); + acrossInputs.forEach(function(acrossInput) { + acrossInput.value = 1; + }); + showClear(options); + }); + }); + + document.querySelectorAll(options.acrossClears + " a").forEach(function(el) { + el.addEventListener('click', function(event) { + event.preventDefault(); + document.getElementById(options.allToggleId).checked = false; + clearAcross(options); + checker(actionCheckboxes, options, false); + updateCounter(actionCheckboxes, options); + }); + }); + + function affectedCheckboxes(target, withModifier) { + const multiSelect = (lastChecked && withModifier && lastChecked !== target); + if (!multiSelect) { + return [target]; + } + const checkboxes = Array.from(actionCheckboxes); + const targetIndex = checkboxes.findIndex(el => el === target); + const lastCheckedIndex = checkboxes.findIndex(el => el === lastChecked); + const startIndex = Math.min(targetIndex, lastCheckedIndex); + const endIndex = Math.max(targetIndex, lastCheckedIndex); + const filtered = checkboxes.filter((el, index) => (startIndex <= index) && (index <= endIndex)); + return filtered; + }; + + Array.from(document.getElementById('result_list').tBodies).forEach(function(el) { + el.addEventListener('change', function(event) { + const target = event.target; + if (target.classList.contains('action-select')) { + const checkboxes = affectedCheckboxes(target, shiftPressed); + checker(checkboxes, options, target.checked); + updateCounter(actionCheckboxes, options); + lastChecked = target; + } else { + list_editable_changed = true; + } + }); + }); + + document.querySelector('#changelist-form button[name=index]').addEventListener('click', function(event) { + if (list_editable_changed) { + const confirmed = confirm(gettext("You have unsaved changes on individual editable fields. If you run an action, your unsaved changes will be lost.")); + if (!confirmed) { + event.preventDefault(); + } + } + }); + + const el = document.querySelector('#changelist-form input[name=_save]'); + // The button does not exist if no fields are editable. + if (el) { + el.addEventListener('click', function(event) { + if (document.querySelector('[name=action]').value) { + const text = list_editable_changed + ? gettext("You have selected an action, but you haven’t saved your changes to individual fields yet. Please click OK to save. You’ll need to re-run the action.") + : gettext("You have selected an action, and you haven’t made any changes on individual fields. You’re probably looking for the Go button rather than the Save button."); + if (!confirm(text)) { + event.preventDefault(); + } + } + }); + } + // Sync counter when navigating to the page, such as through the back + // button. + window.addEventListener('pageshow', (event) => updateCounter(actionCheckboxes, options)); + }; + + // Call function fn when the DOM is loaded and ready. If it is already + // loaded, call the function now. + // http://youmightnotneedjquery.com/#ready + function ready(fn) { + if (document.readyState !== 'loading') { + fn(); + } else { + document.addEventListener('DOMContentLoaded', fn); + } + } + + ready(function() { + const actionsEls = document.querySelectorAll('tr input.action-select'); + if (actionsEls.length > 0) { + Actions(actionsEls); + } + }); +} diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/admin/DateTimeShortcuts.js b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/admin/DateTimeShortcuts.js new file mode 100644 index 0000000000..aa1cae9eeb --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/admin/DateTimeShortcuts.js @@ -0,0 +1,408 @@ +/*global Calendar, findPosX, findPosY, get_format, gettext, gettext_noop, interpolate, ngettext, quickElement*/ +// Inserts shortcut buttons after all of the following: +// <input type="text" class="vDateField"> +// <input type="text" class="vTimeField"> +'use strict'; +{ + const DateTimeShortcuts = { + calendars: [], + calendarInputs: [], + clockInputs: [], + clockHours: { + default_: [ + [gettext_noop('Now'), -1], + [gettext_noop('Midnight'), 0], + [gettext_noop('6 a.m.'), 6], + [gettext_noop('Noon'), 12], + [gettext_noop('6 p.m.'), 18] + ] + }, + dismissClockFunc: [], + dismissCalendarFunc: [], + calendarDivName1: 'calendarbox', // name of calendar <div> that gets toggled + calendarDivName2: 'calendarin', // name of <div> that contains calendar + calendarLinkName: 'calendarlink', // name of the link that is used to toggle + clockDivName: 'clockbox', // name of clock <div> that gets toggled + clockLinkName: 'clocklink', // name of the link that is used to toggle + shortCutsClass: 'datetimeshortcuts', // class of the clock and cal shortcuts + timezoneWarningClass: 'timezonewarning', // class of the warning for timezone mismatch + timezoneOffset: 0, + init: function() { + const serverOffset = document.body.dataset.adminUtcOffset; + if (serverOffset) { + const localOffset = new Date().getTimezoneOffset() * -60; + DateTimeShortcuts.timezoneOffset = localOffset - serverOffset; + } + + for (const inp of document.getElementsByTagName('input')) { + if (inp.type === 'text' && inp.classList.contains('vTimeField')) { + DateTimeShortcuts.addClock(inp); + DateTimeShortcuts.addTimezoneWarning(inp); + } + else if (inp.type === 'text' && inp.classList.contains('vDateField')) { + DateTimeShortcuts.addCalendar(inp); + DateTimeShortcuts.addTimezoneWarning(inp); + } + } + }, + // Return the current time while accounting for the server timezone. + now: function() { + const serverOffset = document.body.dataset.adminUtcOffset; + if (serverOffset) { + const localNow = new Date(); + const localOffset = localNow.getTimezoneOffset() * -60; + localNow.setTime(localNow.getTime() + 1000 * (serverOffset - localOffset)); + return localNow; + } else { + return new Date(); + } + }, + // Add a warning when the time zone in the browser and backend do not match. + addTimezoneWarning: function(inp) { + const warningClass = DateTimeShortcuts.timezoneWarningClass; + let timezoneOffset = DateTimeShortcuts.timezoneOffset / 3600; + + // Only warn if there is a time zone mismatch. + if (!timezoneOffset) { + return; + } + + // Check if warning is already there. + if (inp.parentNode.querySelectorAll('.' + warningClass).length) { + return; + } + + let message; + if (timezoneOffset > 0) { + message = ngettext( + 'Note: You are %s hour ahead of server time.', + 'Note: You are %s hours ahead of server time.', + timezoneOffset + ); + } + else { + timezoneOffset *= -1; + message = ngettext( + 'Note: You are %s hour behind server time.', + 'Note: You are %s hours behind server time.', + timezoneOffset + ); + } + message = interpolate(message, [timezoneOffset]); + + const warning = document.createElement('div'); + warning.classList.add('help', warningClass); + warning.textContent = message; + inp.parentNode.appendChild(warning); + }, + // Add clock widget to a given field + addClock: function(inp) { + const num = DateTimeShortcuts.clockInputs.length; + DateTimeShortcuts.clockInputs[num] = inp; + DateTimeShortcuts.dismissClockFunc[num] = function() { DateTimeShortcuts.dismissClock(num); return true; }; + + // Shortcut links (clock icon and "Now" link) + const shortcuts_span = document.createElement('span'); + shortcuts_span.className = DateTimeShortcuts.shortCutsClass; + inp.parentNode.insertBefore(shortcuts_span, inp.nextSibling); + const now_link = document.createElement('a'); + now_link.href = "#"; + now_link.textContent = gettext('Now'); + now_link.addEventListener('click', function(e) { + e.preventDefault(); + DateTimeShortcuts.handleClockQuicklink(num, -1); + }); + const clock_link = document.createElement('a'); + clock_link.href = '#'; + clock_link.id = DateTimeShortcuts.clockLinkName + num; + clock_link.addEventListener('click', function(e) { + e.preventDefault(); + // avoid triggering the document click handler to dismiss the clock + e.stopPropagation(); + DateTimeShortcuts.openClock(num); + }); + + quickElement( + 'span', clock_link, '', + 'class', 'clock-icon', + 'title', gettext('Choose a Time') + ); + shortcuts_span.appendChild(document.createTextNode('\u00A0')); + shortcuts_span.appendChild(now_link); + shortcuts_span.appendChild(document.createTextNode('\u00A0|\u00A0')); + shortcuts_span.appendChild(clock_link); + + // Create clock link div + // + // Markup looks like: + // <div id="clockbox1" class="clockbox module"> + // <h2>Choose a time</h2> + // <ul class="timelist"> + // <li><a href="#">Now</a></li> + // <li><a href="#">Midnight</a></li> + // <li><a href="#">6 a.m.</a></li> + // <li><a href="#">Noon</a></li> + // <li><a href="#">6 p.m.</a></li> + // </ul> + // <p class="calendar-cancel"><a href="#">Cancel</a></p> + // </div> + + const clock_box = document.createElement('div'); + clock_box.style.display = 'none'; + clock_box.style.position = 'absolute'; + clock_box.className = 'clockbox module'; + clock_box.id = DateTimeShortcuts.clockDivName + num; + document.body.appendChild(clock_box); + clock_box.addEventListener('click', function(e) { e.stopPropagation(); }); + + quickElement('h2', clock_box, gettext('Choose a time')); + const time_list = quickElement('ul', clock_box); + time_list.className = 'timelist'; + // The list of choices can be overridden in JavaScript like this: + // DateTimeShortcuts.clockHours.name = [['3 a.m.', 3]]; + // where name is the name attribute of the <input>. + const name = typeof DateTimeShortcuts.clockHours[inp.name] === 'undefined' ? 'default_' : inp.name; + DateTimeShortcuts.clockHours[name].forEach(function(element) { + const time_link = quickElement('a', quickElement('li', time_list), gettext(element[0]), 'href', '#'); + time_link.addEventListener('click', function(e) { + e.preventDefault(); + DateTimeShortcuts.handleClockQuicklink(num, element[1]); + }); + }); + + const cancel_p = quickElement('p', clock_box); + cancel_p.className = 'calendar-cancel'; + const cancel_link = quickElement('a', cancel_p, gettext('Cancel'), 'href', '#'); + cancel_link.addEventListener('click', function(e) { + e.preventDefault(); + DateTimeShortcuts.dismissClock(num); + }); + + document.addEventListener('keyup', function(event) { + if (event.which === 27) { + // ESC key closes popup + DateTimeShortcuts.dismissClock(num); + event.preventDefault(); + } + }); + }, + openClock: function(num) { + const clock_box = document.getElementById(DateTimeShortcuts.clockDivName + num); + const clock_link = document.getElementById(DateTimeShortcuts.clockLinkName + num); + + // Recalculate the clockbox position + // is it left-to-right or right-to-left layout ? + if (window.getComputedStyle(document.body).direction !== 'rtl') { + clock_box.style.left = findPosX(clock_link) + 17 + 'px'; + } + else { + // since style's width is in em, it'd be tough to calculate + // px value of it. let's use an estimated px for now + clock_box.style.left = findPosX(clock_link) - 110 + 'px'; + } + clock_box.style.top = Math.max(0, findPosY(clock_link) - 30) + 'px'; + + // Show the clock box + clock_box.style.display = 'block'; + document.addEventListener('click', DateTimeShortcuts.dismissClockFunc[num]); + }, + dismissClock: function(num) { + document.getElementById(DateTimeShortcuts.clockDivName + num).style.display = 'none'; + document.removeEventListener('click', DateTimeShortcuts.dismissClockFunc[num]); + }, + handleClockQuicklink: function(num, val) { + let d; + if (val === -1) { + d = DateTimeShortcuts.now(); + } + else { + d = new Date(1970, 1, 1, val, 0, 0, 0); + } + DateTimeShortcuts.clockInputs[num].value = d.strftime(get_format('TIME_INPUT_FORMATS')[0]); + DateTimeShortcuts.clockInputs[num].focus(); + DateTimeShortcuts.dismissClock(num); + }, + // Add calendar widget to a given field. + addCalendar: function(inp) { + const num = DateTimeShortcuts.calendars.length; + + DateTimeShortcuts.calendarInputs[num] = inp; + DateTimeShortcuts.dismissCalendarFunc[num] = function() { DateTimeShortcuts.dismissCalendar(num); return true; }; + + // Shortcut links (calendar icon and "Today" link) + const shortcuts_span = document.createElement('span'); + shortcuts_span.className = DateTimeShortcuts.shortCutsClass; + inp.parentNode.insertBefore(shortcuts_span, inp.nextSibling); + const today_link = document.createElement('a'); + today_link.href = '#'; + today_link.appendChild(document.createTextNode(gettext('Today'))); + today_link.addEventListener('click', function(e) { + e.preventDefault(); + DateTimeShortcuts.handleCalendarQuickLink(num, 0); + }); + const cal_link = document.createElement('a'); + cal_link.href = '#'; + cal_link.id = DateTimeShortcuts.calendarLinkName + num; + cal_link.addEventListener('click', function(e) { + e.preventDefault(); + // avoid triggering the document click handler to dismiss the calendar + e.stopPropagation(); + DateTimeShortcuts.openCalendar(num); + }); + quickElement( + 'span', cal_link, '', + 'class', 'date-icon', + 'title', gettext('Choose a Date') + ); + shortcuts_span.appendChild(document.createTextNode('\u00A0')); + shortcuts_span.appendChild(today_link); + shortcuts_span.appendChild(document.createTextNode('\u00A0|\u00A0')); + shortcuts_span.appendChild(cal_link); + + // Create calendarbox div. + // + // Markup looks like: + // + // <div id="calendarbox3" class="calendarbox module"> + // <h2> + // <a href="#" class="link-previous">‹</a> + // <a href="#" class="link-next">›</a> February 2003 + // </h2> + // <div class="calendar" id="calendarin3"> + // <!-- (cal) --> + // </div> + // <div class="calendar-shortcuts"> + // <a href="#">Yesterday</a> | <a href="#">Today</a> | <a href="#">Tomorrow</a> + // </div> + // <p class="calendar-cancel"><a href="#">Cancel</a></p> + // </div> + const cal_box = document.createElement('div'); + cal_box.style.display = 'none'; + cal_box.style.position = 'absolute'; + cal_box.className = 'calendarbox module'; + cal_box.id = DateTimeShortcuts.calendarDivName1 + num; + document.body.appendChild(cal_box); + cal_box.addEventListener('click', function(e) { e.stopPropagation(); }); + + // next-prev links + const cal_nav = quickElement('div', cal_box); + const cal_nav_prev = quickElement('a', cal_nav, '<', 'href', '#'); + cal_nav_prev.className = 'calendarnav-previous'; + cal_nav_prev.addEventListener('click', function(e) { + e.preventDefault(); + DateTimeShortcuts.drawPrev(num); + }); + + const cal_nav_next = quickElement('a', cal_nav, '>', 'href', '#'); + cal_nav_next.className = 'calendarnav-next'; + cal_nav_next.addEventListener('click', function(e) { + e.preventDefault(); + DateTimeShortcuts.drawNext(num); + }); + + // main box + const cal_main = quickElement('div', cal_box, '', 'id', DateTimeShortcuts.calendarDivName2 + num); + cal_main.className = 'calendar'; + DateTimeShortcuts.calendars[num] = new Calendar(DateTimeShortcuts.calendarDivName2 + num, DateTimeShortcuts.handleCalendarCallback(num)); + DateTimeShortcuts.calendars[num].drawCurrent(); + + // calendar shortcuts + const shortcuts = quickElement('div', cal_box); + shortcuts.className = 'calendar-shortcuts'; + let day_link = quickElement('a', shortcuts, gettext('Yesterday'), 'href', '#'); + day_link.addEventListener('click', function(e) { + e.preventDefault(); + DateTimeShortcuts.handleCalendarQuickLink(num, -1); + }); + shortcuts.appendChild(document.createTextNode('\u00A0|\u00A0')); + day_link = quickElement('a', shortcuts, gettext('Today'), 'href', '#'); + day_link.addEventListener('click', function(e) { + e.preventDefault(); + DateTimeShortcuts.handleCalendarQuickLink(num, 0); + }); + shortcuts.appendChild(document.createTextNode('\u00A0|\u00A0')); + day_link = quickElement('a', shortcuts, gettext('Tomorrow'), 'href', '#'); + day_link.addEventListener('click', function(e) { + e.preventDefault(); + DateTimeShortcuts.handleCalendarQuickLink(num, +1); + }); + + // cancel bar + const cancel_p = quickElement('p', cal_box); + cancel_p.className = 'calendar-cancel'; + const cancel_link = quickElement('a', cancel_p, gettext('Cancel'), 'href', '#'); + cancel_link.addEventListener('click', function(e) { + e.preventDefault(); + DateTimeShortcuts.dismissCalendar(num); + }); + document.addEventListener('keyup', function(event) { + if (event.which === 27) { + // ESC key closes popup + DateTimeShortcuts.dismissCalendar(num); + event.preventDefault(); + } + }); + }, + openCalendar: function(num) { + const cal_box = document.getElementById(DateTimeShortcuts.calendarDivName1 + num); + const cal_link = document.getElementById(DateTimeShortcuts.calendarLinkName + num); + const inp = DateTimeShortcuts.calendarInputs[num]; + + // Determine if the current value in the input has a valid date. + // If so, draw the calendar with that date's year and month. + if (inp.value) { + const format = get_format('DATE_INPUT_FORMATS')[0]; + const selected = inp.value.strptime(format); + const year = selected.getUTCFullYear(); + const month = selected.getUTCMonth() + 1; + const re = /\d{4}/; + if (re.test(year.toString()) && month >= 1 && month <= 12) { + DateTimeShortcuts.calendars[num].drawDate(month, year, selected); + } + } + + // Recalculate the clockbox position + // is it left-to-right or right-to-left layout ? + if (window.getComputedStyle(document.body).direction !== 'rtl') { + cal_box.style.left = findPosX(cal_link) + 17 + 'px'; + } + else { + // since style's width is in em, it'd be tough to calculate + // px value of it. let's use an estimated px for now + cal_box.style.left = findPosX(cal_link) - 180 + 'px'; + } + cal_box.style.top = Math.max(0, findPosY(cal_link) - 75) + 'px'; + + cal_box.style.display = 'block'; + document.addEventListener('click', DateTimeShortcuts.dismissCalendarFunc[num]); + }, + dismissCalendar: function(num) { + document.getElementById(DateTimeShortcuts.calendarDivName1 + num).style.display = 'none'; + document.removeEventListener('click', DateTimeShortcuts.dismissCalendarFunc[num]); + }, + drawPrev: function(num) { + DateTimeShortcuts.calendars[num].drawPreviousMonth(); + }, + drawNext: function(num) { + DateTimeShortcuts.calendars[num].drawNextMonth(); + }, + handleCalendarCallback: function(num) { + const format = get_format('DATE_INPUT_FORMATS')[0]; + return function(y, m, d) { + DateTimeShortcuts.calendarInputs[num].value = new Date(y, m - 1, d).strftime(format); + DateTimeShortcuts.calendarInputs[num].focus(); + document.getElementById(DateTimeShortcuts.calendarDivName1 + num).style.display = 'none'; + }; + }, + handleCalendarQuickLink: function(num, offset) { + const d = DateTimeShortcuts.now(); + d.setDate(d.getDate() + offset); + DateTimeShortcuts.calendarInputs[num].value = d.strftime(get_format('DATE_INPUT_FORMATS')[0]); + DateTimeShortcuts.calendarInputs[num].focus(); + DateTimeShortcuts.dismissCalendar(num); + } + }; + + window.addEventListener('load', DateTimeShortcuts.init); + window.DateTimeShortcuts = DateTimeShortcuts; +} diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/admin/RelatedObjectLookups.js b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/admin/RelatedObjectLookups.js new file mode 100644 index 0000000000..bc3accea37 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/admin/RelatedObjectLookups.js @@ -0,0 +1,240 @@ +/*global SelectBox, interpolate*/ +// Handles related-objects functionality: lookup link for raw_id_fields +// and Add Another links. +'use strict'; +{ + const $ = django.jQuery; + let popupIndex = 0; + const relatedWindows = []; + + function dismissChildPopups() { + relatedWindows.forEach(function(win) { + if(!win.closed) { + win.dismissChildPopups(); + win.close(); + } + }); + } + + function setPopupIndex() { + if(document.getElementsByName("_popup").length > 0) { + const index = window.name.lastIndexOf("__") + 2; + popupIndex = parseInt(window.name.substring(index)); + } else { + popupIndex = 0; + } + } + + function addPopupIndex(name) { + return name + "__" + (popupIndex + 1); + } + + function removePopupIndex(name) { + return name.replace(new RegExp("__" + (popupIndex + 1) + "$"), ''); + } + + function showAdminPopup(triggeringLink, name_regexp, add_popup) { + const name = addPopupIndex(triggeringLink.id.replace(name_regexp, '')); + const href = new URL(triggeringLink.href); + if (add_popup) { + href.searchParams.set('_popup', 1); + } + const win = window.open(href, name, 'height=500,width=800,resizable=yes,scrollbars=yes'); + relatedWindows.push(win); + win.focus(); + return false; + } + + function showRelatedObjectLookupPopup(triggeringLink) { + return showAdminPopup(triggeringLink, /^lookup_/, true); + } + + function dismissRelatedLookupPopup(win, chosenId) { + const name = removePopupIndex(win.name); + const elem = document.getElementById(name); + if (elem.classList.contains('vManyToManyRawIdAdminField') && elem.value) { + elem.value += ',' + chosenId; + } else { + document.getElementById(name).value = chosenId; + } + const index = relatedWindows.indexOf(win); + if (index > -1) { + relatedWindows.splice(index, 1); + } + win.close(); + } + + function showRelatedObjectPopup(triggeringLink) { + return showAdminPopup(triggeringLink, /^(change|add|delete)_/, false); + } + + function updateRelatedObjectLinks(triggeringLink) { + const $this = $(triggeringLink); + const siblings = $this.nextAll('.view-related, .change-related, .delete-related'); + if (!siblings.length) { + return; + } + const value = $this.val(); + if (value) { + siblings.each(function() { + const elm = $(this); + elm.attr('href', elm.attr('data-href-template').replace('__fk__', value)); + elm.removeAttr('aria-disabled'); + }); + } else { + siblings.removeAttr('href'); + siblings.attr('aria-disabled', true); + } + } + + function updateRelatedSelectsOptions(currentSelect, win, objId, newRepr, newId) { + // After create/edit a model from the options next to the current + // select (+ or :pencil:) update ForeignKey PK of the rest of selects + // in the page. + + const path = win.location.pathname; + // Extract the model from the popup url '.../<model>/add/' or + // '.../<model>/<id>/change/' depending the action (add or change). + const modelName = path.split('/')[path.split('/').length - (objId ? 4 : 3)]; + // Select elements with a specific model reference and context of "available-source". + const selectsRelated = document.querySelectorAll(`[data-model-ref="${modelName}"] [data-context="available-source"]`); + + selectsRelated.forEach(function(select) { + if (currentSelect === select) { + return; + } + + let option = select.querySelector(`option[value="${objId}"]`); + + if (!option) { + option = new Option(newRepr, newId); + select.options.add(option); + return; + } + + option.textContent = newRepr; + option.value = newId; + }); + } + + function dismissAddRelatedObjectPopup(win, newId, newRepr) { + const name = removePopupIndex(win.name); + const elem = document.getElementById(name); + if (elem) { + const elemName = elem.nodeName.toUpperCase(); + if (elemName === 'SELECT') { + elem.options[elem.options.length] = new Option(newRepr, newId, true, true); + updateRelatedSelectsOptions(elem, win, null, newRepr, newId); + } else if (elemName === 'INPUT') { + if (elem.classList.contains('vManyToManyRawIdAdminField') && elem.value) { + elem.value += ',' + newId; + } else { + elem.value = newId; + } + } + // Trigger a change event to update related links if required. + $(elem).trigger('change'); + } else { + const toId = name + "_to"; + const o = new Option(newRepr, newId); + SelectBox.add_to_cache(toId, o); + SelectBox.redisplay(toId); + } + const index = relatedWindows.indexOf(win); + if (index > -1) { + relatedWindows.splice(index, 1); + } + win.close(); + } + + function dismissChangeRelatedObjectPopup(win, objId, newRepr, newId) { + const id = removePopupIndex(win.name.replace(/^edit_/, '')); + const selectsSelector = interpolate('#%s, #%s_from, #%s_to', [id, id, id]); + const selects = $(selectsSelector); + selects.find('option').each(function() { + if (this.value === objId) { + this.textContent = newRepr; + this.value = newId; + } + }).trigger('change'); + updateRelatedSelectsOptions(selects[0], win, objId, newRepr, newId); + selects.next().find('.select2-selection__rendered').each(function() { + // The element can have a clear button as a child. + // Use the lastChild to modify only the displayed value. + this.lastChild.textContent = newRepr; + this.title = newRepr; + }); + const index = relatedWindows.indexOf(win); + if (index > -1) { + relatedWindows.splice(index, 1); + } + win.close(); + } + + function dismissDeleteRelatedObjectPopup(win, objId) { + const id = removePopupIndex(win.name.replace(/^delete_/, '')); + const selectsSelector = interpolate('#%s, #%s_from, #%s_to', [id, id, id]); + const selects = $(selectsSelector); + selects.find('option').each(function() { + if (this.value === objId) { + $(this).remove(); + } + }).trigger('change'); + const index = relatedWindows.indexOf(win); + if (index > -1) { + relatedWindows.splice(index, 1); + } + win.close(); + } + + window.showRelatedObjectLookupPopup = showRelatedObjectLookupPopup; + window.dismissRelatedLookupPopup = dismissRelatedLookupPopup; + window.showRelatedObjectPopup = showRelatedObjectPopup; + window.updateRelatedObjectLinks = updateRelatedObjectLinks; + window.dismissAddRelatedObjectPopup = dismissAddRelatedObjectPopup; + window.dismissChangeRelatedObjectPopup = dismissChangeRelatedObjectPopup; + window.dismissDeleteRelatedObjectPopup = dismissDeleteRelatedObjectPopup; + window.dismissChildPopups = dismissChildPopups; + + // Kept for backward compatibility + window.showAddAnotherPopup = showRelatedObjectPopup; + window.dismissAddAnotherPopup = dismissAddRelatedObjectPopup; + + window.addEventListener('unload', function(evt) { + window.dismissChildPopups(); + }); + + $(document).ready(function() { + setPopupIndex(); + $("a[data-popup-opener]").on('click', function(event) { + event.preventDefault(); + opener.dismissRelatedLookupPopup(window, $(this).data("popup-opener")); + }); + $('body').on('click', '.related-widget-wrapper-link[data-popup="yes"]', function(e) { + e.preventDefault(); + if (this.href) { + const event = $.Event('django:show-related', {href: this.href}); + $(this).trigger(event); + if (!event.isDefaultPrevented()) { + showRelatedObjectPopup(this); + } + } + }); + $('body').on('change', '.related-widget-wrapper select', function(e) { + const event = $.Event('django:update-related'); + $(this).trigger(event); + if (!event.isDefaultPrevented()) { + updateRelatedObjectLinks(this); + } + }); + $('.related-widget-wrapper select').trigger('change'); + $('body').on('click', '.related-lookup', function(e) { + e.preventDefault(); + const event = $.Event('django:lookup-related'); + $(this).trigger(event); + if (!event.isDefaultPrevented()) { + showRelatedObjectLookupPopup(this); + } + }); + }); +} diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/autocomplete.js b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/autocomplete.js new file mode 100644 index 0000000000..d3daeab890 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/autocomplete.js @@ -0,0 +1,33 @@ +'use strict'; +{ + const $ = django.jQuery; + + $.fn.djangoAdminSelect2 = function() { + $.each(this, function(i, element) { + $(element).select2({ + ajax: { + data: (params) => { + return { + term: params.term, + page: params.page, + app_label: element.dataset.appLabel, + model_name: element.dataset.modelName, + field_name: element.dataset.fieldName + }; + } + } + }); + }); + return this; + }; + + $(function() { + // Initialize all autocomplete widgets except the one in the template + // form used when a new formset is added. + $('.admin-autocomplete').not('[name*=__prefix__]').djangoAdminSelect2(); + }); + + document.addEventListener('formset:added', (event) => { + $(event.target).find('.admin-autocomplete').djangoAdminSelect2(); + }); +} diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/calendar.js b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/calendar.js new file mode 100644 index 0000000000..776310f75b --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/calendar.js @@ -0,0 +1,239 @@ +/*global gettext, pgettext, get_format, quickElement, removeChildren*/ +/* +calendar.js - Calendar functions by Adrian Holovaty +depends on core.js for utility functions like removeChildren or quickElement +*/ +'use strict'; +{ + // CalendarNamespace -- Provides a collection of HTML calendar-related helper functions + const CalendarNamespace = { + monthsOfYear: [ + gettext('January'), + gettext('February'), + gettext('March'), + gettext('April'), + gettext('May'), + gettext('June'), + gettext('July'), + gettext('August'), + gettext('September'), + gettext('October'), + gettext('November'), + gettext('December') + ], + monthsOfYearAbbrev: [ + pgettext('abbrev. month January', 'Jan'), + pgettext('abbrev. month February', 'Feb'), + pgettext('abbrev. month March', 'Mar'), + pgettext('abbrev. month April', 'Apr'), + pgettext('abbrev. month May', 'May'), + pgettext('abbrev. month June', 'Jun'), + pgettext('abbrev. month July', 'Jul'), + pgettext('abbrev. month August', 'Aug'), + pgettext('abbrev. month September', 'Sep'), + pgettext('abbrev. month October', 'Oct'), + pgettext('abbrev. month November', 'Nov'), + pgettext('abbrev. month December', 'Dec') + ], + daysOfWeek: [ + gettext('Sunday'), + gettext('Monday'), + gettext('Tuesday'), + gettext('Wednesday'), + gettext('Thursday'), + gettext('Friday'), + gettext('Saturday') + ], + daysOfWeekAbbrev: [ + pgettext('abbrev. day Sunday', 'Sun'), + pgettext('abbrev. day Monday', 'Mon'), + pgettext('abbrev. day Tuesday', 'Tue'), + pgettext('abbrev. day Wednesday', 'Wed'), + pgettext('abbrev. day Thursday', 'Thur'), + pgettext('abbrev. day Friday', 'Fri'), + pgettext('abbrev. day Saturday', 'Sat') + ], + daysOfWeekInitial: [ + pgettext('one letter Sunday', 'S'), + pgettext('one letter Monday', 'M'), + pgettext('one letter Tuesday', 'T'), + pgettext('one letter Wednesday', 'W'), + pgettext('one letter Thursday', 'T'), + pgettext('one letter Friday', 'F'), + pgettext('one letter Saturday', 'S') + ], + firstDayOfWeek: parseInt(get_format('FIRST_DAY_OF_WEEK')), + isLeapYear: function(year) { + return (((year % 4) === 0) && ((year % 100) !== 0 ) || ((year % 400) === 0)); + }, + getDaysInMonth: function(month, year) { + let days; + if (month === 1 || month === 3 || month === 5 || month === 7 || month === 8 || month === 10 || month === 12) { + days = 31; + } + else if (month === 4 || month === 6 || month === 9 || month === 11) { + days = 30; + } + else if (month === 2 && CalendarNamespace.isLeapYear(year)) { + days = 29; + } + else { + days = 28; + } + return days; + }, + draw: function(month, year, div_id, callback, selected) { // month = 1-12, year = 1-9999 + const today = new Date(); + const todayDay = today.getDate(); + const todayMonth = today.getMonth() + 1; + const todayYear = today.getFullYear(); + let todayClass = ''; + + // Use UTC functions here because the date field does not contain time + // and using the UTC function variants prevent the local time offset + // from altering the date, specifically the day field. For example: + // + // ``` + // var x = new Date('2013-10-02'); + // var day = x.getDate(); + // ``` + // + // The day variable above will be 1 instead of 2 in, say, US Pacific time + // zone. + let isSelectedMonth = false; + if (typeof selected !== 'undefined') { + isSelectedMonth = (selected.getUTCFullYear() === year && (selected.getUTCMonth() + 1) === month); + } + + month = parseInt(month); + year = parseInt(year); + const calDiv = document.getElementById(div_id); + removeChildren(calDiv); + const calTable = document.createElement('table'); + quickElement('caption', calTable, CalendarNamespace.monthsOfYear[month - 1] + ' ' + year); + const tableBody = quickElement('tbody', calTable); + + // Draw days-of-week header + let tableRow = quickElement('tr', tableBody); + for (let i = 0; i < 7; i++) { + quickElement('th', tableRow, CalendarNamespace.daysOfWeekInitial[(i + CalendarNamespace.firstDayOfWeek) % 7]); + } + + const startingPos = new Date(year, month - 1, 1 - CalendarNamespace.firstDayOfWeek).getDay(); + const days = CalendarNamespace.getDaysInMonth(month, year); + + let nonDayCell; + + // Draw blanks before first of month + tableRow = quickElement('tr', tableBody); + for (let i = 0; i < startingPos; i++) { + nonDayCell = quickElement('td', tableRow, ' '); + nonDayCell.className = "nonday"; + } + + function calendarMonth(y, m) { + function onClick(e) { + e.preventDefault(); + callback(y, m, this.textContent); + } + return onClick; + } + + // Draw days of month + let currentDay = 1; + for (let i = startingPos; currentDay <= days; i++) { + if (i % 7 === 0 && currentDay !== 1) { + tableRow = quickElement('tr', tableBody); + } + if ((currentDay === todayDay) && (month === todayMonth) && (year === todayYear)) { + todayClass = 'today'; + } else { + todayClass = ''; + } + + // use UTC function; see above for explanation. + if (isSelectedMonth && currentDay === selected.getUTCDate()) { + if (todayClass !== '') { + todayClass += " "; + } + todayClass += "selected"; + } + + const cell = quickElement('td', tableRow, '', 'class', todayClass); + const link = quickElement('a', cell, currentDay, 'href', '#'); + link.addEventListener('click', calendarMonth(year, month)); + currentDay++; + } + + // Draw blanks after end of month (optional, but makes for valid code) + while (tableRow.childNodes.length < 7) { + nonDayCell = quickElement('td', tableRow, ' '); + nonDayCell.className = "nonday"; + } + + calDiv.appendChild(calTable); + } + }; + + // Calendar -- A calendar instance + function Calendar(div_id, callback, selected) { + // div_id (string) is the ID of the element in which the calendar will + // be displayed + // callback (string) is the name of a JavaScript function that will be + // called with the parameters (year, month, day) when a day in the + // calendar is clicked + this.div_id = div_id; + this.callback = callback; + this.today = new Date(); + this.currentMonth = this.today.getMonth() + 1; + this.currentYear = this.today.getFullYear(); + if (typeof selected !== 'undefined') { + this.selected = selected; + } + } + Calendar.prototype = { + drawCurrent: function() { + CalendarNamespace.draw(this.currentMonth, this.currentYear, this.div_id, this.callback, this.selected); + }, + drawDate: function(month, year, selected) { + this.currentMonth = month; + this.currentYear = year; + + if(selected) { + this.selected = selected; + } + + this.drawCurrent(); + }, + drawPreviousMonth: function() { + if (this.currentMonth === 1) { + this.currentMonth = 12; + this.currentYear--; + } + else { + this.currentMonth--; + } + this.drawCurrent(); + }, + drawNextMonth: function() { + if (this.currentMonth === 12) { + this.currentMonth = 1; + this.currentYear++; + } + else { + this.currentMonth++; + } + this.drawCurrent(); + }, + drawPreviousYear: function() { + this.currentYear--; + this.drawCurrent(); + }, + drawNextYear: function() { + this.currentYear++; + this.drawCurrent(); + } + }; + window.Calendar = Calendar; + window.CalendarNamespace = CalendarNamespace; +} diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/cancel.js b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/cancel.js new file mode 100644 index 0000000000..3069c6f27b --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/cancel.js @@ -0,0 +1,29 @@ +'use strict'; +{ + // Call function fn when the DOM is loaded and ready. If it is already + // loaded, call the function now. + // http://youmightnotneedjquery.com/#ready + function ready(fn) { + if (document.readyState !== 'loading') { + fn(); + } else { + document.addEventListener('DOMContentLoaded', fn); + } + } + + ready(function() { + function handleClick(event) { + event.preventDefault(); + const params = new URLSearchParams(window.location.search); + if (params.has('_popup')) { + window.close(); // Close the popup. + } else { + window.history.back(); // Otherwise, go back. + } + } + + document.querySelectorAll('.cancel-link').forEach(function(el) { + el.addEventListener('click', handleClick); + }); + }); +} diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/change_form.js b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/change_form.js new file mode 100644 index 0000000000..96a4c62ef4 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/change_form.js @@ -0,0 +1,16 @@ +'use strict'; +{ + const inputTags = ['BUTTON', 'INPUT', 'SELECT', 'TEXTAREA']; + const modelName = document.getElementById('django-admin-form-add-constants').dataset.modelName; + if (modelName) { + const form = document.getElementById(modelName + '_form'); + for (const element of form.elements) { + // HTMLElement.offsetParent returns null when the element is not + // rendered. + if (inputTags.includes(element.tagName) && !element.disabled && element.offsetParent) { + element.focus(); + break; + } + } + } +} diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/core.js b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/core.js new file mode 100644 index 0000000000..10504d4a84 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/core.js @@ -0,0 +1,184 @@ +// Core JavaScript helper functions +'use strict'; + +// quickElement(tagType, parentReference [, textInChildNode, attribute, attributeValue ...]); +function quickElement() { + const obj = document.createElement(arguments[0]); + if (arguments[2]) { + const textNode = document.createTextNode(arguments[2]); + obj.appendChild(textNode); + } + const len = arguments.length; + for (let i = 3; i < len; i += 2) { + obj.setAttribute(arguments[i], arguments[i + 1]); + } + arguments[1].appendChild(obj); + return obj; +} + +// "a" is reference to an object +function removeChildren(a) { + while (a.hasChildNodes()) { + a.removeChild(a.lastChild); + } +} + +// ---------------------------------------------------------------------------- +// Find-position functions by PPK +// See https://www.quirksmode.org/js/findpos.html +// ---------------------------------------------------------------------------- +function findPosX(obj) { + let curleft = 0; + if (obj.offsetParent) { + while (obj.offsetParent) { + curleft += obj.offsetLeft - obj.scrollLeft; + obj = obj.offsetParent; + } + } else if (obj.x) { + curleft += obj.x; + } + return curleft; +} + +function findPosY(obj) { + let curtop = 0; + if (obj.offsetParent) { + while (obj.offsetParent) { + curtop += obj.offsetTop - obj.scrollTop; + obj = obj.offsetParent; + } + } else if (obj.y) { + curtop += obj.y; + } + return curtop; +} + +//----------------------------------------------------------------------------- +// Date object extensions +// ---------------------------------------------------------------------------- +{ + Date.prototype.getTwelveHours = function() { + return this.getHours() % 12 || 12; + }; + + Date.prototype.getTwoDigitMonth = function() { + return (this.getMonth() < 9) ? '0' + (this.getMonth() + 1) : (this.getMonth() + 1); + }; + + Date.prototype.getTwoDigitDate = function() { + return (this.getDate() < 10) ? '0' + this.getDate() : this.getDate(); + }; + + Date.prototype.getTwoDigitTwelveHour = function() { + return (this.getTwelveHours() < 10) ? '0' + this.getTwelveHours() : this.getTwelveHours(); + }; + + Date.prototype.getTwoDigitHour = function() { + return (this.getHours() < 10) ? '0' + this.getHours() : this.getHours(); + }; + + Date.prototype.getTwoDigitMinute = function() { + return (this.getMinutes() < 10) ? '0' + this.getMinutes() : this.getMinutes(); + }; + + Date.prototype.getTwoDigitSecond = function() { + return (this.getSeconds() < 10) ? '0' + this.getSeconds() : this.getSeconds(); + }; + + Date.prototype.getAbbrevDayName = function() { + return typeof window.CalendarNamespace === "undefined" + ? '0' + this.getDay() + : window.CalendarNamespace.daysOfWeekAbbrev[this.getDay()]; + }; + + Date.prototype.getFullDayName = function() { + return typeof window.CalendarNamespace === "undefined" + ? '0' + this.getDay() + : window.CalendarNamespace.daysOfWeek[this.getDay()]; + }; + + Date.prototype.getAbbrevMonthName = function() { + return typeof window.CalendarNamespace === "undefined" + ? this.getTwoDigitMonth() + : window.CalendarNamespace.monthsOfYearAbbrev[this.getMonth()]; + }; + + Date.prototype.getFullMonthName = function() { + return typeof window.CalendarNamespace === "undefined" + ? this.getTwoDigitMonth() + : window.CalendarNamespace.monthsOfYear[this.getMonth()]; + }; + + Date.prototype.strftime = function(format) { + const fields = { + a: this.getAbbrevDayName(), + A: this.getFullDayName(), + b: this.getAbbrevMonthName(), + B: this.getFullMonthName(), + c: this.toString(), + d: this.getTwoDigitDate(), + H: this.getTwoDigitHour(), + I: this.getTwoDigitTwelveHour(), + m: this.getTwoDigitMonth(), + M: this.getTwoDigitMinute(), + p: (this.getHours() >= 12) ? 'PM' : 'AM', + S: this.getTwoDigitSecond(), + w: '0' + this.getDay(), + x: this.toLocaleDateString(), + X: this.toLocaleTimeString(), + y: ('' + this.getFullYear()).substr(2, 4), + Y: '' + this.getFullYear(), + '%': '%' + }; + let result = '', i = 0; + while (i < format.length) { + if (format.charAt(i) === '%') { + result += fields[format.charAt(i + 1)]; + ++i; + } + else { + result += format.charAt(i); + } + ++i; + } + return result; + }; + + // ---------------------------------------------------------------------------- + // String object extensions + // ---------------------------------------------------------------------------- + String.prototype.strptime = function(format) { + const split_format = format.split(/[.\-/]/); + const date = this.split(/[.\-/]/); + let i = 0; + let day, month, year; + while (i < split_format.length) { + switch (split_format[i]) { + case "%d": + day = date[i]; + break; + case "%m": + month = date[i] - 1; + break; + case "%Y": + year = date[i]; + break; + case "%y": + // A %y value in the range of [00, 68] is in the current + // century, while [69, 99] is in the previous century, + // according to the Open Group Specification. + if (parseInt(date[i], 10) >= 69) { + year = date[i]; + } else { + year = (new Date(Date.UTC(date[i], 0))).getUTCFullYear() + 100; + } + break; + } + ++i; + } + // Create Date object from UTC since the parsed value is supposed to be + // in UTC, not local time. Also, the calendar uses UTC functions for + // date extraction. + return new Date(Date.UTC(year, month, day)); + }; +} diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/filters.js b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/filters.js new file mode 100644 index 0000000000..f5536ebc2d --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/filters.js @@ -0,0 +1,30 @@ +/** + * Persist changelist filters state (collapsed/expanded). + */ +'use strict'; +{ + // Init filters. + let filters = JSON.parse(sessionStorage.getItem('django.admin.filtersState')); + + if (!filters) { + filters = {}; + } + + Object.entries(filters).forEach(([key, value]) => { + const detailElement = document.querySelector(`[data-filter-title='${CSS.escape(key)}']`); + + // Check if the filter is present, it could be from other view. + if (detailElement) { + value ? detailElement.setAttribute('open', '') : detailElement.removeAttribute('open'); + } + }); + + // Save filter state when clicks. + const details = document.querySelectorAll('details'); + details.forEach(detail => { + detail.addEventListener('toggle', event => { + filters[`${event.target.dataset.filterTitle}`] = detail.open; + sessionStorage.setItem('django.admin.filtersState', JSON.stringify(filters)); + }); + }); +} diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/inlines.js b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/inlines.js new file mode 100644 index 0000000000..e9a1dfe122 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/inlines.js @@ -0,0 +1,359 @@ +/*global DateTimeShortcuts, SelectFilter*/ +/** + * Django admin inlines + * + * Based on jQuery Formset 1.1 + * @author Stanislaus Madueke (stan DOT madueke AT gmail DOT com) + * @requires jQuery 1.2.6 or later + * + * Copyright (c) 2009, Stanislaus Madueke + * All rights reserved. + * + * Spiced up with Code from Zain Memon's GSoC project 2009 + * and modified for Django by Jannis Leidel, Travis Swicegood and Julien Phalip. + * + * Licensed under the New BSD License + * See: https://opensource.org/licenses/bsd-license.php + */ +'use strict'; +{ + const $ = django.jQuery; + $.fn.formset = function(opts) { + const options = $.extend({}, $.fn.formset.defaults, opts); + const $this = $(this); + const $parent = $this.parent(); + const updateElementIndex = function(el, prefix, ndx) { + const id_regex = new RegExp("(" + prefix + "-(\\d+|__prefix__))"); + const replacement = prefix + "-" + ndx; + if ($(el).prop("for")) { + $(el).prop("for", $(el).prop("for").replace(id_regex, replacement)); + } + if (el.id) { + el.id = el.id.replace(id_regex, replacement); + } + if (el.name) { + el.name = el.name.replace(id_regex, replacement); + } + }; + const totalForms = $("#id_" + options.prefix + "-TOTAL_FORMS").prop("autocomplete", "off"); + let nextIndex = parseInt(totalForms.val(), 10); + const maxForms = $("#id_" + options.prefix + "-MAX_NUM_FORMS").prop("autocomplete", "off"); + const minForms = $("#id_" + options.prefix + "-MIN_NUM_FORMS").prop("autocomplete", "off"); + let addButton; + + /** + * The "Add another MyModel" button below the inline forms. + */ + const addInlineAddButton = function() { + if (addButton === null) { + if ($this.prop("tagName") === "TR") { + // If forms are laid out as table rows, insert the + // "add" button in a new table row: + const numCols = $this.eq(-1).children().length; + $parent.append('<tr class="' + options.addCssClass + '"><td colspan="' + numCols + '"><a href="#">' + options.addText + "</a></tr>"); + addButton = $parent.find("tr:last a"); + } else { + // Otherwise, insert it immediately after the last form: + $this.filter(":last").after('<div class="' + options.addCssClass + '"><a href="#">' + options.addText + "</a></div>"); + addButton = $this.filter(":last").next().find("a"); + } + } + addButton.on('click', addInlineClickHandler); + }; + + const addInlineClickHandler = function(e) { + e.preventDefault(); + const template = $("#" + options.prefix + "-empty"); + const row = template.clone(true); + row.removeClass(options.emptyCssClass) + .addClass(options.formCssClass) + .attr("id", options.prefix + "-" + nextIndex); + addInlineDeleteButton(row); + row.find("*").each(function() { + updateElementIndex(this, options.prefix, totalForms.val()); + }); + // Insert the new form when it has been fully edited. + row.insertBefore($(template)); + // Update number of total forms. + $(totalForms).val(parseInt(totalForms.val(), 10) + 1); + nextIndex += 1; + // Hide the add button if there's a limit and it's been reached. + if ((maxForms.val() !== '') && (maxForms.val() - totalForms.val()) <= 0) { + addButton.parent().hide(); + } + // Show the remove buttons if there are more than min_num. + toggleDeleteButtonVisibility(row.closest('.inline-group')); + + // Pass the new form to the post-add callback, if provided. + if (options.added) { + options.added(row); + } + row.get(0).dispatchEvent(new CustomEvent("formset:added", { + bubbles: true, + detail: { + formsetName: options.prefix + } + })); + }; + + /** + * The "X" button that is part of every unsaved inline. + * (When saved, it is replaced with a "Delete" checkbox.) + */ + const addInlineDeleteButton = function(row) { + if (row.is("tr")) { + // If the forms are laid out in table rows, insert + // the remove button into the last table cell: + row.children(":last").append('<div><a class="' + options.deleteCssClass + '" href="#">' + options.deleteText + "</a></div>"); + } else if (row.is("ul") || row.is("ol")) { + // If they're laid out as an ordered/unordered list, + // insert an <li> after the last list item: + row.append('<li><a class="' + options.deleteCssClass + '" href="#">' + options.deleteText + "</a></li>"); + } else { + // Otherwise, just insert the remove button as the + // last child element of the form's container: + row.children(":first").append('<span><a class="' + options.deleteCssClass + '" href="#">' + options.deleteText + "</a></span>"); + } + // Add delete handler for each row. + row.find("a." + options.deleteCssClass).on('click', inlineDeleteHandler.bind(this)); + }; + + const inlineDeleteHandler = function(e1) { + e1.preventDefault(); + const deleteButton = $(e1.target); + const row = deleteButton.closest('.' + options.formCssClass); + const inlineGroup = row.closest('.inline-group'); + // Remove the parent form containing this button, + // and also remove the relevant row with non-field errors: + const prevRow = row.prev(); + if (prevRow.length && prevRow.hasClass('row-form-errors')) { + prevRow.remove(); + } + row.remove(); + nextIndex -= 1; + // Pass the deleted form to the post-delete callback, if provided. + if (options.removed) { + options.removed(row); + } + document.dispatchEvent(new CustomEvent("formset:removed", { + detail: { + formsetName: options.prefix + } + })); + // Update the TOTAL_FORMS form count. + const forms = $("." + options.formCssClass); + $("#id_" + options.prefix + "-TOTAL_FORMS").val(forms.length); + // Show add button again once below maximum number. + if ((maxForms.val() === '') || (maxForms.val() - forms.length) > 0) { + addButton.parent().show(); + } + // Hide the remove buttons if at min_num. + toggleDeleteButtonVisibility(inlineGroup); + // Also, update names and ids for all remaining form controls so + // they remain in sequence: + let i, formCount; + const updateElementCallback = function() { + updateElementIndex(this, options.prefix, i); + }; + for (i = 0, formCount = forms.length; i < formCount; i++) { + updateElementIndex($(forms).get(i), options.prefix, i); + $(forms.get(i)).find("*").each(updateElementCallback); + } + }; + + const toggleDeleteButtonVisibility = function(inlineGroup) { + if ((minForms.val() !== '') && (minForms.val() - totalForms.val()) >= 0) { + inlineGroup.find('.inline-deletelink').hide(); + } else { + inlineGroup.find('.inline-deletelink').show(); + } + }; + + $this.each(function(i) { + $(this).not("." + options.emptyCssClass).addClass(options.formCssClass); + }); + + // Create the delete buttons for all unsaved inlines: + $this.filter('.' + options.formCssClass + ':not(.has_original):not(.' + options.emptyCssClass + ')').each(function() { + addInlineDeleteButton($(this)); + }); + toggleDeleteButtonVisibility($this); + + // Create the add button, initially hidden. + addButton = options.addButton; + addInlineAddButton(); + + // Show the add button if allowed to add more items. + // Note that max_num = None translates to a blank string. + const showAddButton = maxForms.val() === '' || (maxForms.val() - totalForms.val()) > 0; + if ($this.length && showAddButton) { + addButton.parent().show(); + } else { + addButton.parent().hide(); + } + + return this; + }; + + /* Setup plugin defaults */ + $.fn.formset.defaults = { + prefix: "form", // The form prefix for your django formset + addText: "add another", // Text for the add link + deleteText: "remove", // Text for the delete link + addCssClass: "add-row", // CSS class applied to the add link + deleteCssClass: "delete-row", // CSS class applied to the delete link + emptyCssClass: "empty-row", // CSS class applied to the empty row + formCssClass: "dynamic-form", // CSS class applied to each form in a formset + added: null, // Function called each time a new form is added + removed: null, // Function called each time a form is deleted + addButton: null // Existing add button to use + }; + + + // Tabular inlines --------------------------------------------------------- + $.fn.tabularFormset = function(selector, options) { + const $rows = $(this); + + const reinitDateTimeShortCuts = function() { + // Reinitialize the calendar and clock widgets by force + if (typeof DateTimeShortcuts !== "undefined") { + $(".datetimeshortcuts").remove(); + DateTimeShortcuts.init(); + } + }; + + const updateSelectFilter = function() { + // If any SelectFilter widgets are a part of the new form, + // instantiate a new SelectFilter instance for it. + if (typeof SelectFilter !== 'undefined') { + $('.selectfilter').each(function(index, value) { + SelectFilter.init(value.id, this.dataset.fieldName, false); + }); + $('.selectfilterstacked').each(function(index, value) { + SelectFilter.init(value.id, this.dataset.fieldName, true); + }); + } + }; + + const initPrepopulatedFields = function(row) { + row.find('.prepopulated_field').each(function() { + const field = $(this), + input = field.find('input, select, textarea'), + dependency_list = input.data('dependency_list') || [], + dependencies = []; + $.each(dependency_list, function(i, field_name) { + dependencies.push('#' + row.find('.field-' + field_name).find('input, select, textarea').attr('id')); + }); + if (dependencies.length) { + input.prepopulate(dependencies, input.attr('maxlength')); + } + }); + }; + + $rows.formset({ + prefix: options.prefix, + addText: options.addText, + formCssClass: "dynamic-" + options.prefix, + deleteCssClass: "inline-deletelink", + deleteText: options.deleteText, + emptyCssClass: "empty-form", + added: function(row) { + initPrepopulatedFields(row); + reinitDateTimeShortCuts(); + updateSelectFilter(); + }, + addButton: options.addButton + }); + + return $rows; + }; + + // Stacked inlines --------------------------------------------------------- + $.fn.stackedFormset = function(selector, options) { + const $rows = $(this); + const updateInlineLabel = function(row) { + $(selector).find(".inline_label").each(function(i) { + const count = i + 1; + $(this).html($(this).html().replace(/(#\d+)/g, "#" + count)); + }); + }; + + const reinitDateTimeShortCuts = function() { + // Reinitialize the calendar and clock widgets by force, yuck. + if (typeof DateTimeShortcuts !== "undefined") { + $(".datetimeshortcuts").remove(); + DateTimeShortcuts.init(); + } + }; + + const updateSelectFilter = function() { + // If any SelectFilter widgets were added, instantiate a new instance. + if (typeof SelectFilter !== "undefined") { + $(".selectfilter").each(function(index, value) { + SelectFilter.init(value.id, this.dataset.fieldName, false); + }); + $(".selectfilterstacked").each(function(index, value) { + SelectFilter.init(value.id, this.dataset.fieldName, true); + }); + } + }; + + const initPrepopulatedFields = function(row) { + row.find('.prepopulated_field').each(function() { + const field = $(this), + input = field.find('input, select, textarea'), + dependency_list = input.data('dependency_list') || [], + dependencies = []; + $.each(dependency_list, function(i, field_name) { + // Dependency in a fieldset. + let field_element = row.find('.form-row .field-' + field_name); + // Dependency without a fieldset. + if (!field_element.length) { + field_element = row.find('.form-row.field-' + field_name); + } + dependencies.push('#' + field_element.find('input, select, textarea').attr('id')); + }); + if (dependencies.length) { + input.prepopulate(dependencies, input.attr('maxlength')); + } + }); + }; + + $rows.formset({ + prefix: options.prefix, + addText: options.addText, + formCssClass: "dynamic-" + options.prefix, + deleteCssClass: "inline-deletelink", + deleteText: options.deleteText, + emptyCssClass: "empty-form", + removed: updateInlineLabel, + added: function(row) { + initPrepopulatedFields(row); + reinitDateTimeShortCuts(); + updateSelectFilter(); + updateInlineLabel(row); + }, + addButton: options.addButton + }); + + return $rows; + }; + + $(document).ready(function() { + $(".js-inline-admin-formset").each(function() { + const data = $(this).data(), + inlineOptions = data.inlineFormset; + let selector; + switch(data.inlineType) { + case "stacked": + selector = inlineOptions.name + "-group .inline-related"; + $(selector).stackedFormset(selector, inlineOptions.options); + break; + case "tabular": + selector = inlineOptions.name + "-group .tabular.inline-related tbody:first > tr.form-row"; + $(selector).tabularFormset(selector, inlineOptions.options); + break; + } + }); + }); +} diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/jquery.init.js b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/jquery.init.js new file mode 100644 index 0000000000..f40b27f47d --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/jquery.init.js @@ -0,0 +1,8 @@ +/*global jQuery:false*/ +'use strict'; +/* Puts the included jQuery into our own namespace using noConflict and passing + * it 'true'. This ensures that the included jQuery doesn't pollute the global + * namespace (i.e. this preserves pre-existing values for both window.$ and + * window.jQuery). + */ +window.django = {jQuery: jQuery.noConflict(true)}; diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/nav_sidebar.js b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/nav_sidebar.js new file mode 100644 index 0000000000..7e735db15c --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/nav_sidebar.js @@ -0,0 +1,79 @@ +'use strict'; +{ + const toggleNavSidebar = document.getElementById('toggle-nav-sidebar'); + if (toggleNavSidebar !== null) { + const navSidebar = document.getElementById('nav-sidebar'); + const main = document.getElementById('main'); + let navSidebarIsOpen = localStorage.getItem('django.admin.navSidebarIsOpen'); + if (navSidebarIsOpen === null) { + navSidebarIsOpen = 'true'; + } + main.classList.toggle('shifted', navSidebarIsOpen === 'true'); + navSidebar.setAttribute('aria-expanded', navSidebarIsOpen); + + toggleNavSidebar.addEventListener('click', function() { + if (navSidebarIsOpen === 'true') { + navSidebarIsOpen = 'false'; + } else { + navSidebarIsOpen = 'true'; + } + localStorage.setItem('django.admin.navSidebarIsOpen', navSidebarIsOpen); + main.classList.toggle('shifted'); + navSidebar.setAttribute('aria-expanded', navSidebarIsOpen); + }); + } + + function initSidebarQuickFilter() { + const options = []; + const navSidebar = document.getElementById('nav-sidebar'); + if (!navSidebar) { + return; + } + navSidebar.querySelectorAll('th[scope=row] a').forEach((container) => { + options.push({title: container.innerHTML, node: container}); + }); + + function checkValue(event) { + let filterValue = event.target.value; + if (filterValue) { + filterValue = filterValue.toLowerCase(); + } + if (event.key === 'Escape') { + filterValue = ''; + event.target.value = ''; // clear input + } + let matches = false; + for (const o of options) { + let displayValue = ''; + if (filterValue) { + if (o.title.toLowerCase().indexOf(filterValue) === -1) { + displayValue = 'none'; + } else { + matches = true; + } + } + // show/hide parent <TR> + o.node.parentNode.parentNode.style.display = displayValue; + } + if (!filterValue || matches) { + event.target.classList.remove('no-results'); + } else { + event.target.classList.add('no-results'); + } + sessionStorage.setItem('django.admin.navSidebarFilterValue', filterValue); + } + + const nav = document.getElementById('nav-filter'); + nav.addEventListener('change', checkValue, false); + nav.addEventListener('input', checkValue, false); + nav.addEventListener('keyup', checkValue, false); + + const storedValue = sessionStorage.getItem('django.admin.navSidebarFilterValue'); + if (storedValue) { + nav.value = storedValue; + checkValue({target: nav, key: ''}); + } + } + window.initSidebarQuickFilter = initSidebarQuickFilter; + initSidebarQuickFilter(); +} diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/popup_response.js b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/popup_response.js new file mode 100644 index 0000000000..fecf0f4798 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/popup_response.js @@ -0,0 +1,15 @@ +'use strict'; +{ + const initData = JSON.parse(document.getElementById('django-admin-popup-response-constants').dataset.popupResponse); + switch(initData.action) { + case 'change': + opener.dismissChangeRelatedObjectPopup(window, initData.value, initData.obj, initData.new_value); + break; + case 'delete': + opener.dismissDeleteRelatedObjectPopup(window, initData.value); + break; + default: + opener.dismissAddRelatedObjectPopup(window, initData.value, initData.obj); + break; + } +} diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/prepopulate.js b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/prepopulate.js new file mode 100644 index 0000000000..89e95ab44d --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/prepopulate.js @@ -0,0 +1,43 @@ +/*global URLify*/ +'use strict'; +{ + const $ = django.jQuery; + $.fn.prepopulate = function(dependencies, maxLength, allowUnicode) { + /* + Depends on urlify.js + Populates a selected field with the values of the dependent fields, + URLifies and shortens the string. + dependencies - array of dependent fields ids + maxLength - maximum length of the URLify'd string + allowUnicode - Unicode support of the URLify'd string + */ + return this.each(function() { + const prepopulatedField = $(this); + + const populate = function() { + // Bail if the field's value has been changed by the user + if (prepopulatedField.data('_changed')) { + return; + } + + const values = []; + $.each(dependencies, function(i, field) { + field = $(field); + if (field.val().length > 0) { + values.push(field.val()); + } + }); + prepopulatedField.val(URLify(values.join(' '), maxLength, allowUnicode)); + }; + + prepopulatedField.data('_changed', false); + prepopulatedField.on('change', function() { + prepopulatedField.data('_changed', true); + }); + + if (!prepopulatedField.val()) { + $(dependencies.join(',')).on('keyup change focus', populate); + } + }); + }; +} diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/prepopulate_init.js b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/prepopulate_init.js new file mode 100644 index 0000000000..a58841f004 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/prepopulate_init.js @@ -0,0 +1,15 @@ +'use strict'; +{ + const $ = django.jQuery; + const fields = $('#django-admin-prepopulated-fields-constants').data('prepopulatedFields'); + $.each(fields, function(index, field) { + $( + '.empty-form .form-row .field-' + field.name + + ', .empty-form.form-row .field-' + field.name + + ', .empty-form .form-row.field-' + field.name + ).addClass('prepopulated_field'); + $(field.id).data('dependency_list', field.dependency_list).prepopulate( + field.dependency_ids, field.maxLength, field.allowUnicode + ); + }); +} diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/theme.js b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/theme.js new file mode 100644 index 0000000000..e79d375c55 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/theme.js @@ -0,0 +1,51 @@ +'use strict'; +{ + function setTheme(mode) { + if (mode !== "light" && mode !== "dark" && mode !== "auto") { + console.error(`Got invalid theme mode: ${mode}. Resetting to auto.`); + mode = "auto"; + } + document.documentElement.dataset.theme = mode; + localStorage.setItem("theme", mode); + } + + function cycleTheme() { + const currentTheme = localStorage.getItem("theme") || "auto"; + const prefersDark = window.matchMedia("(prefers-color-scheme: dark)").matches; + + if (prefersDark) { + // Auto (dark) -> Light -> Dark + if (currentTheme === "auto") { + setTheme("light"); + } else if (currentTheme === "light") { + setTheme("dark"); + } else { + setTheme("auto"); + } + } else { + // Auto (light) -> Dark -> Light + if (currentTheme === "auto") { + setTheme("dark"); + } else if (currentTheme === "dark") { + setTheme("light"); + } else { + setTheme("auto"); + } + } + } + + function initTheme() { + // set theme defined in localStorage if there is one, or fallback to auto mode + const currentTheme = localStorage.getItem("theme"); + currentTheme ? setTheme(currentTheme) : setTheme("auto"); + } + + window.addEventListener('load', function(_) { + const buttons = document.getElementsByClassName("theme-toggle"); + Array.from(buttons).forEach((btn) => { + btn.addEventListener("click", cycleTheme); + }); + }); + + initTheme(); +} diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/unusable_password_field.js b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/unusable_password_field.js new file mode 100644 index 0000000000..ec26238c29 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/unusable_password_field.js @@ -0,0 +1,29 @@ +"use strict"; +// Fallback JS for browsers which do not support :has selector used in +// admin/css/unusable_password_fields.css +// Remove file once all supported browsers support :has selector +try { + // If browser does not support :has selector this will raise an error + document.querySelector("form:has(input)"); +} catch (error) { + console.log("Defaulting to javascript for usable password form management: " + error); + // JS replacement for unsupported :has selector + document.querySelectorAll('input[name="usable_password"]').forEach(option => { + option.addEventListener('change', function() { + const usablePassword = (this.value === "true" ? this.checked : !this.checked); + const submit1 = document.querySelector('input[type="submit"].set-password'); + const submit2 = document.querySelector('input[type="submit"].unset-password'); + const messages = document.querySelector('#id_unusable_warning'); + document.getElementById('id_password1').closest('.form-row').hidden = !usablePassword; + document.getElementById('id_password2').closest('.form-row').hidden = !usablePassword; + if (messages) { + messages.hidden = usablePassword; + } + if (submit1 && submit2) { + submit1.hidden = !usablePassword; + submit2.hidden = usablePassword; + } + }); + option.dispatchEvent(new Event('change')); + }); +} diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/urlify.js b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/urlify.js new file mode 100644 index 0000000000..9fc0409496 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/urlify.js @@ -0,0 +1,169 @@ +/*global XRegExp*/ +'use strict'; +{ + const LATIN_MAP = { + 'À': 'A', 'Á': 'A', 'Â': 'A', 'Ã': 'A', 'Ä': 'A', 'Å': 'A', 'Æ': 'AE', + 'Ç': 'C', 'È': 'E', 'É': 'E', 'Ê': 'E', 'Ë': 'E', 'Ì': 'I', 'Í': 'I', + 'Î': 'I', 'Ï': 'I', 'Ð': 'D', 'Ñ': 'N', 'Ò': 'O', 'Ó': 'O', 'Ô': 'O', + 'Õ': 'O', 'Ö': 'O', 'Ő': 'O', 'Ø': 'O', 'Ù': 'U', 'Ú': 'U', 'Û': 'U', + 'Ü': 'U', 'Ű': 'U', 'Ý': 'Y', 'Þ': 'TH', 'Ÿ': 'Y', 'ß': 'ss', 'à': 'a', + 'á': 'a', 'â': 'a', 'ã': 'a', 'ä': 'a', 'å': 'a', 'æ': 'ae', 'ç': 'c', + 'è': 'e', 'é': 'e', 'ê': 'e', 'ë': 'e', 'ì': 'i', 'í': 'i', 'î': 'i', + 'ï': 'i', 'ð': 'd', 'ñ': 'n', 'ò': 'o', 'ó': 'o', 'ô': 'o', 'õ': 'o', + 'ö': 'o', 'ő': 'o', 'ø': 'o', 'ù': 'u', 'ú': 'u', 'û': 'u', 'ü': 'u', + 'ű': 'u', 'ý': 'y', 'þ': 'th', 'ÿ': 'y' + }; + const LATIN_SYMBOLS_MAP = { + '©': '(c)' + }; + const GREEK_MAP = { + 'α': 'a', 'β': 'b', 'γ': 'g', 'δ': 'd', 'ε': 'e', 'ζ': 'z', 'η': 'h', + 'θ': '8', 'ι': 'i', 'κ': 'k', 'λ': 'l', 'μ': 'm', 'ν': 'n', 'ξ': '3', + 'ο': 'o', 'π': 'p', 'ρ': 'r', 'σ': 's', 'τ': 't', 'υ': 'y', 'φ': 'f', + 'χ': 'x', 'ψ': 'ps', 'ω': 'w', 'ά': 'a', 'έ': 'e', 'ί': 'i', 'ό': 'o', + 'ύ': 'y', 'ή': 'h', 'ώ': 'w', 'ς': 's', 'ϊ': 'i', 'ΰ': 'y', 'ϋ': 'y', + 'ΐ': 'i', 'Α': 'A', 'Β': 'B', 'Γ': 'G', 'Δ': 'D', 'Ε': 'E', 'Ζ': 'Z', + 'Η': 'H', 'Θ': '8', 'Ι': 'I', 'Κ': 'K', 'Λ': 'L', 'Μ': 'M', 'Ν': 'N', + 'Ξ': '3', 'Ο': 'O', 'Π': 'P', 'Ρ': 'R', 'Σ': 'S', 'Τ': 'T', 'Υ': 'Y', + 'Φ': 'F', 'Χ': 'X', 'Ψ': 'PS', 'Ω': 'W', 'Ά': 'A', 'Έ': 'E', 'Ί': 'I', + 'Ό': 'O', 'Ύ': 'Y', 'Ή': 'H', 'Ώ': 'W', 'Ϊ': 'I', 'Ϋ': 'Y' + }; + const TURKISH_MAP = { + 'ş': 's', 'Ş': 'S', 'ı': 'i', 'İ': 'I', 'ç': 'c', 'Ç': 'C', 'ü': 'u', + 'Ü': 'U', 'ö': 'o', 'Ö': 'O', 'ğ': 'g', 'Ğ': 'G' + }; + const ROMANIAN_MAP = { + 'ă': 'a', 'î': 'i', 'ș': 's', 'ț': 't', 'â': 'a', + 'Ă': 'A', 'Î': 'I', 'Ș': 'S', 'Ț': 'T', 'Â': 'A' + }; + const RUSSIAN_MAP = { + 'а': 'a', 'б': 'b', 'в': 'v', 'г': 'g', 'д': 'd', 'е': 'e', 'ё': 'yo', + 'ж': 'zh', 'з': 'z', 'и': 'i', 'й': 'j', 'к': 'k', 'л': 'l', 'м': 'm', + 'н': 'n', 'о': 'o', 'п': 'p', 'р': 'r', 'с': 's', 'т': 't', 'у': 'u', + 'ф': 'f', 'х': 'h', 'ц': 'c', 'ч': 'ch', 'ш': 'sh', 'щ': 'sh', 'ъ': '', + 'ы': 'y', 'ь': '', 'э': 'e', 'ю': 'yu', 'я': 'ya', + 'А': 'A', 'Б': 'B', 'В': 'V', 'Г': 'G', 'Д': 'D', 'Е': 'E', 'Ё': 'Yo', + 'Ж': 'Zh', 'З': 'Z', 'И': 'I', 'Й': 'J', 'К': 'K', 'Л': 'L', 'М': 'M', + 'Н': 'N', 'О': 'O', 'П': 'P', 'Р': 'R', 'С': 'S', 'Т': 'T', 'У': 'U', + 'Ф': 'F', 'Х': 'H', 'Ц': 'C', 'Ч': 'Ch', 'Ш': 'Sh', 'Щ': 'Sh', 'Ъ': '', + 'Ы': 'Y', 'Ь': '', 'Э': 'E', 'Ю': 'Yu', 'Я': 'Ya' + }; + const UKRAINIAN_MAP = { + 'Є': 'Ye', 'І': 'I', 'Ї': 'Yi', 'Ґ': 'G', 'є': 'ye', 'і': 'i', + 'ї': 'yi', 'ґ': 'g' + }; + const CZECH_MAP = { + 'č': 'c', 'ď': 'd', 'ě': 'e', 'ň': 'n', 'ř': 'r', 'š': 's', 'ť': 't', + 'ů': 'u', 'ž': 'z', 'Č': 'C', 'Ď': 'D', 'Ě': 'E', 'Ň': 'N', 'Ř': 'R', + 'Š': 'S', 'Ť': 'T', 'Ů': 'U', 'Ž': 'Z' + }; + const SLOVAK_MAP = { + 'á': 'a', 'ä': 'a', 'č': 'c', 'ď': 'd', 'é': 'e', 'í': 'i', 'ľ': 'l', + 'ĺ': 'l', 'ň': 'n', 'ó': 'o', 'ô': 'o', 'ŕ': 'r', 'š': 's', 'ť': 't', + 'ú': 'u', 'ý': 'y', 'ž': 'z', + 'Á': 'a', 'Ä': 'A', 'Č': 'C', 'Ď': 'D', 'É': 'E', 'Í': 'I', 'Ľ': 'L', + 'Ĺ': 'L', 'Ň': 'N', 'Ó': 'O', 'Ô': 'O', 'Ŕ': 'R', 'Š': 'S', 'Ť': 'T', + 'Ú': 'U', 'Ý': 'Y', 'Ž': 'Z' + }; + const POLISH_MAP = { + 'ą': 'a', 'ć': 'c', 'ę': 'e', 'ł': 'l', 'ń': 'n', 'ó': 'o', 'ś': 's', + 'ź': 'z', 'ż': 'z', + 'Ą': 'A', 'Ć': 'C', 'Ę': 'E', 'Ł': 'L', 'Ń': 'N', 'Ó': 'O', 'Ś': 'S', + 'Ź': 'Z', 'Ż': 'Z' + }; + const LATVIAN_MAP = { + 'ā': 'a', 'č': 'c', 'ē': 'e', 'ģ': 'g', 'ī': 'i', 'ķ': 'k', 'ļ': 'l', + 'ņ': 'n', 'š': 's', 'ū': 'u', 'ž': 'z', + 'Ā': 'A', 'Č': 'C', 'Ē': 'E', 'Ģ': 'G', 'Ī': 'I', 'Ķ': 'K', 'Ļ': 'L', + 'Ņ': 'N', 'Š': 'S', 'Ū': 'U', 'Ž': 'Z' + }; + const ARABIC_MAP = { + 'أ': 'a', 'ب': 'b', 'ت': 't', 'ث': 'th', 'ج': 'g', 'ح': 'h', 'خ': 'kh', 'د': 'd', + 'ذ': 'th', 'ر': 'r', 'ز': 'z', 'س': 's', 'ش': 'sh', 'ص': 's', 'ض': 'd', 'ط': 't', + 'ظ': 'th', 'ع': 'aa', 'غ': 'gh', 'ف': 'f', 'ق': 'k', 'ك': 'k', 'ل': 'l', 'م': 'm', + 'ن': 'n', 'ه': 'h', 'و': 'o', 'ي': 'y' + }; + const LITHUANIAN_MAP = { + 'ą': 'a', 'č': 'c', 'ę': 'e', 'ė': 'e', 'į': 'i', 'š': 's', 'ų': 'u', + 'ū': 'u', 'ž': 'z', + 'Ą': 'A', 'Č': 'C', 'Ę': 'E', 'Ė': 'E', 'Į': 'I', 'Š': 'S', 'Ų': 'U', + 'Ū': 'U', 'Ž': 'Z' + }; + const SERBIAN_MAP = { + 'ђ': 'dj', 'ј': 'j', 'љ': 'lj', 'њ': 'nj', 'ћ': 'c', 'џ': 'dz', + 'đ': 'dj', 'Ђ': 'Dj', 'Ј': 'j', 'Љ': 'Lj', 'Њ': 'Nj', 'Ћ': 'C', + 'Џ': 'Dz', 'Đ': 'Dj' + }; + const AZERBAIJANI_MAP = { + 'ç': 'c', 'ə': 'e', 'ğ': 'g', 'ı': 'i', 'ö': 'o', 'ş': 's', 'ü': 'u', + 'Ç': 'C', 'Ə': 'E', 'Ğ': 'G', 'İ': 'I', 'Ö': 'O', 'Ş': 'S', 'Ü': 'U' + }; + const GEORGIAN_MAP = { + 'ა': 'a', 'ბ': 'b', 'გ': 'g', 'დ': 'd', 'ე': 'e', 'ვ': 'v', 'ზ': 'z', + 'თ': 't', 'ი': 'i', 'კ': 'k', 'ლ': 'l', 'მ': 'm', 'ნ': 'n', 'ო': 'o', + 'პ': 'p', 'ჟ': 'j', 'რ': 'r', 'ს': 's', 'ტ': 't', 'უ': 'u', 'ფ': 'f', + 'ქ': 'q', 'ღ': 'g', 'ყ': 'y', 'შ': 'sh', 'ჩ': 'ch', 'ც': 'c', 'ძ': 'dz', + 'წ': 'w', 'ჭ': 'ch', 'ხ': 'x', 'ჯ': 'j', 'ჰ': 'h' + }; + + const ALL_DOWNCODE_MAPS = [ + LATIN_MAP, + LATIN_SYMBOLS_MAP, + GREEK_MAP, + TURKISH_MAP, + ROMANIAN_MAP, + RUSSIAN_MAP, + UKRAINIAN_MAP, + CZECH_MAP, + SLOVAK_MAP, + POLISH_MAP, + LATVIAN_MAP, + ARABIC_MAP, + LITHUANIAN_MAP, + SERBIAN_MAP, + AZERBAIJANI_MAP, + GEORGIAN_MAP + ]; + + const Downcoder = { + 'Initialize': function() { + if (Downcoder.map) { // already made + return; + } + Downcoder.map = {}; + for (const lookup of ALL_DOWNCODE_MAPS) { + Object.assign(Downcoder.map, lookup); + } + Downcoder.regex = new RegExp(Object.keys(Downcoder.map).join('|'), 'g'); + } + }; + + function downcode(slug) { + Downcoder.Initialize(); + return slug.replace(Downcoder.regex, function(m) { + return Downcoder.map[m]; + }); + } + + + function URLify(s, num_chars, allowUnicode) { + // changes, e.g., "Petty theft" to "petty-theft" + if (!allowUnicode) { + s = downcode(s); + } + s = s.toLowerCase(); // convert to lowercase + // if downcode doesn't hit, the char will be stripped here + if (allowUnicode) { + // Keep Unicode letters including both lowercase and uppercase + // characters, whitespace, and dash; remove other characters. + s = XRegExp.replace(s, XRegExp('[^-_\\p{L}\\p{N}\\s]', 'g'), ''); + } else { + s = s.replace(/[^-\w\s]/g, ''); // remove unneeded chars + } + s = s.replace(/^\s+|\s+$/g, ''); // trim leading/trailing spaces + s = s.replace(/[-\s]+/g, '-'); // convert spaces to hyphens + s = s.substring(0, num_chars); // trim to first num_chars chars + return s.replace(/-+$/g, ''); // trim any trailing hyphens + } + window.URLify = URLify; +} diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/jquery/LICENSE.txt b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/jquery/LICENSE.txt new file mode 100644 index 0000000000..f642c3f7a7 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/jquery/LICENSE.txt @@ -0,0 +1,20 @@ +Copyright OpenJS Foundation and other contributors, https://openjsf.org/ + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/jquery/jquery.js b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/jquery/jquery.js new file mode 100644 index 0000000000..1a86433c22 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/jquery/jquery.js @@ -0,0 +1,10716 @@ +/*! + * jQuery JavaScript Library v3.7.1 + * https://jquery.com/ + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license + * https://jquery.org/license + * + * Date: 2023-08-28T13:37Z + */ +( function( global, factory ) { + + "use strict"; + + if ( typeof module === "object" && typeof module.exports === "object" ) { + + // For CommonJS and CommonJS-like environments where a proper `window` + // is present, execute the factory and get jQuery. + // For environments that do not have a `window` with a `document` + // (such as Node.js), expose a factory as module.exports. + // This accentuates the need for the creation of a real `window`. + // e.g. var jQuery = require("jquery")(window); + // See ticket trac-14549 for more info. + module.exports = global.document ? + factory( global, true ) : + function( w ) { + if ( !w.document ) { + throw new Error( "jQuery requires a window with a document" ); + } + return factory( w ); + }; + } else { + factory( global ); + } + +// Pass this if window is not defined yet +} )( typeof window !== "undefined" ? window : this, function( window, noGlobal ) { + +// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1 +// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode +// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common +// enough that all such attempts are guarded in a try block. +"use strict"; + +var arr = []; + +var getProto = Object.getPrototypeOf; + +var slice = arr.slice; + +var flat = arr.flat ? function( array ) { + return arr.flat.call( array ); +} : function( array ) { + return arr.concat.apply( [], array ); +}; + + +var push = arr.push; + +var indexOf = arr.indexOf; + +var class2type = {}; + +var toString = class2type.toString; + +var hasOwn = class2type.hasOwnProperty; + +var fnToString = hasOwn.toString; + +var ObjectFunctionString = fnToString.call( Object ); + +var support = {}; + +var isFunction = function isFunction( obj ) { + + // Support: Chrome <=57, Firefox <=52 + // In some browsers, typeof returns "function" for HTML <object> elements + // (i.e., `typeof document.createElement( "object" ) === "function"`). + // We don't want to classify *any* DOM node as a function. + // Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5 + // Plus for old WebKit, typeof returns "function" for HTML collections + // (e.g., `typeof document.getElementsByTagName("div") === "function"`). (gh-4756) + return typeof obj === "function" && typeof obj.nodeType !== "number" && + typeof obj.item !== "function"; + }; + + +var isWindow = function isWindow( obj ) { + return obj != null && obj === obj.window; + }; + + +var document = window.document; + + + + var preservedScriptAttributes = { + type: true, + src: true, + nonce: true, + noModule: true + }; + + function DOMEval( code, node, doc ) { + doc = doc || document; + + var i, val, + script = doc.createElement( "script" ); + + script.text = code; + if ( node ) { + for ( i in preservedScriptAttributes ) { + + // Support: Firefox 64+, Edge 18+ + // Some browsers don't support the "nonce" property on scripts. + // On the other hand, just using `getAttribute` is not enough as + // the `nonce` attribute is reset to an empty string whenever it + // becomes browsing-context connected. + // See https://github.com/whatwg/html/issues/2369 + // See https://html.spec.whatwg.org/#nonce-attributes + // The `node.getAttribute` check was added for the sake of + // `jQuery.globalEval` so that it can fake a nonce-containing node + // via an object. + val = node[ i ] || node.getAttribute && node.getAttribute( i ); + if ( val ) { + script.setAttribute( i, val ); + } + } + } + doc.head.appendChild( script ).parentNode.removeChild( script ); + } + + +function toType( obj ) { + if ( obj == null ) { + return obj + ""; + } + + // Support: Android <=2.3 only (functionish RegExp) + return typeof obj === "object" || typeof obj === "function" ? + class2type[ toString.call( obj ) ] || "object" : + typeof obj; +} +/* global Symbol */ +// Defining this global in .eslintrc.json would create a danger of using the global +// unguarded in another place, it seems safer to define global only for this module + + + +var version = "3.7.1", + + rhtmlSuffix = /HTML$/i, + + // Define a local copy of jQuery + jQuery = function( selector, context ) { + + // The jQuery object is actually just the init constructor 'enhanced' + // Need init if jQuery is called (just allow error to be thrown if not included) + return new jQuery.fn.init( selector, context ); + }; + +jQuery.fn = jQuery.prototype = { + + // The current version of jQuery being used + jquery: version, + + constructor: jQuery, + + // The default length of a jQuery object is 0 + length: 0, + + toArray: function() { + return slice.call( this ); + }, + + // Get the Nth element in the matched element set OR + // Get the whole matched element set as a clean array + get: function( num ) { + + // Return all the elements in a clean array + if ( num == null ) { + return slice.call( this ); + } + + // Return just the one element from the set + return num < 0 ? this[ num + this.length ] : this[ num ]; + }, + + // Take an array of elements and push it onto the stack + // (returning the new matched element set) + pushStack: function( elems ) { + + // Build a new jQuery matched element set + var ret = jQuery.merge( this.constructor(), elems ); + + // Add the old object onto the stack (as a reference) + ret.prevObject = this; + + // Return the newly-formed element set + return ret; + }, + + // Execute a callback for every element in the matched set. + each: function( callback ) { + return jQuery.each( this, callback ); + }, + + map: function( callback ) { + return this.pushStack( jQuery.map( this, function( elem, i ) { + return callback.call( elem, i, elem ); + } ) ); + }, + + slice: function() { + return this.pushStack( slice.apply( this, arguments ) ); + }, + + first: function() { + return this.eq( 0 ); + }, + + last: function() { + return this.eq( -1 ); + }, + + even: function() { + return this.pushStack( jQuery.grep( this, function( _elem, i ) { + return ( i + 1 ) % 2; + } ) ); + }, + + odd: function() { + return this.pushStack( jQuery.grep( this, function( _elem, i ) { + return i % 2; + } ) ); + }, + + eq: function( i ) { + var len = this.length, + j = +i + ( i < 0 ? len : 0 ); + return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] ); + }, + + end: function() { + return this.prevObject || this.constructor(); + }, + + // For internal use only. + // Behaves like an Array's method, not like a jQuery method. + push: push, + sort: arr.sort, + splice: arr.splice +}; + +jQuery.extend = jQuery.fn.extend = function() { + var options, name, src, copy, copyIsArray, clone, + target = arguments[ 0 ] || {}, + i = 1, + length = arguments.length, + deep = false; + + // Handle a deep copy situation + if ( typeof target === "boolean" ) { + deep = target; + + // Skip the boolean and the target + target = arguments[ i ] || {}; + i++; + } + + // Handle case when target is a string or something (possible in deep copy) + if ( typeof target !== "object" && !isFunction( target ) ) { + target = {}; + } + + // Extend jQuery itself if only one argument is passed + if ( i === length ) { + target = this; + i--; + } + + for ( ; i < length; i++ ) { + + // Only deal with non-null/undefined values + if ( ( options = arguments[ i ] ) != null ) { + + // Extend the base object + for ( name in options ) { + copy = options[ name ]; + + // Prevent Object.prototype pollution + // Prevent never-ending loop + if ( name === "__proto__" || target === copy ) { + continue; + } + + // Recurse if we're merging plain objects or arrays + if ( deep && copy && ( jQuery.isPlainObject( copy ) || + ( copyIsArray = Array.isArray( copy ) ) ) ) { + src = target[ name ]; + + // Ensure proper type for the source value + if ( copyIsArray && !Array.isArray( src ) ) { + clone = []; + } else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) { + clone = {}; + } else { + clone = src; + } + copyIsArray = false; + + // Never move original objects, clone them + target[ name ] = jQuery.extend( deep, clone, copy ); + + // Don't bring in undefined values + } else if ( copy !== undefined ) { + target[ name ] = copy; + } + } + } + } + + // Return the modified object + return target; +}; + +jQuery.extend( { + + // Unique for each copy of jQuery on the page + expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ), + + // Assume jQuery is ready without the ready module + isReady: true, + + error: function( msg ) { + throw new Error( msg ); + }, + + noop: function() {}, + + isPlainObject: function( obj ) { + var proto, Ctor; + + // Detect obvious negatives + // Use toString instead of jQuery.type to catch host objects + if ( !obj || toString.call( obj ) !== "[object Object]" ) { + return false; + } + + proto = getProto( obj ); + + // Objects with no prototype (e.g., `Object.create( null )`) are plain + if ( !proto ) { + return true; + } + + // Objects with prototype are plain iff they were constructed by a global Object function + Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor; + return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString; + }, + + isEmptyObject: function( obj ) { + var name; + + for ( name in obj ) { + return false; + } + return true; + }, + + // Evaluates a script in a provided context; falls back to the global one + // if not specified. + globalEval: function( code, options, doc ) { + DOMEval( code, { nonce: options && options.nonce }, doc ); + }, + + each: function( obj, callback ) { + var length, i = 0; + + if ( isArrayLike( obj ) ) { + length = obj.length; + for ( ; i < length; i++ ) { + if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { + break; + } + } + } else { + for ( i in obj ) { + if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { + break; + } + } + } + + return obj; + }, + + + // Retrieve the text value of an array of DOM nodes + text: function( elem ) { + var node, + ret = "", + i = 0, + nodeType = elem.nodeType; + + if ( !nodeType ) { + + // If no nodeType, this is expected to be an array + while ( ( node = elem[ i++ ] ) ) { + + // Do not traverse comment nodes + ret += jQuery.text( node ); + } + } + if ( nodeType === 1 || nodeType === 11 ) { + return elem.textContent; + } + if ( nodeType === 9 ) { + return elem.documentElement.textContent; + } + if ( nodeType === 3 || nodeType === 4 ) { + return elem.nodeValue; + } + + // Do not include comment or processing instruction nodes + + return ret; + }, + + // results is for internal usage only + makeArray: function( arr, results ) { + var ret = results || []; + + if ( arr != null ) { + if ( isArrayLike( Object( arr ) ) ) { + jQuery.merge( ret, + typeof arr === "string" ? + [ arr ] : arr + ); + } else { + push.call( ret, arr ); + } + } + + return ret; + }, + + inArray: function( elem, arr, i ) { + return arr == null ? -1 : indexOf.call( arr, elem, i ); + }, + + isXMLDoc: function( elem ) { + var namespace = elem && elem.namespaceURI, + docElem = elem && ( elem.ownerDocument || elem ).documentElement; + + // Assume HTML when documentElement doesn't yet exist, such as inside + // document fragments. + return !rhtmlSuffix.test( namespace || docElem && docElem.nodeName || "HTML" ); + }, + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + merge: function( first, second ) { + var len = +second.length, + j = 0, + i = first.length; + + for ( ; j < len; j++ ) { + first[ i++ ] = second[ j ]; + } + + first.length = i; + + return first; + }, + + grep: function( elems, callback, invert ) { + var callbackInverse, + matches = [], + i = 0, + length = elems.length, + callbackExpect = !invert; + + // Go through the array, only saving the items + // that pass the validator function + for ( ; i < length; i++ ) { + callbackInverse = !callback( elems[ i ], i ); + if ( callbackInverse !== callbackExpect ) { + matches.push( elems[ i ] ); + } + } + + return matches; + }, + + // arg is for internal usage only + map: function( elems, callback, arg ) { + var length, value, + i = 0, + ret = []; + + // Go through the array, translating each of the items to their new values + if ( isArrayLike( elems ) ) { + length = elems.length; + for ( ; i < length; i++ ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret.push( value ); + } + } + + // Go through every key on the object, + } else { + for ( i in elems ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret.push( value ); + } + } + } + + // Flatten any nested arrays + return flat( ret ); + }, + + // A global GUID counter for objects + guid: 1, + + // jQuery.support is not used in Core but other projects attach their + // properties to it so it needs to exist. + support: support +} ); + +if ( typeof Symbol === "function" ) { + jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ]; +} + +// Populate the class2type map +jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ), + function( _i, name ) { + class2type[ "[object " + name + "]" ] = name.toLowerCase(); + } ); + +function isArrayLike( obj ) { + + // Support: real iOS 8.2 only (not reproducible in simulator) + // `in` check used to prevent JIT error (gh-2145) + // hasOwn isn't used here due to false negatives + // regarding Nodelist length in IE + var length = !!obj && "length" in obj && obj.length, + type = toType( obj ); + + if ( isFunction( obj ) || isWindow( obj ) ) { + return false; + } + + return type === "array" || length === 0 || + typeof length === "number" && length > 0 && ( length - 1 ) in obj; +} + + +function nodeName( elem, name ) { + + return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); + +} +var pop = arr.pop; + + +var sort = arr.sort; + + +var splice = arr.splice; + + +var whitespace = "[\\x20\\t\\r\\n\\f]"; + + +var rtrimCSS = new RegExp( + "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", + "g" +); + + + + +// Note: an element does not contain itself +jQuery.contains = function( a, b ) { + var bup = b && b.parentNode; + + return a === bup || !!( bup && bup.nodeType === 1 && ( + + // Support: IE 9 - 11+ + // IE doesn't have `contains` on SVG. + a.contains ? + a.contains( bup ) : + a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 + ) ); +}; + + + + +// CSS string/identifier serialization +// https://drafts.csswg.org/cssom/#common-serializing-idioms +var rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g; + +function fcssescape( ch, asCodePoint ) { + if ( asCodePoint ) { + + // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER + if ( ch === "\0" ) { + return "\uFFFD"; + } + + // Control characters and (dependent upon position) numbers get escaped as code points + return ch.slice( 0, -1 ) + "\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " "; + } + + // Other potentially-special ASCII characters get backslash-escaped + return "\\" + ch; +} + +jQuery.escapeSelector = function( sel ) { + return ( sel + "" ).replace( rcssescape, fcssescape ); +}; + + + + +var preferredDoc = document, + pushNative = push; + +( function() { + +var i, + Expr, + outermostContext, + sortInput, + hasDuplicate, + push = pushNative, + + // Local document vars + document, + documentElement, + documentIsHTML, + rbuggyQSA, + matches, + + // Instance-specific data + expando = jQuery.expando, + dirruns = 0, + done = 0, + classCache = createCache(), + tokenCache = createCache(), + compilerCache = createCache(), + nonnativeSelectorCache = createCache(), + sortOrder = function( a, b ) { + if ( a === b ) { + hasDuplicate = true; + } + return 0; + }, + + booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|" + + "loop|multiple|open|readonly|required|scoped", + + // Regular expressions + + // https://www.w3.org/TR/css-syntax-3/#ident-token-diagram + identifier = "(?:\\\\[\\da-fA-F]{1,6}" + whitespace + + "?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+", + + // Attribute selectors: https://www.w3.org/TR/selectors/#attribute-selectors + attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace + + + // Operator (capture 2) + "*([*^$|!~]?=)" + whitespace + + + // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]" + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + + whitespace + "*\\]", + + pseudos = ":(" + identifier + ")(?:\\((" + + + // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments: + // 1. quoted (capture 3; capture 4 or capture 5) + "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + + + // 2. simple (capture 6) + "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" + + + // 3. anything else (capture 2) + ".*" + + ")\\)|)", + + // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter + rwhitespace = new RegExp( whitespace + "+", "g" ), + + rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), + rleadingCombinator = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + + whitespace + "*" ), + rdescend = new RegExp( whitespace + "|>" ), + + rpseudo = new RegExp( pseudos ), + ridentifier = new RegExp( "^" + identifier + "$" ), + + matchExpr = { + ID: new RegExp( "^#(" + identifier + ")" ), + CLASS: new RegExp( "^\\.(" + identifier + ")" ), + TAG: new RegExp( "^(" + identifier + "|[*])" ), + ATTR: new RegExp( "^" + attributes ), + PSEUDO: new RegExp( "^" + pseudos ), + CHILD: new RegExp( + "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + + whitespace + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + + whitespace + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), + bool: new RegExp( "^(?:" + booleans + ")$", "i" ), + + // For use in libraries implementing .is() + // We use this for POS matching in `select` + needsContext: new RegExp( "^" + whitespace + + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + whitespace + + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) + }, + + rinputs = /^(?:input|select|textarea|button)$/i, + rheader = /^h\d$/i, + + // Easily-parseable/retrievable ID or TAG or CLASS selectors + rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, + + rsibling = /[+~]/, + + // CSS escapes + // https://www.w3.org/TR/CSS21/syndata.html#escaped-characters + runescape = new RegExp( "\\\\[\\da-fA-F]{1,6}" + whitespace + + "?|\\\\([^\\r\\n\\f])", "g" ), + funescape = function( escape, nonHex ) { + var high = "0x" + escape.slice( 1 ) - 0x10000; + + if ( nonHex ) { + + // Strip the backslash prefix from a non-hex escape sequence + return nonHex; + } + + // Replace a hexadecimal escape sequence with the encoded Unicode code point + // Support: IE <=11+ + // For values outside the Basic Multilingual Plane (BMP), manually construct a + // surrogate pair + return high < 0 ? + String.fromCharCode( high + 0x10000 ) : + String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); + }, + + // Used for iframes; see `setDocument`. + // Support: IE 9 - 11+, Edge 12 - 18+ + // Removing the function wrapper causes a "Permission Denied" + // error in IE/Edge. + unloadHandler = function() { + setDocument(); + }, + + inDisabledFieldset = addCombinator( + function( elem ) { + return elem.disabled === true && nodeName( elem, "fieldset" ); + }, + { dir: "parentNode", next: "legend" } + ); + +// Support: IE <=9 only +// Accessing document.activeElement can throw unexpectedly +// https://bugs.jquery.com/ticket/13393 +function safeActiveElement() { + try { + return document.activeElement; + } catch ( err ) { } +} + +// Optimize for push.apply( _, NodeList ) +try { + push.apply( + ( arr = slice.call( preferredDoc.childNodes ) ), + preferredDoc.childNodes + ); + + // Support: Android <=4.0 + // Detect silently failing push.apply + // eslint-disable-next-line no-unused-expressions + arr[ preferredDoc.childNodes.length ].nodeType; +} catch ( e ) { + push = { + apply: function( target, els ) { + pushNative.apply( target, slice.call( els ) ); + }, + call: function( target ) { + pushNative.apply( target, slice.call( arguments, 1 ) ); + } + }; +} + +function find( selector, context, results, seed ) { + var m, i, elem, nid, match, groups, newSelector, + newContext = context && context.ownerDocument, + + // nodeType defaults to 9, since context defaults to document + nodeType = context ? context.nodeType : 9; + + results = results || []; + + // Return early from calls with invalid selector or context + if ( typeof selector !== "string" || !selector || + nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) { + + return results; + } + + // Try to shortcut find operations (as opposed to filters) in HTML documents + if ( !seed ) { + setDocument( context ); + context = context || document; + + if ( documentIsHTML ) { + + // If the selector is sufficiently simple, try using a "get*By*" DOM method + // (excepting DocumentFragment context, where the methods don't exist) + if ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) { + + // ID selector + if ( ( m = match[ 1 ] ) ) { + + // Document context + if ( nodeType === 9 ) { + if ( ( elem = context.getElementById( m ) ) ) { + + // Support: IE 9 only + // getElementById can match elements by name instead of ID + if ( elem.id === m ) { + push.call( results, elem ); + return results; + } + } else { + return results; + } + + // Element context + } else { + + // Support: IE 9 only + // getElementById can match elements by name instead of ID + if ( newContext && ( elem = newContext.getElementById( m ) ) && + find.contains( context, elem ) && + elem.id === m ) { + + push.call( results, elem ); + return results; + } + } + + // Type selector + } else if ( match[ 2 ] ) { + push.apply( results, context.getElementsByTagName( selector ) ); + return results; + + // Class selector + } else if ( ( m = match[ 3 ] ) && context.getElementsByClassName ) { + push.apply( results, context.getElementsByClassName( m ) ); + return results; + } + } + + // Take advantage of querySelectorAll + if ( !nonnativeSelectorCache[ selector + " " ] && + ( !rbuggyQSA || !rbuggyQSA.test( selector ) ) ) { + + newSelector = selector; + newContext = context; + + // qSA considers elements outside a scoping root when evaluating child or + // descendant combinators, which is not what we want. + // In such cases, we work around the behavior by prefixing every selector in the + // list with an ID selector referencing the scope context. + // The technique has to be used as well when a leading combinator is used + // as such selectors are not recognized by querySelectorAll. + // Thanks to Andrew Dupont for this technique. + if ( nodeType === 1 && + ( rdescend.test( selector ) || rleadingCombinator.test( selector ) ) ) { + + // Expand context for sibling selectors + newContext = rsibling.test( selector ) && testContext( context.parentNode ) || + context; + + // We can use :scope instead of the ID hack if the browser + // supports it & if we're not changing the context. + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when + // strict-comparing two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( newContext != context || !support.scope ) { + + // Capture the context ID, setting it first if necessary + if ( ( nid = context.getAttribute( "id" ) ) ) { + nid = jQuery.escapeSelector( nid ); + } else { + context.setAttribute( "id", ( nid = expando ) ); + } + } + + // Prefix every selector in the list + groups = tokenize( selector ); + i = groups.length; + while ( i-- ) { + groups[ i ] = ( nid ? "#" + nid : ":scope" ) + " " + + toSelector( groups[ i ] ); + } + newSelector = groups.join( "," ); + } + + try { + push.apply( results, + newContext.querySelectorAll( newSelector ) + ); + return results; + } catch ( qsaError ) { + nonnativeSelectorCache( selector, true ); + } finally { + if ( nid === expando ) { + context.removeAttribute( "id" ); + } + } + } + } + } + + // All others + return select( selector.replace( rtrimCSS, "$1" ), context, results, seed ); +} + +/** + * Create key-value caches of limited size + * @returns {function(string, object)} Returns the Object data after storing it on itself with + * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) + * deleting the oldest entry + */ +function createCache() { + var keys = []; + + function cache( key, value ) { + + // Use (key + " ") to avoid collision with native prototype properties + // (see https://github.com/jquery/sizzle/issues/157) + if ( keys.push( key + " " ) > Expr.cacheLength ) { + + // Only keep the most recent entries + delete cache[ keys.shift() ]; + } + return ( cache[ key + " " ] = value ); + } + return cache; +} + +/** + * Mark a function for special use by jQuery selector module + * @param {Function} fn The function to mark + */ +function markFunction( fn ) { + fn[ expando ] = true; + return fn; +} + +/** + * Support testing using an element + * @param {Function} fn Passed the created element and returns a boolean result + */ +function assert( fn ) { + var el = document.createElement( "fieldset" ); + + try { + return !!fn( el ); + } catch ( e ) { + return false; + } finally { + + // Remove from its parent by default + if ( el.parentNode ) { + el.parentNode.removeChild( el ); + } + + // release memory in IE + el = null; + } +} + +/** + * Returns a function to use in pseudos for input types + * @param {String} type + */ +function createInputPseudo( type ) { + return function( elem ) { + return nodeName( elem, "input" ) && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for buttons + * @param {String} type + */ +function createButtonPseudo( type ) { + return function( elem ) { + return ( nodeName( elem, "input" ) || nodeName( elem, "button" ) ) && + elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for :enabled/:disabled + * @param {Boolean} disabled true for :disabled; false for :enabled + */ +function createDisabledPseudo( disabled ) { + + // Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable + return function( elem ) { + + // Only certain elements can match :enabled or :disabled + // https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled + // https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled + if ( "form" in elem ) { + + // Check for inherited disabledness on relevant non-disabled elements: + // * listed form-associated elements in a disabled fieldset + // https://html.spec.whatwg.org/multipage/forms.html#category-listed + // https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled + // * option elements in a disabled optgroup + // https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled + // All such elements have a "form" property. + if ( elem.parentNode && elem.disabled === false ) { + + // Option elements defer to a parent optgroup if present + if ( "label" in elem ) { + if ( "label" in elem.parentNode ) { + return elem.parentNode.disabled === disabled; + } else { + return elem.disabled === disabled; + } + } + + // Support: IE 6 - 11+ + // Use the isDisabled shortcut property to check for disabled fieldset ancestors + return elem.isDisabled === disabled || + + // Where there is no isDisabled, check manually + elem.isDisabled !== !disabled && + inDisabledFieldset( elem ) === disabled; + } + + return elem.disabled === disabled; + + // Try to winnow out elements that can't be disabled before trusting the disabled property. + // Some victims get caught in our net (label, legend, menu, track), but it shouldn't + // even exist on them, let alone have a boolean value. + } else if ( "label" in elem ) { + return elem.disabled === disabled; + } + + // Remaining elements are neither :enabled nor :disabled + return false; + }; +} + +/** + * Returns a function to use in pseudos for positionals + * @param {Function} fn + */ +function createPositionalPseudo( fn ) { + return markFunction( function( argument ) { + argument = +argument; + return markFunction( function( seed, matches ) { + var j, + matchIndexes = fn( [], seed.length, argument ), + i = matchIndexes.length; + + // Match elements found at the specified indexes + while ( i-- ) { + if ( seed[ ( j = matchIndexes[ i ] ) ] ) { + seed[ j ] = !( matches[ j ] = seed[ j ] ); + } + } + } ); + } ); +} + +/** + * Checks a node for validity as a jQuery selector context + * @param {Element|Object=} context + * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value + */ +function testContext( context ) { + return context && typeof context.getElementsByTagName !== "undefined" && context; +} + +/** + * Sets document-related variables once based on the current document + * @param {Element|Object} [node] An element or document object to use to set the document + * @returns {Object} Returns the current document + */ +function setDocument( node ) { + var subWindow, + doc = node ? node.ownerDocument || node : preferredDoc; + + // Return early if doc is invalid or already selected + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) { + return document; + } + + // Update global variables + document = doc; + documentElement = document.documentElement; + documentIsHTML = !jQuery.isXMLDoc( document ); + + // Support: iOS 7 only, IE 9 - 11+ + // Older browsers didn't support unprefixed `matches`. + matches = documentElement.matches || + documentElement.webkitMatchesSelector || + documentElement.msMatchesSelector; + + // Support: IE 9 - 11+, Edge 12 - 18+ + // Accessing iframe documents after unload throws "permission denied" errors + // (see trac-13936). + // Limit the fix to IE & Edge Legacy; despite Edge 15+ implementing `matches`, + // all IE 9+ and Edge Legacy versions implement `msMatchesSelector` as well. + if ( documentElement.msMatchesSelector && + + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + preferredDoc != document && + ( subWindow = document.defaultView ) && subWindow.top !== subWindow ) { + + // Support: IE 9 - 11+, Edge 12 - 18+ + subWindow.addEventListener( "unload", unloadHandler ); + } + + // Support: IE <10 + // Check if getElementById returns elements by name + // The broken getElementById methods don't pick up programmatically-set names, + // so use a roundabout getElementsByName test + support.getById = assert( function( el ) { + documentElement.appendChild( el ).id = jQuery.expando; + return !document.getElementsByName || + !document.getElementsByName( jQuery.expando ).length; + } ); + + // Support: IE 9 only + // Check to see if it's possible to do matchesSelector + // on a disconnected node. + support.disconnectedMatch = assert( function( el ) { + return matches.call( el, "*" ); + } ); + + // Support: IE 9 - 11+, Edge 12 - 18+ + // IE/Edge don't support the :scope pseudo-class. + support.scope = assert( function() { + return document.querySelectorAll( ":scope" ); + } ); + + // Support: Chrome 105 - 111 only, Safari 15.4 - 16.3 only + // Make sure the `:has()` argument is parsed unforgivingly. + // We include `*` in the test to detect buggy implementations that are + // _selectively_ forgiving (specifically when the list includes at least + // one valid selector). + // Note that we treat complete lack of support for `:has()` as if it were + // spec-compliant support, which is fine because use of `:has()` in such + // environments will fail in the qSA path and fall back to jQuery traversal + // anyway. + support.cssHas = assert( function() { + try { + document.querySelector( ":has(*,:jqfake)" ); + return false; + } catch ( e ) { + return true; + } + } ); + + // ID filter and find + if ( support.getById ) { + Expr.filter.ID = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + return elem.getAttribute( "id" ) === attrId; + }; + }; + Expr.find.ID = function( id, context ) { + if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { + var elem = context.getElementById( id ); + return elem ? [ elem ] : []; + } + }; + } else { + Expr.filter.ID = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + var node = typeof elem.getAttributeNode !== "undefined" && + elem.getAttributeNode( "id" ); + return node && node.value === attrId; + }; + }; + + // Support: IE 6 - 7 only + // getElementById is not reliable as a find shortcut + Expr.find.ID = function( id, context ) { + if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { + var node, i, elems, + elem = context.getElementById( id ); + + if ( elem ) { + + // Verify the id attribute + node = elem.getAttributeNode( "id" ); + if ( node && node.value === id ) { + return [ elem ]; + } + + // Fall back on getElementsByName + elems = context.getElementsByName( id ); + i = 0; + while ( ( elem = elems[ i++ ] ) ) { + node = elem.getAttributeNode( "id" ); + if ( node && node.value === id ) { + return [ elem ]; + } + } + } + + return []; + } + }; + } + + // Tag + Expr.find.TAG = function( tag, context ) { + if ( typeof context.getElementsByTagName !== "undefined" ) { + return context.getElementsByTagName( tag ); + + // DocumentFragment nodes don't have gEBTN + } else { + return context.querySelectorAll( tag ); + } + }; + + // Class + Expr.find.CLASS = function( className, context ) { + if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) { + return context.getElementsByClassName( className ); + } + }; + + /* QSA/matchesSelector + ---------------------------------------------------------------------- */ + + // QSA and matchesSelector support + + rbuggyQSA = []; + + // Build QSA regex + // Regex strategy adopted from Diego Perini + assert( function( el ) { + + var input; + + documentElement.appendChild( el ).innerHTML = + "<a id='" + expando + "' href='' disabled='disabled'></a>" + + "<select id='" + expando + "-\r\\' disabled='disabled'>" + + "<option selected=''></option></select>"; + + // Support: iOS <=7 - 8 only + // Boolean attributes and "value" are not treated correctly in some XML documents + if ( !el.querySelectorAll( "[selected]" ).length ) { + rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); + } + + // Support: iOS <=7 - 8 only + if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) { + rbuggyQSA.push( "~=" ); + } + + // Support: iOS 8 only + // https://bugs.webkit.org/show_bug.cgi?id=136851 + // In-page `selector#id sibling-combinator selector` fails + if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) { + rbuggyQSA.push( ".#.+[+~]" ); + } + + // Support: Chrome <=105+, Firefox <=104+, Safari <=15.4+ + // In some of the document kinds, these selectors wouldn't work natively. + // This is probably OK but for backwards compatibility we want to maintain + // handling them through jQuery traversal in jQuery 3.x. + if ( !el.querySelectorAll( ":checked" ).length ) { + rbuggyQSA.push( ":checked" ); + } + + // Support: Windows 8 Native Apps + // The type and name attributes are restricted during .innerHTML assignment + input = document.createElement( "input" ); + input.setAttribute( "type", "hidden" ); + el.appendChild( input ).setAttribute( "name", "D" ); + + // Support: IE 9 - 11+ + // IE's :disabled selector does not pick up the children of disabled fieldsets + // Support: Chrome <=105+, Firefox <=104+, Safari <=15.4+ + // In some of the document kinds, these selectors wouldn't work natively. + // This is probably OK but for backwards compatibility we want to maintain + // handling them through jQuery traversal in jQuery 3.x. + documentElement.appendChild( el ).disabled = true; + if ( el.querySelectorAll( ":disabled" ).length !== 2 ) { + rbuggyQSA.push( ":enabled", ":disabled" ); + } + + // Support: IE 11+, Edge 15 - 18+ + // IE 11/Edge don't find elements on a `[name='']` query in some cases. + // Adding a temporary attribute to the document before the selection works + // around the issue. + // Interestingly, IE 10 & older don't seem to have the issue. + input = document.createElement( "input" ); + input.setAttribute( "name", "" ); + el.appendChild( input ); + if ( !el.querySelectorAll( "[name='']" ).length ) { + rbuggyQSA.push( "\\[" + whitespace + "*name" + whitespace + "*=" + + whitespace + "*(?:''|\"\")" ); + } + } ); + + if ( !support.cssHas ) { + + // Support: Chrome 105 - 110+, Safari 15.4 - 16.3+ + // Our regular `try-catch` mechanism fails to detect natively-unsupported + // pseudo-classes inside `:has()` (such as `:has(:contains("Foo"))`) + // in browsers that parse the `:has()` argument as a forgiving selector list. + // https://drafts.csswg.org/selectors/#relational now requires the argument + // to be parsed unforgivingly, but browsers have not yet fully adjusted. + rbuggyQSA.push( ":has" ); + } + + rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( "|" ) ); + + /* Sorting + ---------------------------------------------------------------------- */ + + // Document order sorting + sortOrder = function( a, b ) { + + // Flag for duplicate removal + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + // Sort on method existence if only one input has compareDocumentPosition + var compare = !a.compareDocumentPosition - !b.compareDocumentPosition; + if ( compare ) { + return compare; + } + + // Calculate position if both inputs belong to the same document + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + compare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ? + a.compareDocumentPosition( b ) : + + // Otherwise we know they are disconnected + 1; + + // Disconnected nodes + if ( compare & 1 || + ( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) { + + // Choose the first element that is related to our preferred document + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( a === document || a.ownerDocument == preferredDoc && + find.contains( preferredDoc, a ) ) { + return -1; + } + + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( b === document || b.ownerDocument == preferredDoc && + find.contains( preferredDoc, b ) ) { + return 1; + } + + // Maintain original order + return sortInput ? + ( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) : + 0; + } + + return compare & 4 ? -1 : 1; + }; + + return document; +} + +find.matches = function( expr, elements ) { + return find( expr, null, null, elements ); +}; + +find.matchesSelector = function( elem, expr ) { + setDocument( elem ); + + if ( documentIsHTML && + !nonnativeSelectorCache[ expr + " " ] && + ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) { + + try { + var ret = matches.call( elem, expr ); + + // IE 9's matchesSelector returns false on disconnected nodes + if ( ret || support.disconnectedMatch || + + // As well, disconnected nodes are said to be in a document + // fragment in IE 9 + elem.document && elem.document.nodeType !== 11 ) { + return ret; + } + } catch ( e ) { + nonnativeSelectorCache( expr, true ); + } + } + + return find( expr, document, null, [ elem ] ).length > 0; +}; + +find.contains = function( context, elem ) { + + // Set document vars if needed + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( ( context.ownerDocument || context ) != document ) { + setDocument( context ); + } + return jQuery.contains( context, elem ); +}; + + +find.attr = function( elem, name ) { + + // Set document vars if needed + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( ( elem.ownerDocument || elem ) != document ) { + setDocument( elem ); + } + + var fn = Expr.attrHandle[ name.toLowerCase() ], + + // Don't get fooled by Object.prototype properties (see trac-13807) + val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ? + fn( elem, name, !documentIsHTML ) : + undefined; + + if ( val !== undefined ) { + return val; + } + + return elem.getAttribute( name ); +}; + +find.error = function( msg ) { + throw new Error( "Syntax error, unrecognized expression: " + msg ); +}; + +/** + * Document sorting and removing duplicates + * @param {ArrayLike} results + */ +jQuery.uniqueSort = function( results ) { + var elem, + duplicates = [], + j = 0, + i = 0; + + // Unless we *know* we can detect duplicates, assume their presence + // + // Support: Android <=4.0+ + // Testing for detecting duplicates is unpredictable so instead assume we can't + // depend on duplicate detection in all browsers without a stable sort. + hasDuplicate = !support.sortStable; + sortInput = !support.sortStable && slice.call( results, 0 ); + sort.call( results, sortOrder ); + + if ( hasDuplicate ) { + while ( ( elem = results[ i++ ] ) ) { + if ( elem === results[ i ] ) { + j = duplicates.push( i ); + } + } + while ( j-- ) { + splice.call( results, duplicates[ j ], 1 ); + } + } + + // Clear input after sorting to release objects + // See https://github.com/jquery/sizzle/pull/225 + sortInput = null; + + return results; +}; + +jQuery.fn.uniqueSort = function() { + return this.pushStack( jQuery.uniqueSort( slice.apply( this ) ) ); +}; + +Expr = jQuery.expr = { + + // Can be adjusted by the user + cacheLength: 50, + + createPseudo: markFunction, + + match: matchExpr, + + attrHandle: {}, + + find: {}, + + relative: { + ">": { dir: "parentNode", first: true }, + " ": { dir: "parentNode" }, + "+": { dir: "previousSibling", first: true }, + "~": { dir: "previousSibling" } + }, + + preFilter: { + ATTR: function( match ) { + match[ 1 ] = match[ 1 ].replace( runescape, funescape ); + + // Move the given value to match[3] whether quoted or unquoted + match[ 3 ] = ( match[ 3 ] || match[ 4 ] || match[ 5 ] || "" ) + .replace( runescape, funescape ); + + if ( match[ 2 ] === "~=" ) { + match[ 3 ] = " " + match[ 3 ] + " "; + } + + return match.slice( 0, 4 ); + }, + + CHILD: function( match ) { + + /* matches from matchExpr["CHILD"] + 1 type (only|nth|...) + 2 what (child|of-type) + 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) + 4 xn-component of xn+y argument ([+-]?\d*n|) + 5 sign of xn-component + 6 x of xn-component + 7 sign of y-component + 8 y of y-component + */ + match[ 1 ] = match[ 1 ].toLowerCase(); + + if ( match[ 1 ].slice( 0, 3 ) === "nth" ) { + + // nth-* requires argument + if ( !match[ 3 ] ) { + find.error( match[ 0 ] ); + } + + // numeric x and y parameters for Expr.filter.CHILD + // remember that false/true cast respectively to 0/1 + match[ 4 ] = +( match[ 4 ] ? + match[ 5 ] + ( match[ 6 ] || 1 ) : + 2 * ( match[ 3 ] === "even" || match[ 3 ] === "odd" ) + ); + match[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === "odd" ); + + // other types prohibit arguments + } else if ( match[ 3 ] ) { + find.error( match[ 0 ] ); + } + + return match; + }, + + PSEUDO: function( match ) { + var excess, + unquoted = !match[ 6 ] && match[ 2 ]; + + if ( matchExpr.CHILD.test( match[ 0 ] ) ) { + return null; + } + + // Accept quoted arguments as-is + if ( match[ 3 ] ) { + match[ 2 ] = match[ 4 ] || match[ 5 ] || ""; + + // Strip excess characters from unquoted arguments + } else if ( unquoted && rpseudo.test( unquoted ) && + + // Get excess from tokenize (recursively) + ( excess = tokenize( unquoted, true ) ) && + + // advance to the next closing parenthesis + ( excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length ) ) { + + // excess is a negative index + match[ 0 ] = match[ 0 ].slice( 0, excess ); + match[ 2 ] = unquoted.slice( 0, excess ); + } + + // Return only captures needed by the pseudo filter method (type and argument) + return match.slice( 0, 3 ); + } + }, + + filter: { + + TAG: function( nodeNameSelector ) { + var expectedNodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase(); + return nodeNameSelector === "*" ? + function() { + return true; + } : + function( elem ) { + return nodeName( elem, expectedNodeName ); + }; + }, + + CLASS: function( className ) { + var pattern = classCache[ className + " " ]; + + return pattern || + ( pattern = new RegExp( "(^|" + whitespace + ")" + className + + "(" + whitespace + "|$)" ) ) && + classCache( className, function( elem ) { + return pattern.test( + typeof elem.className === "string" && elem.className || + typeof elem.getAttribute !== "undefined" && + elem.getAttribute( "class" ) || + "" + ); + } ); + }, + + ATTR: function( name, operator, check ) { + return function( elem ) { + var result = find.attr( elem, name ); + + if ( result == null ) { + return operator === "!="; + } + if ( !operator ) { + return true; + } + + result += ""; + + if ( operator === "=" ) { + return result === check; + } + if ( operator === "!=" ) { + return result !== check; + } + if ( operator === "^=" ) { + return check && result.indexOf( check ) === 0; + } + if ( operator === "*=" ) { + return check && result.indexOf( check ) > -1; + } + if ( operator === "$=" ) { + return check && result.slice( -check.length ) === check; + } + if ( operator === "~=" ) { + return ( " " + result.replace( rwhitespace, " " ) + " " ) + .indexOf( check ) > -1; + } + if ( operator === "|=" ) { + return result === check || result.slice( 0, check.length + 1 ) === check + "-"; + } + + return false; + }; + }, + + CHILD: function( type, what, _argument, first, last ) { + var simple = type.slice( 0, 3 ) !== "nth", + forward = type.slice( -4 ) !== "last", + ofType = what === "of-type"; + + return first === 1 && last === 0 ? + + // Shortcut for :nth-*(n) + function( elem ) { + return !!elem.parentNode; + } : + + function( elem, _context, xml ) { + var cache, outerCache, node, nodeIndex, start, + dir = simple !== forward ? "nextSibling" : "previousSibling", + parent = elem.parentNode, + name = ofType && elem.nodeName.toLowerCase(), + useCache = !xml && !ofType, + diff = false; + + if ( parent ) { + + // :(first|last|only)-(child|of-type) + if ( simple ) { + while ( dir ) { + node = elem; + while ( ( node = node[ dir ] ) ) { + if ( ofType ? + nodeName( node, name ) : + node.nodeType === 1 ) { + + return false; + } + } + + // Reverse direction for :only-* (if we haven't yet done so) + start = dir = type === "only" && !start && "nextSibling"; + } + return true; + } + + start = [ forward ? parent.firstChild : parent.lastChild ]; + + // non-xml :nth-child(...) stores cache data on `parent` + if ( forward && useCache ) { + + // Seek `elem` from a previously-cached index + outerCache = parent[ expando ] || ( parent[ expando ] = {} ); + cache = outerCache[ type ] || []; + nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; + diff = nodeIndex && cache[ 2 ]; + node = nodeIndex && parent.childNodes[ nodeIndex ]; + + while ( ( node = ++nodeIndex && node && node[ dir ] || + + // Fallback to seeking `elem` from the start + ( diff = nodeIndex = 0 ) || start.pop() ) ) { + + // When found, cache indexes on `parent` and break + if ( node.nodeType === 1 && ++diff && node === elem ) { + outerCache[ type ] = [ dirruns, nodeIndex, diff ]; + break; + } + } + + } else { + + // Use previously-cached element index if available + if ( useCache ) { + outerCache = elem[ expando ] || ( elem[ expando ] = {} ); + cache = outerCache[ type ] || []; + nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; + diff = nodeIndex; + } + + // xml :nth-child(...) + // or :nth-last-child(...) or :nth(-last)?-of-type(...) + if ( diff === false ) { + + // Use the same loop as above to seek `elem` from the start + while ( ( node = ++nodeIndex && node && node[ dir ] || + ( diff = nodeIndex = 0 ) || start.pop() ) ) { + + if ( ( ofType ? + nodeName( node, name ) : + node.nodeType === 1 ) && + ++diff ) { + + // Cache the index of each encountered element + if ( useCache ) { + outerCache = node[ expando ] || + ( node[ expando ] = {} ); + outerCache[ type ] = [ dirruns, diff ]; + } + + if ( node === elem ) { + break; + } + } + } + } + } + + // Incorporate the offset, then check against cycle size + diff -= last; + return diff === first || ( diff % first === 0 && diff / first >= 0 ); + } + }; + }, + + PSEUDO: function( pseudo, argument ) { + + // pseudo-class names are case-insensitive + // https://www.w3.org/TR/selectors/#pseudo-classes + // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters + // Remember that setFilters inherits from pseudos + var args, + fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || + find.error( "unsupported pseudo: " + pseudo ); + + // The user may use createPseudo to indicate that + // arguments are needed to create the filter function + // just as jQuery does + if ( fn[ expando ] ) { + return fn( argument ); + } + + // But maintain support for old signatures + if ( fn.length > 1 ) { + args = [ pseudo, pseudo, "", argument ]; + return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? + markFunction( function( seed, matches ) { + var idx, + matched = fn( seed, argument ), + i = matched.length; + while ( i-- ) { + idx = indexOf.call( seed, matched[ i ] ); + seed[ idx ] = !( matches[ idx ] = matched[ i ] ); + } + } ) : + function( elem ) { + return fn( elem, 0, args ); + }; + } + + return fn; + } + }, + + pseudos: { + + // Potentially complex pseudos + not: markFunction( function( selector ) { + + // Trim the selector passed to compile + // to avoid treating leading and trailing + // spaces as combinators + var input = [], + results = [], + matcher = compile( selector.replace( rtrimCSS, "$1" ) ); + + return matcher[ expando ] ? + markFunction( function( seed, matches, _context, xml ) { + var elem, + unmatched = matcher( seed, null, xml, [] ), + i = seed.length; + + // Match elements unmatched by `matcher` + while ( i-- ) { + if ( ( elem = unmatched[ i ] ) ) { + seed[ i ] = !( matches[ i ] = elem ); + } + } + } ) : + function( elem, _context, xml ) { + input[ 0 ] = elem; + matcher( input, null, xml, results ); + + // Don't keep the element + // (see https://github.com/jquery/sizzle/issues/299) + input[ 0 ] = null; + return !results.pop(); + }; + } ), + + has: markFunction( function( selector ) { + return function( elem ) { + return find( selector, elem ).length > 0; + }; + } ), + + contains: markFunction( function( text ) { + text = text.replace( runescape, funescape ); + return function( elem ) { + return ( elem.textContent || jQuery.text( elem ) ).indexOf( text ) > -1; + }; + } ), + + // "Whether an element is represented by a :lang() selector + // is based solely on the element's language value + // being equal to the identifier C, + // or beginning with the identifier C immediately followed by "-". + // The matching of C against the element's language value is performed case-insensitively. + // The identifier C does not have to be a valid language name." + // https://www.w3.org/TR/selectors/#lang-pseudo + lang: markFunction( function( lang ) { + + // lang value must be a valid identifier + if ( !ridentifier.test( lang || "" ) ) { + find.error( "unsupported lang: " + lang ); + } + lang = lang.replace( runescape, funescape ).toLowerCase(); + return function( elem ) { + var elemLang; + do { + if ( ( elemLang = documentIsHTML ? + elem.lang : + elem.getAttribute( "xml:lang" ) || elem.getAttribute( "lang" ) ) ) { + + elemLang = elemLang.toLowerCase(); + return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; + } + } while ( ( elem = elem.parentNode ) && elem.nodeType === 1 ); + return false; + }; + } ), + + // Miscellaneous + target: function( elem ) { + var hash = window.location && window.location.hash; + return hash && hash.slice( 1 ) === elem.id; + }, + + root: function( elem ) { + return elem === documentElement; + }, + + focus: function( elem ) { + return elem === safeActiveElement() && + document.hasFocus() && + !!( elem.type || elem.href || ~elem.tabIndex ); + }, + + // Boolean properties + enabled: createDisabledPseudo( false ), + disabled: createDisabledPseudo( true ), + + checked: function( elem ) { + + // In CSS3, :checked should return both checked and selected elements + // https://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + return ( nodeName( elem, "input" ) && !!elem.checked ) || + ( nodeName( elem, "option" ) && !!elem.selected ); + }, + + selected: function( elem ) { + + // Support: IE <=11+ + // Accessing the selectedIndex property + // forces the browser to treat the default option as + // selected when in an optgroup. + if ( elem.parentNode ) { + // eslint-disable-next-line no-unused-expressions + elem.parentNode.selectedIndex; + } + + return elem.selected === true; + }, + + // Contents + empty: function( elem ) { + + // https://www.w3.org/TR/selectors/#empty-pseudo + // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5), + // but not by others (comment: 8; processing instruction: 7; etc.) + // nodeType < 6 works because attributes (2) do not appear as children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + if ( elem.nodeType < 6 ) { + return false; + } + } + return true; + }, + + parent: function( elem ) { + return !Expr.pseudos.empty( elem ); + }, + + // Element/input types + header: function( elem ) { + return rheader.test( elem.nodeName ); + }, + + input: function( elem ) { + return rinputs.test( elem.nodeName ); + }, + + button: function( elem ) { + return nodeName( elem, "input" ) && elem.type === "button" || + nodeName( elem, "button" ); + }, + + text: function( elem ) { + var attr; + return nodeName( elem, "input" ) && elem.type === "text" && + + // Support: IE <10 only + // New HTML5 attribute values (e.g., "search") appear + // with elem.type === "text" + ( ( attr = elem.getAttribute( "type" ) ) == null || + attr.toLowerCase() === "text" ); + }, + + // Position-in-collection + first: createPositionalPseudo( function() { + return [ 0 ]; + } ), + + last: createPositionalPseudo( function( _matchIndexes, length ) { + return [ length - 1 ]; + } ), + + eq: createPositionalPseudo( function( _matchIndexes, length, argument ) { + return [ argument < 0 ? argument + length : argument ]; + } ), + + even: createPositionalPseudo( function( matchIndexes, length ) { + var i = 0; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + } ), + + odd: createPositionalPseudo( function( matchIndexes, length ) { + var i = 1; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + } ), + + lt: createPositionalPseudo( function( matchIndexes, length, argument ) { + var i; + + if ( argument < 0 ) { + i = argument + length; + } else if ( argument > length ) { + i = length; + } else { + i = argument; + } + + for ( ; --i >= 0; ) { + matchIndexes.push( i ); + } + return matchIndexes; + } ), + + gt: createPositionalPseudo( function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; + for ( ; ++i < length; ) { + matchIndexes.push( i ); + } + return matchIndexes; + } ) + } +}; + +Expr.pseudos.nth = Expr.pseudos.eq; + +// Add button/input type pseudos +for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { + Expr.pseudos[ i ] = createInputPseudo( i ); +} +for ( i in { submit: true, reset: true } ) { + Expr.pseudos[ i ] = createButtonPseudo( i ); +} + +// Easy API for creating new setFilters +function setFilters() {} +setFilters.prototype = Expr.filters = Expr.pseudos; +Expr.setFilters = new setFilters(); + +function tokenize( selector, parseOnly ) { + var matched, match, tokens, type, + soFar, groups, preFilters, + cached = tokenCache[ selector + " " ]; + + if ( cached ) { + return parseOnly ? 0 : cached.slice( 0 ); + } + + soFar = selector; + groups = []; + preFilters = Expr.preFilter; + + while ( soFar ) { + + // Comma and first run + if ( !matched || ( match = rcomma.exec( soFar ) ) ) { + if ( match ) { + + // Don't consume trailing commas as valid + soFar = soFar.slice( match[ 0 ].length ) || soFar; + } + groups.push( ( tokens = [] ) ); + } + + matched = false; + + // Combinators + if ( ( match = rleadingCombinator.exec( soFar ) ) ) { + matched = match.shift(); + tokens.push( { + value: matched, + + // Cast descendant combinators to space + type: match[ 0 ].replace( rtrimCSS, " " ) + } ); + soFar = soFar.slice( matched.length ); + } + + // Filters + for ( type in Expr.filter ) { + if ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] || + ( match = preFilters[ type ]( match ) ) ) ) { + matched = match.shift(); + tokens.push( { + value: matched, + type: type, + matches: match + } ); + soFar = soFar.slice( matched.length ); + } + } + + if ( !matched ) { + break; + } + } + + // Return the length of the invalid excess + // if we're just parsing + // Otherwise, throw an error or return tokens + if ( parseOnly ) { + return soFar.length; + } + + return soFar ? + find.error( selector ) : + + // Cache the tokens + tokenCache( selector, groups ).slice( 0 ); +} + +function toSelector( tokens ) { + var i = 0, + len = tokens.length, + selector = ""; + for ( ; i < len; i++ ) { + selector += tokens[ i ].value; + } + return selector; +} + +function addCombinator( matcher, combinator, base ) { + var dir = combinator.dir, + skip = combinator.next, + key = skip || dir, + checkNonElements = base && key === "parentNode", + doneName = done++; + + return combinator.first ? + + // Check against closest ancestor/preceding element + function( elem, context, xml ) { + while ( ( elem = elem[ dir ] ) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + return matcher( elem, context, xml ); + } + } + return false; + } : + + // Check against all ancestor/preceding elements + function( elem, context, xml ) { + var oldCache, outerCache, + newCache = [ dirruns, doneName ]; + + // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching + if ( xml ) { + while ( ( elem = elem[ dir ] ) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + if ( matcher( elem, context, xml ) ) { + return true; + } + } + } + } else { + while ( ( elem = elem[ dir ] ) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + outerCache = elem[ expando ] || ( elem[ expando ] = {} ); + + if ( skip && nodeName( elem, skip ) ) { + elem = elem[ dir ] || elem; + } else if ( ( oldCache = outerCache[ key ] ) && + oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) { + + // Assign to newCache so results back-propagate to previous elements + return ( newCache[ 2 ] = oldCache[ 2 ] ); + } else { + + // Reuse newcache so results back-propagate to previous elements + outerCache[ key ] = newCache; + + // A match means we're done; a fail means we have to keep checking + if ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) { + return true; + } + } + } + } + } + return false; + }; +} + +function elementMatcher( matchers ) { + return matchers.length > 1 ? + function( elem, context, xml ) { + var i = matchers.length; + while ( i-- ) { + if ( !matchers[ i ]( elem, context, xml ) ) { + return false; + } + } + return true; + } : + matchers[ 0 ]; +} + +function multipleContexts( selector, contexts, results ) { + var i = 0, + len = contexts.length; + for ( ; i < len; i++ ) { + find( selector, contexts[ i ], results ); + } + return results; +} + +function condense( unmatched, map, filter, context, xml ) { + var elem, + newUnmatched = [], + i = 0, + len = unmatched.length, + mapped = map != null; + + for ( ; i < len; i++ ) { + if ( ( elem = unmatched[ i ] ) ) { + if ( !filter || filter( elem, context, xml ) ) { + newUnmatched.push( elem ); + if ( mapped ) { + map.push( i ); + } + } + } + } + + return newUnmatched; +} + +function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { + if ( postFilter && !postFilter[ expando ] ) { + postFilter = setMatcher( postFilter ); + } + if ( postFinder && !postFinder[ expando ] ) { + postFinder = setMatcher( postFinder, postSelector ); + } + return markFunction( function( seed, results, context, xml ) { + var temp, i, elem, matcherOut, + preMap = [], + postMap = [], + preexisting = results.length, + + // Get initial elements from seed or context + elems = seed || + multipleContexts( selector || "*", + context.nodeType ? [ context ] : context, [] ), + + // Prefilter to get matcher input, preserving a map for seed-results synchronization + matcherIn = preFilter && ( seed || !selector ) ? + condense( elems, preMap, preFilter, context, xml ) : + elems; + + if ( matcher ) { + + // If we have a postFinder, or filtered seed, or non-seed postFilter + // or preexisting results, + matcherOut = postFinder || ( seed ? preFilter : preexisting || postFilter ) ? + + // ...intermediate processing is necessary + [] : + + // ...otherwise use results directly + results; + + // Find primary matches + matcher( matcherIn, matcherOut, context, xml ); + } else { + matcherOut = matcherIn; + } + + // Apply postFilter + if ( postFilter ) { + temp = condense( matcherOut, postMap ); + postFilter( temp, [], context, xml ); + + // Un-match failing elements by moving them back to matcherIn + i = temp.length; + while ( i-- ) { + if ( ( elem = temp[ i ] ) ) { + matcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem ); + } + } + } + + if ( seed ) { + if ( postFinder || preFilter ) { + if ( postFinder ) { + + // Get the final matcherOut by condensing this intermediate into postFinder contexts + temp = []; + i = matcherOut.length; + while ( i-- ) { + if ( ( elem = matcherOut[ i ] ) ) { + + // Restore matcherIn since elem is not yet a final match + temp.push( ( matcherIn[ i ] = elem ) ); + } + } + postFinder( null, ( matcherOut = [] ), temp, xml ); + } + + // Move matched elements from seed to results to keep them synchronized + i = matcherOut.length; + while ( i-- ) { + if ( ( elem = matcherOut[ i ] ) && + ( temp = postFinder ? indexOf.call( seed, elem ) : preMap[ i ] ) > -1 ) { + + seed[ temp ] = !( results[ temp ] = elem ); + } + } + } + + // Add elements to results, through postFinder if defined + } else { + matcherOut = condense( + matcherOut === results ? + matcherOut.splice( preexisting, matcherOut.length ) : + matcherOut + ); + if ( postFinder ) { + postFinder( null, results, matcherOut, xml ); + } else { + push.apply( results, matcherOut ); + } + } + } ); +} + +function matcherFromTokens( tokens ) { + var checkContext, matcher, j, + len = tokens.length, + leadingRelative = Expr.relative[ tokens[ 0 ].type ], + implicitRelative = leadingRelative || Expr.relative[ " " ], + i = leadingRelative ? 1 : 0, + + // The foundational matcher ensures that elements are reachable from top-level context(s) + matchContext = addCombinator( function( elem ) { + return elem === checkContext; + }, implicitRelative, true ), + matchAnyContext = addCombinator( function( elem ) { + return indexOf.call( checkContext, elem ) > -1; + }, implicitRelative, true ), + matchers = [ function( elem, context, xml ) { + + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + var ret = ( !leadingRelative && ( xml || context != outermostContext ) ) || ( + ( checkContext = context ).nodeType ? + matchContext( elem, context, xml ) : + matchAnyContext( elem, context, xml ) ); + + // Avoid hanging onto element + // (see https://github.com/jquery/sizzle/issues/299) + checkContext = null; + return ret; + } ]; + + for ( ; i < len; i++ ) { + if ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) { + matchers = [ addCombinator( elementMatcher( matchers ), matcher ) ]; + } else { + matcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches ); + + // Return special upon seeing a positional matcher + if ( matcher[ expando ] ) { + + // Find the next relative operator (if any) for proper handling + j = ++i; + for ( ; j < len; j++ ) { + if ( Expr.relative[ tokens[ j ].type ] ) { + break; + } + } + return setMatcher( + i > 1 && elementMatcher( matchers ), + i > 1 && toSelector( + + // If the preceding token was a descendant combinator, insert an implicit any-element `*` + tokens.slice( 0, i - 1 ) + .concat( { value: tokens[ i - 2 ].type === " " ? "*" : "" } ) + ).replace( rtrimCSS, "$1" ), + matcher, + i < j && matcherFromTokens( tokens.slice( i, j ) ), + j < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ), + j < len && toSelector( tokens ) + ); + } + matchers.push( matcher ); + } + } + + return elementMatcher( matchers ); +} + +function matcherFromGroupMatchers( elementMatchers, setMatchers ) { + var bySet = setMatchers.length > 0, + byElement = elementMatchers.length > 0, + superMatcher = function( seed, context, xml, results, outermost ) { + var elem, j, matcher, + matchedCount = 0, + i = "0", + unmatched = seed && [], + setMatched = [], + contextBackup = outermostContext, + + // We must always have either seed elements or outermost context + elems = seed || byElement && Expr.find.TAG( "*", outermost ), + + // Use integer dirruns iff this is the outermost matcher + dirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ), + len = elems.length; + + if ( outermost ) { + + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + outermostContext = context == document || context || outermost; + } + + // Add elements passing elementMatchers directly to results + // Support: iOS <=7 - 9 only + // Tolerate NodeList properties (IE: "length"; Safari: <number>) matching + // elements by id. (see trac-14142) + for ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) { + if ( byElement && elem ) { + j = 0; + + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( !context && elem.ownerDocument != document ) { + setDocument( elem ); + xml = !documentIsHTML; + } + while ( ( matcher = elementMatchers[ j++ ] ) ) { + if ( matcher( elem, context || document, xml ) ) { + push.call( results, elem ); + break; + } + } + if ( outermost ) { + dirruns = dirrunsUnique; + } + } + + // Track unmatched elements for set filters + if ( bySet ) { + + // They will have gone through all possible matchers + if ( ( elem = !matcher && elem ) ) { + matchedCount--; + } + + // Lengthen the array for every element, matched or not + if ( seed ) { + unmatched.push( elem ); + } + } + } + + // `i` is now the count of elements visited above, and adding it to `matchedCount` + // makes the latter nonnegative. + matchedCount += i; + + // Apply set filters to unmatched elements + // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount` + // equals `i`), unless we didn't visit _any_ elements in the above loop because we have + // no element matchers and no seed. + // Incrementing an initially-string "0" `i` allows `i` to remain a string only in that + // case, which will result in a "00" `matchedCount` that differs from `i` but is also + // numerically zero. + if ( bySet && i !== matchedCount ) { + j = 0; + while ( ( matcher = setMatchers[ j++ ] ) ) { + matcher( unmatched, setMatched, context, xml ); + } + + if ( seed ) { + + // Reintegrate element matches to eliminate the need for sorting + if ( matchedCount > 0 ) { + while ( i-- ) { + if ( !( unmatched[ i ] || setMatched[ i ] ) ) { + setMatched[ i ] = pop.call( results ); + } + } + } + + // Discard index placeholder values to get only actual matches + setMatched = condense( setMatched ); + } + + // Add matches to results + push.apply( results, setMatched ); + + // Seedless set matches succeeding multiple successful matchers stipulate sorting + if ( outermost && !seed && setMatched.length > 0 && + ( matchedCount + setMatchers.length ) > 1 ) { + + jQuery.uniqueSort( results ); + } + } + + // Override manipulation of globals by nested matchers + if ( outermost ) { + dirruns = dirrunsUnique; + outermostContext = contextBackup; + } + + return unmatched; + }; + + return bySet ? + markFunction( superMatcher ) : + superMatcher; +} + +function compile( selector, match /* Internal Use Only */ ) { + var i, + setMatchers = [], + elementMatchers = [], + cached = compilerCache[ selector + " " ]; + + if ( !cached ) { + + // Generate a function of recursive functions that can be used to check each element + if ( !match ) { + match = tokenize( selector ); + } + i = match.length; + while ( i-- ) { + cached = matcherFromTokens( match[ i ] ); + if ( cached[ expando ] ) { + setMatchers.push( cached ); + } else { + elementMatchers.push( cached ); + } + } + + // Cache the compiled function + cached = compilerCache( selector, + matcherFromGroupMatchers( elementMatchers, setMatchers ) ); + + // Save selector and tokenization + cached.selector = selector; + } + return cached; +} + +/** + * A low-level selection function that works with jQuery's compiled + * selector functions + * @param {String|Function} selector A selector or a pre-compiled + * selector function built with jQuery selector compile + * @param {Element} context + * @param {Array} [results] + * @param {Array} [seed] A set of elements to match against + */ +function select( selector, context, results, seed ) { + var i, tokens, token, type, find, + compiled = typeof selector === "function" && selector, + match = !seed && tokenize( ( selector = compiled.selector || selector ) ); + + results = results || []; + + // Try to minimize operations if there is only one selector in the list and no seed + // (the latter of which guarantees us context) + if ( match.length === 1 ) { + + // Reduce context if the leading compound selector is an ID + tokens = match[ 0 ] = match[ 0 ].slice( 0 ); + if ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === "ID" && + context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) { + + context = ( Expr.find.ID( + token.matches[ 0 ].replace( runescape, funescape ), + context + ) || [] )[ 0 ]; + if ( !context ) { + return results; + + // Precompiled matchers will still verify ancestry, so step up a level + } else if ( compiled ) { + context = context.parentNode; + } + + selector = selector.slice( tokens.shift().value.length ); + } + + // Fetch a seed set for right-to-left matching + i = matchExpr.needsContext.test( selector ) ? 0 : tokens.length; + while ( i-- ) { + token = tokens[ i ]; + + // Abort if we hit a combinator + if ( Expr.relative[ ( type = token.type ) ] ) { + break; + } + if ( ( find = Expr.find[ type ] ) ) { + + // Search, expanding context for leading sibling combinators + if ( ( seed = find( + token.matches[ 0 ].replace( runescape, funescape ), + rsibling.test( tokens[ 0 ].type ) && + testContext( context.parentNode ) || context + ) ) ) { + + // If seed is empty or no tokens remain, we can return early + tokens.splice( i, 1 ); + selector = seed.length && toSelector( tokens ); + if ( !selector ) { + push.apply( results, seed ); + return results; + } + + break; + } + } + } + } + + // Compile and execute a filtering function if one is not provided + // Provide `match` to avoid retokenization if we modified the selector above + ( compiled || compile( selector, match ) )( + seed, + context, + !documentIsHTML, + results, + !context || rsibling.test( selector ) && testContext( context.parentNode ) || context + ); + return results; +} + +// One-time assignments + +// Support: Android <=4.0 - 4.1+ +// Sort stability +support.sortStable = expando.split( "" ).sort( sortOrder ).join( "" ) === expando; + +// Initialize against the default document +setDocument(); + +// Support: Android <=4.0 - 4.1+ +// Detached nodes confoundingly follow *each other* +support.sortDetached = assert( function( el ) { + + // Should return 1, but returns 4 (following) + return el.compareDocumentPosition( document.createElement( "fieldset" ) ) & 1; +} ); + +jQuery.find = find; + +// Deprecated +jQuery.expr[ ":" ] = jQuery.expr.pseudos; +jQuery.unique = jQuery.uniqueSort; + +// These have always been private, but they used to be documented as part of +// Sizzle so let's maintain them for now for backwards compatibility purposes. +find.compile = compile; +find.select = select; +find.setDocument = setDocument; +find.tokenize = tokenize; + +find.escape = jQuery.escapeSelector; +find.getText = jQuery.text; +find.isXML = jQuery.isXMLDoc; +find.selectors = jQuery.expr; +find.support = jQuery.support; +find.uniqueSort = jQuery.uniqueSort; + + /* eslint-enable */ + +} )(); + + +var dir = function( elem, dir, until ) { + var matched = [], + truncate = until !== undefined; + + while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) { + if ( elem.nodeType === 1 ) { + if ( truncate && jQuery( elem ).is( until ) ) { + break; + } + matched.push( elem ); + } + } + return matched; +}; + + +var siblings = function( n, elem ) { + var matched = []; + + for ( ; n; n = n.nextSibling ) { + if ( n.nodeType === 1 && n !== elem ) { + matched.push( n ); + } + } + + return matched; +}; + + +var rneedsContext = jQuery.expr.match.needsContext; + +var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i ); + + + +// Implement the identical functionality for filter and not +function winnow( elements, qualifier, not ) { + if ( isFunction( qualifier ) ) { + return jQuery.grep( elements, function( elem, i ) { + return !!qualifier.call( elem, i, elem ) !== not; + } ); + } + + // Single element + if ( qualifier.nodeType ) { + return jQuery.grep( elements, function( elem ) { + return ( elem === qualifier ) !== not; + } ); + } + + // Arraylike of elements (jQuery, arguments, Array) + if ( typeof qualifier !== "string" ) { + return jQuery.grep( elements, function( elem ) { + return ( indexOf.call( qualifier, elem ) > -1 ) !== not; + } ); + } + + // Filtered directly for both simple and complex selectors + return jQuery.filter( qualifier, elements, not ); +} + +jQuery.filter = function( expr, elems, not ) { + var elem = elems[ 0 ]; + + if ( not ) { + expr = ":not(" + expr + ")"; + } + + if ( elems.length === 1 && elem.nodeType === 1 ) { + return jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : []; + } + + return jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) { + return elem.nodeType === 1; + } ) ); +}; + +jQuery.fn.extend( { + find: function( selector ) { + var i, ret, + len = this.length, + self = this; + + if ( typeof selector !== "string" ) { + return this.pushStack( jQuery( selector ).filter( function() { + for ( i = 0; i < len; i++ ) { + if ( jQuery.contains( self[ i ], this ) ) { + return true; + } + } + } ) ); + } + + ret = this.pushStack( [] ); + + for ( i = 0; i < len; i++ ) { + jQuery.find( selector, self[ i ], ret ); + } + + return len > 1 ? jQuery.uniqueSort( ret ) : ret; + }, + filter: function( selector ) { + return this.pushStack( winnow( this, selector || [], false ) ); + }, + not: function( selector ) { + return this.pushStack( winnow( this, selector || [], true ) ); + }, + is: function( selector ) { + return !!winnow( + this, + + // If this is a positional/relative selector, check membership in the returned set + // so $("p:first").is("p:last") won't return true for a doc with two "p". + typeof selector === "string" && rneedsContext.test( selector ) ? + jQuery( selector ) : + selector || [], + false + ).length; + } +} ); + + +// Initialize a jQuery object + + +// A central reference to the root jQuery(document) +var rootjQuery, + + // A simple way to check for HTML strings + // Prioritize #id over <tag> to avoid XSS via location.hash (trac-9521) + // Strict HTML recognition (trac-11290: must start with <) + // Shortcut simple #id case for speed + rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/, + + init = jQuery.fn.init = function( selector, context, root ) { + var match, elem; + + // HANDLE: $(""), $(null), $(undefined), $(false) + if ( !selector ) { + return this; + } + + // Method init() accepts an alternate rootjQuery + // so migrate can support jQuery.sub (gh-2101) + root = root || rootjQuery; + + // Handle HTML strings + if ( typeof selector === "string" ) { + if ( selector[ 0 ] === "<" && + selector[ selector.length - 1 ] === ">" && + selector.length >= 3 ) { + + // Assume that strings that start and end with <> are HTML and skip the regex check + match = [ null, selector, null ]; + + } else { + match = rquickExpr.exec( selector ); + } + + // Match html or make sure no context is specified for #id + if ( match && ( match[ 1 ] || !context ) ) { + + // HANDLE: $(html) -> $(array) + if ( match[ 1 ] ) { + context = context instanceof jQuery ? context[ 0 ] : context; + + // Option to run scripts is true for back-compat + // Intentionally let the error be thrown if parseHTML is not present + jQuery.merge( this, jQuery.parseHTML( + match[ 1 ], + context && context.nodeType ? context.ownerDocument || context : document, + true + ) ); + + // HANDLE: $(html, props) + if ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) { + for ( match in context ) { + + // Properties of context are called as methods if possible + if ( isFunction( this[ match ] ) ) { + this[ match ]( context[ match ] ); + + // ...and otherwise set as attributes + } else { + this.attr( match, context[ match ] ); + } + } + } + + return this; + + // HANDLE: $(#id) + } else { + elem = document.getElementById( match[ 2 ] ); + + if ( elem ) { + + // Inject the element directly into the jQuery object + this[ 0 ] = elem; + this.length = 1; + } + return this; + } + + // HANDLE: $(expr, $(...)) + } else if ( !context || context.jquery ) { + return ( context || root ).find( selector ); + + // HANDLE: $(expr, context) + // (which is just equivalent to: $(context).find(expr) + } else { + return this.constructor( context ).find( selector ); + } + + // HANDLE: $(DOMElement) + } else if ( selector.nodeType ) { + this[ 0 ] = selector; + this.length = 1; + return this; + + // HANDLE: $(function) + // Shortcut for document ready + } else if ( isFunction( selector ) ) { + return root.ready !== undefined ? + root.ready( selector ) : + + // Execute immediately if ready is not present + selector( jQuery ); + } + + return jQuery.makeArray( selector, this ); + }; + +// Give the init function the jQuery prototype for later instantiation +init.prototype = jQuery.fn; + +// Initialize central reference +rootjQuery = jQuery( document ); + + +var rparentsprev = /^(?:parents|prev(?:Until|All))/, + + // Methods guaranteed to produce a unique set when starting from a unique set + guaranteedUnique = { + children: true, + contents: true, + next: true, + prev: true + }; + +jQuery.fn.extend( { + has: function( target ) { + var targets = jQuery( target, this ), + l = targets.length; + + return this.filter( function() { + var i = 0; + for ( ; i < l; i++ ) { + if ( jQuery.contains( this, targets[ i ] ) ) { + return true; + } + } + } ); + }, + + closest: function( selectors, context ) { + var cur, + i = 0, + l = this.length, + matched = [], + targets = typeof selectors !== "string" && jQuery( selectors ); + + // Positional selectors never match, since there's no _selection_ context + if ( !rneedsContext.test( selectors ) ) { + for ( ; i < l; i++ ) { + for ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) { + + // Always skip document fragments + if ( cur.nodeType < 11 && ( targets ? + targets.index( cur ) > -1 : + + // Don't pass non-elements to jQuery#find + cur.nodeType === 1 && + jQuery.find.matchesSelector( cur, selectors ) ) ) { + + matched.push( cur ); + break; + } + } + } + } + + return this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched ); + }, + + // Determine the position of an element within the set + index: function( elem ) { + + // No argument, return index in parent + if ( !elem ) { + return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1; + } + + // Index in selector + if ( typeof elem === "string" ) { + return indexOf.call( jQuery( elem ), this[ 0 ] ); + } + + // Locate the position of the desired element + return indexOf.call( this, + + // If it receives a jQuery object, the first element is used + elem.jquery ? elem[ 0 ] : elem + ); + }, + + add: function( selector, context ) { + return this.pushStack( + jQuery.uniqueSort( + jQuery.merge( this.get(), jQuery( selector, context ) ) + ) + ); + }, + + addBack: function( selector ) { + return this.add( selector == null ? + this.prevObject : this.prevObject.filter( selector ) + ); + } +} ); + +function sibling( cur, dir ) { + while ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {} + return cur; +} + +jQuery.each( { + parent: function( elem ) { + var parent = elem.parentNode; + return parent && parent.nodeType !== 11 ? parent : null; + }, + parents: function( elem ) { + return dir( elem, "parentNode" ); + }, + parentsUntil: function( elem, _i, until ) { + return dir( elem, "parentNode", until ); + }, + next: function( elem ) { + return sibling( elem, "nextSibling" ); + }, + prev: function( elem ) { + return sibling( elem, "previousSibling" ); + }, + nextAll: function( elem ) { + return dir( elem, "nextSibling" ); + }, + prevAll: function( elem ) { + return dir( elem, "previousSibling" ); + }, + nextUntil: function( elem, _i, until ) { + return dir( elem, "nextSibling", until ); + }, + prevUntil: function( elem, _i, until ) { + return dir( elem, "previousSibling", until ); + }, + siblings: function( elem ) { + return siblings( ( elem.parentNode || {} ).firstChild, elem ); + }, + children: function( elem ) { + return siblings( elem.firstChild ); + }, + contents: function( elem ) { + if ( elem.contentDocument != null && + + // Support: IE 11+ + // <object> elements with no `data` attribute has an object + // `contentDocument` with a `null` prototype. + getProto( elem.contentDocument ) ) { + + return elem.contentDocument; + } + + // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only + // Treat the template element as a regular one in browsers that + // don't support it. + if ( nodeName( elem, "template" ) ) { + elem = elem.content || elem; + } + + return jQuery.merge( [], elem.childNodes ); + } +}, function( name, fn ) { + jQuery.fn[ name ] = function( until, selector ) { + var matched = jQuery.map( this, fn, until ); + + if ( name.slice( -5 ) !== "Until" ) { + selector = until; + } + + if ( selector && typeof selector === "string" ) { + matched = jQuery.filter( selector, matched ); + } + + if ( this.length > 1 ) { + + // Remove duplicates + if ( !guaranteedUnique[ name ] ) { + jQuery.uniqueSort( matched ); + } + + // Reverse order for parents* and prev-derivatives + if ( rparentsprev.test( name ) ) { + matched.reverse(); + } + } + + return this.pushStack( matched ); + }; +} ); +var rnothtmlwhite = ( /[^\x20\t\r\n\f]+/g ); + + + +// Convert String-formatted options into Object-formatted ones +function createOptions( options ) { + var object = {}; + jQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) { + object[ flag ] = true; + } ); + return object; +} + +/* + * Create a callback list using the following parameters: + * + * options: an optional list of space-separated options that will change how + * the callback list behaves or a more traditional option object + * + * By default a callback list will act like an event callback list and can be + * "fired" multiple times. + * + * Possible options: + * + * once: will ensure the callback list can only be fired once (like a Deferred) + * + * memory: will keep track of previous values and will call any callback added + * after the list has been fired right away with the latest "memorized" + * values (like a Deferred) + * + * unique: will ensure a callback can only be added once (no duplicate in the list) + * + * stopOnFalse: interrupt callings when a callback returns false + * + */ +jQuery.Callbacks = function( options ) { + + // Convert options from String-formatted to Object-formatted if needed + // (we check in cache first) + options = typeof options === "string" ? + createOptions( options ) : + jQuery.extend( {}, options ); + + var // Flag to know if list is currently firing + firing, + + // Last fire value for non-forgettable lists + memory, + + // Flag to know if list was already fired + fired, + + // Flag to prevent firing + locked, + + // Actual callback list + list = [], + + // Queue of execution data for repeatable lists + queue = [], + + // Index of currently firing callback (modified by add/remove as needed) + firingIndex = -1, + + // Fire callbacks + fire = function() { + + // Enforce single-firing + locked = locked || options.once; + + // Execute callbacks for all pending executions, + // respecting firingIndex overrides and runtime changes + fired = firing = true; + for ( ; queue.length; firingIndex = -1 ) { + memory = queue.shift(); + while ( ++firingIndex < list.length ) { + + // Run callback and check for early termination + if ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false && + options.stopOnFalse ) { + + // Jump to end and forget the data so .add doesn't re-fire + firingIndex = list.length; + memory = false; + } + } + } + + // Forget the data if we're done with it + if ( !options.memory ) { + memory = false; + } + + firing = false; + + // Clean up if we're done firing for good + if ( locked ) { + + // Keep an empty list if we have data for future add calls + if ( memory ) { + list = []; + + // Otherwise, this object is spent + } else { + list = ""; + } + } + }, + + // Actual Callbacks object + self = { + + // Add a callback or a collection of callbacks to the list + add: function() { + if ( list ) { + + // If we have memory from a past run, we should fire after adding + if ( memory && !firing ) { + firingIndex = list.length - 1; + queue.push( memory ); + } + + ( function add( args ) { + jQuery.each( args, function( _, arg ) { + if ( isFunction( arg ) ) { + if ( !options.unique || !self.has( arg ) ) { + list.push( arg ); + } + } else if ( arg && arg.length && toType( arg ) !== "string" ) { + + // Inspect recursively + add( arg ); + } + } ); + } )( arguments ); + + if ( memory && !firing ) { + fire(); + } + } + return this; + }, + + // Remove a callback from the list + remove: function() { + jQuery.each( arguments, function( _, arg ) { + var index; + while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) { + list.splice( index, 1 ); + + // Handle firing indexes + if ( index <= firingIndex ) { + firingIndex--; + } + } + } ); + return this; + }, + + // Check if a given callback is in the list. + // If no argument is given, return whether or not list has callbacks attached. + has: function( fn ) { + return fn ? + jQuery.inArray( fn, list ) > -1 : + list.length > 0; + }, + + // Remove all callbacks from the list + empty: function() { + if ( list ) { + list = []; + } + return this; + }, + + // Disable .fire and .add + // Abort any current/pending executions + // Clear all callbacks and values + disable: function() { + locked = queue = []; + list = memory = ""; + return this; + }, + disabled: function() { + return !list; + }, + + // Disable .fire + // Also disable .add unless we have memory (since it would have no effect) + // Abort any pending executions + lock: function() { + locked = queue = []; + if ( !memory && !firing ) { + list = memory = ""; + } + return this; + }, + locked: function() { + return !!locked; + }, + + // Call all callbacks with the given context and arguments + fireWith: function( context, args ) { + if ( !locked ) { + args = args || []; + args = [ context, args.slice ? args.slice() : args ]; + queue.push( args ); + if ( !firing ) { + fire(); + } + } + return this; + }, + + // Call all the callbacks with the given arguments + fire: function() { + self.fireWith( this, arguments ); + return this; + }, + + // To know if the callbacks have already been called at least once + fired: function() { + return !!fired; + } + }; + + return self; +}; + + +function Identity( v ) { + return v; +} +function Thrower( ex ) { + throw ex; +} + +function adoptValue( value, resolve, reject, noValue ) { + var method; + + try { + + // Check for promise aspect first to privilege synchronous behavior + if ( value && isFunction( ( method = value.promise ) ) ) { + method.call( value ).done( resolve ).fail( reject ); + + // Other thenables + } else if ( value && isFunction( ( method = value.then ) ) ) { + method.call( value, resolve, reject ); + + // Other non-thenables + } else { + + // Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer: + // * false: [ value ].slice( 0 ) => resolve( value ) + // * true: [ value ].slice( 1 ) => resolve() + resolve.apply( undefined, [ value ].slice( noValue ) ); + } + + // For Promises/A+, convert exceptions into rejections + // Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in + // Deferred#then to conditionally suppress rejection. + } catch ( value ) { + + // Support: Android 4.0 only + // Strict mode functions invoked without .call/.apply get global-object context + reject.apply( undefined, [ value ] ); + } +} + +jQuery.extend( { + + Deferred: function( func ) { + var tuples = [ + + // action, add listener, callbacks, + // ... .then handlers, argument index, [final state] + [ "notify", "progress", jQuery.Callbacks( "memory" ), + jQuery.Callbacks( "memory" ), 2 ], + [ "resolve", "done", jQuery.Callbacks( "once memory" ), + jQuery.Callbacks( "once memory" ), 0, "resolved" ], + [ "reject", "fail", jQuery.Callbacks( "once memory" ), + jQuery.Callbacks( "once memory" ), 1, "rejected" ] + ], + state = "pending", + promise = { + state: function() { + return state; + }, + always: function() { + deferred.done( arguments ).fail( arguments ); + return this; + }, + "catch": function( fn ) { + return promise.then( null, fn ); + }, + + // Keep pipe for back-compat + pipe: function( /* fnDone, fnFail, fnProgress */ ) { + var fns = arguments; + + return jQuery.Deferred( function( newDefer ) { + jQuery.each( tuples, function( _i, tuple ) { + + // Map tuples (progress, done, fail) to arguments (done, fail, progress) + var fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ]; + + // deferred.progress(function() { bind to newDefer or newDefer.notify }) + // deferred.done(function() { bind to newDefer or newDefer.resolve }) + // deferred.fail(function() { bind to newDefer or newDefer.reject }) + deferred[ tuple[ 1 ] ]( function() { + var returned = fn && fn.apply( this, arguments ); + if ( returned && isFunction( returned.promise ) ) { + returned.promise() + .progress( newDefer.notify ) + .done( newDefer.resolve ) + .fail( newDefer.reject ); + } else { + newDefer[ tuple[ 0 ] + "With" ]( + this, + fn ? [ returned ] : arguments + ); + } + } ); + } ); + fns = null; + } ).promise(); + }, + then: function( onFulfilled, onRejected, onProgress ) { + var maxDepth = 0; + function resolve( depth, deferred, handler, special ) { + return function() { + var that = this, + args = arguments, + mightThrow = function() { + var returned, then; + + // Support: Promises/A+ section 2.3.3.3.3 + // https://promisesaplus.com/#point-59 + // Ignore double-resolution attempts + if ( depth < maxDepth ) { + return; + } + + returned = handler.apply( that, args ); + + // Support: Promises/A+ section 2.3.1 + // https://promisesaplus.com/#point-48 + if ( returned === deferred.promise() ) { + throw new TypeError( "Thenable self-resolution" ); + } + + // Support: Promises/A+ sections 2.3.3.1, 3.5 + // https://promisesaplus.com/#point-54 + // https://promisesaplus.com/#point-75 + // Retrieve `then` only once + then = returned && + + // Support: Promises/A+ section 2.3.4 + // https://promisesaplus.com/#point-64 + // Only check objects and functions for thenability + ( typeof returned === "object" || + typeof returned === "function" ) && + returned.then; + + // Handle a returned thenable + if ( isFunction( then ) ) { + + // Special processors (notify) just wait for resolution + if ( special ) { + then.call( + returned, + resolve( maxDepth, deferred, Identity, special ), + resolve( maxDepth, deferred, Thrower, special ) + ); + + // Normal processors (resolve) also hook into progress + } else { + + // ...and disregard older resolution values + maxDepth++; + + then.call( + returned, + resolve( maxDepth, deferred, Identity, special ), + resolve( maxDepth, deferred, Thrower, special ), + resolve( maxDepth, deferred, Identity, + deferred.notifyWith ) + ); + } + + // Handle all other returned values + } else { + + // Only substitute handlers pass on context + // and multiple values (non-spec behavior) + if ( handler !== Identity ) { + that = undefined; + args = [ returned ]; + } + + // Process the value(s) + // Default process is resolve + ( special || deferred.resolveWith )( that, args ); + } + }, + + // Only normal processors (resolve) catch and reject exceptions + process = special ? + mightThrow : + function() { + try { + mightThrow(); + } catch ( e ) { + + if ( jQuery.Deferred.exceptionHook ) { + jQuery.Deferred.exceptionHook( e, + process.error ); + } + + // Support: Promises/A+ section 2.3.3.3.4.1 + // https://promisesaplus.com/#point-61 + // Ignore post-resolution exceptions + if ( depth + 1 >= maxDepth ) { + + // Only substitute handlers pass on context + // and multiple values (non-spec behavior) + if ( handler !== Thrower ) { + that = undefined; + args = [ e ]; + } + + deferred.rejectWith( that, args ); + } + } + }; + + // Support: Promises/A+ section 2.3.3.3.1 + // https://promisesaplus.com/#point-57 + // Re-resolve promises immediately to dodge false rejection from + // subsequent errors + if ( depth ) { + process(); + } else { + + // Call an optional hook to record the error, in case of exception + // since it's otherwise lost when execution goes async + if ( jQuery.Deferred.getErrorHook ) { + process.error = jQuery.Deferred.getErrorHook(); + + // The deprecated alias of the above. While the name suggests + // returning the stack, not an error instance, jQuery just passes + // it directly to `console.warn` so both will work; an instance + // just better cooperates with source maps. + } else if ( jQuery.Deferred.getStackHook ) { + process.error = jQuery.Deferred.getStackHook(); + } + window.setTimeout( process ); + } + }; + } + + return jQuery.Deferred( function( newDefer ) { + + // progress_handlers.add( ... ) + tuples[ 0 ][ 3 ].add( + resolve( + 0, + newDefer, + isFunction( onProgress ) ? + onProgress : + Identity, + newDefer.notifyWith + ) + ); + + // fulfilled_handlers.add( ... ) + tuples[ 1 ][ 3 ].add( + resolve( + 0, + newDefer, + isFunction( onFulfilled ) ? + onFulfilled : + Identity + ) + ); + + // rejected_handlers.add( ... ) + tuples[ 2 ][ 3 ].add( + resolve( + 0, + newDefer, + isFunction( onRejected ) ? + onRejected : + Thrower + ) + ); + } ).promise(); + }, + + // Get a promise for this deferred + // If obj is provided, the promise aspect is added to the object + promise: function( obj ) { + return obj != null ? jQuery.extend( obj, promise ) : promise; + } + }, + deferred = {}; + + // Add list-specific methods + jQuery.each( tuples, function( i, tuple ) { + var list = tuple[ 2 ], + stateString = tuple[ 5 ]; + + // promise.progress = list.add + // promise.done = list.add + // promise.fail = list.add + promise[ tuple[ 1 ] ] = list.add; + + // Handle state + if ( stateString ) { + list.add( + function() { + + // state = "resolved" (i.e., fulfilled) + // state = "rejected" + state = stateString; + }, + + // rejected_callbacks.disable + // fulfilled_callbacks.disable + tuples[ 3 - i ][ 2 ].disable, + + // rejected_handlers.disable + // fulfilled_handlers.disable + tuples[ 3 - i ][ 3 ].disable, + + // progress_callbacks.lock + tuples[ 0 ][ 2 ].lock, + + // progress_handlers.lock + tuples[ 0 ][ 3 ].lock + ); + } + + // progress_handlers.fire + // fulfilled_handlers.fire + // rejected_handlers.fire + list.add( tuple[ 3 ].fire ); + + // deferred.notify = function() { deferred.notifyWith(...) } + // deferred.resolve = function() { deferred.resolveWith(...) } + // deferred.reject = function() { deferred.rejectWith(...) } + deferred[ tuple[ 0 ] ] = function() { + deferred[ tuple[ 0 ] + "With" ]( this === deferred ? undefined : this, arguments ); + return this; + }; + + // deferred.notifyWith = list.fireWith + // deferred.resolveWith = list.fireWith + // deferred.rejectWith = list.fireWith + deferred[ tuple[ 0 ] + "With" ] = list.fireWith; + } ); + + // Make the deferred a promise + promise.promise( deferred ); + + // Call given func if any + if ( func ) { + func.call( deferred, deferred ); + } + + // All done! + return deferred; + }, + + // Deferred helper + when: function( singleValue ) { + var + + // count of uncompleted subordinates + remaining = arguments.length, + + // count of unprocessed arguments + i = remaining, + + // subordinate fulfillment data + resolveContexts = Array( i ), + resolveValues = slice.call( arguments ), + + // the primary Deferred + primary = jQuery.Deferred(), + + // subordinate callback factory + updateFunc = function( i ) { + return function( value ) { + resolveContexts[ i ] = this; + resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value; + if ( !( --remaining ) ) { + primary.resolveWith( resolveContexts, resolveValues ); + } + }; + }; + + // Single- and empty arguments are adopted like Promise.resolve + if ( remaining <= 1 ) { + adoptValue( singleValue, primary.done( updateFunc( i ) ).resolve, primary.reject, + !remaining ); + + // Use .then() to unwrap secondary thenables (cf. gh-3000) + if ( primary.state() === "pending" || + isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) { + + return primary.then(); + } + } + + // Multiple arguments are aggregated like Promise.all array elements + while ( i-- ) { + adoptValue( resolveValues[ i ], updateFunc( i ), primary.reject ); + } + + return primary.promise(); + } +} ); + + +// These usually indicate a programmer mistake during development, +// warn about them ASAP rather than swallowing them by default. +var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/; + +// If `jQuery.Deferred.getErrorHook` is defined, `asyncError` is an error +// captured before the async barrier to get the original error cause +// which may otherwise be hidden. +jQuery.Deferred.exceptionHook = function( error, asyncError ) { + + // Support: IE 8 - 9 only + // Console exists when dev tools are open, which can happen at any time + if ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) { + window.console.warn( "jQuery.Deferred exception: " + error.message, + error.stack, asyncError ); + } +}; + + + + +jQuery.readyException = function( error ) { + window.setTimeout( function() { + throw error; + } ); +}; + + + + +// The deferred used on DOM ready +var readyList = jQuery.Deferred(); + +jQuery.fn.ready = function( fn ) { + + readyList + .then( fn ) + + // Wrap jQuery.readyException in a function so that the lookup + // happens at the time of error handling instead of callback + // registration. + .catch( function( error ) { + jQuery.readyException( error ); + } ); + + return this; +}; + +jQuery.extend( { + + // Is the DOM ready to be used? Set to true once it occurs. + isReady: false, + + // A counter to track how many items to wait for before + // the ready event fires. See trac-6781 + readyWait: 1, + + // Handle when the DOM is ready + ready: function( wait ) { + + // Abort if there are pending holds or we're already ready + if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) { + return; + } + + // Remember that the DOM is ready + jQuery.isReady = true; + + // If a normal DOM Ready event fired, decrement, and wait if need be + if ( wait !== true && --jQuery.readyWait > 0 ) { + return; + } + + // If there are functions bound, to execute + readyList.resolveWith( document, [ jQuery ] ); + } +} ); + +jQuery.ready.then = readyList.then; + +// The ready event handler and self cleanup method +function completed() { + document.removeEventListener( "DOMContentLoaded", completed ); + window.removeEventListener( "load", completed ); + jQuery.ready(); +} + +// Catch cases where $(document).ready() is called +// after the browser event has already occurred. +// Support: IE <=9 - 10 only +// Older IE sometimes signals "interactive" too soon +if ( document.readyState === "complete" || + ( document.readyState !== "loading" && !document.documentElement.doScroll ) ) { + + // Handle it asynchronously to allow scripts the opportunity to delay ready + window.setTimeout( jQuery.ready ); + +} else { + + // Use the handy event callback + document.addEventListener( "DOMContentLoaded", completed ); + + // A fallback to window.onload, that will always work + window.addEventListener( "load", completed ); +} + + + + +// Multifunctional method to get and set values of a collection +// The value/s can optionally be executed if it's a function +var access = function( elems, fn, key, value, chainable, emptyGet, raw ) { + var i = 0, + len = elems.length, + bulk = key == null; + + // Sets many values + if ( toType( key ) === "object" ) { + chainable = true; + for ( i in key ) { + access( elems, fn, i, key[ i ], true, emptyGet, raw ); + } + + // Sets one value + } else if ( value !== undefined ) { + chainable = true; + + if ( !isFunction( value ) ) { + raw = true; + } + + if ( bulk ) { + + // Bulk operations run against the entire set + if ( raw ) { + fn.call( elems, value ); + fn = null; + + // ...except when executing function values + } else { + bulk = fn; + fn = function( elem, _key, value ) { + return bulk.call( jQuery( elem ), value ); + }; + } + } + + if ( fn ) { + for ( ; i < len; i++ ) { + fn( + elems[ i ], key, raw ? + value : + value.call( elems[ i ], i, fn( elems[ i ], key ) ) + ); + } + } + } + + if ( chainable ) { + return elems; + } + + // Gets + if ( bulk ) { + return fn.call( elems ); + } + + return len ? fn( elems[ 0 ], key ) : emptyGet; +}; + + +// Matches dashed string for camelizing +var rmsPrefix = /^-ms-/, + rdashAlpha = /-([a-z])/g; + +// Used by camelCase as callback to replace() +function fcamelCase( _all, letter ) { + return letter.toUpperCase(); +} + +// Convert dashed to camelCase; used by the css and data modules +// Support: IE <=9 - 11, Edge 12 - 15 +// Microsoft forgot to hump their vendor prefix (trac-9572) +function camelCase( string ) { + return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); +} +var acceptData = function( owner ) { + + // Accepts only: + // - Node + // - Node.ELEMENT_NODE + // - Node.DOCUMENT_NODE + // - Object + // - Any + return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType ); +}; + + + + +function Data() { + this.expando = jQuery.expando + Data.uid++; +} + +Data.uid = 1; + +Data.prototype = { + + cache: function( owner ) { + + // Check if the owner object already has a cache + var value = owner[ this.expando ]; + + // If not, create one + if ( !value ) { + value = {}; + + // We can accept data for non-element nodes in modern browsers, + // but we should not, see trac-8335. + // Always return an empty object. + if ( acceptData( owner ) ) { + + // If it is a node unlikely to be stringify-ed or looped over + // use plain assignment + if ( owner.nodeType ) { + owner[ this.expando ] = value; + + // Otherwise secure it in a non-enumerable property + // configurable must be true to allow the property to be + // deleted when data is removed + } else { + Object.defineProperty( owner, this.expando, { + value: value, + configurable: true + } ); + } + } + } + + return value; + }, + set: function( owner, data, value ) { + var prop, + cache = this.cache( owner ); + + // Handle: [ owner, key, value ] args + // Always use camelCase key (gh-2257) + if ( typeof data === "string" ) { + cache[ camelCase( data ) ] = value; + + // Handle: [ owner, { properties } ] args + } else { + + // Copy the properties one-by-one to the cache object + for ( prop in data ) { + cache[ camelCase( prop ) ] = data[ prop ]; + } + } + return cache; + }, + get: function( owner, key ) { + return key === undefined ? + this.cache( owner ) : + + // Always use camelCase key (gh-2257) + owner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ]; + }, + access: function( owner, key, value ) { + + // In cases where either: + // + // 1. No key was specified + // 2. A string key was specified, but no value provided + // + // Take the "read" path and allow the get method to determine + // which value to return, respectively either: + // + // 1. The entire cache object + // 2. The data stored at the key + // + if ( key === undefined || + ( ( key && typeof key === "string" ) && value === undefined ) ) { + + return this.get( owner, key ); + } + + // When the key is not a string, or both a key and value + // are specified, set or extend (existing objects) with either: + // + // 1. An object of properties + // 2. A key and value + // + this.set( owner, key, value ); + + // Since the "set" path can have two possible entry points + // return the expected data based on which path was taken[*] + return value !== undefined ? value : key; + }, + remove: function( owner, key ) { + var i, + cache = owner[ this.expando ]; + + if ( cache === undefined ) { + return; + } + + if ( key !== undefined ) { + + // Support array or space separated string of keys + if ( Array.isArray( key ) ) { + + // If key is an array of keys... + // We always set camelCase keys, so remove that. + key = key.map( camelCase ); + } else { + key = camelCase( key ); + + // If a key with the spaces exists, use it. + // Otherwise, create an array by matching non-whitespace + key = key in cache ? + [ key ] : + ( key.match( rnothtmlwhite ) || [] ); + } + + i = key.length; + + while ( i-- ) { + delete cache[ key[ i ] ]; + } + } + + // Remove the expando if there's no more data + if ( key === undefined || jQuery.isEmptyObject( cache ) ) { + + // Support: Chrome <=35 - 45 + // Webkit & Blink performance suffers when deleting properties + // from DOM nodes, so set to undefined instead + // https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted) + if ( owner.nodeType ) { + owner[ this.expando ] = undefined; + } else { + delete owner[ this.expando ]; + } + } + }, + hasData: function( owner ) { + var cache = owner[ this.expando ]; + return cache !== undefined && !jQuery.isEmptyObject( cache ); + } +}; +var dataPriv = new Data(); + +var dataUser = new Data(); + + + +// Implementation Summary +// +// 1. Enforce API surface and semantic compatibility with 1.9.x branch +// 2. Improve the module's maintainability by reducing the storage +// paths to a single mechanism. +// 3. Use the same single mechanism to support "private" and "user" data. +// 4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData) +// 5. Avoid exposing implementation details on user objects (eg. expando properties) +// 6. Provide a clear path for implementation upgrade to WeakMap in 2014 + +var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, + rmultiDash = /[A-Z]/g; + +function getData( data ) { + if ( data === "true" ) { + return true; + } + + if ( data === "false" ) { + return false; + } + + if ( data === "null" ) { + return null; + } + + // Only convert to a number if it doesn't change the string + if ( data === +data + "" ) { + return +data; + } + + if ( rbrace.test( data ) ) { + return JSON.parse( data ); + } + + return data; +} + +function dataAttr( elem, key, data ) { + var name; + + // If nothing was found internally, try to fetch any + // data from the HTML5 data-* attribute + if ( data === undefined && elem.nodeType === 1 ) { + name = "data-" + key.replace( rmultiDash, "-$&" ).toLowerCase(); + data = elem.getAttribute( name ); + + if ( typeof data === "string" ) { + try { + data = getData( data ); + } catch ( e ) {} + + // Make sure we set the data so it isn't changed later + dataUser.set( elem, key, data ); + } else { + data = undefined; + } + } + return data; +} + +jQuery.extend( { + hasData: function( elem ) { + return dataUser.hasData( elem ) || dataPriv.hasData( elem ); + }, + + data: function( elem, name, data ) { + return dataUser.access( elem, name, data ); + }, + + removeData: function( elem, name ) { + dataUser.remove( elem, name ); + }, + + // TODO: Now that all calls to _data and _removeData have been replaced + // with direct calls to dataPriv methods, these can be deprecated. + _data: function( elem, name, data ) { + return dataPriv.access( elem, name, data ); + }, + + _removeData: function( elem, name ) { + dataPriv.remove( elem, name ); + } +} ); + +jQuery.fn.extend( { + data: function( key, value ) { + var i, name, data, + elem = this[ 0 ], + attrs = elem && elem.attributes; + + // Gets all values + if ( key === undefined ) { + if ( this.length ) { + data = dataUser.get( elem ); + + if ( elem.nodeType === 1 && !dataPriv.get( elem, "hasDataAttrs" ) ) { + i = attrs.length; + while ( i-- ) { + + // Support: IE 11 only + // The attrs elements can be null (trac-14894) + if ( attrs[ i ] ) { + name = attrs[ i ].name; + if ( name.indexOf( "data-" ) === 0 ) { + name = camelCase( name.slice( 5 ) ); + dataAttr( elem, name, data[ name ] ); + } + } + } + dataPriv.set( elem, "hasDataAttrs", true ); + } + } + + return data; + } + + // Sets multiple values + if ( typeof key === "object" ) { + return this.each( function() { + dataUser.set( this, key ); + } ); + } + + return access( this, function( value ) { + var data; + + // The calling jQuery object (element matches) is not empty + // (and therefore has an element appears at this[ 0 ]) and the + // `value` parameter was not undefined. An empty jQuery object + // will result in `undefined` for elem = this[ 0 ] which will + // throw an exception if an attempt to read a data cache is made. + if ( elem && value === undefined ) { + + // Attempt to get data from the cache + // The key will always be camelCased in Data + data = dataUser.get( elem, key ); + if ( data !== undefined ) { + return data; + } + + // Attempt to "discover" the data in + // HTML5 custom data-* attrs + data = dataAttr( elem, key ); + if ( data !== undefined ) { + return data; + } + + // We tried really hard, but the data doesn't exist. + return; + } + + // Set the data... + this.each( function() { + + // We always store the camelCased key + dataUser.set( this, key, value ); + } ); + }, null, value, arguments.length > 1, null, true ); + }, + + removeData: function( key ) { + return this.each( function() { + dataUser.remove( this, key ); + } ); + } +} ); + + +jQuery.extend( { + queue: function( elem, type, data ) { + var queue; + + if ( elem ) { + type = ( type || "fx" ) + "queue"; + queue = dataPriv.get( elem, type ); + + // Speed up dequeue by getting out quickly if this is just a lookup + if ( data ) { + if ( !queue || Array.isArray( data ) ) { + queue = dataPriv.access( elem, type, jQuery.makeArray( data ) ); + } else { + queue.push( data ); + } + } + return queue || []; + } + }, + + dequeue: function( elem, type ) { + type = type || "fx"; + + var queue = jQuery.queue( elem, type ), + startLength = queue.length, + fn = queue.shift(), + hooks = jQuery._queueHooks( elem, type ), + next = function() { + jQuery.dequeue( elem, type ); + }; + + // If the fx queue is dequeued, always remove the progress sentinel + if ( fn === "inprogress" ) { + fn = queue.shift(); + startLength--; + } + + if ( fn ) { + + // Add a progress sentinel to prevent the fx queue from being + // automatically dequeued + if ( type === "fx" ) { + queue.unshift( "inprogress" ); + } + + // Clear up the last queue stop function + delete hooks.stop; + fn.call( elem, next, hooks ); + } + + if ( !startLength && hooks ) { + hooks.empty.fire(); + } + }, + + // Not public - generate a queueHooks object, or return the current one + _queueHooks: function( elem, type ) { + var key = type + "queueHooks"; + return dataPriv.get( elem, key ) || dataPriv.access( elem, key, { + empty: jQuery.Callbacks( "once memory" ).add( function() { + dataPriv.remove( elem, [ type + "queue", key ] ); + } ) + } ); + } +} ); + +jQuery.fn.extend( { + queue: function( type, data ) { + var setter = 2; + + if ( typeof type !== "string" ) { + data = type; + type = "fx"; + setter--; + } + + if ( arguments.length < setter ) { + return jQuery.queue( this[ 0 ], type ); + } + + return data === undefined ? + this : + this.each( function() { + var queue = jQuery.queue( this, type, data ); + + // Ensure a hooks for this queue + jQuery._queueHooks( this, type ); + + if ( type === "fx" && queue[ 0 ] !== "inprogress" ) { + jQuery.dequeue( this, type ); + } + } ); + }, + dequeue: function( type ) { + return this.each( function() { + jQuery.dequeue( this, type ); + } ); + }, + clearQueue: function( type ) { + return this.queue( type || "fx", [] ); + }, + + // Get a promise resolved when queues of a certain type + // are emptied (fx is the type by default) + promise: function( type, obj ) { + var tmp, + count = 1, + defer = jQuery.Deferred(), + elements = this, + i = this.length, + resolve = function() { + if ( !( --count ) ) { + defer.resolveWith( elements, [ elements ] ); + } + }; + + if ( typeof type !== "string" ) { + obj = type; + type = undefined; + } + type = type || "fx"; + + while ( i-- ) { + tmp = dataPriv.get( elements[ i ], type + "queueHooks" ); + if ( tmp && tmp.empty ) { + count++; + tmp.empty.add( resolve ); + } + } + resolve(); + return defer.promise( obj ); + } +} ); +var pnum = ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source; + +var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" ); + + +var cssExpand = [ "Top", "Right", "Bottom", "Left" ]; + +var documentElement = document.documentElement; + + + + var isAttached = function( elem ) { + return jQuery.contains( elem.ownerDocument, elem ); + }, + composed = { composed: true }; + + // Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only + // Check attachment across shadow DOM boundaries when possible (gh-3504) + // Support: iOS 10.0-10.2 only + // Early iOS 10 versions support `attachShadow` but not `getRootNode`, + // leading to errors. We need to check for `getRootNode`. + if ( documentElement.getRootNode ) { + isAttached = function( elem ) { + return jQuery.contains( elem.ownerDocument, elem ) || + elem.getRootNode( composed ) === elem.ownerDocument; + }; + } +var isHiddenWithinTree = function( elem, el ) { + + // isHiddenWithinTree might be called from jQuery#filter function; + // in that case, element will be second argument + elem = el || elem; + + // Inline style trumps all + return elem.style.display === "none" || + elem.style.display === "" && + + // Otherwise, check computed style + // Support: Firefox <=43 - 45 + // Disconnected elements can have computed display: none, so first confirm that elem is + // in the document. + isAttached( elem ) && + + jQuery.css( elem, "display" ) === "none"; + }; + + + +function adjustCSS( elem, prop, valueParts, tween ) { + var adjusted, scale, + maxIterations = 20, + currentValue = tween ? + function() { + return tween.cur(); + } : + function() { + return jQuery.css( elem, prop, "" ); + }, + initial = currentValue(), + unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ), + + // Starting value computation is required for potential unit mismatches + initialInUnit = elem.nodeType && + ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) && + rcssNum.exec( jQuery.css( elem, prop ) ); + + if ( initialInUnit && initialInUnit[ 3 ] !== unit ) { + + // Support: Firefox <=54 + // Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144) + initial = initial / 2; + + // Trust units reported by jQuery.css + unit = unit || initialInUnit[ 3 ]; + + // Iteratively approximate from a nonzero starting point + initialInUnit = +initial || 1; + + while ( maxIterations-- ) { + + // Evaluate and update our best guess (doubling guesses that zero out). + // Finish if the scale equals or crosses 1 (making the old*new product non-positive). + jQuery.style( elem, prop, initialInUnit + unit ); + if ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) { + maxIterations = 0; + } + initialInUnit = initialInUnit / scale; + + } + + initialInUnit = initialInUnit * 2; + jQuery.style( elem, prop, initialInUnit + unit ); + + // Make sure we update the tween properties later on + valueParts = valueParts || []; + } + + if ( valueParts ) { + initialInUnit = +initialInUnit || +initial || 0; + + // Apply relative offset (+=/-=) if specified + adjusted = valueParts[ 1 ] ? + initialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] : + +valueParts[ 2 ]; + if ( tween ) { + tween.unit = unit; + tween.start = initialInUnit; + tween.end = adjusted; + } + } + return adjusted; +} + + +var defaultDisplayMap = {}; + +function getDefaultDisplay( elem ) { + var temp, + doc = elem.ownerDocument, + nodeName = elem.nodeName, + display = defaultDisplayMap[ nodeName ]; + + if ( display ) { + return display; + } + + temp = doc.body.appendChild( doc.createElement( nodeName ) ); + display = jQuery.css( temp, "display" ); + + temp.parentNode.removeChild( temp ); + + if ( display === "none" ) { + display = "block"; + } + defaultDisplayMap[ nodeName ] = display; + + return display; +} + +function showHide( elements, show ) { + var display, elem, + values = [], + index = 0, + length = elements.length; + + // Determine new display value for elements that need to change + for ( ; index < length; index++ ) { + elem = elements[ index ]; + if ( !elem.style ) { + continue; + } + + display = elem.style.display; + if ( show ) { + + // Since we force visibility upon cascade-hidden elements, an immediate (and slow) + // check is required in this first loop unless we have a nonempty display value (either + // inline or about-to-be-restored) + if ( display === "none" ) { + values[ index ] = dataPriv.get( elem, "display" ) || null; + if ( !values[ index ] ) { + elem.style.display = ""; + } + } + if ( elem.style.display === "" && isHiddenWithinTree( elem ) ) { + values[ index ] = getDefaultDisplay( elem ); + } + } else { + if ( display !== "none" ) { + values[ index ] = "none"; + + // Remember what we're overwriting + dataPriv.set( elem, "display", display ); + } + } + } + + // Set the display of the elements in a second loop to avoid constant reflow + for ( index = 0; index < length; index++ ) { + if ( values[ index ] != null ) { + elements[ index ].style.display = values[ index ]; + } + } + + return elements; +} + +jQuery.fn.extend( { + show: function() { + return showHide( this, true ); + }, + hide: function() { + return showHide( this ); + }, + toggle: function( state ) { + if ( typeof state === "boolean" ) { + return state ? this.show() : this.hide(); + } + + return this.each( function() { + if ( isHiddenWithinTree( this ) ) { + jQuery( this ).show(); + } else { + jQuery( this ).hide(); + } + } ); + } +} ); +var rcheckableType = ( /^(?:checkbox|radio)$/i ); + +var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]*)/i ); + +var rscriptType = ( /^$|^module$|\/(?:java|ecma)script/i ); + + + +( function() { + var fragment = document.createDocumentFragment(), + div = fragment.appendChild( document.createElement( "div" ) ), + input = document.createElement( "input" ); + + // Support: Android 4.0 - 4.3 only + // Check state lost if the name is set (trac-11217) + // Support: Windows Web Apps (WWA) + // `name` and `type` must use .setAttribute for WWA (trac-14901) + input.setAttribute( "type", "radio" ); + input.setAttribute( "checked", "checked" ); + input.setAttribute( "name", "t" ); + + div.appendChild( input ); + + // Support: Android <=4.1 only + // Older WebKit doesn't clone checked state correctly in fragments + support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; + + // Support: IE <=11 only + // Make sure textarea (and checkbox) defaultValue is properly cloned + div.innerHTML = "<textarea>x</textarea>"; + support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; + + // Support: IE <=9 only + // IE <=9 replaces <option> tags with their contents when inserted outside of + // the select element. + div.innerHTML = "<option></option>"; + support.option = !!div.lastChild; +} )(); + + +// We have to close these tags to support XHTML (trac-13200) +var wrapMap = { + + // XHTML parsers do not magically insert elements in the + // same way that tag soup parsers do. So we cannot shorten + // this by omitting <tbody> or other required elements. + thead: [ 1, "<table>", "</table>" ], + col: [ 2, "<table><colgroup>", "</colgroup></table>" ], + tr: [ 2, "<table><tbody>", "</tbody></table>" ], + td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ], + + _default: [ 0, "", "" ] +}; + +wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; +wrapMap.th = wrapMap.td; + +// Support: IE <=9 only +if ( !support.option ) { + wrapMap.optgroup = wrapMap.option = [ 1, "<select multiple='multiple'>", "</select>" ]; +} + + +function getAll( context, tag ) { + + // Support: IE <=9 - 11 only + // Use typeof to avoid zero-argument method invocation on host objects (trac-15151) + var ret; + + if ( typeof context.getElementsByTagName !== "undefined" ) { + ret = context.getElementsByTagName( tag || "*" ); + + } else if ( typeof context.querySelectorAll !== "undefined" ) { + ret = context.querySelectorAll( tag || "*" ); + + } else { + ret = []; + } + + if ( tag === undefined || tag && nodeName( context, tag ) ) { + return jQuery.merge( [ context ], ret ); + } + + return ret; +} + + +// Mark scripts as having already been evaluated +function setGlobalEval( elems, refElements ) { + var i = 0, + l = elems.length; + + for ( ; i < l; i++ ) { + dataPriv.set( + elems[ i ], + "globalEval", + !refElements || dataPriv.get( refElements[ i ], "globalEval" ) + ); + } +} + + +var rhtml = /<|&#?\w+;/; + +function buildFragment( elems, context, scripts, selection, ignored ) { + var elem, tmp, tag, wrap, attached, j, + fragment = context.createDocumentFragment(), + nodes = [], + i = 0, + l = elems.length; + + for ( ; i < l; i++ ) { + elem = elems[ i ]; + + if ( elem || elem === 0 ) { + + // Add nodes directly + if ( toType( elem ) === "object" ) { + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem ); + + // Convert non-html into a text node + } else if ( !rhtml.test( elem ) ) { + nodes.push( context.createTextNode( elem ) ); + + // Convert html into DOM nodes + } else { + tmp = tmp || fragment.appendChild( context.createElement( "div" ) ); + + // Deserialize a standard representation + tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase(); + wrap = wrapMap[ tag ] || wrapMap._default; + tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ]; + + // Descend through wrappers to the right content + j = wrap[ 0 ]; + while ( j-- ) { + tmp = tmp.lastChild; + } + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( nodes, tmp.childNodes ); + + // Remember the top-level container + tmp = fragment.firstChild; + + // Ensure the created nodes are orphaned (trac-12392) + tmp.textContent = ""; + } + } + } + + // Remove wrapper from fragment + fragment.textContent = ""; + + i = 0; + while ( ( elem = nodes[ i++ ] ) ) { + + // Skip elements already in the context collection (trac-4087) + if ( selection && jQuery.inArray( elem, selection ) > -1 ) { + if ( ignored ) { + ignored.push( elem ); + } + continue; + } + + attached = isAttached( elem ); + + // Append to fragment + tmp = getAll( fragment.appendChild( elem ), "script" ); + + // Preserve script evaluation history + if ( attached ) { + setGlobalEval( tmp ); + } + + // Capture executables + if ( scripts ) { + j = 0; + while ( ( elem = tmp[ j++ ] ) ) { + if ( rscriptType.test( elem.type || "" ) ) { + scripts.push( elem ); + } + } + } + } + + return fragment; +} + + +var rtypenamespace = /^([^.]*)(?:\.(.+)|)/; + +function returnTrue() { + return true; +} + +function returnFalse() { + return false; +} + +function on( elem, types, selector, data, fn, one ) { + var origFn, type; + + // Types can be a map of types/handlers + if ( typeof types === "object" ) { + + // ( types-Object, selector, data ) + if ( typeof selector !== "string" ) { + + // ( types-Object, data ) + data = data || selector; + selector = undefined; + } + for ( type in types ) { + on( elem, type, selector, data, types[ type ], one ); + } + return elem; + } + + if ( data == null && fn == null ) { + + // ( types, fn ) + fn = selector; + data = selector = undefined; + } else if ( fn == null ) { + if ( typeof selector === "string" ) { + + // ( types, selector, fn ) + fn = data; + data = undefined; + } else { + + // ( types, data, fn ) + fn = data; + data = selector; + selector = undefined; + } + } + if ( fn === false ) { + fn = returnFalse; + } else if ( !fn ) { + return elem; + } + + if ( one === 1 ) { + origFn = fn; + fn = function( event ) { + + // Can use an empty set, since event contains the info + jQuery().off( event ); + return origFn.apply( this, arguments ); + }; + + // Use same guid so caller can remove using origFn + fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); + } + return elem.each( function() { + jQuery.event.add( this, types, fn, data, selector ); + } ); +} + +/* + * Helper functions for managing events -- not part of the public interface. + * Props to Dean Edwards' addEvent library for many of the ideas. + */ +jQuery.event = { + + global: {}, + + add: function( elem, types, handler, data, selector ) { + + var handleObjIn, eventHandle, tmp, + events, t, handleObj, + special, handlers, type, namespaces, origType, + elemData = dataPriv.get( elem ); + + // Only attach events to objects that accept data + if ( !acceptData( elem ) ) { + return; + } + + // Caller can pass in an object of custom data in lieu of the handler + if ( handler.handler ) { + handleObjIn = handler; + handler = handleObjIn.handler; + selector = handleObjIn.selector; + } + + // Ensure that invalid selectors throw exceptions at attach time + // Evaluate against documentElement in case elem is a non-element node (e.g., document) + if ( selector ) { + jQuery.find.matchesSelector( documentElement, selector ); + } + + // Make sure that the handler has a unique ID, used to find/remove it later + if ( !handler.guid ) { + handler.guid = jQuery.guid++; + } + + // Init the element's event structure and main handler, if this is the first + if ( !( events = elemData.events ) ) { + events = elemData.events = Object.create( null ); + } + if ( !( eventHandle = elemData.handle ) ) { + eventHandle = elemData.handle = function( e ) { + + // Discard the second event of a jQuery.event.trigger() and + // when an event is called after a page has unloaded + return typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ? + jQuery.event.dispatch.apply( elem, arguments ) : undefined; + }; + } + + // Handle multiple events separated by a space + types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[ t ] ) || []; + type = origType = tmp[ 1 ]; + namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); + + // There *must* be a type, no attaching namespace-only handlers + if ( !type ) { + continue; + } + + // If event changes its type, use the special event handlers for the changed type + special = jQuery.event.special[ type ] || {}; + + // If selector defined, determine special event api type, otherwise given type + type = ( selector ? special.delegateType : special.bindType ) || type; + + // Update special based on newly reset type + special = jQuery.event.special[ type ] || {}; + + // handleObj is passed to all event handlers + handleObj = jQuery.extend( { + type: type, + origType: origType, + data: data, + handler: handler, + guid: handler.guid, + selector: selector, + needsContext: selector && jQuery.expr.match.needsContext.test( selector ), + namespace: namespaces.join( "." ) + }, handleObjIn ); + + // Init the event handler queue if we're the first + if ( !( handlers = events[ type ] ) ) { + handlers = events[ type ] = []; + handlers.delegateCount = 0; + + // Only use addEventListener if the special events handler returns false + if ( !special.setup || + special.setup.call( elem, data, namespaces, eventHandle ) === false ) { + + if ( elem.addEventListener ) { + elem.addEventListener( type, eventHandle ); + } + } + } + + if ( special.add ) { + special.add.call( elem, handleObj ); + + if ( !handleObj.handler.guid ) { + handleObj.handler.guid = handler.guid; + } + } + + // Add to the element's handler list, delegates in front + if ( selector ) { + handlers.splice( handlers.delegateCount++, 0, handleObj ); + } else { + handlers.push( handleObj ); + } + + // Keep track of which events have ever been used, for event optimization + jQuery.event.global[ type ] = true; + } + + }, + + // Detach an event or set of events from an element + remove: function( elem, types, handler, selector, mappedTypes ) { + + var j, origCount, tmp, + events, t, handleObj, + special, handlers, type, namespaces, origType, + elemData = dataPriv.hasData( elem ) && dataPriv.get( elem ); + + if ( !elemData || !( events = elemData.events ) ) { + return; + } + + // Once for each type.namespace in types; type may be omitted + types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[ t ] ) || []; + type = origType = tmp[ 1 ]; + namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); + + // Unbind all events (on this namespace, if provided) for the element + if ( !type ) { + for ( type in events ) { + jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); + } + continue; + } + + special = jQuery.event.special[ type ] || {}; + type = ( selector ? special.delegateType : special.bindType ) || type; + handlers = events[ type ] || []; + tmp = tmp[ 2 ] && + new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ); + + // Remove matching events + origCount = j = handlers.length; + while ( j-- ) { + handleObj = handlers[ j ]; + + if ( ( mappedTypes || origType === handleObj.origType ) && + ( !handler || handler.guid === handleObj.guid ) && + ( !tmp || tmp.test( handleObj.namespace ) ) && + ( !selector || selector === handleObj.selector || + selector === "**" && handleObj.selector ) ) { + handlers.splice( j, 1 ); + + if ( handleObj.selector ) { + handlers.delegateCount--; + } + if ( special.remove ) { + special.remove.call( elem, handleObj ); + } + } + } + + // Remove generic event handler if we removed something and no more handlers exist + // (avoids potential for endless recursion during removal of special event handlers) + if ( origCount && !handlers.length ) { + if ( !special.teardown || + special.teardown.call( elem, namespaces, elemData.handle ) === false ) { + + jQuery.removeEvent( elem, type, elemData.handle ); + } + + delete events[ type ]; + } + } + + // Remove data and the expando if it's no longer used + if ( jQuery.isEmptyObject( events ) ) { + dataPriv.remove( elem, "handle events" ); + } + }, + + dispatch: function( nativeEvent ) { + + var i, j, ret, matched, handleObj, handlerQueue, + args = new Array( arguments.length ), + + // Make a writable jQuery.Event from the native event object + event = jQuery.event.fix( nativeEvent ), + + handlers = ( + dataPriv.get( this, "events" ) || Object.create( null ) + )[ event.type ] || [], + special = jQuery.event.special[ event.type ] || {}; + + // Use the fix-ed jQuery.Event rather than the (read-only) native event + args[ 0 ] = event; + + for ( i = 1; i < arguments.length; i++ ) { + args[ i ] = arguments[ i ]; + } + + event.delegateTarget = this; + + // Call the preDispatch hook for the mapped type, and let it bail if desired + if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { + return; + } + + // Determine handlers + handlerQueue = jQuery.event.handlers.call( this, event, handlers ); + + // Run delegates first; they may want to stop propagation beneath us + i = 0; + while ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) { + event.currentTarget = matched.elem; + + j = 0; + while ( ( handleObj = matched.handlers[ j++ ] ) && + !event.isImmediatePropagationStopped() ) { + + // If the event is namespaced, then each handler is only invoked if it is + // specially universal or its namespaces are a superset of the event's. + if ( !event.rnamespace || handleObj.namespace === false || + event.rnamespace.test( handleObj.namespace ) ) { + + event.handleObj = handleObj; + event.data = handleObj.data; + + ret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle || + handleObj.handler ).apply( matched.elem, args ); + + if ( ret !== undefined ) { + if ( ( event.result = ret ) === false ) { + event.preventDefault(); + event.stopPropagation(); + } + } + } + } + } + + // Call the postDispatch hook for the mapped type + if ( special.postDispatch ) { + special.postDispatch.call( this, event ); + } + + return event.result; + }, + + handlers: function( event, handlers ) { + var i, handleObj, sel, matchedHandlers, matchedSelectors, + handlerQueue = [], + delegateCount = handlers.delegateCount, + cur = event.target; + + // Find delegate handlers + if ( delegateCount && + + // Support: IE <=9 + // Black-hole SVG <use> instance trees (trac-13180) + cur.nodeType && + + // Support: Firefox <=42 + // Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861) + // https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click + // Support: IE 11 only + // ...but not arrow key "clicks" of radio inputs, which can have `button` -1 (gh-2343) + !( event.type === "click" && event.button >= 1 ) ) { + + for ( ; cur !== this; cur = cur.parentNode || this ) { + + // Don't check non-elements (trac-13208) + // Don't process clicks on disabled elements (trac-6911, trac-8165, trac-11382, trac-11764) + if ( cur.nodeType === 1 && !( event.type === "click" && cur.disabled === true ) ) { + matchedHandlers = []; + matchedSelectors = {}; + for ( i = 0; i < delegateCount; i++ ) { + handleObj = handlers[ i ]; + + // Don't conflict with Object.prototype properties (trac-13203) + sel = handleObj.selector + " "; + + if ( matchedSelectors[ sel ] === undefined ) { + matchedSelectors[ sel ] = handleObj.needsContext ? + jQuery( sel, this ).index( cur ) > -1 : + jQuery.find( sel, this, null, [ cur ] ).length; + } + if ( matchedSelectors[ sel ] ) { + matchedHandlers.push( handleObj ); + } + } + if ( matchedHandlers.length ) { + handlerQueue.push( { elem: cur, handlers: matchedHandlers } ); + } + } + } + } + + // Add the remaining (directly-bound) handlers + cur = this; + if ( delegateCount < handlers.length ) { + handlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } ); + } + + return handlerQueue; + }, + + addProp: function( name, hook ) { + Object.defineProperty( jQuery.Event.prototype, name, { + enumerable: true, + configurable: true, + + get: isFunction( hook ) ? + function() { + if ( this.originalEvent ) { + return hook( this.originalEvent ); + } + } : + function() { + if ( this.originalEvent ) { + return this.originalEvent[ name ]; + } + }, + + set: function( value ) { + Object.defineProperty( this, name, { + enumerable: true, + configurable: true, + writable: true, + value: value + } ); + } + } ); + }, + + fix: function( originalEvent ) { + return originalEvent[ jQuery.expando ] ? + originalEvent : + new jQuery.Event( originalEvent ); + }, + + special: { + load: { + + // Prevent triggered image.load events from bubbling to window.load + noBubble: true + }, + click: { + + // Utilize native event to ensure correct state for checkable inputs + setup: function( data ) { + + // For mutual compressibility with _default, replace `this` access with a local var. + // `|| data` is dead code meant only to preserve the variable through minification. + var el = this || data; + + // Claim the first handler + if ( rcheckableType.test( el.type ) && + el.click && nodeName( el, "input" ) ) { + + // dataPriv.set( el, "click", ... ) + leverageNative( el, "click", true ); + } + + // Return false to allow normal processing in the caller + return false; + }, + trigger: function( data ) { + + // For mutual compressibility with _default, replace `this` access with a local var. + // `|| data` is dead code meant only to preserve the variable through minification. + var el = this || data; + + // Force setup before triggering a click + if ( rcheckableType.test( el.type ) && + el.click && nodeName( el, "input" ) ) { + + leverageNative( el, "click" ); + } + + // Return non-false to allow normal event-path propagation + return true; + }, + + // For cross-browser consistency, suppress native .click() on links + // Also prevent it if we're currently inside a leveraged native-event stack + _default: function( event ) { + var target = event.target; + return rcheckableType.test( target.type ) && + target.click && nodeName( target, "input" ) && + dataPriv.get( target, "click" ) || + nodeName( target, "a" ); + } + }, + + beforeunload: { + postDispatch: function( event ) { + + // Support: Firefox 20+ + // Firefox doesn't alert if the returnValue field is not set. + if ( event.result !== undefined && event.originalEvent ) { + event.originalEvent.returnValue = event.result; + } + } + } + } +}; + +// Ensure the presence of an event listener that handles manually-triggered +// synthetic events by interrupting progress until reinvoked in response to +// *native* events that it fires directly, ensuring that state changes have +// already occurred before other listeners are invoked. +function leverageNative( el, type, isSetup ) { + + // Missing `isSetup` indicates a trigger call, which must force setup through jQuery.event.add + if ( !isSetup ) { + if ( dataPriv.get( el, type ) === undefined ) { + jQuery.event.add( el, type, returnTrue ); + } + return; + } + + // Register the controller as a special universal handler for all event namespaces + dataPriv.set( el, type, false ); + jQuery.event.add( el, type, { + namespace: false, + handler: function( event ) { + var result, + saved = dataPriv.get( this, type ); + + if ( ( event.isTrigger & 1 ) && this[ type ] ) { + + // Interrupt processing of the outer synthetic .trigger()ed event + if ( !saved ) { + + // Store arguments for use when handling the inner native event + // There will always be at least one argument (an event object), so this array + // will not be confused with a leftover capture object. + saved = slice.call( arguments ); + dataPriv.set( this, type, saved ); + + // Trigger the native event and capture its result + this[ type ](); + result = dataPriv.get( this, type ); + dataPriv.set( this, type, false ); + + if ( saved !== result ) { + + // Cancel the outer synthetic event + event.stopImmediatePropagation(); + event.preventDefault(); + + return result; + } + + // If this is an inner synthetic event for an event with a bubbling surrogate + // (focus or blur), assume that the surrogate already propagated from triggering + // the native event and prevent that from happening again here. + // This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the + // bubbling surrogate propagates *after* the non-bubbling base), but that seems + // less bad than duplication. + } else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) { + event.stopPropagation(); + } + + // If this is a native event triggered above, everything is now in order + // Fire an inner synthetic event with the original arguments + } else if ( saved ) { + + // ...and capture the result + dataPriv.set( this, type, jQuery.event.trigger( + saved[ 0 ], + saved.slice( 1 ), + this + ) ); + + // Abort handling of the native event by all jQuery handlers while allowing + // native handlers on the same element to run. On target, this is achieved + // by stopping immediate propagation just on the jQuery event. However, + // the native event is re-wrapped by a jQuery one on each level of the + // propagation so the only way to stop it for jQuery is to stop it for + // everyone via native `stopPropagation()`. This is not a problem for + // focus/blur which don't bubble, but it does also stop click on checkboxes + // and radios. We accept this limitation. + event.stopPropagation(); + event.isImmediatePropagationStopped = returnTrue; + } + } + } ); +} + +jQuery.removeEvent = function( elem, type, handle ) { + + // This "if" is needed for plain objects + if ( elem.removeEventListener ) { + elem.removeEventListener( type, handle ); + } +}; + +jQuery.Event = function( src, props ) { + + // Allow instantiation without the 'new' keyword + if ( !( this instanceof jQuery.Event ) ) { + return new jQuery.Event( src, props ); + } + + // Event object + if ( src && src.type ) { + this.originalEvent = src; + this.type = src.type; + + // Events bubbling up the document may have been marked as prevented + // by a handler lower down the tree; reflect the correct value. + this.isDefaultPrevented = src.defaultPrevented || + src.defaultPrevented === undefined && + + // Support: Android <=2.3 only + src.returnValue === false ? + returnTrue : + returnFalse; + + // Create target properties + // Support: Safari <=6 - 7 only + // Target should not be a text node (trac-504, trac-13143) + this.target = ( src.target && src.target.nodeType === 3 ) ? + src.target.parentNode : + src.target; + + this.currentTarget = src.currentTarget; + this.relatedTarget = src.relatedTarget; + + // Event type + } else { + this.type = src; + } + + // Put explicitly provided properties onto the event object + if ( props ) { + jQuery.extend( this, props ); + } + + // Create a timestamp if incoming event doesn't have one + this.timeStamp = src && src.timeStamp || Date.now(); + + // Mark it as fixed + this[ jQuery.expando ] = true; +}; + +// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding +// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html +jQuery.Event.prototype = { + constructor: jQuery.Event, + isDefaultPrevented: returnFalse, + isPropagationStopped: returnFalse, + isImmediatePropagationStopped: returnFalse, + isSimulated: false, + + preventDefault: function() { + var e = this.originalEvent; + + this.isDefaultPrevented = returnTrue; + + if ( e && !this.isSimulated ) { + e.preventDefault(); + } + }, + stopPropagation: function() { + var e = this.originalEvent; + + this.isPropagationStopped = returnTrue; + + if ( e && !this.isSimulated ) { + e.stopPropagation(); + } + }, + stopImmediatePropagation: function() { + var e = this.originalEvent; + + this.isImmediatePropagationStopped = returnTrue; + + if ( e && !this.isSimulated ) { + e.stopImmediatePropagation(); + } + + this.stopPropagation(); + } +}; + +// Includes all common event props including KeyEvent and MouseEvent specific props +jQuery.each( { + altKey: true, + bubbles: true, + cancelable: true, + changedTouches: true, + ctrlKey: true, + detail: true, + eventPhase: true, + metaKey: true, + pageX: true, + pageY: true, + shiftKey: true, + view: true, + "char": true, + code: true, + charCode: true, + key: true, + keyCode: true, + button: true, + buttons: true, + clientX: true, + clientY: true, + offsetX: true, + offsetY: true, + pointerId: true, + pointerType: true, + screenX: true, + screenY: true, + targetTouches: true, + toElement: true, + touches: true, + which: true +}, jQuery.event.addProp ); + +jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateType ) { + + function focusMappedHandler( nativeEvent ) { + if ( document.documentMode ) { + + // Support: IE 11+ + // Attach a single focusin/focusout handler on the document while someone wants + // focus/blur. This is because the former are synchronous in IE while the latter + // are async. In other browsers, all those handlers are invoked synchronously. + + // `handle` from private data would already wrap the event, but we need + // to change the `type` here. + var handle = dataPriv.get( this, "handle" ), + event = jQuery.event.fix( nativeEvent ); + event.type = nativeEvent.type === "focusin" ? "focus" : "blur"; + event.isSimulated = true; + + // First, handle focusin/focusout + handle( nativeEvent ); + + // ...then, handle focus/blur + // + // focus/blur don't bubble while focusin/focusout do; simulate the former by only + // invoking the handler at the lower level. + if ( event.target === event.currentTarget ) { + + // The setup part calls `leverageNative`, which, in turn, calls + // `jQuery.event.add`, so event handle will already have been set + // by this point. + handle( event ); + } + } else { + + // For non-IE browsers, attach a single capturing handler on the document + // while someone wants focusin/focusout. + jQuery.event.simulate( delegateType, nativeEvent.target, + jQuery.event.fix( nativeEvent ) ); + } + } + + jQuery.event.special[ type ] = { + + // Utilize native event if possible so blur/focus sequence is correct + setup: function() { + + var attaches; + + // Claim the first handler + // dataPriv.set( this, "focus", ... ) + // dataPriv.set( this, "blur", ... ) + leverageNative( this, type, true ); + + if ( document.documentMode ) { + + // Support: IE 9 - 11+ + // We use the same native handler for focusin & focus (and focusout & blur) + // so we need to coordinate setup & teardown parts between those events. + // Use `delegateType` as the key as `type` is already used by `leverageNative`. + attaches = dataPriv.get( this, delegateType ); + if ( !attaches ) { + this.addEventListener( delegateType, focusMappedHandler ); + } + dataPriv.set( this, delegateType, ( attaches || 0 ) + 1 ); + } else { + + // Return false to allow normal processing in the caller + return false; + } + }, + trigger: function() { + + // Force setup before trigger + leverageNative( this, type ); + + // Return non-false to allow normal event-path propagation + return true; + }, + + teardown: function() { + var attaches; + + if ( document.documentMode ) { + attaches = dataPriv.get( this, delegateType ) - 1; + if ( !attaches ) { + this.removeEventListener( delegateType, focusMappedHandler ); + dataPriv.remove( this, delegateType ); + } else { + dataPriv.set( this, delegateType, attaches ); + } + } else { + + // Return false to indicate standard teardown should be applied + return false; + } + }, + + // Suppress native focus or blur if we're currently inside + // a leveraged native-event stack + _default: function( event ) { + return dataPriv.get( event.target, type ); + }, + + delegateType: delegateType + }; + + // Support: Firefox <=44 + // Firefox doesn't have focus(in | out) events + // Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787 + // + // Support: Chrome <=48 - 49, Safari <=9.0 - 9.1 + // focus(in | out) events fire after focus & blur events, + // which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order + // Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857 + // + // Support: IE 9 - 11+ + // To preserve relative focusin/focus & focusout/blur event order guaranteed on the 3.x branch, + // attach a single handler for both events in IE. + jQuery.event.special[ delegateType ] = { + setup: function() { + + // Handle: regular nodes (via `this.ownerDocument`), window + // (via `this.document`) & document (via `this`). + var doc = this.ownerDocument || this.document || this, + dataHolder = document.documentMode ? this : doc, + attaches = dataPriv.get( dataHolder, delegateType ); + + // Support: IE 9 - 11+ + // We use the same native handler for focusin & focus (and focusout & blur) + // so we need to coordinate setup & teardown parts between those events. + // Use `delegateType` as the key as `type` is already used by `leverageNative`. + if ( !attaches ) { + if ( document.documentMode ) { + this.addEventListener( delegateType, focusMappedHandler ); + } else { + doc.addEventListener( type, focusMappedHandler, true ); + } + } + dataPriv.set( dataHolder, delegateType, ( attaches || 0 ) + 1 ); + }, + teardown: function() { + var doc = this.ownerDocument || this.document || this, + dataHolder = document.documentMode ? this : doc, + attaches = dataPriv.get( dataHolder, delegateType ) - 1; + + if ( !attaches ) { + if ( document.documentMode ) { + this.removeEventListener( delegateType, focusMappedHandler ); + } else { + doc.removeEventListener( type, focusMappedHandler, true ); + } + dataPriv.remove( dataHolder, delegateType ); + } else { + dataPriv.set( dataHolder, delegateType, attaches ); + } + } + }; +} ); + +// Create mouseenter/leave events using mouseover/out and event-time checks +// so that event delegation works in jQuery. +// Do the same for pointerenter/pointerleave and pointerover/pointerout +// +// Support: Safari 7 only +// Safari sends mouseenter too often; see: +// https://bugs.chromium.org/p/chromium/issues/detail?id=470258 +// for the description of the bug (it existed in older Chrome versions as well). +jQuery.each( { + mouseenter: "mouseover", + mouseleave: "mouseout", + pointerenter: "pointerover", + pointerleave: "pointerout" +}, function( orig, fix ) { + jQuery.event.special[ orig ] = { + delegateType: fix, + bindType: fix, + + handle: function( event ) { + var ret, + target = this, + related = event.relatedTarget, + handleObj = event.handleObj; + + // For mouseenter/leave call the handler if related is outside the target. + // NB: No relatedTarget if the mouse left/entered the browser window + if ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) { + event.type = handleObj.origType; + ret = handleObj.handler.apply( this, arguments ); + event.type = fix; + } + return ret; + } + }; +} ); + +jQuery.fn.extend( { + + on: function( types, selector, data, fn ) { + return on( this, types, selector, data, fn ); + }, + one: function( types, selector, data, fn ) { + return on( this, types, selector, data, fn, 1 ); + }, + off: function( types, selector, fn ) { + var handleObj, type; + if ( types && types.preventDefault && types.handleObj ) { + + // ( event ) dispatched jQuery.Event + handleObj = types.handleObj; + jQuery( types.delegateTarget ).off( + handleObj.namespace ? + handleObj.origType + "." + handleObj.namespace : + handleObj.origType, + handleObj.selector, + handleObj.handler + ); + return this; + } + if ( typeof types === "object" ) { + + // ( types-object [, selector] ) + for ( type in types ) { + this.off( type, selector, types[ type ] ); + } + return this; + } + if ( selector === false || typeof selector === "function" ) { + + // ( types [, fn] ) + fn = selector; + selector = undefined; + } + if ( fn === false ) { + fn = returnFalse; + } + return this.each( function() { + jQuery.event.remove( this, types, fn, selector ); + } ); + } +} ); + + +var + + // Support: IE <=10 - 11, Edge 12 - 13 only + // In IE/Edge using regex groups here causes severe slowdowns. + // See https://connect.microsoft.com/IE/feedback/details/1736512/ + rnoInnerhtml = /<script|<style|<link/i, + + // checked="checked" or checked + rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i, + + rcleanScript = /^\s*<!\[CDATA\[|\]\]>\s*$/g; + +// Prefer a tbody over its parent table for containing new rows +function manipulationTarget( elem, content ) { + if ( nodeName( elem, "table" ) && + nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ) { + + return jQuery( elem ).children( "tbody" )[ 0 ] || elem; + } + + return elem; +} + +// Replace/restore the type attribute of script elements for safe DOM manipulation +function disableScript( elem ) { + elem.type = ( elem.getAttribute( "type" ) !== null ) + "/" + elem.type; + return elem; +} +function restoreScript( elem ) { + if ( ( elem.type || "" ).slice( 0, 5 ) === "true/" ) { + elem.type = elem.type.slice( 5 ); + } else { + elem.removeAttribute( "type" ); + } + + return elem; +} + +function cloneCopyEvent( src, dest ) { + var i, l, type, pdataOld, udataOld, udataCur, events; + + if ( dest.nodeType !== 1 ) { + return; + } + + // 1. Copy private data: events, handlers, etc. + if ( dataPriv.hasData( src ) ) { + pdataOld = dataPriv.get( src ); + events = pdataOld.events; + + if ( events ) { + dataPriv.remove( dest, "handle events" ); + + for ( type in events ) { + for ( i = 0, l = events[ type ].length; i < l; i++ ) { + jQuery.event.add( dest, type, events[ type ][ i ] ); + } + } + } + } + + // 2. Copy user data + if ( dataUser.hasData( src ) ) { + udataOld = dataUser.access( src ); + udataCur = jQuery.extend( {}, udataOld ); + + dataUser.set( dest, udataCur ); + } +} + +// Fix IE bugs, see support tests +function fixInput( src, dest ) { + var nodeName = dest.nodeName.toLowerCase(); + + // Fails to persist the checked state of a cloned checkbox or radio button. + if ( nodeName === "input" && rcheckableType.test( src.type ) ) { + dest.checked = src.checked; + + // Fails to return the selected option to the default selected state when cloning options + } else if ( nodeName === "input" || nodeName === "textarea" ) { + dest.defaultValue = src.defaultValue; + } +} + +function domManip( collection, args, callback, ignored ) { + + // Flatten any nested arrays + args = flat( args ); + + var fragment, first, scripts, hasScripts, node, doc, + i = 0, + l = collection.length, + iNoClone = l - 1, + value = args[ 0 ], + valueIsFunction = isFunction( value ); + + // We can't cloneNode fragments that contain checked, in WebKit + if ( valueIsFunction || + ( l > 1 && typeof value === "string" && + !support.checkClone && rchecked.test( value ) ) ) { + return collection.each( function( index ) { + var self = collection.eq( index ); + if ( valueIsFunction ) { + args[ 0 ] = value.call( this, index, self.html() ); + } + domManip( self, args, callback, ignored ); + } ); + } + + if ( l ) { + fragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored ); + first = fragment.firstChild; + + if ( fragment.childNodes.length === 1 ) { + fragment = first; + } + + // Require either new content or an interest in ignored elements to invoke the callback + if ( first || ignored ) { + scripts = jQuery.map( getAll( fragment, "script" ), disableScript ); + hasScripts = scripts.length; + + // Use the original fragment for the last item + // instead of the first because it can end up + // being emptied incorrectly in certain situations (trac-8070). + for ( ; i < l; i++ ) { + node = fragment; + + if ( i !== iNoClone ) { + node = jQuery.clone( node, true, true ); + + // Keep references to cloned scripts for later restoration + if ( hasScripts ) { + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( scripts, getAll( node, "script" ) ); + } + } + + callback.call( collection[ i ], node, i ); + } + + if ( hasScripts ) { + doc = scripts[ scripts.length - 1 ].ownerDocument; + + // Re-enable scripts + jQuery.map( scripts, restoreScript ); + + // Evaluate executable scripts on first document insertion + for ( i = 0; i < hasScripts; i++ ) { + node = scripts[ i ]; + if ( rscriptType.test( node.type || "" ) && + !dataPriv.access( node, "globalEval" ) && + jQuery.contains( doc, node ) ) { + + if ( node.src && ( node.type || "" ).toLowerCase() !== "module" ) { + + // Optional AJAX dependency, but won't run scripts if not present + if ( jQuery._evalUrl && !node.noModule ) { + jQuery._evalUrl( node.src, { + nonce: node.nonce || node.getAttribute( "nonce" ) + }, doc ); + } + } else { + + // Unwrap a CDATA section containing script contents. This shouldn't be + // needed as in XML documents they're already not visible when + // inspecting element contents and in HTML documents they have no + // meaning but we're preserving that logic for backwards compatibility. + // This will be removed completely in 4.0. See gh-4904. + DOMEval( node.textContent.replace( rcleanScript, "" ), node, doc ); + } + } + } + } + } + } + + return collection; +} + +function remove( elem, selector, keepData ) { + var node, + nodes = selector ? jQuery.filter( selector, elem ) : elem, + i = 0; + + for ( ; ( node = nodes[ i ] ) != null; i++ ) { + if ( !keepData && node.nodeType === 1 ) { + jQuery.cleanData( getAll( node ) ); + } + + if ( node.parentNode ) { + if ( keepData && isAttached( node ) ) { + setGlobalEval( getAll( node, "script" ) ); + } + node.parentNode.removeChild( node ); + } + } + + return elem; +} + +jQuery.extend( { + htmlPrefilter: function( html ) { + return html; + }, + + clone: function( elem, dataAndEvents, deepDataAndEvents ) { + var i, l, srcElements, destElements, + clone = elem.cloneNode( true ), + inPage = isAttached( elem ); + + // Fix IE cloning issues + if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) && + !jQuery.isXMLDoc( elem ) ) { + + // We eschew jQuery#find here for performance reasons: + // https://jsperf.com/getall-vs-sizzle/2 + destElements = getAll( clone ); + srcElements = getAll( elem ); + + for ( i = 0, l = srcElements.length; i < l; i++ ) { + fixInput( srcElements[ i ], destElements[ i ] ); + } + } + + // Copy the events from the original to the clone + if ( dataAndEvents ) { + if ( deepDataAndEvents ) { + srcElements = srcElements || getAll( elem ); + destElements = destElements || getAll( clone ); + + for ( i = 0, l = srcElements.length; i < l; i++ ) { + cloneCopyEvent( srcElements[ i ], destElements[ i ] ); + } + } else { + cloneCopyEvent( elem, clone ); + } + } + + // Preserve script evaluation history + destElements = getAll( clone, "script" ); + if ( destElements.length > 0 ) { + setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); + } + + // Return the cloned set + return clone; + }, + + cleanData: function( elems ) { + var data, elem, type, + special = jQuery.event.special, + i = 0; + + for ( ; ( elem = elems[ i ] ) !== undefined; i++ ) { + if ( acceptData( elem ) ) { + if ( ( data = elem[ dataPriv.expando ] ) ) { + if ( data.events ) { + for ( type in data.events ) { + if ( special[ type ] ) { + jQuery.event.remove( elem, type ); + + // This is a shortcut to avoid jQuery.event.remove's overhead + } else { + jQuery.removeEvent( elem, type, data.handle ); + } + } + } + + // Support: Chrome <=35 - 45+ + // Assign undefined instead of using delete, see Data#remove + elem[ dataPriv.expando ] = undefined; + } + if ( elem[ dataUser.expando ] ) { + + // Support: Chrome <=35 - 45+ + // Assign undefined instead of using delete, see Data#remove + elem[ dataUser.expando ] = undefined; + } + } + } + } +} ); + +jQuery.fn.extend( { + detach: function( selector ) { + return remove( this, selector, true ); + }, + + remove: function( selector ) { + return remove( this, selector ); + }, + + text: function( value ) { + return access( this, function( value ) { + return value === undefined ? + jQuery.text( this ) : + this.empty().each( function() { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + this.textContent = value; + } + } ); + }, null, value, arguments.length ); + }, + + append: function() { + return domManip( this, arguments, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + var target = manipulationTarget( this, elem ); + target.appendChild( elem ); + } + } ); + }, + + prepend: function() { + return domManip( this, arguments, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + var target = manipulationTarget( this, elem ); + target.insertBefore( elem, target.firstChild ); + } + } ); + }, + + before: function() { + return domManip( this, arguments, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this ); + } + } ); + }, + + after: function() { + return domManip( this, arguments, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this.nextSibling ); + } + } ); + }, + + empty: function() { + var elem, + i = 0; + + for ( ; ( elem = this[ i ] ) != null; i++ ) { + if ( elem.nodeType === 1 ) { + + // Prevent memory leaks + jQuery.cleanData( getAll( elem, false ) ); + + // Remove any remaining nodes + elem.textContent = ""; + } + } + + return this; + }, + + clone: function( dataAndEvents, deepDataAndEvents ) { + dataAndEvents = dataAndEvents == null ? false : dataAndEvents; + deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; + + return this.map( function() { + return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); + } ); + }, + + html: function( value ) { + return access( this, function( value ) { + var elem = this[ 0 ] || {}, + i = 0, + l = this.length; + + if ( value === undefined && elem.nodeType === 1 ) { + return elem.innerHTML; + } + + // See if we can take a shortcut and just use innerHTML + if ( typeof value === "string" && !rnoInnerhtml.test( value ) && + !wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) { + + value = jQuery.htmlPrefilter( value ); + + try { + for ( ; i < l; i++ ) { + elem = this[ i ] || {}; + + // Remove element nodes and prevent memory leaks + if ( elem.nodeType === 1 ) { + jQuery.cleanData( getAll( elem, false ) ); + elem.innerHTML = value; + } + } + + elem = 0; + + // If using innerHTML throws an exception, use the fallback method + } catch ( e ) {} + } + + if ( elem ) { + this.empty().append( value ); + } + }, null, value, arguments.length ); + }, + + replaceWith: function() { + var ignored = []; + + // Make the changes, replacing each non-ignored context element with the new content + return domManip( this, arguments, function( elem ) { + var parent = this.parentNode; + + if ( jQuery.inArray( this, ignored ) < 0 ) { + jQuery.cleanData( getAll( this ) ); + if ( parent ) { + parent.replaceChild( elem, this ); + } + } + + // Force callback invocation + }, ignored ); + } +} ); + +jQuery.each( { + appendTo: "append", + prependTo: "prepend", + insertBefore: "before", + insertAfter: "after", + replaceAll: "replaceWith" +}, function( name, original ) { + jQuery.fn[ name ] = function( selector ) { + var elems, + ret = [], + insert = jQuery( selector ), + last = insert.length - 1, + i = 0; + + for ( ; i <= last; i++ ) { + elems = i === last ? this : this.clone( true ); + jQuery( insert[ i ] )[ original ]( elems ); + + // Support: Android <=4.0 only, PhantomJS 1 only + // .get() because push.apply(_, arraylike) throws on ancient WebKit + push.apply( ret, elems.get() ); + } + + return this.pushStack( ret ); + }; +} ); +var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" ); + +var rcustomProp = /^--/; + + +var getStyles = function( elem ) { + + // Support: IE <=11 only, Firefox <=30 (trac-15098, trac-14150) + // IE throws on elements created in popups + // FF meanwhile throws on frame elements through "defaultView.getComputedStyle" + var view = elem.ownerDocument.defaultView; + + if ( !view || !view.opener ) { + view = window; + } + + return view.getComputedStyle( elem ); + }; + +var swap = function( elem, options, callback ) { + var ret, name, + old = {}; + + // Remember the old values, and insert the new ones + for ( name in options ) { + old[ name ] = elem.style[ name ]; + elem.style[ name ] = options[ name ]; + } + + ret = callback.call( elem ); + + // Revert the old values + for ( name in options ) { + elem.style[ name ] = old[ name ]; + } + + return ret; +}; + + +var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" ); + + + +( function() { + + // Executing both pixelPosition & boxSizingReliable tests require only one layout + // so they're executed at the same time to save the second computation. + function computeStyleTests() { + + // This is a singleton, we need to execute it only once + if ( !div ) { + return; + } + + container.style.cssText = "position:absolute;left:-11111px;width:60px;" + + "margin-top:1px;padding:0;border:0"; + div.style.cssText = + "position:relative;display:block;box-sizing:border-box;overflow:scroll;" + + "margin:auto;border:1px;padding:1px;" + + "width:60%;top:1%"; + documentElement.appendChild( container ).appendChild( div ); + + var divStyle = window.getComputedStyle( div ); + pixelPositionVal = divStyle.top !== "1%"; + + // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44 + reliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12; + + // Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3 + // Some styles come back with percentage values, even though they shouldn't + div.style.right = "60%"; + pixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36; + + // Support: IE 9 - 11 only + // Detect misreporting of content dimensions for box-sizing:border-box elements + boxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36; + + // Support: IE 9 only + // Detect overflow:scroll screwiness (gh-3699) + // Support: Chrome <=64 + // Don't get tricked when zoom affects offsetWidth (gh-4029) + div.style.position = "absolute"; + scrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12; + + documentElement.removeChild( container ); + + // Nullify the div so it wouldn't be stored in the memory and + // it will also be a sign that checks already performed + div = null; + } + + function roundPixelMeasures( measure ) { + return Math.round( parseFloat( measure ) ); + } + + var pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal, + reliableTrDimensionsVal, reliableMarginLeftVal, + container = document.createElement( "div" ), + div = document.createElement( "div" ); + + // Finish early in limited (non-browser) environments + if ( !div.style ) { + return; + } + + // Support: IE <=9 - 11 only + // Style of cloned element affects source element cloned (trac-8908) + div.style.backgroundClip = "content-box"; + div.cloneNode( true ).style.backgroundClip = ""; + support.clearCloneStyle = div.style.backgroundClip === "content-box"; + + jQuery.extend( support, { + boxSizingReliable: function() { + computeStyleTests(); + return boxSizingReliableVal; + }, + pixelBoxStyles: function() { + computeStyleTests(); + return pixelBoxStylesVal; + }, + pixelPosition: function() { + computeStyleTests(); + return pixelPositionVal; + }, + reliableMarginLeft: function() { + computeStyleTests(); + return reliableMarginLeftVal; + }, + scrollboxSize: function() { + computeStyleTests(); + return scrollboxSizeVal; + }, + + // Support: IE 9 - 11+, Edge 15 - 18+ + // IE/Edge misreport `getComputedStyle` of table rows with width/height + // set in CSS while `offset*` properties report correct values. + // Behavior in IE 9 is more subtle than in newer versions & it passes + // some versions of this test; make sure not to make it pass there! + // + // Support: Firefox 70+ + // Only Firefox includes border widths + // in computed dimensions. (gh-4529) + reliableTrDimensions: function() { + var table, tr, trChild, trStyle; + if ( reliableTrDimensionsVal == null ) { + table = document.createElement( "table" ); + tr = document.createElement( "tr" ); + trChild = document.createElement( "div" ); + + table.style.cssText = "position:absolute;left:-11111px;border-collapse:separate"; + tr.style.cssText = "box-sizing:content-box;border:1px solid"; + + // Support: Chrome 86+ + // Height set through cssText does not get applied. + // Computed height then comes back as 0. + tr.style.height = "1px"; + trChild.style.height = "9px"; + + // Support: Android 8 Chrome 86+ + // In our bodyBackground.html iframe, + // display for all div elements is set to "inline", + // which causes a problem only in Android 8 Chrome 86. + // Ensuring the div is `display: block` + // gets around this issue. + trChild.style.display = "block"; + + documentElement + .appendChild( table ) + .appendChild( tr ) + .appendChild( trChild ); + + trStyle = window.getComputedStyle( tr ); + reliableTrDimensionsVal = ( parseInt( trStyle.height, 10 ) + + parseInt( trStyle.borderTopWidth, 10 ) + + parseInt( trStyle.borderBottomWidth, 10 ) ) === tr.offsetHeight; + + documentElement.removeChild( table ); + } + return reliableTrDimensionsVal; + } + } ); +} )(); + + +function curCSS( elem, name, computed ) { + var width, minWidth, maxWidth, ret, + isCustomProp = rcustomProp.test( name ), + + // Support: Firefox 51+ + // Retrieving style before computed somehow + // fixes an issue with getting wrong values + // on detached elements + style = elem.style; + + computed = computed || getStyles( elem ); + + // getPropertyValue is needed for: + // .css('filter') (IE 9 only, trac-12537) + // .css('--customProperty) (gh-3144) + if ( computed ) { + + // Support: IE <=9 - 11+ + // IE only supports `"float"` in `getPropertyValue`; in computed styles + // it's only available as `"cssFloat"`. We no longer modify properties + // sent to `.css()` apart from camelCasing, so we need to check both. + // Normally, this would create difference in behavior: if + // `getPropertyValue` returns an empty string, the value returned + // by `.css()` would be `undefined`. This is usually the case for + // disconnected elements. However, in IE even disconnected elements + // with no styles return `"none"` for `getPropertyValue( "float" )` + ret = computed.getPropertyValue( name ) || computed[ name ]; + + if ( isCustomProp && ret ) { + + // Support: Firefox 105+, Chrome <=105+ + // Spec requires trimming whitespace for custom properties (gh-4926). + // Firefox only trims leading whitespace. Chrome just collapses + // both leading & trailing whitespace to a single space. + // + // Fall back to `undefined` if empty string returned. + // This collapses a missing definition with property defined + // and set to an empty string but there's no standard API + // allowing us to differentiate them without a performance penalty + // and returning `undefined` aligns with older jQuery. + // + // rtrimCSS treats U+000D CARRIAGE RETURN and U+000C FORM FEED + // as whitespace while CSS does not, but this is not a problem + // because CSS preprocessing replaces them with U+000A LINE FEED + // (which *is* CSS whitespace) + // https://www.w3.org/TR/css-syntax-3/#input-preprocessing + ret = ret.replace( rtrimCSS, "$1" ) || undefined; + } + + if ( ret === "" && !isAttached( elem ) ) { + ret = jQuery.style( elem, name ); + } + + // A tribute to the "awesome hack by Dean Edwards" + // Android Browser returns percentage for some values, + // but width seems to be reliably pixels. + // This is against the CSSOM draft spec: + // https://drafts.csswg.org/cssom/#resolved-values + if ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) { + + // Remember the original values + width = style.width; + minWidth = style.minWidth; + maxWidth = style.maxWidth; + + // Put in the new values to get a computed value out + style.minWidth = style.maxWidth = style.width = ret; + ret = computed.width; + + // Revert the changed values + style.width = width; + style.minWidth = minWidth; + style.maxWidth = maxWidth; + } + } + + return ret !== undefined ? + + // Support: IE <=9 - 11 only + // IE returns zIndex value as an integer. + ret + "" : + ret; +} + + +function addGetHookIf( conditionFn, hookFn ) { + + // Define the hook, we'll check on the first run if it's really needed. + return { + get: function() { + if ( conditionFn() ) { + + // Hook not needed (or it's not possible to use it due + // to missing dependency), remove it. + delete this.get; + return; + } + + // Hook needed; redefine it so that the support test is not executed again. + return ( this.get = hookFn ).apply( this, arguments ); + } + }; +} + + +var cssPrefixes = [ "Webkit", "Moz", "ms" ], + emptyStyle = document.createElement( "div" ).style, + vendorProps = {}; + +// Return a vendor-prefixed property or undefined +function vendorPropName( name ) { + + // Check for vendor prefixed names + var capName = name[ 0 ].toUpperCase() + name.slice( 1 ), + i = cssPrefixes.length; + + while ( i-- ) { + name = cssPrefixes[ i ] + capName; + if ( name in emptyStyle ) { + return name; + } + } +} + +// Return a potentially-mapped jQuery.cssProps or vendor prefixed property +function finalPropName( name ) { + var final = jQuery.cssProps[ name ] || vendorProps[ name ]; + + if ( final ) { + return final; + } + if ( name in emptyStyle ) { + return name; + } + return vendorProps[ name ] = vendorPropName( name ) || name; +} + + +var + + // Swappable if display is none or starts with table + // except "table", "table-cell", or "table-caption" + // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display + rdisplayswap = /^(none|table(?!-c[ea]).+)/, + cssShow = { position: "absolute", visibility: "hidden", display: "block" }, + cssNormalTransform = { + letterSpacing: "0", + fontWeight: "400" + }; + +function setPositiveNumber( _elem, value, subtract ) { + + // Any relative (+/-) values have already been + // normalized at this point + var matches = rcssNum.exec( value ); + return matches ? + + // Guard against undefined "subtract", e.g., when used as in cssHooks + Math.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || "px" ) : + value; +} + +function boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) { + var i = dimension === "width" ? 1 : 0, + extra = 0, + delta = 0, + marginDelta = 0; + + // Adjustment may not be necessary + if ( box === ( isBorderBox ? "border" : "content" ) ) { + return 0; + } + + for ( ; i < 4; i += 2 ) { + + // Both box models exclude margin + // Count margin delta separately to only add it after scroll gutter adjustment. + // This is needed to make negative margins work with `outerHeight( true )` (gh-3982). + if ( box === "margin" ) { + marginDelta += jQuery.css( elem, box + cssExpand[ i ], true, styles ); + } + + // If we get here with a content-box, we're seeking "padding" or "border" or "margin" + if ( !isBorderBox ) { + + // Add padding + delta += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + + // For "border" or "margin", add border + if ( box !== "padding" ) { + delta += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + + // But still keep track of it otherwise + } else { + extra += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + + // If we get here with a border-box (content + padding + border), we're seeking "content" or + // "padding" or "margin" + } else { + + // For "content", subtract padding + if ( box === "content" ) { + delta -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + } + + // For "content" or "padding", subtract border + if ( box !== "margin" ) { + delta -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + } + } + + // Account for positive content-box scroll gutter when requested by providing computedVal + if ( !isBorderBox && computedVal >= 0 ) { + + // offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border + // Assuming integer scroll gutter, subtract the rest and round down + delta += Math.max( 0, Math.ceil( + elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] - + computedVal - + delta - + extra - + 0.5 + + // If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter + // Use an explicit zero to avoid NaN (gh-3964) + ) ) || 0; + } + + return delta + marginDelta; +} + +function getWidthOrHeight( elem, dimension, extra ) { + + // Start with computed style + var styles = getStyles( elem ), + + // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322). + // Fake content-box until we know it's needed to know the true value. + boxSizingNeeded = !support.boxSizingReliable() || extra, + isBorderBox = boxSizingNeeded && + jQuery.css( elem, "boxSizing", false, styles ) === "border-box", + valueIsBorderBox = isBorderBox, + + val = curCSS( elem, dimension, styles ), + offsetProp = "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ); + + // Support: Firefox <=54 + // Return a confounding non-pixel value or feign ignorance, as appropriate. + if ( rnumnonpx.test( val ) ) { + if ( !extra ) { + return val; + } + val = "auto"; + } + + + // Support: IE 9 - 11 only + // Use offsetWidth/offsetHeight for when box sizing is unreliable. + // In those cases, the computed value can be trusted to be border-box. + if ( ( !support.boxSizingReliable() && isBorderBox || + + // Support: IE 10 - 11+, Edge 15 - 18+ + // IE/Edge misreport `getComputedStyle` of table rows with width/height + // set in CSS while `offset*` properties report correct values. + // Interestingly, in some cases IE 9 doesn't suffer from this issue. + !support.reliableTrDimensions() && nodeName( elem, "tr" ) || + + // Fall back to offsetWidth/offsetHeight when value is "auto" + // This happens for inline elements with no explicit setting (gh-3571) + val === "auto" || + + // Support: Android <=4.1 - 4.3 only + // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602) + !parseFloat( val ) && jQuery.css( elem, "display", false, styles ) === "inline" ) && + + // Make sure the element is visible & connected + elem.getClientRects().length ) { + + isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box"; + + // Where available, offsetWidth/offsetHeight approximate border box dimensions. + // Where not available (e.g., SVG), assume unreliable box-sizing and interpret the + // retrieved value as a content box dimension. + valueIsBorderBox = offsetProp in elem; + if ( valueIsBorderBox ) { + val = elem[ offsetProp ]; + } + } + + // Normalize "" and auto + val = parseFloat( val ) || 0; + + // Adjust for the element's box model + return ( val + + boxModelAdjustment( + elem, + dimension, + extra || ( isBorderBox ? "border" : "content" ), + valueIsBorderBox, + styles, + + // Provide the current computed size to request scroll gutter calculation (gh-3589) + val + ) + ) + "px"; +} + +jQuery.extend( { + + // Add in style property hooks for overriding the default + // behavior of getting and setting a style property + cssHooks: { + opacity: { + get: function( elem, computed ) { + if ( computed ) { + + // We should always get a number back from opacity + var ret = curCSS( elem, "opacity" ); + return ret === "" ? "1" : ret; + } + } + } + }, + + // Don't automatically add "px" to these possibly-unitless properties + cssNumber: { + animationIterationCount: true, + aspectRatio: true, + borderImageSlice: true, + columnCount: true, + flexGrow: true, + flexShrink: true, + fontWeight: true, + gridArea: true, + gridColumn: true, + gridColumnEnd: true, + gridColumnStart: true, + gridRow: true, + gridRowEnd: true, + gridRowStart: true, + lineHeight: true, + opacity: true, + order: true, + orphans: true, + scale: true, + widows: true, + zIndex: true, + zoom: true, + + // SVG-related + fillOpacity: true, + floodOpacity: true, + stopOpacity: true, + strokeMiterlimit: true, + strokeOpacity: true + }, + + // Add in properties whose names you wish to fix before + // setting or getting the value + cssProps: {}, + + // Get and set the style property on a DOM Node + style: function( elem, name, value, extra ) { + + // Don't set styles on text and comment nodes + if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) { + return; + } + + // Make sure that we're working with the right name + var ret, type, hooks, + origName = camelCase( name ), + isCustomProp = rcustomProp.test( name ), + style = elem.style; + + // Make sure that we're working with the right name. We don't + // want to query the value if it is a CSS custom property + // since they are user-defined. + if ( !isCustomProp ) { + name = finalPropName( origName ); + } + + // Gets hook for the prefixed version, then unprefixed version + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // Check if we're setting a value + if ( value !== undefined ) { + type = typeof value; + + // Convert "+=" or "-=" to relative numbers (trac-7345) + if ( type === "string" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) { + value = adjustCSS( elem, name, ret ); + + // Fixes bug trac-9237 + type = "number"; + } + + // Make sure that null and NaN values aren't set (trac-7116) + if ( value == null || value !== value ) { + return; + } + + // If a number was passed in, add the unit (except for certain CSS properties) + // The isCustomProp check can be removed in jQuery 4.0 when we only auto-append + // "px" to a few hardcoded values. + if ( type === "number" && !isCustomProp ) { + value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" ); + } + + // background-* props affect original clone's values + if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) { + style[ name ] = "inherit"; + } + + // If a hook was provided, use that value, otherwise just set the specified value + if ( !hooks || !( "set" in hooks ) || + ( value = hooks.set( elem, value, extra ) ) !== undefined ) { + + if ( isCustomProp ) { + style.setProperty( name, value ); + } else { + style[ name ] = value; + } + } + + } else { + + // If a hook was provided get the non-computed value from there + if ( hooks && "get" in hooks && + ( ret = hooks.get( elem, false, extra ) ) !== undefined ) { + + return ret; + } + + // Otherwise just get the value from the style object + return style[ name ]; + } + }, + + css: function( elem, name, extra, styles ) { + var val, num, hooks, + origName = camelCase( name ), + isCustomProp = rcustomProp.test( name ); + + // Make sure that we're working with the right name. We don't + // want to modify the value if it is a CSS custom property + // since they are user-defined. + if ( !isCustomProp ) { + name = finalPropName( origName ); + } + + // Try prefixed name followed by the unprefixed name + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // If a hook was provided get the computed value from there + if ( hooks && "get" in hooks ) { + val = hooks.get( elem, true, extra ); + } + + // Otherwise, if a way to get the computed value exists, use that + if ( val === undefined ) { + val = curCSS( elem, name, styles ); + } + + // Convert "normal" to computed value + if ( val === "normal" && name in cssNormalTransform ) { + val = cssNormalTransform[ name ]; + } + + // Make numeric if forced or a qualifier was provided and val looks numeric + if ( extra === "" || extra ) { + num = parseFloat( val ); + return extra === true || isFinite( num ) ? num || 0 : val; + } + + return val; + } +} ); + +jQuery.each( [ "height", "width" ], function( _i, dimension ) { + jQuery.cssHooks[ dimension ] = { + get: function( elem, computed, extra ) { + if ( computed ) { + + // Certain elements can have dimension info if we invisibly show them + // but it must have a current display style that would benefit + return rdisplayswap.test( jQuery.css( elem, "display" ) ) && + + // Support: Safari 8+ + // Table columns in Safari have non-zero offsetWidth & zero + // getBoundingClientRect().width unless display is changed. + // Support: IE <=11 only + // Running getBoundingClientRect on a disconnected node + // in IE throws an error. + ( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ? + swap( elem, cssShow, function() { + return getWidthOrHeight( elem, dimension, extra ); + } ) : + getWidthOrHeight( elem, dimension, extra ); + } + }, + + set: function( elem, value, extra ) { + var matches, + styles = getStyles( elem ), + + // Only read styles.position if the test has a chance to fail + // to avoid forcing a reflow. + scrollboxSizeBuggy = !support.scrollboxSize() && + styles.position === "absolute", + + // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991) + boxSizingNeeded = scrollboxSizeBuggy || extra, + isBorderBox = boxSizingNeeded && + jQuery.css( elem, "boxSizing", false, styles ) === "border-box", + subtract = extra ? + boxModelAdjustment( + elem, + dimension, + extra, + isBorderBox, + styles + ) : + 0; + + // Account for unreliable border-box dimensions by comparing offset* to computed and + // faking a content-box to get border and padding (gh-3699) + if ( isBorderBox && scrollboxSizeBuggy ) { + subtract -= Math.ceil( + elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] - + parseFloat( styles[ dimension ] ) - + boxModelAdjustment( elem, dimension, "border", false, styles ) - + 0.5 + ); + } + + // Convert to pixels if value adjustment is needed + if ( subtract && ( matches = rcssNum.exec( value ) ) && + ( matches[ 3 ] || "px" ) !== "px" ) { + + elem.style[ dimension ] = value; + value = jQuery.css( elem, dimension ); + } + + return setPositiveNumber( elem, value, subtract ); + } + }; +} ); + +jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft, + function( elem, computed ) { + if ( computed ) { + return ( parseFloat( curCSS( elem, "marginLeft" ) ) || + elem.getBoundingClientRect().left - + swap( elem, { marginLeft: 0 }, function() { + return elem.getBoundingClientRect().left; + } ) + ) + "px"; + } + } +); + +// These hooks are used by animate to expand properties +jQuery.each( { + margin: "", + padding: "", + border: "Width" +}, function( prefix, suffix ) { + jQuery.cssHooks[ prefix + suffix ] = { + expand: function( value ) { + var i = 0, + expanded = {}, + + // Assumes a single number if not a string + parts = typeof value === "string" ? value.split( " " ) : [ value ]; + + for ( ; i < 4; i++ ) { + expanded[ prefix + cssExpand[ i ] + suffix ] = + parts[ i ] || parts[ i - 2 ] || parts[ 0 ]; + } + + return expanded; + } + }; + + if ( prefix !== "margin" ) { + jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber; + } +} ); + +jQuery.fn.extend( { + css: function( name, value ) { + return access( this, function( elem, name, value ) { + var styles, len, + map = {}, + i = 0; + + if ( Array.isArray( name ) ) { + styles = getStyles( elem ); + len = name.length; + + for ( ; i < len; i++ ) { + map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles ); + } + + return map; + } + + return value !== undefined ? + jQuery.style( elem, name, value ) : + jQuery.css( elem, name ); + }, name, value, arguments.length > 1 ); + } +} ); + + +function Tween( elem, options, prop, end, easing ) { + return new Tween.prototype.init( elem, options, prop, end, easing ); +} +jQuery.Tween = Tween; + +Tween.prototype = { + constructor: Tween, + init: function( elem, options, prop, end, easing, unit ) { + this.elem = elem; + this.prop = prop; + this.easing = easing || jQuery.easing._default; + this.options = options; + this.start = this.now = this.cur(); + this.end = end; + this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" ); + }, + cur: function() { + var hooks = Tween.propHooks[ this.prop ]; + + return hooks && hooks.get ? + hooks.get( this ) : + Tween.propHooks._default.get( this ); + }, + run: function( percent ) { + var eased, + hooks = Tween.propHooks[ this.prop ]; + + if ( this.options.duration ) { + this.pos = eased = jQuery.easing[ this.easing ]( + percent, this.options.duration * percent, 0, 1, this.options.duration + ); + } else { + this.pos = eased = percent; + } + this.now = ( this.end - this.start ) * eased + this.start; + + if ( this.options.step ) { + this.options.step.call( this.elem, this.now, this ); + } + + if ( hooks && hooks.set ) { + hooks.set( this ); + } else { + Tween.propHooks._default.set( this ); + } + return this; + } +}; + +Tween.prototype.init.prototype = Tween.prototype; + +Tween.propHooks = { + _default: { + get: function( tween ) { + var result; + + // Use a property on the element directly when it is not a DOM element, + // or when there is no matching style property that exists. + if ( tween.elem.nodeType !== 1 || + tween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) { + return tween.elem[ tween.prop ]; + } + + // Passing an empty string as a 3rd parameter to .css will automatically + // attempt a parseFloat and fallback to a string if the parse fails. + // Simple values such as "10px" are parsed to Float; + // complex values such as "rotate(1rad)" are returned as-is. + result = jQuery.css( tween.elem, tween.prop, "" ); + + // Empty strings, null, undefined and "auto" are converted to 0. + return !result || result === "auto" ? 0 : result; + }, + set: function( tween ) { + + // Use step hook for back compat. + // Use cssHook if its there. + // Use .style if available and use plain properties where available. + if ( jQuery.fx.step[ tween.prop ] ) { + jQuery.fx.step[ tween.prop ]( tween ); + } else if ( tween.elem.nodeType === 1 && ( + jQuery.cssHooks[ tween.prop ] || + tween.elem.style[ finalPropName( tween.prop ) ] != null ) ) { + jQuery.style( tween.elem, tween.prop, tween.now + tween.unit ); + } else { + tween.elem[ tween.prop ] = tween.now; + } + } + } +}; + +// Support: IE <=9 only +// Panic based approach to setting things on disconnected nodes +Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = { + set: function( tween ) { + if ( tween.elem.nodeType && tween.elem.parentNode ) { + tween.elem[ tween.prop ] = tween.now; + } + } +}; + +jQuery.easing = { + linear: function( p ) { + return p; + }, + swing: function( p ) { + return 0.5 - Math.cos( p * Math.PI ) / 2; + }, + _default: "swing" +}; + +jQuery.fx = Tween.prototype.init; + +// Back compat <1.8 extension point +jQuery.fx.step = {}; + + + + +var + fxNow, inProgress, + rfxtypes = /^(?:toggle|show|hide)$/, + rrun = /queueHooks$/; + +function schedule() { + if ( inProgress ) { + if ( document.hidden === false && window.requestAnimationFrame ) { + window.requestAnimationFrame( schedule ); + } else { + window.setTimeout( schedule, jQuery.fx.interval ); + } + + jQuery.fx.tick(); + } +} + +// Animations created synchronously will run synchronously +function createFxNow() { + window.setTimeout( function() { + fxNow = undefined; + } ); + return ( fxNow = Date.now() ); +} + +// Generate parameters to create a standard animation +function genFx( type, includeWidth ) { + var which, + i = 0, + attrs = { height: type }; + + // If we include width, step value is 1 to do all cssExpand values, + // otherwise step value is 2 to skip over Left and Right + includeWidth = includeWidth ? 1 : 0; + for ( ; i < 4; i += 2 - includeWidth ) { + which = cssExpand[ i ]; + attrs[ "margin" + which ] = attrs[ "padding" + which ] = type; + } + + if ( includeWidth ) { + attrs.opacity = attrs.width = type; + } + + return attrs; +} + +function createTween( value, prop, animation ) { + var tween, + collection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ "*" ] ), + index = 0, + length = collection.length; + for ( ; index < length; index++ ) { + if ( ( tween = collection[ index ].call( animation, prop, value ) ) ) { + + // We're done with this property + return tween; + } + } +} + +function defaultPrefilter( elem, props, opts ) { + var prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display, + isBox = "width" in props || "height" in props, + anim = this, + orig = {}, + style = elem.style, + hidden = elem.nodeType && isHiddenWithinTree( elem ), + dataShow = dataPriv.get( elem, "fxshow" ); + + // Queue-skipping animations hijack the fx hooks + if ( !opts.queue ) { + hooks = jQuery._queueHooks( elem, "fx" ); + if ( hooks.unqueued == null ) { + hooks.unqueued = 0; + oldfire = hooks.empty.fire; + hooks.empty.fire = function() { + if ( !hooks.unqueued ) { + oldfire(); + } + }; + } + hooks.unqueued++; + + anim.always( function() { + + // Ensure the complete handler is called before this completes + anim.always( function() { + hooks.unqueued--; + if ( !jQuery.queue( elem, "fx" ).length ) { + hooks.empty.fire(); + } + } ); + } ); + } + + // Detect show/hide animations + for ( prop in props ) { + value = props[ prop ]; + if ( rfxtypes.test( value ) ) { + delete props[ prop ]; + toggle = toggle || value === "toggle"; + if ( value === ( hidden ? "hide" : "show" ) ) { + + // Pretend to be hidden if this is a "show" and + // there is still data from a stopped show/hide + if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) { + hidden = true; + + // Ignore all other no-op show/hide data + } else { + continue; + } + } + orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop ); + } + } + + // Bail out if this is a no-op like .hide().hide() + propTween = !jQuery.isEmptyObject( props ); + if ( !propTween && jQuery.isEmptyObject( orig ) ) { + return; + } + + // Restrict "overflow" and "display" styles during box animations + if ( isBox && elem.nodeType === 1 ) { + + // Support: IE <=9 - 11, Edge 12 - 15 + // Record all 3 overflow attributes because IE does not infer the shorthand + // from identically-valued overflowX and overflowY and Edge just mirrors + // the overflowX value there. + opts.overflow = [ style.overflow, style.overflowX, style.overflowY ]; + + // Identify a display type, preferring old show/hide data over the CSS cascade + restoreDisplay = dataShow && dataShow.display; + if ( restoreDisplay == null ) { + restoreDisplay = dataPriv.get( elem, "display" ); + } + display = jQuery.css( elem, "display" ); + if ( display === "none" ) { + if ( restoreDisplay ) { + display = restoreDisplay; + } else { + + // Get nonempty value(s) by temporarily forcing visibility + showHide( [ elem ], true ); + restoreDisplay = elem.style.display || restoreDisplay; + display = jQuery.css( elem, "display" ); + showHide( [ elem ] ); + } + } + + // Animate inline elements as inline-block + if ( display === "inline" || display === "inline-block" && restoreDisplay != null ) { + if ( jQuery.css( elem, "float" ) === "none" ) { + + // Restore the original display value at the end of pure show/hide animations + if ( !propTween ) { + anim.done( function() { + style.display = restoreDisplay; + } ); + if ( restoreDisplay == null ) { + display = style.display; + restoreDisplay = display === "none" ? "" : display; + } + } + style.display = "inline-block"; + } + } + } + + if ( opts.overflow ) { + style.overflow = "hidden"; + anim.always( function() { + style.overflow = opts.overflow[ 0 ]; + style.overflowX = opts.overflow[ 1 ]; + style.overflowY = opts.overflow[ 2 ]; + } ); + } + + // Implement show/hide animations + propTween = false; + for ( prop in orig ) { + + // General show/hide setup for this element animation + if ( !propTween ) { + if ( dataShow ) { + if ( "hidden" in dataShow ) { + hidden = dataShow.hidden; + } + } else { + dataShow = dataPriv.access( elem, "fxshow", { display: restoreDisplay } ); + } + + // Store hidden/visible for toggle so `.stop().toggle()` "reverses" + if ( toggle ) { + dataShow.hidden = !hidden; + } + + // Show elements before animating them + if ( hidden ) { + showHide( [ elem ], true ); + } + + /* eslint-disable no-loop-func */ + + anim.done( function() { + + /* eslint-enable no-loop-func */ + + // The final step of a "hide" animation is actually hiding the element + if ( !hidden ) { + showHide( [ elem ] ); + } + dataPriv.remove( elem, "fxshow" ); + for ( prop in orig ) { + jQuery.style( elem, prop, orig[ prop ] ); + } + } ); + } + + // Per-property setup + propTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim ); + if ( !( prop in dataShow ) ) { + dataShow[ prop ] = propTween.start; + if ( hidden ) { + propTween.end = propTween.start; + propTween.start = 0; + } + } + } +} + +function propFilter( props, specialEasing ) { + var index, name, easing, value, hooks; + + // camelCase, specialEasing and expand cssHook pass + for ( index in props ) { + name = camelCase( index ); + easing = specialEasing[ name ]; + value = props[ index ]; + if ( Array.isArray( value ) ) { + easing = value[ 1 ]; + value = props[ index ] = value[ 0 ]; + } + + if ( index !== name ) { + props[ name ] = value; + delete props[ index ]; + } + + hooks = jQuery.cssHooks[ name ]; + if ( hooks && "expand" in hooks ) { + value = hooks.expand( value ); + delete props[ name ]; + + // Not quite $.extend, this won't overwrite existing keys. + // Reusing 'index' because we have the correct "name" + for ( index in value ) { + if ( !( index in props ) ) { + props[ index ] = value[ index ]; + specialEasing[ index ] = easing; + } + } + } else { + specialEasing[ name ] = easing; + } + } +} + +function Animation( elem, properties, options ) { + var result, + stopped, + index = 0, + length = Animation.prefilters.length, + deferred = jQuery.Deferred().always( function() { + + // Don't match elem in the :animated selector + delete tick.elem; + } ), + tick = function() { + if ( stopped ) { + return false; + } + var currentTime = fxNow || createFxNow(), + remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ), + + // Support: Android 2.3 only + // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (trac-12497) + temp = remaining / animation.duration || 0, + percent = 1 - temp, + index = 0, + length = animation.tweens.length; + + for ( ; index < length; index++ ) { + animation.tweens[ index ].run( percent ); + } + + deferred.notifyWith( elem, [ animation, percent, remaining ] ); + + // If there's more to do, yield + if ( percent < 1 && length ) { + return remaining; + } + + // If this was an empty animation, synthesize a final progress notification + if ( !length ) { + deferred.notifyWith( elem, [ animation, 1, 0 ] ); + } + + // Resolve the animation and report its conclusion + deferred.resolveWith( elem, [ animation ] ); + return false; + }, + animation = deferred.promise( { + elem: elem, + props: jQuery.extend( {}, properties ), + opts: jQuery.extend( true, { + specialEasing: {}, + easing: jQuery.easing._default + }, options ), + originalProperties: properties, + originalOptions: options, + startTime: fxNow || createFxNow(), + duration: options.duration, + tweens: [], + createTween: function( prop, end ) { + var tween = jQuery.Tween( elem, animation.opts, prop, end, + animation.opts.specialEasing[ prop ] || animation.opts.easing ); + animation.tweens.push( tween ); + return tween; + }, + stop: function( gotoEnd ) { + var index = 0, + + // If we are going to the end, we want to run all the tweens + // otherwise we skip this part + length = gotoEnd ? animation.tweens.length : 0; + if ( stopped ) { + return this; + } + stopped = true; + for ( ; index < length; index++ ) { + animation.tweens[ index ].run( 1 ); + } + + // Resolve when we played the last frame; otherwise, reject + if ( gotoEnd ) { + deferred.notifyWith( elem, [ animation, 1, 0 ] ); + deferred.resolveWith( elem, [ animation, gotoEnd ] ); + } else { + deferred.rejectWith( elem, [ animation, gotoEnd ] ); + } + return this; + } + } ), + props = animation.props; + + propFilter( props, animation.opts.specialEasing ); + + for ( ; index < length; index++ ) { + result = Animation.prefilters[ index ].call( animation, elem, props, animation.opts ); + if ( result ) { + if ( isFunction( result.stop ) ) { + jQuery._queueHooks( animation.elem, animation.opts.queue ).stop = + result.stop.bind( result ); + } + return result; + } + } + + jQuery.map( props, createTween, animation ); + + if ( isFunction( animation.opts.start ) ) { + animation.opts.start.call( elem, animation ); + } + + // Attach callbacks from options + animation + .progress( animation.opts.progress ) + .done( animation.opts.done, animation.opts.complete ) + .fail( animation.opts.fail ) + .always( animation.opts.always ); + + jQuery.fx.timer( + jQuery.extend( tick, { + elem: elem, + anim: animation, + queue: animation.opts.queue + } ) + ); + + return animation; +} + +jQuery.Animation = jQuery.extend( Animation, { + + tweeners: { + "*": [ function( prop, value ) { + var tween = this.createTween( prop, value ); + adjustCSS( tween.elem, prop, rcssNum.exec( value ), tween ); + return tween; + } ] + }, + + tweener: function( props, callback ) { + if ( isFunction( props ) ) { + callback = props; + props = [ "*" ]; + } else { + props = props.match( rnothtmlwhite ); + } + + var prop, + index = 0, + length = props.length; + + for ( ; index < length; index++ ) { + prop = props[ index ]; + Animation.tweeners[ prop ] = Animation.tweeners[ prop ] || []; + Animation.tweeners[ prop ].unshift( callback ); + } + }, + + prefilters: [ defaultPrefilter ], + + prefilter: function( callback, prepend ) { + if ( prepend ) { + Animation.prefilters.unshift( callback ); + } else { + Animation.prefilters.push( callback ); + } + } +} ); + +jQuery.speed = function( speed, easing, fn ) { + var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : { + complete: fn || !fn && easing || + isFunction( speed ) && speed, + duration: speed, + easing: fn && easing || easing && !isFunction( easing ) && easing + }; + + // Go to the end state if fx are off + if ( jQuery.fx.off ) { + opt.duration = 0; + + } else { + if ( typeof opt.duration !== "number" ) { + if ( opt.duration in jQuery.fx.speeds ) { + opt.duration = jQuery.fx.speeds[ opt.duration ]; + + } else { + opt.duration = jQuery.fx.speeds._default; + } + } + } + + // Normalize opt.queue - true/undefined/null -> "fx" + if ( opt.queue == null || opt.queue === true ) { + opt.queue = "fx"; + } + + // Queueing + opt.old = opt.complete; + + opt.complete = function() { + if ( isFunction( opt.old ) ) { + opt.old.call( this ); + } + + if ( opt.queue ) { + jQuery.dequeue( this, opt.queue ); + } + }; + + return opt; +}; + +jQuery.fn.extend( { + fadeTo: function( speed, to, easing, callback ) { + + // Show any hidden elements after setting opacity to 0 + return this.filter( isHiddenWithinTree ).css( "opacity", 0 ).show() + + // Animate to the value specified + .end().animate( { opacity: to }, speed, easing, callback ); + }, + animate: function( prop, speed, easing, callback ) { + var empty = jQuery.isEmptyObject( prop ), + optall = jQuery.speed( speed, easing, callback ), + doAnimation = function() { + + // Operate on a copy of prop so per-property easing won't be lost + var anim = Animation( this, jQuery.extend( {}, prop ), optall ); + + // Empty animations, or finishing resolves immediately + if ( empty || dataPriv.get( this, "finish" ) ) { + anim.stop( true ); + } + }; + + doAnimation.finish = doAnimation; + + return empty || optall.queue === false ? + this.each( doAnimation ) : + this.queue( optall.queue, doAnimation ); + }, + stop: function( type, clearQueue, gotoEnd ) { + var stopQueue = function( hooks ) { + var stop = hooks.stop; + delete hooks.stop; + stop( gotoEnd ); + }; + + if ( typeof type !== "string" ) { + gotoEnd = clearQueue; + clearQueue = type; + type = undefined; + } + if ( clearQueue ) { + this.queue( type || "fx", [] ); + } + + return this.each( function() { + var dequeue = true, + index = type != null && type + "queueHooks", + timers = jQuery.timers, + data = dataPriv.get( this ); + + if ( index ) { + if ( data[ index ] && data[ index ].stop ) { + stopQueue( data[ index ] ); + } + } else { + for ( index in data ) { + if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) { + stopQueue( data[ index ] ); + } + } + } + + for ( index = timers.length; index--; ) { + if ( timers[ index ].elem === this && + ( type == null || timers[ index ].queue === type ) ) { + + timers[ index ].anim.stop( gotoEnd ); + dequeue = false; + timers.splice( index, 1 ); + } + } + + // Start the next in the queue if the last step wasn't forced. + // Timers currently will call their complete callbacks, which + // will dequeue but only if they were gotoEnd. + if ( dequeue || !gotoEnd ) { + jQuery.dequeue( this, type ); + } + } ); + }, + finish: function( type ) { + if ( type !== false ) { + type = type || "fx"; + } + return this.each( function() { + var index, + data = dataPriv.get( this ), + queue = data[ type + "queue" ], + hooks = data[ type + "queueHooks" ], + timers = jQuery.timers, + length = queue ? queue.length : 0; + + // Enable finishing flag on private data + data.finish = true; + + // Empty the queue first + jQuery.queue( this, type, [] ); + + if ( hooks && hooks.stop ) { + hooks.stop.call( this, true ); + } + + // Look for any active animations, and finish them + for ( index = timers.length; index--; ) { + if ( timers[ index ].elem === this && timers[ index ].queue === type ) { + timers[ index ].anim.stop( true ); + timers.splice( index, 1 ); + } + } + + // Look for any animations in the old queue and finish them + for ( index = 0; index < length; index++ ) { + if ( queue[ index ] && queue[ index ].finish ) { + queue[ index ].finish.call( this ); + } + } + + // Turn off finishing flag + delete data.finish; + } ); + } +} ); + +jQuery.each( [ "toggle", "show", "hide" ], function( _i, name ) { + var cssFn = jQuery.fn[ name ]; + jQuery.fn[ name ] = function( speed, easing, callback ) { + return speed == null || typeof speed === "boolean" ? + cssFn.apply( this, arguments ) : + this.animate( genFx( name, true ), speed, easing, callback ); + }; +} ); + +// Generate shortcuts for custom animations +jQuery.each( { + slideDown: genFx( "show" ), + slideUp: genFx( "hide" ), + slideToggle: genFx( "toggle" ), + fadeIn: { opacity: "show" }, + fadeOut: { opacity: "hide" }, + fadeToggle: { opacity: "toggle" } +}, function( name, props ) { + jQuery.fn[ name ] = function( speed, easing, callback ) { + return this.animate( props, speed, easing, callback ); + }; +} ); + +jQuery.timers = []; +jQuery.fx.tick = function() { + var timer, + i = 0, + timers = jQuery.timers; + + fxNow = Date.now(); + + for ( ; i < timers.length; i++ ) { + timer = timers[ i ]; + + // Run the timer and safely remove it when done (allowing for external removal) + if ( !timer() && timers[ i ] === timer ) { + timers.splice( i--, 1 ); + } + } + + if ( !timers.length ) { + jQuery.fx.stop(); + } + fxNow = undefined; +}; + +jQuery.fx.timer = function( timer ) { + jQuery.timers.push( timer ); + jQuery.fx.start(); +}; + +jQuery.fx.interval = 13; +jQuery.fx.start = function() { + if ( inProgress ) { + return; + } + + inProgress = true; + schedule(); +}; + +jQuery.fx.stop = function() { + inProgress = null; +}; + +jQuery.fx.speeds = { + slow: 600, + fast: 200, + + // Default speed + _default: 400 +}; + + +// Based off of the plugin by Clint Helfers, with permission. +jQuery.fn.delay = function( time, type ) { + time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; + type = type || "fx"; + + return this.queue( type, function( next, hooks ) { + var timeout = window.setTimeout( next, time ); + hooks.stop = function() { + window.clearTimeout( timeout ); + }; + } ); +}; + + +( function() { + var input = document.createElement( "input" ), + select = document.createElement( "select" ), + opt = select.appendChild( document.createElement( "option" ) ); + + input.type = "checkbox"; + + // Support: Android <=4.3 only + // Default value for a checkbox should be "on" + support.checkOn = input.value !== ""; + + // Support: IE <=11 only + // Must access selectedIndex to make default options select + support.optSelected = opt.selected; + + // Support: IE <=11 only + // An input loses its value after becoming a radio + input = document.createElement( "input" ); + input.value = "t"; + input.type = "radio"; + support.radioValue = input.value === "t"; +} )(); + + +var boolHook, + attrHandle = jQuery.expr.attrHandle; + +jQuery.fn.extend( { + attr: function( name, value ) { + return access( this, jQuery.attr, name, value, arguments.length > 1 ); + }, + + removeAttr: function( name ) { + return this.each( function() { + jQuery.removeAttr( this, name ); + } ); + } +} ); + +jQuery.extend( { + attr: function( elem, name, value ) { + var ret, hooks, + nType = elem.nodeType; + + // Don't get/set attributes on text, comment and attribute nodes + if ( nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + // Fallback to prop when attributes are not supported + if ( typeof elem.getAttribute === "undefined" ) { + return jQuery.prop( elem, name, value ); + } + + // Attribute hooks are determined by the lowercase version + // Grab necessary hook if one is defined + if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { + hooks = jQuery.attrHooks[ name.toLowerCase() ] || + ( jQuery.expr.match.bool.test( name ) ? boolHook : undefined ); + } + + if ( value !== undefined ) { + if ( value === null ) { + jQuery.removeAttr( elem, name ); + return; + } + + if ( hooks && "set" in hooks && + ( ret = hooks.set( elem, value, name ) ) !== undefined ) { + return ret; + } + + elem.setAttribute( name, value + "" ); + return value; + } + + if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { + return ret; + } + + ret = jQuery.find.attr( elem, name ); + + // Non-existent attributes return null, we normalize to undefined + return ret == null ? undefined : ret; + }, + + attrHooks: { + type: { + set: function( elem, value ) { + if ( !support.radioValue && value === "radio" && + nodeName( elem, "input" ) ) { + var val = elem.value; + elem.setAttribute( "type", value ); + if ( val ) { + elem.value = val; + } + return value; + } + } + } + }, + + removeAttr: function( elem, value ) { + var name, + i = 0, + + // Attribute names can contain non-HTML whitespace characters + // https://html.spec.whatwg.org/multipage/syntax.html#attributes-2 + attrNames = value && value.match( rnothtmlwhite ); + + if ( attrNames && elem.nodeType === 1 ) { + while ( ( name = attrNames[ i++ ] ) ) { + elem.removeAttribute( name ); + } + } + } +} ); + +// Hooks for boolean attributes +boolHook = { + set: function( elem, value, name ) { + if ( value === false ) { + + // Remove boolean attributes when set to false + jQuery.removeAttr( elem, name ); + } else { + elem.setAttribute( name, name ); + } + return name; + } +}; + +jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( _i, name ) { + var getter = attrHandle[ name ] || jQuery.find.attr; + + attrHandle[ name ] = function( elem, name, isXML ) { + var ret, handle, + lowercaseName = name.toLowerCase(); + + if ( !isXML ) { + + // Avoid an infinite loop by temporarily removing this function from the getter + handle = attrHandle[ lowercaseName ]; + attrHandle[ lowercaseName ] = ret; + ret = getter( elem, name, isXML ) != null ? + lowercaseName : + null; + attrHandle[ lowercaseName ] = handle; + } + return ret; + }; +} ); + + + + +var rfocusable = /^(?:input|select|textarea|button)$/i, + rclickable = /^(?:a|area)$/i; + +jQuery.fn.extend( { + prop: function( name, value ) { + return access( this, jQuery.prop, name, value, arguments.length > 1 ); + }, + + removeProp: function( name ) { + return this.each( function() { + delete this[ jQuery.propFix[ name ] || name ]; + } ); + } +} ); + +jQuery.extend( { + prop: function( elem, name, value ) { + var ret, hooks, + nType = elem.nodeType; + + // Don't get/set properties on text, comment and attribute nodes + if ( nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { + + // Fix name and attach hooks + name = jQuery.propFix[ name ] || name; + hooks = jQuery.propHooks[ name ]; + } + + if ( value !== undefined ) { + if ( hooks && "set" in hooks && + ( ret = hooks.set( elem, value, name ) ) !== undefined ) { + return ret; + } + + return ( elem[ name ] = value ); + } + + if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { + return ret; + } + + return elem[ name ]; + }, + + propHooks: { + tabIndex: { + get: function( elem ) { + + // Support: IE <=9 - 11 only + // elem.tabIndex doesn't always return the + // correct value when it hasn't been explicitly set + // Use proper attribute retrieval (trac-12072) + var tabindex = jQuery.find.attr( elem, "tabindex" ); + + if ( tabindex ) { + return parseInt( tabindex, 10 ); + } + + if ( + rfocusable.test( elem.nodeName ) || + rclickable.test( elem.nodeName ) && + elem.href + ) { + return 0; + } + + return -1; + } + } + }, + + propFix: { + "for": "htmlFor", + "class": "className" + } +} ); + +// Support: IE <=11 only +// Accessing the selectedIndex property +// forces the browser to respect setting selected +// on the option +// The getter ensures a default option is selected +// when in an optgroup +// eslint rule "no-unused-expressions" is disabled for this code +// since it considers such accessions noop +if ( !support.optSelected ) { + jQuery.propHooks.selected = { + get: function( elem ) { + + /* eslint no-unused-expressions: "off" */ + + var parent = elem.parentNode; + if ( parent && parent.parentNode ) { + parent.parentNode.selectedIndex; + } + return null; + }, + set: function( elem ) { + + /* eslint no-unused-expressions: "off" */ + + var parent = elem.parentNode; + if ( parent ) { + parent.selectedIndex; + + if ( parent.parentNode ) { + parent.parentNode.selectedIndex; + } + } + } + }; +} + +jQuery.each( [ + "tabIndex", + "readOnly", + "maxLength", + "cellSpacing", + "cellPadding", + "rowSpan", + "colSpan", + "useMap", + "frameBorder", + "contentEditable" +], function() { + jQuery.propFix[ this.toLowerCase() ] = this; +} ); + + + + + // Strip and collapse whitespace according to HTML spec + // https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace + function stripAndCollapse( value ) { + var tokens = value.match( rnothtmlwhite ) || []; + return tokens.join( " " ); + } + + +function getClass( elem ) { + return elem.getAttribute && elem.getAttribute( "class" ) || ""; +} + +function classesToArray( value ) { + if ( Array.isArray( value ) ) { + return value; + } + if ( typeof value === "string" ) { + return value.match( rnothtmlwhite ) || []; + } + return []; +} + +jQuery.fn.extend( { + addClass: function( value ) { + var classNames, cur, curValue, className, i, finalValue; + + if ( isFunction( value ) ) { + return this.each( function( j ) { + jQuery( this ).addClass( value.call( this, j, getClass( this ) ) ); + } ); + } + + classNames = classesToArray( value ); + + if ( classNames.length ) { + return this.each( function() { + curValue = getClass( this ); + cur = this.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); + + if ( cur ) { + for ( i = 0; i < classNames.length; i++ ) { + className = classNames[ i ]; + if ( cur.indexOf( " " + className + " " ) < 0 ) { + cur += className + " "; + } + } + + // Only assign if different to avoid unneeded rendering. + finalValue = stripAndCollapse( cur ); + if ( curValue !== finalValue ) { + this.setAttribute( "class", finalValue ); + } + } + } ); + } + + return this; + }, + + removeClass: function( value ) { + var classNames, cur, curValue, className, i, finalValue; + + if ( isFunction( value ) ) { + return this.each( function( j ) { + jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) ); + } ); + } + + if ( !arguments.length ) { + return this.attr( "class", "" ); + } + + classNames = classesToArray( value ); + + if ( classNames.length ) { + return this.each( function() { + curValue = getClass( this ); + + // This expression is here for better compressibility (see addClass) + cur = this.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); + + if ( cur ) { + for ( i = 0; i < classNames.length; i++ ) { + className = classNames[ i ]; + + // Remove *all* instances + while ( cur.indexOf( " " + className + " " ) > -1 ) { + cur = cur.replace( " " + className + " ", " " ); + } + } + + // Only assign if different to avoid unneeded rendering. + finalValue = stripAndCollapse( cur ); + if ( curValue !== finalValue ) { + this.setAttribute( "class", finalValue ); + } + } + } ); + } + + return this; + }, + + toggleClass: function( value, stateVal ) { + var classNames, className, i, self, + type = typeof value, + isValidValue = type === "string" || Array.isArray( value ); + + if ( isFunction( value ) ) { + return this.each( function( i ) { + jQuery( this ).toggleClass( + value.call( this, i, getClass( this ), stateVal ), + stateVal + ); + } ); + } + + if ( typeof stateVal === "boolean" && isValidValue ) { + return stateVal ? this.addClass( value ) : this.removeClass( value ); + } + + classNames = classesToArray( value ); + + return this.each( function() { + if ( isValidValue ) { + + // Toggle individual class names + self = jQuery( this ); + + for ( i = 0; i < classNames.length; i++ ) { + className = classNames[ i ]; + + // Check each className given, space separated list + if ( self.hasClass( className ) ) { + self.removeClass( className ); + } else { + self.addClass( className ); + } + } + + // Toggle whole class name + } else if ( value === undefined || type === "boolean" ) { + className = getClass( this ); + if ( className ) { + + // Store className if set + dataPriv.set( this, "__className__", className ); + } + + // If the element has a class name or if we're passed `false`, + // then remove the whole classname (if there was one, the above saved it). + // Otherwise bring back whatever was previously saved (if anything), + // falling back to the empty string if nothing was stored. + if ( this.setAttribute ) { + this.setAttribute( "class", + className || value === false ? + "" : + dataPriv.get( this, "__className__" ) || "" + ); + } + } + } ); + }, + + hasClass: function( selector ) { + var className, elem, + i = 0; + + className = " " + selector + " "; + while ( ( elem = this[ i++ ] ) ) { + if ( elem.nodeType === 1 && + ( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) { + return true; + } + } + + return false; + } +} ); + + + + +var rreturn = /\r/g; + +jQuery.fn.extend( { + val: function( value ) { + var hooks, ret, valueIsFunction, + elem = this[ 0 ]; + + if ( !arguments.length ) { + if ( elem ) { + hooks = jQuery.valHooks[ elem.type ] || + jQuery.valHooks[ elem.nodeName.toLowerCase() ]; + + if ( hooks && + "get" in hooks && + ( ret = hooks.get( elem, "value" ) ) !== undefined + ) { + return ret; + } + + ret = elem.value; + + // Handle most common string cases + if ( typeof ret === "string" ) { + return ret.replace( rreturn, "" ); + } + + // Handle cases where value is null/undef or number + return ret == null ? "" : ret; + } + + return; + } + + valueIsFunction = isFunction( value ); + + return this.each( function( i ) { + var val; + + if ( this.nodeType !== 1 ) { + return; + } + + if ( valueIsFunction ) { + val = value.call( this, i, jQuery( this ).val() ); + } else { + val = value; + } + + // Treat null/undefined as ""; convert numbers to string + if ( val == null ) { + val = ""; + + } else if ( typeof val === "number" ) { + val += ""; + + } else if ( Array.isArray( val ) ) { + val = jQuery.map( val, function( value ) { + return value == null ? "" : value + ""; + } ); + } + + hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ]; + + // If set returns undefined, fall back to normal setting + if ( !hooks || !( "set" in hooks ) || hooks.set( this, val, "value" ) === undefined ) { + this.value = val; + } + } ); + } +} ); + +jQuery.extend( { + valHooks: { + option: { + get: function( elem ) { + + var val = jQuery.find.attr( elem, "value" ); + return val != null ? + val : + + // Support: IE <=10 - 11 only + // option.text throws exceptions (trac-14686, trac-14858) + // Strip and collapse whitespace + // https://html.spec.whatwg.org/#strip-and-collapse-whitespace + stripAndCollapse( jQuery.text( elem ) ); + } + }, + select: { + get: function( elem ) { + var value, option, i, + options = elem.options, + index = elem.selectedIndex, + one = elem.type === "select-one", + values = one ? null : [], + max = one ? index + 1 : options.length; + + if ( index < 0 ) { + i = max; + + } else { + i = one ? index : 0; + } + + // Loop through all the selected options + for ( ; i < max; i++ ) { + option = options[ i ]; + + // Support: IE <=9 only + // IE8-9 doesn't update selected after form reset (trac-2551) + if ( ( option.selected || i === index ) && + + // Don't return options that are disabled or in a disabled optgroup + !option.disabled && + ( !option.parentNode.disabled || + !nodeName( option.parentNode, "optgroup" ) ) ) { + + // Get the specific value for the option + value = jQuery( option ).val(); + + // We don't need an array for one selects + if ( one ) { + return value; + } + + // Multi-Selects return an array + values.push( value ); + } + } + + return values; + }, + + set: function( elem, value ) { + var optionSet, option, + options = elem.options, + values = jQuery.makeArray( value ), + i = options.length; + + while ( i-- ) { + option = options[ i ]; + + /* eslint-disable no-cond-assign */ + + if ( option.selected = + jQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1 + ) { + optionSet = true; + } + + /* eslint-enable no-cond-assign */ + } + + // Force browsers to behave consistently when non-matching value is set + if ( !optionSet ) { + elem.selectedIndex = -1; + } + return values; + } + } + } +} ); + +// Radios and checkboxes getter/setter +jQuery.each( [ "radio", "checkbox" ], function() { + jQuery.valHooks[ this ] = { + set: function( elem, value ) { + if ( Array.isArray( value ) ) { + return ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 ); + } + } + }; + if ( !support.checkOn ) { + jQuery.valHooks[ this ].get = function( elem ) { + return elem.getAttribute( "value" ) === null ? "on" : elem.value; + }; + } +} ); + + + + +// Return jQuery for attributes-only inclusion +var location = window.location; + +var nonce = { guid: Date.now() }; + +var rquery = ( /\?/ ); + + + +// Cross-browser xml parsing +jQuery.parseXML = function( data ) { + var xml, parserErrorElem; + if ( !data || typeof data !== "string" ) { + return null; + } + + // Support: IE 9 - 11 only + // IE throws on parseFromString with invalid input. + try { + xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" ); + } catch ( e ) {} + + parserErrorElem = xml && xml.getElementsByTagName( "parsererror" )[ 0 ]; + if ( !xml || parserErrorElem ) { + jQuery.error( "Invalid XML: " + ( + parserErrorElem ? + jQuery.map( parserErrorElem.childNodes, function( el ) { + return el.textContent; + } ).join( "\n" ) : + data + ) ); + } + return xml; +}; + + +var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, + stopPropagationCallback = function( e ) { + e.stopPropagation(); + }; + +jQuery.extend( jQuery.event, { + + trigger: function( event, data, elem, onlyHandlers ) { + + var i, cur, tmp, bubbleType, ontype, handle, special, lastElement, + eventPath = [ elem || document ], + type = hasOwn.call( event, "type" ) ? event.type : event, + namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : []; + + cur = lastElement = tmp = elem = elem || document; + + // Don't do events on text and comment nodes + if ( elem.nodeType === 3 || elem.nodeType === 8 ) { + return; + } + + // focus/blur morphs to focusin/out; ensure we're not firing them right now + if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { + return; + } + + if ( type.indexOf( "." ) > -1 ) { + + // Namespaced trigger; create a regexp to match event type in handle() + namespaces = type.split( "." ); + type = namespaces.shift(); + namespaces.sort(); + } + ontype = type.indexOf( ":" ) < 0 && "on" + type; + + // Caller can pass in a jQuery.Event object, Object, or just an event type string + event = event[ jQuery.expando ] ? + event : + new jQuery.Event( type, typeof event === "object" && event ); + + // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true) + event.isTrigger = onlyHandlers ? 2 : 3; + event.namespace = namespaces.join( "." ); + event.rnamespace = event.namespace ? + new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) : + null; + + // Clean up the event in case it is being reused + event.result = undefined; + if ( !event.target ) { + event.target = elem; + } + + // Clone any incoming data and prepend the event, creating the handler arg list + data = data == null ? + [ event ] : + jQuery.makeArray( data, [ event ] ); + + // Allow special events to draw outside the lines + special = jQuery.event.special[ type ] || {}; + if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) { + return; + } + + // Determine event propagation path in advance, per W3C events spec (trac-9951) + // Bubble up to document, then to window; watch for a global ownerDocument var (trac-9724) + if ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) { + + bubbleType = special.delegateType || type; + if ( !rfocusMorph.test( bubbleType + type ) ) { + cur = cur.parentNode; + } + for ( ; cur; cur = cur.parentNode ) { + eventPath.push( cur ); + tmp = cur; + } + + // Only add window if we got to document (e.g., not plain obj or detached DOM) + if ( tmp === ( elem.ownerDocument || document ) ) { + eventPath.push( tmp.defaultView || tmp.parentWindow || window ); + } + } + + // Fire handlers on the event path + i = 0; + while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) { + lastElement = cur; + event.type = i > 1 ? + bubbleType : + special.bindType || type; + + // jQuery handler + handle = ( dataPriv.get( cur, "events" ) || Object.create( null ) )[ event.type ] && + dataPriv.get( cur, "handle" ); + if ( handle ) { + handle.apply( cur, data ); + } + + // Native handler + handle = ontype && cur[ ontype ]; + if ( handle && handle.apply && acceptData( cur ) ) { + event.result = handle.apply( cur, data ); + if ( event.result === false ) { + event.preventDefault(); + } + } + } + event.type = type; + + // If nobody prevented the default action, do it now + if ( !onlyHandlers && !event.isDefaultPrevented() ) { + + if ( ( !special._default || + special._default.apply( eventPath.pop(), data ) === false ) && + acceptData( elem ) ) { + + // Call a native DOM method on the target with the same name as the event. + // Don't do default actions on window, that's where global variables be (trac-6170) + if ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) { + + // Don't re-trigger an onFOO event when we call its FOO() method + tmp = elem[ ontype ]; + + if ( tmp ) { + elem[ ontype ] = null; + } + + // Prevent re-triggering of the same event, since we already bubbled it above + jQuery.event.triggered = type; + + if ( event.isPropagationStopped() ) { + lastElement.addEventListener( type, stopPropagationCallback ); + } + + elem[ type ](); + + if ( event.isPropagationStopped() ) { + lastElement.removeEventListener( type, stopPropagationCallback ); + } + + jQuery.event.triggered = undefined; + + if ( tmp ) { + elem[ ontype ] = tmp; + } + } + } + } + + return event.result; + }, + + // Piggyback on a donor event to simulate a different one + // Used only for `focus(in | out)` events + simulate: function( type, elem, event ) { + var e = jQuery.extend( + new jQuery.Event(), + event, + { + type: type, + isSimulated: true + } + ); + + jQuery.event.trigger( e, null, elem ); + } + +} ); + +jQuery.fn.extend( { + + trigger: function( type, data ) { + return this.each( function() { + jQuery.event.trigger( type, data, this ); + } ); + }, + triggerHandler: function( type, data ) { + var elem = this[ 0 ]; + if ( elem ) { + return jQuery.event.trigger( type, data, elem, true ); + } + } +} ); + + +var + rbracket = /\[\]$/, + rCRLF = /\r?\n/g, + rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i, + rsubmittable = /^(?:input|select|textarea|keygen)/i; + +function buildParams( prefix, obj, traditional, add ) { + var name; + + if ( Array.isArray( obj ) ) { + + // Serialize array item. + jQuery.each( obj, function( i, v ) { + if ( traditional || rbracket.test( prefix ) ) { + + // Treat each array item as a scalar. + add( prefix, v ); + + } else { + + // Item is non-scalar (array or object), encode its numeric index. + buildParams( + prefix + "[" + ( typeof v === "object" && v != null ? i : "" ) + "]", + v, + traditional, + add + ); + } + } ); + + } else if ( !traditional && toType( obj ) === "object" ) { + + // Serialize object item. + for ( name in obj ) { + buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add ); + } + + } else { + + // Serialize scalar item. + add( prefix, obj ); + } +} + +// Serialize an array of form elements or a set of +// key/values into a query string +jQuery.param = function( a, traditional ) { + var prefix, + s = [], + add = function( key, valueOrFunction ) { + + // If value is a function, invoke it and use its return value + var value = isFunction( valueOrFunction ) ? + valueOrFunction() : + valueOrFunction; + + s[ s.length ] = encodeURIComponent( key ) + "=" + + encodeURIComponent( value == null ? "" : value ); + }; + + if ( a == null ) { + return ""; + } + + // If an array was passed in, assume that it is an array of form elements. + if ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) { + + // Serialize the form elements + jQuery.each( a, function() { + add( this.name, this.value ); + } ); + + } else { + + // If traditional, encode the "old" way (the way 1.3.2 or older + // did it), otherwise encode params recursively. + for ( prefix in a ) { + buildParams( prefix, a[ prefix ], traditional, add ); + } + } + + // Return the resulting serialization + return s.join( "&" ); +}; + +jQuery.fn.extend( { + serialize: function() { + return jQuery.param( this.serializeArray() ); + }, + serializeArray: function() { + return this.map( function() { + + // Can add propHook for "elements" to filter or add form elements + var elements = jQuery.prop( this, "elements" ); + return elements ? jQuery.makeArray( elements ) : this; + } ).filter( function() { + var type = this.type; + + // Use .is( ":disabled" ) so that fieldset[disabled] works + return this.name && !jQuery( this ).is( ":disabled" ) && + rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) && + ( this.checked || !rcheckableType.test( type ) ); + } ).map( function( _i, elem ) { + var val = jQuery( this ).val(); + + if ( val == null ) { + return null; + } + + if ( Array.isArray( val ) ) { + return jQuery.map( val, function( val ) { + return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; + } ); + } + + return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; + } ).get(); + } +} ); + + +var + r20 = /%20/g, + rhash = /#.*$/, + rantiCache = /([?&])_=[^&]*/, + rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg, + + // trac-7653, trac-8125, trac-8152: local protocol detection + rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, + rnoContent = /^(?:GET|HEAD)$/, + rprotocol = /^\/\//, + + /* Prefilters + * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example) + * 2) These are called: + * - BEFORE asking for a transport + * - AFTER param serialization (s.data is a string if s.processData is true) + * 3) key is the dataType + * 4) the catchall symbol "*" can be used + * 5) execution will start with transport dataType and THEN continue down to "*" if needed + */ + prefilters = {}, + + /* Transports bindings + * 1) key is the dataType + * 2) the catchall symbol "*" can be used + * 3) selection will start with transport dataType and THEN go to "*" if needed + */ + transports = {}, + + // Avoid comment-prolog char sequence (trac-10098); must appease lint and evade compression + allTypes = "*/".concat( "*" ), + + // Anchor tag for parsing the document origin + originAnchor = document.createElement( "a" ); + +originAnchor.href = location.href; + +// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport +function addToPrefiltersOrTransports( structure ) { + + // dataTypeExpression is optional and defaults to "*" + return function( dataTypeExpression, func ) { + + if ( typeof dataTypeExpression !== "string" ) { + func = dataTypeExpression; + dataTypeExpression = "*"; + } + + var dataType, + i = 0, + dataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || []; + + if ( isFunction( func ) ) { + + // For each dataType in the dataTypeExpression + while ( ( dataType = dataTypes[ i++ ] ) ) { + + // Prepend if requested + if ( dataType[ 0 ] === "+" ) { + dataType = dataType.slice( 1 ) || "*"; + ( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func ); + + // Otherwise append + } else { + ( structure[ dataType ] = structure[ dataType ] || [] ).push( func ); + } + } + } + }; +} + +// Base inspection function for prefilters and transports +function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) { + + var inspected = {}, + seekingTransport = ( structure === transports ); + + function inspect( dataType ) { + var selected; + inspected[ dataType ] = true; + jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) { + var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR ); + if ( typeof dataTypeOrTransport === "string" && + !seekingTransport && !inspected[ dataTypeOrTransport ] ) { + + options.dataTypes.unshift( dataTypeOrTransport ); + inspect( dataTypeOrTransport ); + return false; + } else if ( seekingTransport ) { + return !( selected = dataTypeOrTransport ); + } + } ); + return selected; + } + + return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" ); +} + +// A special extend for ajax options +// that takes "flat" options (not to be deep extended) +// Fixes trac-9887 +function ajaxExtend( target, src ) { + var key, deep, + flatOptions = jQuery.ajaxSettings.flatOptions || {}; + + for ( key in src ) { + if ( src[ key ] !== undefined ) { + ( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ]; + } + } + if ( deep ) { + jQuery.extend( true, target, deep ); + } + + return target; +} + +/* Handles responses to an ajax request: + * - finds the right dataType (mediates between content-type and expected dataType) + * - returns the corresponding response + */ +function ajaxHandleResponses( s, jqXHR, responses ) { + + var ct, type, finalDataType, firstDataType, + contents = s.contents, + dataTypes = s.dataTypes; + + // Remove auto dataType and get content-type in the process + while ( dataTypes[ 0 ] === "*" ) { + dataTypes.shift(); + if ( ct === undefined ) { + ct = s.mimeType || jqXHR.getResponseHeader( "Content-Type" ); + } + } + + // Check if we're dealing with a known content-type + if ( ct ) { + for ( type in contents ) { + if ( contents[ type ] && contents[ type ].test( ct ) ) { + dataTypes.unshift( type ); + break; + } + } + } + + // Check to see if we have a response for the expected dataType + if ( dataTypes[ 0 ] in responses ) { + finalDataType = dataTypes[ 0 ]; + } else { + + // Try convertible dataTypes + for ( type in responses ) { + if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[ 0 ] ] ) { + finalDataType = type; + break; + } + if ( !firstDataType ) { + firstDataType = type; + } + } + + // Or just use first one + finalDataType = finalDataType || firstDataType; + } + + // If we found a dataType + // We add the dataType to the list if needed + // and return the corresponding response + if ( finalDataType ) { + if ( finalDataType !== dataTypes[ 0 ] ) { + dataTypes.unshift( finalDataType ); + } + return responses[ finalDataType ]; + } +} + +/* Chain conversions given the request and the original response + * Also sets the responseXXX fields on the jqXHR instance + */ +function ajaxConvert( s, response, jqXHR, isSuccess ) { + var conv2, current, conv, tmp, prev, + converters = {}, + + // Work with a copy of dataTypes in case we need to modify it for conversion + dataTypes = s.dataTypes.slice(); + + // Create converters map with lowercased keys + if ( dataTypes[ 1 ] ) { + for ( conv in s.converters ) { + converters[ conv.toLowerCase() ] = s.converters[ conv ]; + } + } + + current = dataTypes.shift(); + + // Convert to each sequential dataType + while ( current ) { + + if ( s.responseFields[ current ] ) { + jqXHR[ s.responseFields[ current ] ] = response; + } + + // Apply the dataFilter if provided + if ( !prev && isSuccess && s.dataFilter ) { + response = s.dataFilter( response, s.dataType ); + } + + prev = current; + current = dataTypes.shift(); + + if ( current ) { + + // There's only work to do if current dataType is non-auto + if ( current === "*" ) { + + current = prev; + + // Convert response if prev dataType is non-auto and differs from current + } else if ( prev !== "*" && prev !== current ) { + + // Seek a direct converter + conv = converters[ prev + " " + current ] || converters[ "* " + current ]; + + // If none found, seek a pair + if ( !conv ) { + for ( conv2 in converters ) { + + // If conv2 outputs current + tmp = conv2.split( " " ); + if ( tmp[ 1 ] === current ) { + + // If prev can be converted to accepted input + conv = converters[ prev + " " + tmp[ 0 ] ] || + converters[ "* " + tmp[ 0 ] ]; + if ( conv ) { + + // Condense equivalence converters + if ( conv === true ) { + conv = converters[ conv2 ]; + + // Otherwise, insert the intermediate dataType + } else if ( converters[ conv2 ] !== true ) { + current = tmp[ 0 ]; + dataTypes.unshift( tmp[ 1 ] ); + } + break; + } + } + } + } + + // Apply converter (if not an equivalence) + if ( conv !== true ) { + + // Unless errors are allowed to bubble, catch and return them + if ( conv && s.throws ) { + response = conv( response ); + } else { + try { + response = conv( response ); + } catch ( e ) { + return { + state: "parsererror", + error: conv ? e : "No conversion from " + prev + " to " + current + }; + } + } + } + } + } + } + + return { state: "success", data: response }; +} + +jQuery.extend( { + + // Counter for holding the number of active queries + active: 0, + + // Last-Modified header cache for next request + lastModified: {}, + etag: {}, + + ajaxSettings: { + url: location.href, + type: "GET", + isLocal: rlocalProtocol.test( location.protocol ), + global: true, + processData: true, + async: true, + contentType: "application/x-www-form-urlencoded; charset=UTF-8", + + /* + timeout: 0, + data: null, + dataType: null, + username: null, + password: null, + cache: null, + throws: false, + traditional: false, + headers: {}, + */ + + accepts: { + "*": allTypes, + text: "text/plain", + html: "text/html", + xml: "application/xml, text/xml", + json: "application/json, text/javascript" + }, + + contents: { + xml: /\bxml\b/, + html: /\bhtml/, + json: /\bjson\b/ + }, + + responseFields: { + xml: "responseXML", + text: "responseText", + json: "responseJSON" + }, + + // Data converters + // Keys separate source (or catchall "*") and destination types with a single space + converters: { + + // Convert anything to text + "* text": String, + + // Text to html (true = no transformation) + "text html": true, + + // Evaluate text as a json expression + "text json": JSON.parse, + + // Parse text as xml + "text xml": jQuery.parseXML + }, + + // For options that shouldn't be deep extended: + // you can add your own custom options here if + // and when you create one that shouldn't be + // deep extended (see ajaxExtend) + flatOptions: { + url: true, + context: true + } + }, + + // Creates a full fledged settings object into target + // with both ajaxSettings and settings fields. + // If target is omitted, writes into ajaxSettings. + ajaxSetup: function( target, settings ) { + return settings ? + + // Building a settings object + ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) : + + // Extending ajaxSettings + ajaxExtend( jQuery.ajaxSettings, target ); + }, + + ajaxPrefilter: addToPrefiltersOrTransports( prefilters ), + ajaxTransport: addToPrefiltersOrTransports( transports ), + + // Main method + ajax: function( url, options ) { + + // If url is an object, simulate pre-1.5 signature + if ( typeof url === "object" ) { + options = url; + url = undefined; + } + + // Force options to be an object + options = options || {}; + + var transport, + + // URL without anti-cache param + cacheURL, + + // Response headers + responseHeadersString, + responseHeaders, + + // timeout handle + timeoutTimer, + + // Url cleanup var + urlAnchor, + + // Request state (becomes false upon send and true upon completion) + completed, + + // To know if global events are to be dispatched + fireGlobals, + + // Loop variable + i, + + // uncached part of the url + uncached, + + // Create the final options object + s = jQuery.ajaxSetup( {}, options ), + + // Callbacks context + callbackContext = s.context || s, + + // Context for global events is callbackContext if it is a DOM node or jQuery collection + globalEventContext = s.context && + ( callbackContext.nodeType || callbackContext.jquery ) ? + jQuery( callbackContext ) : + jQuery.event, + + // Deferreds + deferred = jQuery.Deferred(), + completeDeferred = jQuery.Callbacks( "once memory" ), + + // Status-dependent callbacks + statusCode = s.statusCode || {}, + + // Headers (they are sent all at once) + requestHeaders = {}, + requestHeadersNames = {}, + + // Default abort message + strAbort = "canceled", + + // Fake xhr + jqXHR = { + readyState: 0, + + // Builds headers hashtable if needed + getResponseHeader: function( key ) { + var match; + if ( completed ) { + if ( !responseHeaders ) { + responseHeaders = {}; + while ( ( match = rheaders.exec( responseHeadersString ) ) ) { + responseHeaders[ match[ 1 ].toLowerCase() + " " ] = + ( responseHeaders[ match[ 1 ].toLowerCase() + " " ] || [] ) + .concat( match[ 2 ] ); + } + } + match = responseHeaders[ key.toLowerCase() + " " ]; + } + return match == null ? null : match.join( ", " ); + }, + + // Raw string + getAllResponseHeaders: function() { + return completed ? responseHeadersString : null; + }, + + // Caches the header + setRequestHeader: function( name, value ) { + if ( completed == null ) { + name = requestHeadersNames[ name.toLowerCase() ] = + requestHeadersNames[ name.toLowerCase() ] || name; + requestHeaders[ name ] = value; + } + return this; + }, + + // Overrides response content-type header + overrideMimeType: function( type ) { + if ( completed == null ) { + s.mimeType = type; + } + return this; + }, + + // Status-dependent callbacks + statusCode: function( map ) { + var code; + if ( map ) { + if ( completed ) { + + // Execute the appropriate callbacks + jqXHR.always( map[ jqXHR.status ] ); + } else { + + // Lazy-add the new callbacks in a way that preserves old ones + for ( code in map ) { + statusCode[ code ] = [ statusCode[ code ], map[ code ] ]; + } + } + } + return this; + }, + + // Cancel the request + abort: function( statusText ) { + var finalText = statusText || strAbort; + if ( transport ) { + transport.abort( finalText ); + } + done( 0, finalText ); + return this; + } + }; + + // Attach deferreds + deferred.promise( jqXHR ); + + // Add protocol if not provided (prefilters might expect it) + // Handle falsy url in the settings object (trac-10093: consistency with old signature) + // We also use the url parameter if available + s.url = ( ( url || s.url || location.href ) + "" ) + .replace( rprotocol, location.protocol + "//" ); + + // Alias method option to type as per ticket trac-12004 + s.type = options.method || options.type || s.method || s.type; + + // Extract dataTypes list + s.dataTypes = ( s.dataType || "*" ).toLowerCase().match( rnothtmlwhite ) || [ "" ]; + + // A cross-domain request is in order when the origin doesn't match the current origin. + if ( s.crossDomain == null ) { + urlAnchor = document.createElement( "a" ); + + // Support: IE <=8 - 11, Edge 12 - 15 + // IE throws exception on accessing the href property if url is malformed, + // e.g. http://example.com:80x/ + try { + urlAnchor.href = s.url; + + // Support: IE <=8 - 11 only + // Anchor's host property isn't correctly set when s.url is relative + urlAnchor.href = urlAnchor.href; + s.crossDomain = originAnchor.protocol + "//" + originAnchor.host !== + urlAnchor.protocol + "//" + urlAnchor.host; + } catch ( e ) { + + // If there is an error parsing the URL, assume it is crossDomain, + // it can be rejected by the transport if it is invalid + s.crossDomain = true; + } + } + + // Convert data if not already a string + if ( s.data && s.processData && typeof s.data !== "string" ) { + s.data = jQuery.param( s.data, s.traditional ); + } + + // Apply prefilters + inspectPrefiltersOrTransports( prefilters, s, options, jqXHR ); + + // If request was aborted inside a prefilter, stop there + if ( completed ) { + return jqXHR; + } + + // We can fire global events as of now if asked to + // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (trac-15118) + fireGlobals = jQuery.event && s.global; + + // Watch for a new set of requests + if ( fireGlobals && jQuery.active++ === 0 ) { + jQuery.event.trigger( "ajaxStart" ); + } + + // Uppercase the type + s.type = s.type.toUpperCase(); + + // Determine if request has content + s.hasContent = !rnoContent.test( s.type ); + + // Save the URL in case we're toying with the If-Modified-Since + // and/or If-None-Match header later on + // Remove hash to simplify url manipulation + cacheURL = s.url.replace( rhash, "" ); + + // More options handling for requests with no content + if ( !s.hasContent ) { + + // Remember the hash so we can put it back + uncached = s.url.slice( cacheURL.length ); + + // If data is available and should be processed, append data to url + if ( s.data && ( s.processData || typeof s.data === "string" ) ) { + cacheURL += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data; + + // trac-9682: remove data so that it's not used in an eventual retry + delete s.data; + } + + // Add or update anti-cache param if needed + if ( s.cache === false ) { + cacheURL = cacheURL.replace( rantiCache, "$1" ); + uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce.guid++ ) + + uncached; + } + + // Put hash and anti-cache on the URL that will be requested (gh-1732) + s.url = cacheURL + uncached; + + // Change '%20' to '+' if this is encoded form body content (gh-2658) + } else if ( s.data && s.processData && + ( s.contentType || "" ).indexOf( "application/x-www-form-urlencoded" ) === 0 ) { + s.data = s.data.replace( r20, "+" ); + } + + // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. + if ( s.ifModified ) { + if ( jQuery.lastModified[ cacheURL ] ) { + jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] ); + } + if ( jQuery.etag[ cacheURL ] ) { + jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] ); + } + } + + // Set the correct header, if data is being sent + if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) { + jqXHR.setRequestHeader( "Content-Type", s.contentType ); + } + + // Set the Accepts header for the server, depending on the dataType + jqXHR.setRequestHeader( + "Accept", + s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ? + s.accepts[ s.dataTypes[ 0 ] ] + + ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) : + s.accepts[ "*" ] + ); + + // Check for headers option + for ( i in s.headers ) { + jqXHR.setRequestHeader( i, s.headers[ i ] ); + } + + // Allow custom headers/mimetypes and early abort + if ( s.beforeSend && + ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) { + + // Abort if not done already and return + return jqXHR.abort(); + } + + // Aborting is no longer a cancellation + strAbort = "abort"; + + // Install callbacks on deferreds + completeDeferred.add( s.complete ); + jqXHR.done( s.success ); + jqXHR.fail( s.error ); + + // Get transport + transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR ); + + // If no transport, we auto-abort + if ( !transport ) { + done( -1, "No Transport" ); + } else { + jqXHR.readyState = 1; + + // Send global event + if ( fireGlobals ) { + globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] ); + } + + // If request was aborted inside ajaxSend, stop there + if ( completed ) { + return jqXHR; + } + + // Timeout + if ( s.async && s.timeout > 0 ) { + timeoutTimer = window.setTimeout( function() { + jqXHR.abort( "timeout" ); + }, s.timeout ); + } + + try { + completed = false; + transport.send( requestHeaders, done ); + } catch ( e ) { + + // Rethrow post-completion exceptions + if ( completed ) { + throw e; + } + + // Propagate others as results + done( -1, e ); + } + } + + // Callback for when everything is done + function done( status, nativeStatusText, responses, headers ) { + var isSuccess, success, error, response, modified, + statusText = nativeStatusText; + + // Ignore repeat invocations + if ( completed ) { + return; + } + + completed = true; + + // Clear timeout if it exists + if ( timeoutTimer ) { + window.clearTimeout( timeoutTimer ); + } + + // Dereference transport for early garbage collection + // (no matter how long the jqXHR object will be used) + transport = undefined; + + // Cache response headers + responseHeadersString = headers || ""; + + // Set readyState + jqXHR.readyState = status > 0 ? 4 : 0; + + // Determine if successful + isSuccess = status >= 200 && status < 300 || status === 304; + + // Get response data + if ( responses ) { + response = ajaxHandleResponses( s, jqXHR, responses ); + } + + // Use a noop converter for missing script but not if jsonp + if ( !isSuccess && + jQuery.inArray( "script", s.dataTypes ) > -1 && + jQuery.inArray( "json", s.dataTypes ) < 0 ) { + s.converters[ "text script" ] = function() {}; + } + + // Convert no matter what (that way responseXXX fields are always set) + response = ajaxConvert( s, response, jqXHR, isSuccess ); + + // If successful, handle type chaining + if ( isSuccess ) { + + // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. + if ( s.ifModified ) { + modified = jqXHR.getResponseHeader( "Last-Modified" ); + if ( modified ) { + jQuery.lastModified[ cacheURL ] = modified; + } + modified = jqXHR.getResponseHeader( "etag" ); + if ( modified ) { + jQuery.etag[ cacheURL ] = modified; + } + } + + // if no content + if ( status === 204 || s.type === "HEAD" ) { + statusText = "nocontent"; + + // if not modified + } else if ( status === 304 ) { + statusText = "notmodified"; + + // If we have data, let's convert it + } else { + statusText = response.state; + success = response.data; + error = response.error; + isSuccess = !error; + } + } else { + + // Extract error from statusText and normalize for non-aborts + error = statusText; + if ( status || !statusText ) { + statusText = "error"; + if ( status < 0 ) { + status = 0; + } + } + } + + // Set data for the fake xhr object + jqXHR.status = status; + jqXHR.statusText = ( nativeStatusText || statusText ) + ""; + + // Success/Error + if ( isSuccess ) { + deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] ); + } else { + deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] ); + } + + // Status-dependent callbacks + jqXHR.statusCode( statusCode ); + statusCode = undefined; + + if ( fireGlobals ) { + globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError", + [ jqXHR, s, isSuccess ? success : error ] ); + } + + // Complete + completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] ); + + if ( fireGlobals ) { + globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] ); + + // Handle the global AJAX counter + if ( !( --jQuery.active ) ) { + jQuery.event.trigger( "ajaxStop" ); + } + } + } + + return jqXHR; + }, + + getJSON: function( url, data, callback ) { + return jQuery.get( url, data, callback, "json" ); + }, + + getScript: function( url, callback ) { + return jQuery.get( url, undefined, callback, "script" ); + } +} ); + +jQuery.each( [ "get", "post" ], function( _i, method ) { + jQuery[ method ] = function( url, data, callback, type ) { + + // Shift arguments if data argument was omitted + if ( isFunction( data ) ) { + type = type || callback; + callback = data; + data = undefined; + } + + // The url can be an options object (which then must have .url) + return jQuery.ajax( jQuery.extend( { + url: url, + type: method, + dataType: type, + data: data, + success: callback + }, jQuery.isPlainObject( url ) && url ) ); + }; +} ); + +jQuery.ajaxPrefilter( function( s ) { + var i; + for ( i in s.headers ) { + if ( i.toLowerCase() === "content-type" ) { + s.contentType = s.headers[ i ] || ""; + } + } +} ); + + +jQuery._evalUrl = function( url, options, doc ) { + return jQuery.ajax( { + url: url, + + // Make this explicit, since user can override this through ajaxSetup (trac-11264) + type: "GET", + dataType: "script", + cache: true, + async: false, + global: false, + + // Only evaluate the response if it is successful (gh-4126) + // dataFilter is not invoked for failure responses, so using it instead + // of the default converter is kludgy but it works. + converters: { + "text script": function() {} + }, + dataFilter: function( response ) { + jQuery.globalEval( response, options, doc ); + } + } ); +}; + + +jQuery.fn.extend( { + wrapAll: function( html ) { + var wrap; + + if ( this[ 0 ] ) { + if ( isFunction( html ) ) { + html = html.call( this[ 0 ] ); + } + + // The elements to wrap the target around + wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true ); + + if ( this[ 0 ].parentNode ) { + wrap.insertBefore( this[ 0 ] ); + } + + wrap.map( function() { + var elem = this; + + while ( elem.firstElementChild ) { + elem = elem.firstElementChild; + } + + return elem; + } ).append( this ); + } + + return this; + }, + + wrapInner: function( html ) { + if ( isFunction( html ) ) { + return this.each( function( i ) { + jQuery( this ).wrapInner( html.call( this, i ) ); + } ); + } + + return this.each( function() { + var self = jQuery( this ), + contents = self.contents(); + + if ( contents.length ) { + contents.wrapAll( html ); + + } else { + self.append( html ); + } + } ); + }, + + wrap: function( html ) { + var htmlIsFunction = isFunction( html ); + + return this.each( function( i ) { + jQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html ); + } ); + }, + + unwrap: function( selector ) { + this.parent( selector ).not( "body" ).each( function() { + jQuery( this ).replaceWith( this.childNodes ); + } ); + return this; + } +} ); + + +jQuery.expr.pseudos.hidden = function( elem ) { + return !jQuery.expr.pseudos.visible( elem ); +}; +jQuery.expr.pseudos.visible = function( elem ) { + return !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length ); +}; + + + + +jQuery.ajaxSettings.xhr = function() { + try { + return new window.XMLHttpRequest(); + } catch ( e ) {} +}; + +var xhrSuccessStatus = { + + // File protocol always yields status code 0, assume 200 + 0: 200, + + // Support: IE <=9 only + // trac-1450: sometimes IE returns 1223 when it should be 204 + 1223: 204 + }, + xhrSupported = jQuery.ajaxSettings.xhr(); + +support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported ); +support.ajax = xhrSupported = !!xhrSupported; + +jQuery.ajaxTransport( function( options ) { + var callback, errorCallback; + + // Cross domain only allowed if supported through XMLHttpRequest + if ( support.cors || xhrSupported && !options.crossDomain ) { + return { + send: function( headers, complete ) { + var i, + xhr = options.xhr(); + + xhr.open( + options.type, + options.url, + options.async, + options.username, + options.password + ); + + // Apply custom fields if provided + if ( options.xhrFields ) { + for ( i in options.xhrFields ) { + xhr[ i ] = options.xhrFields[ i ]; + } + } + + // Override mime type if needed + if ( options.mimeType && xhr.overrideMimeType ) { + xhr.overrideMimeType( options.mimeType ); + } + + // X-Requested-With header + // For cross-domain requests, seeing as conditions for a preflight are + // akin to a jigsaw puzzle, we simply never set it to be sure. + // (it can always be set on a per-request basis or even using ajaxSetup) + // For same-domain requests, won't change header if already provided. + if ( !options.crossDomain && !headers[ "X-Requested-With" ] ) { + headers[ "X-Requested-With" ] = "XMLHttpRequest"; + } + + // Set headers + for ( i in headers ) { + xhr.setRequestHeader( i, headers[ i ] ); + } + + // Callback + callback = function( type ) { + return function() { + if ( callback ) { + callback = errorCallback = xhr.onload = + xhr.onerror = xhr.onabort = xhr.ontimeout = + xhr.onreadystatechange = null; + + if ( type === "abort" ) { + xhr.abort(); + } else if ( type === "error" ) { + + // Support: IE <=9 only + // On a manual native abort, IE9 throws + // errors on any property access that is not readyState + if ( typeof xhr.status !== "number" ) { + complete( 0, "error" ); + } else { + complete( + + // File: protocol always yields status 0; see trac-8605, trac-14207 + xhr.status, + xhr.statusText + ); + } + } else { + complete( + xhrSuccessStatus[ xhr.status ] || xhr.status, + xhr.statusText, + + // Support: IE <=9 only + // IE9 has no XHR2 but throws on binary (trac-11426) + // For XHR2 non-text, let the caller handle it (gh-2498) + ( xhr.responseType || "text" ) !== "text" || + typeof xhr.responseText !== "string" ? + { binary: xhr.response } : + { text: xhr.responseText }, + xhr.getAllResponseHeaders() + ); + } + } + }; + }; + + // Listen to events + xhr.onload = callback(); + errorCallback = xhr.onerror = xhr.ontimeout = callback( "error" ); + + // Support: IE 9 only + // Use onreadystatechange to replace onabort + // to handle uncaught aborts + if ( xhr.onabort !== undefined ) { + xhr.onabort = errorCallback; + } else { + xhr.onreadystatechange = function() { + + // Check readyState before timeout as it changes + if ( xhr.readyState === 4 ) { + + // Allow onerror to be called first, + // but that will not handle a native abort + // Also, save errorCallback to a variable + // as xhr.onerror cannot be accessed + window.setTimeout( function() { + if ( callback ) { + errorCallback(); + } + } ); + } + }; + } + + // Create the abort callback + callback = callback( "abort" ); + + try { + + // Do send the request (this may raise an exception) + xhr.send( options.hasContent && options.data || null ); + } catch ( e ) { + + // trac-14683: Only rethrow if this hasn't been notified as an error yet + if ( callback ) { + throw e; + } + } + }, + + abort: function() { + if ( callback ) { + callback(); + } + } + }; + } +} ); + + + + +// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432) +jQuery.ajaxPrefilter( function( s ) { + if ( s.crossDomain ) { + s.contents.script = false; + } +} ); + +// Install script dataType +jQuery.ajaxSetup( { + accepts: { + script: "text/javascript, application/javascript, " + + "application/ecmascript, application/x-ecmascript" + }, + contents: { + script: /\b(?:java|ecma)script\b/ + }, + converters: { + "text script": function( text ) { + jQuery.globalEval( text ); + return text; + } + } +} ); + +// Handle cache's special case and crossDomain +jQuery.ajaxPrefilter( "script", function( s ) { + if ( s.cache === undefined ) { + s.cache = false; + } + if ( s.crossDomain ) { + s.type = "GET"; + } +} ); + +// Bind script tag hack transport +jQuery.ajaxTransport( "script", function( s ) { + + // This transport only deals with cross domain or forced-by-attrs requests + if ( s.crossDomain || s.scriptAttrs ) { + var script, callback; + return { + send: function( _, complete ) { + script = jQuery( "<script>" ) + .attr( s.scriptAttrs || {} ) + .prop( { charset: s.scriptCharset, src: s.url } ) + .on( "load error", callback = function( evt ) { + script.remove(); + callback = null; + if ( evt ) { + complete( evt.type === "error" ? 404 : 200, evt.type ); + } + } ); + + // Use native DOM manipulation to avoid our domManip AJAX trickery + document.head.appendChild( script[ 0 ] ); + }, + abort: function() { + if ( callback ) { + callback(); + } + } + }; + } +} ); + + + + +var oldCallbacks = [], + rjsonp = /(=)\?(?=&|$)|\?\?/; + +// Default jsonp settings +jQuery.ajaxSetup( { + jsonp: "callback", + jsonpCallback: function() { + var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( nonce.guid++ ) ); + this[ callback ] = true; + return callback; + } +} ); + +// Detect, normalize options and install callbacks for jsonp requests +jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) { + + var callbackName, overwritten, responseContainer, + jsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ? + "url" : + typeof s.data === "string" && + ( s.contentType || "" ) + .indexOf( "application/x-www-form-urlencoded" ) === 0 && + rjsonp.test( s.data ) && "data" + ); + + // Handle iff the expected data type is "jsonp" or we have a parameter to set + if ( jsonProp || s.dataTypes[ 0 ] === "jsonp" ) { + + // Get callback name, remembering preexisting value associated with it + callbackName = s.jsonpCallback = isFunction( s.jsonpCallback ) ? + s.jsonpCallback() : + s.jsonpCallback; + + // Insert callback into url or form data + if ( jsonProp ) { + s[ jsonProp ] = s[ jsonProp ].replace( rjsonp, "$1" + callbackName ); + } else if ( s.jsonp !== false ) { + s.url += ( rquery.test( s.url ) ? "&" : "?" ) + s.jsonp + "=" + callbackName; + } + + // Use data converter to retrieve json after script execution + s.converters[ "script json" ] = function() { + if ( !responseContainer ) { + jQuery.error( callbackName + " was not called" ); + } + return responseContainer[ 0 ]; + }; + + // Force json dataType + s.dataTypes[ 0 ] = "json"; + + // Install callback + overwritten = window[ callbackName ]; + window[ callbackName ] = function() { + responseContainer = arguments; + }; + + // Clean-up function (fires after converters) + jqXHR.always( function() { + + // If previous value didn't exist - remove it + if ( overwritten === undefined ) { + jQuery( window ).removeProp( callbackName ); + + // Otherwise restore preexisting value + } else { + window[ callbackName ] = overwritten; + } + + // Save back as free + if ( s[ callbackName ] ) { + + // Make sure that re-using the options doesn't screw things around + s.jsonpCallback = originalSettings.jsonpCallback; + + // Save the callback name for future use + oldCallbacks.push( callbackName ); + } + + // Call if it was a function and we have a response + if ( responseContainer && isFunction( overwritten ) ) { + overwritten( responseContainer[ 0 ] ); + } + + responseContainer = overwritten = undefined; + } ); + + // Delegate to script + return "script"; + } +} ); + + + + +// Support: Safari 8 only +// In Safari 8 documents created via document.implementation.createHTMLDocument +// collapse sibling forms: the second one becomes a child of the first one. +// Because of that, this security measure has to be disabled in Safari 8. +// https://bugs.webkit.org/show_bug.cgi?id=137337 +support.createHTMLDocument = ( function() { + var body = document.implementation.createHTMLDocument( "" ).body; + body.innerHTML = "<form></form><form></form>"; + return body.childNodes.length === 2; +} )(); + + +// Argument "data" should be string of html +// context (optional): If specified, the fragment will be created in this context, +// defaults to document +// keepScripts (optional): If true, will include scripts passed in the html string +jQuery.parseHTML = function( data, context, keepScripts ) { + if ( typeof data !== "string" ) { + return []; + } + if ( typeof context === "boolean" ) { + keepScripts = context; + context = false; + } + + var base, parsed, scripts; + + if ( !context ) { + + // Stop scripts or inline event handlers from being executed immediately + // by using document.implementation + if ( support.createHTMLDocument ) { + context = document.implementation.createHTMLDocument( "" ); + + // Set the base href for the created document + // so any parsed elements with URLs + // are based on the document's URL (gh-2965) + base = context.createElement( "base" ); + base.href = document.location.href; + context.head.appendChild( base ); + } else { + context = document; + } + } + + parsed = rsingleTag.exec( data ); + scripts = !keepScripts && []; + + // Single tag + if ( parsed ) { + return [ context.createElement( parsed[ 1 ] ) ]; + } + + parsed = buildFragment( [ data ], context, scripts ); + + if ( scripts && scripts.length ) { + jQuery( scripts ).remove(); + } + + return jQuery.merge( [], parsed.childNodes ); +}; + + +/** + * Load a url into a page + */ +jQuery.fn.load = function( url, params, callback ) { + var selector, type, response, + self = this, + off = url.indexOf( " " ); + + if ( off > -1 ) { + selector = stripAndCollapse( url.slice( off ) ); + url = url.slice( 0, off ); + } + + // If it's a function + if ( isFunction( params ) ) { + + // We assume that it's the callback + callback = params; + params = undefined; + + // Otherwise, build a param string + } else if ( params && typeof params === "object" ) { + type = "POST"; + } + + // If we have elements to modify, make the request + if ( self.length > 0 ) { + jQuery.ajax( { + url: url, + + // If "type" variable is undefined, then "GET" method will be used. + // Make value of this field explicit since + // user can override it through ajaxSetup method + type: type || "GET", + dataType: "html", + data: params + } ).done( function( responseText ) { + + // Save response for use in complete callback + response = arguments; + + self.html( selector ? + + // If a selector was specified, locate the right elements in a dummy div + // Exclude scripts to avoid IE 'Permission Denied' errors + jQuery( "<div>" ).append( jQuery.parseHTML( responseText ) ).find( selector ) : + + // Otherwise use the full result + responseText ); + + // If the request succeeds, this function gets "data", "status", "jqXHR" + // but they are ignored because response was set above. + // If it fails, this function gets "jqXHR", "status", "error" + } ).always( callback && function( jqXHR, status ) { + self.each( function() { + callback.apply( this, response || [ jqXHR.responseText, status, jqXHR ] ); + } ); + } ); + } + + return this; +}; + + + + +jQuery.expr.pseudos.animated = function( elem ) { + return jQuery.grep( jQuery.timers, function( fn ) { + return elem === fn.elem; + } ).length; +}; + + + + +jQuery.offset = { + setOffset: function( elem, options, i ) { + var curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition, + position = jQuery.css( elem, "position" ), + curElem = jQuery( elem ), + props = {}; + + // Set position first, in-case top/left are set even on static elem + if ( position === "static" ) { + elem.style.position = "relative"; + } + + curOffset = curElem.offset(); + curCSSTop = jQuery.css( elem, "top" ); + curCSSLeft = jQuery.css( elem, "left" ); + calculatePosition = ( position === "absolute" || position === "fixed" ) && + ( curCSSTop + curCSSLeft ).indexOf( "auto" ) > -1; + + // Need to be able to calculate position if either + // top or left is auto and position is either absolute or fixed + if ( calculatePosition ) { + curPosition = curElem.position(); + curTop = curPosition.top; + curLeft = curPosition.left; + + } else { + curTop = parseFloat( curCSSTop ) || 0; + curLeft = parseFloat( curCSSLeft ) || 0; + } + + if ( isFunction( options ) ) { + + // Use jQuery.extend here to allow modification of coordinates argument (gh-1848) + options = options.call( elem, i, jQuery.extend( {}, curOffset ) ); + } + + if ( options.top != null ) { + props.top = ( options.top - curOffset.top ) + curTop; + } + if ( options.left != null ) { + props.left = ( options.left - curOffset.left ) + curLeft; + } + + if ( "using" in options ) { + options.using.call( elem, props ); + + } else { + curElem.css( props ); + } + } +}; + +jQuery.fn.extend( { + + // offset() relates an element's border box to the document origin + offset: function( options ) { + + // Preserve chaining for setter + if ( arguments.length ) { + return options === undefined ? + this : + this.each( function( i ) { + jQuery.offset.setOffset( this, options, i ); + } ); + } + + var rect, win, + elem = this[ 0 ]; + + if ( !elem ) { + return; + } + + // Return zeros for disconnected and hidden (display: none) elements (gh-2310) + // Support: IE <=11 only + // Running getBoundingClientRect on a + // disconnected node in IE throws an error + if ( !elem.getClientRects().length ) { + return { top: 0, left: 0 }; + } + + // Get document-relative position by adding viewport scroll to viewport-relative gBCR + rect = elem.getBoundingClientRect(); + win = elem.ownerDocument.defaultView; + return { + top: rect.top + win.pageYOffset, + left: rect.left + win.pageXOffset + }; + }, + + // position() relates an element's margin box to its offset parent's padding box + // This corresponds to the behavior of CSS absolute positioning + position: function() { + if ( !this[ 0 ] ) { + return; + } + + var offsetParent, offset, doc, + elem = this[ 0 ], + parentOffset = { top: 0, left: 0 }; + + // position:fixed elements are offset from the viewport, which itself always has zero offset + if ( jQuery.css( elem, "position" ) === "fixed" ) { + + // Assume position:fixed implies availability of getBoundingClientRect + offset = elem.getBoundingClientRect(); + + } else { + offset = this.offset(); + + // Account for the *real* offset parent, which can be the document or its root element + // when a statically positioned element is identified + doc = elem.ownerDocument; + offsetParent = elem.offsetParent || doc.documentElement; + while ( offsetParent && + ( offsetParent === doc.body || offsetParent === doc.documentElement ) && + jQuery.css( offsetParent, "position" ) === "static" ) { + + offsetParent = offsetParent.parentNode; + } + if ( offsetParent && offsetParent !== elem && offsetParent.nodeType === 1 ) { + + // Incorporate borders into its offset, since they are outside its content origin + parentOffset = jQuery( offsetParent ).offset(); + parentOffset.top += jQuery.css( offsetParent, "borderTopWidth", true ); + parentOffset.left += jQuery.css( offsetParent, "borderLeftWidth", true ); + } + } + + // Subtract parent offsets and element margins + return { + top: offset.top - parentOffset.top - jQuery.css( elem, "marginTop", true ), + left: offset.left - parentOffset.left - jQuery.css( elem, "marginLeft", true ) + }; + }, + + // This method will return documentElement in the following cases: + // 1) For the element inside the iframe without offsetParent, this method will return + // documentElement of the parent window + // 2) For the hidden or detached element + // 3) For body or html element, i.e. in case of the html node - it will return itself + // + // but those exceptions were never presented as a real life use-cases + // and might be considered as more preferable results. + // + // This logic, however, is not guaranteed and can change at any point in the future + offsetParent: function() { + return this.map( function() { + var offsetParent = this.offsetParent; + + while ( offsetParent && jQuery.css( offsetParent, "position" ) === "static" ) { + offsetParent = offsetParent.offsetParent; + } + + return offsetParent || documentElement; + } ); + } +} ); + +// Create scrollLeft and scrollTop methods +jQuery.each( { scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function( method, prop ) { + var top = "pageYOffset" === prop; + + jQuery.fn[ method ] = function( val ) { + return access( this, function( elem, method, val ) { + + // Coalesce documents and windows + var win; + if ( isWindow( elem ) ) { + win = elem; + } else if ( elem.nodeType === 9 ) { + win = elem.defaultView; + } + + if ( val === undefined ) { + return win ? win[ prop ] : elem[ method ]; + } + + if ( win ) { + win.scrollTo( + !top ? val : win.pageXOffset, + top ? val : win.pageYOffset + ); + + } else { + elem[ method ] = val; + } + }, method, val, arguments.length ); + }; +} ); + +// Support: Safari <=7 - 9.1, Chrome <=37 - 49 +// Add the top/left cssHooks using jQuery.fn.position +// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084 +// Blink bug: https://bugs.chromium.org/p/chromium/issues/detail?id=589347 +// getComputedStyle returns percent when specified for top/left/bottom/right; +// rather than make the css module depend on the offset module, just check for it here +jQuery.each( [ "top", "left" ], function( _i, prop ) { + jQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition, + function( elem, computed ) { + if ( computed ) { + computed = curCSS( elem, prop ); + + // If curCSS returns percentage, fallback to offset + return rnumnonpx.test( computed ) ? + jQuery( elem ).position()[ prop ] + "px" : + computed; + } + } + ); +} ); + + +// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods +jQuery.each( { Height: "height", Width: "width" }, function( name, type ) { + jQuery.each( { + padding: "inner" + name, + content: type, + "": "outer" + name + }, function( defaultExtra, funcName ) { + + // Margin is only for outerHeight, outerWidth + jQuery.fn[ funcName ] = function( margin, value ) { + var chainable = arguments.length && ( defaultExtra || typeof margin !== "boolean" ), + extra = defaultExtra || ( margin === true || value === true ? "margin" : "border" ); + + return access( this, function( elem, type, value ) { + var doc; + + if ( isWindow( elem ) ) { + + // $( window ).outerWidth/Height return w/h including scrollbars (gh-1729) + return funcName.indexOf( "outer" ) === 0 ? + elem[ "inner" + name ] : + elem.document.documentElement[ "client" + name ]; + } + + // Get document width or height + if ( elem.nodeType === 9 ) { + doc = elem.documentElement; + + // Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height], + // whichever is greatest + return Math.max( + elem.body[ "scroll" + name ], doc[ "scroll" + name ], + elem.body[ "offset" + name ], doc[ "offset" + name ], + doc[ "client" + name ] + ); + } + + return value === undefined ? + + // Get width or height on the element, requesting but not forcing parseFloat + jQuery.css( elem, type, extra ) : + + // Set width or height on the element + jQuery.style( elem, type, value, extra ); + }, type, chainable ? margin : undefined, chainable ); + }; + } ); +} ); + + +jQuery.each( [ + "ajaxStart", + "ajaxStop", + "ajaxComplete", + "ajaxError", + "ajaxSuccess", + "ajaxSend" +], function( _i, type ) { + jQuery.fn[ type ] = function( fn ) { + return this.on( type, fn ); + }; +} ); + + + + +jQuery.fn.extend( { + + bind: function( types, data, fn ) { + return this.on( types, null, data, fn ); + }, + unbind: function( types, fn ) { + return this.off( types, null, fn ); + }, + + delegate: function( selector, types, data, fn ) { + return this.on( types, selector, data, fn ); + }, + undelegate: function( selector, types, fn ) { + + // ( namespace ) or ( selector, types [, fn] ) + return arguments.length === 1 ? + this.off( selector, "**" ) : + this.off( types, selector || "**", fn ); + }, + + hover: function( fnOver, fnOut ) { + return this + .on( "mouseenter", fnOver ) + .on( "mouseleave", fnOut || fnOver ); + } +} ); + +jQuery.each( + ( "blur focus focusin focusout resize scroll click dblclick " + + "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " + + "change select submit keydown keypress keyup contextmenu" ).split( " " ), + function( _i, name ) { + + // Handle event binding + jQuery.fn[ name ] = function( data, fn ) { + return arguments.length > 0 ? + this.on( name, null, data, fn ) : + this.trigger( name ); + }; + } +); + + + + +// Support: Android <=4.0 only +// Make sure we trim BOM and NBSP +// Require that the "whitespace run" starts from a non-whitespace +// to avoid O(N^2) behavior when the engine would try matching "\s+$" at each space position. +var rtrim = /^[\s\uFEFF\xA0]+|([^\s\uFEFF\xA0])[\s\uFEFF\xA0]+$/g; + +// Bind a function to a context, optionally partially applying any +// arguments. +// jQuery.proxy is deprecated to promote standards (specifically Function#bind) +// However, it is not slated for removal any time soon +jQuery.proxy = function( fn, context ) { + var tmp, args, proxy; + + if ( typeof context === "string" ) { + tmp = fn[ context ]; + context = fn; + fn = tmp; + } + + // Quick check to determine if target is callable, in the spec + // this throws a TypeError, but we will just return undefined. + if ( !isFunction( fn ) ) { + return undefined; + } + + // Simulated bind + args = slice.call( arguments, 2 ); + proxy = function() { + return fn.apply( context || this, args.concat( slice.call( arguments ) ) ); + }; + + // Set the guid of unique handler to the same of original handler, so it can be removed + proxy.guid = fn.guid = fn.guid || jQuery.guid++; + + return proxy; +}; + +jQuery.holdReady = function( hold ) { + if ( hold ) { + jQuery.readyWait++; + } else { + jQuery.ready( true ); + } +}; +jQuery.isArray = Array.isArray; +jQuery.parseJSON = JSON.parse; +jQuery.nodeName = nodeName; +jQuery.isFunction = isFunction; +jQuery.isWindow = isWindow; +jQuery.camelCase = camelCase; +jQuery.type = toType; + +jQuery.now = Date.now; + +jQuery.isNumeric = function( obj ) { + + // As of jQuery 3.0, isNumeric is limited to + // strings and numbers (primitives or objects) + // that can be coerced to finite numbers (gh-2662) + var type = jQuery.type( obj ); + return ( type === "number" || type === "string" ) && + + // parseFloat NaNs numeric-cast false positives ("") + // ...but misinterprets leading-number strings, particularly hex literals ("0x...") + // subtraction forces infinities to NaN + !isNaN( obj - parseFloat( obj ) ); +}; + +jQuery.trim = function( text ) { + return text == null ? + "" : + ( text + "" ).replace( rtrim, "$1" ); +}; + + + +// Register as a named AMD module, since jQuery can be concatenated with other +// files that may use define, but not via a proper concatenation script that +// understands anonymous AMD modules. A named AMD is safest and most robust +// way to register. Lowercase jquery is used because AMD module names are +// derived from file names, and jQuery is normally delivered in a lowercase +// file name. Do this after creating the global so that if an AMD module wants +// to call noConflict to hide this version of jQuery, it will work. + +// Note that for maximum portability, libraries that are not jQuery should +// declare themselves as anonymous modules, and avoid setting a global if an +// AMD loader is present. jQuery is a special case. For more information, see +// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon + +if ( typeof define === "function" && define.amd ) { + define( "jquery", [], function() { + return jQuery; + } ); +} + + + + +var + + // Map over jQuery in case of overwrite + _jQuery = window.jQuery, + + // Map over the $ in case of overwrite + _$ = window.$; + +jQuery.noConflict = function( deep ) { + if ( window.$ === jQuery ) { + window.$ = _$; + } + + if ( deep && window.jQuery === jQuery ) { + window.jQuery = _jQuery; + } + + return jQuery; +}; + +// Expose jQuery and $ identifiers, even in AMD +// (trac-7102#comment:10, https://github.com/jquery/jquery/pull/557) +// and CommonJS for browser emulators (trac-13566) +if ( typeof noGlobal === "undefined" ) { + window.jQuery = window.$ = jQuery; +} + + + + +return jQuery; +} ); diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/jquery/jquery.min.js b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/jquery/jquery.min.js new file mode 100644 index 0000000000..7f37b5d991 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/jquery/jquery.min.js @@ -0,0 +1,2 @@ +/*! jQuery v3.7.1 | (c) OpenJS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(ie,e){"use strict";var oe=[],r=Object.getPrototypeOf,ae=oe.slice,g=oe.flat?function(e){return oe.flat.call(e)}:function(e){return oe.concat.apply([],e)},s=oe.push,se=oe.indexOf,n={},i=n.toString,ue=n.hasOwnProperty,o=ue.toString,a=o.call(Object),le={},v=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},y=function(e){return null!=e&&e===e.window},C=ie.document,u={type:!0,src:!0,nonce:!0,noModule:!0};function m(e,t,n){var r,i,o=(n=n||C).createElement("script");if(o.text=e,t)for(r in u)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function x(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[i.call(e)]||"object":typeof e}var t="3.7.1",l=/HTML$/i,ce=function(e,t){return new ce.fn.init(e,t)};function c(e){var t=!!e&&"length"in e&&e.length,n=x(e);return!v(e)&&!y(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}function fe(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}ce.fn=ce.prototype={jquery:t,constructor:ce,length:0,toArray:function(){return ae.call(this)},get:function(e){return null==e?ae.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=ce.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return ce.each(this,e)},map:function(n){return this.pushStack(ce.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(ae.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(ce.grep(this,function(e,t){return(t+1)%2}))},odd:function(){return this.pushStack(ce.grep(this,function(e,t){return t%2}))},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:s,sort:oe.sort,splice:oe.splice},ce.extend=ce.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||v(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(ce.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||ce.isPlainObject(n)?n:{},i=!1,a[t]=ce.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},ce.extend({expando:"jQuery"+(t+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==i.call(e))&&(!(t=r(e))||"function"==typeof(n=ue.call(t,"constructor")&&t.constructor)&&o.call(n)===a)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t,n){m(e,{nonce:t&&t.nonce},n)},each:function(e,t){var n,r=0;if(c(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},text:function(e){var t,n="",r=0,i=e.nodeType;if(!i)while(t=e[r++])n+=ce.text(t);return 1===i||11===i?e.textContent:9===i?e.documentElement.textContent:3===i||4===i?e.nodeValue:n},makeArray:function(e,t){var n=t||[];return null!=e&&(c(Object(e))?ce.merge(n,"string"==typeof e?[e]:e):s.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:se.call(t,e,n)},isXMLDoc:function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!l.test(t||n&&n.nodeName||"HTML")},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(c(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g(a)},guid:1,support:le}),"function"==typeof Symbol&&(ce.fn[Symbol.iterator]=oe[Symbol.iterator]),ce.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var pe=oe.pop,de=oe.sort,he=oe.splice,ge="[\\x20\\t\\r\\n\\f]",ve=new RegExp("^"+ge+"+|((?:^|[^\\\\])(?:\\\\.)*)"+ge+"+$","g");ce.contains=function(e,t){var n=t&&t.parentNode;return e===n||!(!n||1!==n.nodeType||!(e.contains?e.contains(n):e.compareDocumentPosition&&16&e.compareDocumentPosition(n)))};var f=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g;function p(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e}ce.escapeSelector=function(e){return(e+"").replace(f,p)};var ye=C,me=s;!function(){var e,b,w,o,a,T,r,C,d,i,k=me,S=ce.expando,E=0,n=0,s=W(),c=W(),u=W(),h=W(),l=function(e,t){return e===t&&(a=!0),0},f="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",t="(?:\\\\[\\da-fA-F]{1,6}"+ge+"?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",p="\\["+ge+"*("+t+")(?:"+ge+"*([*^$|!~]?=)"+ge+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+t+"))|)"+ge+"*\\]",g=":("+t+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+p+")*)|.*)\\)|)",v=new RegExp(ge+"+","g"),y=new RegExp("^"+ge+"*,"+ge+"*"),m=new RegExp("^"+ge+"*([>+~]|"+ge+")"+ge+"*"),x=new RegExp(ge+"|>"),j=new RegExp(g),A=new RegExp("^"+t+"$"),D={ID:new RegExp("^#("+t+")"),CLASS:new RegExp("^\\.("+t+")"),TAG:new RegExp("^("+t+"|[*])"),ATTR:new RegExp("^"+p),PSEUDO:new RegExp("^"+g),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+ge+"*(even|odd|(([+-]|)(\\d*)n|)"+ge+"*(?:([+-]|)"+ge+"*(\\d+)|))"+ge+"*\\)|)","i"),bool:new RegExp("^(?:"+f+")$","i"),needsContext:new RegExp("^"+ge+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+ge+"*((?:-\\d)?\\d*)"+ge+"*\\)|)(?=[^-]|$)","i")},N=/^(?:input|select|textarea|button)$/i,q=/^h\d$/i,L=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,H=/[+~]/,O=new RegExp("\\\\[\\da-fA-F]{1,6}"+ge+"?|\\\\([^\\r\\n\\f])","g"),P=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},M=function(){V()},R=J(function(e){return!0===e.disabled&&fe(e,"fieldset")},{dir:"parentNode",next:"legend"});try{k.apply(oe=ae.call(ye.childNodes),ye.childNodes),oe[ye.childNodes.length].nodeType}catch(e){k={apply:function(e,t){me.apply(e,ae.call(t))},call:function(e){me.apply(e,ae.call(arguments,1))}}}function I(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(V(e),e=e||T,C)){if(11!==p&&(u=L.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return k.call(n,a),n}else if(f&&(a=f.getElementById(i))&&I.contains(e,a)&&a.id===i)return k.call(n,a),n}else{if(u[2])return k.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&e.getElementsByClassName)return k.apply(n,e.getElementsByClassName(i)),n}if(!(h[t+" "]||d&&d.test(t))){if(c=t,f=e,1===p&&(x.test(t)||m.test(t))){(f=H.test(t)&&U(e.parentNode)||e)==e&&le.scope||((s=e.getAttribute("id"))?s=ce.escapeSelector(s):e.setAttribute("id",s=S)),o=(l=Y(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+Q(l[o]);c=l.join(",")}try{return k.apply(n,f.querySelectorAll(c)),n}catch(e){h(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return re(t.replace(ve,"$1"),e,n,r)}function W(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function F(e){return e[S]=!0,e}function $(e){var t=T.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function B(t){return function(e){return fe(e,"input")&&e.type===t}}function _(t){return function(e){return(fe(e,"input")||fe(e,"button"))&&e.type===t}}function z(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&R(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function X(a){return F(function(o){return o=+o,F(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function U(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}function V(e){var t,n=e?e.ownerDocument||e:ye;return n!=T&&9===n.nodeType&&n.documentElement&&(r=(T=n).documentElement,C=!ce.isXMLDoc(T),i=r.matches||r.webkitMatchesSelector||r.msMatchesSelector,r.msMatchesSelector&&ye!=T&&(t=T.defaultView)&&t.top!==t&&t.addEventListener("unload",M),le.getById=$(function(e){return r.appendChild(e).id=ce.expando,!T.getElementsByName||!T.getElementsByName(ce.expando).length}),le.disconnectedMatch=$(function(e){return i.call(e,"*")}),le.scope=$(function(){return T.querySelectorAll(":scope")}),le.cssHas=$(function(){try{return T.querySelector(":has(*,:jqfake)"),!1}catch(e){return!0}}),le.getById?(b.filter.ID=function(e){var t=e.replace(O,P);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&C){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(O,P);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&C){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):t.querySelectorAll(e)},b.find.CLASS=function(e,t){if("undefined"!=typeof t.getElementsByClassName&&C)return t.getElementsByClassName(e)},d=[],$(function(e){var t;r.appendChild(e).innerHTML="<a id='"+S+"' href='' disabled='disabled'></a><select id='"+S+"-\r\\' disabled='disabled'><option selected=''></option></select>",e.querySelectorAll("[selected]").length||d.push("\\["+ge+"*(?:value|"+f+")"),e.querySelectorAll("[id~="+S+"-]").length||d.push("~="),e.querySelectorAll("a#"+S+"+*").length||d.push(".#.+[+~]"),e.querySelectorAll(":checked").length||d.push(":checked"),(t=T.createElement("input")).setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),r.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&d.push(":enabled",":disabled"),(t=T.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||d.push("\\["+ge+"*name"+ge+"*="+ge+"*(?:''|\"\")")}),le.cssHas||d.push(":has"),d=d.length&&new RegExp(d.join("|")),l=function(e,t){if(e===t)return a=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!le.sortDetached&&t.compareDocumentPosition(e)===n?e===T||e.ownerDocument==ye&&I.contains(ye,e)?-1:t===T||t.ownerDocument==ye&&I.contains(ye,t)?1:o?se.call(o,e)-se.call(o,t):0:4&n?-1:1)}),T}for(e in I.matches=function(e,t){return I(e,null,null,t)},I.matchesSelector=function(e,t){if(V(e),C&&!h[t+" "]&&(!d||!d.test(t)))try{var n=i.call(e,t);if(n||le.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){h(t,!0)}return 0<I(t,T,null,[e]).length},I.contains=function(e,t){return(e.ownerDocument||e)!=T&&V(e),ce.contains(e,t)},I.attr=function(e,t){(e.ownerDocument||e)!=T&&V(e);var n=b.attrHandle[t.toLowerCase()],r=n&&ue.call(b.attrHandle,t.toLowerCase())?n(e,t,!C):void 0;return void 0!==r?r:e.getAttribute(t)},I.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},ce.uniqueSort=function(e){var t,n=[],r=0,i=0;if(a=!le.sortStable,o=!le.sortStable&&ae.call(e,0),de.call(e,l),a){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)he.call(e,n[r],1)}return o=null,e},ce.fn.uniqueSort=function(){return this.pushStack(ce.uniqueSort(ae.apply(this)))},(b=ce.expr={cacheLength:50,createPseudo:F,match:D,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(O,P),e[3]=(e[3]||e[4]||e[5]||"").replace(O,P),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||I.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&I.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return D.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&j.test(n)&&(t=Y(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(O,P).toLowerCase();return"*"===e?function(){return!0}:function(e){return fe(e,t)}},CLASS:function(e){var t=s[e+" "];return t||(t=new RegExp("(^|"+ge+")"+e+"("+ge+"|$)"))&&s(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=I.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1<t.indexOf(i):"$="===r?i&&t.slice(-i.length)===i:"~="===r?-1<(" "+t.replace(v," ")+" ").indexOf(i):"|="===r&&(t===i||t.slice(0,i.length+1)===i+"-"))}},CHILD:function(d,e,t,h,g){var v="nth"!==d.slice(0,3),y="last"!==d.slice(-4),m="of-type"===e;return 1===h&&0===g?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u=v!==y?"nextSibling":"previousSibling",l=e.parentNode,c=m&&e.nodeName.toLowerCase(),f=!n&&!m,p=!1;if(l){if(v){while(u){o=e;while(o=o[u])if(m?fe(o,c):1===o.nodeType)return!1;s=u="only"===d&&!s&&"nextSibling"}return!0}if(s=[y?l.firstChild:l.lastChild],y&&f){p=(a=(r=(i=l[S]||(l[S]={}))[d]||[])[0]===E&&r[1])&&r[2],o=a&&l.childNodes[a];while(o=++a&&o&&o[u]||(p=a=0)||s.pop())if(1===o.nodeType&&++p&&o===e){i[d]=[E,a,p];break}}else if(f&&(p=a=(r=(i=e[S]||(e[S]={}))[d]||[])[0]===E&&r[1]),!1===p)while(o=++a&&o&&o[u]||(p=a=0)||s.pop())if((m?fe(o,c):1===o.nodeType)&&++p&&(f&&((i=o[S]||(o[S]={}))[d]=[E,p]),o===e))break;return(p-=g)===h||p%h==0&&0<=p/h}}},PSEUDO:function(e,o){var t,a=b.pseudos[e]||b.setFilters[e.toLowerCase()]||I.error("unsupported pseudo: "+e);return a[S]?a(o):1<a.length?(t=[e,e,"",o],b.setFilters.hasOwnProperty(e.toLowerCase())?F(function(e,t){var n,r=a(e,o),i=r.length;while(i--)e[n=se.call(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:F(function(e){var r=[],i=[],s=ne(e.replace(ve,"$1"));return s[S]?F(function(e,t,n,r){var i,o=s(e,null,r,[]),a=e.length;while(a--)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:F(function(t){return function(e){return 0<I(t,e).length}}),contains:F(function(t){return t=t.replace(O,P),function(e){return-1<(e.textContent||ce.text(e)).indexOf(t)}}),lang:F(function(n){return A.test(n||"")||I.error("unsupported lang: "+n),n=n.replace(O,P).toLowerCase(),function(e){var t;do{if(t=C?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=ie.location&&ie.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===r},focus:function(e){return e===function(){try{return T.activeElement}catch(e){}}()&&T.hasFocus()&&!!(e.type||e.href||~e.tabIndex)},enabled:z(!1),disabled:z(!0),checked:function(e){return fe(e,"input")&&!!e.checked||fe(e,"option")&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return q.test(e.nodeName)},input:function(e){return N.test(e.nodeName)},button:function(e){return fe(e,"input")&&"button"===e.type||fe(e,"button")},text:function(e){var t;return fe(e,"input")&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:X(function(){return[0]}),last:X(function(e,t){return[t-1]}),eq:X(function(e,t,n){return[n<0?n+t:n]}),even:X(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:X(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:X(function(e,t,n){var r;for(r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:X(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=b.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[e]=B(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=_(e);function G(){}function Y(e,t){var n,r,i,o,a,s,u,l=c[e+" "];if(l)return t?0:l.slice(0);a=e,s=[],u=b.preFilter;while(a){for(o in n&&!(r=y.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=m.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace(ve," ")}),a=a.slice(n.length)),b.filter)!(r=D[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?I.error(e):c(e,s).slice(0)}function Q(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function J(a,e,t){var s=e.dir,u=e.next,l=u||s,c=t&&"parentNode"===l,f=n++;return e.first?function(e,t,n){while(e=e[s])if(1===e.nodeType||c)return a(e,t,n);return!1}:function(e,t,n){var r,i,o=[E,f];if(n){while(e=e[s])if((1===e.nodeType||c)&&a(e,t,n))return!0}else while(e=e[s])if(1===e.nodeType||c)if(i=e[S]||(e[S]={}),u&&fe(e,u))e=e[s]||e;else{if((r=i[l])&&r[0]===E&&r[1]===f)return o[2]=r[2];if((i[l]=o)[2]=a(e,t,n))return!0}return!1}}function K(i){return 1<i.length?function(e,t,n){var r=i.length;while(r--)if(!i[r](e,t,n))return!1;return!0}:i[0]}function Z(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function ee(d,h,g,v,y,e){return v&&!v[S]&&(v=ee(v)),y&&!y[S]&&(y=ee(y,e)),F(function(e,t,n,r){var i,o,a,s,u=[],l=[],c=t.length,f=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)I(e,t[r],n);return n}(h||"*",n.nodeType?[n]:n,[]),p=!d||!e&&h?f:Z(f,u,d,n,r);if(g?g(p,s=y||(e?d:c||v)?[]:t,n,r):s=p,v){i=Z(s,l),v(i,[],n,r),o=i.length;while(o--)(a=i[o])&&(s[l[o]]=!(p[l[o]]=a))}if(e){if(y||d){if(y){i=[],o=s.length;while(o--)(a=s[o])&&i.push(p[o]=a);y(null,s=[],i,r)}o=s.length;while(o--)(a=s[o])&&-1<(i=y?se.call(e,a):u[o])&&(e[i]=!(t[i]=a))}}else s=Z(s===t?s.splice(c,s.length):s),y?y(null,t,s,r):k.apply(t,s)})}function te(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.relative[" "],s=o?1:0,u=J(function(e){return e===i},a,!0),l=J(function(e){return-1<se.call(i,e)},a,!0),c=[function(e,t,n){var r=!o&&(n||t!=w)||((i=t).nodeType?u(e,t,n):l(e,t,n));return i=null,r}];s<r;s++)if(t=b.relative[e[s].type])c=[J(K(c),t)];else{if((t=b.filter[e[s].type].apply(null,e[s].matches))[S]){for(n=++s;n<r;n++)if(b.relative[e[n].type])break;return ee(1<s&&K(c),1<s&&Q(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(ve,"$1"),t,s<n&&te(e.slice(s,n)),n<r&&te(e=e.slice(n)),n<r&&Q(e))}c.push(t)}return K(c)}function ne(e,t){var n,v,y,m,x,r,i=[],o=[],a=u[e+" "];if(!a){t||(t=Y(e)),n=t.length;while(n--)(a=te(t[n]))[S]?i.push(a):o.push(a);(a=u(e,(v=o,m=0<(y=i).length,x=0<v.length,r=function(e,t,n,r,i){var o,a,s,u=0,l="0",c=e&&[],f=[],p=w,d=e||x&&b.find.TAG("*",i),h=E+=null==p?1:Math.random()||.1,g=d.length;for(i&&(w=t==T||t||i);l!==g&&null!=(o=d[l]);l++){if(x&&o){a=0,t||o.ownerDocument==T||(V(o),n=!C);while(s=v[a++])if(s(o,t||T,n)){k.call(r,o);break}i&&(E=h)}m&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,m&&l!==u){a=0;while(s=y[a++])s(c,f,t,n);if(e){if(0<u)while(l--)c[l]||f[l]||(f[l]=pe.call(r));f=Z(f)}k.apply(r,f),i&&!e&&0<f.length&&1<u+y.length&&ce.uniqueSort(r)}return i&&(E=h,w=p),c},m?F(r):r))).selector=e}return a}function re(e,t,n,r){var i,o,a,s,u,l="function"==typeof e&&e,c=!r&&Y(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&"ID"===(a=o[0]).type&&9===t.nodeType&&C&&b.relative[o[1].type]){if(!(t=(b.find.ID(a.matches[0].replace(O,P),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=D.needsContext.test(e)?0:o.length;while(i--){if(a=o[i],b.relative[s=a.type])break;if((u=b.find[s])&&(r=u(a.matches[0].replace(O,P),H.test(o[0].type)&&U(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&Q(o)))return k.apply(n,r),n;break}}}return(l||ne(e,c))(r,t,!C,n,!t||H.test(e)&&U(t.parentNode)||t),n}G.prototype=b.filters=b.pseudos,b.setFilters=new G,le.sortStable=S.split("").sort(l).join("")===S,V(),le.sortDetached=$(function(e){return 1&e.compareDocumentPosition(T.createElement("fieldset"))}),ce.find=I,ce.expr[":"]=ce.expr.pseudos,ce.unique=ce.uniqueSort,I.compile=ne,I.select=re,I.setDocument=V,I.tokenize=Y,I.escape=ce.escapeSelector,I.getText=ce.text,I.isXML=ce.isXMLDoc,I.selectors=ce.expr,I.support=ce.support,I.uniqueSort=ce.uniqueSort}();var d=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&ce(e).is(n))break;r.push(e)}return r},h=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},b=ce.expr.match.needsContext,w=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function T(e,n,r){return v(n)?ce.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?ce.grep(e,function(e){return e===n!==r}):"string"!=typeof n?ce.grep(e,function(e){return-1<se.call(n,e)!==r}):ce.filter(n,e,r)}ce.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?ce.find.matchesSelector(r,e)?[r]:[]:ce.find.matches(e,ce.grep(t,function(e){return 1===e.nodeType}))},ce.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(ce(e).filter(function(){for(t=0;t<r;t++)if(ce.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)ce.find(e,i[t],n);return 1<r?ce.uniqueSort(n):n},filter:function(e){return this.pushStack(T(this,e||[],!1))},not:function(e){return this.pushStack(T(this,e||[],!0))},is:function(e){return!!T(this,"string"==typeof e&&b.test(e)?ce(e):e||[],!1).length}});var k,S=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(ce.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||k,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:S.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof ce?t[0]:t,ce.merge(this,ce.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:C,!0)),w.test(r[1])&&ce.isPlainObject(t))for(r in t)v(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=C.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):v(e)?void 0!==n.ready?n.ready(e):e(ce):ce.makeArray(e,this)}).prototype=ce.fn,k=ce(C);var E=/^(?:parents|prev(?:Until|All))/,j={children:!0,contents:!0,next:!0,prev:!0};function A(e,t){while((e=e[t])&&1!==e.nodeType);return e}ce.fn.extend({has:function(e){var t=ce(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(ce.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&ce(e);if(!b.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&ce.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?ce.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?se.call(ce(e),this[0]):se.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(ce.uniqueSort(ce.merge(this.get(),ce(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),ce.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return d(e,"parentNode")},parentsUntil:function(e,t,n){return d(e,"parentNode",n)},next:function(e){return A(e,"nextSibling")},prev:function(e){return A(e,"previousSibling")},nextAll:function(e){return d(e,"nextSibling")},prevAll:function(e){return d(e,"previousSibling")},nextUntil:function(e,t,n){return d(e,"nextSibling",n)},prevUntil:function(e,t,n){return d(e,"previousSibling",n)},siblings:function(e){return h((e.parentNode||{}).firstChild,e)},children:function(e){return h(e.firstChild)},contents:function(e){return null!=e.contentDocument&&r(e.contentDocument)?e.contentDocument:(fe(e,"template")&&(e=e.content||e),ce.merge([],e.childNodes))}},function(r,i){ce.fn[r]=function(e,t){var n=ce.map(this,i,e);return"Until"!==r.slice(-5)&&(t=e),t&&"string"==typeof t&&(n=ce.filter(t,n)),1<this.length&&(j[r]||ce.uniqueSort(n),E.test(r)&&n.reverse()),this.pushStack(n)}});var D=/[^\x20\t\r\n\f]+/g;function N(e){return e}function q(e){throw e}function L(e,t,n,r){var i;try{e&&v(i=e.promise)?i.call(e).done(t).fail(n):e&&v(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}ce.Callbacks=function(r){var e,n;r="string"==typeof r?(e=r,n={},ce.each(e.match(D)||[],function(e,t){n[t]=!0}),n):ce.extend({},r);var i,t,o,a,s=[],u=[],l=-1,c=function(){for(a=a||r.once,o=i=!0;u.length;l=-1){t=u.shift();while(++l<s.length)!1===s[l].apply(t[0],t[1])&&r.stopOnFalse&&(l=s.length,t=!1)}r.memory||(t=!1),i=!1,a&&(s=t?[]:"")},f={add:function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){ce.each(e,function(e,t){v(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&"string"!==x(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return ce.each(arguments,function(e,t){var n;while(-1<(n=ce.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<ce.inArray(e,s):0<s.length},empty:function(){return s&&(s=[]),this},disable:function(){return a=u=[],s=t="",this},disabled:function(){return!s},lock:function(){return a=u=[],t||i||(s=t=""),this},locked:function(){return!!a},fireWith:function(e,t){return a||(t=[e,(t=t||[]).slice?t.slice():t],u.push(t),i||c()),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},ce.extend({Deferred:function(e){var o=[["notify","progress",ce.Callbacks("memory"),ce.Callbacks("memory"),2],["resolve","done",ce.Callbacks("once memory"),ce.Callbacks("once memory"),0,"resolved"],["reject","fail",ce.Callbacks("once memory"),ce.Callbacks("once memory"),1,"rejected"]],i="pending",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},"catch":function(e){return a.then(null,e)},pipe:function(){var i=arguments;return ce.Deferred(function(r){ce.each(o,function(e,t){var n=v(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&v(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+"With"](this,n?[e]:arguments)})}),i=null}).promise()},then:function(t,n,r){var u=0;function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(){var e,t;if(!(i<u)){if((e=a.apply(n,r))===o.promise())throw new TypeError("Thenable self-resolution");t=e&&("object"==typeof e||"function"==typeof e)&&e.then,v(t)?s?t.call(e,l(u,o,N,s),l(u,o,q,s)):(u++,t.call(e,l(u,o,N,s),l(u,o,q,s),l(u,o,N,o.notifyWith))):(a!==N&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}},t=s?e:function(){try{e()}catch(e){ce.Deferred.exceptionHook&&ce.Deferred.exceptionHook(e,t.error),u<=i+1&&(a!==q&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(ce.Deferred.getErrorHook?t.error=ce.Deferred.getErrorHook():ce.Deferred.getStackHook&&(t.error=ce.Deferred.getStackHook()),ie.setTimeout(t))}}return ce.Deferred(function(e){o[0][3].add(l(0,e,v(r)?r:N,e.notifyWith)),o[1][3].add(l(0,e,v(t)?t:N)),o[2][3].add(l(0,e,v(n)?n:q))}).promise()},promise:function(e){return null!=e?ce.extend(e,a):a}},s={};return ce.each(o,function(e,t){var n=t[2],r=t[5];a[t[1]]=n.add,r&&n.add(function(){i=r},o[3-e][2].disable,o[3-e][3].disable,o[0][2].lock,o[0][3].lock),n.add(t[3].fire),s[t[0]]=function(){return s[t[0]+"With"](this===s?void 0:this,arguments),this},s[t[0]+"With"]=n.fireWith}),a.promise(s),e&&e.call(s,s),s},when:function(e){var n=arguments.length,t=n,r=Array(t),i=ae.call(arguments),o=ce.Deferred(),a=function(t){return function(e){r[t]=this,i[t]=1<arguments.length?ae.call(arguments):e,--n||o.resolveWith(r,i)}};if(n<=1&&(L(e,o.done(a(t)).resolve,o.reject,!n),"pending"===o.state()||v(i[t]&&i[t].then)))return o.then();while(t--)L(i[t],a(t),o.reject);return o.promise()}});var H=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;ce.Deferred.exceptionHook=function(e,t){ie.console&&ie.console.warn&&e&&H.test(e.name)&&ie.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},ce.readyException=function(e){ie.setTimeout(function(){throw e})};var O=ce.Deferred();function P(){C.removeEventListener("DOMContentLoaded",P),ie.removeEventListener("load",P),ce.ready()}ce.fn.ready=function(e){return O.then(e)["catch"](function(e){ce.readyException(e)}),this},ce.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--ce.readyWait:ce.isReady)||(ce.isReady=!0)!==e&&0<--ce.readyWait||O.resolveWith(C,[ce])}}),ce.ready.then=O.then,"complete"===C.readyState||"loading"!==C.readyState&&!C.documentElement.doScroll?ie.setTimeout(ce.ready):(C.addEventListener("DOMContentLoaded",P),ie.addEventListener("load",P));var M=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===x(n))for(s in i=!0,n)M(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,v(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(ce(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},R=/^-ms-/,I=/-([a-z])/g;function W(e,t){return t.toUpperCase()}function F(e){return e.replace(R,"ms-").replace(I,W)}var $=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function B(){this.expando=ce.expando+B.uid++}B.uid=1,B.prototype={cache:function(e){var t=e[this.expando];return t||(t={},$(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[F(t)]=n;else for(r in t)i[F(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][F(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(F):(t=F(t))in r?[t]:t.match(D)||[]).length;while(n--)delete r[t[n]]}(void 0===t||ce.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!ce.isEmptyObject(t)}};var _=new B,z=new B,X=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,U=/[A-Z]/g;function V(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(U,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n="true"===(i=n)||"false"!==i&&("null"===i?null:i===+i+""?+i:X.test(i)?JSON.parse(i):i)}catch(e){}z.set(e,t,n)}else n=void 0;return n}ce.extend({hasData:function(e){return z.hasData(e)||_.hasData(e)},data:function(e,t,n){return z.access(e,t,n)},removeData:function(e,t){z.remove(e,t)},_data:function(e,t,n){return _.access(e,t,n)},_removeData:function(e,t){_.remove(e,t)}}),ce.fn.extend({data:function(n,e){var t,r,i,o=this[0],a=o&&o.attributes;if(void 0===n){if(this.length&&(i=z.get(o),1===o.nodeType&&!_.get(o,"hasDataAttrs"))){t=a.length;while(t--)a[t]&&0===(r=a[t].name).indexOf("data-")&&(r=F(r.slice(5)),V(o,r,i[r]));_.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof n?this.each(function(){z.set(this,n)}):M(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=z.get(o,n))?t:void 0!==(t=V(o,n))?t:void 0;this.each(function(){z.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){z.remove(this,e)})}}),ce.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=_.get(e,t),n&&(!r||Array.isArray(n)?r=_.access(e,t,ce.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=ce.queue(e,t),r=n.length,i=n.shift(),o=ce._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){ce.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return _.get(e,n)||_.access(e,n,{empty:ce.Callbacks("once memory").add(function(){_.remove(e,[t+"queue",n])})})}}),ce.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?ce.queue(this[0],t):void 0===n?this:this.each(function(){var e=ce.queue(this,t,n);ce._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&ce.dequeue(this,t)})},dequeue:function(e){return this.each(function(){ce.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=ce.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=_.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var G=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,Y=new RegExp("^(?:([+-])=|)("+G+")([a-z%]*)$","i"),Q=["Top","Right","Bottom","Left"],J=C.documentElement,K=function(e){return ce.contains(e.ownerDocument,e)},Z={composed:!0};J.getRootNode&&(K=function(e){return ce.contains(e.ownerDocument,e)||e.getRootNode(Z)===e.ownerDocument});var ee=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&K(e)&&"none"===ce.css(e,"display")};function te(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return ce.css(e,t,"")},u=s(),l=n&&n[3]||(ce.cssNumber[t]?"":"px"),c=e.nodeType&&(ce.cssNumber[t]||"px"!==l&&+u)&&Y.exec(ce.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)ce.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,ce.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var ne={};function re(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[c]).style&&(n=r.style.display,t?("none"===n&&(l[c]=_.get(r,"display")||null,l[c]||(r.style.display="")),""===r.style.display&&ee(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=ne[s])||(o=a.body.appendChild(a.createElement(s)),u=ce.css(o,"display"),o.parentNode.removeChild(o),"none"===u&&(u="block"),ne[s]=u)))):"none"!==n&&(l[c]="none",_.set(r,"display",n)));for(c=0;c<f;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}ce.fn.extend({show:function(){return re(this,!0)},hide:function(){return re(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){ee(this)?ce(this).show():ce(this).hide()})}});var xe,be,we=/^(?:checkbox|radio)$/i,Te=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,Ce=/^$|^module$|\/(?:java|ecma)script/i;xe=C.createDocumentFragment().appendChild(C.createElement("div")),(be=C.createElement("input")).setAttribute("type","radio"),be.setAttribute("checked","checked"),be.setAttribute("name","t"),xe.appendChild(be),le.checkClone=xe.cloneNode(!0).cloneNode(!0).lastChild.checked,xe.innerHTML="<textarea>x</textarea>",le.noCloneChecked=!!xe.cloneNode(!0).lastChild.defaultValue,xe.innerHTML="<option></option>",le.option=!!xe.lastChild;var ke={thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function Se(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&fe(e,t)?ce.merge([e],n):n}function Ee(e,t){for(var n=0,r=e.length;n<r;n++)_.set(e[n],"globalEval",!t||_.get(t[n],"globalEval"))}ke.tbody=ke.tfoot=ke.colgroup=ke.caption=ke.thead,ke.th=ke.td,le.option||(ke.optgroup=ke.option=[1,"<select multiple='multiple'>","</select>"]);var je=/<|&#?\w+;/;function Ae(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===x(o))ce.merge(p,o.nodeType?[o]:o);else if(je.test(o)){a=a||f.appendChild(t.createElement("div")),s=(Te.exec(o)||["",""])[1].toLowerCase(),u=ke[s]||ke._default,a.innerHTML=u[1]+ce.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;ce.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&-1<ce.inArray(o,r))i&&i.push(o);else if(l=K(o),a=Se(f.appendChild(o),"script"),l&&Ee(a),n){c=0;while(o=a[c++])Ce.test(o.type||"")&&n.push(o)}return f}var De=/^([^.]*)(?:\.(.+)|)/;function Ne(){return!0}function qe(){return!1}function Le(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Le(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=qe;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return ce().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=ce.guid++)),e.each(function(){ce.event.add(this,t,i,r,n)})}function He(e,r,t){t?(_.set(e,r,!1),ce.event.add(e,r,{namespace:!1,handler:function(e){var t,n=_.get(this,r);if(1&e.isTrigger&&this[r]){if(n)(ce.event.special[r]||{}).delegateType&&e.stopPropagation();else if(n=ae.call(arguments),_.set(this,r,n),this[r](),t=_.get(this,r),_.set(this,r,!1),n!==t)return e.stopImmediatePropagation(),e.preventDefault(),t}else n&&(_.set(this,r,ce.event.trigger(n[0],n.slice(1),this)),e.stopPropagation(),e.isImmediatePropagationStopped=Ne)}})):void 0===_.get(e,r)&&ce.event.add(e,r,Ne)}ce.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=_.get(t);if($(t)){n.handler&&(n=(o=n).handler,i=o.selector),i&&ce.find.matchesSelector(J,i),n.guid||(n.guid=ce.guid++),(u=v.events)||(u=v.events=Object.create(null)),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof ce&&ce.event.triggered!==e.type?ce.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(D)||[""]).length;while(l--)d=g=(s=De.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=ce.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=ce.event.special[d]||{},c=ce.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&ce.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),ce.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=_.hasData(e)&&_.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(D)||[""]).length;while(l--)if(d=g=(s=De.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=ce.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||ce.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)ce.event.remove(e,d+t[l],n,r,!0);ce.isEmptyObject(u)&&_.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=new Array(arguments.length),u=ce.event.fix(e),l=(_.get(this,"events")||Object.create(null))[u.type]||[],c=ce.event.special[u.type]||{};for(s[0]=u,t=1;t<arguments.length;t++)s[t]=arguments[t];if(u.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,u)){a=ce.event.handlers.call(this,u,l),t=0;while((i=a[t++])&&!u.isPropagationStopped()){u.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!u.isImmediatePropagationStopped())u.rnamespace&&!1!==o.namespace&&!u.rnamespace.test(o.namespace)||(u.handleObj=o,u.data=o.data,void 0!==(r=((ce.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,s))&&!1===(u.result=r)&&(u.preventDefault(),u.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,u),u.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&1<=e.button))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?-1<ce(i,this).index(l):ce.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(t,e){Object.defineProperty(ce.Event.prototype,t,{enumerable:!0,configurable:!0,get:v(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t]},set:function(e){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:e})}})},fix:function(e){return e[ce.expando]?e:new ce.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return we.test(t.type)&&t.click&&fe(t,"input")&&He(t,"click",!0),!1},trigger:function(e){var t=this||e;return we.test(t.type)&&t.click&&fe(t,"input")&&He(t,"click"),!0},_default:function(e){var t=e.target;return we.test(t.type)&&t.click&&fe(t,"input")&&_.get(t,"click")||fe(t,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},ce.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},ce.Event=function(e,t){if(!(this instanceof ce.Event))return new ce.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?Ne:qe,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&ce.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[ce.expando]=!0},ce.Event.prototype={constructor:ce.Event,isDefaultPrevented:qe,isPropagationStopped:qe,isImmediatePropagationStopped:qe,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=Ne,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=Ne,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=Ne,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},ce.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:!0},ce.event.addProp),ce.each({focus:"focusin",blur:"focusout"},function(r,i){function o(e){if(C.documentMode){var t=_.get(this,"handle"),n=ce.event.fix(e);n.type="focusin"===e.type?"focus":"blur",n.isSimulated=!0,t(e),n.target===n.currentTarget&&t(n)}else ce.event.simulate(i,e.target,ce.event.fix(e))}ce.event.special[r]={setup:function(){var e;if(He(this,r,!0),!C.documentMode)return!1;(e=_.get(this,i))||this.addEventListener(i,o),_.set(this,i,(e||0)+1)},trigger:function(){return He(this,r),!0},teardown:function(){var e;if(!C.documentMode)return!1;(e=_.get(this,i)-1)?_.set(this,i,e):(this.removeEventListener(i,o),_.remove(this,i))},_default:function(e){return _.get(e.target,r)},delegateType:i},ce.event.special[i]={setup:function(){var e=this.ownerDocument||this.document||this,t=C.documentMode?this:e,n=_.get(t,i);n||(C.documentMode?this.addEventListener(i,o):e.addEventListener(r,o,!0)),_.set(t,i,(n||0)+1)},teardown:function(){var e=this.ownerDocument||this.document||this,t=C.documentMode?this:e,n=_.get(t,i)-1;n?_.set(t,i,n):(C.documentMode?this.removeEventListener(i,o):e.removeEventListener(r,o,!0),_.remove(t,i))}}}),ce.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){ce.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||ce.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),ce.fn.extend({on:function(e,t,n,r){return Le(this,e,t,n,r)},one:function(e,t,n,r){return Le(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,ce(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=qe),this.each(function(){ce.event.remove(this,e,n,t)})}});var Oe=/<script|<style|<link/i,Pe=/checked\s*(?:[^=]|=\s*.checked.)/i,Me=/^\s*<!\[CDATA\[|\]\]>\s*$/g;function Re(e,t){return fe(e,"table")&&fe(11!==t.nodeType?t:t.firstChild,"tr")&&ce(e).children("tbody")[0]||e}function Ie(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function We(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Fe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(_.hasData(e)&&(s=_.get(e).events))for(i in _.remove(t,"handle events"),s)for(n=0,r=s[i].length;n<r;n++)ce.event.add(t,i,s[i][n]);z.hasData(e)&&(o=z.access(e),a=ce.extend({},o),z.set(t,a))}}function $e(n,r,i,o){r=g(r);var e,t,a,s,u,l,c=0,f=n.length,p=f-1,d=r[0],h=v(d);if(h||1<f&&"string"==typeof d&&!le.checkClone&&Pe.test(d))return n.each(function(e){var t=n.eq(e);h&&(r[0]=d.call(this,e,t.html())),$e(t,r,i,o)});if(f&&(t=(e=Ae(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=ce.map(Se(e,"script"),Ie)).length;c<f;c++)u=e,c!==p&&(u=ce.clone(u,!0,!0),s&&ce.merge(a,Se(u,"script"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,ce.map(a,We),c=0;c<s;c++)u=a[c],Ce.test(u.type||"")&&!_.access(u,"globalEval")&&ce.contains(l,u)&&(u.src&&"module"!==(u.type||"").toLowerCase()?ce._evalUrl&&!u.noModule&&ce._evalUrl(u.src,{nonce:u.nonce||u.getAttribute("nonce")},l):m(u.textContent.replace(Me,""),u,l))}return n}function Be(e,t,n){for(var r,i=t?ce.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||ce.cleanData(Se(r)),r.parentNode&&(n&&K(r)&&Ee(Se(r,"script")),r.parentNode.removeChild(r));return e}ce.extend({htmlPrefilter:function(e){return e},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=K(e);if(!(le.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||ce.isXMLDoc(e)))for(a=Se(c),r=0,i=(o=Se(e)).length;r<i;r++)s=o[r],u=a[r],void 0,"input"===(l=u.nodeName.toLowerCase())&&we.test(s.type)?u.checked=s.checked:"input"!==l&&"textarea"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||Se(e),a=a||Se(c),r=0,i=o.length;r<i;r++)Fe(o[r],a[r]);else Fe(e,c);return 0<(a=Se(c,"script")).length&&Ee(a,!f&&Se(e,"script")),c},cleanData:function(e){for(var t,n,r,i=ce.event.special,o=0;void 0!==(n=e[o]);o++)if($(n)){if(t=n[_.expando]){if(t.events)for(r in t.events)i[r]?ce.event.remove(n,r):ce.removeEvent(n,r,t.handle);n[_.expando]=void 0}n[z.expando]&&(n[z.expando]=void 0)}}}),ce.fn.extend({detach:function(e){return Be(this,e,!0)},remove:function(e){return Be(this,e)},text:function(e){return M(this,function(e){return void 0===e?ce.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return $e(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Re(this,e).appendChild(e)})},prepend:function(){return $e(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Re(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return $e(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return $e(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(ce.cleanData(Se(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return ce.clone(this,e,t)})},html:function(e){return M(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!Oe.test(e)&&!ke[(Te.exec(e)||["",""])[1].toLowerCase()]){e=ce.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(ce.cleanData(Se(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return $e(this,arguments,function(e){var t=this.parentNode;ce.inArray(this,n)<0&&(ce.cleanData(Se(this)),t&&t.replaceChild(e,this))},n)}}),ce.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,a){ce.fn[e]=function(e){for(var t,n=[],r=ce(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),ce(r[o])[a](t),s.apply(n,t.get());return this.pushStack(n)}});var _e=new RegExp("^("+G+")(?!px)[a-z%]+$","i"),ze=/^--/,Xe=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=ie),t.getComputedStyle(e)},Ue=function(e,t,n){var r,i,o={};for(i in t)o[i]=e.style[i],e.style[i]=t[i];for(i in r=n.call(e),t)e.style[i]=o[i];return r},Ve=new RegExp(Q.join("|"),"i");function Ge(e,t,n){var r,i,o,a,s=ze.test(t),u=e.style;return(n=n||Xe(e))&&(a=n.getPropertyValue(t)||n[t],s&&a&&(a=a.replace(ve,"$1")||void 0),""!==a||K(e)||(a=ce.style(e,t)),!le.pixelBoxStyles()&&_e.test(a)&&Ve.test(t)&&(r=u.width,i=u.minWidth,o=u.maxWidth,u.minWidth=u.maxWidth=u.width=a,a=n.width,u.width=r,u.minWidth=i,u.maxWidth=o)),void 0!==a?a+"":a}function Ye(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(l){u.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",l.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",J.appendChild(u).appendChild(l);var e=ie.getComputedStyle(l);n="1%"!==e.top,s=12===t(e.marginLeft),l.style.right="60%",o=36===t(e.right),r=36===t(e.width),l.style.position="absolute",i=12===t(l.offsetWidth/3),J.removeChild(u),l=null}}function t(e){return Math.round(parseFloat(e))}var n,r,i,o,a,s,u=C.createElement("div"),l=C.createElement("div");l.style&&(l.style.backgroundClip="content-box",l.cloneNode(!0).style.backgroundClip="",le.clearCloneStyle="content-box"===l.style.backgroundClip,ce.extend(le,{boxSizingReliable:function(){return e(),r},pixelBoxStyles:function(){return e(),o},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),s},scrollboxSize:function(){return e(),i},reliableTrDimensions:function(){var e,t,n,r;return null==a&&(e=C.createElement("table"),t=C.createElement("tr"),n=C.createElement("div"),e.style.cssText="position:absolute;left:-11111px;border-collapse:separate",t.style.cssText="box-sizing:content-box;border:1px solid",t.style.height="1px",n.style.height="9px",n.style.display="block",J.appendChild(e).appendChild(t).appendChild(n),r=ie.getComputedStyle(t),a=parseInt(r.height,10)+parseInt(r.borderTopWidth,10)+parseInt(r.borderBottomWidth,10)===t.offsetHeight,J.removeChild(e)),a}}))}();var Qe=["Webkit","Moz","ms"],Je=C.createElement("div").style,Ke={};function Ze(e){var t=ce.cssProps[e]||Ke[e];return t||(e in Je?e:Ke[e]=function(e){var t=e[0].toUpperCase()+e.slice(1),n=Qe.length;while(n--)if((e=Qe[n]+t)in Je)return e}(e)||e)}var et=/^(none|table(?!-c[ea]).+)/,tt={position:"absolute",visibility:"hidden",display:"block"},nt={letterSpacing:"0",fontWeight:"400"};function rt(e,t,n){var r=Y.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function it(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0,l=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(l+=ce.css(e,n+Q[a],!0,i)),r?("content"===n&&(u-=ce.css(e,"padding"+Q[a],!0,i)),"margin"!==n&&(u-=ce.css(e,"border"+Q[a]+"Width",!0,i))):(u+=ce.css(e,"padding"+Q[a],!0,i),"padding"!==n?u+=ce.css(e,"border"+Q[a]+"Width",!0,i):s+=ce.css(e,"border"+Q[a]+"Width",!0,i));return!r&&0<=o&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u+l}function ot(e,t,n){var r=Xe(e),i=(!le.boxSizingReliable()||n)&&"border-box"===ce.css(e,"boxSizing",!1,r),o=i,a=Ge(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if(_e.test(a)){if(!n)return a;a="auto"}return(!le.boxSizingReliable()&&i||!le.reliableTrDimensions()&&fe(e,"tr")||"auto"===a||!parseFloat(a)&&"inline"===ce.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===ce.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+it(e,t,n||(i?"border":"content"),o,r,a)+"px"}function at(e,t,n,r,i){return new at.prototype.init(e,t,n,r,i)}ce.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Ge(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,aspectRatio:!0,borderImageSlice:!0,columnCount:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,scale:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeMiterlimit:!0,strokeOpacity:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=F(t),u=ze.test(t),l=e.style;if(u||(t=Ze(s)),a=ce.cssHooks[t]||ce.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"===(o=typeof n)&&(i=Y.exec(n))&&i[1]&&(n=te(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(ce.cssNumber[s]?"":"px")),le.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=F(t);return ze.test(t)||(t=Ze(s)),(a=ce.cssHooks[t]||ce.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=Ge(e,t,r)),"normal"===i&&t in nt&&(i=nt[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),ce.each(["height","width"],function(e,u){ce.cssHooks[u]={get:function(e,t,n){if(t)return!et.test(ce.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?ot(e,u,n):Ue(e,tt,function(){return ot(e,u,n)})},set:function(e,t,n){var r,i=Xe(e),o=!le.scrollboxSize()&&"absolute"===i.position,a=(o||n)&&"border-box"===ce.css(e,"boxSizing",!1,i),s=n?it(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e["offset"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-it(e,u,"border",!1,i)-.5)),s&&(r=Y.exec(t))&&"px"!==(r[3]||"px")&&(e.style[u]=t,t=ce.css(e,u)),rt(0,t,s)}}}),ce.cssHooks.marginLeft=Ye(le.reliableMarginLeft,function(e,t){if(t)return(parseFloat(Ge(e,"marginLeft"))||e.getBoundingClientRect().left-Ue(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),ce.each({margin:"",padding:"",border:"Width"},function(i,o){ce.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r="string"==typeof e?e.split(" "):[e];t<4;t++)n[i+Q[t]+o]=r[t]||r[t-2]||r[0];return n}},"margin"!==i&&(ce.cssHooks[i+o].set=rt)}),ce.fn.extend({css:function(e,t){return M(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Xe(e),i=t.length;a<i;a++)o[t[a]]=ce.css(e,t[a],!1,r);return o}return void 0!==n?ce.style(e,t,n):ce.css(e,t)},e,t,1<arguments.length)}}),((ce.Tween=at).prototype={constructor:at,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||ce.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(ce.cssNumber[n]?"":"px")},cur:function(){var e=at.propHooks[this.prop];return e&&e.get?e.get(this):at.propHooks._default.get(this)},run:function(e){var t,n=at.propHooks[this.prop];return this.options.duration?this.pos=t=ce.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):at.propHooks._default.set(this),this}}).init.prototype=at.prototype,(at.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=ce.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){ce.fx.step[e.prop]?ce.fx.step[e.prop](e):1!==e.elem.nodeType||!ce.cssHooks[e.prop]&&null==e.elem.style[Ze(e.prop)]?e.elem[e.prop]=e.now:ce.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=at.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},ce.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},ce.fx=at.prototype.init,ce.fx.step={};var st,ut,lt,ct,ft=/^(?:toggle|show|hide)$/,pt=/queueHooks$/;function dt(){ut&&(!1===C.hidden&&ie.requestAnimationFrame?ie.requestAnimationFrame(dt):ie.setTimeout(dt,ce.fx.interval),ce.fx.tick())}function ht(){return ie.setTimeout(function(){st=void 0}),st=Date.now()}function gt(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=Q[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function vt(e,t,n){for(var r,i=(yt.tweeners[t]||[]).concat(yt.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function yt(o,e,t){var n,a,r=0,i=yt.prefilters.length,s=ce.Deferred().always(function(){delete u.elem}),u=function(){if(a)return!1;for(var e=st||ht(),t=Math.max(0,l.startTime+l.duration-e),n=1-(t/l.duration||0),r=0,i=l.tweens.length;r<i;r++)l.tweens[r].run(n);return s.notifyWith(o,[l,n,t]),n<1&&i?t:(i||s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l]),!1)},l=s.promise({elem:o,props:ce.extend({},e),opts:ce.extend(!0,{specialEasing:{},easing:ce.easing._default},t),originalProperties:e,originalOptions:t,startTime:st||ht(),duration:t.duration,tweens:[],createTween:function(e,t){var n=ce.Tween(o,l.opts,e,t,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(n),n},stop:function(e){var t=0,n=e?l.tweens.length:0;if(a)return this;for(a=!0;t<n;t++)l.tweens[t].run(1);return e?(s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l,e])):s.rejectWith(o,[l,e]),this}}),c=l.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=F(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=ce.cssHooks[r])&&"expand"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);r<i;r++)if(n=yt.prefilters[r].call(l,o,c,l.opts))return v(n.stop)&&(ce._queueHooks(l.elem,l.opts.queue).stop=n.stop.bind(n)),n;return ce.map(c,vt,l),v(l.opts.start)&&l.opts.start.call(o,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),ce.fx.timer(ce.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l}ce.Animation=ce.extend(yt,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return te(n.elem,e,Y.exec(t),n),n}]},tweener:function(e,t){v(e)?(t=e,e=["*"]):e=e.match(D);for(var n,r=0,i=e.length;r<i;r++)n=e[r],yt.tweeners[n]=yt.tweeners[n]||[],yt.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&ee(e),v=_.get(e,"fxshow");for(r in n.queue||(null==(a=ce._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,ce.queue(e,"fx").length||a.empty.fire()})})),t)if(i=t[r],ft.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!v||void 0===v[r])continue;g=!0}d[r]=v&&v[r]||ce.style(e,r)}if((u=!ce.isEmptyObject(t))||!ce.isEmptyObject(d))for(r in f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=v&&v.display)&&(l=_.get(e,"display")),"none"===(c=ce.css(e,"display"))&&(l?c=l:(re([e],!0),l=e.style.display||l,c=ce.css(e,"display"),re([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===ce.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1,d)u||(v?"hidden"in v&&(g=v.hidden):v=_.access(e,"fxshow",{display:l}),o&&(v.hidden=!g),g&&re([e],!0),p.done(function(){for(r in g||re([e]),_.remove(e,"fxshow"),d)ce.style(e,r,d[r])})),u=vt(g?v[r]:0,r,p),r in v||(v[r]=u.start,g&&(u.end=u.start,u.start=0))}],prefilter:function(e,t){t?yt.prefilters.unshift(e):yt.prefilters.push(e)}}),ce.speed=function(e,t,n){var r=e&&"object"==typeof e?ce.extend({},e):{complete:n||!n&&t||v(e)&&e,duration:e,easing:n&&t||t&&!v(t)&&t};return ce.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in ce.fx.speeds?r.duration=ce.fx.speeds[r.duration]:r.duration=ce.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){v(r.old)&&r.old.call(this),r.queue&&ce.dequeue(this,r.queue)},r},ce.fn.extend({fadeTo:function(e,t,n,r){return this.filter(ee).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=ce.isEmptyObject(t),o=ce.speed(e,n,r),a=function(){var e=yt(this,ce.extend({},t),o);(i||_.get(this,"finish"))&&e.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(i,e,o){var a=function(e){var t=e.stop;delete e.stop,t(o)};return"string"!=typeof i&&(o=e,e=i,i=void 0),e&&this.queue(i||"fx",[]),this.each(function(){var e=!0,t=null!=i&&i+"queueHooks",n=ce.timers,r=_.get(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&pt.test(t)&&a(r[t]);for(t=n.length;t--;)n[t].elem!==this||null!=i&&n[t].queue!==i||(n[t].anim.stop(o),e=!1,n.splice(t,1));!e&&o||ce.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||"fx"),this.each(function(){var e,t=_.get(this),n=t[a+"queue"],r=t[a+"queueHooks"],i=ce.timers,o=n?n.length:0;for(t.finish=!0,ce.queue(this,a,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===a&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),ce.each(["toggle","show","hide"],function(e,r){var i=ce.fn[r];ce.fn[r]=function(e,t,n){return null==e||"boolean"==typeof e?i.apply(this,arguments):this.animate(gt(r,!0),e,t,n)}}),ce.each({slideDown:gt("show"),slideUp:gt("hide"),slideToggle:gt("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,r){ce.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),ce.timers=[],ce.fx.tick=function(){var e,t=0,n=ce.timers;for(st=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||ce.fx.stop(),st=void 0},ce.fx.timer=function(e){ce.timers.push(e),ce.fx.start()},ce.fx.interval=13,ce.fx.start=function(){ut||(ut=!0,dt())},ce.fx.stop=function(){ut=null},ce.fx.speeds={slow:600,fast:200,_default:400},ce.fn.delay=function(r,e){return r=ce.fx&&ce.fx.speeds[r]||r,e=e||"fx",this.queue(e,function(e,t){var n=ie.setTimeout(e,r);t.stop=function(){ie.clearTimeout(n)}})},lt=C.createElement("input"),ct=C.createElement("select").appendChild(C.createElement("option")),lt.type="checkbox",le.checkOn=""!==lt.value,le.optSelected=ct.selected,(lt=C.createElement("input")).value="t",lt.type="radio",le.radioValue="t"===lt.value;var mt,xt=ce.expr.attrHandle;ce.fn.extend({attr:function(e,t){return M(this,ce.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){ce.removeAttr(this,e)})}}),ce.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?ce.prop(e,t,n):(1===o&&ce.isXMLDoc(e)||(i=ce.attrHooks[t.toLowerCase()]||(ce.expr.match.bool.test(t)?mt:void 0)),void 0!==n?null===n?void ce.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=ce.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!le.radioValue&&"radio"===t&&fe(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(D);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),mt={set:function(e,t,n){return!1===t?ce.removeAttr(e,n):e.setAttribute(n,n),n}},ce.each(ce.expr.match.bool.source.match(/\w+/g),function(e,t){var a=xt[t]||ce.find.attr;xt[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=xt[o],xt[o]=r,r=null!=a(e,t,n)?o:null,xt[o]=i),r}});var bt=/^(?:input|select|textarea|button)$/i,wt=/^(?:a|area)$/i;function Tt(e){return(e.match(D)||[]).join(" ")}function Ct(e){return e.getAttribute&&e.getAttribute("class")||""}function kt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(D)||[]}ce.fn.extend({prop:function(e,t){return M(this,ce.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[ce.propFix[e]||e]})}}),ce.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&ce.isXMLDoc(e)||(t=ce.propFix[t]||t,i=ce.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=ce.find.attr(e,"tabindex");return t?parseInt(t,10):bt.test(e.nodeName)||wt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),le.optSelected||(ce.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),ce.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){ce.propFix[this.toLowerCase()]=this}),ce.fn.extend({addClass:function(t){var e,n,r,i,o,a;return v(t)?this.each(function(e){ce(this).addClass(t.call(this,e,Ct(this)))}):(e=kt(t)).length?this.each(function(){if(r=Ct(this),n=1===this.nodeType&&" "+Tt(r)+" "){for(o=0;o<e.length;o++)i=e[o],n.indexOf(" "+i+" ")<0&&(n+=i+" ");a=Tt(n),r!==a&&this.setAttribute("class",a)}}):this},removeClass:function(t){var e,n,r,i,o,a;return v(t)?this.each(function(e){ce(this).removeClass(t.call(this,e,Ct(this)))}):arguments.length?(e=kt(t)).length?this.each(function(){if(r=Ct(this),n=1===this.nodeType&&" "+Tt(r)+" "){for(o=0;o<e.length;o++){i=e[o];while(-1<n.indexOf(" "+i+" "))n=n.replace(" "+i+" "," ")}a=Tt(n),r!==a&&this.setAttribute("class",a)}}):this:this.attr("class","")},toggleClass:function(t,n){var e,r,i,o,a=typeof t,s="string"===a||Array.isArray(t);return v(t)?this.each(function(e){ce(this).toggleClass(t.call(this,e,Ct(this),n),n)}):"boolean"==typeof n&&s?n?this.addClass(t):this.removeClass(t):(e=kt(t),this.each(function(){if(s)for(o=ce(this),i=0;i<e.length;i++)r=e[i],o.hasClass(r)?o.removeClass(r):o.addClass(r);else void 0!==t&&"boolean"!==a||((r=Ct(this))&&_.set(this,"__className__",r),this.setAttribute&&this.setAttribute("class",r||!1===t?"":_.get(this,"__className__")||""))}))},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&-1<(" "+Tt(Ct(n))+" ").indexOf(t))return!0;return!1}});var St=/\r/g;ce.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=v(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,ce(this).val()):n)?t="":"number"==typeof t?t+="":Array.isArray(t)&&(t=ce.map(t,function(e){return null==e?"":e+""})),(r=ce.valHooks[this.type]||ce.valHooks[this.nodeName.toLowerCase()])&&"set"in r&&void 0!==r.set(this,t,"value")||(this.value=t))})):t?(r=ce.valHooks[t.type]||ce.valHooks[t.nodeName.toLowerCase()])&&"get"in r&&void 0!==(e=r.get(t,"value"))?e:"string"==typeof(e=t.value)?e.replace(St,""):null==e?"":e:void 0}}),ce.extend({valHooks:{option:{get:function(e){var t=ce.find.attr(e,"value");return null!=t?t:Tt(ce.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!fe(n.parentNode,"optgroup"))){if(t=ce(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=ce.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=-1<ce.inArray(ce.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),ce.each(["radio","checkbox"],function(){ce.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<ce.inArray(ce(e).val(),t)}},le.checkOn||(ce.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var Et=ie.location,jt={guid:Date.now()},At=/\?/;ce.parseXML=function(e){var t,n;if(!e||"string"!=typeof e)return null;try{t=(new ie.DOMParser).parseFromString(e,"text/xml")}catch(e){}return n=t&&t.getElementsByTagName("parsererror")[0],t&&!n||ce.error("Invalid XML: "+(n?ce.map(n.childNodes,function(e){return e.textContent}).join("\n"):e)),t};var Dt=/^(?:focusinfocus|focusoutblur)$/,Nt=function(e){e.stopPropagation()};ce.extend(ce.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,f,p=[n||C],d=ue.call(e,"type")?e.type:e,h=ue.call(e,"namespace")?e.namespace.split("."):[];if(o=f=a=n=n||C,3!==n.nodeType&&8!==n.nodeType&&!Dt.test(d+ce.event.triggered)&&(-1<d.indexOf(".")&&(d=(h=d.split(".")).shift(),h.sort()),u=d.indexOf(":")<0&&"on"+d,(e=e[ce.expando]?e:new ce.Event(d,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=h.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:ce.makeArray(t,[e]),c=ce.event.special[d]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!y(n)){for(s=c.delegateType||d,Dt.test(s+d)||(o=o.parentNode);o;o=o.parentNode)p.push(o),a=o;a===(n.ownerDocument||C)&&p.push(a.defaultView||a.parentWindow||ie)}i=0;while((o=p[i++])&&!e.isPropagationStopped())f=o,e.type=1<i?s:c.bindType||d,(l=(_.get(o,"events")||Object.create(null))[e.type]&&_.get(o,"handle"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&$(o)&&(e.result=l.apply(o,t),!1===e.result&&e.preventDefault());return e.type=d,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(p.pop(),t)||!$(n)||u&&v(n[d])&&!y(n)&&((a=n[u])&&(n[u]=null),ce.event.triggered=d,e.isPropagationStopped()&&f.addEventListener(d,Nt),n[d](),e.isPropagationStopped()&&f.removeEventListener(d,Nt),ce.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=ce.extend(new ce.Event,n,{type:e,isSimulated:!0});ce.event.trigger(r,null,t)}}),ce.fn.extend({trigger:function(e,t){return this.each(function(){ce.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return ce.event.trigger(e,t,n,!0)}});var qt=/\[\]$/,Lt=/\r?\n/g,Ht=/^(?:submit|button|image|reset|file)$/i,Ot=/^(?:input|select|textarea|keygen)/i;function Pt(n,e,r,i){var t;if(Array.isArray(e))ce.each(e,function(e,t){r||qt.test(n)?i(n,t):Pt(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,r,i)});else if(r||"object"!==x(e))i(n,e);else for(t in e)Pt(n+"["+t+"]",e[t],r,i)}ce.param=function(e,t){var n,r=[],i=function(e,t){var n=v(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!ce.isPlainObject(e))ce.each(e,function(){i(this.name,this.value)});else for(n in e)Pt(n,e[n],t,i);return r.join("&")},ce.fn.extend({serialize:function(){return ce.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=ce.prop(this,"elements");return e?ce.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!ce(this).is(":disabled")&&Ot.test(this.nodeName)&&!Ht.test(e)&&(this.checked||!we.test(e))}).map(function(e,t){var n=ce(this).val();return null==n?null:Array.isArray(n)?ce.map(n,function(e){return{name:t.name,value:e.replace(Lt,"\r\n")}}):{name:t.name,value:n.replace(Lt,"\r\n")}}).get()}});var Mt=/%20/g,Rt=/#.*$/,It=/([?&])_=[^&]*/,Wt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Ft=/^(?:GET|HEAD)$/,$t=/^\/\//,Bt={},_t={},zt="*/".concat("*"),Xt=C.createElement("a");function Ut(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var n,r=0,i=e.toLowerCase().match(D)||[];if(v(t))while(n=i[r++])"+"===n[0]?(n=n.slice(1)||"*",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function Vt(t,i,o,a){var s={},u=t===_t;function l(e){var r;return s[e]=!0,ce.each(t[e]||[],function(e,t){var n=t(i,o,a);return"string"!=typeof n||u||s[n]?u?!(r=n):void 0:(i.dataTypes.unshift(n),l(n),!1)}),r}return l(i.dataTypes[0])||!s["*"]&&l("*")}function Gt(e,t){var n,r,i=ce.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&ce.extend(!0,e,r),e}Xt.href=Et.href,ce.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Et.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Et.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":zt,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":ce.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?Gt(Gt(e,ce.ajaxSettings),t):Gt(ce.ajaxSettings,e)},ajaxPrefilter:Ut(Bt),ajaxTransport:Ut(_t),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var c,f,p,n,d,r,h,g,i,o,v=ce.ajaxSetup({},t),y=v.context||v,m=v.context&&(y.nodeType||y.jquery)?ce(y):ce.event,x=ce.Deferred(),b=ce.Callbacks("once memory"),w=v.statusCode||{},a={},s={},u="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(h){if(!n){n={};while(t=Wt.exec(p))n[t[1].toLowerCase()+" "]=(n[t[1].toLowerCase()+" "]||[]).concat(t[2])}t=n[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return h?p:null},setRequestHeader:function(e,t){return null==h&&(e=s[e.toLowerCase()]=s[e.toLowerCase()]||e,a[e]=t),this},overrideMimeType:function(e){return null==h&&(v.mimeType=e),this},statusCode:function(e){var t;if(e)if(h)T.always(e[T.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||u;return c&&c.abort(t),l(0,t),this}};if(x.promise(T),v.url=((e||v.url||Et.href)+"").replace($t,Et.protocol+"//"),v.type=t.method||t.type||v.method||v.type,v.dataTypes=(v.dataType||"*").toLowerCase().match(D)||[""],null==v.crossDomain){r=C.createElement("a");try{r.href=v.url,r.href=r.href,v.crossDomain=Xt.protocol+"//"+Xt.host!=r.protocol+"//"+r.host}catch(e){v.crossDomain=!0}}if(v.data&&v.processData&&"string"!=typeof v.data&&(v.data=ce.param(v.data,v.traditional)),Vt(Bt,v,t,T),h)return T;for(i in(g=ce.event&&v.global)&&0==ce.active++&&ce.event.trigger("ajaxStart"),v.type=v.type.toUpperCase(),v.hasContent=!Ft.test(v.type),f=v.url.replace(Rt,""),v.hasContent?v.data&&v.processData&&0===(v.contentType||"").indexOf("application/x-www-form-urlencoded")&&(v.data=v.data.replace(Mt,"+")):(o=v.url.slice(f.length),v.data&&(v.processData||"string"==typeof v.data)&&(f+=(At.test(f)?"&":"?")+v.data,delete v.data),!1===v.cache&&(f=f.replace(It,"$1"),o=(At.test(f)?"&":"?")+"_="+jt.guid+++o),v.url=f+o),v.ifModified&&(ce.lastModified[f]&&T.setRequestHeader("If-Modified-Since",ce.lastModified[f]),ce.etag[f]&&T.setRequestHeader("If-None-Match",ce.etag[f])),(v.data&&v.hasContent&&!1!==v.contentType||t.contentType)&&T.setRequestHeader("Content-Type",v.contentType),T.setRequestHeader("Accept",v.dataTypes[0]&&v.accepts[v.dataTypes[0]]?v.accepts[v.dataTypes[0]]+("*"!==v.dataTypes[0]?", "+zt+"; q=0.01":""):v.accepts["*"]),v.headers)T.setRequestHeader(i,v.headers[i]);if(v.beforeSend&&(!1===v.beforeSend.call(y,T,v)||h))return T.abort();if(u="abort",b.add(v.complete),T.done(v.success),T.fail(v.error),c=Vt(_t,v,t,T)){if(T.readyState=1,g&&m.trigger("ajaxSend",[T,v]),h)return T;v.async&&0<v.timeout&&(d=ie.setTimeout(function(){T.abort("timeout")},v.timeout));try{h=!1,c.send(a,l)}catch(e){if(h)throw e;l(-1,e)}}else l(-1,"No Transport");function l(e,t,n,r){var i,o,a,s,u,l=t;h||(h=!0,d&&ie.clearTimeout(d),c=void 0,p=r||"",T.readyState=0<e?4:0,i=200<=e&&e<300||304===e,n&&(s=function(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(v,T,n)),!i&&-1<ce.inArray("script",v.dataTypes)&&ce.inArray("json",v.dataTypes)<0&&(v.converters["text script"]=function(){}),s=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}(v,s,T,i),i?(v.ifModified&&((u=T.getResponseHeader("Last-Modified"))&&(ce.lastModified[f]=u),(u=T.getResponseHeader("etag"))&&(ce.etag[f]=u)),204===e||"HEAD"===v.type?l="nocontent":304===e?l="notmodified":(l=s.state,o=s.data,i=!(a=s.error))):(a=l,!e&&l||(l="error",e<0&&(e=0))),T.status=e,T.statusText=(t||l)+"",i?x.resolveWith(y,[o,l,T]):x.rejectWith(y,[T,l,a]),T.statusCode(w),w=void 0,g&&m.trigger(i?"ajaxSuccess":"ajaxError",[T,v,i?o:a]),b.fireWith(y,[T,l]),g&&(m.trigger("ajaxComplete",[T,v]),--ce.active||ce.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return ce.get(e,t,n,"json")},getScript:function(e,t){return ce.get(e,void 0,t,"script")}}),ce.each(["get","post"],function(e,i){ce[i]=function(e,t,n,r){return v(t)&&(r=r||n,n=t,t=void 0),ce.ajax(ce.extend({url:e,type:i,dataType:r,data:t,success:n},ce.isPlainObject(e)&&e))}}),ce.ajaxPrefilter(function(e){var t;for(t in e.headers)"content-type"===t.toLowerCase()&&(e.contentType=e.headers[t]||"")}),ce._evalUrl=function(e,t,n){return ce.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){ce.globalEval(e,t,n)}})},ce.fn.extend({wrapAll:function(e){var t;return this[0]&&(v(e)&&(e=e.call(this[0])),t=ce(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(n){return v(n)?this.each(function(e){ce(this).wrapInner(n.call(this,e))}):this.each(function(){var e=ce(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=v(t);return this.each(function(e){ce(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not("body").each(function(){ce(this).replaceWith(this.childNodes)}),this}}),ce.expr.pseudos.hidden=function(e){return!ce.expr.pseudos.visible(e)},ce.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},ce.ajaxSettings.xhr=function(){try{return new ie.XMLHttpRequest}catch(e){}};var Yt={0:200,1223:204},Qt=ce.ajaxSettings.xhr();le.cors=!!Qt&&"withCredentials"in Qt,le.ajax=Qt=!!Qt,ce.ajaxTransport(function(i){var o,a;if(le.cors||Qt&&!i.crossDomain)return{send:function(e,t){var n,r=i.xhr();if(r.open(i.type,i.url,i.async,i.username,i.password),i.xhrFields)for(n in i.xhrFields)r[n]=i.xhrFields[n];for(n in i.mimeType&&r.overrideMimeType&&r.overrideMimeType(i.mimeType),i.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest"),e)r.setRequestHeader(n,e[n]);o=function(e){return function(){o&&(o=a=r.onload=r.onerror=r.onabort=r.ontimeout=r.onreadystatechange=null,"abort"===e?r.abort():"error"===e?"number"!=typeof r.status?t(0,"error"):t(r.status,r.statusText):t(Yt[r.status]||r.status,r.statusText,"text"!==(r.responseType||"text")||"string"!=typeof r.responseText?{binary:r.response}:{text:r.responseText},r.getAllResponseHeaders()))}},r.onload=o(),a=r.onerror=r.ontimeout=o("error"),void 0!==r.onabort?r.onabort=a:r.onreadystatechange=function(){4===r.readyState&&ie.setTimeout(function(){o&&a()})},o=o("abort");try{r.send(i.hasContent&&i.data||null)}catch(e){if(o)throw e}},abort:function(){o&&o()}}}),ce.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),ce.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return ce.globalEval(e),e}}}),ce.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),ce.ajaxTransport("script",function(n){var r,i;if(n.crossDomain||n.scriptAttrs)return{send:function(e,t){r=ce("<script>").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),C.head.appendChild(r[0])},abort:function(){i&&i()}}});var Jt,Kt=[],Zt=/(=)\?(?=&|$)|\?\?/;ce.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Kt.pop()||ce.expando+"_"+jt.guid++;return this[e]=!0,e}}),ce.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Zt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Zt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=v(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Zt,"$1"+r):!1!==e.jsonp&&(e.url+=(At.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||ce.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=ie[r],ie[r]=function(){o=arguments},n.always(function(){void 0===i?ce(ie).removeProp(r):ie[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Kt.push(r)),o&&v(i)&&i(o[0]),o=i=void 0}),"script"}),le.createHTMLDocument=((Jt=C.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===Jt.childNodes.length),ce.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(le.createHTMLDocument?((r=(t=C.implementation.createHTMLDocument("")).createElement("base")).href=C.location.href,t.head.appendChild(r)):t=C),o=!n&&[],(i=w.exec(e))?[t.createElement(i[1])]:(i=Ae([e],t,o),o&&o.length&&ce(o).remove(),ce.merge([],i.childNodes)));var r,i,o},ce.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1<s&&(r=Tt(e.slice(s)),e=e.slice(0,s)),v(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),0<a.length&&ce.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?ce("<div>").append(ce.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},ce.expr.pseudos.animated=function(t){return ce.grep(ce.timers,function(e){return t===e.elem}).length},ce.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=ce.css(e,"position"),c=ce(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=ce.css(e,"top"),u=ce.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),v(t)&&(t=t.call(e,n,ce.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},ce.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){ce.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===ce.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===ce.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=ce(e).offset()).top+=ce.css(e,"borderTopWidth",!0),i.left+=ce.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-ce.css(r,"marginTop",!0),left:t.left-i.left-ce.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===ce.css(e,"position"))e=e.offsetParent;return e||J})}}),ce.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;ce.fn[t]=function(e){return M(this,function(e,t,n){var r;if(y(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),ce.each(["top","left"],function(e,n){ce.cssHooks[n]=Ye(le.pixelPosition,function(e,t){if(t)return t=Ge(e,n),_e.test(t)?ce(e).position()[n]+"px":t})}),ce.each({Height:"height",Width:"width"},function(a,s){ce.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){ce.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return M(this,function(e,t,n){var r;return y(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?ce.css(e,t,i):ce.style(e,t,n,i)},s,n?e:void 0,n)}})}),ce.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){ce.fn[t]=function(e){return this.on(t,e)}}),ce.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.on("mouseenter",e).on("mouseleave",t||e)}}),ce.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){ce.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}});var en=/^[\s\uFEFF\xA0]+|([^\s\uFEFF\xA0])[\s\uFEFF\xA0]+$/g;ce.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),v(e))return r=ae.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(ae.call(arguments)))}).guid=e.guid=e.guid||ce.guid++,i},ce.holdReady=function(e){e?ce.readyWait++:ce.ready(!0)},ce.isArray=Array.isArray,ce.parseJSON=JSON.parse,ce.nodeName=fe,ce.isFunction=v,ce.isWindow=y,ce.camelCase=F,ce.type=x,ce.now=Date.now,ce.isNumeric=function(e){var t=ce.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},ce.trim=function(e){return null==e?"":(e+"").replace(en,"$1")},"function"==typeof define&&define.amd&&define("jquery",[],function(){return ce});var tn=ie.jQuery,nn=ie.$;return ce.noConflict=function(e){return ie.$===ce&&(ie.$=nn),e&&ie.jQuery===ce&&(ie.jQuery=tn),ce},"undefined"==typeof e&&(ie.jQuery=ie.$=ce),ce}); diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/LICENSE.md b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/LICENSE.md new file mode 100644 index 0000000000..8cb8a2b12c --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/LICENSE.md @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2012-2017 Kevin Brown, Igor Vaynberg, and Select2 contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/af.js b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/af.js new file mode 100644 index 0000000000..32e5ac7de8 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/af.js @@ -0,0 +1,3 @@ +/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ + +!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/af",[],function(){return{errorLoading:function(){return"Die resultate kon nie gelaai word nie."},inputTooLong:function(e){var n=e.input.length-e.maximum,r="Verwyders asseblief "+n+" character";return 1!=n&&(r+="s"),r},inputTooShort:function(e){return"Voer asseblief "+(e.minimum-e.input.length)+" of meer karakters"},loadingMore:function(){return"Meer resultate word gelaai…"},maximumSelected:function(e){var n="Kies asseblief net "+e.maximum+" item";return 1!=e.maximum&&(n+="s"),n},noResults:function(){return"Geen resultate gevind"},searching:function(){return"Besig…"},removeAllItems:function(){return"Verwyder alle items"}}}),e.define,e.require}(); \ No newline at end of file diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ar.js b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ar.js new file mode 100644 index 0000000000..64e1caad34 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ar.js @@ -0,0 +1,3 @@ +/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ + +!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/ar",[],function(){return{errorLoading:function(){return"لا يمكن تحميل النتائج"},inputTooLong:function(n){return"الرجاء حذف "+(n.input.length-n.maximum)+" عناصر"},inputTooShort:function(n){return"الرجاء إضافة "+(n.minimum-n.input.length)+" عناصر"},loadingMore:function(){return"جاري تحميل نتائج إضافية..."},maximumSelected:function(n){return"تستطيع إختيار "+n.maximum+" بنود فقط"},noResults:function(){return"لم يتم العثور على أي نتائج"},searching:function(){return"جاري البحث…"},removeAllItems:function(){return"قم بإزالة كل العناصر"}}}),n.define,n.require}(); \ No newline at end of file diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/az.js b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/az.js new file mode 100644 index 0000000000..1d52c260f2 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/az.js @@ -0,0 +1,3 @@ +/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ + +!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/az",[],function(){return{inputTooLong:function(n){return n.input.length-n.maximum+" simvol silin"},inputTooShort:function(n){return n.minimum-n.input.length+" simvol daxil edin"},loadingMore:function(){return"Daha çox nəticə yüklənir…"},maximumSelected:function(n){return"Sadəcə "+n.maximum+" element seçə bilərsiniz"},noResults:function(){return"Nəticə tapılmadı"},searching:function(){return"Axtarılır…"},removeAllItems:function(){return"Bütün elementləri sil"}}}),n.define,n.require}(); \ No newline at end of file diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/bg.js b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/bg.js new file mode 100644 index 0000000000..73b730a705 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/bg.js @@ -0,0 +1,3 @@ +/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ + +!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/bg",[],function(){return{inputTooLong:function(n){var e=n.input.length-n.maximum,u="Моля въведете с "+e+" по-малко символ";return e>1&&(u+="a"),u},inputTooShort:function(n){var e=n.minimum-n.input.length,u="Моля въведете още "+e+" символ";return e>1&&(u+="a"),u},loadingMore:function(){return"Зареждат се още…"},maximumSelected:function(n){var e="Можете да направите до "+n.maximum+" ";return n.maximum>1?e+="избора":e+="избор",e},noResults:function(){return"Няма намерени съвпадения"},searching:function(){return"Търсене…"},removeAllItems:function(){return"Премахнете всички елементи"}}}),n.define,n.require}(); \ No newline at end of file diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/bn.js b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/bn.js new file mode 100644 index 0000000000..2d17b9d8e0 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/bn.js @@ -0,0 +1,3 @@ +/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ + +!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/bn",[],function(){return{errorLoading:function(){return"ফলাফলগুলি লোড করা যায়নি।"},inputTooLong:function(n){var e=n.input.length-n.maximum,u="অনুগ্রহ করে "+e+" টি অক্ষর মুছে দিন।";return 1!=e&&(u="অনুগ্রহ করে "+e+" টি অক্ষর মুছে দিন।"),u},inputTooShort:function(n){return n.minimum-n.input.length+" টি অক্ষর অথবা অধিক অক্ষর লিখুন।"},loadingMore:function(){return"আরো ফলাফল লোড হচ্ছে ..."},maximumSelected:function(n){var e=n.maximum+" টি আইটেম নির্বাচন করতে পারবেন।";return 1!=n.maximum&&(e=n.maximum+" টি আইটেম নির্বাচন করতে পারবেন।"),e},noResults:function(){return"কোন ফলাফল পাওয়া যায়নি।"},searching:function(){return"অনুসন্ধান করা হচ্ছে ..."}}}),n.define,n.require}(); \ No newline at end of file diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/bs.js b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/bs.js new file mode 100644 index 0000000000..46b084d758 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/bs.js @@ -0,0 +1,3 @@ +/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ + +!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/bs",[],function(){function e(e,n,r,t){return e%10==1&&e%100!=11?n:e%10>=2&&e%10<=4&&(e%100<12||e%100>14)?r:t}return{errorLoading:function(){return"Preuzimanje nije uspijelo."},inputTooLong:function(n){var r=n.input.length-n.maximum,t="Obrišite "+r+" simbol";return t+=e(r,"","a","a")},inputTooShort:function(n){var r=n.minimum-n.input.length,t="Ukucajte bar još "+r+" simbol";return t+=e(r,"","a","a")},loadingMore:function(){return"Preuzimanje još rezultata…"},maximumSelected:function(n){var r="Možete izabrati samo "+n.maximum+" stavk";return r+=e(n.maximum,"u","e","i")},noResults:function(){return"Ništa nije pronađeno"},searching:function(){return"Pretraga…"},removeAllItems:function(){return"Uklonite sve stavke"}}}),e.define,e.require}(); \ No newline at end of file diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ca.js b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ca.js new file mode 100644 index 0000000000..82dbbb7a21 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ca.js @@ -0,0 +1,3 @@ +/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ + +!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/ca",[],function(){return{errorLoading:function(){return"La càrrega ha fallat"},inputTooLong:function(e){var n=e.input.length-e.maximum,r="Si us plau, elimina "+n+" car";return r+=1==n?"àcter":"àcters"},inputTooShort:function(e){var n=e.minimum-e.input.length,r="Si us plau, introdueix "+n+" car";return r+=1==n?"àcter":"àcters"},loadingMore:function(){return"Carregant més resultats…"},maximumSelected:function(e){var n="Només es pot seleccionar "+e.maximum+" element";return 1!=e.maximum&&(n+="s"),n},noResults:function(){return"No s'han trobat resultats"},searching:function(){return"Cercant…"},removeAllItems:function(){return"Treu tots els elements"}}}),e.define,e.require}(); \ No newline at end of file diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/cs.js b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/cs.js new file mode 100644 index 0000000000..7116d6c1df --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/cs.js @@ -0,0 +1,3 @@ +/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ + +!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/cs",[],function(){function e(e,n){switch(e){case 2:return n?"dva":"dvě";case 3:return"tři";case 4:return"čtyři"}return""}return{errorLoading:function(){return"Výsledky nemohly být načteny."},inputTooLong:function(n){var t=n.input.length-n.maximum;return 1==t?"Prosím, zadejte o jeden znak méně.":t<=4?"Prosím, zadejte o "+e(t,!0)+" znaky méně.":"Prosím, zadejte o "+t+" znaků méně."},inputTooShort:function(n){var t=n.minimum-n.input.length;return 1==t?"Prosím, zadejte ještě jeden znak.":t<=4?"Prosím, zadejte ještě další "+e(t,!0)+" znaky.":"Prosím, zadejte ještě dalších "+t+" znaků."},loadingMore:function(){return"Načítají se další výsledky…"},maximumSelected:function(n){var t=n.maximum;return 1==t?"Můžete zvolit jen jednu položku.":t<=4?"Můžete zvolit maximálně "+e(t,!1)+" položky.":"Můžete zvolit maximálně "+t+" položek."},noResults:function(){return"Nenalezeny žádné položky."},searching:function(){return"Vyhledávání…"},removeAllItems:function(){return"Odstraňte všechny položky"}}}),e.define,e.require}(); \ No newline at end of file diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/da.js b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/da.js new file mode 100644 index 0000000000..cda32c34aa --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/da.js @@ -0,0 +1,3 @@ +/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ + +!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/da",[],function(){return{errorLoading:function(){return"Resultaterne kunne ikke indlæses."},inputTooLong:function(e){return"Angiv venligst "+(e.input.length-e.maximum)+" tegn mindre"},inputTooShort:function(e){return"Angiv venligst "+(e.minimum-e.input.length)+" tegn mere"},loadingMore:function(){return"Indlæser flere resultater…"},maximumSelected:function(e){var n="Du kan kun vælge "+e.maximum+" emne";return 1!=e.maximum&&(n+="r"),n},noResults:function(){return"Ingen resultater fundet"},searching:function(){return"Søger…"},removeAllItems:function(){return"Fjern alle elementer"}}}),e.define,e.require}(); \ No newline at end of file diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/de.js b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/de.js new file mode 100644 index 0000000000..c2e61e5800 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/de.js @@ -0,0 +1,3 @@ +/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ + +!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/de",[],function(){return{errorLoading:function(){return"Die Ergebnisse konnten nicht geladen werden."},inputTooLong:function(e){return"Bitte "+(e.input.length-e.maximum)+" Zeichen weniger eingeben"},inputTooShort:function(e){return"Bitte "+(e.minimum-e.input.length)+" Zeichen mehr eingeben"},loadingMore:function(){return"Lade mehr Ergebnisse…"},maximumSelected:function(e){var n="Sie können nur "+e.maximum+" Element";return 1!=e.maximum&&(n+="e"),n+=" auswählen"},noResults:function(){return"Keine Übereinstimmungen gefunden"},searching:function(){return"Suche…"},removeAllItems:function(){return"Entferne alle Elemente"}}}),e.define,e.require}(); \ No newline at end of file diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/dsb.js b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/dsb.js new file mode 100644 index 0000000000..02f283abad --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/dsb.js @@ -0,0 +1,3 @@ +/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ + +!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/dsb",[],function(){var n=["znamuško","znamušce","znamuška","znamuškow"],e=["zapisk","zapiska","zapiski","zapiskow"],u=function(n,e){return 1===n?e[0]:2===n?e[1]:n>2&&n<=4?e[2]:n>=5?e[3]:void 0};return{errorLoading:function(){return"Wuslědki njejsu se dali zacytaś."},inputTooLong:function(e){var a=e.input.length-e.maximum;return"Pšosym lašuj "+a+" "+u(a,n)},inputTooShort:function(e){var a=e.minimum-e.input.length;return"Pšosym zapódaj nanejmjenjej "+a+" "+u(a,n)},loadingMore:function(){return"Dalšne wuslědki se zacytaju…"},maximumSelected:function(n){return"Móžoš jano "+n.maximum+" "+u(n.maximum,e)+"wubraś."},noResults:function(){return"Žedne wuslědki namakane"},searching:function(){return"Pyta se…"},removeAllItems:function(){return"Remove all items"}}}),n.define,n.require}(); \ No newline at end of file diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/el.js b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/el.js new file mode 100644 index 0000000000..d4922a1df5 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/el.js @@ -0,0 +1,3 @@ +/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ + +!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/el",[],function(){return{errorLoading:function(){return"Τα αποτελέσματα δεν μπόρεσαν να φορτώσουν."},inputTooLong:function(n){var e=n.input.length-n.maximum,u="Παρακαλώ διαγράψτε "+e+" χαρακτήρ";return 1==e&&(u+="α"),1!=e&&(u+="ες"),u},inputTooShort:function(n){return"Παρακαλώ συμπληρώστε "+(n.minimum-n.input.length)+" ή περισσότερους χαρακτήρες"},loadingMore:function(){return"Φόρτωση περισσότερων αποτελεσμάτων…"},maximumSelected:function(n){var e="Μπορείτε να επιλέξετε μόνο "+n.maximum+" επιλογ";return 1==n.maximum&&(e+="ή"),1!=n.maximum&&(e+="ές"),e},noResults:function(){return"Δεν βρέθηκαν αποτελέσματα"},searching:function(){return"Αναζήτηση…"},removeAllItems:function(){return"Καταργήστε όλα τα στοιχεία"}}}),n.define,n.require}(); \ No newline at end of file diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/en.js b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/en.js new file mode 100644 index 0000000000..3b19285734 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/en.js @@ -0,0 +1,3 @@ +/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ + +!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/en",[],function(){return{errorLoading:function(){return"The results could not be loaded."},inputTooLong:function(e){var n=e.input.length-e.maximum,r="Please delete "+n+" character";return 1!=n&&(r+="s"),r},inputTooShort:function(e){return"Please enter "+(e.minimum-e.input.length)+" or more characters"},loadingMore:function(){return"Loading more results…"},maximumSelected:function(e){var n="You can only select "+e.maximum+" item";return 1!=e.maximum&&(n+="s"),n},noResults:function(){return"No results found"},searching:function(){return"Searching…"},removeAllItems:function(){return"Remove all items"}}}),e.define,e.require}(); \ No newline at end of file diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/es.js b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/es.js new file mode 100644 index 0000000000..68afd6d259 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/es.js @@ -0,0 +1,3 @@ +/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ + +!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/es",[],function(){return{errorLoading:function(){return"No se pudieron cargar los resultados"},inputTooLong:function(e){var n=e.input.length-e.maximum,r="Por favor, elimine "+n+" car";return r+=1==n?"ácter":"acteres"},inputTooShort:function(e){var n=e.minimum-e.input.length,r="Por favor, introduzca "+n+" car";return r+=1==n?"ácter":"acteres"},loadingMore:function(){return"Cargando más resultados…"},maximumSelected:function(e){var n="Sólo puede seleccionar "+e.maximum+" elemento";return 1!=e.maximum&&(n+="s"),n},noResults:function(){return"No se encontraron resultados"},searching:function(){return"Buscando…"},removeAllItems:function(){return"Eliminar todos los elementos"}}}),e.define,e.require}(); \ No newline at end of file diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/et.js b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/et.js new file mode 100644 index 0000000000..070b61a26d --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/et.js @@ -0,0 +1,3 @@ +/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ + +!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/et",[],function(){return{inputTooLong:function(e){var n=e.input.length-e.maximum,t="Sisesta "+n+" täht";return 1!=n&&(t+="e"),t+=" vähem"},inputTooShort:function(e){var n=e.minimum-e.input.length,t="Sisesta "+n+" täht";return 1!=n&&(t+="e"),t+=" rohkem"},loadingMore:function(){return"Laen tulemusi…"},maximumSelected:function(e){var n="Saad vaid "+e.maximum+" tulemus";return 1==e.maximum?n+="e":n+="t",n+=" valida"},noResults:function(){return"Tulemused puuduvad"},searching:function(){return"Otsin…"},removeAllItems:function(){return"Eemalda kõik esemed"}}}),e.define,e.require}(); \ No newline at end of file diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/eu.js b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/eu.js new file mode 100644 index 0000000000..90d5e73f8a --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/eu.js @@ -0,0 +1,3 @@ +/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ + +!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/eu",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Idatzi ";return n+=1==t?"karaktere bat":t+" karaktere",n+=" gutxiago"},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Idatzi ";return n+=1==t?"karaktere bat":t+" karaktere",n+=" gehiago"},loadingMore:function(){return"Emaitza gehiago kargatzen…"},maximumSelected:function(e){return 1===e.maximum?"Elementu bakarra hauta dezakezu":e.maximum+" elementu hauta ditzakezu soilik"},noResults:function(){return"Ez da bat datorrenik aurkitu"},searching:function(){return"Bilatzen…"},removeAllItems:function(){return"Kendu elementu guztiak"}}}),e.define,e.require}(); \ No newline at end of file diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/fa.js b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/fa.js new file mode 100644 index 0000000000..e1ffdbed0d --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/fa.js @@ -0,0 +1,3 @@ +/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ + +!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/fa",[],function(){return{errorLoading:function(){return"امکان بارگذاری نتایج وجود ندارد."},inputTooLong:function(n){return"لطفاً "+(n.input.length-n.maximum)+" کاراکتر را حذف نمایید"},inputTooShort:function(n){return"لطفاً تعداد "+(n.minimum-n.input.length)+" کاراکتر یا بیشتر وارد نمایید"},loadingMore:function(){return"در حال بارگذاری نتایج بیشتر..."},maximumSelected:function(n){return"شما تنها می‌توانید "+n.maximum+" آیتم را انتخاب نمایید"},noResults:function(){return"هیچ نتیجه‌ای یافت نشد"},searching:function(){return"در حال جستجو..."},removeAllItems:function(){return"همه موارد را حذف کنید"}}}),n.define,n.require}(); \ No newline at end of file diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/fi.js b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/fi.js new file mode 100644 index 0000000000..ffed1247dd --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/fi.js @@ -0,0 +1,3 @@ +/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ + +!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/fi",[],function(){return{errorLoading:function(){return"Tuloksia ei saatu ladattua."},inputTooLong:function(n){return"Ole hyvä ja anna "+(n.input.length-n.maximum)+" merkkiä vähemmän"},inputTooShort:function(n){return"Ole hyvä ja anna "+(n.minimum-n.input.length)+" merkkiä lisää"},loadingMore:function(){return"Ladataan lisää tuloksia…"},maximumSelected:function(n){return"Voit valita ainoastaan "+n.maximum+" kpl"},noResults:function(){return"Ei tuloksia"},searching:function(){return"Haetaan…"},removeAllItems:function(){return"Poista kaikki kohteet"}}}),n.define,n.require}(); \ No newline at end of file diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/fr.js b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/fr.js new file mode 100644 index 0000000000..dd02f973ff --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/fr.js @@ -0,0 +1,3 @@ +/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ + +!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/fr",[],function(){return{errorLoading:function(){return"Les résultats ne peuvent pas être chargés."},inputTooLong:function(e){var n=e.input.length-e.maximum;return"Supprimez "+n+" caractère"+(n>1?"s":"")},inputTooShort:function(e){var n=e.minimum-e.input.length;return"Saisissez au moins "+n+" caractère"+(n>1?"s":"")},loadingMore:function(){return"Chargement de résultats supplémentaires…"},maximumSelected:function(e){return"Vous pouvez seulement sélectionner "+e.maximum+" élément"+(e.maximum>1?"s":"")},noResults:function(){return"Aucun résultat trouvé"},searching:function(){return"Recherche en cours…"},removeAllItems:function(){return"Supprimer tous les éléments"}}}),e.define,e.require}(); \ No newline at end of file diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/gl.js b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/gl.js new file mode 100644 index 0000000000..208a005705 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/gl.js @@ -0,0 +1,3 @@ +/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ + +!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/gl",[],function(){return{errorLoading:function(){return"Non foi posíbel cargar os resultados."},inputTooLong:function(e){var n=e.input.length-e.maximum;return 1===n?"Elimine un carácter":"Elimine "+n+" caracteres"},inputTooShort:function(e){var n=e.minimum-e.input.length;return 1===n?"Engada un carácter":"Engada "+n+" caracteres"},loadingMore:function(){return"Cargando máis resultados…"},maximumSelected:function(e){return 1===e.maximum?"Só pode seleccionar un elemento":"Só pode seleccionar "+e.maximum+" elementos"},noResults:function(){return"Non se atoparon resultados"},searching:function(){return"Buscando…"},removeAllItems:function(){return"Elimina todos os elementos"}}}),e.define,e.require}(); \ No newline at end of file diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/he.js b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/he.js new file mode 100644 index 0000000000..25a8805aa0 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/he.js @@ -0,0 +1,3 @@ +/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ + +!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/he",[],function(){return{errorLoading:function(){return"שגיאה בטעינת התוצאות"},inputTooLong:function(n){var e=n.input.length-n.maximum,r="נא למחוק ";return r+=1===e?"תו אחד":e+" תווים"},inputTooShort:function(n){var e=n.minimum-n.input.length,r="נא להכניס ";return r+=1===e?"תו אחד":e+" תווים",r+=" או יותר"},loadingMore:function(){return"טוען תוצאות נוספות…"},maximumSelected:function(n){var e="באפשרותך לבחור עד ";return 1===n.maximum?e+="פריט אחד":e+=n.maximum+" פריטים",e},noResults:function(){return"לא נמצאו תוצאות"},searching:function(){return"מחפש…"},removeAllItems:function(){return"הסר את כל הפריטים"}}}),n.define,n.require}(); \ No newline at end of file diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/hi.js b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/hi.js new file mode 100644 index 0000000000..f3ed798434 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/hi.js @@ -0,0 +1,3 @@ +/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ + +!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/hi",[],function(){return{errorLoading:function(){return"परिणामों को लोड नहीं किया जा सका।"},inputTooLong:function(n){var e=n.input.length-n.maximum,r=e+" अक्षर को हटा दें";return e>1&&(r=e+" अक्षरों को हटा दें "),r},inputTooShort:function(n){return"कृपया "+(n.minimum-n.input.length)+" या अधिक अक्षर दर्ज करें"},loadingMore:function(){return"अधिक परिणाम लोड हो रहे है..."},maximumSelected:function(n){return"आप केवल "+n.maximum+" आइटम का चयन कर सकते हैं"},noResults:function(){return"कोई परिणाम नहीं मिला"},searching:function(){return"खोज रहा है..."},removeAllItems:function(){return"सभी वस्तुओं को हटा दें"}}}),n.define,n.require}(); \ No newline at end of file diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/hr.js b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/hr.js new file mode 100644 index 0000000000..cb3268db16 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/hr.js @@ -0,0 +1,3 @@ +/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ + +!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/hr",[],function(){function n(n){var e=" "+n+" znak";return n%10<5&&n%10>0&&(n%100<5||n%100>19)?n%10>1&&(e+="a"):e+="ova",e}return{errorLoading:function(){return"Preuzimanje nije uspjelo."},inputTooLong:function(e){return"Unesite "+n(e.input.length-e.maximum)},inputTooShort:function(e){return"Unesite još "+n(e.minimum-e.input.length)},loadingMore:function(){return"Učitavanje rezultata…"},maximumSelected:function(n){return"Maksimalan broj odabranih stavki je "+n.maximum},noResults:function(){return"Nema rezultata"},searching:function(){return"Pretraga…"},removeAllItems:function(){return"Ukloni sve stavke"}}}),n.define,n.require}(); \ No newline at end of file diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/hsb.js b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/hsb.js new file mode 100644 index 0000000000..3d5bf09dbd --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/hsb.js @@ -0,0 +1,3 @@ +/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ + +!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/hsb",[],function(){var n=["znamješko","znamješce","znamješka","znamješkow"],e=["zapisk","zapiskaj","zapiski","zapiskow"],u=function(n,e){return 1===n?e[0]:2===n?e[1]:n>2&&n<=4?e[2]:n>=5?e[3]:void 0};return{errorLoading:function(){return"Wuslědki njedachu so začitać."},inputTooLong:function(e){var a=e.input.length-e.maximum;return"Prošu zhašej "+a+" "+u(a,n)},inputTooShort:function(e){var a=e.minimum-e.input.length;return"Prošu zapodaj znajmjeńša "+a+" "+u(a,n)},loadingMore:function(){return"Dalše wuslědki so začitaja…"},maximumSelected:function(n){return"Móžeš jenož "+n.maximum+" "+u(n.maximum,e)+"wubrać"},noResults:function(){return"Žane wuslědki namakane"},searching:function(){return"Pyta so…"},removeAllItems:function(){return"Remove all items"}}}),n.define,n.require}(); \ No newline at end of file diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/hu.js b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/hu.js new file mode 100644 index 0000000000..4893aa2f70 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/hu.js @@ -0,0 +1,3 @@ +/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ + +!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/hu",[],function(){return{errorLoading:function(){return"Az eredmények betöltése nem sikerült."},inputTooLong:function(e){return"Túl hosszú. "+(e.input.length-e.maximum)+" karakterrel több, mint kellene."},inputTooShort:function(e){return"Túl rövid. Még "+(e.minimum-e.input.length)+" karakter hiányzik."},loadingMore:function(){return"Töltés…"},maximumSelected:function(e){return"Csak "+e.maximum+" elemet lehet kiválasztani."},noResults:function(){return"Nincs találat."},searching:function(){return"Keresés…"},removeAllItems:function(){return"Távolítson el minden elemet"}}}),e.define,e.require}(); \ No newline at end of file diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/hy.js b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/hy.js new file mode 100644 index 0000000000..8230007141 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/hy.js @@ -0,0 +1,3 @@ +/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ + +!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/hy",[],function(){return{errorLoading:function(){return"Արդյունքները հնարավոր չէ բեռնել։"},inputTooLong:function(n){return"Խնդրում ենք հեռացնել "+(n.input.length-n.maximum)+" նշան"},inputTooShort:function(n){return"Խնդրում ենք մուտքագրել "+(n.minimum-n.input.length)+" կամ ավել նշաններ"},loadingMore:function(){return"Բեռնվում են նոր արդյունքներ․․․"},maximumSelected:function(n){return"Դուք կարող եք ընտրել առավելագույնը "+n.maximum+" կետ"},noResults:function(){return"Արդյունքներ չեն գտնվել"},searching:function(){return"Որոնում․․․"},removeAllItems:function(){return"Հեռացնել բոլոր տարրերը"}}}),n.define,n.require}(); \ No newline at end of file diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/id.js b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/id.js new file mode 100644 index 0000000000..4a0b3bf009 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/id.js @@ -0,0 +1,3 @@ +/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ + +!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/id",[],function(){return{errorLoading:function(){return"Data tidak boleh diambil."},inputTooLong:function(n){return"Hapuskan "+(n.input.length-n.maximum)+" huruf"},inputTooShort:function(n){return"Masukkan "+(n.minimum-n.input.length)+" huruf lagi"},loadingMore:function(){return"Mengambil data…"},maximumSelected:function(n){return"Anda hanya dapat memilih "+n.maximum+" pilihan"},noResults:function(){return"Tidak ada data yang sesuai"},searching:function(){return"Mencari…"},removeAllItems:function(){return"Hapus semua item"}}}),n.define,n.require}(); \ No newline at end of file diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/is.js b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/is.js new file mode 100644 index 0000000000..cca5bbecf0 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/is.js @@ -0,0 +1,3 @@ +/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ + +!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/is",[],function(){return{inputTooLong:function(n){var t=n.input.length-n.maximum,e="Vinsamlegast styttið texta um "+t+" staf";return t<=1?e:e+"i"},inputTooShort:function(n){var t=n.minimum-n.input.length,e="Vinsamlegast skrifið "+t+" staf";return t>1&&(e+="i"),e+=" í viðbót"},loadingMore:function(){return"Sæki fleiri niðurstöður…"},maximumSelected:function(n){return"Þú getur aðeins valið "+n.maximum+" atriði"},noResults:function(){return"Ekkert fannst"},searching:function(){return"Leita…"},removeAllItems:function(){return"Fjarlægðu öll atriði"}}}),n.define,n.require}(); \ No newline at end of file diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/it.js b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/it.js new file mode 100644 index 0000000000..507c7d9f29 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/it.js @@ -0,0 +1,3 @@ +/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ + +!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/it",[],function(){return{errorLoading:function(){return"I risultati non possono essere caricati."},inputTooLong:function(e){var n=e.input.length-e.maximum,t="Per favore cancella "+n+" caratter";return t+=1!==n?"i":"e"},inputTooShort:function(e){return"Per favore inserisci "+(e.minimum-e.input.length)+" o più caratteri"},loadingMore:function(){return"Caricando più risultati…"},maximumSelected:function(e){var n="Puoi selezionare solo "+e.maximum+" element";return 1!==e.maximum?n+="i":n+="o",n},noResults:function(){return"Nessun risultato trovato"},searching:function(){return"Sto cercando…"},removeAllItems:function(){return"Rimuovi tutti gli oggetti"}}}),e.define,e.require}(); \ No newline at end of file diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ja.js b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ja.js new file mode 100644 index 0000000000..451025e2c7 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ja.js @@ -0,0 +1,3 @@ +/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ + +!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/ja",[],function(){return{errorLoading:function(){return"結果が読み込まれませんでした"},inputTooLong:function(n){return n.input.length-n.maximum+" 文字を削除してください"},inputTooShort:function(n){return"少なくとも "+(n.minimum-n.input.length)+" 文字を入力してください"},loadingMore:function(){return"読み込み中…"},maximumSelected:function(n){return n.maximum+" 件しか選択できません"},noResults:function(){return"対象が見つかりません"},searching:function(){return"検索しています…"},removeAllItems:function(){return"すべてのアイテムを削除"}}}),n.define,n.require}(); \ No newline at end of file diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ka.js b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ka.js new file mode 100644 index 0000000000..60c593b705 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ka.js @@ -0,0 +1,3 @@ +/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ + +!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/ka",[],function(){return{errorLoading:function(){return"მონაცემების ჩატვირთვა შეუძლებელია."},inputTooLong:function(n){return"გთხოვთ აკრიფეთ "+(n.input.length-n.maximum)+" სიმბოლოთი ნაკლები"},inputTooShort:function(n){return"გთხოვთ აკრიფეთ "+(n.minimum-n.input.length)+" სიმბოლო ან მეტი"},loadingMore:function(){return"მონაცემების ჩატვირთვა…"},maximumSelected:function(n){return"თქვენ შეგიძლიათ აირჩიოთ არაუმეტეს "+n.maximum+" ელემენტი"},noResults:function(){return"რეზულტატი არ მოიძებნა"},searching:function(){return"ძიება…"},removeAllItems:function(){return"ამოიღე ყველა ელემენტი"}}}),n.define,n.require}(); \ No newline at end of file diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/km.js b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/km.js new file mode 100644 index 0000000000..4dca94f414 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/km.js @@ -0,0 +1,3 @@ +/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ + +!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/km",[],function(){return{errorLoading:function(){return"មិនអាចទាញយកទិន្នន័យ"},inputTooLong:function(n){return"សូមលុបចេញ "+(n.input.length-n.maximum)+" អក្សរ"},inputTooShort:function(n){return"សូមបញ្ចូល"+(n.minimum-n.input.length)+" អក្សរ រឺ ច្រើនជាងនេះ"},loadingMore:function(){return"កំពុងទាញយកទិន្នន័យបន្ថែម..."},maximumSelected:function(n){return"អ្នកអាចជ្រើសរើសបានតែ "+n.maximum+" ជម្រើសប៉ុណ្ណោះ"},noResults:function(){return"មិនមានលទ្ធផល"},searching:function(){return"កំពុងស្វែងរក..."},removeAllItems:function(){return"លុបធាតុទាំងអស់"}}}),n.define,n.require}(); \ No newline at end of file diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ko.js b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ko.js new file mode 100644 index 0000000000..f2880fb004 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ko.js @@ -0,0 +1,3 @@ +/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ + +!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/ko",[],function(){return{errorLoading:function(){return"결과를 불러올 수 없습니다."},inputTooLong:function(n){return"너무 깁니다. "+(n.input.length-n.maximum)+" 글자 지워주세요."},inputTooShort:function(n){return"너무 짧습니다. "+(n.minimum-n.input.length)+" 글자 더 입력해주세요."},loadingMore:function(){return"불러오는 중…"},maximumSelected:function(n){return"최대 "+n.maximum+"개까지만 선택 가능합니다."},noResults:function(){return"결과가 없습니다."},searching:function(){return"검색 중…"},removeAllItems:function(){return"모든 항목 삭제"}}}),n.define,n.require}(); \ No newline at end of file diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/lt.js b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/lt.js new file mode 100644 index 0000000000..f6a42155ad --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/lt.js @@ -0,0 +1,3 @@ +/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ + +!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/lt",[],function(){function n(n,e,i,t){return n%10==1&&(n%100<11||n%100>19)?e:n%10>=2&&n%10<=9&&(n%100<11||n%100>19)?i:t}return{inputTooLong:function(e){var i=e.input.length-e.maximum,t="Pašalinkite "+i+" simbol";return t+=n(i,"į","ius","ių")},inputTooShort:function(e){var i=e.minimum-e.input.length,t="Įrašykite dar "+i+" simbol";return t+=n(i,"į","ius","ių")},loadingMore:function(){return"Kraunama daugiau rezultatų…"},maximumSelected:function(e){var i="Jūs galite pasirinkti tik "+e.maximum+" element";return i+=n(e.maximum,"ą","us","ų")},noResults:function(){return"Atitikmenų nerasta"},searching:function(){return"Ieškoma…"},removeAllItems:function(){return"Pašalinti visus elementus"}}}),n.define,n.require}(); \ No newline at end of file diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/lv.js b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/lv.js new file mode 100644 index 0000000000..806dc5c433 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/lv.js @@ -0,0 +1,3 @@ +/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ + +!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/lv",[],function(){function e(e,n,u,i){return 11===e?n:e%10==1?u:i}return{inputTooLong:function(n){var u=n.input.length-n.maximum,i="Lūdzu ievadiet par "+u;return(i+=" simbol"+e(u,"iem","u","iem"))+" mazāk"},inputTooShort:function(n){var u=n.minimum-n.input.length,i="Lūdzu ievadiet vēl "+u;return i+=" simbol"+e(u,"us","u","us")},loadingMore:function(){return"Datu ielāde…"},maximumSelected:function(n){var u="Jūs varat izvēlēties ne vairāk kā "+n.maximum;return u+=" element"+e(n.maximum,"us","u","us")},noResults:function(){return"Sakritību nav"},searching:function(){return"Meklēšana…"},removeAllItems:function(){return"Noņemt visus vienumus"}}}),e.define,e.require}(); \ No newline at end of file diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/mk.js b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/mk.js new file mode 100644 index 0000000000..cb7b84a263 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/mk.js @@ -0,0 +1,3 @@ +/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ + +!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/mk",[],function(){return{inputTooLong:function(n){var e=(n.input.length,n.maximum,"Ве молиме внесете "+n.maximum+" помалку карактер");return 1!==n.maximum&&(e+="и"),e},inputTooShort:function(n){var e=(n.minimum,n.input.length,"Ве молиме внесете уште "+n.maximum+" карактер");return 1!==n.maximum&&(e+="и"),e},loadingMore:function(){return"Вчитување резултати…"},maximumSelected:function(n){var e="Можете да изберете само "+n.maximum+" ставк";return 1===n.maximum?e+="а":e+="и",e},noResults:function(){return"Нема пронајдено совпаѓања"},searching:function(){return"Пребарување…"},removeAllItems:function(){return"Отстрани ги сите предмети"}}}),n.define,n.require}(); \ No newline at end of file diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ms.js b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ms.js new file mode 100644 index 0000000000..6bd7eaa3e0 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ms.js @@ -0,0 +1,3 @@ +/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ + +!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/ms",[],function(){return{errorLoading:function(){return"Keputusan tidak berjaya dimuatkan."},inputTooLong:function(n){return"Sila hapuskan "+(n.input.length-n.maximum)+" aksara"},inputTooShort:function(n){return"Sila masukkan "+(n.minimum-n.input.length)+" atau lebih aksara"},loadingMore:function(){return"Sedang memuatkan keputusan…"},maximumSelected:function(n){return"Anda hanya boleh memilih "+n.maximum+" pilihan"},noResults:function(){return"Tiada padanan yang ditemui"},searching:function(){return"Mencari…"},removeAllItems:function(){return"Keluarkan semua item"}}}),n.define,n.require}(); \ No newline at end of file diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/nb.js b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/nb.js new file mode 100644 index 0000000000..25d89c6870 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/nb.js @@ -0,0 +1,3 @@ +/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ + +!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/nb",[],function(){return{errorLoading:function(){return"Kunne ikke hente resultater."},inputTooLong:function(e){return"Vennligst fjern "+(e.input.length-e.maximum)+" tegn"},inputTooShort:function(e){return"Vennligst skriv inn "+(e.minimum-e.input.length)+" tegn til"},loadingMore:function(){return"Laster flere resultater…"},maximumSelected:function(e){return"Du kan velge maks "+e.maximum+" elementer"},noResults:function(){return"Ingen treff"},searching:function(){return"Søker…"},removeAllItems:function(){return"Fjern alle elementer"}}}),e.define,e.require}(); \ No newline at end of file diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ne.js b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ne.js new file mode 100644 index 0000000000..1c39f67210 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ne.js @@ -0,0 +1,3 @@ +/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ + +!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/ne",[],function(){return{errorLoading:function(){return"नतिजाहरु देखाउन सकिएन।"},inputTooLong:function(n){var e=n.input.length-n.maximum,u="कृपया "+e+" अक्षर मेटाउनुहोस्।";return 1!=e&&(u+="कृपया "+e+" अक्षरहरु मेटाउनुहोस्।"),u},inputTooShort:function(n){return"कृपया बाँकी रहेका "+(n.minimum-n.input.length)+" वा अरु धेरै अक्षरहरु भर्नुहोस्।"},loadingMore:function(){return"अरु नतिजाहरु भरिँदैछन् …"},maximumSelected:function(n){var e="तँपाई "+n.maximum+" वस्तु मात्र छान्न पाउँनुहुन्छ।";return 1!=n.maximum&&(e="तँपाई "+n.maximum+" वस्तुहरु मात्र छान्न पाउँनुहुन्छ।"),e},noResults:function(){return"कुनै पनि नतिजा भेटिएन।"},searching:function(){return"खोजि हुँदैछ…"}}}),n.define,n.require}(); \ No newline at end of file diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/nl.js b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/nl.js new file mode 100644 index 0000000000..2b74058d23 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/nl.js @@ -0,0 +1,3 @@ +/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ + +!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/nl",[],function(){return{errorLoading:function(){return"De resultaten konden niet worden geladen."},inputTooLong:function(e){return"Gelieve "+(e.input.length-e.maximum)+" karakters te verwijderen"},inputTooShort:function(e){return"Gelieve "+(e.minimum-e.input.length)+" of meer karakters in te voeren"},loadingMore:function(){return"Meer resultaten laden…"},maximumSelected:function(e){var n=1==e.maximum?"kan":"kunnen",r="Er "+n+" maar "+e.maximum+" item";return 1!=e.maximum&&(r+="s"),r+=" worden geselecteerd"},noResults:function(){return"Geen resultaten gevonden…"},searching:function(){return"Zoeken…"},removeAllItems:function(){return"Verwijder alle items"}}}),e.define,e.require}(); \ No newline at end of file diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/pl.js b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/pl.js new file mode 100644 index 0000000000..4ca5748c38 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/pl.js @@ -0,0 +1,3 @@ +/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ + +!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/pl",[],function(){var n=["znak","znaki","znaków"],e=["element","elementy","elementów"],r=function(n,e){return 1===n?e[0]:n>1&&n<=4?e[1]:n>=5?e[2]:void 0};return{errorLoading:function(){return"Nie można załadować wyników."},inputTooLong:function(e){var t=e.input.length-e.maximum;return"Usuń "+t+" "+r(t,n)},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Podaj przynajmniej "+t+" "+r(t,n)},loadingMore:function(){return"Trwa ładowanie…"},maximumSelected:function(n){return"Możesz zaznaczyć tylko "+n.maximum+" "+r(n.maximum,e)},noResults:function(){return"Brak wyników"},searching:function(){return"Trwa wyszukiwanie…"},removeAllItems:function(){return"Usuń wszystkie przedmioty"}}}),n.define,n.require}(); \ No newline at end of file diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ps.js b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ps.js new file mode 100644 index 0000000000..9b008e4c14 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ps.js @@ -0,0 +1,3 @@ +/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ + +!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/ps",[],function(){return{errorLoading:function(){return"پايلي نه سي ترلاسه کېدای"},inputTooLong:function(n){var e=n.input.length-n.maximum,r="د مهربانۍ لمخي "+e+" توری ړنګ کړئ";return 1!=e&&(r=r.replace("توری","توري")),r},inputTooShort:function(n){return"لږ تر لږه "+(n.minimum-n.input.length)+" يا ډېر توري وليکئ"},loadingMore:function(){return"نوري پايلي ترلاسه کيږي..."},maximumSelected:function(n){var e="تاسو يوازي "+n.maximum+" قلم په نښه کولای سی";return 1!=n.maximum&&(e=e.replace("قلم","قلمونه")),e},noResults:function(){return"پايلي و نه موندل سوې"},searching:function(){return"لټول کيږي..."},removeAllItems:function(){return"ټول توکي لرې کړئ"}}}),n.define,n.require}(); \ No newline at end of file diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/pt-BR.js b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/pt-BR.js new file mode 100644 index 0000000000..c991e2550a --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/pt-BR.js @@ -0,0 +1,3 @@ +/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ + +!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/pt-BR",[],function(){return{errorLoading:function(){return"Os resultados não puderam ser carregados."},inputTooLong:function(e){var n=e.input.length-e.maximum,r="Apague "+n+" caracter";return 1!=n&&(r+="es"),r},inputTooShort:function(e){return"Digite "+(e.minimum-e.input.length)+" ou mais caracteres"},loadingMore:function(){return"Carregando mais resultados…"},maximumSelected:function(e){var n="Você só pode selecionar "+e.maximum+" ite";return 1==e.maximum?n+="m":n+="ns",n},noResults:function(){return"Nenhum resultado encontrado"},searching:function(){return"Buscando…"},removeAllItems:function(){return"Remover todos os itens"}}}),e.define,e.require}(); \ No newline at end of file diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/pt.js b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/pt.js new file mode 100644 index 0000000000..b5da1a6b49 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/pt.js @@ -0,0 +1,3 @@ +/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ + +!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/pt",[],function(){return{errorLoading:function(){return"Os resultados não puderam ser carregados."},inputTooLong:function(e){var r=e.input.length-e.maximum,n="Por favor apague "+r+" ";return n+=1!=r?"caracteres":"caractere"},inputTooShort:function(e){return"Introduza "+(e.minimum-e.input.length)+" ou mais caracteres"},loadingMore:function(){return"A carregar mais resultados…"},maximumSelected:function(e){var r="Apenas pode seleccionar "+e.maximum+" ";return r+=1!=e.maximum?"itens":"item"},noResults:function(){return"Sem resultados"},searching:function(){return"A procurar…"},removeAllItems:function(){return"Remover todos os itens"}}}),e.define,e.require}(); \ No newline at end of file diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ro.js b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ro.js new file mode 100644 index 0000000000..1ba7b40bef --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ro.js @@ -0,0 +1,3 @@ +/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ + +!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/ro",[],function(){return{errorLoading:function(){return"Rezultatele nu au putut fi incărcate."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Vă rugăm să ștergeți"+t+" caracter";return 1!==t&&(n+="e"),n},inputTooShort:function(e){return"Vă rugăm să introduceți "+(e.minimum-e.input.length)+" sau mai multe caractere"},loadingMore:function(){return"Se încarcă mai multe rezultate…"},maximumSelected:function(e){var t="Aveți voie să selectați cel mult "+e.maximum;return t+=" element",1!==e.maximum&&(t+="e"),t},noResults:function(){return"Nu au fost găsite rezultate"},searching:function(){return"Căutare…"},removeAllItems:function(){return"Eliminați toate elementele"}}}),e.define,e.require}(); \ No newline at end of file diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ru.js b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ru.js new file mode 100644 index 0000000000..63a7d66c3b --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ru.js @@ -0,0 +1,3 @@ +/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ + +!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/ru",[],function(){function n(n,e,r,u){return n%10<5&&n%10>0&&n%100<5||n%100>20?n%10>1?r:e:u}return{errorLoading:function(){return"Невозможно загрузить результаты"},inputTooLong:function(e){var r=e.input.length-e.maximum,u="Пожалуйста, введите на "+r+" символ";return u+=n(r,"","a","ов"),u+=" меньше"},inputTooShort:function(e){var r=e.minimum-e.input.length,u="Пожалуйста, введите ещё хотя бы "+r+" символ";return u+=n(r,"","a","ов")},loadingMore:function(){return"Загрузка данных…"},maximumSelected:function(e){var r="Вы можете выбрать не более "+e.maximum+" элемент";return r+=n(e.maximum,"","a","ов")},noResults:function(){return"Совпадений не найдено"},searching:function(){return"Поиск…"},removeAllItems:function(){return"Удалить все элементы"}}}),n.define,n.require}(); \ No newline at end of file diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sk.js b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sk.js new file mode 100644 index 0000000000..5049528ad0 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sk.js @@ -0,0 +1,3 @@ +/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ + +!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/sk",[],function(){var e={2:function(e){return e?"dva":"dve"},3:function(){return"tri"},4:function(){return"štyri"}};return{errorLoading:function(){return"Výsledky sa nepodarilo načítať."},inputTooLong:function(n){var t=n.input.length-n.maximum;return 1==t?"Prosím, zadajte o jeden znak menej":t>=2&&t<=4?"Prosím, zadajte o "+e[t](!0)+" znaky menej":"Prosím, zadajte o "+t+" znakov menej"},inputTooShort:function(n){var t=n.minimum-n.input.length;return 1==t?"Prosím, zadajte ešte jeden znak":t<=4?"Prosím, zadajte ešte ďalšie "+e[t](!0)+" znaky":"Prosím, zadajte ešte ďalších "+t+" znakov"},loadingMore:function(){return"Načítanie ďalších výsledkov…"},maximumSelected:function(n){return 1==n.maximum?"Môžete zvoliť len jednu položku":n.maximum>=2&&n.maximum<=4?"Môžete zvoliť najviac "+e[n.maximum](!1)+" položky":"Môžete zvoliť najviac "+n.maximum+" položiek"},noResults:function(){return"Nenašli sa žiadne položky"},searching:function(){return"Vyhľadávanie…"},removeAllItems:function(){return"Odstráňte všetky položky"}}}),e.define,e.require}(); \ No newline at end of file diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sl.js b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sl.js new file mode 100644 index 0000000000..4d0b7d3e34 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sl.js @@ -0,0 +1,3 @@ +/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ + +!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/sl",[],function(){return{errorLoading:function(){return"Zadetkov iskanja ni bilo mogoče naložiti."},inputTooLong:function(e){var n=e.input.length-e.maximum,t="Prosim zbrišite "+n+" znak";return 2==n?t+="a":1!=n&&(t+="e"),t},inputTooShort:function(e){var n=e.minimum-e.input.length,t="Prosim vpišite še "+n+" znak";return 2==n?t+="a":1!=n&&(t+="e"),t},loadingMore:function(){return"Nalagam več zadetkov…"},maximumSelected:function(e){var n="Označite lahko največ "+e.maximum+" predmet";return 2==e.maximum?n+="a":1!=e.maximum&&(n+="e"),n},noResults:function(){return"Ni zadetkov."},searching:function(){return"Iščem…"},removeAllItems:function(){return"Odstranite vse elemente"}}}),e.define,e.require}(); \ No newline at end of file diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sq.js b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sq.js new file mode 100644 index 0000000000..59162024ed --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sq.js @@ -0,0 +1,3 @@ +/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ + +!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/sq",[],function(){return{errorLoading:function(){return"Rezultatet nuk mund të ngarkoheshin."},inputTooLong:function(e){var n=e.input.length-e.maximum,t="Të lutem fshi "+n+" karakter";return 1!=n&&(t+="e"),t},inputTooShort:function(e){return"Të lutem shkruaj "+(e.minimum-e.input.length)+" ose më shumë karaktere"},loadingMore:function(){return"Duke ngarkuar më shumë rezultate…"},maximumSelected:function(e){var n="Mund të zgjedhësh vetëm "+e.maximum+" element";return 1!=e.maximum&&(n+="e"),n},noResults:function(){return"Nuk u gjet asnjë rezultat"},searching:function(){return"Duke kërkuar…"},removeAllItems:function(){return"Hiq të gjitha sendet"}}}),e.define,e.require}(); \ No newline at end of file diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sr-Cyrl.js b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sr-Cyrl.js new file mode 100644 index 0000000000..ce13ce8f9a --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sr-Cyrl.js @@ -0,0 +1,3 @@ +/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ + +!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/sr-Cyrl",[],function(){function n(n,e,r,u){return n%10==1&&n%100!=11?e:n%10>=2&&n%10<=4&&(n%100<12||n%100>14)?r:u}return{errorLoading:function(){return"Преузимање није успело."},inputTooLong:function(e){var r=e.input.length-e.maximum,u="Обришите "+r+" симбол";return u+=n(r,"","а","а")},inputTooShort:function(e){var r=e.minimum-e.input.length,u="Укуцајте бар још "+r+" симбол";return u+=n(r,"","а","а")},loadingMore:function(){return"Преузимање још резултата…"},maximumSelected:function(e){var r="Можете изабрати само "+e.maximum+" ставк";return r+=n(e.maximum,"у","е","и")},noResults:function(){return"Ништа није пронађено"},searching:function(){return"Претрага…"},removeAllItems:function(){return"Уклоните све ставке"}}}),n.define,n.require}(); \ No newline at end of file diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sr.js b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sr.js new file mode 100644 index 0000000000..dd407a06dc --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sr.js @@ -0,0 +1,3 @@ +/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ + +!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/sr",[],function(){function n(n,e,r,t){return n%10==1&&n%100!=11?e:n%10>=2&&n%10<=4&&(n%100<12||n%100>14)?r:t}return{errorLoading:function(){return"Preuzimanje nije uspelo."},inputTooLong:function(e){var r=e.input.length-e.maximum,t="Obrišite "+r+" simbol";return t+=n(r,"","a","a")},inputTooShort:function(e){var r=e.minimum-e.input.length,t="Ukucajte bar još "+r+" simbol";return t+=n(r,"","a","a")},loadingMore:function(){return"Preuzimanje još rezultata…"},maximumSelected:function(e){var r="Možete izabrati samo "+e.maximum+" stavk";return r+=n(e.maximum,"u","e","i")},noResults:function(){return"Ništa nije pronađeno"},searching:function(){return"Pretraga…"},removeAllItems:function(){return"Уклоните све ставке"}}}),n.define,n.require}(); \ No newline at end of file diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sv.js b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sv.js new file mode 100644 index 0000000000..1bc8724a79 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sv.js @@ -0,0 +1,3 @@ +/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ + +!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/sv",[],function(){return{errorLoading:function(){return"Resultat kunde inte laddas."},inputTooLong:function(n){return"Vänligen sudda ut "+(n.input.length-n.maximum)+" tecken"},inputTooShort:function(n){return"Vänligen skriv in "+(n.minimum-n.input.length)+" eller fler tecken"},loadingMore:function(){return"Laddar fler resultat…"},maximumSelected:function(n){return"Du kan max välja "+n.maximum+" element"},noResults:function(){return"Inga träffar"},searching:function(){return"Söker…"},removeAllItems:function(){return"Ta bort alla objekt"}}}),n.define,n.require}(); \ No newline at end of file diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/th.js b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/th.js new file mode 100644 index 0000000000..63eab7114b --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/th.js @@ -0,0 +1,3 @@ +/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ + +!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/th",[],function(){return{errorLoading:function(){return"ไม่สามารถค้นข้อมูลได้"},inputTooLong:function(n){return"โปรดลบออก "+(n.input.length-n.maximum)+" ตัวอักษร"},inputTooShort:function(n){return"โปรดพิมพ์เพิ่มอีก "+(n.minimum-n.input.length)+" ตัวอักษร"},loadingMore:function(){return"กำลังค้นข้อมูลเพิ่ม…"},maximumSelected:function(n){return"คุณสามารถเลือกได้ไม่เกิน "+n.maximum+" รายการ"},noResults:function(){return"ไม่พบข้อมูล"},searching:function(){return"กำลังค้นข้อมูล…"},removeAllItems:function(){return"ลบรายการทั้งหมด"}}}),n.define,n.require}(); \ No newline at end of file diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/tk.js b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/tk.js new file mode 100644 index 0000000000..30255ff377 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/tk.js @@ -0,0 +1,3 @@ +/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ + +!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/tk",[],function(){return{errorLoading:function(){return"Netije ýüklenmedi."},inputTooLong:function(e){return e.input.length-e.maximum+" harp bozuň."},inputTooShort:function(e){return"Ýene-de iň az "+(e.minimum-e.input.length)+" harp ýazyň."},loadingMore:function(){return"Köpräk netije görkezilýär…"},maximumSelected:function(e){return"Diňe "+e.maximum+" sanysyny saýlaň."},noResults:function(){return"Netije tapylmady."},searching:function(){return"Gözlenýär…"},removeAllItems:function(){return"Remove all items"}}}),e.define,e.require}(); \ No newline at end of file diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/tr.js b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/tr.js new file mode 100644 index 0000000000..fc4c0bf051 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/tr.js @@ -0,0 +1,3 @@ +/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ + +!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/tr",[],function(){return{errorLoading:function(){return"Sonuç yüklenemedi"},inputTooLong:function(n){return n.input.length-n.maximum+" karakter daha girmelisiniz"},inputTooShort:function(n){return"En az "+(n.minimum-n.input.length)+" karakter daha girmelisiniz"},loadingMore:function(){return"Daha fazla…"},maximumSelected:function(n){return"Sadece "+n.maximum+" seçim yapabilirsiniz"},noResults:function(){return"Sonuç bulunamadı"},searching:function(){return"Aranıyor…"},removeAllItems:function(){return"Tüm öğeleri kaldır"}}}),n.define,n.require}(); \ No newline at end of file diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/uk.js b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/uk.js new file mode 100644 index 0000000000..63697e3884 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/uk.js @@ -0,0 +1,3 @@ +/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ + +!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/uk",[],function(){function n(n,e,u,r){return n%100>10&&n%100<15?r:n%10==1?e:n%10>1&&n%10<5?u:r}return{errorLoading:function(){return"Неможливо завантажити результати"},inputTooLong:function(e){return"Будь ласка, видаліть "+(e.input.length-e.maximum)+" "+n(e.maximum,"літеру","літери","літер")},inputTooShort:function(n){return"Будь ласка, введіть "+(n.minimum-n.input.length)+" або більше літер"},loadingMore:function(){return"Завантаження інших результатів…"},maximumSelected:function(e){return"Ви можете вибрати лише "+e.maximum+" "+n(e.maximum,"пункт","пункти","пунктів")},noResults:function(){return"Нічого не знайдено"},searching:function(){return"Пошук…"},removeAllItems:function(){return"Видалити всі елементи"}}}),n.define,n.require}(); \ No newline at end of file diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/vi.js b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/vi.js new file mode 100644 index 0000000000..24f3bc2d61 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/vi.js @@ -0,0 +1,3 @@ +/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ + +!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/vi",[],function(){return{inputTooLong:function(n){return"Vui lòng xóa bớt "+(n.input.length-n.maximum)+" ký tự"},inputTooShort:function(n){return"Vui lòng nhập thêm từ "+(n.minimum-n.input.length)+" ký tự trở lên"},loadingMore:function(){return"Đang lấy thêm kết quả…"},maximumSelected:function(n){return"Chỉ có thể chọn được "+n.maximum+" lựa chọn"},noResults:function(){return"Không tìm thấy kết quả"},searching:function(){return"Đang tìm…"},removeAllItems:function(){return"Xóa tất cả các mục"}}}),n.define,n.require}(); \ No newline at end of file diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/zh-CN.js b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/zh-CN.js new file mode 100644 index 0000000000..2c5649d310 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/zh-CN.js @@ -0,0 +1,3 @@ +/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ + +!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/zh-CN",[],function(){return{errorLoading:function(){return"无法载入结果。"},inputTooLong:function(n){return"请删除"+(n.input.length-n.maximum)+"个字符"},inputTooShort:function(n){return"请再输入至少"+(n.minimum-n.input.length)+"个字符"},loadingMore:function(){return"载入更多结果…"},maximumSelected:function(n){return"最多只能选择"+n.maximum+"个项目"},noResults:function(){return"未找到结果"},searching:function(){return"搜索中…"},removeAllItems:function(){return"删除所有项目"}}}),n.define,n.require}(); \ No newline at end of file diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/zh-TW.js b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/zh-TW.js new file mode 100644 index 0000000000..570a566937 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/zh-TW.js @@ -0,0 +1,3 @@ +/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ + +!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/zh-TW",[],function(){return{inputTooLong:function(n){return"請刪掉"+(n.input.length-n.maximum)+"個字元"},inputTooShort:function(n){return"請再輸入"+(n.minimum-n.input.length)+"個字元"},loadingMore:function(){return"載入中…"},maximumSelected:function(n){return"你只能選擇最多"+n.maximum+"項"},noResults:function(){return"沒有找到相符的項目"},searching:function(){return"搜尋中…"},removeAllItems:function(){return"刪除所有項目"}}}),n.define,n.require}(); \ No newline at end of file diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/select2.full.js b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/select2.full.js new file mode 100644 index 0000000000..358572a657 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/select2.full.js @@ -0,0 +1,6820 @@ +/*! + * Select2 4.0.13 + * https://select2.github.io + * + * Released under the MIT license + * https://github.com/select2/select2/blob/master/LICENSE.md + */ +;(function (factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(['jquery'], factory); + } else if (typeof module === 'object' && module.exports) { + // Node/CommonJS + module.exports = function (root, jQuery) { + if (jQuery === undefined) { + // require('jQuery') returns a factory that requires window to + // build a jQuery instance, we normalize how we use modules + // that require this pattern but the window provided is a noop + // if it's defined (how jquery works) + if (typeof window !== 'undefined') { + jQuery = require('jquery'); + } + else { + jQuery = require('jquery')(root); + } + } + factory(jQuery); + return jQuery; + }; + } else { + // Browser globals + factory(jQuery); + } +} (function (jQuery) { + // This is needed so we can catch the AMD loader configuration and use it + // The inner file should be wrapped (by `banner.start.js`) in a function that + // returns the AMD loader references. + var S2 =(function () { + // Restore the Select2 AMD loader so it can be used + // Needed mostly in the language files, where the loader is not inserted + if (jQuery && jQuery.fn && jQuery.fn.select2 && jQuery.fn.select2.amd) { + var S2 = jQuery.fn.select2.amd; + } +var S2;(function () { if (!S2 || !S2.requirejs) { +if (!S2) { S2 = {}; } else { require = S2; } +/** + * @license almond 0.3.3 Copyright jQuery Foundation and other contributors. + * Released under MIT license, http://github.com/requirejs/almond/LICENSE + */ +//Going sloppy to avoid 'use strict' string cost, but strict practices should +//be followed. +/*global setTimeout: false */ + +var requirejs, require, define; +(function (undef) { + var main, req, makeMap, handlers, + defined = {}, + waiting = {}, + config = {}, + defining = {}, + hasOwn = Object.prototype.hasOwnProperty, + aps = [].slice, + jsSuffixRegExp = /\.js$/; + + function hasProp(obj, prop) { + return hasOwn.call(obj, prop); + } + + /** + * Given a relative module name, like ./something, normalize it to + * a real name that can be mapped to a path. + * @param {String} name the relative name + * @param {String} baseName a real name that the name arg is relative + * to. + * @returns {String} normalized name + */ + function normalize(name, baseName) { + var nameParts, nameSegment, mapValue, foundMap, lastIndex, + foundI, foundStarMap, starI, i, j, part, normalizedBaseParts, + baseParts = baseName && baseName.split("/"), + map = config.map, + starMap = (map && map['*']) || {}; + + //Adjust any relative paths. + if (name) { + name = name.split('/'); + lastIndex = name.length - 1; + + // If wanting node ID compatibility, strip .js from end + // of IDs. Have to do this here, and not in nameToUrl + // because node allows either .js or non .js to map + // to same file. + if (config.nodeIdCompat && jsSuffixRegExp.test(name[lastIndex])) { + name[lastIndex] = name[lastIndex].replace(jsSuffixRegExp, ''); + } + + // Starts with a '.' so need the baseName + if (name[0].charAt(0) === '.' && baseParts) { + //Convert baseName to array, and lop off the last part, + //so that . matches that 'directory' and not name of the baseName's + //module. For instance, baseName of 'one/two/three', maps to + //'one/two/three.js', but we want the directory, 'one/two' for + //this normalization. + normalizedBaseParts = baseParts.slice(0, baseParts.length - 1); + name = normalizedBaseParts.concat(name); + } + + //start trimDots + for (i = 0; i < name.length; i++) { + part = name[i]; + if (part === '.') { + name.splice(i, 1); + i -= 1; + } else if (part === '..') { + // If at the start, or previous value is still .., + // keep them so that when converted to a path it may + // still work when converted to a path, even though + // as an ID it is less than ideal. In larger point + // releases, may be better to just kick out an error. + if (i === 0 || (i === 1 && name[2] === '..') || name[i - 1] === '..') { + continue; + } else if (i > 0) { + name.splice(i - 1, 2); + i -= 2; + } + } + } + //end trimDots + + name = name.join('/'); + } + + //Apply map config if available. + if ((baseParts || starMap) && map) { + nameParts = name.split('/'); + + for (i = nameParts.length; i > 0; i -= 1) { + nameSegment = nameParts.slice(0, i).join("/"); + + if (baseParts) { + //Find the longest baseName segment match in the config. + //So, do joins on the biggest to smallest lengths of baseParts. + for (j = baseParts.length; j > 0; j -= 1) { + mapValue = map[baseParts.slice(0, j).join('/')]; + + //baseName segment has config, find if it has one for + //this name. + if (mapValue) { + mapValue = mapValue[nameSegment]; + if (mapValue) { + //Match, update name to the new value. + foundMap = mapValue; + foundI = i; + break; + } + } + } + } + + if (foundMap) { + break; + } + + //Check for a star map match, but just hold on to it, + //if there is a shorter segment match later in a matching + //config, then favor over this star map. + if (!foundStarMap && starMap && starMap[nameSegment]) { + foundStarMap = starMap[nameSegment]; + starI = i; + } + } + + if (!foundMap && foundStarMap) { + foundMap = foundStarMap; + foundI = starI; + } + + if (foundMap) { + nameParts.splice(0, foundI, foundMap); + name = nameParts.join('/'); + } + } + + return name; + } + + function makeRequire(relName, forceSync) { + return function () { + //A version of a require function that passes a moduleName + //value for items that may need to + //look up paths relative to the moduleName + var args = aps.call(arguments, 0); + + //If first arg is not require('string'), and there is only + //one arg, it is the array form without a callback. Insert + //a null so that the following concat is correct. + if (typeof args[0] !== 'string' && args.length === 1) { + args.push(null); + } + return req.apply(undef, args.concat([relName, forceSync])); + }; + } + + function makeNormalize(relName) { + return function (name) { + return normalize(name, relName); + }; + } + + function makeLoad(depName) { + return function (value) { + defined[depName] = value; + }; + } + + function callDep(name) { + if (hasProp(waiting, name)) { + var args = waiting[name]; + delete waiting[name]; + defining[name] = true; + main.apply(undef, args); + } + + if (!hasProp(defined, name) && !hasProp(defining, name)) { + throw new Error('No ' + name); + } + return defined[name]; + } + + //Turns a plugin!resource to [plugin, resource] + //with the plugin being undefined if the name + //did not have a plugin prefix. + function splitPrefix(name) { + var prefix, + index = name ? name.indexOf('!') : -1; + if (index > -1) { + prefix = name.substring(0, index); + name = name.substring(index + 1, name.length); + } + return [prefix, name]; + } + + //Creates a parts array for a relName where first part is plugin ID, + //second part is resource ID. Assumes relName has already been normalized. + function makeRelParts(relName) { + return relName ? splitPrefix(relName) : []; + } + + /** + * Makes a name map, normalizing the name, and using a plugin + * for normalization if necessary. Grabs a ref to plugin + * too, as an optimization. + */ + makeMap = function (name, relParts) { + var plugin, + parts = splitPrefix(name), + prefix = parts[0], + relResourceName = relParts[1]; + + name = parts[1]; + + if (prefix) { + prefix = normalize(prefix, relResourceName); + plugin = callDep(prefix); + } + + //Normalize according + if (prefix) { + if (plugin && plugin.normalize) { + name = plugin.normalize(name, makeNormalize(relResourceName)); + } else { + name = normalize(name, relResourceName); + } + } else { + name = normalize(name, relResourceName); + parts = splitPrefix(name); + prefix = parts[0]; + name = parts[1]; + if (prefix) { + plugin = callDep(prefix); + } + } + + //Using ridiculous property names for space reasons + return { + f: prefix ? prefix + '!' + name : name, //fullName + n: name, + pr: prefix, + p: plugin + }; + }; + + function makeConfig(name) { + return function () { + return (config && config.config && config.config[name]) || {}; + }; + } + + handlers = { + require: function (name) { + return makeRequire(name); + }, + exports: function (name) { + var e = defined[name]; + if (typeof e !== 'undefined') { + return e; + } else { + return (defined[name] = {}); + } + }, + module: function (name) { + return { + id: name, + uri: '', + exports: defined[name], + config: makeConfig(name) + }; + } + }; + + main = function (name, deps, callback, relName) { + var cjsModule, depName, ret, map, i, relParts, + args = [], + callbackType = typeof callback, + usingExports; + + //Use name if no relName + relName = relName || name; + relParts = makeRelParts(relName); + + //Call the callback to define the module, if necessary. + if (callbackType === 'undefined' || callbackType === 'function') { + //Pull out the defined dependencies and pass the ordered + //values to the callback. + //Default to [require, exports, module] if no deps + deps = !deps.length && callback.length ? ['require', 'exports', 'module'] : deps; + for (i = 0; i < deps.length; i += 1) { + map = makeMap(deps[i], relParts); + depName = map.f; + + //Fast path CommonJS standard dependencies. + if (depName === "require") { + args[i] = handlers.require(name); + } else if (depName === "exports") { + //CommonJS module spec 1.1 + args[i] = handlers.exports(name); + usingExports = true; + } else if (depName === "module") { + //CommonJS module spec 1.1 + cjsModule = args[i] = handlers.module(name); + } else if (hasProp(defined, depName) || + hasProp(waiting, depName) || + hasProp(defining, depName)) { + args[i] = callDep(depName); + } else if (map.p) { + map.p.load(map.n, makeRequire(relName, true), makeLoad(depName), {}); + args[i] = defined[depName]; + } else { + throw new Error(name + ' missing ' + depName); + } + } + + ret = callback ? callback.apply(defined[name], args) : undefined; + + if (name) { + //If setting exports via "module" is in play, + //favor that over return value and exports. After that, + //favor a non-undefined return value over exports use. + if (cjsModule && cjsModule.exports !== undef && + cjsModule.exports !== defined[name]) { + defined[name] = cjsModule.exports; + } else if (ret !== undef || !usingExports) { + //Use the return value from the function. + defined[name] = ret; + } + } + } else if (name) { + //May just be an object definition for the module. Only + //worry about defining if have a module name. + defined[name] = callback; + } + }; + + requirejs = require = req = function (deps, callback, relName, forceSync, alt) { + if (typeof deps === "string") { + if (handlers[deps]) { + //callback in this case is really relName + return handlers[deps](callback); + } + //Just return the module wanted. In this scenario, the + //deps arg is the module name, and second arg (if passed) + //is just the relName. + //Normalize module name, if it contains . or .. + return callDep(makeMap(deps, makeRelParts(callback)).f); + } else if (!deps.splice) { + //deps is a config object, not an array. + config = deps; + if (config.deps) { + req(config.deps, config.callback); + } + if (!callback) { + return; + } + + if (callback.splice) { + //callback is an array, which means it is a dependency list. + //Adjust args if there are dependencies + deps = callback; + callback = relName; + relName = null; + } else { + deps = undef; + } + } + + //Support require(['a']) + callback = callback || function () {}; + + //If relName is a function, it is an errback handler, + //so remove it. + if (typeof relName === 'function') { + relName = forceSync; + forceSync = alt; + } + + //Simulate async callback; + if (forceSync) { + main(undef, deps, callback, relName); + } else { + //Using a non-zero value because of concern for what old browsers + //do, and latest browsers "upgrade" to 4 if lower value is used: + //http://www.whatwg.org/specs/web-apps/current-work/multipage/timers.html#dom-windowtimers-settimeout: + //If want a value immediately, use require('id') instead -- something + //that works in almond on the global level, but not guaranteed and + //unlikely to work in other AMD implementations. + setTimeout(function () { + main(undef, deps, callback, relName); + }, 4); + } + + return req; + }; + + /** + * Just drops the config on the floor, but returns req in case + * the config return value is used. + */ + req.config = function (cfg) { + return req(cfg); + }; + + /** + * Expose module registry for debugging and tooling + */ + requirejs._defined = defined; + + define = function (name, deps, callback) { + if (typeof name !== 'string') { + throw new Error('See almond README: incorrect module build, no module name'); + } + + //This module may not have dependencies + if (!deps.splice) { + //deps is not an array, so probably means + //an object literal or factory function for + //the value. Adjust args. + callback = deps; + deps = []; + } + + if (!hasProp(defined, name) && !hasProp(waiting, name)) { + waiting[name] = [name, deps, callback]; + } + }; + + define.amd = { + jQuery: true + }; +}()); + +S2.requirejs = requirejs;S2.require = require;S2.define = define; +} +}()); +S2.define("almond", function(){}); + +/* global jQuery:false, $:false */ +S2.define('jquery',[],function () { + var _$ = jQuery || $; + + if (_$ == null && console && console.error) { + console.error( + 'Select2: An instance of jQuery or a jQuery-compatible library was not ' + + 'found. Make sure that you are including jQuery before Select2 on your ' + + 'web page.' + ); + } + + return _$; +}); + +S2.define('select2/utils',[ + 'jquery' +], function ($) { + var Utils = {}; + + Utils.Extend = function (ChildClass, SuperClass) { + var __hasProp = {}.hasOwnProperty; + + function BaseConstructor () { + this.constructor = ChildClass; + } + + for (var key in SuperClass) { + if (__hasProp.call(SuperClass, key)) { + ChildClass[key] = SuperClass[key]; + } + } + + BaseConstructor.prototype = SuperClass.prototype; + ChildClass.prototype = new BaseConstructor(); + ChildClass.__super__ = SuperClass.prototype; + + return ChildClass; + }; + + function getMethods (theClass) { + var proto = theClass.prototype; + + var methods = []; + + for (var methodName in proto) { + var m = proto[methodName]; + + if (typeof m !== 'function') { + continue; + } + + if (methodName === 'constructor') { + continue; + } + + methods.push(methodName); + } + + return methods; + } + + Utils.Decorate = function (SuperClass, DecoratorClass) { + var decoratedMethods = getMethods(DecoratorClass); + var superMethods = getMethods(SuperClass); + + function DecoratedClass () { + var unshift = Array.prototype.unshift; + + var argCount = DecoratorClass.prototype.constructor.length; + + var calledConstructor = SuperClass.prototype.constructor; + + if (argCount > 0) { + unshift.call(arguments, SuperClass.prototype.constructor); + + calledConstructor = DecoratorClass.prototype.constructor; + } + + calledConstructor.apply(this, arguments); + } + + DecoratorClass.displayName = SuperClass.displayName; + + function ctr () { + this.constructor = DecoratedClass; + } + + DecoratedClass.prototype = new ctr(); + + for (var m = 0; m < superMethods.length; m++) { + var superMethod = superMethods[m]; + + DecoratedClass.prototype[superMethod] = + SuperClass.prototype[superMethod]; + } + + var calledMethod = function (methodName) { + // Stub out the original method if it's not decorating an actual method + var originalMethod = function () {}; + + if (methodName in DecoratedClass.prototype) { + originalMethod = DecoratedClass.prototype[methodName]; + } + + var decoratedMethod = DecoratorClass.prototype[methodName]; + + return function () { + var unshift = Array.prototype.unshift; + + unshift.call(arguments, originalMethod); + + return decoratedMethod.apply(this, arguments); + }; + }; + + for (var d = 0; d < decoratedMethods.length; d++) { + var decoratedMethod = decoratedMethods[d]; + + DecoratedClass.prototype[decoratedMethod] = calledMethod(decoratedMethod); + } + + return DecoratedClass; + }; + + var Observable = function () { + this.listeners = {}; + }; + + Observable.prototype.on = function (event, callback) { + this.listeners = this.listeners || {}; + + if (event in this.listeners) { + this.listeners[event].push(callback); + } else { + this.listeners[event] = [callback]; + } + }; + + Observable.prototype.trigger = function (event) { + var slice = Array.prototype.slice; + var params = slice.call(arguments, 1); + + this.listeners = this.listeners || {}; + + // Params should always come in as an array + if (params == null) { + params = []; + } + + // If there are no arguments to the event, use a temporary object + if (params.length === 0) { + params.push({}); + } + + // Set the `_type` of the first object to the event + params[0]._type = event; + + if (event in this.listeners) { + this.invoke(this.listeners[event], slice.call(arguments, 1)); + } + + if ('*' in this.listeners) { + this.invoke(this.listeners['*'], arguments); + } + }; + + Observable.prototype.invoke = function (listeners, params) { + for (var i = 0, len = listeners.length; i < len; i++) { + listeners[i].apply(this, params); + } + }; + + Utils.Observable = Observable; + + Utils.generateChars = function (length) { + var chars = ''; + + for (var i = 0; i < length; i++) { + var randomChar = Math.floor(Math.random() * 36); + chars += randomChar.toString(36); + } + + return chars; + }; + + Utils.bind = function (func, context) { + return function () { + func.apply(context, arguments); + }; + }; + + Utils._convertData = function (data) { + for (var originalKey in data) { + var keys = originalKey.split('-'); + + var dataLevel = data; + + if (keys.length === 1) { + continue; + } + + for (var k = 0; k < keys.length; k++) { + var key = keys[k]; + + // Lowercase the first letter + // By default, dash-separated becomes camelCase + key = key.substring(0, 1).toLowerCase() + key.substring(1); + + if (!(key in dataLevel)) { + dataLevel[key] = {}; + } + + if (k == keys.length - 1) { + dataLevel[key] = data[originalKey]; + } + + dataLevel = dataLevel[key]; + } + + delete data[originalKey]; + } + + return data; + }; + + Utils.hasScroll = function (index, el) { + // Adapted from the function created by @ShadowScripter + // and adapted by @BillBarry on the Stack Exchange Code Review website. + // The original code can be found at + // http://codereview.stackexchange.com/q/13338 + // and was designed to be used with the Sizzle selector engine. + + var $el = $(el); + var overflowX = el.style.overflowX; + var overflowY = el.style.overflowY; + + //Check both x and y declarations + if (overflowX === overflowY && + (overflowY === 'hidden' || overflowY === 'visible')) { + return false; + } + + if (overflowX === 'scroll' || overflowY === 'scroll') { + return true; + } + + return ($el.innerHeight() < el.scrollHeight || + $el.innerWidth() < el.scrollWidth); + }; + + Utils.escapeMarkup = function (markup) { + var replaceMap = { + '\\': '\', + '&': '&', + '<': '<', + '>': '>', + '"': '"', + '\'': ''', + '/': '/' + }; + + // Do not try to escape the markup if it's not a string + if (typeof markup !== 'string') { + return markup; + } + + return String(markup).replace(/[&<>"'\/\\]/g, function (match) { + return replaceMap[match]; + }); + }; + + // Append an array of jQuery nodes to a given element. + Utils.appendMany = function ($element, $nodes) { + // jQuery 1.7.x does not support $.fn.append() with an array + // Fall back to a jQuery object collection using $.fn.add() + if ($.fn.jquery.substr(0, 3) === '1.7') { + var $jqNodes = $(); + + $.map($nodes, function (node) { + $jqNodes = $jqNodes.add(node); + }); + + $nodes = $jqNodes; + } + + $element.append($nodes); + }; + + // Cache objects in Utils.__cache instead of $.data (see #4346) + Utils.__cache = {}; + + var id = 0; + Utils.GetUniqueElementId = function (element) { + // Get a unique element Id. If element has no id, + // creates a new unique number, stores it in the id + // attribute and returns the new id. + // If an id already exists, it simply returns it. + + var select2Id = element.getAttribute('data-select2-id'); + if (select2Id == null) { + // If element has id, use it. + if (element.id) { + select2Id = element.id; + element.setAttribute('data-select2-id', select2Id); + } else { + element.setAttribute('data-select2-id', ++id); + select2Id = id.toString(); + } + } + return select2Id; + }; + + Utils.StoreData = function (element, name, value) { + // Stores an item in the cache for a specified element. + // name is the cache key. + var id = Utils.GetUniqueElementId(element); + if (!Utils.__cache[id]) { + Utils.__cache[id] = {}; + } + + Utils.__cache[id][name] = value; + }; + + Utils.GetData = function (element, name) { + // Retrieves a value from the cache by its key (name) + // name is optional. If no name specified, return + // all cache items for the specified element. + // and for a specified element. + var id = Utils.GetUniqueElementId(element); + if (name) { + if (Utils.__cache[id]) { + if (Utils.__cache[id][name] != null) { + return Utils.__cache[id][name]; + } + return $(element).data(name); // Fallback to HTML5 data attribs. + } + return $(element).data(name); // Fallback to HTML5 data attribs. + } else { + return Utils.__cache[id]; + } + }; + + Utils.RemoveData = function (element) { + // Removes all cached items for a specified element. + var id = Utils.GetUniqueElementId(element); + if (Utils.__cache[id] != null) { + delete Utils.__cache[id]; + } + + element.removeAttribute('data-select2-id'); + }; + + return Utils; +}); + +S2.define('select2/results',[ + 'jquery', + './utils' +], function ($, Utils) { + function Results ($element, options, dataAdapter) { + this.$element = $element; + this.data = dataAdapter; + this.options = options; + + Results.__super__.constructor.call(this); + } + + Utils.Extend(Results, Utils.Observable); + + Results.prototype.render = function () { + var $results = $( + '<ul class="select2-results__options" role="listbox"></ul>' + ); + + if (this.options.get('multiple')) { + $results.attr('aria-multiselectable', 'true'); + } + + this.$results = $results; + + return $results; + }; + + Results.prototype.clear = function () { + this.$results.empty(); + }; + + Results.prototype.displayMessage = function (params) { + var escapeMarkup = this.options.get('escapeMarkup'); + + this.clear(); + this.hideLoading(); + + var $message = $( + '<li role="alert" aria-live="assertive"' + + ' class="select2-results__option"></li>' + ); + + var message = this.options.get('translations').get(params.message); + + $message.append( + escapeMarkup( + message(params.args) + ) + ); + + $message[0].className += ' select2-results__message'; + + this.$results.append($message); + }; + + Results.prototype.hideMessages = function () { + this.$results.find('.select2-results__message').remove(); + }; + + Results.prototype.append = function (data) { + this.hideLoading(); + + var $options = []; + + if (data.results == null || data.results.length === 0) { + if (this.$results.children().length === 0) { + this.trigger('results:message', { + message: 'noResults' + }); + } + + return; + } + + data.results = this.sort(data.results); + + for (var d = 0; d < data.results.length; d++) { + var item = data.results[d]; + + var $option = this.option(item); + + $options.push($option); + } + + this.$results.append($options); + }; + + Results.prototype.position = function ($results, $dropdown) { + var $resultsContainer = $dropdown.find('.select2-results'); + $resultsContainer.append($results); + }; + + Results.prototype.sort = function (data) { + var sorter = this.options.get('sorter'); + + return sorter(data); + }; + + Results.prototype.highlightFirstItem = function () { + var $options = this.$results + .find('.select2-results__option[aria-selected]'); + + var $selected = $options.filter('[aria-selected=true]'); + + // Check if there are any selected options + if ($selected.length > 0) { + // If there are selected options, highlight the first + $selected.first().trigger('mouseenter'); + } else { + // If there are no selected options, highlight the first option + // in the dropdown + $options.first().trigger('mouseenter'); + } + + this.ensureHighlightVisible(); + }; + + Results.prototype.setClasses = function () { + var self = this; + + this.data.current(function (selected) { + var selectedIds = $.map(selected, function (s) { + return s.id.toString(); + }); + + var $options = self.$results + .find('.select2-results__option[aria-selected]'); + + $options.each(function () { + var $option = $(this); + + var item = Utils.GetData(this, 'data'); + + // id needs to be converted to a string when comparing + var id = '' + item.id; + + if ((item.element != null && item.element.selected) || + (item.element == null && $.inArray(id, selectedIds) > -1)) { + $option.attr('aria-selected', 'true'); + } else { + $option.attr('aria-selected', 'false'); + } + }); + + }); + }; + + Results.prototype.showLoading = function (params) { + this.hideLoading(); + + var loadingMore = this.options.get('translations').get('searching'); + + var loading = { + disabled: true, + loading: true, + text: loadingMore(params) + }; + var $loading = this.option(loading); + $loading.className += ' loading-results'; + + this.$results.prepend($loading); + }; + + Results.prototype.hideLoading = function () { + this.$results.find('.loading-results').remove(); + }; + + Results.prototype.option = function (data) { + var option = document.createElement('li'); + option.className = 'select2-results__option'; + + var attrs = { + 'role': 'option', + 'aria-selected': 'false' + }; + + var matches = window.Element.prototype.matches || + window.Element.prototype.msMatchesSelector || + window.Element.prototype.webkitMatchesSelector; + + if ((data.element != null && matches.call(data.element, ':disabled')) || + (data.element == null && data.disabled)) { + delete attrs['aria-selected']; + attrs['aria-disabled'] = 'true'; + } + + if (data.id == null) { + delete attrs['aria-selected']; + } + + if (data._resultId != null) { + option.id = data._resultId; + } + + if (data.title) { + option.title = data.title; + } + + if (data.children) { + attrs.role = 'group'; + attrs['aria-label'] = data.text; + delete attrs['aria-selected']; + } + + for (var attr in attrs) { + var val = attrs[attr]; + + option.setAttribute(attr, val); + } + + if (data.children) { + var $option = $(option); + + var label = document.createElement('strong'); + label.className = 'select2-results__group'; + + var $label = $(label); + this.template(data, label); + + var $children = []; + + for (var c = 0; c < data.children.length; c++) { + var child = data.children[c]; + + var $child = this.option(child); + + $children.push($child); + } + + var $childrenContainer = $('<ul></ul>', { + 'class': 'select2-results__options select2-results__options--nested' + }); + + $childrenContainer.append($children); + + $option.append(label); + $option.append($childrenContainer); + } else { + this.template(data, option); + } + + Utils.StoreData(option, 'data', data); + + return option; + }; + + Results.prototype.bind = function (container, $container) { + var self = this; + + var id = container.id + '-results'; + + this.$results.attr('id', id); + + container.on('results:all', function (params) { + self.clear(); + self.append(params.data); + + if (container.isOpen()) { + self.setClasses(); + self.highlightFirstItem(); + } + }); + + container.on('results:append', function (params) { + self.append(params.data); + + if (container.isOpen()) { + self.setClasses(); + } + }); + + container.on('query', function (params) { + self.hideMessages(); + self.showLoading(params); + }); + + container.on('select', function () { + if (!container.isOpen()) { + return; + } + + self.setClasses(); + + if (self.options.get('scrollAfterSelect')) { + self.highlightFirstItem(); + } + }); + + container.on('unselect', function () { + if (!container.isOpen()) { + return; + } + + self.setClasses(); + + if (self.options.get('scrollAfterSelect')) { + self.highlightFirstItem(); + } + }); + + container.on('open', function () { + // When the dropdown is open, aria-expended="true" + self.$results.attr('aria-expanded', 'true'); + self.$results.attr('aria-hidden', 'false'); + + self.setClasses(); + self.ensureHighlightVisible(); + }); + + container.on('close', function () { + // When the dropdown is closed, aria-expended="false" + self.$results.attr('aria-expanded', 'false'); + self.$results.attr('aria-hidden', 'true'); + self.$results.removeAttr('aria-activedescendant'); + }); + + container.on('results:toggle', function () { + var $highlighted = self.getHighlightedResults(); + + if ($highlighted.length === 0) { + return; + } + + $highlighted.trigger('mouseup'); + }); + + container.on('results:select', function () { + var $highlighted = self.getHighlightedResults(); + + if ($highlighted.length === 0) { + return; + } + + var data = Utils.GetData($highlighted[0], 'data'); + + if ($highlighted.attr('aria-selected') == 'true') { + self.trigger('close', {}); + } else { + self.trigger('select', { + data: data + }); + } + }); + + container.on('results:previous', function () { + var $highlighted = self.getHighlightedResults(); + + var $options = self.$results.find('[aria-selected]'); + + var currentIndex = $options.index($highlighted); + + // If we are already at the top, don't move further + // If no options, currentIndex will be -1 + if (currentIndex <= 0) { + return; + } + + var nextIndex = currentIndex - 1; + + // If none are highlighted, highlight the first + if ($highlighted.length === 0) { + nextIndex = 0; + } + + var $next = $options.eq(nextIndex); + + $next.trigger('mouseenter'); + + var currentOffset = self.$results.offset().top; + var nextTop = $next.offset().top; + var nextOffset = self.$results.scrollTop() + (nextTop - currentOffset); + + if (nextIndex === 0) { + self.$results.scrollTop(0); + } else if (nextTop - currentOffset < 0) { + self.$results.scrollTop(nextOffset); + } + }); + + container.on('results:next', function () { + var $highlighted = self.getHighlightedResults(); + + var $options = self.$results.find('[aria-selected]'); + + var currentIndex = $options.index($highlighted); + + var nextIndex = currentIndex + 1; + + // If we are at the last option, stay there + if (nextIndex >= $options.length) { + return; + } + + var $next = $options.eq(nextIndex); + + $next.trigger('mouseenter'); + + var currentOffset = self.$results.offset().top + + self.$results.outerHeight(false); + var nextBottom = $next.offset().top + $next.outerHeight(false); + var nextOffset = self.$results.scrollTop() + nextBottom - currentOffset; + + if (nextIndex === 0) { + self.$results.scrollTop(0); + } else if (nextBottom > currentOffset) { + self.$results.scrollTop(nextOffset); + } + }); + + container.on('results:focus', function (params) { + params.element.addClass('select2-results__option--highlighted'); + }); + + container.on('results:message', function (params) { + self.displayMessage(params); + }); + + if ($.fn.mousewheel) { + this.$results.on('mousewheel', function (e) { + var top = self.$results.scrollTop(); + + var bottom = self.$results.get(0).scrollHeight - top + e.deltaY; + + var isAtTop = e.deltaY > 0 && top - e.deltaY <= 0; + var isAtBottom = e.deltaY < 0 && bottom <= self.$results.height(); + + if (isAtTop) { + self.$results.scrollTop(0); + + e.preventDefault(); + e.stopPropagation(); + } else if (isAtBottom) { + self.$results.scrollTop( + self.$results.get(0).scrollHeight - self.$results.height() + ); + + e.preventDefault(); + e.stopPropagation(); + } + }); + } + + this.$results.on('mouseup', '.select2-results__option[aria-selected]', + function (evt) { + var $this = $(this); + + var data = Utils.GetData(this, 'data'); + + if ($this.attr('aria-selected') === 'true') { + if (self.options.get('multiple')) { + self.trigger('unselect', { + originalEvent: evt, + data: data + }); + } else { + self.trigger('close', {}); + } + + return; + } + + self.trigger('select', { + originalEvent: evt, + data: data + }); + }); + + this.$results.on('mouseenter', '.select2-results__option[aria-selected]', + function (evt) { + var data = Utils.GetData(this, 'data'); + + self.getHighlightedResults() + .removeClass('select2-results__option--highlighted'); + + self.trigger('results:focus', { + data: data, + element: $(this) + }); + }); + }; + + Results.prototype.getHighlightedResults = function () { + var $highlighted = this.$results + .find('.select2-results__option--highlighted'); + + return $highlighted; + }; + + Results.prototype.destroy = function () { + this.$results.remove(); + }; + + Results.prototype.ensureHighlightVisible = function () { + var $highlighted = this.getHighlightedResults(); + + if ($highlighted.length === 0) { + return; + } + + var $options = this.$results.find('[aria-selected]'); + + var currentIndex = $options.index($highlighted); + + var currentOffset = this.$results.offset().top; + var nextTop = $highlighted.offset().top; + var nextOffset = this.$results.scrollTop() + (nextTop - currentOffset); + + var offsetDelta = nextTop - currentOffset; + nextOffset -= $highlighted.outerHeight(false) * 2; + + if (currentIndex <= 2) { + this.$results.scrollTop(0); + } else if (offsetDelta > this.$results.outerHeight() || offsetDelta < 0) { + this.$results.scrollTop(nextOffset); + } + }; + + Results.prototype.template = function (result, container) { + var template = this.options.get('templateResult'); + var escapeMarkup = this.options.get('escapeMarkup'); + + var content = template(result, container); + + if (content == null) { + container.style.display = 'none'; + } else if (typeof content === 'string') { + container.innerHTML = escapeMarkup(content); + } else { + $(container).append(content); + } + }; + + return Results; +}); + +S2.define('select2/keys',[ + +], function () { + var KEYS = { + BACKSPACE: 8, + TAB: 9, + ENTER: 13, + SHIFT: 16, + CTRL: 17, + ALT: 18, + ESC: 27, + SPACE: 32, + PAGE_UP: 33, + PAGE_DOWN: 34, + END: 35, + HOME: 36, + LEFT: 37, + UP: 38, + RIGHT: 39, + DOWN: 40, + DELETE: 46 + }; + + return KEYS; +}); + +S2.define('select2/selection/base',[ + 'jquery', + '../utils', + '../keys' +], function ($, Utils, KEYS) { + function BaseSelection ($element, options) { + this.$element = $element; + this.options = options; + + BaseSelection.__super__.constructor.call(this); + } + + Utils.Extend(BaseSelection, Utils.Observable); + + BaseSelection.prototype.render = function () { + var $selection = $( + '<span class="select2-selection" role="combobox" ' + + ' aria-haspopup="true" aria-expanded="false">' + + '</span>' + ); + + this._tabindex = 0; + + if (Utils.GetData(this.$element[0], 'old-tabindex') != null) { + this._tabindex = Utils.GetData(this.$element[0], 'old-tabindex'); + } else if (this.$element.attr('tabindex') != null) { + this._tabindex = this.$element.attr('tabindex'); + } + + $selection.attr('title', this.$element.attr('title')); + $selection.attr('tabindex', this._tabindex); + $selection.attr('aria-disabled', 'false'); + + this.$selection = $selection; + + return $selection; + }; + + BaseSelection.prototype.bind = function (container, $container) { + var self = this; + + var resultsId = container.id + '-results'; + + this.container = container; + + this.$selection.on('focus', function (evt) { + self.trigger('focus', evt); + }); + + this.$selection.on('blur', function (evt) { + self._handleBlur(evt); + }); + + this.$selection.on('keydown', function (evt) { + self.trigger('keypress', evt); + + if (evt.which === KEYS.SPACE) { + evt.preventDefault(); + } + }); + + container.on('results:focus', function (params) { + self.$selection.attr('aria-activedescendant', params.data._resultId); + }); + + container.on('selection:update', function (params) { + self.update(params.data); + }); + + container.on('open', function () { + // When the dropdown is open, aria-expanded="true" + self.$selection.attr('aria-expanded', 'true'); + self.$selection.attr('aria-owns', resultsId); + + self._attachCloseHandler(container); + }); + + container.on('close', function () { + // When the dropdown is closed, aria-expanded="false" + self.$selection.attr('aria-expanded', 'false'); + self.$selection.removeAttr('aria-activedescendant'); + self.$selection.removeAttr('aria-owns'); + + self.$selection.trigger('focus'); + + self._detachCloseHandler(container); + }); + + container.on('enable', function () { + self.$selection.attr('tabindex', self._tabindex); + self.$selection.attr('aria-disabled', 'false'); + }); + + container.on('disable', function () { + self.$selection.attr('tabindex', '-1'); + self.$selection.attr('aria-disabled', 'true'); + }); + }; + + BaseSelection.prototype._handleBlur = function (evt) { + var self = this; + + // This needs to be delayed as the active element is the body when the tab + // key is pressed, possibly along with others. + window.setTimeout(function () { + // Don't trigger `blur` if the focus is still in the selection + if ( + (document.activeElement == self.$selection[0]) || + ($.contains(self.$selection[0], document.activeElement)) + ) { + return; + } + + self.trigger('blur', evt); + }, 1); + }; + + BaseSelection.prototype._attachCloseHandler = function (container) { + + $(document.body).on('mousedown.select2.' + container.id, function (e) { + var $target = $(e.target); + + var $select = $target.closest('.select2'); + + var $all = $('.select2.select2-container--open'); + + $all.each(function () { + if (this == $select[0]) { + return; + } + + var $element = Utils.GetData(this, 'element'); + + $element.select2('close'); + }); + }); + }; + + BaseSelection.prototype._detachCloseHandler = function (container) { + $(document.body).off('mousedown.select2.' + container.id); + }; + + BaseSelection.prototype.position = function ($selection, $container) { + var $selectionContainer = $container.find('.selection'); + $selectionContainer.append($selection); + }; + + BaseSelection.prototype.destroy = function () { + this._detachCloseHandler(this.container); + }; + + BaseSelection.prototype.update = function (data) { + throw new Error('The `update` method must be defined in child classes.'); + }; + + /** + * Helper method to abstract the "enabled" (not "disabled") state of this + * object. + * + * @return {true} if the instance is not disabled. + * @return {false} if the instance is disabled. + */ + BaseSelection.prototype.isEnabled = function () { + return !this.isDisabled(); + }; + + /** + * Helper method to abstract the "disabled" state of this object. + * + * @return {true} if the disabled option is true. + * @return {false} if the disabled option is false. + */ + BaseSelection.prototype.isDisabled = function () { + return this.options.get('disabled'); + }; + + return BaseSelection; +}); + +S2.define('select2/selection/single',[ + 'jquery', + './base', + '../utils', + '../keys' +], function ($, BaseSelection, Utils, KEYS) { + function SingleSelection () { + SingleSelection.__super__.constructor.apply(this, arguments); + } + + Utils.Extend(SingleSelection, BaseSelection); + + SingleSelection.prototype.render = function () { + var $selection = SingleSelection.__super__.render.call(this); + + $selection.addClass('select2-selection--single'); + + $selection.html( + '<span class="select2-selection__rendered"></span>' + + '<span class="select2-selection__arrow" role="presentation">' + + '<b role="presentation"></b>' + + '</span>' + ); + + return $selection; + }; + + SingleSelection.prototype.bind = function (container, $container) { + var self = this; + + SingleSelection.__super__.bind.apply(this, arguments); + + var id = container.id + '-container'; + + this.$selection.find('.select2-selection__rendered') + .attr('id', id) + .attr('role', 'textbox') + .attr('aria-readonly', 'true'); + this.$selection.attr('aria-labelledby', id); + + this.$selection.on('mousedown', function (evt) { + // Only respond to left clicks + if (evt.which !== 1) { + return; + } + + self.trigger('toggle', { + originalEvent: evt + }); + }); + + this.$selection.on('focus', function (evt) { + // User focuses on the container + }); + + this.$selection.on('blur', function (evt) { + // User exits the container + }); + + container.on('focus', function (evt) { + if (!container.isOpen()) { + self.$selection.trigger('focus'); + } + }); + }; + + SingleSelection.prototype.clear = function () { + var $rendered = this.$selection.find('.select2-selection__rendered'); + $rendered.empty(); + $rendered.removeAttr('title'); // clear tooltip on empty + }; + + SingleSelection.prototype.display = function (data, container) { + var template = this.options.get('templateSelection'); + var escapeMarkup = this.options.get('escapeMarkup'); + + return escapeMarkup(template(data, container)); + }; + + SingleSelection.prototype.selectionContainer = function () { + return $('<span></span>'); + }; + + SingleSelection.prototype.update = function (data) { + if (data.length === 0) { + this.clear(); + return; + } + + var selection = data[0]; + + var $rendered = this.$selection.find('.select2-selection__rendered'); + var formatted = this.display(selection, $rendered); + + $rendered.empty().append(formatted); + + var title = selection.title || selection.text; + + if (title) { + $rendered.attr('title', title); + } else { + $rendered.removeAttr('title'); + } + }; + + return SingleSelection; +}); + +S2.define('select2/selection/multiple',[ + 'jquery', + './base', + '../utils' +], function ($, BaseSelection, Utils) { + function MultipleSelection ($element, options) { + MultipleSelection.__super__.constructor.apply(this, arguments); + } + + Utils.Extend(MultipleSelection, BaseSelection); + + MultipleSelection.prototype.render = function () { + var $selection = MultipleSelection.__super__.render.call(this); + + $selection.addClass('select2-selection--multiple'); + + $selection.html( + '<ul class="select2-selection__rendered"></ul>' + ); + + return $selection; + }; + + MultipleSelection.prototype.bind = function (container, $container) { + var self = this; + + MultipleSelection.__super__.bind.apply(this, arguments); + + this.$selection.on('click', function (evt) { + self.trigger('toggle', { + originalEvent: evt + }); + }); + + this.$selection.on( + 'click', + '.select2-selection__choice__remove', + function (evt) { + // Ignore the event if it is disabled + if (self.isDisabled()) { + return; + } + + var $remove = $(this); + var $selection = $remove.parent(); + + var data = Utils.GetData($selection[0], 'data'); + + self.trigger('unselect', { + originalEvent: evt, + data: data + }); + } + ); + }; + + MultipleSelection.prototype.clear = function () { + var $rendered = this.$selection.find('.select2-selection__rendered'); + $rendered.empty(); + $rendered.removeAttr('title'); + }; + + MultipleSelection.prototype.display = function (data, container) { + var template = this.options.get('templateSelection'); + var escapeMarkup = this.options.get('escapeMarkup'); + + return escapeMarkup(template(data, container)); + }; + + MultipleSelection.prototype.selectionContainer = function () { + var $container = $( + '<li class="select2-selection__choice">' + + '<span class="select2-selection__choice__remove" role="presentation">' + + '×' + + '</span>' + + '</li>' + ); + + return $container; + }; + + MultipleSelection.prototype.update = function (data) { + this.clear(); + + if (data.length === 0) { + return; + } + + var $selections = []; + + for (var d = 0; d < data.length; d++) { + var selection = data[d]; + + var $selection = this.selectionContainer(); + var formatted = this.display(selection, $selection); + + $selection.append(formatted); + + var title = selection.title || selection.text; + + if (title) { + $selection.attr('title', title); + } + + Utils.StoreData($selection[0], 'data', selection); + + $selections.push($selection); + } + + var $rendered = this.$selection.find('.select2-selection__rendered'); + + Utils.appendMany($rendered, $selections); + }; + + return MultipleSelection; +}); + +S2.define('select2/selection/placeholder',[ + '../utils' +], function (Utils) { + function Placeholder (decorated, $element, options) { + this.placeholder = this.normalizePlaceholder(options.get('placeholder')); + + decorated.call(this, $element, options); + } + + Placeholder.prototype.normalizePlaceholder = function (_, placeholder) { + if (typeof placeholder === 'string') { + placeholder = { + id: '', + text: placeholder + }; + } + + return placeholder; + }; + + Placeholder.prototype.createPlaceholder = function (decorated, placeholder) { + var $placeholder = this.selectionContainer(); + + $placeholder.html(this.display(placeholder)); + $placeholder.addClass('select2-selection__placeholder') + .removeClass('select2-selection__choice'); + + return $placeholder; + }; + + Placeholder.prototype.update = function (decorated, data) { + var singlePlaceholder = ( + data.length == 1 && data[0].id != this.placeholder.id + ); + var multipleSelections = data.length > 1; + + if (multipleSelections || singlePlaceholder) { + return decorated.call(this, data); + } + + this.clear(); + + var $placeholder = this.createPlaceholder(this.placeholder); + + this.$selection.find('.select2-selection__rendered').append($placeholder); + }; + + return Placeholder; +}); + +S2.define('select2/selection/allowClear',[ + 'jquery', + '../keys', + '../utils' +], function ($, KEYS, Utils) { + function AllowClear () { } + + AllowClear.prototype.bind = function (decorated, container, $container) { + var self = this; + + decorated.call(this, container, $container); + + if (this.placeholder == null) { + if (this.options.get('debug') && window.console && console.error) { + console.error( + 'Select2: The `allowClear` option should be used in combination ' + + 'with the `placeholder` option.' + ); + } + } + + this.$selection.on('mousedown', '.select2-selection__clear', + function (evt) { + self._handleClear(evt); + }); + + container.on('keypress', function (evt) { + self._handleKeyboardClear(evt, container); + }); + }; + + AllowClear.prototype._handleClear = function (_, evt) { + // Ignore the event if it is disabled + if (this.isDisabled()) { + return; + } + + var $clear = this.$selection.find('.select2-selection__clear'); + + // Ignore the event if nothing has been selected + if ($clear.length === 0) { + return; + } + + evt.stopPropagation(); + + var data = Utils.GetData($clear[0], 'data'); + + var previousVal = this.$element.val(); + this.$element.val(this.placeholder.id); + + var unselectData = { + data: data + }; + this.trigger('clear', unselectData); + if (unselectData.prevented) { + this.$element.val(previousVal); + return; + } + + for (var d = 0; d < data.length; d++) { + unselectData = { + data: data[d] + }; + + // Trigger the `unselect` event, so people can prevent it from being + // cleared. + this.trigger('unselect', unselectData); + + // If the event was prevented, don't clear it out. + if (unselectData.prevented) { + this.$element.val(previousVal); + return; + } + } + + this.$element.trigger('input').trigger('change'); + + this.trigger('toggle', {}); + }; + + AllowClear.prototype._handleKeyboardClear = function (_, evt, container) { + if (container.isOpen()) { + return; + } + + if (evt.which == KEYS.DELETE || evt.which == KEYS.BACKSPACE) { + this._handleClear(evt); + } + }; + + AllowClear.prototype.update = function (decorated, data) { + decorated.call(this, data); + + if (this.$selection.find('.select2-selection__placeholder').length > 0 || + data.length === 0) { + return; + } + + var removeAll = this.options.get('translations').get('removeAllItems'); + + var $remove = $( + '<span class="select2-selection__clear" title="' + removeAll() +'">' + + '×' + + '</span>' + ); + Utils.StoreData($remove[0], 'data', data); + + this.$selection.find('.select2-selection__rendered').prepend($remove); + }; + + return AllowClear; +}); + +S2.define('select2/selection/search',[ + 'jquery', + '../utils', + '../keys' +], function ($, Utils, KEYS) { + function Search (decorated, $element, options) { + decorated.call(this, $element, options); + } + + Search.prototype.render = function (decorated) { + var $search = $( + '<li class="select2-search select2-search--inline">' + + '<input class="select2-search__field" type="search" tabindex="-1"' + + ' autocomplete="off" autocorrect="off" autocapitalize="none"' + + ' spellcheck="false" role="searchbox" aria-autocomplete="list" />' + + '</li>' + ); + + this.$searchContainer = $search; + this.$search = $search.find('input'); + + var $rendered = decorated.call(this); + + this._transferTabIndex(); + + return $rendered; + }; + + Search.prototype.bind = function (decorated, container, $container) { + var self = this; + + var resultsId = container.id + '-results'; + + decorated.call(this, container, $container); + + container.on('open', function () { + self.$search.attr('aria-controls', resultsId); + self.$search.trigger('focus'); + }); + + container.on('close', function () { + self.$search.val(''); + self.$search.removeAttr('aria-controls'); + self.$search.removeAttr('aria-activedescendant'); + self.$search.trigger('focus'); + }); + + container.on('enable', function () { + self.$search.prop('disabled', false); + + self._transferTabIndex(); + }); + + container.on('disable', function () { + self.$search.prop('disabled', true); + }); + + container.on('focus', function (evt) { + self.$search.trigger('focus'); + }); + + container.on('results:focus', function (params) { + if (params.data._resultId) { + self.$search.attr('aria-activedescendant', params.data._resultId); + } else { + self.$search.removeAttr('aria-activedescendant'); + } + }); + + this.$selection.on('focusin', '.select2-search--inline', function (evt) { + self.trigger('focus', evt); + }); + + this.$selection.on('focusout', '.select2-search--inline', function (evt) { + self._handleBlur(evt); + }); + + this.$selection.on('keydown', '.select2-search--inline', function (evt) { + evt.stopPropagation(); + + self.trigger('keypress', evt); + + self._keyUpPrevented = evt.isDefaultPrevented(); + + var key = evt.which; + + if (key === KEYS.BACKSPACE && self.$search.val() === '') { + var $previousChoice = self.$searchContainer + .prev('.select2-selection__choice'); + + if ($previousChoice.length > 0) { + var item = Utils.GetData($previousChoice[0], 'data'); + + self.searchRemoveChoice(item); + + evt.preventDefault(); + } + } + }); + + this.$selection.on('click', '.select2-search--inline', function (evt) { + if (self.$search.val()) { + evt.stopPropagation(); + } + }); + + // Try to detect the IE version should the `documentMode` property that + // is stored on the document. This is only implemented in IE and is + // slightly cleaner than doing a user agent check. + // This property is not available in Edge, but Edge also doesn't have + // this bug. + var msie = document.documentMode; + var disableInputEvents = msie && msie <= 11; + + // Workaround for browsers which do not support the `input` event + // This will prevent double-triggering of events for browsers which support + // both the `keyup` and `input` events. + this.$selection.on( + 'input.searchcheck', + '.select2-search--inline', + function (evt) { + // IE will trigger the `input` event when a placeholder is used on a + // search box. To get around this issue, we are forced to ignore all + // `input` events in IE and keep using `keyup`. + if (disableInputEvents) { + self.$selection.off('input.search input.searchcheck'); + return; + } + + // Unbind the duplicated `keyup` event + self.$selection.off('keyup.search'); + } + ); + + this.$selection.on( + 'keyup.search input.search', + '.select2-search--inline', + function (evt) { + // IE will trigger the `input` event when a placeholder is used on a + // search box. To get around this issue, we are forced to ignore all + // `input` events in IE and keep using `keyup`. + if (disableInputEvents && evt.type === 'input') { + self.$selection.off('input.search input.searchcheck'); + return; + } + + var key = evt.which; + + // We can freely ignore events from modifier keys + if (key == KEYS.SHIFT || key == KEYS.CTRL || key == KEYS.ALT) { + return; + } + + // Tabbing will be handled during the `keydown` phase + if (key == KEYS.TAB) { + return; + } + + self.handleSearch(evt); + } + ); + }; + + /** + * This method will transfer the tabindex attribute from the rendered + * selection to the search box. This allows for the search box to be used as + * the primary focus instead of the selection container. + * + * @private + */ + Search.prototype._transferTabIndex = function (decorated) { + this.$search.attr('tabindex', this.$selection.attr('tabindex')); + this.$selection.attr('tabindex', '-1'); + }; + + Search.prototype.createPlaceholder = function (decorated, placeholder) { + this.$search.attr('placeholder', placeholder.text); + }; + + Search.prototype.update = function (decorated, data) { + var searchHadFocus = this.$search[0] == document.activeElement; + + this.$search.attr('placeholder', ''); + + decorated.call(this, data); + + this.$selection.find('.select2-selection__rendered') + .append(this.$searchContainer); + + this.resizeSearch(); + if (searchHadFocus) { + this.$search.trigger('focus'); + } + }; + + Search.prototype.handleSearch = function () { + this.resizeSearch(); + + if (!this._keyUpPrevented) { + var input = this.$search.val(); + + this.trigger('query', { + term: input + }); + } + + this._keyUpPrevented = false; + }; + + Search.prototype.searchRemoveChoice = function (decorated, item) { + this.trigger('unselect', { + data: item + }); + + this.$search.val(item.text); + this.handleSearch(); + }; + + Search.prototype.resizeSearch = function () { + this.$search.css('width', '25px'); + + var width = ''; + + if (this.$search.attr('placeholder') !== '') { + width = this.$selection.find('.select2-selection__rendered').width(); + } else { + var minimumWidth = this.$search.val().length + 1; + + width = (minimumWidth * 0.75) + 'em'; + } + + this.$search.css('width', width); + }; + + return Search; +}); + +S2.define('select2/selection/eventRelay',[ + 'jquery' +], function ($) { + function EventRelay () { } + + EventRelay.prototype.bind = function (decorated, container, $container) { + var self = this; + var relayEvents = [ + 'open', 'opening', + 'close', 'closing', + 'select', 'selecting', + 'unselect', 'unselecting', + 'clear', 'clearing' + ]; + + var preventableEvents = [ + 'opening', 'closing', 'selecting', 'unselecting', 'clearing' + ]; + + decorated.call(this, container, $container); + + container.on('*', function (name, params) { + // Ignore events that should not be relayed + if ($.inArray(name, relayEvents) === -1) { + return; + } + + // The parameters should always be an object + params = params || {}; + + // Generate the jQuery event for the Select2 event + var evt = $.Event('select2:' + name, { + params: params + }); + + self.$element.trigger(evt); + + // Only handle preventable events if it was one + if ($.inArray(name, preventableEvents) === -1) { + return; + } + + params.prevented = evt.isDefaultPrevented(); + }); + }; + + return EventRelay; +}); + +S2.define('select2/translation',[ + 'jquery', + 'require' +], function ($, require) { + function Translation (dict) { + this.dict = dict || {}; + } + + Translation.prototype.all = function () { + return this.dict; + }; + + Translation.prototype.get = function (key) { + return this.dict[key]; + }; + + Translation.prototype.extend = function (translation) { + this.dict = $.extend({}, translation.all(), this.dict); + }; + + // Static functions + + Translation._cache = {}; + + Translation.loadPath = function (path) { + if (!(path in Translation._cache)) { + var translations = require(path); + + Translation._cache[path] = translations; + } + + return new Translation(Translation._cache[path]); + }; + + return Translation; +}); + +S2.define('select2/diacritics',[ + +], function () { + var diacritics = { + '\u24B6': 'A', + '\uFF21': 'A', + '\u00C0': 'A', + '\u00C1': 'A', + '\u00C2': 'A', + '\u1EA6': 'A', + '\u1EA4': 'A', + '\u1EAA': 'A', + '\u1EA8': 'A', + '\u00C3': 'A', + '\u0100': 'A', + '\u0102': 'A', + '\u1EB0': 'A', + '\u1EAE': 'A', + '\u1EB4': 'A', + '\u1EB2': 'A', + '\u0226': 'A', + '\u01E0': 'A', + '\u00C4': 'A', + '\u01DE': 'A', + '\u1EA2': 'A', + '\u00C5': 'A', + '\u01FA': 'A', + '\u01CD': 'A', + '\u0200': 'A', + '\u0202': 'A', + '\u1EA0': 'A', + '\u1EAC': 'A', + '\u1EB6': 'A', + '\u1E00': 'A', + '\u0104': 'A', + '\u023A': 'A', + '\u2C6F': 'A', + '\uA732': 'AA', + '\u00C6': 'AE', + '\u01FC': 'AE', + '\u01E2': 'AE', + '\uA734': 'AO', + '\uA736': 'AU', + '\uA738': 'AV', + '\uA73A': 'AV', + '\uA73C': 'AY', + '\u24B7': 'B', + '\uFF22': 'B', + '\u1E02': 'B', + '\u1E04': 'B', + '\u1E06': 'B', + '\u0243': 'B', + '\u0182': 'B', + '\u0181': 'B', + '\u24B8': 'C', + '\uFF23': 'C', + '\u0106': 'C', + '\u0108': 'C', + '\u010A': 'C', + '\u010C': 'C', + '\u00C7': 'C', + '\u1E08': 'C', + '\u0187': 'C', + '\u023B': 'C', + '\uA73E': 'C', + '\u24B9': 'D', + '\uFF24': 'D', + '\u1E0A': 'D', + '\u010E': 'D', + '\u1E0C': 'D', + '\u1E10': 'D', + '\u1E12': 'D', + '\u1E0E': 'D', + '\u0110': 'D', + '\u018B': 'D', + '\u018A': 'D', + '\u0189': 'D', + '\uA779': 'D', + '\u01F1': 'DZ', + '\u01C4': 'DZ', + '\u01F2': 'Dz', + '\u01C5': 'Dz', + '\u24BA': 'E', + '\uFF25': 'E', + '\u00C8': 'E', + '\u00C9': 'E', + '\u00CA': 'E', + '\u1EC0': 'E', + '\u1EBE': 'E', + '\u1EC4': 'E', + '\u1EC2': 'E', + '\u1EBC': 'E', + '\u0112': 'E', + '\u1E14': 'E', + '\u1E16': 'E', + '\u0114': 'E', + '\u0116': 'E', + '\u00CB': 'E', + '\u1EBA': 'E', + '\u011A': 'E', + '\u0204': 'E', + '\u0206': 'E', + '\u1EB8': 'E', + '\u1EC6': 'E', + '\u0228': 'E', + '\u1E1C': 'E', + '\u0118': 'E', + '\u1E18': 'E', + '\u1E1A': 'E', + '\u0190': 'E', + '\u018E': 'E', + '\u24BB': 'F', + '\uFF26': 'F', + '\u1E1E': 'F', + '\u0191': 'F', + '\uA77B': 'F', + '\u24BC': 'G', + '\uFF27': 'G', + '\u01F4': 'G', + '\u011C': 'G', + '\u1E20': 'G', + '\u011E': 'G', + '\u0120': 'G', + '\u01E6': 'G', + '\u0122': 'G', + '\u01E4': 'G', + '\u0193': 'G', + '\uA7A0': 'G', + '\uA77D': 'G', + '\uA77E': 'G', + '\u24BD': 'H', + '\uFF28': 'H', + '\u0124': 'H', + '\u1E22': 'H', + '\u1E26': 'H', + '\u021E': 'H', + '\u1E24': 'H', + '\u1E28': 'H', + '\u1E2A': 'H', + '\u0126': 'H', + '\u2C67': 'H', + '\u2C75': 'H', + '\uA78D': 'H', + '\u24BE': 'I', + '\uFF29': 'I', + '\u00CC': 'I', + '\u00CD': 'I', + '\u00CE': 'I', + '\u0128': 'I', + '\u012A': 'I', + '\u012C': 'I', + '\u0130': 'I', + '\u00CF': 'I', + '\u1E2E': 'I', + '\u1EC8': 'I', + '\u01CF': 'I', + '\u0208': 'I', + '\u020A': 'I', + '\u1ECA': 'I', + '\u012E': 'I', + '\u1E2C': 'I', + '\u0197': 'I', + '\u24BF': 'J', + '\uFF2A': 'J', + '\u0134': 'J', + '\u0248': 'J', + '\u24C0': 'K', + '\uFF2B': 'K', + '\u1E30': 'K', + '\u01E8': 'K', + '\u1E32': 'K', + '\u0136': 'K', + '\u1E34': 'K', + '\u0198': 'K', + '\u2C69': 'K', + '\uA740': 'K', + '\uA742': 'K', + '\uA744': 'K', + '\uA7A2': 'K', + '\u24C1': 'L', + '\uFF2C': 'L', + '\u013F': 'L', + '\u0139': 'L', + '\u013D': 'L', + '\u1E36': 'L', + '\u1E38': 'L', + '\u013B': 'L', + '\u1E3C': 'L', + '\u1E3A': 'L', + '\u0141': 'L', + '\u023D': 'L', + '\u2C62': 'L', + '\u2C60': 'L', + '\uA748': 'L', + '\uA746': 'L', + '\uA780': 'L', + '\u01C7': 'LJ', + '\u01C8': 'Lj', + '\u24C2': 'M', + '\uFF2D': 'M', + '\u1E3E': 'M', + '\u1E40': 'M', + '\u1E42': 'M', + '\u2C6E': 'M', + '\u019C': 'M', + '\u24C3': 'N', + '\uFF2E': 'N', + '\u01F8': 'N', + '\u0143': 'N', + '\u00D1': 'N', + '\u1E44': 'N', + '\u0147': 'N', + '\u1E46': 'N', + '\u0145': 'N', + '\u1E4A': 'N', + '\u1E48': 'N', + '\u0220': 'N', + '\u019D': 'N', + '\uA790': 'N', + '\uA7A4': 'N', + '\u01CA': 'NJ', + '\u01CB': 'Nj', + '\u24C4': 'O', + '\uFF2F': 'O', + '\u00D2': 'O', + '\u00D3': 'O', + '\u00D4': 'O', + '\u1ED2': 'O', + '\u1ED0': 'O', + '\u1ED6': 'O', + '\u1ED4': 'O', + '\u00D5': 'O', + '\u1E4C': 'O', + '\u022C': 'O', + '\u1E4E': 'O', + '\u014C': 'O', + '\u1E50': 'O', + '\u1E52': 'O', + '\u014E': 'O', + '\u022E': 'O', + '\u0230': 'O', + '\u00D6': 'O', + '\u022A': 'O', + '\u1ECE': 'O', + '\u0150': 'O', + '\u01D1': 'O', + '\u020C': 'O', + '\u020E': 'O', + '\u01A0': 'O', + '\u1EDC': 'O', + '\u1EDA': 'O', + '\u1EE0': 'O', + '\u1EDE': 'O', + '\u1EE2': 'O', + '\u1ECC': 'O', + '\u1ED8': 'O', + '\u01EA': 'O', + '\u01EC': 'O', + '\u00D8': 'O', + '\u01FE': 'O', + '\u0186': 'O', + '\u019F': 'O', + '\uA74A': 'O', + '\uA74C': 'O', + '\u0152': 'OE', + '\u01A2': 'OI', + '\uA74E': 'OO', + '\u0222': 'OU', + '\u24C5': 'P', + '\uFF30': 'P', + '\u1E54': 'P', + '\u1E56': 'P', + '\u01A4': 'P', + '\u2C63': 'P', + '\uA750': 'P', + '\uA752': 'P', + '\uA754': 'P', + '\u24C6': 'Q', + '\uFF31': 'Q', + '\uA756': 'Q', + '\uA758': 'Q', + '\u024A': 'Q', + '\u24C7': 'R', + '\uFF32': 'R', + '\u0154': 'R', + '\u1E58': 'R', + '\u0158': 'R', + '\u0210': 'R', + '\u0212': 'R', + '\u1E5A': 'R', + '\u1E5C': 'R', + '\u0156': 'R', + '\u1E5E': 'R', + '\u024C': 'R', + '\u2C64': 'R', + '\uA75A': 'R', + '\uA7A6': 'R', + '\uA782': 'R', + '\u24C8': 'S', + '\uFF33': 'S', + '\u1E9E': 'S', + '\u015A': 'S', + '\u1E64': 'S', + '\u015C': 'S', + '\u1E60': 'S', + '\u0160': 'S', + '\u1E66': 'S', + '\u1E62': 'S', + '\u1E68': 'S', + '\u0218': 'S', + '\u015E': 'S', + '\u2C7E': 'S', + '\uA7A8': 'S', + '\uA784': 'S', + '\u24C9': 'T', + '\uFF34': 'T', + '\u1E6A': 'T', + '\u0164': 'T', + '\u1E6C': 'T', + '\u021A': 'T', + '\u0162': 'T', + '\u1E70': 'T', + '\u1E6E': 'T', + '\u0166': 'T', + '\u01AC': 'T', + '\u01AE': 'T', + '\u023E': 'T', + '\uA786': 'T', + '\uA728': 'TZ', + '\u24CA': 'U', + '\uFF35': 'U', + '\u00D9': 'U', + '\u00DA': 'U', + '\u00DB': 'U', + '\u0168': 'U', + '\u1E78': 'U', + '\u016A': 'U', + '\u1E7A': 'U', + '\u016C': 'U', + '\u00DC': 'U', + '\u01DB': 'U', + '\u01D7': 'U', + '\u01D5': 'U', + '\u01D9': 'U', + '\u1EE6': 'U', + '\u016E': 'U', + '\u0170': 'U', + '\u01D3': 'U', + '\u0214': 'U', + '\u0216': 'U', + '\u01AF': 'U', + '\u1EEA': 'U', + '\u1EE8': 'U', + '\u1EEE': 'U', + '\u1EEC': 'U', + '\u1EF0': 'U', + '\u1EE4': 'U', + '\u1E72': 'U', + '\u0172': 'U', + '\u1E76': 'U', + '\u1E74': 'U', + '\u0244': 'U', + '\u24CB': 'V', + '\uFF36': 'V', + '\u1E7C': 'V', + '\u1E7E': 'V', + '\u01B2': 'V', + '\uA75E': 'V', + '\u0245': 'V', + '\uA760': 'VY', + '\u24CC': 'W', + '\uFF37': 'W', + '\u1E80': 'W', + '\u1E82': 'W', + '\u0174': 'W', + '\u1E86': 'W', + '\u1E84': 'W', + '\u1E88': 'W', + '\u2C72': 'W', + '\u24CD': 'X', + '\uFF38': 'X', + '\u1E8A': 'X', + '\u1E8C': 'X', + '\u24CE': 'Y', + '\uFF39': 'Y', + '\u1EF2': 'Y', + '\u00DD': 'Y', + '\u0176': 'Y', + '\u1EF8': 'Y', + '\u0232': 'Y', + '\u1E8E': 'Y', + '\u0178': 'Y', + '\u1EF6': 'Y', + '\u1EF4': 'Y', + '\u01B3': 'Y', + '\u024E': 'Y', + '\u1EFE': 'Y', + '\u24CF': 'Z', + '\uFF3A': 'Z', + '\u0179': 'Z', + '\u1E90': 'Z', + '\u017B': 'Z', + '\u017D': 'Z', + '\u1E92': 'Z', + '\u1E94': 'Z', + '\u01B5': 'Z', + '\u0224': 'Z', + '\u2C7F': 'Z', + '\u2C6B': 'Z', + '\uA762': 'Z', + '\u24D0': 'a', + '\uFF41': 'a', + '\u1E9A': 'a', + '\u00E0': 'a', + '\u00E1': 'a', + '\u00E2': 'a', + '\u1EA7': 'a', + '\u1EA5': 'a', + '\u1EAB': 'a', + '\u1EA9': 'a', + '\u00E3': 'a', + '\u0101': 'a', + '\u0103': 'a', + '\u1EB1': 'a', + '\u1EAF': 'a', + '\u1EB5': 'a', + '\u1EB3': 'a', + '\u0227': 'a', + '\u01E1': 'a', + '\u00E4': 'a', + '\u01DF': 'a', + '\u1EA3': 'a', + '\u00E5': 'a', + '\u01FB': 'a', + '\u01CE': 'a', + '\u0201': 'a', + '\u0203': 'a', + '\u1EA1': 'a', + '\u1EAD': 'a', + '\u1EB7': 'a', + '\u1E01': 'a', + '\u0105': 'a', + '\u2C65': 'a', + '\u0250': 'a', + '\uA733': 'aa', + '\u00E6': 'ae', + '\u01FD': 'ae', + '\u01E3': 'ae', + '\uA735': 'ao', + '\uA737': 'au', + '\uA739': 'av', + '\uA73B': 'av', + '\uA73D': 'ay', + '\u24D1': 'b', + '\uFF42': 'b', + '\u1E03': 'b', + '\u1E05': 'b', + '\u1E07': 'b', + '\u0180': 'b', + '\u0183': 'b', + '\u0253': 'b', + '\u24D2': 'c', + '\uFF43': 'c', + '\u0107': 'c', + '\u0109': 'c', + '\u010B': 'c', + '\u010D': 'c', + '\u00E7': 'c', + '\u1E09': 'c', + '\u0188': 'c', + '\u023C': 'c', + '\uA73F': 'c', + '\u2184': 'c', + '\u24D3': 'd', + '\uFF44': 'd', + '\u1E0B': 'd', + '\u010F': 'd', + '\u1E0D': 'd', + '\u1E11': 'd', + '\u1E13': 'd', + '\u1E0F': 'd', + '\u0111': 'd', + '\u018C': 'd', + '\u0256': 'd', + '\u0257': 'd', + '\uA77A': 'd', + '\u01F3': 'dz', + '\u01C6': 'dz', + '\u24D4': 'e', + '\uFF45': 'e', + '\u00E8': 'e', + '\u00E9': 'e', + '\u00EA': 'e', + '\u1EC1': 'e', + '\u1EBF': 'e', + '\u1EC5': 'e', + '\u1EC3': 'e', + '\u1EBD': 'e', + '\u0113': 'e', + '\u1E15': 'e', + '\u1E17': 'e', + '\u0115': 'e', + '\u0117': 'e', + '\u00EB': 'e', + '\u1EBB': 'e', + '\u011B': 'e', + '\u0205': 'e', + '\u0207': 'e', + '\u1EB9': 'e', + '\u1EC7': 'e', + '\u0229': 'e', + '\u1E1D': 'e', + '\u0119': 'e', + '\u1E19': 'e', + '\u1E1B': 'e', + '\u0247': 'e', + '\u025B': 'e', + '\u01DD': 'e', + '\u24D5': 'f', + '\uFF46': 'f', + '\u1E1F': 'f', + '\u0192': 'f', + '\uA77C': 'f', + '\u24D6': 'g', + '\uFF47': 'g', + '\u01F5': 'g', + '\u011D': 'g', + '\u1E21': 'g', + '\u011F': 'g', + '\u0121': 'g', + '\u01E7': 'g', + '\u0123': 'g', + '\u01E5': 'g', + '\u0260': 'g', + '\uA7A1': 'g', + '\u1D79': 'g', + '\uA77F': 'g', + '\u24D7': 'h', + '\uFF48': 'h', + '\u0125': 'h', + '\u1E23': 'h', + '\u1E27': 'h', + '\u021F': 'h', + '\u1E25': 'h', + '\u1E29': 'h', + '\u1E2B': 'h', + '\u1E96': 'h', + '\u0127': 'h', + '\u2C68': 'h', + '\u2C76': 'h', + '\u0265': 'h', + '\u0195': 'hv', + '\u24D8': 'i', + '\uFF49': 'i', + '\u00EC': 'i', + '\u00ED': 'i', + '\u00EE': 'i', + '\u0129': 'i', + '\u012B': 'i', + '\u012D': 'i', + '\u00EF': 'i', + '\u1E2F': 'i', + '\u1EC9': 'i', + '\u01D0': 'i', + '\u0209': 'i', + '\u020B': 'i', + '\u1ECB': 'i', + '\u012F': 'i', + '\u1E2D': 'i', + '\u0268': 'i', + '\u0131': 'i', + '\u24D9': 'j', + '\uFF4A': 'j', + '\u0135': 'j', + '\u01F0': 'j', + '\u0249': 'j', + '\u24DA': 'k', + '\uFF4B': 'k', + '\u1E31': 'k', + '\u01E9': 'k', + '\u1E33': 'k', + '\u0137': 'k', + '\u1E35': 'k', + '\u0199': 'k', + '\u2C6A': 'k', + '\uA741': 'k', + '\uA743': 'k', + '\uA745': 'k', + '\uA7A3': 'k', + '\u24DB': 'l', + '\uFF4C': 'l', + '\u0140': 'l', + '\u013A': 'l', + '\u013E': 'l', + '\u1E37': 'l', + '\u1E39': 'l', + '\u013C': 'l', + '\u1E3D': 'l', + '\u1E3B': 'l', + '\u017F': 'l', + '\u0142': 'l', + '\u019A': 'l', + '\u026B': 'l', + '\u2C61': 'l', + '\uA749': 'l', + '\uA781': 'l', + '\uA747': 'l', + '\u01C9': 'lj', + '\u24DC': 'm', + '\uFF4D': 'm', + '\u1E3F': 'm', + '\u1E41': 'm', + '\u1E43': 'm', + '\u0271': 'm', + '\u026F': 'm', + '\u24DD': 'n', + '\uFF4E': 'n', + '\u01F9': 'n', + '\u0144': 'n', + '\u00F1': 'n', + '\u1E45': 'n', + '\u0148': 'n', + '\u1E47': 'n', + '\u0146': 'n', + '\u1E4B': 'n', + '\u1E49': 'n', + '\u019E': 'n', + '\u0272': 'n', + '\u0149': 'n', + '\uA791': 'n', + '\uA7A5': 'n', + '\u01CC': 'nj', + '\u24DE': 'o', + '\uFF4F': 'o', + '\u00F2': 'o', + '\u00F3': 'o', + '\u00F4': 'o', + '\u1ED3': 'o', + '\u1ED1': 'o', + '\u1ED7': 'o', + '\u1ED5': 'o', + '\u00F5': 'o', + '\u1E4D': 'o', + '\u022D': 'o', + '\u1E4F': 'o', + '\u014D': 'o', + '\u1E51': 'o', + '\u1E53': 'o', + '\u014F': 'o', + '\u022F': 'o', + '\u0231': 'o', + '\u00F6': 'o', + '\u022B': 'o', + '\u1ECF': 'o', + '\u0151': 'o', + '\u01D2': 'o', + '\u020D': 'o', + '\u020F': 'o', + '\u01A1': 'o', + '\u1EDD': 'o', + '\u1EDB': 'o', + '\u1EE1': 'o', + '\u1EDF': 'o', + '\u1EE3': 'o', + '\u1ECD': 'o', + '\u1ED9': 'o', + '\u01EB': 'o', + '\u01ED': 'o', + '\u00F8': 'o', + '\u01FF': 'o', + '\u0254': 'o', + '\uA74B': 'o', + '\uA74D': 'o', + '\u0275': 'o', + '\u0153': 'oe', + '\u01A3': 'oi', + '\u0223': 'ou', + '\uA74F': 'oo', + '\u24DF': 'p', + '\uFF50': 'p', + '\u1E55': 'p', + '\u1E57': 'p', + '\u01A5': 'p', + '\u1D7D': 'p', + '\uA751': 'p', + '\uA753': 'p', + '\uA755': 'p', + '\u24E0': 'q', + '\uFF51': 'q', + '\u024B': 'q', + '\uA757': 'q', + '\uA759': 'q', + '\u24E1': 'r', + '\uFF52': 'r', + '\u0155': 'r', + '\u1E59': 'r', + '\u0159': 'r', + '\u0211': 'r', + '\u0213': 'r', + '\u1E5B': 'r', + '\u1E5D': 'r', + '\u0157': 'r', + '\u1E5F': 'r', + '\u024D': 'r', + '\u027D': 'r', + '\uA75B': 'r', + '\uA7A7': 'r', + '\uA783': 'r', + '\u24E2': 's', + '\uFF53': 's', + '\u00DF': 's', + '\u015B': 's', + '\u1E65': 's', + '\u015D': 's', + '\u1E61': 's', + '\u0161': 's', + '\u1E67': 's', + '\u1E63': 's', + '\u1E69': 's', + '\u0219': 's', + '\u015F': 's', + '\u023F': 's', + '\uA7A9': 's', + '\uA785': 's', + '\u1E9B': 's', + '\u24E3': 't', + '\uFF54': 't', + '\u1E6B': 't', + '\u1E97': 't', + '\u0165': 't', + '\u1E6D': 't', + '\u021B': 't', + '\u0163': 't', + '\u1E71': 't', + '\u1E6F': 't', + '\u0167': 't', + '\u01AD': 't', + '\u0288': 't', + '\u2C66': 't', + '\uA787': 't', + '\uA729': 'tz', + '\u24E4': 'u', + '\uFF55': 'u', + '\u00F9': 'u', + '\u00FA': 'u', + '\u00FB': 'u', + '\u0169': 'u', + '\u1E79': 'u', + '\u016B': 'u', + '\u1E7B': 'u', + '\u016D': 'u', + '\u00FC': 'u', + '\u01DC': 'u', + '\u01D8': 'u', + '\u01D6': 'u', + '\u01DA': 'u', + '\u1EE7': 'u', + '\u016F': 'u', + '\u0171': 'u', + '\u01D4': 'u', + '\u0215': 'u', + '\u0217': 'u', + '\u01B0': 'u', + '\u1EEB': 'u', + '\u1EE9': 'u', + '\u1EEF': 'u', + '\u1EED': 'u', + '\u1EF1': 'u', + '\u1EE5': 'u', + '\u1E73': 'u', + '\u0173': 'u', + '\u1E77': 'u', + '\u1E75': 'u', + '\u0289': 'u', + '\u24E5': 'v', + '\uFF56': 'v', + '\u1E7D': 'v', + '\u1E7F': 'v', + '\u028B': 'v', + '\uA75F': 'v', + '\u028C': 'v', + '\uA761': 'vy', + '\u24E6': 'w', + '\uFF57': 'w', + '\u1E81': 'w', + '\u1E83': 'w', + '\u0175': 'w', + '\u1E87': 'w', + '\u1E85': 'w', + '\u1E98': 'w', + '\u1E89': 'w', + '\u2C73': 'w', + '\u24E7': 'x', + '\uFF58': 'x', + '\u1E8B': 'x', + '\u1E8D': 'x', + '\u24E8': 'y', + '\uFF59': 'y', + '\u1EF3': 'y', + '\u00FD': 'y', + '\u0177': 'y', + '\u1EF9': 'y', + '\u0233': 'y', + '\u1E8F': 'y', + '\u00FF': 'y', + '\u1EF7': 'y', + '\u1E99': 'y', + '\u1EF5': 'y', + '\u01B4': 'y', + '\u024F': 'y', + '\u1EFF': 'y', + '\u24E9': 'z', + '\uFF5A': 'z', + '\u017A': 'z', + '\u1E91': 'z', + '\u017C': 'z', + '\u017E': 'z', + '\u1E93': 'z', + '\u1E95': 'z', + '\u01B6': 'z', + '\u0225': 'z', + '\u0240': 'z', + '\u2C6C': 'z', + '\uA763': 'z', + '\u0386': '\u0391', + '\u0388': '\u0395', + '\u0389': '\u0397', + '\u038A': '\u0399', + '\u03AA': '\u0399', + '\u038C': '\u039F', + '\u038E': '\u03A5', + '\u03AB': '\u03A5', + '\u038F': '\u03A9', + '\u03AC': '\u03B1', + '\u03AD': '\u03B5', + '\u03AE': '\u03B7', + '\u03AF': '\u03B9', + '\u03CA': '\u03B9', + '\u0390': '\u03B9', + '\u03CC': '\u03BF', + '\u03CD': '\u03C5', + '\u03CB': '\u03C5', + '\u03B0': '\u03C5', + '\u03CE': '\u03C9', + '\u03C2': '\u03C3', + '\u2019': '\'' + }; + + return diacritics; +}); + +S2.define('select2/data/base',[ + '../utils' +], function (Utils) { + function BaseAdapter ($element, options) { + BaseAdapter.__super__.constructor.call(this); + } + + Utils.Extend(BaseAdapter, Utils.Observable); + + BaseAdapter.prototype.current = function (callback) { + throw new Error('The `current` method must be defined in child classes.'); + }; + + BaseAdapter.prototype.query = function (params, callback) { + throw new Error('The `query` method must be defined in child classes.'); + }; + + BaseAdapter.prototype.bind = function (container, $container) { + // Can be implemented in subclasses + }; + + BaseAdapter.prototype.destroy = function () { + // Can be implemented in subclasses + }; + + BaseAdapter.prototype.generateResultId = function (container, data) { + var id = container.id + '-result-'; + + id += Utils.generateChars(4); + + if (data.id != null) { + id += '-' + data.id.toString(); + } else { + id += '-' + Utils.generateChars(4); + } + return id; + }; + + return BaseAdapter; +}); + +S2.define('select2/data/select',[ + './base', + '../utils', + 'jquery' +], function (BaseAdapter, Utils, $) { + function SelectAdapter ($element, options) { + this.$element = $element; + this.options = options; + + SelectAdapter.__super__.constructor.call(this); + } + + Utils.Extend(SelectAdapter, BaseAdapter); + + SelectAdapter.prototype.current = function (callback) { + var data = []; + var self = this; + + this.$element.find(':selected').each(function () { + var $option = $(this); + + var option = self.item($option); + + data.push(option); + }); + + callback(data); + }; + + SelectAdapter.prototype.select = function (data) { + var self = this; + + data.selected = true; + + // If data.element is a DOM node, use it instead + if ($(data.element).is('option')) { + data.element.selected = true; + + this.$element.trigger('input').trigger('change'); + + return; + } + + if (this.$element.prop('multiple')) { + this.current(function (currentData) { + var val = []; + + data = [data]; + data.push.apply(data, currentData); + + for (var d = 0; d < data.length; d++) { + var id = data[d].id; + + if ($.inArray(id, val) === -1) { + val.push(id); + } + } + + self.$element.val(val); + self.$element.trigger('input').trigger('change'); + }); + } else { + var val = data.id; + + this.$element.val(val); + this.$element.trigger('input').trigger('change'); + } + }; + + SelectAdapter.prototype.unselect = function (data) { + var self = this; + + if (!this.$element.prop('multiple')) { + return; + } + + data.selected = false; + + if ($(data.element).is('option')) { + data.element.selected = false; + + this.$element.trigger('input').trigger('change'); + + return; + } + + this.current(function (currentData) { + var val = []; + + for (var d = 0; d < currentData.length; d++) { + var id = currentData[d].id; + + if (id !== data.id && $.inArray(id, val) === -1) { + val.push(id); + } + } + + self.$element.val(val); + + self.$element.trigger('input').trigger('change'); + }); + }; + + SelectAdapter.prototype.bind = function (container, $container) { + var self = this; + + this.container = container; + + container.on('select', function (params) { + self.select(params.data); + }); + + container.on('unselect', function (params) { + self.unselect(params.data); + }); + }; + + SelectAdapter.prototype.destroy = function () { + // Remove anything added to child elements + this.$element.find('*').each(function () { + // Remove any custom data set by Select2 + Utils.RemoveData(this); + }); + }; + + SelectAdapter.prototype.query = function (params, callback) { + var data = []; + var self = this; + + var $options = this.$element.children(); + + $options.each(function () { + var $option = $(this); + + if (!$option.is('option') && !$option.is('optgroup')) { + return; + } + + var option = self.item($option); + + var matches = self.matches(params, option); + + if (matches !== null) { + data.push(matches); + } + }); + + callback({ + results: data + }); + }; + + SelectAdapter.prototype.addOptions = function ($options) { + Utils.appendMany(this.$element, $options); + }; + + SelectAdapter.prototype.option = function (data) { + var option; + + if (data.children) { + option = document.createElement('optgroup'); + option.label = data.text; + } else { + option = document.createElement('option'); + + if (option.textContent !== undefined) { + option.textContent = data.text; + } else { + option.innerText = data.text; + } + } + + if (data.id !== undefined) { + option.value = data.id; + } + + if (data.disabled) { + option.disabled = true; + } + + if (data.selected) { + option.selected = true; + } + + if (data.title) { + option.title = data.title; + } + + var $option = $(option); + + var normalizedData = this._normalizeItem(data); + normalizedData.element = option; + + // Override the option's data with the combined data + Utils.StoreData(option, 'data', normalizedData); + + return $option; + }; + + SelectAdapter.prototype.item = function ($option) { + var data = {}; + + data = Utils.GetData($option[0], 'data'); + + if (data != null) { + return data; + } + + if ($option.is('option')) { + data = { + id: $option.val(), + text: $option.text(), + disabled: $option.prop('disabled'), + selected: $option.prop('selected'), + title: $option.prop('title') + }; + } else if ($option.is('optgroup')) { + data = { + text: $option.prop('label'), + children: [], + title: $option.prop('title') + }; + + var $children = $option.children('option'); + var children = []; + + for (var c = 0; c < $children.length; c++) { + var $child = $($children[c]); + + var child = this.item($child); + + children.push(child); + } + + data.children = children; + } + + data = this._normalizeItem(data); + data.element = $option[0]; + + Utils.StoreData($option[0], 'data', data); + + return data; + }; + + SelectAdapter.prototype._normalizeItem = function (item) { + if (item !== Object(item)) { + item = { + id: item, + text: item + }; + } + + item = $.extend({}, { + text: '' + }, item); + + var defaults = { + selected: false, + disabled: false + }; + + if (item.id != null) { + item.id = item.id.toString(); + } + + if (item.text != null) { + item.text = item.text.toString(); + } + + if (item._resultId == null && item.id && this.container != null) { + item._resultId = this.generateResultId(this.container, item); + } + + return $.extend({}, defaults, item); + }; + + SelectAdapter.prototype.matches = function (params, data) { + var matcher = this.options.get('matcher'); + + return matcher(params, data); + }; + + return SelectAdapter; +}); + +S2.define('select2/data/array',[ + './select', + '../utils', + 'jquery' +], function (SelectAdapter, Utils, $) { + function ArrayAdapter ($element, options) { + this._dataToConvert = options.get('data') || []; + + ArrayAdapter.__super__.constructor.call(this, $element, options); + } + + Utils.Extend(ArrayAdapter, SelectAdapter); + + ArrayAdapter.prototype.bind = function (container, $container) { + ArrayAdapter.__super__.bind.call(this, container, $container); + + this.addOptions(this.convertToOptions(this._dataToConvert)); + }; + + ArrayAdapter.prototype.select = function (data) { + var $option = this.$element.find('option').filter(function (i, elm) { + return elm.value == data.id.toString(); + }); + + if ($option.length === 0) { + $option = this.option(data); + + this.addOptions($option); + } + + ArrayAdapter.__super__.select.call(this, data); + }; + + ArrayAdapter.prototype.convertToOptions = function (data) { + var self = this; + + var $existing = this.$element.find('option'); + var existingIds = $existing.map(function () { + return self.item($(this)).id; + }).get(); + + var $options = []; + + // Filter out all items except for the one passed in the argument + function onlyItem (item) { + return function () { + return $(this).val() == item.id; + }; + } + + for (var d = 0; d < data.length; d++) { + var item = this._normalizeItem(data[d]); + + // Skip items which were pre-loaded, only merge the data + if ($.inArray(item.id, existingIds) >= 0) { + var $existingOption = $existing.filter(onlyItem(item)); + + var existingData = this.item($existingOption); + var newData = $.extend(true, {}, item, existingData); + + var $newOption = this.option(newData); + + $existingOption.replaceWith($newOption); + + continue; + } + + var $option = this.option(item); + + if (item.children) { + var $children = this.convertToOptions(item.children); + + Utils.appendMany($option, $children); + } + + $options.push($option); + } + + return $options; + }; + + return ArrayAdapter; +}); + +S2.define('select2/data/ajax',[ + './array', + '../utils', + 'jquery' +], function (ArrayAdapter, Utils, $) { + function AjaxAdapter ($element, options) { + this.ajaxOptions = this._applyDefaults(options.get('ajax')); + + if (this.ajaxOptions.processResults != null) { + this.processResults = this.ajaxOptions.processResults; + } + + AjaxAdapter.__super__.constructor.call(this, $element, options); + } + + Utils.Extend(AjaxAdapter, ArrayAdapter); + + AjaxAdapter.prototype._applyDefaults = function (options) { + var defaults = { + data: function (params) { + return $.extend({}, params, { + q: params.term + }); + }, + transport: function (params, success, failure) { + var $request = $.ajax(params); + + $request.then(success); + $request.fail(failure); + + return $request; + } + }; + + return $.extend({}, defaults, options, true); + }; + + AjaxAdapter.prototype.processResults = function (results) { + return results; + }; + + AjaxAdapter.prototype.query = function (params, callback) { + var matches = []; + var self = this; + + if (this._request != null) { + // JSONP requests cannot always be aborted + if ($.isFunction(this._request.abort)) { + this._request.abort(); + } + + this._request = null; + } + + var options = $.extend({ + type: 'GET' + }, this.ajaxOptions); + + if (typeof options.url === 'function') { + options.url = options.url.call(this.$element, params); + } + + if (typeof options.data === 'function') { + options.data = options.data.call(this.$element, params); + } + + function request () { + var $request = options.transport(options, function (data) { + var results = self.processResults(data, params); + + if (self.options.get('debug') && window.console && console.error) { + // Check to make sure that the response included a `results` key. + if (!results || !results.results || !$.isArray(results.results)) { + console.error( + 'Select2: The AJAX results did not return an array in the ' + + '`results` key of the response.' + ); + } + } + + callback(results); + }, function () { + // Attempt to detect if a request was aborted + // Only works if the transport exposes a status property + if ('status' in $request && + ($request.status === 0 || $request.status === '0')) { + return; + } + + self.trigger('results:message', { + message: 'errorLoading' + }); + }); + + self._request = $request; + } + + if (this.ajaxOptions.delay && params.term != null) { + if (this._queryTimeout) { + window.clearTimeout(this._queryTimeout); + } + + this._queryTimeout = window.setTimeout(request, this.ajaxOptions.delay); + } else { + request(); + } + }; + + return AjaxAdapter; +}); + +S2.define('select2/data/tags',[ + 'jquery' +], function ($) { + function Tags (decorated, $element, options) { + var tags = options.get('tags'); + + var createTag = options.get('createTag'); + + if (createTag !== undefined) { + this.createTag = createTag; + } + + var insertTag = options.get('insertTag'); + + if (insertTag !== undefined) { + this.insertTag = insertTag; + } + + decorated.call(this, $element, options); + + if ($.isArray(tags)) { + for (var t = 0; t < tags.length; t++) { + var tag = tags[t]; + var item = this._normalizeItem(tag); + + var $option = this.option(item); + + this.$element.append($option); + } + } + } + + Tags.prototype.query = function (decorated, params, callback) { + var self = this; + + this._removeOldTags(); + + if (params.term == null || params.page != null) { + decorated.call(this, params, callback); + return; + } + + function wrapper (obj, child) { + var data = obj.results; + + for (var i = 0; i < data.length; i++) { + var option = data[i]; + + var checkChildren = ( + option.children != null && + !wrapper({ + results: option.children + }, true) + ); + + var optionText = (option.text || '').toUpperCase(); + var paramsTerm = (params.term || '').toUpperCase(); + + var checkText = optionText === paramsTerm; + + if (checkText || checkChildren) { + if (child) { + return false; + } + + obj.data = data; + callback(obj); + + return; + } + } + + if (child) { + return true; + } + + var tag = self.createTag(params); + + if (tag != null) { + var $option = self.option(tag); + $option.attr('data-select2-tag', true); + + self.addOptions([$option]); + + self.insertTag(data, tag); + } + + obj.results = data; + + callback(obj); + } + + decorated.call(this, params, wrapper); + }; + + Tags.prototype.createTag = function (decorated, params) { + var term = $.trim(params.term); + + if (term === '') { + return null; + } + + return { + id: term, + text: term + }; + }; + + Tags.prototype.insertTag = function (_, data, tag) { + data.unshift(tag); + }; + + Tags.prototype._removeOldTags = function (_) { + var $options = this.$element.find('option[data-select2-tag]'); + + $options.each(function () { + if (this.selected) { + return; + } + + $(this).remove(); + }); + }; + + return Tags; +}); + +S2.define('select2/data/tokenizer',[ + 'jquery' +], function ($) { + function Tokenizer (decorated, $element, options) { + var tokenizer = options.get('tokenizer'); + + if (tokenizer !== undefined) { + this.tokenizer = tokenizer; + } + + decorated.call(this, $element, options); + } + + Tokenizer.prototype.bind = function (decorated, container, $container) { + decorated.call(this, container, $container); + + this.$search = container.dropdown.$search || container.selection.$search || + $container.find('.select2-search__field'); + }; + + Tokenizer.prototype.query = function (decorated, params, callback) { + var self = this; + + function createAndSelect (data) { + // Normalize the data object so we can use it for checks + var item = self._normalizeItem(data); + + // Check if the data object already exists as a tag + // Select it if it doesn't + var $existingOptions = self.$element.find('option').filter(function () { + return $(this).val() === item.id; + }); + + // If an existing option wasn't found for it, create the option + if (!$existingOptions.length) { + var $option = self.option(item); + $option.attr('data-select2-tag', true); + + self._removeOldTags(); + self.addOptions([$option]); + } + + // Select the item, now that we know there is an option for it + select(item); + } + + function select (data) { + self.trigger('select', { + data: data + }); + } + + params.term = params.term || ''; + + var tokenData = this.tokenizer(params, this.options, createAndSelect); + + if (tokenData.term !== params.term) { + // Replace the search term if we have the search box + if (this.$search.length) { + this.$search.val(tokenData.term); + this.$search.trigger('focus'); + } + + params.term = tokenData.term; + } + + decorated.call(this, params, callback); + }; + + Tokenizer.prototype.tokenizer = function (_, params, options, callback) { + var separators = options.get('tokenSeparators') || []; + var term = params.term; + var i = 0; + + var createTag = this.createTag || function (params) { + return { + id: params.term, + text: params.term + }; + }; + + while (i < term.length) { + var termChar = term[i]; + + if ($.inArray(termChar, separators) === -1) { + i++; + + continue; + } + + var part = term.substr(0, i); + var partParams = $.extend({}, params, { + term: part + }); + + var data = createTag(partParams); + + if (data == null) { + i++; + continue; + } + + callback(data); + + // Reset the term to not include the tokenized portion + term = term.substr(i + 1) || ''; + i = 0; + } + + return { + term: term + }; + }; + + return Tokenizer; +}); + +S2.define('select2/data/minimumInputLength',[ + +], function () { + function MinimumInputLength (decorated, $e, options) { + this.minimumInputLength = options.get('minimumInputLength'); + + decorated.call(this, $e, options); + } + + MinimumInputLength.prototype.query = function (decorated, params, callback) { + params.term = params.term || ''; + + if (params.term.length < this.minimumInputLength) { + this.trigger('results:message', { + message: 'inputTooShort', + args: { + minimum: this.minimumInputLength, + input: params.term, + params: params + } + }); + + return; + } + + decorated.call(this, params, callback); + }; + + return MinimumInputLength; +}); + +S2.define('select2/data/maximumInputLength',[ + +], function () { + function MaximumInputLength (decorated, $e, options) { + this.maximumInputLength = options.get('maximumInputLength'); + + decorated.call(this, $e, options); + } + + MaximumInputLength.prototype.query = function (decorated, params, callback) { + params.term = params.term || ''; + + if (this.maximumInputLength > 0 && + params.term.length > this.maximumInputLength) { + this.trigger('results:message', { + message: 'inputTooLong', + args: { + maximum: this.maximumInputLength, + input: params.term, + params: params + } + }); + + return; + } + + decorated.call(this, params, callback); + }; + + return MaximumInputLength; +}); + +S2.define('select2/data/maximumSelectionLength',[ + +], function (){ + function MaximumSelectionLength (decorated, $e, options) { + this.maximumSelectionLength = options.get('maximumSelectionLength'); + + decorated.call(this, $e, options); + } + + MaximumSelectionLength.prototype.bind = + function (decorated, container, $container) { + var self = this; + + decorated.call(this, container, $container); + + container.on('select', function () { + self._checkIfMaximumSelected(); + }); + }; + + MaximumSelectionLength.prototype.query = + function (decorated, params, callback) { + var self = this; + + this._checkIfMaximumSelected(function () { + decorated.call(self, params, callback); + }); + }; + + MaximumSelectionLength.prototype._checkIfMaximumSelected = + function (_, successCallback) { + var self = this; + + this.current(function (currentData) { + var count = currentData != null ? currentData.length : 0; + if (self.maximumSelectionLength > 0 && + count >= self.maximumSelectionLength) { + self.trigger('results:message', { + message: 'maximumSelected', + args: { + maximum: self.maximumSelectionLength + } + }); + return; + } + + if (successCallback) { + successCallback(); + } + }); + }; + + return MaximumSelectionLength; +}); + +S2.define('select2/dropdown',[ + 'jquery', + './utils' +], function ($, Utils) { + function Dropdown ($element, options) { + this.$element = $element; + this.options = options; + + Dropdown.__super__.constructor.call(this); + } + + Utils.Extend(Dropdown, Utils.Observable); + + Dropdown.prototype.render = function () { + var $dropdown = $( + '<span class="select2-dropdown">' + + '<span class="select2-results"></span>' + + '</span>' + ); + + $dropdown.attr('dir', this.options.get('dir')); + + this.$dropdown = $dropdown; + + return $dropdown; + }; + + Dropdown.prototype.bind = function () { + // Should be implemented in subclasses + }; + + Dropdown.prototype.position = function ($dropdown, $container) { + // Should be implemented in subclasses + }; + + Dropdown.prototype.destroy = function () { + // Remove the dropdown from the DOM + this.$dropdown.remove(); + }; + + return Dropdown; +}); + +S2.define('select2/dropdown/search',[ + 'jquery', + '../utils' +], function ($, Utils) { + function Search () { } + + Search.prototype.render = function (decorated) { + var $rendered = decorated.call(this); + + var $search = $( + '<span class="select2-search select2-search--dropdown">' + + '<input class="select2-search__field" type="search" tabindex="-1"' + + ' autocomplete="off" autocorrect="off" autocapitalize="none"' + + ' spellcheck="false" role="searchbox" aria-autocomplete="list" />' + + '</span>' + ); + + this.$searchContainer = $search; + this.$search = $search.find('input'); + + $rendered.prepend($search); + + return $rendered; + }; + + Search.prototype.bind = function (decorated, container, $container) { + var self = this; + + var resultsId = container.id + '-results'; + + decorated.call(this, container, $container); + + this.$search.on('keydown', function (evt) { + self.trigger('keypress', evt); + + self._keyUpPrevented = evt.isDefaultPrevented(); + }); + + // Workaround for browsers which do not support the `input` event + // This will prevent double-triggering of events for browsers which support + // both the `keyup` and `input` events. + this.$search.on('input', function (evt) { + // Unbind the duplicated `keyup` event + $(this).off('keyup'); + }); + + this.$search.on('keyup input', function (evt) { + self.handleSearch(evt); + }); + + container.on('open', function () { + self.$search.attr('tabindex', 0); + self.$search.attr('aria-controls', resultsId); + + self.$search.trigger('focus'); + + window.setTimeout(function () { + self.$search.trigger('focus'); + }, 0); + }); + + container.on('close', function () { + self.$search.attr('tabindex', -1); + self.$search.removeAttr('aria-controls'); + self.$search.removeAttr('aria-activedescendant'); + + self.$search.val(''); + self.$search.trigger('blur'); + }); + + container.on('focus', function () { + if (!container.isOpen()) { + self.$search.trigger('focus'); + } + }); + + container.on('results:all', function (params) { + if (params.query.term == null || params.query.term === '') { + var showSearch = self.showSearch(params); + + if (showSearch) { + self.$searchContainer.removeClass('select2-search--hide'); + } else { + self.$searchContainer.addClass('select2-search--hide'); + } + } + }); + + container.on('results:focus', function (params) { + if (params.data._resultId) { + self.$search.attr('aria-activedescendant', params.data._resultId); + } else { + self.$search.removeAttr('aria-activedescendant'); + } + }); + }; + + Search.prototype.handleSearch = function (evt) { + if (!this._keyUpPrevented) { + var input = this.$search.val(); + + this.trigger('query', { + term: input + }); + } + + this._keyUpPrevented = false; + }; + + Search.prototype.showSearch = function (_, params) { + return true; + }; + + return Search; +}); + +S2.define('select2/dropdown/hidePlaceholder',[ + +], function () { + function HidePlaceholder (decorated, $element, options, dataAdapter) { + this.placeholder = this.normalizePlaceholder(options.get('placeholder')); + + decorated.call(this, $element, options, dataAdapter); + } + + HidePlaceholder.prototype.append = function (decorated, data) { + data.results = this.removePlaceholder(data.results); + + decorated.call(this, data); + }; + + HidePlaceholder.prototype.normalizePlaceholder = function (_, placeholder) { + if (typeof placeholder === 'string') { + placeholder = { + id: '', + text: placeholder + }; + } + + return placeholder; + }; + + HidePlaceholder.prototype.removePlaceholder = function (_, data) { + var modifiedData = data.slice(0); + + for (var d = data.length - 1; d >= 0; d--) { + var item = data[d]; + + if (this.placeholder.id === item.id) { + modifiedData.splice(d, 1); + } + } + + return modifiedData; + }; + + return HidePlaceholder; +}); + +S2.define('select2/dropdown/infiniteScroll',[ + 'jquery' +], function ($) { + function InfiniteScroll (decorated, $element, options, dataAdapter) { + this.lastParams = {}; + + decorated.call(this, $element, options, dataAdapter); + + this.$loadingMore = this.createLoadingMore(); + this.loading = false; + } + + InfiniteScroll.prototype.append = function (decorated, data) { + this.$loadingMore.remove(); + this.loading = false; + + decorated.call(this, data); + + if (this.showLoadingMore(data)) { + this.$results.append(this.$loadingMore); + this.loadMoreIfNeeded(); + } + }; + + InfiniteScroll.prototype.bind = function (decorated, container, $container) { + var self = this; + + decorated.call(this, container, $container); + + container.on('query', function (params) { + self.lastParams = params; + self.loading = true; + }); + + container.on('query:append', function (params) { + self.lastParams = params; + self.loading = true; + }); + + this.$results.on('scroll', this.loadMoreIfNeeded.bind(this)); + }; + + InfiniteScroll.prototype.loadMoreIfNeeded = function () { + var isLoadMoreVisible = $.contains( + document.documentElement, + this.$loadingMore[0] + ); + + if (this.loading || !isLoadMoreVisible) { + return; + } + + var currentOffset = this.$results.offset().top + + this.$results.outerHeight(false); + var loadingMoreOffset = this.$loadingMore.offset().top + + this.$loadingMore.outerHeight(false); + + if (currentOffset + 50 >= loadingMoreOffset) { + this.loadMore(); + } + }; + + InfiniteScroll.prototype.loadMore = function () { + this.loading = true; + + var params = $.extend({}, {page: 1}, this.lastParams); + + params.page++; + + this.trigger('query:append', params); + }; + + InfiniteScroll.prototype.showLoadingMore = function (_, data) { + return data.pagination && data.pagination.more; + }; + + InfiniteScroll.prototype.createLoadingMore = function () { + var $option = $( + '<li ' + + 'class="select2-results__option select2-results__option--load-more"' + + 'role="option" aria-disabled="true"></li>' + ); + + var message = this.options.get('translations').get('loadingMore'); + + $option.html(message(this.lastParams)); + + return $option; + }; + + return InfiniteScroll; +}); + +S2.define('select2/dropdown/attachBody',[ + 'jquery', + '../utils' +], function ($, Utils) { + function AttachBody (decorated, $element, options) { + this.$dropdownParent = $(options.get('dropdownParent') || document.body); + + decorated.call(this, $element, options); + } + + AttachBody.prototype.bind = function (decorated, container, $container) { + var self = this; + + decorated.call(this, container, $container); + + container.on('open', function () { + self._showDropdown(); + self._attachPositioningHandler(container); + + // Must bind after the results handlers to ensure correct sizing + self._bindContainerResultHandlers(container); + }); + + container.on('close', function () { + self._hideDropdown(); + self._detachPositioningHandler(container); + }); + + this.$dropdownContainer.on('mousedown', function (evt) { + evt.stopPropagation(); + }); + }; + + AttachBody.prototype.destroy = function (decorated) { + decorated.call(this); + + this.$dropdownContainer.remove(); + }; + + AttachBody.prototype.position = function (decorated, $dropdown, $container) { + // Clone all of the container classes + $dropdown.attr('class', $container.attr('class')); + + $dropdown.removeClass('select2'); + $dropdown.addClass('select2-container--open'); + + $dropdown.css({ + position: 'absolute', + top: -999999 + }); + + this.$container = $container; + }; + + AttachBody.prototype.render = function (decorated) { + var $container = $('<span></span>'); + + var $dropdown = decorated.call(this); + $container.append($dropdown); + + this.$dropdownContainer = $container; + + return $container; + }; + + AttachBody.prototype._hideDropdown = function (decorated) { + this.$dropdownContainer.detach(); + }; + + AttachBody.prototype._bindContainerResultHandlers = + function (decorated, container) { + + // These should only be bound once + if (this._containerResultsHandlersBound) { + return; + } + + var self = this; + + container.on('results:all', function () { + self._positionDropdown(); + self._resizeDropdown(); + }); + + container.on('results:append', function () { + self._positionDropdown(); + self._resizeDropdown(); + }); + + container.on('results:message', function () { + self._positionDropdown(); + self._resizeDropdown(); + }); + + container.on('select', function () { + self._positionDropdown(); + self._resizeDropdown(); + }); + + container.on('unselect', function () { + self._positionDropdown(); + self._resizeDropdown(); + }); + + this._containerResultsHandlersBound = true; + }; + + AttachBody.prototype._attachPositioningHandler = + function (decorated, container) { + var self = this; + + var scrollEvent = 'scroll.select2.' + container.id; + var resizeEvent = 'resize.select2.' + container.id; + var orientationEvent = 'orientationchange.select2.' + container.id; + + var $watchers = this.$container.parents().filter(Utils.hasScroll); + $watchers.each(function () { + Utils.StoreData(this, 'select2-scroll-position', { + x: $(this).scrollLeft(), + y: $(this).scrollTop() + }); + }); + + $watchers.on(scrollEvent, function (ev) { + var position = Utils.GetData(this, 'select2-scroll-position'); + $(this).scrollTop(position.y); + }); + + $(window).on(scrollEvent + ' ' + resizeEvent + ' ' + orientationEvent, + function (e) { + self._positionDropdown(); + self._resizeDropdown(); + }); + }; + + AttachBody.prototype._detachPositioningHandler = + function (decorated, container) { + var scrollEvent = 'scroll.select2.' + container.id; + var resizeEvent = 'resize.select2.' + container.id; + var orientationEvent = 'orientationchange.select2.' + container.id; + + var $watchers = this.$container.parents().filter(Utils.hasScroll); + $watchers.off(scrollEvent); + + $(window).off(scrollEvent + ' ' + resizeEvent + ' ' + orientationEvent); + }; + + AttachBody.prototype._positionDropdown = function () { + var $window = $(window); + + var isCurrentlyAbove = this.$dropdown.hasClass('select2-dropdown--above'); + var isCurrentlyBelow = this.$dropdown.hasClass('select2-dropdown--below'); + + var newDirection = null; + + var offset = this.$container.offset(); + + offset.bottom = offset.top + this.$container.outerHeight(false); + + var container = { + height: this.$container.outerHeight(false) + }; + + container.top = offset.top; + container.bottom = offset.top + container.height; + + var dropdown = { + height: this.$dropdown.outerHeight(false) + }; + + var viewport = { + top: $window.scrollTop(), + bottom: $window.scrollTop() + $window.height() + }; + + var enoughRoomAbove = viewport.top < (offset.top - dropdown.height); + var enoughRoomBelow = viewport.bottom > (offset.bottom + dropdown.height); + + var css = { + left: offset.left, + top: container.bottom + }; + + // Determine what the parent element is to use for calculating the offset + var $offsetParent = this.$dropdownParent; + + // For statically positioned elements, we need to get the element + // that is determining the offset + if ($offsetParent.css('position') === 'static') { + $offsetParent = $offsetParent.offsetParent(); + } + + var parentOffset = { + top: 0, + left: 0 + }; + + if ( + $.contains(document.body, $offsetParent[0]) || + $offsetParent[0].isConnected + ) { + parentOffset = $offsetParent.offset(); + } + + css.top -= parentOffset.top; + css.left -= parentOffset.left; + + if (!isCurrentlyAbove && !isCurrentlyBelow) { + newDirection = 'below'; + } + + if (!enoughRoomBelow && enoughRoomAbove && !isCurrentlyAbove) { + newDirection = 'above'; + } else if (!enoughRoomAbove && enoughRoomBelow && isCurrentlyAbove) { + newDirection = 'below'; + } + + if (newDirection == 'above' || + (isCurrentlyAbove && newDirection !== 'below')) { + css.top = container.top - parentOffset.top - dropdown.height; + } + + if (newDirection != null) { + this.$dropdown + .removeClass('select2-dropdown--below select2-dropdown--above') + .addClass('select2-dropdown--' + newDirection); + this.$container + .removeClass('select2-container--below select2-container--above') + .addClass('select2-container--' + newDirection); + } + + this.$dropdownContainer.css(css); + }; + + AttachBody.prototype._resizeDropdown = function () { + var css = { + width: this.$container.outerWidth(false) + 'px' + }; + + if (this.options.get('dropdownAutoWidth')) { + css.minWidth = css.width; + css.position = 'relative'; + css.width = 'auto'; + } + + this.$dropdown.css(css); + }; + + AttachBody.prototype._showDropdown = function (decorated) { + this.$dropdownContainer.appendTo(this.$dropdownParent); + + this._positionDropdown(); + this._resizeDropdown(); + }; + + return AttachBody; +}); + +S2.define('select2/dropdown/minimumResultsForSearch',[ + +], function () { + function countResults (data) { + var count = 0; + + for (var d = 0; d < data.length; d++) { + var item = data[d]; + + if (item.children) { + count += countResults(item.children); + } else { + count++; + } + } + + return count; + } + + function MinimumResultsForSearch (decorated, $element, options, dataAdapter) { + this.minimumResultsForSearch = options.get('minimumResultsForSearch'); + + if (this.minimumResultsForSearch < 0) { + this.minimumResultsForSearch = Infinity; + } + + decorated.call(this, $element, options, dataAdapter); + } + + MinimumResultsForSearch.prototype.showSearch = function (decorated, params) { + if (countResults(params.data.results) < this.minimumResultsForSearch) { + return false; + } + + return decorated.call(this, params); + }; + + return MinimumResultsForSearch; +}); + +S2.define('select2/dropdown/selectOnClose',[ + '../utils' +], function (Utils) { + function SelectOnClose () { } + + SelectOnClose.prototype.bind = function (decorated, container, $container) { + var self = this; + + decorated.call(this, container, $container); + + container.on('close', function (params) { + self._handleSelectOnClose(params); + }); + }; + + SelectOnClose.prototype._handleSelectOnClose = function (_, params) { + if (params && params.originalSelect2Event != null) { + var event = params.originalSelect2Event; + + // Don't select an item if the close event was triggered from a select or + // unselect event + if (event._type === 'select' || event._type === 'unselect') { + return; + } + } + + var $highlightedResults = this.getHighlightedResults(); + + // Only select highlighted results + if ($highlightedResults.length < 1) { + return; + } + + var data = Utils.GetData($highlightedResults[0], 'data'); + + // Don't re-select already selected resulte + if ( + (data.element != null && data.element.selected) || + (data.element == null && data.selected) + ) { + return; + } + + this.trigger('select', { + data: data + }); + }; + + return SelectOnClose; +}); + +S2.define('select2/dropdown/closeOnSelect',[ + +], function () { + function CloseOnSelect () { } + + CloseOnSelect.prototype.bind = function (decorated, container, $container) { + var self = this; + + decorated.call(this, container, $container); + + container.on('select', function (evt) { + self._selectTriggered(evt); + }); + + container.on('unselect', function (evt) { + self._selectTriggered(evt); + }); + }; + + CloseOnSelect.prototype._selectTriggered = function (_, evt) { + var originalEvent = evt.originalEvent; + + // Don't close if the control key is being held + if (originalEvent && (originalEvent.ctrlKey || originalEvent.metaKey)) { + return; + } + + this.trigger('close', { + originalEvent: originalEvent, + originalSelect2Event: evt + }); + }; + + return CloseOnSelect; +}); + +S2.define('select2/i18n/en',[],function () { + // English + return { + errorLoading: function () { + return 'The results could not be loaded.'; + }, + inputTooLong: function (args) { + var overChars = args.input.length - args.maximum; + + var message = 'Please delete ' + overChars + ' character'; + + if (overChars != 1) { + message += 's'; + } + + return message; + }, + inputTooShort: function (args) { + var remainingChars = args.minimum - args.input.length; + + var message = 'Please enter ' + remainingChars + ' or more characters'; + + return message; + }, + loadingMore: function () { + return 'Loading more results…'; + }, + maximumSelected: function (args) { + var message = 'You can only select ' + args.maximum + ' item'; + + if (args.maximum != 1) { + message += 's'; + } + + return message; + }, + noResults: function () { + return 'No results found'; + }, + searching: function () { + return 'Searching…'; + }, + removeAllItems: function () { + return 'Remove all items'; + } + }; +}); + +S2.define('select2/defaults',[ + 'jquery', + 'require', + + './results', + + './selection/single', + './selection/multiple', + './selection/placeholder', + './selection/allowClear', + './selection/search', + './selection/eventRelay', + + './utils', + './translation', + './diacritics', + + './data/select', + './data/array', + './data/ajax', + './data/tags', + './data/tokenizer', + './data/minimumInputLength', + './data/maximumInputLength', + './data/maximumSelectionLength', + + './dropdown', + './dropdown/search', + './dropdown/hidePlaceholder', + './dropdown/infiniteScroll', + './dropdown/attachBody', + './dropdown/minimumResultsForSearch', + './dropdown/selectOnClose', + './dropdown/closeOnSelect', + + './i18n/en' +], function ($, require, + + ResultsList, + + SingleSelection, MultipleSelection, Placeholder, AllowClear, + SelectionSearch, EventRelay, + + Utils, Translation, DIACRITICS, + + SelectData, ArrayData, AjaxData, Tags, Tokenizer, + MinimumInputLength, MaximumInputLength, MaximumSelectionLength, + + Dropdown, DropdownSearch, HidePlaceholder, InfiniteScroll, + AttachBody, MinimumResultsForSearch, SelectOnClose, CloseOnSelect, + + EnglishTranslation) { + function Defaults () { + this.reset(); + } + + Defaults.prototype.apply = function (options) { + options = $.extend(true, {}, this.defaults, options); + + if (options.dataAdapter == null) { + if (options.ajax != null) { + options.dataAdapter = AjaxData; + } else if (options.data != null) { + options.dataAdapter = ArrayData; + } else { + options.dataAdapter = SelectData; + } + + if (options.minimumInputLength > 0) { + options.dataAdapter = Utils.Decorate( + options.dataAdapter, + MinimumInputLength + ); + } + + if (options.maximumInputLength > 0) { + options.dataAdapter = Utils.Decorate( + options.dataAdapter, + MaximumInputLength + ); + } + + if (options.maximumSelectionLength > 0) { + options.dataAdapter = Utils.Decorate( + options.dataAdapter, + MaximumSelectionLength + ); + } + + if (options.tags) { + options.dataAdapter = Utils.Decorate(options.dataAdapter, Tags); + } + + if (options.tokenSeparators != null || options.tokenizer != null) { + options.dataAdapter = Utils.Decorate( + options.dataAdapter, + Tokenizer + ); + } + + if (options.query != null) { + var Query = require(options.amdBase + 'compat/query'); + + options.dataAdapter = Utils.Decorate( + options.dataAdapter, + Query + ); + } + + if (options.initSelection != null) { + var InitSelection = require(options.amdBase + 'compat/initSelection'); + + options.dataAdapter = Utils.Decorate( + options.dataAdapter, + InitSelection + ); + } + } + + if (options.resultsAdapter == null) { + options.resultsAdapter = ResultsList; + + if (options.ajax != null) { + options.resultsAdapter = Utils.Decorate( + options.resultsAdapter, + InfiniteScroll + ); + } + + if (options.placeholder != null) { + options.resultsAdapter = Utils.Decorate( + options.resultsAdapter, + HidePlaceholder + ); + } + + if (options.selectOnClose) { + options.resultsAdapter = Utils.Decorate( + options.resultsAdapter, + SelectOnClose + ); + } + } + + if (options.dropdownAdapter == null) { + if (options.multiple) { + options.dropdownAdapter = Dropdown; + } else { + var SearchableDropdown = Utils.Decorate(Dropdown, DropdownSearch); + + options.dropdownAdapter = SearchableDropdown; + } + + if (options.minimumResultsForSearch !== 0) { + options.dropdownAdapter = Utils.Decorate( + options.dropdownAdapter, + MinimumResultsForSearch + ); + } + + if (options.closeOnSelect) { + options.dropdownAdapter = Utils.Decorate( + options.dropdownAdapter, + CloseOnSelect + ); + } + + if ( + options.dropdownCssClass != null || + options.dropdownCss != null || + options.adaptDropdownCssClass != null + ) { + var DropdownCSS = require(options.amdBase + 'compat/dropdownCss'); + + options.dropdownAdapter = Utils.Decorate( + options.dropdownAdapter, + DropdownCSS + ); + } + + options.dropdownAdapter = Utils.Decorate( + options.dropdownAdapter, + AttachBody + ); + } + + if (options.selectionAdapter == null) { + if (options.multiple) { + options.selectionAdapter = MultipleSelection; + } else { + options.selectionAdapter = SingleSelection; + } + + // Add the placeholder mixin if a placeholder was specified + if (options.placeholder != null) { + options.selectionAdapter = Utils.Decorate( + options.selectionAdapter, + Placeholder + ); + } + + if (options.allowClear) { + options.selectionAdapter = Utils.Decorate( + options.selectionAdapter, + AllowClear + ); + } + + if (options.multiple) { + options.selectionAdapter = Utils.Decorate( + options.selectionAdapter, + SelectionSearch + ); + } + + if ( + options.containerCssClass != null || + options.containerCss != null || + options.adaptContainerCssClass != null + ) { + var ContainerCSS = require(options.amdBase + 'compat/containerCss'); + + options.selectionAdapter = Utils.Decorate( + options.selectionAdapter, + ContainerCSS + ); + } + + options.selectionAdapter = Utils.Decorate( + options.selectionAdapter, + EventRelay + ); + } + + // If the defaults were not previously applied from an element, it is + // possible for the language option to have not been resolved + options.language = this._resolveLanguage(options.language); + + // Always fall back to English since it will always be complete + options.language.push('en'); + + var uniqueLanguages = []; + + for (var l = 0; l < options.language.length; l++) { + var language = options.language[l]; + + if (uniqueLanguages.indexOf(language) === -1) { + uniqueLanguages.push(language); + } + } + + options.language = uniqueLanguages; + + options.translations = this._processTranslations( + options.language, + options.debug + ); + + return options; + }; + + Defaults.prototype.reset = function () { + function stripDiacritics (text) { + // Used 'uni range + named function' from http://jsperf.com/diacritics/18 + function match(a) { + return DIACRITICS[a] || a; + } + + return text.replace(/[^\u0000-\u007E]/g, match); + } + + function matcher (params, data) { + // Always return the object if there is nothing to compare + if ($.trim(params.term) === '') { + return data; + } + + // Do a recursive check for options with children + if (data.children && data.children.length > 0) { + // Clone the data object if there are children + // This is required as we modify the object to remove any non-matches + var match = $.extend(true, {}, data); + + // Check each child of the option + for (var c = data.children.length - 1; c >= 0; c--) { + var child = data.children[c]; + + var matches = matcher(params, child); + + // If there wasn't a match, remove the object in the array + if (matches == null) { + match.children.splice(c, 1); + } + } + + // If any children matched, return the new object + if (match.children.length > 0) { + return match; + } + + // If there were no matching children, check just the plain object + return matcher(params, match); + } + + var original = stripDiacritics(data.text).toUpperCase(); + var term = stripDiacritics(params.term).toUpperCase(); + + // Check if the text contains the term + if (original.indexOf(term) > -1) { + return data; + } + + // If it doesn't contain the term, don't return anything + return null; + } + + this.defaults = { + amdBase: './', + amdLanguageBase: './i18n/', + closeOnSelect: true, + debug: false, + dropdownAutoWidth: false, + escapeMarkup: Utils.escapeMarkup, + language: {}, + matcher: matcher, + minimumInputLength: 0, + maximumInputLength: 0, + maximumSelectionLength: 0, + minimumResultsForSearch: 0, + selectOnClose: false, + scrollAfterSelect: false, + sorter: function (data) { + return data; + }, + templateResult: function (result) { + return result.text; + }, + templateSelection: function (selection) { + return selection.text; + }, + theme: 'default', + width: 'resolve' + }; + }; + + Defaults.prototype.applyFromElement = function (options, $element) { + var optionLanguage = options.language; + var defaultLanguage = this.defaults.language; + var elementLanguage = $element.prop('lang'); + var parentLanguage = $element.closest('[lang]').prop('lang'); + + var languages = Array.prototype.concat.call( + this._resolveLanguage(elementLanguage), + this._resolveLanguage(optionLanguage), + this._resolveLanguage(defaultLanguage), + this._resolveLanguage(parentLanguage) + ); + + options.language = languages; + + return options; + }; + + Defaults.prototype._resolveLanguage = function (language) { + if (!language) { + return []; + } + + if ($.isEmptyObject(language)) { + return []; + } + + if ($.isPlainObject(language)) { + return [language]; + } + + var languages; + + if (!$.isArray(language)) { + languages = [language]; + } else { + languages = language; + } + + var resolvedLanguages = []; + + for (var l = 0; l < languages.length; l++) { + resolvedLanguages.push(languages[l]); + + if (typeof languages[l] === 'string' && languages[l].indexOf('-') > 0) { + // Extract the region information if it is included + var languageParts = languages[l].split('-'); + var baseLanguage = languageParts[0]; + + resolvedLanguages.push(baseLanguage); + } + } + + return resolvedLanguages; + }; + + Defaults.prototype._processTranslations = function (languages, debug) { + var translations = new Translation(); + + for (var l = 0; l < languages.length; l++) { + var languageData = new Translation(); + + var language = languages[l]; + + if (typeof language === 'string') { + try { + // Try to load it with the original name + languageData = Translation.loadPath(language); + } catch (e) { + try { + // If we couldn't load it, check if it wasn't the full path + language = this.defaults.amdLanguageBase + language; + languageData = Translation.loadPath(language); + } catch (ex) { + // The translation could not be loaded at all. Sometimes this is + // because of a configuration problem, other times this can be + // because of how Select2 helps load all possible translation files + if (debug && window.console && console.warn) { + console.warn( + 'Select2: The language file for "' + language + '" could ' + + 'not be automatically loaded. A fallback will be used instead.' + ); + } + } + } + } else if ($.isPlainObject(language)) { + languageData = new Translation(language); + } else { + languageData = language; + } + + translations.extend(languageData); + } + + return translations; + }; + + Defaults.prototype.set = function (key, value) { + var camelKey = $.camelCase(key); + + var data = {}; + data[camelKey] = value; + + var convertedData = Utils._convertData(data); + + $.extend(true, this.defaults, convertedData); + }; + + var defaults = new Defaults(); + + return defaults; +}); + +S2.define('select2/options',[ + 'require', + 'jquery', + './defaults', + './utils' +], function (require, $, Defaults, Utils) { + function Options (options, $element) { + this.options = options; + + if ($element != null) { + this.fromElement($element); + } + + if ($element != null) { + this.options = Defaults.applyFromElement(this.options, $element); + } + + this.options = Defaults.apply(this.options); + + if ($element && $element.is('input')) { + var InputCompat = require(this.get('amdBase') + 'compat/inputData'); + + this.options.dataAdapter = Utils.Decorate( + this.options.dataAdapter, + InputCompat + ); + } + } + + Options.prototype.fromElement = function ($e) { + var excludedData = ['select2']; + + if (this.options.multiple == null) { + this.options.multiple = $e.prop('multiple'); + } + + if (this.options.disabled == null) { + this.options.disabled = $e.prop('disabled'); + } + + if (this.options.dir == null) { + if ($e.prop('dir')) { + this.options.dir = $e.prop('dir'); + } else if ($e.closest('[dir]').prop('dir')) { + this.options.dir = $e.closest('[dir]').prop('dir'); + } else { + this.options.dir = 'ltr'; + } + } + + $e.prop('disabled', this.options.disabled); + $e.prop('multiple', this.options.multiple); + + if (Utils.GetData($e[0], 'select2Tags')) { + if (this.options.debug && window.console && console.warn) { + console.warn( + 'Select2: The `data-select2-tags` attribute has been changed to ' + + 'use the `data-data` and `data-tags="true"` attributes and will be ' + + 'removed in future versions of Select2.' + ); + } + + Utils.StoreData($e[0], 'data', Utils.GetData($e[0], 'select2Tags')); + Utils.StoreData($e[0], 'tags', true); + } + + if (Utils.GetData($e[0], 'ajaxUrl')) { + if (this.options.debug && window.console && console.warn) { + console.warn( + 'Select2: The `data-ajax-url` attribute has been changed to ' + + '`data-ajax--url` and support for the old attribute will be removed' + + ' in future versions of Select2.' + ); + } + + $e.attr('ajax--url', Utils.GetData($e[0], 'ajaxUrl')); + Utils.StoreData($e[0], 'ajax-Url', Utils.GetData($e[0], 'ajaxUrl')); + } + + var dataset = {}; + + function upperCaseLetter(_, letter) { + return letter.toUpperCase(); + } + + // Pre-load all of the attributes which are prefixed with `data-` + for (var attr = 0; attr < $e[0].attributes.length; attr++) { + var attributeName = $e[0].attributes[attr].name; + var prefix = 'data-'; + + if (attributeName.substr(0, prefix.length) == prefix) { + // Get the contents of the attribute after `data-` + var dataName = attributeName.substring(prefix.length); + + // Get the data contents from the consistent source + // This is more than likely the jQuery data helper + var dataValue = Utils.GetData($e[0], dataName); + + // camelCase the attribute name to match the spec + var camelDataName = dataName.replace(/-([a-z])/g, upperCaseLetter); + + // Store the data attribute contents into the dataset since + dataset[camelDataName] = dataValue; + } + } + + // Prefer the element's `dataset` attribute if it exists + // jQuery 1.x does not correctly handle data attributes with multiple dashes + if ($.fn.jquery && $.fn.jquery.substr(0, 2) == '1.' && $e[0].dataset) { + dataset = $.extend(true, {}, $e[0].dataset, dataset); + } + + // Prefer our internal data cache if it exists + var data = $.extend(true, {}, Utils.GetData($e[0]), dataset); + + data = Utils._convertData(data); + + for (var key in data) { + if ($.inArray(key, excludedData) > -1) { + continue; + } + + if ($.isPlainObject(this.options[key])) { + $.extend(this.options[key], data[key]); + } else { + this.options[key] = data[key]; + } + } + + return this; + }; + + Options.prototype.get = function (key) { + return this.options[key]; + }; + + Options.prototype.set = function (key, val) { + this.options[key] = val; + }; + + return Options; +}); + +S2.define('select2/core',[ + 'jquery', + './options', + './utils', + './keys' +], function ($, Options, Utils, KEYS) { + var Select2 = function ($element, options) { + if (Utils.GetData($element[0], 'select2') != null) { + Utils.GetData($element[0], 'select2').destroy(); + } + + this.$element = $element; + + this.id = this._generateId($element); + + options = options || {}; + + this.options = new Options(options, $element); + + Select2.__super__.constructor.call(this); + + // Set up the tabindex + + var tabindex = $element.attr('tabindex') || 0; + Utils.StoreData($element[0], 'old-tabindex', tabindex); + $element.attr('tabindex', '-1'); + + // Set up containers and adapters + + var DataAdapter = this.options.get('dataAdapter'); + this.dataAdapter = new DataAdapter($element, this.options); + + var $container = this.render(); + + this._placeContainer($container); + + var SelectionAdapter = this.options.get('selectionAdapter'); + this.selection = new SelectionAdapter($element, this.options); + this.$selection = this.selection.render(); + + this.selection.position(this.$selection, $container); + + var DropdownAdapter = this.options.get('dropdownAdapter'); + this.dropdown = new DropdownAdapter($element, this.options); + this.$dropdown = this.dropdown.render(); + + this.dropdown.position(this.$dropdown, $container); + + var ResultsAdapter = this.options.get('resultsAdapter'); + this.results = new ResultsAdapter($element, this.options, this.dataAdapter); + this.$results = this.results.render(); + + this.results.position(this.$results, this.$dropdown); + + // Bind events + + var self = this; + + // Bind the container to all of the adapters + this._bindAdapters(); + + // Register any DOM event handlers + this._registerDomEvents(); + + // Register any internal event handlers + this._registerDataEvents(); + this._registerSelectionEvents(); + this._registerDropdownEvents(); + this._registerResultsEvents(); + this._registerEvents(); + + // Set the initial state + this.dataAdapter.current(function (initialData) { + self.trigger('selection:update', { + data: initialData + }); + }); + + // Hide the original select + $element.addClass('select2-hidden-accessible'); + $element.attr('aria-hidden', 'true'); + + // Synchronize any monitored attributes + this._syncAttributes(); + + Utils.StoreData($element[0], 'select2', this); + + // Ensure backwards compatibility with $element.data('select2'). + $element.data('select2', this); + }; + + Utils.Extend(Select2, Utils.Observable); + + Select2.prototype._generateId = function ($element) { + var id = ''; + + if ($element.attr('id') != null) { + id = $element.attr('id'); + } else if ($element.attr('name') != null) { + id = $element.attr('name') + '-' + Utils.generateChars(2); + } else { + id = Utils.generateChars(4); + } + + id = id.replace(/(:|\.|\[|\]|,)/g, ''); + id = 'select2-' + id; + + return id; + }; + + Select2.prototype._placeContainer = function ($container) { + $container.insertAfter(this.$element); + + var width = this._resolveWidth(this.$element, this.options.get('width')); + + if (width != null) { + $container.css('width', width); + } + }; + + Select2.prototype._resolveWidth = function ($element, method) { + var WIDTH = /^width:(([-+]?([0-9]*\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i; + + if (method == 'resolve') { + var styleWidth = this._resolveWidth($element, 'style'); + + if (styleWidth != null) { + return styleWidth; + } + + return this._resolveWidth($element, 'element'); + } + + if (method == 'element') { + var elementWidth = $element.outerWidth(false); + + if (elementWidth <= 0) { + return 'auto'; + } + + return elementWidth + 'px'; + } + + if (method == 'style') { + var style = $element.attr('style'); + + if (typeof(style) !== 'string') { + return null; + } + + var attrs = style.split(';'); + + for (var i = 0, l = attrs.length; i < l; i = i + 1) { + var attr = attrs[i].replace(/\s/g, ''); + var matches = attr.match(WIDTH); + + if (matches !== null && matches.length >= 1) { + return matches[1]; + } + } + + return null; + } + + if (method == 'computedstyle') { + var computedStyle = window.getComputedStyle($element[0]); + + return computedStyle.width; + } + + return method; + }; + + Select2.prototype._bindAdapters = function () { + this.dataAdapter.bind(this, this.$container); + this.selection.bind(this, this.$container); + + this.dropdown.bind(this, this.$container); + this.results.bind(this, this.$container); + }; + + Select2.prototype._registerDomEvents = function () { + var self = this; + + this.$element.on('change.select2', function () { + self.dataAdapter.current(function (data) { + self.trigger('selection:update', { + data: data + }); + }); + }); + + this.$element.on('focus.select2', function (evt) { + self.trigger('focus', evt); + }); + + this._syncA = Utils.bind(this._syncAttributes, this); + this._syncS = Utils.bind(this._syncSubtree, this); + + if (this.$element[0].attachEvent) { + this.$element[0].attachEvent('onpropertychange', this._syncA); + } + + var observer = window.MutationObserver || + window.WebKitMutationObserver || + window.MozMutationObserver + ; + + if (observer != null) { + this._observer = new observer(function (mutations) { + self._syncA(); + self._syncS(null, mutations); + }); + this._observer.observe(this.$element[0], { + attributes: true, + childList: true, + subtree: false + }); + } else if (this.$element[0].addEventListener) { + this.$element[0].addEventListener( + 'DOMAttrModified', + self._syncA, + false + ); + this.$element[0].addEventListener( + 'DOMNodeInserted', + self._syncS, + false + ); + this.$element[0].addEventListener( + 'DOMNodeRemoved', + self._syncS, + false + ); + } + }; + + Select2.prototype._registerDataEvents = function () { + var self = this; + + this.dataAdapter.on('*', function (name, params) { + self.trigger(name, params); + }); + }; + + Select2.prototype._registerSelectionEvents = function () { + var self = this; + var nonRelayEvents = ['toggle', 'focus']; + + this.selection.on('toggle', function () { + self.toggleDropdown(); + }); + + this.selection.on('focus', function (params) { + self.focus(params); + }); + + this.selection.on('*', function (name, params) { + if ($.inArray(name, nonRelayEvents) !== -1) { + return; + } + + self.trigger(name, params); + }); + }; + + Select2.prototype._registerDropdownEvents = function () { + var self = this; + + this.dropdown.on('*', function (name, params) { + self.trigger(name, params); + }); + }; + + Select2.prototype._registerResultsEvents = function () { + var self = this; + + this.results.on('*', function (name, params) { + self.trigger(name, params); + }); + }; + + Select2.prototype._registerEvents = function () { + var self = this; + + this.on('open', function () { + self.$container.addClass('select2-container--open'); + }); + + this.on('close', function () { + self.$container.removeClass('select2-container--open'); + }); + + this.on('enable', function () { + self.$container.removeClass('select2-container--disabled'); + }); + + this.on('disable', function () { + self.$container.addClass('select2-container--disabled'); + }); + + this.on('blur', function () { + self.$container.removeClass('select2-container--focus'); + }); + + this.on('query', function (params) { + if (!self.isOpen()) { + self.trigger('open', {}); + } + + this.dataAdapter.query(params, function (data) { + self.trigger('results:all', { + data: data, + query: params + }); + }); + }); + + this.on('query:append', function (params) { + this.dataAdapter.query(params, function (data) { + self.trigger('results:append', { + data: data, + query: params + }); + }); + }); + + this.on('keypress', function (evt) { + var key = evt.which; + + if (self.isOpen()) { + if (key === KEYS.ESC || key === KEYS.TAB || + (key === KEYS.UP && evt.altKey)) { + self.close(evt); + + evt.preventDefault(); + } else if (key === KEYS.ENTER) { + self.trigger('results:select', {}); + + evt.preventDefault(); + } else if ((key === KEYS.SPACE && evt.ctrlKey)) { + self.trigger('results:toggle', {}); + + evt.preventDefault(); + } else if (key === KEYS.UP) { + self.trigger('results:previous', {}); + + evt.preventDefault(); + } else if (key === KEYS.DOWN) { + self.trigger('results:next', {}); + + evt.preventDefault(); + } + } else { + if (key === KEYS.ENTER || key === KEYS.SPACE || + (key === KEYS.DOWN && evt.altKey)) { + self.open(); + + evt.preventDefault(); + } + } + }); + }; + + Select2.prototype._syncAttributes = function () { + this.options.set('disabled', this.$element.prop('disabled')); + + if (this.isDisabled()) { + if (this.isOpen()) { + this.close(); + } + + this.trigger('disable', {}); + } else { + this.trigger('enable', {}); + } + }; + + Select2.prototype._isChangeMutation = function (evt, mutations) { + var changed = false; + var self = this; + + // Ignore any mutation events raised for elements that aren't options or + // optgroups. This handles the case when the select element is destroyed + if ( + evt && evt.target && ( + evt.target.nodeName !== 'OPTION' && evt.target.nodeName !== 'OPTGROUP' + ) + ) { + return; + } + + if (!mutations) { + // If mutation events aren't supported, then we can only assume that the + // change affected the selections + changed = true; + } else if (mutations.addedNodes && mutations.addedNodes.length > 0) { + for (var n = 0; n < mutations.addedNodes.length; n++) { + var node = mutations.addedNodes[n]; + + if (node.selected) { + changed = true; + } + } + } else if (mutations.removedNodes && mutations.removedNodes.length > 0) { + changed = true; + } else if ($.isArray(mutations)) { + $.each(mutations, function(evt, mutation) { + if (self._isChangeMutation(evt, mutation)) { + // We've found a change mutation. + // Let's escape from the loop and continue + changed = true; + return false; + } + }); + } + return changed; + }; + + Select2.prototype._syncSubtree = function (evt, mutations) { + var changed = this._isChangeMutation(evt, mutations); + var self = this; + + // Only re-pull the data if we think there is a change + if (changed) { + this.dataAdapter.current(function (currentData) { + self.trigger('selection:update', { + data: currentData + }); + }); + } + }; + + /** + * Override the trigger method to automatically trigger pre-events when + * there are events that can be prevented. + */ + Select2.prototype.trigger = function (name, args) { + var actualTrigger = Select2.__super__.trigger; + var preTriggerMap = { + 'open': 'opening', + 'close': 'closing', + 'select': 'selecting', + 'unselect': 'unselecting', + 'clear': 'clearing' + }; + + if (args === undefined) { + args = {}; + } + + if (name in preTriggerMap) { + var preTriggerName = preTriggerMap[name]; + var preTriggerArgs = { + prevented: false, + name: name, + args: args + }; + + actualTrigger.call(this, preTriggerName, preTriggerArgs); + + if (preTriggerArgs.prevented) { + args.prevented = true; + + return; + } + } + + actualTrigger.call(this, name, args); + }; + + Select2.prototype.toggleDropdown = function () { + if (this.isDisabled()) { + return; + } + + if (this.isOpen()) { + this.close(); + } else { + this.open(); + } + }; + + Select2.prototype.open = function () { + if (this.isOpen()) { + return; + } + + if (this.isDisabled()) { + return; + } + + this.trigger('query', {}); + }; + + Select2.prototype.close = function (evt) { + if (!this.isOpen()) { + return; + } + + this.trigger('close', { originalEvent : evt }); + }; + + /** + * Helper method to abstract the "enabled" (not "disabled") state of this + * object. + * + * @return {true} if the instance is not disabled. + * @return {false} if the instance is disabled. + */ + Select2.prototype.isEnabled = function () { + return !this.isDisabled(); + }; + + /** + * Helper method to abstract the "disabled" state of this object. + * + * @return {true} if the disabled option is true. + * @return {false} if the disabled option is false. + */ + Select2.prototype.isDisabled = function () { + return this.options.get('disabled'); + }; + + Select2.prototype.isOpen = function () { + return this.$container.hasClass('select2-container--open'); + }; + + Select2.prototype.hasFocus = function () { + return this.$container.hasClass('select2-container--focus'); + }; + + Select2.prototype.focus = function (data) { + // No need to re-trigger focus events if we are already focused + if (this.hasFocus()) { + return; + } + + this.$container.addClass('select2-container--focus'); + this.trigger('focus', {}); + }; + + Select2.prototype.enable = function (args) { + if (this.options.get('debug') && window.console && console.warn) { + console.warn( + 'Select2: The `select2("enable")` method has been deprecated and will' + + ' be removed in later Select2 versions. Use $element.prop("disabled")' + + ' instead.' + ); + } + + if (args == null || args.length === 0) { + args = [true]; + } + + var disabled = !args[0]; + + this.$element.prop('disabled', disabled); + }; + + Select2.prototype.data = function () { + if (this.options.get('debug') && + arguments.length > 0 && window.console && console.warn) { + console.warn( + 'Select2: Data can no longer be set using `select2("data")`. You ' + + 'should consider setting the value instead using `$element.val()`.' + ); + } + + var data = []; + + this.dataAdapter.current(function (currentData) { + data = currentData; + }); + + return data; + }; + + Select2.prototype.val = function (args) { + if (this.options.get('debug') && window.console && console.warn) { + console.warn( + 'Select2: The `select2("val")` method has been deprecated and will be' + + ' removed in later Select2 versions. Use $element.val() instead.' + ); + } + + if (args == null || args.length === 0) { + return this.$element.val(); + } + + var newVal = args[0]; + + if ($.isArray(newVal)) { + newVal = $.map(newVal, function (obj) { + return obj.toString(); + }); + } + + this.$element.val(newVal).trigger('input').trigger('change'); + }; + + Select2.prototype.destroy = function () { + this.$container.remove(); + + if (this.$element[0].detachEvent) { + this.$element[0].detachEvent('onpropertychange', this._syncA); + } + + if (this._observer != null) { + this._observer.disconnect(); + this._observer = null; + } else if (this.$element[0].removeEventListener) { + this.$element[0] + .removeEventListener('DOMAttrModified', this._syncA, false); + this.$element[0] + .removeEventListener('DOMNodeInserted', this._syncS, false); + this.$element[0] + .removeEventListener('DOMNodeRemoved', this._syncS, false); + } + + this._syncA = null; + this._syncS = null; + + this.$element.off('.select2'); + this.$element.attr('tabindex', + Utils.GetData(this.$element[0], 'old-tabindex')); + + this.$element.removeClass('select2-hidden-accessible'); + this.$element.attr('aria-hidden', 'false'); + Utils.RemoveData(this.$element[0]); + this.$element.removeData('select2'); + + this.dataAdapter.destroy(); + this.selection.destroy(); + this.dropdown.destroy(); + this.results.destroy(); + + this.dataAdapter = null; + this.selection = null; + this.dropdown = null; + this.results = null; + }; + + Select2.prototype.render = function () { + var $container = $( + '<span class="select2 select2-container">' + + '<span class="selection"></span>' + + '<span class="dropdown-wrapper" aria-hidden="true"></span>' + + '</span>' + ); + + $container.attr('dir', this.options.get('dir')); + + this.$container = $container; + + this.$container.addClass('select2-container--' + this.options.get('theme')); + + Utils.StoreData($container[0], 'element', this.$element); + + return $container; + }; + + return Select2; +}); + +S2.define('select2/compat/utils',[ + 'jquery' +], function ($) { + function syncCssClasses ($dest, $src, adapter) { + var classes, replacements = [], adapted; + + classes = $.trim($dest.attr('class')); + + if (classes) { + classes = '' + classes; // for IE which returns object + + $(classes.split(/\s+/)).each(function () { + // Save all Select2 classes + if (this.indexOf('select2-') === 0) { + replacements.push(this); + } + }); + } + + classes = $.trim($src.attr('class')); + + if (classes) { + classes = '' + classes; // for IE which returns object + + $(classes.split(/\s+/)).each(function () { + // Only adapt non-Select2 classes + if (this.indexOf('select2-') !== 0) { + adapted = adapter(this); + + if (adapted != null) { + replacements.push(adapted); + } + } + }); + } + + $dest.attr('class', replacements.join(' ')); + } + + return { + syncCssClasses: syncCssClasses + }; +}); + +S2.define('select2/compat/containerCss',[ + 'jquery', + './utils' +], function ($, CompatUtils) { + // No-op CSS adapter that discards all classes by default + function _containerAdapter (clazz) { + return null; + } + + function ContainerCSS () { } + + ContainerCSS.prototype.render = function (decorated) { + var $container = decorated.call(this); + + var containerCssClass = this.options.get('containerCssClass') || ''; + + if ($.isFunction(containerCssClass)) { + containerCssClass = containerCssClass(this.$element); + } + + var containerCssAdapter = this.options.get('adaptContainerCssClass'); + containerCssAdapter = containerCssAdapter || _containerAdapter; + + if (containerCssClass.indexOf(':all:') !== -1) { + containerCssClass = containerCssClass.replace(':all:', ''); + + var _cssAdapter = containerCssAdapter; + + containerCssAdapter = function (clazz) { + var adapted = _cssAdapter(clazz); + + if (adapted != null) { + // Append the old one along with the adapted one + return adapted + ' ' + clazz; + } + + return clazz; + }; + } + + var containerCss = this.options.get('containerCss') || {}; + + if ($.isFunction(containerCss)) { + containerCss = containerCss(this.$element); + } + + CompatUtils.syncCssClasses($container, this.$element, containerCssAdapter); + + $container.css(containerCss); + $container.addClass(containerCssClass); + + return $container; + }; + + return ContainerCSS; +}); + +S2.define('select2/compat/dropdownCss',[ + 'jquery', + './utils' +], function ($, CompatUtils) { + // No-op CSS adapter that discards all classes by default + function _dropdownAdapter (clazz) { + return null; + } + + function DropdownCSS () { } + + DropdownCSS.prototype.render = function (decorated) { + var $dropdown = decorated.call(this); + + var dropdownCssClass = this.options.get('dropdownCssClass') || ''; + + if ($.isFunction(dropdownCssClass)) { + dropdownCssClass = dropdownCssClass(this.$element); + } + + var dropdownCssAdapter = this.options.get('adaptDropdownCssClass'); + dropdownCssAdapter = dropdownCssAdapter || _dropdownAdapter; + + if (dropdownCssClass.indexOf(':all:') !== -1) { + dropdownCssClass = dropdownCssClass.replace(':all:', ''); + + var _cssAdapter = dropdownCssAdapter; + + dropdownCssAdapter = function (clazz) { + var adapted = _cssAdapter(clazz); + + if (adapted != null) { + // Append the old one along with the adapted one + return adapted + ' ' + clazz; + } + + return clazz; + }; + } + + var dropdownCss = this.options.get('dropdownCss') || {}; + + if ($.isFunction(dropdownCss)) { + dropdownCss = dropdownCss(this.$element); + } + + CompatUtils.syncCssClasses($dropdown, this.$element, dropdownCssAdapter); + + $dropdown.css(dropdownCss); + $dropdown.addClass(dropdownCssClass); + + return $dropdown; + }; + + return DropdownCSS; +}); + +S2.define('select2/compat/initSelection',[ + 'jquery' +], function ($) { + function InitSelection (decorated, $element, options) { + if (options.get('debug') && window.console && console.warn) { + console.warn( + 'Select2: The `initSelection` option has been deprecated in favor' + + ' of a custom data adapter that overrides the `current` method. ' + + 'This method is now called multiple times instead of a single ' + + 'time when the instance is initialized. Support will be removed ' + + 'for the `initSelection` option in future versions of Select2' + ); + } + + this.initSelection = options.get('initSelection'); + this._isInitialized = false; + + decorated.call(this, $element, options); + } + + InitSelection.prototype.current = function (decorated, callback) { + var self = this; + + if (this._isInitialized) { + decorated.call(this, callback); + + return; + } + + this.initSelection.call(null, this.$element, function (data) { + self._isInitialized = true; + + if (!$.isArray(data)) { + data = [data]; + } + + callback(data); + }); + }; + + return InitSelection; +}); + +S2.define('select2/compat/inputData',[ + 'jquery', + '../utils' +], function ($, Utils) { + function InputData (decorated, $element, options) { + this._currentData = []; + this._valueSeparator = options.get('valueSeparator') || ','; + + if ($element.prop('type') === 'hidden') { + if (options.get('debug') && console && console.warn) { + console.warn( + 'Select2: Using a hidden input with Select2 is no longer ' + + 'supported and may stop working in the future. It is recommended ' + + 'to use a `<select>` element instead.' + ); + } + } + + decorated.call(this, $element, options); + } + + InputData.prototype.current = function (_, callback) { + function getSelected (data, selectedIds) { + var selected = []; + + if (data.selected || $.inArray(data.id, selectedIds) !== -1) { + data.selected = true; + selected.push(data); + } else { + data.selected = false; + } + + if (data.children) { + selected.push.apply(selected, getSelected(data.children, selectedIds)); + } + + return selected; + } + + var selected = []; + + for (var d = 0; d < this._currentData.length; d++) { + var data = this._currentData[d]; + + selected.push.apply( + selected, + getSelected( + data, + this.$element.val().split( + this._valueSeparator + ) + ) + ); + } + + callback(selected); + }; + + InputData.prototype.select = function (_, data) { + if (!this.options.get('multiple')) { + this.current(function (allData) { + $.map(allData, function (data) { + data.selected = false; + }); + }); + + this.$element.val(data.id); + this.$element.trigger('input').trigger('change'); + } else { + var value = this.$element.val(); + value += this._valueSeparator + data.id; + + this.$element.val(value); + this.$element.trigger('input').trigger('change'); + } + }; + + InputData.prototype.unselect = function (_, data) { + var self = this; + + data.selected = false; + + this.current(function (allData) { + var values = []; + + for (var d = 0; d < allData.length; d++) { + var item = allData[d]; + + if (data.id == item.id) { + continue; + } + + values.push(item.id); + } + + self.$element.val(values.join(self._valueSeparator)); + self.$element.trigger('input').trigger('change'); + }); + }; + + InputData.prototype.query = function (_, params, callback) { + var results = []; + + for (var d = 0; d < this._currentData.length; d++) { + var data = this._currentData[d]; + + var matches = this.matches(params, data); + + if (matches !== null) { + results.push(matches); + } + } + + callback({ + results: results + }); + }; + + InputData.prototype.addOptions = function (_, $options) { + var options = $.map($options, function ($option) { + return Utils.GetData($option[0], 'data'); + }); + + this._currentData.push.apply(this._currentData, options); + }; + + return InputData; +}); + +S2.define('select2/compat/matcher',[ + 'jquery' +], function ($) { + function oldMatcher (matcher) { + function wrappedMatcher (params, data) { + var match = $.extend(true, {}, data); + + if (params.term == null || $.trim(params.term) === '') { + return match; + } + + if (data.children) { + for (var c = data.children.length - 1; c >= 0; c--) { + var child = data.children[c]; + + // Check if the child object matches + // The old matcher returned a boolean true or false + var doesMatch = matcher(params.term, child.text, child); + + // If the child didn't match, pop it off + if (!doesMatch) { + match.children.splice(c, 1); + } + } + + if (match.children.length > 0) { + return match; + } + } + + if (matcher(params.term, data.text, data)) { + return match; + } + + return null; + } + + return wrappedMatcher; + } + + return oldMatcher; +}); + +S2.define('select2/compat/query',[ + +], function () { + function Query (decorated, $element, options) { + if (options.get('debug') && window.console && console.warn) { + console.warn( + 'Select2: The `query` option has been deprecated in favor of a ' + + 'custom data adapter that overrides the `query` method. Support ' + + 'will be removed for the `query` option in future versions of ' + + 'Select2.' + ); + } + + decorated.call(this, $element, options); + } + + Query.prototype.query = function (_, params, callback) { + params.callback = callback; + + var query = this.options.get('query'); + + query.call(null, params); + }; + + return Query; +}); + +S2.define('select2/dropdown/attachContainer',[ + +], function () { + function AttachContainer (decorated, $element, options) { + decorated.call(this, $element, options); + } + + AttachContainer.prototype.position = + function (decorated, $dropdown, $container) { + var $dropdownContainer = $container.find('.dropdown-wrapper'); + $dropdownContainer.append($dropdown); + + $dropdown.addClass('select2-dropdown--below'); + $container.addClass('select2-container--below'); + }; + + return AttachContainer; +}); + +S2.define('select2/dropdown/stopPropagation',[ + +], function () { + function StopPropagation () { } + + StopPropagation.prototype.bind = function (decorated, container, $container) { + decorated.call(this, container, $container); + + var stoppedEvents = [ + 'blur', + 'change', + 'click', + 'dblclick', + 'focus', + 'focusin', + 'focusout', + 'input', + 'keydown', + 'keyup', + 'keypress', + 'mousedown', + 'mouseenter', + 'mouseleave', + 'mousemove', + 'mouseover', + 'mouseup', + 'search', + 'touchend', + 'touchstart' + ]; + + this.$dropdown.on(stoppedEvents.join(' '), function (evt) { + evt.stopPropagation(); + }); + }; + + return StopPropagation; +}); + +S2.define('select2/selection/stopPropagation',[ + +], function () { + function StopPropagation () { } + + StopPropagation.prototype.bind = function (decorated, container, $container) { + decorated.call(this, container, $container); + + var stoppedEvents = [ + 'blur', + 'change', + 'click', + 'dblclick', + 'focus', + 'focusin', + 'focusout', + 'input', + 'keydown', + 'keyup', + 'keypress', + 'mousedown', + 'mouseenter', + 'mouseleave', + 'mousemove', + 'mouseover', + 'mouseup', + 'search', + 'touchend', + 'touchstart' + ]; + + this.$selection.on(stoppedEvents.join(' '), function (evt) { + evt.stopPropagation(); + }); + }; + + return StopPropagation; +}); + +/*! + * jQuery Mousewheel 3.1.13 + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license + * http://jquery.org/license + */ + +(function (factory) { + if ( typeof S2.define === 'function' && S2.define.amd ) { + // AMD. Register as an anonymous module. + S2.define('jquery-mousewheel',['jquery'], factory); + } else if (typeof exports === 'object') { + // Node/CommonJS style for Browserify + module.exports = factory; + } else { + // Browser globals + factory(jQuery); + } +}(function ($) { + + var toFix = ['wheel', 'mousewheel', 'DOMMouseScroll', 'MozMousePixelScroll'], + toBind = ( 'onwheel' in document || document.documentMode >= 9 ) ? + ['wheel'] : ['mousewheel', 'DomMouseScroll', 'MozMousePixelScroll'], + slice = Array.prototype.slice, + nullLowestDeltaTimeout, lowestDelta; + + if ( $.event.fixHooks ) { + for ( var i = toFix.length; i; ) { + $.event.fixHooks[ toFix[--i] ] = $.event.mouseHooks; + } + } + + var special = $.event.special.mousewheel = { + version: '3.1.12', + + setup: function() { + if ( this.addEventListener ) { + for ( var i = toBind.length; i; ) { + this.addEventListener( toBind[--i], handler, false ); + } + } else { + this.onmousewheel = handler; + } + // Store the line height and page height for this particular element + $.data(this, 'mousewheel-line-height', special.getLineHeight(this)); + $.data(this, 'mousewheel-page-height', special.getPageHeight(this)); + }, + + teardown: function() { + if ( this.removeEventListener ) { + for ( var i = toBind.length; i; ) { + this.removeEventListener( toBind[--i], handler, false ); + } + } else { + this.onmousewheel = null; + } + // Clean up the data we added to the element + $.removeData(this, 'mousewheel-line-height'); + $.removeData(this, 'mousewheel-page-height'); + }, + + getLineHeight: function(elem) { + var $elem = $(elem), + $parent = $elem['offsetParent' in $.fn ? 'offsetParent' : 'parent'](); + if (!$parent.length) { + $parent = $('body'); + } + return parseInt($parent.css('fontSize'), 10) || parseInt($elem.css('fontSize'), 10) || 16; + }, + + getPageHeight: function(elem) { + return $(elem).height(); + }, + + settings: { + adjustOldDeltas: true, // see shouldAdjustOldDeltas() below + normalizeOffset: true // calls getBoundingClientRect for each event + } + }; + + $.fn.extend({ + mousewheel: function(fn) { + return fn ? this.bind('mousewheel', fn) : this.trigger('mousewheel'); + }, + + unmousewheel: function(fn) { + return this.unbind('mousewheel', fn); + } + }); + + + function handler(event) { + var orgEvent = event || window.event, + args = slice.call(arguments, 1), + delta = 0, + deltaX = 0, + deltaY = 0, + absDelta = 0, + offsetX = 0, + offsetY = 0; + event = $.event.fix(orgEvent); + event.type = 'mousewheel'; + + // Old school scrollwheel delta + if ( 'detail' in orgEvent ) { deltaY = orgEvent.detail * -1; } + if ( 'wheelDelta' in orgEvent ) { deltaY = orgEvent.wheelDelta; } + if ( 'wheelDeltaY' in orgEvent ) { deltaY = orgEvent.wheelDeltaY; } + if ( 'wheelDeltaX' in orgEvent ) { deltaX = orgEvent.wheelDeltaX * -1; } + + // Firefox < 17 horizontal scrolling related to DOMMouseScroll event + if ( 'axis' in orgEvent && orgEvent.axis === orgEvent.HORIZONTAL_AXIS ) { + deltaX = deltaY * -1; + deltaY = 0; + } + + // Set delta to be deltaY or deltaX if deltaY is 0 for backwards compatabilitiy + delta = deltaY === 0 ? deltaX : deltaY; + + // New school wheel delta (wheel event) + if ( 'deltaY' in orgEvent ) { + deltaY = orgEvent.deltaY * -1; + delta = deltaY; + } + if ( 'deltaX' in orgEvent ) { + deltaX = orgEvent.deltaX; + if ( deltaY === 0 ) { delta = deltaX * -1; } + } + + // No change actually happened, no reason to go any further + if ( deltaY === 0 && deltaX === 0 ) { return; } + + // Need to convert lines and pages to pixels if we aren't already in pixels + // There are three delta modes: + // * deltaMode 0 is by pixels, nothing to do + // * deltaMode 1 is by lines + // * deltaMode 2 is by pages + if ( orgEvent.deltaMode === 1 ) { + var lineHeight = $.data(this, 'mousewheel-line-height'); + delta *= lineHeight; + deltaY *= lineHeight; + deltaX *= lineHeight; + } else if ( orgEvent.deltaMode === 2 ) { + var pageHeight = $.data(this, 'mousewheel-page-height'); + delta *= pageHeight; + deltaY *= pageHeight; + deltaX *= pageHeight; + } + + // Store lowest absolute delta to normalize the delta values + absDelta = Math.max( Math.abs(deltaY), Math.abs(deltaX) ); + + if ( !lowestDelta || absDelta < lowestDelta ) { + lowestDelta = absDelta; + + // Adjust older deltas if necessary + if ( shouldAdjustOldDeltas(orgEvent, absDelta) ) { + lowestDelta /= 40; + } + } + + // Adjust older deltas if necessary + if ( shouldAdjustOldDeltas(orgEvent, absDelta) ) { + // Divide all the things by 40! + delta /= 40; + deltaX /= 40; + deltaY /= 40; + } + + // Get a whole, normalized value for the deltas + delta = Math[ delta >= 1 ? 'floor' : 'ceil' ](delta / lowestDelta); + deltaX = Math[ deltaX >= 1 ? 'floor' : 'ceil' ](deltaX / lowestDelta); + deltaY = Math[ deltaY >= 1 ? 'floor' : 'ceil' ](deltaY / lowestDelta); + + // Normalise offsetX and offsetY properties + if ( special.settings.normalizeOffset && this.getBoundingClientRect ) { + var boundingRect = this.getBoundingClientRect(); + offsetX = event.clientX - boundingRect.left; + offsetY = event.clientY - boundingRect.top; + } + + // Add information to the event object + event.deltaX = deltaX; + event.deltaY = deltaY; + event.deltaFactor = lowestDelta; + event.offsetX = offsetX; + event.offsetY = offsetY; + // Go ahead and set deltaMode to 0 since we converted to pixels + // Although this is a little odd since we overwrite the deltaX/Y + // properties with normalized deltas. + event.deltaMode = 0; + + // Add event and delta to the front of the arguments + args.unshift(event, delta, deltaX, deltaY); + + // Clearout lowestDelta after sometime to better + // handle multiple device types that give different + // a different lowestDelta + // Ex: trackpad = 3 and mouse wheel = 120 + if (nullLowestDeltaTimeout) { clearTimeout(nullLowestDeltaTimeout); } + nullLowestDeltaTimeout = setTimeout(nullLowestDelta, 200); + + return ($.event.dispatch || $.event.handle).apply(this, args); + } + + function nullLowestDelta() { + lowestDelta = null; + } + + function shouldAdjustOldDeltas(orgEvent, absDelta) { + // If this is an older event and the delta is divisable by 120, + // then we are assuming that the browser is treating this as an + // older mouse wheel event and that we should divide the deltas + // by 40 to try and get a more usable deltaFactor. + // Side note, this actually impacts the reported scroll distance + // in older browsers and can cause scrolling to be slower than native. + // Turn this off by setting $.event.special.mousewheel.settings.adjustOldDeltas to false. + return special.settings.adjustOldDeltas && orgEvent.type === 'mousewheel' && absDelta % 120 === 0; + } + +})); + +S2.define('jquery.select2',[ + 'jquery', + 'jquery-mousewheel', + + './select2/core', + './select2/defaults', + './select2/utils' +], function ($, _, Select2, Defaults, Utils) { + if ($.fn.select2 == null) { + // All methods that should return the element + var thisMethods = ['open', 'close', 'destroy']; + + $.fn.select2 = function (options) { + options = options || {}; + + if (typeof options === 'object') { + this.each(function () { + var instanceOptions = $.extend(true, {}, options); + + var instance = new Select2($(this), instanceOptions); + }); + + return this; + } else if (typeof options === 'string') { + var ret; + var args = Array.prototype.slice.call(arguments, 1); + + this.each(function () { + var instance = Utils.GetData(this, 'select2'); + + if (instance == null && window.console && console.error) { + console.error( + 'The select2(\'' + options + '\') method was called on an ' + + 'element that is not using Select2.' + ); + } + + ret = instance[options].apply(instance, args); + }); + + // Check if we should be returning `this` + if ($.inArray(options, thisMethods) > -1) { + return this; + } + + return ret; + } else { + throw new Error('Invalid arguments for Select2: ' + options); + } + }; + } + + if ($.fn.select2.defaults == null) { + $.fn.select2.defaults = Defaults; + } + + return Select2; +}); + + // Return the AMD loader configuration so it can be used outside of this file + return { + define: S2.define, + require: S2.require + }; +}()); + + // Autoload the jQuery bindings + // We know that all of the modules exist above this, so we're safe + var select2 = S2.require('jquery.select2'); + + // Hold the AMD module references on the jQuery function that was just loaded + // This allows Select2 to use the internal loader outside of this file, such + // as in the language files. + jQuery.fn.select2.amd = S2; + + // Return the Select2 instance for anyone who is importing it. + return select2; +})); diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/select2.full.min.js b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/select2.full.min.js new file mode 100644 index 0000000000..fa781916e8 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/select2.full.min.js @@ -0,0 +1,2 @@ +/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ +!function(n){"function"==typeof define&&define.amd?define(["jquery"],n):"object"==typeof module&&module.exports?module.exports=function(e,t){return void 0===t&&(t="undefined"!=typeof window?require("jquery"):require("jquery")(e)),n(t),t}:n(jQuery)}(function(d){var e=function(){if(d&&d.fn&&d.fn.select2&&d.fn.select2.amd)var e=d.fn.select2.amd;var t,n,i,h,o,s,f,g,m,v,y,_,r,a,w,l;function b(e,t){return r.call(e,t)}function c(e,t){var n,i,r,o,s,a,l,c,u,d,p,h=t&&t.split("/"),f=y.map,g=f&&f["*"]||{};if(e){for(s=(e=e.split("/")).length-1,y.nodeIdCompat&&w.test(e[s])&&(e[s]=e[s].replace(w,"")),"."===e[0].charAt(0)&&h&&(e=h.slice(0,h.length-1).concat(e)),u=0;u<e.length;u++)if("."===(p=e[u]))e.splice(u,1),u-=1;else if(".."===p){if(0===u||1===u&&".."===e[2]||".."===e[u-1])continue;0<u&&(e.splice(u-1,2),u-=2)}e=e.join("/")}if((h||g)&&f){for(u=(n=e.split("/")).length;0<u;u-=1){if(i=n.slice(0,u).join("/"),h)for(d=h.length;0<d;d-=1)if(r=(r=f[h.slice(0,d).join("/")])&&r[i]){o=r,a=u;break}if(o)break;!l&&g&&g[i]&&(l=g[i],c=u)}!o&&l&&(o=l,a=c),o&&(n.splice(0,a,o),e=n.join("/"))}return e}function A(t,n){return function(){var e=a.call(arguments,0);return"string"!=typeof e[0]&&1===e.length&&e.push(null),s.apply(h,e.concat([t,n]))}}function x(t){return function(e){m[t]=e}}function D(e){if(b(v,e)){var t=v[e];delete v[e],_[e]=!0,o.apply(h,t)}if(!b(m,e)&&!b(_,e))throw new Error("No "+e);return m[e]}function u(e){var t,n=e?e.indexOf("!"):-1;return-1<n&&(t=e.substring(0,n),e=e.substring(n+1,e.length)),[t,e]}function S(e){return e?u(e):[]}return e&&e.requirejs||(e?n=e:e={},m={},v={},y={},_={},r=Object.prototype.hasOwnProperty,a=[].slice,w=/\.js$/,f=function(e,t){var n,i=u(e),r=i[0],o=t[1];return e=i[1],r&&(n=D(r=c(r,o))),r?e=n&&n.normalize?n.normalize(e,function(t){return function(e){return c(e,t)}}(o)):c(e,o):(r=(i=u(e=c(e,o)))[0],e=i[1],r&&(n=D(r))),{f:r?r+"!"+e:e,n:e,pr:r,p:n}},g={require:function(e){return A(e)},exports:function(e){var t=m[e];return void 0!==t?t:m[e]={}},module:function(e){return{id:e,uri:"",exports:m[e],config:function(e){return function(){return y&&y.config&&y.config[e]||{}}}(e)}}},o=function(e,t,n,i){var r,o,s,a,l,c,u,d=[],p=typeof n;if(c=S(i=i||e),"undefined"==p||"function"==p){for(t=!t.length&&n.length?["require","exports","module"]:t,l=0;l<t.length;l+=1)if("require"===(o=(a=f(t[l],c)).f))d[l]=g.require(e);else if("exports"===o)d[l]=g.exports(e),u=!0;else if("module"===o)r=d[l]=g.module(e);else if(b(m,o)||b(v,o)||b(_,o))d[l]=D(o);else{if(!a.p)throw new Error(e+" missing "+o);a.p.load(a.n,A(i,!0),x(o),{}),d[l]=m[o]}s=n?n.apply(m[e],d):void 0,e&&(r&&r.exports!==h&&r.exports!==m[e]?m[e]=r.exports:s===h&&u||(m[e]=s))}else e&&(m[e]=n)},t=n=s=function(e,t,n,i,r){if("string"==typeof e)return g[e]?g[e](t):D(f(e,S(t)).f);if(!e.splice){if((y=e).deps&&s(y.deps,y.callback),!t)return;t.splice?(e=t,t=n,n=null):e=h}return t=t||function(){},"function"==typeof n&&(n=i,i=r),i?o(h,e,t,n):setTimeout(function(){o(h,e,t,n)},4),s},s.config=function(e){return s(e)},t._defined=m,(i=function(e,t,n){if("string"!=typeof e)throw new Error("See almond README: incorrect module build, no module name");t.splice||(n=t,t=[]),b(m,e)||b(v,e)||(v[e]=[e,t,n])}).amd={jQuery:!0},e.requirejs=t,e.require=n,e.define=i),e.define("almond",function(){}),e.define("jquery",[],function(){var e=d||$;return null==e&&console&&console.error&&console.error("Select2: An instance of jQuery or a jQuery-compatible library was not found. Make sure that you are including jQuery before Select2 on your web page."),e}),e.define("select2/utils",["jquery"],function(o){var r={};function u(e){var t=e.prototype,n=[];for(var i in t){"function"==typeof t[i]&&"constructor"!==i&&n.push(i)}return n}r.Extend=function(e,t){var n={}.hasOwnProperty;function i(){this.constructor=e}for(var r in t)n.call(t,r)&&(e[r]=t[r]);return i.prototype=t.prototype,e.prototype=new i,e.__super__=t.prototype,e},r.Decorate=function(i,r){var e=u(r),t=u(i);function o(){var e=Array.prototype.unshift,t=r.prototype.constructor.length,n=i.prototype.constructor;0<t&&(e.call(arguments,i.prototype.constructor),n=r.prototype.constructor),n.apply(this,arguments)}r.displayName=i.displayName,o.prototype=new function(){this.constructor=o};for(var n=0;n<t.length;n++){var s=t[n];o.prototype[s]=i.prototype[s]}function a(e){var t=function(){};e in o.prototype&&(t=o.prototype[e]);var n=r.prototype[e];return function(){return Array.prototype.unshift.call(arguments,t),n.apply(this,arguments)}}for(var l=0;l<e.length;l++){var c=e[l];o.prototype[c]=a(c)}return o};function e(){this.listeners={}}e.prototype.on=function(e,t){this.listeners=this.listeners||{},e in this.listeners?this.listeners[e].push(t):this.listeners[e]=[t]},e.prototype.trigger=function(e){var t=Array.prototype.slice,n=t.call(arguments,1);this.listeners=this.listeners||{},null==n&&(n=[]),0===n.length&&n.push({}),(n[0]._type=e)in this.listeners&&this.invoke(this.listeners[e],t.call(arguments,1)),"*"in this.listeners&&this.invoke(this.listeners["*"],arguments)},e.prototype.invoke=function(e,t){for(var n=0,i=e.length;n<i;n++)e[n].apply(this,t)},r.Observable=e,r.generateChars=function(e){for(var t="",n=0;n<e;n++){t+=Math.floor(36*Math.random()).toString(36)}return t},r.bind=function(e,t){return function(){e.apply(t,arguments)}},r._convertData=function(e){for(var t in e){var n=t.split("-"),i=e;if(1!==n.length){for(var r=0;r<n.length;r++){var o=n[r];(o=o.substring(0,1).toLowerCase()+o.substring(1))in i||(i[o]={}),r==n.length-1&&(i[o]=e[t]),i=i[o]}delete e[t]}}return e},r.hasScroll=function(e,t){var n=o(t),i=t.style.overflowX,r=t.style.overflowY;return(i!==r||"hidden"!==r&&"visible"!==r)&&("scroll"===i||"scroll"===r||(n.innerHeight()<t.scrollHeight||n.innerWidth()<t.scrollWidth))},r.escapeMarkup=function(e){var t={"\\":"\","&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};return"string"!=typeof e?e:String(e).replace(/[&<>"'\/\\]/g,function(e){return t[e]})},r.appendMany=function(e,t){if("1.7"===o.fn.jquery.substr(0,3)){var n=o();o.map(t,function(e){n=n.add(e)}),t=n}e.append(t)},r.__cache={};var n=0;return r.GetUniqueElementId=function(e){var t=e.getAttribute("data-select2-id");return null==t&&(e.id?(t=e.id,e.setAttribute("data-select2-id",t)):(e.setAttribute("data-select2-id",++n),t=n.toString())),t},r.StoreData=function(e,t,n){var i=r.GetUniqueElementId(e);r.__cache[i]||(r.__cache[i]={}),r.__cache[i][t]=n},r.GetData=function(e,t){var n=r.GetUniqueElementId(e);return t?r.__cache[n]&&null!=r.__cache[n][t]?r.__cache[n][t]:o(e).data(t):r.__cache[n]},r.RemoveData=function(e){var t=r.GetUniqueElementId(e);null!=r.__cache[t]&&delete r.__cache[t],e.removeAttribute("data-select2-id")},r}),e.define("select2/results",["jquery","./utils"],function(h,f){function i(e,t,n){this.$element=e,this.data=n,this.options=t,i.__super__.constructor.call(this)}return f.Extend(i,f.Observable),i.prototype.render=function(){var e=h('<ul class="select2-results__options" role="listbox"></ul>');return this.options.get("multiple")&&e.attr("aria-multiselectable","true"),this.$results=e},i.prototype.clear=function(){this.$results.empty()},i.prototype.displayMessage=function(e){var t=this.options.get("escapeMarkup");this.clear(),this.hideLoading();var n=h('<li role="alert" aria-live="assertive" class="select2-results__option"></li>'),i=this.options.get("translations").get(e.message);n.append(t(i(e.args))),n[0].className+=" select2-results__message",this.$results.append(n)},i.prototype.hideMessages=function(){this.$results.find(".select2-results__message").remove()},i.prototype.append=function(e){this.hideLoading();var t=[];if(null!=e.results&&0!==e.results.length){e.results=this.sort(e.results);for(var n=0;n<e.results.length;n++){var i=e.results[n],r=this.option(i);t.push(r)}this.$results.append(t)}else 0===this.$results.children().length&&this.trigger("results:message",{message:"noResults"})},i.prototype.position=function(e,t){t.find(".select2-results").append(e)},i.prototype.sort=function(e){return this.options.get("sorter")(e)},i.prototype.highlightFirstItem=function(){var e=this.$results.find(".select2-results__option[aria-selected]"),t=e.filter("[aria-selected=true]");0<t.length?t.first().trigger("mouseenter"):e.first().trigger("mouseenter"),this.ensureHighlightVisible()},i.prototype.setClasses=function(){var t=this;this.data.current(function(e){var i=h.map(e,function(e){return e.id.toString()});t.$results.find(".select2-results__option[aria-selected]").each(function(){var e=h(this),t=f.GetData(this,"data"),n=""+t.id;null!=t.element&&t.element.selected||null==t.element&&-1<h.inArray(n,i)?e.attr("aria-selected","true"):e.attr("aria-selected","false")})})},i.prototype.showLoading=function(e){this.hideLoading();var t={disabled:!0,loading:!0,text:this.options.get("translations").get("searching")(e)},n=this.option(t);n.className+=" loading-results",this.$results.prepend(n)},i.prototype.hideLoading=function(){this.$results.find(".loading-results").remove()},i.prototype.option=function(e){var t=document.createElement("li");t.className="select2-results__option";var n={role:"option","aria-selected":"false"},i=window.Element.prototype.matches||window.Element.prototype.msMatchesSelector||window.Element.prototype.webkitMatchesSelector;for(var r in(null!=e.element&&i.call(e.element,":disabled")||null==e.element&&e.disabled)&&(delete n["aria-selected"],n["aria-disabled"]="true"),null==e.id&&delete n["aria-selected"],null!=e._resultId&&(t.id=e._resultId),e.title&&(t.title=e.title),e.children&&(n.role="group",n["aria-label"]=e.text,delete n["aria-selected"]),n){var o=n[r];t.setAttribute(r,o)}if(e.children){var s=h(t),a=document.createElement("strong");a.className="select2-results__group";h(a);this.template(e,a);for(var l=[],c=0;c<e.children.length;c++){var u=e.children[c],d=this.option(u);l.push(d)}var p=h("<ul></ul>",{class:"select2-results__options select2-results__options--nested"});p.append(l),s.append(a),s.append(p)}else this.template(e,t);return f.StoreData(t,"data",e),t},i.prototype.bind=function(t,e){var l=this,n=t.id+"-results";this.$results.attr("id",n),t.on("results:all",function(e){l.clear(),l.append(e.data),t.isOpen()&&(l.setClasses(),l.highlightFirstItem())}),t.on("results:append",function(e){l.append(e.data),t.isOpen()&&l.setClasses()}),t.on("query",function(e){l.hideMessages(),l.showLoading(e)}),t.on("select",function(){t.isOpen()&&(l.setClasses(),l.options.get("scrollAfterSelect")&&l.highlightFirstItem())}),t.on("unselect",function(){t.isOpen()&&(l.setClasses(),l.options.get("scrollAfterSelect")&&l.highlightFirstItem())}),t.on("open",function(){l.$results.attr("aria-expanded","true"),l.$results.attr("aria-hidden","false"),l.setClasses(),l.ensureHighlightVisible()}),t.on("close",function(){l.$results.attr("aria-expanded","false"),l.$results.attr("aria-hidden","true"),l.$results.removeAttr("aria-activedescendant")}),t.on("results:toggle",function(){var e=l.getHighlightedResults();0!==e.length&&e.trigger("mouseup")}),t.on("results:select",function(){var e=l.getHighlightedResults();if(0!==e.length){var t=f.GetData(e[0],"data");"true"==e.attr("aria-selected")?l.trigger("close",{}):l.trigger("select",{data:t})}}),t.on("results:previous",function(){var e=l.getHighlightedResults(),t=l.$results.find("[aria-selected]"),n=t.index(e);if(!(n<=0)){var i=n-1;0===e.length&&(i=0);var r=t.eq(i);r.trigger("mouseenter");var o=l.$results.offset().top,s=r.offset().top,a=l.$results.scrollTop()+(s-o);0===i?l.$results.scrollTop(0):s-o<0&&l.$results.scrollTop(a)}}),t.on("results:next",function(){var e=l.getHighlightedResults(),t=l.$results.find("[aria-selected]"),n=t.index(e)+1;if(!(n>=t.length)){var i=t.eq(n);i.trigger("mouseenter");var r=l.$results.offset().top+l.$results.outerHeight(!1),o=i.offset().top+i.outerHeight(!1),s=l.$results.scrollTop()+o-r;0===n?l.$results.scrollTop(0):r<o&&l.$results.scrollTop(s)}}),t.on("results:focus",function(e){e.element.addClass("select2-results__option--highlighted")}),t.on("results:message",function(e){l.displayMessage(e)}),h.fn.mousewheel&&this.$results.on("mousewheel",function(e){var t=l.$results.scrollTop(),n=l.$results.get(0).scrollHeight-t+e.deltaY,i=0<e.deltaY&&t-e.deltaY<=0,r=e.deltaY<0&&n<=l.$results.height();i?(l.$results.scrollTop(0),e.preventDefault(),e.stopPropagation()):r&&(l.$results.scrollTop(l.$results.get(0).scrollHeight-l.$results.height()),e.preventDefault(),e.stopPropagation())}),this.$results.on("mouseup",".select2-results__option[aria-selected]",function(e){var t=h(this),n=f.GetData(this,"data");"true"!==t.attr("aria-selected")?l.trigger("select",{originalEvent:e,data:n}):l.options.get("multiple")?l.trigger("unselect",{originalEvent:e,data:n}):l.trigger("close",{})}),this.$results.on("mouseenter",".select2-results__option[aria-selected]",function(e){var t=f.GetData(this,"data");l.getHighlightedResults().removeClass("select2-results__option--highlighted"),l.trigger("results:focus",{data:t,element:h(this)})})},i.prototype.getHighlightedResults=function(){return this.$results.find(".select2-results__option--highlighted")},i.prototype.destroy=function(){this.$results.remove()},i.prototype.ensureHighlightVisible=function(){var e=this.getHighlightedResults();if(0!==e.length){var t=this.$results.find("[aria-selected]").index(e),n=this.$results.offset().top,i=e.offset().top,r=this.$results.scrollTop()+(i-n),o=i-n;r-=2*e.outerHeight(!1),t<=2?this.$results.scrollTop(0):(o>this.$results.outerHeight()||o<0)&&this.$results.scrollTop(r)}},i.prototype.template=function(e,t){var n=this.options.get("templateResult"),i=this.options.get("escapeMarkup"),r=n(e,t);null==r?t.style.display="none":"string"==typeof r?t.innerHTML=i(r):h(t).append(r)},i}),e.define("select2/keys",[],function(){return{BACKSPACE:8,TAB:9,ENTER:13,SHIFT:16,CTRL:17,ALT:18,ESC:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,DELETE:46}}),e.define("select2/selection/base",["jquery","../utils","../keys"],function(n,i,r){function o(e,t){this.$element=e,this.options=t,o.__super__.constructor.call(this)}return i.Extend(o,i.Observable),o.prototype.render=function(){var e=n('<span class="select2-selection" role="combobox" aria-haspopup="true" aria-expanded="false"></span>');return this._tabindex=0,null!=i.GetData(this.$element[0],"old-tabindex")?this._tabindex=i.GetData(this.$element[0],"old-tabindex"):null!=this.$element.attr("tabindex")&&(this._tabindex=this.$element.attr("tabindex")),e.attr("title",this.$element.attr("title")),e.attr("tabindex",this._tabindex),e.attr("aria-disabled","false"),this.$selection=e},o.prototype.bind=function(e,t){var n=this,i=e.id+"-results";this.container=e,this.$selection.on("focus",function(e){n.trigger("focus",e)}),this.$selection.on("blur",function(e){n._handleBlur(e)}),this.$selection.on("keydown",function(e){n.trigger("keypress",e),e.which===r.SPACE&&e.preventDefault()}),e.on("results:focus",function(e){n.$selection.attr("aria-activedescendant",e.data._resultId)}),e.on("selection:update",function(e){n.update(e.data)}),e.on("open",function(){n.$selection.attr("aria-expanded","true"),n.$selection.attr("aria-owns",i),n._attachCloseHandler(e)}),e.on("close",function(){n.$selection.attr("aria-expanded","false"),n.$selection.removeAttr("aria-activedescendant"),n.$selection.removeAttr("aria-owns"),n.$selection.trigger("focus"),n._detachCloseHandler(e)}),e.on("enable",function(){n.$selection.attr("tabindex",n._tabindex),n.$selection.attr("aria-disabled","false")}),e.on("disable",function(){n.$selection.attr("tabindex","-1"),n.$selection.attr("aria-disabled","true")})},o.prototype._handleBlur=function(e){var t=this;window.setTimeout(function(){document.activeElement==t.$selection[0]||n.contains(t.$selection[0],document.activeElement)||t.trigger("blur",e)},1)},o.prototype._attachCloseHandler=function(e){n(document.body).on("mousedown.select2."+e.id,function(e){var t=n(e.target).closest(".select2");n(".select2.select2-container--open").each(function(){this!=t[0]&&i.GetData(this,"element").select2("close")})})},o.prototype._detachCloseHandler=function(e){n(document.body).off("mousedown.select2."+e.id)},o.prototype.position=function(e,t){t.find(".selection").append(e)},o.prototype.destroy=function(){this._detachCloseHandler(this.container)},o.prototype.update=function(e){throw new Error("The `update` method must be defined in child classes.")},o.prototype.isEnabled=function(){return!this.isDisabled()},o.prototype.isDisabled=function(){return this.options.get("disabled")},o}),e.define("select2/selection/single",["jquery","./base","../utils","../keys"],function(e,t,n,i){function r(){r.__super__.constructor.apply(this,arguments)}return n.Extend(r,t),r.prototype.render=function(){var e=r.__super__.render.call(this);return e.addClass("select2-selection--single"),e.html('<span class="select2-selection__rendered"></span><span class="select2-selection__arrow" role="presentation"><b role="presentation"></b></span>'),e},r.prototype.bind=function(t,e){var n=this;r.__super__.bind.apply(this,arguments);var i=t.id+"-container";this.$selection.find(".select2-selection__rendered").attr("id",i).attr("role","textbox").attr("aria-readonly","true"),this.$selection.attr("aria-labelledby",i),this.$selection.on("mousedown",function(e){1===e.which&&n.trigger("toggle",{originalEvent:e})}),this.$selection.on("focus",function(e){}),this.$selection.on("blur",function(e){}),t.on("focus",function(e){t.isOpen()||n.$selection.trigger("focus")})},r.prototype.clear=function(){var e=this.$selection.find(".select2-selection__rendered");e.empty(),e.removeAttr("title")},r.prototype.display=function(e,t){var n=this.options.get("templateSelection");return this.options.get("escapeMarkup")(n(e,t))},r.prototype.selectionContainer=function(){return e("<span></span>")},r.prototype.update=function(e){if(0!==e.length){var t=e[0],n=this.$selection.find(".select2-selection__rendered"),i=this.display(t,n);n.empty().append(i);var r=t.title||t.text;r?n.attr("title",r):n.removeAttr("title")}else this.clear()},r}),e.define("select2/selection/multiple",["jquery","./base","../utils"],function(r,e,l){function n(e,t){n.__super__.constructor.apply(this,arguments)}return l.Extend(n,e),n.prototype.render=function(){var e=n.__super__.render.call(this);return e.addClass("select2-selection--multiple"),e.html('<ul class="select2-selection__rendered"></ul>'),e},n.prototype.bind=function(e,t){var i=this;n.__super__.bind.apply(this,arguments),this.$selection.on("click",function(e){i.trigger("toggle",{originalEvent:e})}),this.$selection.on("click",".select2-selection__choice__remove",function(e){if(!i.isDisabled()){var t=r(this).parent(),n=l.GetData(t[0],"data");i.trigger("unselect",{originalEvent:e,data:n})}})},n.prototype.clear=function(){var e=this.$selection.find(".select2-selection__rendered");e.empty(),e.removeAttr("title")},n.prototype.display=function(e,t){var n=this.options.get("templateSelection");return this.options.get("escapeMarkup")(n(e,t))},n.prototype.selectionContainer=function(){return r('<li class="select2-selection__choice"><span class="select2-selection__choice__remove" role="presentation">×</span></li>')},n.prototype.update=function(e){if(this.clear(),0!==e.length){for(var t=[],n=0;n<e.length;n++){var i=e[n],r=this.selectionContainer(),o=this.display(i,r);r.append(o);var s=i.title||i.text;s&&r.attr("title",s),l.StoreData(r[0],"data",i),t.push(r)}var a=this.$selection.find(".select2-selection__rendered");l.appendMany(a,t)}},n}),e.define("select2/selection/placeholder",["../utils"],function(e){function t(e,t,n){this.placeholder=this.normalizePlaceholder(n.get("placeholder")),e.call(this,t,n)}return t.prototype.normalizePlaceholder=function(e,t){return"string"==typeof t&&(t={id:"",text:t}),t},t.prototype.createPlaceholder=function(e,t){var n=this.selectionContainer();return n.html(this.display(t)),n.addClass("select2-selection__placeholder").removeClass("select2-selection__choice"),n},t.prototype.update=function(e,t){var n=1==t.length&&t[0].id!=this.placeholder.id;if(1<t.length||n)return e.call(this,t);this.clear();var i=this.createPlaceholder(this.placeholder);this.$selection.find(".select2-selection__rendered").append(i)},t}),e.define("select2/selection/allowClear",["jquery","../keys","../utils"],function(r,i,a){function e(){}return e.prototype.bind=function(e,t,n){var i=this;e.call(this,t,n),null==this.placeholder&&this.options.get("debug")&&window.console&&console.error&&console.error("Select2: The `allowClear` option should be used in combination with the `placeholder` option."),this.$selection.on("mousedown",".select2-selection__clear",function(e){i._handleClear(e)}),t.on("keypress",function(e){i._handleKeyboardClear(e,t)})},e.prototype._handleClear=function(e,t){if(!this.isDisabled()){var n=this.$selection.find(".select2-selection__clear");if(0!==n.length){t.stopPropagation();var i=a.GetData(n[0],"data"),r=this.$element.val();this.$element.val(this.placeholder.id);var o={data:i};if(this.trigger("clear",o),o.prevented)this.$element.val(r);else{for(var s=0;s<i.length;s++)if(o={data:i[s]},this.trigger("unselect",o),o.prevented)return void this.$element.val(r);this.$element.trigger("input").trigger("change"),this.trigger("toggle",{})}}}},e.prototype._handleKeyboardClear=function(e,t,n){n.isOpen()||t.which!=i.DELETE&&t.which!=i.BACKSPACE||this._handleClear(t)},e.prototype.update=function(e,t){if(e.call(this,t),!(0<this.$selection.find(".select2-selection__placeholder").length||0===t.length)){var n=this.options.get("translations").get("removeAllItems"),i=r('<span class="select2-selection__clear" title="'+n()+'">×</span>');a.StoreData(i[0],"data",t),this.$selection.find(".select2-selection__rendered").prepend(i)}},e}),e.define("select2/selection/search",["jquery","../utils","../keys"],function(i,a,l){function e(e,t,n){e.call(this,t,n)}return e.prototype.render=function(e){var t=i('<li class="select2-search select2-search--inline"><input class="select2-search__field" type="search" tabindex="-1" autocomplete="off" autocorrect="off" autocapitalize="none" spellcheck="false" role="searchbox" aria-autocomplete="list" /></li>');this.$searchContainer=t,this.$search=t.find("input");var n=e.call(this);return this._transferTabIndex(),n},e.prototype.bind=function(e,t,n){var i=this,r=t.id+"-results";e.call(this,t,n),t.on("open",function(){i.$search.attr("aria-controls",r),i.$search.trigger("focus")}),t.on("close",function(){i.$search.val(""),i.$search.removeAttr("aria-controls"),i.$search.removeAttr("aria-activedescendant"),i.$search.trigger("focus")}),t.on("enable",function(){i.$search.prop("disabled",!1),i._transferTabIndex()}),t.on("disable",function(){i.$search.prop("disabled",!0)}),t.on("focus",function(e){i.$search.trigger("focus")}),t.on("results:focus",function(e){e.data._resultId?i.$search.attr("aria-activedescendant",e.data._resultId):i.$search.removeAttr("aria-activedescendant")}),this.$selection.on("focusin",".select2-search--inline",function(e){i.trigger("focus",e)}),this.$selection.on("focusout",".select2-search--inline",function(e){i._handleBlur(e)}),this.$selection.on("keydown",".select2-search--inline",function(e){if(e.stopPropagation(),i.trigger("keypress",e),i._keyUpPrevented=e.isDefaultPrevented(),e.which===l.BACKSPACE&&""===i.$search.val()){var t=i.$searchContainer.prev(".select2-selection__choice");if(0<t.length){var n=a.GetData(t[0],"data");i.searchRemoveChoice(n),e.preventDefault()}}}),this.$selection.on("click",".select2-search--inline",function(e){i.$search.val()&&e.stopPropagation()});var o=document.documentMode,s=o&&o<=11;this.$selection.on("input.searchcheck",".select2-search--inline",function(e){s?i.$selection.off("input.search input.searchcheck"):i.$selection.off("keyup.search")}),this.$selection.on("keyup.search input.search",".select2-search--inline",function(e){if(s&&"input"===e.type)i.$selection.off("input.search input.searchcheck");else{var t=e.which;t!=l.SHIFT&&t!=l.CTRL&&t!=l.ALT&&t!=l.TAB&&i.handleSearch(e)}})},e.prototype._transferTabIndex=function(e){this.$search.attr("tabindex",this.$selection.attr("tabindex")),this.$selection.attr("tabindex","-1")},e.prototype.createPlaceholder=function(e,t){this.$search.attr("placeholder",t.text)},e.prototype.update=function(e,t){var n=this.$search[0]==document.activeElement;this.$search.attr("placeholder",""),e.call(this,t),this.$selection.find(".select2-selection__rendered").append(this.$searchContainer),this.resizeSearch(),n&&this.$search.trigger("focus")},e.prototype.handleSearch=function(){if(this.resizeSearch(),!this._keyUpPrevented){var e=this.$search.val();this.trigger("query",{term:e})}this._keyUpPrevented=!1},e.prototype.searchRemoveChoice=function(e,t){this.trigger("unselect",{data:t}),this.$search.val(t.text),this.handleSearch()},e.prototype.resizeSearch=function(){this.$search.css("width","25px");var e="";""!==this.$search.attr("placeholder")?e=this.$selection.find(".select2-selection__rendered").width():e=.75*(this.$search.val().length+1)+"em";this.$search.css("width",e)},e}),e.define("select2/selection/eventRelay",["jquery"],function(s){function e(){}return e.prototype.bind=function(e,t,n){var i=this,r=["open","opening","close","closing","select","selecting","unselect","unselecting","clear","clearing"],o=["opening","closing","selecting","unselecting","clearing"];e.call(this,t,n),t.on("*",function(e,t){if(-1!==s.inArray(e,r)){t=t||{};var n=s.Event("select2:"+e,{params:t});i.$element.trigger(n),-1!==s.inArray(e,o)&&(t.prevented=n.isDefaultPrevented())}})},e}),e.define("select2/translation",["jquery","require"],function(t,n){function i(e){this.dict=e||{}}return i.prototype.all=function(){return this.dict},i.prototype.get=function(e){return this.dict[e]},i.prototype.extend=function(e){this.dict=t.extend({},e.all(),this.dict)},i._cache={},i.loadPath=function(e){if(!(e in i._cache)){var t=n(e);i._cache[e]=t}return new i(i._cache[e])},i}),e.define("select2/diacritics",[],function(){return{"Ⓐ":"A","A":"A","À":"A","Á":"A","Â":"A","Ầ":"A","Ấ":"A","Ẫ":"A","Ẩ":"A","Ã":"A","Ā":"A","Ă":"A","Ằ":"A","Ắ":"A","Ẵ":"A","Ẳ":"A","Ȧ":"A","Ǡ":"A","Ä":"A","Ǟ":"A","Ả":"A","Å":"A","Ǻ":"A","Ǎ":"A","Ȁ":"A","Ȃ":"A","Ạ":"A","Ậ":"A","Ặ":"A","Ḁ":"A","Ą":"A","Ⱥ":"A","Ɐ":"A","Ꜳ":"AA","Æ":"AE","Ǽ":"AE","Ǣ":"AE","Ꜵ":"AO","Ꜷ":"AU","Ꜹ":"AV","Ꜻ":"AV","Ꜽ":"AY","Ⓑ":"B","B":"B","Ḃ":"B","Ḅ":"B","Ḇ":"B","Ƀ":"B","Ƃ":"B","Ɓ":"B","Ⓒ":"C","C":"C","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","Ç":"C","Ḉ":"C","Ƈ":"C","Ȼ":"C","Ꜿ":"C","Ⓓ":"D","D":"D","Ḋ":"D","Ď":"D","Ḍ":"D","Ḑ":"D","Ḓ":"D","Ḏ":"D","Đ":"D","Ƌ":"D","Ɗ":"D","Ɖ":"D","Ꝺ":"D","DZ":"DZ","DŽ":"DZ","Dz":"Dz","Dž":"Dz","Ⓔ":"E","E":"E","È":"E","É":"E","Ê":"E","Ề":"E","Ế":"E","Ễ":"E","Ể":"E","Ẽ":"E","Ē":"E","Ḕ":"E","Ḗ":"E","Ĕ":"E","Ė":"E","Ë":"E","Ẻ":"E","Ě":"E","Ȅ":"E","Ȇ":"E","Ẹ":"E","Ệ":"E","Ȩ":"E","Ḝ":"E","Ę":"E","Ḙ":"E","Ḛ":"E","Ɛ":"E","Ǝ":"E","Ⓕ":"F","F":"F","Ḟ":"F","Ƒ":"F","Ꝼ":"F","Ⓖ":"G","G":"G","Ǵ":"G","Ĝ":"G","Ḡ":"G","Ğ":"G","Ġ":"G","Ǧ":"G","Ģ":"G","Ǥ":"G","Ɠ":"G","Ꞡ":"G","Ᵹ":"G","Ꝿ":"G","Ⓗ":"H","H":"H","Ĥ":"H","Ḣ":"H","Ḧ":"H","Ȟ":"H","Ḥ":"H","Ḩ":"H","Ḫ":"H","Ħ":"H","Ⱨ":"H","Ⱶ":"H","Ɥ":"H","Ⓘ":"I","I":"I","Ì":"I","Í":"I","Î":"I","Ĩ":"I","Ī":"I","Ĭ":"I","İ":"I","Ï":"I","Ḯ":"I","Ỉ":"I","Ǐ":"I","Ȉ":"I","Ȋ":"I","Ị":"I","Į":"I","Ḭ":"I","Ɨ":"I","Ⓙ":"J","J":"J","Ĵ":"J","Ɉ":"J","Ⓚ":"K","K":"K","Ḱ":"K","Ǩ":"K","Ḳ":"K","Ķ":"K","Ḵ":"K","Ƙ":"K","Ⱪ":"K","Ꝁ":"K","Ꝃ":"K","Ꝅ":"K","Ꞣ":"K","Ⓛ":"L","L":"L","Ŀ":"L","Ĺ":"L","Ľ":"L","Ḷ":"L","Ḹ":"L","Ļ":"L","Ḽ":"L","Ḻ":"L","Ł":"L","Ƚ":"L","Ɫ":"L","Ⱡ":"L","Ꝉ":"L","Ꝇ":"L","Ꞁ":"L","LJ":"LJ","Lj":"Lj","Ⓜ":"M","M":"M","Ḿ":"M","Ṁ":"M","Ṃ":"M","Ɱ":"M","Ɯ":"M","Ⓝ":"N","N":"N","Ǹ":"N","Ń":"N","Ñ":"N","Ṅ":"N","Ň":"N","Ṇ":"N","Ņ":"N","Ṋ":"N","Ṉ":"N","Ƞ":"N","Ɲ":"N","Ꞑ":"N","Ꞥ":"N","NJ":"NJ","Nj":"Nj","Ⓞ":"O","O":"O","Ò":"O","Ó":"O","Ô":"O","Ồ":"O","Ố":"O","Ỗ":"O","Ổ":"O","Õ":"O","Ṍ":"O","Ȭ":"O","Ṏ":"O","Ō":"O","Ṑ":"O","Ṓ":"O","Ŏ":"O","Ȯ":"O","Ȱ":"O","Ö":"O","Ȫ":"O","Ỏ":"O","Ő":"O","Ǒ":"O","Ȍ":"O","Ȏ":"O","Ơ":"O","Ờ":"O","Ớ":"O","Ỡ":"O","Ở":"O","Ợ":"O","Ọ":"O","Ộ":"O","Ǫ":"O","Ǭ":"O","Ø":"O","Ǿ":"O","Ɔ":"O","Ɵ":"O","Ꝋ":"O","Ꝍ":"O","Œ":"OE","Ƣ":"OI","Ꝏ":"OO","Ȣ":"OU","Ⓟ":"P","P":"P","Ṕ":"P","Ṗ":"P","Ƥ":"P","Ᵽ":"P","Ꝑ":"P","Ꝓ":"P","Ꝕ":"P","Ⓠ":"Q","Q":"Q","Ꝗ":"Q","Ꝙ":"Q","Ɋ":"Q","Ⓡ":"R","R":"R","Ŕ":"R","Ṙ":"R","Ř":"R","Ȑ":"R","Ȓ":"R","Ṛ":"R","Ṝ":"R","Ŗ":"R","Ṟ":"R","Ɍ":"R","Ɽ":"R","Ꝛ":"R","Ꞧ":"R","Ꞃ":"R","Ⓢ":"S","S":"S","ẞ":"S","Ś":"S","Ṥ":"S","Ŝ":"S","Ṡ":"S","Š":"S","Ṧ":"S","Ṣ":"S","Ṩ":"S","Ș":"S","Ş":"S","Ȿ":"S","Ꞩ":"S","Ꞅ":"S","Ⓣ":"T","T":"T","Ṫ":"T","Ť":"T","Ṭ":"T","Ț":"T","Ţ":"T","Ṱ":"T","Ṯ":"T","Ŧ":"T","Ƭ":"T","Ʈ":"T","Ⱦ":"T","Ꞇ":"T","Ꜩ":"TZ","Ⓤ":"U","U":"U","Ù":"U","Ú":"U","Û":"U","Ũ":"U","Ṹ":"U","Ū":"U","Ṻ":"U","Ŭ":"U","Ü":"U","Ǜ":"U","Ǘ":"U","Ǖ":"U","Ǚ":"U","Ủ":"U","Ů":"U","Ű":"U","Ǔ":"U","Ȕ":"U","Ȗ":"U","Ư":"U","Ừ":"U","Ứ":"U","Ữ":"U","Ử":"U","Ự":"U","Ụ":"U","Ṳ":"U","Ų":"U","Ṷ":"U","Ṵ":"U","Ʉ":"U","Ⓥ":"V","V":"V","Ṽ":"V","Ṿ":"V","Ʋ":"V","Ꝟ":"V","Ʌ":"V","Ꝡ":"VY","Ⓦ":"W","W":"W","Ẁ":"W","Ẃ":"W","Ŵ":"W","Ẇ":"W","Ẅ":"W","Ẉ":"W","Ⱳ":"W","Ⓧ":"X","X":"X","Ẋ":"X","Ẍ":"X","Ⓨ":"Y","Y":"Y","Ỳ":"Y","Ý":"Y","Ŷ":"Y","Ỹ":"Y","Ȳ":"Y","Ẏ":"Y","Ÿ":"Y","Ỷ":"Y","Ỵ":"Y","Ƴ":"Y","Ɏ":"Y","Ỿ":"Y","Ⓩ":"Z","Z":"Z","Ź":"Z","Ẑ":"Z","Ż":"Z","Ž":"Z","Ẓ":"Z","Ẕ":"Z","Ƶ":"Z","Ȥ":"Z","Ɀ":"Z","Ⱬ":"Z","Ꝣ":"Z","ⓐ":"a","a":"a","ẚ":"a","à":"a","á":"a","â":"a","ầ":"a","ấ":"a","ẫ":"a","ẩ":"a","ã":"a","ā":"a","ă":"a","ằ":"a","ắ":"a","ẵ":"a","ẳ":"a","ȧ":"a","ǡ":"a","ä":"a","ǟ":"a","ả":"a","å":"a","ǻ":"a","ǎ":"a","ȁ":"a","ȃ":"a","ạ":"a","ậ":"a","ặ":"a","ḁ":"a","ą":"a","ⱥ":"a","ɐ":"a","ꜳ":"aa","æ":"ae","ǽ":"ae","ǣ":"ae","ꜵ":"ao","ꜷ":"au","ꜹ":"av","ꜻ":"av","ꜽ":"ay","ⓑ":"b","b":"b","ḃ":"b","ḅ":"b","ḇ":"b","ƀ":"b","ƃ":"b","ɓ":"b","ⓒ":"c","c":"c","ć":"c","ĉ":"c","ċ":"c","č":"c","ç":"c","ḉ":"c","ƈ":"c","ȼ":"c","ꜿ":"c","ↄ":"c","ⓓ":"d","d":"d","ḋ":"d","ď":"d","ḍ":"d","ḑ":"d","ḓ":"d","ḏ":"d","đ":"d","ƌ":"d","ɖ":"d","ɗ":"d","ꝺ":"d","dz":"dz","dž":"dz","ⓔ":"e","e":"e","è":"e","é":"e","ê":"e","ề":"e","ế":"e","ễ":"e","ể":"e","ẽ":"e","ē":"e","ḕ":"e","ḗ":"e","ĕ":"e","ė":"e","ë":"e","ẻ":"e","ě":"e","ȅ":"e","ȇ":"e","ẹ":"e","ệ":"e","ȩ":"e","ḝ":"e","ę":"e","ḙ":"e","ḛ":"e","ɇ":"e","ɛ":"e","ǝ":"e","ⓕ":"f","f":"f","ḟ":"f","ƒ":"f","ꝼ":"f","ⓖ":"g","g":"g","ǵ":"g","ĝ":"g","ḡ":"g","ğ":"g","ġ":"g","ǧ":"g","ģ":"g","ǥ":"g","ɠ":"g","ꞡ":"g","ᵹ":"g","ꝿ":"g","ⓗ":"h","h":"h","ĥ":"h","ḣ":"h","ḧ":"h","ȟ":"h","ḥ":"h","ḩ":"h","ḫ":"h","ẖ":"h","ħ":"h","ⱨ":"h","ⱶ":"h","ɥ":"h","ƕ":"hv","ⓘ":"i","i":"i","ì":"i","í":"i","î":"i","ĩ":"i","ī":"i","ĭ":"i","ï":"i","ḯ":"i","ỉ":"i","ǐ":"i","ȉ":"i","ȋ":"i","ị":"i","į":"i","ḭ":"i","ɨ":"i","ı":"i","ⓙ":"j","j":"j","ĵ":"j","ǰ":"j","ɉ":"j","ⓚ":"k","k":"k","ḱ":"k","ǩ":"k","ḳ":"k","ķ":"k","ḵ":"k","ƙ":"k","ⱪ":"k","ꝁ":"k","ꝃ":"k","ꝅ":"k","ꞣ":"k","ⓛ":"l","l":"l","ŀ":"l","ĺ":"l","ľ":"l","ḷ":"l","ḹ":"l","ļ":"l","ḽ":"l","ḻ":"l","ſ":"l","ł":"l","ƚ":"l","ɫ":"l","ⱡ":"l","ꝉ":"l","ꞁ":"l","ꝇ":"l","lj":"lj","ⓜ":"m","m":"m","ḿ":"m","ṁ":"m","ṃ":"m","ɱ":"m","ɯ":"m","ⓝ":"n","n":"n","ǹ":"n","ń":"n","ñ":"n","ṅ":"n","ň":"n","ṇ":"n","ņ":"n","ṋ":"n","ṉ":"n","ƞ":"n","ɲ":"n","ʼn":"n","ꞑ":"n","ꞥ":"n","nj":"nj","ⓞ":"o","o":"o","ò":"o","ó":"o","ô":"o","ồ":"o","ố":"o","ỗ":"o","ổ":"o","õ":"o","ṍ":"o","ȭ":"o","ṏ":"o","ō":"o","ṑ":"o","ṓ":"o","ŏ":"o","ȯ":"o","ȱ":"o","ö":"o","ȫ":"o","ỏ":"o","ő":"o","ǒ":"o","ȍ":"o","ȏ":"o","ơ":"o","ờ":"o","ớ":"o","ỡ":"o","ở":"o","ợ":"o","ọ":"o","ộ":"o","ǫ":"o","ǭ":"o","ø":"o","ǿ":"o","ɔ":"o","ꝋ":"o","ꝍ":"o","ɵ":"o","œ":"oe","ƣ":"oi","ȣ":"ou","ꝏ":"oo","ⓟ":"p","p":"p","ṕ":"p","ṗ":"p","ƥ":"p","ᵽ":"p","ꝑ":"p","ꝓ":"p","ꝕ":"p","ⓠ":"q","q":"q","ɋ":"q","ꝗ":"q","ꝙ":"q","ⓡ":"r","r":"r","ŕ":"r","ṙ":"r","ř":"r","ȑ":"r","ȓ":"r","ṛ":"r","ṝ":"r","ŗ":"r","ṟ":"r","ɍ":"r","ɽ":"r","ꝛ":"r","ꞧ":"r","ꞃ":"r","ⓢ":"s","s":"s","ß":"s","ś":"s","ṥ":"s","ŝ":"s","ṡ":"s","š":"s","ṧ":"s","ṣ":"s","ṩ":"s","ș":"s","ş":"s","ȿ":"s","ꞩ":"s","ꞅ":"s","ẛ":"s","ⓣ":"t","t":"t","ṫ":"t","ẗ":"t","ť":"t","ṭ":"t","ț":"t","ţ":"t","ṱ":"t","ṯ":"t","ŧ":"t","ƭ":"t","ʈ":"t","ⱦ":"t","ꞇ":"t","ꜩ":"tz","ⓤ":"u","u":"u","ù":"u","ú":"u","û":"u","ũ":"u","ṹ":"u","ū":"u","ṻ":"u","ŭ":"u","ü":"u","ǜ":"u","ǘ":"u","ǖ":"u","ǚ":"u","ủ":"u","ů":"u","ű":"u","ǔ":"u","ȕ":"u","ȗ":"u","ư":"u","ừ":"u","ứ":"u","ữ":"u","ử":"u","ự":"u","ụ":"u","ṳ":"u","ų":"u","ṷ":"u","ṵ":"u","ʉ":"u","ⓥ":"v","v":"v","ṽ":"v","ṿ":"v","ʋ":"v","ꝟ":"v","ʌ":"v","ꝡ":"vy","ⓦ":"w","w":"w","ẁ":"w","ẃ":"w","ŵ":"w","ẇ":"w","ẅ":"w","ẘ":"w","ẉ":"w","ⱳ":"w","ⓧ":"x","x":"x","ẋ":"x","ẍ":"x","ⓨ":"y","y":"y","ỳ":"y","ý":"y","ŷ":"y","ỹ":"y","ȳ":"y","ẏ":"y","ÿ":"y","ỷ":"y","ẙ":"y","ỵ":"y","ƴ":"y","ɏ":"y","ỿ":"y","ⓩ":"z","z":"z","ź":"z","ẑ":"z","ż":"z","ž":"z","ẓ":"z","ẕ":"z","ƶ":"z","ȥ":"z","ɀ":"z","ⱬ":"z","ꝣ":"z","Ά":"Α","Έ":"Ε","Ή":"Η","Ί":"Ι","Ϊ":"Ι","Ό":"Ο","Ύ":"Υ","Ϋ":"Υ","Ώ":"Ω","ά":"α","έ":"ε","ή":"η","ί":"ι","ϊ":"ι","ΐ":"ι","ό":"ο","ύ":"υ","ϋ":"υ","ΰ":"υ","ώ":"ω","ς":"σ","’":"'"}}),e.define("select2/data/base",["../utils"],function(i){function n(e,t){n.__super__.constructor.call(this)}return i.Extend(n,i.Observable),n.prototype.current=function(e){throw new Error("The `current` method must be defined in child classes.")},n.prototype.query=function(e,t){throw new Error("The `query` method must be defined in child classes.")},n.prototype.bind=function(e,t){},n.prototype.destroy=function(){},n.prototype.generateResultId=function(e,t){var n=e.id+"-result-";return n+=i.generateChars(4),null!=t.id?n+="-"+t.id.toString():n+="-"+i.generateChars(4),n},n}),e.define("select2/data/select",["./base","../utils","jquery"],function(e,a,l){function n(e,t){this.$element=e,this.options=t,n.__super__.constructor.call(this)}return a.Extend(n,e),n.prototype.current=function(e){var n=[],i=this;this.$element.find(":selected").each(function(){var e=l(this),t=i.item(e);n.push(t)}),e(n)},n.prototype.select=function(r){var o=this;if(r.selected=!0,l(r.element).is("option"))return r.element.selected=!0,void this.$element.trigger("input").trigger("change");if(this.$element.prop("multiple"))this.current(function(e){var t=[];(r=[r]).push.apply(r,e);for(var n=0;n<r.length;n++){var i=r[n].id;-1===l.inArray(i,t)&&t.push(i)}o.$element.val(t),o.$element.trigger("input").trigger("change")});else{var e=r.id;this.$element.val(e),this.$element.trigger("input").trigger("change")}},n.prototype.unselect=function(r){var o=this;if(this.$element.prop("multiple")){if(r.selected=!1,l(r.element).is("option"))return r.element.selected=!1,void this.$element.trigger("input").trigger("change");this.current(function(e){for(var t=[],n=0;n<e.length;n++){var i=e[n].id;i!==r.id&&-1===l.inArray(i,t)&&t.push(i)}o.$element.val(t),o.$element.trigger("input").trigger("change")})}},n.prototype.bind=function(e,t){var n=this;(this.container=e).on("select",function(e){n.select(e.data)}),e.on("unselect",function(e){n.unselect(e.data)})},n.prototype.destroy=function(){this.$element.find("*").each(function(){a.RemoveData(this)})},n.prototype.query=function(i,e){var r=[],o=this;this.$element.children().each(function(){var e=l(this);if(e.is("option")||e.is("optgroup")){var t=o.item(e),n=o.matches(i,t);null!==n&&r.push(n)}}),e({results:r})},n.prototype.addOptions=function(e){a.appendMany(this.$element,e)},n.prototype.option=function(e){var t;e.children?(t=document.createElement("optgroup")).label=e.text:void 0!==(t=document.createElement("option")).textContent?t.textContent=e.text:t.innerText=e.text,void 0!==e.id&&(t.value=e.id),e.disabled&&(t.disabled=!0),e.selected&&(t.selected=!0),e.title&&(t.title=e.title);var n=l(t),i=this._normalizeItem(e);return i.element=t,a.StoreData(t,"data",i),n},n.prototype.item=function(e){var t={};if(null!=(t=a.GetData(e[0],"data")))return t;if(e.is("option"))t={id:e.val(),text:e.text(),disabled:e.prop("disabled"),selected:e.prop("selected"),title:e.prop("title")};else if(e.is("optgroup")){t={text:e.prop("label"),children:[],title:e.prop("title")};for(var n=e.children("option"),i=[],r=0;r<n.length;r++){var o=l(n[r]),s=this.item(o);i.push(s)}t.children=i}return(t=this._normalizeItem(t)).element=e[0],a.StoreData(e[0],"data",t),t},n.prototype._normalizeItem=function(e){e!==Object(e)&&(e={id:e,text:e});return null!=(e=l.extend({},{text:""},e)).id&&(e.id=e.id.toString()),null!=e.text&&(e.text=e.text.toString()),null==e._resultId&&e.id&&null!=this.container&&(e._resultId=this.generateResultId(this.container,e)),l.extend({},{selected:!1,disabled:!1},e)},n.prototype.matches=function(e,t){return this.options.get("matcher")(e,t)},n}),e.define("select2/data/array",["./select","../utils","jquery"],function(e,f,g){function i(e,t){this._dataToConvert=t.get("data")||[],i.__super__.constructor.call(this,e,t)}return f.Extend(i,e),i.prototype.bind=function(e,t){i.__super__.bind.call(this,e,t),this.addOptions(this.convertToOptions(this._dataToConvert))},i.prototype.select=function(n){var e=this.$element.find("option").filter(function(e,t){return t.value==n.id.toString()});0===e.length&&(e=this.option(n),this.addOptions(e)),i.__super__.select.call(this,n)},i.prototype.convertToOptions=function(e){var t=this,n=this.$element.find("option"),i=n.map(function(){return t.item(g(this)).id}).get(),r=[];function o(e){return function(){return g(this).val()==e.id}}for(var s=0;s<e.length;s++){var a=this._normalizeItem(e[s]);if(0<=g.inArray(a.id,i)){var l=n.filter(o(a)),c=this.item(l),u=g.extend(!0,{},a,c),d=this.option(u);l.replaceWith(d)}else{var p=this.option(a);if(a.children){var h=this.convertToOptions(a.children);f.appendMany(p,h)}r.push(p)}}return r},i}),e.define("select2/data/ajax",["./array","../utils","jquery"],function(e,t,o){function n(e,t){this.ajaxOptions=this._applyDefaults(t.get("ajax")),null!=this.ajaxOptions.processResults&&(this.processResults=this.ajaxOptions.processResults),n.__super__.constructor.call(this,e,t)}return t.Extend(n,e),n.prototype._applyDefaults=function(e){var t={data:function(e){return o.extend({},e,{q:e.term})},transport:function(e,t,n){var i=o.ajax(e);return i.then(t),i.fail(n),i}};return o.extend({},t,e,!0)},n.prototype.processResults=function(e){return e},n.prototype.query=function(n,i){var r=this;null!=this._request&&(o.isFunction(this._request.abort)&&this._request.abort(),this._request=null);var t=o.extend({type:"GET"},this.ajaxOptions);function e(){var e=t.transport(t,function(e){var t=r.processResults(e,n);r.options.get("debug")&&window.console&&console.error&&(t&&t.results&&o.isArray(t.results)||console.error("Select2: The AJAX results did not return an array in the `results` key of the response.")),i(t)},function(){"status"in e&&(0===e.status||"0"===e.status)||r.trigger("results:message",{message:"errorLoading"})});r._request=e}"function"==typeof t.url&&(t.url=t.url.call(this.$element,n)),"function"==typeof t.data&&(t.data=t.data.call(this.$element,n)),this.ajaxOptions.delay&&null!=n.term?(this._queryTimeout&&window.clearTimeout(this._queryTimeout),this._queryTimeout=window.setTimeout(e,this.ajaxOptions.delay)):e()},n}),e.define("select2/data/tags",["jquery"],function(u){function e(e,t,n){var i=n.get("tags"),r=n.get("createTag");void 0!==r&&(this.createTag=r);var o=n.get("insertTag");if(void 0!==o&&(this.insertTag=o),e.call(this,t,n),u.isArray(i))for(var s=0;s<i.length;s++){var a=i[s],l=this._normalizeItem(a),c=this.option(l);this.$element.append(c)}}return e.prototype.query=function(e,c,u){var d=this;this._removeOldTags(),null!=c.term&&null==c.page?e.call(this,c,function e(t,n){for(var i=t.results,r=0;r<i.length;r++){var o=i[r],s=null!=o.children&&!e({results:o.children},!0);if((o.text||"").toUpperCase()===(c.term||"").toUpperCase()||s)return!n&&(t.data=i,void u(t))}if(n)return!0;var a=d.createTag(c);if(null!=a){var l=d.option(a);l.attr("data-select2-tag",!0),d.addOptions([l]),d.insertTag(i,a)}t.results=i,u(t)}):e.call(this,c,u)},e.prototype.createTag=function(e,t){var n=u.trim(t.term);return""===n?null:{id:n,text:n}},e.prototype.insertTag=function(e,t,n){t.unshift(n)},e.prototype._removeOldTags=function(e){this.$element.find("option[data-select2-tag]").each(function(){this.selected||u(this).remove()})},e}),e.define("select2/data/tokenizer",["jquery"],function(d){function e(e,t,n){var i=n.get("tokenizer");void 0!==i&&(this.tokenizer=i),e.call(this,t,n)}return e.prototype.bind=function(e,t,n){e.call(this,t,n),this.$search=t.dropdown.$search||t.selection.$search||n.find(".select2-search__field")},e.prototype.query=function(e,t,n){var i=this;t.term=t.term||"";var r=this.tokenizer(t,this.options,function(e){var t=i._normalizeItem(e);if(!i.$element.find("option").filter(function(){return d(this).val()===t.id}).length){var n=i.option(t);n.attr("data-select2-tag",!0),i._removeOldTags(),i.addOptions([n])}!function(e){i.trigger("select",{data:e})}(t)});r.term!==t.term&&(this.$search.length&&(this.$search.val(r.term),this.$search.trigger("focus")),t.term=r.term),e.call(this,t,n)},e.prototype.tokenizer=function(e,t,n,i){for(var r=n.get("tokenSeparators")||[],o=t.term,s=0,a=this.createTag||function(e){return{id:e.term,text:e.term}};s<o.length;){var l=o[s];if(-1!==d.inArray(l,r)){var c=o.substr(0,s),u=a(d.extend({},t,{term:c}));null!=u?(i(u),o=o.substr(s+1)||"",s=0):s++}else s++}return{term:o}},e}),e.define("select2/data/minimumInputLength",[],function(){function e(e,t,n){this.minimumInputLength=n.get("minimumInputLength"),e.call(this,t,n)}return e.prototype.query=function(e,t,n){t.term=t.term||"",t.term.length<this.minimumInputLength?this.trigger("results:message",{message:"inputTooShort",args:{minimum:this.minimumInputLength,input:t.term,params:t}}):e.call(this,t,n)},e}),e.define("select2/data/maximumInputLength",[],function(){function e(e,t,n){this.maximumInputLength=n.get("maximumInputLength"),e.call(this,t,n)}return e.prototype.query=function(e,t,n){t.term=t.term||"",0<this.maximumInputLength&&t.term.length>this.maximumInputLength?this.trigger("results:message",{message:"inputTooLong",args:{maximum:this.maximumInputLength,input:t.term,params:t}}):e.call(this,t,n)},e}),e.define("select2/data/maximumSelectionLength",[],function(){function e(e,t,n){this.maximumSelectionLength=n.get("maximumSelectionLength"),e.call(this,t,n)}return e.prototype.bind=function(e,t,n){var i=this;e.call(this,t,n),t.on("select",function(){i._checkIfMaximumSelected()})},e.prototype.query=function(e,t,n){var i=this;this._checkIfMaximumSelected(function(){e.call(i,t,n)})},e.prototype._checkIfMaximumSelected=function(e,n){var i=this;this.current(function(e){var t=null!=e?e.length:0;0<i.maximumSelectionLength&&t>=i.maximumSelectionLength?i.trigger("results:message",{message:"maximumSelected",args:{maximum:i.maximumSelectionLength}}):n&&n()})},e}),e.define("select2/dropdown",["jquery","./utils"],function(t,e){function n(e,t){this.$element=e,this.options=t,n.__super__.constructor.call(this)}return e.Extend(n,e.Observable),n.prototype.render=function(){var e=t('<span class="select2-dropdown"><span class="select2-results"></span></span>');return e.attr("dir",this.options.get("dir")),this.$dropdown=e},n.prototype.bind=function(){},n.prototype.position=function(e,t){},n.prototype.destroy=function(){this.$dropdown.remove()},n}),e.define("select2/dropdown/search",["jquery","../utils"],function(o,e){function t(){}return t.prototype.render=function(e){var t=e.call(this),n=o('<span class="select2-search select2-search--dropdown"><input class="select2-search__field" type="search" tabindex="-1" autocomplete="off" autocorrect="off" autocapitalize="none" spellcheck="false" role="searchbox" aria-autocomplete="list" /></span>');return this.$searchContainer=n,this.$search=n.find("input"),t.prepend(n),t},t.prototype.bind=function(e,t,n){var i=this,r=t.id+"-results";e.call(this,t,n),this.$search.on("keydown",function(e){i.trigger("keypress",e),i._keyUpPrevented=e.isDefaultPrevented()}),this.$search.on("input",function(e){o(this).off("keyup")}),this.$search.on("keyup input",function(e){i.handleSearch(e)}),t.on("open",function(){i.$search.attr("tabindex",0),i.$search.attr("aria-controls",r),i.$search.trigger("focus"),window.setTimeout(function(){i.$search.trigger("focus")},0)}),t.on("close",function(){i.$search.attr("tabindex",-1),i.$search.removeAttr("aria-controls"),i.$search.removeAttr("aria-activedescendant"),i.$search.val(""),i.$search.trigger("blur")}),t.on("focus",function(){t.isOpen()||i.$search.trigger("focus")}),t.on("results:all",function(e){null!=e.query.term&&""!==e.query.term||(i.showSearch(e)?i.$searchContainer.removeClass("select2-search--hide"):i.$searchContainer.addClass("select2-search--hide"))}),t.on("results:focus",function(e){e.data._resultId?i.$search.attr("aria-activedescendant",e.data._resultId):i.$search.removeAttr("aria-activedescendant")})},t.prototype.handleSearch=function(e){if(!this._keyUpPrevented){var t=this.$search.val();this.trigger("query",{term:t})}this._keyUpPrevented=!1},t.prototype.showSearch=function(e,t){return!0},t}),e.define("select2/dropdown/hidePlaceholder",[],function(){function e(e,t,n,i){this.placeholder=this.normalizePlaceholder(n.get("placeholder")),e.call(this,t,n,i)}return e.prototype.append=function(e,t){t.results=this.removePlaceholder(t.results),e.call(this,t)},e.prototype.normalizePlaceholder=function(e,t){return"string"==typeof t&&(t={id:"",text:t}),t},e.prototype.removePlaceholder=function(e,t){for(var n=t.slice(0),i=t.length-1;0<=i;i--){var r=t[i];this.placeholder.id===r.id&&n.splice(i,1)}return n},e}),e.define("select2/dropdown/infiniteScroll",["jquery"],function(n){function e(e,t,n,i){this.lastParams={},e.call(this,t,n,i),this.$loadingMore=this.createLoadingMore(),this.loading=!1}return e.prototype.append=function(e,t){this.$loadingMore.remove(),this.loading=!1,e.call(this,t),this.showLoadingMore(t)&&(this.$results.append(this.$loadingMore),this.loadMoreIfNeeded())},e.prototype.bind=function(e,t,n){var i=this;e.call(this,t,n),t.on("query",function(e){i.lastParams=e,i.loading=!0}),t.on("query:append",function(e){i.lastParams=e,i.loading=!0}),this.$results.on("scroll",this.loadMoreIfNeeded.bind(this))},e.prototype.loadMoreIfNeeded=function(){var e=n.contains(document.documentElement,this.$loadingMore[0]);if(!this.loading&&e){var t=this.$results.offset().top+this.$results.outerHeight(!1);this.$loadingMore.offset().top+this.$loadingMore.outerHeight(!1)<=t+50&&this.loadMore()}},e.prototype.loadMore=function(){this.loading=!0;var e=n.extend({},{page:1},this.lastParams);e.page++,this.trigger("query:append",e)},e.prototype.showLoadingMore=function(e,t){return t.pagination&&t.pagination.more},e.prototype.createLoadingMore=function(){var e=n('<li class="select2-results__option select2-results__option--load-more"role="option" aria-disabled="true"></li>'),t=this.options.get("translations").get("loadingMore");return e.html(t(this.lastParams)),e},e}),e.define("select2/dropdown/attachBody",["jquery","../utils"],function(f,a){function e(e,t,n){this.$dropdownParent=f(n.get("dropdownParent")||document.body),e.call(this,t,n)}return e.prototype.bind=function(e,t,n){var i=this;e.call(this,t,n),t.on("open",function(){i._showDropdown(),i._attachPositioningHandler(t),i._bindContainerResultHandlers(t)}),t.on("close",function(){i._hideDropdown(),i._detachPositioningHandler(t)}),this.$dropdownContainer.on("mousedown",function(e){e.stopPropagation()})},e.prototype.destroy=function(e){e.call(this),this.$dropdownContainer.remove()},e.prototype.position=function(e,t,n){t.attr("class",n.attr("class")),t.removeClass("select2"),t.addClass("select2-container--open"),t.css({position:"absolute",top:-999999}),this.$container=n},e.prototype.render=function(e){var t=f("<span></span>"),n=e.call(this);return t.append(n),this.$dropdownContainer=t},e.prototype._hideDropdown=function(e){this.$dropdownContainer.detach()},e.prototype._bindContainerResultHandlers=function(e,t){if(!this._containerResultsHandlersBound){var n=this;t.on("results:all",function(){n._positionDropdown(),n._resizeDropdown()}),t.on("results:append",function(){n._positionDropdown(),n._resizeDropdown()}),t.on("results:message",function(){n._positionDropdown(),n._resizeDropdown()}),t.on("select",function(){n._positionDropdown(),n._resizeDropdown()}),t.on("unselect",function(){n._positionDropdown(),n._resizeDropdown()}),this._containerResultsHandlersBound=!0}},e.prototype._attachPositioningHandler=function(e,t){var n=this,i="scroll.select2."+t.id,r="resize.select2."+t.id,o="orientationchange.select2."+t.id,s=this.$container.parents().filter(a.hasScroll);s.each(function(){a.StoreData(this,"select2-scroll-position",{x:f(this).scrollLeft(),y:f(this).scrollTop()})}),s.on(i,function(e){var t=a.GetData(this,"select2-scroll-position");f(this).scrollTop(t.y)}),f(window).on(i+" "+r+" "+o,function(e){n._positionDropdown(),n._resizeDropdown()})},e.prototype._detachPositioningHandler=function(e,t){var n="scroll.select2."+t.id,i="resize.select2."+t.id,r="orientationchange.select2."+t.id;this.$container.parents().filter(a.hasScroll).off(n),f(window).off(n+" "+i+" "+r)},e.prototype._positionDropdown=function(){var e=f(window),t=this.$dropdown.hasClass("select2-dropdown--above"),n=this.$dropdown.hasClass("select2-dropdown--below"),i=null,r=this.$container.offset();r.bottom=r.top+this.$container.outerHeight(!1);var o={height:this.$container.outerHeight(!1)};o.top=r.top,o.bottom=r.top+o.height;var s=this.$dropdown.outerHeight(!1),a=e.scrollTop(),l=e.scrollTop()+e.height(),c=a<r.top-s,u=l>r.bottom+s,d={left:r.left,top:o.bottom},p=this.$dropdownParent;"static"===p.css("position")&&(p=p.offsetParent());var h={top:0,left:0};(f.contains(document.body,p[0])||p[0].isConnected)&&(h=p.offset()),d.top-=h.top,d.left-=h.left,t||n||(i="below"),u||!c||t?!c&&u&&t&&(i="below"):i="above",("above"==i||t&&"below"!==i)&&(d.top=o.top-h.top-s),null!=i&&(this.$dropdown.removeClass("select2-dropdown--below select2-dropdown--above").addClass("select2-dropdown--"+i),this.$container.removeClass("select2-container--below select2-container--above").addClass("select2-container--"+i)),this.$dropdownContainer.css(d)},e.prototype._resizeDropdown=function(){var e={width:this.$container.outerWidth(!1)+"px"};this.options.get("dropdownAutoWidth")&&(e.minWidth=e.width,e.position="relative",e.width="auto"),this.$dropdown.css(e)},e.prototype._showDropdown=function(e){this.$dropdownContainer.appendTo(this.$dropdownParent),this._positionDropdown(),this._resizeDropdown()},e}),e.define("select2/dropdown/minimumResultsForSearch",[],function(){function e(e,t,n,i){this.minimumResultsForSearch=n.get("minimumResultsForSearch"),this.minimumResultsForSearch<0&&(this.minimumResultsForSearch=1/0),e.call(this,t,n,i)}return e.prototype.showSearch=function(e,t){return!(function e(t){for(var n=0,i=0;i<t.length;i++){var r=t[i];r.children?n+=e(r.children):n++}return n}(t.data.results)<this.minimumResultsForSearch)&&e.call(this,t)},e}),e.define("select2/dropdown/selectOnClose",["../utils"],function(o){function e(){}return e.prototype.bind=function(e,t,n){var i=this;e.call(this,t,n),t.on("close",function(e){i._handleSelectOnClose(e)})},e.prototype._handleSelectOnClose=function(e,t){if(t&&null!=t.originalSelect2Event){var n=t.originalSelect2Event;if("select"===n._type||"unselect"===n._type)return}var i=this.getHighlightedResults();if(!(i.length<1)){var r=o.GetData(i[0],"data");null!=r.element&&r.element.selected||null==r.element&&r.selected||this.trigger("select",{data:r})}},e}),e.define("select2/dropdown/closeOnSelect",[],function(){function e(){}return e.prototype.bind=function(e,t,n){var i=this;e.call(this,t,n),t.on("select",function(e){i._selectTriggered(e)}),t.on("unselect",function(e){i._selectTriggered(e)})},e.prototype._selectTriggered=function(e,t){var n=t.originalEvent;n&&(n.ctrlKey||n.metaKey)||this.trigger("close",{originalEvent:n,originalSelect2Event:t})},e}),e.define("select2/i18n/en",[],function(){return{errorLoading:function(){return"The results could not be loaded."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Please delete "+t+" character";return 1!=t&&(n+="s"),n},inputTooShort:function(e){return"Please enter "+(e.minimum-e.input.length)+" or more characters"},loadingMore:function(){return"Loading more results…"},maximumSelected:function(e){var t="You can only select "+e.maximum+" item";return 1!=e.maximum&&(t+="s"),t},noResults:function(){return"No results found"},searching:function(){return"Searching…"},removeAllItems:function(){return"Remove all items"}}}),e.define("select2/defaults",["jquery","require","./results","./selection/single","./selection/multiple","./selection/placeholder","./selection/allowClear","./selection/search","./selection/eventRelay","./utils","./translation","./diacritics","./data/select","./data/array","./data/ajax","./data/tags","./data/tokenizer","./data/minimumInputLength","./data/maximumInputLength","./data/maximumSelectionLength","./dropdown","./dropdown/search","./dropdown/hidePlaceholder","./dropdown/infiniteScroll","./dropdown/attachBody","./dropdown/minimumResultsForSearch","./dropdown/selectOnClose","./dropdown/closeOnSelect","./i18n/en"],function(c,u,d,p,h,f,g,m,v,y,s,t,_,w,$,b,A,x,D,S,C,E,O,T,q,j,L,I,e){function n(){this.reset()}return n.prototype.apply=function(e){if(null==(e=c.extend(!0,{},this.defaults,e)).dataAdapter){if(null!=e.ajax?e.dataAdapter=$:null!=e.data?e.dataAdapter=w:e.dataAdapter=_,0<e.minimumInputLength&&(e.dataAdapter=y.Decorate(e.dataAdapter,x)),0<e.maximumInputLength&&(e.dataAdapter=y.Decorate(e.dataAdapter,D)),0<e.maximumSelectionLength&&(e.dataAdapter=y.Decorate(e.dataAdapter,S)),e.tags&&(e.dataAdapter=y.Decorate(e.dataAdapter,b)),null==e.tokenSeparators&&null==e.tokenizer||(e.dataAdapter=y.Decorate(e.dataAdapter,A)),null!=e.query){var t=u(e.amdBase+"compat/query");e.dataAdapter=y.Decorate(e.dataAdapter,t)}if(null!=e.initSelection){var n=u(e.amdBase+"compat/initSelection");e.dataAdapter=y.Decorate(e.dataAdapter,n)}}if(null==e.resultsAdapter&&(e.resultsAdapter=d,null!=e.ajax&&(e.resultsAdapter=y.Decorate(e.resultsAdapter,T)),null!=e.placeholder&&(e.resultsAdapter=y.Decorate(e.resultsAdapter,O)),e.selectOnClose&&(e.resultsAdapter=y.Decorate(e.resultsAdapter,L))),null==e.dropdownAdapter){if(e.multiple)e.dropdownAdapter=C;else{var i=y.Decorate(C,E);e.dropdownAdapter=i}if(0!==e.minimumResultsForSearch&&(e.dropdownAdapter=y.Decorate(e.dropdownAdapter,j)),e.closeOnSelect&&(e.dropdownAdapter=y.Decorate(e.dropdownAdapter,I)),null!=e.dropdownCssClass||null!=e.dropdownCss||null!=e.adaptDropdownCssClass){var r=u(e.amdBase+"compat/dropdownCss");e.dropdownAdapter=y.Decorate(e.dropdownAdapter,r)}e.dropdownAdapter=y.Decorate(e.dropdownAdapter,q)}if(null==e.selectionAdapter){if(e.multiple?e.selectionAdapter=h:e.selectionAdapter=p,null!=e.placeholder&&(e.selectionAdapter=y.Decorate(e.selectionAdapter,f)),e.allowClear&&(e.selectionAdapter=y.Decorate(e.selectionAdapter,g)),e.multiple&&(e.selectionAdapter=y.Decorate(e.selectionAdapter,m)),null!=e.containerCssClass||null!=e.containerCss||null!=e.adaptContainerCssClass){var o=u(e.amdBase+"compat/containerCss");e.selectionAdapter=y.Decorate(e.selectionAdapter,o)}e.selectionAdapter=y.Decorate(e.selectionAdapter,v)}e.language=this._resolveLanguage(e.language),e.language.push("en");for(var s=[],a=0;a<e.language.length;a++){var l=e.language[a];-1===s.indexOf(l)&&s.push(l)}return e.language=s,e.translations=this._processTranslations(e.language,e.debug),e},n.prototype.reset=function(){function a(e){return e.replace(/[^\u0000-\u007E]/g,function(e){return t[e]||e})}this.defaults={amdBase:"./",amdLanguageBase:"./i18n/",closeOnSelect:!0,debug:!1,dropdownAutoWidth:!1,escapeMarkup:y.escapeMarkup,language:{},matcher:function e(t,n){if(""===c.trim(t.term))return n;if(n.children&&0<n.children.length){for(var i=c.extend(!0,{},n),r=n.children.length-1;0<=r;r--)null==e(t,n.children[r])&&i.children.splice(r,1);return 0<i.children.length?i:e(t,i)}var o=a(n.text).toUpperCase(),s=a(t.term).toUpperCase();return-1<o.indexOf(s)?n:null},minimumInputLength:0,maximumInputLength:0,maximumSelectionLength:0,minimumResultsForSearch:0,selectOnClose:!1,scrollAfterSelect:!1,sorter:function(e){return e},templateResult:function(e){return e.text},templateSelection:function(e){return e.text},theme:"default",width:"resolve"}},n.prototype.applyFromElement=function(e,t){var n=e.language,i=this.defaults.language,r=t.prop("lang"),o=t.closest("[lang]").prop("lang"),s=Array.prototype.concat.call(this._resolveLanguage(r),this._resolveLanguage(n),this._resolveLanguage(i),this._resolveLanguage(o));return e.language=s,e},n.prototype._resolveLanguage=function(e){if(!e)return[];if(c.isEmptyObject(e))return[];if(c.isPlainObject(e))return[e];var t;t=c.isArray(e)?e:[e];for(var n=[],i=0;i<t.length;i++)if(n.push(t[i]),"string"==typeof t[i]&&0<t[i].indexOf("-")){var r=t[i].split("-")[0];n.push(r)}return n},n.prototype._processTranslations=function(e,t){for(var n=new s,i=0;i<e.length;i++){var r=new s,o=e[i];if("string"==typeof o)try{r=s.loadPath(o)}catch(e){try{o=this.defaults.amdLanguageBase+o,r=s.loadPath(o)}catch(e){t&&window.console&&console.warn&&console.warn('Select2: The language file for "'+o+'" could not be automatically loaded. A fallback will be used instead.')}}else r=c.isPlainObject(o)?new s(o):o;n.extend(r)}return n},n.prototype.set=function(e,t){var n={};n[c.camelCase(e)]=t;var i=y._convertData(n);c.extend(!0,this.defaults,i)},new n}),e.define("select2/options",["require","jquery","./defaults","./utils"],function(i,d,r,p){function e(e,t){if(this.options=e,null!=t&&this.fromElement(t),null!=t&&(this.options=r.applyFromElement(this.options,t)),this.options=r.apply(this.options),t&&t.is("input")){var n=i(this.get("amdBase")+"compat/inputData");this.options.dataAdapter=p.Decorate(this.options.dataAdapter,n)}}return e.prototype.fromElement=function(e){var t=["select2"];null==this.options.multiple&&(this.options.multiple=e.prop("multiple")),null==this.options.disabled&&(this.options.disabled=e.prop("disabled")),null==this.options.dir&&(e.prop("dir")?this.options.dir=e.prop("dir"):e.closest("[dir]").prop("dir")?this.options.dir=e.closest("[dir]").prop("dir"):this.options.dir="ltr"),e.prop("disabled",this.options.disabled),e.prop("multiple",this.options.multiple),p.GetData(e[0],"select2Tags")&&(this.options.debug&&window.console&&console.warn&&console.warn('Select2: The `data-select2-tags` attribute has been changed to use the `data-data` and `data-tags="true"` attributes and will be removed in future versions of Select2.'),p.StoreData(e[0],"data",p.GetData(e[0],"select2Tags")),p.StoreData(e[0],"tags",!0)),p.GetData(e[0],"ajaxUrl")&&(this.options.debug&&window.console&&console.warn&&console.warn("Select2: The `data-ajax-url` attribute has been changed to `data-ajax--url` and support for the old attribute will be removed in future versions of Select2."),e.attr("ajax--url",p.GetData(e[0],"ajaxUrl")),p.StoreData(e[0],"ajax-Url",p.GetData(e[0],"ajaxUrl")));var n={};function i(e,t){return t.toUpperCase()}for(var r=0;r<e[0].attributes.length;r++){var o=e[0].attributes[r].name,s="data-";if(o.substr(0,s.length)==s){var a=o.substring(s.length),l=p.GetData(e[0],a);n[a.replace(/-([a-z])/g,i)]=l}}d.fn.jquery&&"1."==d.fn.jquery.substr(0,2)&&e[0].dataset&&(n=d.extend(!0,{},e[0].dataset,n));var c=d.extend(!0,{},p.GetData(e[0]),n);for(var u in c=p._convertData(c))-1<d.inArray(u,t)||(d.isPlainObject(this.options[u])?d.extend(this.options[u],c[u]):this.options[u]=c[u]);return this},e.prototype.get=function(e){return this.options[e]},e.prototype.set=function(e,t){this.options[e]=t},e}),e.define("select2/core",["jquery","./options","./utils","./keys"],function(o,c,u,i){var d=function(e,t){null!=u.GetData(e[0],"select2")&&u.GetData(e[0],"select2").destroy(),this.$element=e,this.id=this._generateId(e),t=t||{},this.options=new c(t,e),d.__super__.constructor.call(this);var n=e.attr("tabindex")||0;u.StoreData(e[0],"old-tabindex",n),e.attr("tabindex","-1");var i=this.options.get("dataAdapter");this.dataAdapter=new i(e,this.options);var r=this.render();this._placeContainer(r);var o=this.options.get("selectionAdapter");this.selection=new o(e,this.options),this.$selection=this.selection.render(),this.selection.position(this.$selection,r);var s=this.options.get("dropdownAdapter");this.dropdown=new s(e,this.options),this.$dropdown=this.dropdown.render(),this.dropdown.position(this.$dropdown,r);var a=this.options.get("resultsAdapter");this.results=new a(e,this.options,this.dataAdapter),this.$results=this.results.render(),this.results.position(this.$results,this.$dropdown);var l=this;this._bindAdapters(),this._registerDomEvents(),this._registerDataEvents(),this._registerSelectionEvents(),this._registerDropdownEvents(),this._registerResultsEvents(),this._registerEvents(),this.dataAdapter.current(function(e){l.trigger("selection:update",{data:e})}),e.addClass("select2-hidden-accessible"),e.attr("aria-hidden","true"),this._syncAttributes(),u.StoreData(e[0],"select2",this),e.data("select2",this)};return u.Extend(d,u.Observable),d.prototype._generateId=function(e){return"select2-"+(null!=e.attr("id")?e.attr("id"):null!=e.attr("name")?e.attr("name")+"-"+u.generateChars(2):u.generateChars(4)).replace(/(:|\.|\[|\]|,)/g,"")},d.prototype._placeContainer=function(e){e.insertAfter(this.$element);var t=this._resolveWidth(this.$element,this.options.get("width"));null!=t&&e.css("width",t)},d.prototype._resolveWidth=function(e,t){var n=/^width:(([-+]?([0-9]*\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i;if("resolve"==t){var i=this._resolveWidth(e,"style");return null!=i?i:this._resolveWidth(e,"element")}if("element"==t){var r=e.outerWidth(!1);return r<=0?"auto":r+"px"}if("style"!=t)return"computedstyle"!=t?t:window.getComputedStyle(e[0]).width;var o=e.attr("style");if("string"!=typeof o)return null;for(var s=o.split(";"),a=0,l=s.length;a<l;a+=1){var c=s[a].replace(/\s/g,"").match(n);if(null!==c&&1<=c.length)return c[1]}return null},d.prototype._bindAdapters=function(){this.dataAdapter.bind(this,this.$container),this.selection.bind(this,this.$container),this.dropdown.bind(this,this.$container),this.results.bind(this,this.$container)},d.prototype._registerDomEvents=function(){var t=this;this.$element.on("change.select2",function(){t.dataAdapter.current(function(e){t.trigger("selection:update",{data:e})})}),this.$element.on("focus.select2",function(e){t.trigger("focus",e)}),this._syncA=u.bind(this._syncAttributes,this),this._syncS=u.bind(this._syncSubtree,this),this.$element[0].attachEvent&&this.$element[0].attachEvent("onpropertychange",this._syncA);var e=window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver;null!=e?(this._observer=new e(function(e){t._syncA(),t._syncS(null,e)}),this._observer.observe(this.$element[0],{attributes:!0,childList:!0,subtree:!1})):this.$element[0].addEventListener&&(this.$element[0].addEventListener("DOMAttrModified",t._syncA,!1),this.$element[0].addEventListener("DOMNodeInserted",t._syncS,!1),this.$element[0].addEventListener("DOMNodeRemoved",t._syncS,!1))},d.prototype._registerDataEvents=function(){var n=this;this.dataAdapter.on("*",function(e,t){n.trigger(e,t)})},d.prototype._registerSelectionEvents=function(){var n=this,i=["toggle","focus"];this.selection.on("toggle",function(){n.toggleDropdown()}),this.selection.on("focus",function(e){n.focus(e)}),this.selection.on("*",function(e,t){-1===o.inArray(e,i)&&n.trigger(e,t)})},d.prototype._registerDropdownEvents=function(){var n=this;this.dropdown.on("*",function(e,t){n.trigger(e,t)})},d.prototype._registerResultsEvents=function(){var n=this;this.results.on("*",function(e,t){n.trigger(e,t)})},d.prototype._registerEvents=function(){var n=this;this.on("open",function(){n.$container.addClass("select2-container--open")}),this.on("close",function(){n.$container.removeClass("select2-container--open")}),this.on("enable",function(){n.$container.removeClass("select2-container--disabled")}),this.on("disable",function(){n.$container.addClass("select2-container--disabled")}),this.on("blur",function(){n.$container.removeClass("select2-container--focus")}),this.on("query",function(t){n.isOpen()||n.trigger("open",{}),this.dataAdapter.query(t,function(e){n.trigger("results:all",{data:e,query:t})})}),this.on("query:append",function(t){this.dataAdapter.query(t,function(e){n.trigger("results:append",{data:e,query:t})})}),this.on("keypress",function(e){var t=e.which;n.isOpen()?t===i.ESC||t===i.TAB||t===i.UP&&e.altKey?(n.close(e),e.preventDefault()):t===i.ENTER?(n.trigger("results:select",{}),e.preventDefault()):t===i.SPACE&&e.ctrlKey?(n.trigger("results:toggle",{}),e.preventDefault()):t===i.UP?(n.trigger("results:previous",{}),e.preventDefault()):t===i.DOWN&&(n.trigger("results:next",{}),e.preventDefault()):(t===i.ENTER||t===i.SPACE||t===i.DOWN&&e.altKey)&&(n.open(),e.preventDefault())})},d.prototype._syncAttributes=function(){this.options.set("disabled",this.$element.prop("disabled")),this.isDisabled()?(this.isOpen()&&this.close(),this.trigger("disable",{})):this.trigger("enable",{})},d.prototype._isChangeMutation=function(e,t){var n=!1,i=this;if(!e||!e.target||"OPTION"===e.target.nodeName||"OPTGROUP"===e.target.nodeName){if(t)if(t.addedNodes&&0<t.addedNodes.length)for(var r=0;r<t.addedNodes.length;r++){t.addedNodes[r].selected&&(n=!0)}else t.removedNodes&&0<t.removedNodes.length?n=!0:o.isArray(t)&&o.each(t,function(e,t){if(i._isChangeMutation(e,t))return!(n=!0)});else n=!0;return n}},d.prototype._syncSubtree=function(e,t){var n=this._isChangeMutation(e,t),i=this;n&&this.dataAdapter.current(function(e){i.trigger("selection:update",{data:e})})},d.prototype.trigger=function(e,t){var n=d.__super__.trigger,i={open:"opening",close:"closing",select:"selecting",unselect:"unselecting",clear:"clearing"};if(void 0===t&&(t={}),e in i){var r=i[e],o={prevented:!1,name:e,args:t};if(n.call(this,r,o),o.prevented)return void(t.prevented=!0)}n.call(this,e,t)},d.prototype.toggleDropdown=function(){this.isDisabled()||(this.isOpen()?this.close():this.open())},d.prototype.open=function(){this.isOpen()||this.isDisabled()||this.trigger("query",{})},d.prototype.close=function(e){this.isOpen()&&this.trigger("close",{originalEvent:e})},d.prototype.isEnabled=function(){return!this.isDisabled()},d.prototype.isDisabled=function(){return this.options.get("disabled")},d.prototype.isOpen=function(){return this.$container.hasClass("select2-container--open")},d.prototype.hasFocus=function(){return this.$container.hasClass("select2-container--focus")},d.prototype.focus=function(e){this.hasFocus()||(this.$container.addClass("select2-container--focus"),this.trigger("focus",{}))},d.prototype.enable=function(e){this.options.get("debug")&&window.console&&console.warn&&console.warn('Select2: The `select2("enable")` method has been deprecated and will be removed in later Select2 versions. Use $element.prop("disabled") instead.'),null!=e&&0!==e.length||(e=[!0]);var t=!e[0];this.$element.prop("disabled",t)},d.prototype.data=function(){this.options.get("debug")&&0<arguments.length&&window.console&&console.warn&&console.warn('Select2: Data can no longer be set using `select2("data")`. You should consider setting the value instead using `$element.val()`.');var t=[];return this.dataAdapter.current(function(e){t=e}),t},d.prototype.val=function(e){if(this.options.get("debug")&&window.console&&console.warn&&console.warn('Select2: The `select2("val")` method has been deprecated and will be removed in later Select2 versions. Use $element.val() instead.'),null==e||0===e.length)return this.$element.val();var t=e[0];o.isArray(t)&&(t=o.map(t,function(e){return e.toString()})),this.$element.val(t).trigger("input").trigger("change")},d.prototype.destroy=function(){this.$container.remove(),this.$element[0].detachEvent&&this.$element[0].detachEvent("onpropertychange",this._syncA),null!=this._observer?(this._observer.disconnect(),this._observer=null):this.$element[0].removeEventListener&&(this.$element[0].removeEventListener("DOMAttrModified",this._syncA,!1),this.$element[0].removeEventListener("DOMNodeInserted",this._syncS,!1),this.$element[0].removeEventListener("DOMNodeRemoved",this._syncS,!1)),this._syncA=null,this._syncS=null,this.$element.off(".select2"),this.$element.attr("tabindex",u.GetData(this.$element[0],"old-tabindex")),this.$element.removeClass("select2-hidden-accessible"),this.$element.attr("aria-hidden","false"),u.RemoveData(this.$element[0]),this.$element.removeData("select2"),this.dataAdapter.destroy(),this.selection.destroy(),this.dropdown.destroy(),this.results.destroy(),this.dataAdapter=null,this.selection=null,this.dropdown=null,this.results=null},d.prototype.render=function(){var e=o('<span class="select2 select2-container"><span class="selection"></span><span class="dropdown-wrapper" aria-hidden="true"></span></span>');return e.attr("dir",this.options.get("dir")),this.$container=e,this.$container.addClass("select2-container--"+this.options.get("theme")),u.StoreData(e[0],"element",this.$element),e},d}),e.define("select2/compat/utils",["jquery"],function(s){return{syncCssClasses:function(e,t,n){var i,r,o=[];(i=s.trim(e.attr("class")))&&s((i=""+i).split(/\s+/)).each(function(){0===this.indexOf("select2-")&&o.push(this)}),(i=s.trim(t.attr("class")))&&s((i=""+i).split(/\s+/)).each(function(){0!==this.indexOf("select2-")&&null!=(r=n(this))&&o.push(r)}),e.attr("class",o.join(" "))}}}),e.define("select2/compat/containerCss",["jquery","./utils"],function(s,a){function l(e){return null}function e(){}return e.prototype.render=function(e){var t=e.call(this),n=this.options.get("containerCssClass")||"";s.isFunction(n)&&(n=n(this.$element));var i=this.options.get("adaptContainerCssClass");if(i=i||l,-1!==n.indexOf(":all:")){n=n.replace(":all:","");var r=i;i=function(e){var t=r(e);return null!=t?t+" "+e:e}}var o=this.options.get("containerCss")||{};return s.isFunction(o)&&(o=o(this.$element)),a.syncCssClasses(t,this.$element,i),t.css(o),t.addClass(n),t},e}),e.define("select2/compat/dropdownCss",["jquery","./utils"],function(s,a){function l(e){return null}function e(){}return e.prototype.render=function(e){var t=e.call(this),n=this.options.get("dropdownCssClass")||"";s.isFunction(n)&&(n=n(this.$element));var i=this.options.get("adaptDropdownCssClass");if(i=i||l,-1!==n.indexOf(":all:")){n=n.replace(":all:","");var r=i;i=function(e){var t=r(e);return null!=t?t+" "+e:e}}var o=this.options.get("dropdownCss")||{};return s.isFunction(o)&&(o=o(this.$element)),a.syncCssClasses(t,this.$element,i),t.css(o),t.addClass(n),t},e}),e.define("select2/compat/initSelection",["jquery"],function(i){function e(e,t,n){n.get("debug")&&window.console&&console.warn&&console.warn("Select2: The `initSelection` option has been deprecated in favor of a custom data adapter that overrides the `current` method. This method is now called multiple times instead of a single time when the instance is initialized. Support will be removed for the `initSelection` option in future versions of Select2"),this.initSelection=n.get("initSelection"),this._isInitialized=!1,e.call(this,t,n)}return e.prototype.current=function(e,t){var n=this;this._isInitialized?e.call(this,t):this.initSelection.call(null,this.$element,function(e){n._isInitialized=!0,i.isArray(e)||(e=[e]),t(e)})},e}),e.define("select2/compat/inputData",["jquery","../utils"],function(s,i){function e(e,t,n){this._currentData=[],this._valueSeparator=n.get("valueSeparator")||",","hidden"===t.prop("type")&&n.get("debug")&&console&&console.warn&&console.warn("Select2: Using a hidden input with Select2 is no longer supported and may stop working in the future. It is recommended to use a `<select>` element instead."),e.call(this,t,n)}return e.prototype.current=function(e,t){function i(e,t){var n=[];return e.selected||-1!==s.inArray(e.id,t)?(e.selected=!0,n.push(e)):e.selected=!1,e.children&&n.push.apply(n,i(e.children,t)),n}for(var n=[],r=0;r<this._currentData.length;r++){var o=this._currentData[r];n.push.apply(n,i(o,this.$element.val().split(this._valueSeparator)))}t(n)},e.prototype.select=function(e,t){if(this.options.get("multiple")){var n=this.$element.val();n+=this._valueSeparator+t.id,this.$element.val(n),this.$element.trigger("input").trigger("change")}else this.current(function(e){s.map(e,function(e){e.selected=!1})}),this.$element.val(t.id),this.$element.trigger("input").trigger("change")},e.prototype.unselect=function(e,r){var o=this;r.selected=!1,this.current(function(e){for(var t=[],n=0;n<e.length;n++){var i=e[n];r.id!=i.id&&t.push(i.id)}o.$element.val(t.join(o._valueSeparator)),o.$element.trigger("input").trigger("change")})},e.prototype.query=function(e,t,n){for(var i=[],r=0;r<this._currentData.length;r++){var o=this._currentData[r],s=this.matches(t,o);null!==s&&i.push(s)}n({results:i})},e.prototype.addOptions=function(e,t){var n=s.map(t,function(e){return i.GetData(e[0],"data")});this._currentData.push.apply(this._currentData,n)},e}),e.define("select2/compat/matcher",["jquery"],function(s){return function(o){return function(e,t){var n=s.extend(!0,{},t);if(null==e.term||""===s.trim(e.term))return n;if(t.children){for(var i=t.children.length-1;0<=i;i--){var r=t.children[i];o(e.term,r.text,r)||n.children.splice(i,1)}if(0<n.children.length)return n}return o(e.term,t.text,t)?n:null}}}),e.define("select2/compat/query",[],function(){function e(e,t,n){n.get("debug")&&window.console&&console.warn&&console.warn("Select2: The `query` option has been deprecated in favor of a custom data adapter that overrides the `query` method. Support will be removed for the `query` option in future versions of Select2."),e.call(this,t,n)}return e.prototype.query=function(e,t,n){t.callback=n,this.options.get("query").call(null,t)},e}),e.define("select2/dropdown/attachContainer",[],function(){function e(e,t,n){e.call(this,t,n)}return e.prototype.position=function(e,t,n){n.find(".dropdown-wrapper").append(t),t.addClass("select2-dropdown--below"),n.addClass("select2-container--below")},e}),e.define("select2/dropdown/stopPropagation",[],function(){function e(){}return e.prototype.bind=function(e,t,n){e.call(this,t,n);this.$dropdown.on(["blur","change","click","dblclick","focus","focusin","focusout","input","keydown","keyup","keypress","mousedown","mouseenter","mouseleave","mousemove","mouseover","mouseup","search","touchend","touchstart"].join(" "),function(e){e.stopPropagation()})},e}),e.define("select2/selection/stopPropagation",[],function(){function e(){}return e.prototype.bind=function(e,t,n){e.call(this,t,n);this.$selection.on(["blur","change","click","dblclick","focus","focusin","focusout","input","keydown","keyup","keypress","mousedown","mouseenter","mouseleave","mousemove","mouseover","mouseup","search","touchend","touchstart"].join(" "),function(e){e.stopPropagation()})},e}),l=function(p){var h,f,e=["wheel","mousewheel","DOMMouseScroll","MozMousePixelScroll"],t="onwheel"in document||9<=document.documentMode?["wheel"]:["mousewheel","DomMouseScroll","MozMousePixelScroll"],g=Array.prototype.slice;if(p.event.fixHooks)for(var n=e.length;n;)p.event.fixHooks[e[--n]]=p.event.mouseHooks;var m=p.event.special.mousewheel={version:"3.1.12",setup:function(){if(this.addEventListener)for(var e=t.length;e;)this.addEventListener(t[--e],i,!1);else this.onmousewheel=i;p.data(this,"mousewheel-line-height",m.getLineHeight(this)),p.data(this,"mousewheel-page-height",m.getPageHeight(this))},teardown:function(){if(this.removeEventListener)for(var e=t.length;e;)this.removeEventListener(t[--e],i,!1);else this.onmousewheel=null;p.removeData(this,"mousewheel-line-height"),p.removeData(this,"mousewheel-page-height")},getLineHeight:function(e){var t=p(e),n=t["offsetParent"in p.fn?"offsetParent":"parent"]();return n.length||(n=p("body")),parseInt(n.css("fontSize"),10)||parseInt(t.css("fontSize"),10)||16},getPageHeight:function(e){return p(e).height()},settings:{adjustOldDeltas:!0,normalizeOffset:!0}};function i(e){var t,n=e||window.event,i=g.call(arguments,1),r=0,o=0,s=0,a=0,l=0;if((e=p.event.fix(n)).type="mousewheel","detail"in n&&(s=-1*n.detail),"wheelDelta"in n&&(s=n.wheelDelta),"wheelDeltaY"in n&&(s=n.wheelDeltaY),"wheelDeltaX"in n&&(o=-1*n.wheelDeltaX),"axis"in n&&n.axis===n.HORIZONTAL_AXIS&&(o=-1*s,s=0),r=0===s?o:s,"deltaY"in n&&(r=s=-1*n.deltaY),"deltaX"in n&&(o=n.deltaX,0===s&&(r=-1*o)),0!==s||0!==o){if(1===n.deltaMode){var c=p.data(this,"mousewheel-line-height");r*=c,s*=c,o*=c}else if(2===n.deltaMode){var u=p.data(this,"mousewheel-page-height");r*=u,s*=u,o*=u}if(t=Math.max(Math.abs(s),Math.abs(o)),(!f||t<f)&&y(n,f=t)&&(f/=40),y(n,t)&&(r/=40,o/=40,s/=40),r=Math[1<=r?"floor":"ceil"](r/f),o=Math[1<=o?"floor":"ceil"](o/f),s=Math[1<=s?"floor":"ceil"](s/f),m.settings.normalizeOffset&&this.getBoundingClientRect){var d=this.getBoundingClientRect();a=e.clientX-d.left,l=e.clientY-d.top}return e.deltaX=o,e.deltaY=s,e.deltaFactor=f,e.offsetX=a,e.offsetY=l,e.deltaMode=0,i.unshift(e,r,o,s),h&&clearTimeout(h),h=setTimeout(v,200),(p.event.dispatch||p.event.handle).apply(this,i)}}function v(){f=null}function y(e,t){return m.settings.adjustOldDeltas&&"mousewheel"===e.type&&t%120==0}p.fn.extend({mousewheel:function(e){return e?this.bind("mousewheel",e):this.trigger("mousewheel")},unmousewheel:function(e){return this.unbind("mousewheel",e)}})},"function"==typeof e.define&&e.define.amd?e.define("jquery-mousewheel",["jquery"],l):"object"==typeof exports?module.exports=l:l(d),e.define("jquery.select2",["jquery","jquery-mousewheel","./select2/core","./select2/defaults","./select2/utils"],function(r,e,o,t,s){if(null==r.fn.select2){var a=["open","close","destroy"];r.fn.select2=function(t){if("object"==typeof(t=t||{}))return this.each(function(){var e=r.extend(!0,{},t);new o(r(this),e)}),this;if("string"!=typeof t)throw new Error("Invalid arguments for Select2: "+t);var n,i=Array.prototype.slice.call(arguments,1);return this.each(function(){var e=s.GetData(this,"select2");null==e&&window.console&&console.error&&console.error("The select2('"+t+"') method was called on an element that is not using Select2."),n=e[t].apply(e,i)}),-1<r.inArray(t,a)?this:n}}return null==r.fn.select2.defaults&&(r.fn.select2.defaults=t),o}),{define:e.define,require:e.require}}(),t=e.require("jquery.select2");return d.fn.select2.amd=e,t}); \ No newline at end of file diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/xregexp/LICENSE.txt b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/xregexp/LICENSE.txt new file mode 100644 index 0000000000..4d80338ce6 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/xregexp/LICENSE.txt @@ -0,0 +1,21 @@ +The MIT License + +Copyright (c) 2007-present Steven Levithan <http://xregexp.com/> + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/xregexp/xregexp.js b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/xregexp/xregexp.js new file mode 100644 index 0000000000..215482c45a --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/xregexp/xregexp.js @@ -0,0 +1,6126 @@ +(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.XRegExp = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){ +"use strict"; + +var _sliceInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/slice"); + +var _Array$from = require("@babel/runtime-corejs3/core-js-stable/array/from"); + +var _Symbol = require("@babel/runtime-corejs3/core-js-stable/symbol"); + +var _getIteratorMethod = require("@babel/runtime-corejs3/core-js/get-iterator-method"); + +var _Array$isArray = require("@babel/runtime-corejs3/core-js-stable/array/is-array"); + +var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property"); + +var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault"); + +_Object$defineProperty(exports, "__esModule", { + value: true +}); + +exports["default"] = void 0; + +var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray")); + +var _forEach = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/for-each")); + +var _concat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/concat")); + +var _indexOf = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/index-of")); + +function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof _Symbol !== "undefined" && _getIteratorMethod(o) || o["@@iterator"]; if (!it) { if (_Array$isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; } + +function _unsupportedIterableToArray(o, minLen) { var _context4; if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = _sliceInstanceProperty(_context4 = Object.prototype.toString.call(o)).call(_context4, 8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return _Array$from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } + +function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } + +/*! + * XRegExp Unicode Base 5.1.1 + * <xregexp.com> + * Steven Levithan (c) 2008-present MIT License + */ +var _default = function _default(XRegExp) { + /** + * Adds base support for Unicode matching: + * - Adds syntax `\p{..}` for matching Unicode tokens. Tokens can be inverted using `\P{..}` or + * `\p{^..}`. Token names ignore case, spaces, hyphens, and underscores. You can omit the + * braces for token names that are a single letter (e.g. `\pL` or `PL`). + * - Adds flag A (astral), which enables 21-bit Unicode support. + * - Adds the `XRegExp.addUnicodeData` method used by other addons to provide character data. + * + * Unicode Base relies on externally provided Unicode character data. Official addons are + * available to provide data for Unicode categories, scripts, and properties. + * + * @requires XRegExp + */ + // ==--------------------------== + // Private stuff + // ==--------------------------== + // Storage for Unicode data + var unicode = {}; + var unicodeTypes = {}; // Reuse utils + + var dec = XRegExp._dec; + var hex = XRegExp._hex; + var pad4 = XRegExp._pad4; // Generates a token lookup name: lowercase, with hyphens, spaces, and underscores removed + + function normalize(name) { + return name.replace(/[- _]+/g, '').toLowerCase(); + } // Gets the decimal code of a literal code unit, \xHH, \uHHHH, or a backslash-escaped literal + + + function charCode(chr) { + var esc = /^\\[xu](.+)/.exec(chr); + return esc ? dec(esc[1]) : chr.charCodeAt(chr[0] === '\\' ? 1 : 0); + } // Inverts a list of ordered BMP characters and ranges + + + function invertBmp(range) { + var output = ''; + var lastEnd = -1; + (0, _forEach["default"])(XRegExp).call(XRegExp, range, /(\\x..|\\u....|\\?[\s\S])(?:-(\\x..|\\u....|\\?[\s\S]))?/, function (m) { + var start = charCode(m[1]); + + if (start > lastEnd + 1) { + output += "\\u".concat(pad4(hex(lastEnd + 1))); + + if (start > lastEnd + 2) { + output += "-\\u".concat(pad4(hex(start - 1))); + } + } + + lastEnd = charCode(m[2] || m[1]); + }); + + if (lastEnd < 0xFFFF) { + output += "\\u".concat(pad4(hex(lastEnd + 1))); + + if (lastEnd < 0xFFFE) { + output += '-\\uFFFF'; + } + } + + return output; + } // Generates an inverted BMP range on first use + + + function cacheInvertedBmp(slug) { + var prop = 'b!'; + return unicode[slug][prop] || (unicode[slug][prop] = invertBmp(unicode[slug].bmp)); + } // Combines and optionally negates BMP and astral data + + + function buildAstral(slug, isNegated) { + var item = unicode[slug]; + var combined = ''; + + if (item.bmp && !item.isBmpLast) { + var _context; + + combined = (0, _concat["default"])(_context = "[".concat(item.bmp, "]")).call(_context, item.astral ? '|' : ''); + } + + if (item.astral) { + combined += item.astral; + } + + if (item.isBmpLast && item.bmp) { + var _context2; + + combined += (0, _concat["default"])(_context2 = "".concat(item.astral ? '|' : '', "[")).call(_context2, item.bmp, "]"); + } // Astral Unicode tokens always match a code point, never a code unit + + + return isNegated ? "(?:(?!".concat(combined, ")(?:[\uD800-\uDBFF][\uDC00-\uDFFF]|[\0-\uFFFF]))") : "(?:".concat(combined, ")"); + } // Builds a complete astral pattern on first use + + + function cacheAstral(slug, isNegated) { + var prop = isNegated ? 'a!' : 'a='; + return unicode[slug][prop] || (unicode[slug][prop] = buildAstral(slug, isNegated)); + } // ==--------------------------== + // Core functionality + // ==--------------------------== + + /* + * Add astral mode (flag A) and Unicode token syntax: `\p{..}`, `\P{..}`, `\p{^..}`, `\pC`. + */ + + + XRegExp.addToken( // Use `*` instead of `+` to avoid capturing `^` as the token name in `\p{^}` + /\\([pP])(?:{(\^?)(?:(\w+)=)?([^}]*)}|([A-Za-z]))/, function (match, scope, flags) { + var ERR_DOUBLE_NEG = 'Invalid double negation '; + var ERR_UNKNOWN_NAME = 'Unknown Unicode token '; + var ERR_UNKNOWN_REF = 'Unicode token missing data '; + var ERR_ASTRAL_ONLY = 'Astral mode required for Unicode token '; + var ERR_ASTRAL_IN_CLASS = 'Astral mode does not support Unicode tokens within character classes'; + + var _match = (0, _slicedToArray2["default"])(match, 6), + fullToken = _match[0], + pPrefix = _match[1], + caretNegation = _match[2], + typePrefix = _match[3], + tokenName = _match[4], + tokenSingleCharName = _match[5]; // Negated via \P{..} or \p{^..} + + + var isNegated = pPrefix === 'P' || !!caretNegation; // Switch from BMP (0-FFFF) to astral (0-10FFFF) mode via flag A + + var isAstralMode = (0, _indexOf["default"])(flags).call(flags, 'A') !== -1; // Token lookup name. Check `tokenSingleCharName` first to avoid passing `undefined` + // via `\p{}` + + var slug = normalize(tokenSingleCharName || tokenName); // Token data object + + var item = unicode[slug]; + + if (pPrefix === 'P' && caretNegation) { + throw new SyntaxError(ERR_DOUBLE_NEG + fullToken); + } + + if (!unicode.hasOwnProperty(slug)) { + throw new SyntaxError(ERR_UNKNOWN_NAME + fullToken); + } + + if (typePrefix) { + if (!(unicodeTypes[typePrefix] && unicodeTypes[typePrefix][slug])) { + throw new SyntaxError(ERR_UNKNOWN_NAME + fullToken); + } + } // Switch to the negated form of the referenced Unicode token + + + if (item.inverseOf) { + slug = normalize(item.inverseOf); + + if (!unicode.hasOwnProperty(slug)) { + var _context3; + + throw new ReferenceError((0, _concat["default"])(_context3 = "".concat(ERR_UNKNOWN_REF + fullToken, " -> ")).call(_context3, item.inverseOf)); + } + + item = unicode[slug]; + isNegated = !isNegated; + } + + if (!(item.bmp || isAstralMode)) { + throw new SyntaxError(ERR_ASTRAL_ONLY + fullToken); + } + + if (isAstralMode) { + if (scope === 'class') { + throw new SyntaxError(ERR_ASTRAL_IN_CLASS); + } + + return cacheAstral(slug, isNegated); + } + + return scope === 'class' ? isNegated ? cacheInvertedBmp(slug) : item.bmp : "".concat((isNegated ? '[^' : '[') + item.bmp, "]"); + }, { + scope: 'all', + optionalFlags: 'A', + leadChar: '\\' + }); + /** + * Adds to the list of Unicode tokens that XRegExp regexes can match via `\p` or `\P`. + * + * @memberOf XRegExp + * @param {Array} data Objects with named character ranges. Each object may have properties + * `name`, `alias`, `isBmpLast`, `inverseOf`, `bmp`, and `astral`. All but `name` are + * optional, although one of `bmp` or `astral` is required (unless `inverseOf` is set). If + * `astral` is absent, the `bmp` data is used for BMP and astral modes. If `bmp` is absent, + * the name errors in BMP mode but works in astral mode. If both `bmp` and `astral` are + * provided, the `bmp` data only is used in BMP mode, and the combination of `bmp` and + * `astral` data is used in astral mode. `isBmpLast` is needed when a token matches orphan + * high surrogates *and* uses surrogate pairs to match astral code points. The `bmp` and + * `astral` data should be a combination of literal characters and `\xHH` or `\uHHHH` escape + * sequences, with hyphens to create ranges. Any regex metacharacters in the data should be + * escaped, apart from range-creating hyphens. The `astral` data can additionally use + * character classes and alternation, and should use surrogate pairs to represent astral code + * points. `inverseOf` can be used to avoid duplicating character data if a Unicode token is + * defined as the exact inverse of another token. + * @param {String} [typePrefix] Enables optionally using this type as a prefix for all of the + * provided Unicode tokens, e.g. if given `'Type'`, then `\p{TokenName}` can also be written + * as `\p{Type=TokenName}`. + * @example + * + * // Basic use + * XRegExp.addUnicodeData([{ + * name: 'XDigit', + * alias: 'Hexadecimal', + * bmp: '0-9A-Fa-f' + * }]); + * XRegExp('\\p{XDigit}:\\p{Hexadecimal}+').test('0:3D'); // -> true + */ + + XRegExp.addUnicodeData = function (data, typePrefix) { + var ERR_NO_NAME = 'Unicode token requires name'; + var ERR_NO_DATA = 'Unicode token has no character data '; + + if (typePrefix) { + // Case sensitive to match ES2018 + unicodeTypes[typePrefix] = {}; + } + + var _iterator = _createForOfIteratorHelper(data), + _step; + + try { + for (_iterator.s(); !(_step = _iterator.n()).done;) { + var item = _step.value; + + if (!item.name) { + throw new Error(ERR_NO_NAME); + } + + if (!(item.inverseOf || item.bmp || item.astral)) { + throw new Error(ERR_NO_DATA + item.name); + } + + var normalizedName = normalize(item.name); + unicode[normalizedName] = item; + + if (typePrefix) { + unicodeTypes[typePrefix][normalizedName] = true; + } + + if (item.alias) { + var normalizedAlias = normalize(item.alias); + unicode[normalizedAlias] = item; + + if (typePrefix) { + unicodeTypes[typePrefix][normalizedAlias] = true; + } + } + } // Reset the pattern cache used by the `XRegExp` constructor, since the same pattern and + // flags might now produce different results + + } catch (err) { + _iterator.e(err); + } finally { + _iterator.f(); + } + + XRegExp.cache.flush('patterns'); + }; + /** + * @ignore + * + * Return a reference to the internal Unicode definition structure for the given Unicode + * Property if the given name is a legal Unicode Property for use in XRegExp `\p` or `\P` regex + * constructs. + * + * @memberOf XRegExp + * @param {String} name Name by which the Unicode Property may be recognized (case-insensitive), + * e.g. `'N'` or `'Number'`. The given name is matched against all registered Unicode + * Properties and Property Aliases. + * @returns {Object} Reference to definition structure when the name matches a Unicode Property. + * + * @note + * For more info on Unicode Properties, see also http://unicode.org/reports/tr18/#Categories. + * + * @note + * This method is *not* part of the officially documented API and may change or be removed in + * the future. It is meant for userland code that wishes to reuse the (large) internal Unicode + * structures set up by XRegExp. + */ + + + XRegExp._getUnicodeProperty = function (name) { + var slug = normalize(name); + return unicode[slug]; + }; +}; + +exports["default"] = _default; +module.exports = exports.default; +},{"@babel/runtime-corejs3/core-js-stable/array/from":5,"@babel/runtime-corejs3/core-js-stable/array/is-array":6,"@babel/runtime-corejs3/core-js-stable/instance/concat":7,"@babel/runtime-corejs3/core-js-stable/instance/for-each":9,"@babel/runtime-corejs3/core-js-stable/instance/index-of":10,"@babel/runtime-corejs3/core-js-stable/instance/slice":11,"@babel/runtime-corejs3/core-js-stable/object/define-property":14,"@babel/runtime-corejs3/core-js-stable/symbol":16,"@babel/runtime-corejs3/core-js/get-iterator-method":19,"@babel/runtime-corejs3/helpers/interopRequireDefault":24,"@babel/runtime-corejs3/helpers/slicedToArray":27}],2:[function(require,module,exports){ +"use strict"; + +var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property"); + +var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault"); + +_Object$defineProperty(exports, "__esModule", { + value: true +}); + +exports["default"] = void 0; + +var _categories = _interopRequireDefault(require("../../tools/output/categories")); + +/*! + * XRegExp Unicode Categories 5.1.1 + * <xregexp.com> + * Steven Levithan (c) 2010-present MIT License + * Unicode data by Mathias Bynens <mathiasbynens.be> + */ +var _default = function _default(XRegExp) { + /** + * Adds support for Unicode's general categories. E.g., `\p{Lu}` or `\p{Uppercase Letter}`. See + * category descriptions in UAX #44 <http://unicode.org/reports/tr44/#GC_Values_Table>. Token + * names are case insensitive, and any spaces, hyphens, and underscores are ignored. + * + * Uses Unicode 14.0.0. + * + * @requires XRegExp, Unicode Base + */ + if (!XRegExp.addUnicodeData) { + throw new ReferenceError('Unicode Base must be loaded before Unicode Categories'); + } + + XRegExp.addUnicodeData(_categories["default"]); +}; + +exports["default"] = _default; +module.exports = exports.default; +},{"../../tools/output/categories":222,"@babel/runtime-corejs3/core-js-stable/object/define-property":14,"@babel/runtime-corejs3/helpers/interopRequireDefault":24}],3:[function(require,module,exports){ +"use strict"; + +var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property"); + +var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault"); + +_Object$defineProperty(exports, "__esModule", { + value: true +}); + +exports["default"] = void 0; + +var _xregexp = _interopRequireDefault(require("./xregexp")); + +var _unicodeBase = _interopRequireDefault(require("./addons/unicode-base")); + +var _unicodeCategories = _interopRequireDefault(require("./addons/unicode-categories")); + +(0, _unicodeBase["default"])(_xregexp["default"]); +(0, _unicodeCategories["default"])(_xregexp["default"]); +var _default = _xregexp["default"]; +exports["default"] = _default; +module.exports = exports.default; +},{"./addons/unicode-base":1,"./addons/unicode-categories":2,"./xregexp":4,"@babel/runtime-corejs3/core-js-stable/object/define-property":14,"@babel/runtime-corejs3/helpers/interopRequireDefault":24}],4:[function(require,module,exports){ +"use strict"; + +var _sliceInstanceProperty2 = require("@babel/runtime-corejs3/core-js-stable/instance/slice"); + +var _Array$from = require("@babel/runtime-corejs3/core-js-stable/array/from"); + +var _Symbol = require("@babel/runtime-corejs3/core-js-stable/symbol"); + +var _getIteratorMethod = require("@babel/runtime-corejs3/core-js/get-iterator-method"); + +var _Array$isArray = require("@babel/runtime-corejs3/core-js-stable/array/is-array"); + +var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property"); + +var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault"); + +_Object$defineProperty(exports, "__esModule", { + value: true +}); + +exports["default"] = void 0; + +var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray")); + +var _flags = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/flags")); + +var _sort = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/sort")); + +var _slice = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/slice")); + +var _parseInt2 = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/parse-int")); + +var _indexOf = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/index-of")); + +var _forEach = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/for-each")); + +var _create = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/create")); + +var _concat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/concat")); + +function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof _Symbol !== "undefined" && _getIteratorMethod(o) || o["@@iterator"]; if (!it) { if (_Array$isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; } + +function _unsupportedIterableToArray(o, minLen) { var _context9; if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = _sliceInstanceProperty2(_context9 = Object.prototype.toString.call(o)).call(_context9, 8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return _Array$from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } + +function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } + +/*! + * XRegExp 5.1.1 + * <xregexp.com> + * Steven Levithan (c) 2007-present MIT License + */ + +/** + * XRegExp provides augmented, extensible regular expressions. You get additional regex syntax and + * flags, beyond what browsers support natively. XRegExp is also a regex utility belt with tools to + * make your client-side grepping simpler and more powerful, while freeing you from related + * cross-browser inconsistencies. + */ +// ==--------------------------== +// Private stuff +// ==--------------------------== +// Property name used for extended regex instance data +var REGEX_DATA = 'xregexp'; // Optional features that can be installed and uninstalled + +var features = { + astral: false, + namespacing: true +}; // Storage for fixed/extended native methods + +var fixed = {}; // Storage for regexes cached by `XRegExp.cache` + +var regexCache = {}; // Storage for pattern details cached by the `XRegExp` constructor + +var patternCache = {}; // Storage for regex syntax tokens added internally or by `XRegExp.addToken` + +var tokens = []; // Token scopes + +var defaultScope = 'default'; +var classScope = 'class'; // Regexes that match native regex syntax, including octals + +var nativeTokens = { + // Any native multicharacter token in default scope, or any single character + 'default': /\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9]\d*|x[\dA-Fa-f]{2}|u(?:[\dA-Fa-f]{4}|{[\dA-Fa-f]+})|c[A-Za-z]|[\s\S])|\(\?(?:[:=!]|<[=!])|[?*+]\?|{\d+(?:,\d*)?}\??|[\s\S]/, + // Any native multicharacter token in character class scope, or any single character + 'class': /\\(?:[0-3][0-7]{0,2}|[4-7][0-7]?|x[\dA-Fa-f]{2}|u(?:[\dA-Fa-f]{4}|{[\dA-Fa-f]+})|c[A-Za-z]|[\s\S])|[\s\S]/ +}; // Any backreference or dollar-prefixed character in replacement strings + +var replacementToken = /\$(?:\{([^\}]+)\}|<([^>]+)>|(\d\d?|[\s\S]?))/g; // Check for correct `exec` handling of nonparticipating capturing groups + +var correctExecNpcg = /()??/.exec('')[1] === undefined; // Check for ES6 `flags` prop support + +var hasFlagsProp = (0, _flags["default"])(/x/) !== undefined; + +function hasNativeFlag(flag) { + // Can't check based on the presence of properties/getters since browsers might support such + // properties even when they don't support the corresponding flag in regex construction (tested + // in Chrome 48, where `'unicode' in /x/` is true but trying to construct a regex with flag `u` + // throws an error) + var isSupported = true; + + try { + // Can't use regex literals for testing even in a `try` because regex literals with + // unsupported flags cause a compilation error in IE + new RegExp('', flag); // Work around a broken/incomplete IE11 polyfill for sticky introduced in core-js 3.6.0 + + if (flag === 'y') { + // Using function to avoid babel transform to regex literal + var gy = function () { + return 'gy'; + }(); + + var incompleteY = '.a'.replace(new RegExp('a', gy), '.') === '..'; + + if (incompleteY) { + isSupported = false; + } + } + } catch (exception) { + isSupported = false; + } + + return isSupported; +} // Check for ES2021 `d` flag support + + +var hasNativeD = hasNativeFlag('d'); // Check for ES2018 `s` flag support + +var hasNativeS = hasNativeFlag('s'); // Check for ES6 `u` flag support + +var hasNativeU = hasNativeFlag('u'); // Check for ES6 `y` flag support + +var hasNativeY = hasNativeFlag('y'); // Tracker for known flags, including addon flags + +var registeredFlags = { + d: hasNativeD, + g: true, + i: true, + m: true, + s: hasNativeS, + u: hasNativeU, + y: hasNativeY +}; // Flags to remove when passing to native `RegExp` constructor + +var nonnativeFlags = hasNativeS ? /[^dgimsuy]+/g : /[^dgimuy]+/g; +/** + * Attaches extended data and `XRegExp.prototype` properties to a regex object. + * + * @private + * @param {RegExp} regex Regex to augment. + * @param {Array} captureNames Array with capture names, or `null`. + * @param {String} xSource XRegExp pattern used to generate `regex`, or `null` if N/A. + * @param {String} xFlags XRegExp flags used to generate `regex`, or `null` if N/A. + * @param {Boolean} [isInternalOnly=false] Whether the regex will be used only for internal + * operations, and never exposed to users. For internal-only regexes, we can improve perf by + * skipping some operations like attaching `XRegExp.prototype` properties. + * @returns {!RegExp} Augmented regex. + */ + +function augment(regex, captureNames, xSource, xFlags, isInternalOnly) { + var _context; + + regex[REGEX_DATA] = { + captureNames: captureNames + }; + + if (isInternalOnly) { + return regex; + } // Can't auto-inherit these since the XRegExp constructor returns a nonprimitive value + + + if (regex.__proto__) { + regex.__proto__ = XRegExp.prototype; + } else { + for (var p in XRegExp.prototype) { + // An `XRegExp.prototype.hasOwnProperty(p)` check wouldn't be worth it here, since this + // is performance sensitive, and enumerable `Object.prototype` or `RegExp.prototype` + // extensions exist on `regex.prototype` anyway + regex[p] = XRegExp.prototype[p]; + } + } + + regex[REGEX_DATA].source = xSource; // Emulate the ES6 `flags` prop by ensuring flags are in alphabetical order + + regex[REGEX_DATA].flags = xFlags ? (0, _sort["default"])(_context = xFlags.split('')).call(_context).join('') : xFlags; + return regex; +} +/** + * Removes any duplicate characters from the provided string. + * + * @private + * @param {String} str String to remove duplicate characters from. + * @returns {string} String with any duplicate characters removed. + */ + + +function clipDuplicates(str) { + return str.replace(/([\s\S])(?=[\s\S]*\1)/g, ''); +} +/** + * Copies a regex object while preserving extended data and augmenting with `XRegExp.prototype` + * properties. The copy has a fresh `lastIndex` property (set to zero). Allows adding and removing + * flags g and y while copying the regex. + * + * @private + * @param {RegExp} regex Regex to copy. + * @param {Object} [options] Options object with optional properties: + * - `addG` {Boolean} Add flag g while copying the regex. + * - `addY` {Boolean} Add flag y while copying the regex. + * - `removeG` {Boolean} Remove flag g while copying the regex. + * - `removeY` {Boolean} Remove flag y while copying the regex. + * - `isInternalOnly` {Boolean} Whether the copied regex will be used only for internal + * operations, and never exposed to users. For internal-only regexes, we can improve perf by + * skipping some operations like attaching `XRegExp.prototype` properties. + * - `source` {String} Overrides `<regex>.source`, for special cases. + * @returns {RegExp} Copy of the provided regex, possibly with modified flags. + */ + + +function copyRegex(regex, options) { + var _context2; + + if (!XRegExp.isRegExp(regex)) { + throw new TypeError('Type RegExp expected'); + } + + var xData = regex[REGEX_DATA] || {}; + var flags = getNativeFlags(regex); + var flagsToAdd = ''; + var flagsToRemove = ''; + var xregexpSource = null; + var xregexpFlags = null; + options = options || {}; + + if (options.removeG) { + flagsToRemove += 'g'; + } + + if (options.removeY) { + flagsToRemove += 'y'; + } + + if (flagsToRemove) { + flags = flags.replace(new RegExp("[".concat(flagsToRemove, "]+"), 'g'), ''); + } + + if (options.addG) { + flagsToAdd += 'g'; + } + + if (options.addY) { + flagsToAdd += 'y'; + } + + if (flagsToAdd) { + flags = clipDuplicates(flags + flagsToAdd); + } + + if (!options.isInternalOnly) { + if (xData.source !== undefined) { + xregexpSource = xData.source; + } // null or undefined; don't want to add to `flags` if the previous value was null, since + // that indicates we're not tracking original precompilation flags + + + if ((0, _flags["default"])(xData) != null) { + // Flags are only added for non-internal regexes by `XRegExp.globalize`. Flags are never + // removed for non-internal regexes, so don't need to handle it + xregexpFlags = flagsToAdd ? clipDuplicates((0, _flags["default"])(xData) + flagsToAdd) : (0, _flags["default"])(xData); + } + } // Augment with `XRegExp.prototype` properties, but use the native `RegExp` constructor to avoid + // searching for special tokens. That would be wrong for regexes constructed by `RegExp`, and + // unnecessary for regexes constructed by `XRegExp` because the regex has already undergone the + // translation to native regex syntax + + + regex = augment(new RegExp(options.source || regex.source, flags), hasNamedCapture(regex) ? (0, _slice["default"])(_context2 = xData.captureNames).call(_context2, 0) : null, xregexpSource, xregexpFlags, options.isInternalOnly); + return regex; +} +/** + * Converts hexadecimal to decimal. + * + * @private + * @param {String} hex + * @returns {number} + */ + + +function dec(hex) { + return (0, _parseInt2["default"])(hex, 16); +} +/** + * Returns a pattern that can be used in a native RegExp in place of an ignorable token such as an + * inline comment or whitespace with flag x. This is used directly as a token handler function + * passed to `XRegExp.addToken`. + * + * @private + * @param {String} match Match arg of `XRegExp.addToken` handler + * @param {String} scope Scope arg of `XRegExp.addToken` handler + * @param {String} flags Flags arg of `XRegExp.addToken` handler + * @returns {string} Either '' or '(?:)', depending on which is needed in the context of the match. + */ + + +function getContextualTokenSeparator(match, scope, flags) { + var matchEndPos = match.index + match[0].length; + var precedingChar = match.input[match.index - 1]; + var followingChar = match.input[matchEndPos]; + + if ( // No need to separate tokens if at the beginning or end of a group, before or after a + // group, or before or after a `|` + /^[()|]$/.test(precedingChar) || /^[()|]$/.test(followingChar) || // No need to separate tokens if at the beginning or end of the pattern + match.index === 0 || matchEndPos === match.input.length || // No need to separate tokens if at the beginning of a noncapturing group or lookaround. + // Looks only at the last 4 chars (at most) for perf when constructing long regexes. + /\(\?(?:[:=!]|<[=!])$/.test(match.input.substring(match.index - 4, match.index)) || // Avoid separating tokens when the following token is a quantifier + isQuantifierNext(match.input, matchEndPos, flags)) { + return ''; + } // Keep tokens separated. This avoids e.g. inadvertedly changing `\1 1` or `\1(?#)1` to `\11`. + // This also ensures all tokens remain as discrete atoms, e.g. it prevents converting the + // syntax error `(? :` into `(?:`. + + + return '(?:)'; +} +/** + * Returns native `RegExp` flags used by a regex object. + * + * @private + * @param {RegExp} regex Regex to check. + * @returns {string} Native flags in use. + */ + + +function getNativeFlags(regex) { + return hasFlagsProp ? (0, _flags["default"])(regex) : // Explicitly using `RegExp.prototype.toString` (rather than e.g. `String` or concatenation + // with an empty string) allows this to continue working predictably when + // `XRegExp.proptotype.toString` is overridden + /\/([a-z]*)$/i.exec(RegExp.prototype.toString.call(regex))[1]; +} +/** + * Determines whether a regex has extended instance data used to track capture names. + * + * @private + * @param {RegExp} regex Regex to check. + * @returns {boolean} Whether the regex uses named capture. + */ + + +function hasNamedCapture(regex) { + return !!(regex[REGEX_DATA] && regex[REGEX_DATA].captureNames); +} +/** + * Converts decimal to hexadecimal. + * + * @private + * @param {Number|String} dec + * @returns {string} + */ + + +function hex(dec) { + return (0, _parseInt2["default"])(dec, 10).toString(16); +} +/** + * Checks whether the next nonignorable token after the specified position is a quantifier. + * + * @private + * @param {String} pattern Pattern to search within. + * @param {Number} pos Index in `pattern` to search at. + * @param {String} flags Flags used by the pattern. + * @returns {Boolean} Whether the next nonignorable token is a quantifier. + */ + + +function isQuantifierNext(pattern, pos, flags) { + var inlineCommentPattern = '\\(\\?#[^)]*\\)'; + var lineCommentPattern = '#[^#\\n]*'; + var quantifierPattern = '[?*+]|{\\d+(?:,\\d*)?}'; + var regex = (0, _indexOf["default"])(flags).call(flags, 'x') !== -1 ? // Ignore any leading whitespace, line comments, and inline comments + /^(?:\s|#[^#\n]*|\(\?#[^)]*\))*(?:[?*+]|{\d+(?:,\d*)?})/ : // Ignore any leading inline comments + /^(?:\(\?#[^)]*\))*(?:[?*+]|{\d+(?:,\d*)?})/; + return regex.test((0, _slice["default"])(pattern).call(pattern, pos)); +} +/** + * Determines whether a value is of the specified type, by resolving its internal [[Class]]. + * + * @private + * @param {*} value Object to check. + * @param {String} type Type to check for, in TitleCase. + * @returns {boolean} Whether the object matches the type. + */ + + +function isType(value, type) { + return Object.prototype.toString.call(value) === "[object ".concat(type, "]"); +} +/** + * Returns the object, or throws an error if it is `null` or `undefined`. This is used to follow + * the ES5 abstract operation `ToObject`. + * + * @private + * @param {*} value Object to check and return. + * @returns {*} The provided object. + */ + + +function nullThrows(value) { + // null or undefined + if (value == null) { + throw new TypeError('Cannot convert null or undefined to object'); + } + + return value; +} +/** + * Adds leading zeros if shorter than four characters. Used for fixed-length hexadecimal values. + * + * @private + * @param {String} str + * @returns {string} + */ + + +function pad4(str) { + while (str.length < 4) { + str = "0".concat(str); + } + + return str; +} +/** + * Checks for flag-related errors, and strips/applies flags in a leading mode modifier. Offloads + * the flag preparation logic from the `XRegExp` constructor. + * + * @private + * @param {String} pattern Regex pattern, possibly with a leading mode modifier. + * @param {String} flags Any combination of flags. + * @returns {!Object} Object with properties `pattern` and `flags`. + */ + + +function prepareFlags(pattern, flags) { + // Recent browsers throw on duplicate flags, so copy this behavior for nonnative flags + if (clipDuplicates(flags) !== flags) { + throw new SyntaxError("Invalid duplicate regex flag ".concat(flags)); + } // Strip and apply a leading mode modifier with any combination of flags except `dgy` + + + pattern = pattern.replace(/^\(\?([\w$]+)\)/, function ($0, $1) { + if (/[dgy]/.test($1)) { + throw new SyntaxError("Cannot use flags dgy in mode modifier ".concat($0)); + } // Allow duplicate flags within the mode modifier + + + flags = clipDuplicates(flags + $1); + return ''; + }); // Throw on unknown native or nonnative flags + + var _iterator = _createForOfIteratorHelper(flags), + _step; + + try { + for (_iterator.s(); !(_step = _iterator.n()).done;) { + var flag = _step.value; + + if (!registeredFlags[flag]) { + throw new SyntaxError("Unknown regex flag ".concat(flag)); + } + } + } catch (err) { + _iterator.e(err); + } finally { + _iterator.f(); + } + + return { + pattern: pattern, + flags: flags + }; +} +/** + * Prepares an options object from the given value. + * + * @private + * @param {String|Object} value Value to convert to an options object. + * @returns {Object} Options object. + */ + + +function prepareOptions(value) { + var options = {}; + + if (isType(value, 'String')) { + (0, _forEach["default"])(XRegExp).call(XRegExp, value, /[^\s,]+/, function (match) { + options[match] = true; + }); + return options; + } + + return value; +} +/** + * Registers a flag so it doesn't throw an 'unknown flag' error. + * + * @private + * @param {String} flag Single-character flag to register. + */ + + +function registerFlag(flag) { + if (!/^[\w$]$/.test(flag)) { + throw new Error('Flag must be a single character A-Za-z0-9_$'); + } + + registeredFlags[flag] = true; +} +/** + * Runs built-in and custom regex syntax tokens in reverse insertion order at the specified + * position, until a match is found. + * + * @private + * @param {String} pattern Original pattern from which an XRegExp object is being built. + * @param {String} flags Flags being used to construct the regex. + * @param {Number} pos Position to search for tokens within `pattern`. + * @param {Number} scope Regex scope to apply: 'default' or 'class'. + * @param {Object} context Context object to use for token handler functions. + * @returns {Object} Object with properties `matchLength`, `output`, and `reparse`; or `null`. + */ + + +function runTokens(pattern, flags, pos, scope, context) { + var i = tokens.length; + var leadChar = pattern[pos]; + var result = null; + var match; + var t; // Run in reverse insertion order + + while (i--) { + t = tokens[i]; + + if (t.leadChar && t.leadChar !== leadChar || t.scope !== scope && t.scope !== 'all' || t.flag && !((0, _indexOf["default"])(flags).call(flags, t.flag) !== -1)) { + continue; + } + + match = XRegExp.exec(pattern, t.regex, pos, 'sticky'); + + if (match) { + result = { + matchLength: match[0].length, + output: t.handler.call(context, match, scope, flags), + reparse: t.reparse + }; // Finished with token tests + + break; + } + } + + return result; +} +/** + * Enables or disables implicit astral mode opt-in. When enabled, flag A is automatically added to + * all new regexes created by XRegExp. This causes an error to be thrown when creating regexes if + * the Unicode Base addon is not available, since flag A is registered by that addon. + * + * @private + * @param {Boolean} on `true` to enable; `false` to disable. + */ + + +function setAstral(on) { + features.astral = on; +} +/** + * Adds named capture groups to the `groups` property of match arrays. See here for details: + * https://github.com/tc39/proposal-regexp-named-groups + * + * @private + * @param {Boolean} on `true` to enable; `false` to disable. + */ + + +function setNamespacing(on) { + features.namespacing = on; +} // ==--------------------------== +// Constructor +// ==--------------------------== + +/** + * Creates an extended regular expression object for matching text with a pattern. Differs from a + * native regular expression in that additional syntax and flags are supported. The returned object + * is in fact a native `RegExp` and works with all native methods. + * + * @class XRegExp + * @constructor + * @param {String|RegExp} pattern Regex pattern string, or an existing regex object to copy. + * @param {String} [flags] Any combination of flags. + * Native flags: + * - `d` - indices for capturing groups (ES2021) + * - `g` - global + * - `i` - ignore case + * - `m` - multiline anchors + * - `u` - unicode (ES6) + * - `y` - sticky (Firefox 3+, ES6) + * Additional XRegExp flags: + * - `n` - named capture only + * - `s` - dot matches all (aka singleline) - works even when not natively supported + * - `x` - free-spacing and line comments (aka extended) + * - `A` - 21-bit Unicode properties (aka astral) - requires the Unicode Base addon + * Flags cannot be provided when constructing one `RegExp` from another. + * @returns {RegExp} Extended regular expression object. + * @example + * + * // With named capture and flag x + * XRegExp(`(?<year> [0-9]{4} ) -? # year + * (?<month> [0-9]{2} ) -? # month + * (?<day> [0-9]{2} ) # day`, 'x'); + * + * // Providing a regex object copies it. Native regexes are recompiled using native (not XRegExp) + * // syntax. Copies maintain extended data, are augmented with `XRegExp.prototype` properties, and + * // have fresh `lastIndex` properties (set to zero). + * XRegExp(/regex/); + */ + + +function XRegExp(pattern, flags) { + if (XRegExp.isRegExp(pattern)) { + if (flags !== undefined) { + throw new TypeError('Cannot supply flags when copying a RegExp'); + } + + return copyRegex(pattern); + } // Copy the argument behavior of `RegExp` + + + pattern = pattern === undefined ? '' : String(pattern); + flags = flags === undefined ? '' : String(flags); + + if (XRegExp.isInstalled('astral') && !((0, _indexOf["default"])(flags).call(flags, 'A') !== -1)) { + // This causes an error to be thrown if the Unicode Base addon is not available + flags += 'A'; + } + + if (!patternCache[pattern]) { + patternCache[pattern] = {}; + } + + if (!patternCache[pattern][flags]) { + var context = { + hasNamedCapture: false, + captureNames: [] + }; + var scope = defaultScope; + var output = ''; + var pos = 0; + var result; // Check for flag-related errors, and strip/apply flags in a leading mode modifier + + var applied = prepareFlags(pattern, flags); + var appliedPattern = applied.pattern; + var appliedFlags = (0, _flags["default"])(applied); // Use XRegExp's tokens to translate the pattern to a native regex pattern. + // `appliedPattern.length` may change on each iteration if tokens use `reparse` + + while (pos < appliedPattern.length) { + do { + // Check for custom tokens at the current position + result = runTokens(appliedPattern, appliedFlags, pos, scope, context); // If the matched token used the `reparse` option, splice its output into the + // pattern before running tokens again at the same position + + if (result && result.reparse) { + appliedPattern = (0, _slice["default"])(appliedPattern).call(appliedPattern, 0, pos) + result.output + (0, _slice["default"])(appliedPattern).call(appliedPattern, pos + result.matchLength); + } + } while (result && result.reparse); + + if (result) { + output += result.output; + pos += result.matchLength || 1; + } else { + // Get the native token at the current position + var _XRegExp$exec = XRegExp.exec(appliedPattern, nativeTokens[scope], pos, 'sticky'), + _XRegExp$exec2 = (0, _slicedToArray2["default"])(_XRegExp$exec, 1), + token = _XRegExp$exec2[0]; + + output += token; + pos += token.length; + + if (token === '[' && scope === defaultScope) { + scope = classScope; + } else if (token === ']' && scope === classScope) { + scope = defaultScope; + } + } + } + + patternCache[pattern][flags] = { + // Use basic cleanup to collapse repeated empty groups like `(?:)(?:)` to `(?:)`. Empty + // groups are sometimes inserted during regex transpilation in order to keep tokens + // separated. However, more than one empty group in a row is never needed. + pattern: output.replace(/(?:\(\?:\))+/g, '(?:)'), + // Strip all but native flags + flags: appliedFlags.replace(nonnativeFlags, ''), + // `context.captureNames` has an item for each capturing group, even if unnamed + captures: context.hasNamedCapture ? context.captureNames : null + }; + } + + var generated = patternCache[pattern][flags]; + return augment(new RegExp(generated.pattern, (0, _flags["default"])(generated)), generated.captures, pattern, flags); +} // Add `RegExp.prototype` to the prototype chain + + +XRegExp.prototype = /(?:)/; // ==--------------------------== +// Public properties +// ==--------------------------== + +/** + * The XRegExp version number as a string containing three dot-separated parts. For example, + * '2.0.0-beta-3'. + * + * @static + * @memberOf XRegExp + * @type String + */ + +XRegExp.version = '5.1.1'; // ==--------------------------== +// Public methods +// ==--------------------------== +// Intentionally undocumented; used in tests and addons + +XRegExp._clipDuplicates = clipDuplicates; +XRegExp._hasNativeFlag = hasNativeFlag; +XRegExp._dec = dec; +XRegExp._hex = hex; +XRegExp._pad4 = pad4; +/** + * Extends XRegExp syntax and allows custom flags. This is used internally and can be used to + * create XRegExp addons. If more than one token can match the same string, the last added wins. + * + * @memberOf XRegExp + * @param {RegExp} regex Regex object that matches the new token. + * @param {Function} handler Function that returns a new pattern string (using native regex syntax) + * to replace the matched token within all future XRegExp regexes. Has access to persistent + * properties of the regex being built, through `this`. Invoked with three arguments: + * - The match array, with named backreference properties. + * - The regex scope where the match was found: 'default' or 'class'. + * - The flags used by the regex, including any flags in a leading mode modifier. + * The handler function becomes part of the XRegExp construction process, so be careful not to + * construct XRegExps within the function or you will trigger infinite recursion. + * @param {Object} [options] Options object with optional properties: + * - `scope` {String} Scope where the token applies: 'default', 'class', or 'all'. + * - `flag` {String} Single-character flag that triggers the token. This also registers the + * flag, which prevents XRegExp from throwing an 'unknown flag' error when the flag is used. + * - `optionalFlags` {String} Any custom flags checked for within the token `handler` that are + * not required to trigger the token. This registers the flags, to prevent XRegExp from + * throwing an 'unknown flag' error when any of the flags are used. + * - `reparse` {Boolean} Whether the `handler` function's output should not be treated as + * final, and instead be reparseable by other tokens (including the current token). Allows + * token chaining or deferring. + * - `leadChar` {String} Single character that occurs at the beginning of any successful match + * of the token (not always applicable). This doesn't change the behavior of the token unless + * you provide an erroneous value. However, providing it can increase the token's performance + * since the token can be skipped at any positions where this character doesn't appear. + * @example + * + * // Basic usage: Add \a for the ALERT control code + * XRegExp.addToken( + * /\\a/, + * () => '\\x07', + * {scope: 'all'} + * ); + * XRegExp('\\a[\\a-\\n]+').test('\x07\n\x07'); // -> true + * + * // Add the U (ungreedy) flag from PCRE and RE2, which reverses greedy and lazy quantifiers. + * // Since `scope` is not specified, it uses 'default' (i.e., transformations apply outside of + * // character classes only) + * XRegExp.addToken( + * /([?*+]|{\d+(?:,\d*)?})(\??)/, + * (match) => `${match[1]}${match[2] ? '' : '?'}`, + * {flag: 'U'} + * ); + * XRegExp('a+', 'U').exec('aaa')[0]; // -> 'a' + * XRegExp('a+?', 'U').exec('aaa')[0]; // -> 'aaa' + */ + +XRegExp.addToken = function (regex, handler, options) { + options = options || {}; + var _options = options, + optionalFlags = _options.optionalFlags; + + if (options.flag) { + registerFlag(options.flag); + } + + if (optionalFlags) { + optionalFlags = optionalFlags.split(''); + + var _iterator2 = _createForOfIteratorHelper(optionalFlags), + _step2; + + try { + for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) { + var flag = _step2.value; + registerFlag(flag); + } + } catch (err) { + _iterator2.e(err); + } finally { + _iterator2.f(); + } + } // Add to the private list of syntax tokens + + + tokens.push({ + regex: copyRegex(regex, { + addG: true, + addY: hasNativeY, + isInternalOnly: true + }), + handler: handler, + scope: options.scope || defaultScope, + flag: options.flag, + reparse: options.reparse, + leadChar: options.leadChar + }); // Reset the pattern cache used by the `XRegExp` constructor, since the same pattern and flags + // might now produce different results + + XRegExp.cache.flush('patterns'); +}; +/** + * Caches and returns the result of calling `XRegExp(pattern, flags)`. On any subsequent call with + * the same pattern and flag combination, the cached copy of the regex is returned. + * + * @memberOf XRegExp + * @param {String} pattern Regex pattern string. + * @param {String} [flags] Any combination of XRegExp flags. + * @returns {RegExp} Cached XRegExp object. + * @example + * + * let match; + * while (match = XRegExp.cache('.', 'gs').exec('abc')) { + * // The regex is compiled once only + * } + */ + + +XRegExp.cache = function (pattern, flags) { + if (!regexCache[pattern]) { + regexCache[pattern] = {}; + } + + return regexCache[pattern][flags] || (regexCache[pattern][flags] = XRegExp(pattern, flags)); +}; // Intentionally undocumented; used in tests + + +XRegExp.cache.flush = function (cacheName) { + if (cacheName === 'patterns') { + // Flush the pattern cache used by the `XRegExp` constructor + patternCache = {}; + } else { + // Flush the regex cache populated by `XRegExp.cache` + regexCache = {}; + } +}; +/** + * Escapes any regular expression metacharacters, for use when matching literal strings. The result + * can safely be used at any position within a regex that uses any flags. + * + * @memberOf XRegExp + * @param {String} str String to escape. + * @returns {string} String with regex metacharacters escaped. + * @example + * + * XRegExp.escape('Escaped? <.>'); + * // -> 'Escaped\?\u0020<\.>' + */ +// Following are the contexts where each metacharacter needs to be escaped because it would +// otherwise have a special meaning, change the meaning of surrounding characters, or cause an +// error. Context 'default' means outside character classes only. +// - `\` - context: all +// - `[()*+?.$|` - context: default +// - `]` - context: default with flag u or if forming the end of a character class +// - `{}` - context: default with flag u or if part of a valid/complete quantifier pattern +// - `,` - context: default if in a position that causes an unescaped `{` to turn into a quantifier. +// Ex: `/^a{1\,2}$/` matches `'a{1,2}'`, but `/^a{1,2}$/` matches `'a'` or `'aa'` +// - `#` and <whitespace> - context: default with flag x +// - `^` - context: default, and context: class if it's the first character in the class +// - `-` - context: class if part of a valid character class range + + +XRegExp.escape = function (str) { + return String(nullThrows(str)). // Escape most special chars with a backslash + replace(/[\\\[\]{}()*+?.^$|]/g, '\\$&'). // Convert to \uNNNN for special chars that can't be escaped when used with ES6 flag `u` + replace(/[\s#\-,]/g, function (match) { + return "\\u".concat(pad4(hex(match.charCodeAt(0)))); + }); +}; +/** + * Executes a regex search in a specified string. Returns a match array or `null`. If the provided + * regex uses named capture, named capture properties are included on the match array's `groups` + * property. Optional `pos` and `sticky` arguments specify the search start position, and whether + * the match must start at the specified position only. The `lastIndex` property of the provided + * regex is not used, but is updated for compatibility. Also fixes browser bugs compared to the + * native `RegExp.prototype.exec` and can be used reliably cross-browser. + * + * @memberOf XRegExp + * @param {String} str String to search. + * @param {RegExp} regex Regex to search with. + * @param {Number} [pos=0] Zero-based index at which to start the search. + * @param {Boolean|String} [sticky=false] Whether the match must start at the specified position + * only. The string `'sticky'` is accepted as an alternative to `true`. + * @returns {Array} Match array with named capture properties on the `groups` object, or `null`. If + * the `namespacing` feature is off, named capture properties are directly on the match array. + * @example + * + * // Basic use, with named capturing group + * let match = XRegExp.exec('U+2620', XRegExp('U\\+(?<hex>[0-9A-F]{4})')); + * match.groups.hex; // -> '2620' + * + * // With pos and sticky, in a loop + * let pos = 3, result = [], match; + * while (match = XRegExp.exec('<1><2><3><4>5<6>', /<(\d)>/, pos, 'sticky')) { + * result.push(match[1]); + * pos = match.index + match[0].length; + * } + * // result -> ['2', '3', '4'] + */ + + +XRegExp.exec = function (str, regex, pos, sticky) { + var cacheKey = 'g'; + var addY = false; + var fakeY = false; + var match; + addY = hasNativeY && !!(sticky || regex.sticky && sticky !== false); + + if (addY) { + cacheKey += 'y'; + } else if (sticky) { + // Simulate sticky matching by appending an empty capture to the original regex. The + // resulting regex will succeed no matter what at the current index (set with `lastIndex`), + // and will not search the rest of the subject string. We'll know that the original regex + // has failed if that last capture is `''` rather than `undefined` (i.e., if that last + // capture participated in the match). + fakeY = true; + cacheKey += 'FakeY'; + } + + regex[REGEX_DATA] = regex[REGEX_DATA] || {}; // Shares cached copies with `XRegExp.match`/`replace` + + var r2 = regex[REGEX_DATA][cacheKey] || (regex[REGEX_DATA][cacheKey] = copyRegex(regex, { + addG: true, + addY: addY, + source: fakeY ? "".concat(regex.source, "|()") : undefined, + removeY: sticky === false, + isInternalOnly: true + })); + pos = pos || 0; + r2.lastIndex = pos; // Fixed `exec` required for `lastIndex` fix, named backreferences, etc. + + match = fixed.exec.call(r2, str); // Get rid of the capture added by the pseudo-sticky matcher if needed. An empty string means + // the original regexp failed (see above). + + if (fakeY && match && match.pop() === '') { + match = null; + } + + if (regex.global) { + regex.lastIndex = match ? r2.lastIndex : 0; + } + + return match; +}; +/** + * Executes a provided function once per regex match. Searches always start at the beginning of the + * string and continue until the end, regardless of the state of the regex's `global` property and + * initial `lastIndex`. + * + * @memberOf XRegExp + * @param {String} str String to search. + * @param {RegExp} regex Regex to search with. + * @param {Function} callback Function to execute for each match. Invoked with four arguments: + * - The match array, with named backreference properties. + * - The zero-based match index. + * - The string being traversed. + * - The regex object being used to traverse the string. + * @example + * + * // Extracts every other digit from a string + * const evens = []; + * XRegExp.forEach('1a2345', /\d/, (match, i) => { + * if (i % 2) evens.push(+match[0]); + * }); + * // evens -> [2, 4] + */ + + +XRegExp.forEach = function (str, regex, callback) { + var pos = 0; + var i = -1; + var match; + + while (match = XRegExp.exec(str, regex, pos)) { + // Because `regex` is provided to `callback`, the function could use the deprecated/ + // nonstandard `RegExp.prototype.compile` to mutate the regex. However, since `XRegExp.exec` + // doesn't use `lastIndex` to set the search position, this can't lead to an infinite loop, + // at least. Actually, because of the way `XRegExp.exec` caches globalized versions of + // regexes, mutating the regex will not have any effect on the iteration or matched strings, + // which is a nice side effect that brings extra safety. + callback(match, ++i, str, regex); + pos = match.index + (match[0].length || 1); + } +}; +/** + * Copies a regex object and adds flag `g`. The copy maintains extended data, is augmented with + * `XRegExp.prototype` properties, and has a fresh `lastIndex` property (set to zero). Native + * regexes are not recompiled using XRegExp syntax. + * + * @memberOf XRegExp + * @param {RegExp} regex Regex to globalize. + * @returns {RegExp} Copy of the provided regex with flag `g` added. + * @example + * + * const globalCopy = XRegExp.globalize(/regex/); + * globalCopy.global; // -> true + */ + + +XRegExp.globalize = function (regex) { + return copyRegex(regex, { + addG: true + }); +}; +/** + * Installs optional features according to the specified options. Can be undone using + * `XRegExp.uninstall`. + * + * @memberOf XRegExp + * @param {Object|String} options Options object or string. + * @example + * + * // With an options object + * XRegExp.install({ + * // Enables support for astral code points in Unicode addons (implicitly sets flag A) + * astral: true, + * + * // Adds named capture groups to the `groups` property of matches + * namespacing: true + * }); + * + * // With an options string + * XRegExp.install('astral namespacing'); + */ + + +XRegExp.install = function (options) { + options = prepareOptions(options); + + if (!features.astral && options.astral) { + setAstral(true); + } + + if (!features.namespacing && options.namespacing) { + setNamespacing(true); + } +}; +/** + * Checks whether an individual optional feature is installed. + * + * @memberOf XRegExp + * @param {String} feature Name of the feature to check. One of: + * - `astral` + * - `namespacing` + * @returns {boolean} Whether the feature is installed. + * @example + * + * XRegExp.isInstalled('astral'); + */ + + +XRegExp.isInstalled = function (feature) { + return !!features[feature]; +}; +/** + * Returns `true` if an object is a regex; `false` if it isn't. This works correctly for regexes + * created in another frame, when `instanceof` and `constructor` checks would fail. + * + * @memberOf XRegExp + * @param {*} value Object to check. + * @returns {boolean} Whether the object is a `RegExp` object. + * @example + * + * XRegExp.isRegExp('string'); // -> false + * XRegExp.isRegExp(/regex/i); // -> true + * XRegExp.isRegExp(RegExp('^', 'm')); // -> true + * XRegExp.isRegExp(XRegExp('(?s).')); // -> true + */ + + +XRegExp.isRegExp = function (value) { + return Object.prototype.toString.call(value) === '[object RegExp]'; +}; // Same as `isType(value, 'RegExp')`, but avoiding that function call here for perf since +// `isRegExp` is used heavily by internals including regex construction + +/** + * Returns the first matched string, or in global mode, an array containing all matched strings. + * This is essentially a more convenient re-implementation of `String.prototype.match` that gives + * the result types you actually want (string instead of `exec`-style array in match-first mode, + * and an empty array instead of `null` when no matches are found in match-all mode). It also lets + * you override flag g and ignore `lastIndex`, and fixes browser bugs. + * + * @memberOf XRegExp + * @param {String} str String to search. + * @param {RegExp} regex Regex to search with. + * @param {String} [scope='one'] Use 'one' to return the first match as a string. Use 'all' to + * return an array of all matched strings. If not explicitly specified and `regex` uses flag g, + * `scope` is 'all'. + * @returns {String|Array} In match-first mode: First match as a string, or `null`. In match-all + * mode: Array of all matched strings, or an empty array. + * @example + * + * // Match first + * XRegExp.match('abc', /\w/); // -> 'a' + * XRegExp.match('abc', /\w/g, 'one'); // -> 'a' + * XRegExp.match('abc', /x/g, 'one'); // -> null + * + * // Match all + * XRegExp.match('abc', /\w/g); // -> ['a', 'b', 'c'] + * XRegExp.match('abc', /\w/, 'all'); // -> ['a', 'b', 'c'] + * XRegExp.match('abc', /x/, 'all'); // -> [] + */ + + +XRegExp.match = function (str, regex, scope) { + var global = regex.global && scope !== 'one' || scope === 'all'; + var cacheKey = (global ? 'g' : '') + (regex.sticky ? 'y' : '') || 'noGY'; + regex[REGEX_DATA] = regex[REGEX_DATA] || {}; // Shares cached copies with `XRegExp.exec`/`replace` + + var r2 = regex[REGEX_DATA][cacheKey] || (regex[REGEX_DATA][cacheKey] = copyRegex(regex, { + addG: !!global, + removeG: scope === 'one', + isInternalOnly: true + })); + var result = String(nullThrows(str)).match(r2); + + if (regex.global) { + regex.lastIndex = scope === 'one' && result ? // Can't use `r2.lastIndex` since `r2` is nonglobal in this case + result.index + result[0].length : 0; + } + + return global ? result || [] : result && result[0]; +}; +/** + * Retrieves the matches from searching a string using a chain of regexes that successively search + * within previous matches. The provided `chain` array can contain regexes and or objects with + * `regex` and `backref` properties. When a backreference is specified, the named or numbered + * backreference is passed forward to the next regex or returned. + * + * @memberOf XRegExp + * @param {String} str String to search. + * @param {Array} chain Regexes that each search for matches within preceding results. + * @returns {Array} Matches by the last regex in the chain, or an empty array. + * @example + * + * // Basic usage; matches numbers within <b> tags + * XRegExp.matchChain('1 <b>2</b> 3 <b>4 a 56</b>', [ + * XRegExp('(?is)<b>.*?</b>'), + * /\d+/ + * ]); + * // -> ['2', '4', '56'] + * + * // Passing forward and returning specific backreferences + * const html = `<a href="http://xregexp.com/api/">XRegExp</a> + * <a href="http://www.google.com/">Google</a>`; + * XRegExp.matchChain(html, [ + * {regex: /<a href="([^"]+)">/i, backref: 1}, + * {regex: XRegExp('(?i)^https?://(?<domain>[^/?#]+)'), backref: 'domain'} + * ]); + * // -> ['xregexp.com', 'www.google.com'] + */ + + +XRegExp.matchChain = function (str, chain) { + return function recurseChain(values, level) { + var item = chain[level].regex ? chain[level] : { + regex: chain[level] + }; + var matches = []; + + function addMatch(match) { + if (item.backref) { + var ERR_UNDEFINED_GROUP = "Backreference to undefined group: ".concat(item.backref); + var isNamedBackref = isNaN(item.backref); + + if (isNamedBackref && XRegExp.isInstalled('namespacing')) { + // `groups` has `null` as prototype, so using `in` instead of `hasOwnProperty` + if (!(match.groups && item.backref in match.groups)) { + throw new ReferenceError(ERR_UNDEFINED_GROUP); + } + } else if (!match.hasOwnProperty(item.backref)) { + throw new ReferenceError(ERR_UNDEFINED_GROUP); + } + + var backrefValue = isNamedBackref && XRegExp.isInstalled('namespacing') ? match.groups[item.backref] : match[item.backref]; + matches.push(backrefValue || ''); + } else { + matches.push(match[0]); + } + } + + var _iterator3 = _createForOfIteratorHelper(values), + _step3; + + try { + for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) { + var value = _step3.value; + (0, _forEach["default"])(XRegExp).call(XRegExp, value, item.regex, addMatch); + } + } catch (err) { + _iterator3.e(err); + } finally { + _iterator3.f(); + } + + return level === chain.length - 1 || !matches.length ? matches : recurseChain(matches, level + 1); + }([str], 0); +}; +/** + * Returns a new string with one or all matches of a pattern replaced. The pattern can be a string + * or regex, and the replacement can be a string or a function to be called for each match. To + * perform a global search and replace, use the optional `scope` argument or include flag g if using + * a regex. Replacement strings can use `$<n>` or `${n}` for named and numbered backreferences. + * Replacement functions can use named backreferences via the last argument. Also fixes browser bugs + * compared to the native `String.prototype.replace` and can be used reliably cross-browser. + * + * @memberOf XRegExp + * @param {String} str String to search. + * @param {RegExp|String} search Search pattern to be replaced. + * @param {String|Function} replacement Replacement string or a function invoked to create it. + * Replacement strings can include special replacement syntax: + * - $$ - Inserts a literal $ character. + * - $&, $0 - Inserts the matched substring. + * - $` - Inserts the string that precedes the matched substring (left context). + * - $' - Inserts the string that follows the matched substring (right context). + * - $n, $nn - Where n/nn are digits referencing an existing capturing group, inserts + * backreference n/nn. + * - $<n>, ${n} - Where n is a name or any number of digits that reference an existing capturing + * group, inserts backreference n. + * Replacement functions are invoked with three or more arguments: + * - args[0] - The matched substring (corresponds to `$&` above). If the `namespacing` feature + * is off, named backreferences are accessible as properties of this argument. + * - args[1..n] - One argument for each backreference (corresponding to `$1`, `$2`, etc. above). + * If the regex has no capturing groups, no arguments appear in this position. + * - args[n+1] - The zero-based index of the match within the entire search string. + * - args[n+2] - The total string being searched. + * - args[n+3] - If the the search pattern is a regex with named capturing groups, the last + * argument is the groups object. Its keys are the backreference names and its values are the + * backreference values. If the `namespacing` feature is off, this argument is not present. + * @param {String} [scope] Use 'one' to replace the first match only, or 'all'. Defaults to 'one'. + * Defaults to 'all' if using a regex with flag g. + * @returns {String} New string with one or all matches replaced. + * @example + * + * // Regex search, using named backreferences in replacement string + * const name = XRegExp('(?<first>\\w+) (?<last>\\w+)'); + * XRegExp.replace('John Smith', name, '$<last>, $<first>'); + * // -> 'Smith, John' + * + * // Regex search, using named backreferences in replacement function + * XRegExp.replace('John Smith', name, (...args) => { + * const groups = args[args.length - 1]; + * return `${groups.last}, ${groups.first}`; + * }); + * // -> 'Smith, John' + * + * // String search, with replace-all + * XRegExp.replace('RegExp builds RegExps', 'RegExp', 'XRegExp', 'all'); + * // -> 'XRegExp builds XRegExps' + */ + + +XRegExp.replace = function (str, search, replacement, scope) { + var isRegex = XRegExp.isRegExp(search); + var global = search.global && scope !== 'one' || scope === 'all'; + var cacheKey = (global ? 'g' : '') + (search.sticky ? 'y' : '') || 'noGY'; + var s2 = search; + + if (isRegex) { + search[REGEX_DATA] = search[REGEX_DATA] || {}; // Shares cached copies with `XRegExp.exec`/`match`. Since a copy is used, `search`'s + // `lastIndex` isn't updated *during* replacement iterations + + s2 = search[REGEX_DATA][cacheKey] || (search[REGEX_DATA][cacheKey] = copyRegex(search, { + addG: !!global, + removeG: scope === 'one', + isInternalOnly: true + })); + } else if (global) { + s2 = new RegExp(XRegExp.escape(String(search)), 'g'); + } // Fixed `replace` required for named backreferences, etc. + + + var result = fixed.replace.call(nullThrows(str), s2, replacement); + + if (isRegex && search.global) { + // Fixes IE, Safari bug (last tested IE 9, Safari 5.1) + search.lastIndex = 0; + } + + return result; +}; +/** + * Performs batch processing of string replacements. Used like `XRegExp.replace`, but accepts an + * array of replacement details. Later replacements operate on the output of earlier replacements. + * Replacement details are accepted as an array with a regex or string to search for, the + * replacement string or function, and an optional scope of 'one' or 'all'. Uses the XRegExp + * replacement text syntax, which supports named backreference properties via `$<name>` or + * `${name}`. + * + * @memberOf XRegExp + * @param {String} str String to search. + * @param {Array} replacements Array of replacement detail arrays. + * @returns {String} New string with all replacements. + * @example + * + * str = XRegExp.replaceEach(str, [ + * [XRegExp('(?<name>a)'), 'z$<name>'], + * [/b/gi, 'y'], + * [/c/g, 'x', 'one'], // scope 'one' overrides /g + * [/d/, 'w', 'all'], // scope 'all' overrides lack of /g + * ['e', 'v', 'all'], // scope 'all' allows replace-all for strings + * [/f/g, (match) => match.toUpperCase()] + * ]); + */ + + +XRegExp.replaceEach = function (str, replacements) { + var _iterator4 = _createForOfIteratorHelper(replacements), + _step4; + + try { + for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) { + var r = _step4.value; + str = XRegExp.replace(str, r[0], r[1], r[2]); + } + } catch (err) { + _iterator4.e(err); + } finally { + _iterator4.f(); + } + + return str; +}; +/** + * Splits a string into an array of strings using a regex or string separator. Matches of the + * separator are not included in the result array. However, if `separator` is a regex that contains + * capturing groups, backreferences are spliced into the result each time `separator` is matched. + * Fixes browser bugs compared to the native `String.prototype.split` and can be used reliably + * cross-browser. + * + * @memberOf XRegExp + * @param {String} str String to split. + * @param {RegExp|String} separator Regex or string to use for separating the string. + * @param {Number} [limit] Maximum number of items to include in the result array. + * @returns {Array} Array of substrings. + * @example + * + * // Basic use + * XRegExp.split('a b c', ' '); + * // -> ['a', 'b', 'c'] + * + * // With limit + * XRegExp.split('a b c', ' ', 2); + * // -> ['a', 'b'] + * + * // Backreferences in result array + * XRegExp.split('..word1..', /([a-z]+)(\d+)/i); + * // -> ['..', 'word', '1', '..'] + */ + + +XRegExp.split = function (str, separator, limit) { + return fixed.split.call(nullThrows(str), separator, limit); +}; +/** + * Executes a regex search in a specified string. Returns `true` or `false`. Optional `pos` and + * `sticky` arguments specify the search start position, and whether the match must start at the + * specified position only. The `lastIndex` property of the provided regex is not used, but is + * updated for compatibility. Also fixes browser bugs compared to the native + * `RegExp.prototype.test` and can be used reliably cross-browser. + * + * @memberOf XRegExp + * @param {String} str String to search. + * @param {RegExp} regex Regex to search with. + * @param {Number} [pos=0] Zero-based index at which to start the search. + * @param {Boolean|String} [sticky=false] Whether the match must start at the specified position + * only. The string `'sticky'` is accepted as an alternative to `true`. + * @returns {boolean} Whether the regex matched the provided value. + * @example + * + * // Basic use + * XRegExp.test('abc', /c/); // -> true + * + * // With pos and sticky + * XRegExp.test('abc', /c/, 0, 'sticky'); // -> false + * XRegExp.test('abc', /c/, 2, 'sticky'); // -> true + */ +// Do this the easy way :-) + + +XRegExp.test = function (str, regex, pos, sticky) { + return !!XRegExp.exec(str, regex, pos, sticky); +}; +/** + * Uninstalls optional features according to the specified options. Used to undo the actions of + * `XRegExp.install`. + * + * @memberOf XRegExp + * @param {Object|String} options Options object or string. + * @example + * + * // With an options object + * XRegExp.uninstall({ + * // Disables support for astral code points in Unicode addons (unless enabled per regex) + * astral: true, + * + * // Don't add named capture groups to the `groups` property of matches + * namespacing: true + * }); + * + * // With an options string + * XRegExp.uninstall('astral namespacing'); + */ + + +XRegExp.uninstall = function (options) { + options = prepareOptions(options); + + if (features.astral && options.astral) { + setAstral(false); + } + + if (features.namespacing && options.namespacing) { + setNamespacing(false); + } +}; +/** + * Returns an XRegExp object that is the union of the given patterns. Patterns can be provided as + * regex objects or strings. Metacharacters are escaped in patterns provided as strings. + * Backreferences in provided regex objects are automatically renumbered to work correctly within + * the larger combined pattern. Native flags used by provided regexes are ignored in favor of the + * `flags` argument. + * + * @memberOf XRegExp + * @param {Array} patterns Regexes and strings to combine. + * @param {String} [flags] Any combination of XRegExp flags. + * @param {Object} [options] Options object with optional properties: + * - `conjunction` {String} Type of conjunction to use: 'or' (default) or 'none'. + * @returns {RegExp} Union of the provided regexes and strings. + * @example + * + * XRegExp.union(['a+b*c', /(dogs)\1/, /(cats)\1/], 'i'); + * // -> /a\+b\*c|(dogs)\1|(cats)\2/i + * + * XRegExp.union([/man/, /bear/, /pig/], 'i', {conjunction: 'none'}); + * // -> /manbearpig/i + */ + + +XRegExp.union = function (patterns, flags, options) { + options = options || {}; + var conjunction = options.conjunction || 'or'; + var numCaptures = 0; + var numPriorCaptures; + var captureNames; + + function rewrite(match, paren, backref) { + var name = captureNames[numCaptures - numPriorCaptures]; // Capturing group + + if (paren) { + ++numCaptures; // If the current capture has a name, preserve the name + + if (name) { + return "(?<".concat(name, ">"); + } // Backreference + + } else if (backref) { + // Rewrite the backreference + return "\\".concat(+backref + numPriorCaptures); + } + + return match; + } + + if (!(isType(patterns, 'Array') && patterns.length)) { + throw new TypeError('Must provide a nonempty array of patterns to merge'); + } + + var parts = /(\()(?!\?)|\\([1-9]\d*)|\\[\s\S]|\[(?:[^\\\]]|\\[\s\S])*\]/g; + var output = []; + + var _iterator5 = _createForOfIteratorHelper(patterns), + _step5; + + try { + for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) { + var pattern = _step5.value; + + if (XRegExp.isRegExp(pattern)) { + numPriorCaptures = numCaptures; + captureNames = pattern[REGEX_DATA] && pattern[REGEX_DATA].captureNames || []; // Rewrite backreferences. Passing to XRegExp dies on octals and ensures patterns are + // independently valid; helps keep this simple. Named captures are put back + + output.push(XRegExp(pattern.source).source.replace(parts, rewrite)); + } else { + output.push(XRegExp.escape(pattern)); + } + } + } catch (err) { + _iterator5.e(err); + } finally { + _iterator5.f(); + } + + var separator = conjunction === 'none' ? '' : '|'; + return XRegExp(output.join(separator), flags); +}; // ==--------------------------== +// Fixed/extended native methods +// ==--------------------------== + +/** + * Adds named capture support (with backreferences returned as `result.name`), and fixes browser + * bugs in the native `RegExp.prototype.exec`. Use via `XRegExp.exec`. + * + * @memberOf RegExp + * @param {String} str String to search. + * @returns {Array} Match array with named backreference properties, or `null`. + */ + + +fixed.exec = function (str) { + var origLastIndex = this.lastIndex; + var match = RegExp.prototype.exec.apply(this, arguments); + + if (match) { + // Fix browsers whose `exec` methods don't return `undefined` for nonparticipating capturing + // groups. This fixes IE 5.5-8, but not IE 9's quirks mode or emulation of older IEs. IE 9 + // in standards mode follows the spec. + if (!correctExecNpcg && match.length > 1 && (0, _indexOf["default"])(match).call(match, '') !== -1) { + var _context3; + + var r2 = copyRegex(this, { + removeG: true, + isInternalOnly: true + }); // Using `str.slice(match.index)` rather than `match[0]` in case lookahead allowed + // matching due to characters outside the match + + (0, _slice["default"])(_context3 = String(str)).call(_context3, match.index).replace(r2, function () { + var len = arguments.length; // Skip index 0 and the last 2 + + for (var i = 1; i < len - 2; ++i) { + if ((i < 0 || arguments.length <= i ? undefined : arguments[i]) === undefined) { + match[i] = undefined; + } + } + }); + } // Attach named capture properties + + + if (this[REGEX_DATA] && this[REGEX_DATA].captureNames) { + var groupsObject = match; + + if (XRegExp.isInstalled('namespacing')) { + // https://tc39.github.io/proposal-regexp-named-groups/#sec-regexpbuiltinexec + match.groups = (0, _create["default"])(null); + groupsObject = match.groups; + } // Skip index 0 + + + for (var i = 1; i < match.length; ++i) { + var name = this[REGEX_DATA].captureNames[i - 1]; + + if (name) { + groupsObject[name] = match[i]; + } + } // Preserve any existing `groups` obj that came from native ES2018 named capture + + } else if (!match.groups && XRegExp.isInstalled('namespacing')) { + match.groups = undefined; + } // Fix browsers that increment `lastIndex` after zero-length matches + + + if (this.global && !match[0].length && this.lastIndex > match.index) { + this.lastIndex = match.index; + } + } + + if (!this.global) { + // Fixes IE, Opera bug (last tested IE 9, Opera 11.6) + this.lastIndex = origLastIndex; + } + + return match; +}; +/** + * Fixes browser bugs in the native `RegExp.prototype.test`. + * + * @memberOf RegExp + * @param {String} str String to search. + * @returns {boolean} Whether the regex matched the provided value. + */ + + +fixed.test = function (str) { + // Do this the easy way :-) + return !!fixed.exec.call(this, str); +}; +/** + * Adds named capture support (with backreferences returned as `result.name`), and fixes browser + * bugs in the native `String.prototype.match`. + * + * @memberOf String + * @param {RegExp|*} regex Regex to search with. If not a regex object, it is passed to `RegExp`. + * @returns {Array} If `regex` uses flag g, an array of match strings or `null`. Without flag g, + * the result of calling `regex.exec(this)`. + */ + + +fixed.match = function (regex) { + if (!XRegExp.isRegExp(regex)) { + // Use the native `RegExp` rather than `XRegExp` + regex = new RegExp(regex); + } else if (regex.global) { + var result = String.prototype.match.apply(this, arguments); // Fixes IE bug + + regex.lastIndex = 0; + return result; + } + + return fixed.exec.call(regex, nullThrows(this)); +}; +/** + * Adds support for `${n}` (or `$<n>`) tokens for named and numbered backreferences in replacement + * text, and provides named backreferences to replacement functions as `arguments[0].name`. Also + * fixes browser bugs in replacement text syntax when performing a replacement using a nonregex + * search value, and the value of a replacement regex's `lastIndex` property during replacement + * iterations and upon completion. Note that this doesn't support SpiderMonkey's proprietary third + * (`flags`) argument. Use via `XRegExp.replace`. + * + * @memberOf String + * @param {RegExp|String} search Search pattern to be replaced. + * @param {String|Function} replacement Replacement string or a function invoked to create it. + * @returns {string} New string with one or all matches replaced. + */ + + +fixed.replace = function (search, replacement) { + var isRegex = XRegExp.isRegExp(search); + var origLastIndex; + var captureNames; + var result; + + if (isRegex) { + if (search[REGEX_DATA]) { + captureNames = search[REGEX_DATA].captureNames; + } // Only needed if `search` is nonglobal + + + origLastIndex = search.lastIndex; + } else { + search += ''; // Type-convert + } // Don't use `typeof`; some older browsers return 'function' for regex objects + + + if (isType(replacement, 'Function')) { + // Stringifying `this` fixes a bug in IE < 9 where the last argument in replacement + // functions isn't type-converted to a string + result = String(this).replace(search, function () { + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + if (captureNames) { + var groupsObject; + + if (XRegExp.isInstalled('namespacing')) { + // https://tc39.github.io/proposal-regexp-named-groups/#sec-regexpbuiltinexec + groupsObject = (0, _create["default"])(null); + args.push(groupsObject); + } else { + // Change the `args[0]` string primitive to a `String` object that can store + // properties. This really does need to use `String` as a constructor + args[0] = new String(args[0]); + groupsObject = args[0]; + } // Store named backreferences + + + for (var i = 0; i < captureNames.length; ++i) { + if (captureNames[i]) { + groupsObject[captureNames[i]] = args[i + 1]; + } + } + } // ES6 specs the context for replacement functions as `undefined` + + + return replacement.apply(void 0, args); + }); + } else { + // Ensure that the last value of `args` will be a string when given nonstring `this`, + // while still throwing on null or undefined context + result = String(nullThrows(this)).replace(search, function () { + for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { + args[_key2] = arguments[_key2]; + } + + return String(replacement).replace(replacementToken, replacer); + + function replacer($0, bracketed, angled, dollarToken) { + bracketed = bracketed || angled; // ES2018 added a new trailing `groups` arg that's passed to replacement functions + // when the search regex uses native named capture + + var numNonCaptureArgs = isType(args[args.length - 1], 'Object') ? 4 : 3; + var numCaptures = args.length - numNonCaptureArgs; // Handle named or numbered backreference with curly or angled braces: ${n}, $<n> + + if (bracketed) { + // Handle backreference to numbered capture, if `bracketed` is an integer. Use + // `0` for the entire match. Any number of leading zeros may be used. + if (/^\d+$/.test(bracketed)) { + // Type-convert and drop leading zeros + var _n = +bracketed; + + if (_n <= numCaptures) { + return args[_n] || ''; + } + } // Handle backreference to named capture. If the name does not refer to an + // existing capturing group, it's an error. Also handles the error for numbered + // backference that does not refer to an existing group. + // Using `indexOf` since having groups with the same name is already an error, + // otherwise would need `lastIndexOf`. + + + var n = captureNames ? (0, _indexOf["default"])(captureNames).call(captureNames, bracketed) : -1; + + if (n < 0) { + throw new SyntaxError("Backreference to undefined group ".concat($0)); + } + + return args[n + 1] || ''; + } // Handle `$`-prefixed variable + // Handle space/blank first because type conversion with `+` drops space padding + // and converts spaces and empty strings to `0` + + + if (dollarToken === '' || dollarToken === ' ') { + throw new SyntaxError("Invalid token ".concat($0)); + } + + if (dollarToken === '&' || +dollarToken === 0) { + // $&, $0 (not followed by 1-9), $00 + return args[0]; + } + + if (dollarToken === '$') { + // $$ + return '$'; + } + + if (dollarToken === '`') { + var _context4; + + // $` (left context) + return (0, _slice["default"])(_context4 = args[args.length - 1]).call(_context4, 0, args[args.length - 2]); + } + + if (dollarToken === "'") { + var _context5; + + // $' (right context) + return (0, _slice["default"])(_context5 = args[args.length - 1]).call(_context5, args[args.length - 2] + args[0].length); + } // Handle numbered backreference without braces + // Type-convert and drop leading zero + + + dollarToken = +dollarToken; // XRegExp behavior for `$n` and `$nn`: + // - Backrefs end after 1 or 2 digits. Use `${..}` or `$<..>` for more digits. + // - `$1` is an error if no capturing groups. + // - `$10` is an error if less than 10 capturing groups. Use `${1}0` or `$<1>0` + // instead. + // - `$01` is `$1` if at least one capturing group, else it's an error. + // - `$0` (not followed by 1-9) and `$00` are the entire match. + // Native behavior, for comparison: + // - Backrefs end after 1 or 2 digits. Cannot reference capturing group 100+. + // - `$1` is a literal `$1` if no capturing groups. + // - `$10` is `$1` followed by a literal `0` if less than 10 capturing groups. + // - `$01` is `$1` if at least one capturing group, else it's a literal `$01`. + // - `$0` is a literal `$0`. + + if (!isNaN(dollarToken)) { + if (dollarToken > numCaptures) { + throw new SyntaxError("Backreference to undefined group ".concat($0)); + } + + return args[dollarToken] || ''; + } // `$` followed by an unsupported char is an error, unlike native JS + + + throw new SyntaxError("Invalid token ".concat($0)); + } + }); + } + + if (isRegex) { + if (search.global) { + // Fixes IE, Safari bug (last tested IE 9, Safari 5.1) + search.lastIndex = 0; + } else { + // Fixes IE, Opera bug (last tested IE 9, Opera 11.6) + search.lastIndex = origLastIndex; + } + } + + return result; +}; +/** + * Fixes browser bugs in the native `String.prototype.split`. Use via `XRegExp.split`. + * + * @memberOf String + * @param {RegExp|String} separator Regex or string to use for separating the string. + * @param {Number} [limit] Maximum number of items to include in the result array. + * @returns {!Array} Array of substrings. + */ + + +fixed.split = function (separator, limit) { + if (!XRegExp.isRegExp(separator)) { + // Browsers handle nonregex split correctly, so use the faster native method + return String.prototype.split.apply(this, arguments); + } + + var str = String(this); + var output = []; + var origLastIndex = separator.lastIndex; + var lastLastIndex = 0; + var lastLength; // Values for `limit`, per the spec: + // If undefined: pow(2,32) - 1 + // If 0, Infinity, or NaN: 0 + // If positive number: limit = floor(limit); if (limit >= pow(2,32)) limit -= pow(2,32); + // If negative number: pow(2,32) - floor(abs(limit)) + // If other: Type-convert, then use the above rules + // This line fails in very strange ways for some values of `limit` in Opera 10.5-10.63, unless + // Opera Dragonfly is open (go figure). It works in at least Opera 9.5-10.1 and 11+ + + limit = (limit === undefined ? -1 : limit) >>> 0; + (0, _forEach["default"])(XRegExp).call(XRegExp, str, separator, function (match) { + // This condition is not the same as `if (match[0].length)` + if (match.index + match[0].length > lastLastIndex) { + output.push((0, _slice["default"])(str).call(str, lastLastIndex, match.index)); + + if (match.length > 1 && match.index < str.length) { + Array.prototype.push.apply(output, (0, _slice["default"])(match).call(match, 1)); + } + + lastLength = match[0].length; + lastLastIndex = match.index + lastLength; + } + }); + + if (lastLastIndex === str.length) { + if (!separator.test('') || lastLength) { + output.push(''); + } + } else { + output.push((0, _slice["default"])(str).call(str, lastLastIndex)); + } + + separator.lastIndex = origLastIndex; + return output.length > limit ? (0, _slice["default"])(output).call(output, 0, limit) : output; +}; // ==--------------------------== +// Built-in syntax/flag tokens +// ==--------------------------== + +/* + * Letter escapes that natively match literal characters: `\a`, `\A`, etc. These should be + * SyntaxErrors but are allowed in web reality. XRegExp makes them errors for cross-browser + * consistency and to reserve their syntax, but lets them be superseded by addons. + */ + + +XRegExp.addToken(/\\([ABCE-RTUVXYZaeg-mopqyz]|c(?![A-Za-z])|u(?![\dA-Fa-f]{4}|{[\dA-Fa-f]+})|x(?![\dA-Fa-f]{2}))/, function (match, scope) { + // \B is allowed in default scope only + if (match[1] === 'B' && scope === defaultScope) { + return match[0]; + } + + throw new SyntaxError("Invalid escape ".concat(match[0])); +}, { + scope: 'all', + leadChar: '\\' +}); +/* + * Unicode code point escape with curly braces: `\u{N..}`. `N..` is any one or more digit + * hexadecimal number from 0-10FFFF, and can include leading zeros. Requires the native ES6 `u` flag + * to support code points greater than U+FFFF. Avoids converting code points above U+FFFF to + * surrogate pairs (which could be done without flag `u`), since that could lead to broken behavior + * if you follow a `\u{N..}` token that references a code point above U+FFFF with a quantifier, or + * if you use the same in a character class. + */ + +XRegExp.addToken(/\\u{([\dA-Fa-f]+)}/, function (match, scope, flags) { + var code = dec(match[1]); + + if (code > 0x10FFFF) { + throw new SyntaxError("Invalid Unicode code point ".concat(match[0])); + } + + if (code <= 0xFFFF) { + // Converting to \uNNNN avoids needing to escape the literal character and keep it + // separate from preceding tokens + return "\\u".concat(pad4(hex(code))); + } // If `code` is between 0xFFFF and 0x10FFFF, require and defer to native handling + + + if (hasNativeU && (0, _indexOf["default"])(flags).call(flags, 'u') !== -1) { + return match[0]; + } + + throw new SyntaxError('Cannot use Unicode code point above \\u{FFFF} without flag u'); +}, { + scope: 'all', + leadChar: '\\' +}); +/* + * Comment pattern: `(?# )`. Inline comments are an alternative to the line comments allowed in + * free-spacing mode (flag x). + */ + +XRegExp.addToken(/\(\?#[^)]*\)/, getContextualTokenSeparator, { + leadChar: '(' +}); +/* + * Whitespace and line comments, in free-spacing mode (aka extended mode, flag x) only. + */ + +XRegExp.addToken(/\s+|#[^\n]*\n?/, getContextualTokenSeparator, { + flag: 'x' +}); +/* + * Dot, in dotAll mode (aka singleline mode, flag s) only. + */ + +if (!hasNativeS) { + XRegExp.addToken(/\./, function () { + return '[\\s\\S]'; + }, { + flag: 's', + leadChar: '.' + }); +} +/* + * Named backreference: `\k<name>`. Backreference names can use RegExpIdentifierName characters + * only. Also allows numbered backreferences as `\k<n>`. + */ + + +XRegExp.addToken(/\\k<([^>]+)>/, function (match) { + var _context6, _context7; + + // Groups with the same name is an error, else would need `lastIndexOf` + var index = isNaN(match[1]) ? (0, _indexOf["default"])(_context6 = this.captureNames).call(_context6, match[1]) + 1 : +match[1]; + var endIndex = match.index + match[0].length; + + if (!index || index > this.captureNames.length) { + throw new SyntaxError("Backreference to undefined group ".concat(match[0])); + } // Keep backreferences separate from subsequent literal numbers. This avoids e.g. + // inadvertedly changing `(?<n>)\k<n>1` to `()\11`. + + + return (0, _concat["default"])(_context7 = "\\".concat(index)).call(_context7, endIndex === match.input.length || isNaN(match.input[endIndex]) ? '' : '(?:)'); +}, { + leadChar: '\\' +}); +/* + * Numbered backreference or octal, plus any following digits: `\0`, `\11`, etc. Octals except `\0` + * not followed by 0-9 and backreferences to unopened capture groups throw an error. Other matches + * are returned unaltered. IE < 9 doesn't support backreferences above `\99` in regex syntax. + */ + +XRegExp.addToken(/\\(\d+)/, function (match, scope) { + if (!(scope === defaultScope && /^[1-9]/.test(match[1]) && +match[1] <= this.captureNames.length) && match[1] !== '0') { + throw new SyntaxError("Cannot use octal escape or backreference to undefined group ".concat(match[0])); + } + + return match[0]; +}, { + scope: 'all', + leadChar: '\\' +}); +/* + * Named capturing group; match the opening delimiter only: `(?<name>`. Capture names can use the + * RegExpIdentifierName characters only. Names can't be integers. Supports Python-style + * `(?P<name>` as an alternate syntax to avoid issues in some older versions of Opera which natively + * supported the Python-style syntax. Otherwise, XRegExp might treat numbered backreferences to + * Python-style named capture as octals. + */ + +XRegExp.addToken(/\(\?P?<((?:[\$A-Z_a-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDE80-\uDEA9\uDEB0\uDEB1\uDF00-\uDF1C\uDF27\uDF30-\uDF45\uDF70-\uDF81\uDFB0-\uDFC4\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDEB8\uDF00-\uDF1A\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2\uDFB0]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE70-\uDEBE\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE7F\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD837[\uDF00-\uDF1E]|\uD838[\uDD00-\uDD2C\uDD37-\uDD3D\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB]|\uD839[\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43\uDD4B]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF38\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A])(?:[\$0-9A-Z_a-z\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05EF-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u07FD\u0800-\u082D\u0840-\u085B\u0860-\u086A\u0870-\u0887\u0889-\u088E\u0898-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u09FC\u09FE\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9-\u0AFF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B55-\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3C-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C5D\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDD\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D00-\u0D0C\u0D0E-\u0D10\u0D12-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D81-\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u1715\u171F-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u180F-\u1819\u1820-\u1878\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1ABF-\u1ACE\u1B00-\u1B4C\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CD0-\u1CD2\u1CD4-\u1CFA\u1D00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA827\uA82C\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD27\uDD30-\uDD39\uDE80-\uDEA9\uDEAB\uDEAC\uDEB0\uDEB1\uDF00-\uDF1C\uDF27\uDF30-\uDF50\uDF70-\uDF85\uDFB0-\uDFC4\uDFE0-\uDFF6]|\uD804[\uDC00-\uDC46\uDC66-\uDC75\uDC7F-\uDCBA\uDCC2\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD44-\uDD47\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDC9-\uDDCC\uDDCE-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE3E\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3B-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC00-\uDC4A\uDC50-\uDC59\uDC5E-\uDC61\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB8\uDEC0-\uDEC9\uDF00-\uDF1A\uDF1D-\uDF2B\uDF30-\uDF39\uDF40-\uDF46]|\uD806[\uDC00-\uDC3A\uDCA0-\uDCE9\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD35\uDD37\uDD38\uDD3B-\uDD43\uDD50-\uDD59\uDDA0-\uDDA7\uDDAA-\uDDD7\uDDDA-\uDDE1\uDDE3\uDDE4\uDE00-\uDE3E\uDE47\uDE50-\uDE99\uDE9D\uDEB0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD47\uDD50-\uDD59\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD8E\uDD90\uDD91\uDD93-\uDD98\uDDA0-\uDDA9\uDEE0-\uDEF6\uDFB0]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDE70-\uDEBE\uDEC0-\uDEC9\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE7F\uDF00-\uDF4A\uDF4F-\uDF87\uDF8F-\uDF9F\uDFE0\uDFE1\uDFE3\uDFE4\uDFF0\uDFF1]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD833[\uDF00-\uDF2D\uDF30-\uDF46]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD837[\uDF00-\uDF1E]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A\uDD00-\uDD2C\uDD30-\uDD3D\uDD40-\uDD49\uDD4E\uDE90-\uDEAE\uDEC0-\uDEF9]|\uD839[\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4B\uDD50-\uDD59]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD83E[\uDFF0-\uDFF9]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF38\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A]|\uDB40[\uDD00-\uDDEF])*)>/, function (match) { + var _context8; + + if (!XRegExp.isInstalled('namespacing') && (match[1] === 'length' || match[1] === '__proto__')) { + throw new SyntaxError("Cannot use reserved word as capture name ".concat(match[0])); + } + + if ((0, _indexOf["default"])(_context8 = this.captureNames).call(_context8, match[1]) !== -1) { + throw new SyntaxError("Cannot use same name for multiple groups ".concat(match[0])); + } + + this.captureNames.push(match[1]); + this.hasNamedCapture = true; + return '('; +}, { + leadChar: '(' +}); +/* + * Capturing group; match the opening parenthesis only. Required for support of named capturing + * groups. Also adds named capture only mode (flag n). + */ + +XRegExp.addToken(/\((?!\?)/, function (match, scope, flags) { + if ((0, _indexOf["default"])(flags).call(flags, 'n') !== -1) { + return '(?:'; + } + + this.captureNames.push(null); + return '('; +}, { + optionalFlags: 'n', + leadChar: '(' +}); +var _default = XRegExp; +exports["default"] = _default; +module.exports = exports.default; +},{"@babel/runtime-corejs3/core-js-stable/array/from":5,"@babel/runtime-corejs3/core-js-stable/array/is-array":6,"@babel/runtime-corejs3/core-js-stable/instance/concat":7,"@babel/runtime-corejs3/core-js-stable/instance/flags":8,"@babel/runtime-corejs3/core-js-stable/instance/for-each":9,"@babel/runtime-corejs3/core-js-stable/instance/index-of":10,"@babel/runtime-corejs3/core-js-stable/instance/slice":11,"@babel/runtime-corejs3/core-js-stable/instance/sort":12,"@babel/runtime-corejs3/core-js-stable/object/create":13,"@babel/runtime-corejs3/core-js-stable/object/define-property":14,"@babel/runtime-corejs3/core-js-stable/parse-int":15,"@babel/runtime-corejs3/core-js-stable/symbol":16,"@babel/runtime-corejs3/core-js/get-iterator-method":19,"@babel/runtime-corejs3/helpers/interopRequireDefault":24,"@babel/runtime-corejs3/helpers/slicedToArray":27}],5:[function(require,module,exports){ +module.exports = require("core-js-pure/stable/array/from"); +},{"core-js-pure/stable/array/from":208}],6:[function(require,module,exports){ +module.exports = require("core-js-pure/stable/array/is-array"); +},{"core-js-pure/stable/array/is-array":209}],7:[function(require,module,exports){ +module.exports = require("core-js-pure/stable/instance/concat"); +},{"core-js-pure/stable/instance/concat":212}],8:[function(require,module,exports){ +module.exports = require("core-js-pure/stable/instance/flags"); +},{"core-js-pure/stable/instance/flags":213}],9:[function(require,module,exports){ +module.exports = require("core-js-pure/stable/instance/for-each"); +},{"core-js-pure/stable/instance/for-each":214}],10:[function(require,module,exports){ +module.exports = require("core-js-pure/stable/instance/index-of"); +},{"core-js-pure/stable/instance/index-of":215}],11:[function(require,module,exports){ +module.exports = require("core-js-pure/stable/instance/slice"); +},{"core-js-pure/stable/instance/slice":216}],12:[function(require,module,exports){ +module.exports = require("core-js-pure/stable/instance/sort"); +},{"core-js-pure/stable/instance/sort":217}],13:[function(require,module,exports){ +module.exports = require("core-js-pure/stable/object/create"); +},{"core-js-pure/stable/object/create":218}],14:[function(require,module,exports){ +module.exports = require("core-js-pure/stable/object/define-property"); +},{"core-js-pure/stable/object/define-property":219}],15:[function(require,module,exports){ +module.exports = require("core-js-pure/stable/parse-int"); +},{"core-js-pure/stable/parse-int":220}],16:[function(require,module,exports){ +module.exports = require("core-js-pure/stable/symbol"); +},{"core-js-pure/stable/symbol":221}],17:[function(require,module,exports){ +module.exports = require("core-js-pure/features/array/from"); +},{"core-js-pure/features/array/from":52}],18:[function(require,module,exports){ +module.exports = require("core-js-pure/features/array/is-array"); +},{"core-js-pure/features/array/is-array":53}],19:[function(require,module,exports){ +module.exports = require("core-js-pure/features/get-iterator-method"); +},{"core-js-pure/features/get-iterator-method":54}],20:[function(require,module,exports){ +module.exports = require("core-js-pure/features/instance/slice"); +},{"core-js-pure/features/instance/slice":55}],21:[function(require,module,exports){ +module.exports = require("core-js-pure/features/symbol"); +},{"core-js-pure/features/symbol":56}],22:[function(require,module,exports){ +function _arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) len = arr.length; + + for (var i = 0, arr2 = new Array(len); i < len; i++) { + arr2[i] = arr[i]; + } + + return arr2; +} + +module.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports["default"] = module.exports; +},{}],23:[function(require,module,exports){ +var _Array$isArray = require("@babel/runtime-corejs3/core-js/array/is-array"); + +function _arrayWithHoles(arr) { + if (_Array$isArray(arr)) return arr; +} + +module.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports["default"] = module.exports; +},{"@babel/runtime-corejs3/core-js/array/is-array":18}],24:[function(require,module,exports){ +function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + "default": obj + }; +} + +module.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports["default"] = module.exports; +},{}],25:[function(require,module,exports){ +var _Symbol = require("@babel/runtime-corejs3/core-js/symbol"); + +var _getIteratorMethod = require("@babel/runtime-corejs3/core-js/get-iterator-method"); + +function _iterableToArrayLimit(arr, i) { + var _i = arr == null ? null : typeof _Symbol !== "undefined" && _getIteratorMethod(arr) || arr["@@iterator"]; + + if (_i == null) return; + var _arr = []; + var _n = true; + var _d = false; + + var _s, _e; + + try { + for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { + _arr.push(_s.value); + + if (i && _arr.length === i) break; + } + } catch (err) { + _d = true; + _e = err; + } finally { + try { + if (!_n && _i["return"] != null) _i["return"](); + } finally { + if (_d) throw _e; + } + } + + return _arr; +} + +module.exports = _iterableToArrayLimit, module.exports.__esModule = true, module.exports["default"] = module.exports; +},{"@babel/runtime-corejs3/core-js/get-iterator-method":19,"@babel/runtime-corejs3/core-js/symbol":21}],26:[function(require,module,exports){ +function _nonIterableRest() { + throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); +} + +module.exports = _nonIterableRest, module.exports.__esModule = true, module.exports["default"] = module.exports; +},{}],27:[function(require,module,exports){ +var arrayWithHoles = require("./arrayWithHoles.js"); + +var iterableToArrayLimit = require("./iterableToArrayLimit.js"); + +var unsupportedIterableToArray = require("./unsupportedIterableToArray.js"); + +var nonIterableRest = require("./nonIterableRest.js"); + +function _slicedToArray(arr, i) { + return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest(); +} + +module.exports = _slicedToArray, module.exports.__esModule = true, module.exports["default"] = module.exports; +},{"./arrayWithHoles.js":23,"./iterableToArrayLimit.js":25,"./nonIterableRest.js":26,"./unsupportedIterableToArray.js":28}],28:[function(require,module,exports){ +var _sliceInstanceProperty = require("@babel/runtime-corejs3/core-js/instance/slice"); + +var _Array$from = require("@babel/runtime-corejs3/core-js/array/from"); + +var arrayLikeToArray = require("./arrayLikeToArray.js"); + +function _unsupportedIterableToArray(o, minLen) { + var _context; + + if (!o) return; + if (typeof o === "string") return arrayLikeToArray(o, minLen); + + var n = _sliceInstanceProperty(_context = Object.prototype.toString.call(o)).call(_context, 8, -1); + + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return _Array$from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen); +} + +module.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports["default"] = module.exports; +},{"./arrayLikeToArray.js":22,"@babel/runtime-corejs3/core-js/array/from":17,"@babel/runtime-corejs3/core-js/instance/slice":20}],29:[function(require,module,exports){ +var parent = require('../../stable/array/from'); + +module.exports = parent; + +},{"../../stable/array/from":208}],30:[function(require,module,exports){ +var parent = require('../../stable/array/is-array'); + +module.exports = parent; + +},{"../../stable/array/is-array":209}],31:[function(require,module,exports){ +var parent = require('../stable/get-iterator-method'); + +module.exports = parent; + +},{"../stable/get-iterator-method":211}],32:[function(require,module,exports){ +var parent = require('../../stable/instance/slice'); + +module.exports = parent; + +},{"../../stable/instance/slice":216}],33:[function(require,module,exports){ +var parent = require('../../stable/symbol'); + +module.exports = parent; + +},{"../../stable/symbol":221}],34:[function(require,module,exports){ +require('../../modules/es.string.iterator'); +require('../../modules/es.array.from'); +var path = require('../../internals/path'); + +module.exports = path.Array.from; + +},{"../../internals/path":142,"../../modules/es.array.from":170,"../../modules/es.string.iterator":184}],35:[function(require,module,exports){ +require('../../modules/es.array.is-array'); +var path = require('../../internals/path'); + +module.exports = path.Array.isArray; + +},{"../../internals/path":142,"../../modules/es.array.is-array":172}],36:[function(require,module,exports){ +require('../../../modules/es.array.concat'); +var entryVirtual = require('../../../internals/entry-virtual'); + +module.exports = entryVirtual('Array').concat; + +},{"../../../internals/entry-virtual":91,"../../../modules/es.array.concat":168}],37:[function(require,module,exports){ +require('../../../modules/es.array.for-each'); +var entryVirtual = require('../../../internals/entry-virtual'); + +module.exports = entryVirtual('Array').forEach; + +},{"../../../internals/entry-virtual":91,"../../../modules/es.array.for-each":169}],38:[function(require,module,exports){ +require('../../../modules/es.array.index-of'); +var entryVirtual = require('../../../internals/entry-virtual'); + +module.exports = entryVirtual('Array').indexOf; + +},{"../../../internals/entry-virtual":91,"../../../modules/es.array.index-of":171}],39:[function(require,module,exports){ +require('../../../modules/es.array.slice'); +var entryVirtual = require('../../../internals/entry-virtual'); + +module.exports = entryVirtual('Array').slice; + +},{"../../../internals/entry-virtual":91,"../../../modules/es.array.slice":174}],40:[function(require,module,exports){ +require('../../../modules/es.array.sort'); +var entryVirtual = require('../../../internals/entry-virtual'); + +module.exports = entryVirtual('Array').sort; + +},{"../../../internals/entry-virtual":91,"../../../modules/es.array.sort":175}],41:[function(require,module,exports){ +require('../modules/es.array.iterator'); +require('../modules/es.string.iterator'); +var getIteratorMethod = require('../internals/get-iterator-method'); + +module.exports = getIteratorMethod; + +},{"../internals/get-iterator-method":101,"../modules/es.array.iterator":173,"../modules/es.string.iterator":184}],42:[function(require,module,exports){ +var isPrototypeOf = require('../../internals/object-is-prototype-of'); +var method = require('../array/virtual/concat'); + +var ArrayPrototype = Array.prototype; + +module.exports = function (it) { + var own = it.concat; + return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.concat) ? method : own; +}; + +},{"../../internals/object-is-prototype-of":135,"../array/virtual/concat":36}],43:[function(require,module,exports){ +var isPrototypeOf = require('../../internals/object-is-prototype-of'); +var flags = require('../regexp/flags'); + +var RegExpPrototype = RegExp.prototype; + +module.exports = function (it) { + return (it === RegExpPrototype || isPrototypeOf(RegExpPrototype, it)) ? flags(it) : it.flags; +}; + +},{"../../internals/object-is-prototype-of":135,"../regexp/flags":50}],44:[function(require,module,exports){ +var isPrototypeOf = require('../../internals/object-is-prototype-of'); +var method = require('../array/virtual/index-of'); + +var ArrayPrototype = Array.prototype; + +module.exports = function (it) { + var own = it.indexOf; + return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.indexOf) ? method : own; +}; + +},{"../../internals/object-is-prototype-of":135,"../array/virtual/index-of":38}],45:[function(require,module,exports){ +var isPrototypeOf = require('../../internals/object-is-prototype-of'); +var method = require('../array/virtual/slice'); + +var ArrayPrototype = Array.prototype; + +module.exports = function (it) { + var own = it.slice; + return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.slice) ? method : own; +}; + +},{"../../internals/object-is-prototype-of":135,"../array/virtual/slice":39}],46:[function(require,module,exports){ +var isPrototypeOf = require('../../internals/object-is-prototype-of'); +var method = require('../array/virtual/sort'); + +var ArrayPrototype = Array.prototype; + +module.exports = function (it) { + var own = it.sort; + return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.sort) ? method : own; +}; + +},{"../../internals/object-is-prototype-of":135,"../array/virtual/sort":40}],47:[function(require,module,exports){ +require('../../modules/es.object.create'); +var path = require('../../internals/path'); + +var Object = path.Object; + +module.exports = function create(P, D) { + return Object.create(P, D); +}; + +},{"../../internals/path":142,"../../modules/es.object.create":178}],48:[function(require,module,exports){ +require('../../modules/es.object.define-property'); +var path = require('../../internals/path'); + +var Object = path.Object; + +var defineProperty = module.exports = function defineProperty(it, key, desc) { + return Object.defineProperty(it, key, desc); +}; + +if (Object.defineProperty.sham) defineProperty.sham = true; + +},{"../../internals/path":142,"../../modules/es.object.define-property":179}],49:[function(require,module,exports){ +require('../modules/es.parse-int'); +var path = require('../internals/path'); + +module.exports = path.parseInt; + +},{"../internals/path":142,"../modules/es.parse-int":181}],50:[function(require,module,exports){ +require('../../modules/es.regexp.flags'); +var uncurryThis = require('../../internals/function-uncurry-this'); +var regExpFlags = require('../../internals/regexp-flags'); + +module.exports = uncurryThis(regExpFlags); + +},{"../../internals/function-uncurry-this":99,"../../internals/regexp-flags":144,"../../modules/es.regexp.flags":183}],51:[function(require,module,exports){ +require('../../modules/es.array.concat'); +require('../../modules/es.object.to-string'); +require('../../modules/es.symbol'); +require('../../modules/es.symbol.async-iterator'); +require('../../modules/es.symbol.description'); +require('../../modules/es.symbol.has-instance'); +require('../../modules/es.symbol.is-concat-spreadable'); +require('../../modules/es.symbol.iterator'); +require('../../modules/es.symbol.match'); +require('../../modules/es.symbol.match-all'); +require('../../modules/es.symbol.replace'); +require('../../modules/es.symbol.search'); +require('../../modules/es.symbol.species'); +require('../../modules/es.symbol.split'); +require('../../modules/es.symbol.to-primitive'); +require('../../modules/es.symbol.to-string-tag'); +require('../../modules/es.symbol.unscopables'); +require('../../modules/es.json.to-string-tag'); +require('../../modules/es.math.to-string-tag'); +require('../../modules/es.reflect.to-string-tag'); +var path = require('../../internals/path'); + +module.exports = path.Symbol; + +},{"../../internals/path":142,"../../modules/es.array.concat":168,"../../modules/es.json.to-string-tag":176,"../../modules/es.math.to-string-tag":177,"../../modules/es.object.to-string":180,"../../modules/es.reflect.to-string-tag":182,"../../modules/es.symbol":190,"../../modules/es.symbol.async-iterator":185,"../../modules/es.symbol.description":186,"../../modules/es.symbol.has-instance":187,"../../modules/es.symbol.is-concat-spreadable":188,"../../modules/es.symbol.iterator":189,"../../modules/es.symbol.match":192,"../../modules/es.symbol.match-all":191,"../../modules/es.symbol.replace":193,"../../modules/es.symbol.search":194,"../../modules/es.symbol.species":195,"../../modules/es.symbol.split":196,"../../modules/es.symbol.to-primitive":197,"../../modules/es.symbol.to-string-tag":198,"../../modules/es.symbol.unscopables":199}],52:[function(require,module,exports){ +var parent = require('../../actual/array/from'); + +module.exports = parent; + +},{"../../actual/array/from":29}],53:[function(require,module,exports){ +var parent = require('../../actual/array/is-array'); + +module.exports = parent; + +},{"../../actual/array/is-array":30}],54:[function(require,module,exports){ +var parent = require('../actual/get-iterator-method'); + +module.exports = parent; + +},{"../actual/get-iterator-method":31}],55:[function(require,module,exports){ +var parent = require('../../actual/instance/slice'); + +module.exports = parent; + +},{"../../actual/instance/slice":32}],56:[function(require,module,exports){ +var parent = require('../../actual/symbol'); +require('../../modules/esnext.symbol.async-dispose'); +require('../../modules/esnext.symbol.dispose'); +require('../../modules/esnext.symbol.matcher'); +require('../../modules/esnext.symbol.metadata'); +require('../../modules/esnext.symbol.observable'); +// TODO: Remove from `core-js@4` +require('../../modules/esnext.symbol.pattern-match'); +// TODO: Remove from `core-js@4` +require('../../modules/esnext.symbol.replace-all'); + +module.exports = parent; + +},{"../../actual/symbol":33,"../../modules/esnext.symbol.async-dispose":200,"../../modules/esnext.symbol.dispose":201,"../../modules/esnext.symbol.matcher":202,"../../modules/esnext.symbol.metadata":203,"../../modules/esnext.symbol.observable":204,"../../modules/esnext.symbol.pattern-match":205,"../../modules/esnext.symbol.replace-all":206}],57:[function(require,module,exports){ +var global = require('../internals/global'); +var isCallable = require('../internals/is-callable'); +var tryToString = require('../internals/try-to-string'); + +var TypeError = global.TypeError; + +// `Assert: IsCallable(argument) is true` +module.exports = function (argument) { + if (isCallable(argument)) return argument; + throw TypeError(tryToString(argument) + ' is not a function'); +}; + +},{"../internals/global":104,"../internals/is-callable":114,"../internals/try-to-string":162}],58:[function(require,module,exports){ +var global = require('../internals/global'); +var isCallable = require('../internals/is-callable'); + +var String = global.String; +var TypeError = global.TypeError; + +module.exports = function (argument) { + if (typeof argument == 'object' || isCallable(argument)) return argument; + throw TypeError("Can't set " + String(argument) + ' as a prototype'); +}; + +},{"../internals/global":104,"../internals/is-callable":114}],59:[function(require,module,exports){ +module.exports = function () { /* empty */ }; + +},{}],60:[function(require,module,exports){ +var global = require('../internals/global'); +var isObject = require('../internals/is-object'); + +var String = global.String; +var TypeError = global.TypeError; + +// `Assert: Type(argument) is Object` +module.exports = function (argument) { + if (isObject(argument)) return argument; + throw TypeError(String(argument) + ' is not an object'); +}; + +},{"../internals/global":104,"../internals/is-object":117}],61:[function(require,module,exports){ +'use strict'; +var $forEach = require('../internals/array-iteration').forEach; +var arrayMethodIsStrict = require('../internals/array-method-is-strict'); + +var STRICT_METHOD = arrayMethodIsStrict('forEach'); + +// `Array.prototype.forEach` method implementation +// https://tc39.es/ecma262/#sec-array.prototype.foreach +module.exports = !STRICT_METHOD ? function forEach(callbackfn /* , thisArg */) { + return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); +// eslint-disable-next-line es/no-array-prototype-foreach -- safe +} : [].forEach; + +},{"../internals/array-iteration":64,"../internals/array-method-is-strict":66}],62:[function(require,module,exports){ +'use strict'; +var global = require('../internals/global'); +var bind = require('../internals/function-bind-context'); +var call = require('../internals/function-call'); +var toObject = require('../internals/to-object'); +var callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing'); +var isArrayIteratorMethod = require('../internals/is-array-iterator-method'); +var isConstructor = require('../internals/is-constructor'); +var lengthOfArrayLike = require('../internals/length-of-array-like'); +var createProperty = require('../internals/create-property'); +var getIterator = require('../internals/get-iterator'); +var getIteratorMethod = require('../internals/get-iterator-method'); + +var Array = global.Array; + +// `Array.from` method implementation +// https://tc39.es/ecma262/#sec-array.from +module.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) { + var O = toObject(arrayLike); + var IS_CONSTRUCTOR = isConstructor(this); + var argumentsLength = arguments.length; + var mapfn = argumentsLength > 1 ? arguments[1] : undefined; + var mapping = mapfn !== undefined; + if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined); + var iteratorMethod = getIteratorMethod(O); + var index = 0; + var length, result, step, iterator, next, value; + // if the target is not iterable or it's an array with the default iterator - use a simple case + if (iteratorMethod && !(this == Array && isArrayIteratorMethod(iteratorMethod))) { + iterator = getIterator(O, iteratorMethod); + next = iterator.next; + result = IS_CONSTRUCTOR ? new this() : []; + for (;!(step = call(next, iterator)).done; index++) { + value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value; + createProperty(result, index, value); + } + } else { + length = lengthOfArrayLike(O); + result = IS_CONSTRUCTOR ? new this(length) : Array(length); + for (;length > index; index++) { + value = mapping ? mapfn(O[index], index) : O[index]; + createProperty(result, index, value); + } + } + result.length = index; + return result; +}; + +},{"../internals/call-with-safe-iteration-closing":72,"../internals/create-property":80,"../internals/function-bind-context":96,"../internals/function-call":97,"../internals/get-iterator":102,"../internals/get-iterator-method":101,"../internals/global":104,"../internals/is-array-iterator-method":112,"../internals/is-constructor":115,"../internals/length-of-array-like":123,"../internals/to-object":157}],63:[function(require,module,exports){ +var toIndexedObject = require('../internals/to-indexed-object'); +var toAbsoluteIndex = require('../internals/to-absolute-index'); +var lengthOfArrayLike = require('../internals/length-of-array-like'); + +// `Array.prototype.{ indexOf, includes }` methods implementation +var createMethod = function (IS_INCLUDES) { + return function ($this, el, fromIndex) { + var O = toIndexedObject($this); + var length = lengthOfArrayLike(O); + var index = toAbsoluteIndex(fromIndex, length); + var value; + // Array#includes uses SameValueZero equality algorithm + // eslint-disable-next-line no-self-compare -- NaN check + if (IS_INCLUDES && el != el) while (length > index) { + value = O[index++]; + // eslint-disable-next-line no-self-compare -- NaN check + if (value != value) return true; + // Array#indexOf ignores holes, Array#includes - not + } else for (;length > index; index++) { + if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0; + } return !IS_INCLUDES && -1; + }; +}; + +module.exports = { + // `Array.prototype.includes` method + // https://tc39.es/ecma262/#sec-array.prototype.includes + includes: createMethod(true), + // `Array.prototype.indexOf` method + // https://tc39.es/ecma262/#sec-array.prototype.indexof + indexOf: createMethod(false) +}; + +},{"../internals/length-of-array-like":123,"../internals/to-absolute-index":153,"../internals/to-indexed-object":154}],64:[function(require,module,exports){ +var bind = require('../internals/function-bind-context'); +var uncurryThis = require('../internals/function-uncurry-this'); +var IndexedObject = require('../internals/indexed-object'); +var toObject = require('../internals/to-object'); +var lengthOfArrayLike = require('../internals/length-of-array-like'); +var arraySpeciesCreate = require('../internals/array-species-create'); + +var push = uncurryThis([].push); + +// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation +var createMethod = function (TYPE) { + var IS_MAP = TYPE == 1; + var IS_FILTER = TYPE == 2; + var IS_SOME = TYPE == 3; + var IS_EVERY = TYPE == 4; + var IS_FIND_INDEX = TYPE == 6; + var IS_FILTER_REJECT = TYPE == 7; + var NO_HOLES = TYPE == 5 || IS_FIND_INDEX; + return function ($this, callbackfn, that, specificCreate) { + var O = toObject($this); + var self = IndexedObject(O); + var boundFunction = bind(callbackfn, that); + var length = lengthOfArrayLike(self); + var index = 0; + var create = specificCreate || arraySpeciesCreate; + var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined; + var value, result; + for (;length > index; index++) if (NO_HOLES || index in self) { + value = self[index]; + result = boundFunction(value, index, O); + if (TYPE) { + if (IS_MAP) target[index] = result; // map + else if (result) switch (TYPE) { + case 3: return true; // some + case 5: return value; // find + case 6: return index; // findIndex + case 2: push(target, value); // filter + } else switch (TYPE) { + case 4: return false; // every + case 7: push(target, value); // filterReject + } + } + } + return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target; + }; +}; + +module.exports = { + // `Array.prototype.forEach` method + // https://tc39.es/ecma262/#sec-array.prototype.foreach + forEach: createMethod(0), + // `Array.prototype.map` method + // https://tc39.es/ecma262/#sec-array.prototype.map + map: createMethod(1), + // `Array.prototype.filter` method + // https://tc39.es/ecma262/#sec-array.prototype.filter + filter: createMethod(2), + // `Array.prototype.some` method + // https://tc39.es/ecma262/#sec-array.prototype.some + some: createMethod(3), + // `Array.prototype.every` method + // https://tc39.es/ecma262/#sec-array.prototype.every + every: createMethod(4), + // `Array.prototype.find` method + // https://tc39.es/ecma262/#sec-array.prototype.find + find: createMethod(5), + // `Array.prototype.findIndex` method + // https://tc39.es/ecma262/#sec-array.prototype.findIndex + findIndex: createMethod(6), + // `Array.prototype.filterReject` method + // https://github.com/tc39/proposal-array-filtering + filterReject: createMethod(7) +}; + +},{"../internals/array-species-create":71,"../internals/function-bind-context":96,"../internals/function-uncurry-this":99,"../internals/indexed-object":109,"../internals/length-of-array-like":123,"../internals/to-object":157}],65:[function(require,module,exports){ +var fails = require('../internals/fails'); +var wellKnownSymbol = require('../internals/well-known-symbol'); +var V8_VERSION = require('../internals/engine-v8-version'); + +var SPECIES = wellKnownSymbol('species'); + +module.exports = function (METHOD_NAME) { + // We can't use this feature detection in V8 since it causes + // deoptimization and serious performance degradation + // https://github.com/zloirock/core-js/issues/677 + return V8_VERSION >= 51 || !fails(function () { + var array = []; + var constructor = array.constructor = {}; + constructor[SPECIES] = function () { + return { foo: 1 }; + }; + return array[METHOD_NAME](Boolean).foo !== 1; + }); +}; + +},{"../internals/engine-v8-version":89,"../internals/fails":94,"../internals/well-known-symbol":166}],66:[function(require,module,exports){ +'use strict'; +var fails = require('../internals/fails'); + +module.exports = function (METHOD_NAME, argument) { + var method = [][METHOD_NAME]; + return !!method && fails(function () { + // eslint-disable-next-line no-useless-call,no-throw-literal -- required for testing + method.call(null, argument || function () { throw 1; }, 1); + }); +}; + +},{"../internals/fails":94}],67:[function(require,module,exports){ +var global = require('../internals/global'); +var toAbsoluteIndex = require('../internals/to-absolute-index'); +var lengthOfArrayLike = require('../internals/length-of-array-like'); +var createProperty = require('../internals/create-property'); + +var Array = global.Array; +var max = Math.max; + +module.exports = function (O, start, end) { + var length = lengthOfArrayLike(O); + var k = toAbsoluteIndex(start, length); + var fin = toAbsoluteIndex(end === undefined ? length : end, length); + var result = Array(max(fin - k, 0)); + for (var n = 0; k < fin; k++, n++) createProperty(result, n, O[k]); + result.length = n; + return result; +}; + +},{"../internals/create-property":80,"../internals/global":104,"../internals/length-of-array-like":123,"../internals/to-absolute-index":153}],68:[function(require,module,exports){ +var uncurryThis = require('../internals/function-uncurry-this'); + +module.exports = uncurryThis([].slice); + +},{"../internals/function-uncurry-this":99}],69:[function(require,module,exports){ +var arraySlice = require('../internals/array-slice-simple'); + +var floor = Math.floor; + +var mergeSort = function (array, comparefn) { + var length = array.length; + var middle = floor(length / 2); + return length < 8 ? insertionSort(array, comparefn) : merge( + array, + mergeSort(arraySlice(array, 0, middle), comparefn), + mergeSort(arraySlice(array, middle), comparefn), + comparefn + ); +}; + +var insertionSort = function (array, comparefn) { + var length = array.length; + var i = 1; + var element, j; + + while (i < length) { + j = i; + element = array[i]; + while (j && comparefn(array[j - 1], element) > 0) { + array[j] = array[--j]; + } + if (j !== i++) array[j] = element; + } return array; +}; + +var merge = function (array, left, right, comparefn) { + var llength = left.length; + var rlength = right.length; + var lindex = 0; + var rindex = 0; + + while (lindex < llength || rindex < rlength) { + array[lindex + rindex] = (lindex < llength && rindex < rlength) + ? comparefn(left[lindex], right[rindex]) <= 0 ? left[lindex++] : right[rindex++] + : lindex < llength ? left[lindex++] : right[rindex++]; + } return array; +}; + +module.exports = mergeSort; + +},{"../internals/array-slice-simple":67}],70:[function(require,module,exports){ +var global = require('../internals/global'); +var isArray = require('../internals/is-array'); +var isConstructor = require('../internals/is-constructor'); +var isObject = require('../internals/is-object'); +var wellKnownSymbol = require('../internals/well-known-symbol'); + +var SPECIES = wellKnownSymbol('species'); +var Array = global.Array; + +// a part of `ArraySpeciesCreate` abstract operation +// https://tc39.es/ecma262/#sec-arrayspeciescreate +module.exports = function (originalArray) { + var C; + if (isArray(originalArray)) { + C = originalArray.constructor; + // cross-realm fallback + if (isConstructor(C) && (C === Array || isArray(C.prototype))) C = undefined; + else if (isObject(C)) { + C = C[SPECIES]; + if (C === null) C = undefined; + } + } return C === undefined ? Array : C; +}; + +},{"../internals/global":104,"../internals/is-array":113,"../internals/is-constructor":115,"../internals/is-object":117,"../internals/well-known-symbol":166}],71:[function(require,module,exports){ +var arraySpeciesConstructor = require('../internals/array-species-constructor'); + +// `ArraySpeciesCreate` abstract operation +// https://tc39.es/ecma262/#sec-arrayspeciescreate +module.exports = function (originalArray, length) { + return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length); +}; + +},{"../internals/array-species-constructor":70}],72:[function(require,module,exports){ +var anObject = require('../internals/an-object'); +var iteratorClose = require('../internals/iterator-close'); + +// call something on iterator step with safe closing on error +module.exports = function (iterator, fn, value, ENTRIES) { + try { + return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value); + } catch (error) { + iteratorClose(iterator, 'throw', error); + } +}; + +},{"../internals/an-object":60,"../internals/iterator-close":120}],73:[function(require,module,exports){ +var wellKnownSymbol = require('../internals/well-known-symbol'); + +var ITERATOR = wellKnownSymbol('iterator'); +var SAFE_CLOSING = false; + +try { + var called = 0; + var iteratorWithReturn = { + next: function () { + return { done: !!called++ }; + }, + 'return': function () { + SAFE_CLOSING = true; + } + }; + iteratorWithReturn[ITERATOR] = function () { + return this; + }; + // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing + Array.from(iteratorWithReturn, function () { throw 2; }); +} catch (error) { /* empty */ } + +module.exports = function (exec, SKIP_CLOSING) { + if (!SKIP_CLOSING && !SAFE_CLOSING) return false; + var ITERATION_SUPPORT = false; + try { + var object = {}; + object[ITERATOR] = function () { + return { + next: function () { + return { done: ITERATION_SUPPORT = true }; + } + }; + }; + exec(object); + } catch (error) { /* empty */ } + return ITERATION_SUPPORT; +}; + +},{"../internals/well-known-symbol":166}],74:[function(require,module,exports){ +var uncurryThis = require('../internals/function-uncurry-this'); + +var toString = uncurryThis({}.toString); +var stringSlice = uncurryThis(''.slice); + +module.exports = function (it) { + return stringSlice(toString(it), 8, -1); +}; + +},{"../internals/function-uncurry-this":99}],75:[function(require,module,exports){ +var global = require('../internals/global'); +var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support'); +var isCallable = require('../internals/is-callable'); +var classofRaw = require('../internals/classof-raw'); +var wellKnownSymbol = require('../internals/well-known-symbol'); + +var TO_STRING_TAG = wellKnownSymbol('toStringTag'); +var Object = global.Object; + +// ES3 wrong here +var CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments'; + +// fallback for IE11 Script Access Denied error +var tryGet = function (it, key) { + try { + return it[key]; + } catch (error) { /* empty */ } +}; + +// getting tag from ES6+ `Object.prototype.toString` +module.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) { + var O, tag, result; + return it === undefined ? 'Undefined' : it === null ? 'Null' + // @@toStringTag case + : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag + // builtinTag case + : CORRECT_ARGUMENTS ? classofRaw(O) + // ES3 arguments fallback + : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result; +}; + +},{"../internals/classof-raw":74,"../internals/global":104,"../internals/is-callable":114,"../internals/to-string-tag-support":160,"../internals/well-known-symbol":166}],76:[function(require,module,exports){ +var fails = require('../internals/fails'); + +module.exports = !fails(function () { + function F() { /* empty */ } + F.prototype.constructor = null; + // eslint-disable-next-line es/no-object-getprototypeof -- required for testing + return Object.getPrototypeOf(new F()) !== F.prototype; +}); + +},{"../internals/fails":94}],77:[function(require,module,exports){ +'use strict'; +var IteratorPrototype = require('../internals/iterators-core').IteratorPrototype; +var create = require('../internals/object-create'); +var createPropertyDescriptor = require('../internals/create-property-descriptor'); +var setToStringTag = require('../internals/set-to-string-tag'); +var Iterators = require('../internals/iterators'); + +var returnThis = function () { return this; }; + +module.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) { + var TO_STRING_TAG = NAME + ' Iterator'; + IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) }); + setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true); + Iterators[TO_STRING_TAG] = returnThis; + return IteratorConstructor; +}; + +},{"../internals/create-property-descriptor":79,"../internals/iterators":122,"../internals/iterators-core":121,"../internals/object-create":127,"../internals/set-to-string-tag":147}],78:[function(require,module,exports){ +var DESCRIPTORS = require('../internals/descriptors'); +var definePropertyModule = require('../internals/object-define-property'); +var createPropertyDescriptor = require('../internals/create-property-descriptor'); + +module.exports = DESCRIPTORS ? function (object, key, value) { + return definePropertyModule.f(object, key, createPropertyDescriptor(1, value)); +} : function (object, key, value) { + object[key] = value; + return object; +}; + +},{"../internals/create-property-descriptor":79,"../internals/descriptors":83,"../internals/object-define-property":129}],79:[function(require,module,exports){ +module.exports = function (bitmap, value) { + return { + enumerable: !(bitmap & 1), + configurable: !(bitmap & 2), + writable: !(bitmap & 4), + value: value + }; +}; + +},{}],80:[function(require,module,exports){ +'use strict'; +var toPropertyKey = require('../internals/to-property-key'); +var definePropertyModule = require('../internals/object-define-property'); +var createPropertyDescriptor = require('../internals/create-property-descriptor'); + +module.exports = function (object, key, value) { + var propertyKey = toPropertyKey(key); + if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value)); + else object[propertyKey] = value; +}; + +},{"../internals/create-property-descriptor":79,"../internals/object-define-property":129,"../internals/to-property-key":159}],81:[function(require,module,exports){ +'use strict'; +var $ = require('../internals/export'); +var call = require('../internals/function-call'); +var IS_PURE = require('../internals/is-pure'); +var FunctionName = require('../internals/function-name'); +var isCallable = require('../internals/is-callable'); +var createIteratorConstructor = require('../internals/create-iterator-constructor'); +var getPrototypeOf = require('../internals/object-get-prototype-of'); +var setPrototypeOf = require('../internals/object-set-prototype-of'); +var setToStringTag = require('../internals/set-to-string-tag'); +var createNonEnumerableProperty = require('../internals/create-non-enumerable-property'); +var redefine = require('../internals/redefine'); +var wellKnownSymbol = require('../internals/well-known-symbol'); +var Iterators = require('../internals/iterators'); +var IteratorsCore = require('../internals/iterators-core'); + +var PROPER_FUNCTION_NAME = FunctionName.PROPER; +var CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE; +var IteratorPrototype = IteratorsCore.IteratorPrototype; +var BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS; +var ITERATOR = wellKnownSymbol('iterator'); +var KEYS = 'keys'; +var VALUES = 'values'; +var ENTRIES = 'entries'; + +var returnThis = function () { return this; }; + +module.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) { + createIteratorConstructor(IteratorConstructor, NAME, next); + + var getIterationMethod = function (KIND) { + if (KIND === DEFAULT && defaultIterator) return defaultIterator; + if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND]; + switch (KIND) { + case KEYS: return function keys() { return new IteratorConstructor(this, KIND); }; + case VALUES: return function values() { return new IteratorConstructor(this, KIND); }; + case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); }; + } return function () { return new IteratorConstructor(this); }; + }; + + var TO_STRING_TAG = NAME + ' Iterator'; + var INCORRECT_VALUES_NAME = false; + var IterablePrototype = Iterable.prototype; + var nativeIterator = IterablePrototype[ITERATOR] + || IterablePrototype['@@iterator'] + || DEFAULT && IterablePrototype[DEFAULT]; + var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT); + var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator; + var CurrentIteratorPrototype, methods, KEY; + + // fix native + if (anyNativeIterator) { + CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable())); + if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) { + if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) { + if (setPrototypeOf) { + setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype); + } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) { + redefine(CurrentIteratorPrototype, ITERATOR, returnThis); + } + } + // Set @@toStringTag to native iterators + setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true); + if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis; + } + } + + // fix Array.prototype.{ values, @@iterator }.name in V8 / FF + if (PROPER_FUNCTION_NAME && DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) { + if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) { + createNonEnumerableProperty(IterablePrototype, 'name', VALUES); + } else { + INCORRECT_VALUES_NAME = true; + defaultIterator = function values() { return call(nativeIterator, this); }; + } + } + + // export additional methods + if (DEFAULT) { + methods = { + values: getIterationMethod(VALUES), + keys: IS_SET ? defaultIterator : getIterationMethod(KEYS), + entries: getIterationMethod(ENTRIES) + }; + if (FORCED) for (KEY in methods) { + if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) { + redefine(IterablePrototype, KEY, methods[KEY]); + } + } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods); + } + + // define iterator + if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) { + redefine(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT }); + } + Iterators[NAME] = defaultIterator; + + return methods; +}; + +},{"../internals/create-iterator-constructor":77,"../internals/create-non-enumerable-property":78,"../internals/export":93,"../internals/function-call":97,"../internals/function-name":98,"../internals/is-callable":114,"../internals/is-pure":118,"../internals/iterators":122,"../internals/iterators-core":121,"../internals/object-get-prototype-of":134,"../internals/object-set-prototype-of":139,"../internals/redefine":143,"../internals/set-to-string-tag":147,"../internals/well-known-symbol":166}],82:[function(require,module,exports){ +var path = require('../internals/path'); +var hasOwn = require('../internals/has-own-property'); +var wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped'); +var defineProperty = require('../internals/object-define-property').f; + +module.exports = function (NAME) { + var Symbol = path.Symbol || (path.Symbol = {}); + if (!hasOwn(Symbol, NAME)) defineProperty(Symbol, NAME, { + value: wrappedWellKnownSymbolModule.f(NAME) + }); +}; + +},{"../internals/has-own-property":105,"../internals/object-define-property":129,"../internals/path":142,"../internals/well-known-symbol-wrapped":165}],83:[function(require,module,exports){ +var fails = require('../internals/fails'); + +// Detect IE8's incomplete defineProperty implementation +module.exports = !fails(function () { + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7; +}); + +},{"../internals/fails":94}],84:[function(require,module,exports){ +var global = require('../internals/global'); +var isObject = require('../internals/is-object'); + +var document = global.document; +// typeof document.createElement is 'object' in old IE +var EXISTS = isObject(document) && isObject(document.createElement); + +module.exports = function (it) { + return EXISTS ? document.createElement(it) : {}; +}; + +},{"../internals/global":104,"../internals/is-object":117}],85:[function(require,module,exports){ +// iterable DOM collections +// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods +module.exports = { + CSSRuleList: 0, + CSSStyleDeclaration: 0, + CSSValueList: 0, + ClientRectList: 0, + DOMRectList: 0, + DOMStringList: 0, + DOMTokenList: 1, + DataTransferItemList: 0, + FileList: 0, + HTMLAllCollection: 0, + HTMLCollection: 0, + HTMLFormElement: 0, + HTMLSelectElement: 0, + MediaList: 0, + MimeTypeArray: 0, + NamedNodeMap: 0, + NodeList: 1, + PaintRequestList: 0, + Plugin: 0, + PluginArray: 0, + SVGLengthList: 0, + SVGNumberList: 0, + SVGPathSegList: 0, + SVGPointList: 0, + SVGStringList: 0, + SVGTransformList: 0, + SourceBufferList: 0, + StyleSheetList: 0, + TextTrackCueList: 0, + TextTrackList: 0, + TouchList: 0 +}; + +},{}],86:[function(require,module,exports){ +var userAgent = require('../internals/engine-user-agent'); + +var firefox = userAgent.match(/firefox\/(\d+)/i); + +module.exports = !!firefox && +firefox[1]; + +},{"../internals/engine-user-agent":88}],87:[function(require,module,exports){ +var UA = require('../internals/engine-user-agent'); + +module.exports = /MSIE|Trident/.test(UA); + +},{"../internals/engine-user-agent":88}],88:[function(require,module,exports){ +var getBuiltIn = require('../internals/get-built-in'); + +module.exports = getBuiltIn('navigator', 'userAgent') || ''; + +},{"../internals/get-built-in":100}],89:[function(require,module,exports){ +var global = require('../internals/global'); +var userAgent = require('../internals/engine-user-agent'); + +var process = global.process; +var Deno = global.Deno; +var versions = process && process.versions || Deno && Deno.version; +var v8 = versions && versions.v8; +var match, version; + +if (v8) { + match = v8.split('.'); + // in old Chrome, versions of V8 isn't V8 = Chrome / 10 + // but their correct versions are not interesting for us + version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]); +} + +// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0` +// so check `userAgent` even if `.v8` exists, but 0 +if (!version && userAgent) { + match = userAgent.match(/Edge\/(\d+)/); + if (!match || match[1] >= 74) { + match = userAgent.match(/Chrome\/(\d+)/); + if (match) version = +match[1]; + } +} + +module.exports = version; + +},{"../internals/engine-user-agent":88,"../internals/global":104}],90:[function(require,module,exports){ +var userAgent = require('../internals/engine-user-agent'); + +var webkit = userAgent.match(/AppleWebKit\/(\d+)\./); + +module.exports = !!webkit && +webkit[1]; + +},{"../internals/engine-user-agent":88}],91:[function(require,module,exports){ +var path = require('../internals/path'); + +module.exports = function (CONSTRUCTOR) { + return path[CONSTRUCTOR + 'Prototype']; +}; + +},{"../internals/path":142}],92:[function(require,module,exports){ +// IE8- don't enum bug keys +module.exports = [ + 'constructor', + 'hasOwnProperty', + 'isPrototypeOf', + 'propertyIsEnumerable', + 'toLocaleString', + 'toString', + 'valueOf' +]; + +},{}],93:[function(require,module,exports){ +'use strict'; +var global = require('../internals/global'); +var apply = require('../internals/function-apply'); +var uncurryThis = require('../internals/function-uncurry-this'); +var isCallable = require('../internals/is-callable'); +var getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f; +var isForced = require('../internals/is-forced'); +var path = require('../internals/path'); +var bind = require('../internals/function-bind-context'); +var createNonEnumerableProperty = require('../internals/create-non-enumerable-property'); +var hasOwn = require('../internals/has-own-property'); + +var wrapConstructor = function (NativeConstructor) { + var Wrapper = function (a, b, c) { + if (this instanceof Wrapper) { + switch (arguments.length) { + case 0: return new NativeConstructor(); + case 1: return new NativeConstructor(a); + case 2: return new NativeConstructor(a, b); + } return new NativeConstructor(a, b, c); + } return apply(NativeConstructor, this, arguments); + }; + Wrapper.prototype = NativeConstructor.prototype; + return Wrapper; +}; + +/* + options.target - name of the target object + options.global - target is the global object + options.stat - export as static methods of target + options.proto - export as prototype methods of target + options.real - real prototype method for the `pure` version + options.forced - export even if the native feature is available + options.bind - bind methods to the target, required for the `pure` version + options.wrap - wrap constructors to preventing global pollution, required for the `pure` version + options.unsafe - use the simple assignment of property instead of delete + defineProperty + options.sham - add a flag to not completely full polyfills + options.enumerable - export as enumerable property + options.noTargetGet - prevent calling a getter on target + options.name - the .name of the function if it does not match the key +*/ +module.exports = function (options, source) { + var TARGET = options.target; + var GLOBAL = options.global; + var STATIC = options.stat; + var PROTO = options.proto; + + var nativeSource = GLOBAL ? global : STATIC ? global[TARGET] : (global[TARGET] || {}).prototype; + + var target = GLOBAL ? path : path[TARGET] || createNonEnumerableProperty(path, TARGET, {})[TARGET]; + var targetPrototype = target.prototype; + + var FORCED, USE_NATIVE, VIRTUAL_PROTOTYPE; + var key, sourceProperty, targetProperty, nativeProperty, resultProperty, descriptor; + + for (key in source) { + FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced); + // contains in native + USE_NATIVE = !FORCED && nativeSource && hasOwn(nativeSource, key); + + targetProperty = target[key]; + + if (USE_NATIVE) if (options.noTargetGet) { + descriptor = getOwnPropertyDescriptor(nativeSource, key); + nativeProperty = descriptor && descriptor.value; + } else nativeProperty = nativeSource[key]; + + // export native or implementation + sourceProperty = (USE_NATIVE && nativeProperty) ? nativeProperty : source[key]; + + if (USE_NATIVE && typeof targetProperty == typeof sourceProperty) continue; + + // bind timers to global for call from export context + if (options.bind && USE_NATIVE) resultProperty = bind(sourceProperty, global); + // wrap global constructors for prevent changs in this version + else if (options.wrap && USE_NATIVE) resultProperty = wrapConstructor(sourceProperty); + // make static versions for prototype methods + else if (PROTO && isCallable(sourceProperty)) resultProperty = uncurryThis(sourceProperty); + // default case + else resultProperty = sourceProperty; + + // add a flag to not completely full polyfills + if (options.sham || (sourceProperty && sourceProperty.sham) || (targetProperty && targetProperty.sham)) { + createNonEnumerableProperty(resultProperty, 'sham', true); + } + + createNonEnumerableProperty(target, key, resultProperty); + + if (PROTO) { + VIRTUAL_PROTOTYPE = TARGET + 'Prototype'; + if (!hasOwn(path, VIRTUAL_PROTOTYPE)) { + createNonEnumerableProperty(path, VIRTUAL_PROTOTYPE, {}); + } + // export virtual prototype methods + createNonEnumerableProperty(path[VIRTUAL_PROTOTYPE], key, sourceProperty); + // export real prototype methods + if (options.real && targetPrototype && !targetPrototype[key]) { + createNonEnumerableProperty(targetPrototype, key, sourceProperty); + } + } + } +}; + +},{"../internals/create-non-enumerable-property":78,"../internals/function-apply":95,"../internals/function-bind-context":96,"../internals/function-uncurry-this":99,"../internals/global":104,"../internals/has-own-property":105,"../internals/is-callable":114,"../internals/is-forced":116,"../internals/object-get-own-property-descriptor":130,"../internals/path":142}],94:[function(require,module,exports){ +module.exports = function (exec) { + try { + return !!exec(); + } catch (error) { + return true; + } +}; + +},{}],95:[function(require,module,exports){ +var FunctionPrototype = Function.prototype; +var apply = FunctionPrototype.apply; +var bind = FunctionPrototype.bind; +var call = FunctionPrototype.call; + +// eslint-disable-next-line es/no-reflect -- safe +module.exports = typeof Reflect == 'object' && Reflect.apply || (bind ? call.bind(apply) : function () { + return call.apply(apply, arguments); +}); + +},{}],96:[function(require,module,exports){ +var uncurryThis = require('../internals/function-uncurry-this'); +var aCallable = require('../internals/a-callable'); + +var bind = uncurryThis(uncurryThis.bind); + +// optional / simple context binding +module.exports = function (fn, that) { + aCallable(fn); + return that === undefined ? fn : bind ? bind(fn, that) : function (/* ...args */) { + return fn.apply(that, arguments); + }; +}; + +},{"../internals/a-callable":57,"../internals/function-uncurry-this":99}],97:[function(require,module,exports){ +var call = Function.prototype.call; + +module.exports = call.bind ? call.bind(call) : function () { + return call.apply(call, arguments); +}; + +},{}],98:[function(require,module,exports){ +var DESCRIPTORS = require('../internals/descriptors'); +var hasOwn = require('../internals/has-own-property'); + +var FunctionPrototype = Function.prototype; +// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe +var getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor; + +var EXISTS = hasOwn(FunctionPrototype, 'name'); +// additional protection from minified / mangled / dropped function names +var PROPER = EXISTS && (function something() { /* empty */ }).name === 'something'; +var CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable)); + +module.exports = { + EXISTS: EXISTS, + PROPER: PROPER, + CONFIGURABLE: CONFIGURABLE +}; + +},{"../internals/descriptors":83,"../internals/has-own-property":105}],99:[function(require,module,exports){ +var FunctionPrototype = Function.prototype; +var bind = FunctionPrototype.bind; +var call = FunctionPrototype.call; +var callBind = bind && bind.bind(call); + +module.exports = bind ? function (fn) { + return fn && callBind(call, fn); +} : function (fn) { + return fn && function () { + return call.apply(fn, arguments); + }; +}; + +},{}],100:[function(require,module,exports){ +var path = require('../internals/path'); +var global = require('../internals/global'); +var isCallable = require('../internals/is-callable'); + +var aFunction = function (variable) { + return isCallable(variable) ? variable : undefined; +}; + +module.exports = function (namespace, method) { + return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace]) + : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method]; +}; + +},{"../internals/global":104,"../internals/is-callable":114,"../internals/path":142}],101:[function(require,module,exports){ +var classof = require('../internals/classof'); +var getMethod = require('../internals/get-method'); +var Iterators = require('../internals/iterators'); +var wellKnownSymbol = require('../internals/well-known-symbol'); + +var ITERATOR = wellKnownSymbol('iterator'); + +module.exports = function (it) { + if (it != undefined) return getMethod(it, ITERATOR) + || getMethod(it, '@@iterator') + || Iterators[classof(it)]; +}; + +},{"../internals/classof":75,"../internals/get-method":103,"../internals/iterators":122,"../internals/well-known-symbol":166}],102:[function(require,module,exports){ +var global = require('../internals/global'); +var call = require('../internals/function-call'); +var aCallable = require('../internals/a-callable'); +var anObject = require('../internals/an-object'); +var tryToString = require('../internals/try-to-string'); +var getIteratorMethod = require('../internals/get-iterator-method'); + +var TypeError = global.TypeError; + +module.exports = function (argument, usingIterator) { + var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator; + if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument)); + throw TypeError(tryToString(argument) + ' is not iterable'); +}; + +},{"../internals/a-callable":57,"../internals/an-object":60,"../internals/function-call":97,"../internals/get-iterator-method":101,"../internals/global":104,"../internals/try-to-string":162}],103:[function(require,module,exports){ +var aCallable = require('../internals/a-callable'); + +// `GetMethod` abstract operation +// https://tc39.es/ecma262/#sec-getmethod +module.exports = function (V, P) { + var func = V[P]; + return func == null ? undefined : aCallable(func); +}; + +},{"../internals/a-callable":57}],104:[function(require,module,exports){ +(function (global){(function (){ +var check = function (it) { + return it && it.Math == Math && it; +}; + +// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 +module.exports = + // eslint-disable-next-line es/no-global-this -- safe + check(typeof globalThis == 'object' && globalThis) || + check(typeof window == 'object' && window) || + // eslint-disable-next-line no-restricted-globals -- safe + check(typeof self == 'object' && self) || + check(typeof global == 'object' && global) || + // eslint-disable-next-line no-new-func -- fallback + (function () { return this; })() || Function('return this')(); + +}).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) +},{}],105:[function(require,module,exports){ +var uncurryThis = require('../internals/function-uncurry-this'); +var toObject = require('../internals/to-object'); + +var hasOwnProperty = uncurryThis({}.hasOwnProperty); + +// `HasOwnProperty` abstract operation +// https://tc39.es/ecma262/#sec-hasownproperty +module.exports = Object.hasOwn || function hasOwn(it, key) { + return hasOwnProperty(toObject(it), key); +}; + +},{"../internals/function-uncurry-this":99,"../internals/to-object":157}],106:[function(require,module,exports){ +module.exports = {}; + +},{}],107:[function(require,module,exports){ +var getBuiltIn = require('../internals/get-built-in'); + +module.exports = getBuiltIn('document', 'documentElement'); + +},{"../internals/get-built-in":100}],108:[function(require,module,exports){ +var DESCRIPTORS = require('../internals/descriptors'); +var fails = require('../internals/fails'); +var createElement = require('../internals/document-create-element'); + +// Thank's IE8 for his funny defineProperty +module.exports = !DESCRIPTORS && !fails(function () { + // eslint-disable-next-line es/no-object-defineproperty -- requied for testing + return Object.defineProperty(createElement('div'), 'a', { + get: function () { return 7; } + }).a != 7; +}); + +},{"../internals/descriptors":83,"../internals/document-create-element":84,"../internals/fails":94}],109:[function(require,module,exports){ +var global = require('../internals/global'); +var uncurryThis = require('../internals/function-uncurry-this'); +var fails = require('../internals/fails'); +var classof = require('../internals/classof-raw'); + +var Object = global.Object; +var split = uncurryThis(''.split); + +// fallback for non-array-like ES3 and non-enumerable old V8 strings +module.exports = fails(function () { + // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346 + // eslint-disable-next-line no-prototype-builtins -- safe + return !Object('z').propertyIsEnumerable(0); +}) ? function (it) { + return classof(it) == 'String' ? split(it, '') : Object(it); +} : Object; + +},{"../internals/classof-raw":74,"../internals/fails":94,"../internals/function-uncurry-this":99,"../internals/global":104}],110:[function(require,module,exports){ +var uncurryThis = require('../internals/function-uncurry-this'); +var isCallable = require('../internals/is-callable'); +var store = require('../internals/shared-store'); + +var functionToString = uncurryThis(Function.toString); + +// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper +if (!isCallable(store.inspectSource)) { + store.inspectSource = function (it) { + return functionToString(it); + }; +} + +module.exports = store.inspectSource; + +},{"../internals/function-uncurry-this":99,"../internals/is-callable":114,"../internals/shared-store":149}],111:[function(require,module,exports){ +var NATIVE_WEAK_MAP = require('../internals/native-weak-map'); +var global = require('../internals/global'); +var uncurryThis = require('../internals/function-uncurry-this'); +var isObject = require('../internals/is-object'); +var createNonEnumerableProperty = require('../internals/create-non-enumerable-property'); +var hasOwn = require('../internals/has-own-property'); +var shared = require('../internals/shared-store'); +var sharedKey = require('../internals/shared-key'); +var hiddenKeys = require('../internals/hidden-keys'); + +var OBJECT_ALREADY_INITIALIZED = 'Object already initialized'; +var TypeError = global.TypeError; +var WeakMap = global.WeakMap; +var set, get, has; + +var enforce = function (it) { + return has(it) ? get(it) : set(it, {}); +}; + +var getterFor = function (TYPE) { + return function (it) { + var state; + if (!isObject(it) || (state = get(it)).type !== TYPE) { + throw TypeError('Incompatible receiver, ' + TYPE + ' required'); + } return state; + }; +}; + +if (NATIVE_WEAK_MAP || shared.state) { + var store = shared.state || (shared.state = new WeakMap()); + var wmget = uncurryThis(store.get); + var wmhas = uncurryThis(store.has); + var wmset = uncurryThis(store.set); + set = function (it, metadata) { + if (wmhas(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED); + metadata.facade = it; + wmset(store, it, metadata); + return metadata; + }; + get = function (it) { + return wmget(store, it) || {}; + }; + has = function (it) { + return wmhas(store, it); + }; +} else { + var STATE = sharedKey('state'); + hiddenKeys[STATE] = true; + set = function (it, metadata) { + if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED); + metadata.facade = it; + createNonEnumerableProperty(it, STATE, metadata); + return metadata; + }; + get = function (it) { + return hasOwn(it, STATE) ? it[STATE] : {}; + }; + has = function (it) { + return hasOwn(it, STATE); + }; +} + +module.exports = { + set: set, + get: get, + has: has, + enforce: enforce, + getterFor: getterFor +}; + +},{"../internals/create-non-enumerable-property":78,"../internals/function-uncurry-this":99,"../internals/global":104,"../internals/has-own-property":105,"../internals/hidden-keys":106,"../internals/is-object":117,"../internals/native-weak-map":125,"../internals/shared-key":148,"../internals/shared-store":149}],112:[function(require,module,exports){ +var wellKnownSymbol = require('../internals/well-known-symbol'); +var Iterators = require('../internals/iterators'); + +var ITERATOR = wellKnownSymbol('iterator'); +var ArrayPrototype = Array.prototype; + +// check on default Array iterator +module.exports = function (it) { + return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it); +}; + +},{"../internals/iterators":122,"../internals/well-known-symbol":166}],113:[function(require,module,exports){ +var classof = require('../internals/classof-raw'); + +// `IsArray` abstract operation +// https://tc39.es/ecma262/#sec-isarray +// eslint-disable-next-line es/no-array-isarray -- safe +module.exports = Array.isArray || function isArray(argument) { + return classof(argument) == 'Array'; +}; + +},{"../internals/classof-raw":74}],114:[function(require,module,exports){ +// `IsCallable` abstract operation +// https://tc39.es/ecma262/#sec-iscallable +module.exports = function (argument) { + return typeof argument == 'function'; +}; + +},{}],115:[function(require,module,exports){ +var uncurryThis = require('../internals/function-uncurry-this'); +var fails = require('../internals/fails'); +var isCallable = require('../internals/is-callable'); +var classof = require('../internals/classof'); +var getBuiltIn = require('../internals/get-built-in'); +var inspectSource = require('../internals/inspect-source'); + +var noop = function () { /* empty */ }; +var empty = []; +var construct = getBuiltIn('Reflect', 'construct'); +var constructorRegExp = /^\s*(?:class|function)\b/; +var exec = uncurryThis(constructorRegExp.exec); +var INCORRECT_TO_STRING = !constructorRegExp.exec(noop); + +var isConstructorModern = function isConstructor(argument) { + if (!isCallable(argument)) return false; + try { + construct(noop, empty, argument); + return true; + } catch (error) { + return false; + } +}; + +var isConstructorLegacy = function isConstructor(argument) { + if (!isCallable(argument)) return false; + switch (classof(argument)) { + case 'AsyncFunction': + case 'GeneratorFunction': + case 'AsyncGeneratorFunction': return false; + } + try { + // we can't check .prototype since constructors produced by .bind haven't it + // `Function#toString` throws on some built-it function in some legacy engines + // (for example, `DOMQuad` and similar in FF41-) + return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument)); + } catch (error) { + return true; + } +}; + +isConstructorLegacy.sham = true; + +// `IsConstructor` abstract operation +// https://tc39.es/ecma262/#sec-isconstructor +module.exports = !construct || fails(function () { + var called; + return isConstructorModern(isConstructorModern.call) + || !isConstructorModern(Object) + || !isConstructorModern(function () { called = true; }) + || called; +}) ? isConstructorLegacy : isConstructorModern; + +},{"../internals/classof":75,"../internals/fails":94,"../internals/function-uncurry-this":99,"../internals/get-built-in":100,"../internals/inspect-source":110,"../internals/is-callable":114}],116:[function(require,module,exports){ +var fails = require('../internals/fails'); +var isCallable = require('../internals/is-callable'); + +var replacement = /#|\.prototype\./; + +var isForced = function (feature, detection) { + var value = data[normalize(feature)]; + return value == POLYFILL ? true + : value == NATIVE ? false + : isCallable(detection) ? fails(detection) + : !!detection; +}; + +var normalize = isForced.normalize = function (string) { + return String(string).replace(replacement, '.').toLowerCase(); +}; + +var data = isForced.data = {}; +var NATIVE = isForced.NATIVE = 'N'; +var POLYFILL = isForced.POLYFILL = 'P'; + +module.exports = isForced; + +},{"../internals/fails":94,"../internals/is-callable":114}],117:[function(require,module,exports){ +var isCallable = require('../internals/is-callable'); + +module.exports = function (it) { + return typeof it == 'object' ? it !== null : isCallable(it); +}; + +},{"../internals/is-callable":114}],118:[function(require,module,exports){ +module.exports = true; + +},{}],119:[function(require,module,exports){ +var global = require('../internals/global'); +var getBuiltIn = require('../internals/get-built-in'); +var isCallable = require('../internals/is-callable'); +var isPrototypeOf = require('../internals/object-is-prototype-of'); +var USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid'); + +var Object = global.Object; + +module.exports = USE_SYMBOL_AS_UID ? function (it) { + return typeof it == 'symbol'; +} : function (it) { + var $Symbol = getBuiltIn('Symbol'); + return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, Object(it)); +}; + +},{"../internals/get-built-in":100,"../internals/global":104,"../internals/is-callable":114,"../internals/object-is-prototype-of":135,"../internals/use-symbol-as-uid":164}],120:[function(require,module,exports){ +var call = require('../internals/function-call'); +var anObject = require('../internals/an-object'); +var getMethod = require('../internals/get-method'); + +module.exports = function (iterator, kind, value) { + var innerResult, innerError; + anObject(iterator); + try { + innerResult = getMethod(iterator, 'return'); + if (!innerResult) { + if (kind === 'throw') throw value; + return value; + } + innerResult = call(innerResult, iterator); + } catch (error) { + innerError = true; + innerResult = error; + } + if (kind === 'throw') throw value; + if (innerError) throw innerResult; + anObject(innerResult); + return value; +}; + +},{"../internals/an-object":60,"../internals/function-call":97,"../internals/get-method":103}],121:[function(require,module,exports){ +'use strict'; +var fails = require('../internals/fails'); +var isCallable = require('../internals/is-callable'); +var create = require('../internals/object-create'); +var getPrototypeOf = require('../internals/object-get-prototype-of'); +var redefine = require('../internals/redefine'); +var wellKnownSymbol = require('../internals/well-known-symbol'); +var IS_PURE = require('../internals/is-pure'); + +var ITERATOR = wellKnownSymbol('iterator'); +var BUGGY_SAFARI_ITERATORS = false; + +// `%IteratorPrototype%` object +// https://tc39.es/ecma262/#sec-%iteratorprototype%-object +var IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator; + +/* eslint-disable es/no-array-prototype-keys -- safe */ +if ([].keys) { + arrayIterator = [].keys(); + // Safari 8 has buggy iterators w/o `next` + if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true; + else { + PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator)); + if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype; + } +} + +var NEW_ITERATOR_PROTOTYPE = IteratorPrototype == undefined || fails(function () { + var test = {}; + // FF44- legacy iterators case + return IteratorPrototype[ITERATOR].call(test) !== test; +}); + +if (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {}; +else if (IS_PURE) IteratorPrototype = create(IteratorPrototype); + +// `%IteratorPrototype%[@@iterator]()` method +// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator +if (!isCallable(IteratorPrototype[ITERATOR])) { + redefine(IteratorPrototype, ITERATOR, function () { + return this; + }); +} + +module.exports = { + IteratorPrototype: IteratorPrototype, + BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS +}; + +},{"../internals/fails":94,"../internals/is-callable":114,"../internals/is-pure":118,"../internals/object-create":127,"../internals/object-get-prototype-of":134,"../internals/redefine":143,"../internals/well-known-symbol":166}],122:[function(require,module,exports){ +arguments[4][106][0].apply(exports,arguments) +},{"dup":106}],123:[function(require,module,exports){ +var toLength = require('../internals/to-length'); + +// `LengthOfArrayLike` abstract operation +// https://tc39.es/ecma262/#sec-lengthofarraylike +module.exports = function (obj) { + return toLength(obj.length); +}; + +},{"../internals/to-length":156}],124:[function(require,module,exports){ +/* eslint-disable es/no-symbol -- required for testing */ +var V8_VERSION = require('../internals/engine-v8-version'); +var fails = require('../internals/fails'); + +// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing +module.exports = !!Object.getOwnPropertySymbols && !fails(function () { + var symbol = Symbol(); + // Chrome 38 Symbol has incorrect toString conversion + // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances + return !String(symbol) || !(Object(symbol) instanceof Symbol) || + // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances + !Symbol.sham && V8_VERSION && V8_VERSION < 41; +}); + +},{"../internals/engine-v8-version":89,"../internals/fails":94}],125:[function(require,module,exports){ +var global = require('../internals/global'); +var isCallable = require('../internals/is-callable'); +var inspectSource = require('../internals/inspect-source'); + +var WeakMap = global.WeakMap; + +module.exports = isCallable(WeakMap) && /native code/.test(inspectSource(WeakMap)); + +},{"../internals/global":104,"../internals/inspect-source":110,"../internals/is-callable":114}],126:[function(require,module,exports){ +var global = require('../internals/global'); +var fails = require('../internals/fails'); +var uncurryThis = require('../internals/function-uncurry-this'); +var toString = require('../internals/to-string'); +var trim = require('../internals/string-trim').trim; +var whitespaces = require('../internals/whitespaces'); + +var $parseInt = global.parseInt; +var Symbol = global.Symbol; +var ITERATOR = Symbol && Symbol.iterator; +var hex = /^[+-]?0x/i; +var exec = uncurryThis(hex.exec); +var FORCED = $parseInt(whitespaces + '08') !== 8 || $parseInt(whitespaces + '0x16') !== 22 + // MS Edge 18- broken with boxed symbols + || (ITERATOR && !fails(function () { $parseInt(Object(ITERATOR)); })); + +// `parseInt` method +// https://tc39.es/ecma262/#sec-parseint-string-radix +module.exports = FORCED ? function parseInt(string, radix) { + var S = trim(toString(string)); + return $parseInt(S, (radix >>> 0) || (exec(hex, S) ? 16 : 10)); +} : $parseInt; + +},{"../internals/fails":94,"../internals/function-uncurry-this":99,"../internals/global":104,"../internals/string-trim":152,"../internals/to-string":161,"../internals/whitespaces":167}],127:[function(require,module,exports){ +/* global ActiveXObject -- old IE, WSH */ +var anObject = require('../internals/an-object'); +var defineProperties = require('../internals/object-define-properties'); +var enumBugKeys = require('../internals/enum-bug-keys'); +var hiddenKeys = require('../internals/hidden-keys'); +var html = require('../internals/html'); +var documentCreateElement = require('../internals/document-create-element'); +var sharedKey = require('../internals/shared-key'); + +var GT = '>'; +var LT = '<'; +var PROTOTYPE = 'prototype'; +var SCRIPT = 'script'; +var IE_PROTO = sharedKey('IE_PROTO'); + +var EmptyConstructor = function () { /* empty */ }; + +var scriptTag = function (content) { + return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT; +}; + +// Create object with fake `null` prototype: use ActiveX Object with cleared prototype +var NullProtoObjectViaActiveX = function (activeXDocument) { + activeXDocument.write(scriptTag('')); + activeXDocument.close(); + var temp = activeXDocument.parentWindow.Object; + activeXDocument = null; // avoid memory leak + return temp; +}; + +// Create object with fake `null` prototype: use iframe Object with cleared prototype +var NullProtoObjectViaIFrame = function () { + // Thrash, waste and sodomy: IE GC bug + var iframe = documentCreateElement('iframe'); + var JS = 'java' + SCRIPT + ':'; + var iframeDocument; + iframe.style.display = 'none'; + html.appendChild(iframe); + // https://github.com/zloirock/core-js/issues/475 + iframe.src = String(JS); + iframeDocument = iframe.contentWindow.document; + iframeDocument.open(); + iframeDocument.write(scriptTag('document.F=Object')); + iframeDocument.close(); + return iframeDocument.F; +}; + +// Check for document.domain and active x support +// No need to use active x approach when document.domain is not set +// see https://github.com/es-shims/es5-shim/issues/150 +// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346 +// avoid IE GC bug +var activeXDocument; +var NullProtoObject = function () { + try { + activeXDocument = new ActiveXObject('htmlfile'); + } catch (error) { /* ignore */ } + NullProtoObject = typeof document != 'undefined' + ? document.domain && activeXDocument + ? NullProtoObjectViaActiveX(activeXDocument) // old IE + : NullProtoObjectViaIFrame() + : NullProtoObjectViaActiveX(activeXDocument); // WSH + var length = enumBugKeys.length; + while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]]; + return NullProtoObject(); +}; + +hiddenKeys[IE_PROTO] = true; + +// `Object.create` method +// https://tc39.es/ecma262/#sec-object.create +module.exports = Object.create || function create(O, Properties) { + var result; + if (O !== null) { + EmptyConstructor[PROTOTYPE] = anObject(O); + result = new EmptyConstructor(); + EmptyConstructor[PROTOTYPE] = null; + // add "__proto__" for Object.getPrototypeOf polyfill + result[IE_PROTO] = O; + } else result = NullProtoObject(); + return Properties === undefined ? result : defineProperties(result, Properties); +}; + +},{"../internals/an-object":60,"../internals/document-create-element":84,"../internals/enum-bug-keys":92,"../internals/hidden-keys":106,"../internals/html":107,"../internals/object-define-properties":128,"../internals/shared-key":148}],128:[function(require,module,exports){ +var DESCRIPTORS = require('../internals/descriptors'); +var definePropertyModule = require('../internals/object-define-property'); +var anObject = require('../internals/an-object'); +var toIndexedObject = require('../internals/to-indexed-object'); +var objectKeys = require('../internals/object-keys'); + +// `Object.defineProperties` method +// https://tc39.es/ecma262/#sec-object.defineproperties +// eslint-disable-next-line es/no-object-defineproperties -- safe +module.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) { + anObject(O); + var props = toIndexedObject(Properties); + var keys = objectKeys(Properties); + var length = keys.length; + var index = 0; + var key; + while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]); + return O; +}; + +},{"../internals/an-object":60,"../internals/descriptors":83,"../internals/object-define-property":129,"../internals/object-keys":137,"../internals/to-indexed-object":154}],129:[function(require,module,exports){ +var global = require('../internals/global'); +var DESCRIPTORS = require('../internals/descriptors'); +var IE8_DOM_DEFINE = require('../internals/ie8-dom-define'); +var anObject = require('../internals/an-object'); +var toPropertyKey = require('../internals/to-property-key'); + +var TypeError = global.TypeError; +// eslint-disable-next-line es/no-object-defineproperty -- safe +var $defineProperty = Object.defineProperty; + +// `Object.defineProperty` method +// https://tc39.es/ecma262/#sec-object.defineproperty +exports.f = DESCRIPTORS ? $defineProperty : function defineProperty(O, P, Attributes) { + anObject(O); + P = toPropertyKey(P); + anObject(Attributes); + if (IE8_DOM_DEFINE) try { + return $defineProperty(O, P, Attributes); + } catch (error) { /* empty */ } + if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported'); + if ('value' in Attributes) O[P] = Attributes.value; + return O; +}; + +},{"../internals/an-object":60,"../internals/descriptors":83,"../internals/global":104,"../internals/ie8-dom-define":108,"../internals/to-property-key":159}],130:[function(require,module,exports){ +var DESCRIPTORS = require('../internals/descriptors'); +var call = require('../internals/function-call'); +var propertyIsEnumerableModule = require('../internals/object-property-is-enumerable'); +var createPropertyDescriptor = require('../internals/create-property-descriptor'); +var toIndexedObject = require('../internals/to-indexed-object'); +var toPropertyKey = require('../internals/to-property-key'); +var hasOwn = require('../internals/has-own-property'); +var IE8_DOM_DEFINE = require('../internals/ie8-dom-define'); + +// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe +var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + +// `Object.getOwnPropertyDescriptor` method +// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor +exports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) { + O = toIndexedObject(O); + P = toPropertyKey(P); + if (IE8_DOM_DEFINE) try { + return $getOwnPropertyDescriptor(O, P); + } catch (error) { /* empty */ } + if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]); +}; + +},{"../internals/create-property-descriptor":79,"../internals/descriptors":83,"../internals/function-call":97,"../internals/has-own-property":105,"../internals/ie8-dom-define":108,"../internals/object-property-is-enumerable":138,"../internals/to-indexed-object":154,"../internals/to-property-key":159}],131:[function(require,module,exports){ +/* eslint-disable es/no-object-getownpropertynames -- safe */ +var classof = require('../internals/classof-raw'); +var toIndexedObject = require('../internals/to-indexed-object'); +var $getOwnPropertyNames = require('../internals/object-get-own-property-names').f; +var arraySlice = require('../internals/array-slice-simple'); + +var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames + ? Object.getOwnPropertyNames(window) : []; + +var getWindowNames = function (it) { + try { + return $getOwnPropertyNames(it); + } catch (error) { + return arraySlice(windowNames); + } +}; + +// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window +module.exports.f = function getOwnPropertyNames(it) { + return windowNames && classof(it) == 'Window' + ? getWindowNames(it) + : $getOwnPropertyNames(toIndexedObject(it)); +}; + +},{"../internals/array-slice-simple":67,"../internals/classof-raw":74,"../internals/object-get-own-property-names":132,"../internals/to-indexed-object":154}],132:[function(require,module,exports){ +var internalObjectKeys = require('../internals/object-keys-internal'); +var enumBugKeys = require('../internals/enum-bug-keys'); + +var hiddenKeys = enumBugKeys.concat('length', 'prototype'); + +// `Object.getOwnPropertyNames` method +// https://tc39.es/ecma262/#sec-object.getownpropertynames +// eslint-disable-next-line es/no-object-getownpropertynames -- safe +exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { + return internalObjectKeys(O, hiddenKeys); +}; + +},{"../internals/enum-bug-keys":92,"../internals/object-keys-internal":136}],133:[function(require,module,exports){ +// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe +exports.f = Object.getOwnPropertySymbols; + +},{}],134:[function(require,module,exports){ +var global = require('../internals/global'); +var hasOwn = require('../internals/has-own-property'); +var isCallable = require('../internals/is-callable'); +var toObject = require('../internals/to-object'); +var sharedKey = require('../internals/shared-key'); +var CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter'); + +var IE_PROTO = sharedKey('IE_PROTO'); +var Object = global.Object; +var ObjectPrototype = Object.prototype; + +// `Object.getPrototypeOf` method +// https://tc39.es/ecma262/#sec-object.getprototypeof +module.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) { + var object = toObject(O); + if (hasOwn(object, IE_PROTO)) return object[IE_PROTO]; + var constructor = object.constructor; + if (isCallable(constructor) && object instanceof constructor) { + return constructor.prototype; + } return object instanceof Object ? ObjectPrototype : null; +}; + +},{"../internals/correct-prototype-getter":76,"../internals/global":104,"../internals/has-own-property":105,"../internals/is-callable":114,"../internals/shared-key":148,"../internals/to-object":157}],135:[function(require,module,exports){ +var uncurryThis = require('../internals/function-uncurry-this'); + +module.exports = uncurryThis({}.isPrototypeOf); + +},{"../internals/function-uncurry-this":99}],136:[function(require,module,exports){ +var uncurryThis = require('../internals/function-uncurry-this'); +var hasOwn = require('../internals/has-own-property'); +var toIndexedObject = require('../internals/to-indexed-object'); +var indexOf = require('../internals/array-includes').indexOf; +var hiddenKeys = require('../internals/hidden-keys'); + +var push = uncurryThis([].push); + +module.exports = function (object, names) { + var O = toIndexedObject(object); + var i = 0; + var result = []; + var key; + for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key); + // Don't enum bug & hidden keys + while (names.length > i) if (hasOwn(O, key = names[i++])) { + ~indexOf(result, key) || push(result, key); + } + return result; +}; + +},{"../internals/array-includes":63,"../internals/function-uncurry-this":99,"../internals/has-own-property":105,"../internals/hidden-keys":106,"../internals/to-indexed-object":154}],137:[function(require,module,exports){ +var internalObjectKeys = require('../internals/object-keys-internal'); +var enumBugKeys = require('../internals/enum-bug-keys'); + +// `Object.keys` method +// https://tc39.es/ecma262/#sec-object.keys +// eslint-disable-next-line es/no-object-keys -- safe +module.exports = Object.keys || function keys(O) { + return internalObjectKeys(O, enumBugKeys); +}; + +},{"../internals/enum-bug-keys":92,"../internals/object-keys-internal":136}],138:[function(require,module,exports){ +'use strict'; +var $propertyIsEnumerable = {}.propertyIsEnumerable; +// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe +var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + +// Nashorn ~ JDK8 bug +var NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1); + +// `Object.prototype.propertyIsEnumerable` method implementation +// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable +exports.f = NASHORN_BUG ? function propertyIsEnumerable(V) { + var descriptor = getOwnPropertyDescriptor(this, V); + return !!descriptor && descriptor.enumerable; +} : $propertyIsEnumerable; + +},{}],139:[function(require,module,exports){ +/* eslint-disable no-proto -- safe */ +var uncurryThis = require('../internals/function-uncurry-this'); +var anObject = require('../internals/an-object'); +var aPossiblePrototype = require('../internals/a-possible-prototype'); + +// `Object.setPrototypeOf` method +// https://tc39.es/ecma262/#sec-object.setprototypeof +// Works with __proto__ only. Old v8 can't work with null proto objects. +// eslint-disable-next-line es/no-object-setprototypeof -- safe +module.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () { + var CORRECT_SETTER = false; + var test = {}; + var setter; + try { + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + setter = uncurryThis(Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set); + setter(test, []); + CORRECT_SETTER = test instanceof Array; + } catch (error) { /* empty */ } + return function setPrototypeOf(O, proto) { + anObject(O); + aPossiblePrototype(proto); + if (CORRECT_SETTER) setter(O, proto); + else O.__proto__ = proto; + return O; + }; +}() : undefined); + +},{"../internals/a-possible-prototype":58,"../internals/an-object":60,"../internals/function-uncurry-this":99}],140:[function(require,module,exports){ +'use strict'; +var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support'); +var classof = require('../internals/classof'); + +// `Object.prototype.toString` method implementation +// https://tc39.es/ecma262/#sec-object.prototype.tostring +module.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() { + return '[object ' + classof(this) + ']'; +}; + +},{"../internals/classof":75,"../internals/to-string-tag-support":160}],141:[function(require,module,exports){ +var global = require('../internals/global'); +var call = require('../internals/function-call'); +var isCallable = require('../internals/is-callable'); +var isObject = require('../internals/is-object'); + +var TypeError = global.TypeError; + +// `OrdinaryToPrimitive` abstract operation +// https://tc39.es/ecma262/#sec-ordinarytoprimitive +module.exports = function (input, pref) { + var fn, val; + if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val; + if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val; + if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val; + throw TypeError("Can't convert object to primitive value"); +}; + +},{"../internals/function-call":97,"../internals/global":104,"../internals/is-callable":114,"../internals/is-object":117}],142:[function(require,module,exports){ +arguments[4][106][0].apply(exports,arguments) +},{"dup":106}],143:[function(require,module,exports){ +var createNonEnumerableProperty = require('../internals/create-non-enumerable-property'); + +module.exports = function (target, key, value, options) { + if (options && options.enumerable) target[key] = value; + else createNonEnumerableProperty(target, key, value); +}; + +},{"../internals/create-non-enumerable-property":78}],144:[function(require,module,exports){ +'use strict'; +var anObject = require('../internals/an-object'); + +// `RegExp.prototype.flags` getter implementation +// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags +module.exports = function () { + var that = anObject(this); + var result = ''; + if (that.global) result += 'g'; + if (that.ignoreCase) result += 'i'; + if (that.multiline) result += 'm'; + if (that.dotAll) result += 's'; + if (that.unicode) result += 'u'; + if (that.sticky) result += 'y'; + return result; +}; + +},{"../internals/an-object":60}],145:[function(require,module,exports){ +var global = require('../internals/global'); + +var TypeError = global.TypeError; + +// `RequireObjectCoercible` abstract operation +// https://tc39.es/ecma262/#sec-requireobjectcoercible +module.exports = function (it) { + if (it == undefined) throw TypeError("Can't call method on " + it); + return it; +}; + +},{"../internals/global":104}],146:[function(require,module,exports){ +var global = require('../internals/global'); + +// eslint-disable-next-line es/no-object-defineproperty -- safe +var defineProperty = Object.defineProperty; + +module.exports = function (key, value) { + try { + defineProperty(global, key, { value: value, configurable: true, writable: true }); + } catch (error) { + global[key] = value; + } return value; +}; + +},{"../internals/global":104}],147:[function(require,module,exports){ +var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support'); +var defineProperty = require('../internals/object-define-property').f; +var createNonEnumerableProperty = require('../internals/create-non-enumerable-property'); +var hasOwn = require('../internals/has-own-property'); +var toString = require('../internals/object-to-string'); +var wellKnownSymbol = require('../internals/well-known-symbol'); + +var TO_STRING_TAG = wellKnownSymbol('toStringTag'); + +module.exports = function (it, TAG, STATIC, SET_METHOD) { + if (it) { + var target = STATIC ? it : it.prototype; + if (!hasOwn(target, TO_STRING_TAG)) { + defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG }); + } + if (SET_METHOD && !TO_STRING_TAG_SUPPORT) { + createNonEnumerableProperty(target, 'toString', toString); + } + } +}; + +},{"../internals/create-non-enumerable-property":78,"../internals/has-own-property":105,"../internals/object-define-property":129,"../internals/object-to-string":140,"../internals/to-string-tag-support":160,"../internals/well-known-symbol":166}],148:[function(require,module,exports){ +var shared = require('../internals/shared'); +var uid = require('../internals/uid'); + +var keys = shared('keys'); + +module.exports = function (key) { + return keys[key] || (keys[key] = uid(key)); +}; + +},{"../internals/shared":150,"../internals/uid":163}],149:[function(require,module,exports){ +var global = require('../internals/global'); +var setGlobal = require('../internals/set-global'); + +var SHARED = '__core-js_shared__'; +var store = global[SHARED] || setGlobal(SHARED, {}); + +module.exports = store; + +},{"../internals/global":104,"../internals/set-global":146}],150:[function(require,module,exports){ +var IS_PURE = require('../internals/is-pure'); +var store = require('../internals/shared-store'); + +(module.exports = function (key, value) { + return store[key] || (store[key] = value !== undefined ? value : {}); +})('versions', []).push({ + version: '3.20.0', + mode: IS_PURE ? 'pure' : 'global', + copyright: '© 2021 Denis Pushkarev (zloirock.ru)' +}); + +},{"../internals/is-pure":118,"../internals/shared-store":149}],151:[function(require,module,exports){ +var uncurryThis = require('../internals/function-uncurry-this'); +var toIntegerOrInfinity = require('../internals/to-integer-or-infinity'); +var toString = require('../internals/to-string'); +var requireObjectCoercible = require('../internals/require-object-coercible'); + +var charAt = uncurryThis(''.charAt); +var charCodeAt = uncurryThis(''.charCodeAt); +var stringSlice = uncurryThis(''.slice); + +var createMethod = function (CONVERT_TO_STRING) { + return function ($this, pos) { + var S = toString(requireObjectCoercible($this)); + var position = toIntegerOrInfinity(pos); + var size = S.length; + var first, second; + if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined; + first = charCodeAt(S, position); + return first < 0xD800 || first > 0xDBFF || position + 1 === size + || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF + ? CONVERT_TO_STRING + ? charAt(S, position) + : first + : CONVERT_TO_STRING + ? stringSlice(S, position, position + 2) + : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000; + }; +}; + +module.exports = { + // `String.prototype.codePointAt` method + // https://tc39.es/ecma262/#sec-string.prototype.codepointat + codeAt: createMethod(false), + // `String.prototype.at` method + // https://github.com/mathiasbynens/String.prototype.at + charAt: createMethod(true) +}; + +},{"../internals/function-uncurry-this":99,"../internals/require-object-coercible":145,"../internals/to-integer-or-infinity":155,"../internals/to-string":161}],152:[function(require,module,exports){ +var uncurryThis = require('../internals/function-uncurry-this'); +var requireObjectCoercible = require('../internals/require-object-coercible'); +var toString = require('../internals/to-string'); +var whitespaces = require('../internals/whitespaces'); + +var replace = uncurryThis(''.replace); +var whitespace = '[' + whitespaces + ']'; +var ltrim = RegExp('^' + whitespace + whitespace + '*'); +var rtrim = RegExp(whitespace + whitespace + '*$'); + +// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation +var createMethod = function (TYPE) { + return function ($this) { + var string = toString(requireObjectCoercible($this)); + if (TYPE & 1) string = replace(string, ltrim, ''); + if (TYPE & 2) string = replace(string, rtrim, ''); + return string; + }; +}; + +module.exports = { + // `String.prototype.{ trimLeft, trimStart }` methods + // https://tc39.es/ecma262/#sec-string.prototype.trimstart + start: createMethod(1), + // `String.prototype.{ trimRight, trimEnd }` methods + // https://tc39.es/ecma262/#sec-string.prototype.trimend + end: createMethod(2), + // `String.prototype.trim` method + // https://tc39.es/ecma262/#sec-string.prototype.trim + trim: createMethod(3) +}; + +},{"../internals/function-uncurry-this":99,"../internals/require-object-coercible":145,"../internals/to-string":161,"../internals/whitespaces":167}],153:[function(require,module,exports){ +var toIntegerOrInfinity = require('../internals/to-integer-or-infinity'); + +var max = Math.max; +var min = Math.min; + +// Helper for a popular repeating case of the spec: +// Let integer be ? ToInteger(index). +// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length). +module.exports = function (index, length) { + var integer = toIntegerOrInfinity(index); + return integer < 0 ? max(integer + length, 0) : min(integer, length); +}; + +},{"../internals/to-integer-or-infinity":155}],154:[function(require,module,exports){ +// toObject with fallback for non-array-like ES3 strings +var IndexedObject = require('../internals/indexed-object'); +var requireObjectCoercible = require('../internals/require-object-coercible'); + +module.exports = function (it) { + return IndexedObject(requireObjectCoercible(it)); +}; + +},{"../internals/indexed-object":109,"../internals/require-object-coercible":145}],155:[function(require,module,exports){ +var ceil = Math.ceil; +var floor = Math.floor; + +// `ToIntegerOrInfinity` abstract operation +// https://tc39.es/ecma262/#sec-tointegerorinfinity +module.exports = function (argument) { + var number = +argument; + // eslint-disable-next-line no-self-compare -- safe + return number !== number || number === 0 ? 0 : (number > 0 ? floor : ceil)(number); +}; + +},{}],156:[function(require,module,exports){ +var toIntegerOrInfinity = require('../internals/to-integer-or-infinity'); + +var min = Math.min; + +// `ToLength` abstract operation +// https://tc39.es/ecma262/#sec-tolength +module.exports = function (argument) { + return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991 +}; + +},{"../internals/to-integer-or-infinity":155}],157:[function(require,module,exports){ +var global = require('../internals/global'); +var requireObjectCoercible = require('../internals/require-object-coercible'); + +var Object = global.Object; + +// `ToObject` abstract operation +// https://tc39.es/ecma262/#sec-toobject +module.exports = function (argument) { + return Object(requireObjectCoercible(argument)); +}; + +},{"../internals/global":104,"../internals/require-object-coercible":145}],158:[function(require,module,exports){ +var global = require('../internals/global'); +var call = require('../internals/function-call'); +var isObject = require('../internals/is-object'); +var isSymbol = require('../internals/is-symbol'); +var getMethod = require('../internals/get-method'); +var ordinaryToPrimitive = require('../internals/ordinary-to-primitive'); +var wellKnownSymbol = require('../internals/well-known-symbol'); + +var TypeError = global.TypeError; +var TO_PRIMITIVE = wellKnownSymbol('toPrimitive'); + +// `ToPrimitive` abstract operation +// https://tc39.es/ecma262/#sec-toprimitive +module.exports = function (input, pref) { + if (!isObject(input) || isSymbol(input)) return input; + var exoticToPrim = getMethod(input, TO_PRIMITIVE); + var result; + if (exoticToPrim) { + if (pref === undefined) pref = 'default'; + result = call(exoticToPrim, input, pref); + if (!isObject(result) || isSymbol(result)) return result; + throw TypeError("Can't convert object to primitive value"); + } + if (pref === undefined) pref = 'number'; + return ordinaryToPrimitive(input, pref); +}; + +},{"../internals/function-call":97,"../internals/get-method":103,"../internals/global":104,"../internals/is-object":117,"../internals/is-symbol":119,"../internals/ordinary-to-primitive":141,"../internals/well-known-symbol":166}],159:[function(require,module,exports){ +var toPrimitive = require('../internals/to-primitive'); +var isSymbol = require('../internals/is-symbol'); + +// `ToPropertyKey` abstract operation +// https://tc39.es/ecma262/#sec-topropertykey +module.exports = function (argument) { + var key = toPrimitive(argument, 'string'); + return isSymbol(key) ? key : key + ''; +}; + +},{"../internals/is-symbol":119,"../internals/to-primitive":158}],160:[function(require,module,exports){ +var wellKnownSymbol = require('../internals/well-known-symbol'); + +var TO_STRING_TAG = wellKnownSymbol('toStringTag'); +var test = {}; + +test[TO_STRING_TAG] = 'z'; + +module.exports = String(test) === '[object z]'; + +},{"../internals/well-known-symbol":166}],161:[function(require,module,exports){ +var global = require('../internals/global'); +var classof = require('../internals/classof'); + +var String = global.String; + +module.exports = function (argument) { + if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string'); + return String(argument); +}; + +},{"../internals/classof":75,"../internals/global":104}],162:[function(require,module,exports){ +var global = require('../internals/global'); + +var String = global.String; + +module.exports = function (argument) { + try { + return String(argument); + } catch (error) { + return 'Object'; + } +}; + +},{"../internals/global":104}],163:[function(require,module,exports){ +var uncurryThis = require('../internals/function-uncurry-this'); + +var id = 0; +var postfix = Math.random(); +var toString = uncurryThis(1.0.toString); + +module.exports = function (key) { + return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36); +}; + +},{"../internals/function-uncurry-this":99}],164:[function(require,module,exports){ +/* eslint-disable es/no-symbol -- required for testing */ +var NATIVE_SYMBOL = require('../internals/native-symbol'); + +module.exports = NATIVE_SYMBOL + && !Symbol.sham + && typeof Symbol.iterator == 'symbol'; + +},{"../internals/native-symbol":124}],165:[function(require,module,exports){ +var wellKnownSymbol = require('../internals/well-known-symbol'); + +exports.f = wellKnownSymbol; + +},{"../internals/well-known-symbol":166}],166:[function(require,module,exports){ +var global = require('../internals/global'); +var shared = require('../internals/shared'); +var hasOwn = require('../internals/has-own-property'); +var uid = require('../internals/uid'); +var NATIVE_SYMBOL = require('../internals/native-symbol'); +var USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid'); + +var WellKnownSymbolsStore = shared('wks'); +var Symbol = global.Symbol; +var symbolFor = Symbol && Symbol['for']; +var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid; + +module.exports = function (name) { + if (!hasOwn(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) { + var description = 'Symbol.' + name; + if (NATIVE_SYMBOL && hasOwn(Symbol, name)) { + WellKnownSymbolsStore[name] = Symbol[name]; + } else if (USE_SYMBOL_AS_UID && symbolFor) { + WellKnownSymbolsStore[name] = symbolFor(description); + } else { + WellKnownSymbolsStore[name] = createWellKnownSymbol(description); + } + } return WellKnownSymbolsStore[name]; +}; + +},{"../internals/global":104,"../internals/has-own-property":105,"../internals/native-symbol":124,"../internals/shared":150,"../internals/uid":163,"../internals/use-symbol-as-uid":164}],167:[function(require,module,exports){ +// a string of all valid unicode whitespaces +module.exports = '\u0009\u000A\u000B\u000C\u000D\u0020\u00A0\u1680\u2000\u2001\u2002' + + '\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF'; + +},{}],168:[function(require,module,exports){ +'use strict'; +var $ = require('../internals/export'); +var global = require('../internals/global'); +var fails = require('../internals/fails'); +var isArray = require('../internals/is-array'); +var isObject = require('../internals/is-object'); +var toObject = require('../internals/to-object'); +var lengthOfArrayLike = require('../internals/length-of-array-like'); +var createProperty = require('../internals/create-property'); +var arraySpeciesCreate = require('../internals/array-species-create'); +var arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support'); +var wellKnownSymbol = require('../internals/well-known-symbol'); +var V8_VERSION = require('../internals/engine-v8-version'); + +var IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable'); +var MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; +var MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded'; +var TypeError = global.TypeError; + +// We can't use this feature detection in V8 since it causes +// deoptimization and serious performance degradation +// https://github.com/zloirock/core-js/issues/679 +var IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () { + var array = []; + array[IS_CONCAT_SPREADABLE] = false; + return array.concat()[0] !== array; +}); + +var SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat'); + +var isConcatSpreadable = function (O) { + if (!isObject(O)) return false; + var spreadable = O[IS_CONCAT_SPREADABLE]; + return spreadable !== undefined ? !!spreadable : isArray(O); +}; + +var FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT; + +// `Array.prototype.concat` method +// https://tc39.es/ecma262/#sec-array.prototype.concat +// with adding support of @@isConcatSpreadable and @@species +$({ target: 'Array', proto: true, forced: FORCED }, { + // eslint-disable-next-line no-unused-vars -- required for `.length` + concat: function concat(arg) { + var O = toObject(this); + var A = arraySpeciesCreate(O, 0); + var n = 0; + var i, k, length, len, E; + for (i = -1, length = arguments.length; i < length; i++) { + E = i === -1 ? O : arguments[i]; + if (isConcatSpreadable(E)) { + len = lengthOfArrayLike(E); + if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED); + for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]); + } else { + if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED); + createProperty(A, n++, E); + } + } + A.length = n; + return A; + } +}); + +},{"../internals/array-method-has-species-support":65,"../internals/array-species-create":71,"../internals/create-property":80,"../internals/engine-v8-version":89,"../internals/export":93,"../internals/fails":94,"../internals/global":104,"../internals/is-array":113,"../internals/is-object":117,"../internals/length-of-array-like":123,"../internals/to-object":157,"../internals/well-known-symbol":166}],169:[function(require,module,exports){ +'use strict'; +var $ = require('../internals/export'); +var forEach = require('../internals/array-for-each'); + +// `Array.prototype.forEach` method +// https://tc39.es/ecma262/#sec-array.prototype.foreach +// eslint-disable-next-line es/no-array-prototype-foreach -- safe +$({ target: 'Array', proto: true, forced: [].forEach != forEach }, { + forEach: forEach +}); + +},{"../internals/array-for-each":61,"../internals/export":93}],170:[function(require,module,exports){ +var $ = require('../internals/export'); +var from = require('../internals/array-from'); +var checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration'); + +var INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) { + // eslint-disable-next-line es/no-array-from -- required for testing + Array.from(iterable); +}); + +// `Array.from` method +// https://tc39.es/ecma262/#sec-array.from +$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, { + from: from +}); + +},{"../internals/array-from":62,"../internals/check-correctness-of-iteration":73,"../internals/export":93}],171:[function(require,module,exports){ +'use strict'; +/* eslint-disable es/no-array-prototype-indexof -- required for testing */ +var $ = require('../internals/export'); +var uncurryThis = require('../internals/function-uncurry-this'); +var $IndexOf = require('../internals/array-includes').indexOf; +var arrayMethodIsStrict = require('../internals/array-method-is-strict'); + +var un$IndexOf = uncurryThis([].indexOf); + +var NEGATIVE_ZERO = !!un$IndexOf && 1 / un$IndexOf([1], 1, -0) < 0; +var STRICT_METHOD = arrayMethodIsStrict('indexOf'); + +// `Array.prototype.indexOf` method +// https://tc39.es/ecma262/#sec-array.prototype.indexof +$({ target: 'Array', proto: true, forced: NEGATIVE_ZERO || !STRICT_METHOD }, { + indexOf: function indexOf(searchElement /* , fromIndex = 0 */) { + var fromIndex = arguments.length > 1 ? arguments[1] : undefined; + return NEGATIVE_ZERO + // convert -0 to +0 + ? un$IndexOf(this, searchElement, fromIndex) || 0 + : $IndexOf(this, searchElement, fromIndex); + } +}); + +},{"../internals/array-includes":63,"../internals/array-method-is-strict":66,"../internals/export":93,"../internals/function-uncurry-this":99}],172:[function(require,module,exports){ +var $ = require('../internals/export'); +var isArray = require('../internals/is-array'); + +// `Array.isArray` method +// https://tc39.es/ecma262/#sec-array.isarray +$({ target: 'Array', stat: true }, { + isArray: isArray +}); + +},{"../internals/export":93,"../internals/is-array":113}],173:[function(require,module,exports){ +'use strict'; +var toIndexedObject = require('../internals/to-indexed-object'); +var addToUnscopables = require('../internals/add-to-unscopables'); +var Iterators = require('../internals/iterators'); +var InternalStateModule = require('../internals/internal-state'); +var defineProperty = require('../internals/object-define-property').f; +var defineIterator = require('../internals/define-iterator'); +var IS_PURE = require('../internals/is-pure'); +var DESCRIPTORS = require('../internals/descriptors'); + +var ARRAY_ITERATOR = 'Array Iterator'; +var setInternalState = InternalStateModule.set; +var getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR); + +// `Array.prototype.entries` method +// https://tc39.es/ecma262/#sec-array.prototype.entries +// `Array.prototype.keys` method +// https://tc39.es/ecma262/#sec-array.prototype.keys +// `Array.prototype.values` method +// https://tc39.es/ecma262/#sec-array.prototype.values +// `Array.prototype[@@iterator]` method +// https://tc39.es/ecma262/#sec-array.prototype-@@iterator +// `CreateArrayIterator` internal method +// https://tc39.es/ecma262/#sec-createarrayiterator +module.exports = defineIterator(Array, 'Array', function (iterated, kind) { + setInternalState(this, { + type: ARRAY_ITERATOR, + target: toIndexedObject(iterated), // target + index: 0, // next index + kind: kind // kind + }); +// `%ArrayIteratorPrototype%.next` method +// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next +}, function () { + var state = getInternalState(this); + var target = state.target; + var kind = state.kind; + var index = state.index++; + if (!target || index >= target.length) { + state.target = undefined; + return { value: undefined, done: true }; + } + if (kind == 'keys') return { value: index, done: false }; + if (kind == 'values') return { value: target[index], done: false }; + return { value: [index, target[index]], done: false }; +}, 'values'); + +// argumentsList[@@iterator] is %ArrayProto_values% +// https://tc39.es/ecma262/#sec-createunmappedargumentsobject +// https://tc39.es/ecma262/#sec-createmappedargumentsobject +var values = Iterators.Arguments = Iterators.Array; + +// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables +addToUnscopables('keys'); +addToUnscopables('values'); +addToUnscopables('entries'); + +// V8 ~ Chrome 45- bug +if (!IS_PURE && DESCRIPTORS && values.name !== 'values') try { + defineProperty(values, 'name', { value: 'values' }); +} catch (error) { /* empty */ } + +},{"../internals/add-to-unscopables":59,"../internals/define-iterator":81,"../internals/descriptors":83,"../internals/internal-state":111,"../internals/is-pure":118,"../internals/iterators":122,"../internals/object-define-property":129,"../internals/to-indexed-object":154}],174:[function(require,module,exports){ +'use strict'; +var $ = require('../internals/export'); +var global = require('../internals/global'); +var isArray = require('../internals/is-array'); +var isConstructor = require('../internals/is-constructor'); +var isObject = require('../internals/is-object'); +var toAbsoluteIndex = require('../internals/to-absolute-index'); +var lengthOfArrayLike = require('../internals/length-of-array-like'); +var toIndexedObject = require('../internals/to-indexed-object'); +var createProperty = require('../internals/create-property'); +var wellKnownSymbol = require('../internals/well-known-symbol'); +var arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support'); +var un$Slice = require('../internals/array-slice'); + +var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice'); + +var SPECIES = wellKnownSymbol('species'); +var Array = global.Array; +var max = Math.max; + +// `Array.prototype.slice` method +// https://tc39.es/ecma262/#sec-array.prototype.slice +// fallback for not array-like ES3 strings and DOM objects +$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, { + slice: function slice(start, end) { + var O = toIndexedObject(this); + var length = lengthOfArrayLike(O); + var k = toAbsoluteIndex(start, length); + var fin = toAbsoluteIndex(end === undefined ? length : end, length); + // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible + var Constructor, result, n; + if (isArray(O)) { + Constructor = O.constructor; + // cross-realm fallback + if (isConstructor(Constructor) && (Constructor === Array || isArray(Constructor.prototype))) { + Constructor = undefined; + } else if (isObject(Constructor)) { + Constructor = Constructor[SPECIES]; + if (Constructor === null) Constructor = undefined; + } + if (Constructor === Array || Constructor === undefined) { + return un$Slice(O, k, fin); + } + } + result = new (Constructor === undefined ? Array : Constructor)(max(fin - k, 0)); + for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]); + result.length = n; + return result; + } +}); + +},{"../internals/array-method-has-species-support":65,"../internals/array-slice":68,"../internals/create-property":80,"../internals/export":93,"../internals/global":104,"../internals/is-array":113,"../internals/is-constructor":115,"../internals/is-object":117,"../internals/length-of-array-like":123,"../internals/to-absolute-index":153,"../internals/to-indexed-object":154,"../internals/well-known-symbol":166}],175:[function(require,module,exports){ +'use strict'; +var $ = require('../internals/export'); +var uncurryThis = require('../internals/function-uncurry-this'); +var aCallable = require('../internals/a-callable'); +var toObject = require('../internals/to-object'); +var lengthOfArrayLike = require('../internals/length-of-array-like'); +var toString = require('../internals/to-string'); +var fails = require('../internals/fails'); +var internalSort = require('../internals/array-sort'); +var arrayMethodIsStrict = require('../internals/array-method-is-strict'); +var FF = require('../internals/engine-ff-version'); +var IE_OR_EDGE = require('../internals/engine-is-ie-or-edge'); +var V8 = require('../internals/engine-v8-version'); +var WEBKIT = require('../internals/engine-webkit-version'); + +var test = []; +var un$Sort = uncurryThis(test.sort); +var push = uncurryThis(test.push); + +// IE8- +var FAILS_ON_UNDEFINED = fails(function () { + test.sort(undefined); +}); +// V8 bug +var FAILS_ON_NULL = fails(function () { + test.sort(null); +}); +// Old WebKit +var STRICT_METHOD = arrayMethodIsStrict('sort'); + +var STABLE_SORT = !fails(function () { + // feature detection can be too slow, so check engines versions + if (V8) return V8 < 70; + if (FF && FF > 3) return; + if (IE_OR_EDGE) return true; + if (WEBKIT) return WEBKIT < 603; + + var result = ''; + var code, chr, value, index; + + // generate an array with more 512 elements (Chakra and old V8 fails only in this case) + for (code = 65; code < 76; code++) { + chr = String.fromCharCode(code); + + switch (code) { + case 66: case 69: case 70: case 72: value = 3; break; + case 68: case 71: value = 4; break; + default: value = 2; + } + + for (index = 0; index < 47; index++) { + test.push({ k: chr + index, v: value }); + } + } + + test.sort(function (a, b) { return b.v - a.v; }); + + for (index = 0; index < test.length; index++) { + chr = test[index].k.charAt(0); + if (result.charAt(result.length - 1) !== chr) result += chr; + } + + return result !== 'DGBEFHACIJK'; +}); + +var FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD || !STABLE_SORT; + +var getSortCompare = function (comparefn) { + return function (x, y) { + if (y === undefined) return -1; + if (x === undefined) return 1; + if (comparefn !== undefined) return +comparefn(x, y) || 0; + return toString(x) > toString(y) ? 1 : -1; + }; +}; + +// `Array.prototype.sort` method +// https://tc39.es/ecma262/#sec-array.prototype.sort +$({ target: 'Array', proto: true, forced: FORCED }, { + sort: function sort(comparefn) { + if (comparefn !== undefined) aCallable(comparefn); + + var array = toObject(this); + + if (STABLE_SORT) return comparefn === undefined ? un$Sort(array) : un$Sort(array, comparefn); + + var items = []; + var arrayLength = lengthOfArrayLike(array); + var itemsLength, index; + + for (index = 0; index < arrayLength; index++) { + if (index in array) push(items, array[index]); + } + + internalSort(items, getSortCompare(comparefn)); + + itemsLength = items.length; + index = 0; + + while (index < itemsLength) array[index] = items[index++]; + while (index < arrayLength) delete array[index++]; + + return array; + } +}); + +},{"../internals/a-callable":57,"../internals/array-method-is-strict":66,"../internals/array-sort":69,"../internals/engine-ff-version":86,"../internals/engine-is-ie-or-edge":87,"../internals/engine-v8-version":89,"../internals/engine-webkit-version":90,"../internals/export":93,"../internals/fails":94,"../internals/function-uncurry-this":99,"../internals/length-of-array-like":123,"../internals/to-object":157,"../internals/to-string":161}],176:[function(require,module,exports){ +var global = require('../internals/global'); +var setToStringTag = require('../internals/set-to-string-tag'); + +// JSON[@@toStringTag] property +// https://tc39.es/ecma262/#sec-json-@@tostringtag +setToStringTag(global.JSON, 'JSON', true); + +},{"../internals/global":104,"../internals/set-to-string-tag":147}],177:[function(require,module,exports){ +// empty + +},{}],178:[function(require,module,exports){ +var $ = require('../internals/export'); +var DESCRIPTORS = require('../internals/descriptors'); +var create = require('../internals/object-create'); + +// `Object.create` method +// https://tc39.es/ecma262/#sec-object.create +$({ target: 'Object', stat: true, sham: !DESCRIPTORS }, { + create: create +}); + +},{"../internals/descriptors":83,"../internals/export":93,"../internals/object-create":127}],179:[function(require,module,exports){ +var $ = require('../internals/export'); +var DESCRIPTORS = require('../internals/descriptors'); +var objectDefinePropertyModile = require('../internals/object-define-property'); + +// `Object.defineProperty` method +// https://tc39.es/ecma262/#sec-object.defineproperty +$({ target: 'Object', stat: true, forced: !DESCRIPTORS, sham: !DESCRIPTORS }, { + defineProperty: objectDefinePropertyModile.f +}); + +},{"../internals/descriptors":83,"../internals/export":93,"../internals/object-define-property":129}],180:[function(require,module,exports){ +arguments[4][177][0].apply(exports,arguments) +},{"dup":177}],181:[function(require,module,exports){ +var $ = require('../internals/export'); +var $parseInt = require('../internals/number-parse-int'); + +// `parseInt` method +// https://tc39.es/ecma262/#sec-parseint-string-radix +$({ global: true, forced: parseInt != $parseInt }, { + parseInt: $parseInt +}); + +},{"../internals/export":93,"../internals/number-parse-int":126}],182:[function(require,module,exports){ +arguments[4][177][0].apply(exports,arguments) +},{"dup":177}],183:[function(require,module,exports){ +arguments[4][177][0].apply(exports,arguments) +},{"dup":177}],184:[function(require,module,exports){ +'use strict'; +var charAt = require('../internals/string-multibyte').charAt; +var toString = require('../internals/to-string'); +var InternalStateModule = require('../internals/internal-state'); +var defineIterator = require('../internals/define-iterator'); + +var STRING_ITERATOR = 'String Iterator'; +var setInternalState = InternalStateModule.set; +var getInternalState = InternalStateModule.getterFor(STRING_ITERATOR); + +// `String.prototype[@@iterator]` method +// https://tc39.es/ecma262/#sec-string.prototype-@@iterator +defineIterator(String, 'String', function (iterated) { + setInternalState(this, { + type: STRING_ITERATOR, + string: toString(iterated), + index: 0 + }); +// `%StringIteratorPrototype%.next` method +// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next +}, function next() { + var state = getInternalState(this); + var string = state.string; + var index = state.index; + var point; + if (index >= string.length) return { value: undefined, done: true }; + point = charAt(string, index); + state.index += point.length; + return { value: point, done: false }; +}); + +},{"../internals/define-iterator":81,"../internals/internal-state":111,"../internals/string-multibyte":151,"../internals/to-string":161}],185:[function(require,module,exports){ +var defineWellKnownSymbol = require('../internals/define-well-known-symbol'); + +// `Symbol.asyncIterator` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.asynciterator +defineWellKnownSymbol('asyncIterator'); + +},{"../internals/define-well-known-symbol":82}],186:[function(require,module,exports){ +arguments[4][177][0].apply(exports,arguments) +},{"dup":177}],187:[function(require,module,exports){ +var defineWellKnownSymbol = require('../internals/define-well-known-symbol'); + +// `Symbol.hasInstance` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.hasinstance +defineWellKnownSymbol('hasInstance'); + +},{"../internals/define-well-known-symbol":82}],188:[function(require,module,exports){ +var defineWellKnownSymbol = require('../internals/define-well-known-symbol'); + +// `Symbol.isConcatSpreadable` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.isconcatspreadable +defineWellKnownSymbol('isConcatSpreadable'); + +},{"../internals/define-well-known-symbol":82}],189:[function(require,module,exports){ +var defineWellKnownSymbol = require('../internals/define-well-known-symbol'); + +// `Symbol.iterator` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.iterator +defineWellKnownSymbol('iterator'); + +},{"../internals/define-well-known-symbol":82}],190:[function(require,module,exports){ +'use strict'; +var $ = require('../internals/export'); +var global = require('../internals/global'); +var getBuiltIn = require('../internals/get-built-in'); +var apply = require('../internals/function-apply'); +var call = require('../internals/function-call'); +var uncurryThis = require('../internals/function-uncurry-this'); +var IS_PURE = require('../internals/is-pure'); +var DESCRIPTORS = require('../internals/descriptors'); +var NATIVE_SYMBOL = require('../internals/native-symbol'); +var fails = require('../internals/fails'); +var hasOwn = require('../internals/has-own-property'); +var isArray = require('../internals/is-array'); +var isCallable = require('../internals/is-callable'); +var isObject = require('../internals/is-object'); +var isPrototypeOf = require('../internals/object-is-prototype-of'); +var isSymbol = require('../internals/is-symbol'); +var anObject = require('../internals/an-object'); +var toObject = require('../internals/to-object'); +var toIndexedObject = require('../internals/to-indexed-object'); +var toPropertyKey = require('../internals/to-property-key'); +var $toString = require('../internals/to-string'); +var createPropertyDescriptor = require('../internals/create-property-descriptor'); +var nativeObjectCreate = require('../internals/object-create'); +var objectKeys = require('../internals/object-keys'); +var getOwnPropertyNamesModule = require('../internals/object-get-own-property-names'); +var getOwnPropertyNamesExternal = require('../internals/object-get-own-property-names-external'); +var getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols'); +var getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor'); +var definePropertyModule = require('../internals/object-define-property'); +var propertyIsEnumerableModule = require('../internals/object-property-is-enumerable'); +var arraySlice = require('../internals/array-slice'); +var redefine = require('../internals/redefine'); +var shared = require('../internals/shared'); +var sharedKey = require('../internals/shared-key'); +var hiddenKeys = require('../internals/hidden-keys'); +var uid = require('../internals/uid'); +var wellKnownSymbol = require('../internals/well-known-symbol'); +var wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped'); +var defineWellKnownSymbol = require('../internals/define-well-known-symbol'); +var setToStringTag = require('../internals/set-to-string-tag'); +var InternalStateModule = require('../internals/internal-state'); +var $forEach = require('../internals/array-iteration').forEach; + +var HIDDEN = sharedKey('hidden'); +var SYMBOL = 'Symbol'; +var PROTOTYPE = 'prototype'; +var TO_PRIMITIVE = wellKnownSymbol('toPrimitive'); + +var setInternalState = InternalStateModule.set; +var getInternalState = InternalStateModule.getterFor(SYMBOL); + +var ObjectPrototype = Object[PROTOTYPE]; +var $Symbol = global.Symbol; +var SymbolPrototype = $Symbol && $Symbol[PROTOTYPE]; +var TypeError = global.TypeError; +var QObject = global.QObject; +var $stringify = getBuiltIn('JSON', 'stringify'); +var nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f; +var nativeDefineProperty = definePropertyModule.f; +var nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f; +var nativePropertyIsEnumerable = propertyIsEnumerableModule.f; +var push = uncurryThis([].push); + +var AllSymbols = shared('symbols'); +var ObjectPrototypeSymbols = shared('op-symbols'); +var StringToSymbolRegistry = shared('string-to-symbol-registry'); +var SymbolToStringRegistry = shared('symbol-to-string-registry'); +var WellKnownSymbolsStore = shared('wks'); + +// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173 +var USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild; + +// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687 +var setSymbolDescriptor = DESCRIPTORS && fails(function () { + return nativeObjectCreate(nativeDefineProperty({}, 'a', { + get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; } + })).a != 7; +}) ? function (O, P, Attributes) { + var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P); + if (ObjectPrototypeDescriptor) delete ObjectPrototype[P]; + nativeDefineProperty(O, P, Attributes); + if (ObjectPrototypeDescriptor && O !== ObjectPrototype) { + nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor); + } +} : nativeDefineProperty; + +var wrap = function (tag, description) { + var symbol = AllSymbols[tag] = nativeObjectCreate(SymbolPrototype); + setInternalState(symbol, { + type: SYMBOL, + tag: tag, + description: description + }); + if (!DESCRIPTORS) symbol.description = description; + return symbol; +}; + +var $defineProperty = function defineProperty(O, P, Attributes) { + if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes); + anObject(O); + var key = toPropertyKey(P); + anObject(Attributes); + if (hasOwn(AllSymbols, key)) { + if (!Attributes.enumerable) { + if (!hasOwn(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, {})); + O[HIDDEN][key] = true; + } else { + if (hasOwn(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false; + Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) }); + } return setSymbolDescriptor(O, key, Attributes); + } return nativeDefineProperty(O, key, Attributes); +}; + +var $defineProperties = function defineProperties(O, Properties) { + anObject(O); + var properties = toIndexedObject(Properties); + var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties)); + $forEach(keys, function (key) { + if (!DESCRIPTORS || call($propertyIsEnumerable, properties, key)) $defineProperty(O, key, properties[key]); + }); + return O; +}; + +var $create = function create(O, Properties) { + return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties); +}; + +var $propertyIsEnumerable = function propertyIsEnumerable(V) { + var P = toPropertyKey(V); + var enumerable = call(nativePropertyIsEnumerable, this, P); + if (this === ObjectPrototype && hasOwn(AllSymbols, P) && !hasOwn(ObjectPrototypeSymbols, P)) return false; + return enumerable || !hasOwn(this, P) || !hasOwn(AllSymbols, P) || hasOwn(this, HIDDEN) && this[HIDDEN][P] + ? enumerable : true; +}; + +var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) { + var it = toIndexedObject(O); + var key = toPropertyKey(P); + if (it === ObjectPrototype && hasOwn(AllSymbols, key) && !hasOwn(ObjectPrototypeSymbols, key)) return; + var descriptor = nativeGetOwnPropertyDescriptor(it, key); + if (descriptor && hasOwn(AllSymbols, key) && !(hasOwn(it, HIDDEN) && it[HIDDEN][key])) { + descriptor.enumerable = true; + } + return descriptor; +}; + +var $getOwnPropertyNames = function getOwnPropertyNames(O) { + var names = nativeGetOwnPropertyNames(toIndexedObject(O)); + var result = []; + $forEach(names, function (key) { + if (!hasOwn(AllSymbols, key) && !hasOwn(hiddenKeys, key)) push(result, key); + }); + return result; +}; + +var $getOwnPropertySymbols = function getOwnPropertySymbols(O) { + var IS_OBJECT_PROTOTYPE = O === ObjectPrototype; + var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O)); + var result = []; + $forEach(names, function (key) { + if (hasOwn(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || hasOwn(ObjectPrototype, key))) { + push(result, AllSymbols[key]); + } + }); + return result; +}; + +// `Symbol` constructor +// https://tc39.es/ecma262/#sec-symbol-constructor +if (!NATIVE_SYMBOL) { + $Symbol = function Symbol() { + if (isPrototypeOf(SymbolPrototype, this)) throw TypeError('Symbol is not a constructor'); + var description = !arguments.length || arguments[0] === undefined ? undefined : $toString(arguments[0]); + var tag = uid(description); + var setter = function (value) { + if (this === ObjectPrototype) call(setter, ObjectPrototypeSymbols, value); + if (hasOwn(this, HIDDEN) && hasOwn(this[HIDDEN], tag)) this[HIDDEN][tag] = false; + setSymbolDescriptor(this, tag, createPropertyDescriptor(1, value)); + }; + if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter }); + return wrap(tag, description); + }; + + SymbolPrototype = $Symbol[PROTOTYPE]; + + redefine(SymbolPrototype, 'toString', function toString() { + return getInternalState(this).tag; + }); + + redefine($Symbol, 'withoutSetter', function (description) { + return wrap(uid(description), description); + }); + + propertyIsEnumerableModule.f = $propertyIsEnumerable; + definePropertyModule.f = $defineProperty; + getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor; + getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames; + getOwnPropertySymbolsModule.f = $getOwnPropertySymbols; + + wrappedWellKnownSymbolModule.f = function (name) { + return wrap(wellKnownSymbol(name), name); + }; + + if (DESCRIPTORS) { + // https://github.com/tc39/proposal-Symbol-description + nativeDefineProperty(SymbolPrototype, 'description', { + configurable: true, + get: function description() { + return getInternalState(this).description; + } + }); + if (!IS_PURE) { + redefine(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true }); + } + } +} + +$({ global: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, { + Symbol: $Symbol +}); + +$forEach(objectKeys(WellKnownSymbolsStore), function (name) { + defineWellKnownSymbol(name); +}); + +$({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, { + // `Symbol.for` method + // https://tc39.es/ecma262/#sec-symbol.for + 'for': function (key) { + var string = $toString(key); + if (hasOwn(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string]; + var symbol = $Symbol(string); + StringToSymbolRegistry[string] = symbol; + SymbolToStringRegistry[symbol] = string; + return symbol; + }, + // `Symbol.keyFor` method + // https://tc39.es/ecma262/#sec-symbol.keyfor + keyFor: function keyFor(sym) { + if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol'); + if (hasOwn(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym]; + }, + useSetter: function () { USE_SETTER = true; }, + useSimple: function () { USE_SETTER = false; } +}); + +$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, { + // `Object.create` method + // https://tc39.es/ecma262/#sec-object.create + create: $create, + // `Object.defineProperty` method + // https://tc39.es/ecma262/#sec-object.defineproperty + defineProperty: $defineProperty, + // `Object.defineProperties` method + // https://tc39.es/ecma262/#sec-object.defineproperties + defineProperties: $defineProperties, + // `Object.getOwnPropertyDescriptor` method + // https://tc39.es/ecma262/#sec-object.getownpropertydescriptors + getOwnPropertyDescriptor: $getOwnPropertyDescriptor +}); + +$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, { + // `Object.getOwnPropertyNames` method + // https://tc39.es/ecma262/#sec-object.getownpropertynames + getOwnPropertyNames: $getOwnPropertyNames, + // `Object.getOwnPropertySymbols` method + // https://tc39.es/ecma262/#sec-object.getownpropertysymbols + getOwnPropertySymbols: $getOwnPropertySymbols +}); + +// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives +// https://bugs.chromium.org/p/v8/issues/detail?id=3443 +$({ target: 'Object', stat: true, forced: fails(function () { getOwnPropertySymbolsModule.f(1); }) }, { + getOwnPropertySymbols: function getOwnPropertySymbols(it) { + return getOwnPropertySymbolsModule.f(toObject(it)); + } +}); + +// `JSON.stringify` method behavior with symbols +// https://tc39.es/ecma262/#sec-json.stringify +if ($stringify) { + var FORCED_JSON_STRINGIFY = !NATIVE_SYMBOL || fails(function () { + var symbol = $Symbol(); + // MS Edge converts symbol values to JSON as {} + return $stringify([symbol]) != '[null]' + // WebKit converts symbol values to JSON as null + || $stringify({ a: symbol }) != '{}' + // V8 throws on boxed symbols + || $stringify(Object(symbol)) != '{}'; + }); + + $({ target: 'JSON', stat: true, forced: FORCED_JSON_STRINGIFY }, { + // eslint-disable-next-line no-unused-vars -- required for `.length` + stringify: function stringify(it, replacer, space) { + var args = arraySlice(arguments); + var $replacer = replacer; + if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined + if (!isArray(replacer)) replacer = function (key, value) { + if (isCallable($replacer)) value = call($replacer, this, key, value); + if (!isSymbol(value)) return value; + }; + args[1] = replacer; + return apply($stringify, null, args); + } + }); +} + +// `Symbol.prototype[@@toPrimitive]` method +// https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive +if (!SymbolPrototype[TO_PRIMITIVE]) { + var valueOf = SymbolPrototype.valueOf; + // eslint-disable-next-line no-unused-vars -- required for .length + redefine(SymbolPrototype, TO_PRIMITIVE, function (hint) { + // TODO: improve hint logic + return call(valueOf, this); + }); +} +// `Symbol.prototype[@@toStringTag]` property +// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag +setToStringTag($Symbol, SYMBOL); + +hiddenKeys[HIDDEN] = true; + +},{"../internals/an-object":60,"../internals/array-iteration":64,"../internals/array-slice":68,"../internals/create-property-descriptor":79,"../internals/define-well-known-symbol":82,"../internals/descriptors":83,"../internals/export":93,"../internals/fails":94,"../internals/function-apply":95,"../internals/function-call":97,"../internals/function-uncurry-this":99,"../internals/get-built-in":100,"../internals/global":104,"../internals/has-own-property":105,"../internals/hidden-keys":106,"../internals/internal-state":111,"../internals/is-array":113,"../internals/is-callable":114,"../internals/is-object":117,"../internals/is-pure":118,"../internals/is-symbol":119,"../internals/native-symbol":124,"../internals/object-create":127,"../internals/object-define-property":129,"../internals/object-get-own-property-descriptor":130,"../internals/object-get-own-property-names":132,"../internals/object-get-own-property-names-external":131,"../internals/object-get-own-property-symbols":133,"../internals/object-is-prototype-of":135,"../internals/object-keys":137,"../internals/object-property-is-enumerable":138,"../internals/redefine":143,"../internals/set-to-string-tag":147,"../internals/shared":150,"../internals/shared-key":148,"../internals/to-indexed-object":154,"../internals/to-object":157,"../internals/to-property-key":159,"../internals/to-string":161,"../internals/uid":163,"../internals/well-known-symbol":166,"../internals/well-known-symbol-wrapped":165}],191:[function(require,module,exports){ +var defineWellKnownSymbol = require('../internals/define-well-known-symbol'); + +// `Symbol.matchAll` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.matchall +defineWellKnownSymbol('matchAll'); + +},{"../internals/define-well-known-symbol":82}],192:[function(require,module,exports){ +var defineWellKnownSymbol = require('../internals/define-well-known-symbol'); + +// `Symbol.match` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.match +defineWellKnownSymbol('match'); + +},{"../internals/define-well-known-symbol":82}],193:[function(require,module,exports){ +var defineWellKnownSymbol = require('../internals/define-well-known-symbol'); + +// `Symbol.replace` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.replace +defineWellKnownSymbol('replace'); + +},{"../internals/define-well-known-symbol":82}],194:[function(require,module,exports){ +var defineWellKnownSymbol = require('../internals/define-well-known-symbol'); + +// `Symbol.search` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.search +defineWellKnownSymbol('search'); + +},{"../internals/define-well-known-symbol":82}],195:[function(require,module,exports){ +var defineWellKnownSymbol = require('../internals/define-well-known-symbol'); + +// `Symbol.species` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.species +defineWellKnownSymbol('species'); + +},{"../internals/define-well-known-symbol":82}],196:[function(require,module,exports){ +var defineWellKnownSymbol = require('../internals/define-well-known-symbol'); + +// `Symbol.split` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.split +defineWellKnownSymbol('split'); + +},{"../internals/define-well-known-symbol":82}],197:[function(require,module,exports){ +var defineWellKnownSymbol = require('../internals/define-well-known-symbol'); + +// `Symbol.toPrimitive` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.toprimitive +defineWellKnownSymbol('toPrimitive'); + +},{"../internals/define-well-known-symbol":82}],198:[function(require,module,exports){ +var defineWellKnownSymbol = require('../internals/define-well-known-symbol'); + +// `Symbol.toStringTag` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.tostringtag +defineWellKnownSymbol('toStringTag'); + +},{"../internals/define-well-known-symbol":82}],199:[function(require,module,exports){ +var defineWellKnownSymbol = require('../internals/define-well-known-symbol'); + +// `Symbol.unscopables` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.unscopables +defineWellKnownSymbol('unscopables'); + +},{"../internals/define-well-known-symbol":82}],200:[function(require,module,exports){ +var defineWellKnownSymbol = require('../internals/define-well-known-symbol'); + +// `Symbol.asyncDispose` well-known symbol +// https://github.com/tc39/proposal-using-statement +defineWellKnownSymbol('asyncDispose'); + +},{"../internals/define-well-known-symbol":82}],201:[function(require,module,exports){ +var defineWellKnownSymbol = require('../internals/define-well-known-symbol'); + +// `Symbol.dispose` well-known symbol +// https://github.com/tc39/proposal-using-statement +defineWellKnownSymbol('dispose'); + +},{"../internals/define-well-known-symbol":82}],202:[function(require,module,exports){ +var defineWellKnownSymbol = require('../internals/define-well-known-symbol'); + +// `Symbol.matcher` well-known symbol +// https://github.com/tc39/proposal-pattern-matching +defineWellKnownSymbol('matcher'); + +},{"../internals/define-well-known-symbol":82}],203:[function(require,module,exports){ +var defineWellKnownSymbol = require('../internals/define-well-known-symbol'); + +// `Symbol.metadata` well-known symbol +// https://github.com/tc39/proposal-decorators +defineWellKnownSymbol('metadata'); + +},{"../internals/define-well-known-symbol":82}],204:[function(require,module,exports){ +var defineWellKnownSymbol = require('../internals/define-well-known-symbol'); + +// `Symbol.observable` well-known symbol +// https://github.com/tc39/proposal-observable +defineWellKnownSymbol('observable'); + +},{"../internals/define-well-known-symbol":82}],205:[function(require,module,exports){ +// TODO: remove from `core-js@4` +var defineWellKnownSymbol = require('../internals/define-well-known-symbol'); + +// `Symbol.patternMatch` well-known symbol +// https://github.com/tc39/proposal-pattern-matching +defineWellKnownSymbol('patternMatch'); + +},{"../internals/define-well-known-symbol":82}],206:[function(require,module,exports){ +// TODO: remove from `core-js@4` +var defineWellKnownSymbol = require('../internals/define-well-known-symbol'); + +defineWellKnownSymbol('replaceAll'); + +},{"../internals/define-well-known-symbol":82}],207:[function(require,module,exports){ +require('../modules/es.array.iterator'); +var DOMIterables = require('../internals/dom-iterables'); +var global = require('../internals/global'); +var classof = require('../internals/classof'); +var createNonEnumerableProperty = require('../internals/create-non-enumerable-property'); +var Iterators = require('../internals/iterators'); +var wellKnownSymbol = require('../internals/well-known-symbol'); + +var TO_STRING_TAG = wellKnownSymbol('toStringTag'); + +for (var COLLECTION_NAME in DOMIterables) { + var Collection = global[COLLECTION_NAME]; + var CollectionPrototype = Collection && Collection.prototype; + if (CollectionPrototype && classof(CollectionPrototype) !== TO_STRING_TAG) { + createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME); + } + Iterators[COLLECTION_NAME] = Iterators.Array; +} + +},{"../internals/classof":75,"../internals/create-non-enumerable-property":78,"../internals/dom-iterables":85,"../internals/global":104,"../internals/iterators":122,"../internals/well-known-symbol":166,"../modules/es.array.iterator":173}],208:[function(require,module,exports){ +var parent = require('../../es/array/from'); + +module.exports = parent; + +},{"../../es/array/from":34}],209:[function(require,module,exports){ +var parent = require('../../es/array/is-array'); + +module.exports = parent; + +},{"../../es/array/is-array":35}],210:[function(require,module,exports){ +var parent = require('../../../es/array/virtual/for-each'); + +module.exports = parent; + +},{"../../../es/array/virtual/for-each":37}],211:[function(require,module,exports){ +var parent = require('../es/get-iterator-method'); +require('../modules/web.dom-collections.iterator'); + +module.exports = parent; + +},{"../es/get-iterator-method":41,"../modules/web.dom-collections.iterator":207}],212:[function(require,module,exports){ +var parent = require('../../es/instance/concat'); + +module.exports = parent; + +},{"../../es/instance/concat":42}],213:[function(require,module,exports){ +var parent = require('../../es/instance/flags'); + +module.exports = parent; + +},{"../../es/instance/flags":43}],214:[function(require,module,exports){ +require('../../modules/web.dom-collections.iterator'); +var classof = require('../../internals/classof'); +var hasOwn = require('../../internals/has-own-property'); +var isPrototypeOf = require('../../internals/object-is-prototype-of'); +var method = require('../array/virtual/for-each'); + +var ArrayPrototype = Array.prototype; + +var DOMIterables = { + DOMTokenList: true, + NodeList: true +}; + +module.exports = function (it) { + var own = it.forEach; + return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.forEach) + || hasOwn(DOMIterables, classof(it)) ? method : own; +}; + +},{"../../internals/classof":75,"../../internals/has-own-property":105,"../../internals/object-is-prototype-of":135,"../../modules/web.dom-collections.iterator":207,"../array/virtual/for-each":210}],215:[function(require,module,exports){ +var parent = require('../../es/instance/index-of'); + +module.exports = parent; + +},{"../../es/instance/index-of":44}],216:[function(require,module,exports){ +var parent = require('../../es/instance/slice'); + +module.exports = parent; + +},{"../../es/instance/slice":45}],217:[function(require,module,exports){ +var parent = require('../../es/instance/sort'); + +module.exports = parent; + +},{"../../es/instance/sort":46}],218:[function(require,module,exports){ +var parent = require('../../es/object/create'); + +module.exports = parent; + +},{"../../es/object/create":47}],219:[function(require,module,exports){ +var parent = require('../../es/object/define-property'); + +module.exports = parent; + +},{"../../es/object/define-property":48}],220:[function(require,module,exports){ +var parent = require('../es/parse-int'); + +module.exports = parent; + +},{"../es/parse-int":49}],221:[function(require,module,exports){ +var parent = require('../../es/symbol'); +require('../../modules/web.dom-collections.iterator'); + +module.exports = parent; + +},{"../../es/symbol":51,"../../modules/web.dom-collections.iterator":207}],222:[function(require,module,exports){ +module.exports = [ + { + 'name': 'C', + 'alias': 'Other', + 'isBmpLast': true, + 'bmp': '\0-\x1F\x7F-\x9F\xAD\u0378\u0379\u0380-\u0383\u038B\u038D\u03A2\u0530\u0557\u0558\u058B\u058C\u0590\u05C8-\u05CF\u05EB-\u05EE\u05F5-\u0605\u061C\u06DD\u070E\u070F\u074B\u074C\u07B2-\u07BF\u07FB\u07FC\u082E\u082F\u083F\u085C\u085D\u085F\u086B-\u086F\u088F-\u0897\u08E2\u0984\u098D\u098E\u0991\u0992\u09A9\u09B1\u09B3-\u09B5\u09BA\u09BB\u09C5\u09C6\u09C9\u09CA\u09CF-\u09D6\u09D8-\u09DB\u09DE\u09E4\u09E5\u09FF\u0A00\u0A04\u0A0B-\u0A0E\u0A11\u0A12\u0A29\u0A31\u0A34\u0A37\u0A3A\u0A3B\u0A3D\u0A43-\u0A46\u0A49\u0A4A\u0A4E-\u0A50\u0A52-\u0A58\u0A5D\u0A5F-\u0A65\u0A77-\u0A80\u0A84\u0A8E\u0A92\u0AA9\u0AB1\u0AB4\u0ABA\u0ABB\u0AC6\u0ACA\u0ACE\u0ACF\u0AD1-\u0ADF\u0AE4\u0AE5\u0AF2-\u0AF8\u0B00\u0B04\u0B0D\u0B0E\u0B11\u0B12\u0B29\u0B31\u0B34\u0B3A\u0B3B\u0B45\u0B46\u0B49\u0B4A\u0B4E-\u0B54\u0B58-\u0B5B\u0B5E\u0B64\u0B65\u0B78-\u0B81\u0B84\u0B8B-\u0B8D\u0B91\u0B96-\u0B98\u0B9B\u0B9D\u0BA0-\u0BA2\u0BA5-\u0BA7\u0BAB-\u0BAD\u0BBA-\u0BBD\u0BC3-\u0BC5\u0BC9\u0BCE\u0BCF\u0BD1-\u0BD6\u0BD8-\u0BE5\u0BFB-\u0BFF\u0C0D\u0C11\u0C29\u0C3A\u0C3B\u0C45\u0C49\u0C4E-\u0C54\u0C57\u0C5B\u0C5C\u0C5E\u0C5F\u0C64\u0C65\u0C70-\u0C76\u0C8D\u0C91\u0CA9\u0CB4\u0CBA\u0CBB\u0CC5\u0CC9\u0CCE-\u0CD4\u0CD7-\u0CDC\u0CDF\u0CE4\u0CE5\u0CF0\u0CF3-\u0CFF\u0D0D\u0D11\u0D45\u0D49\u0D50-\u0D53\u0D64\u0D65\u0D80\u0D84\u0D97-\u0D99\u0DB2\u0DBC\u0DBE\u0DBF\u0DC7-\u0DC9\u0DCB-\u0DCE\u0DD5\u0DD7\u0DE0-\u0DE5\u0DF0\u0DF1\u0DF5-\u0E00\u0E3B-\u0E3E\u0E5C-\u0E80\u0E83\u0E85\u0E8B\u0EA4\u0EA6\u0EBE\u0EBF\u0EC5\u0EC7\u0ECE\u0ECF\u0EDA\u0EDB\u0EE0-\u0EFF\u0F48\u0F6D-\u0F70\u0F98\u0FBD\u0FCD\u0FDB-\u0FFF\u10C6\u10C8-\u10CC\u10CE\u10CF\u1249\u124E\u124F\u1257\u1259\u125E\u125F\u1289\u128E\u128F\u12B1\u12B6\u12B7\u12BF\u12C1\u12C6\u12C7\u12D7\u1311\u1316\u1317\u135B\u135C\u137D-\u137F\u139A-\u139F\u13F6\u13F7\u13FE\u13FF\u169D-\u169F\u16F9-\u16FF\u1716-\u171E\u1737-\u173F\u1754-\u175F\u176D\u1771\u1774-\u177F\u17DE\u17DF\u17EA-\u17EF\u17FA-\u17FF\u180E\u181A-\u181F\u1879-\u187F\u18AB-\u18AF\u18F6-\u18FF\u191F\u192C-\u192F\u193C-\u193F\u1941-\u1943\u196E\u196F\u1975-\u197F\u19AC-\u19AF\u19CA-\u19CF\u19DB-\u19DD\u1A1C\u1A1D\u1A5F\u1A7D\u1A7E\u1A8A-\u1A8F\u1A9A-\u1A9F\u1AAE\u1AAF\u1ACF-\u1AFF\u1B4D-\u1B4F\u1B7F\u1BF4-\u1BFB\u1C38-\u1C3A\u1C4A-\u1C4C\u1C89-\u1C8F\u1CBB\u1CBC\u1CC8-\u1CCF\u1CFB-\u1CFF\u1F16\u1F17\u1F1E\u1F1F\u1F46\u1F47\u1F4E\u1F4F\u1F58\u1F5A\u1F5C\u1F5E\u1F7E\u1F7F\u1FB5\u1FC5\u1FD4\u1FD5\u1FDC\u1FF0\u1FF1\u1FF5\u1FFF\u200B-\u200F\u202A-\u202E\u2060-\u206F\u2072\u2073\u208F\u209D-\u209F\u20C1-\u20CF\u20F1-\u20FF\u218C-\u218F\u2427-\u243F\u244B-\u245F\u2B74\u2B75\u2B96\u2CF4-\u2CF8\u2D26\u2D28-\u2D2C\u2D2E\u2D2F\u2D68-\u2D6E\u2D71-\u2D7E\u2D97-\u2D9F\u2DA7\u2DAF\u2DB7\u2DBF\u2DC7\u2DCF\u2DD7\u2DDF\u2E5E-\u2E7F\u2E9A\u2EF4-\u2EFF\u2FD6-\u2FEF\u2FFC-\u2FFF\u3040\u3097\u3098\u3100-\u3104\u3130\u318F\u31E4-\u31EF\u321F\uA48D-\uA48F\uA4C7-\uA4CF\uA62C-\uA63F\uA6F8-\uA6FF\uA7CB-\uA7CF\uA7D2\uA7D4\uA7DA-\uA7F1\uA82D-\uA82F\uA83A-\uA83F\uA878-\uA87F\uA8C6-\uA8CD\uA8DA-\uA8DF\uA954-\uA95E\uA97D-\uA97F\uA9CE\uA9DA-\uA9DD\uA9FF\uAA37-\uAA3F\uAA4E\uAA4F\uAA5A\uAA5B\uAAC3-\uAADA\uAAF7-\uAB00\uAB07\uAB08\uAB0F\uAB10\uAB17-\uAB1F\uAB27\uAB2F\uAB6C-\uAB6F\uABEE\uABEF\uABFA-\uABFF\uD7A4-\uD7AF\uD7C7-\uD7CA\uD7FC-\uF8FF\uFA6E\uFA6F\uFADA-\uFAFF\uFB07-\uFB12\uFB18-\uFB1C\uFB37\uFB3D\uFB3F\uFB42\uFB45\uFBC3-\uFBD2\uFD90\uFD91\uFDC8-\uFDCE\uFDD0-\uFDEF\uFE1A-\uFE1F\uFE53\uFE67\uFE6C-\uFE6F\uFE75\uFEFD-\uFF00\uFFBF-\uFFC1\uFFC8\uFFC9\uFFD0\uFFD1\uFFD8\uFFD9\uFFDD-\uFFDF\uFFE7\uFFEF-\uFFFB\uFFFE\uFFFF', + 'astral': '\uD800[\uDC0C\uDC27\uDC3B\uDC3E\uDC4E\uDC4F\uDC5E-\uDC7F\uDCFB-\uDCFF\uDD03-\uDD06\uDD34-\uDD36\uDD8F\uDD9D-\uDD9F\uDDA1-\uDDCF\uDDFE-\uDE7F\uDE9D-\uDE9F\uDED1-\uDEDF\uDEFC-\uDEFF\uDF24-\uDF2C\uDF4B-\uDF4F\uDF7B-\uDF7F\uDF9E\uDFC4-\uDFC7\uDFD6-\uDFFF]|\uD801[\uDC9E\uDC9F\uDCAA-\uDCAF\uDCD4-\uDCD7\uDCFC-\uDCFF\uDD28-\uDD2F\uDD64-\uDD6E\uDD7B\uDD8B\uDD93\uDD96\uDDA2\uDDB2\uDDBA\uDDBD-\uDDFF\uDF37-\uDF3F\uDF56-\uDF5F\uDF68-\uDF7F\uDF86\uDFB1\uDFBB-\uDFFF]|\uD802[\uDC06\uDC07\uDC09\uDC36\uDC39-\uDC3B\uDC3D\uDC3E\uDC56\uDC9F-\uDCA6\uDCB0-\uDCDF\uDCF3\uDCF6-\uDCFA\uDD1C-\uDD1E\uDD3A-\uDD3E\uDD40-\uDD7F\uDDB8-\uDDBB\uDDD0\uDDD1\uDE04\uDE07-\uDE0B\uDE14\uDE18\uDE36\uDE37\uDE3B-\uDE3E\uDE49-\uDE4F\uDE59-\uDE5F\uDEA0-\uDEBF\uDEE7-\uDEEA\uDEF7-\uDEFF\uDF36-\uDF38\uDF56\uDF57\uDF73-\uDF77\uDF92-\uDF98\uDF9D-\uDFA8\uDFB0-\uDFFF]|\uD803[\uDC49-\uDC7F\uDCB3-\uDCBF\uDCF3-\uDCF9\uDD28-\uDD2F\uDD3A-\uDE5F\uDE7F\uDEAA\uDEAE\uDEAF\uDEB2-\uDEFF\uDF28-\uDF2F\uDF5A-\uDF6F\uDF8A-\uDFAF\uDFCC-\uDFDF\uDFF7-\uDFFF]|\uD804[\uDC4E-\uDC51\uDC76-\uDC7E\uDCBD\uDCC3-\uDCCF\uDCE9-\uDCEF\uDCFA-\uDCFF\uDD35\uDD48-\uDD4F\uDD77-\uDD7F\uDDE0\uDDF5-\uDDFF\uDE12\uDE3F-\uDE7F\uDE87\uDE89\uDE8E\uDE9E\uDEAA-\uDEAF\uDEEB-\uDEEF\uDEFA-\uDEFF\uDF04\uDF0D\uDF0E\uDF11\uDF12\uDF29\uDF31\uDF34\uDF3A\uDF45\uDF46\uDF49\uDF4A\uDF4E\uDF4F\uDF51-\uDF56\uDF58-\uDF5C\uDF64\uDF65\uDF6D-\uDF6F\uDF75-\uDFFF]|\uD805[\uDC5C\uDC62-\uDC7F\uDCC8-\uDCCF\uDCDA-\uDD7F\uDDB6\uDDB7\uDDDE-\uDDFF\uDE45-\uDE4F\uDE5A-\uDE5F\uDE6D-\uDE7F\uDEBA-\uDEBF\uDECA-\uDEFF\uDF1B\uDF1C\uDF2C-\uDF2F\uDF47-\uDFFF]|\uD806[\uDC3C-\uDC9F\uDCF3-\uDCFE\uDD07\uDD08\uDD0A\uDD0B\uDD14\uDD17\uDD36\uDD39\uDD3A\uDD47-\uDD4F\uDD5A-\uDD9F\uDDA8\uDDA9\uDDD8\uDDD9\uDDE5-\uDDFF\uDE48-\uDE4F\uDEA3-\uDEAF\uDEF9-\uDFFF]|\uD807[\uDC09\uDC37\uDC46-\uDC4F\uDC6D-\uDC6F\uDC90\uDC91\uDCA8\uDCB7-\uDCFF\uDD07\uDD0A\uDD37-\uDD39\uDD3B\uDD3E\uDD48-\uDD4F\uDD5A-\uDD5F\uDD66\uDD69\uDD8F\uDD92\uDD99-\uDD9F\uDDAA-\uDEDF\uDEF9-\uDFAF\uDFB1-\uDFBF\uDFF2-\uDFFE]|\uD808[\uDF9A-\uDFFF]|\uD809[\uDC6F\uDC75-\uDC7F\uDD44-\uDFFF]|[\uD80A\uD80E-\uD810\uD812-\uD819\uD824-\uD82A\uD82D\uD82E\uD830-\uD832\uD83F\uD87B-\uD87D\uD87F\uD885-\uDB3F\uDB41-\uDBFF][\uDC00-\uDFFF]|\uD80B[\uDC00-\uDF8F\uDFF3-\uDFFF]|\uD80D[\uDC2F-\uDFFF]|\uD811[\uDE47-\uDFFF]|\uD81A[\uDE39-\uDE3F\uDE5F\uDE6A-\uDE6D\uDEBF\uDECA-\uDECF\uDEEE\uDEEF\uDEF6-\uDEFF\uDF46-\uDF4F\uDF5A\uDF62\uDF78-\uDF7C\uDF90-\uDFFF]|\uD81B[\uDC00-\uDE3F\uDE9B-\uDEFF\uDF4B-\uDF4E\uDF88-\uDF8E\uDFA0-\uDFDF\uDFE5-\uDFEF\uDFF2-\uDFFF]|\uD821[\uDFF8-\uDFFF]|\uD823[\uDCD6-\uDCFF\uDD09-\uDFFF]|\uD82B[\uDC00-\uDFEF\uDFF4\uDFFC\uDFFF]|\uD82C[\uDD23-\uDD4F\uDD53-\uDD63\uDD68-\uDD6F\uDEFC-\uDFFF]|\uD82F[\uDC6B-\uDC6F\uDC7D-\uDC7F\uDC89-\uDC8F\uDC9A\uDC9B\uDCA0-\uDFFF]|\uD833[\uDC00-\uDEFF\uDF2E\uDF2F\uDF47-\uDF4F\uDFC4-\uDFFF]|\uD834[\uDCF6-\uDCFF\uDD27\uDD28\uDD73-\uDD7A\uDDEB-\uDDFF\uDE46-\uDEDF\uDEF4-\uDEFF\uDF57-\uDF5F\uDF79-\uDFFF]|\uD835[\uDC55\uDC9D\uDCA0\uDCA1\uDCA3\uDCA4\uDCA7\uDCA8\uDCAD\uDCBA\uDCBC\uDCC4\uDD06\uDD0B\uDD0C\uDD15\uDD1D\uDD3A\uDD3F\uDD45\uDD47-\uDD49\uDD51\uDEA6\uDEA7\uDFCC\uDFCD]|\uD836[\uDE8C-\uDE9A\uDEA0\uDEB0-\uDFFF]|\uD837[\uDC00-\uDEFF\uDF1F-\uDFFF]|\uD838[\uDC07\uDC19\uDC1A\uDC22\uDC25\uDC2B-\uDCFF\uDD2D-\uDD2F\uDD3E\uDD3F\uDD4A-\uDD4D\uDD50-\uDE8F\uDEAF-\uDEBF\uDEFA-\uDEFE\uDF00-\uDFFF]|\uD839[\uDC00-\uDFDF\uDFE7\uDFEC\uDFEF\uDFFF]|\uD83A[\uDCC5\uDCC6\uDCD7-\uDCFF\uDD4C-\uDD4F\uDD5A-\uDD5D\uDD60-\uDFFF]|\uD83B[\uDC00-\uDC70\uDCB5-\uDD00\uDD3E-\uDDFF\uDE04\uDE20\uDE23\uDE25\uDE26\uDE28\uDE33\uDE38\uDE3A\uDE3C-\uDE41\uDE43-\uDE46\uDE48\uDE4A\uDE4C\uDE50\uDE53\uDE55\uDE56\uDE58\uDE5A\uDE5C\uDE5E\uDE60\uDE63\uDE65\uDE66\uDE6B\uDE73\uDE78\uDE7D\uDE7F\uDE8A\uDE9C-\uDEA0\uDEA4\uDEAA\uDEBC-\uDEEF\uDEF2-\uDFFF]|\uD83C[\uDC2C-\uDC2F\uDC94-\uDC9F\uDCAF\uDCB0\uDCC0\uDCD0\uDCF6-\uDCFF\uDDAE-\uDDE5\uDE03-\uDE0F\uDE3C-\uDE3F\uDE49-\uDE4F\uDE52-\uDE5F\uDE66-\uDEFF]|\uD83D[\uDED8-\uDEDC\uDEED-\uDEEF\uDEFD-\uDEFF\uDF74-\uDF7F\uDFD9-\uDFDF\uDFEC-\uDFEF\uDFF1-\uDFFF]|\uD83E[\uDC0C-\uDC0F\uDC48-\uDC4F\uDC5A-\uDC5F\uDC88-\uDC8F\uDCAE\uDCAF\uDCB2-\uDCFF\uDE54-\uDE5F\uDE6E\uDE6F\uDE75-\uDE77\uDE7D-\uDE7F\uDE87-\uDE8F\uDEAD-\uDEAF\uDEBB-\uDEBF\uDEC6-\uDECF\uDEDA-\uDEDF\uDEE8-\uDEEF\uDEF7-\uDEFF\uDF93\uDFCB-\uDFEF\uDFFA-\uDFFF]|\uD869[\uDEE0-\uDEFF]|\uD86D[\uDF39-\uDF3F]|\uD86E[\uDC1E\uDC1F]|\uD873[\uDEA2-\uDEAF]|\uD87A[\uDFE1-\uDFFF]|\uD87E[\uDE1E-\uDFFF]|\uD884[\uDF4B-\uDFFF]|\uDB40[\uDC00-\uDCFF\uDDF0-\uDFFF]' + }, + { + 'name': 'Cc', + 'alias': 'Control', + 'bmp': '\0-\x1F\x7F-\x9F' + }, + { + 'name': 'Cf', + 'alias': 'Format', + 'bmp': '\xAD\u0600-\u0605\u061C\u06DD\u070F\u0890\u0891\u08E2\u180E\u200B-\u200F\u202A-\u202E\u2060-\u2064\u2066-\u206F\uFEFF\uFFF9-\uFFFB', + 'astral': '\uD804[\uDCBD\uDCCD]|\uD80D[\uDC30-\uDC38]|\uD82F[\uDCA0-\uDCA3]|\uD834[\uDD73-\uDD7A]|\uDB40[\uDC01\uDC20-\uDC7F]' + }, + { + 'name': 'Cn', + 'alias': 'Unassigned', + 'bmp': '\u0378\u0379\u0380-\u0383\u038B\u038D\u03A2\u0530\u0557\u0558\u058B\u058C\u0590\u05C8-\u05CF\u05EB-\u05EE\u05F5-\u05FF\u070E\u074B\u074C\u07B2-\u07BF\u07FB\u07FC\u082E\u082F\u083F\u085C\u085D\u085F\u086B-\u086F\u088F\u0892-\u0897\u0984\u098D\u098E\u0991\u0992\u09A9\u09B1\u09B3-\u09B5\u09BA\u09BB\u09C5\u09C6\u09C9\u09CA\u09CF-\u09D6\u09D8-\u09DB\u09DE\u09E4\u09E5\u09FF\u0A00\u0A04\u0A0B-\u0A0E\u0A11\u0A12\u0A29\u0A31\u0A34\u0A37\u0A3A\u0A3B\u0A3D\u0A43-\u0A46\u0A49\u0A4A\u0A4E-\u0A50\u0A52-\u0A58\u0A5D\u0A5F-\u0A65\u0A77-\u0A80\u0A84\u0A8E\u0A92\u0AA9\u0AB1\u0AB4\u0ABA\u0ABB\u0AC6\u0ACA\u0ACE\u0ACF\u0AD1-\u0ADF\u0AE4\u0AE5\u0AF2-\u0AF8\u0B00\u0B04\u0B0D\u0B0E\u0B11\u0B12\u0B29\u0B31\u0B34\u0B3A\u0B3B\u0B45\u0B46\u0B49\u0B4A\u0B4E-\u0B54\u0B58-\u0B5B\u0B5E\u0B64\u0B65\u0B78-\u0B81\u0B84\u0B8B-\u0B8D\u0B91\u0B96-\u0B98\u0B9B\u0B9D\u0BA0-\u0BA2\u0BA5-\u0BA7\u0BAB-\u0BAD\u0BBA-\u0BBD\u0BC3-\u0BC5\u0BC9\u0BCE\u0BCF\u0BD1-\u0BD6\u0BD8-\u0BE5\u0BFB-\u0BFF\u0C0D\u0C11\u0C29\u0C3A\u0C3B\u0C45\u0C49\u0C4E-\u0C54\u0C57\u0C5B\u0C5C\u0C5E\u0C5F\u0C64\u0C65\u0C70-\u0C76\u0C8D\u0C91\u0CA9\u0CB4\u0CBA\u0CBB\u0CC5\u0CC9\u0CCE-\u0CD4\u0CD7-\u0CDC\u0CDF\u0CE4\u0CE5\u0CF0\u0CF3-\u0CFF\u0D0D\u0D11\u0D45\u0D49\u0D50-\u0D53\u0D64\u0D65\u0D80\u0D84\u0D97-\u0D99\u0DB2\u0DBC\u0DBE\u0DBF\u0DC7-\u0DC9\u0DCB-\u0DCE\u0DD5\u0DD7\u0DE0-\u0DE5\u0DF0\u0DF1\u0DF5-\u0E00\u0E3B-\u0E3E\u0E5C-\u0E80\u0E83\u0E85\u0E8B\u0EA4\u0EA6\u0EBE\u0EBF\u0EC5\u0EC7\u0ECE\u0ECF\u0EDA\u0EDB\u0EE0-\u0EFF\u0F48\u0F6D-\u0F70\u0F98\u0FBD\u0FCD\u0FDB-\u0FFF\u10C6\u10C8-\u10CC\u10CE\u10CF\u1249\u124E\u124F\u1257\u1259\u125E\u125F\u1289\u128E\u128F\u12B1\u12B6\u12B7\u12BF\u12C1\u12C6\u12C7\u12D7\u1311\u1316\u1317\u135B\u135C\u137D-\u137F\u139A-\u139F\u13F6\u13F7\u13FE\u13FF\u169D-\u169F\u16F9-\u16FF\u1716-\u171E\u1737-\u173F\u1754-\u175F\u176D\u1771\u1774-\u177F\u17DE\u17DF\u17EA-\u17EF\u17FA-\u17FF\u181A-\u181F\u1879-\u187F\u18AB-\u18AF\u18F6-\u18FF\u191F\u192C-\u192F\u193C-\u193F\u1941-\u1943\u196E\u196F\u1975-\u197F\u19AC-\u19AF\u19CA-\u19CF\u19DB-\u19DD\u1A1C\u1A1D\u1A5F\u1A7D\u1A7E\u1A8A-\u1A8F\u1A9A-\u1A9F\u1AAE\u1AAF\u1ACF-\u1AFF\u1B4D-\u1B4F\u1B7F\u1BF4-\u1BFB\u1C38-\u1C3A\u1C4A-\u1C4C\u1C89-\u1C8F\u1CBB\u1CBC\u1CC8-\u1CCF\u1CFB-\u1CFF\u1F16\u1F17\u1F1E\u1F1F\u1F46\u1F47\u1F4E\u1F4F\u1F58\u1F5A\u1F5C\u1F5E\u1F7E\u1F7F\u1FB5\u1FC5\u1FD4\u1FD5\u1FDC\u1FF0\u1FF1\u1FF5\u1FFF\u2065\u2072\u2073\u208F\u209D-\u209F\u20C1-\u20CF\u20F1-\u20FF\u218C-\u218F\u2427-\u243F\u244B-\u245F\u2B74\u2B75\u2B96\u2CF4-\u2CF8\u2D26\u2D28-\u2D2C\u2D2E\u2D2F\u2D68-\u2D6E\u2D71-\u2D7E\u2D97-\u2D9F\u2DA7\u2DAF\u2DB7\u2DBF\u2DC7\u2DCF\u2DD7\u2DDF\u2E5E-\u2E7F\u2E9A\u2EF4-\u2EFF\u2FD6-\u2FEF\u2FFC-\u2FFF\u3040\u3097\u3098\u3100-\u3104\u3130\u318F\u31E4-\u31EF\u321F\uA48D-\uA48F\uA4C7-\uA4CF\uA62C-\uA63F\uA6F8-\uA6FF\uA7CB-\uA7CF\uA7D2\uA7D4\uA7DA-\uA7F1\uA82D-\uA82F\uA83A-\uA83F\uA878-\uA87F\uA8C6-\uA8CD\uA8DA-\uA8DF\uA954-\uA95E\uA97D-\uA97F\uA9CE\uA9DA-\uA9DD\uA9FF\uAA37-\uAA3F\uAA4E\uAA4F\uAA5A\uAA5B\uAAC3-\uAADA\uAAF7-\uAB00\uAB07\uAB08\uAB0F\uAB10\uAB17-\uAB1F\uAB27\uAB2F\uAB6C-\uAB6F\uABEE\uABEF\uABFA-\uABFF\uD7A4-\uD7AF\uD7C7-\uD7CA\uD7FC-\uD7FF\uFA6E\uFA6F\uFADA-\uFAFF\uFB07-\uFB12\uFB18-\uFB1C\uFB37\uFB3D\uFB3F\uFB42\uFB45\uFBC3-\uFBD2\uFD90\uFD91\uFDC8-\uFDCE\uFDD0-\uFDEF\uFE1A-\uFE1F\uFE53\uFE67\uFE6C-\uFE6F\uFE75\uFEFD\uFEFE\uFF00\uFFBF-\uFFC1\uFFC8\uFFC9\uFFD0\uFFD1\uFFD8\uFFD9\uFFDD-\uFFDF\uFFE7\uFFEF-\uFFF8\uFFFE\uFFFF', + 'astral': '\uD800[\uDC0C\uDC27\uDC3B\uDC3E\uDC4E\uDC4F\uDC5E-\uDC7F\uDCFB-\uDCFF\uDD03-\uDD06\uDD34-\uDD36\uDD8F\uDD9D-\uDD9F\uDDA1-\uDDCF\uDDFE-\uDE7F\uDE9D-\uDE9F\uDED1-\uDEDF\uDEFC-\uDEFF\uDF24-\uDF2C\uDF4B-\uDF4F\uDF7B-\uDF7F\uDF9E\uDFC4-\uDFC7\uDFD6-\uDFFF]|\uD801[\uDC9E\uDC9F\uDCAA-\uDCAF\uDCD4-\uDCD7\uDCFC-\uDCFF\uDD28-\uDD2F\uDD64-\uDD6E\uDD7B\uDD8B\uDD93\uDD96\uDDA2\uDDB2\uDDBA\uDDBD-\uDDFF\uDF37-\uDF3F\uDF56-\uDF5F\uDF68-\uDF7F\uDF86\uDFB1\uDFBB-\uDFFF]|\uD802[\uDC06\uDC07\uDC09\uDC36\uDC39-\uDC3B\uDC3D\uDC3E\uDC56\uDC9F-\uDCA6\uDCB0-\uDCDF\uDCF3\uDCF6-\uDCFA\uDD1C-\uDD1E\uDD3A-\uDD3E\uDD40-\uDD7F\uDDB8-\uDDBB\uDDD0\uDDD1\uDE04\uDE07-\uDE0B\uDE14\uDE18\uDE36\uDE37\uDE3B-\uDE3E\uDE49-\uDE4F\uDE59-\uDE5F\uDEA0-\uDEBF\uDEE7-\uDEEA\uDEF7-\uDEFF\uDF36-\uDF38\uDF56\uDF57\uDF73-\uDF77\uDF92-\uDF98\uDF9D-\uDFA8\uDFB0-\uDFFF]|\uD803[\uDC49-\uDC7F\uDCB3-\uDCBF\uDCF3-\uDCF9\uDD28-\uDD2F\uDD3A-\uDE5F\uDE7F\uDEAA\uDEAE\uDEAF\uDEB2-\uDEFF\uDF28-\uDF2F\uDF5A-\uDF6F\uDF8A-\uDFAF\uDFCC-\uDFDF\uDFF7-\uDFFF]|\uD804[\uDC4E-\uDC51\uDC76-\uDC7E\uDCC3-\uDCCC\uDCCE\uDCCF\uDCE9-\uDCEF\uDCFA-\uDCFF\uDD35\uDD48-\uDD4F\uDD77-\uDD7F\uDDE0\uDDF5-\uDDFF\uDE12\uDE3F-\uDE7F\uDE87\uDE89\uDE8E\uDE9E\uDEAA-\uDEAF\uDEEB-\uDEEF\uDEFA-\uDEFF\uDF04\uDF0D\uDF0E\uDF11\uDF12\uDF29\uDF31\uDF34\uDF3A\uDF45\uDF46\uDF49\uDF4A\uDF4E\uDF4F\uDF51-\uDF56\uDF58-\uDF5C\uDF64\uDF65\uDF6D-\uDF6F\uDF75-\uDFFF]|\uD805[\uDC5C\uDC62-\uDC7F\uDCC8-\uDCCF\uDCDA-\uDD7F\uDDB6\uDDB7\uDDDE-\uDDFF\uDE45-\uDE4F\uDE5A-\uDE5F\uDE6D-\uDE7F\uDEBA-\uDEBF\uDECA-\uDEFF\uDF1B\uDF1C\uDF2C-\uDF2F\uDF47-\uDFFF]|\uD806[\uDC3C-\uDC9F\uDCF3-\uDCFE\uDD07\uDD08\uDD0A\uDD0B\uDD14\uDD17\uDD36\uDD39\uDD3A\uDD47-\uDD4F\uDD5A-\uDD9F\uDDA8\uDDA9\uDDD8\uDDD9\uDDE5-\uDDFF\uDE48-\uDE4F\uDEA3-\uDEAF\uDEF9-\uDFFF]|\uD807[\uDC09\uDC37\uDC46-\uDC4F\uDC6D-\uDC6F\uDC90\uDC91\uDCA8\uDCB7-\uDCFF\uDD07\uDD0A\uDD37-\uDD39\uDD3B\uDD3E\uDD48-\uDD4F\uDD5A-\uDD5F\uDD66\uDD69\uDD8F\uDD92\uDD99-\uDD9F\uDDAA-\uDEDF\uDEF9-\uDFAF\uDFB1-\uDFBF\uDFF2-\uDFFE]|\uD808[\uDF9A-\uDFFF]|\uD809[\uDC6F\uDC75-\uDC7F\uDD44-\uDFFF]|[\uD80A\uD80E-\uD810\uD812-\uD819\uD824-\uD82A\uD82D\uD82E\uD830-\uD832\uD83F\uD87B-\uD87D\uD87F\uD885-\uDB3F\uDB41-\uDB7F][\uDC00-\uDFFF]|\uD80B[\uDC00-\uDF8F\uDFF3-\uDFFF]|\uD80D[\uDC2F\uDC39-\uDFFF]|\uD811[\uDE47-\uDFFF]|\uD81A[\uDE39-\uDE3F\uDE5F\uDE6A-\uDE6D\uDEBF\uDECA-\uDECF\uDEEE\uDEEF\uDEF6-\uDEFF\uDF46-\uDF4F\uDF5A\uDF62\uDF78-\uDF7C\uDF90-\uDFFF]|\uD81B[\uDC00-\uDE3F\uDE9B-\uDEFF\uDF4B-\uDF4E\uDF88-\uDF8E\uDFA0-\uDFDF\uDFE5-\uDFEF\uDFF2-\uDFFF]|\uD821[\uDFF8-\uDFFF]|\uD823[\uDCD6-\uDCFF\uDD09-\uDFFF]|\uD82B[\uDC00-\uDFEF\uDFF4\uDFFC\uDFFF]|\uD82C[\uDD23-\uDD4F\uDD53-\uDD63\uDD68-\uDD6F\uDEFC-\uDFFF]|\uD82F[\uDC6B-\uDC6F\uDC7D-\uDC7F\uDC89-\uDC8F\uDC9A\uDC9B\uDCA4-\uDFFF]|\uD833[\uDC00-\uDEFF\uDF2E\uDF2F\uDF47-\uDF4F\uDFC4-\uDFFF]|\uD834[\uDCF6-\uDCFF\uDD27\uDD28\uDDEB-\uDDFF\uDE46-\uDEDF\uDEF4-\uDEFF\uDF57-\uDF5F\uDF79-\uDFFF]|\uD835[\uDC55\uDC9D\uDCA0\uDCA1\uDCA3\uDCA4\uDCA7\uDCA8\uDCAD\uDCBA\uDCBC\uDCC4\uDD06\uDD0B\uDD0C\uDD15\uDD1D\uDD3A\uDD3F\uDD45\uDD47-\uDD49\uDD51\uDEA6\uDEA7\uDFCC\uDFCD]|\uD836[\uDE8C-\uDE9A\uDEA0\uDEB0-\uDFFF]|\uD837[\uDC00-\uDEFF\uDF1F-\uDFFF]|\uD838[\uDC07\uDC19\uDC1A\uDC22\uDC25\uDC2B-\uDCFF\uDD2D-\uDD2F\uDD3E\uDD3F\uDD4A-\uDD4D\uDD50-\uDE8F\uDEAF-\uDEBF\uDEFA-\uDEFE\uDF00-\uDFFF]|\uD839[\uDC00-\uDFDF\uDFE7\uDFEC\uDFEF\uDFFF]|\uD83A[\uDCC5\uDCC6\uDCD7-\uDCFF\uDD4C-\uDD4F\uDD5A-\uDD5D\uDD60-\uDFFF]|\uD83B[\uDC00-\uDC70\uDCB5-\uDD00\uDD3E-\uDDFF\uDE04\uDE20\uDE23\uDE25\uDE26\uDE28\uDE33\uDE38\uDE3A\uDE3C-\uDE41\uDE43-\uDE46\uDE48\uDE4A\uDE4C\uDE50\uDE53\uDE55\uDE56\uDE58\uDE5A\uDE5C\uDE5E\uDE60\uDE63\uDE65\uDE66\uDE6B\uDE73\uDE78\uDE7D\uDE7F\uDE8A\uDE9C-\uDEA0\uDEA4\uDEAA\uDEBC-\uDEEF\uDEF2-\uDFFF]|\uD83C[\uDC2C-\uDC2F\uDC94-\uDC9F\uDCAF\uDCB0\uDCC0\uDCD0\uDCF6-\uDCFF\uDDAE-\uDDE5\uDE03-\uDE0F\uDE3C-\uDE3F\uDE49-\uDE4F\uDE52-\uDE5F\uDE66-\uDEFF]|\uD83D[\uDED8-\uDEDC\uDEED-\uDEEF\uDEFD-\uDEFF\uDF74-\uDF7F\uDFD9-\uDFDF\uDFEC-\uDFEF\uDFF1-\uDFFF]|\uD83E[\uDC0C-\uDC0F\uDC48-\uDC4F\uDC5A-\uDC5F\uDC88-\uDC8F\uDCAE\uDCAF\uDCB2-\uDCFF\uDE54-\uDE5F\uDE6E\uDE6F\uDE75-\uDE77\uDE7D-\uDE7F\uDE87-\uDE8F\uDEAD-\uDEAF\uDEBB-\uDEBF\uDEC6-\uDECF\uDEDA-\uDEDF\uDEE8-\uDEEF\uDEF7-\uDEFF\uDF93\uDFCB-\uDFEF\uDFFA-\uDFFF]|\uD869[\uDEE0-\uDEFF]|\uD86D[\uDF39-\uDF3F]|\uD86E[\uDC1E\uDC1F]|\uD873[\uDEA2-\uDEAF]|\uD87A[\uDFE1-\uDFFF]|\uD87E[\uDE1E-\uDFFF]|\uD884[\uDF4B-\uDFFF]|\uDB40[\uDC00\uDC02-\uDC1F\uDC80-\uDCFF\uDDF0-\uDFFF]|[\uDBBF\uDBFF][\uDFFE\uDFFF]' + }, + { + 'name': 'Co', + 'alias': 'Private_Use', + 'bmp': '\uE000-\uF8FF', + 'astral': '[\uDB80-\uDBBE\uDBC0-\uDBFE][\uDC00-\uDFFF]|[\uDBBF\uDBFF][\uDC00-\uDFFD]' + }, + { + 'name': 'Cs', + 'alias': 'Surrogate', + 'bmp': '\uD800-\uDFFF' + }, + { + 'name': 'L', + 'alias': 'Letter', + 'bmp': 'A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC', + 'astral': '\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF40\uDF42-\uDF49\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDE80-\uDEA9\uDEB0\uDEB1\uDF00-\uDF1C\uDF27\uDF30-\uDF45\uDF70-\uDF81\uDFB0-\uDFC4\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDEB8\uDF00-\uDF1A\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2\uDFB0]|\uD808[\uDC00-\uDF99]|\uD809[\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE70-\uDEBE\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE7F\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD837[\uDF00-\uDF1E]|\uD838[\uDD00-\uDD2C\uDD37-\uDD3D\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB]|\uD839[\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43\uDD4B]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF38\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A]' + }, + { + 'name': 'LC', + 'alias': 'Cased_Letter', + 'bmp': 'A-Za-z\xB5\xC0-\xD6\xD8-\xF6\xF8-\u01BA\u01BC-\u01BF\u01C4-\u0293\u0295-\u02AF\u0370-\u0373\u0376\u0377\u037B-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0560-\u0588\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FD-\u10FF\u13A0-\u13F5\u13F8-\u13FD\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1D00-\u1D2B\u1D6B-\u1D77\u1D79-\u1D9A\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2134\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C7B\u2C7E-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\uA640-\uA66D\uA680-\uA69B\uA722-\uA76F\uA771-\uA787\uA78B-\uA78E\uA790-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F5\uA7F6\uA7FA\uAB30-\uAB5A\uAB60-\uAB68\uAB70-\uABBF\uFB00-\uFB06\uFB13-\uFB17\uFF21-\uFF3A\uFF41-\uFF5A', + 'astral': '\uD801[\uDC00-\uDC4F\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC]|\uD803[\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD806[\uDCA0-\uDCDF]|\uD81B[\uDE40-\uDE7F]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD837[\uDF00-\uDF09\uDF0B-\uDF1E]|\uD83A[\uDD00-\uDD43]' + }, + { + 'name': 'Ll', + 'alias': 'Lowercase_Letter', + 'bmp': 'a-z\xB5\xDF-\xF6\xF8-\xFF\u0101\u0103\u0105\u0107\u0109\u010B\u010D\u010F\u0111\u0113\u0115\u0117\u0119\u011B\u011D\u011F\u0121\u0123\u0125\u0127\u0129\u012B\u012D\u012F\u0131\u0133\u0135\u0137\u0138\u013A\u013C\u013E\u0140\u0142\u0144\u0146\u0148\u0149\u014B\u014D\u014F\u0151\u0153\u0155\u0157\u0159\u015B\u015D\u015F\u0161\u0163\u0165\u0167\u0169\u016B\u016D\u016F\u0171\u0173\u0175\u0177\u017A\u017C\u017E-\u0180\u0183\u0185\u0188\u018C\u018D\u0192\u0195\u0199-\u019B\u019E\u01A1\u01A3\u01A5\u01A8\u01AA\u01AB\u01AD\u01B0\u01B4\u01B6\u01B9\u01BA\u01BD-\u01BF\u01C6\u01C9\u01CC\u01CE\u01D0\u01D2\u01D4\u01D6\u01D8\u01DA\u01DC\u01DD\u01DF\u01E1\u01E3\u01E5\u01E7\u01E9\u01EB\u01ED\u01EF\u01F0\u01F3\u01F5\u01F9\u01FB\u01FD\u01FF\u0201\u0203\u0205\u0207\u0209\u020B\u020D\u020F\u0211\u0213\u0215\u0217\u0219\u021B\u021D\u021F\u0221\u0223\u0225\u0227\u0229\u022B\u022D\u022F\u0231\u0233-\u0239\u023C\u023F\u0240\u0242\u0247\u0249\u024B\u024D\u024F-\u0293\u0295-\u02AF\u0371\u0373\u0377\u037B-\u037D\u0390\u03AC-\u03CE\u03D0\u03D1\u03D5-\u03D7\u03D9\u03DB\u03DD\u03DF\u03E1\u03E3\u03E5\u03E7\u03E9\u03EB\u03ED\u03EF-\u03F3\u03F5\u03F8\u03FB\u03FC\u0430-\u045F\u0461\u0463\u0465\u0467\u0469\u046B\u046D\u046F\u0471\u0473\u0475\u0477\u0479\u047B\u047D\u047F\u0481\u048B\u048D\u048F\u0491\u0493\u0495\u0497\u0499\u049B\u049D\u049F\u04A1\u04A3\u04A5\u04A7\u04A9\u04AB\u04AD\u04AF\u04B1\u04B3\u04B5\u04B7\u04B9\u04BB\u04BD\u04BF\u04C2\u04C4\u04C6\u04C8\u04CA\u04CC\u04CE\u04CF\u04D1\u04D3\u04D5\u04D7\u04D9\u04DB\u04DD\u04DF\u04E1\u04E3\u04E5\u04E7\u04E9\u04EB\u04ED\u04EF\u04F1\u04F3\u04F5\u04F7\u04F9\u04FB\u04FD\u04FF\u0501\u0503\u0505\u0507\u0509\u050B\u050D\u050F\u0511\u0513\u0515\u0517\u0519\u051B\u051D\u051F\u0521\u0523\u0525\u0527\u0529\u052B\u052D\u052F\u0560-\u0588\u10D0-\u10FA\u10FD-\u10FF\u13F8-\u13FD\u1C80-\u1C88\u1D00-\u1D2B\u1D6B-\u1D77\u1D79-\u1D9A\u1E01\u1E03\u1E05\u1E07\u1E09\u1E0B\u1E0D\u1E0F\u1E11\u1E13\u1E15\u1E17\u1E19\u1E1B\u1E1D\u1E1F\u1E21\u1E23\u1E25\u1E27\u1E29\u1E2B\u1E2D\u1E2F\u1E31\u1E33\u1E35\u1E37\u1E39\u1E3B\u1E3D\u1E3F\u1E41\u1E43\u1E45\u1E47\u1E49\u1E4B\u1E4D\u1E4F\u1E51\u1E53\u1E55\u1E57\u1E59\u1E5B\u1E5D\u1E5F\u1E61\u1E63\u1E65\u1E67\u1E69\u1E6B\u1E6D\u1E6F\u1E71\u1E73\u1E75\u1E77\u1E79\u1E7B\u1E7D\u1E7F\u1E81\u1E83\u1E85\u1E87\u1E89\u1E8B\u1E8D\u1E8F\u1E91\u1E93\u1E95-\u1E9D\u1E9F\u1EA1\u1EA3\u1EA5\u1EA7\u1EA9\u1EAB\u1EAD\u1EAF\u1EB1\u1EB3\u1EB5\u1EB7\u1EB9\u1EBB\u1EBD\u1EBF\u1EC1\u1EC3\u1EC5\u1EC7\u1EC9\u1ECB\u1ECD\u1ECF\u1ED1\u1ED3\u1ED5\u1ED7\u1ED9\u1EDB\u1EDD\u1EDF\u1EE1\u1EE3\u1EE5\u1EE7\u1EE9\u1EEB\u1EED\u1EEF\u1EF1\u1EF3\u1EF5\u1EF7\u1EF9\u1EFB\u1EFD\u1EFF-\u1F07\u1F10-\u1F15\u1F20-\u1F27\u1F30-\u1F37\u1F40-\u1F45\u1F50-\u1F57\u1F60-\u1F67\u1F70-\u1F7D\u1F80-\u1F87\u1F90-\u1F97\u1FA0-\u1FA7\u1FB0-\u1FB4\u1FB6\u1FB7\u1FBE\u1FC2-\u1FC4\u1FC6\u1FC7\u1FD0-\u1FD3\u1FD6\u1FD7\u1FE0-\u1FE7\u1FF2-\u1FF4\u1FF6\u1FF7\u210A\u210E\u210F\u2113\u212F\u2134\u2139\u213C\u213D\u2146-\u2149\u214E\u2184\u2C30-\u2C5F\u2C61\u2C65\u2C66\u2C68\u2C6A\u2C6C\u2C71\u2C73\u2C74\u2C76-\u2C7B\u2C81\u2C83\u2C85\u2C87\u2C89\u2C8B\u2C8D\u2C8F\u2C91\u2C93\u2C95\u2C97\u2C99\u2C9B\u2C9D\u2C9F\u2CA1\u2CA3\u2CA5\u2CA7\u2CA9\u2CAB\u2CAD\u2CAF\u2CB1\u2CB3\u2CB5\u2CB7\u2CB9\u2CBB\u2CBD\u2CBF\u2CC1\u2CC3\u2CC5\u2CC7\u2CC9\u2CCB\u2CCD\u2CCF\u2CD1\u2CD3\u2CD5\u2CD7\u2CD9\u2CDB\u2CDD\u2CDF\u2CE1\u2CE3\u2CE4\u2CEC\u2CEE\u2CF3\u2D00-\u2D25\u2D27\u2D2D\uA641\uA643\uA645\uA647\uA649\uA64B\uA64D\uA64F\uA651\uA653\uA655\uA657\uA659\uA65B\uA65D\uA65F\uA661\uA663\uA665\uA667\uA669\uA66B\uA66D\uA681\uA683\uA685\uA687\uA689\uA68B\uA68D\uA68F\uA691\uA693\uA695\uA697\uA699\uA69B\uA723\uA725\uA727\uA729\uA72B\uA72D\uA72F-\uA731\uA733\uA735\uA737\uA739\uA73B\uA73D\uA73F\uA741\uA743\uA745\uA747\uA749\uA74B\uA74D\uA74F\uA751\uA753\uA755\uA757\uA759\uA75B\uA75D\uA75F\uA761\uA763\uA765\uA767\uA769\uA76B\uA76D\uA76F\uA771-\uA778\uA77A\uA77C\uA77F\uA781\uA783\uA785\uA787\uA78C\uA78E\uA791\uA793-\uA795\uA797\uA799\uA79B\uA79D\uA79F\uA7A1\uA7A3\uA7A5\uA7A7\uA7A9\uA7AF\uA7B5\uA7B7\uA7B9\uA7BB\uA7BD\uA7BF\uA7C1\uA7C3\uA7C8\uA7CA\uA7D1\uA7D3\uA7D5\uA7D7\uA7D9\uA7F6\uA7FA\uAB30-\uAB5A\uAB60-\uAB68\uAB70-\uABBF\uFB00-\uFB06\uFB13-\uFB17\uFF41-\uFF5A', + 'astral': '\uD801[\uDC28-\uDC4F\uDCD8-\uDCFB\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC]|\uD803[\uDCC0-\uDCF2]|\uD806[\uDCC0-\uDCDF]|\uD81B[\uDE60-\uDE7F]|\uD835[\uDC1A-\uDC33\uDC4E-\uDC54\uDC56-\uDC67\uDC82-\uDC9B\uDCB6-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDCCF\uDCEA-\uDD03\uDD1E-\uDD37\uDD52-\uDD6B\uDD86-\uDD9F\uDDBA-\uDDD3\uDDEE-\uDE07\uDE22-\uDE3B\uDE56-\uDE6F\uDE8A-\uDEA5\uDEC2-\uDEDA\uDEDC-\uDEE1\uDEFC-\uDF14\uDF16-\uDF1B\uDF36-\uDF4E\uDF50-\uDF55\uDF70-\uDF88\uDF8A-\uDF8F\uDFAA-\uDFC2\uDFC4-\uDFC9\uDFCB]|\uD837[\uDF00-\uDF09\uDF0B-\uDF1E]|\uD83A[\uDD22-\uDD43]' + }, + { + 'name': 'Lm', + 'alias': 'Modifier_Letter', + 'bmp': '\u02B0-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0374\u037A\u0559\u0640\u06E5\u06E6\u07F4\u07F5\u07FA\u081A\u0824\u0828\u08C9\u0971\u0E46\u0EC6\u10FC\u17D7\u1843\u1AA7\u1C78-\u1C7D\u1D2C-\u1D6A\u1D78\u1D9B-\u1DBF\u2071\u207F\u2090-\u209C\u2C7C\u2C7D\u2D6F\u2E2F\u3005\u3031-\u3035\u303B\u309D\u309E\u30FC-\u30FE\uA015\uA4F8-\uA4FD\uA60C\uA67F\uA69C\uA69D\uA717-\uA71F\uA770\uA788\uA7F2-\uA7F4\uA7F8\uA7F9\uA9CF\uA9E6\uAA70\uAADD\uAAF3\uAAF4\uAB5C-\uAB5F\uAB69\uFF70\uFF9E\uFF9F', + 'astral': '\uD801[\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD81A[\uDF40-\uDF43]|\uD81B[\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD838[\uDD37-\uDD3D]|\uD83A\uDD4B' + }, + { + 'name': 'Lo', + 'alias': 'Other_Letter', + 'bmp': '\xAA\xBA\u01BB\u01C0-\u01C3\u0294\u05D0-\u05EA\u05EF-\u05F2\u0620-\u063F\u0641-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u0800-\u0815\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C8\u0904-\u0939\u093D\u0950\u0958-\u0961\u0972-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E45\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u1100-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17DC\u1820-\u1842\u1844-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C77\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u2135-\u2138\u2D30-\u2D67\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3006\u303C\u3041-\u3096\u309F\u30A1-\u30FA\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA014\uA016-\uA48C\uA4D0-\uA4F7\uA500-\uA60B\uA610-\uA61F\uA62A\uA62B\uA66E\uA6A0-\uA6E5\uA78F\uA7F7\uA7FB-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9E0-\uA9E4\uA9E7-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA6F\uAA71-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB\uAADC\uAAE0-\uAAEA\uAAF2\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF66-\uFF6F\uFF71-\uFF9D\uFFA0-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC', + 'astral': '\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF40\uDF42-\uDF49\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF]|\uD801[\uDC50-\uDC9D\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDD00-\uDD23\uDE80-\uDEA9\uDEB0\uDEB1\uDF00-\uDF1C\uDF27\uDF30-\uDF45\uDF70-\uDF81\uDFB0-\uDFC4\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDEB8\uDF00-\uDF1A\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2\uDFB0]|\uD808[\uDC00-\uDF99]|\uD809[\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE70-\uDEBE\uDED0-\uDEED\uDF00-\uDF2F\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF4A\uDF50]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82C[\uDC00-\uDD22\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD837\uDF0A|\uD838[\uDD00-\uDD2C\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB]|\uD839[\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF38\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A]' + }, + { + 'name': 'Lt', + 'alias': 'Titlecase_Letter', + 'bmp': '\u01C5\u01C8\u01CB\u01F2\u1F88-\u1F8F\u1F98-\u1F9F\u1FA8-\u1FAF\u1FBC\u1FCC\u1FFC' + }, + { + 'name': 'Lu', + 'alias': 'Uppercase_Letter', + 'bmp': 'A-Z\xC0-\xD6\xD8-\xDE\u0100\u0102\u0104\u0106\u0108\u010A\u010C\u010E\u0110\u0112\u0114\u0116\u0118\u011A\u011C\u011E\u0120\u0122\u0124\u0126\u0128\u012A\u012C\u012E\u0130\u0132\u0134\u0136\u0139\u013B\u013D\u013F\u0141\u0143\u0145\u0147\u014A\u014C\u014E\u0150\u0152\u0154\u0156\u0158\u015A\u015C\u015E\u0160\u0162\u0164\u0166\u0168\u016A\u016C\u016E\u0170\u0172\u0174\u0176\u0178\u0179\u017B\u017D\u0181\u0182\u0184\u0186\u0187\u0189-\u018B\u018E-\u0191\u0193\u0194\u0196-\u0198\u019C\u019D\u019F\u01A0\u01A2\u01A4\u01A6\u01A7\u01A9\u01AC\u01AE\u01AF\u01B1-\u01B3\u01B5\u01B7\u01B8\u01BC\u01C4\u01C7\u01CA\u01CD\u01CF\u01D1\u01D3\u01D5\u01D7\u01D9\u01DB\u01DE\u01E0\u01E2\u01E4\u01E6\u01E8\u01EA\u01EC\u01EE\u01F1\u01F4\u01F6-\u01F8\u01FA\u01FC\u01FE\u0200\u0202\u0204\u0206\u0208\u020A\u020C\u020E\u0210\u0212\u0214\u0216\u0218\u021A\u021C\u021E\u0220\u0222\u0224\u0226\u0228\u022A\u022C\u022E\u0230\u0232\u023A\u023B\u023D\u023E\u0241\u0243-\u0246\u0248\u024A\u024C\u024E\u0370\u0372\u0376\u037F\u0386\u0388-\u038A\u038C\u038E\u038F\u0391-\u03A1\u03A3-\u03AB\u03CF\u03D2-\u03D4\u03D8\u03DA\u03DC\u03DE\u03E0\u03E2\u03E4\u03E6\u03E8\u03EA\u03EC\u03EE\u03F4\u03F7\u03F9\u03FA\u03FD-\u042F\u0460\u0462\u0464\u0466\u0468\u046A\u046C\u046E\u0470\u0472\u0474\u0476\u0478\u047A\u047C\u047E\u0480\u048A\u048C\u048E\u0490\u0492\u0494\u0496\u0498\u049A\u049C\u049E\u04A0\u04A2\u04A4\u04A6\u04A8\u04AA\u04AC\u04AE\u04B0\u04B2\u04B4\u04B6\u04B8\u04BA\u04BC\u04BE\u04C0\u04C1\u04C3\u04C5\u04C7\u04C9\u04CB\u04CD\u04D0\u04D2\u04D4\u04D6\u04D8\u04DA\u04DC\u04DE\u04E0\u04E2\u04E4\u04E6\u04E8\u04EA\u04EC\u04EE\u04F0\u04F2\u04F4\u04F6\u04F8\u04FA\u04FC\u04FE\u0500\u0502\u0504\u0506\u0508\u050A\u050C\u050E\u0510\u0512\u0514\u0516\u0518\u051A\u051C\u051E\u0520\u0522\u0524\u0526\u0528\u052A\u052C\u052E\u0531-\u0556\u10A0-\u10C5\u10C7\u10CD\u13A0-\u13F5\u1C90-\u1CBA\u1CBD-\u1CBF\u1E00\u1E02\u1E04\u1E06\u1E08\u1E0A\u1E0C\u1E0E\u1E10\u1E12\u1E14\u1E16\u1E18\u1E1A\u1E1C\u1E1E\u1E20\u1E22\u1E24\u1E26\u1E28\u1E2A\u1E2C\u1E2E\u1E30\u1E32\u1E34\u1E36\u1E38\u1E3A\u1E3C\u1E3E\u1E40\u1E42\u1E44\u1E46\u1E48\u1E4A\u1E4C\u1E4E\u1E50\u1E52\u1E54\u1E56\u1E58\u1E5A\u1E5C\u1E5E\u1E60\u1E62\u1E64\u1E66\u1E68\u1E6A\u1E6C\u1E6E\u1E70\u1E72\u1E74\u1E76\u1E78\u1E7A\u1E7C\u1E7E\u1E80\u1E82\u1E84\u1E86\u1E88\u1E8A\u1E8C\u1E8E\u1E90\u1E92\u1E94\u1E9E\u1EA0\u1EA2\u1EA4\u1EA6\u1EA8\u1EAA\u1EAC\u1EAE\u1EB0\u1EB2\u1EB4\u1EB6\u1EB8\u1EBA\u1EBC\u1EBE\u1EC0\u1EC2\u1EC4\u1EC6\u1EC8\u1ECA\u1ECC\u1ECE\u1ED0\u1ED2\u1ED4\u1ED6\u1ED8\u1EDA\u1EDC\u1EDE\u1EE0\u1EE2\u1EE4\u1EE6\u1EE8\u1EEA\u1EEC\u1EEE\u1EF0\u1EF2\u1EF4\u1EF6\u1EF8\u1EFA\u1EFC\u1EFE\u1F08-\u1F0F\u1F18-\u1F1D\u1F28-\u1F2F\u1F38-\u1F3F\u1F48-\u1F4D\u1F59\u1F5B\u1F5D\u1F5F\u1F68-\u1F6F\u1FB8-\u1FBB\u1FC8-\u1FCB\u1FD8-\u1FDB\u1FE8-\u1FEC\u1FF8-\u1FFB\u2102\u2107\u210B-\u210D\u2110-\u2112\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u2130-\u2133\u213E\u213F\u2145\u2183\u2C00-\u2C2F\u2C60\u2C62-\u2C64\u2C67\u2C69\u2C6B\u2C6D-\u2C70\u2C72\u2C75\u2C7E-\u2C80\u2C82\u2C84\u2C86\u2C88\u2C8A\u2C8C\u2C8E\u2C90\u2C92\u2C94\u2C96\u2C98\u2C9A\u2C9C\u2C9E\u2CA0\u2CA2\u2CA4\u2CA6\u2CA8\u2CAA\u2CAC\u2CAE\u2CB0\u2CB2\u2CB4\u2CB6\u2CB8\u2CBA\u2CBC\u2CBE\u2CC0\u2CC2\u2CC4\u2CC6\u2CC8\u2CCA\u2CCC\u2CCE\u2CD0\u2CD2\u2CD4\u2CD6\u2CD8\u2CDA\u2CDC\u2CDE\u2CE0\u2CE2\u2CEB\u2CED\u2CF2\uA640\uA642\uA644\uA646\uA648\uA64A\uA64C\uA64E\uA650\uA652\uA654\uA656\uA658\uA65A\uA65C\uA65E\uA660\uA662\uA664\uA666\uA668\uA66A\uA66C\uA680\uA682\uA684\uA686\uA688\uA68A\uA68C\uA68E\uA690\uA692\uA694\uA696\uA698\uA69A\uA722\uA724\uA726\uA728\uA72A\uA72C\uA72E\uA732\uA734\uA736\uA738\uA73A\uA73C\uA73E\uA740\uA742\uA744\uA746\uA748\uA74A\uA74C\uA74E\uA750\uA752\uA754\uA756\uA758\uA75A\uA75C\uA75E\uA760\uA762\uA764\uA766\uA768\uA76A\uA76C\uA76E\uA779\uA77B\uA77D\uA77E\uA780\uA782\uA784\uA786\uA78B\uA78D\uA790\uA792\uA796\uA798\uA79A\uA79C\uA79E\uA7A0\uA7A2\uA7A4\uA7A6\uA7A8\uA7AA-\uA7AE\uA7B0-\uA7B4\uA7B6\uA7B8\uA7BA\uA7BC\uA7BE\uA7C0\uA7C2\uA7C4-\uA7C7\uA7C9\uA7D0\uA7D6\uA7D8\uA7F5\uFF21-\uFF3A', + 'astral': '\uD801[\uDC00-\uDC27\uDCB0-\uDCD3\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95]|\uD803[\uDC80-\uDCB2]|\uD806[\uDCA0-\uDCBF]|\uD81B[\uDE40-\uDE5F]|\uD835[\uDC00-\uDC19\uDC34-\uDC4D\uDC68-\uDC81\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB5\uDCD0-\uDCE9\uDD04\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD38\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD6C-\uDD85\uDDA0-\uDDB9\uDDD4-\uDDED\uDE08-\uDE21\uDE3C-\uDE55\uDE70-\uDE89\uDEA8-\uDEC0\uDEE2-\uDEFA\uDF1C-\uDF34\uDF56-\uDF6E\uDF90-\uDFA8\uDFCA]|\uD83A[\uDD00-\uDD21]' + }, + { + 'name': 'M', + 'alias': 'Mark', + 'bmp': '\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u0898-\u089F\u08CA-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B55-\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C04\u0C3C\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D81-\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u180F\u1885\u1886\u18A9\u1920-\u192B\u1930-\u193B\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ACE\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA82C\uA880\uA881\uA8B4-\uA8C5\uA8E0-\uA8F1\uA8FF\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F', + 'astral': '\uD800[\uDDFD\uDEE0\uDF76-\uDF7A]|\uD802[\uDE01-\uDE03\uDE05\uDE06\uDE0C-\uDE0F\uDE38-\uDE3A\uDE3F\uDEE5\uDEE6]|\uD803[\uDD24-\uDD27\uDEAB\uDEAC\uDF46-\uDF50\uDF82-\uDF85]|\uD804[\uDC00-\uDC02\uDC38-\uDC46\uDC70\uDC73\uDC74\uDC7F-\uDC82\uDCB0-\uDCBA\uDCC2\uDD00-\uDD02\uDD27-\uDD34\uDD45\uDD46\uDD73\uDD80-\uDD82\uDDB3-\uDDC0\uDDC9-\uDDCC\uDDCE\uDDCF\uDE2C-\uDE37\uDE3E\uDEDF-\uDEEA\uDF00-\uDF03\uDF3B\uDF3C\uDF3E-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF57\uDF62\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC35-\uDC46\uDC5E\uDCB0-\uDCC3\uDDAF-\uDDB5\uDDB8-\uDDC0\uDDDC\uDDDD\uDE30-\uDE40\uDEAB-\uDEB7\uDF1D-\uDF2B]|\uD806[\uDC2C-\uDC3A\uDD30-\uDD35\uDD37\uDD38\uDD3B-\uDD3E\uDD40\uDD42\uDD43\uDDD1-\uDDD7\uDDDA-\uDDE0\uDDE4\uDE01-\uDE0A\uDE33-\uDE39\uDE3B-\uDE3E\uDE47\uDE51-\uDE5B\uDE8A-\uDE99]|\uD807[\uDC2F-\uDC36\uDC38-\uDC3F\uDC92-\uDCA7\uDCA9-\uDCB6\uDD31-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD45\uDD47\uDD8A-\uDD8E\uDD90\uDD91\uDD93-\uDD97\uDEF3-\uDEF6]|\uD81A[\uDEF0-\uDEF4\uDF30-\uDF36]|\uD81B[\uDF4F\uDF51-\uDF87\uDF8F-\uDF92\uDFE4\uDFF0\uDFF1]|\uD82F[\uDC9D\uDC9E]|\uD833[\uDF00-\uDF2D\uDF30-\uDF46]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A\uDD30-\uDD36\uDEAE\uDEEC-\uDEEF]|\uD83A[\uDCD0-\uDCD6\uDD44-\uDD4A]|\uDB40[\uDD00-\uDDEF]' + }, + { + 'name': 'Mc', + 'alias': 'Spacing_Mark', + 'bmp': '\u0903\u093B\u093E-\u0940\u0949-\u094C\u094E\u094F\u0982\u0983\u09BE-\u09C0\u09C7\u09C8\u09CB\u09CC\u09D7\u0A03\u0A3E-\u0A40\u0A83\u0ABE-\u0AC0\u0AC9\u0ACB\u0ACC\u0B02\u0B03\u0B3E\u0B40\u0B47\u0B48\u0B4B\u0B4C\u0B57\u0BBE\u0BBF\u0BC1\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCC\u0BD7\u0C01-\u0C03\u0C41-\u0C44\u0C82\u0C83\u0CBE\u0CC0-\u0CC4\u0CC7\u0CC8\u0CCA\u0CCB\u0CD5\u0CD6\u0D02\u0D03\u0D3E-\u0D40\u0D46-\u0D48\u0D4A-\u0D4C\u0D57\u0D82\u0D83\u0DCF-\u0DD1\u0DD8-\u0DDF\u0DF2\u0DF3\u0F3E\u0F3F\u0F7F\u102B\u102C\u1031\u1038\u103B\u103C\u1056\u1057\u1062-\u1064\u1067-\u106D\u1083\u1084\u1087-\u108C\u108F\u109A-\u109C\u1715\u1734\u17B6\u17BE-\u17C5\u17C7\u17C8\u1923-\u1926\u1929-\u192B\u1930\u1931\u1933-\u1938\u1A19\u1A1A\u1A55\u1A57\u1A61\u1A63\u1A64\u1A6D-\u1A72\u1B04\u1B35\u1B3B\u1B3D-\u1B41\u1B43\u1B44\u1B82\u1BA1\u1BA6\u1BA7\u1BAA\u1BE7\u1BEA-\u1BEC\u1BEE\u1BF2\u1BF3\u1C24-\u1C2B\u1C34\u1C35\u1CE1\u1CF7\u302E\u302F\uA823\uA824\uA827\uA880\uA881\uA8B4-\uA8C3\uA952\uA953\uA983\uA9B4\uA9B5\uA9BA\uA9BB\uA9BE-\uA9C0\uAA2F\uAA30\uAA33\uAA34\uAA4D\uAA7B\uAA7D\uAAEB\uAAEE\uAAEF\uAAF5\uABE3\uABE4\uABE6\uABE7\uABE9\uABEA\uABEC', + 'astral': '\uD804[\uDC00\uDC02\uDC82\uDCB0-\uDCB2\uDCB7\uDCB8\uDD2C\uDD45\uDD46\uDD82\uDDB3-\uDDB5\uDDBF\uDDC0\uDDCE\uDE2C-\uDE2E\uDE32\uDE33\uDE35\uDEE0-\uDEE2\uDF02\uDF03\uDF3E\uDF3F\uDF41-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF57\uDF62\uDF63]|\uD805[\uDC35-\uDC37\uDC40\uDC41\uDC45\uDCB0-\uDCB2\uDCB9\uDCBB-\uDCBE\uDCC1\uDDAF-\uDDB1\uDDB8-\uDDBB\uDDBE\uDE30-\uDE32\uDE3B\uDE3C\uDE3E\uDEAC\uDEAE\uDEAF\uDEB6\uDF20\uDF21\uDF26]|\uD806[\uDC2C-\uDC2E\uDC38\uDD30-\uDD35\uDD37\uDD38\uDD3D\uDD40\uDD42\uDDD1-\uDDD3\uDDDC-\uDDDF\uDDE4\uDE39\uDE57\uDE58\uDE97]|\uD807[\uDC2F\uDC3E\uDCA9\uDCB1\uDCB4\uDD8A-\uDD8E\uDD93\uDD94\uDD96\uDEF5\uDEF6]|\uD81B[\uDF51-\uDF87\uDFF0\uDFF1]|\uD834[\uDD65\uDD66\uDD6D-\uDD72]' + }, + { + 'name': 'Me', + 'alias': 'Enclosing_Mark', + 'bmp': '\u0488\u0489\u1ABE\u20DD-\u20E0\u20E2-\u20E4\uA670-\uA672' + }, + { + 'name': 'Mn', + 'alias': 'Nonspacing_Mark', + 'bmp': '\u0300-\u036F\u0483-\u0487\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u0898-\u089F\u08CA-\u08E1\u08E3-\u0902\u093A\u093C\u0941-\u0948\u094D\u0951-\u0957\u0962\u0963\u0981\u09BC\u09C1-\u09C4\u09CD\u09E2\u09E3\u09FE\u0A01\u0A02\u0A3C\u0A41\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81\u0A82\u0ABC\u0AC1-\u0AC5\u0AC7\u0AC8\u0ACD\u0AE2\u0AE3\u0AFA-\u0AFF\u0B01\u0B3C\u0B3F\u0B41-\u0B44\u0B4D\u0B55\u0B56\u0B62\u0B63\u0B82\u0BC0\u0BCD\u0C00\u0C04\u0C3C\u0C3E-\u0C40\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81\u0CBC\u0CBF\u0CC6\u0CCC\u0CCD\u0CE2\u0CE3\u0D00\u0D01\u0D3B\u0D3C\u0D41-\u0D44\u0D4D\u0D62\u0D63\u0D81\u0DCA\u0DD2-\u0DD4\u0DD6\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F71-\u0F7E\u0F80-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102D-\u1030\u1032-\u1037\u1039\u103A\u103D\u103E\u1058\u1059\u105E-\u1060\u1071-\u1074\u1082\u1085\u1086\u108D\u109D\u135D-\u135F\u1712-\u1714\u1732\u1733\u1752\u1753\u1772\u1773\u17B4\u17B5\u17B7-\u17BD\u17C6\u17C9-\u17D3\u17DD\u180B-\u180D\u180F\u1885\u1886\u18A9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193B\u1A17\u1A18\u1A1B\u1A56\u1A58-\u1A5E\u1A60\u1A62\u1A65-\u1A6C\u1A73-\u1A7C\u1A7F\u1AB0-\u1ABD\u1ABF-\u1ACE\u1B00-\u1B03\u1B34\u1B36-\u1B3A\u1B3C\u1B42\u1B6B-\u1B73\u1B80\u1B81\u1BA2-\u1BA5\u1BA8\u1BA9\u1BAB-\u1BAD\u1BE6\u1BE8\u1BE9\u1BED\u1BEF-\u1BF1\u1C2C-\u1C33\u1C36\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE0\u1CE2-\u1CE8\u1CED\u1CF4\u1CF8\u1CF9\u1DC0-\u1DFF\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302D\u3099\u309A\uA66F\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA825\uA826\uA82C\uA8C4\uA8C5\uA8E0-\uA8F1\uA8FF\uA926-\uA92D\uA947-\uA951\uA980-\uA982\uA9B3\uA9B6-\uA9B9\uA9BC\uA9BD\uA9E5\uAA29-\uAA2E\uAA31\uAA32\uAA35\uAA36\uAA43\uAA4C\uAA7C\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEC\uAAED\uAAF6\uABE5\uABE8\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F', + 'astral': '\uD800[\uDDFD\uDEE0\uDF76-\uDF7A]|\uD802[\uDE01-\uDE03\uDE05\uDE06\uDE0C-\uDE0F\uDE38-\uDE3A\uDE3F\uDEE5\uDEE6]|\uD803[\uDD24-\uDD27\uDEAB\uDEAC\uDF46-\uDF50\uDF82-\uDF85]|\uD804[\uDC01\uDC38-\uDC46\uDC70\uDC73\uDC74\uDC7F-\uDC81\uDCB3-\uDCB6\uDCB9\uDCBA\uDCC2\uDD00-\uDD02\uDD27-\uDD2B\uDD2D-\uDD34\uDD73\uDD80\uDD81\uDDB6-\uDDBE\uDDC9-\uDDCC\uDDCF\uDE2F-\uDE31\uDE34\uDE36\uDE37\uDE3E\uDEDF\uDEE3-\uDEEA\uDF00\uDF01\uDF3B\uDF3C\uDF40\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC38-\uDC3F\uDC42-\uDC44\uDC46\uDC5E\uDCB3-\uDCB8\uDCBA\uDCBF\uDCC0\uDCC2\uDCC3\uDDB2-\uDDB5\uDDBC\uDDBD\uDDBF\uDDC0\uDDDC\uDDDD\uDE33-\uDE3A\uDE3D\uDE3F\uDE40\uDEAB\uDEAD\uDEB0-\uDEB5\uDEB7\uDF1D-\uDF1F\uDF22-\uDF25\uDF27-\uDF2B]|\uD806[\uDC2F-\uDC37\uDC39\uDC3A\uDD3B\uDD3C\uDD3E\uDD43\uDDD4-\uDDD7\uDDDA\uDDDB\uDDE0\uDE01-\uDE0A\uDE33-\uDE38\uDE3B-\uDE3E\uDE47\uDE51-\uDE56\uDE59-\uDE5B\uDE8A-\uDE96\uDE98\uDE99]|\uD807[\uDC30-\uDC36\uDC38-\uDC3D\uDC3F\uDC92-\uDCA7\uDCAA-\uDCB0\uDCB2\uDCB3\uDCB5\uDCB6\uDD31-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD45\uDD47\uDD90\uDD91\uDD95\uDD97\uDEF3\uDEF4]|\uD81A[\uDEF0-\uDEF4\uDF30-\uDF36]|\uD81B[\uDF4F\uDF8F-\uDF92\uDFE4]|\uD82F[\uDC9D\uDC9E]|\uD833[\uDF00-\uDF2D\uDF30-\uDF46]|\uD834[\uDD67-\uDD69\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A\uDD30-\uDD36\uDEAE\uDEEC-\uDEEF]|\uD83A[\uDCD0-\uDCD6\uDD44-\uDD4A]|\uDB40[\uDD00-\uDDEF]' + }, + { + 'name': 'N', + 'alias': 'Number', + 'bmp': '0-9\xB2\xB3\xB9\xBC-\xBE\u0660-\u0669\u06F0-\u06F9\u07C0-\u07C9\u0966-\u096F\u09E6-\u09EF\u09F4-\u09F9\u0A66-\u0A6F\u0AE6-\u0AEF\u0B66-\u0B6F\u0B72-\u0B77\u0BE6-\u0BF2\u0C66-\u0C6F\u0C78-\u0C7E\u0CE6-\u0CEF\u0D58-\u0D5E\u0D66-\u0D78\u0DE6-\u0DEF\u0E50-\u0E59\u0ED0-\u0ED9\u0F20-\u0F33\u1040-\u1049\u1090-\u1099\u1369-\u137C\u16EE-\u16F0\u17E0-\u17E9\u17F0-\u17F9\u1810-\u1819\u1946-\u194F\u19D0-\u19DA\u1A80-\u1A89\u1A90-\u1A99\u1B50-\u1B59\u1BB0-\u1BB9\u1C40-\u1C49\u1C50-\u1C59\u2070\u2074-\u2079\u2080-\u2089\u2150-\u2182\u2185-\u2189\u2460-\u249B\u24EA-\u24FF\u2776-\u2793\u2CFD\u3007\u3021-\u3029\u3038-\u303A\u3192-\u3195\u3220-\u3229\u3248-\u324F\u3251-\u325F\u3280-\u3289\u32B1-\u32BF\uA620-\uA629\uA6E6-\uA6EF\uA830-\uA835\uA8D0-\uA8D9\uA900-\uA909\uA9D0-\uA9D9\uA9F0-\uA9F9\uAA50-\uAA59\uABF0-\uABF9\uFF10-\uFF19', + 'astral': '\uD800[\uDD07-\uDD33\uDD40-\uDD78\uDD8A\uDD8B\uDEE1-\uDEFB\uDF20-\uDF23\uDF41\uDF4A\uDFD1-\uDFD5]|\uD801[\uDCA0-\uDCA9]|\uD802[\uDC58-\uDC5F\uDC79-\uDC7F\uDCA7-\uDCAF\uDCFB-\uDCFF\uDD16-\uDD1B\uDDBC\uDDBD\uDDC0-\uDDCF\uDDD2-\uDDFF\uDE40-\uDE48\uDE7D\uDE7E\uDE9D-\uDE9F\uDEEB-\uDEEF\uDF58-\uDF5F\uDF78-\uDF7F\uDFA9-\uDFAF]|\uD803[\uDCFA-\uDCFF\uDD30-\uDD39\uDE60-\uDE7E\uDF1D-\uDF26\uDF51-\uDF54\uDFC5-\uDFCB]|\uD804[\uDC52-\uDC6F\uDCF0-\uDCF9\uDD36-\uDD3F\uDDD0-\uDDD9\uDDE1-\uDDF4\uDEF0-\uDEF9]|\uD805[\uDC50-\uDC59\uDCD0-\uDCD9\uDE50-\uDE59\uDEC0-\uDEC9\uDF30-\uDF3B]|\uD806[\uDCE0-\uDCF2\uDD50-\uDD59]|\uD807[\uDC50-\uDC6C\uDD50-\uDD59\uDDA0-\uDDA9\uDFC0-\uDFD4]|\uD809[\uDC00-\uDC6E]|\uD81A[\uDE60-\uDE69\uDEC0-\uDEC9\uDF50-\uDF59\uDF5B-\uDF61]|\uD81B[\uDE80-\uDE96]|\uD834[\uDEE0-\uDEF3\uDF60-\uDF78]|\uD835[\uDFCE-\uDFFF]|\uD838[\uDD40-\uDD49\uDEF0-\uDEF9]|\uD83A[\uDCC7-\uDCCF\uDD50-\uDD59]|\uD83B[\uDC71-\uDCAB\uDCAD-\uDCAF\uDCB1-\uDCB4\uDD01-\uDD2D\uDD2F-\uDD3D]|\uD83C[\uDD00-\uDD0C]|\uD83E[\uDFF0-\uDFF9]' + }, + { + 'name': 'Nd', + 'alias': 'Decimal_Number', + 'bmp': '0-9\u0660-\u0669\u06F0-\u06F9\u07C0-\u07C9\u0966-\u096F\u09E6-\u09EF\u0A66-\u0A6F\u0AE6-\u0AEF\u0B66-\u0B6F\u0BE6-\u0BEF\u0C66-\u0C6F\u0CE6-\u0CEF\u0D66-\u0D6F\u0DE6-\u0DEF\u0E50-\u0E59\u0ED0-\u0ED9\u0F20-\u0F29\u1040-\u1049\u1090-\u1099\u17E0-\u17E9\u1810-\u1819\u1946-\u194F\u19D0-\u19D9\u1A80-\u1A89\u1A90-\u1A99\u1B50-\u1B59\u1BB0-\u1BB9\u1C40-\u1C49\u1C50-\u1C59\uA620-\uA629\uA8D0-\uA8D9\uA900-\uA909\uA9D0-\uA9D9\uA9F0-\uA9F9\uAA50-\uAA59\uABF0-\uABF9\uFF10-\uFF19', + 'astral': '\uD801[\uDCA0-\uDCA9]|\uD803[\uDD30-\uDD39]|\uD804[\uDC66-\uDC6F\uDCF0-\uDCF9\uDD36-\uDD3F\uDDD0-\uDDD9\uDEF0-\uDEF9]|\uD805[\uDC50-\uDC59\uDCD0-\uDCD9\uDE50-\uDE59\uDEC0-\uDEC9\uDF30-\uDF39]|\uD806[\uDCE0-\uDCE9\uDD50-\uDD59]|\uD807[\uDC50-\uDC59\uDD50-\uDD59\uDDA0-\uDDA9]|\uD81A[\uDE60-\uDE69\uDEC0-\uDEC9\uDF50-\uDF59]|\uD835[\uDFCE-\uDFFF]|\uD838[\uDD40-\uDD49\uDEF0-\uDEF9]|\uD83A[\uDD50-\uDD59]|\uD83E[\uDFF0-\uDFF9]' + }, + { + 'name': 'Nl', + 'alias': 'Letter_Number', + 'bmp': '\u16EE-\u16F0\u2160-\u2182\u2185-\u2188\u3007\u3021-\u3029\u3038-\u303A\uA6E6-\uA6EF', + 'astral': '\uD800[\uDD40-\uDD74\uDF41\uDF4A\uDFD1-\uDFD5]|\uD809[\uDC00-\uDC6E]' + }, + { + 'name': 'No', + 'alias': 'Other_Number', + 'bmp': '\xB2\xB3\xB9\xBC-\xBE\u09F4-\u09F9\u0B72-\u0B77\u0BF0-\u0BF2\u0C78-\u0C7E\u0D58-\u0D5E\u0D70-\u0D78\u0F2A-\u0F33\u1369-\u137C\u17F0-\u17F9\u19DA\u2070\u2074-\u2079\u2080-\u2089\u2150-\u215F\u2189\u2460-\u249B\u24EA-\u24FF\u2776-\u2793\u2CFD\u3192-\u3195\u3220-\u3229\u3248-\u324F\u3251-\u325F\u3280-\u3289\u32B1-\u32BF\uA830-\uA835', + 'astral': '\uD800[\uDD07-\uDD33\uDD75-\uDD78\uDD8A\uDD8B\uDEE1-\uDEFB\uDF20-\uDF23]|\uD802[\uDC58-\uDC5F\uDC79-\uDC7F\uDCA7-\uDCAF\uDCFB-\uDCFF\uDD16-\uDD1B\uDDBC\uDDBD\uDDC0-\uDDCF\uDDD2-\uDDFF\uDE40-\uDE48\uDE7D\uDE7E\uDE9D-\uDE9F\uDEEB-\uDEEF\uDF58-\uDF5F\uDF78-\uDF7F\uDFA9-\uDFAF]|\uD803[\uDCFA-\uDCFF\uDE60-\uDE7E\uDF1D-\uDF26\uDF51-\uDF54\uDFC5-\uDFCB]|\uD804[\uDC52-\uDC65\uDDE1-\uDDF4]|\uD805[\uDF3A\uDF3B]|\uD806[\uDCEA-\uDCF2]|\uD807[\uDC5A-\uDC6C\uDFC0-\uDFD4]|\uD81A[\uDF5B-\uDF61]|\uD81B[\uDE80-\uDE96]|\uD834[\uDEE0-\uDEF3\uDF60-\uDF78]|\uD83A[\uDCC7-\uDCCF]|\uD83B[\uDC71-\uDCAB\uDCAD-\uDCAF\uDCB1-\uDCB4\uDD01-\uDD2D\uDD2F-\uDD3D]|\uD83C[\uDD00-\uDD0C]' + }, + { + 'name': 'P', + 'alias': 'Punctuation', + 'bmp': '!-#%-\\*,-\\/:;\\?@\\[-\\]_\\{\\}\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061D-\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C77\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1B7D\u1B7E\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4F\u2E52-\u2E5D\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65', + 'astral': '\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD803[\uDEAD\uDF55-\uDF59\uDF86-\uDF89]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDC4B-\uDC4F\uDC5A\uDC5B\uDC5D\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDE60-\uDE6C\uDEB9\uDF3C-\uDF3E]|\uD806[\uDC3B\uDD44-\uDD46\uDDE2\uDE3F-\uDE46\uDE9A-\uDE9C\uDE9E-\uDEA2]|\uD807[\uDC41-\uDC45\uDC70\uDC71\uDEF7\uDEF8\uDFFF]|\uD809[\uDC70-\uDC74]|\uD80B[\uDFF1\uDFF2]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD81B[\uDE97-\uDE9A\uDFE2]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]|\uD83A[\uDD5E\uDD5F]' + }, + { + 'name': 'Pc', + 'alias': 'Connector_Punctuation', + 'bmp': '_\u203F\u2040\u2054\uFE33\uFE34\uFE4D-\uFE4F\uFF3F' + }, + { + 'name': 'Pd', + 'alias': 'Dash_Punctuation', + 'bmp': '\\-\u058A\u05BE\u1400\u1806\u2010-\u2015\u2E17\u2E1A\u2E3A\u2E3B\u2E40\u2E5D\u301C\u3030\u30A0\uFE31\uFE32\uFE58\uFE63\uFF0D', + 'astral': '\uD803\uDEAD' + }, + { + 'name': 'Pe', + 'alias': 'Close_Punctuation', + 'bmp': '\\)\\]\\}\u0F3B\u0F3D\u169C\u2046\u207E\u208E\u2309\u230B\u232A\u2769\u276B\u276D\u276F\u2771\u2773\u2775\u27C6\u27E7\u27E9\u27EB\u27ED\u27EF\u2984\u2986\u2988\u298A\u298C\u298E\u2990\u2992\u2994\u2996\u2998\u29D9\u29DB\u29FD\u2E23\u2E25\u2E27\u2E29\u2E56\u2E58\u2E5A\u2E5C\u3009\u300B\u300D\u300F\u3011\u3015\u3017\u3019\u301B\u301E\u301F\uFD3E\uFE18\uFE36\uFE38\uFE3A\uFE3C\uFE3E\uFE40\uFE42\uFE44\uFE48\uFE5A\uFE5C\uFE5E\uFF09\uFF3D\uFF5D\uFF60\uFF63' + }, + { + 'name': 'Pf', + 'alias': 'Final_Punctuation', + 'bmp': '\xBB\u2019\u201D\u203A\u2E03\u2E05\u2E0A\u2E0D\u2E1D\u2E21' + }, + { + 'name': 'Pi', + 'alias': 'Initial_Punctuation', + 'bmp': '\xAB\u2018\u201B\u201C\u201F\u2039\u2E02\u2E04\u2E09\u2E0C\u2E1C\u2E20' + }, + { + 'name': 'Po', + 'alias': 'Other_Punctuation', + 'bmp': '!-#%-\'\\*,\\.\\/:;\\?@\\\xA1\xA7\xB6\xB7\xBF\u037E\u0387\u055A-\u055F\u0589\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061D-\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C77\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u166E\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u1805\u1807-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1B7D\u1B7E\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2016\u2017\u2020-\u2027\u2030-\u2038\u203B-\u203E\u2041-\u2043\u2047-\u2051\u2053\u2055-\u205E\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00\u2E01\u2E06-\u2E08\u2E0B\u2E0E-\u2E16\u2E18\u2E19\u2E1B\u2E1E\u2E1F\u2E2A-\u2E2E\u2E30-\u2E39\u2E3C-\u2E3F\u2E41\u2E43-\u2E4F\u2E52-\u2E54\u3001-\u3003\u303D\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFE10-\uFE16\uFE19\uFE30\uFE45\uFE46\uFE49-\uFE4C\uFE50-\uFE52\uFE54-\uFE57\uFE5F-\uFE61\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF07\uFF0A\uFF0C\uFF0E\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3C\uFF61\uFF64\uFF65', + 'astral': '\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD803[\uDF55-\uDF59\uDF86-\uDF89]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDC4B-\uDC4F\uDC5A\uDC5B\uDC5D\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDE60-\uDE6C\uDEB9\uDF3C-\uDF3E]|\uD806[\uDC3B\uDD44-\uDD46\uDDE2\uDE3F-\uDE46\uDE9A-\uDE9C\uDE9E-\uDEA2]|\uD807[\uDC41-\uDC45\uDC70\uDC71\uDEF7\uDEF8\uDFFF]|\uD809[\uDC70-\uDC74]|\uD80B[\uDFF1\uDFF2]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD81B[\uDE97-\uDE9A\uDFE2]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]|\uD83A[\uDD5E\uDD5F]' + }, + { + 'name': 'Ps', + 'alias': 'Open_Punctuation', + 'bmp': '\\(\\[\\{\u0F3A\u0F3C\u169B\u201A\u201E\u2045\u207D\u208D\u2308\u230A\u2329\u2768\u276A\u276C\u276E\u2770\u2772\u2774\u27C5\u27E6\u27E8\u27EA\u27EC\u27EE\u2983\u2985\u2987\u2989\u298B\u298D\u298F\u2991\u2993\u2995\u2997\u29D8\u29DA\u29FC\u2E22\u2E24\u2E26\u2E28\u2E42\u2E55\u2E57\u2E59\u2E5B\u3008\u300A\u300C\u300E\u3010\u3014\u3016\u3018\u301A\u301D\uFD3F\uFE17\uFE35\uFE37\uFE39\uFE3B\uFE3D\uFE3F\uFE41\uFE43\uFE47\uFE59\uFE5B\uFE5D\uFF08\uFF3B\uFF5B\uFF5F\uFF62' + }, + { + 'name': 'S', + 'alias': 'Symbol', + 'bmp': '\\$\\+<->\\^`\\|~\xA2-\xA6\xA8\xA9\xAC\xAE-\xB1\xB4\xB8\xD7\xF7\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0384\u0385\u03F6\u0482\u058D-\u058F\u0606-\u0608\u060B\u060E\u060F\u06DE\u06E9\u06FD\u06FE\u07F6\u07FE\u07FF\u0888\u09F2\u09F3\u09FA\u09FB\u0AF1\u0B70\u0BF3-\u0BFA\u0C7F\u0D4F\u0D79\u0E3F\u0F01-\u0F03\u0F13\u0F15-\u0F17\u0F1A-\u0F1F\u0F34\u0F36\u0F38\u0FBE-\u0FC5\u0FC7-\u0FCC\u0FCE\u0FCF\u0FD5-\u0FD8\u109E\u109F\u1390-\u1399\u166D\u17DB\u1940\u19DE-\u19FF\u1B61-\u1B6A\u1B74-\u1B7C\u1FBD\u1FBF-\u1FC1\u1FCD-\u1FCF\u1FDD-\u1FDF\u1FED-\u1FEF\u1FFD\u1FFE\u2044\u2052\u207A-\u207C\u208A-\u208C\u20A0-\u20C0\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u2140-\u2144\u214A-\u214D\u214F\u218A\u218B\u2190-\u2307\u230C-\u2328\u232B-\u2426\u2440-\u244A\u249C-\u24E9\u2500-\u2767\u2794-\u27C4\u27C7-\u27E5\u27F0-\u2982\u2999-\u29D7\u29DC-\u29FB\u29FE-\u2B73\u2B76-\u2B95\u2B97-\u2BFF\u2CE5-\u2CEA\u2E50\u2E51\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3004\u3012\u3013\u3020\u3036\u3037\u303E\u303F\u309B\u309C\u3190\u3191\u3196-\u319F\u31C0-\u31E3\u3200-\u321E\u322A-\u3247\u3250\u3260-\u327F\u328A-\u32B0\u32C0-\u33FF\u4DC0-\u4DFF\uA490-\uA4C6\uA700-\uA716\uA720\uA721\uA789\uA78A\uA828-\uA82B\uA836-\uA839\uAA77-\uAA79\uAB5B\uAB6A\uAB6B\uFB29\uFBB2-\uFBC2\uFD40-\uFD4F\uFDCF\uFDFC-\uFDFF\uFE62\uFE64-\uFE66\uFE69\uFF04\uFF0B\uFF1C-\uFF1E\uFF3E\uFF40\uFF5C\uFF5E\uFFE0-\uFFE6\uFFE8-\uFFEE\uFFFC\uFFFD', + 'astral': '\uD800[\uDD37-\uDD3F\uDD79-\uDD89\uDD8C-\uDD8E\uDD90-\uDD9C\uDDA0\uDDD0-\uDDFC]|\uD802[\uDC77\uDC78\uDEC8]|\uD805\uDF3F|\uD807[\uDFD5-\uDFF1]|\uD81A[\uDF3C-\uDF3F\uDF45]|\uD82F\uDC9C|\uD833[\uDF50-\uDFC3]|\uD834[\uDC00-\uDCF5\uDD00-\uDD26\uDD29-\uDD64\uDD6A-\uDD6C\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDDEA\uDE00-\uDE41\uDE45\uDF00-\uDF56]|\uD835[\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85\uDE86]|\uD838[\uDD4F\uDEFF]|\uD83B[\uDCAC\uDCB0\uDD2E\uDEF0\uDEF1]|\uD83C[\uDC00-\uDC2B\uDC30-\uDC93\uDCA0-\uDCAE\uDCB1-\uDCBF\uDCC1-\uDCCF\uDCD1-\uDCF5\uDD0D-\uDDAD\uDDE6-\uDE02\uDE10-\uDE3B\uDE40-\uDE48\uDE50\uDE51\uDE60-\uDE65\uDF00-\uDFFF]|\uD83D[\uDC00-\uDED7\uDEDD-\uDEEC\uDEF0-\uDEFC\uDF00-\uDF73\uDF80-\uDFD8\uDFE0-\uDFEB\uDFF0]|\uD83E[\uDC00-\uDC0B\uDC10-\uDC47\uDC50-\uDC59\uDC60-\uDC87\uDC90-\uDCAD\uDCB0\uDCB1\uDD00-\uDE53\uDE60-\uDE6D\uDE70-\uDE74\uDE78-\uDE7C\uDE80-\uDE86\uDE90-\uDEAC\uDEB0-\uDEBA\uDEC0-\uDEC5\uDED0-\uDED9\uDEE0-\uDEE7\uDEF0-\uDEF6\uDF00-\uDF92\uDF94-\uDFCA]' + }, + { + 'name': 'Sc', + 'alias': 'Currency_Symbol', + 'bmp': '\\$\xA2-\xA5\u058F\u060B\u07FE\u07FF\u09F2\u09F3\u09FB\u0AF1\u0BF9\u0E3F\u17DB\u20A0-\u20C0\uA838\uFDFC\uFE69\uFF04\uFFE0\uFFE1\uFFE5\uFFE6', + 'astral': '\uD807[\uDFDD-\uDFE0]|\uD838\uDEFF|\uD83B\uDCB0' + }, + { + 'name': 'Sk', + 'alias': 'Modifier_Symbol', + 'bmp': '\\^`\xA8\xAF\xB4\xB8\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0384\u0385\u0888\u1FBD\u1FBF-\u1FC1\u1FCD-\u1FCF\u1FDD-\u1FDF\u1FED-\u1FEF\u1FFD\u1FFE\u309B\u309C\uA700-\uA716\uA720\uA721\uA789\uA78A\uAB5B\uAB6A\uAB6B\uFBB2-\uFBC2\uFF3E\uFF40\uFFE3', + 'astral': '\uD83C[\uDFFB-\uDFFF]' + }, + { + 'name': 'Sm', + 'alias': 'Math_Symbol', + 'bmp': '\\+<->\\|~\xAC\xB1\xD7\xF7\u03F6\u0606-\u0608\u2044\u2052\u207A-\u207C\u208A-\u208C\u2118\u2140-\u2144\u214B\u2190-\u2194\u219A\u219B\u21A0\u21A3\u21A6\u21AE\u21CE\u21CF\u21D2\u21D4\u21F4-\u22FF\u2320\u2321\u237C\u239B-\u23B3\u23DC-\u23E1\u25B7\u25C1\u25F8-\u25FF\u266F\u27C0-\u27C4\u27C7-\u27E5\u27F0-\u27FF\u2900-\u2982\u2999-\u29D7\u29DC-\u29FB\u29FE-\u2AFF\u2B30-\u2B44\u2B47-\u2B4C\uFB29\uFE62\uFE64-\uFE66\uFF0B\uFF1C-\uFF1E\uFF5C\uFF5E\uFFE2\uFFE9-\uFFEC', + 'astral': '\uD835[\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3]|\uD83B[\uDEF0\uDEF1]' + }, + { + 'name': 'So', + 'alias': 'Other_Symbol', + 'bmp': '\xA6\xA9\xAE\xB0\u0482\u058D\u058E\u060E\u060F\u06DE\u06E9\u06FD\u06FE\u07F6\u09FA\u0B70\u0BF3-\u0BF8\u0BFA\u0C7F\u0D4F\u0D79\u0F01-\u0F03\u0F13\u0F15-\u0F17\u0F1A-\u0F1F\u0F34\u0F36\u0F38\u0FBE-\u0FC5\u0FC7-\u0FCC\u0FCE\u0FCF\u0FD5-\u0FD8\u109E\u109F\u1390-\u1399\u166D\u1940\u19DE-\u19FF\u1B61-\u1B6A\u1B74-\u1B7C\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116\u2117\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u214A\u214C\u214D\u214F\u218A\u218B\u2195-\u2199\u219C-\u219F\u21A1\u21A2\u21A4\u21A5\u21A7-\u21AD\u21AF-\u21CD\u21D0\u21D1\u21D3\u21D5-\u21F3\u2300-\u2307\u230C-\u231F\u2322-\u2328\u232B-\u237B\u237D-\u239A\u23B4-\u23DB\u23E2-\u2426\u2440-\u244A\u249C-\u24E9\u2500-\u25B6\u25B8-\u25C0\u25C2-\u25F7\u2600-\u266E\u2670-\u2767\u2794-\u27BF\u2800-\u28FF\u2B00-\u2B2F\u2B45\u2B46\u2B4D-\u2B73\u2B76-\u2B95\u2B97-\u2BFF\u2CE5-\u2CEA\u2E50\u2E51\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3004\u3012\u3013\u3020\u3036\u3037\u303E\u303F\u3190\u3191\u3196-\u319F\u31C0-\u31E3\u3200-\u321E\u322A-\u3247\u3250\u3260-\u327F\u328A-\u32B0\u32C0-\u33FF\u4DC0-\u4DFF\uA490-\uA4C6\uA828-\uA82B\uA836\uA837\uA839\uAA77-\uAA79\uFD40-\uFD4F\uFDCF\uFDFD-\uFDFF\uFFE4\uFFE8\uFFED\uFFEE\uFFFC\uFFFD', + 'astral': '\uD800[\uDD37-\uDD3F\uDD79-\uDD89\uDD8C-\uDD8E\uDD90-\uDD9C\uDDA0\uDDD0-\uDDFC]|\uD802[\uDC77\uDC78\uDEC8]|\uD805\uDF3F|\uD807[\uDFD5-\uDFDC\uDFE1-\uDFF1]|\uD81A[\uDF3C-\uDF3F\uDF45]|\uD82F\uDC9C|\uD833[\uDF50-\uDFC3]|\uD834[\uDC00-\uDCF5\uDD00-\uDD26\uDD29-\uDD64\uDD6A-\uDD6C\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDDEA\uDE00-\uDE41\uDE45\uDF00-\uDF56]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85\uDE86]|\uD838\uDD4F|\uD83B[\uDCAC\uDD2E]|\uD83C[\uDC00-\uDC2B\uDC30-\uDC93\uDCA0-\uDCAE\uDCB1-\uDCBF\uDCC1-\uDCCF\uDCD1-\uDCF5\uDD0D-\uDDAD\uDDE6-\uDE02\uDE10-\uDE3B\uDE40-\uDE48\uDE50\uDE51\uDE60-\uDE65\uDF00-\uDFFA]|\uD83D[\uDC00-\uDED7\uDEDD-\uDEEC\uDEF0-\uDEFC\uDF00-\uDF73\uDF80-\uDFD8\uDFE0-\uDFEB\uDFF0]|\uD83E[\uDC00-\uDC0B\uDC10-\uDC47\uDC50-\uDC59\uDC60-\uDC87\uDC90-\uDCAD\uDCB0\uDCB1\uDD00-\uDE53\uDE60-\uDE6D\uDE70-\uDE74\uDE78-\uDE7C\uDE80-\uDE86\uDE90-\uDEAC\uDEB0-\uDEBA\uDEC0-\uDEC5\uDED0-\uDED9\uDEE0-\uDEE7\uDEF0-\uDEF6\uDF00-\uDF92\uDF94-\uDFCA]' + }, + { + 'name': 'Z', + 'alias': 'Separator', + 'bmp': ' \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000' + }, + { + 'name': 'Zl', + 'alias': 'Line_Separator', + 'bmp': '\u2028' + }, + { + 'name': 'Zp', + 'alias': 'Paragraph_Separator', + 'bmp': '\u2029' + }, + { + 'name': 'Zs', + 'alias': 'Space_Separator', + 'bmp': ' \xA0\u1680\u2000-\u200A\u202F\u205F\u3000' + } +]; + +},{}]},{},[3])(3) +}); diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/xregexp/xregexp.min.js b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/xregexp/xregexp.min.js new file mode 100644 index 0000000000..6d36ca5699 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/xregexp/xregexp.min.js @@ -0,0 +1,17 @@ +!function(u){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=u();else if("function"==typeof define&&define.amd)define([],u);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).XRegExp=u()}}((function(){return function r(u,d,t){function o(c,i){if(!d[c]){if(!u[c]){var l="function"==typeof require&&require;if(!i&&l)return l(c,!0);if(a)return a(c,!0);var D=new Error("Cannot find module '"+c+"'");throw D.code="MODULE_NOT_FOUND",D}var p=d[c]={exports:{}};u[c][0].call(p.exports,(function(d){return o(u[c][1][d]||d)}),p,p.exports,r,u,d,t)}return d[c].exports}for(var a="function"==typeof require&&require,c=0;c<t.length;c++)o(t[c]);return o}({1:[function(u,d,t){"use strict";var a=u("@babel/runtime-corejs3/core-js-stable/instance/slice"),c=u("@babel/runtime-corejs3/core-js-stable/array/from"),i=u("@babel/runtime-corejs3/core-js-stable/symbol"),l=u("@babel/runtime-corejs3/core-js/get-iterator-method"),D=u("@babel/runtime-corejs3/core-js-stable/array/is-array"),p=u("@babel/runtime-corejs3/core-js-stable/object/define-property"),b=u("@babel/runtime-corejs3/helpers/interopRequireDefault");p(t,"__esModule",{value:!0}),t.default=void 0;var y=b(u("@babel/runtime-corejs3/helpers/slicedToArray")),m=b(u("@babel/runtime-corejs3/core-js-stable/instance/for-each")),A=b(u("@babel/runtime-corejs3/core-js-stable/instance/concat")),E=b(u("@babel/runtime-corejs3/core-js-stable/instance/index-of"));function _createForOfIteratorHelper(u,d){var t=void 0!==i&&l(u)||u["@@iterator"];if(!t){if(D(u)||(t=function _unsupportedIterableToArray(u,d){var t;if(!u)return;if("string"==typeof u)return _arrayLikeToArray(u,d);var i=a(t=Object.prototype.toString.call(u)).call(t,8,-1);"Object"===i&&u.constructor&&(i=u.constructor.name);if("Map"===i||"Set"===i)return c(u);if("Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i))return _arrayLikeToArray(u,d)}(u))||d&&u&&"number"==typeof u.length){t&&(u=t);var p=0,b=function F(){};return{s:b,n:function n(){return p>=u.length?{done:!0}:{done:!1,value:u[p++]}},e:function e(u){throw u},f:b}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var y,m=!0,A=!1;return{s:function s(){t=t.call(u)},n:function n(){var u=t.next();return m=u.done,u},e:function e(u){A=!0,y=u},f:function f(){try{m||null==t.return||t.return()}finally{if(A)throw y}}}}function _arrayLikeToArray(u,d){(null==d||d>u.length)&&(d=u.length);for(var t=0,a=new Array(d);t<d;t++)a[t]=u[t];return a} +/*! + * XRegExp Unicode Base 5.1.1 + * <xregexp.com> + * Steven Levithan (c) 2008-present MIT License + */t.default=function _default(u){var d={},t={},a=u._dec,c=u._hex,i=u._pad4;function normalize(u){return u.replace(/[- _]+/g,"").toLowerCase()}function charCode(u){var d=/^\\[xu](.+)/.exec(u);return d?a(d[1]):u.charCodeAt("\\"===u[0]?1:0)}function cacheInvertedBmp(t){return d[t]["b!"]||(d[t]["b!"]=function invertBmp(d){var t="",a=-1;return(0,m.default)(u).call(u,d,/(\\x..|\\u....|\\?[\s\S])(?:-(\\x..|\\u....|\\?[\s\S]))?/,(function(u){var d=charCode(u[1]);d>a+1&&(t+="\\u".concat(i(c(a+1))),d>a+2&&(t+="-\\u".concat(i(c(d-1))))),a=charCode(u[2]||u[1])})),a<65535&&(t+="\\u".concat(i(c(a+1))),a<65534&&(t+="-\\uFFFF")),t}(d[t].bmp))}function cacheAstral(u,t){var a=t?"a!":"a=";return d[u][a]||(d[u][a]=function buildAstral(u,t){var a,c,i=d[u],l="";return i.bmp&&!i.isBmpLast&&(l=(0,A.default)(a="[".concat(i.bmp,"]")).call(a,i.astral?"|":"")),i.astral&&(l+=i.astral),i.isBmpLast&&i.bmp&&(l+=(0,A.default)(c="".concat(i.astral?"|":"","[")).call(c,i.bmp,"]")),t?"(?:(?!".concat(l,")(?:[\ud800-\udbff][\udc00-\udfff]|[\0-￿]))"):"(?:".concat(l,")")}(u,t))}u.addToken(/\\([pP])(?:{(\^?)(?:(\w+)=)?([^}]*)}|([A-Za-z]))/,(function(u,a,c){var i="Unknown Unicode token ",l=(0,y.default)(u,6),D=l[0],p=l[1],b=l[2],m=l[3],C=l[4],g=l[5],h="P"===p||!!b,x=-1!==(0,E.default)(c).call(c,"A"),v=normalize(g||C),B=d[v];if("P"===p&&b)throw new SyntaxError("Invalid double negation "+D);if(!d.hasOwnProperty(v))throw new SyntaxError(i+D);if(m&&(!t[m]||!t[m][v]))throw new SyntaxError(i+D);if(B.inverseOf){var w;if(v=normalize(B.inverseOf),!d.hasOwnProperty(v))throw new ReferenceError((0,A.default)(w="".concat("Unicode token missing data "+D," -> ")).call(w,B.inverseOf));B=d[v],h=!h}if(!B.bmp&&!x)throw new SyntaxError("Astral mode required for Unicode token "+D);if(x){if("class"===a)throw new SyntaxError("Astral mode does not support Unicode tokens within character classes");return cacheAstral(v,h)}return"class"===a?h?cacheInvertedBmp(v):B.bmp:"".concat((h?"[^":"[")+B.bmp,"]")}),{scope:"all",optionalFlags:"A",leadChar:"\\"}),u.addUnicodeData=function(a,c){c&&(t[c]={});var i,l=_createForOfIteratorHelper(a);try{for(l.s();!(i=l.n()).done;){var D=i.value;if(!D.name)throw new Error("Unicode token requires name");if(!(D.inverseOf||D.bmp||D.astral))throw new Error("Unicode token has no character data "+D.name);var p=normalize(D.name);if(d[p]=D,c&&(t[c][p]=!0),D.alias){var b=normalize(D.alias);d[b]=D,c&&(t[c][b]=!0)}}}catch(u){l.e(u)}finally{l.f()}u.cache.flush("patterns")},u._getUnicodeProperty=function(u){var t=normalize(u);return d[t]}},d.exports=t.default},{"@babel/runtime-corejs3/core-js-stable/array/from":5,"@babel/runtime-corejs3/core-js-stable/array/is-array":6,"@babel/runtime-corejs3/core-js-stable/instance/concat":7,"@babel/runtime-corejs3/core-js-stable/instance/for-each":9,"@babel/runtime-corejs3/core-js-stable/instance/index-of":10,"@babel/runtime-corejs3/core-js-stable/instance/slice":11,"@babel/runtime-corejs3/core-js-stable/object/define-property":14,"@babel/runtime-corejs3/core-js-stable/symbol":16,"@babel/runtime-corejs3/core-js/get-iterator-method":19,"@babel/runtime-corejs3/helpers/interopRequireDefault":24,"@babel/runtime-corejs3/helpers/slicedToArray":27}],2:[function(u,d,t){"use strict";var a=u("@babel/runtime-corejs3/core-js-stable/object/define-property"),c=u("@babel/runtime-corejs3/helpers/interopRequireDefault");a(t,"__esModule",{value:!0}),t.default=void 0;var i=c(u("../../tools/output/categories")); +/*! + * XRegExp Unicode Categories 5.1.1 + * <xregexp.com> + * Steven Levithan (c) 2010-present MIT License + * Unicode data by Mathias Bynens <mathiasbynens.be> + */t.default=function _default(u){if(!u.addUnicodeData)throw new ReferenceError("Unicode Base must be loaded before Unicode Categories");u.addUnicodeData(i.default)},d.exports=t.default},{"../../tools/output/categories":222,"@babel/runtime-corejs3/core-js-stable/object/define-property":14,"@babel/runtime-corejs3/helpers/interopRequireDefault":24}],3:[function(u,d,t){"use strict";var a=u("@babel/runtime-corejs3/core-js-stable/object/define-property"),c=u("@babel/runtime-corejs3/helpers/interopRequireDefault");a(t,"__esModule",{value:!0}),t.default=void 0;var i=c(u("./xregexp")),l=c(u("./addons/unicode-base")),D=c(u("./addons/unicode-categories"));(0,l.default)(i.default),(0,D.default)(i.default);var p=i.default;t.default=p,d.exports=t.default},{"./addons/unicode-base":1,"./addons/unicode-categories":2,"./xregexp":4,"@babel/runtime-corejs3/core-js-stable/object/define-property":14,"@babel/runtime-corejs3/helpers/interopRequireDefault":24}],4:[function(u,d,t){"use strict";var a=u("@babel/runtime-corejs3/core-js-stable/instance/slice"),c=u("@babel/runtime-corejs3/core-js-stable/array/from"),i=u("@babel/runtime-corejs3/core-js-stable/symbol"),l=u("@babel/runtime-corejs3/core-js/get-iterator-method"),D=u("@babel/runtime-corejs3/core-js-stable/array/is-array"),p=u("@babel/runtime-corejs3/core-js-stable/object/define-property"),b=u("@babel/runtime-corejs3/helpers/interopRequireDefault");p(t,"__esModule",{value:!0}),t.default=void 0;var y=b(u("@babel/runtime-corejs3/helpers/slicedToArray")),m=b(u("@babel/runtime-corejs3/core-js-stable/instance/flags")),A=b(u("@babel/runtime-corejs3/core-js-stable/instance/sort")),E=b(u("@babel/runtime-corejs3/core-js-stable/instance/slice")),C=b(u("@babel/runtime-corejs3/core-js-stable/parse-int")),g=b(u("@babel/runtime-corejs3/core-js-stable/instance/index-of")),h=b(u("@babel/runtime-corejs3/core-js-stable/instance/for-each")),x=b(u("@babel/runtime-corejs3/core-js-stable/object/create")),v=b(u("@babel/runtime-corejs3/core-js-stable/instance/concat"));function _createForOfIteratorHelper(u,d){var t=void 0!==i&&l(u)||u["@@iterator"];if(!t){if(D(u)||(t=function _unsupportedIterableToArray(u,d){var t;if(!u)return;if("string"==typeof u)return _arrayLikeToArray(u,d);var i=a(t=Object.prototype.toString.call(u)).call(t,8,-1);"Object"===i&&u.constructor&&(i=u.constructor.name);if("Map"===i||"Set"===i)return c(u);if("Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i))return _arrayLikeToArray(u,d)}(u))||d&&u&&"number"==typeof u.length){t&&(u=t);var p=0,b=function F(){};return{s:b,n:function n(){return p>=u.length?{done:!0}:{done:!1,value:u[p++]}},e:function e(u){throw u},f:b}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var y,m=!0,A=!1;return{s:function s(){t=t.call(u)},n:function n(){var u=t.next();return m=u.done,u},e:function e(u){A=!0,y=u},f:function f(){try{m||null==t.return||t.return()}finally{if(A)throw y}}}}function _arrayLikeToArray(u,d){(null==d||d>u.length)&&(d=u.length);for(var t=0,a=new Array(d);t<d;t++)a[t]=u[t];return a} +/*! + * XRegExp 5.1.1 + * <xregexp.com> + * Steven Levithan (c) 2007-present MIT License + */var B={astral:!1,namespacing:!0},w={},j={},k={},S=[],O="default",R="class",_={default:/\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9]\d*|x[\dA-Fa-f]{2}|u(?:[\dA-Fa-f]{4}|{[\dA-Fa-f]+})|c[A-Za-z]|[\s\S])|\(\?(?:[:=!]|<[=!])|[?*+]\?|{\d+(?:,\d*)?}\??|[\s\S]/,class:/\\(?:[0-3][0-7]{0,2}|[4-7][0-7]?|x[\dA-Fa-f]{2}|u(?:[\dA-Fa-f]{4}|{[\dA-Fa-f]+})|c[A-Za-z]|[\s\S])|[\s\S]/},T=/\$(?:\{([^\}]+)\}|<([^>]+)>|(\d\d?|[\s\S]?))/g,I=void 0===/()??/.exec("")[1],P=void 0!==(0,m.default)(/x/);function hasNativeFlag(u){var d=!0;try{if(new RegExp("",u),"y"===u){".."===".a".replace(new RegExp("a","gy"),".")&&(d=!1)}}catch(u){d=!1}return d}var X=hasNativeFlag("d"),L=hasNativeFlag("s"),N=hasNativeFlag("u"),M=hasNativeFlag("y"),U={d:X,g:!0,i:!0,m:!0,s:L,u:N,y:M},G=L?/[^dgimsuy]+/g:/[^dgimuy]+/g;function augment(u,d,t,a,c){var i;if(u.xregexp={captureNames:d},c)return u;if(u.__proto__)u.__proto__=XRegExp.prototype;else for(var l in XRegExp.prototype)u[l]=XRegExp.prototype[l];return u.xregexp.source=t,u.xregexp.flags=a?(0,A.default)(i=a.split("")).call(i).join(""):a,u}function clipDuplicates(u){return u.replace(/([\s\S])(?=[\s\S]*\1)/g,"")}function copyRegex(u,d){var t;if(!XRegExp.isRegExp(u))throw new TypeError("Type RegExp expected");var a=u.xregexp||{},c=function getNativeFlags(u){return P?(0,m.default)(u):/\/([a-z]*)$/i.exec(RegExp.prototype.toString.call(u))[1]}(u),i="",l="",D=null,p=null;return(d=d||{}).removeG&&(l+="g"),d.removeY&&(l+="y"),l&&(c=c.replace(new RegExp("[".concat(l,"]+"),"g"),"")),d.addG&&(i+="g"),d.addY&&(i+="y"),i&&(c=clipDuplicates(c+i)),d.isInternalOnly||(void 0!==a.source&&(D=a.source),null!=(0,m.default)(a)&&(p=i?clipDuplicates((0,m.default)(a)+i):(0,m.default)(a))),u=augment(new RegExp(d.source||u.source,c),function hasNamedCapture(u){return!(!u.xregexp||!u.xregexp.captureNames)}(u)?(0,E.default)(t=a.captureNames).call(t,0):null,D,p,d.isInternalOnly)}function dec(u){return(0,C.default)(u,16)}function getContextualTokenSeparator(u,d,t){var a=u.index+u[0].length,c=u.input[u.index-1],i=u.input[a];return/^[()|]$/.test(c)||/^[()|]$/.test(i)||0===u.index||a===u.input.length||/\(\?(?:[:=!]|<[=!])$/.test(u.input.substring(u.index-4,u.index))||function isQuantifierNext(u,d,t){return(-1!==(0,g.default)(t).call(t,"x")?/^(?:\s|#[^#\n]*|\(\?#[^)]*\))*(?:[?*+]|{\d+(?:,\d*)?})/:/^(?:\(\?#[^)]*\))*(?:[?*+]|{\d+(?:,\d*)?})/).test((0,E.default)(u).call(u,d))}(u.input,a,t)?"":"(?:)"}function hex(u){return(0,C.default)(u,10).toString(16)}function isType(u,d){return Object.prototype.toString.call(u)==="[object ".concat(d,"]")}function nullThrows(u){if(null==u)throw new TypeError("Cannot convert null or undefined to object");return u}function pad4(u){for(;u.length<4;)u="0".concat(u);return u}function prepareOptions(u){var d={};return isType(u,"String")?((0,h.default)(XRegExp).call(XRegExp,u,/[^\s,]+/,(function(u){d[u]=!0})),d):u}function registerFlag(u){if(!/^[\w$]$/.test(u))throw new Error("Flag must be a single character A-Za-z0-9_$");U[u]=!0}function runTokens(u,d,t,a,c){for(var i,l,D=S.length,p=u[t],b=null;D--;)if(!((l=S[D]).leadChar&&l.leadChar!==p||l.scope!==a&&"all"!==l.scope||l.flag&&-1===(0,g.default)(d).call(d,l.flag))&&(i=XRegExp.exec(u,l.regex,t,"sticky"))){b={matchLength:i[0].length,output:l.handler.call(c,i,a,d),reparse:l.reparse};break}return b}function setAstral(u){B.astral=u}function setNamespacing(u){B.namespacing=u}function XRegExp(u,d){if(XRegExp.isRegExp(u)){if(void 0!==d)throw new TypeError("Cannot supply flags when copying a RegExp");return copyRegex(u)}if(u=void 0===u?"":String(u),d=void 0===d?"":String(d),XRegExp.isInstalled("astral")&&-1===(0,g.default)(d).call(d,"A")&&(d+="A"),k[u]||(k[u]={}),!k[u][d]){for(var t,a={hasNamedCapture:!1,captureNames:[]},c=O,i="",l=0,D=function prepareFlags(u,d){if(clipDuplicates(d)!==d)throw new SyntaxError("Invalid duplicate regex flag ".concat(d));u=u.replace(/^\(\?([\w$]+)\)/,(function(u,t){if(/[dgy]/.test(t))throw new SyntaxError("Cannot use flags dgy in mode modifier ".concat(u));return d=clipDuplicates(d+t),""}));var t,a=_createForOfIteratorHelper(d);try{for(a.s();!(t=a.n()).done;){var c=t.value;if(!U[c])throw new SyntaxError("Unknown regex flag ".concat(c))}}catch(u){a.e(u)}finally{a.f()}return{pattern:u,flags:d}}(u,d),p=D.pattern,b=(0,m.default)(D);l<p.length;){do{(t=runTokens(p,b,l,c,a))&&t.reparse&&(p=(0,E.default)(p).call(p,0,l)+t.output+(0,E.default)(p).call(p,l+t.matchLength))}while(t&&t.reparse);if(t)i+=t.output,l+=t.matchLength||1;else{var A=XRegExp.exec(p,_[c],l,"sticky"),C=(0,y.default)(A,1)[0];i+=C,l+=C.length,"["===C&&c===O?c=R:"]"===C&&c===R&&(c=O)}}k[u][d]={pattern:i.replace(/(?:\(\?:\))+/g,"(?:)"),flags:b.replace(G,""),captures:a.hasNamedCapture?a.captureNames:null}}var h=k[u][d];return augment(new RegExp(h.pattern,(0,m.default)(h)),h.captures,u,d)}XRegExp.prototype=/(?:)/,XRegExp.version="5.1.1",XRegExp._clipDuplicates=clipDuplicates,XRegExp._hasNativeFlag=hasNativeFlag,XRegExp._dec=dec,XRegExp._hex=hex,XRegExp._pad4=pad4,XRegExp.addToken=function(u,d,t){var a=(t=t||{}).optionalFlags;if(t.flag&®isterFlag(t.flag),a){var c,i=_createForOfIteratorHelper(a=a.split(""));try{for(i.s();!(c=i.n()).done;){registerFlag(c.value)}}catch(u){i.e(u)}finally{i.f()}}S.push({regex:copyRegex(u,{addG:!0,addY:M,isInternalOnly:!0}),handler:d,scope:t.scope||O,flag:t.flag,reparse:t.reparse,leadChar:t.leadChar}),XRegExp.cache.flush("patterns")},XRegExp.cache=function(u,d){return j[u]||(j[u]={}),j[u][d]||(j[u][d]=XRegExp(u,d))},XRegExp.cache.flush=function(u){"patterns"===u?k={}:j={}},XRegExp.escape=function(u){return String(nullThrows(u)).replace(/[\\\[\]{}()*+?.^$|]/g,"\\$&").replace(/[\s#\-,]/g,(function(u){return"\\u".concat(pad4(hex(u.charCodeAt(0))))}))},XRegExp.exec=function(u,d,t,a){var c,i,l="g",D=!1;(c=M&&!!(a||d.sticky&&!1!==a))?l+="y":a&&(D=!0,l+="FakeY"),d.xregexp=d.xregexp||{};var p=d.xregexp[l]||(d.xregexp[l]=copyRegex(d,{addG:!0,addY:c,source:D?"".concat(d.source,"|()"):void 0,removeY:!1===a,isInternalOnly:!0}));return t=t||0,p.lastIndex=t,i=w.exec.call(p,u),D&&i&&""===i.pop()&&(i=null),d.global&&(d.lastIndex=i?p.lastIndex:0),i},XRegExp.forEach=function(u,d,t){for(var a,c=0,i=-1;a=XRegExp.exec(u,d,c);)t(a,++i,u,d),c=a.index+(a[0].length||1)},XRegExp.globalize=function(u){return copyRegex(u,{addG:!0})},XRegExp.install=function(u){u=prepareOptions(u),!B.astral&&u.astral&&setAstral(!0),!B.namespacing&&u.namespacing&&setNamespacing(!0)},XRegExp.isInstalled=function(u){return!!B[u]},XRegExp.isRegExp=function(u){return"[object RegExp]"===Object.prototype.toString.call(u)},XRegExp.match=function(u,d,t){var a=d.global&&"one"!==t||"all"===t,c=(a?"g":"")+(d.sticky?"y":"")||"noGY";d.xregexp=d.xregexp||{};var i=d.xregexp[c]||(d.xregexp[c]=copyRegex(d,{addG:!!a,removeG:"one"===t,isInternalOnly:!0})),l=String(nullThrows(u)).match(i);return d.global&&(d.lastIndex="one"===t&&l?l.index+l[0].length:0),a?l||[]:l&&l[0]},XRegExp.matchChain=function(u,d){return function recurseChain(u,t){var a=d[t].regex?d[t]:{regex:d[t]},c=[];function addMatch(u){if(a.backref){var d="Backreference to undefined group: ".concat(a.backref),t=isNaN(a.backref);if(t&&XRegExp.isInstalled("namespacing")){if(!u.groups||!(a.backref in u.groups))throw new ReferenceError(d)}else if(!u.hasOwnProperty(a.backref))throw new ReferenceError(d);var i=t&&XRegExp.isInstalled("namespacing")?u.groups[a.backref]:u[a.backref];c.push(i||"")}else c.push(u[0])}var i,l=_createForOfIteratorHelper(u);try{for(l.s();!(i=l.n()).done;){var D=i.value;(0,h.default)(XRegExp).call(XRegExp,D,a.regex,addMatch)}}catch(u){l.e(u)}finally{l.f()}return t!==d.length-1&&c.length?recurseChain(c,t+1):c}([u],0)},XRegExp.replace=function(u,d,t,a){var c=XRegExp.isRegExp(d),i=d.global&&"one"!==a||"all"===a,l=(i?"g":"")+(d.sticky?"y":"")||"noGY",D=d;c?(d.xregexp=d.xregexp||{},D=d.xregexp[l]||(d.xregexp[l]=copyRegex(d,{addG:!!i,removeG:"one"===a,isInternalOnly:!0}))):i&&(D=new RegExp(XRegExp.escape(String(d)),"g"));var p=w.replace.call(nullThrows(u),D,t);return c&&d.global&&(d.lastIndex=0),p},XRegExp.replaceEach=function(u,d){var t,a=_createForOfIteratorHelper(d);try{for(a.s();!(t=a.n()).done;){var c=t.value;u=XRegExp.replace(u,c[0],c[1],c[2])}}catch(u){a.e(u)}finally{a.f()}return u},XRegExp.split=function(u,d,t){return w.split.call(nullThrows(u),d,t)},XRegExp.test=function(u,d,t,a){return!!XRegExp.exec(u,d,t,a)},XRegExp.uninstall=function(u){u=prepareOptions(u),B.astral&&u.astral&&setAstral(!1),B.namespacing&&u.namespacing&&setNamespacing(!1)},XRegExp.union=function(u,d,t){var a,c,i=(t=t||{}).conjunction||"or",l=0;function rewrite(u,d,t){var i=c[l-a];if(d){if(++l,i)return"(?<".concat(i,">")}else if(t)return"\\".concat(+t+a);return u}if(!isType(u,"Array")||!u.length)throw new TypeError("Must provide a nonempty array of patterns to merge");var D,p=/(\()(?!\?)|\\([1-9]\d*)|\\[\s\S]|\[(?:[^\\\]]|\\[\s\S])*\]/g,b=[],y=_createForOfIteratorHelper(u);try{for(y.s();!(D=y.n()).done;){var m=D.value;XRegExp.isRegExp(m)?(a=l,c=m.xregexp&&m.xregexp.captureNames||[],b.push(XRegExp(m.source).source.replace(p,rewrite))):b.push(XRegExp.escape(m))}}catch(u){y.e(u)}finally{y.f()}var A="none"===i?"":"|";return XRegExp(b.join(A),d)},w.exec=function(u){var d=this.lastIndex,t=RegExp.prototype.exec.apply(this,arguments);if(t){if(!I&&t.length>1&&-1!==(0,g.default)(t).call(t,"")){var a,c=copyRegex(this,{removeG:!0,isInternalOnly:!0});(0,E.default)(a=String(u)).call(a,t.index).replace(c,(function(){for(var u=arguments.length,d=1;d<u-2;++d)void 0===(d<0||arguments.length<=d?void 0:arguments[d])&&(t[d]=void 0)}))}if(this.xregexp&&this.xregexp.captureNames){var i=t;XRegExp.isInstalled("namespacing")&&(t.groups=(0,x.default)(null),i=t.groups);for(var l=1;l<t.length;++l){var D=this.xregexp.captureNames[l-1];D&&(i[D]=t[l])}}else!t.groups&&XRegExp.isInstalled("namespacing")&&(t.groups=void 0);this.global&&!t[0].length&&this.lastIndex>t.index&&(this.lastIndex=t.index)}return this.global||(this.lastIndex=d),t},w.test=function(u){return!!w.exec.call(this,u)},w.match=function(u){if(XRegExp.isRegExp(u)){if(u.global){var d=String.prototype.match.apply(this,arguments);return u.lastIndex=0,d}}else u=new RegExp(u);return w.exec.call(u,nullThrows(this))},w.replace=function(u,d){var t,a,c,i=XRegExp.isRegExp(u);return i?(u.xregexp&&(a=u.xregexp.captureNames),t=u.lastIndex):u+="",c=isType(d,"Function")?String(this).replace(u,(function(){for(var u=arguments.length,t=new Array(u),c=0;c<u;c++)t[c]=arguments[c];if(a){var i;XRegExp.isInstalled("namespacing")?(i=(0,x.default)(null),t.push(i)):(t[0]=new String(t[0]),i=t[0]);for(var l=0;l<a.length;++l)a[l]&&(i[a[l]]=t[l+1])}return d.apply(void 0,t)})):String(nullThrows(this)).replace(u,(function(){for(var u=arguments.length,t=new Array(u),c=0;c<u;c++)t[c]=arguments[c];return String(d).replace(T,replacer);function replacer(u,d,c,i){d=d||c;var l,D,p=isType(t[t.length-1],"Object")?4:3,b=t.length-p;if(d){if(/^\d+$/.test(d)){var y=+d;if(y<=b)return t[y]||""}var m=a?(0,g.default)(a).call(a,d):-1;if(m<0)throw new SyntaxError("Backreference to undefined group ".concat(u));return t[m+1]||""}if(""===i||" "===i)throw new SyntaxError("Invalid token ".concat(u));if("&"===i||0==+i)return t[0];if("$"===i)return"$";if("`"===i)return(0,E.default)(l=t[t.length-1]).call(l,0,t[t.length-2]);if("'"===i)return(0,E.default)(D=t[t.length-1]).call(D,t[t.length-2]+t[0].length);if(i=+i,!isNaN(i)){if(i>b)throw new SyntaxError("Backreference to undefined group ".concat(u));return t[i]||""}throw new SyntaxError("Invalid token ".concat(u))}})),i&&(u.global?u.lastIndex=0:u.lastIndex=t),c},w.split=function(u,d){if(!XRegExp.isRegExp(u))return String.prototype.split.apply(this,arguments);var t,a=String(this),c=[],i=u.lastIndex,l=0;return d=(void 0===d?-1:d)>>>0,(0,h.default)(XRegExp).call(XRegExp,a,u,(function(u){u.index+u[0].length>l&&(c.push((0,E.default)(a).call(a,l,u.index)),u.length>1&&u.index<a.length&&Array.prototype.push.apply(c,(0,E.default)(u).call(u,1)),t=u[0].length,l=u.index+t)})),l===a.length?u.test("")&&!t||c.push(""):c.push((0,E.default)(a).call(a,l)),u.lastIndex=i,c.length>d?(0,E.default)(c).call(c,0,d):c},XRegExp.addToken(/\\([ABCE-RTUVXYZaeg-mopqyz]|c(?![A-Za-z])|u(?![\dA-Fa-f]{4}|{[\dA-Fa-f]+})|x(?![\dA-Fa-f]{2}))/,(function(u,d){if("B"===u[1]&&d===O)return u[0];throw new SyntaxError("Invalid escape ".concat(u[0]))}),{scope:"all",leadChar:"\\"}),XRegExp.addToken(/\\u{([\dA-Fa-f]+)}/,(function(u,d,t){var a=dec(u[1]);if(a>1114111)throw new SyntaxError("Invalid Unicode code point ".concat(u[0]));if(a<=65535)return"\\u".concat(pad4(hex(a)));if(N&&-1!==(0,g.default)(t).call(t,"u"))return u[0];throw new SyntaxError("Cannot use Unicode code point above \\u{FFFF} without flag u")}),{scope:"all",leadChar:"\\"}),XRegExp.addToken(/\(\?#[^)]*\)/,getContextualTokenSeparator,{leadChar:"("}),XRegExp.addToken(/\s+|#[^\n]*\n?/,getContextualTokenSeparator,{flag:"x"}),L||XRegExp.addToken(/\./,(function(){return"[\\s\\S]"}),{flag:"s",leadChar:"."}),XRegExp.addToken(/\\k<([^>]+)>/,(function(u){var d,t,a=isNaN(u[1])?(0,g.default)(d=this.captureNames).call(d,u[1])+1:+u[1],c=u.index+u[0].length;if(!a||a>this.captureNames.length)throw new SyntaxError("Backreference to undefined group ".concat(u[0]));return(0,v.default)(t="\\".concat(a)).call(t,c===u.input.length||isNaN(u.input[c])?"":"(?:)")}),{leadChar:"\\"}),XRegExp.addToken(/\\(\d+)/,(function(u,d){if(!(d===O&&/^[1-9]/.test(u[1])&&+u[1]<=this.captureNames.length)&&"0"!==u[1])throw new SyntaxError("Cannot use octal escape or backreference to undefined group ".concat(u[0]));return u[0]}),{scope:"all",leadChar:"\\"}),XRegExp.addToken(/\(\?P?<((?:[\$A-Z_a-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDE80-\uDEA9\uDEB0\uDEB1\uDF00-\uDF1C\uDF27\uDF30-\uDF45\uDF70-\uDF81\uDFB0-\uDFC4\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDEB8\uDF00-\uDF1A\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2\uDFB0]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE70-\uDEBE\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE7F\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD837[\uDF00-\uDF1E]|\uD838[\uDD00-\uDD2C\uDD37-\uDD3D\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB]|\uD839[\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43\uDD4B]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF38\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A])(?:[\$0-9A-Z_a-z\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05EF-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u07FD\u0800-\u082D\u0840-\u085B\u0860-\u086A\u0870-\u0887\u0889-\u088E\u0898-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u09FC\u09FE\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9-\u0AFF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B55-\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3C-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C5D\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDD\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D00-\u0D0C\u0D0E-\u0D10\u0D12-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D81-\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u1715\u171F-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u180F-\u1819\u1820-\u1878\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1ABF-\u1ACE\u1B00-\u1B4C\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CD0-\u1CD2\u1CD4-\u1CFA\u1D00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA827\uA82C\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD27\uDD30-\uDD39\uDE80-\uDEA9\uDEAB\uDEAC\uDEB0\uDEB1\uDF00-\uDF1C\uDF27\uDF30-\uDF50\uDF70-\uDF85\uDFB0-\uDFC4\uDFE0-\uDFF6]|\uD804[\uDC00-\uDC46\uDC66-\uDC75\uDC7F-\uDCBA\uDCC2\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD44-\uDD47\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDC9-\uDDCC\uDDCE-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE3E\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3B-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC00-\uDC4A\uDC50-\uDC59\uDC5E-\uDC61\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB8\uDEC0-\uDEC9\uDF00-\uDF1A\uDF1D-\uDF2B\uDF30-\uDF39\uDF40-\uDF46]|\uD806[\uDC00-\uDC3A\uDCA0-\uDCE9\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD35\uDD37\uDD38\uDD3B-\uDD43\uDD50-\uDD59\uDDA0-\uDDA7\uDDAA-\uDDD7\uDDDA-\uDDE1\uDDE3\uDDE4\uDE00-\uDE3E\uDE47\uDE50-\uDE99\uDE9D\uDEB0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD47\uDD50-\uDD59\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD8E\uDD90\uDD91\uDD93-\uDD98\uDDA0-\uDDA9\uDEE0-\uDEF6\uDFB0]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDE70-\uDEBE\uDEC0-\uDEC9\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE7F\uDF00-\uDF4A\uDF4F-\uDF87\uDF8F-\uDF9F\uDFE0\uDFE1\uDFE3\uDFE4\uDFF0\uDFF1]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD833[\uDF00-\uDF2D\uDF30-\uDF46]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD837[\uDF00-\uDF1E]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A\uDD00-\uDD2C\uDD30-\uDD3D\uDD40-\uDD49\uDD4E\uDE90-\uDEAE\uDEC0-\uDEF9]|\uD839[\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4B\uDD50-\uDD59]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD83E[\uDFF0-\uDFF9]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF38\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A]|\uDB40[\uDD00-\uDDEF])*)>/,(function(u){var d;if(!XRegExp.isInstalled("namespacing")&&("length"===u[1]||"__proto__"===u[1]))throw new SyntaxError("Cannot use reserved word as capture name ".concat(u[0]));if(-1!==(0,g.default)(d=this.captureNames).call(d,u[1]))throw new SyntaxError("Cannot use same name for multiple groups ".concat(u[0]));return this.captureNames.push(u[1]),this.hasNamedCapture=!0,"("}),{leadChar:"("}),XRegExp.addToken(/\((?!\?)/,(function(u,d,t){return-1!==(0,g.default)(t).call(t,"n")?"(?:":(this.captureNames.push(null),"(")}),{optionalFlags:"n",leadChar:"("});var q=XRegExp;t.default=q,d.exports=t.default},{"@babel/runtime-corejs3/core-js-stable/array/from":5,"@babel/runtime-corejs3/core-js-stable/array/is-array":6,"@babel/runtime-corejs3/core-js-stable/instance/concat":7,"@babel/runtime-corejs3/core-js-stable/instance/flags":8,"@babel/runtime-corejs3/core-js-stable/instance/for-each":9,"@babel/runtime-corejs3/core-js-stable/instance/index-of":10,"@babel/runtime-corejs3/core-js-stable/instance/slice":11,"@babel/runtime-corejs3/core-js-stable/instance/sort":12,"@babel/runtime-corejs3/core-js-stable/object/create":13,"@babel/runtime-corejs3/core-js-stable/object/define-property":14,"@babel/runtime-corejs3/core-js-stable/parse-int":15,"@babel/runtime-corejs3/core-js-stable/symbol":16,"@babel/runtime-corejs3/core-js/get-iterator-method":19,"@babel/runtime-corejs3/helpers/interopRequireDefault":24,"@babel/runtime-corejs3/helpers/slicedToArray":27}],5:[function(u,d,t){d.exports=u("core-js-pure/stable/array/from")},{"core-js-pure/stable/array/from":208}],6:[function(u,d,t){d.exports=u("core-js-pure/stable/array/is-array")},{"core-js-pure/stable/array/is-array":209}],7:[function(u,d,t){d.exports=u("core-js-pure/stable/instance/concat")},{"core-js-pure/stable/instance/concat":212}],8:[function(u,d,t){d.exports=u("core-js-pure/stable/instance/flags")},{"core-js-pure/stable/instance/flags":213}],9:[function(u,d,t){d.exports=u("core-js-pure/stable/instance/for-each")},{"core-js-pure/stable/instance/for-each":214}],10:[function(u,d,t){d.exports=u("core-js-pure/stable/instance/index-of")},{"core-js-pure/stable/instance/index-of":215}],11:[function(u,d,t){d.exports=u("core-js-pure/stable/instance/slice")},{"core-js-pure/stable/instance/slice":216}],12:[function(u,d,t){d.exports=u("core-js-pure/stable/instance/sort")},{"core-js-pure/stable/instance/sort":217}],13:[function(u,d,t){d.exports=u("core-js-pure/stable/object/create")},{"core-js-pure/stable/object/create":218}],14:[function(u,d,t){d.exports=u("core-js-pure/stable/object/define-property")},{"core-js-pure/stable/object/define-property":219}],15:[function(u,d,t){d.exports=u("core-js-pure/stable/parse-int")},{"core-js-pure/stable/parse-int":220}],16:[function(u,d,t){d.exports=u("core-js-pure/stable/symbol")},{"core-js-pure/stable/symbol":221}],17:[function(u,d,t){d.exports=u("core-js-pure/features/array/from")},{"core-js-pure/features/array/from":52}],18:[function(u,d,t){d.exports=u("core-js-pure/features/array/is-array")},{"core-js-pure/features/array/is-array":53}],19:[function(u,d,t){d.exports=u("core-js-pure/features/get-iterator-method")},{"core-js-pure/features/get-iterator-method":54}],20:[function(u,d,t){d.exports=u("core-js-pure/features/instance/slice")},{"core-js-pure/features/instance/slice":55}],21:[function(u,d,t){d.exports=u("core-js-pure/features/symbol")},{"core-js-pure/features/symbol":56}],22:[function(u,d,t){d.exports=function _arrayLikeToArray(u,d){(null==d||d>u.length)&&(d=u.length);for(var t=0,a=new Array(d);t<d;t++)a[t]=u[t];return a},d.exports.__esModule=!0,d.exports.default=d.exports},{}],23:[function(u,d,t){var a=u("@babel/runtime-corejs3/core-js/array/is-array");d.exports=function _arrayWithHoles(u){if(a(u))return u},d.exports.__esModule=!0,d.exports.default=d.exports},{"@babel/runtime-corejs3/core-js/array/is-array":18}],24:[function(u,d,t){d.exports=function _interopRequireDefault(u){return u&&u.__esModule?u:{default:u}},d.exports.__esModule=!0,d.exports.default=d.exports},{}],25:[function(u,d,t){var a=u("@babel/runtime-corejs3/core-js/symbol"),c=u("@babel/runtime-corejs3/core-js/get-iterator-method");d.exports=function _iterableToArrayLimit(u,d){var t=null==u?null:void 0!==a&&c(u)||u["@@iterator"];if(null!=t){var i,l,D=[],p=!0,b=!1;try{for(t=t.call(u);!(p=(i=t.next()).done)&&(D.push(i.value),!d||D.length!==d);p=!0);}catch(u){b=!0,l=u}finally{try{p||null==t.return||t.return()}finally{if(b)throw l}}return D}},d.exports.__esModule=!0,d.exports.default=d.exports},{"@babel/runtime-corejs3/core-js/get-iterator-method":19,"@babel/runtime-corejs3/core-js/symbol":21}],26:[function(u,d,t){d.exports=function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")},d.exports.__esModule=!0,d.exports.default=d.exports},{}],27:[function(u,d,t){var a=u("./arrayWithHoles.js"),c=u("./iterableToArrayLimit.js"),i=u("./unsupportedIterableToArray.js"),l=u("./nonIterableRest.js");d.exports=function _slicedToArray(u,d){return a(u)||c(u,d)||i(u,d)||l()},d.exports.__esModule=!0,d.exports.default=d.exports},{"./arrayWithHoles.js":23,"./iterableToArrayLimit.js":25,"./nonIterableRest.js":26,"./unsupportedIterableToArray.js":28}],28:[function(u,d,t){var a=u("@babel/runtime-corejs3/core-js/instance/slice"),c=u("@babel/runtime-corejs3/core-js/array/from"),i=u("./arrayLikeToArray.js");d.exports=function _unsupportedIterableToArray(u,d){var t;if(u){if("string"==typeof u)return i(u,d);var l=a(t=Object.prototype.toString.call(u)).call(t,8,-1);return"Object"===l&&u.constructor&&(l=u.constructor.name),"Map"===l||"Set"===l?c(u):"Arguments"===l||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(l)?i(u,d):void 0}},d.exports.__esModule=!0,d.exports.default=d.exports},{"./arrayLikeToArray.js":22,"@babel/runtime-corejs3/core-js/array/from":17,"@babel/runtime-corejs3/core-js/instance/slice":20}],29:[function(u,d,t){var a=u("../../stable/array/from");d.exports=a},{"../../stable/array/from":208}],30:[function(u,d,t){var a=u("../../stable/array/is-array");d.exports=a},{"../../stable/array/is-array":209}],31:[function(u,d,t){var a=u("../stable/get-iterator-method");d.exports=a},{"../stable/get-iterator-method":211}],32:[function(u,d,t){var a=u("../../stable/instance/slice");d.exports=a},{"../../stable/instance/slice":216}],33:[function(u,d,t){var a=u("../../stable/symbol");d.exports=a},{"../../stable/symbol":221}],34:[function(u,d,t){u("../../modules/es.string.iterator"),u("../../modules/es.array.from");var a=u("../../internals/path");d.exports=a.Array.from},{"../../internals/path":142,"../../modules/es.array.from":170,"../../modules/es.string.iterator":184}],35:[function(u,d,t){u("../../modules/es.array.is-array");var a=u("../../internals/path");d.exports=a.Array.isArray},{"../../internals/path":142,"../../modules/es.array.is-array":172}],36:[function(u,d,t){u("../../../modules/es.array.concat");var a=u("../../../internals/entry-virtual");d.exports=a("Array").concat},{"../../../internals/entry-virtual":91,"../../../modules/es.array.concat":168}],37:[function(u,d,t){u("../../../modules/es.array.for-each");var a=u("../../../internals/entry-virtual");d.exports=a("Array").forEach},{"../../../internals/entry-virtual":91,"../../../modules/es.array.for-each":169}],38:[function(u,d,t){u("../../../modules/es.array.index-of");var a=u("../../../internals/entry-virtual");d.exports=a("Array").indexOf},{"../../../internals/entry-virtual":91,"../../../modules/es.array.index-of":171}],39:[function(u,d,t){u("../../../modules/es.array.slice");var a=u("../../../internals/entry-virtual");d.exports=a("Array").slice},{"../../../internals/entry-virtual":91,"../../../modules/es.array.slice":174}],40:[function(u,d,t){u("../../../modules/es.array.sort");var a=u("../../../internals/entry-virtual");d.exports=a("Array").sort},{"../../../internals/entry-virtual":91,"../../../modules/es.array.sort":175}],41:[function(u,d,t){u("../modules/es.array.iterator"),u("../modules/es.string.iterator");var a=u("../internals/get-iterator-method");d.exports=a},{"../internals/get-iterator-method":101,"../modules/es.array.iterator":173,"../modules/es.string.iterator":184}],42:[function(u,d,t){var a=u("../../internals/object-is-prototype-of"),c=u("../array/virtual/concat"),i=Array.prototype;d.exports=function(u){var d=u.concat;return u===i||a(i,u)&&d===i.concat?c:d}},{"../../internals/object-is-prototype-of":135,"../array/virtual/concat":36}],43:[function(u,d,t){var a=u("../../internals/object-is-prototype-of"),c=u("../regexp/flags"),i=RegExp.prototype;d.exports=function(u){return u===i||a(i,u)?c(u):u.flags}},{"../../internals/object-is-prototype-of":135,"../regexp/flags":50}],44:[function(u,d,t){var a=u("../../internals/object-is-prototype-of"),c=u("../array/virtual/index-of"),i=Array.prototype;d.exports=function(u){var d=u.indexOf;return u===i||a(i,u)&&d===i.indexOf?c:d}},{"../../internals/object-is-prototype-of":135,"../array/virtual/index-of":38}],45:[function(u,d,t){var a=u("../../internals/object-is-prototype-of"),c=u("../array/virtual/slice"),i=Array.prototype;d.exports=function(u){var d=u.slice;return u===i||a(i,u)&&d===i.slice?c:d}},{"../../internals/object-is-prototype-of":135,"../array/virtual/slice":39}],46:[function(u,d,t){var a=u("../../internals/object-is-prototype-of"),c=u("../array/virtual/sort"),i=Array.prototype;d.exports=function(u){var d=u.sort;return u===i||a(i,u)&&d===i.sort?c:d}},{"../../internals/object-is-prototype-of":135,"../array/virtual/sort":40}],47:[function(u,d,t){u("../../modules/es.object.create");var a=u("../../internals/path").Object;d.exports=function create(u,d){return a.create(u,d)}},{"../../internals/path":142,"../../modules/es.object.create":178}],48:[function(u,d,t){u("../../modules/es.object.define-property");var a=u("../../internals/path").Object,c=d.exports=function defineProperty(u,d,t){return a.defineProperty(u,d,t)};a.defineProperty.sham&&(c.sham=!0)},{"../../internals/path":142,"../../modules/es.object.define-property":179}],49:[function(u,d,t){u("../modules/es.parse-int");var a=u("../internals/path");d.exports=a.parseInt},{"../internals/path":142,"../modules/es.parse-int":181}],50:[function(u,d,t){u("../../modules/es.regexp.flags");var a=u("../../internals/function-uncurry-this"),c=u("../../internals/regexp-flags");d.exports=a(c)},{"../../internals/function-uncurry-this":99,"../../internals/regexp-flags":144,"../../modules/es.regexp.flags":183}],51:[function(u,d,t){u("../../modules/es.array.concat"),u("../../modules/es.object.to-string"),u("../../modules/es.symbol"),u("../../modules/es.symbol.async-iterator"),u("../../modules/es.symbol.description"),u("../../modules/es.symbol.has-instance"),u("../../modules/es.symbol.is-concat-spreadable"),u("../../modules/es.symbol.iterator"),u("../../modules/es.symbol.match"),u("../../modules/es.symbol.match-all"),u("../../modules/es.symbol.replace"),u("../../modules/es.symbol.search"),u("../../modules/es.symbol.species"),u("../../modules/es.symbol.split"),u("../../modules/es.symbol.to-primitive"),u("../../modules/es.symbol.to-string-tag"),u("../../modules/es.symbol.unscopables"),u("../../modules/es.json.to-string-tag"),u("../../modules/es.math.to-string-tag"),u("../../modules/es.reflect.to-string-tag");var a=u("../../internals/path");d.exports=a.Symbol},{"../../internals/path":142,"../../modules/es.array.concat":168,"../../modules/es.json.to-string-tag":176,"../../modules/es.math.to-string-tag":177,"../../modules/es.object.to-string":180,"../../modules/es.reflect.to-string-tag":182,"../../modules/es.symbol":190,"../../modules/es.symbol.async-iterator":185,"../../modules/es.symbol.description":186,"../../modules/es.symbol.has-instance":187,"../../modules/es.symbol.is-concat-spreadable":188,"../../modules/es.symbol.iterator":189,"../../modules/es.symbol.match":192,"../../modules/es.symbol.match-all":191,"../../modules/es.symbol.replace":193,"../../modules/es.symbol.search":194,"../../modules/es.symbol.species":195,"../../modules/es.symbol.split":196,"../../modules/es.symbol.to-primitive":197,"../../modules/es.symbol.to-string-tag":198,"../../modules/es.symbol.unscopables":199}],52:[function(u,d,t){var a=u("../../actual/array/from");d.exports=a},{"../../actual/array/from":29}],53:[function(u,d,t){var a=u("../../actual/array/is-array");d.exports=a},{"../../actual/array/is-array":30}],54:[function(u,d,t){var a=u("../actual/get-iterator-method");d.exports=a},{"../actual/get-iterator-method":31}],55:[function(u,d,t){var a=u("../../actual/instance/slice");d.exports=a},{"../../actual/instance/slice":32}],56:[function(u,d,t){var a=u("../../actual/symbol");u("../../modules/esnext.symbol.async-dispose"),u("../../modules/esnext.symbol.dispose"),u("../../modules/esnext.symbol.matcher"),u("../../modules/esnext.symbol.metadata"),u("../../modules/esnext.symbol.observable"),u("../../modules/esnext.symbol.pattern-match"),u("../../modules/esnext.symbol.replace-all"),d.exports=a},{"../../actual/symbol":33,"../../modules/esnext.symbol.async-dispose":200,"../../modules/esnext.symbol.dispose":201,"../../modules/esnext.symbol.matcher":202,"../../modules/esnext.symbol.metadata":203,"../../modules/esnext.symbol.observable":204,"../../modules/esnext.symbol.pattern-match":205,"../../modules/esnext.symbol.replace-all":206}],57:[function(u,d,t){var a=u("../internals/global"),c=u("../internals/is-callable"),i=u("../internals/try-to-string"),l=a.TypeError;d.exports=function(u){if(c(u))return u;throw l(i(u)+" is not a function")}},{"../internals/global":104,"../internals/is-callable":114,"../internals/try-to-string":162}],58:[function(u,d,t){var a=u("../internals/global"),c=u("../internals/is-callable"),i=a.String,l=a.TypeError;d.exports=function(u){if("object"==typeof u||c(u))return u;throw l("Can't set "+i(u)+" as a prototype")}},{"../internals/global":104,"../internals/is-callable":114}],59:[function(u,d,t){d.exports=function(){}},{}],60:[function(u,d,t){var a=u("../internals/global"),c=u("../internals/is-object"),i=a.String,l=a.TypeError;d.exports=function(u){if(c(u))return u;throw l(i(u)+" is not an object")}},{"../internals/global":104,"../internals/is-object":117}],61:[function(u,d,t){"use strict";var a=u("../internals/array-iteration").forEach,c=u("../internals/array-method-is-strict")("forEach");d.exports=c?[].forEach:function forEach(u){return a(this,u,arguments.length>1?arguments[1]:void 0)}},{"../internals/array-iteration":64,"../internals/array-method-is-strict":66}],62:[function(u,d,t){"use strict";var a=u("../internals/global"),c=u("../internals/function-bind-context"),i=u("../internals/function-call"),l=u("../internals/to-object"),D=u("../internals/call-with-safe-iteration-closing"),p=u("../internals/is-array-iterator-method"),b=u("../internals/is-constructor"),y=u("../internals/length-of-array-like"),m=u("../internals/create-property"),A=u("../internals/get-iterator"),E=u("../internals/get-iterator-method"),C=a.Array;d.exports=function from(u){var d=l(u),t=b(this),a=arguments.length,g=a>1?arguments[1]:void 0,h=void 0!==g;h&&(g=c(g,a>2?arguments[2]:void 0));var x,v,B,w,j,k,S=E(d),O=0;if(!S||this==C&&p(S))for(x=y(d),v=t?new this(x):C(x);x>O;O++)k=h?g(d[O],O):d[O],m(v,O,k);else for(j=(w=A(d,S)).next,v=t?new this:[];!(B=i(j,w)).done;O++)k=h?D(w,g,[B.value,O],!0):B.value,m(v,O,k);return v.length=O,v}},{"../internals/call-with-safe-iteration-closing":72,"../internals/create-property":80,"../internals/function-bind-context":96,"../internals/function-call":97,"../internals/get-iterator":102,"../internals/get-iterator-method":101,"../internals/global":104,"../internals/is-array-iterator-method":112,"../internals/is-constructor":115,"../internals/length-of-array-like":123,"../internals/to-object":157}],63:[function(u,d,t){var a=u("../internals/to-indexed-object"),c=u("../internals/to-absolute-index"),i=u("../internals/length-of-array-like"),createMethod=function(u){return function(d,t,l){var D,p=a(d),b=i(p),y=c(l,b);if(u&&t!=t){for(;b>y;)if((D=p[y++])!=D)return!0}else for(;b>y;y++)if((u||y in p)&&p[y]===t)return u||y||0;return!u&&-1}};d.exports={includes:createMethod(!0),indexOf:createMethod(!1)}},{"../internals/length-of-array-like":123,"../internals/to-absolute-index":153,"../internals/to-indexed-object":154}],64:[function(u,d,t){var a=u("../internals/function-bind-context"),c=u("../internals/function-uncurry-this"),i=u("../internals/indexed-object"),l=u("../internals/to-object"),D=u("../internals/length-of-array-like"),p=u("../internals/array-species-create"),b=c([].push),createMethod=function(u){var d=1==u,t=2==u,c=3==u,y=4==u,m=6==u,A=7==u,E=5==u||m;return function(C,g,h,x){for(var v,B,w=l(C),j=i(w),k=a(g,h),S=D(j),O=0,R=x||p,_=d?R(C,S):t||A?R(C,0):void 0;S>O;O++)if((E||O in j)&&(B=k(v=j[O],O,w),u))if(d)_[O]=B;else if(B)switch(u){case 3:return!0;case 5:return v;case 6:return O;case 2:b(_,v)}else switch(u){case 4:return!1;case 7:b(_,v)}return m?-1:c||y?y:_}};d.exports={forEach:createMethod(0),map:createMethod(1),filter:createMethod(2),some:createMethod(3),every:createMethod(4),find:createMethod(5),findIndex:createMethod(6),filterReject:createMethod(7)}},{"../internals/array-species-create":71,"../internals/function-bind-context":96,"../internals/function-uncurry-this":99,"../internals/indexed-object":109,"../internals/length-of-array-like":123,"../internals/to-object":157}],65:[function(u,d,t){var a=u("../internals/fails"),c=u("../internals/well-known-symbol"),i=u("../internals/engine-v8-version"),l=c("species");d.exports=function(u){return i>=51||!a((function(){var d=[];return(d.constructor={})[l]=function(){return{foo:1}},1!==d[u](Boolean).foo}))}},{"../internals/engine-v8-version":89,"../internals/fails":94,"../internals/well-known-symbol":166}],66:[function(u,d,t){"use strict";var a=u("../internals/fails");d.exports=function(u,d){var t=[][u];return!!t&&a((function(){t.call(null,d||function(){throw 1},1)}))}},{"../internals/fails":94}],67:[function(u,d,t){var a=u("../internals/global"),c=u("../internals/to-absolute-index"),i=u("../internals/length-of-array-like"),l=u("../internals/create-property"),D=a.Array,p=Math.max;d.exports=function(u,d,t){for(var a=i(u),b=c(d,a),y=c(void 0===t?a:t,a),m=D(p(y-b,0)),A=0;b<y;b++,A++)l(m,A,u[b]);return m.length=A,m}},{"../internals/create-property":80,"../internals/global":104,"../internals/length-of-array-like":123,"../internals/to-absolute-index":153}],68:[function(u,d,t){var a=u("../internals/function-uncurry-this");d.exports=a([].slice)},{"../internals/function-uncurry-this":99}],69:[function(u,d,t){var a=u("../internals/array-slice-simple"),c=Math.floor,mergeSort=function(u,d){var t=u.length,i=c(t/2);return t<8?insertionSort(u,d):merge(u,mergeSort(a(u,0,i),d),mergeSort(a(u,i),d),d)},insertionSort=function(u,d){for(var t,a,c=u.length,i=1;i<c;){for(a=i,t=u[i];a&&d(u[a-1],t)>0;)u[a]=u[--a];a!==i++&&(u[a]=t)}return u},merge=function(u,d,t,a){for(var c=d.length,i=t.length,l=0,D=0;l<c||D<i;)u[l+D]=l<c&&D<i?a(d[l],t[D])<=0?d[l++]:t[D++]:l<c?d[l++]:t[D++];return u};d.exports=mergeSort},{"../internals/array-slice-simple":67}],70:[function(u,d,t){var a=u("../internals/global"),c=u("../internals/is-array"),i=u("../internals/is-constructor"),l=u("../internals/is-object"),D=u("../internals/well-known-symbol")("species"),p=a.Array;d.exports=function(u){var d;return c(u)&&(d=u.constructor,(i(d)&&(d===p||c(d.prototype))||l(d)&&null===(d=d[D]))&&(d=void 0)),void 0===d?p:d}},{"../internals/global":104,"../internals/is-array":113,"../internals/is-constructor":115,"../internals/is-object":117,"../internals/well-known-symbol":166}],71:[function(u,d,t){var a=u("../internals/array-species-constructor");d.exports=function(u,d){return new(a(u))(0===d?0:d)}},{"../internals/array-species-constructor":70}],72:[function(u,d,t){var a=u("../internals/an-object"),c=u("../internals/iterator-close");d.exports=function(u,d,t,i){try{return i?d(a(t)[0],t[1]):d(t)}catch(d){c(u,"throw",d)}}},{"../internals/an-object":60,"../internals/iterator-close":120}],73:[function(u,d,t){var a=u("../internals/well-known-symbol")("iterator"),c=!1;try{var i=0,l={next:function(){return{done:!!i++}},return:function(){c=!0}};l[a]=function(){return this},Array.from(l,(function(){throw 2}))}catch(u){}d.exports=function(u,d){if(!d&&!c)return!1;var t=!1;try{var i={};i[a]=function(){return{next:function(){return{done:t=!0}}}},u(i)}catch(u){}return t}},{"../internals/well-known-symbol":166}],74:[function(u,d,t){var a=u("../internals/function-uncurry-this"),c=a({}.toString),i=a("".slice);d.exports=function(u){return i(c(u),8,-1)}},{"../internals/function-uncurry-this":99}],75:[function(u,d,t){var a=u("../internals/global"),c=u("../internals/to-string-tag-support"),i=u("../internals/is-callable"),l=u("../internals/classof-raw"),D=u("../internals/well-known-symbol")("toStringTag"),p=a.Object,b="Arguments"==l(function(){return arguments}());d.exports=c?l:function(u){var d,t,a;return void 0===u?"Undefined":null===u?"Null":"string"==typeof(t=function(u,d){try{return u[d]}catch(u){}}(d=p(u),D))?t:b?l(d):"Object"==(a=l(d))&&i(d.callee)?"Arguments":a}},{"../internals/classof-raw":74,"../internals/global":104,"../internals/is-callable":114,"../internals/to-string-tag-support":160,"../internals/well-known-symbol":166}],76:[function(u,d,t){var a=u("../internals/fails");d.exports=!a((function(){function F(){}return F.prototype.constructor=null,Object.getPrototypeOf(new F)!==F.prototype}))},{"../internals/fails":94}],77:[function(u,d,t){"use strict";var a=u("../internals/iterators-core").IteratorPrototype,c=u("../internals/object-create"),i=u("../internals/create-property-descriptor"),l=u("../internals/set-to-string-tag"),D=u("../internals/iterators"),returnThis=function(){return this};d.exports=function(u,d,t,p){var b=d+" Iterator";return u.prototype=c(a,{next:i(+!p,t)}),l(u,b,!1,!0),D[b]=returnThis,u}},{"../internals/create-property-descriptor":79,"../internals/iterators":122,"../internals/iterators-core":121,"../internals/object-create":127,"../internals/set-to-string-tag":147}],78:[function(u,d,t){var a=u("../internals/descriptors"),c=u("../internals/object-define-property"),i=u("../internals/create-property-descriptor");d.exports=a?function(u,d,t){return c.f(u,d,i(1,t))}:function(u,d,t){return u[d]=t,u}},{"../internals/create-property-descriptor":79,"../internals/descriptors":83,"../internals/object-define-property":129}],79:[function(u,d,t){d.exports=function(u,d){return{enumerable:!(1&u),configurable:!(2&u),writable:!(4&u),value:d}}},{}],80:[function(u,d,t){"use strict";var a=u("../internals/to-property-key"),c=u("../internals/object-define-property"),i=u("../internals/create-property-descriptor");d.exports=function(u,d,t){var l=a(d);l in u?c.f(u,l,i(0,t)):u[l]=t}},{"../internals/create-property-descriptor":79,"../internals/object-define-property":129,"../internals/to-property-key":159}],81:[function(u,d,t){"use strict";var a=u("../internals/export"),c=u("../internals/function-call"),i=u("../internals/is-pure"),l=u("../internals/function-name"),D=u("../internals/is-callable"),p=u("../internals/create-iterator-constructor"),b=u("../internals/object-get-prototype-of"),y=u("../internals/object-set-prototype-of"),m=u("../internals/set-to-string-tag"),A=u("../internals/create-non-enumerable-property"),E=u("../internals/redefine"),C=u("../internals/well-known-symbol"),g=u("../internals/iterators"),h=u("../internals/iterators-core"),x=l.PROPER,v=l.CONFIGURABLE,B=h.IteratorPrototype,w=h.BUGGY_SAFARI_ITERATORS,j=C("iterator"),k="keys",S="values",O="entries",returnThis=function(){return this};d.exports=function(u,d,t,l,C,h,R){p(t,d,l);var _,T,I,getIterationMethod=function(u){if(u===C&&M)return M;if(!w&&u in L)return L[u];switch(u){case k:return function keys(){return new t(this,u)};case S:return function values(){return new t(this,u)};case O:return function entries(){return new t(this,u)}}return function(){return new t(this)}},P=d+" Iterator",X=!1,L=u.prototype,N=L[j]||L["@@iterator"]||C&&L[C],M=!w&&N||getIterationMethod(C),U="Array"==d&&L.entries||N;if(U&&(_=b(U.call(new u)))!==Object.prototype&&_.next&&(i||b(_)===B||(y?y(_,B):D(_[j])||E(_,j,returnThis)),m(_,P,!0,!0),i&&(g[P]=returnThis)),x&&C==S&&N&&N.name!==S&&(!i&&v?A(L,"name",S):(X=!0,M=function values(){return c(N,this)})),C)if(T={values:getIterationMethod(S),keys:h?M:getIterationMethod(k),entries:getIterationMethod(O)},R)for(I in T)(w||X||!(I in L))&&E(L,I,T[I]);else a({target:d,proto:!0,forced:w||X},T);return i&&!R||L[j]===M||E(L,j,M,{name:C}),g[d]=M,T}},{"../internals/create-iterator-constructor":77,"../internals/create-non-enumerable-property":78,"../internals/export":93,"../internals/function-call":97,"../internals/function-name":98,"../internals/is-callable":114,"../internals/is-pure":118,"../internals/iterators":122,"../internals/iterators-core":121,"../internals/object-get-prototype-of":134,"../internals/object-set-prototype-of":139,"../internals/redefine":143,"../internals/set-to-string-tag":147,"../internals/well-known-symbol":166}],82:[function(u,d,t){var a=u("../internals/path"),c=u("../internals/has-own-property"),i=u("../internals/well-known-symbol-wrapped"),l=u("../internals/object-define-property").f;d.exports=function(u){var d=a.Symbol||(a.Symbol={});c(d,u)||l(d,u,{value:i.f(u)})}},{"../internals/has-own-property":105,"../internals/object-define-property":129,"../internals/path":142,"../internals/well-known-symbol-wrapped":165}],83:[function(u,d,t){var a=u("../internals/fails");d.exports=!a((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]}))},{"../internals/fails":94}],84:[function(u,d,t){var a=u("../internals/global"),c=u("../internals/is-object"),i=a.document,l=c(i)&&c(i.createElement);d.exports=function(u){return l?i.createElement(u):{}}},{"../internals/global":104,"../internals/is-object":117}],85:[function(u,d,t){d.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},{}],86:[function(u,d,t){var a=u("../internals/engine-user-agent").match(/firefox\/(\d+)/i);d.exports=!!a&&+a[1]},{"../internals/engine-user-agent":88}],87:[function(u,d,t){var a=u("../internals/engine-user-agent");d.exports=/MSIE|Trident/.test(a)},{"../internals/engine-user-agent":88}],88:[function(u,d,t){var a=u("../internals/get-built-in");d.exports=a("navigator","userAgent")||""},{"../internals/get-built-in":100}],89:[function(u,d,t){var a,c,i=u("../internals/global"),l=u("../internals/engine-user-agent"),D=i.process,p=i.Deno,b=D&&D.versions||p&&p.version,y=b&&b.v8;y&&(c=(a=y.split("."))[0]>0&&a[0]<4?1:+(a[0]+a[1])),!c&&l&&(!(a=l.match(/Edge\/(\d+)/))||a[1]>=74)&&(a=l.match(/Chrome\/(\d+)/))&&(c=+a[1]),d.exports=c},{"../internals/engine-user-agent":88,"../internals/global":104}],90:[function(u,d,t){var a=u("../internals/engine-user-agent").match(/AppleWebKit\/(\d+)\./);d.exports=!!a&&+a[1]},{"../internals/engine-user-agent":88}],91:[function(u,d,t){var a=u("../internals/path");d.exports=function(u){return a[u+"Prototype"]}},{"../internals/path":142}],92:[function(u,d,t){d.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},{}],93:[function(u,d,t){"use strict";var a=u("../internals/global"),c=u("../internals/function-apply"),i=u("../internals/function-uncurry-this"),l=u("../internals/is-callable"),D=u("../internals/object-get-own-property-descriptor").f,p=u("../internals/is-forced"),b=u("../internals/path"),y=u("../internals/function-bind-context"),m=u("../internals/create-non-enumerable-property"),A=u("../internals/has-own-property"),wrapConstructor=function(u){var Wrapper=function(d,t,a){if(this instanceof Wrapper){switch(arguments.length){case 0:return new u;case 1:return new u(d);case 2:return new u(d,t)}return new u(d,t,a)}return c(u,this,arguments)};return Wrapper.prototype=u.prototype,Wrapper};d.exports=function(u,d){var t,c,E,C,g,h,x,v,B=u.target,w=u.global,j=u.stat,k=u.proto,S=w?a:j?a[B]:(a[B]||{}).prototype,O=w?b:b[B]||m(b,B,{})[B],R=O.prototype;for(E in d)t=!p(w?E:B+(j?".":"#")+E,u.forced)&&S&&A(S,E),g=O[E],t&&(h=u.noTargetGet?(v=D(S,E))&&v.value:S[E]),C=t&&h?h:d[E],t&&typeof g==typeof C||(x=u.bind&&t?y(C,a):u.wrap&&t?wrapConstructor(C):k&&l(C)?i(C):C,(u.sham||C&&C.sham||g&&g.sham)&&m(x,"sham",!0),m(O,E,x),k&&(A(b,c=B+"Prototype")||m(b,c,{}),m(b[c],E,C),u.real&&R&&!R[E]&&m(R,E,C)))}},{"../internals/create-non-enumerable-property":78,"../internals/function-apply":95,"../internals/function-bind-context":96,"../internals/function-uncurry-this":99,"../internals/global":104,"../internals/has-own-property":105,"../internals/is-callable":114,"../internals/is-forced":116,"../internals/object-get-own-property-descriptor":130,"../internals/path":142}],94:[function(u,d,t){d.exports=function(u){try{return!!u()}catch(u){return!0}}},{}],95:[function(u,d,t){var a=Function.prototype,c=a.apply,i=a.bind,l=a.call;d.exports="object"==typeof Reflect&&Reflect.apply||(i?l.bind(c):function(){return l.apply(c,arguments)})},{}],96:[function(u,d,t){var a=u("../internals/function-uncurry-this"),c=u("../internals/a-callable"),i=a(a.bind);d.exports=function(u,d){return c(u),void 0===d?u:i?i(u,d):function(){return u.apply(d,arguments)}}},{"../internals/a-callable":57,"../internals/function-uncurry-this":99}],97:[function(u,d,t){var a=Function.prototype.call;d.exports=a.bind?a.bind(a):function(){return a.apply(a,arguments)}},{}],98:[function(u,d,t){var a=u("../internals/descriptors"),c=u("../internals/has-own-property"),i=Function.prototype,l=a&&Object.getOwnPropertyDescriptor,D=c(i,"name"),p=D&&"something"===function something(){}.name,b=D&&(!a||a&&l(i,"name").configurable);d.exports={EXISTS:D,PROPER:p,CONFIGURABLE:b}},{"../internals/descriptors":83,"../internals/has-own-property":105}],99:[function(u,d,t){var a=Function.prototype,c=a.bind,i=a.call,l=c&&c.bind(i);d.exports=c?function(u){return u&&l(i,u)}:function(u){return u&&function(){return i.apply(u,arguments)}}},{}],100:[function(u,d,t){var a=u("../internals/path"),c=u("../internals/global"),i=u("../internals/is-callable"),aFunction=function(u){return i(u)?u:void 0};d.exports=function(u,d){return arguments.length<2?aFunction(a[u])||aFunction(c[u]):a[u]&&a[u][d]||c[u]&&c[u][d]}},{"../internals/global":104,"../internals/is-callable":114,"../internals/path":142}],101:[function(u,d,t){var a=u("../internals/classof"),c=u("../internals/get-method"),i=u("../internals/iterators"),l=u("../internals/well-known-symbol")("iterator");d.exports=function(u){if(null!=u)return c(u,l)||c(u,"@@iterator")||i[a(u)]}},{"../internals/classof":75,"../internals/get-method":103,"../internals/iterators":122,"../internals/well-known-symbol":166}],102:[function(u,d,t){var a=u("../internals/global"),c=u("../internals/function-call"),i=u("../internals/a-callable"),l=u("../internals/an-object"),D=u("../internals/try-to-string"),p=u("../internals/get-iterator-method"),b=a.TypeError;d.exports=function(u,d){var t=arguments.length<2?p(u):d;if(i(t))return l(c(t,u));throw b(D(u)+" is not iterable")}},{"../internals/a-callable":57,"../internals/an-object":60,"../internals/function-call":97,"../internals/get-iterator-method":101,"../internals/global":104,"../internals/try-to-string":162}],103:[function(u,d,t){var a=u("../internals/a-callable");d.exports=function(u,d){var t=u[d];return null==t?void 0:a(t)}},{"../internals/a-callable":57}],104:[function(u,d,t){(function(u){(function(){var check=function(u){return u&&u.Math==Math&&u};d.exports=check("object"==typeof globalThis&&globalThis)||check("object"==typeof window&&window)||check("object"==typeof self&&self)||check("object"==typeof u&&u)||function(){return this}()||Function("return this")()}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],105:[function(u,d,t){var a=u("../internals/function-uncurry-this"),c=u("../internals/to-object"),i=a({}.hasOwnProperty);d.exports=Object.hasOwn||function hasOwn(u,d){return i(c(u),d)}},{"../internals/function-uncurry-this":99,"../internals/to-object":157}],106:[function(u,d,t){d.exports={}},{}],107:[function(u,d,t){var a=u("../internals/get-built-in");d.exports=a("document","documentElement")},{"../internals/get-built-in":100}],108:[function(u,d,t){var a=u("../internals/descriptors"),c=u("../internals/fails"),i=u("../internals/document-create-element");d.exports=!a&&!c((function(){return 7!=Object.defineProperty(i("div"),"a",{get:function(){return 7}}).a}))},{"../internals/descriptors":83,"../internals/document-create-element":84,"../internals/fails":94}],109:[function(u,d,t){var a=u("../internals/global"),c=u("../internals/function-uncurry-this"),i=u("../internals/fails"),l=u("../internals/classof-raw"),D=a.Object,p=c("".split);d.exports=i((function(){return!D("z").propertyIsEnumerable(0)}))?function(u){return"String"==l(u)?p(u,""):D(u)}:D},{"../internals/classof-raw":74,"../internals/fails":94,"../internals/function-uncurry-this":99,"../internals/global":104}],110:[function(u,d,t){var a=u("../internals/function-uncurry-this"),c=u("../internals/is-callable"),i=u("../internals/shared-store"),l=a(Function.toString);c(i.inspectSource)||(i.inspectSource=function(u){return l(u)}),d.exports=i.inspectSource},{"../internals/function-uncurry-this":99,"../internals/is-callable":114,"../internals/shared-store":149}],111:[function(u,d,t){var a,c,i,l=u("../internals/native-weak-map"),D=u("../internals/global"),p=u("../internals/function-uncurry-this"),b=u("../internals/is-object"),y=u("../internals/create-non-enumerable-property"),m=u("../internals/has-own-property"),A=u("../internals/shared-store"),E=u("../internals/shared-key"),C=u("../internals/hidden-keys"),g="Object already initialized",h=D.TypeError,x=D.WeakMap;if(l||A.state){var v=A.state||(A.state=new x),B=p(v.get),w=p(v.has),j=p(v.set);a=function(u,d){if(w(v,u))throw new h(g);return d.facade=u,j(v,u,d),d},c=function(u){return B(v,u)||{}},i=function(u){return w(v,u)}}else{var k=E("state");C[k]=!0,a=function(u,d){if(m(u,k))throw new h(g);return d.facade=u,y(u,k,d),d},c=function(u){return m(u,k)?u[k]:{}},i=function(u){return m(u,k)}}d.exports={set:a,get:c,has:i,enforce:function(u){return i(u)?c(u):a(u,{})},getterFor:function(u){return function(d){var t;if(!b(d)||(t=c(d)).type!==u)throw h("Incompatible receiver, "+u+" required");return t}}}},{"../internals/create-non-enumerable-property":78,"../internals/function-uncurry-this":99,"../internals/global":104,"../internals/has-own-property":105,"../internals/hidden-keys":106,"../internals/is-object":117,"../internals/native-weak-map":125,"../internals/shared-key":148,"../internals/shared-store":149}],112:[function(u,d,t){var a=u("../internals/well-known-symbol"),c=u("../internals/iterators"),i=a("iterator"),l=Array.prototype;d.exports=function(u){return void 0!==u&&(c.Array===u||l[i]===u)}},{"../internals/iterators":122,"../internals/well-known-symbol":166}],113:[function(u,d,t){var a=u("../internals/classof-raw");d.exports=Array.isArray||function isArray(u){return"Array"==a(u)}},{"../internals/classof-raw":74}],114:[function(u,d,t){d.exports=function(u){return"function"==typeof u}},{}],115:[function(u,d,t){var a=u("../internals/function-uncurry-this"),c=u("../internals/fails"),i=u("../internals/is-callable"),l=u("../internals/classof"),D=u("../internals/get-built-in"),p=u("../internals/inspect-source"),noop=function(){},b=[],y=D("Reflect","construct"),m=/^\s*(?:class|function)\b/,A=a(m.exec),E=!m.exec(noop),C=function isConstructor(u){if(!i(u))return!1;try{return y(noop,b,u),!0}catch(u){return!1}},g=function isConstructor(u){if(!i(u))return!1;switch(l(u)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return E||!!A(m,p(u))}catch(u){return!0}};g.sham=!0,d.exports=!y||c((function(){var u;return C(C.call)||!C(Object)||!C((function(){u=!0}))||u}))?g:C},{"../internals/classof":75,"../internals/fails":94,"../internals/function-uncurry-this":99,"../internals/get-built-in":100,"../internals/inspect-source":110,"../internals/is-callable":114}],116:[function(u,d,t){var a=u("../internals/fails"),c=u("../internals/is-callable"),i=/#|\.prototype\./,isForced=function(u,d){var t=D[l(u)];return t==b||t!=p&&(c(d)?a(d):!!d)},l=isForced.normalize=function(u){return String(u).replace(i,".").toLowerCase()},D=isForced.data={},p=isForced.NATIVE="N",b=isForced.POLYFILL="P";d.exports=isForced},{"../internals/fails":94,"../internals/is-callable":114}],117:[function(u,d,t){var a=u("../internals/is-callable");d.exports=function(u){return"object"==typeof u?null!==u:a(u)}},{"../internals/is-callable":114}],118:[function(u,d,t){d.exports=!0},{}],119:[function(u,d,t){var a=u("../internals/global"),c=u("../internals/get-built-in"),i=u("../internals/is-callable"),l=u("../internals/object-is-prototype-of"),D=u("../internals/use-symbol-as-uid"),p=a.Object;d.exports=D?function(u){return"symbol"==typeof u}:function(u){var d=c("Symbol");return i(d)&&l(d.prototype,p(u))}},{"../internals/get-built-in":100,"../internals/global":104,"../internals/is-callable":114,"../internals/object-is-prototype-of":135,"../internals/use-symbol-as-uid":164}],120:[function(u,d,t){var a=u("../internals/function-call"),c=u("../internals/an-object"),i=u("../internals/get-method");d.exports=function(u,d,t){var l,D;c(u);try{if(!(l=i(u,"return"))){if("throw"===d)throw t;return t}l=a(l,u)}catch(u){D=!0,l=u}if("throw"===d)throw t;if(D)throw l;return c(l),t}},{"../internals/an-object":60,"../internals/function-call":97,"../internals/get-method":103}],121:[function(u,d,t){"use strict";var a,c,i,l=u("../internals/fails"),D=u("../internals/is-callable"),p=u("../internals/object-create"),b=u("../internals/object-get-prototype-of"),y=u("../internals/redefine"),m=u("../internals/well-known-symbol"),A=u("../internals/is-pure"),E=m("iterator"),C=!1;[].keys&&("next"in(i=[].keys())?(c=b(b(i)))!==Object.prototype&&(a=c):C=!0),null==a||l((function(){var u={};return a[E].call(u)!==u}))?a={}:A&&(a=p(a)),D(a[E])||y(a,E,(function(){return this})),d.exports={IteratorPrototype:a,BUGGY_SAFARI_ITERATORS:C}},{"../internals/fails":94,"../internals/is-callable":114,"../internals/is-pure":118,"../internals/object-create":127,"../internals/object-get-prototype-of":134,"../internals/redefine":143,"../internals/well-known-symbol":166}],122:[function(u,d,t){arguments[4][106][0].apply(t,arguments)},{dup:106}],123:[function(u,d,t){var a=u("../internals/to-length");d.exports=function(u){return a(u.length)}},{"../internals/to-length":156}],124:[function(u,d,t){var a=u("../internals/engine-v8-version"),c=u("../internals/fails");d.exports=!!Object.getOwnPropertySymbols&&!c((function(){var u=Symbol();return!String(u)||!(Object(u)instanceof Symbol)||!Symbol.sham&&a&&a<41}))},{"../internals/engine-v8-version":89,"../internals/fails":94}],125:[function(u,d,t){var a=u("../internals/global"),c=u("../internals/is-callable"),i=u("../internals/inspect-source"),l=a.WeakMap;d.exports=c(l)&&/native code/.test(i(l))},{"../internals/global":104,"../internals/inspect-source":110,"../internals/is-callable":114}],126:[function(u,d,t){var a=u("../internals/global"),c=u("../internals/fails"),i=u("../internals/function-uncurry-this"),l=u("../internals/to-string"),D=u("../internals/string-trim").trim,p=u("../internals/whitespaces"),b=a.parseInt,y=a.Symbol,m=y&&y.iterator,A=/^[+-]?0x/i,E=i(A.exec),C=8!==b(p+"08")||22!==b(p+"0x16")||m&&!c((function(){b(Object(m))}));d.exports=C?function parseInt(u,d){var t=D(l(u));return b(t,d>>>0||(E(A,t)?16:10))}:b},{"../internals/fails":94,"../internals/function-uncurry-this":99,"../internals/global":104,"../internals/string-trim":152,"../internals/to-string":161,"../internals/whitespaces":167}],127:[function(u,d,t){var a,c=u("../internals/an-object"),i=u("../internals/object-define-properties"),l=u("../internals/enum-bug-keys"),D=u("../internals/hidden-keys"),p=u("../internals/html"),b=u("../internals/document-create-element"),y=u("../internals/shared-key"),m=y("IE_PROTO"),EmptyConstructor=function(){},scriptTag=function(u){return"<script>"+u+"</"+"script>"},NullProtoObjectViaActiveX=function(u){u.write(scriptTag("")),u.close();var d=u.parentWindow.Object;return u=null,d},NullProtoObject=function(){try{a=new ActiveXObject("htmlfile")}catch(u){}var u,d;NullProtoObject="undefined"!=typeof document?document.domain&&a?NullProtoObjectViaActiveX(a):((d=b("iframe")).style.display="none",p.appendChild(d),d.src=String("javascript:"),(u=d.contentWindow.document).open(),u.write(scriptTag("document.F=Object")),u.close(),u.F):NullProtoObjectViaActiveX(a);for(var t=l.length;t--;)delete NullProtoObject.prototype[l[t]];return NullProtoObject()};D[m]=!0,d.exports=Object.create||function create(u,d){var t;return null!==u?(EmptyConstructor.prototype=c(u),t=new EmptyConstructor,EmptyConstructor.prototype=null,t[m]=u):t=NullProtoObject(),void 0===d?t:i(t,d)}},{"../internals/an-object":60,"../internals/document-create-element":84,"../internals/enum-bug-keys":92,"../internals/hidden-keys":106,"../internals/html":107,"../internals/object-define-properties":128,"../internals/shared-key":148}],128:[function(u,d,t){var a=u("../internals/descriptors"),c=u("../internals/object-define-property"),i=u("../internals/an-object"),l=u("../internals/to-indexed-object"),D=u("../internals/object-keys");d.exports=a?Object.defineProperties:function defineProperties(u,d){i(u);for(var t,a=l(d),p=D(d),b=p.length,y=0;b>y;)c.f(u,t=p[y++],a[t]);return u}},{"../internals/an-object":60,"../internals/descriptors":83,"../internals/object-define-property":129,"../internals/object-keys":137,"../internals/to-indexed-object":154}],129:[function(u,d,t){var a=u("../internals/global"),c=u("../internals/descriptors"),i=u("../internals/ie8-dom-define"),l=u("../internals/an-object"),D=u("../internals/to-property-key"),p=a.TypeError,b=Object.defineProperty;t.f=c?b:function defineProperty(u,d,t){if(l(u),d=D(d),l(t),i)try{return b(u,d,t)}catch(u){}if("get"in t||"set"in t)throw p("Accessors not supported");return"value"in t&&(u[d]=t.value),u}},{"../internals/an-object":60,"../internals/descriptors":83,"../internals/global":104,"../internals/ie8-dom-define":108,"../internals/to-property-key":159}],130:[function(u,d,t){var a=u("../internals/descriptors"),c=u("../internals/function-call"),i=u("../internals/object-property-is-enumerable"),l=u("../internals/create-property-descriptor"),D=u("../internals/to-indexed-object"),p=u("../internals/to-property-key"),b=u("../internals/has-own-property"),y=u("../internals/ie8-dom-define"),m=Object.getOwnPropertyDescriptor;t.f=a?m:function getOwnPropertyDescriptor(u,d){if(u=D(u),d=p(d),y)try{return m(u,d)}catch(u){}if(b(u,d))return l(!c(i.f,u,d),u[d])}},{"../internals/create-property-descriptor":79,"../internals/descriptors":83,"../internals/function-call":97,"../internals/has-own-property":105,"../internals/ie8-dom-define":108,"../internals/object-property-is-enumerable":138,"../internals/to-indexed-object":154,"../internals/to-property-key":159}],131:[function(u,d,t){var a=u("../internals/classof-raw"),c=u("../internals/to-indexed-object"),i=u("../internals/object-get-own-property-names").f,l=u("../internals/array-slice-simple"),D="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];d.exports.f=function getOwnPropertyNames(u){return D&&"Window"==a(u)?function(u){try{return i(u)}catch(u){return l(D)}}(u):i(c(u))}},{"../internals/array-slice-simple":67,"../internals/classof-raw":74,"../internals/object-get-own-property-names":132,"../internals/to-indexed-object":154}],132:[function(u,d,t){var a=u("../internals/object-keys-internal"),c=u("../internals/enum-bug-keys").concat("length","prototype");t.f=Object.getOwnPropertyNames||function getOwnPropertyNames(u){return a(u,c)}},{"../internals/enum-bug-keys":92,"../internals/object-keys-internal":136}],133:[function(u,d,t){t.f=Object.getOwnPropertySymbols},{}],134:[function(u,d,t){var a=u("../internals/global"),c=u("../internals/has-own-property"),i=u("../internals/is-callable"),l=u("../internals/to-object"),D=u("../internals/shared-key"),p=u("../internals/correct-prototype-getter"),b=D("IE_PROTO"),y=a.Object,m=y.prototype;d.exports=p?y.getPrototypeOf:function(u){var d=l(u);if(c(d,b))return d[b];var t=d.constructor;return i(t)&&d instanceof t?t.prototype:d instanceof y?m:null}},{"../internals/correct-prototype-getter":76,"../internals/global":104,"../internals/has-own-property":105,"../internals/is-callable":114,"../internals/shared-key":148,"../internals/to-object":157}],135:[function(u,d,t){var a=u("../internals/function-uncurry-this");d.exports=a({}.isPrototypeOf)},{"../internals/function-uncurry-this":99}],136:[function(u,d,t){var a=u("../internals/function-uncurry-this"),c=u("../internals/has-own-property"),i=u("../internals/to-indexed-object"),l=u("../internals/array-includes").indexOf,D=u("../internals/hidden-keys"),p=a([].push);d.exports=function(u,d){var t,a=i(u),b=0,y=[];for(t in a)!c(D,t)&&c(a,t)&&p(y,t);for(;d.length>b;)c(a,t=d[b++])&&(~l(y,t)||p(y,t));return y}},{"../internals/array-includes":63,"../internals/function-uncurry-this":99,"../internals/has-own-property":105,"../internals/hidden-keys":106,"../internals/to-indexed-object":154}],137:[function(u,d,t){var a=u("../internals/object-keys-internal"),c=u("../internals/enum-bug-keys");d.exports=Object.keys||function keys(u){return a(u,c)}},{"../internals/enum-bug-keys":92,"../internals/object-keys-internal":136}],138:[function(u,d,t){"use strict";var a={}.propertyIsEnumerable,c=Object.getOwnPropertyDescriptor,i=c&&!a.call({1:2},1);t.f=i?function propertyIsEnumerable(u){var d=c(this,u);return!!d&&d.enumerable}:a},{}],139:[function(u,d,t){var a=u("../internals/function-uncurry-this"),c=u("../internals/an-object"),i=u("../internals/a-possible-prototype");d.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var u,d=!1,t={};try{(u=a(Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set))(t,[]),d=t instanceof Array}catch(u){}return function setPrototypeOf(t,a){return c(t),i(a),d?u(t,a):t.__proto__=a,t}}():void 0)},{"../internals/a-possible-prototype":58,"../internals/an-object":60,"../internals/function-uncurry-this":99}],140:[function(u,d,t){"use strict";var a=u("../internals/to-string-tag-support"),c=u("../internals/classof");d.exports=a?{}.toString:function toString(){return"[object "+c(this)+"]"}},{"../internals/classof":75,"../internals/to-string-tag-support":160}],141:[function(u,d,t){var a=u("../internals/global"),c=u("../internals/function-call"),i=u("../internals/is-callable"),l=u("../internals/is-object"),D=a.TypeError;d.exports=function(u,d){var t,a;if("string"===d&&i(t=u.toString)&&!l(a=c(t,u)))return a;if(i(t=u.valueOf)&&!l(a=c(t,u)))return a;if("string"!==d&&i(t=u.toString)&&!l(a=c(t,u)))return a;throw D("Can't convert object to primitive value")}},{"../internals/function-call":97,"../internals/global":104,"../internals/is-callable":114,"../internals/is-object":117}],142:[function(u,d,t){arguments[4][106][0].apply(t,arguments)},{dup:106}],143:[function(u,d,t){var a=u("../internals/create-non-enumerable-property");d.exports=function(u,d,t,c){c&&c.enumerable?u[d]=t:a(u,d,t)}},{"../internals/create-non-enumerable-property":78}],144:[function(u,d,t){"use strict";var a=u("../internals/an-object");d.exports=function(){var u=a(this),d="";return u.global&&(d+="g"),u.ignoreCase&&(d+="i"),u.multiline&&(d+="m"),u.dotAll&&(d+="s"),u.unicode&&(d+="u"),u.sticky&&(d+="y"),d}},{"../internals/an-object":60}],145:[function(u,d,t){var a=u("../internals/global").TypeError;d.exports=function(u){if(null==u)throw a("Can't call method on "+u);return u}},{"../internals/global":104}],146:[function(u,d,t){var a=u("../internals/global"),c=Object.defineProperty;d.exports=function(u,d){try{c(a,u,{value:d,configurable:!0,writable:!0})}catch(t){a[u]=d}return d}},{"../internals/global":104}],147:[function(u,d,t){var a=u("../internals/to-string-tag-support"),c=u("../internals/object-define-property").f,i=u("../internals/create-non-enumerable-property"),l=u("../internals/has-own-property"),D=u("../internals/object-to-string"),p=u("../internals/well-known-symbol")("toStringTag");d.exports=function(u,d,t,b){if(u){var y=t?u:u.prototype;l(y,p)||c(y,p,{configurable:!0,value:d}),b&&!a&&i(y,"toString",D)}}},{"../internals/create-non-enumerable-property":78,"../internals/has-own-property":105,"../internals/object-define-property":129,"../internals/object-to-string":140,"../internals/to-string-tag-support":160,"../internals/well-known-symbol":166}],148:[function(u,d,t){var a=u("../internals/shared"),c=u("../internals/uid"),i=a("keys");d.exports=function(u){return i[u]||(i[u]=c(u))}},{"../internals/shared":150,"../internals/uid":163}],149:[function(u,d,t){var a=u("../internals/global"),c=u("../internals/set-global"),i="__core-js_shared__",l=a[i]||c(i,{});d.exports=l},{"../internals/global":104,"../internals/set-global":146}],150:[function(u,d,t){var a=u("../internals/is-pure"),c=u("../internals/shared-store");(d.exports=function(u,d){return c[u]||(c[u]=void 0!==d?d:{})})("versions",[]).push({version:"3.20.0",mode:a?"pure":"global",copyright:"© 2021 Denis Pushkarev (zloirock.ru)"})},{"../internals/is-pure":118,"../internals/shared-store":149}],151:[function(u,d,t){var a=u("../internals/function-uncurry-this"),c=u("../internals/to-integer-or-infinity"),i=u("../internals/to-string"),l=u("../internals/require-object-coercible"),D=a("".charAt),p=a("".charCodeAt),b=a("".slice),createMethod=function(u){return function(d,t){var a,y,m=i(l(d)),A=c(t),E=m.length;return A<0||A>=E?u?"":void 0:(a=p(m,A))<55296||a>56319||A+1===E||(y=p(m,A+1))<56320||y>57343?u?D(m,A):a:u?b(m,A,A+2):y-56320+(a-55296<<10)+65536}};d.exports={codeAt:createMethod(!1),charAt:createMethod(!0)}},{"../internals/function-uncurry-this":99,"../internals/require-object-coercible":145,"../internals/to-integer-or-infinity":155,"../internals/to-string":161}],152:[function(u,d,t){var a=u("../internals/function-uncurry-this"),c=u("../internals/require-object-coercible"),i=u("../internals/to-string"),l=u("../internals/whitespaces"),D=a("".replace),p="["+l+"]",b=RegExp("^"+p+p+"*"),y=RegExp(p+p+"*$"),createMethod=function(u){return function(d){var t=i(c(d));return 1&u&&(t=D(t,b,"")),2&u&&(t=D(t,y,"")),t}};d.exports={start:createMethod(1),end:createMethod(2),trim:createMethod(3)}},{"../internals/function-uncurry-this":99,"../internals/require-object-coercible":145,"../internals/to-string":161,"../internals/whitespaces":167}],153:[function(u,d,t){var a=u("../internals/to-integer-or-infinity"),c=Math.max,i=Math.min;d.exports=function(u,d){var t=a(u);return t<0?c(t+d,0):i(t,d)}},{"../internals/to-integer-or-infinity":155}],154:[function(u,d,t){var a=u("../internals/indexed-object"),c=u("../internals/require-object-coercible");d.exports=function(u){return a(c(u))}},{"../internals/indexed-object":109,"../internals/require-object-coercible":145}],155:[function(u,d,t){var a=Math.ceil,c=Math.floor;d.exports=function(u){var d=+u;return d!=d||0===d?0:(d>0?c:a)(d)}},{}],156:[function(u,d,t){var a=u("../internals/to-integer-or-infinity"),c=Math.min;d.exports=function(u){return u>0?c(a(u),9007199254740991):0}},{"../internals/to-integer-or-infinity":155}],157:[function(u,d,t){var a=u("../internals/global"),c=u("../internals/require-object-coercible"),i=a.Object;d.exports=function(u){return i(c(u))}},{"../internals/global":104,"../internals/require-object-coercible":145}],158:[function(u,d,t){var a=u("../internals/global"),c=u("../internals/function-call"),i=u("../internals/is-object"),l=u("../internals/is-symbol"),D=u("../internals/get-method"),p=u("../internals/ordinary-to-primitive"),b=u("../internals/well-known-symbol"),y=a.TypeError,m=b("toPrimitive");d.exports=function(u,d){if(!i(u)||l(u))return u;var t,a=D(u,m);if(a){if(void 0===d&&(d="default"),t=c(a,u,d),!i(t)||l(t))return t;throw y("Can't convert object to primitive value")}return void 0===d&&(d="number"),p(u,d)}},{"../internals/function-call":97,"../internals/get-method":103,"../internals/global":104,"../internals/is-object":117,"../internals/is-symbol":119,"../internals/ordinary-to-primitive":141,"../internals/well-known-symbol":166}],159:[function(u,d,t){var a=u("../internals/to-primitive"),c=u("../internals/is-symbol");d.exports=function(u){var d=a(u,"string");return c(d)?d:d+""}},{"../internals/is-symbol":119,"../internals/to-primitive":158}],160:[function(u,d,t){var a={};a[u("../internals/well-known-symbol")("toStringTag")]="z",d.exports="[object z]"===String(a)},{"../internals/well-known-symbol":166}],161:[function(u,d,t){var a=u("../internals/global"),c=u("../internals/classof"),i=a.String;d.exports=function(u){if("Symbol"===c(u))throw TypeError("Cannot convert a Symbol value to a string");return i(u)}},{"../internals/classof":75,"../internals/global":104}],162:[function(u,d,t){var a=u("../internals/global").String;d.exports=function(u){try{return a(u)}catch(u){return"Object"}}},{"../internals/global":104}],163:[function(u,d,t){var a=u("../internals/function-uncurry-this"),c=0,i=Math.random(),l=a(1..toString);d.exports=function(u){return"Symbol("+(void 0===u?"":u)+")_"+l(++c+i,36)}},{"../internals/function-uncurry-this":99}],164:[function(u,d,t){var a=u("../internals/native-symbol");d.exports=a&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},{"../internals/native-symbol":124}],165:[function(u,d,t){var a=u("../internals/well-known-symbol");t.f=a},{"../internals/well-known-symbol":166}],166:[function(u,d,t){var a=u("../internals/global"),c=u("../internals/shared"),i=u("../internals/has-own-property"),l=u("../internals/uid"),D=u("../internals/native-symbol"),p=u("../internals/use-symbol-as-uid"),b=c("wks"),y=a.Symbol,m=y&&y.for,A=p?y:y&&y.withoutSetter||l;d.exports=function(u){if(!i(b,u)||!D&&"string"!=typeof b[u]){var d="Symbol."+u;D&&i(y,u)?b[u]=y[u]:b[u]=p&&m?m(d):A(d)}return b[u]}},{"../internals/global":104,"../internals/has-own-property":105,"../internals/native-symbol":124,"../internals/shared":150,"../internals/uid":163,"../internals/use-symbol-as-uid":164}],167:[function(u,d,t){d.exports="\t\n\v\f\r                \u2028\u2029\ufeff"},{}],168:[function(u,d,t){"use strict";var a=u("../internals/export"),c=u("../internals/global"),i=u("../internals/fails"),l=u("../internals/is-array"),D=u("../internals/is-object"),p=u("../internals/to-object"),b=u("../internals/length-of-array-like"),y=u("../internals/create-property"),m=u("../internals/array-species-create"),A=u("../internals/array-method-has-species-support"),E=u("../internals/well-known-symbol"),C=u("../internals/engine-v8-version"),g=E("isConcatSpreadable"),h=9007199254740991,x="Maximum allowed index exceeded",v=c.TypeError,B=C>=51||!i((function(){var u=[];return u[g]=!1,u.concat()[0]!==u})),w=A("concat"),isConcatSpreadable=function(u){if(!D(u))return!1;var d=u[g];return void 0!==d?!!d:l(u)};a({target:"Array",proto:!0,forced:!B||!w},{concat:function concat(u){var d,t,a,c,i,l=p(this),D=m(l,0),A=0;for(d=-1,a=arguments.length;d<a;d++)if(isConcatSpreadable(i=-1===d?l:arguments[d])){if(A+(c=b(i))>h)throw v(x);for(t=0;t<c;t++,A++)t in i&&y(D,A,i[t])}else{if(A>=h)throw v(x);y(D,A++,i)}return D.length=A,D}})},{"../internals/array-method-has-species-support":65,"../internals/array-species-create":71,"../internals/create-property":80,"../internals/engine-v8-version":89,"../internals/export":93,"../internals/fails":94,"../internals/global":104,"../internals/is-array":113,"../internals/is-object":117,"../internals/length-of-array-like":123,"../internals/to-object":157,"../internals/well-known-symbol":166}],169:[function(u,d,t){"use strict";var a=u("../internals/export"),c=u("../internals/array-for-each");a({target:"Array",proto:!0,forced:[].forEach!=c},{forEach:c})},{"../internals/array-for-each":61,"../internals/export":93}],170:[function(u,d,t){var a=u("../internals/export"),c=u("../internals/array-from");a({target:"Array",stat:!0,forced:!u("../internals/check-correctness-of-iteration")((function(u){Array.from(u)}))},{from:c})},{"../internals/array-from":62,"../internals/check-correctness-of-iteration":73,"../internals/export":93}],171:[function(u,d,t){"use strict";var a=u("../internals/export"),c=u("../internals/function-uncurry-this"),i=u("../internals/array-includes").indexOf,l=u("../internals/array-method-is-strict"),D=c([].indexOf),p=!!D&&1/D([1],1,-0)<0,b=l("indexOf");a({target:"Array",proto:!0,forced:p||!b},{indexOf:function indexOf(u){var d=arguments.length>1?arguments[1]:void 0;return p?D(this,u,d)||0:i(this,u,d)}})},{"../internals/array-includes":63,"../internals/array-method-is-strict":66,"../internals/export":93,"../internals/function-uncurry-this":99}],172:[function(u,d,t){u("../internals/export")({target:"Array",stat:!0},{isArray:u("../internals/is-array")})},{"../internals/export":93,"../internals/is-array":113}],173:[function(u,d,t){"use strict";var a=u("../internals/to-indexed-object"),c=u("../internals/add-to-unscopables"),i=u("../internals/iterators"),l=u("../internals/internal-state"),D=u("../internals/object-define-property").f,p=u("../internals/define-iterator"),b=u("../internals/is-pure"),y=u("../internals/descriptors"),m="Array Iterator",A=l.set,E=l.getterFor(m);d.exports=p(Array,"Array",(function(u,d){A(this,{type:m,target:a(u),index:0,kind:d})}),(function(){var u=E(this),d=u.target,t=u.kind,a=u.index++;return!d||a>=d.length?(u.target=void 0,{value:void 0,done:!0}):"keys"==t?{value:a,done:!1}:"values"==t?{value:d[a],done:!1}:{value:[a,d[a]],done:!1}}),"values");var C=i.Arguments=i.Array;if(c("keys"),c("values"),c("entries"),!b&&y&&"values"!==C.name)try{D(C,"name",{value:"values"})}catch(u){}},{"../internals/add-to-unscopables":59,"../internals/define-iterator":81,"../internals/descriptors":83,"../internals/internal-state":111,"../internals/is-pure":118,"../internals/iterators":122,"../internals/object-define-property":129,"../internals/to-indexed-object":154}],174:[function(u,d,t){"use strict";var a=u("../internals/export"),c=u("../internals/global"),i=u("../internals/is-array"),l=u("../internals/is-constructor"),D=u("../internals/is-object"),p=u("../internals/to-absolute-index"),b=u("../internals/length-of-array-like"),y=u("../internals/to-indexed-object"),m=u("../internals/create-property"),A=u("../internals/well-known-symbol"),E=u("../internals/array-method-has-species-support"),C=u("../internals/array-slice"),g=E("slice"),h=A("species"),x=c.Array,v=Math.max;a({target:"Array",proto:!0,forced:!g},{slice:function slice(u,d){var t,a,c,A=y(this),E=b(A),g=p(u,E),B=p(void 0===d?E:d,E);if(i(A)&&(t=A.constructor,(l(t)&&(t===x||i(t.prototype))||D(t)&&null===(t=t[h]))&&(t=void 0),t===x||void 0===t))return C(A,g,B);for(a=new(void 0===t?x:t)(v(B-g,0)),c=0;g<B;g++,c++)g in A&&m(a,c,A[g]);return a.length=c,a}})},{"../internals/array-method-has-species-support":65,"../internals/array-slice":68,"../internals/create-property":80,"../internals/export":93,"../internals/global":104,"../internals/is-array":113,"../internals/is-constructor":115,"../internals/is-object":117,"../internals/length-of-array-like":123,"../internals/to-absolute-index":153,"../internals/to-indexed-object":154,"../internals/well-known-symbol":166}],175:[function(u,d,t){"use strict";var a=u("../internals/export"),c=u("../internals/function-uncurry-this"),i=u("../internals/a-callable"),l=u("../internals/to-object"),D=u("../internals/length-of-array-like"),p=u("../internals/to-string"),b=u("../internals/fails"),y=u("../internals/array-sort"),m=u("../internals/array-method-is-strict"),A=u("../internals/engine-ff-version"),E=u("../internals/engine-is-ie-or-edge"),C=u("../internals/engine-v8-version"),g=u("../internals/engine-webkit-version"),h=[],x=c(h.sort),v=c(h.push),B=b((function(){h.sort(void 0)})),w=b((function(){h.sort(null)})),j=m("sort"),k=!b((function(){if(C)return C<70;if(!(A&&A>3)){if(E)return!0;if(g)return g<603;var u,d,t,a,c="";for(u=65;u<76;u++){switch(d=String.fromCharCode(u),u){case 66:case 69:case 70:case 72:t=3;break;case 68:case 71:t=4;break;default:t=2}for(a=0;a<47;a++)h.push({k:d+a,v:t})}for(h.sort((function(u,d){return d.v-u.v})),a=0;a<h.length;a++)d=h[a].k.charAt(0),c.charAt(c.length-1)!==d&&(c+=d);return"DGBEFHACIJK"!==c}}));a({target:"Array",proto:!0,forced:B||!w||!j||!k},{sort:function sort(u){void 0!==u&&i(u);var d=l(this);if(k)return void 0===u?x(d):x(d,u);var t,a,c=[],b=D(d);for(a=0;a<b;a++)a in d&&v(c,d[a]);for(y(c,function(u){return function(d,t){return void 0===t?-1:void 0===d?1:void 0!==u?+u(d,t)||0:p(d)>p(t)?1:-1}}(u)),t=c.length,a=0;a<t;)d[a]=c[a++];for(;a<b;)delete d[a++];return d}})},{"../internals/a-callable":57,"../internals/array-method-is-strict":66,"../internals/array-sort":69,"../internals/engine-ff-version":86,"../internals/engine-is-ie-or-edge":87,"../internals/engine-v8-version":89,"../internals/engine-webkit-version":90,"../internals/export":93,"../internals/fails":94,"../internals/function-uncurry-this":99,"../internals/length-of-array-like":123,"../internals/to-object":157,"../internals/to-string":161}],176:[function(u,d,t){var a=u("../internals/global");u("../internals/set-to-string-tag")(a.JSON,"JSON",!0)},{"../internals/global":104,"../internals/set-to-string-tag":147}],177:[function(u,d,t){},{}],178:[function(u,d,t){u("../internals/export")({target:"Object",stat:!0,sham:!u("../internals/descriptors")},{create:u("../internals/object-create")})},{"../internals/descriptors":83,"../internals/export":93,"../internals/object-create":127}],179:[function(u,d,t){var a=u("../internals/export"),c=u("../internals/descriptors");a({target:"Object",stat:!0,forced:!c,sham:!c},{defineProperty:u("../internals/object-define-property").f})},{"../internals/descriptors":83,"../internals/export":93,"../internals/object-define-property":129}],180:[function(u,d,t){arguments[4][177][0].apply(t,arguments)},{dup:177}],181:[function(u,d,t){var a=u("../internals/export"),c=u("../internals/number-parse-int");a({global:!0,forced:parseInt!=c},{parseInt:c})},{"../internals/export":93,"../internals/number-parse-int":126}],182:[function(u,d,t){arguments[4][177][0].apply(t,arguments)},{dup:177}],183:[function(u,d,t){arguments[4][177][0].apply(t,arguments)},{dup:177}],184:[function(u,d,t){"use strict";var a=u("../internals/string-multibyte").charAt,c=u("../internals/to-string"),i=u("../internals/internal-state"),l=u("../internals/define-iterator"),D="String Iterator",p=i.set,b=i.getterFor(D);l(String,"String",(function(u){p(this,{type:D,string:c(u),index:0})}),(function next(){var u,d=b(this),t=d.string,c=d.index;return c>=t.length?{value:void 0,done:!0}:(u=a(t,c),d.index+=u.length,{value:u,done:!1})}))},{"../internals/define-iterator":81,"../internals/internal-state":111,"../internals/string-multibyte":151,"../internals/to-string":161}],185:[function(u,d,t){u("../internals/define-well-known-symbol")("asyncIterator")},{"../internals/define-well-known-symbol":82}],186:[function(u,d,t){arguments[4][177][0].apply(t,arguments)},{dup:177}],187:[function(u,d,t){u("../internals/define-well-known-symbol")("hasInstance")},{"../internals/define-well-known-symbol":82}],188:[function(u,d,t){u("../internals/define-well-known-symbol")("isConcatSpreadable")},{"../internals/define-well-known-symbol":82}],189:[function(u,d,t){u("../internals/define-well-known-symbol")("iterator")},{"../internals/define-well-known-symbol":82}],190:[function(u,d,t){"use strict";var a=u("../internals/export"),c=u("../internals/global"),i=u("../internals/get-built-in"),l=u("../internals/function-apply"),D=u("../internals/function-call"),p=u("../internals/function-uncurry-this"),b=u("../internals/is-pure"),y=u("../internals/descriptors"),m=u("../internals/native-symbol"),A=u("../internals/fails"),E=u("../internals/has-own-property"),C=u("../internals/is-array"),g=u("../internals/is-callable"),h=u("../internals/is-object"),x=u("../internals/object-is-prototype-of"),v=u("../internals/is-symbol"),B=u("../internals/an-object"),w=u("../internals/to-object"),j=u("../internals/to-indexed-object"),k=u("../internals/to-property-key"),S=u("../internals/to-string"),O=u("../internals/create-property-descriptor"),R=u("../internals/object-create"),_=u("../internals/object-keys"),T=u("../internals/object-get-own-property-names"),I=u("../internals/object-get-own-property-names-external"),P=u("../internals/object-get-own-property-symbols"),X=u("../internals/object-get-own-property-descriptor"),L=u("../internals/object-define-property"),N=u("../internals/object-property-is-enumerable"),M=u("../internals/array-slice"),U=u("../internals/redefine"),G=u("../internals/shared"),q=u("../internals/shared-key"),z=u("../internals/hidden-keys"),$=u("../internals/uid"),H=u("../internals/well-known-symbol"),Z=u("../internals/well-known-symbol-wrapped"),Y=u("../internals/define-well-known-symbol"),V=u("../internals/set-to-string-tag"),W=u("../internals/internal-state"),J=u("../internals/array-iteration").forEach,K=q("hidden"),Q="Symbol",uu=H("toPrimitive"),eu=W.set,du=W.getterFor(Q),nu=Object.prototype,tu=c.Symbol,ru=tu&&tu.prototype,au=c.TypeError,cu=c.QObject,ou=i("JSON","stringify"),iu=X.f,su=L.f,fu=I.f,lu=N.f,Du=p([].push),pu=G("symbols"),bu=G("op-symbols"),yu=G("string-to-symbol-registry"),Fu=G("symbol-to-string-registry"),mu=G("wks"),Au=!cu||!cu.prototype||!cu.prototype.findChild,Eu=y&&A((function(){return 7!=R(su({},"a",{get:function(){return su(this,"a",{value:7}).a}})).a}))?function(u,d,t){var a=iu(nu,d);a&&delete nu[d],su(u,d,t),a&&u!==nu&&su(nu,d,a)}:su,wrap=function(u,d){var t=pu[u]=R(ru);return eu(t,{type:Q,tag:u,description:d}),y||(t.description=d),t},Cu=function defineProperty(u,d,t){u===nu&&Cu(bu,d,t),B(u);var a=k(d);return B(t),E(pu,a)?(t.enumerable?(E(u,K)&&u[K][a]&&(u[K][a]=!1),t=R(t,{enumerable:O(0,!1)})):(E(u,K)||su(u,K,O(1,{})),u[K][a]=!0),Eu(u,a,t)):su(u,a,t)},gu=function defineProperties(u,d){B(u);var t=j(d),a=_(t).concat(Bu(t));return J(a,(function(d){y&&!D(hu,t,d)||Cu(u,d,t[d])})),u},hu=function propertyIsEnumerable(u){var d=k(u),t=D(lu,this,d);return!(this===nu&&E(pu,d)&&!E(bu,d))&&(!(t||!E(this,d)||!E(pu,d)||E(this,K)&&this[K][d])||t)},xu=function getOwnPropertyDescriptor(u,d){var t=j(u),a=k(d);if(t!==nu||!E(pu,a)||E(bu,a)){var c=iu(t,a);return!c||!E(pu,a)||E(t,K)&&t[K][a]||(c.enumerable=!0),c}},vu=function getOwnPropertyNames(u){var d=fu(j(u)),t=[];return J(d,(function(u){E(pu,u)||E(z,u)||Du(t,u)})),t},Bu=function getOwnPropertySymbols(u){var d=u===nu,t=fu(d?bu:j(u)),a=[];return J(t,(function(u){!E(pu,u)||d&&!E(nu,u)||Du(a,pu[u])})),a};(m||(tu=function Symbol(){if(x(ru,this))throw au("Symbol is not a constructor");var u=arguments.length&&void 0!==arguments[0]?S(arguments[0]):void 0,d=$(u),setter=function(u){this===nu&&D(setter,bu,u),E(this,K)&&E(this[K],d)&&(this[K][d]=!1),Eu(this,d,O(1,u))};return y&&Au&&Eu(nu,d,{configurable:!0,set:setter}),wrap(d,u)},U(ru=tu.prototype,"toString",(function toString(){return du(this).tag})),U(tu,"withoutSetter",(function(u){return wrap($(u),u)})),N.f=hu,L.f=Cu,X.f=xu,T.f=I.f=vu,P.f=Bu,Z.f=function(u){return wrap(H(u),u)},y&&(su(ru,"description",{configurable:!0,get:function description(){return du(this).description}}),b||U(nu,"propertyIsEnumerable",hu,{unsafe:!0}))),a({global:!0,wrap:!0,forced:!m,sham:!m},{Symbol:tu}),J(_(mu),(function(u){Y(u)})),a({target:Q,stat:!0,forced:!m},{for:function(u){var d=S(u);if(E(yu,d))return yu[d];var t=tu(d);return yu[d]=t,Fu[t]=d,t},keyFor:function keyFor(u){if(!v(u))throw au(u+" is not a symbol");if(E(Fu,u))return Fu[u]},useSetter:function(){Au=!0},useSimple:function(){Au=!1}}),a({target:"Object",stat:!0,forced:!m,sham:!y},{create:function create(u,d){return void 0===d?R(u):gu(R(u),d)},defineProperty:Cu,defineProperties:gu,getOwnPropertyDescriptor:xu}),a({target:"Object",stat:!0,forced:!m},{getOwnPropertyNames:vu,getOwnPropertySymbols:Bu}),a({target:"Object",stat:!0,forced:A((function(){P.f(1)}))},{getOwnPropertySymbols:function getOwnPropertySymbols(u){return P.f(w(u))}}),ou)&&a({target:"JSON",stat:!0,forced:!m||A((function(){var u=tu();return"[null]"!=ou([u])||"{}"!=ou({a:u})||"{}"!=ou(Object(u))}))},{stringify:function stringify(u,d,t){var a=M(arguments),c=d;if((h(d)||void 0!==u)&&!v(u))return C(d)||(d=function(u,d){if(g(c)&&(d=D(c,this,u,d)),!v(d))return d}),a[1]=d,l(ou,null,a)}});if(!ru[uu]){var wu=ru.valueOf;U(ru,uu,(function(u){return D(wu,this)}))}V(tu,Q),z[K]=!0},{"../internals/an-object":60,"../internals/array-iteration":64,"../internals/array-slice":68,"../internals/create-property-descriptor":79,"../internals/define-well-known-symbol":82,"../internals/descriptors":83,"../internals/export":93,"../internals/fails":94,"../internals/function-apply":95,"../internals/function-call":97,"../internals/function-uncurry-this":99,"../internals/get-built-in":100,"../internals/global":104,"../internals/has-own-property":105,"../internals/hidden-keys":106,"../internals/internal-state":111,"../internals/is-array":113,"../internals/is-callable":114,"../internals/is-object":117,"../internals/is-pure":118,"../internals/is-symbol":119,"../internals/native-symbol":124,"../internals/object-create":127,"../internals/object-define-property":129,"../internals/object-get-own-property-descriptor":130,"../internals/object-get-own-property-names":132,"../internals/object-get-own-property-names-external":131,"../internals/object-get-own-property-symbols":133,"../internals/object-is-prototype-of":135,"../internals/object-keys":137,"../internals/object-property-is-enumerable":138,"../internals/redefine":143,"../internals/set-to-string-tag":147,"../internals/shared":150,"../internals/shared-key":148,"../internals/to-indexed-object":154,"../internals/to-object":157,"../internals/to-property-key":159,"../internals/to-string":161,"../internals/uid":163,"../internals/well-known-symbol":166,"../internals/well-known-symbol-wrapped":165}],191:[function(u,d,t){u("../internals/define-well-known-symbol")("matchAll")},{"../internals/define-well-known-symbol":82}],192:[function(u,d,t){u("../internals/define-well-known-symbol")("match")},{"../internals/define-well-known-symbol":82}],193:[function(u,d,t){u("../internals/define-well-known-symbol")("replace")},{"../internals/define-well-known-symbol":82}],194:[function(u,d,t){u("../internals/define-well-known-symbol")("search")},{"../internals/define-well-known-symbol":82}],195:[function(u,d,t){u("../internals/define-well-known-symbol")("species")},{"../internals/define-well-known-symbol":82}],196:[function(u,d,t){u("../internals/define-well-known-symbol")("split")},{"../internals/define-well-known-symbol":82}],197:[function(u,d,t){u("../internals/define-well-known-symbol")("toPrimitive")},{"../internals/define-well-known-symbol":82}],198:[function(u,d,t){u("../internals/define-well-known-symbol")("toStringTag")},{"../internals/define-well-known-symbol":82}],199:[function(u,d,t){u("../internals/define-well-known-symbol")("unscopables")},{"../internals/define-well-known-symbol":82}],200:[function(u,d,t){u("../internals/define-well-known-symbol")("asyncDispose")},{"../internals/define-well-known-symbol":82}],201:[function(u,d,t){u("../internals/define-well-known-symbol")("dispose")},{"../internals/define-well-known-symbol":82}],202:[function(u,d,t){u("../internals/define-well-known-symbol")("matcher")},{"../internals/define-well-known-symbol":82}],203:[function(u,d,t){u("../internals/define-well-known-symbol")("metadata")},{"../internals/define-well-known-symbol":82}],204:[function(u,d,t){u("../internals/define-well-known-symbol")("observable")},{"../internals/define-well-known-symbol":82}],205:[function(u,d,t){u("../internals/define-well-known-symbol")("patternMatch")},{"../internals/define-well-known-symbol":82}],206:[function(u,d,t){u("../internals/define-well-known-symbol")("replaceAll")},{"../internals/define-well-known-symbol":82}],207:[function(u,d,t){u("../modules/es.array.iterator");var a=u("../internals/dom-iterables"),c=u("../internals/global"),i=u("../internals/classof"),l=u("../internals/create-non-enumerable-property"),D=u("../internals/iterators"),p=u("../internals/well-known-symbol")("toStringTag");for(var b in a){var y=c[b],m=y&&y.prototype;m&&i(m)!==p&&l(m,p,b),D[b]=D.Array}},{"../internals/classof":75,"../internals/create-non-enumerable-property":78,"../internals/dom-iterables":85,"../internals/global":104,"../internals/iterators":122,"../internals/well-known-symbol":166,"../modules/es.array.iterator":173}],208:[function(u,d,t){var a=u("../../es/array/from");d.exports=a},{"../../es/array/from":34}],209:[function(u,d,t){var a=u("../../es/array/is-array");d.exports=a},{"../../es/array/is-array":35}],210:[function(u,d,t){var a=u("../../../es/array/virtual/for-each");d.exports=a},{"../../../es/array/virtual/for-each":37}],211:[function(u,d,t){var a=u("../es/get-iterator-method");u("../modules/web.dom-collections.iterator"),d.exports=a},{"../es/get-iterator-method":41,"../modules/web.dom-collections.iterator":207}],212:[function(u,d,t){var a=u("../../es/instance/concat");d.exports=a},{"../../es/instance/concat":42}],213:[function(u,d,t){var a=u("../../es/instance/flags");d.exports=a},{"../../es/instance/flags":43}],214:[function(u,d,t){u("../../modules/web.dom-collections.iterator");var a=u("../../internals/classof"),c=u("../../internals/has-own-property"),i=u("../../internals/object-is-prototype-of"),l=u("../array/virtual/for-each"),D=Array.prototype,p={DOMTokenList:!0,NodeList:!0};d.exports=function(u){var d=u.forEach;return u===D||i(D,u)&&d===D.forEach||c(p,a(u))?l:d}},{"../../internals/classof":75,"../../internals/has-own-property":105,"../../internals/object-is-prototype-of":135,"../../modules/web.dom-collections.iterator":207,"../array/virtual/for-each":210}],215:[function(u,d,t){var a=u("../../es/instance/index-of");d.exports=a},{"../../es/instance/index-of":44}],216:[function(u,d,t){var a=u("../../es/instance/slice");d.exports=a},{"../../es/instance/slice":45}],217:[function(u,d,t){var a=u("../../es/instance/sort");d.exports=a},{"../../es/instance/sort":46}],218:[function(u,d,t){var a=u("../../es/object/create");d.exports=a},{"../../es/object/create":47}],219:[function(u,d,t){var a=u("../../es/object/define-property");d.exports=a},{"../../es/object/define-property":48}],220:[function(u,d,t){var a=u("../es/parse-int");d.exports=a},{"../es/parse-int":49}],221:[function(u,d,t){var a=u("../../es/symbol");u("../../modules/web.dom-collections.iterator"),d.exports=a},{"../../es/symbol":51,"../../modules/web.dom-collections.iterator":207}],222:[function(u,d,t){d.exports=[{name:"C",alias:"Other",isBmpLast:!0,bmp:"\0--Ÿ­͸͹΀-΃΋΍΢԰՗՘֋֌֐׈-׏׫-׮׵-؅؜۝܎܏݋݌޲-޿߻߼࠮࠯࠿࡜࡝࡟࡫-࡯࢏-ࢗ࣢঄঍঎঑঒঩঱঳-঵঺঻৅৆৉৊৏-৖৘-৛৞৤৥৿਀਄਋-਎਑਒਩਱਴਷਺਻਽੃-੆੉੊੎-੐੒-੘੝੟-੥੷-઀઄઎઒઩઱઴઺઻૆૊૎૏૑-૟૤૥૲-૸଀଄଍଎଑଒଩଱଴଺଻୅୆୉୊୎-୔୘-୛୞୤୥୸-஁஄஋-஍஑஖-஘஛஝஠-஢஥-஧஫-஭஺-஽௃-௅௉௎௏௑-௖௘-௥௻-௿఍఑఩఺఻౅౉౎-౔౗౛౜౞౟౤౥౰-౶಍಑಩಴಺಻೅೉೎-೔೗-೜೟೤೥೰ೳ-೿഍഑൅൉൐-൓൤൥඀඄඗-඙඲඼඾඿෇-෉෋-෎෕෗෠-෥෰෱෵-฀฻-฾๜-຀຃຅຋຤຦຾຿໅໇໎໏໚໛໠-໿཈཭-཰྘྽࿍࿛-࿿჆჈-჌჎჏቉቎቏቗቙቞቟኉኎኏኱኶኷኿዁዆዇዗጑጖጗፛፜፽-፿᎚-᎟᏶᏷᏾᏿᚝-᚟᛹-᛿᜖-᜞᜷-᜿᝔-᝟᝭᝱᝴-᝿៞៟៪-៯៺-៿᠎᠚-᠟᡹-᡿᢫-᢯᣶-᣿᤟᤬-᤯᤼-᤿᥁-᥃᥮᥯᥵-᥿᦬-᦯᧊-᧏᧛-᧝᨜᨝᩟᩽᩾᪊-᪏᪚-᪟᪮᪯᫏-᫿᭍-᭏᭿᯴-᯻᰸-᰺᱊-᱌Ᲊ-᲏᲻᲼᳈-᳏᳻-᳿἖἗἞἟὆὇὎὏὘὚὜὞὾὿᾵῅῔῕῜῰῱῵῿​-‏‪-‮⁠-⁲⁳₏₝-₟⃁-⃏⃱-⃿↌-↏␧-␿⑋-⑟⭴⭵⮖⳴-⳸⴦⴨-⴬⴮⴯⵨-⵮⵱-⵾⶗-⶟⶧⶯⶷⶿⷇⷏⷗⷟⹞-⹿⺚⻴-⻿⿖-⿯⿼-⿿぀゗゘㄀-㄄㄰㆏㇤-㇯㈟꒍-꒏꓇-꓏꘬-꘿꛸-꛿Ɤ-꟏꟒꟔Ꟛ-꟱꠭-꠯꠺-꠿꡸-꡿꣆-꣍꣚-꣟꥔-꥞꥽-꥿꧎꧚-꧝꧿꨷-꨿꩎꩏꩚꩛꫃-꫚꫷-꬀꬇꬈꬏꬐꬗-꬟꬧꬯꭬-꭯꯮꯯꯺-꯿힤-힯퟇-퟊퟼-﩮﩯﫚-﫿﬇-﬒﬘-﬜﬷﬽﬿﭂﭅﯃-﯒﶐﶑﷈-﷎﷐-﷯︚-︟﹓﹧﹬-﹯﹵﻽-＀﾿-￁￈￉￐￑￘￙￝-￟￧￯-￾￿",astral:"\ud800[\udc0c\udc27\udc3b\udc3e\udc4e\udc4f\udc5e-\udc7f\udcfb-\udcff\udd03-\udd06\udd34-\udd36\udd8f\udd9d-\udd9f\udda1-\uddcf\uddfe-\ude7f\ude9d-\ude9f\uded1-\udedf\udefc-\udeff\udf24-\udf2c\udf4b-\udf4f\udf7b-\udf7f\udf9e\udfc4-\udfc7\udfd6-\udfff]|\ud801[\udc9e\udc9f\udcaa-\udcaf\udcd4-\udcd7\udcfc-\udcff\udd28-\udd2f\udd64-\udd6e\udd7b\udd8b\udd93\udd96\udda2\uddb2\uddba\uddbd-\uddff\udf37-\udf3f\udf56-\udf5f\udf68-\udf7f\udf86\udfb1\udfbb-\udfff]|\ud802[\udc06\udc07\udc09\udc36\udc39-\udc3b\udc3d\udc3e\udc56\udc9f-\udca6\udcb0-\udcdf\udcf3\udcf6-\udcfa\udd1c-\udd1e\udd3a-\udd3e\udd40-\udd7f\uddb8-\uddbb\uddd0\uddd1\ude04\ude07-\ude0b\ude14\ude18\ude36\ude37\ude3b-\ude3e\ude49-\ude4f\ude59-\ude5f\udea0-\udebf\udee7-\udeea\udef7-\udeff\udf36-\udf38\udf56\udf57\udf73-\udf77\udf92-\udf98\udf9d-\udfa8\udfb0-\udfff]|\ud803[\udc49-\udc7f\udcb3-\udcbf\udcf3-\udcf9\udd28-\udd2f\udd3a-\ude5f\ude7f\udeaa\udeae\udeaf\udeb2-\udeff\udf28-\udf2f\udf5a-\udf6f\udf8a-\udfaf\udfcc-\udfdf\udff7-\udfff]|\ud804[\udc4e-\udc51\udc76-\udc7e\udcbd\udcc3-\udccf\udce9-\udcef\udcfa-\udcff\udd35\udd48-\udd4f\udd77-\udd7f\udde0\uddf5-\uddff\ude12\ude3f-\ude7f\ude87\ude89\ude8e\ude9e\udeaa-\udeaf\udeeb-\udeef\udefa-\udeff\udf04\udf0d\udf0e\udf11\udf12\udf29\udf31\udf34\udf3a\udf45\udf46\udf49\udf4a\udf4e\udf4f\udf51-\udf56\udf58-\udf5c\udf64\udf65\udf6d-\udf6f\udf75-\udfff]|\ud805[\udc5c\udc62-\udc7f\udcc8-\udccf\udcda-\udd7f\uddb6\uddb7\uddde-\uddff\ude45-\ude4f\ude5a-\ude5f\ude6d-\ude7f\udeba-\udebf\udeca-\udeff\udf1b\udf1c\udf2c-\udf2f\udf47-\udfff]|\ud806[\udc3c-\udc9f\udcf3-\udcfe\udd07\udd08\udd0a\udd0b\udd14\udd17\udd36\udd39\udd3a\udd47-\udd4f\udd5a-\udd9f\udda8\udda9\uddd8\uddd9\udde5-\uddff\ude48-\ude4f\udea3-\udeaf\udef9-\udfff]|\ud807[\udc09\udc37\udc46-\udc4f\udc6d-\udc6f\udc90\udc91\udca8\udcb7-\udcff\udd07\udd0a\udd37-\udd39\udd3b\udd3e\udd48-\udd4f\udd5a-\udd5f\udd66\udd69\udd8f\udd92\udd99-\udd9f\uddaa-\udedf\udef9-\udfaf\udfb1-\udfbf\udff2-\udffe]|\ud808[\udf9a-\udfff]|\ud809[\udc6f\udc75-\udc7f\udd44-\udfff]|[\ud80a\ud80e-\ud810\ud812-\ud819\ud824-\ud82a\ud82d\ud82e\ud830-\ud832\ud83f\ud87b-\ud87d\ud87f\ud885-\udb3f\udb41-\udbff][\udc00-\udfff]|\ud80b[\udc00-\udf8f\udff3-\udfff]|\ud80d[\udc2f-\udfff]|\ud811[\ude47-\udfff]|\ud81a[\ude39-\ude3f\ude5f\ude6a-\ude6d\udebf\udeca-\udecf\udeee\udeef\udef6-\udeff\udf46-\udf4f\udf5a\udf62\udf78-\udf7c\udf90-\udfff]|\ud81b[\udc00-\ude3f\ude9b-\udeff\udf4b-\udf4e\udf88-\udf8e\udfa0-\udfdf\udfe5-\udfef\udff2-\udfff]|\ud821[\udff8-\udfff]|\ud823[\udcd6-\udcff\udd09-\udfff]|\ud82b[\udc00-\udfef\udff4\udffc\udfff]|\ud82c[\udd23-\udd4f\udd53-\udd63\udd68-\udd6f\udefc-\udfff]|\ud82f[\udc6b-\udc6f\udc7d-\udc7f\udc89-\udc8f\udc9a\udc9b\udca0-\udfff]|\ud833[\udc00-\udeff\udf2e\udf2f\udf47-\udf4f\udfc4-\udfff]|\ud834[\udcf6-\udcff\udd27\udd28\udd73-\udd7a\uddeb-\uddff\ude46-\udedf\udef4-\udeff\udf57-\udf5f\udf79-\udfff]|\ud835[\udc55\udc9d\udca0\udca1\udca3\udca4\udca7\udca8\udcad\udcba\udcbc\udcc4\udd06\udd0b\udd0c\udd15\udd1d\udd3a\udd3f\udd45\udd47-\udd49\udd51\udea6\udea7\udfcc\udfcd]|\ud836[\ude8c-\ude9a\udea0\udeb0-\udfff]|\ud837[\udc00-\udeff\udf1f-\udfff]|\ud838[\udc07\udc19\udc1a\udc22\udc25\udc2b-\udcff\udd2d-\udd2f\udd3e\udd3f\udd4a-\udd4d\udd50-\ude8f\udeaf-\udebf\udefa-\udefe\udf00-\udfff]|\ud839[\udc00-\udfdf\udfe7\udfec\udfef\udfff]|\ud83a[\udcc5\udcc6\udcd7-\udcff\udd4c-\udd4f\udd5a-\udd5d\udd60-\udfff]|\ud83b[\udc00-\udc70\udcb5-\udd00\udd3e-\uddff\ude04\ude20\ude23\ude25\ude26\ude28\ude33\ude38\ude3a\ude3c-\ude41\ude43-\ude46\ude48\ude4a\ude4c\ude50\ude53\ude55\ude56\ude58\ude5a\ude5c\ude5e\ude60\ude63\ude65\ude66\ude6b\ude73\ude78\ude7d\ude7f\ude8a\ude9c-\udea0\udea4\udeaa\udebc-\udeef\udef2-\udfff]|\ud83c[\udc2c-\udc2f\udc94-\udc9f\udcaf\udcb0\udcc0\udcd0\udcf6-\udcff\uddae-\udde5\ude03-\ude0f\ude3c-\ude3f\ude49-\ude4f\ude52-\ude5f\ude66-\udeff]|\ud83d[\uded8-\udedc\udeed-\udeef\udefd-\udeff\udf74-\udf7f\udfd9-\udfdf\udfec-\udfef\udff1-\udfff]|\ud83e[\udc0c-\udc0f\udc48-\udc4f\udc5a-\udc5f\udc88-\udc8f\udcae\udcaf\udcb2-\udcff\ude54-\ude5f\ude6e\ude6f\ude75-\ude77\ude7d-\ude7f\ude87-\ude8f\udead-\udeaf\udebb-\udebf\udec6-\udecf\udeda-\udedf\udee8-\udeef\udef7-\udeff\udf93\udfcb-\udfef\udffa-\udfff]|\ud869[\udee0-\udeff]|\ud86d[\udf39-\udf3f]|\ud86e[\udc1e\udc1f]|\ud873[\udea2-\udeaf]|\ud87a[\udfe1-\udfff]|\ud87e[\ude1e-\udfff]|\ud884[\udf4b-\udfff]|\udb40[\udc00-\udcff\uddf0-\udfff]"},{name:"Cc",alias:"Control",bmp:"\0--Ÿ"},{name:"Cf",alias:"Format",bmp:"­؀-؅؜۝܏࢐࢑࣢᠎​-‏‪-‮⁠-⁤⁦-\ufeff-",astral:"\ud804[\udcbd\udccd]|\ud80d[\udc30-\udc38]|\ud82f[\udca0-\udca3]|\ud834[\udd73-\udd7a]|\udb40[\udc01\udc20-\udc7f]"},{name:"Cn",alias:"Unassigned",bmp:"͸͹΀-΃΋΍΢԰՗՘֋֌֐׈-׏׫-׮׵-׿܎݋݌޲-޿߻߼࠮࠯࠿࡜࡝࡟࡫-࡯࢏࢒-ࢗ঄঍঎঑঒঩঱঳-঵঺঻৅৆৉৊৏-৖৘-৛৞৤৥৿਀਄਋-਎਑਒਩਱਴਷਺਻਽੃-੆੉੊੎-੐੒-੘੝੟-੥੷-઀઄઎઒઩઱઴઺઻૆૊૎૏૑-૟૤૥૲-૸଀଄଍଎଑଒଩଱଴଺଻୅୆୉୊୎-୔୘-୛୞୤୥୸-஁஄஋-஍஑஖-஘஛஝஠-஢஥-஧஫-஭஺-஽௃-௅௉௎௏௑-௖௘-௥௻-௿఍఑఩఺఻౅౉౎-౔౗౛౜౞౟౤౥౰-౶಍಑಩಴಺಻೅೉೎-೔೗-೜೟೤೥೰ೳ-೿഍഑൅൉൐-൓൤൥඀඄඗-඙඲඼඾඿෇-෉෋-෎෕෗෠-෥෰෱෵-฀฻-฾๜-຀຃຅຋຤຦຾຿໅໇໎໏໚໛໠-໿཈཭-཰྘྽࿍࿛-࿿჆჈-჌჎჏቉቎቏቗቙቞቟኉኎኏኱኶኷኿዁዆዇዗጑጖጗፛፜፽-፿᎚-᎟᏶᏷᏾᏿᚝-᚟᛹-᛿᜖-᜞᜷-᜿᝔-᝟᝭᝱᝴-᝿៞៟៪-៯៺-៿᠚-᠟᡹-᡿᢫-᢯᣶-᣿᤟᤬-᤯᤼-᤿᥁-᥃᥮᥯᥵-᥿᦬-᦯᧊-᧏᧛-᧝᨜᨝᩟᩽᩾᪊-᪏᪚-᪟᪮᪯᫏-᫿᭍-᭏᭿᯴-᯻᰸-᰺᱊-᱌Ᲊ-᲏᲻᲼᳈-᳏᳻-᳿἖἗἞἟὆὇὎὏὘὚὜὞὾὿᾵῅῔῕῜῰῱῵῿⁥⁲⁳₏₝-₟⃁-⃏⃱-⃿↌-↏␧-␿⑋-⑟⭴⭵⮖⳴-⳸⴦⴨-⴬⴮⴯⵨-⵮⵱-⵾⶗-⶟⶧⶯⶷⶿⷇⷏⷗⷟⹞-⹿⺚⻴-⻿⿖-⿯⿼-⿿぀゗゘㄀-㄄㄰㆏㇤-㇯㈟꒍-꒏꓇-꓏꘬-꘿꛸-꛿Ɤ-꟏꟒꟔Ꟛ-꟱꠭-꠯꠺-꠿꡸-꡿꣆-꣍꣚-꣟꥔-꥞꥽-꥿꧎꧚-꧝꧿꨷-꨿꩎꩏꩚꩛꫃-꫚꫷-꬀꬇꬈꬏꬐꬗-꬟꬧꬯꭬-꭯꯮꯯꯺-꯿힤-힯퟇-퟊퟼-퟿﩮﩯﫚-﫿﬇-﬒﬘-﬜﬷﬽﬿﭂﭅﯃-﯒﶐﶑﷈-﷎﷐-﷯︚-︟﹓﹧﹬-﹯﹵﻽﻾＀﾿-￁￈￉￐￑￘￙￝-￟￧￯-￸￾￿",astral:"\ud800[\udc0c\udc27\udc3b\udc3e\udc4e\udc4f\udc5e-\udc7f\udcfb-\udcff\udd03-\udd06\udd34-\udd36\udd8f\udd9d-\udd9f\udda1-\uddcf\uddfe-\ude7f\ude9d-\ude9f\uded1-\udedf\udefc-\udeff\udf24-\udf2c\udf4b-\udf4f\udf7b-\udf7f\udf9e\udfc4-\udfc7\udfd6-\udfff]|\ud801[\udc9e\udc9f\udcaa-\udcaf\udcd4-\udcd7\udcfc-\udcff\udd28-\udd2f\udd64-\udd6e\udd7b\udd8b\udd93\udd96\udda2\uddb2\uddba\uddbd-\uddff\udf37-\udf3f\udf56-\udf5f\udf68-\udf7f\udf86\udfb1\udfbb-\udfff]|\ud802[\udc06\udc07\udc09\udc36\udc39-\udc3b\udc3d\udc3e\udc56\udc9f-\udca6\udcb0-\udcdf\udcf3\udcf6-\udcfa\udd1c-\udd1e\udd3a-\udd3e\udd40-\udd7f\uddb8-\uddbb\uddd0\uddd1\ude04\ude07-\ude0b\ude14\ude18\ude36\ude37\ude3b-\ude3e\ude49-\ude4f\ude59-\ude5f\udea0-\udebf\udee7-\udeea\udef7-\udeff\udf36-\udf38\udf56\udf57\udf73-\udf77\udf92-\udf98\udf9d-\udfa8\udfb0-\udfff]|\ud803[\udc49-\udc7f\udcb3-\udcbf\udcf3-\udcf9\udd28-\udd2f\udd3a-\ude5f\ude7f\udeaa\udeae\udeaf\udeb2-\udeff\udf28-\udf2f\udf5a-\udf6f\udf8a-\udfaf\udfcc-\udfdf\udff7-\udfff]|\ud804[\udc4e-\udc51\udc76-\udc7e\udcc3-\udccc\udcce\udccf\udce9-\udcef\udcfa-\udcff\udd35\udd48-\udd4f\udd77-\udd7f\udde0\uddf5-\uddff\ude12\ude3f-\ude7f\ude87\ude89\ude8e\ude9e\udeaa-\udeaf\udeeb-\udeef\udefa-\udeff\udf04\udf0d\udf0e\udf11\udf12\udf29\udf31\udf34\udf3a\udf45\udf46\udf49\udf4a\udf4e\udf4f\udf51-\udf56\udf58-\udf5c\udf64\udf65\udf6d-\udf6f\udf75-\udfff]|\ud805[\udc5c\udc62-\udc7f\udcc8-\udccf\udcda-\udd7f\uddb6\uddb7\uddde-\uddff\ude45-\ude4f\ude5a-\ude5f\ude6d-\ude7f\udeba-\udebf\udeca-\udeff\udf1b\udf1c\udf2c-\udf2f\udf47-\udfff]|\ud806[\udc3c-\udc9f\udcf3-\udcfe\udd07\udd08\udd0a\udd0b\udd14\udd17\udd36\udd39\udd3a\udd47-\udd4f\udd5a-\udd9f\udda8\udda9\uddd8\uddd9\udde5-\uddff\ude48-\ude4f\udea3-\udeaf\udef9-\udfff]|\ud807[\udc09\udc37\udc46-\udc4f\udc6d-\udc6f\udc90\udc91\udca8\udcb7-\udcff\udd07\udd0a\udd37-\udd39\udd3b\udd3e\udd48-\udd4f\udd5a-\udd5f\udd66\udd69\udd8f\udd92\udd99-\udd9f\uddaa-\udedf\udef9-\udfaf\udfb1-\udfbf\udff2-\udffe]|\ud808[\udf9a-\udfff]|\ud809[\udc6f\udc75-\udc7f\udd44-\udfff]|[\ud80a\ud80e-\ud810\ud812-\ud819\ud824-\ud82a\ud82d\ud82e\ud830-\ud832\ud83f\ud87b-\ud87d\ud87f\ud885-\udb3f\udb41-\udb7f][\udc00-\udfff]|\ud80b[\udc00-\udf8f\udff3-\udfff]|\ud80d[\udc2f\udc39-\udfff]|\ud811[\ude47-\udfff]|\ud81a[\ude39-\ude3f\ude5f\ude6a-\ude6d\udebf\udeca-\udecf\udeee\udeef\udef6-\udeff\udf46-\udf4f\udf5a\udf62\udf78-\udf7c\udf90-\udfff]|\ud81b[\udc00-\ude3f\ude9b-\udeff\udf4b-\udf4e\udf88-\udf8e\udfa0-\udfdf\udfe5-\udfef\udff2-\udfff]|\ud821[\udff8-\udfff]|\ud823[\udcd6-\udcff\udd09-\udfff]|\ud82b[\udc00-\udfef\udff4\udffc\udfff]|\ud82c[\udd23-\udd4f\udd53-\udd63\udd68-\udd6f\udefc-\udfff]|\ud82f[\udc6b-\udc6f\udc7d-\udc7f\udc89-\udc8f\udc9a\udc9b\udca4-\udfff]|\ud833[\udc00-\udeff\udf2e\udf2f\udf47-\udf4f\udfc4-\udfff]|\ud834[\udcf6-\udcff\udd27\udd28\uddeb-\uddff\ude46-\udedf\udef4-\udeff\udf57-\udf5f\udf79-\udfff]|\ud835[\udc55\udc9d\udca0\udca1\udca3\udca4\udca7\udca8\udcad\udcba\udcbc\udcc4\udd06\udd0b\udd0c\udd15\udd1d\udd3a\udd3f\udd45\udd47-\udd49\udd51\udea6\udea7\udfcc\udfcd]|\ud836[\ude8c-\ude9a\udea0\udeb0-\udfff]|\ud837[\udc00-\udeff\udf1f-\udfff]|\ud838[\udc07\udc19\udc1a\udc22\udc25\udc2b-\udcff\udd2d-\udd2f\udd3e\udd3f\udd4a-\udd4d\udd50-\ude8f\udeaf-\udebf\udefa-\udefe\udf00-\udfff]|\ud839[\udc00-\udfdf\udfe7\udfec\udfef\udfff]|\ud83a[\udcc5\udcc6\udcd7-\udcff\udd4c-\udd4f\udd5a-\udd5d\udd60-\udfff]|\ud83b[\udc00-\udc70\udcb5-\udd00\udd3e-\uddff\ude04\ude20\ude23\ude25\ude26\ude28\ude33\ude38\ude3a\ude3c-\ude41\ude43-\ude46\ude48\ude4a\ude4c\ude50\ude53\ude55\ude56\ude58\ude5a\ude5c\ude5e\ude60\ude63\ude65\ude66\ude6b\ude73\ude78\ude7d\ude7f\ude8a\ude9c-\udea0\udea4\udeaa\udebc-\udeef\udef2-\udfff]|\ud83c[\udc2c-\udc2f\udc94-\udc9f\udcaf\udcb0\udcc0\udcd0\udcf6-\udcff\uddae-\udde5\ude03-\ude0f\ude3c-\ude3f\ude49-\ude4f\ude52-\ude5f\ude66-\udeff]|\ud83d[\uded8-\udedc\udeed-\udeef\udefd-\udeff\udf74-\udf7f\udfd9-\udfdf\udfec-\udfef\udff1-\udfff]|\ud83e[\udc0c-\udc0f\udc48-\udc4f\udc5a-\udc5f\udc88-\udc8f\udcae\udcaf\udcb2-\udcff\ude54-\ude5f\ude6e\ude6f\ude75-\ude77\ude7d-\ude7f\ude87-\ude8f\udead-\udeaf\udebb-\udebf\udec6-\udecf\udeda-\udedf\udee8-\udeef\udef7-\udeff\udf93\udfcb-\udfef\udffa-\udfff]|\ud869[\udee0-\udeff]|\ud86d[\udf39-\udf3f]|\ud86e[\udc1e\udc1f]|\ud873[\udea2-\udeaf]|\ud87a[\udfe1-\udfff]|\ud87e[\ude1e-\udfff]|\ud884[\udf4b-\udfff]|\udb40[\udc00\udc02-\udc1f\udc80-\udcff\uddf0-\udfff]|[\udbbf\udbff][\udffe\udfff]"},{name:"Co",alias:"Private_Use",bmp:"-",astral:"[\udb80-\udbbe\udbc0-\udbfe][\udc00-\udfff]|[\udbbf\udbff][\udc00-\udffd]"},{name:"Cs",alias:"Surrogate",bmp:"\ud800-\udfff"},{name:"L",alias:"Letter",bmp:"A-Za-zªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԯԱ-Ֆՙՠ-ֈא-תׯ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࡠ-ࡪࡰ-ࢇࢉ-ࢎࢠ-ࣉऄ-हऽॐक़-ॡॱ-ঀঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱৼਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡૹଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-హఽౘ-ౚౝౠౡಀಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೝೞೠೡೱೲഄ-ഌഎ-ഐഒ-ഺഽൎൔ-ൖൟ-ൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄຆ-ຊຌ-ຣລວ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏽᏸ-ᏽᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛱ-ᛸᜀ-ᜑᜟ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡸᢀ-ᢄᢇ-ᢨᢪᢰ-ᣵᤀ-ᤞᥐ-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭌᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᲀ-ᲈᲐ-ᲺᲽ-Ჿᳩ-ᳬᳮ-ᳳᳵᳶᳺᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℹℼ-ℿⅅ-ⅉⅎↃↄⰀ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞⸯ々〆〱-〵〻〼ぁ-ゖゝ-ゟァ-ヺー-ヿㄅ-ㄯㄱ-ㆎㆠ-ㆿㇰ-ㇿ㐀-䶿一-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚝꚠ-ꛥꜗ-ꜟꜢ-ꞈꞋ-ꟊꟐꟑꟓꟕ-ꟙꟲ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꣽꣾꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꧠ-ꧤꧦ-ꧯꧺ-ꧾꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꩾ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚꭜ-ꭩꭰ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼA-Za-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ",astral:"\ud800[\udc00-\udc0b\udc0d-\udc26\udc28-\udc3a\udc3c\udc3d\udc3f-\udc4d\udc50-\udc5d\udc80-\udcfa\ude80-\ude9c\udea0-\uded0\udf00-\udf1f\udf2d-\udf40\udf42-\udf49\udf50-\udf75\udf80-\udf9d\udfa0-\udfc3\udfc8-\udfcf]|\ud801[\udc00-\udc9d\udcb0-\udcd3\udcd8-\udcfb\udd00-\udd27\udd30-\udd63\udd70-\udd7a\udd7c-\udd8a\udd8c-\udd92\udd94\udd95\udd97-\udda1\udda3-\uddb1\uddb3-\uddb9\uddbb\uddbc\ude00-\udf36\udf40-\udf55\udf60-\udf67\udf80-\udf85\udf87-\udfb0\udfb2-\udfba]|\ud802[\udc00-\udc05\udc08\udc0a-\udc35\udc37\udc38\udc3c\udc3f-\udc55\udc60-\udc76\udc80-\udc9e\udce0-\udcf2\udcf4\udcf5\udd00-\udd15\udd20-\udd39\udd80-\uddb7\uddbe\uddbf\ude00\ude10-\ude13\ude15-\ude17\ude19-\ude35\ude60-\ude7c\ude80-\ude9c\udec0-\udec7\udec9-\udee4\udf00-\udf35\udf40-\udf55\udf60-\udf72\udf80-\udf91]|\ud803[\udc00-\udc48\udc80-\udcb2\udcc0-\udcf2\udd00-\udd23\ude80-\udea9\udeb0\udeb1\udf00-\udf1c\udf27\udf30-\udf45\udf70-\udf81\udfb0-\udfc4\udfe0-\udff6]|\ud804[\udc03-\udc37\udc71\udc72\udc75\udc83-\udcaf\udcd0-\udce8\udd03-\udd26\udd44\udd47\udd50-\udd72\udd76\udd83-\uddb2\uddc1-\uddc4\uddda\udddc\ude00-\ude11\ude13-\ude2b\ude80-\ude86\ude88\ude8a-\ude8d\ude8f-\ude9d\ude9f-\udea8\udeb0-\udede\udf05-\udf0c\udf0f\udf10\udf13-\udf28\udf2a-\udf30\udf32\udf33\udf35-\udf39\udf3d\udf50\udf5d-\udf61]|\ud805[\udc00-\udc34\udc47-\udc4a\udc5f-\udc61\udc80-\udcaf\udcc4\udcc5\udcc7\udd80-\uddae\uddd8-\udddb\ude00-\ude2f\ude44\ude80-\udeaa\udeb8\udf00-\udf1a\udf40-\udf46]|\ud806[\udc00-\udc2b\udca0-\udcdf\udcff-\udd06\udd09\udd0c-\udd13\udd15\udd16\udd18-\udd2f\udd3f\udd41\udda0-\udda7\uddaa-\uddd0\udde1\udde3\ude00\ude0b-\ude32\ude3a\ude50\ude5c-\ude89\ude9d\udeb0-\udef8]|\ud807[\udc00-\udc08\udc0a-\udc2e\udc40\udc72-\udc8f\udd00-\udd06\udd08\udd09\udd0b-\udd30\udd46\udd60-\udd65\udd67\udd68\udd6a-\udd89\udd98\udee0-\udef2\udfb0]|\ud808[\udc00-\udf99]|\ud809[\udc80-\udd43]|\ud80b[\udf90-\udff0]|[\ud80c\ud81c-\ud820\ud822\ud840-\ud868\ud86a-\ud86c\ud86f-\ud872\ud874-\ud879\ud880-\ud883][\udc00-\udfff]|\ud80d[\udc00-\udc2e]|\ud811[\udc00-\ude46]|\ud81a[\udc00-\ude38\ude40-\ude5e\ude70-\udebe\uded0-\udeed\udf00-\udf2f\udf40-\udf43\udf63-\udf77\udf7d-\udf8f]|\ud81b[\ude40-\ude7f\udf00-\udf4a\udf50\udf93-\udf9f\udfe0\udfe1\udfe3]|\ud821[\udc00-\udff7]|\ud823[\udc00-\udcd5\udd00-\udd08]|\ud82b[\udff0-\udff3\udff5-\udffb\udffd\udffe]|\ud82c[\udc00-\udd22\udd50-\udd52\udd64-\udd67\udd70-\udefb]|\ud82f[\udc00-\udc6a\udc70-\udc7c\udc80-\udc88\udc90-\udc99]|\ud835[\udc00-\udc54\udc56-\udc9c\udc9e\udc9f\udca2\udca5\udca6\udca9-\udcac\udcae-\udcb9\udcbb\udcbd-\udcc3\udcc5-\udd05\udd07-\udd0a\udd0d-\udd14\udd16-\udd1c\udd1e-\udd39\udd3b-\udd3e\udd40-\udd44\udd46\udd4a-\udd50\udd52-\udea5\udea8-\udec0\udec2-\udeda\udedc-\udefa\udefc-\udf14\udf16-\udf34\udf36-\udf4e\udf50-\udf6e\udf70-\udf88\udf8a-\udfa8\udfaa-\udfc2\udfc4-\udfcb]|\ud837[\udf00-\udf1e]|\ud838[\udd00-\udd2c\udd37-\udd3d\udd4e\ude90-\udead\udec0-\udeeb]|\ud839[\udfe0-\udfe6\udfe8-\udfeb\udfed\udfee\udff0-\udffe]|\ud83a[\udc00-\udcc4\udd00-\udd43\udd4b]|\ud83b[\ude00-\ude03\ude05-\ude1f\ude21\ude22\ude24\ude27\ude29-\ude32\ude34-\ude37\ude39\ude3b\ude42\ude47\ude49\ude4b\ude4d-\ude4f\ude51\ude52\ude54\ude57\ude59\ude5b\ude5d\ude5f\ude61\ude62\ude64\ude67-\ude6a\ude6c-\ude72\ude74-\ude77\ude79-\ude7c\ude7e\ude80-\ude89\ude8b-\ude9b\udea1-\udea3\udea5-\udea9\udeab-\udebb]|\ud869[\udc00-\udedf\udf00-\udfff]|\ud86d[\udc00-\udf38\udf40-\udfff]|\ud86e[\udc00-\udc1d\udc20-\udfff]|\ud873[\udc00-\udea1\udeb0-\udfff]|\ud87a[\udc00-\udfe0]|\ud87e[\udc00-\ude1d]|\ud884[\udc00-\udf4a]"},{name:"LC",alias:"Cased_Letter",bmp:"A-Za-zµÀ-ÖØ-öø-ƺƼ-ƿDŽ-ʓʕ-ʯͰ-ͳͶͷͻ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԯԱ-Ֆՠ-ֈႠ-ჅჇჍა-ჺჽ-ჿᎠ-Ᏽᏸ-ᏽᲀ-ᲈᲐ-ᲺᲽ-Ჿᴀ-ᴫᵫ-ᵷᵹ-ᶚḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℴℹℼ-ℿⅅ-ⅉⅎↃↄⰀ-ⱻⱾ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭꙀ-ꙭꚀ-ꚛꜢ-ꝯꝱ-ꞇꞋ-ꞎꞐ-ꟊꟐꟑꟓꟕ-ꟙꟵꟶꟺꬰ-ꭚꭠ-ꭨꭰ-ꮿff-stﬓ-ﬗA-Za-z",astral:"\ud801[\udc00-\udc4f\udcb0-\udcd3\udcd8-\udcfb\udd70-\udd7a\udd7c-\udd8a\udd8c-\udd92\udd94\udd95\udd97-\udda1\udda3-\uddb1\uddb3-\uddb9\uddbb\uddbc]|\ud803[\udc80-\udcb2\udcc0-\udcf2]|\ud806[\udca0-\udcdf]|\ud81b[\ude40-\ude7f]|\ud835[\udc00-\udc54\udc56-\udc9c\udc9e\udc9f\udca2\udca5\udca6\udca9-\udcac\udcae-\udcb9\udcbb\udcbd-\udcc3\udcc5-\udd05\udd07-\udd0a\udd0d-\udd14\udd16-\udd1c\udd1e-\udd39\udd3b-\udd3e\udd40-\udd44\udd46\udd4a-\udd50\udd52-\udea5\udea8-\udec0\udec2-\udeda\udedc-\udefa\udefc-\udf14\udf16-\udf34\udf36-\udf4e\udf50-\udf6e\udf70-\udf88\udf8a-\udfa8\udfaa-\udfc2\udfc4-\udfcb]|\ud837[\udf00-\udf09\udf0b-\udf1e]|\ud83a[\udd00-\udd43]"},{name:"Ll",alias:"Lowercase_Letter",bmp:"a-zµß-öø-ÿāăąćĉċčďđēĕėęěĝğġģĥħĩīĭįıijĵķĸĺļľŀłńņňʼnŋōŏőœŕŗřśŝşšţťŧũūŭůűųŵŷźżž-ƀƃƅƈƌƍƒƕƙ-ƛƞơƣƥƨƪƫƭưƴƶƹƺƽ-ƿdžljnjǎǐǒǔǖǘǚǜǝǟǡǣǥǧǩǫǭǯǰdzǵǹǻǽǿȁȃȅȇȉȋȍȏȑȓȕȗșțȝȟȡȣȥȧȩȫȭȯȱȳ-ȹȼȿɀɂɇɉɋɍɏ-ʓʕ-ʯͱͳͷͻ-ͽΐά-ώϐϑϕ-ϗϙϛϝϟϡϣϥϧϩϫϭϯ-ϳϵϸϻϼа-џѡѣѥѧѩѫѭѯѱѳѵѷѹѻѽѿҁҋҍҏґғҕҗҙқҝҟҡңҥҧҩҫҭүұҳҵҷҹһҽҿӂӄӆӈӊӌӎӏӑӓӕӗәӛӝӟӡӣӥӧөӫӭӯӱӳӵӷӹӻӽӿԁԃԅԇԉԋԍԏԑԓԕԗԙԛԝԟԡԣԥԧԩԫԭԯՠ-ֈა-ჺჽ-ჿᏸ-ᏽᲀ-ᲈᴀ-ᴫᵫ-ᵷᵹ-ᶚḁḃḅḇḉḋḍḏḑḓḕḗḙḛḝḟḡḣḥḧḩḫḭḯḱḳḵḷḹḻḽḿṁṃṅṇṉṋṍṏṑṓṕṗṙṛṝṟṡṣṥṧṩṫṭṯṱṳṵṷṹṻṽṿẁẃẅẇẉẋẍẏẑẓẕ-ẝẟạảấầẩẫậắằẳẵặẹẻẽếềểễệỉịọỏốồổỗộớờởỡợụủứừửữựỳỵỷỹỻỽỿ-ἇἐ-ἕἠ-ἧἰ-ἷὀ-ὅὐ-ὗὠ-ὧὰ-ώᾀ-ᾇᾐ-ᾗᾠ-ᾧᾰ-ᾴᾶᾷιῂ-ῄῆῇῐ-ΐῖῗῠ-ῧῲ-ῴῶῷℊℎℏℓℯℴℹℼℽⅆ-ⅉⅎↄⰰ-ⱟⱡⱥⱦⱨⱪⱬⱱⱳⱴⱶ-ⱻⲁⲃⲅⲇⲉⲋⲍⲏⲑⲓⲕⲗⲙⲛⲝⲟⲡⲣⲥⲧⲩⲫⲭⲯⲱⲳⲵⲷⲹⲻⲽⲿⳁⳃⳅⳇⳉⳋⳍⳏⳑⳓⳕⳗⳙⳛⳝⳟⳡⳣⳤⳬⳮⳳⴀ-ⴥⴧⴭꙁꙃꙅꙇꙉꙋꙍꙏꙑꙓꙕꙗꙙꙛꙝꙟꙡꙣꙥꙧꙩꙫꙭꚁꚃꚅꚇꚉꚋꚍꚏꚑꚓꚕꚗꚙꚛꜣꜥꜧꜩꜫꜭꜯ-ꜱꜳꜵꜷꜹꜻꜽꜿꝁꝃꝅꝇꝉꝋꝍꝏꝑꝓꝕꝗꝙꝛꝝꝟꝡꝣꝥꝧꝩꝫꝭꝯꝱ-ꝸꝺꝼꝿꞁꞃꞅꞇꞌꞎꞑꞓ-ꞕꞗꞙꞛꞝꞟꞡꞣꞥꞧꞩꞯꞵꞷꞹꞻꞽꞿꟁꟃꟈꟊꟑꟓꟕꟗꟙꟶꟺꬰ-ꭚꭠ-ꭨꭰ-ꮿff-stﬓ-ﬗa-z",astral:"\ud801[\udc28-\udc4f\udcd8-\udcfb\udd97-\udda1\udda3-\uddb1\uddb3-\uddb9\uddbb\uddbc]|\ud803[\udcc0-\udcf2]|\ud806[\udcc0-\udcdf]|\ud81b[\ude60-\ude7f]|\ud835[\udc1a-\udc33\udc4e-\udc54\udc56-\udc67\udc82-\udc9b\udcb6-\udcb9\udcbb\udcbd-\udcc3\udcc5-\udccf\udcea-\udd03\udd1e-\udd37\udd52-\udd6b\udd86-\udd9f\uddba-\uddd3\uddee-\ude07\ude22-\ude3b\ude56-\ude6f\ude8a-\udea5\udec2-\udeda\udedc-\udee1\udefc-\udf14\udf16-\udf1b\udf36-\udf4e\udf50-\udf55\udf70-\udf88\udf8a-\udf8f\udfaa-\udfc2\udfc4-\udfc9\udfcb]|\ud837[\udf00-\udf09\udf0b-\udf1e]|\ud83a[\udd22-\udd43]"},{name:"Lm",alias:"Modifier_Letter",bmp:"ʰ-ˁˆ-ˑˠ-ˤˬˮʹͺՙـۥۦߴߵߺࠚࠤࠨࣉॱๆໆჼៗᡃᪧᱸ-ᱽᴬ-ᵪᵸᶛ-ᶿⁱⁿₐ-ₜⱼⱽⵯⸯ々〱-〵〻ゝゞー-ヾꀕꓸ-ꓽꘌꙿꚜꚝꜗ-ꜟꝰꞈꟲ-ꟴꟸꟹꧏꧦꩰꫝꫳꫴꭜ-ꭟꭩー゙゚",astral:"\ud801[\udf80-\udf85\udf87-\udfb0\udfb2-\udfba]|\ud81a[\udf40-\udf43]|\ud81b[\udf93-\udf9f\udfe0\udfe1\udfe3]|\ud82b[\udff0-\udff3\udff5-\udffb\udffd\udffe]|\ud838[\udd37-\udd3d]|𞥋"},{name:"Lo",alias:"Other_Letter",bmp:"ªºƻǀ-ǃʔא-תׯ-ײؠ-ؿف-يٮٯٱ-ۓەۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪࠀ-ࠕࡀ-ࡘࡠ-ࡪࡰ-ࢇࢉ-ࢎࢠ-ࣈऄ-हऽॐक़-ॡॲ-ঀঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱৼਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡૹଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-హఽౘ-ౚౝౠౡಀಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೝೞೠೡೱೲഄ-ഌഎ-ഐഒ-ഺഽൎൔ-ൖൟ-ൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๅກຂຄຆ-ຊຌ-ຣລວ-ະາຳຽເ-ໄໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎᄀ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛱ-ᛸᜀ-ᜑᜟ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៜᠠ-ᡂᡄ-ᡸᢀ-ᢄᢇ-ᢨᢪᢰ-ᣵᤀ-ᤞᥐ-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉᨀ-ᨖᨠ-ᩔᬅ-ᬳᭅ-ᭌᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱷᳩ-ᳬᳮ-ᳳᳵᳶᳺℵ-ℸⴰ-ⵧⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞ〆〼ぁ-ゖゟァ-ヺヿㄅ-ㄯㄱ-ㆎㆠ-ㆿㇰ-ㇿ㐀-䶿一-ꀔꀖ-ꒌꓐ-ꓷꔀ-ꘋꘐ-ꘟꘪꘫꙮꚠ-ꛥꞏꟷꟻ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꣽꣾꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧠ-ꧤꧧ-ꧯꧺ-ꧾꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩯꩱ-ꩶꩺꩾ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛꫜꫠ-ꫪꫲꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꯀ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎יִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼヲ-ッア-ンᅠ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ",astral:"\ud800[\udc00-\udc0b\udc0d-\udc26\udc28-\udc3a\udc3c\udc3d\udc3f-\udc4d\udc50-\udc5d\udc80-\udcfa\ude80-\ude9c\udea0-\uded0\udf00-\udf1f\udf2d-\udf40\udf42-\udf49\udf50-\udf75\udf80-\udf9d\udfa0-\udfc3\udfc8-\udfcf]|\ud801[\udc50-\udc9d\udd00-\udd27\udd30-\udd63\ude00-\udf36\udf40-\udf55\udf60-\udf67]|\ud802[\udc00-\udc05\udc08\udc0a-\udc35\udc37\udc38\udc3c\udc3f-\udc55\udc60-\udc76\udc80-\udc9e\udce0-\udcf2\udcf4\udcf5\udd00-\udd15\udd20-\udd39\udd80-\uddb7\uddbe\uddbf\ude00\ude10-\ude13\ude15-\ude17\ude19-\ude35\ude60-\ude7c\ude80-\ude9c\udec0-\udec7\udec9-\udee4\udf00-\udf35\udf40-\udf55\udf60-\udf72\udf80-\udf91]|\ud803[\udc00-\udc48\udd00-\udd23\ude80-\udea9\udeb0\udeb1\udf00-\udf1c\udf27\udf30-\udf45\udf70-\udf81\udfb0-\udfc4\udfe0-\udff6]|\ud804[\udc03-\udc37\udc71\udc72\udc75\udc83-\udcaf\udcd0-\udce8\udd03-\udd26\udd44\udd47\udd50-\udd72\udd76\udd83-\uddb2\uddc1-\uddc4\uddda\udddc\ude00-\ude11\ude13-\ude2b\ude80-\ude86\ude88\ude8a-\ude8d\ude8f-\ude9d\ude9f-\udea8\udeb0-\udede\udf05-\udf0c\udf0f\udf10\udf13-\udf28\udf2a-\udf30\udf32\udf33\udf35-\udf39\udf3d\udf50\udf5d-\udf61]|\ud805[\udc00-\udc34\udc47-\udc4a\udc5f-\udc61\udc80-\udcaf\udcc4\udcc5\udcc7\udd80-\uddae\uddd8-\udddb\ude00-\ude2f\ude44\ude80-\udeaa\udeb8\udf00-\udf1a\udf40-\udf46]|\ud806[\udc00-\udc2b\udcff-\udd06\udd09\udd0c-\udd13\udd15\udd16\udd18-\udd2f\udd3f\udd41\udda0-\udda7\uddaa-\uddd0\udde1\udde3\ude00\ude0b-\ude32\ude3a\ude50\ude5c-\ude89\ude9d\udeb0-\udef8]|\ud807[\udc00-\udc08\udc0a-\udc2e\udc40\udc72-\udc8f\udd00-\udd06\udd08\udd09\udd0b-\udd30\udd46\udd60-\udd65\udd67\udd68\udd6a-\udd89\udd98\udee0-\udef2\udfb0]|\ud808[\udc00-\udf99]|\ud809[\udc80-\udd43]|\ud80b[\udf90-\udff0]|[\ud80c\ud81c-\ud820\ud822\ud840-\ud868\ud86a-\ud86c\ud86f-\ud872\ud874-\ud879\ud880-\ud883][\udc00-\udfff]|\ud80d[\udc00-\udc2e]|\ud811[\udc00-\ude46]|\ud81a[\udc00-\ude38\ude40-\ude5e\ude70-\udebe\uded0-\udeed\udf00-\udf2f\udf63-\udf77\udf7d-\udf8f]|\ud81b[\udf00-\udf4a\udf50]|\ud821[\udc00-\udff7]|\ud823[\udc00-\udcd5\udd00-\udd08]|\ud82c[\udc00-\udd22\udd50-\udd52\udd64-\udd67\udd70-\udefb]|\ud82f[\udc00-\udc6a\udc70-\udc7c\udc80-\udc88\udc90-\udc99]|𝼊|\ud838[\udd00-\udd2c\udd4e\ude90-\udead\udec0-\udeeb]|\ud839[\udfe0-\udfe6\udfe8-\udfeb\udfed\udfee\udff0-\udffe]|\ud83a[\udc00-\udcc4]|\ud83b[\ude00-\ude03\ude05-\ude1f\ude21\ude22\ude24\ude27\ude29-\ude32\ude34-\ude37\ude39\ude3b\ude42\ude47\ude49\ude4b\ude4d-\ude4f\ude51\ude52\ude54\ude57\ude59\ude5b\ude5d\ude5f\ude61\ude62\ude64\ude67-\ude6a\ude6c-\ude72\ude74-\ude77\ude79-\ude7c\ude7e\ude80-\ude89\ude8b-\ude9b\udea1-\udea3\udea5-\udea9\udeab-\udebb]|\ud869[\udc00-\udedf\udf00-\udfff]|\ud86d[\udc00-\udf38\udf40-\udfff]|\ud86e[\udc00-\udc1d\udc20-\udfff]|\ud873[\udc00-\udea1\udeb0-\udfff]|\ud87a[\udc00-\udfe0]|\ud87e[\udc00-\ude1d]|\ud884[\udc00-\udf4a]"},{name:"Lt",alias:"Titlecase_Letter",bmp:"DžLjNjDzᾈ-ᾏᾘ-ᾟᾨ-ᾯᾼῌῼ"},{name:"Lu",alias:"Uppercase_Letter",bmp:"A-ZÀ-ÖØ-ÞĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮİIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŸŹŻŽƁƂƄƆƇƉ-ƋƎ-ƑƓƔƖ-ƘƜƝƟƠƢƤƦƧƩƬƮƯƱ-ƳƵƷƸƼDŽLJNJǍǏǑǓǕǗǙǛǞǠǢǤǦǨǪǬǮDZǴǶ-ǸǺǼǾȀȂȄȆȈȊȌȎȐȒȔȖȘȚȜȞȠȢȤȦȨȪȬȮȰȲȺȻȽȾɁɃ-ɆɈɊɌɎͰͲͶͿΆΈ-ΊΌΎΏΑ-ΡΣ-ΫϏϒ-ϔϘϚϜϞϠϢϤϦϨϪϬϮϴϷϹϺϽ-ЯѠѢѤѦѨѪѬѮѰѲѴѶѸѺѼѾҀҊҌҎҐҒҔҖҘҚҜҞҠҢҤҦҨҪҬҮҰҲҴҶҸҺҼҾӀӁӃӅӇӉӋӍӐӒӔӖӘӚӜӞӠӢӤӦӨӪӬӮӰӲӴӶӸӺӼӾԀԂԄԆԈԊԌԎԐԒԔԖԘԚԜԞԠԢԤԦԨԪԬԮԱ-ՖႠ-ჅჇჍᎠ-ᏵᲐ-ᲺᲽ-ᲿḀḂḄḆḈḊḌḎḐḒḔḖḘḚḜḞḠḢḤḦḨḪḬḮḰḲḴḶḸḺḼḾṀṂṄṆṈṊṌṎṐṒṔṖṘṚṜṞṠṢṤṦṨṪṬṮṰṲṴṶṸṺṼṾẀẂẄẆẈẊẌẎẐẒẔẞẠẢẤẦẨẪẬẮẰẲẴẶẸẺẼẾỀỂỄỆỈỊỌỎỐỒỔỖỘỚỜỞỠỢỤỦỨỪỬỮỰỲỴỶỸỺỼỾἈ-ἏἘ-ἝἨ-ἯἸ-ἿὈ-ὍὙὛὝὟὨ-ὯᾸ-ΆῈ-ΉῘ-ΊῨ-ῬῸ-Ώℂℇℋ-ℍℐ-ℒℕℙ-ℝℤΩℨK-ℭℰ-ℳℾℿⅅↃⰀ-ⰯⱠⱢ-ⱤⱧⱩⱫⱭ-ⱰⱲⱵⱾ-ⲀⲂⲄⲆⲈⲊⲌⲎⲐⲒⲔⲖⲘⲚⲜⲞⲠⲢⲤⲦⲨⲪⲬⲮⲰⲲⲴⲶⲸⲺⲼⲾⳀⳂⳄⳆⳈⳊⳌⳎⳐⳒⳔⳖⳘⳚⳜⳞⳠⳢⳫⳭⳲꙀꙂꙄꙆꙈꙊꙌꙎꙐꙒꙔꙖꙘꙚꙜꙞꙠꙢꙤꙦꙨꙪꙬꚀꚂꚄꚆꚈꚊꚌꚎꚐꚒꚔꚖꚘꚚꜢꜤꜦꜨꜪꜬꜮꜲꜴꜶꜸꜺꜼꜾꝀꝂꝄꝆꝈꝊꝌꝎꝐꝒꝔꝖꝘꝚꝜꝞꝠꝢꝤꝦꝨꝪꝬꝮꝹꝻꝽꝾꞀꞂꞄꞆꞋꞍꞐꞒꞖꞘꞚꞜꞞꞠꞢꞤꞦꞨꞪ-ꞮꞰ-ꞴꞶꞸꞺꞼꞾꟀꟂꟄ-ꟇꟉꟐꟖꟘꟵA-Z",astral:"\ud801[\udc00-\udc27\udcb0-\udcd3\udd70-\udd7a\udd7c-\udd8a\udd8c-\udd92\udd94\udd95]|\ud803[\udc80-\udcb2]|\ud806[\udca0-\udcbf]|\ud81b[\ude40-\ude5f]|\ud835[\udc00-\udc19\udc34-\udc4d\udc68-\udc81\udc9c\udc9e\udc9f\udca2\udca5\udca6\udca9-\udcac\udcae-\udcb5\udcd0-\udce9\udd04\udd05\udd07-\udd0a\udd0d-\udd14\udd16-\udd1c\udd38\udd39\udd3b-\udd3e\udd40-\udd44\udd46\udd4a-\udd50\udd6c-\udd85\udda0-\uddb9\uddd4-\udded\ude08-\ude21\ude3c-\ude55\ude70-\ude89\udea8-\udec0\udee2-\udefa\udf1c-\udf34\udf56-\udf6e\udf90-\udfa8\udfca]|\ud83a[\udd00-\udd21]"},{name:"M",alias:"Mark",bmp:"̀-ͯ҃-҉֑-ׇֽֿׁׂׅׄؐ-ًؚ-ٰٟۖ-ۜ۟-۪ۤۧۨ-ܑۭܰ-݊ަ-ް߫-߽߳ࠖ-࠙ࠛ-ࠣࠥ-ࠧࠩ-࡙࠭-࡛࢘-࢟࣊-ࣣ࣡-ःऺ-़ा-ॏ॑-ॗॢॣঁ-ঃ়া-ৄেৈো-্ৗৢৣ৾ਁ-ਃ਼ਾ-ੂੇੈੋ-੍ੑੰੱੵઁ-ઃ઼ા-ૅે-ૉો-્ૢૣૺ-૿ଁ-ଃ଼ା-ୄେୈୋ-୍୕-ୗୢୣஂா-ூெ-ைொ-்ௗఀ-ఄ఼ా-ౄె-ైొ-్ౕౖౢౣಁ-ಃ಼ಾ-ೄೆ-ೈೊ-್ೕೖೢೣഀ-ഃ഻഼ാ-ൄെ-ൈൊ-്ൗൢൣඁ-ඃ්ා-ුූෘ-ෟෲෳัิ-ฺ็-๎ັິ-ຼ່-ໍ༹༘༙༵༷༾༿ཱ-྄྆྇ྍ-ྗྙ-ྼ࿆ါ-ှၖ-ၙၞ-ၠၢ-ၤၧ-ၭၱ-ၴႂ-ႍႏႚ-ႝ፝-፟ᜒ-᜕ᜲ-᜴ᝒᝓᝲᝳ឴-៓៝᠋-᠍᠏ᢅᢆᢩᤠ-ᤫᤰ-᤻ᨗ-ᨛᩕ-ᩞ᩠-᩿᩼᪰-ᫎᬀ-ᬄ᬴-᭄᭫-᭳ᮀ-ᮂᮡ-ᮭ᯦-᯳ᰤ-᰷᳐-᳔᳒-᳨᳭᳴᳷-᳹᷀-᷿⃐-⃰⳯-⵿⳱ⷠ-〪ⷿ-゙゚〯꙯-꙲ꙴ-꙽ꚞꚟ꛰꛱ꠂ꠆ꠋꠣ-ꠧ꠬ꢀꢁꢴ-ꣅ꣠-꣱ꣿꤦ-꤭ꥇ-꥓ꦀ-ꦃ꦳-꧀ꧥꨩ-ꨶꩃꩌꩍꩻ-ꩽꪰꪲ-ꪴꪷꪸꪾ꪿꫁ꫫ-ꫯꫵ꫶ꯣ-ꯪ꯬꯭ﬞ︀-️︠-︯",astral:"\ud800[\uddfd\udee0\udf76-\udf7a]|\ud802[\ude01-\ude03\ude05\ude06\ude0c-\ude0f\ude38-\ude3a\ude3f\udee5\udee6]|\ud803[\udd24-\udd27\udeab\udeac\udf46-\udf50\udf82-\udf85]|\ud804[\udc00-\udc02\udc38-\udc46\udc70\udc73\udc74\udc7f-\udc82\udcb0-\udcba\udcc2\udd00-\udd02\udd27-\udd34\udd45\udd46\udd73\udd80-\udd82\uddb3-\uddc0\uddc9-\uddcc\uddce\uddcf\ude2c-\ude37\ude3e\udedf-\udeea\udf00-\udf03\udf3b\udf3c\udf3e-\udf44\udf47\udf48\udf4b-\udf4d\udf57\udf62\udf63\udf66-\udf6c\udf70-\udf74]|\ud805[\udc35-\udc46\udc5e\udcb0-\udcc3\uddaf-\uddb5\uddb8-\uddc0\udddc\udddd\ude30-\ude40\udeab-\udeb7\udf1d-\udf2b]|\ud806[\udc2c-\udc3a\udd30-\udd35\udd37\udd38\udd3b-\udd3e\udd40\udd42\udd43\uddd1-\uddd7\uddda-\udde0\udde4\ude01-\ude0a\ude33-\ude39\ude3b-\ude3e\ude47\ude51-\ude5b\ude8a-\ude99]|\ud807[\udc2f-\udc36\udc38-\udc3f\udc92-\udca7\udca9-\udcb6\udd31-\udd36\udd3a\udd3c\udd3d\udd3f-\udd45\udd47\udd8a-\udd8e\udd90\udd91\udd93-\udd97\udef3-\udef6]|\ud81a[\udef0-\udef4\udf30-\udf36]|\ud81b[\udf4f\udf51-\udf87\udf8f-\udf92\udfe4\udff0\udff1]|\ud82f[\udc9d\udc9e]|\ud833[\udf00-\udf2d\udf30-\udf46]|\ud834[\udd65-\udd69\udd6d-\udd72\udd7b-\udd82\udd85-\udd8b\uddaa-\uddad\ude42-\ude44]|\ud836[\ude00-\ude36\ude3b-\ude6c\ude75\ude84\ude9b-\ude9f\udea1-\udeaf]|\ud838[\udc00-\udc06\udc08-\udc18\udc1b-\udc21\udc23\udc24\udc26-\udc2a\udd30-\udd36\udeae\udeec-\udeef]|\ud83a[\udcd0-\udcd6\udd44-\udd4a]|\udb40[\udd00-\uddef]"},{name:"Mc",alias:"Spacing_Mark",bmp:"ःऻा-ीॉ-ौॎॏংঃা-ীেৈোৌৗਃਾ-ੀઃા-ીૉોૌଂଃାୀେୈୋୌୗாிுூெ-ைொ-ௌௗఁ-ఃు-ౄಂಃಾೀ-ೄೇೈೊೋೕೖംഃാ-ീെ-ൈൊ-ൌൗංඃා-ෑෘ-ෟෲෳ༾༿ཿါာေးျြၖၗၢ-ၤၧ-ၭႃႄႇ-ႌႏႚ-ႜ᜕᜴ាើ-ៅះៈᤣ-ᤦᤩ-ᤫᤰᤱᤳ-ᤸᨙᨚᩕᩗᩡᩣᩤᩭ-ᩲᬄᬵᬻᬽ-ᭁᭃ᭄ᮂᮡᮦᮧ᮪ᯧᯪ-ᯬᯮ᯲᯳ᰤ-ᰫᰴᰵ᳡᳷〮〯ꠣꠤꠧꢀꢁꢴ-ꣃꥒ꥓ꦃꦴꦵꦺꦻꦾ-꧀ꨯꨰꨳꨴꩍꩻꩽꫫꫮꫯꫵꯣꯤꯦꯧꯩꯪ꯬",astral:"\ud804[\udc00\udc02\udc82\udcb0-\udcb2\udcb7\udcb8\udd2c\udd45\udd46\udd82\uddb3-\uddb5\uddbf\uddc0\uddce\ude2c-\ude2e\ude32\ude33\ude35\udee0-\udee2\udf02\udf03\udf3e\udf3f\udf41-\udf44\udf47\udf48\udf4b-\udf4d\udf57\udf62\udf63]|\ud805[\udc35-\udc37\udc40\udc41\udc45\udcb0-\udcb2\udcb9\udcbb-\udcbe\udcc1\uddaf-\uddb1\uddb8-\uddbb\uddbe\ude30-\ude32\ude3b\ude3c\ude3e\udeac\udeae\udeaf\udeb6\udf20\udf21\udf26]|\ud806[\udc2c-\udc2e\udc38\udd30-\udd35\udd37\udd38\udd3d\udd40\udd42\uddd1-\uddd3\udddc-\udddf\udde4\ude39\ude57\ude58\ude97]|\ud807[\udc2f\udc3e\udca9\udcb1\udcb4\udd8a-\udd8e\udd93\udd94\udd96\udef5\udef6]|\ud81b[\udf51-\udf87\udff0\udff1]|\ud834[\udd65\udd66\udd6d-\udd72]"},{name:"Me",alias:"Enclosing_Mark",bmp:"҈҉᪾⃝-⃠⃢-⃤꙰-꙲"},{name:"Mn",alias:"Nonspacing_Mark",bmp:"̀-ͯ҃-֑҇-ׇֽֿׁׂׅׄؐ-ًؚ-ٰٟۖ-ۜ۟-۪ۤۧۨ-ܑۭܰ-݊ަ-ް߫-߽߳ࠖ-࠙ࠛ-ࠣࠥ-ࠧࠩ-࡙࠭-࡛࢘-࢟࣊-ࣣ࣡-ंऺ़ु-ै्॑-ॗॢॣঁ়ু-ৄ্ৢৣ৾ਁਂ਼ੁੂੇੈੋ-੍ੑੰੱੵઁં઼ુ-ૅેૈ્ૢૣૺ-૿ଁ଼ିୁ-ୄ୍୕ୖୢୣஂீ்ఀఄ఼ా-ీె-ైొ-్ౕౖౢౣಁ಼ಿೆೌ್ೢೣഀഁ഻഼ു-ൄ്ൢൣඁ්ි-ුූัิ-ฺ็-๎ັິ-ຼ່-ໍཱ༹༘༙༵༷-ཾྀ-྄྆྇ྍ-ྗྙ-ྼ࿆ိ-ူဲ-့္်ွှၘၙၞ-ၠၱ-ၴႂႅႆႍႝ፝-፟ᜒ-᜔ᜲᜳᝒᝓᝲᝳ឴឵ិ-ួំ៉-៓៝᠋-᠍᠏ᢅᢆᢩᤠ-ᤢᤧᤨᤲ᤹-᤻ᨘᨗᨛᩖᩘ-ᩞ᩠ᩢᩥ-ᩬᩳ-᩿᩼᪰-᪽ᪿ-ᫎᬀ-ᬃ᬴ᬶ-ᬺᬼᭂ᭫-᭳ᮀᮁᮢ-ᮥᮨᮩ᮫-ᮭ᯦ᯨᯩᯭᯯ-ᯱᰬ-ᰳᰶ᰷᳐-᳔᳒-᳢᳠-᳨᳭᳴᳸᳹᷀-᷿⃐-⃥⃜⃡-⃰⳯-⵿⳱ⷠ-〪ⷿ-゙゚〭꙯ꙴ-꙽ꚞꚟ꛰꛱ꠂ꠆ꠋꠥꠦ꠬꣄ꣅ꣠-꣱ꣿꤦ-꤭ꥇ-ꥑꦀ-ꦂ꦳ꦶ-ꦹꦼꦽꧥꨩ-ꨮꨱꨲꨵꨶꩃꩌꩼꪰꪲ-ꪴꪷꪸꪾ꪿꫁ꫬꫭ꫶ꯥꯨ꯭ﬞ︀-️︠-︯",astral:"\ud800[\uddfd\udee0\udf76-\udf7a]|\ud802[\ude01-\ude03\ude05\ude06\ude0c-\ude0f\ude38-\ude3a\ude3f\udee5\udee6]|\ud803[\udd24-\udd27\udeab\udeac\udf46-\udf50\udf82-\udf85]|\ud804[\udc01\udc38-\udc46\udc70\udc73\udc74\udc7f-\udc81\udcb3-\udcb6\udcb9\udcba\udcc2\udd00-\udd02\udd27-\udd2b\udd2d-\udd34\udd73\udd80\udd81\uddb6-\uddbe\uddc9-\uddcc\uddcf\ude2f-\ude31\ude34\ude36\ude37\ude3e\udedf\udee3-\udeea\udf00\udf01\udf3b\udf3c\udf40\udf66-\udf6c\udf70-\udf74]|\ud805[\udc38-\udc3f\udc42-\udc44\udc46\udc5e\udcb3-\udcb8\udcba\udcbf\udcc0\udcc2\udcc3\uddb2-\uddb5\uddbc\uddbd\uddbf\uddc0\udddc\udddd\ude33-\ude3a\ude3d\ude3f\ude40\udeab\udead\udeb0-\udeb5\udeb7\udf1d-\udf1f\udf22-\udf25\udf27-\udf2b]|\ud806[\udc2f-\udc37\udc39\udc3a\udd3b\udd3c\udd3e\udd43\uddd4-\uddd7\uddda\udddb\udde0\ude01-\ude0a\ude33-\ude38\ude3b-\ude3e\ude47\ude51-\ude56\ude59-\ude5b\ude8a-\ude96\ude98\ude99]|\ud807[\udc30-\udc36\udc38-\udc3d\udc3f\udc92-\udca7\udcaa-\udcb0\udcb2\udcb3\udcb5\udcb6\udd31-\udd36\udd3a\udd3c\udd3d\udd3f-\udd45\udd47\udd90\udd91\udd95\udd97\udef3\udef4]|\ud81a[\udef0-\udef4\udf30-\udf36]|\ud81b[\udf4f\udf8f-\udf92\udfe4]|\ud82f[\udc9d\udc9e]|\ud833[\udf00-\udf2d\udf30-\udf46]|\ud834[\udd67-\udd69\udd7b-\udd82\udd85-\udd8b\uddaa-\uddad\ude42-\ude44]|\ud836[\ude00-\ude36\ude3b-\ude6c\ude75\ude84\ude9b-\ude9f\udea1-\udeaf]|\ud838[\udc00-\udc06\udc08-\udc18\udc1b-\udc21\udc23\udc24\udc26-\udc2a\udd30-\udd36\udeae\udeec-\udeef]|\ud83a[\udcd0-\udcd6\udd44-\udd4a]|\udb40[\udd00-\uddef]"},{name:"N",alias:"Number",bmp:"0-9²³¹¼-¾٠-٩۰-۹߀-߉०-९০-৯৴-৹੦-੯૦-૯୦-୯୲-୷௦-௲౦-౯౸-౾೦-೯൘-൞൦-൸෦-෯๐-๙໐-໙༠-༳၀-၉႐-႙፩-፼ᛮ-ᛰ០-៩៰-៹᠐-᠙᥆-᥏᧐-᧚᪀-᪉᪐-᪙᭐-᭙᮰-᮹᱀-᱉᱐-᱙⁰⁴-⁹₀-₉⅐-ↂↅ-↉①-⒛⓪-⓿❶-➓⳽〇〡-〩〸-〺㆒-㆕㈠-㈩㉈-㉏㉑-㉟㊀-㊉㊱-㊿꘠-꘩ꛦ-ꛯ꠰-꠵꣐-꣙꤀-꤉꧐-꧙꧰-꧹꩐-꩙꯰-꯹0-9",astral:"\ud800[\udd07-\udd33\udd40-\udd78\udd8a\udd8b\udee1-\udefb\udf20-\udf23\udf41\udf4a\udfd1-\udfd5]|\ud801[\udca0-\udca9]|\ud802[\udc58-\udc5f\udc79-\udc7f\udca7-\udcaf\udcfb-\udcff\udd16-\udd1b\uddbc\uddbd\uddc0-\uddcf\uddd2-\uddff\ude40-\ude48\ude7d\ude7e\ude9d-\ude9f\udeeb-\udeef\udf58-\udf5f\udf78-\udf7f\udfa9-\udfaf]|\ud803[\udcfa-\udcff\udd30-\udd39\ude60-\ude7e\udf1d-\udf26\udf51-\udf54\udfc5-\udfcb]|\ud804[\udc52-\udc6f\udcf0-\udcf9\udd36-\udd3f\uddd0-\uddd9\udde1-\uddf4\udef0-\udef9]|\ud805[\udc50-\udc59\udcd0-\udcd9\ude50-\ude59\udec0-\udec9\udf30-\udf3b]|\ud806[\udce0-\udcf2\udd50-\udd59]|\ud807[\udc50-\udc6c\udd50-\udd59\udda0-\udda9\udfc0-\udfd4]|\ud809[\udc00-\udc6e]|\ud81a[\ude60-\ude69\udec0-\udec9\udf50-\udf59\udf5b-\udf61]|\ud81b[\ude80-\ude96]|\ud834[\udee0-\udef3\udf60-\udf78]|\ud835[\udfce-\udfff]|\ud838[\udd40-\udd49\udef0-\udef9]|\ud83a[\udcc7-\udccf\udd50-\udd59]|\ud83b[\udc71-\udcab\udcad-\udcaf\udcb1-\udcb4\udd01-\udd2d\udd2f-\udd3d]|\ud83c[\udd00-\udd0c]|\ud83e[\udff0-\udff9]"},{name:"Nd",alias:"Decimal_Number",bmp:"0-9٠-٩۰-۹߀-߉०-९০-৯੦-੯૦-૯୦-୯௦-௯౦-౯೦-೯൦-൯෦-෯๐-๙໐-໙༠-༩၀-၉႐-႙០-៩᠐-᠙᥆-᥏᧐-᧙᪀-᪉᪐-᪙᭐-᭙᮰-᮹᱀-᱉᱐-᱙꘠-꘩꣐-꣙꤀-꤉꧐-꧙꧰-꧹꩐-꩙꯰-꯹0-9",astral:"\ud801[\udca0-\udca9]|\ud803[\udd30-\udd39]|\ud804[\udc66-\udc6f\udcf0-\udcf9\udd36-\udd3f\uddd0-\uddd9\udef0-\udef9]|\ud805[\udc50-\udc59\udcd0-\udcd9\ude50-\ude59\udec0-\udec9\udf30-\udf39]|\ud806[\udce0-\udce9\udd50-\udd59]|\ud807[\udc50-\udc59\udd50-\udd59\udda0-\udda9]|\ud81a[\ude60-\ude69\udec0-\udec9\udf50-\udf59]|\ud835[\udfce-\udfff]|\ud838[\udd40-\udd49\udef0-\udef9]|\ud83a[\udd50-\udd59]|\ud83e[\udff0-\udff9]"},{name:"Nl",alias:"Letter_Number",bmp:"ᛮ-ᛰⅠ-ↂↅ-ↈ〇〡-〩〸-〺ꛦ-ꛯ",astral:"\ud800[\udd40-\udd74\udf41\udf4a\udfd1-\udfd5]|\ud809[\udc00-\udc6e]"},{name:"No",alias:"Other_Number",bmp:"²³¹¼-¾৴-৹୲-୷௰-௲౸-౾൘-൞൰-൸༪-༳፩-፼៰-៹᧚⁰⁴-⁹₀-₉⅐-⅟↉①-⒛⓪-⓿❶-➓⳽㆒-㆕㈠-㈩㉈-㉏㉑-㉟㊀-㊉㊱-㊿꠰-꠵",astral:"\ud800[\udd07-\udd33\udd75-\udd78\udd8a\udd8b\udee1-\udefb\udf20-\udf23]|\ud802[\udc58-\udc5f\udc79-\udc7f\udca7-\udcaf\udcfb-\udcff\udd16-\udd1b\uddbc\uddbd\uddc0-\uddcf\uddd2-\uddff\ude40-\ude48\ude7d\ude7e\ude9d-\ude9f\udeeb-\udeef\udf58-\udf5f\udf78-\udf7f\udfa9-\udfaf]|\ud803[\udcfa-\udcff\ude60-\ude7e\udf1d-\udf26\udf51-\udf54\udfc5-\udfcb]|\ud804[\udc52-\udc65\udde1-\uddf4]|\ud805[\udf3a\udf3b]|\ud806[\udcea-\udcf2]|\ud807[\udc5a-\udc6c\udfc0-\udfd4]|\ud81a[\udf5b-\udf61]|\ud81b[\ude80-\ude96]|\ud834[\udee0-\udef3\udf60-\udf78]|\ud83a[\udcc7-\udccf]|\ud83b[\udc71-\udcab\udcad-\udcaf\udcb1-\udcb4\udd01-\udd2d\udd2f-\udd3d]|\ud83c[\udd00-\udd0c]"},{name:"P",alias:"Punctuation",bmp:"!-#%-\\*,-\\/:;\\?@\\[-\\]_\\{\\}¡§«¶·»¿;·՚-՟։֊־׀׃׆׳״؉؊،؍؛؝-؟٪-٭۔܀-܍߷-߹࠰-࠾࡞।॥॰৽੶૰౷಄෴๏๚๛༄-༒༔༺-༽྅࿐-࿔࿙࿚၊-၏჻፠-፨᐀᙮᚛᚜᛫-᛭᜵᜶។-៖៘-៚᠀-᠊᥄᥅᨞᨟᪠-᪦᪨-᪭᭚-᭠᭽᭾᯼-᯿᰻-᰿᱾᱿᳀-᳇᳓‐-‧‰-⁃⁅-⁑⁓-⁞⁽⁾₍₎⌈-⌋〈〉❨-❵⟅⟆⟦-⟯⦃-⦘⧘-⧛⧼⧽⳹-⳼⳾⳿⵰⸀-⸮⸰-⹏⹒-⹝、-〃〈-】〔-〟〰〽゠・꓾꓿꘍-꘏꙳꙾꛲-꛷꡴-꡷꣎꣏꣸-꣺꣼꤮꤯꥟꧁-꧍꧞꧟꩜-꩟꫞꫟꫰꫱꯫﴾﴿︐-︙︰-﹒﹔-﹡﹣﹨﹪﹫!-#%-*,-/:;?@[-]_{}⦅-・",astral:"\ud800[\udd00-\udd02\udf9f\udfd0]|𐕯|\ud802[\udc57\udd1f\udd3f\ude50-\ude58\ude7f\udef0-\udef6\udf39-\udf3f\udf99-\udf9c]|\ud803[\udead\udf55-\udf59\udf86-\udf89]|\ud804[\udc47-\udc4d\udcbb\udcbc\udcbe-\udcc1\udd40-\udd43\udd74\udd75\uddc5-\uddc8\uddcd\udddb\udddd-\udddf\ude38-\ude3d\udea9]|\ud805[\udc4b-\udc4f\udc5a\udc5b\udc5d\udcc6\uddc1-\uddd7\ude41-\ude43\ude60-\ude6c\udeb9\udf3c-\udf3e]|\ud806[\udc3b\udd44-\udd46\udde2\ude3f-\ude46\ude9a-\ude9c\ude9e-\udea2]|\ud807[\udc41-\udc45\udc70\udc71\udef7\udef8\udfff]|\ud809[\udc70-\udc74]|\ud80b[\udff1\udff2]|\ud81a[\ude6e\ude6f\udef5\udf37-\udf3b\udf44]|\ud81b[\ude97-\ude9a\udfe2]|𛲟|\ud836[\ude87-\ude8b]|\ud83a[\udd5e\udd5f]"},{name:"Pc",alias:"Connector_Punctuation",bmp:"_‿⁀⁔︳︴﹍-﹏_"},{name:"Pd",alias:"Dash_Punctuation",bmp:"\\-֊־᐀᠆‐-―⸗⸚⸺⸻⹀⹝〜〰゠︱︲﹘﹣-",astral:"𐺭"},{name:"Pe",alias:"Close_Punctuation",bmp:"\\)\\]\\}༻༽᚜⁆⁾₎⌉⌋〉❩❫❭❯❱❳❵⟆⟧⟩⟫⟭⟯⦄⦆⦈⦊⦌⦎⦐⦒⦔⦖⦘⧙⧛⧽⸣⸥⸧⸩⹖⹘⹚⹜〉》」』】〕〗〙〛〞〟﴾︘︶︸︺︼︾﹀﹂﹄﹈﹚﹜﹞)]}⦆」"},{name:"Pf",alias:"Final_Punctuation",bmp:"»’”›⸃⸅⸊⸍⸝⸡"},{name:"Pi",alias:"Initial_Punctuation",bmp:"«‘‛“‟‹⸂⸄⸉⸌⸜⸠"},{name:"Po",alias:"Other_Punctuation",bmp:"!-#%-'\\*,\\.\\/:;\\?@\\¡§¶·¿;·՚-՟։׀׃׆׳״؉؊،؍؛؝-؟٪-٭۔܀-܍߷-߹࠰-࠾࡞।॥॰৽੶૰౷಄෴๏๚๛༄-༒༔྅࿐-࿔࿙࿚၊-၏჻፠-፨᙮᛫-᛭᜵᜶។-៖៘-៚᠀-᠅᠇-᠊᥄᥅᨞᨟᪠-᪦᪨-᪭᭚-᭠᭽᭾᯼-᯿᰻-᰿᱾᱿᳀-᳇᳓‖‗†-‧‰-‸※-‾⁁-⁃⁇-⁑⁓⁕-⁞⳹-⳼⳾⳿⵰⸀⸁⸆-⸈⸋⸎-⸖⸘⸙⸛⸞⸟⸪-⸮⸰-⸹⸼-⸿⹁⹃-⹏⹒-⹔、-〃〽・꓾꓿꘍-꘏꙳꙾꛲-꛷꡴-꡷꣎꣏꣸-꣺꣼꤮꤯꥟꧁-꧍꧞꧟꩜-꩟꫞꫟꫰꫱꯫︐-︖︙︰﹅﹆﹉-﹌﹐-﹒﹔-﹗﹟-﹡﹨﹪﹫!-#%-'*,./:;?@\。、・",astral:"\ud800[\udd00-\udd02\udf9f\udfd0]|𐕯|\ud802[\udc57\udd1f\udd3f\ude50-\ude58\ude7f\udef0-\udef6\udf39-\udf3f\udf99-\udf9c]|\ud803[\udf55-\udf59\udf86-\udf89]|\ud804[\udc47-\udc4d\udcbb\udcbc\udcbe-\udcc1\udd40-\udd43\udd74\udd75\uddc5-\uddc8\uddcd\udddb\udddd-\udddf\ude38-\ude3d\udea9]|\ud805[\udc4b-\udc4f\udc5a\udc5b\udc5d\udcc6\uddc1-\uddd7\ude41-\ude43\ude60-\ude6c\udeb9\udf3c-\udf3e]|\ud806[\udc3b\udd44-\udd46\udde2\ude3f-\ude46\ude9a-\ude9c\ude9e-\udea2]|\ud807[\udc41-\udc45\udc70\udc71\udef7\udef8\udfff]|\ud809[\udc70-\udc74]|\ud80b[\udff1\udff2]|\ud81a[\ude6e\ude6f\udef5\udf37-\udf3b\udf44]|\ud81b[\ude97-\ude9a\udfe2]|𛲟|\ud836[\ude87-\ude8b]|\ud83a[\udd5e\udd5f]"},{name:"Ps",alias:"Open_Punctuation",bmp:"\\(\\[\\{༺༼᚛‚„⁅⁽₍⌈⌊〈❨❪❬❮❰❲❴⟅⟦⟨⟪⟬⟮⦃⦅⦇⦉⦋⦍⦏⦑⦓⦕⦗⧘⧚⧼⸢⸤⸦⸨⹂⹕⹗⹙⹛〈《「『【〔〖〘〚〝﴿︗︵︷︹︻︽︿﹁﹃﹇﹙﹛﹝([{⦅「"},{name:"S",alias:"Symbol",bmp:"\\$\\+<->\\^`\\|~¢-¦¨©¬®-±´¸×÷˂-˅˒-˟˥-˫˭˯-˿͵΄΅϶҂֍-֏؆-؈؋؎؏۞۩۽۾߶߾߿࢈৲৳৺৻૱୰௳-௺౿൏൹฿༁-༃༓༕-༗༚-༟༴༶༸྾-࿅࿇-࿌࿎࿏࿕-࿘႞႟᎐-᎙᙭៛᥀᧞-᧿᭡-᭪᭴-᭼᾽᾿-῁῍-῏῝-῟῭-`´῾⁄⁒⁺-⁼₊-₌₠-⃀℀℁℃-℆℈℉℔№-℘℞-℣℥℧℩℮℺℻⅀-⅄⅊-⅍⅏↊↋←-⌇⌌-⌨⌫-␦⑀-⑊⒜-ⓩ─-❧➔-⟄⟇-⟥⟰-⦂⦙-⧗⧜-⧻⧾-⭳⭶-⮕⮗-⯿⳥-⳪⹐⹑⺀-⺙⺛-⻳⼀-⿕⿰-⿻〄〒〓〠〶〷〾〿゛゜㆐㆑㆖-㆟㇀-㇣㈀-㈞㈪-㉇㉐㉠-㉿㊊-㊰㋀-㏿䷀-䷿꒐-꓆꜀-꜖꜠꜡꞉꞊꠨-꠫꠶-꠹꩷-꩹꭛꭪꭫﬩﮲-﯂﵀-﵏﷏﷼-﷿﹢﹤-﹦﹩$+<->^`|~¢-₩│-○�",astral:"\ud800[\udd37-\udd3f\udd79-\udd89\udd8c-\udd8e\udd90-\udd9c\udda0\uddd0-\uddfc]|\ud802[\udc77\udc78\udec8]|𑜿|\ud807[\udfd5-\udff1]|\ud81a[\udf3c-\udf3f\udf45]|𛲜|\ud833[\udf50-\udfc3]|\ud834[\udc00-\udcf5\udd00-\udd26\udd29-\udd64\udd6a-\udd6c\udd83\udd84\udd8c-\udda9\uddae-\uddea\ude00-\ude41\ude45\udf00-\udf56]|\ud835[\udec1\udedb\udefb\udf15\udf35\udf4f\udf6f\udf89\udfa9\udfc3]|\ud836[\udc00-\uddff\ude37-\ude3a\ude6d-\ude74\ude76-\ude83\ude85\ude86]|\ud838[\udd4f\udeff]|\ud83b[\udcac\udcb0\udd2e\udef0\udef1]|\ud83c[\udc00-\udc2b\udc30-\udc93\udca0-\udcae\udcb1-\udcbf\udcc1-\udccf\udcd1-\udcf5\udd0d-\uddad\udde6-\ude02\ude10-\ude3b\ude40-\ude48\ude50\ude51\ude60-\ude65\udf00-\udfff]|\ud83d[\udc00-\uded7\udedd-\udeec\udef0-\udefc\udf00-\udf73\udf80-\udfd8\udfe0-\udfeb\udff0]|\ud83e[\udc00-\udc0b\udc10-\udc47\udc50-\udc59\udc60-\udc87\udc90-\udcad\udcb0\udcb1\udd00-\ude53\ude60-\ude6d\ude70-\ude74\ude78-\ude7c\ude80-\ude86\ude90-\udeac\udeb0-\udeba\udec0-\udec5\uded0-\uded9\udee0-\udee7\udef0-\udef6\udf00-\udf92\udf94-\udfca]"},{name:"Sc",alias:"Currency_Symbol",bmp:"\\$¢-¥֏؋߾߿৲৳৻૱௹฿៛₠-⃀꠸﷼﹩$¢£¥₩",astral:"\ud807[\udfdd-\udfe0]|𞋿|𞲰"},{name:"Sk",alias:"Modifier_Symbol",bmp:"\\^`¨¯´¸˂-˅˒-˟˥-˫˭˯-˿͵΄΅࢈᾽᾿-῁῍-῏῝-῟῭-`´῾゛゜꜀-꜖꜠꜡꞉꞊꭛꭪꭫﮲-﯂^` ̄",astral:"\ud83c[\udffb-\udfff]"},{name:"Sm",alias:"Math_Symbol",bmp:"\\+<->\\|~¬±×÷϶؆-؈⁄⁒⁺-⁼₊-₌℘⅀-⅄⅋←-↔↚↛↠↣↦↮⇎⇏⇒⇔⇴-⋿⌠⌡⍼⎛-⎳⏜-⏡▷◁◸-◿♯⟀-⟄⟇-⟥⟰-⟿⤀-⦂⦙-⧗⧜-⧻⧾-⫿⬰-⭄⭇-⭌﬩﹢﹤-﹦+<->|~¬←-↓",astral:"\ud835[\udec1\udedb\udefb\udf15\udf35\udf4f\udf6f\udf89\udfa9\udfc3]|\ud83b[\udef0\udef1]"},{name:"So",alias:"Other_Symbol",bmp:"¦©®°҂֍֎؎؏۞۩۽۾߶৺୰௳-௸௺౿൏൹༁-༃༓༕-༗༚-༟༴༶༸྾-࿅࿇-࿌࿎࿏࿕-࿘႞႟᎐-᎙᙭᥀᧞-᧿᭡-᭪᭴-᭼℀℁℃-℆℈℉℔№℗℞-℣℥℧℩℮℺℻⅊⅌⅍⅏↊↋↕-↙↜-↟↡↢↤↥↧-↭↯-⇍⇐⇑⇓⇕-⇳⌀-⌇⌌-⌟⌢-⌨⌫-⍻⍽-⎚⎴-⏛⏢-␦⑀-⑊⒜-ⓩ─-▶▸-◀◂-◷☀-♮♰-❧➔-➿⠀-⣿⬀-⬯⭅⭆⭍-⭳⭶-⮕⮗-⯿⳥-⳪⹐⹑⺀-⺙⺛-⻳⼀-⿕⿰-⿻〄〒〓〠〶〷〾〿㆐㆑㆖-㆟㇀-㇣㈀-㈞㈪-㉇㉐㉠-㉿㊊-㊰㋀-㏿䷀-䷿꒐-꓆꠨-꠫꠶꠷꠹꩷-꩹﵀-﵏﷏﷽-﷿¦│■○�",astral:"\ud800[\udd37-\udd3f\udd79-\udd89\udd8c-\udd8e\udd90-\udd9c\udda0\uddd0-\uddfc]|\ud802[\udc77\udc78\udec8]|𑜿|\ud807[\udfd5-\udfdc\udfe1-\udff1]|\ud81a[\udf3c-\udf3f\udf45]|𛲜|\ud833[\udf50-\udfc3]|\ud834[\udc00-\udcf5\udd00-\udd26\udd29-\udd64\udd6a-\udd6c\udd83\udd84\udd8c-\udda9\uddae-\uddea\ude00-\ude41\ude45\udf00-\udf56]|\ud836[\udc00-\uddff\ude37-\ude3a\ude6d-\ude74\ude76-\ude83\ude85\ude86]|𞅏|\ud83b[\udcac\udd2e]|\ud83c[\udc00-\udc2b\udc30-\udc93\udca0-\udcae\udcb1-\udcbf\udcc1-\udccf\udcd1-\udcf5\udd0d-\uddad\udde6-\ude02\ude10-\ude3b\ude40-\ude48\ude50\ude51\ude60-\ude65\udf00-\udffa]|\ud83d[\udc00-\uded7\udedd-\udeec\udef0-\udefc\udf00-\udf73\udf80-\udfd8\udfe0-\udfeb\udff0]|\ud83e[\udc00-\udc0b\udc10-\udc47\udc50-\udc59\udc60-\udc87\udc90-\udcad\udcb0\udcb1\udd00-\ude53\ude60-\ude6d\ude70-\ude74\ude78-\ude7c\ude80-\ude86\ude90-\udeac\udeb0-\udeba\udec0-\udec5\uded0-\uded9\udee0-\udee7\udef0-\udef6\udf00-\udf92\udf94-\udfca]"},{name:"Z",alias:"Separator",bmp:"   - \u2028\u2029   "},{name:"Zl",alias:"Line_Separator",bmp:"\u2028"},{name:"Zp",alias:"Paragraph_Separator",bmp:"\u2029"},{name:"Zs",alias:"Space_Separator",bmp:"   -    "}]},{}]},{},[3])(3)})); diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/404.html b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/404.html new file mode 100644 index 0000000000..19f07492cb --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/404.html @@ -0,0 +1,12 @@ +{% extends "admin/base_site.html" %} +{% load i18n %} + +{% block title %}{% translate 'Page not found' %}{% endblock %} + +{% block content %} + +<h2>{% translate 'Page not found' %}</h2> + +<p>{% translate 'We’re sorry, but the requested page could not be found.' %}</p> + +{% endblock %} diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/500.html b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/500.html new file mode 100644 index 0000000000..b5ac5c3b6c --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/500.html @@ -0,0 +1,17 @@ +{% extends "admin/base_site.html" %} +{% load i18n %} + +{% block breadcrumbs %} +<div class="breadcrumbs"> +<a href="{% url 'admin:index' %}">{% translate 'Home' %}</a> +› {% translate 'Server error' %} +</div> +{% endblock %} + +{% block title %}{% translate 'Server error (500)' %}{% endblock %} + +{% block content %} +<h1>{% translate 'Server Error <em>(500)</em>' %}</h1> +<p>{% translate 'There’s been an error. It’s been reported to the site administrators via email and should be fixed shortly. Thanks for your patience.' %}</p> + +{% endblock %} diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/actions.html b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/actions.html new file mode 100644 index 0000000000..ca1327c6d5 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/actions.html @@ -0,0 +1,23 @@ +{% load i18n %} +<div class="actions"> + {% block actions %} + {% block actions-form %} + {% for field in action_form %}{% if field.label %}<label>{{ field.label }} {{ field }}</label>{% else %}{{ field }}{% endif %}{% endfor %} + {% endblock %} + {% block actions-submit %} + <button type="submit" class="button" title="{% translate "Run the selected action" %}" name="index" value="{{ action_index|default:0 }}">{% translate "Go" %}</button> + {% endblock %} + {% block actions-counter %} + {% if actions_selection_counter %} + <span class="action-counter" data-actions-icnt="{{ cl.result_list|length }}">{{ selection_note }}</span> + {% if cl.result_count != cl.result_list|length %} + <span class="all hidden">{{ selection_note_all }}</span> + <span class="question hidden"> + <a href="#" title="{% translate "Click here to select the objects across all pages" %}">{% blocktranslate with cl.result_count as total_count %}Select all {{ total_count }} {{ module_name }}{% endblocktranslate %}</a> + </span> + <span class="clear hidden"><a href="#">{% translate "Clear selection" %}</a></span> + {% endif %} + {% endif %} + {% endblock %} + {% endblock %} +</div> diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/app_index.html b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/app_index.html new file mode 100644 index 0000000000..727f72b190 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/app_index.html @@ -0,0 +1,20 @@ +{% extends "admin/index.html" %} +{% load i18n %} + +{% block bodyclass %}{{ block.super }} app-{{ app_label }}{% endblock %} + +{% if not is_popup %} +{% block nav-breadcrumbs %} + <nav aria-label="{% translate 'Breadcrumbs' %}"> + <div class="breadcrumbs"> + <a href="{% url 'admin:index' %}">{% translate 'Home' %}</a> + › + {% for app in app_list %} + {{ app.name }} + {% endfor %} + </div> + </nav> +{% endblock %} +{% endif %} + +{% block sidebar %}{% endblock %} diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/app_list.html b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/app_list.html new file mode 100644 index 0000000000..3b67b5feab --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/app_list.html @@ -0,0 +1,44 @@ +{% load i18n %} + +{% if app_list %} + {% for app in app_list %} + <div class="app-{{ app.app_label }} module{% if app.app_url in request.path|urlencode %} current-app{% endif %}"> + <table> + <caption> + <a href="{{ app.app_url }}" class="section" title="{% blocktranslate with name=app.name %}Models in the {{ name }} application{% endblocktranslate %}">{{ app.name }}</a> + </caption> + {% for model in app.models %} + {% with model_name=model.object_name|lower %} + <tr class="model-{{ model_name }}{% if model.admin_url in request.path|urlencode %} current-model{% endif %}"> + <th scope="row" id="{{ app.app_label }}-{{ model_name }}"> + {% if model.admin_url %} + <a href="{{ model.admin_url }}"{% if model.admin_url in request.path|urlencode %} aria-current="page"{% endif %}>{{ model.name }}</a> + {% else %} + {{ model.name }} + {% endif %} + </th> + + {% if model.add_url %} + <td><a href="{{ model.add_url }}" class="addlink" aria-describedby="{{ app.app_label }}-{{ model_name }}">{% translate 'Add' %}</a></td> + {% else %} + <td></td> + {% endif %} + + {% if model.admin_url and show_changelinks %} + {% if model.view_only %} + <td><a href="{{ model.admin_url }}" class="viewlink" aria-describedby="{{ app.app_label }}-{{ model_name }}">{% translate 'View' %}</a></td> + {% else %} + <td><a href="{{ model.admin_url }}" class="changelink" aria-describedby="{{ app.app_label }}-{{ model_name }}">{% translate 'Change' %}</a></td> + {% endif %} + {% elif show_changelinks %} + <td></td> + {% endif %} + </tr> + {% endwith %} + {% endfor %} + </table> + </div> + {% endfor %} +{% else %} + <p>{% translate 'You don’t have permission to view or edit anything.' %}</p> +{% endif %} diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/auth/user/add_form.html b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/auth/user/add_form.html new file mode 100644 index 0000000000..48406f11a2 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/auth/user/add_form.html @@ -0,0 +1,18 @@ +{% extends "admin/change_form.html" %} +{% load i18n static %} + +{% block form_top %} + {% if not is_popup %} + <p>{% translate 'First, enter a username and password. Then, you’ll be able to edit more user options.' %}</p> + {% else %} + <p>{% translate "Enter a username and password." %}</p> + {% endif %} +{% endblock %} +{% block extrahead %} + {{ block.super }} + <link rel="stylesheet" href="{% static 'admin/css/unusable_password_field.css' %}"> +{% endblock %} +{% block admin_change_form_document_ready %} + {{ block.super }} + <script src="{% static 'admin/js/unusable_password_field.js' %}" defer></script> +{% endblock %} diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/auth/user/change_password.html b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/auth/user/change_password.html new file mode 100644 index 0000000000..6801fe5fa7 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/auth/user/change_password.html @@ -0,0 +1,80 @@ +{% extends "admin/base_site.html" %} +{% load i18n static %} +{% load admin_urls %} + +{% block extrastyle %} + {{ block.super }} + <link rel="stylesheet" href="{% static "admin/css/forms.css" %}"> + <link rel="stylesheet" href="{% static 'admin/css/unusable_password_field.css' %}"> +{% endblock %} +{% block bodyclass %}{{ block.super }} {{ opts.app_label }}-{{ opts.model_name }} change-form{% endblock %} +{% if not is_popup %} +{% block breadcrumbs %} +<div class="breadcrumbs"> +<a href="{% url 'admin:index' %}">{% translate 'Home' %}</a> +› <a href="{% url 'admin:app_list' app_label=opts.app_label %}">{{ opts.app_config.verbose_name }}</a> +› <a href="{% url opts|admin_urlname:'changelist' %}">{{ opts.verbose_name_plural|capfirst }}</a> +› <a href="{% url opts|admin_urlname:'change' original.pk|admin_urlquote %}">{{ original|truncatewords:"18" }}</a> +› {% if form.user.has_usable_password %}{% translate 'Change password' %}{% else %}{% translate 'Set password' %}{% endif %} +</div> +{% endblock %} +{% endif %} +{% block content %}<div id="content-main"> +<form{% if form_url %} action="{{ form_url }}"{% endif %} method="post" id="{{ opts.model_name }}_form">{% csrf_token %}{% block form_top %}{% endblock %} +<input type="text" name="username" value="{{ original.get_username }}" class="hidden"> +<div> +{% if is_popup %}<input type="hidden" name="{{ is_popup_var }}" value="1">{% endif %} +{% if form.errors %} + <p class="errornote"> + {% blocktranslate count counter=form.errors.items|length %}Please correct the error below.{% plural %}Please correct the errors below.{% endblocktranslate %} + </p> +{% endif %} + +<p>{% blocktranslate with username=original %}Enter a new password for the user <strong>{{ username }}</strong>.{% endblocktranslate %}</p> +{% if not form.user.has_usable_password %} + <p>{% blocktranslate %}This action will <strong>enable</strong> password-based authentication for this user.{% endblocktranslate %}</p> +{% endif %} + +<fieldset class="module aligned"> + +<div class="form-row"> + {{ form.usable_password.errors }} + <div class="flex-container">{{ form.usable_password.label_tag }} {{ form.usable_password }}</div> + {% if form.usable_password.help_text %} + <div class="help"{% if form.usable_password.id_for_label %} id="{{ form.usable_password.id_for_label }}_helptext"{% endif %}> + <p>{{ form.usable_password.help_text|safe }}</p> + </div> + {% endif %} +</div> + +<div class="form-row field-password1"> + {{ form.password1.errors }} + <div class="flex-container">{{ form.password1.label_tag }} {{ form.password1 }}</div> + {% if form.password1.help_text %} + <div class="help"{% if form.password1.id_for_label %} id="{{ form.password1.id_for_label }}_helptext"{% endif %}>{{ form.password1.help_text|safe }}</div> + {% endif %} +</div> + +<div class="form-row field-password2"> + {{ form.password2.errors }} + <div class="flex-container">{{ form.password2.label_tag }} {{ form.password2 }}</div> + {% if form.password2.help_text %} + <div class="help"{% if form.password2.id_for_label %} id="{{ form.password2.id_for_label }}_helptext"{% endif %}>{{ form.password2.help_text|safe }}</div> + {% endif %} +</div> + +</fieldset> + +<div class="submit-row"> + {% if form.user.has_usable_password %} + <input type="submit" name="set-password" value="{% translate 'Change password' %}" class="default set-password"> + <input type="submit" name="unset-password" value="{% translate 'Disable password-based authentication' %}" class="unset-password"> + {% else %} + <input type="submit" name="set-password" value="{% translate 'Enable password-based authentication' %}" class="default set-password"> + {% endif %} +</div> + +</div> +</form></div> +<script src="{% static 'admin/js/unusable_password_field.js' %}" defer></script> +{% endblock %} diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/base.html b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/base.html new file mode 100644 index 0000000000..f01a7ab61c --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/base.html @@ -0,0 +1,125 @@ +{% load i18n static %}<!DOCTYPE html> +{% get_current_language as LANGUAGE_CODE %}{% get_current_language_bidi as LANGUAGE_BIDI %} +<html lang="{{ LANGUAGE_CODE|default:"en-us" }}" dir="{{ LANGUAGE_BIDI|yesno:'rtl,ltr,auto' }}"> +<head> +<title>{% block title %}{% endblock %} + +{% block dark-mode-vars %} + + +{% endblock %} +{% if not is_popup and is_nav_sidebar_enabled %} + + +{% endif %} +{% block extrastyle %}{% endblock %} +{% if LANGUAGE_BIDI %}{% endif %} +{% block extrahead %}{% endblock %} +{% block responsive %} + + + {% if LANGUAGE_BIDI %}{% endif %} +{% endblock %} +{% block blockbots %}{% endblock %} + + + +{% translate 'Skip to main content' %} + +

      + + {% if not is_popup %} + + {% block header %} + + {% endblock %} + + {% block nav-breadcrumbs %} + + {% endblock %} + {% endif %} + +
      + {% if not is_popup and is_nav_sidebar_enabled %} + {% block nav-sidebar %} + {% include "admin/nav_sidebar.html" %} + {% endblock %} + {% endif %} +
      + {% block messages %} + {% if messages %} +
        {% for message in messages %} + {{ message|capfirst }} + {% endfor %}
      + {% endif %} + {% endblock messages %} + +
      + {% block pretitle %}{% endblock %} + {% block content_title %}{% if title %}

      {{ title }}

      {% endif %}{% endblock %} + {% block content_subtitle %}{% if subtitle %}

      {{ subtitle }}

      {% endif %}{% endblock %} + {% block content %} + {% block object-tools %}{% endblock %} + {{ content }} + {% endblock %} + {% block sidebar %}{% endblock %} +
      +
      + +
      +
      +
      {% block footer %}{% endblock %}
      +
      + + + + + + + + + + + diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/base_site.html b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/base_site.html new file mode 100644 index 0000000000..4405998164 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/base_site.html @@ -0,0 +1,12 @@ +{% extends "admin/base.html" %} + +{% block title %}{% if subtitle %}{{ subtitle }} | {% endif %}{{ title }} | {{ site_title|default:_('Django site admin') }}{% endblock %} + +{% block branding %} + +{% if user.is_anonymous %} + {% include "admin/color_theme_toggle.html" %} +{% endif %} +{% endblock %} + +{% block nav-global %}{% endblock %} diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/change_form.html b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/change_form.html new file mode 100644 index 0000000000..31ff5d6c10 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/change_form.html @@ -0,0 +1,81 @@ +{% extends "admin/base_site.html" %} +{% load i18n admin_urls static admin_modify %} + +{% block extrahead %}{{ block.super }} + +{{ media }} +{% endblock %} + +{% block extrastyle %}{{ block.super }}{% endblock %} + +{% block coltype %}colM{% endblock %} + +{% block bodyclass %}{{ block.super }} app-{{ opts.app_label }} model-{{ opts.model_name }} change-form{% endblock %} + +{% if not is_popup %} +{% block breadcrumbs %} + +{% endblock %} +{% endif %} + +{% block content %}
      +{% block object-tools %} +{% if change and not is_popup %} +
        + {% block object-tools-items %} + {% change_form_object_tools %} + {% endblock %} +
      +{% endif %} +{% endblock %} +
      {% csrf_token %}{% block form_top %}{% endblock %} +
      +{% if is_popup %}{% endif %} +{% if to_field %}{% endif %} +{% if save_on_top %}{% block submit_buttons_top %}{% submit_row %}{% endblock %}{% endif %} +{% if errors %} +

      + {% blocktranslate count counter=errors|length %}Please correct the error below.{% plural %}Please correct the errors below.{% endblocktranslate %} +

      + {{ adminform.form.non_field_errors }} +{% endif %} + +{% block field_sets %} +{% for fieldset in adminform %} + {% include "admin/includes/fieldset.html" with heading_level=2 id_suffix=forloop.counter0 %} +{% endfor %} +{% endblock %} + +{% block after_field_sets %}{% endblock %} + +{% block inline_field_sets %} +{% for inline_admin_formset in inline_admin_formsets %} + {% include inline_admin_formset.opts.template %} +{% endfor %} +{% endblock %} + +{% block after_related_objects %}{% endblock %} + +{% block submit_buttons_bottom %}{% submit_row %}{% endblock %} + +{% block admin_change_form_document_ready %} + +{% endblock %} + +{# JavaScript for prepopulated fields #} +{% prepopulated_fields_js %} + +
      +
      +{% endblock %} diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/change_form_object_tools.html b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/change_form_object_tools.html new file mode 100644 index 0000000000..067ae83761 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/change_form_object_tools.html @@ -0,0 +1,8 @@ +{% load i18n admin_urls %} +{% block object-tools-items %} +
    1. + {% url opts|admin_urlname:'history' original.pk|admin_urlquote as history_url %} + {% translate "History" %} +
    2. +{% if has_absolute_url %}
    3. {% translate "View on site" %}
    4. {% endif %} +{% endblock %} diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/change_list.html b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/change_list.html new file mode 100644 index 0000000000..310872b015 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/change_list.html @@ -0,0 +1,93 @@ +{% extends "admin/base_site.html" %} +{% load i18n admin_urls static admin_list %} + +{% block extrastyle %} + {{ block.super }} + + {% if cl.formset %} + + {% endif %} + {% if cl.formset or action_form %} + + {% endif %} + {{ media.css }} + {% if not actions_on_top and not actions_on_bottom %} + + {% endif %} +{% endblock %} + +{% block extrahead %} +{{ block.super }} +{{ media.js }} + +{% endblock %} + +{% block bodyclass %}{{ block.super }} app-{{ opts.app_label }} model-{{ opts.model_name }} change-list{% endblock %} + +{% if not is_popup %} +{% block breadcrumbs %} + +{% endblock %} +{% endif %} + +{% block coltype %}{% endblock %} + +{% block content %} +
      + {% block object-tools %} +
        + {% block object-tools-items %} + {% change_list_object_tools %} + {% endblock %} +
      + {% endblock %} + {% if cl.formset and cl.formset.errors %} +

      + {% blocktranslate count counter=cl.formset.total_error_count %}Please correct the error below.{% plural %}Please correct the errors below.{% endblocktranslate %} +

      + {{ cl.formset.non_form_errors }} + {% endif %} +
      +
      + {% block search %}{% search_form cl %}{% endblock %} + {% block date_hierarchy %}{% if cl.date_hierarchy %}{% date_hierarchy cl %}{% endif %}{% endblock %} + +
      {% csrf_token %} + {% if cl.formset %} +
      {{ cl.formset.management_form }}
      + {% endif %} + + {% block result_list %} + {% if action_form and actions_on_top and cl.show_admin_actions %}{% admin_actions %}{% endif %} + {% result_list cl %} + {% if action_form and actions_on_bottom and cl.show_admin_actions %}{% admin_actions %}{% endif %} + {% endblock %} + {% block pagination %}{% pagination cl %}{% endblock %} +
      +
      + {% block filters %} + {% if cl.has_filters %} + + {% endif %} + {% endblock %} +
      +
      +{% endblock %} diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/change_list_object_tools.html b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/change_list_object_tools.html new file mode 100644 index 0000000000..11cc6fa4ba --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/change_list_object_tools.html @@ -0,0 +1,12 @@ +{% load i18n admin_urls %} + +{% block object-tools-items %} + {% if has_add_permission %} +
    5. + {% url cl.opts|admin_urlname:'add' as add_url %} + + {% blocktranslate with cl.opts.verbose_name as name %}Add {{ name }}{% endblocktranslate %} + +
    6. + {% endif %} +{% endblock %} diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/change_list_results.html b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/change_list_results.html new file mode 100644 index 0000000000..d2a9feed20 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/change_list_results.html @@ -0,0 +1,36 @@ +{% load i18n %} +{% if result_hidden_fields %} +
      {# DIV for HTML validation #} +{% for item in result_hidden_fields %}{{ item }}{% endfor %} +
      +{% endif %} +{% if results %} +
      + + + +{% for header in result_headers %} +{% endfor %} + + + +{% for result in results %} +{% if result.form and result.form.non_field_errors %} + +{% endif %} +{% for item in result %}{{ item }}{% endfor %} +{% endfor %} + +
      + {% if header.sortable and header.sort_priority > 0 %} +
      + + {% if num_sorted_fields > 1 %}{{ header.sort_priority }}{% endif %} + +
      + {% endif %} +
      {% if header.sortable %}{{ header.text|capfirst }}{% else %}{{ header.text|capfirst }}{% endif %}
      +
      +
      {{ result.form.non_field_errors }}
      +
      +{% endif %} diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/color_theme_toggle.html b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/color_theme_toggle.html new file mode 100644 index 0000000000..2caa19edbf --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/color_theme_toggle.html @@ -0,0 +1,15 @@ +{% load i18n %} + diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/date_hierarchy.html b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/date_hierarchy.html new file mode 100644 index 0000000000..c508856428 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/date_hierarchy.html @@ -0,0 +1,14 @@ +{% if show %} + +{% endif %} diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/delete_confirmation.html b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/delete_confirmation.html new file mode 100644 index 0000000000..09e25e1f53 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/delete_confirmation.html @@ -0,0 +1,50 @@ +{% extends "admin/base_site.html" %} +{% load i18n admin_urls static %} + +{% block extrahead %} + {{ block.super }} + {{ media }} + +{% endblock %} + +{% block bodyclass %}{{ block.super }} app-{{ opts.app_label }} model-{{ opts.model_name }} delete-confirmation{% endblock %} + +{% block breadcrumbs %} + +{% endblock %} + +{% block content %} +{% if perms_lacking %} + {% block delete_forbidden %} +

      {% blocktranslate with escaped_object=object %}Deleting the {{ object_name }} '{{ escaped_object }}' would result in deleting related objects, but your account doesn't have permission to delete the following types of objects:{% endblocktranslate %}

      +
        {{ perms_lacking|unordered_list }}
      + {% endblock %} +{% elif protected %} + {% block delete_protected %} +

      {% blocktranslate with escaped_object=object %}Deleting the {{ object_name }} '{{ escaped_object }}' would require deleting the following protected related objects:{% endblocktranslate %}

      +
        {{ protected|unordered_list }}
      + {% endblock %} +{% else %} + {% block delete_confirm %} +

      {% blocktranslate with escaped_object=object %}Are you sure you want to delete the {{ object_name }} "{{ escaped_object }}"? All of the following related items will be deleted:{% endblocktranslate %}

      + {% include "admin/includes/object_delete_summary.html" %} +

      {% translate "Objects" %}

      +
        {{ deleted_objects|unordered_list }}
      +
      {% csrf_token %} +
      + + {% if is_popup %}{% endif %} + {% if to_field %}{% endif %} + + {% translate "No, take me back" %} +
      +
      + {% endblock %} +{% endif %} +{% endblock content %} diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/delete_selected_confirmation.html b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/delete_selected_confirmation.html new file mode 100644 index 0000000000..51b93a5f49 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/delete_selected_confirmation.html @@ -0,0 +1,47 @@ +{% extends "admin/base_site.html" %} +{% load i18n l10n admin_urls static %} + +{% block extrahead %} + {{ block.super }} + {{ media }} + +{% endblock %} + +{% block bodyclass %}{{ block.super }} app-{{ opts.app_label }} model-{{ opts.model_name }} delete-confirmation delete-selected-confirmation{% endblock %} + +{% block breadcrumbs %} + +{% endblock %} + +{% block content %} +{% if perms_lacking %} +

      {% blocktranslate %}Deleting the selected {{ objects_name }} would result in deleting related objects, but your account doesn't have permission to delete the following types of objects:{% endblocktranslate %}

      +
        {{ perms_lacking|unordered_list }}
      +{% elif protected %} +

      {% blocktranslate %}Deleting the selected {{ objects_name }} would require deleting the following protected related objects:{% endblocktranslate %}

      +
        {{ protected|unordered_list }}
      +{% else %} +

      {% blocktranslate %}Are you sure you want to delete the selected {{ objects_name }}? All of the following objects and their related items will be deleted:{% endblocktranslate %}

      + {% include "admin/includes/object_delete_summary.html" %} +

      {% translate "Objects" %}

      + {% for deletable_object in deletable_objects %} +
        {{ deletable_object|unordered_list }}
      + {% endfor %} +
      {% csrf_token %} +
      + {% for obj in queryset %} + + {% endfor %} + + + + {% translate "No, take me back" %} +
      +
      +{% endif %} +{% endblock %} diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/edit_inline/stacked.html b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/edit_inline/stacked.html new file mode 100644 index 0000000000..73f459ee47 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/edit_inline/stacked.html @@ -0,0 +1,38 @@ +{% load i18n admin_urls %} +
      +
      + {% if inline_admin_formset.is_collapsible %}
      {% endif %} +

      + {% if inline_admin_formset.formset.max_num == 1 %} + {{ inline_admin_formset.opts.verbose_name|capfirst }} + {% else %} + {{ inline_admin_formset.opts.verbose_name_plural|capfirst }} + {% endif %} +

      + {% if inline_admin_formset.is_collapsible %}
      {% endif %} +{{ inline_admin_formset.formset.management_form }} +{{ inline_admin_formset.formset.non_form_errors }} + +{% for inline_admin_form in inline_admin_formset %}
      +

      {{ inline_admin_formset.opts.verbose_name|capfirst }}: {% if inline_admin_form.original %}{{ inline_admin_form.original }}{% if inline_admin_form.model_admin.show_change_link and inline_admin_form.model_admin.has_registered_model %} {% if inline_admin_formset.has_change_permission %}{% translate "Change" %}{% else %}{% translate "View" %}{% endif %}{% endif %} +{% else %}#{{ forloop.counter }}{% endif %} + {% if inline_admin_form.show_url %}{% translate "View on site" %}{% endif %} + {% if inline_admin_formset.formset.can_delete and inline_admin_formset.has_delete_permission and inline_admin_form.original %}{{ inline_admin_form.deletion_field.field }} {{ inline_admin_form.deletion_field.label_tag }}{% endif %} +

      + {% if inline_admin_form.form.non_field_errors %}{{ inline_admin_form.form.non_field_errors }}{% endif %} + + {% with parent_counter=forloop.counter0 %} + {% for fieldset in inline_admin_form %} + {% include "admin/includes/fieldset.html" with heading_level=4 id_prefix=parent_counter id_suffix=forloop.counter0 %} + {% endfor %} + {% endwith %} + + {% if inline_admin_form.needs_explicit_pk_field %}{{ inline_admin_form.pk_field.field }}{% endif %} + {% if inline_admin_form.fk_field %}{{ inline_admin_form.fk_field.field }}{% endif %} +
      {% endfor %} + {% if inline_admin_formset.is_collapsible %}
      {% endif %} +
      +
      diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/edit_inline/tabular.html b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/edit_inline/tabular.html new file mode 100644 index 0000000000..7acfda7bd1 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/edit_inline/tabular.html @@ -0,0 +1,71 @@ +{% load i18n admin_urls static admin_modify %} +
      + +
      diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/filter.html b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/filter.html new file mode 100644 index 0000000000..a6094ecb5a --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/filter.html @@ -0,0 +1,12 @@ +{% load i18n %} +
      + + {% blocktranslate with filter_title=title %} By {{ filter_title }} {% endblocktranslate %} + + +
      diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/includes/fieldset.html b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/includes/fieldset.html new file mode 100644 index 0000000000..b4eef47547 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/includes/fieldset.html @@ -0,0 +1,41 @@ +{% with prefix=fieldset.formset.prefix|default:"fieldset" id_prefix=id_prefix|default:"0" id_suffix=id_suffix|default:"0" name=fieldset.name|default:""|slugify %} +
      + {% if name %} + {% if fieldset.is_collapsible %}
      {% endif %} + {{ fieldset.name }} + {% if fieldset.is_collapsible %}{% endif %} + {% endif %} + {% if fieldset.description %} +
      {{ fieldset.description|safe }}
      + {% endif %} + {% for line in fieldset %} +
      + {% if line.fields|length == 1 %}{{ line.errors }}{% else %}
      {% endif %} + {% for field in line %} +
      + {% if not line.fields|length == 1 and not field.is_readonly %}{{ field.errors }}{% endif %} +
      + {% if field.is_checkbox %} + {{ field.field }}{{ field.label_tag }} + {% else %} + {{ field.label_tag }} + {% if field.is_readonly %} +
      {{ field.contents }}
      + {% else %} + {{ field.field }} + {% endif %} + {% endif %} +
      + {% if field.field.help_text %} +
      +
      {{ field.field.help_text|safe }}
      +
      + {% endif %} +
      + {% endfor %} + {% if not line.fields|length == 1 %}
      {% endif %} +
      + {% endfor %} + {% if name and fieldset.is_collapsible %}
      {% endif %} +
      +{% endwith %} diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/includes/object_delete_summary.html b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/includes/object_delete_summary.html new file mode 100644 index 0000000000..9ad97db2fc --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/includes/object_delete_summary.html @@ -0,0 +1,7 @@ +{% load i18n %} +

      {% translate "Summary" %}

      +
        + {% for model_name, object_count in model_count %} +
      • {{ model_name|capfirst }}: {{ object_count }}
      • + {% endfor %} +
      diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/index.html b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/index.html new file mode 100644 index 0000000000..899727a4ba --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/index.html @@ -0,0 +1,51 @@ +{% extends "admin/base_site.html" %} +{% load i18n static %} + +{% block extrastyle %}{{ block.super }}{% endblock %} + +{% block coltype %}colMS{% endblock %} + +{% block bodyclass %}{{ block.super }} dashboard{% endblock %} + +{% block nav-breadcrumbs %}{% endblock %} + +{% block nav-sidebar %}{% endblock %} + +{% block content %} +
      + {% include "admin/app_list.html" with app_list=app_list show_changelinks=True %} +
      +{% endblock %} + +{% block sidebar %} + +{% endblock %} diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/invalid_setup.html b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/invalid_setup.html new file mode 100644 index 0000000000..1ef7c71434 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/invalid_setup.html @@ -0,0 +1,13 @@ +{% extends "admin/base_site.html" %} +{% load i18n %} + +{% block breadcrumbs %} + +{% endblock %} + +{% block content %} +

      {% translate 'Something’s wrong with your database installation. Make sure the appropriate database tables have been created, and make sure the database is readable by the appropriate user.' %}

      +{% endblock %} diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/login.html b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/login.html new file mode 100644 index 0000000000..b61d9ec603 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/login.html @@ -0,0 +1,68 @@ +{% extends "admin/base_site.html" %} +{% load i18n static %} + +{% block extrastyle %}{{ block.super }} +{{ form.media }} +{% endblock %} + +{% block bodyclass %}{{ block.super }} login{% endblock %} + +{% block usertools %}{% endblock %} + +{% block nav-global %}{% endblock %} + +{% block nav-sidebar %}{% endblock %} + +{% block content_title %}{% endblock %} + +{% block nav-breadcrumbs %}{% endblock %} + +{% block content %} +{% if form.errors and not form.non_field_errors %} +

      +{% blocktranslate count counter=form.errors.items|length %}Please correct the error below.{% plural %}Please correct the errors below.{% endblocktranslate %} +

      +{% endif %} + +{% if form.non_field_errors %} +{% for error in form.non_field_errors %} +

      + {{ error }} +

      +{% endfor %} +{% endif %} + +
      + +{% if user.is_authenticated %} +

      +{% blocktranslate trimmed %} + You are authenticated as {{ username }}, but are not authorized to + access this page. Would you like to login to a different account? +{% endblocktranslate %} +

      +{% endif %} + +
      {% csrf_token %} +
      + {{ form.username.errors }} + {{ form.username.label_tag }} {{ form.username }} +
      +
      + {{ form.password.errors }} + {{ form.password.label_tag }} {{ form.password }} + +
      + {% url 'admin_password_reset' as password_reset_url %} + {% if password_reset_url %} + + {% endif %} +
      + +
      +
      + +
      +{% endblock %} diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/nav_sidebar.html b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/nav_sidebar.html new file mode 100644 index 0000000000..a413e23754 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/nav_sidebar.html @@ -0,0 +1,8 @@ +{% load i18n %} + + diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/object_history.html b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/object_history.html new file mode 100644 index 0000000000..f83984c300 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/object_history.html @@ -0,0 +1,56 @@ +{% extends "admin/base_site.html" %} +{% load i18n admin_urls %} + +{% block breadcrumbs %} + +{% endblock %} + +{% block content %} +
      +
      + +{% if action_list %} + + + + + + + + + + {% for action in action_list %} + + + + + + {% endfor %} + +
      {% translate 'Date/time' %}{% translate 'User' %}{% translate 'Action' %}
      {{ action.action_time|date:"DATETIME_FORMAT" }}{{ action.user.get_username }}{% if action.user.get_full_name %} ({{ action.user.get_full_name }}){% endif %}{{ action.get_change_message }}
      +

      + {% if pagination_required %} + {% for i in page_range %} + {% if i == action_list.paginator.ELLIPSIS %} + {{ action_list.paginator.ELLIPSIS }} + {% elif i == action_list.number %} + {{ i }} + {% else %} + {{ i }} + {% endif %} + {% endfor %} + {% endif %} + {{ action_list.paginator.count }} {% blocktranslate count counter=action_list.paginator.count %}entry{% plural %}entries{% endblocktranslate %} +

      +{% else %} +

      {% translate 'This object doesn’t have a change history. It probably wasn’t added via this admin site.' %}

      +{% endif %} +
      +
      +{% endblock %} diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/pagination.html b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/pagination.html new file mode 100644 index 0000000000..bc3117bfcb --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/pagination.html @@ -0,0 +1,12 @@ +{% load admin_list %} +{% load i18n %} +

      +{% if pagination_required %} +{% for i in page_range %} + {% paginator_number cl i %} +{% endfor %} +{% endif %} +{{ cl.result_count }} {% if cl.result_count == 1 %}{{ cl.opts.verbose_name }}{% else %}{{ cl.opts.verbose_name_plural }}{% endif %} +{% if show_all_url %}{% translate 'Show all' %}{% endif %} +{% if cl.formset and cl.result_count %}{% endif %} +

      diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/popup_response.html b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/popup_response.html new file mode 100644 index 0000000000..57a1ae3661 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/popup_response.html @@ -0,0 +1,10 @@ +{% load i18n static %} + + {% translate 'Popup closing…' %} + + + + diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/prepopulated_fields_js.html b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/prepopulated_fields_js.html new file mode 100644 index 0000000000..dd6e56100d --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/prepopulated_fields_js.html @@ -0,0 +1,5 @@ +{% load static %} + diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/search_form.html b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/search_form.html new file mode 100644 index 0000000000..447b8039af --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/search_form.html @@ -0,0 +1,20 @@ +{% load i18n static %} +{% if cl.search_fields %} +
      +{% endif %} diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/submit_line.html b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/submit_line.html new file mode 100644 index 0000000000..b2b2054966 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/submit_line.html @@ -0,0 +1,17 @@ +{% load i18n admin_urls %} +
      +{% block submit-row %} +{% if show_save %}{% endif %} +{% if show_save_as_new %}{% endif %} +{% if show_save_and_add_another %}{% endif %} +{% if show_save_and_continue %}{% endif %} +{% if show_close %} + {% url opts|admin_urlname:'changelist' as changelist_url %} + {% translate 'Close' %} +{% endif %} +{% if show_delete_link and original %} + {% url opts|admin_urlname:'delete' original.pk|admin_urlquote as delete_url %} + {% translate "Delete" %} +{% endif %} +{% endblock %} +
      diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/widgets/clearable_file_input.html b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/widgets/clearable_file_input.html new file mode 100644 index 0000000000..8b42f192f1 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/widgets/clearable_file_input.html @@ -0,0 +1,6 @@ +{% if widget.is_initial %}

      {{ widget.initial_text }}: {{ widget.value }}{% if not widget.required %} + + +{% endif %}
      +{{ widget.input_text }}:{% endif %} +{% if widget.is_initial %}

      {% endif %} diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/widgets/date.html b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/widgets/date.html new file mode 100644 index 0000000000..acd5d5fc57 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/widgets/date.html @@ -0,0 +1,3 @@ +

      + {% include "django/forms/widgets/date.html" %} +

      diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/widgets/foreign_key_raw_id.html b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/widgets/foreign_key_raw_id.html new file mode 100644 index 0000000000..be93e0581d --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/widgets/foreign_key_raw_id.html @@ -0,0 +1,2 @@ +{% include 'django/forms/widgets/input.html' %}{% if related_url %}{% endif %}{% if link_label %} +{% if link_url %}{{ link_label }}{% else %}{{ link_label }}{% endif %}{% endif %} diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/widgets/many_to_many_raw_id.html b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/widgets/many_to_many_raw_id.html new file mode 100644 index 0000000000..0dd0331dcb --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/widgets/many_to_many_raw_id.html @@ -0,0 +1 @@ +{% include 'admin/widgets/foreign_key_raw_id.html' %} diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/widgets/radio.html b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/widgets/radio.html new file mode 100644 index 0000000000..780899af44 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/widgets/radio.html @@ -0,0 +1 @@ +{% include "django/forms/widgets/multiple_input.html" %} diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/widgets/related_widget_wrapper.html b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/widgets/related_widget_wrapper.html new file mode 100644 index 0000000000..99b20545af --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/widgets/related_widget_wrapper.html @@ -0,0 +1,41 @@ +{% load i18n static %} + diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/widgets/split_datetime.html b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/widgets/split_datetime.html new file mode 100644 index 0000000000..7fc7bf6833 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/widgets/split_datetime.html @@ -0,0 +1,4 @@ +

      + {{ date_label }} {% with widget=widget.subwidgets.0 %}{% include widget.template_name %}{% endwith %}
      + {{ time_label }} {% with widget=widget.subwidgets.1 %}{% include widget.template_name %}{% endwith %} +

      diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/widgets/time.html b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/widgets/time.html new file mode 100644 index 0000000000..e4eaca61f2 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/widgets/time.html @@ -0,0 +1,3 @@ +

      + {% include "django/forms/widgets/time.html" %} +

      diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/widgets/url.html b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/widgets/url.html new file mode 100644 index 0000000000..69dc401ba1 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/admin/widgets/url.html @@ -0,0 +1 @@ +{% if url_valid %}

      {{ current_label }} {{ widget.value }}
      {{ change_label }} {% endif %}{% include "django/forms/widgets/input.html" %}{% if url_valid %}

      {% endif %} diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/templates/registration/logged_out.html b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/registration/logged_out.html new file mode 100644 index 0000000000..e9a5545024 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/registration/logged_out.html @@ -0,0 +1,14 @@ +{% extends "admin/base_site.html" %} +{% load i18n %} + +{% block breadcrumbs %}{% endblock %} + +{% block nav-sidebar %}{% endblock %} + +{% block content %} + +

      {% translate "Thanks for spending some quality time with the web site today." %}

      + +

      {% translate 'Log in again' %}

      + +{% endblock %} diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/templates/registration/password_change_done.html b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/registration/password_change_done.html new file mode 100644 index 0000000000..784ab37278 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/registration/password_change_done.html @@ -0,0 +1,20 @@ +{% extends "admin/base_site.html" %} +{% load i18n %} +{% block userlinks %} + {% url 'django-admindocs-docroot' as docsroot %}{% if docsroot %}{% translate 'Documentation' %} / {% endif %}{% translate 'Change password' %} / +
      + {% csrf_token %} + +
      + {% include "admin/color_theme_toggle.html" %} +{% endblock %} +{% block breadcrumbs %} + +{% endblock %} + +{% block content %} +

      {% translate 'Your password was changed.' %}

      +{% endblock %} diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/templates/registration/password_change_form.html b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/registration/password_change_form.html new file mode 100644 index 0000000000..fde2373e08 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/registration/password_change_form.html @@ -0,0 +1,64 @@ +{% extends "admin/base_site.html" %} +{% load i18n static %} +{% block extrastyle %}{{ block.super }}{% endblock %} +{% block userlinks %} + {% url 'django-admindocs-docroot' as docsroot %}{% if docsroot %}{% translate 'Documentation' %} / {% endif %} {% translate 'Change password' %} / +
      + {% csrf_token %} + +
      + {% include "admin/color_theme_toggle.html" %} +{% endblock %} +{% block breadcrumbs %} + +{% endblock %} + +{% block content %}
      + +
      {% csrf_token %} +
      +{% if form.errors %} +

      + {% blocktranslate count counter=form.errors.items|length %}Please correct the error below.{% plural %}Please correct the errors below.{% endblocktranslate %} +

      +{% endif %} + + +

      {% translate 'Please enter your old password, for security’s sake, and then enter your new password twice so we can verify you typed it in correctly.' %}

      + +
      + +
      + {{ form.old_password.errors }} +
      {{ form.old_password.label_tag }} {{ form.old_password }}
      +
      + +
      + {{ form.new_password1.errors }} +
      {{ form.new_password1.label_tag }} {{ form.new_password1 }}
      + {% if form.new_password1.help_text %} +
      {{ form.new_password1.help_text|safe }}
      + {% endif %} +
      + +
      + {{ form.new_password2.errors }} +
      {{ form.new_password2.label_tag }} {{ form.new_password2 }}
      + {% if form.new_password2.help_text %} +
      {{ form.new_password2.help_text|safe }}
      + {% endif %} +
      + +
      + +
      + +
      + +
      +
      + +{% endblock %} diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/templates/registration/password_reset_complete.html b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/registration/password_reset_complete.html new file mode 100644 index 0000000000..e6a383fcfe --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/registration/password_reset_complete.html @@ -0,0 +1,17 @@ +{% extends "admin/base_site.html" %} +{% load i18n %} + +{% block breadcrumbs %} + +{% endblock %} + +{% block content %} + +

      {% translate "Your password has been set. You may go ahead and log in now." %}

      + +

      {% translate 'Log in' %}

      + +{% endblock %} diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/templates/registration/password_reset_confirm.html b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/registration/password_reset_confirm.html new file mode 100644 index 0000000000..a07645c97a --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/registration/password_reset_confirm.html @@ -0,0 +1,47 @@ +{% extends "admin/base_site.html" %} +{% load i18n static %} + +{% block extrastyle %}{{ block.super }}{% endblock %} +{% block breadcrumbs %} + +{% endblock %} + +{% block content %} + +{% if validlink %} + +

      {% translate "Please enter your new password twice so we can verify you typed it in correctly." %}

      + +
      {% csrf_token %} +
      + +
      + {{ form.new_password1.errors }} +
      + + {{ form.new_password1 }} +
      +
      +
      + {{ form.new_password2.errors }} +
      + + {{ form.new_password2 }} +
      +
      +
      +
      + +
      +
      + +{% else %} + +

      {% translate "The password reset link was invalid, possibly because it has already been used. Please request a new password reset." %}

      + +{% endif %} + +{% endblock %} diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/templates/registration/password_reset_done.html b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/registration/password_reset_done.html new file mode 100644 index 0000000000..8b1971a76e --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/registration/password_reset_done.html @@ -0,0 +1,17 @@ +{% extends "admin/base_site.html" %} +{% load i18n %} + +{% block breadcrumbs %} + +{% endblock %} + +{% block content %} + +

      {% translate 'We’ve emailed you instructions for setting your password, if an account exists with the email you entered. You should receive them shortly.' %}

      + +

      {% translate 'If you don’t receive an email, please make sure you’ve entered the address you registered with, and check your spam folder.' %}

      + +{% endblock %} diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/templates/registration/password_reset_email.html b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/registration/password_reset_email.html new file mode 100644 index 0000000000..64822091d1 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/registration/password_reset_email.html @@ -0,0 +1,14 @@ +{% load i18n %}{% autoescape off %} +{% blocktranslate %}You're receiving this email because you requested a password reset for your user account at {{ site_name }}.{% endblocktranslate %} + +{% translate "Please go to the following page and choose a new password:" %} +{% block reset_link %} +{{ protocol }}://{{ domain }}{% url 'password_reset_confirm' uidb64=uid token=token %} +{% endblock %} +{% translate 'Your username, in case you’ve forgotten:' %} {{ user.get_username }} + +{% translate "Thanks for using our site!" %} + +{% blocktranslate %}The {{ site_name }} team{% endblocktranslate %} + +{% endautoescape %} diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/templates/registration/password_reset_form.html b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/registration/password_reset_form.html new file mode 100644 index 0000000000..0edfea8ec2 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/templates/registration/password_reset_form.html @@ -0,0 +1,31 @@ +{% extends "admin/base_site.html" %} +{% load i18n static %} + +{% block extrastyle %}{{ block.super }}{% endblock %} +{% block breadcrumbs %} + +{% endblock %} + +{% block content %} + +

      {% translate 'Forgotten your password? Enter your email address below, and we’ll email instructions for setting a new one.' %}

      + +
      {% csrf_token %} +
      +
      + {{ form.email.errors }} +
      + + {{ form.email }} +
      +
      +
      +
      + +
      +
      + +{% endblock %} diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/templatetags/__init__.py b/venv/lib/python3.12/site-packages/django/contrib/admin/templatetags/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/templatetags/__pycache__/__init__.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/contrib/admin/templatetags/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0e21932d7ed0b0a0ce984162d9d1582e9e18be31 GIT binary patch literal 210 zcmZ9GO$x#=5QQ77AVLq~q8-$&xDdPb3L$M`8_l0dTIfkUgEtX8h9{8jT$#A^!OXn( z_!jfbvPBYv%f~6+S6u%Zr=hteL$XB2dtxUcjgk3Wq1BRsB(2mPg#+thPwGovDhib# zs?pFh)q~&_n8CMNZHm$!5h}R?&!iE=Gfx@^7<0uv#)TO^ Y^R3jh6KrQ^;R6)LMe|M(LN*QV3(mngrT_o{ literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/templatetags/__pycache__/admin_list.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/contrib/admin/templatetags/__pycache__/admin_list.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..772eb12dce01c2528dd0e2265effaef8652850c7 GIT binary patch literal 20944 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 Q=*0KFd<(iri0oYd7bpyhTL1t6 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/templatetags/__pycache__/admin_modify.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/contrib/admin/templatetags/__pycache__/admin_modify.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..63547ee3a4a1d48e4397cfa7128917a61994136c GIT binary patch literal 5423 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 F@n7DmE$9FM literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/templatetags/__pycache__/admin_urls.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/contrib/admin/templatetags/__pycache__/admin_urls.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f936dce64f897a3d14b2bd57c87083a594e2476f GIT binary patch literal 2912 zcmZ`*O>7&-6`tiT$z3jgJ`Xg10rAJPNGA@8y7`bC?} z#`Sn{UzhJuTHrm@!Sp-_6MP1<2QVq`ba&OnKS^J3t-Ti37{&G)APQrrYHb3^~Tm2n7|X9gNi`y9QQfR z2a;z`wjoTy-RC|ITt+E=b~~VIW}$R~aJiI^NNS~$Gt_IkK|&@xZRAR-se{13pc+-3 z@G73O=%phg+g4`2Z0Z?Poj1!>EibLCKya0S}bbPuErd>whw~js@1c9eL&1%AP5WWt={~QG0K?H0sr;+XVUU52a zbZ|i%YC&t*l1Di~O`xCbp}e&w7En!c0yyDFMe3Iw!wGmu4mkq;v*X8K?Rvl8!+C4X zulenWcU@P{V$9=pS3BX+UKV?|XaTDA9k6#TBq5u6l?^B4A!@QC7Zs1+T_J0NAffTL zV?ZYHwXh~SLXig3jsfQ+knG*ThAl`!ANy+&C*p)}97YHyHQDhmAl$dRMKpO=i~A+? z99ws62)6cN8R}ZZh?(&k)LSj;NKW)5XyNco5(7!176T*?k{FZh?m^MB6o>2s-d8!D z>PaJmp0*ElWI^x5WwamJNsm8#TQ=tjY^$)0C6-es7cft(D_ zT+Us3xga=$qH=2Mz;l=;>hx#^jyi<6X@QV0)Knh5kRO!I^YS|M*^nmi;>t!Pl- zF;#~32D@Mv$|X!AAJa-eL|RX2rDAP@QJ6+2?x7Ryw{T_5cD4U^BR&BKXa%*( zVD38Fkb6FO_5D|u7F>C#KDpL6{E7UL+!*_b+xJRC=v`9=mM{G7!h@KrOw?b0lIZ<# ze#N?Hx{0y+`SrN+;gyv;e;oa&=Jt-e@pOG=E#6a~c^p*M#KfxD*A)9!1|N!t9tY)S zd~`iI@>zf5$Vqqfl$$)=5c@Zj{@A%xMuQvQ#rpV zZTjL;&$=?OGUF--7pFEwbnwU@u6}y;%eVh>^{cCmy_4@>*oZ63(R&jqbDASmjY7R}i%DFAxcc2IKf?K7YmbQ)l zmmZ2o9tXpZ#8Vsl_Ag3HFE_>EZ-X(mf2qCS5F)FB(iD`XD-VU?C(7VT!Bq~|&oAD* z`}(@vyHs@L(S|Vk-+!M%@qr%@CndfO$2WOcw=EiUfBUgKl}2BurKuDA*FWW8PWh&1 zQ!kJ(cotf9ngt7sZx+`q=vmy6Kr2!)Z3txVu3=lX3xT`W$4Oj!B?Z09dDIZI*aWgS01d3 zn*rnt{d)NB@b^BBJI8JD$d}k;B)F<8>FWsk7=M*hnw;|Bc!N`1?(h%332q-nq`s#V G)9-&zaG=!y literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/templatetags/__pycache__/base.cpython-312.pyc b/venv/lib/python3.12/site-packages/django/contrib/admin/templatetags/__pycache__/base.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..82dfb5afc26e9e313bde2d8229b75be7e787bff2 GIT binary patch literal 2103 zcmZ`)O>7%g5Pr|QUauYhB_wT{s>S_vTvD$J61{`~RZ0s;=0Lbul~!x-vtwtyYj)R3 z6V}i}B#%Gh9qHIW4P3;S$sr@u5Q;)WEQ%O~&=sT$ z>qr-gur2s*#qer4Cp~1F9Hz-CaVssu(Cn(yB;{O)Cf+s6M$4&LX2H@4jWspfA!@1S zI%PkA&-bIDy*%tchdc->VjUGjIxY&j*g+Mnht{J-UlP{kVz`5@Q zjT-;b8i{3q7D%IMXfDaPS~cS?YHmg|3~R;7Kmr+ecxYuxBx5ZT+pg(4F*8kKXBv>N zF~dcz*_`3wEIU&*tP;dn&2vRrI&g~w$m}9}KLPs+Zz50hkUBJQgG(Y$*v7v4S_GlC z)Q+^}cC;O9kF?`ns2)7Y&=aBUeYu@*!NVsHdkGziG=)6Li+HjZ^bQr(8Mk?4~{R#RP&pz&h!rbo9Njz5i8=R#8qYJY)&l;K`ml!-4iB(O zMFuh|a!0V^YgARshUPe`>Wsn%8A1-yji(J|(P|K-p)EG7mafc`W#y7qUOIo-)RmH< znN>?!Cg!qY)JjTo)m^mA*YX!$Rh*hj&NsnOs}e`i>)eo)!v;HzVNwao20(O_lIDcN$d2J!Ts5W0$EJ$b$(ZA7*vzL9UA zy`$W{uq&bTL_c+^mpXMnb*3XeIDBFd9|QZ1(T%arRW83Yh>s59<6J&Eh#%pn-79+& zBa^Xiyd!ohk0wzx*^Tt%$*u9N_HF&nJ9ig$28BB2;HsdXDsvC)~oi;E9~0 zIxFmRbPIni4ekEVLe!zBU*x?8*;R*q4cW4{eU3ad3mP{asJmh4!!yu_IG6`)oE4~O zHC<;-@`3XdD{HbZo^f(98ii@38d`}MGz_B*S}ev#74JtX2RNe=F{?F`&=fQsDZ6TL z;I~@RCZ#ltgcJ^te8nH@s7L51)anLyIQFssCuwQ0o zuK-&+@&ZWvu`_V&dHFj7I?=(QsZHyq)foXi zPb>ZG#a{MeKRegU&h@i}d)dMtr_X=)$q)1W*}}cqLNEORJ#p^#e1B%{-pt%i`prRl zYHOi?OzFWdt?Wj`L~>7%remE*Uq0TGk8im>`ShbCbV_%n`{`Eoe(LOweAZ^U?Js#|4Mp`mq}XiE!;5w%-B3N8Hrlr};_5mn(ORk>b#8|NJR&fPnw zbx1`Dm2f2x&XX&6fhStE5-lJ{nJXJ=+- zemmnIFgI?Tp0Fb!f5Ln@MzG%ZO)CQK@*zToEfc88r-WHLz% z`5G}4kOa+J>9*2dnGP_e5Zk&-h@oC1U2UOiARSyop|s?MT~;a=b(iIOPf4B0#waii z!pO8_kZIYFu90a49hp`Q1;#*CO$WT#n?}jB-m&vjw!w0}7m?vOy0(!KdX}Umq5;>Y zB^hSEC9&@u)3 zvzVQ;ODtQ`=Sp_P$WE|@>|1(n{=g~A$j%gXD{p5Pn6;2CnlssQ)t$4gmokT5%sQsa z4wOMq&od`$6og>TwpSvMG)1&Z-wVv8lQ$O$9fGv{i1_Eb5B5Zi02B}JEd1^6vY?8UY0g9nMaSNiv zqafqpY05G4=niLPzKuKWWfXD{jo?oIKAr$B*Nr<&a7!5f3z!C3k_>4#a91E(1^8~I ztCQQWUs0Bn0_xd9J`A1Rh=%PnqP6Xw189^B7|boSq}-8jcfto=$_8-}6N12kc#{6S z{q?0&a66FL=D{2T!K#v0r@Sa+S!0L+=HPol0BTx!-XrOdfSngI9mC86N@Z9L&YDG+ zaZfSfNEe@JRiw!aA)44_0CY#A7ZUnRqYK`45`&ys2IGr^e!?-|nf78o_~uwJKmwDy zZyabQ$7`WhwEv4E*N@zd($-L_VXm09$<|=1adPG4{lWdM)ZVZ6f1Ca$-Aui(n#wj) z*?OooG}5qEteg3|b#Le}NYk;q<45l7yJ>t^xK+5Fy-SbQLUpwfTZuKpBdz`cft0Cq z5CMj7QPaGLrj=}?QbazcX%{PcvAx6N;2s~qVFZUAI3Uu*?KnbA3_)NV6uU@DXrg`UN<@hlC?Iw*%1QV0T4!QK_J%E^G{G9-aW->2~3@U6nPu z@*hh8GerOupWhbhLj1qez5wbog7dFFfhVEOlmBv`3D7bEUW&(Sgr7)jUyoMI zpdkOI@Qt8{+uDoHqrC{oL{a8W-0w(di4p6ar4#xnggSzC`dzzR!PY}{>ep2Yh2GR> zii}<|-8t&c!6p`73a^mP+FY#UO{m^9$Dv$qfQN>p9`x|2gTqJ7q&`-8tQ*7cTVP4tX6~mX+_`@xld~(=9rKxtPpHa8EDbl#9?=lp?b@%6WtDb^foNtwItnpW@u+dp>Dr*7sgNvKrmfjPAJ~ z9qo~O>k+wdqNZQ1)+c@n?dp*^zA5uCNWxLyTq`<&YHvh-iazronOaR|n#oLS$0Udk zCctz&0phV;t;AFHGuO@5j-mR+mA(hVqc;}5dj00WmnUnpxc)Gt#)9ia4Fti_L$7R3 zJ6$d81>67k+EEU@W6p4$!+$%@@}`3gUBwP8g6t{q?@t76OJDmle5~CLPw>MKNkpUb z1`O+pBuPJ$;a{S|wbxdo!_DaMz39kt_+fBBO4eU%9A7#9kN~?rPUOg^d#>*JT^^T$ M8w!yVf)hUe4R%=U(*OVf literal 0 HcmV?d00001 diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/templatetags/admin_list.py b/venv/lib/python3.12/site-packages/django/contrib/admin/templatetags/admin_list.py new file mode 100644 index 0000000000..fdf6e63f5f --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/templatetags/admin_list.py @@ -0,0 +1,536 @@ +import datetime + +from django.contrib.admin.templatetags.admin_urls import add_preserved_filters +from django.contrib.admin.utils import ( + display_for_field, + display_for_value, + get_fields_from_path, + label_for_field, + lookup_field, +) +from django.contrib.admin.views.main import ( + ALL_VAR, + IS_FACETS_VAR, + IS_POPUP_VAR, + ORDER_VAR, + PAGE_VAR, + SEARCH_VAR, +) +from django.core.exceptions import ObjectDoesNotExist +from django.db import models +from django.db.models.constants import LOOKUP_SEP +from django.template import Library +from django.template.loader import get_template +from django.templatetags.static import static +from django.urls import NoReverseMatch +from django.utils import formats, timezone +from django.utils.html import format_html +from django.utils.safestring import mark_safe +from django.utils.text import capfirst +from django.utils.translation import gettext as _ + +from .base import InclusionAdminNode + +register = Library() + + +@register.simple_tag +def paginator_number(cl, i): + """ + Generate an individual page index link in a paginated list. + """ + if i == cl.paginator.ELLIPSIS: + return format_html("{} ", cl.paginator.ELLIPSIS) + elif i == cl.page_num: + return format_html('{} ', i) + else: + return format_html( + '{} ', + cl.get_query_string({PAGE_VAR: i}), + mark_safe(' class="end"' if i == cl.paginator.num_pages else ""), + i, + ) + + +def pagination(cl): + """ + Generate the series of links to the pages in a paginated list. + """ + pagination_required = (not cl.show_all or not cl.can_show_all) and cl.multi_page + page_range = ( + cl.paginator.get_elided_page_range(cl.page_num) if pagination_required else [] + ) + need_show_all_link = cl.can_show_all and not cl.show_all and cl.multi_page + return { + "cl": cl, + "pagination_required": pagination_required, + "show_all_url": need_show_all_link and cl.get_query_string({ALL_VAR: ""}), + "page_range": page_range, + "ALL_VAR": ALL_VAR, + "1": 1, + } + + +@register.tag(name="pagination") +def pagination_tag(parser, token): + return InclusionAdminNode( + parser, + token, + func=pagination, + template_name="pagination.html", + takes_context=False, + ) + + +def result_headers(cl): + """ + Generate the list column headers. + """ + ordering_field_columns = cl.get_ordering_field_columns() + for i, field_name in enumerate(cl.list_display): + text, attr = label_for_field( + field_name, cl.model, model_admin=cl.model_admin, return_attr=True + ) + is_field_sortable = cl.sortable_by is None or field_name in cl.sortable_by + if attr: + field_name = _coerce_field_name(field_name, i) + # Potentially not sortable + + # if the field is the action checkbox: no sorting and special class + if field_name == "action_checkbox": + aria_label = _("Select all objects on this page for an action") + yield { + "text": mark_safe( + f'' + ), + "class_attrib": mark_safe(' class="action-checkbox-column"'), + "sortable": False, + } + continue + + admin_order_field = getattr(attr, "admin_order_field", None) + # Set ordering for attr that is a property, if defined. + if isinstance(attr, property) and hasattr(attr, "fget"): + admin_order_field = getattr(attr.fget, "admin_order_field", None) + if not admin_order_field and LOOKUP_SEP not in field_name: + is_field_sortable = False + + if not is_field_sortable: + # Not sortable + yield { + "text": text, + "class_attrib": format_html(' class="column-{}"', field_name), + "sortable": False, + } + continue + + # OK, it is sortable if we got this far + th_classes = ["sortable", "column-{}".format(field_name)] + order_type = "" + new_order_type = "asc" + sort_priority = 0 + # Is it currently being sorted on? + is_sorted = i in ordering_field_columns + if is_sorted: + order_type = ordering_field_columns.get(i).lower() + sort_priority = list(ordering_field_columns).index(i) + 1 + th_classes.append("sorted %sending" % order_type) + new_order_type = {"asc": "desc", "desc": "asc"}[order_type] + + # build new ordering param + o_list_primary = [] # URL for making this field the primary sort + o_list_remove = [] # URL for removing this field from sort + o_list_toggle = [] # URL for toggling order type for this field + + def make_qs_param(t, n): + return ("-" if t == "desc" else "") + str(n) + + for j, ot in ordering_field_columns.items(): + if j == i: # Same column + param = make_qs_param(new_order_type, j) + # We want clicking on this header to bring the ordering to the + # front + o_list_primary.insert(0, param) + o_list_toggle.append(param) + # o_list_remove - omit + else: + param = make_qs_param(ot, j) + o_list_primary.append(param) + o_list_toggle.append(param) + o_list_remove.append(param) + + if i not in ordering_field_columns: + o_list_primary.insert(0, make_qs_param(new_order_type, i)) + + yield { + "text": text, + "sortable": True, + "sorted": is_sorted, + "ascending": order_type == "asc", + "sort_priority": sort_priority, + "url_primary": cl.get_query_string({ORDER_VAR: ".".join(o_list_primary)}), + "url_remove": cl.get_query_string({ORDER_VAR: ".".join(o_list_remove)}), + "url_toggle": cl.get_query_string({ORDER_VAR: ".".join(o_list_toggle)}), + "class_attrib": ( + format_html(' class="{}"', " ".join(th_classes)) if th_classes else "" + ), + } + + +def _boolean_icon(field_val): + icon_url = static( + "admin/img/icon-%s.svg" % {True: "yes", False: "no", None: "unknown"}[field_val] + ) + return format_html('{}', icon_url, field_val) + + +def _coerce_field_name(field_name, field_index): + """ + Coerce a field_name (which may be a callable) to a string. + """ + if callable(field_name): + if field_name.__name__ == "": + return "lambda" + str(field_index) + else: + return field_name.__name__ + return field_name + + +def items_for_result(cl, result, form): + """ + Generate the actual list of data. + """ + + def link_in_col(is_first, field_name, cl): + if cl.list_display_links is None: + return False + if is_first and not cl.list_display_links: + return True + return field_name in cl.list_display_links + + first = True + pk = cl.lookup_opts.pk.attname + for field_index, field_name in enumerate(cl.list_display): + empty_value_display = cl.model_admin.get_empty_value_display() + row_classes = ["field-%s" % _coerce_field_name(field_name, field_index)] + try: + f, attr, value = lookup_field(field_name, result, cl.model_admin) + except ObjectDoesNotExist: + result_repr = empty_value_display + else: + empty_value_display = getattr( + attr, "empty_value_display", empty_value_display + ) + if f is None or f.auto_created: + if field_name == "action_checkbox": + row_classes = ["action-checkbox"] + boolean = getattr(attr, "boolean", False) + # Set boolean for attr that is a property, if defined. + if isinstance(attr, property) and hasattr(attr, "fget"): + boolean = getattr(attr.fget, "boolean", False) + result_repr = display_for_value(value, empty_value_display, boolean) + if isinstance(value, (datetime.date, datetime.time)): + row_classes.append("nowrap") + else: + if isinstance(f.remote_field, models.ManyToOneRel): + field_val = getattr(result, f.name) + if field_val is None: + result_repr = empty_value_display + else: + result_repr = field_val + else: + result_repr = display_for_field(value, f, empty_value_display) + if isinstance( + f, (models.DateField, models.TimeField, models.ForeignKey) + ): + row_classes.append("nowrap") + row_class = mark_safe(' class="%s"' % " ".join(row_classes)) + # If list_display_links not defined, add the link tag to the first field + if link_in_col(first, field_name, cl): + table_tag = "th" if first else "td" + first = False + + # Display link to the result's change_view if the url exists, else + # display just the result's representation. + try: + url = cl.url_for_result(result) + except NoReverseMatch: + link_or_text = result_repr + else: + url = add_preserved_filters( + {"preserved_filters": cl.preserved_filters, "opts": cl.opts}, url + ) + # Convert the pk to something that can be used in JavaScript. + # Problem cases are non-ASCII strings. + if cl.to_field: + attr = str(cl.to_field) + else: + attr = pk + value = result.serializable_value(attr) + link_or_text = format_html( + '{}', + url, + ( + format_html(' data-popup-opener="{}"', value) + if cl.is_popup + else "" + ), + result_repr, + ) + + yield format_html( + "<{}{}>{}", table_tag, row_class, link_or_text, table_tag + ) + else: + # By default the fields come from ModelAdmin.list_editable, but if we pull + # the fields out of the form instead of list_editable custom admins + # can provide fields on a per request basis + if ( + form + and field_name in form.fields + and not ( + field_name == cl.model._meta.pk.name + and form[cl.model._meta.pk.name].is_hidden + ) + ): + bf = form[field_name] + result_repr = mark_safe(str(bf.errors) + str(bf)) + yield format_html("{}", row_class, result_repr) + if form and not form[cl.model._meta.pk.name].is_hidden: + yield format_html("{}", form[cl.model._meta.pk.name]) + + +class ResultList(list): + """ + Wrapper class used to return items in a list_editable changelist, annotated + with the form object for error reporting purposes. Needed to maintain + backwards compatibility with existing admin templates. + """ + + def __init__(self, form, *items): + self.form = form + super().__init__(*items) + + +def results(cl): + if cl.formset: + for res, form in zip(cl.result_list, cl.formset.forms): + yield ResultList(form, items_for_result(cl, res, form)) + else: + for res in cl.result_list: + yield ResultList(None, items_for_result(cl, res, None)) + + +def result_hidden_fields(cl): + if cl.formset: + for res, form in zip(cl.result_list, cl.formset.forms): + if form[cl.model._meta.pk.name].is_hidden: + yield mark_safe(form[cl.model._meta.pk.name]) + + +def result_list(cl): + """ + Display the headers and data list together. + """ + headers = list(result_headers(cl)) + num_sorted_fields = 0 + for h in headers: + if h["sortable"] and h["sorted"]: + num_sorted_fields += 1 + return { + "cl": cl, + "result_hidden_fields": list(result_hidden_fields(cl)), + "result_headers": headers, + "num_sorted_fields": num_sorted_fields, + "results": list(results(cl)), + } + + +@register.tag(name="result_list") +def result_list_tag(parser, token): + return InclusionAdminNode( + parser, + token, + func=result_list, + template_name="change_list_results.html", + takes_context=False, + ) + + +def date_hierarchy(cl): + """ + Display the date hierarchy for date drill-down functionality. + """ + if cl.date_hierarchy: + field_name = cl.date_hierarchy + field = get_fields_from_path(cl.model, field_name)[-1] + if isinstance(field, models.DateTimeField): + dates_or_datetimes = "datetimes" + else: + dates_or_datetimes = "dates" + year_field = "%s__year" % field_name + month_field = "%s__month" % field_name + day_field = "%s__day" % field_name + field_generic = "%s__" % field_name + year_lookup = cl.params.get(year_field) + month_lookup = cl.params.get(month_field) + day_lookup = cl.params.get(day_field) + + def link(filters): + return cl.get_query_string(filters, [field_generic]) + + if not (year_lookup or month_lookup or day_lookup): + # select appropriate start level + date_range = cl.queryset.aggregate( + first=models.Min(field_name), last=models.Max(field_name) + ) + if date_range["first"] and date_range["last"]: + if dates_or_datetimes == "datetimes": + date_range = { + k: timezone.localtime(v) if timezone.is_aware(v) else v + for k, v in date_range.items() + } + if date_range["first"].year == date_range["last"].year: + year_lookup = date_range["first"].year + if date_range["first"].month == date_range["last"].month: + month_lookup = date_range["first"].month + + if year_lookup and month_lookup and day_lookup: + day = datetime.date(int(year_lookup), int(month_lookup), int(day_lookup)) + return { + "show": True, + "back": { + "link": link({year_field: year_lookup, month_field: month_lookup}), + "title": capfirst(formats.date_format(day, "YEAR_MONTH_FORMAT")), + }, + "choices": [ + {"title": capfirst(formats.date_format(day, "MONTH_DAY_FORMAT"))} + ], + } + elif year_lookup and month_lookup: + days = getattr(cl.queryset, dates_or_datetimes)(field_name, "day") + return { + "show": True, + "back": { + "link": link({year_field: year_lookup}), + "title": str(year_lookup), + }, + "choices": [ + { + "link": link( + { + year_field: year_lookup, + month_field: month_lookup, + day_field: day.day, + } + ), + "title": capfirst(formats.date_format(day, "MONTH_DAY_FORMAT")), + } + for day in days + ], + } + elif year_lookup: + months = getattr(cl.queryset, dates_or_datetimes)(field_name, "month") + return { + "show": True, + "back": {"link": link({}), "title": _("All dates")}, + "choices": [ + { + "link": link( + {year_field: year_lookup, month_field: month.month} + ), + "title": capfirst( + formats.date_format(month, "YEAR_MONTH_FORMAT") + ), + } + for month in months + ], + } + else: + years = getattr(cl.queryset, dates_or_datetimes)(field_name, "year") + return { + "show": True, + "back": None, + "choices": [ + { + "link": link({year_field: str(year.year)}), + "title": str(year.year), + } + for year in years + ], + } + + +@register.tag(name="date_hierarchy") +def date_hierarchy_tag(parser, token): + return InclusionAdminNode( + parser, + token, + func=date_hierarchy, + template_name="date_hierarchy.html", + takes_context=False, + ) + + +def search_form(cl): + """ + Display a search form for searching the list. + """ + return { + "cl": cl, + "show_result_count": cl.result_count != cl.full_result_count, + "search_var": SEARCH_VAR, + "is_popup_var": IS_POPUP_VAR, + "is_facets_var": IS_FACETS_VAR, + } + + +@register.tag(name="search_form") +def search_form_tag(parser, token): + return InclusionAdminNode( + parser, + token, + func=search_form, + template_name="search_form.html", + takes_context=False, + ) + + +@register.simple_tag +def admin_list_filter(cl, spec): + tpl = get_template(spec.template) + return tpl.render( + { + "title": spec.title, + "choices": list(spec.choices(cl)), + "spec": spec, + } + ) + + +def admin_actions(context): + """ + Track the number of times the action field has been rendered on the page, + so we know which value to use. + """ + context["action_index"] = context.get("action_index", -1) + 1 + return context + + +@register.tag(name="admin_actions") +def admin_actions_tag(parser, token): + return InclusionAdminNode( + parser, token, func=admin_actions, template_name="actions.html" + ) + + +@register.tag(name="change_list_object_tools") +def change_list_object_tools_tag(parser, token): + """Display the row of change list object tools.""" + return InclusionAdminNode( + parser, + token, + func=lambda context: context, + template_name="change_list_object_tools.html", + ) diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/templatetags/admin_modify.py b/venv/lib/python3.12/site-packages/django/contrib/admin/templatetags/admin_modify.py new file mode 100644 index 0000000000..0e3046ae5a --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/templatetags/admin_modify.py @@ -0,0 +1,150 @@ +import json + +from django import template +from django.template.context import Context + +from .base import InclusionAdminNode + +register = template.Library() + + +def prepopulated_fields_js(context): + """ + Create a list of prepopulated_fields that should render JavaScript for + the prepopulated fields for both the admin form and inlines. + """ + prepopulated_fields = [] + if "adminform" in context: + prepopulated_fields.extend(context["adminform"].prepopulated_fields) + if "inline_admin_formsets" in context: + for inline_admin_formset in context["inline_admin_formsets"]: + for inline_admin_form in inline_admin_formset: + if inline_admin_form.original is None: + prepopulated_fields.extend(inline_admin_form.prepopulated_fields) + + prepopulated_fields_json = [] + for field in prepopulated_fields: + prepopulated_fields_json.append( + { + "id": "#%s" % field["field"].auto_id, + "name": field["field"].name, + "dependency_ids": [ + "#%s" % dependency.auto_id for dependency in field["dependencies"] + ], + "dependency_list": [ + dependency.name for dependency in field["dependencies"] + ], + "maxLength": field["field"].field.max_length or 50, + "allowUnicode": getattr(field["field"].field, "allow_unicode", False), + } + ) + + context.update( + { + "prepopulated_fields": prepopulated_fields, + "prepopulated_fields_json": json.dumps(prepopulated_fields_json), + } + ) + return context + + +@register.tag(name="prepopulated_fields_js") +def prepopulated_fields_js_tag(parser, token): + return InclusionAdminNode( + parser, + token, + func=prepopulated_fields_js, + template_name="prepopulated_fields_js.html", + ) + + +def submit_row(context): + """ + Display the row of buttons for delete and save. + """ + add = context["add"] + change = context["change"] + is_popup = context["is_popup"] + save_as = context["save_as"] + show_save = context.get("show_save", True) + show_save_and_add_another = context.get("show_save_and_add_another", True) + show_save_and_continue = context.get("show_save_and_continue", True) + has_add_permission = context["has_add_permission"] + has_change_permission = context["has_change_permission"] + has_view_permission = context["has_view_permission"] + has_editable_inline_admin_formsets = context["has_editable_inline_admin_formsets"] + can_save = ( + (has_change_permission and change) + or (has_add_permission and add) + or has_editable_inline_admin_formsets + ) + can_save_and_add_another = ( + has_add_permission + and not is_popup + and (not save_as or add) + and can_save + and show_save_and_add_another + ) + can_save_and_continue = ( + not is_popup and can_save and has_view_permission and show_save_and_continue + ) + can_change = has_change_permission or has_editable_inline_admin_formsets + ctx = Context(context) + ctx.update( + { + "can_change": can_change, + "show_delete_link": ( + not is_popup + and context["has_delete_permission"] + and change + and context.get("show_delete", True) + ), + "show_save_as_new": not is_popup + and has_add_permission + and change + and save_as, + "show_save_and_add_another": can_save_and_add_another, + "show_save_and_continue": can_save_and_continue, + "show_save": show_save and can_save, + "show_close": not (show_save and can_save), + } + ) + return ctx + + +@register.tag(name="submit_row") +def submit_row_tag(parser, token): + return InclusionAdminNode( + parser, token, func=submit_row, template_name="submit_line.html" + ) + + +@register.tag(name="change_form_object_tools") +def change_form_object_tools_tag(parser, token): + """Display the row of change form object tools.""" + return InclusionAdminNode( + parser, + token, + func=lambda context: context, + template_name="change_form_object_tools.html", + ) + + +@register.filter +def cell_count(inline_admin_form): + """Return the number of cells used in a tabular inline.""" + count = 1 # Hidden cell with hidden 'id' field + for fieldset in inline_admin_form: + # Count all visible fields. + for line in fieldset: + for field in line: + try: + is_hidden = field.field.is_hidden + except AttributeError: + is_hidden = field.field["is_hidden"] + if not is_hidden: + count += 1 + if inline_admin_form.formset.can_delete: + # Delete checkbox + count += 1 + return count diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/templatetags/admin_urls.py b/venv/lib/python3.12/site-packages/django/contrib/admin/templatetags/admin_urls.py new file mode 100644 index 0000000000..871b0d5f20 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/templatetags/admin_urls.py @@ -0,0 +1,70 @@ +from urllib.parse import parse_qsl, unquote, urlparse, urlunparse + +from django import template +from django.contrib.admin.utils import quote +from django.urls import Resolver404, get_script_prefix, resolve +from django.utils.http import urlencode + +register = template.Library() + + +@register.filter +def admin_urlname(value, arg): + return "admin:%s_%s_%s" % (value.app_label, value.model_name, arg) + + +@register.filter +def admin_urlquote(value): + return quote(value) + + +@register.simple_tag(takes_context=True) +def add_preserved_filters(context, url, popup=False, to_field=None): + opts = context.get("opts") + preserved_filters = context.get("preserved_filters") + preserved_qsl = context.get("preserved_qsl") + + parsed_url = list(urlparse(url)) + parsed_qs = dict(parse_qsl(parsed_url[4])) + merged_qs = {} + + if preserved_qsl: + merged_qs.update(preserved_qsl) + + if opts and preserved_filters: + preserved_filters = dict(parse_qsl(preserved_filters)) + + match_url = "/%s" % unquote(url).partition(get_script_prefix())[2] + try: + match = resolve(match_url) + except Resolver404: + pass + else: + current_url = "%s:%s" % (match.app_name, match.url_name) + changelist_url = "admin:%s_%s_changelist" % ( + opts.app_label, + opts.model_name, + ) + if ( + changelist_url == current_url + and "_changelist_filters" in preserved_filters + ): + preserved_filters = dict( + parse_qsl(preserved_filters["_changelist_filters"]) + ) + + merged_qs.update(preserved_filters) + + if popup: + from django.contrib.admin.options import IS_POPUP_VAR + + merged_qs[IS_POPUP_VAR] = 1 + if to_field: + from django.contrib.admin.options import TO_FIELD_VAR + + merged_qs[TO_FIELD_VAR] = to_field + + merged_qs.update(parsed_qs) + + parsed_url[4] = urlencode(merged_qs) + return urlunparse(parsed_url) diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/templatetags/base.py b/venv/lib/python3.12/site-packages/django/contrib/admin/templatetags/base.py new file mode 100644 index 0000000000..9551c0e71d --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/templatetags/base.py @@ -0,0 +1,45 @@ +from inspect import getfullargspec + +from django.template.library import InclusionNode, parse_bits + + +class InclusionAdminNode(InclusionNode): + """ + Template tag that allows its template to be overridden per model, per app, + or globally. + """ + + def __init__(self, parser, token, func, template_name, takes_context=True): + self.template_name = template_name + params, varargs, varkw, defaults, kwonly, kwonly_defaults, _ = getfullargspec( + func + ) + bits = token.split_contents() + args, kwargs = parse_bits( + parser, + bits[1:], + params, + varargs, + varkw, + defaults, + kwonly, + kwonly_defaults, + takes_context, + bits[0], + ) + super().__init__(func, takes_context, args, kwargs, filename=None) + + def render(self, context): + opts = context["opts"] + app_label = opts.app_label.lower() + object_name = opts.model_name + # Load template for this render call. (Setting self.filename isn't + # thread-safe.) + context.render_context[self] = context.template.engine.select_template( + [ + "admin/%s/%s/%s" % (app_label, object_name, self.template_name), + "admin/%s/%s" % (app_label, self.template_name), + "admin/%s" % self.template_name, + ] + ) + return super().render(context) diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/templatetags/log.py b/venv/lib/python3.12/site-packages/django/contrib/admin/templatetags/log.py new file mode 100644 index 0000000000..55b2c46fa5 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/templatetags/log.py @@ -0,0 +1,67 @@ +from django import template + +register = template.Library() + + +class AdminLogNode(template.Node): + def __init__(self, limit, varname, user): + self.limit = limit + self.varname = varname + self.user = user + + def __repr__(self): + return "" + + def render(self, context): + entries = context["log_entries"] + if self.user is not None: + user_id = self.user + if not user_id.isdigit(): + user_id = context[self.user].pk + entries = entries.filter(user__pk=user_id) + context[self.varname] = entries[: int(self.limit)] + return "" + + +@register.tag +def get_admin_log(parser, token): + """ + Populate a template variable with the admin log for the given criteria. + + Usage:: + + {% get_admin_log [limit] as [varname] for_user [context_var_with_user_obj] %} + + Examples:: + + {% get_admin_log 10 as admin_log for_user 23 %} + {% get_admin_log 10 as admin_log for_user user %} + {% get_admin_log 10 as admin_log %} + + Note that ``context_var_containing_user_obj`` can be a hard-coded integer + (user ID) or the name of a template context variable containing the user + object whose ID you want. + """ + tokens = token.contents.split() + if len(tokens) < 4: + raise template.TemplateSyntaxError( + "'get_admin_log' statements require two arguments" + ) + if not tokens[1].isdigit(): + raise template.TemplateSyntaxError( + "First argument to 'get_admin_log' must be an integer" + ) + if tokens[2] != "as": + raise template.TemplateSyntaxError( + "Second argument to 'get_admin_log' must be 'as'" + ) + if len(tokens) > 4: + if tokens[4] != "for_user": + raise template.TemplateSyntaxError( + "Fourth argument to 'get_admin_log' must be 'for_user'" + ) + return AdminLogNode( + limit=tokens[1], + varname=tokens[3], + user=(tokens[5] if len(tokens) > 5 else None), + ) diff --git a/venv/lib/python3.12/site-packages/django/contrib/admin/tests.py b/venv/lib/python3.12/site-packages/django/contrib/admin/tests.py new file mode 100644 index 0000000000..dc857055b1 --- /dev/null +++ b/venv/lib/python3.12/site-packages/django/contrib/admin/tests.py @@ -0,0 +1,233 @@ +from contextlib import contextmanager + +from django.contrib.staticfiles.testing import StaticLiveServerTestCase +from django.test import modify_settings +from django.test.selenium import SeleniumTestCase +from django.utils.deprecation import MiddlewareMixin +from django.utils.translation import gettext as _ + + +class CSPMiddleware(MiddlewareMixin): + """The admin's JavaScript should be compatible with CSP.""" + + def process_response(self, request, response): + response.headers["Content-Security-Policy"] = "default-src 'self'" + return response + + +@modify_settings(MIDDLEWARE={"append": "django.contrib.admin.tests.CSPMiddleware"}) +class AdminSeleniumTestCase(SeleniumTestCase, StaticLiveServerTestCase): + available_apps = [ + "django.contrib.admin", + "django.contrib.auth", + "django.contrib.contenttypes", + "django.contrib.sessions", + "django.contrib.sites", + ] + + def wait_until(self, callback, timeout=10): + """ + Block the execution of the tests until the specified callback returns a + value that is not falsy. This method can be called, for example, after + clicking a link or submitting a form. See the other public methods that + call this function for more details. + """ + from selenium.webdriver.support.wait import WebDriverWait + + WebDriverWait(self.selenium, timeout).until(callback) + + def wait_for_and_switch_to_popup(self, num_windows=2, timeout=10): + """ + Block until `num_windows` are present and are ready (usually 2, but can + be overridden in the case of pop-ups opening other pop-ups). Switch the + current window to the new pop-up. + """ + self.wait_until(lambda d: len(d.window_handles) == num_windows, timeout) + self.selenium.switch_to.window(self.selenium.window_handles[-1]) + self.wait_page_ready() + + def wait_for(self, css_selector, timeout=10): + """ + Block until a CSS selector is found on the page. + """ + from selenium.webdriver.common.by import By + from selenium.webdriver.support import expected_conditions as ec + + self.wait_until( + ec.presence_of_element_located((By.CSS_SELECTOR, css_selector)), timeout + ) + + def wait_for_text(self, css_selector, text, timeout=10): + """ + Block until the text is found in the CSS selector. + """ + from selenium.webdriver.common.by import By + from selenium.webdriver.support import expected_conditions as ec + + self.wait_until( + ec.text_to_be_present_in_element((By.CSS_SELECTOR, css_selector), text), + timeout, + ) + + def wait_for_value(self, css_selector, text, timeout=10): + """ + Block until the value is found in the CSS selector. + """ + from selenium.webdriver.common.by import By + from selenium.webdriver.support import expected_conditions as ec + + self.wait_until( + ec.text_to_be_present_in_element_value( + (By.CSS_SELECTOR, css_selector), text + ), + timeout, + ) + + def wait_until_visible(self, css_selector, timeout=10): + """ + Block until the element described by the CSS selector is visible. + """ + from selenium.webdriver.common.by import By + from selenium.webdriver.support import expected_conditions as ec + + self.wait_until( + ec.visibility_of_element_located((By.CSS_SELECTOR, css_selector)), timeout + ) + + def wait_until_invisible(self, css_selector, timeout=10): + """ + Block until the element described by the CSS selector is invisible. + """ + from selenium.webdriver.common.by import By + from selenium.webdriver.support import expected_conditions as ec + + self.wait_until( + ec.invisibility_of_element_located((By.CSS_SELECTOR, css_selector)), timeout + ) + + def wait_page_ready(self, timeout=10): + """ + Block until the page is ready. + """ + self.wait_until( + lambda driver: driver.execute_script("return document.readyState;") + == "complete", + timeout, + ) + + @contextmanager + def wait_page_loaded(self, timeout=10): + """ + Block until a new page has loaded and is ready. + """ + from selenium.webdriver.common.by import By + from selenium.webdriver.support import expected_conditions as ec + + old_page = self.selenium.find_element(By.TAG_NAME, "html") + yield + # Wait for the next page to be loaded + self.wait_until(ec.staleness_of(old_page), timeout=timeout) + self.wait_page_ready(timeout=timeout) + + def admin_login(self, username, password, login_url="/admin/"): + """ + Log in to the admin. + """ + from selenium.webdriver.common.by import By + + self.selenium.get("%s%s" % (self.live_server_url, login_url)) + username_input = self.selenium.find_element(By.NAME, "username") + username_input.send_keys(username) + password_input = self.selenium.find_element(By.NAME, "password") + password_input.send_keys(password) + login_text = _("Log in") + with self.wait_page_loaded(): + self.selenium.find_element( + By.XPATH, '//input[@value="%s"]' % login_text + ).click() + + def select_option(self, selector, value): + """ + Select the